Questions fréquentes (FAQ)

Poser une question

Comment émettre une requête de lecture de mots depuis un TSX Micro via un module TSXETZ410 ou TSXETZ510 en protocole Modbus TCP/IP ?

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 :
  • 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 poid faible : numéro de réseau exprimé en héxa
 - octet de poid 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 transmisson 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 poid fort  Octet de poid faible
%Mwi  octet de poid faible du 1er mot lu  Type d'objet lu
%Mwi+1  octet de poid faible du 2ème mot lu  octet de poid ford du 1er mot lu
%Mwi+2  octet de poid faible du Nème mot lu  octet de poid ford du 2ème mot lu
%Mwi+N  -  octet de poid 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*)
Préparation de la table de gestion %MW60:4  (4 mots) :
  • %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);
Résultat :

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 poid fort Octet de poid faible
%MW200 octet de poid ford du 1er mot lu octet de poid faible du 1er mot lu
%MW201 octet de poid ford du 2ème mot lu octet de poid faible du 2ème mot lu
%MW202 octet de poid ford du 3ème mot lu octet de poid 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.
Voir également : Comment émettre une requête d'écriture de mots depuis un TSX Micro via un module TSXETZ410 ou TSXETZ510 en protocole Modbus TCP/IP ?
Cela vous a-t-il aidé ?
Que pouvons-nous faire pour améliorer l'information ?