• Aucun résultat trouvé

Automatismes Industriels

N/A
N/A
Protected

Academic year: 2022

Partager "Automatismes Industriels"

Copied!
136
0
0

Texte intégral

(1)

Cours AUTO_1 2018-2019

Automatismes Industriels

[email protected]

[email protected]

(2)

I / Les Automates

Programmables Industriels

1 – Présentation

2 – Structure et fonctionnement 3 - Caractéristiques

II / La Programmation IEC 1131-3 sous CoDeSys

1 – L'adressage des données 2 – Le langage IL

3 – Le langage ST 4 – Le Langage LD 5 – Le langage FBD

6 – Le langage CFC (non IEC 1131-3) 7 – Le langage SFC

III / Le bus de terrain ASi

1 – Présentation 2 – Couche Physique

3 – Couche liaison de données 4 – Couche Application

IV / Protocole Modbus

1 – Présentation

2 – Supports de communication 3 – Principe des échanges

Plan du Cours :

(3)

I / Les Automates Programmables Industriels

1 - Introduction

Les automates programmables industriels sont apparus à la fin des années soixante, à la demande de l'industrie automobile américaine, qui réclamait plus d' adaptabilité de leurs systèmes de commande.

Les coûts de l'électronique permettant alors de remplacer avantageusement les technologies alors utilisées.

Avant : utilisation de relais électromagnétiques et de systèmes pneumatiques pour la réalisation des parties commandes

logique câblée

Inconvénients : cher, pas de flexibilité, pas de communication possible

(4)

Contraintes du milieu industriel (1) :

Influences externes :

- poussières, - température, - humidité, - vibrations,

- parasites électromagnétiques, …

→ Solution : utilisation de systèmes à base de microprocesseurs permettant une modification aisée des automatismes.

logique programmée

(5)

Contraintes du milieu industriel (2) :

Personnel : - dépannage possible par des techniciens de formation électromécanique

- possibilité de modifier le système en cours de fonctionnement

Matériel :

- Evolutif - Modulaire

- Implantation aisée

(6)

L'Automate Programmable Industriel (API) est un appareil électronique programmable, adapté à l'environnement industriel, qui réalise des fonctions d'automatisme pour assurer la commande de préactionneurs et d'actionneurs à partir d'informations logique, analogique ou numérique.

Définition :

Les API sont utilisés dans divers secteurs d'activités, que l'on peut regrouper

en trois catégories :

(7)

- Les systèmes automatisés de production (SAP), dont l'objectif est d'apporter de la valeur ajoutée à une matière première, en respectant certaines contraintes (financières, normes de sécurité etc...).

- L'industrie automobile, la métallurgie,

- La production d'énergie (centrales nucléaires, thermiques, hydrauliques...)

- L'industrie agro-alimentaire, pharmaceutique, - Le génie-chimique, la pétrochimie,

- Les chaînes de conditionnement,

- etc ...

(8)

- L'automatisation des bâtiments (GTB : Gestion Technique des Bâtiments), dont les objectifs sont :

- L'amélioration du confort (gestion des ascenseurs, régulation de températures...),

- La sécurité (alarmes anti-intrusion, détection de fumées...)

- La réduction des dépenses énergétiques (gestion automatisée des consignes de température et d'éclairage...)

- Engins de chantiers (grues...), - Tri postal,

- etc...

- L'automatisation de machines spéciales :

(9)

Nature des informations traitées par l'automate :

Analogique : l'information est continue et peut prendre une valeur comprise dans une plage bien déterminée. C'est le type d'information délivrée par un capteur (pression, température …).

Une grandeur analogique (tension, courant...) doit être convertie en grandeur numérique par une carte d'entrée spécifique pour pouvoir être traitée par le programme automate.

Numérique : l'information est contenue dans des mots codés sous forme binaire ou bien hexadécimale. Il peut s'agir d'une variable interne du programme (compteur...).

Tout ou rien (T.O.R.) : l'information ne peut prendre que deux états (vrai/faux,

0 ou 1 …). C'est le type d'information délivrée par un détecteur, un bouton

poussoir …

(10)

Architecture des systèmes automatisés :

Partie Commande

(P.C) Partie Opérative

(P.O) Partie Relation

(P.R)

API (CPU)

Préactionneurs Actionneurs

Effecteurs

Détecteurs / Capteurs Conditionneurs

E Ana E TOR

S Ana & S TOR

Procédé Superviseur

Pupitres opérateurs Commande &

signalisation

(1)

(2)

(3)

(4)

(6) (5)

(7) (8)

