Présentation
Le bloc XXMIT prend en charge les codes de fonction Modbus suivants :
01 à 06 et 15 à 16
08
Configuration du port Modbus
La fonction XXMIT est configurée à travers son bloc fonction. Le bloc fonction initialise le port Modbus 1 chaque fois qu'il est actif, avec les paramètres définis. Les paramètres XXMIT peuvent être affichés sur l'écran LCD de l'automate.
Exemple de configuration du bloc fonction XXMIT :

Exemple d'écran de configuration d'UC avec un ensemble de valeurs différent :

Exemples de paramètres sur l'écran LCD de l'automate :

Les trois graphiques ci-dessus présentent des valeurs différentes pour la fonction XXMIT. Indépendamment des éléments définis ou affichés sur l'écran de configuration de l'UC ou sur l'écran LCD, les valeurs réelles utilisées pour la transmission sont celles du bloc fonction XXMIT :
Débit : 19200
Parité : Paire
Bits de données : 8
Bits d'arrêt : 1
Passage du mode d'émission au mode de réception
A l'exception des messages de diffusion, toutes les fonctions Modbus nécessitent que le bloc XXMIT passe du mode d'émission au mode de réception afin de lire la réponse de l'esclave. Le bloc fonction XXMIT passe en mode de réception au cours du cycle qui suit l'opération d'émission. Il incombe à l'utilisateur de s'assurer que la réponse de l'esclave intervient au moins un cycle après celle du maître afin d'éviter l'échec de la communication.
Le délai de transmission de l'esclave est particulièrement important en cas de cycles longs pour le maître et d'esclaves rapides.
Considérations relatives au délai de l'esclave :

