LABVIEW : une plateforme pour la mise en œuvre d’un TP de supervision par protocole MODBUS/TCP d’une application automate

04/04/2014
Auteurs :
Publication 3EI 3EI 2013-71
OAI : oai:www.see.asso.fr:1044:2013-71:3423
DOI :

Résumé

LABVIEW : une plateforme pour la mise en œuvre d’un TP de  supervision par protocole MODBUS/TCP d’une application  automate

Métriques

38
16
397.42 Ko
 application/pdf
bitcache://4a26f9d725f05dc69643e67eb874e4ce2cac1905

Licence

Creative Commons Aucune (Tous droits réservés)
<resource  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://datacite.org/schema/kernel-4"
                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
        <identifier identifierType="DOI">10.23723/1044:2013-71/3423</identifier><creators><creator><creatorName>Jean-Louis Bianchi</creatorName></creator></creators><titles>
            <title>LABVIEW : une plateforme pour la mise en œuvre d’un TP de  supervision par protocole MODBUS/TCP d’une application  automate  </title></titles>
        <publisher>SEE</publisher>
        <publicationYear>2014</publicationYear>
        <resourceType resourceTypeGeneral="Text">Text</resourceType><dates>
	    <date dateType="Created">Fri 4 Apr 2014</date>
	    <date dateType="Updated">Tue 13 Jun 2017</date>
            <date dateType="Submitted">Fri 20 Apr 2018</date>
	</dates>
        <alternateIdentifiers>
	    <alternateIdentifier alternateIdentifierType="bitstream">4a26f9d725f05dc69643e67eb874e4ce2cac1905</alternateIdentifier>
	</alternateIdentifiers>
        <formats>
	    <format>application/pdf</format>
	</formats>
	<version>32794</version>
        <descriptions>
            <description descriptionType="Abstract"></description>
        </descriptions>
    </resource>
.

