Communication avec la PLC
Les fonctions C utilisent la zone mémoire de la PLC selon le protocole ModBus (voir beckhoff-pour-les-nuls/modbus).
On dédie une partie de la zone mémoire à chaque mécanisme. Les définitions de ces zones sont dans libspePlc.h et doivent impérativement avoir leur pendant dans chaque POU définit dans le code de la PLC.
Une structure standard de communication (MotorStruct) permet de passer les commandes à la PLC et lire les statuts de chaque fonction (voir spectro_diag.c).
Cette structure est identique pour le contrôle de la Tete de Fibres et du Spectro. Le flag (integer) module permet de sélection la PLC Tete de Fibre ou Spectro.
La communication est standardisée. Les éléments sont les suivants:
La structure de communication mémoire (CommStruct): le mappage des valeurs suivantes est identique sur la PLC
- setpoint: la consigne
- position: position courante
- running: indique si l'asservissement est actif
- timeout_ms: la durée maximum pour finaliser le mouvement
- diagnostic: status de la commande
La structure de commande (MotorStruct), propre au C est utilisée comme principal argument dans les fonctions de libspePLC.c:
- baseMemory: adresse dans la PLC
- modbus: descripteur pour l'acces à la libraire modbus
- module: tête de fibres ou spectro
- commStruct: la structure décrite ci-dessus