Cette rubrique décrit la gestion et le fonctionnement des fonctions de communication des contrôleurs, en prenant comme exemple le bloc fonction READ_VAR. (La norme PLCopen définit les règles applicables aux blocs fonction.)
NOTE : Ces paramètres sont communs à tous les blocs fonction PLCCommunication (à l'exception d'ADDM).
Les paramètres communs à tous les blocs fonction de la bibliothèque PLCCommunication s'affichent en surbrillance dans le graphique ci-dessous :
Ces paramètres sont partagés par plusieurs blocs fonction de la bibliothèque PLCCommunication :
Entrée |
Type |
Commentaire |
---|---|---|
Execute |
BOOL |
La fonction est exécutée sur le front montant de cette entrée. REMARQUE : lorsque l'entrée xExecute est définie sur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à froid ou à chaud, le front montant n'est pas détecté. |
Abort |
BOOL |
Abandonne l'opération en cours lors du front montant. |
Addr |
ADDRESS |
Adresse de l'équipement externe ciblé (il peut s'agir de la sortie du bloc fonction ADDM.) |
Timeout |
WORD |
Le timeout de l'échange est un multiple de 100 ms (0 pour l'infini). NOTE : Le paramètre Timeout time est réglé sur 1 s pour le HMI SCU et n'est pas configurable pour les blocs fonction de communication Modbus. |
REMARQUE : une opération du bloc fonction peut nécessiter plusieurs échanges. Le timeout s'applique à chaque échange entre le contrôleur et le modem. Ainsi, la durée totale d'exécution du bloc fonction peut s'avérer supérieure au timeout. |
Sortie |
Type |
Commentaire |
---|---|---|
Done |
BOOL |
Le paramètre Done est défini sur TRUE lorsque la fonction s'est exécutée correctement. |
Busy |
BOOL |
Le paramètre Busy est défini sur TRUE lorsque la fonction est en cours d'exécution. |
Aborted |
BOOL |
Le paramètre Aborted est défini sur TRUE lorsque la fonction est annulée à l'aide de l'entrée Abort. Lorsque la fonction est annulée, CommError contient le code Canceled - 16#02 (échange interrompu à la demande de l'utilisateur). |
Error |
BOOL |
Le paramètre Error est défini sur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. Lorsqu'une erreur est détectée, CommError et OperError permettent d'obtenir des informations sur celle-ci. |
CommError |
BYTE |
Le paramètre CommError contient les codes des erreurs de communication. |
OperError |
DWORD |
Le paramètre OperError contient les codes des erreurs d'opération. |
NOTE :
Dès que la sortie Busy est remise à 0, une (et une seule) de ces trois sorties est définie sur 1 :
oDone
oError
oAborted
Les blocs fonction nécessitent un front montant pour être déclenchés. Le bloc fonction doit d'abord visualiser l'entrée Execute avec la valeur False pour pouvoir détecter le front montant suivant.
|
COMPORTEMENT IMPREVU DE L'EQUIPEMENT |
Effectuez toujours le premier appel d'un bloc fonction avec son entrée Execute définie sur FALSE afin que le front montant suivant soit détecté. |
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. |
La fonction est exécutée lors du front montant de l'entrée Execute. La sortie Busy est ensuite définie sur TRUE. La figure ci-dessous présente le comportement d'un bloc fonction lorsque l'opération est exécutée automatiquement (avec ou sans erreurs) :
Note 1 : le bit Done ou Error est défini sur TRUE lors d'un cycle de tâche uniquement si Execute a déjà été redéfini sur FALSE à l'issue de l'opération.
La figure ci-dessous présente l'annulation d'une fonction par l'application. Le front montant de l'entrée Abort annule la fonction en cours. En pareils cas, la sortie annulée est définie sur 1 et CommError contient le code Canceled - 16#02 (échange interrompu à la demande de l'utilisateur) :
Note 1 : Le bit Abort est défini sur TRUE lors d'un cycle de tâche uniquement si Execute était déjà défini sur FALSE lorsque la demande d'abandon est survenue.