Comment émettre une requête de lecture de mots depuis un TSX Micro via un module TSXETZ410 ou TSXETZ510 en protocole Modbus TCP/IP ?
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.