(9)

(11)

(1) : l'API transmet les ordres de commandes aux préactionneurs, sous forme de niveaux électriques TOR (0/24V) ou analogiques (0-10V, +/-10V, 4-20mA, 0-20mA)

(2) : Le préactionneur converti ces ordres en commandes contenant l'énergie nécessaire au pilotage des actionneurs. Exemples : contacteurs, distributeurs électro-pneumatique, variateurs de vitesse...

(3) : L'actionneur assure la conversion d'énergie pour agir sur le procédé (exemples : moteur asynchrone, vérin hydraulique, résistance chauffante...).

(4) : l'effecteur se situe entre l'actionneur et le procédé à contrôler (exemples : arbre moteur + pâles pour un malaxeur mu par un moteur asynchrone, ventouse de saisie pour un vérin destiné au

déplacement de plaques métalliques etc...

(5) : Les paramètres physiques utiles à la commande du procédé (exemples : températures, pressions, présences...) sont surveillés grâce à des détecteurs (TOR) et des capteurs (analogiques).

(6,7) : Ces informations électriques sont transmises à la P.C - directement reliées aux cartes TOR pour les détecteurs, parfois par le biais d'un conditionneur (et/ou d'un transmetteur) pour l'analogique.

(8) : Un réseau local industriel dédié à la supervision permet de lier la P.C et la P.R (et donc

indirectement la P.O). Certains éléments de signalisation peuvent néanmoins se faire par le biais des cartes d'E/S (voyants, b.p ...).

(12)

Architectures compactes et modulaires :

Automates modulaires Automates compacts

Crouzet Millenium

Siemens 1200

Schneider Zelio Schneider M340

Siemens 1500

Wago 750

(13)

Informations

(capteurs, dialogue) Entrées

Sorties Ordres

(pré actionneurs, dialogue)

Programme

Traiter les informations entrantes pour émettre des ordres de sorties

en fonction d’un programme.

2 - Structure & Fonctionnement d’un API

(14)

Le cycle de fonctionnement est organisé en 4 tâches :

Bus Entrées / Sorties

Unité de Traitement

RAM

Module d' Entrées

Module Sorties de

Tâche 1 : Gestion du système (auto-contrôle de l’automate)

Tâche 2 : Acquisition des données en entrée (mémorisation)

Tâche 3 : Traitement des données (exécution du programme)

Tâche 4 : Affectation des sorties (émission des ordres)

(15)

Déroulement d'un Cycle-automate :

Traitement Interne

Lecture des Entrées

Exécution du Programme

Ecriture des Sorties

(16)

Présentation du contrôleur WAGO 750-849 :

Ports Ethernet pour le

chargement des programmes, la supervision...

Interface série (configuration)

Bornes pour l'alimentation 24Vcc

(17)

Caractéristiques du contrôleur WAGO 750-849 :

(18)

Interface d'entrée : elle permet de recevoir les informations de la P.O (ou du pupitre) et de mettre en forme (filtrage, ...) ce signal tout en l'isolant électriquement (optocouplage) :

Le contact "N.O"

"ferme le 24 V" sur l'entrée de l'API lorsqu'il est actif

Le contact "N.F"

"ouvre le 24 V" sur l'entrée de l'API lorsqu'il est actif

(19)

Coupleur d'entrées : « du bornier vers la mémoire image »

Mise à jour de façon ponctuelle, à chaque cycle automate

+ - + - + - + -

E1

E2

E3

E4

Bornier d'entrée Isolation / Filtrage Mémoire Image

%IX 0.0 E1

%IX 0.1 E2

%IX 0.2 E3

%IX 0.3 E4

... ….

... ...

(20)

Exemple de Carte D'E TOR (750-400) :

(21)

Exemple de Carte D'E analogiques avec conditionneur pour PT100 (750-461) :

Le signal délivré par la sonde est converti (montage 3 fils) en valeur numérique mise à l'échelle au

format INT.

La température est représentée en 100eme de degrés, sur une plage -200°C / + 200°C.

(22)

Exemple de Carte D'E analogiques 0-10V (750-459) :

la gamme de tension [0 V to +10V] est convertie par un CAN 12 bit, puis mise à l'échelle ; la gamme numérique

obtenue est [0 ; 32760].

(23)

Mettre en évidence dans le tableau suivant le format des données et la résolution du convertisseur :

(24)

Exemple de Carte D'E analogiques 4-20mA (750-454) :

(25)

Cette borne d’entrées analogiques traite des signaux sur une plage de courant standardisée de 0-20 mA ou de4-20 mA respectivement.

