Ethernet Industriel & Télé-contrôle par Internet



Documents pareils
Sélection du contrôleur

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

CONFIGURATION DE L AUTOMATE SIEMENS

Fiche technique CPU 314SC/DPM (314-6CG13)

Le multiplexage. Sommaire

Variateurs de vitesse

Module EC2b Programmation et Automatisation Bâtiment

Modules d automatismes simples

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

ETI/Domo. Français. ETI-Domo Config FR

UNIVERSITE D'ORLEANS ISSOUDUN CHATEAUROUX

TP D AUTOMATISME TS2 CIRA (première partie)

Présentation du modèle OSI(Open Systems Interconnection)

Ethernet Industriel Réseaux Ethway Coupleur Ethernet sur Automates Programmables. Plan. Contexte

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

MYOSOTIS. Logiciel de supervision et de conduite de réseau NC. 107/2B

Fiche technique CPU 315SN/PN (315-4PN33)

ARCHITECTURE CONSTITUTION D'UN API

COMMANDER la puissance par MODULATION COMMUNIQUER

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Notice d installation des cartes 3360 et 3365

Millenium3 Atelier de programmation

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

LA MESURE INDUSTRIELLE

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

Coffret Distributeur de DJ10: Distributeur de jetons (Avec PC embarqué Siemens et suite logicielle)

Formations spécifiques

NPIH800 GENERATION & RESEAUX. PROTECTION de COURANT TERRE

TABLE DES MATIERES. I. Objectifs page 2. II. Types de réseaux page 2. III. Transmission page 2. IV. Câbles page 3. V.

PL7 Micro/Junior/Pro Métiers communication Tome 1. TLXDSCOMPL7xxfre

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Caractéristiques techniques

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

ProducTVity Station. Surveillance en temps réel des performances de votre production

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

NOTIONS DE RESEAUX INFORMATIQUES

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Transmissions série et parallèle

Zoom sur La Poursuite Solaire

PocketNet SNMP/Modbus

Auto formation à Zelio logic

L AUTOMATISME LE SIGNAL

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

Cours de Génie Logiciel

Conception de circuits numériques et architecture des ordinateurs

Mise en œuvre OPEN5-135 V1.1

KL5121. Pour activer des sorties en fonction de la position d'un codeur

BUILDING AUTOMATION Phoenix Contact dans les coulisses de l Opéra Garnier

Catalogue - Formation en «électropneumatique et systèmes automatisés process control system»

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Module de mesure de courant pour relais statiques serie HD Module de mesure de courant HD D0340I

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

MEGA ITSM Accelerator. Guide de Démarrage

Présentation et installation PCE-LOG V4 1-5

Préparer la synchronisation d'annuaires

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Programme des formations Gamme automates

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

GESTION CENTRALISÉE D EAU CHAUDE ET D ÉNERGIES APPLICATIONS STANDARDS ET NON STANDARDS

Manuel de référence du langage Exemples Les aventures de Docteur R.

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE)

Contrôler et mesurer via des liaisons non permanentes!

1 Gestionnaire de Données WORD A4 F - USB / / 6020 Alco-Connect

Manuel utilisateur FactoryCast

Table des matières. 1. Description du matériel : Données techniques : Présentation de la serrure :... 4

Fiche technique variateur

Système d automation TROVIS 6400 Régulateur compact TROVIS 6493

VOCALYS LITE.

Les diagrammes de modélisation

Informatique Générale Les réseaux

Contrôleur de communications réseau. Guide de configuration rapide DN

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

Indicateur universel de procédé format 96 x 48 mm ( 1 /8 DIN)

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Installation d'un serveur DHCP sous Windows 2000 Serveur

Le WAGO-I/O-SYSTEM 750. Un système pour toutes les applications

NOTICE DE EOBD-Facile Pour Android

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Algorithmique et Programmation, IMA

Travaux pratiques : configuration des routes statiques et par défaut IPv6

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Votre appareil est configuré en usine pour permettre d'envoyer immédiatement des SMS.

PIC EVAL Dev Board PIC18F97J60

2. DIFFÉRENTS TYPES DE RÉSEAUX

Microsoft Windows NT Server

DIAGNOSTIQUER EN UTILISANT L INFORMATIQUE

Les capteurs et leurs branchements

Organisation du module

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

CARACTéRISTIQUES du système IQ3xcite

Transcription:

UE3 : ARS22 Ethernet Industriel & Télé-contrôle par Internet Ethernet Industriel & Télé-contrôle par Internet neanne@univ-tln.fr 2014 DUT GEII S4 P2

UE3 : ARS22 Ethernet Industriel & Télé-contrôle par Internet Plan du Cours : 1 / Spécificités d'ethernet en milieu Industriel a Nature des communications b Contraintes liées à l'environnement industriel c Architecture des réseaux locaux industriels 2 / Rappels d'automatismes. a adressage des données b Les langages de Programmation 3 / Le protocole Modbus a - Historique b - Échanges c - Modbus RTU d - Modbus TCP 2014 DUT GEII S4 P2

1 / Spécificités d'ethernet en milieu Industriel a Nature des communications b Contraintes liées à l'environnement industriel c Architecture des réseaux locaux industriels 3

a - Nature des Communications Industrielles : Réseaux informatiques USINE Gestion, administration, organisation Gestion de production ATELIER Réseaux Locaux Industriels CELLULE MACHINE Supervision, Coordination de Processus Pilotage des processus Bus de terrain TERRAIN Acquisition et réaction sur le processus 4

Internet USINE ATELIER CELLULE MACHINE ETHERNET Industriel Modbus TCP ProfiNET EtherNET/IP PROFIBUS-PA MODBUS TERRAIN DeviceNet CAN Open PROFIBUS-DP AS-i 5

Utilisation d'ethernet en milieu industriel : Niveau «Atelier» : Télécontrôle et télé-maintenance sur site, où à distance via inetrnet. Utilisation de serveurs Webs embarqués. Niveau cellule : 6 Remontée des informations vers la supervision, Traitement des alarmes centralisé... Mise à jour des programmes, firmwares depuis un poste centrale ou via internet

