Exemple 4 : fonction READ_VAR pour la lecture de bits
(Traduction du document original anglais)
Généralités
La programmation des échanges entre les équipements Modbus esclaves s'effectue au moyen des fonctions de communication READ_VAR et WRITE_VAR uniquement (la fonction SEND_REQ n'est pas prise en charge sur la prise TER).
Exemple de fonction READ_VAR
Description des objets utilisés dans l'exemple :
Objet
Description
%MW0.0
Demande de transmission de la requête
%M20
Requête en cours
%MW100:10
Tampon de réception
%MW200:203
Zone de compte rendu :
%MW200
Numéro du bit d'activité et de session (X0)
%MW201
Code d'erreur
%MW202
Time out en unités de 100 ms
%M30
Bit défini sur 1 en cas d'échange réussi
%MW204
Compteur des requêtes envoyées
%MW205
Compteur des requêtes correctes
%MW206
Compteur des requêtes incorrectes
%MW207
Code d'erreur de la dernière requête incorrecte
Présentation du programme :
!(*Lecture des bits %M0 à %M8 à partir de Nano à l'adresse 37 *)

IF %MW0.0 AND NOT %M20 THEN
%MW200:4:=0;%MW202:=50;SET %M20;
READ_VAR(ADDR('0.0.0.37'),'%M',0,8,%MW200:4,%MW100:10);
(*8 bits %M0..%M7 sont lus au niveau de l'esclave 37 et placés dans le mot %MW100 du maître*)
END_IF;
!(*Analyse des résultats*)

IF %M20 AND NOT %MW200.0 THEN
INC %MW204;RESET %M20;RESET %MW0.0;
IF %MW201=0 THEN INC %MW205;SET %M30;
ELSE INC %MW206;%MW207:=%MW201;RESET %M30;
END_IF;