LABVIEW : une plateforme pour la mise en œuvre d’un TP de supervision par protocole MODBUS/TCP d’une application automate Jean-Louis BIANCHI Lycée Jules Ferry 29 rue du Maréchal Joffre – 78000 Versailles 1. La supervision d’une application automate industriel utilisant le protocole MODBUS/TCP Il s’agit ici de mettre en œuvre l’outil LABVIEW dans une application de supervision de processus simple géré par un automate Schneider TWIDO. L’application vise les champs de compétences suivants : Automatismes : Développer une application simple en langage Ladder pour cible A.P.I. TWIDO de Schneider à partir d’un GRAFCET élémentaire. Bus de terrain : Configurer un réseau Can Open pour la mise en œuvre d’entrées sorties T.O.R déportées. Bus de terrain : Configurer une application de supervision automate utilisant le protocole MODBUS TCP/IP. Programmation Labview : Programmer une application Labview permettant la supervision d’un processus automate en utilisant la librairie NI_MODBUS. Réseaux : Développer une application client/serveur en utilisant les outils Labview de gestion de protocole réseau TCP. 2. Matériels et logiciels utilisés : Pour la programmation de la cible TWIDO : un automate programmable TWIDO TWDLCAE40DRF (SCHNEIDER) disposant d’une entrée analogique 10 bits pour simulation d’un niveau. un coupleur CAN Open associé au TWIDO (le maître, serveur MODBUS), un boîtier d’entrées/sorties déportées CAN Open (OTB 1C0 DM9LP, 12 (8+4) entrées, 8 sorties, esclave, ID fixée par roue codeuse). Un jeu de 3 interrupteurs et de 3 LEDs matérialise la partie opérative. 3. Le contexte du TP : Nous disposons d’un rack comprenant l’A.P.I. TWIDO et son contrôleur de bus CANOPEN sur lequel nous avons placé un module esclave gérant des entrées sorties déportées ‘Tout ou Rien’. Trois ‘switches’ permettront de simuler les variables d’entrées logiques du système et trois leds permettront de visualiser l’activité des sorties du système automatisé élémentaire. L’A.P.I. Twido possède une entrée analogique 10 bits (potentiomètre en face avant) que nous utiliserons pour simuler une entrée analogique en l’occurrence un niveau de liquide dans une cuve. L’automate et le PC que nous utiliserons dans un premier temps pour le développement de l’application automate, puis pour la supervision avec Labview, sont connectés sur le même réseau TCP/IP. Résumé : Une nouvelle utilisation de Labview à travers un travail pratique en STS IRIS ou licence professionnelle avec la mise en œuvre d’une communication par MODBUS/TCP afin de réaliser une supervision d’une application automate par Labview. ETHERNET/MODBUS TCP/IP Boîtier OTB (esclave Can_open) PC Twido Suite/Labview A.P.I. TWIDO Coupleur CANOPEN Sorties T.O.R.Entrées T.O.R. - L’outil de développement logiciel TWIDO SUITE fonctionnant sur PC, pour la programmation de l’automate. - Le logiciel LabView et la librairie NI Modbus pour la supervision. bus CAN OPEN 250kbit/s 4. Les objectifs : Programmer une application GRAFCET simple dans la cible TWIDO ; développer à l’aide de Labview une supervision de cette application en utilisant le protocole MODBUS/TCP dans une application client/serveur. Proposer une IHM de supervision sur PC client. 5. L’application GRAFCET : L’application est élémentaire du point de vue automatismes car ce n’est pas l’objectif central ici, elle consiste à simuler le contrôle du niveau de liquide dans un réservoir : 6. L’application Labview de supervision On souhaite obtenir l’I.H.M. suivante : Avec : Possibilité de saisir l’adresse IP du serveur (A.P.I.). Monitoring des bits d’étapes du Grafcet. Affichage du niveau de cuve (entrée analogique 10 bits A.P.I.). Visualisation des sorties T.O.R. Entrée de paramétrage des niveaux mini et max souhaités. Commande de start et stop depuis la supervision. %M0 %M1 %M2 %M3 %M4 %M5 %M6 %M7 %M255 %MW0 %MW1 %MW255 7. Fonctionnalités du serveur MODBUS embarqué sur TWIDO : Il est important de noter que le serveur MODBUS embarqué dans l’A.P.I. ne permet pas l’accès à toutes les zones mémoires de l’automate ; cela varie d’une machine à l’autre, dans le cas de l’A.P.I. TWIDO qui est un petit modèle d’entrée de gamme, seules deux zones mémoires sont partagées par le process A.P.I. et par le serveur MODBUS : une zone champ de bits repérés %M0 à %M255 et une zone champ de mots 16 bits repérés %MW0 à %MW255. Ces deux zones mémoires sont partagées par l’application automate et PORT MODBUS TCP Zone bits % M0 à %M255 Zone Mots % MW0 à %MW255 Entrées/sorties physiques A.P.I. Application A.P.I. 1 2 0 Ouvrir la vanne d’admission Fermer la vanne d’admission START et niveau < niveau Max niveau >= niveau Max /STOP et niveau < niveau Min STOP et niveau < niveau Min par le serveur MODBUS, elles sont accessibles en lecture et en écriture. Comme cette représentation schématique le montre, seules les deux zones mémoires (bits %MX et mots %MWx) sont partagées par le serveur Modbus et le processus automate implanté dans l’A.P.I. TWIDO. Il appartient donc au programmeur de l’application automate de déclarer les variables partagées qui seront mises à disposition du serveur MODBUS dans la zone bits et la zone mots en vue d’une supervision de l’application. Voici les affectations retenues pour ce TP : ENTREES T.O.R. LOCALISATION ADRESSE A.P.I. START Entrée 0 module OTB_1 CANOPEN %IWC1.0.0:X0 STOP Entrée 1 module OTB_1 CANOPEN %IWC1.0.0:X1 SORTIES T.O.R. LOCALISATION ADRESSE A.P.I. OUVRIR VANNE Sortie 0 module OTB_1 CANOPEN %QWC1.0.0:X0 FERMER VANNE Sortie 1 module OTB_1 CANOPEN %QWC1.0.0:X1 ENTREE ANALOGIQUE LOCALISATION ADRESSE A.P.I. Adresse image supervision zone mots NIVEAU_CUVE Entrée analogique 10 bits (potentiomètre). %IW0.0.0 %MW1 Variables ADRESSE A.P.I. et supervision ETAPE X0 %MW0 :X0 ETAPE X1 %MW0 :X1 ETAPE X2 %MW0 :X2 Bit Start supervision %M0 Bit Stop supervision %M1 Mot Niveau Max supervision %MW2 Mot Niveau Min supervision %MW3 Les bits d’étapes Grafcet seront donc matérialisés dans le mot mémoire %MW0, soit %MW0:X0 pour étape 0, %MW0 : X1 pour étape 1 etc.. Ce choix permet de grouper dans un seul mot les bits d’état du grafcet afin d’éviter des transferts MODBUS/TCP pour un seul bit. Le résultat de conversion analogique (%IW0.0.0) du niveau de cuve sera transféré à chaque cycle A.P.I. dans le mot mémoire %MW1. On pourra réserver les mots %MW2 pour modifier le niveau maxi et %MW3 le niveau mini depuis la supervision. De même, les bits %M0 et %M1 seront utilisés en écriture depuis la supervision pour permettre un démarrage et un arrêt depuis la supervision en plus des bits physiques start et stop sur entrées T.O.R du module déporté CanOpen. A ce stade, après avoir fixé une adresse IP à l’automate, il est possible d’écrire l’application Grafcet et de vérifier son fonctionnement. Une fois l’application validée, on s’attache à réaliser une application LabView permettant de faire la supervision du process au travers d’une connexion TCP. 7.1. Rappels sur le protocole MODBUS TCP Une connexion client/serveur : Le client (dans notre cas le PC de supervision) effectue une requête MODBUS vers le serveur, soit l’A.P.I. TWIDO ici. La requête formulée par le client contient la PDU MODBUS (unité de données du protocole MODBUS) constituée du code fonction MODBUS indiquant la nature du service requis au serveur et les données nécessaires à la compréhension de ce service : Cette PDU MODBUS est précédée d’un entête MODBUS permettant d’identifier le protocole et d’associer serveur et client dans une transaction commune, l’ensemble formant l’A.D.U. MODBUS : Pour l’acheminement de cette requête et la réponse du serveur, cette trame est encapsulée dans une trame TCP/IP sur Ethernet selon le modèle suivant : Application: MODBUS DATA PACKET Le client(PC) émet sa requête vers le port 502 du serveur, port réservé aux applications MODBUS TCP : 7.2. Les codes fonction MODBUS disponibles sur A.P.I. TWIDO Voici les services MODBUS disponibles sur l’API TWIDO et leur code fonction respectif : Modèle de données MODBUS pour l’API TWIDO Services MODBUS Adresses physiques mémoires API Références MODBUS des éléments adressés Code fonction MODBUS Lecture/Ecriture de bit Bits de %M0 à %M255 Bits de 1 à 256 01 pour la lecture 05 pour l’écriture Lecture/Ecriture de registre Registres de %MW0 à %MW255 Registres de 1 à 256 03 pour la lecture 06 pour l’écriture Lecture/Ecriture de bits Bits de %M0 à %M255 Bits de 1 à 256 01 pour la lecture 15 pour l’écriture Lecture/Ecriture de registres Registres de %MW0 à %MW255 Registres de 1 à 256 03 pour la lecture 16 pour l’écriture 7.3. La programmation de l’application de supervision sous LABVIEW 7.3.1. Connexion au serveur MODBUS : On trouvera ces fonctions dans les fonctions de communication de données, protocole TCP. En tant que client il suffit d’ouvrir une connexion vers le serveur sur le port 502 réservé aux applications MODBUS. Soit : 7.3.2. La librairie NI MODBUS : Plusieurs versions de cette librairie sont disponibles gratuitement en ligne sur le site de National Instruments. Parmi les fonctions de cette librairie à disposition, nous trouvons la requête vers le maître serveur Modbus sur Ethernet (TWIDO) : Le refnum de connection TCP est obtenu à partir de la fonction d’ouverture de connexion précédente ; la fonction attend un cluster de commande MODBUS ; ce cluster comprend le code fonction du service demandé ainsi que les paramètres associés à cette fonction (adresse de départ, nombre de registres ou bits à lire ou écrire….). Voici dans notre cas, le cluster de commande demandant la lecture de deux registres (code fonction 3) à partir de l’adresse 0, donc les registres %MW0 (contenant les bits d’état du grafcet) et %MW1 niveau de liquide cuve : On remarquera la simplicité d’exploitation des données renvoyées dans un cluster de réponse qu’on désassemble pour obtenir un tableau contenant les registres %MW0 et %MW1. Le niveau du liquide (%MW1) peut directement être affiché sur un indicateur de niveau. En ce qui concerne les bits d’étape du grafcet, ils sont contenus dans le mot %MW0 que l’on transforme en tableau de bits. Il suffit ensuite d’utiliser la fonction » indexer un tableau » pour obtenir les bits d’étapes contenus dans ce tableau et d’afficher leur état sur un indicateur booléen PC TWIDO La même fonction sera utilisée pour l’écriture vers le maître, il suffit de changer le code fonction. Voici par exemple le code d’écriture permettant l’envoi des commandes Start et Stop depuis la supervision : 7.4. La programmation Labview La structure adoptée ici ne fait pas appel à une machine d’états ; on a utilisé une structure séquentielle comprenant les étapes suivantes : Etape 1 : Ouverture de connexion vers le serveur MODBUS, A.P.I. Twido. Etape 2 : Elle contient une boucle while que l’on quitte lorsque l’utilisateur met un terme à la supervision. Cette boucle while contient elle-même une structure séquentielle à deux étapes : Etape A : Lecture des variables de supervision. Etape B : Ecriture des variables de paramétrage (Start, Stop, niveaux cuve), uniquement s’il y a eu une modification de consigne en face avant afin de ne pas surcharger inutilement le réseau. On notera qu’ici, à la différence du TP GPIB où l’on utilise une structure événementielle, on utilise une structure de registre à décalage sur la boucle while pour déterminer s’il y a lieu de faire une requête d’écriture. Etape 3 : Fermeture de connexion. 8. Conclusion Les mêmes remarques que celles proposées sur le TP GPIB peuvent s’appliquer. On notera toutefois avec quelle simplicité Labview permet d’effectuer la supervision d’un automate utilisant le protocole MODBUS grâce notamment aux outils très simples à mettre en œuvre de la librairie NI MODBUS. Par ailleurs, l’outil n’étant pas un outil spécifique de supervision, les étudiants peuvent aborder d’autres aspects tels que le traitement du signal, le contrôle de process avec le même environnement.