Niveau «Machine» : Communications inter-api : échange de variables entre 2 applications automates, synchronisation de programmes... Lecture écriture Niveau ««Terrain» : Utilisation d'entrées/sorties déportées (nécessite des réseaux déterministes), actionneurs communicants (variateurs de vitesse...) Acquisition des E, Maj des sorties 7

Exemple d'architecture d'un système industriel automatisé communicant : Réseau d'entreprise Réseau Local Industriel M V Bus de terrain Bus de terrain 8

b Contraintes liées à l'environnement Industriel : Réseau Local Industriel = Réseau Informatique de type LAN, dont la topologie, les performances et la robustesse sont adaptées aux contraintes industrielles : Electromagnétiques Robustesse du support de transmission et/ou des signaux électriques mis en jeu vis à vis des perturbations électromagnétiques (Couche 1 du modèle OSI) Physiques (poussières, chocs, températures, atmosphères explosives, vibrations) Robustesse du support de transmission (Couche 1 du modèle OSI) Temporelles Modes d'accès au médium favorisant des temps de réponse déterministes (Couche 2 du modèle OSI) 9

conséquences sur la couche physique: Afin d'adapter le standard Ethernet aux contraintes indusrielles, quelques restrictions et adaptations ont du être apportées au niveau de la couche physique : Connecteurs : Les connecteurs ethernet standards s'avèrent inadaptés aux contraintes industriels (robustesse, indices de protection...). Une connectique renforcée à donc été définie : 10

Câbles : L'utilisation de câbles blindés est indsipensable au niveau terrain et bien souvent jusqu'au niveau cellule. Dans certains environnements très perturbés, l'utilisation de fibre optique pourra même s'avérer indispendable. Une limitation plus sévère qu'en Ethernet standard des longueurs de câble est également requise. 11

Aspects temps-réels : La nature des informations échangées (ordres de commande, états des capteurs etc...) implique de les transmettre de façon la plus déterministe possible afin de garantir le bon fonctionnement des procédés. On distingue 3 niveaux de spécification «temps réel» selon les applications et le type de communication envisagé : STANDARD : Il s'agit de l'échange de variables non critiques entre automates (niveau «machine»), d'envois de commandes depuis le niveaux «cellule» etc... Ce type d'échange tolère des délais de l'ordre de la seconde, ainsi que des temps d'accès non déterministes (TCP/IP standard autorisé). 12

TEMPS REEL : Il s'agit généralement d'informations en provenance et à destination du niveau terrain (Entrées / Sorties Capteurs / Actionneurs). Les temps de rafraîchissement admissibles sont <10ms. ISOCHRONE : Les applications tels que le contrôle de mouvement («Motion Control») imposent des fréquences de rafraîchissement < 1ms avec des variations («jitter») <1µs entre les capteurs/actionneurs et l'entité (Automate, cde num, PCI) gérant l'asservissement. Cette contrainte s'applique notamment aux applications robotiques. 13

c Architecture des Réseaux Locaux Industriels : L'échange de données «temps réel» via la messagerie implicite impose l'utilisation de switchs afin de ségmenter les domaines de collision. En outre, si deux équipements partagent des données d'e/s, il est impératif qu'ils soient connectés à un même switch, de type «cut-through» de préférence. Enfin, il est exclu d'utiliser des switchs pour la «bureautique», ceux-ci doivent être spécialement conçus pour les environnements industriels. 14

Mécanismes d'adressage IP: L'attribution d'une adresse IP dans un réseau industriel est plus contraignante que sur un réseau bureautique. En effet, chaque équipement d'usine connecté au réseau peut potentiellement être l'objet d'une requête (un PC bureautique quant à lui est généralement client), il est donc nécessaire qu'il conserve la même adresse IP une fois configuré. L'adressage statique est donc généralement employé pour les équipements idustriels. 15

3 / Quelques Protocoles : a Protocoles de communication : Ces protocoles regroupent un certain nombre de standards permettant l'échange de données en milieu industriels. Ils concernent au moins la couche application qui est généralement issue d'un protocole historique (sur ligne série comme Modbus par exemple). Certains interviennent également sur les couches basses afin de garantir un échange des données en respectant une contrainte temps réel forte. Modbus TCP, soutenu par l'association Modbus IDA (regroupe Modbus-TCP et les différentes variantes de Modbus RTU) ProfiNET soutenu par l'association ProfiBUS (regroupe Profinet et Profibus) Ethernet/IP soutenu par l'association CIP (regroupe entre autres Ethernet/IP et DeviceNET) 16

Tableau comparatif : Temps réel Ouverture logicielle Interopérabilité matérielle Principal soutien Modbus TCP + + + + + + + Schneider PROFInet + + + + + Siemens Ethernet/IP + + + + + Rockwell 17

II / Rappels de programmation La Norme IEC 1131-3 définit les règles d 'écriture des programmes pour les API. Les fabricants d'api fournissent des logiciels de programmation plus ou moins fidèles à cette norme (de plus en plus tout de même). Cette norme définit entre autres : - Les langages de programmation utilisés, ainsi que les règles de programmation et de syntaxe associées ; - Le principe d'adressage des données traitées par l'api, ainsi que les différents formats de variables existant. Cours API IUT Toulon GEII 18

