Alarmes et communication Modbus

Dans cet exemple, nous n’allons pas nous servir des entrées digitales, mais nous allons lire des bits en ModbusRTU dans un équipement esclave. L’AVIOR sera lui ModbusRTU Maître.

Pour cela nous allons utiliser le port série RS232 que nous allons convertir en RS485 grâce à un adaptateur spécifique proposé par le constructeur.

Par contre ce port de communication est également utilisé habituellement en local pour la programmation de l’AVIOR ou le diagnostic en mode console. Nous allons donc commencer par utiliser une entrée digitale (Din1 par exemple) pour choisir de basculer en communication Modbus ou en mode console/programmation avec le logiciel AVIOR.Suite. Si le contact de l’entrée Din1 est ouvert alors l’AVIOR est utilisé avec le logiciel AVIOR.Suite sur le PC et sinon, contact fermé, alors on est en communication Modbus avec l’esclave. Pour bien visualiser le mode dans lequel l’AVIOR opère, nous allumerons la LED Out1 lorsque nous serons en mode Modbus.

 

Voici tout d’abord les règles pour configurer le port de communication

Règle n°1

Si on ferme le contact de Din1, alors le port est configuré pour mon équipement Modbus, en 1200 Bauds, 8 bits de données, pas de parité et 2 bits de stop (at#uart=1200,8,N,2). La seconde action ferme la sortie 1 et donc allume la led de la sortie Out1. La troisième action position le Registre E00 (Temps de Time Out pour attendre la réponse au maximum).. La dernière action met le bit mémoire interne Mem1 à 1 pendant 1 seconde. Au bout d’une seconde le bit mémoire Mem1 respassera automatiquement à 0 et ce sera le déclencheur pour l’envoi de nos requêtes d’interrogation du Modbus (Règle n°4)

 

 

 

 

 

 

Règle n°2

Nous prévoyons également une règle pour faire revenir le port de communication en mode console/Programmation avec les valeurs par défaut. Il suffit d’ouvrir le contact de l’entrée Din1. Pour bien visualiser nous éteignons la led de la sortie 1.

 

 

 

 

 

 

 

 

 

Règle n°4

C’est la règle principale qui envoie la requête Modbus sur le port série. Dans notre exemple, at#rtur=1,2,0,32,B,,E01, va lire dans l’esclave n°1, en utilisant le code fonction Modbus 2 (lecture de n bits), à partir de l’adresse de bit 0 et on va lire 32 bits, de type Booléen, que l’on va ranger à partir du premier registre Modbus interne, c’est-à-dire E01. Le résultat, si la réponse est correcte, les bits lus seront rangés dans les registres E01 à E32. Voir ici pour plus d’informations sur les formats possibles de la requête : https://www.contrive.mobi/avior/en/Messaging.html#RTUR

Cette requête sera appelée chaque fois que le bit mémoire interne Mem1 repassera à 0 et on vérifira également que nous sommes bien toujours en mode Modbus (Din1=1)

 

 

 

 

Règle n°5

Nous avons prévu de signaler visuellement par la led de la sortie 2 mais également un Beep sonore.

Cette règle s’exécute donc chaque fois qu’une erreur est détectée dans la réponse de l’esclave ou non réponse.

 

 

 

 

 

 

 

 

 

Règle n°6

C’est la première règle qui va s’exécuter après chaque fin de lecture avec une réponse correcte et on va tester le registre E01 qui contient le bit 1 et si il est à la valeur 1 alors on va générer nos envois d’alarmes. Dans notre exemple la première action compose un n° de téléphone et diffuse 8 fois le message vocal stocké dans l’AVIOR et nommé fic1.wav. La seconde action envoie un SMS.