L'envoi via le module TSXETZ410 ou TSXETZ510 d'une requête Modbus depuis un TSX Micro vers un équipement distant est réalisé par la fonction SEND_REQ.

Le détail des paramètres de la fonction SEND_REQ est le suivant :
@dest : adresse Unitelway de l'ETZ (Ad0 Number dans la page web Setup /UNITELWAY CONFIGURATION du coupleur). Exemple :
Syntaxe de la requête :
La confirmation d'un échange correct est signifiée par la valeur 16#6600 dans le mot de compte-rendu de la table de gestion soit le mot %MW61 dans notre exemple.
Astuce :
La fonction ROR1_ARB permet d'effectuer un décalage circulaire à droite d'un octet d'un tableau d'octets. Elle est utilisable après réception d'une réponse de la requête fonction SEND_REQ.
Dans cet exemple la fonction ROR1_ARB s'écrira : ROR1_ARB(%MB400:7) avec :
Illustration : Application PL7 mettant en oeuvre l'exemple décrit ci-dessus.

Configuration des connexions du coupleur TSXETZx10

Remarques :
Le détail des paramètres de la fonction SEND_REQ est le suivant :
@dest : adresse Unitelway de l'ETZ (Ad0 Number dans la page web Setup /UNITELWAY CONFIGURATION du coupleur). Exemple :
- ADR#0.0.4 si l'adresse Unitelway est 4 (valeur par défaut des coupleurs TSXETZ410 et TSXETZ510)
- ADR#0.0.6 si l'adresse Unitelway est 6
Code requête : 16#0036 pour une requête de lecture dans l'équipement distant
Table de transmission :
Mot de la table | Contenu |
%Mwi | adresse X-Way de l'équipement distant - octet de poids faible : numéro de réseau exprimé en héxa - octet de poids fort : numéro de station exprimé en héxa |
%Mwi+1 | 16#0000 (adresse) |
%Mwi+2 | 16#0000 (adresse) |
%Mwi+3 | 16#0768 (type segment: internal word) |
%Mwi+4 | adresse du 1er mot à lire dans l'équipement distant |
%Mwi+5 | nombre de mots à lire |
- La table de transmission a une taille fixe de 6 mots.
- Avec PL7, pour une requête Modbus TCP/IP, le numéro de station doit être > 100.
- L'équipement distant doit être déclaré dans la configuration des connexions du coupleur TSXETZ410 ou TSXETZ510 via ses pages Web (voir l'illustration ci dessous).
Table de réception :
Mot de la table | Contenu | |
Octet de poids fort | Octet de poids faible | |
%Mwi | octet de poids faible du 1er mot lu | Type d'objet lu |
%Mwi+1 | octet de poids faible du 2ème mot lu | octet de poids ford du 1er mot lu |
%Mwi+2 | octet de poids faible du Nème mot lu | octet de poids ford du 2ème mot lu |
%Mwi+N | - | octet de poids ford du Nème mot lu |
- Lors d'une requête de lecture la table de réception a une taille de 1 mot + le nombre de mots à lire dans l'équipement distant. L'utilisateur n'a pas à lui affecter de valeur.
Table de gestion :
Numéro du mot | Octet de poids fort | Octet de poids faible |
%MWi | Numéro d'échange | Bit 0 :Bit d'activité |
%MWi+1 | Compte-rendu d'opération | Compte-rendu de communication |
%MWi+2 | Timeout |
%MWi+3 | Longueur de la table de transmission (en octects) |
Exemple de programmation de lecture de mots.
Cet exemple permet d’envoyer une requête Modbus vers un équipement distant :
- La requête permet de lire les mots %MW50, %MW51, %MW52 de l'équipement distant (soit 3 mots).
- L'’adresse X-Way de l'équipement distant déclarée dans le coupleur ETZ est : 2.136 (16# 8802).
- Le coupleur ETZ est à l'adresse Unitelway 4 (ADR#0.0.4).
Préparation de la table de transmission %MW100:6 (6 mots) :
- %MW100:=16#8802; (adresse XWAY AP distant : station=136 décimal soit 88 Hexa; réseau=2 décimal soit 02 Héxa)
- %MW101:=16#0000; (adresse)
- %MW102:=16#0000; (adresse)
- %MW103:=16#0768; (*type segment: internal word*)
- %MW104:=50; (*adresse du 1er mot à lire*)
- %MW105:=3; (*nb des mots à lire*)
- %MW62:=10; (*time out par 100ms soit 1000ms*)
- %MW63:=12; (*longueur en octets des données à transmettre = taille de la table de transmission X 2 soit 6 X 2=12 *)
Syntaxe de la requête :
- SEND_REQ(ADR#0.0.4,16#0036,%MW100:6,%MW200:4,%MW60:4);
La confirmation d'un échange correct est signifiée par la valeur 16#6600 dans le mot de compte-rendu de la table de gestion soit le mot %MW61 dans notre exemple.
Astuce :
La fonction ROR1_ARB permet d'effectuer un décalage circulaire à droite d'un octet d'un tableau d'octets. Elle est utilisable après réception d'une réponse de la requête fonction SEND_REQ.
Dans cet exemple la fonction ROR1_ARB s'écrira : ROR1_ARB(%MB400:7) avec :
- %MB400 = adresse du 1er octet de la table de réception (%MW200)
- 7 = taille du tableau en octet correspondant au nombre de mots lus * 2 + 1 soit (3 * 2) +1
Octet de poids fort | Octet de poids faible | |
%MW200 | octet de poids ford du 1er mot lu | octet de poids faible du 1er mot lu |
%MW201 | octet de poids ford du 2ème mot lu | octet de poids faible du 2ème mot lu |
%MW202 | octet de poids ford du 3ème mot lu | octet de poids faible du 3ème mot lu |
%MW203 | Type d'objet lu |
Illustration : Application PL7 mettant en oeuvre l'exemple décrit ci-dessus.
Configuration des connexions du coupleur TSXETZx10
Remarques :
- L'équipement distant peut être par exemple un Twido équipé d'un port Ethernet intégré (TWDLCAE40DRF, TWDLCDE40DRF).
- Si l'équipement distant se trouve derrière une passerelle Ethernet TCP/IP / Modbus (comme par exemple un Twido raccordé au réseau Ethernet via le module TwidoPort 499TWD01100, un esclave derrière une passerelle TSXETG100) alors les mots %Mwi+1 et %Mwi+2 de la table de transmission doivent prendre les valeurs suivantes :
- %Mwi+1 := 16#0005
- %Mwi+2 := 16#xx00 avec xx adresse Modbus de l'esclave Modbus (par exemple 16#0100 pour un esclave @1, ce qui est généralement le cas pour le module TwidoPort 499TWD01100). - Le nombre de mots à lire est au maximum de 63 mots (limitation liée à celle de la prise Terminal de l’automate).
- L'exemple ci-dessus reste un exemple rudimentaire qui a pour but d'illustrer cette FAQ.
Publié pour:Schneider Electric France