Le signal d’entrée est séparé galvaniquement et le transfert à l’unité centrale se fait avec une résolution de 12 bits.

(26)

+ - + -

+ - + -

S1

S2 S3 S4

Bornier de sorties Isolation / Amplification -

Relayage Mémoire Image

des sorties

S1

%QX 0.0

S2

%QX 0.1

S3

%QX 0.2

S4

%QX 0.3

... ….

... ...

Variables du

programme

Bits de sorties

Interface de sortie :

elle permet de commander les préactionneurs et éléments de signalisation du S.A.P. tout en assurant l'isolement électrique entre P.C et P.O.

Mise à jour de façon ponctuelle, à chaque cycle automate

(27)

Exemple de Carte De S TOR à Relais (750-513) :

(28)

Caractéristiques :

La tension commutée par une sortie à Relais peut être une

source continue ou alternative

La fréquence de commutation admise est relativement faible

( < 1 Hz)

(29)

Exemple de Carte De S TOR à Transistors (750-501) :

(30)

Cractéristiques :

La tension commutée par une sortie à

transistor es nécessairement

continue

La fréquence de commutation peut être élevée (plrs kHz)

(31)

Exemple de Carte De S ANA +/-10V :

(32)

Mettre en évidence dans le tableau suivant le format des données et la résolution du convertisseur :

(33)

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).

Le logiciel CoDeSys est une plateforme de développement ouverte,

multimatérielle utilisée pour programmer les contrôleurs WAGO utilisés en TP.

Il obéit aux spécification de la norme CEI 61131-3

II / La Programmation IEC 1131-3

(34)

Toute donnée traitée par un programme automate possède : - Une Direction (Entrée, Sortie, Interne)

- Un format (Bit, Octet, Mot ...)

- Une Adresse (Chiffre indiquant la position de la donnée dans le plan mémoire de l'API).

La syntaxe pour toute donnée est la suivante :

% 'Direction' . 'Format' . 'Adresse'

1 / L'adressage des Données.

(35)

La direction :

Une entrée est une valeur, provenant du terrain, qui ne peut être que lue par le programme chargé dans le contrôleur.

Notation : %I.x.x

Exemple : capteur, détecteur, bouton poussoir etc...

Une sortie est une donnée à destination du terrain, dont la valeur peut être fixée par l'automate. (Remarque : Une sortie peut aussi être lue par le programme)

Notation : %Q.x.x

Exemple : voyant lumineux, commande d'un contacteur etc...

Une variable interne est une donnée qui n'est pas directement liée au terrain, 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.x.x

(36)

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.X.x.x

Exemple : Un voyant lumineux est relié à la 4eme 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

(37)

✔ Un mot est une donnée codée sur 16 bit Notation : %x.W.x

Exemple : Un capteur de température est relié à la 3eme entrée analogique du rack automate. La valeur numérique correspondante sera stockée dans la variable :

✔ Un double mot est une variable codée sur 32 bits Notation : %x.DW.x

% I W 2

(38)

38

ITII2 Automatisme

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 1A216 → 16#1A2 01102 → 2#0110

En plus du format, on peut définir un type pour les variables internes (liste non exhaustive) : BOOL : valeur booléenne ('TRUE' ou 'FALSE')

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 # ...-...-... - ... : ... : ...

STRING : chaîne de caractères. Notation : ' Ma Chaine '

(39)

Les adresses :

Le dernier champ d'adressage d'une donnée est son adresse.

Elle est constituée:

- 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) de la 1ere carte d'E T.O.R.

Exemple (Mot interne) : %MW42 Il s'agit du mot interne d'adresse 42.

(40)

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.

(41)

variable interne du programme "prog" de type booléen, initialisée à '0' et associée à la sortie physique TOR 4.0.

Variable de sortie du programme "prog", de type 'temps', et initialisée à la valeur 1s et 500ms.

Variable booléenne interne à "prog" initialisée à '1'.

Exemples de déclaration :

Variable d'entrée du programme "prog", de type

"mot" et associée à l'entrée analogique 0.

(42)

Organisation du projet :

Le Projet CoDeSys 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.

(43)

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 →

... se traduit par le code suivant :

%I1.3 .

%I1.4) 1.5)

((%I1.0.%I

%Q2.0  

La norme IEC 1131-3 définit 5 langages de programmation : IL, ST, SFC, LD et FDB.

(44)

3 / 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 →

... se traduit par le code suivant :

%I1.3 .

%I1.4) 1.5)

