Fonctions Modbus L9_XMIT
(Traduction du document original anglais)
Présentation
Le bloc fonction L9_XMIT prend en charge les codes fonction Modbus suivants :
Pour les messages Modbus, la matrice MSG_OUT doit contenir le tableau de définition Modbus. Le tableau de définition Modbus pour les codes fonction Modbus 01, 02, 03, 04, 05, 06, 15 et 16 occupe cinq mots et vous devez paramétrer L9_XMIT_SET.MessageLen sur 5 pour que le bloc fonction L9_XMIT s'exécute correctement. Le tableau de définition Modbus est présenté ci-dessous.
Codes fonction Modbus 01...06
Pour les messages Modbus, la matrice MSG_OUT doit contenir le tableau de définition Modbus. Le tableau de définition Modbus pour les codes fonction Modbus 01, 02, 03, 04, 05, 06, 15 et 16 occupe cinq mots et vous devez paramétrer L9_XMIT_SET.MessageLen sur 5 pour que le bloc fonction L9_XMIT s'exécute correctement. Le tableau de définition Modbus est présenté dans le tableau ci-dessous.
Codes fonction du tableau de définition Modbus (01 à 06, 15 et 16) :
Contenu
Description
Code fonction Modbus (MSG_OUT[1])
Le bloc L9_XMIT prend en charge les codes fonction suivants :
01 = lecture de plusieurs bits de sortie (bits mémoire %M)
02 = lecture de plusieurs entrées TOR (%I)
03 = lecture de plusieurs mots mémoire (%MW)
04 = lecture de plusieurs mots d'entrée (%IW)
05 = écriture d'un bit de sortie unique (bits mémoire %M)
06 = écriture d'un mot mémoire unique (%MW)
15 = écriture de plusieurs bits de sortie (bits mémoire %M)
16 = écriture de plusieurs mots mémoire (%MW)
Quantité (MSG_OUT[2])
Entrez la quantité de données à écrire ou à lire dans l'automate esclave. Par exemple, entrez 100 pour lire 100 mots mémoire à partir de l'automate esclave ou 32 pour écrire 32 bits de sortie (bits mémoire %M) sur un automate esclave. Il existe une taille limite, qui dépend du modèle de l'automate. Pour plus d'informations sur les limites, reportez-vous à l'annexe A.
Adresse de l'automate esclave (MSG_OUT[3])
Entrez l'adresse de l'automate Modbus esclave. En général, la plage d'adresses Modbus est comprise entre 1 et 247. Pour envoyer un message Modbus à plusieurs automates, entrez 0 pour l'adresse de l'automate esclave. Il s'agit du mode de diffusion. Le mode de diffusion prend uniquement en charge les codes fonction Modbus, qui permettent d'écrire des données sur des automates esclaves à partir de l'automate maître. Le mode de diffusion NE prend PAS en charge les codes fonction Modbus, qui permettent de lire des données à partir d'automates esclaves.
Zone de données de l'automate esclave (MSG_OUT[4])
Pour une commande de lecture, la zone de données de l'automate esclave est la source des données. Pour une commande d'écriture, la zone de données de l'automate esclave est la cible des données. Par exemple; si vous souhaitez lire des bits de sortie (bits mémoire) %M300...500 (00300 ... 00500) à partir d'un automate esclave, entrez 300 dans ce champ. Lorsque vous souhaitez écrire des données à partir d'un automate maître et les placer dans le mot mémoire %MW100 (40100) d'un automate esclave, entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-dessous.
Zone de données de l'automate maître (MSG_OUT[5])
Pour une commande de lecture, la zone de données de l'automate maître est la cible des données renvoyées par l'esclave. Pour une commande d'écriture, la zone de données de l'automate maître est la source des données. Par exemple, si vous souhaitez écrire des bits de sortie (bits mémoire) %MW16...32 (00016...00032) de l'automate maître vers un automate esclave, entrez 16 dans ce champ. Si vous souhaitez lire les mots d'entrée %MW1...100 (30001...30100) à partir d'un automate esclave et placer les données dans la zone de données de l'automate maître %MW100...199 (40100...40199), entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-dessous.
Zones de données source et cible des codes fonction (01...06, 15 et 16)
Code fonction
Zone de données de l'automate maître
Zone de données de l'automate esclave
03 (lecture multiple %MW/4x)
%MW (cible)
%MW (source)
04 (lecture multiple %MW/3x)
%MW (cible)
%IW (source)
01 (lecture multiple %MW/0x)
%M (cible)
%M (source)
02 (lecture multiple %I/1x)
%M (cible)
%I (source)
16 (écriture multiple %MW/4x)
%MW (source)
%MW (cible)
15 (écriture multiple %M/0x)
%M (source)
%M (cible)
05 (écriture unique %M/0x)
%M (source)
%M (cible)
06 (écriture unique %MW/4x)
%MW (source)
%MW (cible)
Pour envoyer 20 messages Modbus depuis l'automate, vous devez transférer 20 tableaux de définition Modbus l'un après l'autre dans MSG_OUT après chaque exécution de L9_XMIT, ou programmer 20 blocs fonction L9_XMIT séparés puis les activer un à la fois grâce à la logique utilisateur.
Code fonction Modbus (08)
Pour les messages Modbus, la matrice MSG_OUT doit contenir le tableau de définition Modbus. Le tableau de définition Modbus pour le code fonction Modbus 08 occupe cinq mots et vous devez paramétrer L9_XMIT_SET.MessageLen sur 5 pour que le bloc fonction L9_XMIT s'exécute correctement. Le tableau de définition Modbus est présenté ci-dessous.
Codes fonction du tableau de définition Modbus (08) :
Contenu
Description
Code fonction Modbus (MSG_OUT[1])
Le bloc L9_XMIT prend en charge le code fonction suivant : 08 = Diagnostics
Diagnostics (MSG_OUT[2])
Entrez la valeur décimale du code de sous-fonction du diagnostic dans ce champ pour exécuter la fonction de diagnostic voulue. Les sous-fonctions de diagnostic suivantes sont prises en charge :
Code Description
00 Renvoyer les données de requête
01 Relancer l'option comm.
02 Renvoyer registre de diagnostic
03 Changer le séparateur d'entrée ASCII
04 Forcer le mode écoute seul
05...09 Réservé
10 Réinitialiser les compteurs (et les mots de diagnostic dans 384, 484)
11 Renvoyer le compte de messages bus
12 Renvoyer le compte d'erreurs de comm. bus détectées
13 Renvoyer le compte d'exceptions de bus détectées
14...15 Non pris en charge
16 Renvoyer le compte de NAK esclave
17 Renvoyer le compte d'esclaves occupés
18 Renvoyer le compte de dépassement de car. de bus
19...21 Non pris en charge
Adresse de l'automate esclave (MSG_OUT[3])
Entrez l'adresse de l'automate Modbus esclave. En général, la plage d'adresses Modbus est comprise entre 1 et 247. Le code fonction 8 NE prend PAS en charge le mode de diffusion (adresse 0)
Contenu du champ de données de la fonction de diagnostic (MSG_OUT[4])
Entrez la valeur décimale nécessaire pour la zone de données de la sous-fonction de diagnostic particulière. Pour les sous-fonctions 02, 04, 10, 11, 12, 13, 16, 17 et 18, cette valeur est automatiquement réglée sur 0. Pour les sous-fonctions 00, 01 et 03, entrez la valeur voulue dans le champ de données. Pour plus d'informations, reportez-vous au document Modicon Modbus Protocol Reference Guide (PI-MBUS-300).
Zone de données de l'automate maître (MSG_OUT[5])
Pour toutes les sous-fonctions, la zone de données de l'automate maître est la cible des données renvoyées par l'esclave. Spécifiez un mot %MW marquant le début de la zone de données dans laquelle les données renvoyées sont placées. Par exemple, pour placer les données dans la zone de données de l'automate maître commençant au mot %MW100 (40100), entrez 100 dans ce champ. La sous-fonction 04 NE RENVOIE PAS de réponse. Pour plus d'informations, reportez-vous au document Modicon Modbus Protocol Reference Guide (PI-MBUS-300).
Codes fonction Modbus (20, 21)
Pour les messages Modbus, la matrice MSG_OUT doit contenir le tableau de définition Modbus. Le tableau de définition Modbus pour les codes fonction Modbus 20 et 21 occupe six mots et vous devez paramétrer L9_XMIT_SET.MessageLen sur 6 pour que le bloc fonction L9_XMIT s'exécute correctement. Le tableau de définition Modbus est présenté ci-dessous.
Codes fonction du tableau de définition Modbus (20, 21) :
Contenu
Description
Code fonction Modbus (MSG_OUT[1])
Le bloc L9_XMIT prend en charge les codes fonction suivants : 20 = lecture d'une référence générale (6x, mémoire étendue) 21 = écriture d'une référence générale (6x, mémoire étendue)
Quantité (MSG_OUT[2])
Entrez la quantité de données à écrire ou à lire dans l'automate esclave. Par exemple, entrez 100 pour lire 100 mots mémoire à partir de l'automate esclave ou 32 pour écrire 32 bits de sortie (bits mémoire) sur un automate esclave. Il existe une taille limite, qui dépend du modèle de l'automate. Pour plus d'informations sur les limites, reportez-vous à l'annexe A.
Adresse de l'automate esclave (MSG_OUT[3])
Entrez l'adresse de l'automate Modbus esclave. En général, la plage d'adresses Modbus est comprise entre 1 et 247. Les codes fonction 20 et 21 NE prennent PAS en charge le mode de diffusion (adresse 0)
Zone de données de l'automate esclave (MSG_OUT[4])
Pour une commande de lecture, la zone de données de l'automate esclave est la source des données. Pour une commande d'écriture, la zone de données de l'automate esclave est la cible des données. Par exemple, si vous souhaitez lire des mots mémoire étendus (600300...600399) à partir d'un automate esclave, entrez 300 dans ce champ. Lorsque vous souhaitez écrire des données à partir d'un automate maître et les placer dans le mot mémoire étendu (600100) d'un automate esclave, entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-dessous. Le plus petit mot mémoire étendu correspond au registre "zéro" (600000). Le plus petit mot mémoire correspond au registre "un" %MW1 (400001).
Zone de données de l'automate maître (MSG_OUT[5])
Pour une commande de lecture, la zone de données de l'automate maître est la cible des données renvoyées par l'esclave. Pour une commande d'écriture, la zone de données de l'automate maître est la source des données. Par exemple, lorsque vous souhaitez écrire les mots mémoire %MW16...32 (40016...40032), qui se trouvent sur l'automate maître dans les mots mémoire étendus (6x) d'un automate esclave, entrez 16 dans ce champ. Si vous souhaitez lire les mots mémoire étendus (600001...600100) à partir d'un automate esclave et placer les données dans la zone de données de l'automate maître %MW100...199 (40100...40199), entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-dessous. Le plus petit mot mémoire étendu correspond au registre "zéro" (600000). Le plus petit mot mémoire correspond au registre "un" %MW1 (400001).
Nombre de fichiers (MSG_OUT[6])
Entrez le nombre de fichiers pour les mots mémoire étendus (6x) à écrire ou à lire. (1...10) selon la taille de la zone de données de mémoire étendue. 600001 correspond à 60001 fichier 1 et 690001 correspond à 60001 fichier 10, comme considéré par l'éditeur de données de référence.
Zones de données source et cible des codes fonction (20, 21)
Code fonction
Zone de données de l'automate maître
Zone de données de l'automate esclave
20 (lecture d'une référence générale 6x)
%MW (cible)
6x (source)
21 (écriture d'une référence générale 6x)
%MW (source)
6x (cible)
Pour envoyer 20 messages Modbus depuis l'automate, vous devez transférer 20 tableaux de définition Modbus l'un après l'autre dans MSG_OUT après chaque exécution de L9_XMIT, ou programmer 20 blocs fonction L9_XMIT séparés puis les activer un à la fois grâce à la logique utilisateur.