1 / L'adressage des Données. Toute donnée traitée par un programme automate possède : - Une Direction (Entrée, Sortie, Interne) - Un format (Bit, Octet, Mot...) de la - Un numéro d'adressage (valeur numérique indiquant la position donnée dans le plan mémoire de l'api). La syntaxe pour toute donnée est la suivante : % 'Direction'. 'Format'. 'Numéro' Cours API IUT Toulon GEII 19

La direction : Une entrée est une valeur, provenant de la P.O, qui ne peut être que lue par le programme chargé dans le contrôleur. Notation : %I... Exemple : capteur, détecteur, bouton poussoir etc... Une sortie est une donnée à destination de la P.O, dont la valeur peut être fixée par l'automate. (Remarque : Une sortie peut aussi être lue par le programme) Notation : %Q... Exemple : voyant lumineux, commande d'un contacteur etc... Une variable interne est une donnée qui n'est pas physiquement liée à la P.O, mais une information gérée par le programme chargé dans l'api. Exemples : valeur d'un compteur, d'une temporisation, étape d'un grafcet Notation : %M... Cours API IUT Toulon GEII 20

Le format : Un bit est une valeur binaire ou encore booléenne dont la valeur est «VRAIE» (notée TRUE) ou «FAUSSE» (notée FALSE). Notation : %.. X.. Exemple : Un voyant lumineux est relié à la 4 eme borne de la 1 carte de sorties T.O.R du rack automate. Son état correspondra à la variable booléenne : % Q X 0.3 Un octet est une donnée codée sur 8 bits Notation : %x.b.x Cours API IUT Toulon GEII 21

Un mot est une donnée codée sur 16 bit Notation : %x.w.x Exemple : Un capteur de température est relié à la 3 eme entrée analogique du rack automate. La valeur numérique correspondante sera stockée dans la variable : % I W 2 Un double mot est une variable codée sur 32 bits IUT Toulon Notation : %x.dw.x Cours API GEII 22

Les valeurs numériques peuvent être représentées sous formes décimales, hexadécimales (en ajoutant 16# devant la valeur) ou binaires (2#...) exemples : 125 125 1A2 16 16#1A2 0110 2 2#0110 En plus du format, on peut définir un type pour les variables internes (liste non exhaustive) : INT : valeur entière signée sur 16 bits UINT : valeur entière non signée sur 16 bits DINT : valeur entière signée sur 32 bits DUINT : valeur entière non signée sur 32 bits REAL : valeur réelle sur 32 bits TIME : durée définie en h/mn/s/ms Notation : t #...h...m...s...ms DATE : date définie en année/mois/jour Notation : d #...-...-... TIME_OF_DAY : heure du jour définie en h/mn/s Notation : tod #... :... :... DATE_AND_TIME : date & heure Notation : dt #...-...-... -... :... :... IUT Toulon STRING : chaîne de caractères. Notation : ' Ma Chaine ' Cours API GEII 23

Le dernier champ d'adressage est constitué: - de 2 chiffres séparés par un point pour les bits, le 1 indique le n du mot**, le second la position du bit dans ce mot (0 à 15). - d'un seul chiffre pour tous les autres types. Exemple (bit d'entrée) : %IX0.2 Il s'agit de la 3 entrée (les adresses commencent à 0) T.O.R de l'api. Exemple (Mot interne) : %MW42 Il s'agit du mot interne d'adresse 42. IUT Toulon ** Cela dépend en réalité de la composition -16 bits ou 8 bits - du plan mémoire de l'api. Dans le 1er cas (Wago 750, Schneider) il s'agira d'un n de mot ; dans le 2 cas (Siemens) d'un n d'octet. Cours API GEII 24

2 / Les langages de Programmation La norme IEC 1131-3 définit 5 langages de programmation : IL, ST, SFC, LD et FDB. 2 / Langage IL (Instruction List). Il s'agit d'un langage textuel proche du langage machine de l'api. Il s'apparente à l'assembleur d'un microcontrôleur. Ce langage n'est plus trop utilisé à l'heure actuelle. Exemple : Soit l'équation logique suivante Z = (A. B + C). D... se traduit par le code suivant : IUT Toulon GEII 25

3 / Langage LD (LaDder ). Il s'agit d'un langage graphique. On pourra l'utiliser comme langage à part entière ou bien pour coder les équations logiques des réceptivités d'un grafcet. Le principe est le suivant : - Les variables d'entrée sont symbolisés par des contacts électriques (NO ou NF), les variables de sortie par des bobines. On considère que l'extrémité gauche du réseau constitue la borne + d'une alimentation (imaginaire) et la partie droite sa borne - La mise en série, en // de contacts (variables d'e) NO ou NF permet l'alimentation conditionnelle de la bobine (variable de S), donc L'implantation d'équation logique. IUT Toulon GEII 26

Opérations logiques de Base : ET : OU : NON : Exemple : Soit l'équation logique suivante Z = (A. B + C). D Cette équation se traduit en LD par la ligne suivante : IUT Toulon GEII 27

Mémoire RS : A B t Front montant : x t t A t Front descendant : x A t t t x t IUT Toulon GEII 28

Temporisation : retard à l'activation A TON x t 3s t Temporisation : retard au déclenchement A TOF x 3s 3s t t Temporisation : monostable A TP t IUT Toulon x GEII 3s 3s 29 t

Compteur décompteur : Nom CU CD RESET LOAD IUT Toulon Typ e BOO L BOO L BOO L BOO L Entrée de comptage (sur front) GEII Rôle Entrée de dé comptage (sur front) Entrées de remise à zéro entrée de préchargement PV INT valeur de préchargement 30

4 / Langage FBD (Functionnal Bloc Diagram ). Il s'agit également d'un langage graphique fonctionnant sur le même principe que LD mais avec les symboles s'apparentant à ceux que l'on utilise pour les logigrammes. Exemple : Soit l'équation logique suivante Z = (A. B + C). D Cette équation se traduit en FBD par le diagramme suivant : IUT Toulon GEII 31

Comparaisons Mémoire RS Temporisations opérations logiques Compteurs Détection de Fronts IUT Toulon GEII 32

5 / Langage ST (Structured Text). Il s'agit d'un langage textuel proche des langages évolués tels que le C. Il s'avère indispensable dès lors que l'on a besoin de faire des traitements numériques par exemple. Exemple : Soit l'équation logique suivante Z = (A. B + C). D... se traduit par le code suivant : IUT Toulon GEII 33

Comparaison (alternative IF ELSE END_IF): Incrémentation d'une variable : Affectation : «:=» CPT := CPT + 1 ; IUT Toulon GEII 34

Boucle FOR : FOR i := 0 TO 9 BY 1 DO... ; END_FOR; Boucle WHILE : WHILE condition = TRUE DO... ; END_WHILE; IUT Toulon GEII 35

Opérations Numériques : Le choix du langage ST s'impose dès lors que l'on doit faire des traitements numériques sur des variables. Les opérations de bases sont : - Addition : - Soustraction : - Multiplication : Res := Op1 + Op2 ; Res := Op1 - Op2 ; - Division : Res := Op1 * Op2 ; Res := Op1 / Op2 ; IUT Toulon GEII 36

- modulo : Res := Op1 MOD Op2 ; - Conversion Entier Réel : Nb_Re := INT_TO_REAL ( Nb_ent) ; - Conversion Réel Entier : Nb_ent := REAL_TO_INT ( Nb_Re) ; - Conversion Mot Réel : Nb_Re := WORD_TO_REAL ( Mot) ; IUT Toulon GEII 37

6 / Langage SFC (Sequential Functional Chart ). Il s'agit du langage dérivé de la norme Grafcet. Ses différentes structures sont bien adaptées aux SAP. Il es basé sur la décomposition d'une tâche en étapes, auxquelles dont associées des actions à réaliser, et séparées par des transitions. Lorsqu'une étape est active les actions associées à l'étape sont activées. Lorsque la réceptivité avale qui suit l'étape active devient vraie, l'étape en cours se désactive, et l'étape suivante devient l'étape active. Étape initiale Important : Il faut toujours respecter l'alternance Étape/transition!!! Réceptivité Étape Action IUT Toulon GEII 38

Les réceptivité sont des valeurs booléennes, qui peuvent apparaître directement sur le grafcet (langage ST). Elles peuvent prendre la forme : - De valeurs booléennes constantes (TRUE ou FALSE) - De variables booléennes simples - De combinaisons logiques ( exemple : (a OR b) AND NOT c ) - De comparaison entre des valeurs numériques (exemples : A > 100, A<>B, A=5) - De combinaisons des éléments précédents Note 1 : il est impossible de réaliser une affectation (:=) dans une réceptivité. Note 2 : il sera également possible d'utiliser les langages LD et FBD pour coder les réceptivités ; dans ce cas chaque réceptivité sera programmée dans une section spécifique. IUT Toulon GEII 39

Étapes : L'étape initiale est matérialisée par un double rectangle A chaque étape correspond un nom unique, auquel seront associées les variables : "nom.t" : variable de type "TIME" représentant la durée passée dans l'étape nom.t : durée passée dans l'étape "nom.x" : variable de type "BOOL" représentant l'état de l'étape ('TRUE' si l'étape est en cours, 'FALSE' dans le cas contraire) IUT Toulon GEII 40

Réceptivités : Actions : Entrées TOR Temporisation Sorties TOR, activées pendant la durée de l'étape (attribut 'N' : normal. IUT Toulon GEII 41

Les attributs suivants peuvent être associés aux actions en SFC : Attribu t Paramètre Description N Aucun Action Normale : L'action est activée lorsque l'étape associée est active, et se désactive automatiquement à la sortie de l'étape. S, R Aucun Action Mémorisée : l'attribut «S» (Set) permet de mémoriser l'activation de l'action, celle-ci restera active jusqu'à ce que l'attribut «R» (Reset) soit rencontré dans le grafcet sur la même action. L D Durée d'activation : t#... Temps de retard : t#... Action limitée dans le temps : L'action est activée à l'entrée dans l'étape, puis désactivée automatiquement au bout du temps, spécifié (ou à la sortie de l'étape). Action Retardée : L'action est activée avec le retard spécifié après l'entrée dans l'étape. IUT Toulon GEII 42

Structure OU : Alternative. Elle permet d'effectuer un choix entre plusieurs séquences. Notez bien la structure de la divergence et de la convergence. Divergence Convergence IUT Toulon GEII 43

Cas particulier d'utilisation de la branche OU : IUT Toulon saut d'étapes GEII Reprise de séquence 44

Structure ET : Parallélisation. Elle permet d'effectuer en simultané plusieurs séquences. Divergence Convergence IUT Toulon GEII 45

Convergence en ET : Synchronisation. Une branche en ET converge généralement au moyen d'étapes vides (sans actions) qui terminent chacune des branche parallèles ; avec une réceptivités en aval de la convergence toujours vraie. Cela permet une exécution des différents cycles parallélisés parfaitement indépendante ; et lorsque tous ces cycles sont achevés, le grafcet reprend sa branche principale IUT Toulon GEII 46

7 - Plateforme logicielle CoDeSys Le logiciel CoDeSys est une plateforme de développement ouverte, multimatérielle utilisée entre autres pour programmer les contrôleurs WAGO 750 utilisés en TP - mais des bibliothèques existent pour une grande variété d'api et de contrôleurs. Ce logiciel obéit aux spécification de la norme CEI 61131-3, et permet donc d'utiliser les 5 langages définis par cette norme. Le paramétrage des différentes fonctionnalités matérielles (choix de la CPU et des cartes d'e/s) sera également effectué sur ce logiciel. Enfin, il sera possible de réaliser des pages de visualisation qui permettront de superviser le système grâce à des pages animées par les variables du programme de l'api (qui pourront le cas échéant êtres converties en pages Web.) IUT Toulon GEII 47

Ressources : L'onglet ressources du projet permet de définir les principales caractéristiques logicielles et matérielles du projet : Définition des modules d'e/s Choix de la CPU Organisation du projet en tâches Ajout de bibliothèques logicielles IUT Toulon GEII 48

Langage CFC (Component Functional Chart). Ce langage, utilisé dans CoDeSys, n'est pas défini par la norme CEI, mais sera utilisé dans l'environnement de programmation CODeSys. Il reprend les éléments utilisés en FBD, mais les symboles peuvent être placés librement sur le schéma (et non pas ligne par ligne comme en FBD). De plus, la plupart des opérateurs définis en ST sont également utilisables (opérations numériques etc...). On ne peut pas l'utiliser pour coder les réceptivités. En revanche, on l'utilisera comme langage de programmation principal qui appellera les différentes tâches. En outre, il permet de traiter les données numériques : IUT Toulon GEII 49

Déclaration de variables : Un programme doit réaliser des calculs et utilise donc des variables. Ces variables doivent être déclarées en en-tête de celui-ci. Une variable peut être : - une variable d'entrée s'il s'agit d'une variable que le programme utilise (valeur calculée par un autre sous-programme, état d'un capteur...); - une variable de sortie s'il s'agit d'une variable que le programme modifie (affectation d'une sortie, résultat d'un calcul...) - D'une variable interne, si cette variable est uniquement utlisée pour faire un calcul intermédiaire. IUT Toulon GEII 50

Exemples de déclaration : variable interne du programme "prog" de type booléen, initialisée à '0' et associée à la sortie physique TOR 4.0. Variable booléenne interne à "prog" initialisée à '1'. Variable d'entrée du programme "prog", de type "mot" et associée à l'entrée analogique 0. Variable de sortie du programme "prog", de type 'temps', et initialisée à la valeur 1s et 500ms. IUT Toulon GEII 51

Organisation du projet : Le Projet CoDeSys peut contenir différents "Modules". Il contient au minimum le programme PLC_PRG (programme principal), qui peut éventuellement appelé : - des fonctions : une fonction retourne une valeur, et ne peut mémoriser aucune variable entre deux appels. - des programmes : un programme peut posséder des entrées, des sorties et des variables internes qui peuvent être mémorisées entre deux appels. - des blocs fonctionnels : possède les mêmes caractéristiques qu'un programme mais peut être appelé plusieurs fois. Chaque appel consiste en une instanciation du bloc et apparaît comme une déclaration de variable. IUT Toulon GEII 52

Échange de variables entre programmes : Bloc Fonctionnel G1 : Programme Principal PLC_PRG : Bloc Fonctionnel G2 : IUT Toulon GEII 53

Structures "objets" : Des structures analogues à celles utilisées dans les langages orientés "objet" sont utilisables dans CoDeSys pour échanger des variables entre différents modules. Dans le cas du SFC, pour chaque étape, les 2 variables suivantes sont automatiquement créées lorsque la bibliothèque "iec_sfc.lib" est incluse au projet : Nom_etape. t durée d'activité de l'étape (type TIME) Nom_etape. x activité de l'étape (type BOOL) Pour synchroniser deux grafcets, on pourra donc utiliser : 'PLC_PRG'. 'nom d'instance du bloc'. 'nom de l'étape'. x Si le programme SFC est un bloc fonctionnel, ou bien : 'nom_du_programme'. 'nom de l'étape'. x Si le programme SFC est un programme IUT Toulon GEII 54

Exemple de Synchronisation de grafcets : IUT Toulon GEII 55

Variables "drapeau" : Ce sont des variables utilisables dans les programmes et blocs programmés en SFC, définis dans la bibliothèque "iec_sfc.lib", et qui permettent d'agir sur un grafcet. En voici quelques unes (consulter l'aide pour une liste exhaustive) : SFCInit (BOOL) Réinitialisation du grafcet (retour à l'étape initiale et arrêt de l exécution) SFCReset (BOOL) Retour à l'étape initiale SFCPause (BOOL) Figeage du grafcet SFCError Dépassement du temps maximal affecté à une étape SFCCurrentStep (STRING) Nom de l'étape SFC en cours SFCTip, SFCTipMode (BOOL) Lorsque SFCTipMOde est 'TRUE', le grafcet passe en mode pas à pas, la validation des réceptivités sont alors validées avec SFCTip. IUT Toulon GEII 56

Actions programmées (langage SFC) : En outre, il est également possible de programmer des actions exécutée une seule fois à l'entrée ou à la sortie d'une étape. Ces actions, appelées "actions d'entrée" et "action de sortie" sont effective pendant un seul cycle automate et peuvent être programmées en LD, FBD ou ST : Action d'entrée Action de sortie Step2.X Action d'entrée Action de sortie t t t Exemple de programmation d'action d'entrée en langage ST IUT Toulon GEII 57

Actions programmées - suite (langage SFC) : Une action programmée peut également être de type continue, c'est à dire éxécutée pendant toute la durée de l'étape (comme une action CEI de type 'N'). Cela permet de coder les actions dans le langage de son choix. On peut utiliser cette méthode pour créer des actions condistionnelles : Step2.X Cond A t t IUT Toulon GEII 58

Actions programmées - suite (langage SFC) : L'exemple ci-dessous reprend le fonctionnement précédent mais en langage LD : Step2.X Cond A t t IUT Toulon GEII 59

Modbus : a Historique b Description des échanges Modbus c Modbus série (RTU) d Modbus TCP 60

a Historique : Modbus est la contraction de «Modicon» et de «Bus». Il s'agit du premier bus de terrain normalisé, et a été conçu dans les années 80 par le fabriquant d'automates Modicon (aujourd'hui Schneider-Télémécanique). Historiquement, Modbus a été développé pour le milieu industriel sur des lignes séries (RS232, RS485), puis avec l'essor des réseaux informatiques sur Ethernet. Modbus représentent actuellement un des principaux standards de communication dans le domaine de l'automatisation industrielle, il est supporté par l'association Modbus-IDA chargée de définir les spécifications nécessaires au développement de composants «Modbus compliant». 61

b Description des échanges Modbus: Modbus définit une trame de base baptisée «PDU» («Protocol Data Unit») indépendante du type de protocole considéré (série ou TCP). Elle comporte 2 champs : - Code de la Fonction Modbus : Spécifie le type d'opération initié par la communication (lecture de mots, écriture de bits etc...) - Données : Données nécessaires à l'éxécution de la fonction ou renvoyées par celle-ci. La trame Modbus complète, «ADU» (Application Data Unit») comportera en plus les informations d'adressage et de détection d'erreur propres au média de communication envisagé (série ou TCP). 62

Les fonctions Modbus sont codées sur un octet : - Les valeurs 1 à 127 correspondent à des fonctions Modbus; - Les valeurs 128 à 255 correspondent aux codes d'exceptions indiquant qu'une erreur s'est produite au cours d'un échange; - Le code 0 n'est pas valide. La longueur totale de la trame PDU ne peut excéder 253 octets (pour des raisons de compatibilité des échanges entre les modes série et TCP). La longueur champ de données peut donc être comprise entre 0 et 252 octets. 63

Les échanges Modbus sont basés sur un modèle Client / Serveur (maître/esclave dans le cas série). Le Client (maître) est toujours à l'initiative d'un échange. Il envoie une requête au serveur qui lui retourne, après analyse de cette requête une réponse : La trame de réponse contient les éventuelles données demandées par le client dans le champ de données et le code de la fonction exécutée en echo (Accusé réception : Signifie que la fonction a été correctement exécutée). 64

Si une erreur est détectée à la réception grâce au champ de contrôle (error check), ou si une erreur survient lors de l'éxécution de la requête par le serveur, la réponse renvoyée par celui-ci est alors dite «d'exception» : Le champ «fonction» de la réponse contient alors la valeur [128 + code fonction] indiquant au client que la fonction n'a pu être éxécutée; le champ «données» contient quant à lui un code d'exception indiquant le type d'erreur qui s'est produite. 65

Adressage : Modbus manipule 4 types de données : Type d'objet Accès Exemple: Entrées Discrètes Bits Lecture Interface d'entrées TOR Bits de Sortie ('coils') Bits Lecture/Ecriture Interface de sorties TOR Registres d'entrées Mots Lecture Interface d'entrées analogiques Registres mémoires Mots Lecture/Ecriture Registres internes Les adresses des objets Modbus sont codées sur 16 bits, ce qui autorise 65536 objets de chaque type possible par équipement accessibles via Modbus. C'est à chaque fabriquant de matériel de définir les plages d'adresses pour chacun de ces segments de données, ceux-ci pouvant tout aussi bien être disjoints que confondus : 66

Plan mémoire à segments disjoints : Plan mémoire à segments confondus : 67

Les adresses Modbus PDU commencent à 0, chaque fabriquant spécifie via une table de correspondances les adresses correspondantes des objets accessibles de son équipement : 68

Le logigramme suivant décrit le déroulement d'une transaction Modbus et son traitement côté Serveur : 69

Principales fonctions offertes par Modbus : Code Nature des fonctions MODBUS Code Nature des fonctions MODBUS H 01 H 02 H 03 H 04 H 05 H 06 H 07 H 08 H 09 H 0A 70 Lecture de n bits de sortie Lecture de n bits d entrée Lecture de n mots de sortie Lecture de n mots d entrée Ecriture de 1 bit de sortie Ecriture de 1 mot de sortie Lecture du statut d exception Accès aux compteurs de diagnostic Téléchargement, télé déchargement et mode de marche Demande de CR de fonctionnement H 0B H 0C H 0D H 0E H 0F H 10 H 11 H 12 H 13 Lecture du compteur d événements Lecture des événements de connexion Téléchargement, télé déchargement et MM Demande de CR de fonctionnement Ecriture de n bits de sortie Ecriture de n mots de sortie Lecture d identification Téléchargement, télé déchargement et MM Reset de l esclave après erreur

Exemple de système industriel automatisé mettant en œuvre des échanges ModBus : Le système suivant concerne la partie commande (P.C) d'un procédé industriel destiné à la fabrication de colle. Ce procédé nécessite le mélange d'un réactif en poudre avec un solvant. Le solvant est puisé au moyen d'une pompe P1 vers la cuve de mélange. P1 est actionné via un moteur asynchrone piloté par un variateur (1) de vitesse. Le mélange est effectué par une pâle, également mue par un ensemble moteur asynchrone + variateur (2). Un API gère le pilotage du procédé (acquisition des capteurs : niveaux, températures, commande des vannes, commande des variateurs). Un PC assure la supervision du système (visualisation du cycle de production, alarmes/défauts, choix des modes de marche...) 71

Synoptique de la partie opérative du système : EVS EVR EVV NH, NB fcso, fcro, fcvo 72 Electrovanne Solvant Electrovanne Réactif Electrovanne Vidange Cpateurs Niveau Haut et Niveau Bas fins de course des elctrovannes

Synoptique de la partie commande du système : 73

Équipements mis en jeu : API Wago 750-849 Variateur de Vitesse Altivar 31 : Ports Ethernet pour les échanges Modbus TCP (entre autres) + carte 8 E/TOR pour les capteurs de niveau et fin de course des electrovannes + carte 2 E Analogiques pour mesures de températures dans l'enceinte + carte 4 S TOR pour pilotage des électrovannes (monostables). Dans notre application, l'api est chargé de la commande du process. Toutes ses données d'e/s sont accessibles via Ethernet au superviseur en Modbus TCP. Il transmet également ses ordres aux variateurs via le réseau, en Modbus TCP. 74

Équipements mis en jeu : variateur communicant ATV31 Variateur de Vitesse Altivar 31 : Plusieurs centaines de variables accessibles via Modbus : - En lecture : Courant dans les phases (mot), état thermique du moteur (mot), fins de course (bits)... - En lecture/écriture : réglages PID (mots), consigne de vitesse (mot), M/A (bits), rampes d'accélération et de décélération (mots) etc... Connecteur RJ45 pour réseau Modbus Dans notre application, deux ATV31 sont utilisés pour piloter les variateurs. Ils pourront, grâce à leur communication Modbus transmettre leur état (courants, défauts thermiques etc...) à la supervision, et recevoir les ordres de commande des API. 75

Équipements mis en jeu : passerelle TCP/RTU Elle permet de convertir les couches physiques Ethernet / RS485, et d'encapsuler / Désencapsuler les trames entre les protocoles Modbus RTU et Modbus TCP. 76

Fonction 0x01 : Lecture de n bits de sorties. Cette fonction permet de lire 1 à 2000 bits consécutifs dans le segments mémoire du serveur correspondants aux sorties discrètes («coils»). La trame de requête contient les champs suivants : Code Fonction 1 Octet 0x01 Adresse de départ 2 Ocets De 0x0000 à 0xFFFF Nombre de bits à lire : 2 Octets De 1 à 2000 (0x7D0) La trame de réponse, Champ si aucune : erreur ne survient Taille : : Valeur : Code Fonction : 1 octet 0x01 Nombre d'octets de la trame de réponse : 1 octets N* Etat des bits lus : N octets Etat des bits lus * Rq : N = (nb_de_bits) / 8 si nb_de_bits est un multiple de 8 N = (nb_de_bits) / 8 + 1 dans le cas contraire 77

Si une erreur survient au cours de l'échange, la trame de réponse devient : Champ : Taille : Valeur : Code d'erreur : 1 octet 0x81 Code d'exception : 1 octet Code de l'erreur 78

Fonction 0x02 : Lecture de n bits d'entrées. Cette fonction permet de lire 1 à 2000 bits consécutifs dans le segments mémoire du serveur correspondants aux entrées discrètes («discrete inputs»). La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x02 Adresse du 1er bit à lire : 2 octets 0x0000 à 0xFFFF Nombre de bits à lire : 2 octets 1 à 2000 (0x7D0) La trame de réponse, si aucune erreur ne survient : Champ : Taille : Valeur : Code Fonction : 1 octet 0x02 Nombre d'octets de la trame de réponse : 1 octet N Etat des bits lus : N x 1 octet Valeurs lues 79

Si une erreur survient au cours de l'échange, la trame de réponse devient : Champ : Taille : Valeur : Code d'erreur : 1 octet 0x82 Code d'exception : 1 octet Code de l'erreur Exemple : Le superviseur émet une requête permettant de lire l'état des capteurs de niveau (entrées TOR 1 & 2 de l'api). La cuve est à moitié pleine. Requête : Réponse : Nom du champ : Valeur : Nom du champ : Valeur : 80

Fonction 0x03 : Lecture de n registres. Cette fonction permet de lire 1 à 125 mots (16 bits) consécutifs dans le segments mémoire du serveur correspondants aux registres accessibles en lecture/écriture («Holding register»). La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x03 Adresse du 1 registre à lire : 2 octets 0 à 0xFFFF Nombre de registres à lire (n) : 2 octets 1 à 125 (0x7D) La trame de réponse, si aucune erreur ne survient : Champ : Taille : Valeur : Code Fonction : 1 octet 0x03 Nombre d'octets du champ suivant : 1 octet 2 x n Mots lus : n x 2 octets Valeurs lues 81

Si une erreur survient au cours de l'échange, la trame de réponse devient : Champ : Taille : Valeur : Code d'erreur : 1 octet 0x83 Code d'exception : 1 octet Code de l'erreur Exemple : Le superviseur émet une requête permettant de lire l'état de la température dans la cuve (stockée en 1/100 de degrés dans le mot interne n 1000 de l'api). Celle-ci est de 42,3 C. Requête : Réponse : Nom du champ : Valeur : Nom du champ : Valeur : 82

Fonction 0x04 : Lecture de n registres d'entrée. Cette fonction permet de lire 1 à 125 mots (16 bits) consécutifs dans le segments mémoire du serveur correspondants aux registres accessibles en lecture seule («Input register»). La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x04 Adresse de départ : 2 octets 0x0000 à 0xFFFF Nombre de registres à lire (n) : 2 octets 1 à 125 (0x7D) La trame de réponse, si aucune erreur ne survient : Champ : Taille : Valeur : Code Fonction : 1 octet 0x04 Nombre d'octets de la trame de réponse : 1 octet 2 x n Valeurs de registres lus : nx2 octets valeurs 83

Fonction 0x05 : Ecriture d'un bit de sortie. Cette fonction permet de forcer une sortie à '1' ou à '0' sur l'équipement distant. Le sousachamp «valeur» du champ «données» contient 2 octets : la valeur 0xFF00 permet le forçage à '1', la valeur 0x0000 le forçage à '0'; toutes les autres valeurs sont interdites. La réponse à cette requête est un écho de la requête. La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x05 Adresse du bit à écrire : 2 octets 0x0000 à 0xFFFF Valeur à écrire ('0' ou '1') : 2 octets 0x0000 ou 0xFF00 Si aucune erreur ne survient, la trame de réponse est identique à la trame de requête (écho) La trame de réponse, si une erreur survient : Champ : Taille : Valeur : Code d'erreur : 1 octet 0x85 Code d'exception : 1 octet 01, 02, 03, ou 04 84

Fonction 0x06 : Ecriture d'un registre de sortie. Cette fonction permet l'écriture d'une variable sur un mot accessible en lecture/écriture de l'équipement distant. La réponse à cette requête est un écho de la requête. La trame de requête contient les champs suivants : Si aucune erreur ne survient, la trame de réponse est identique à la trame de requête (écho) La trame de réponse, si une erreur survient : Champ : Taille : Valeur : Code Fonction : 1 octet 0x06 Adresse du registre à écrire : 2 octets 0x0000 à 0xFFFF Valeur à écrire (big endian) : 2 octets 0x0000 à 0xFFFF Champ : Taille : Valeur : Code d'erreur : 1 octet 0x86 Code d'exception : 1 octet 01, 02, 03, ou 04 85

Fonction 0x0F : Ecriture de n bits de sortie. Cette fonction permet d'écrire 1 à 1968 bits consécutifs d'un équipement distant. La réponse à cette requête renvoie le nombre de bits écrits ainsi que l'adresse de départ en écho. La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x0F Adresse de départ : 2 octets 0x0000 à 0xFFFF Nombre de bits à écrire : 2 octets 0x0001 à 0x07B0 Nombre d'octets du champ suivant 1 octet 0 à 255 Valeurs à écrire N octets... Le rangement des bits à l'intérieur des mot se fait de la façon suivante : Adresse de départ b 15 b 14 b 13... b 3 b 2 b 1 b 0 Adresse de départ + 1 b 31 b 30 b 29... b 18 b 17 b 16 Adresse de départ + 2 etc... 86

Fonction 0x10 : Ecriture de n registres. Cette fonction permet d'écrire 1 à 123 registres consécutifs d'un équipement distant. La réponse à cette requête renvoie le nombre de registres écrits ainsi que l'adresse de départ. La trame de requête contient les champs suivants : Champ : Taille : Valeur : Code Fonction : 1 octet 0x10 Adresse du 1 mot à écrire : 2 octets 0x0000 à 0xFFFF Nombre de mots à écrire (n) : 2 octets 0 à 0x7B Nombre d'octets du champ suivant 1 octets 0 à 255 Valeurs à écrire (big endian) : n octets 0x0000 à 0xFFFF La trame de réponse (sans erreur) : Champ : Taille : Valeur : Code Fonction : 1 octet 0x10 Adresse du 1 mot écrit : 2 octet 0 à 0xFFFF Nombre de mots écrits 2 octets n 87

Exercice. Voici la déclaration des E/S du système présenté précédemment : 88

Donnez les trames Modbus (PDU) permettant à un équipement distant : - La lecture de toutes les entrées TOR utilisées : - D'ouvrir la vanne de vidange - De connaître l'état des températures 89

90

c Modbus RTU : La couche physique de Modbus RTU obéit à l'une des 2 normes RS232 ou RS485 : RS232 : Maître RS485 : Maître Echanges entre 1 Maître & 1 esclave : POINT à POINT & Courtes Distances (<20m) Esclave Echanges entre 1 Maître & plsrs esclave : MULTIPOINT Jusqu'à 120m de distance Esclave n 1... Esclave n i Rappels : RS232 : Transmission NRZ, niveaux de tension +/-12V référencés par rapport à la masse. RS485 : Transmission différentielle sur paire torsadée, niveaux de tension 0/5v. 91

Bits transmis Parasites e-m 0 0 1 0 1 1 1 0 1 +12v V RS232-12v RS485 : D0 +5v 0v RS485 : D1 +5v 0v +5v V RS485-5v 92

RS485 2 fils. Il s'agit du mode le plus répandu, tout équipement Modbus série doit permettre ce type de liaison. Terminaisons de bus 93 Résistances de polarisation

Désignation Modbus Nom norme RS485 Direction D0 A/A' E/S D1 B/B' E/S Description D0=V+ pour bit = '0' D0=V- pour bit = '1' D1=V- pour bit = '0' D1=V+ pour bit = '1' Common C/C' x Masse commune (optionnelle) 94

d Modbus/TCP: Port Modbus TCP : Le port 502 est réservé aux communications Modbus. L'équipement serveur «écoute» donc sur ce port pour recevoir les requêtes émises par le client. Celles-ci sont émises par le client sur un port >1024 : 95

Encapsulation des trames : Le protocole Modbus TCP permet d'encapsuler des trames Modbus PDU dans des trames Ethernet, et ainsi offrir les services Modbus ce type de réseau : En-Tête Ethernet En-Tête IP En-Tête TCP Données CRC 22 octets 12 octets 24 octets 1 à 255 octets 4 octets 96

La trame Modbus TCP est constituée d'une trame Modbus-TCP précédée d'une en-tête baptisée «MBAP Header» : L'absence de champ de contrôle propre à la trame Modbus-TCP s'explique par le fait que celui-ci est déjà réalisé par la couche 2 d'ethernet (CRC 32 bits). 97

L' en-tête MBAP Header comporte 4 champs : Transaction Identifier (2 octets) : Ce champ est utilisé pour identifier les transaction circulant sur le réseau, afin que le client puisse faire le lien entre une requête qu'il a émise et une confirmation qu'il reçoit. Protocol Identifier (2 octets) : Ce champ permet d'utiliser plusieurs variantes de protocoles et de les distinguer; pour Modbus, ce champ est à 0x00. Length (2 octets) : Ce champ indique la taille (en octets) de la trame Modbus à (partir du champ suivant). 98

Unit Identifier (1 octet) : Ce champ est utilisé lorsque la trame est adressée à une passerelle Modbus-TCP / Modbus-série, afin d'identifier l'adresse Modbus de l'esclave sur cette ligne : IP : 192.168.0.4 Passerelle Modbus- TCP / Modbus série Unit ID =1 Unit ID =2 99

Le contrôle sur chacun de ces champs pour un client et un serveur est récapitulé dans le tableau suivant : Transact. ID Protocole ID Length Unit. ID Client Initialise la valeur Initialise la valeur Initialise la valeur Initialise la valeur Serveur Retourne au client la valeur qu'il a initialisée Retourne au client la valeur qu'il a initialisée Initialise la valeur Retourne au client la valeur qu'il a initialisée Exemple : Ecrire la trame MB-ADU complète émise par l'api permettant de mettre en route la pompe (48 bit de sortie du variateur correspondant). 100

Modbus-TCP & Le contrôleur Wago 750-849 : Le contrôleur 750-849 est communique naturellement en Modbus-TCP à travers ses ports Ethernet : Toutes ses données d'entrée/sortie sont accessible via des requêtes Modbus sur le réseau Ethernet. Pour cela, une table mémoire image des E/S est automatiquement créée par le contrôleur en fonction des cartes présentes sur le rack. - Les entrées pourront ainsi être accédées par les requêtes de lecture (lecture de bits d'entreée pour les E TOR, lecture de mots d'entreée pour les E Analogiques) - Les sorties sont quant à elles accessibles en lecture ou en écriture (bits de sortie/bobines ou registres) 101

Par ailleurs, des blocs fonctionnels de communication permettent au programme du contrôleur d'initier une requête Modbus-TCP : Bloc fonctionnel «Ethernet_ModbusMaster-TCP» de la bibliothèque «Modbus_Ethernet_03.lib» : 102