WRITE_READ_VAR : lire et écrire des registres internes sur un équipement Modbus

Description de la fonction

Cette fonction permet de lire et d'écrire des registres internes (de type MW uniquement) sur un équipement externe utilisant le protocole Modbus. Ces opérations de lecture et d'écriture s'effectuent au cours d'une transaction unique.

L'opération d'écriture est exécutée en premier. La fonction WRITE_READ_VAR peut ensuite :

oécrire des registres internes consécutifs et les consulter immédiatement pour vérifier leurs valeurs ;

oécrire des registres internes consécutifs et en lire d'autres en une seule requête.

Représentation graphique

G-SE-0005963.1.gif-high.gif

 

 

Description des paramètres spécifiques du bloc fonction WRITE_READ_VAR

Entrée

Type

Commentaire

ObjType

ObjectType

Le paramètre ObjType indique le type d'objet à écrire et à lire (MW uniquement).

FirstWriteObj

DINT

Le paramètre FirstWriteObj indique l'index du premier objet à écrire.

WriteQuantity

UINT

Le paramètre WriteQuantity indique le nombre d'objets à écrire :

o1 à 121 : registres (type MW)

WriteBuffer

POINTER TO BYTE

Adresse du pointeur sur le tableau qui contient les données à écrire sur l’appareil cible. Le tableau doit être égal ou supérieur aux données à écrire. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple).

FirstReadObj

DINT

Le paramètre ReadFirstObj indique la valeur d'index du premier objet à lire.

ReadQuantity

UINT

Le paramètre ReadQuantity indique le nombre d'objets à lire :

o1 à 125 : registres (type MW)

ReadBuffer

POINTER TO BYTE

Adresse du pointeur sur le tableau qui contient les données reçues qui ont été lues de l’appareil cible. Le tableau doit être égal ou supérieur aux données à lire. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple).

NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, veillez à ce que la taille du tableau lié à l’entrée Buffer soit égale ou supérieure aux données qui seront écrites sur l’équipement cible. Il est recommandé de lier le paramètre Quantity défini des données à écrire ou à lire dans la déclaration du tampon comme dans l’exemple suivant.

G-SE-0068765.1.gif-high.gif

 

 

Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section.

Exemple

Cet exemple montre l’implémentation du bloc fonction WRITE_READ_VAR en association avec le bloc fonction ADDM afin d’écrire deux registres commençant à l’adresse 11 et de lire deux registres commençant à l’adresse 1 d’un esclave Modbus. L’esclave Modbus est défini avec l’adresse 8 et doit être joignable via l’interface de ligne série 1. La condition préalable est la configuration de Modbus Manager en tant que maître sous l'interface de ligne série 1.

G-SE-0002101.2.gif-high.gif