((%I1.0.%I

%Q2.0  

%Q2.0 := ( (%I1.0 AND %I1.5) OR %I1.4 ) AND NOT( %I1.3) ;

(45)

➢ Comparaison (alternative IF … ELSE … … END_IF):

➢ Incrémentation d'une variable :

CPT := CPT + 1 ;

Affectation :

« := »

(46)

➢ Boucle FOR :

➢ Boucle WHILE :

FOR i := 0 TO 9 BY 1 DO

... ; END_FOR;

WHILE condition = TRUE DO ... ;

END_WHILE;

(47)

➢ 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 :

- Division :

Res := Op1 + Op2 ; Res := Op1 - Op2 ;

Res := Op1 * Op2 ;

Res := Op1 / Op2 ;

(48)

- modulo :

- Conversion Entier → Réel :

- Conversion Réel → Entier :

- Conversion Mot → Réel :

Res := Op1 MOD Op2 ;

Nb_Re := INT_TO_REAL ( Nb_ent) ;

Nb_ent := REAL_TO_INT ( Nb_Re) ;

Nb_Re := WORD_TO_REAL ( Mot) ;

(49)

4 / Langage LD (LaDder ).

Il s'agit d'un langage graphique que l'on pourra par exemple utiliser 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.

(50)

➢ Opérations logiques de Base :

ET : OU : NON :

Exemple : Soit l'équation logique suivante →

Cette équation se traduit en LD par la ligne suivante :

%I1.3 .

%I1.4) 1.5)

((%I1.0.%I

%Q2.0  

(51)

Mémoire RS :

Front montant :

t t t

A B x

t

t t

A

x

t

x

t

A

Front descendant :

(52)

➢ Temporisation : retard à l'activation

➢ Temporisation : retard au déclenchement

➢ Temporisation : monostable

t

t

A

x

3s

t

t

A

x

3s

t

t

A

x

3s

3s

3s

TON

TOF

TP

(53)

➢ Compteur décompteur :

Nom Type Rôle

CU BOOL Entrée de comptage (sur front) CD BOOL Entrée de dé comptage (sur front) RESET BOOL Entrées de remise à zéro

LOAD BOOL entrée de préchargement PV INT valeur de préchargement

QU BOOL Sortie, passe à 'TRUE' lorsque CV >=PV QD BOOL Sortie, passe à 'TRUE' lorsque CV = 0

(54)

5 / 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 →

Cette équation se traduit en FBD par le diagramme suivant :

%I1.3 .

%I1.4) 1.5)