La figure ci-dessus (qui n'est pas à l'échelle) permet d'estimer l'influence des trois facteurs de temps (cycle du maître, durée de transmission, cycle de l'esclave) sur le délai requis pour l'esclave. Les cycles du maître et de l'esclave étant asynchrones, la durée de cycle de l'esclave ne doit pas être prise en compte. La durée de transmission dépend du type de télégramme envoyé, du débit en bauds et du protocole utilisé. Par exemple, une demande de lecture standard à 9600 bauds utilisant le protocole ASCII prend 14 ms. Le cycle du maître représente sans nul doute le facteur temps le plus important. Par conséquent, même si le délai minimal de l'esclave peut être inférieur à la durée de cycle du maître, il est recommandé d'utiliser cette dernière comme délai minimal de l'esclave en vue de garantir une communication efficace.
Vous devez entrer le délai requis plus 10 ms. Par exemple, pour instaurer un délai de 110 ms, entrez la valeur 120 dans ce champ.
Codes fonction Modbus (01 à 06, 15 et 16)
Pour les messages Modbus, le tableau MsgOut doit contenir le tableau de définition Modbus. Il doit être défini comme un champ de mots. Le tableau de définition Modbus pour les codes fonction Modbus 01, 02, 03, 04, 05, 06, 15 et 16 a une longueur de cinq mots et vous devez définir MsgLen sur 5 pour que l'opération XXMIT aboutisse. Le tableau de définition Modbus est présenté ci-dessous.
Codes de fonction du tableau de définition Modbus (01 à 06, 15 et 16)
Contenu |
Description |
---|---|
Code de fonction Modbus (MsgOut[1]) |
Le bloc XXMIT prend en charge les codes de fonction suivants : 01 = Lecture de plusieurs bits (%Q) 02 = Lecture de plusieurs bits TOR (%I) 03 = Lecture de plusieurs mots (%MW) 04 = Lecture de plusieurs mots d'entrée (%IW) 05 = Ecriture d'un seul bit (%Q) 06 = Ecriture d'un seul mot (%MW) 15 = Ecriture de plusieurs bits (%Q) 16 = Ecriture de plusieurs mots (%MW) |
Quantité (MsgOut[2]) |
Entrez la quantité de données à écrire ou à lire dans l'automate esclave. Par exemple, entrez 100 pour lire 100 mots d'un automate esclave ou entrez 32 pour écrire 32 bits dans un automate esclave. Il existe une taille limite, qui dépend du modèle de l'automate. Reportez-vous à l'annexe A pour obtenir tous les détails sur les limites. |
Adresse de l'automate esclave (MsgOut[3]) |
Entrez l'adresse de l'automate Modbus esclave. La plage d'adresses Modbus est généralement comprise entre 1 et 247. Pour envoyer un message Modbus à plusieurs automates, entrez 0 comme adresse de l'automate esclave. Ce type de transmission est appelé mode diffusion. Le mode diffusion prend uniquement en charge les codes de fonction Modbus écrivant des données de l'automate maître vers des automates esclaves. Il NE prend PAS en charge les codes de fonction Modbus lisant des données des automates esclaves. |
Zone de données de l'automate esclave (MsgOut[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 destination des données. Par exemple, lorsque vous souhaitez lire des bits (%I300 à %I500) depuis un automate esclave, entrez 300 dans ce champ. Si vous voulez écrire des données d'un automate maître dans les mots (%MW100) 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 (MsgOut[5]) |
Pour une commande de lecture, la zone de données de l'automate maître est la destination 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 des bits (%M16 à %M32) situés dans l'automate maître vers un automate esclave, entrez 16 dans ce champ. Lorsque vous souhaitez lire des mots (%IW1 à %IW100) depuis un automate esclave et placer les données dans la zone de données de l'automate maître (%MW100 à %MW199), 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 aux définitions du tableau ci-dessous. |
Zones de données source et cible pour les codes de fonction (01 à 06, 15 et 16)
Code de fonction |
Zone de données de l'automate maître |
Zone de données de l'automate esclave |
---|---|---|
03 (Lecture de plusieurs registres 4x) |
%MW (cible) |
%MW (source) |
04 (Lecture de plusieurs registres 3x) |
%MW (cible) |
%IW (source) |
01 (Lecture de plusieurs registres 0x) |
%M (cible) |
%Q (source) |
02 (Lecture de plusieurs registres 1x) |
%M (cible) |
%I (source) |
16 (Ecriture dans plusieurs registres 4x) |
%MW (source) |
%MW (cible) |
15 (Ecriture dans plusieurs registres 0x) |
%M (source) |
%Q (cible) |
05 (Ecriture dans un seul registre 0x) |
%M (source) |
%Q (cible) |
06 (Ecriture dans un seul registre 4x) |
%MW (source) |
%MW (cible) |
Lorsque vous souhaitez envoyer 20 messages Modbus à partir de l'automate, vous devez transférer 20 tableaux de définition Modbus un par un dans MsgOut après chaque exécution réussie du bloc XXMIT ou programmer 20 blocs XXMIT différents, puis les activer un par un à partir du programme utilisateur.
Code de fonction Modbus (08)
Pour les messages Modbus, le tableau MsgOut doit contenir le tableau de définition Modbus. Il doit être défini comme un champ de mots. Le tableau de définition Modbus pour le code fonction Modbus 08 a une longueur de cinq mots et vous devez définir MsgLen sur 5 pour que l'opération XXMIT aboutisse. Le tableau de définition Modbus est présenté ci-dessous.
Codes de fonction du tableau de définition Modbus (08)
Contenu |
Description |
|
---|---|---|
Code de fonction Modbus (MsgOut[1]) |
Le bloc XXMIT prend en charge le code de fonction suivant : 08 = Diagnostic |
|
Diagnostic (MsgOut[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 de sous-fonction |
Description |
|
00 |
Interrogation en retour |
|
01 |
Relancer l'option comm. |
|
02 |
Renvoi du mot de diagnostic |
|
03 |
Changement de séparateur d'entrée ASCII |
|
04 |
Mode écoute seul |
|
05 à 09 |
Réservé |
|
10 |
Effacer compteurs |
|
11 |
(et mots de diagnostic dans 384, 484) |
|
12 |
Renvoi du nombre de messages de bus |
|
13 |
Renvoi du nombre d'erreurs de communication de bus |
|
14 à 15 |
Renvoi du nombre d'exceptions de bus |
|
16 |
Non pris en charge |
|
17 |
Renvoi du nombre d'esclaves ayant répondu négativement |
|
18 |
Renvoi du nombre d'esclaves occupés |
|
19 à 21 |
Renvoi du nombre de dépassements de caractères de bus |
|
Adresse de l'automate esclave (MsgOut[3]) |
Entrez l'adresse de l'automate Modbus esclave. La plage d'adresses Modbus est généralement comprise entre 1 et 247. Le code de fonction 8 ne prend PAS en charge le mode diffusion (adresse 0). |
|
Contenu du champ des données de fonction de diagnostic (MsgOut[4]) |
Vous devez saisir la valeur décimale nécessaire pour la zone de données de la sous-fonction de diagnostic particulière : |
|
Code de sous-fonction |
Description |
|
02, 04, 10, 11, 12, 13, 16, 17 et 18 |
Cette valeur est automatiquement réglée sur 0 dans le message Modbus envoyé à l'esclave (elle n'est pas reflétée dans le tampon MsgOut). |
|
00, 01 et 03 |
Vous devez saisir une valeur dans le champ de données. Pour plus de détails, reportez-vous au document Modicon Modbus Protocol Reference Guide (www.modbus.org). |
|
Zone de données de l'automate maître (MsgOut[5]) |
Pour toutes les sous-fonctions, la zone de données de l'automate maître est la destination des données renvoyées par l'esclave. Vous devez indiquer un mot mémoire %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 à (%MW100), saisissez 100 dans ce champ. La sous-fonction 04 NE RENVOIE PAS de réponse. Pour plus de détails, reportez-vous au document Modicon Modbus Protocol Reference Guide (www.modbus.org). |