AVIOR et un Automate en ModbusTCP

AVIOR  et des équipements Ethernet

Il est possible avec AVIOR d'aller interroger des équipements présents sur un réseau Ethernet avec le protocole MOdbusTCP. Pour cela il suffit d'ajouter en interface la passerelle transparente R-KEY-LT de SENECA. Elle est assez économique. Pour la raccorder à l'AVIOR il suffit de prendre un petit cable réseau Ethernet et de sectionner pour garder une prise RJ45. 3 fils sont nécessires pour utiliser la RS232, comme indiqué sur le schéma ci-contre.

AVIOR interrogeant un automate en ModbusTCP

Pour la programmation c'est exactement comme si on faisait du ModbusRTU. Vous trouverez ci-dessous un exemple de programme à télécharger. Pour basculer du mode console de programmation en mode Modbus, nous avons pour habitude d'utiliser l'entrée n°1. On pourrait aussi utiliser un Bit Mémoire interne. Pour la mise au point il est ensuite possible de passer par le portail WebAdmin. C'est ce qui est le plus simple.

La passerelle R-KEY-LT est très facile à programmer. Elle embarque un serveur Web. L'adresse IP par défaut est 192.168.90.101. Un petit logiciel utilitaire permet de retrouver et de modifier l'adresse IP de la passerelle. Pour une utilisation simple, il suffit de modifier l'adresse IP, de configurer la vitesse sur la liaison série RS232 ainsi que l'ID (numéro d'esclave) associé à l'adresse IP de votre (ou de vos) automate(s).

Le logiciel SENECA DEVICE DISCOVERY

Le manuel de mise en œuvre de la passerelle R-KEY-LT

Exemple de programmation AVIOR pour interroger un équipement en Modbus: Modbus-Avior.zip

Vous trouverez ci-dessous les explications pour bien comprendre le fonctionnement de ce petit programme qui peut vous aider à démarrer votre application Modbus sur AVIOR.

Rule 1: Si on active la sortie relais n°1 alors on se délogue de la console (au cas ou vous étiez précédemment connecté) et on configure le port série à la vitesse et au format souhaité pour l'application Modbus. On initialise le Time Out à 500 mS. On lance une temporisation sur le bit mémoire n°2 qui va nous servir de déclencheur périodique pour envoyer nos trames Modbus (voir règle 8).

Rule 2: Si on désactive la sortie relais n°1 alors on arrête la communication Modbus et on reconfigure le port série de l'AVIOR pour qu'il soit à nouveau utilisable en mode console avec le logiciel Avior.Suite.

Rule 3: Si l'appareil démarre ou redémarre alors on va tester l'état de la sortie n°1 pour configurer l'AVIOR dans le mode souhaité: Modbus ou Console pour le logiciel Avior.Suite.

Rule 8: Le Bit mémoire n°2 que l'on utilise comme déclencheur pour envoyer une nouvelle trame Modbus. Si la tempo est terminée (Bit2=0) alors on envoi la requête de lecture Modbus. On en profite pour relancer une nouvelle tempo de 5 secondes pour l'envoi de la prochaine requête. En fait cette requête est appelée constamment toutes les 5 secondes.

Les données lues sont rangées dans la table des ressources Exx à partir de E01 (premier registre libre) jusqu'à E32.

Rule 9: RTF= Fail Modbus. La précédente lecture s'est terminée par une erreur. Soit l'esclave n'a pas répondu, soit il a retourné un code d'erreur, soit le message à été parasité. Une nouvelle trame sera envoyée dans quelques secondes. Un Beep sonore est émis localement et on signale par un clignotement sur la sortie 4 qu'il y a eu une erreur. Ces deux fonctionnalités ne servent qu'a aider à comprendre le fonctionnement et non pas d'autre utilité que le debug.

Rule 10: On suppose que par configuration, les variables suivantes ont été configurées par ailleurs. Var4=$E01, Var5=Ê02 et var6=$E03 (etc…)

La règle 10 va détecter un changement de la valeur lue dans le premier mot Modbus ($E01>Var4). On fait juste clignoter la sortie 2 pendant 2 secondes, juste pour signaler visuellement qu'un changement a été détecté. Plus bas, les règles 20 et 21 vont être activées dans le même cycle suivant mais là on va tester la valeur du mot pour déclencher l'action que l'on souhaite, comme par exemple ici l'envoi d'un petit message SMS à tous les utilisateurs configurés dans l'AVIOR et qui appartiennent au Group: GrpAlarm. Tous les utilisateurs concernés recevront un SMS.

Rules 11 et 12: Idem Règle 10, mais pour les 2 autres mots suivants.

Rules 20 et 21: On va tester la valeur du mot pour déclencher l'action que l'on souhaite, comme par exemple ici l'envoi d'un petit message SMS à tous les utilisateurs configurés dans l'AVIOR et qui appartiennent au Group: GrpAlarm. Tous les utilisateurs concernés recevront un SMS.

Lorsque les données Modbus que l'on doit lire dans l'esclave ne sont pas contiguë ou que l'on doit aller lire dans plusieurs esclaves, alors il est préférable d'utiliser un autre mode de fonctionnement de la passerelle R-KEY-LT, dit Modbus Tags Gateway Ethernet to Serial (Port Slave). Voir manuel de la passerelle pour plus d'explications.

Cela permet d'aller lire plusieurs paquets de données dans un ou plusieurs automates sur le réseau Ethernet, mais de ne voir coté AVIOR, qu'une seule table de 32 mots maximum qui sera plus facile de gérer avec l'exemple de programmation fourni ici. Il est également possible si l'on a affaire à une zone de bits (et pas que des mots) de reproduire l'exemple fourni mais recopiant la zone Exx dans la zone Mxx qui elle seule peut déclencher des règles. On va donc résumé en disant qu'un AVIOR sait relativement gérer jusqu'à 32 mots + 32 bits en Modbus. Au dela cela est éventuellement possible mais sera plus compliqué à gérer.

N'hésitez pas à nous consulter si vous avez des questions complémentaires.