((%I1.0.%I

%Q2.0  

AND

OR

AND

%I1.4

%I1.3

%Q2.0

%I1.5

%I1.0

(55)

6 / Langage CFC (Component Functional Chart).

Ce langage 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.

(56)

Mémoire RS

Opérations numériques

opérations logiques

Compteurs Comparaisons

Détection de Fronts

(57)

7 / Langage SFC (Sequential Functional Chart ).

Il s'agit du langage Grafcet. On l'utilisera pour décrire les différentes tâches séquentielles de l'automatisme.

Il est constitué d'étapes auxquelles sont associées des actions. Les étapes sont séparées par des réceptivités. Lorsqu'une étape est active les actions associées à l'étape sont

activées.

Lorsque la réceptivité qui suit l'étape active devient vraie, l'étape en cours se désactive, et l'étape suivante devient l'étape active.

Réceptivité

étape

Action

Étape initiale

Important : Il faut toujours respecter l'alternance

Étape/transition

(58)

É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)

(59)

Entrées TOR

Temporisation

Sorties TOR,

activées pendant la durée de

l'étape (attribut 'N' : normal.

Réceptivités : Actions :

(60)

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 ou temporelles (exemples : A > 100, A<>B, A=5, etape1.t>t#1s500ms)

- 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.

(61)

Les attributs suivants peuvent être associés aux actions en SFC :

Attribut 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 Durée

d'activation : 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).

D Temps de

retard : t#...

Action Retardée : L'action est activée avec le retard spécifié après l'entrée dans l'étape.

(62)

Le chronogramme suivant récapitule l’exécution des différents types

d'action possibles : t

t t tr0

t t t t t t t tr1

tr2 Init.X Step2.X Step3.X A B C D

1s

(63)

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

(64)

✔ Cas particulier d'utilisation de la branche OU :

Reprise de séquence

saut d'étapes

(65)

Structure ET : Parallélisation. Elle permet d'effectuer un choix entre deux séquences.

Notez bien la structure de la divergence et de la convergence.

Divergence

Convergence

(66)

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

(67)

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) :

SFCReset (BOOL) → Réinitialisation du grafcet (retour à l'étape initiale et arrêt de l’exécution)

SFCInit (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.

(68)

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

Exemple de programmation d'action d'entrée en langage ST

t t t Step2.X

Action d'entrée Action de sortie

Actions programmées (langage SFC) :

(69)

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 :

t t Step2.X

Cond A

(70)

Actions programmées - suite (langage SFC) :

L'exemple ci-dessous reprend le fonctionnement précédent mais en kangage LD :

t t Step2.X

Cond A

(71)

➢ Appel & Synchronisation de programmes :

Programme Principal PLC_PRG :

Bloc Fonctionnel G2 :

Bloc Fonctionnel G1 :

Étapes de synchronisation

(72)

Bloc Fonctionnel G1 : Déclaration des variables d' E/S

Bloc Fonctionnel G2 : Déclaration des variables d' E/S

(73)

➢ Structures "objets" :

On peut également synchroniser l'exemple précédent en utilisant les structures analogues à celles utilisées dans les langages orientés "objet" mises en œuvre dans CoDeSys.

On peut ainsi échanger des variables entre programmes. Dans le cas du SFC, pour chaque étape, les 2 variables suivantes sont automatiquement créées :

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

(74)
(75)

Présentation :

Liaison série Multipoint (2 fils) pour relier l'ensemble des capteurs et des préactionneurs à l'automate.

Celui-ci possède une carte spécifique appelée « coupleur » et qui est maître de la liaison, c'est à dire capable d'interroger les capteurs et de commander les préactionneurs.

Chaque nœud (capteur ou préactionneur) connecté au bus possède sa propre adresse lui permettant d'être identifié par l'automate via le coupleur.

Il existe plusieurs protocoles de communication

pour les bus capteurs/Actionneurs. Le plus répandu est ASi (Actuator Sensor Interface).

III / Le Bus de terrain ASi

(76)

E/S E/S

API

Maître AS-Interface

API

Câblage « traditionnel » Câblage « Bus »

Comparaison Câblage traditionnel / Câblage Bus :

Coupleur

Bus

Esclaves (capteurs + préactionneurs)

(77)

Intérêts des bus capteurs/actionneurs :

Câblage simplifié

Réduction des coûts de maintenance

Réduction des coûts et des durées d'installation.

(78)

Technologie prise vampire :

connexion rapide et aisée des capteurs/actionneurs ou modules

câble plat codé mécaniquement

deux fils pour les données et la puissance Gaine isolante IP67 autocicatrisante

inutile de dénuder pour raccorder un nouveau composant sur le bus

montage dans toutes les positions

Le Câble ASi :

(79)

• Transmission par courants porteurs :

Un seul câble pour alimenter les capteurs & actionneurs (jusqu'à 8A) connectés au bus, et le transfert des données.

• Alimentation en mode différentiel (TBTS):

Bonne immunité aux perturbations (CEI 1000-4).

Redressement

=

Primaire L

L R V+

Découplage

AS-i +

AS-i -

30 V=

V-

R

Codage Manchester par courant porteur

AS

t

U alim 30V

Alim. + transfert des données

Alimentation et Signaux électriques sur le bus:

(80)

0 0 1 0 1 1 1 0 1

ÉmissionRéception

Bits à coder

Codage Manchester

Signal après filtrage (Modulation APM)

détection fronts descendants

détection fronts montants

Bits décodés (RS)

(81)

Asi est basé sur une architecture

maître/esclave, avec 1 seul maître pâr bus qui peut initier une

communication.

Cette technique permet de garantir la durée du temps de cycle (temps nécessaire à l'interrogation de tous les esclaves connectés au bus).

Système Maître / Esclave :

(82)

Maître

Esclave 1

Esclave 2

Esclave 31 Requête maître

Réponse esclave 1

Requête maître Réponse esclave 2

Requête maître Réponse esclave n

Esclave n

Requête maître Réponse esclave 31

31 esclaves maximum Temps de cycle

caractéristique: 5 ms pour 31 esclaves

Polling des esclaves :

Le coupleur ASI gère de façon autonome (ou IMPLICITE) la communication avec les esclaves ; il s’agit d’une tâche de fond qui n’est pas accessible au programmeur.

(83)

Maître:

polling cyclique des esclaves

Esclave AS-i : adresse de 1 à 31

mise à jour des sorties

acquisition de l'état des entrées

Requête maître Réponse esclave

1 Esclave AS-i supporte:

4 interfaces logiques

(entrées, sorties ou bidirectionnelles) et au besoin,

4 paramètres

pour sélectionner un état particulier

Un seul mâitre Asi peut donc gérer jusqu'à 62 x 8 = 496 E/S T.O.R (en Asi v2.0 ou supérieur – 248 pour Asi v1.0)

(84)

Esclave Maître

Les échanges Maître / Esclave :

Ad=1 Ad=2

Ad=3 Ad=4

Echanges des données d'entrées / sorties Paramètres Services

1 cycle AS-i

Q. Ad1 R.1 Q. Ad2 R.2 Q. Ad3 R.3 Q. Ad4 R.4 P. Adx R.x S. Ady R.y

Etat des entrées

Mise à jour des sorties

Q. Ad1 R.1

(85)

ST CB A4 A3 A2 A1 A0 I4 I3 I2 I1 I0 PB EB

ST I3 I2 I1 I0 PB EB

Requête du maître :

Réponse de l ’esclave :

5 bits d'information fonction du type de la requête

4 bits d'information retournée au maître Bit de début

ST = 0

Bit de début ST = 0

Bit de fin EB = 1

Bit de fin EB = 1 Bit de contrôle

0 = échange de paramètres, données, définis par I0 à I4 1 = commande définie par I0 à I4

Bit de contrôle de parité paire n'incluant pas le bit de fin

Bit de contrôle de parité paire n'incluant pas le bit de fin 5 bits d'adresse esclave (1 à 31) 0 réservé à la fonction adressage automatique

Mise en trame :

(86)

Exercice :

Calculer la durée minimale d'un cycle de traitement AS-i lorsque le nombre

maximum d'esclaves est connecté au maître et vérifier la durée annoncée par les caractéristiques du bus AS-i.

Le débit sur la ligne est maximum (170 kBps)

Réponse :

Tcycle = (31 + 1 + 1) * (14 + 7) / 170.103 = 4,07 ms < 5ms

[Nombre de trames] * [Nombre de bits/trame] / [débit]

(87)

Catalogue des requêtes du maître :

CB

0 A4 A3 A2 A1 A0 0 S3 S2 S1 S0

Echange de données Ecriture de paramètres Ecriture d'adresse Reset esclave Reset adresse

Lecture I/O Configuré Lecture code ID

Lecture Status esclave

Lecture et reset Status esclave

0 A4 A3 A2 A1 A0 0 P3 P2 P1 P0

0 0 0 0 0 0 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 A4 A3 A2 A1 A0

1 1 1 0 0

0 0 0 0 0

0 0 0 0

1

0 0 0

1 1

1 1 1 0

1 1 1

1

1 1

5 bits d'adresse esclave 5 bits d'information Requêtes du maître

(88)

Catalogue des réponses des esclaves:

Réponse esclave

E3 E2 E1 E0

P3 P2 P1 P0

1 1

0 0

1 1

0 0

1 1

0 0

C3 C2 C1 C0

ID3 ID2 ID1 ID0 St3 St2 St1 St0 St3 St2 St1 St0 4 bits d'information

Pi = paramètres renvoyés en écho

Ack de l'esclave '6 Transaction 15 ms max Ack de l'esclave '6 Transaction 2 ms max Ack de l'esclave '6

I/O code esclave de '0 à 'F ID code esclave de '0 à 'F

Sti = 4 bits d'états de l'esclave

Sti = 4 bits d'états de l'esclave avant RAZ Ei = entrées esclave

(89)

Profils ASi.

Chaque équipement ASi dispose d'un profil, qui va permettre de garantir l'interopérabilité des produits ASi entre fabricants.

Ce profil prend la forme d'une valeur (1 octet), notée en hexadécimal, et définit le comportement de l'esclave sur le bus :

- Données d'entrées et de sorties échangées - Paramètres accessibles

- Type de capteur / actionneur

Ci-après, deux exemples de profils éxistants.

(90)
(91)
(92)

Plan Mémoire du maître ASi :

L'automate crée automatiquement un plan mémoire image pour l'ensemble des entrées, et un autre pour les sortie gérées par le coupleur Asi.

Pour une configuration standard, avec le coupleur en première position dans le rack, les esclaves ASi T.O.R seront adressés comme suit dans le programme automate :

@2 @3 XXX @1

@6 @7 @4 @5

@10 @11 @8 @9

@14 @15 @12 @13

... ...

... @16

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

%IW4

%QW4

%IW5

%QW5

%IW6

%QW6

%IW7

%QW7

%IW8

%QW8

Bit :

(93)

Exemples de composant ASi :

D0 = commutation D1 = signalisation D2 = état

D3 = test

P0 =temporisation P1 = inversion P2 = distance

P3 = fonction spéciale

capteur ou Actionneur

énergie

Esclave avec circuit intégré AS-

Interface Un boîtier

Une connexion

Structure :

(94)

Exemple de capteur :

Cellule Photoélectrique XUJK... (Schneider) :

Distance de détection (P1)

Dark-on / Dark-off (P2)

AS-i

Alimentation par le bus :

Paramètres :

Données :

Détection (entrée I1)

Encrassement lentille (entrée I2)

(95)

Exemple d'actionneur (pré) :

Distriubteur électropneumatique AC2027 (ecomot) :

(96)

D0 = capteur 1 D1 = capteur 2

D2 = actionneur 1 D3 = actionneur 2 P0

Jusqu’à 4 capteurs ou/et

4 actionneurs

énergie

Esclave avec circuit intégré AS-

Interface

Un boîtier Auto-surveillance

interface AS-i pour capteurs/actionneurs conventionnels :

(97)
(98)

Exemple de maître Asi pour API :

Borne WAGO 750-655 pour contrôleur 750-xxx :

(99)

Console d'adressage ASi:

- Adressage des esclaves Asi (Modes A/B),

- Fonctions de Diagnostique (Tension Bus etc...),

- Lecture des profils ASi, - etc...

(100)

1 - Présentation

1.1 – Objectifs

1.2 – Exemple d’application

1.3 – Types de données

1.4 – Principales fonctions

2 – Supports de Communication

2.1 – RS232

2.2 – RS485

2.3 – Ethernet

2.4 - Synthèse

3 – Transactions Modbus

3.1 principe des échanges

3.2 Trames Modbus RTU

3.3 Trames Modbus TCP

Annexes

Principales fonctions Modbus

Extraits de documentations

IV / Le Protocole Modbus

(101)

1 - PRÉSENTATION

1-1 – Objectifs

Groupe Schneider / Merlin Gerin / Télémécanique (Modicon à l’époque) à l’origine du projet

Système de communication basé sur une liaison série

Faire communiquer entre eux différents équipements d’automatisme (automates, variateurs, IHM…)

Echanger des données sous formes de Bits et de Mots

Exemple :

API (maître) IHM

@1

Affichage état de l’état

fonctionnement

Ordres de pilotage

Liaison Modbus

(102)

q

1-2 – Exemple d’application

q L’architecture suivante permet la supervision d’une installation électrique destinée à la ventilation d’un local :

q

q 4 variateurs de vitesse Schneider ATV61 sont utilisés pour piloter les moteurs d’entraînement des ventilateurs

q

q Un coupleur* Modbus Wago 750-312 muni d’une carte 8 entrées TOR est utilisé pour relevé l’état des disjoncteurs de l’installation. Les contacts auxiliaires des disjoncteurs sont reliés comme suit :

qQ1 (extraction 1) : ED1

qQ2 (extraction 2) : ED2

qQ3 (insufflation 1) : ED3

qQ4 (insufflation 2) : ED4

qQ0 (général) : ED5 (ED6, ED7, ED8 : N.C)

q

q Un compteur d’énergie communicant Schneider IEM3150 effectue différents relevés (puissance instantanée, énergie consommée, courants, tensions…)

q

(103)

Réseau Ethernet

Liaison RS485**

Poste de supervision PC + carte réseau Logiciel de supervision utilisant Modbus (TCP)

@IP : 192.168.0.100

Extraction 1 Variateur ATV61

@ Modbus : 1

Extraction 2 Variateur ATV61

@ Modbus : 4

Insufflation 1 Variateur ATV61

@ Modbus : 2

Insufflation 2 Variateur ATV61

@ Modbus : 3

Surveillance disjoncteurs Coupleur 750-312

Carte 8E TOR

@ Modbus : 6

Compteur Energie iem3150

@ Modbus : 5 Passerelle MB

Ethernet/RS485

@IP :

192.168.0.101

(104)

1-3 – Types de données

4 types de données sont définis par le protocole:

Type d’objet Accès Exemples

Discret Inputs Bit R - entrées TOR

- Fin de course

- Contact auxiliaire de disjoncteur

Coils Bit R/W - Sorties TOR

- Bit interne

- RAZ d’un compteur d’énergie

Input Registers Mot R - Entrées analogiques

- Lecture d’un capteur

Holding Registers Mot R/W - Sorties analogiques

- Variable d’un programme (ex: temporisation, opérande d’un calcul…)

- Valeur de paramétrage d’un équipement (ex : consigne de vitesse d’un variateur…)

ü Les données d’un équipement sont identifiées par des adresses codées sur 16 bits.

ü Exemple (compteur d’énergie Schneider iem3150) :

(105)
(106)

Les fonctions Modbus permettent à des équipements d’échanger ces différents types de données :

Code Fonction Description

1 Lecture de bits (coils)

2 Lecture de bits d’entrée (discret inputs)

3 Lecture de mots (holding registers)

4 Lecture de mots d’entrée (input registers)

5 Ecriture de 1 bit

6 Ecriture de 1 mot

15 Ecriture de n bits

16 Ecriture de n mots

Exemples (installation ventilation du §1.2) :

Fixer la vitesse de rotation d’un ventilateur : fonction 6

Relever les mesures du compteur d’énergie : fonction 3 ou 4

Afficher l’état des disjoncteurs : Fonction 1

1-4 – Principales Fonctions

(107)

2 – SUPPORTS DE COMMUNICATION

2.1 - RS 232

ü Liaison Point à Point

ü 3 Fils minimums : Emission (Tx) – Réception (Rx) – Masse/référence commune (Gnd)

ü Niveaux de tension +12V (‘0’) / -12V (‘1’)

ü D < 30m

‘0’ ‘1’ ‘0’ ‘0’ ‘1’ ‘1’ ‘0’ ‘0’ ‘1’

+12V

-12V

Vrs232

(108)

Connectique :

(109)

2.2 - RS 485

ü Liaison Multipoints (jusqu’à 63 esclaves en Modbus)

ü 2 Fils minimums : D0 – D1

ü Transmission différentielle (Niveaux de tension 0V/5V)

ü D < 120m (1000m avec répéteurs)

‘0’ ‘1’ ‘0’ ‘0’ ‘1’ ‘1’ ‘0’ ‘0’ ‘1’

+5V

0V

VD0

(110)

Comparaison RS232 / RS 485 :

(111)

Dans tous les cas (RS232 et RS485), on doit définir les paramètres de la communication considérée, et vérifier que le paramétrage soit identique sur toutes les stations :

Débit binaire (« Baudrate ») : Egalement appelé « vitesse de transmission », Il s’exprime en Bauds (Bds) et correspond au nombre de bots par seconde.

Par défaut, le débit est de 19200 Bds en Modbus. Autres débits usuels : 1200 Bds, 2400 Bds, 4800 Bds, 9600 Bds.

Parité (« Parity ») : Bit de contrôle insérer à la fin de chaque octet transmis vérifiant, selon le paramétrage choisi, que le nombre de bits à ‘1’ dans l’octet est paire (« even ») / impaire (« odd »).

Le contrôle de parité peut aussi être désactivé (« none »)

Bit(s) de stop : Un bit de Start à ‘0’est inséré au début de chaque octet à transmettre. L’utilisateur peut également paramétrer 1 ou 2 bits de STOP

‘1’) à la fin de celui-ci.

Contrôle de flux : Matériel (utilisation des signaux RTS/CTS), logiciel ou aucun.

(112)

Connectique :

Références

Documents relatifs

Le schéma fonctionnel simplifié du variateur de vitesse est donné figure 4 ci-dessous.. Le bloc 2 est constitué d’un condensateur placé

3°) Traduisez l’algorithme en Python, exécutez-le (vérifiez la réponse à la question 1°) pour voir si votre.. Exercice 8 : Le magicien Un magicien demande à un spectateur :. ➢

mais dont un des grands-parents était un ayant droit. 3) un élève dont le parent, tuteur ou tutrice et l’enfant parlent la langue française mais n’ont pas le statut d’ayant

Quelle formule faut-il taper en C10 pour obtenir le premier terme de la matrice des coefficients techniques C associée à la répartition sectorielle proposée?. Compléter alors la

Des structures analogues à celles utilisées dans les langages orientés &#34;objet&#34; sont utilisables dans CoDeSys pour échanger des variables entre différents modules. Dans le

• Parmi les personnes handicapées nouvellement inscrites à l’ANPE, les jeunes de moins de 25 ans ne représentent que 9 % des demandes d’emploi enregistrées, proportion beaucoup

La certification ISO 14001, relative à la prise en compte de l’environnement dans les projets d’infrastructures routières menés par la DREAL Rhône-Alpes et la DIR Centre Est, a

Pôle Emploi en lien avec l’organisme de formation et les entreprises engagées dans le dispositif, validera les profils de demandeurs d’emploi les plus en adéquation