Consulter notre FAQ
{"searchBar":{"inputPlaceholder":"Rechercher par mot-clé ou poser une question","searchBtn":"Rechercher","error":"Veuillez saisir un mot-clé pour effectuer une recherche"}}
Comment émettre une requête de lecture de N mots à partir d'un Twido vers un esclave Modbus ?
L'émission d'une requête est réalisée avec l'instruction EXCHx de TwidoSuite (ou TwidoSoft) :
EXCHx %MWi:L
où x=numéro du port de communication du Twido (1 ou 2)
%MWi : 1er mot de la table d'échange
L : nombre de mots dans la table d'échange (commande+émission+réception) soit 7+ nombre de mots à lire dans l'esclave.
Pour une requête de lecture de N mots (code requête 03), la table d'échange est la suivante :

En noir : Valeurs fixes pour une requête de lecture de N mots (code requete 03)
En vert : à ajuster ( @ esclave, @ du 1er mot à lire, Nb de mot à lire)
En bleu : valeurs disponibles après réponse de l'esclave. (*) : Le poids faible de l'index 0 contient le nombre d'octets placés dans la table de réception.
Vérification des erreurs de communication :
Cet exemple propose de lire 2 mots à partir du mot 100 dans l'esclave @1 via le port 2 du Twido.
L'esclave est par exemple un autre Twido dans lequel est lu les mots %MW100 et %MW101.
La table d'une longueur de 9 mots ( 7 + 2 ) est la suivante :
L'envoi de la requête s'écrit : EXCH2 %MW30:9
Après un échange correct, la table de réception sera :
Illustration :
Programme sous TwidoSuite V2.20.11 illustrant l'exemple ci-dessus avec une gestion simple de la communication.

Table d'animation lors d'un échange correct :

GEST1 : nombre de requêtes émises par le programme
GEST2 : nombre de requêtes avec erreur (MSG2.E=1)
GEST3 : valeur de %MW64 lors du dernier passage à 1 de MSG2.E
GEST4 : valeur du dernier code d'exception retourné par l'esclave
Ce programme reste un exemple dont le but est uniquement d'illustrer cette Faq.
Il est disponible en pièce jointe.
Voir également :
Guide de programmation TwidoSuite au chapitre Fonction spéciales > Communications > Communications Modbus.
A noter :
Il est également possible d'utiliser les macros COMM pour émettre des requêtes de communication via les ports de communication du Twido
EXCHx %MWi:L
où x=numéro du port de communication du Twido (1 ou 2)
%MWi : 1er mot de la table d'échange
L : nombre de mots dans la table d'échange (commande+émission+réception) soit 7+ nombre de mots à lire dans l'esclave.
Pour une requête de lecture de N mots (code requête 03), la table d'échange est la suivante :
En noir : Valeurs fixes pour une requête de lecture de N mots (code requete 03)
En vert : à ajuster ( @ esclave, @ du 1er mot à lire, Nb de mot à lire)
En bleu : valeurs disponibles après réponse de l'esclave. (*) : Le poids faible de l'index 0 contient le nombre d'octets placés dans la table de réception.
Vérification des erreurs de communication :
- Il est conseillé d'utiliser dans le programme le bloc fonction %MSGx, le bit %MSGx.E à 1 signalant une erreur.
- Les mots systèmes %SW63 (code d’erreur du bloc EXCH1) et %SW64 (code d’erreur du bloc EXCH2) permettent de diagnostiquer des erreurs de communication (timeout par exemple) et des erreurs de gestion de la table.
- Le code de réponse fournit par l'esclave lors d'une transaction correcte est l'écho du code requête, ici 03.
Si l'esclave retourne un code d'exception le code de réponse est alors 16#83 (bit de poids fort de l'octet code de réponse à 1).
Le code d'exception figure alors dans l'octet de poids faible de l'index 6 de la table (à la place du nombre d'octets lus).
Un code d'exception n'est pas signalé par le bloc fonction %MSGx.
- Le port de communication du Twido doit être configuré en Modbus et avec un timeout.
- Au port 1 est associé l'instruction EXCH1, le bloc fonction %MSG1 et le mot système %SW63.
- Au port 2 est associé l'instruction EXCH2, le bloc fonction %MSG2 et le mot système %SW64.
Cet exemple propose de lire 2 mots à partir du mot 100 dans l'esclave @1 via le port 2 du Twido.
L'esclave est par exemple un autre Twido dans lequel est lu les mots %MW100 et %MW101.
La table d'une longueur de 9 mots ( 7 + 2 ) est la suivante :
Mot | Valeur | |
Table de contrôle | %MW30 | 16#0106 |
%MW31 | 16#0300 | |
Table d' émission | %MW32 | 16#0103 |
%MW33 | 100 | |
%MW34 | 2 | |
Table de réception | %MW35 | |
%MW36 | ||
%MW37 | ||
%MW38 |
L'envoi de la requête s'écrit : EXCH2 %MW30:9
Après un échange correct, la table de réception sera :
Table de réception | %MW35 | 16#0103 |
%MW36 | 16#0004 (4 octets de lus) | |
%MW37 | valeur mot 100 esclave @1 | |
%MW38 | valeur mot 101 esclave @1 |
Illustration :
Programme sous TwidoSuite V2.20.11 illustrant l'exemple ci-dessus avec une gestion simple de la communication.
Table d'animation lors d'un échange correct :
GEST1 : nombre de requêtes émises par le programme
GEST2 : nombre de requêtes avec erreur (MSG2.E=1)
GEST3 : valeur de %MW64 lors du dernier passage à 1 de MSG2.E
GEST4 : valeur du dernier code d'exception retourné par l'esclave
Ce programme reste un exemple dont le but est uniquement d'illustrer cette Faq.
Il est disponible en pièce jointe.
Voir également :
Guide de programmation TwidoSuite au chapitre Fonction spéciales > Communications > Communications Modbus.
A noter :
Il est également possible d'utiliser les macros COMM pour émettre des requêtes de communication via les ports de communication du Twido
Cela vous a-t-il été utile ?
En savoir plus
Gamme:
En savoir plus
Gamme: