Vous êtes sur la page 1sur 96

LP SARII – Parcours AS UE21 - Automatisme

Automatismes Industriels

2019-2020 nicolas.neanne@univ-tln.fr 1
LP SARII – Parcours AS UE21 - Automatisme

Plan du Cours :
I / Les Automates III / API Wago et plateforme
Programmables Industriels logicielle CoDeSys
1 – Présentation 1 – Plateforme logicielle & langages associés
2 – Structure et fonctionnement 2 – Architectures matérielles & Réseaux
3 - Caractéristiques
IV / API Schneider M340 et
II / La Programmation IEC 1131-3 plateforme logicielle Unity
1 – Architectures matérielles & Réseaux
1 – L'adressage des données
2 – Plateforme logicielle & langages associés
2 – Le langage IL
3 – Le langage ST V / API Siemens et plateforme
4 – Le Langage LD logicielle TIA/Step7
5 – Le langage FBD 1 – Architectures matérielles & Réseaux
7 – Le langage SFC 2 – Plateforme logicielle & langages associés

2019-2020 2
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 3
LP SARII – Parcours AS UE21 - Automatisme

→ Solution : utilisation de systèmes à base de microprocesseurs


permettant une modification aisée des automatismes.

⇒ logique programmée

Contraintes du milieu industriel (1) :

✔ Influences externes :

- poussières,
- température,
- humidité,
- vibrations,
- parasites électromagnétiques, …

2019-2020 4
LP SARII – Parcours AS UE21 - Automatisme

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 :

- Évolutif
- Modulaire
- Implantation aisée

2019-2020 5
LP SARII – Parcours AS UE21 - Automatisme

Définition :
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.

Les API sont utilisés dans divers secteurs d'activités, que l'on peut regrouper en
trois catégories :

2019-2020 6
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 7
LP SARII – Parcours AS UE21 - Automatisme

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

- L'automatisation de machines spéciales :


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

2019-2020 8
LP SARII – Parcours AS UE21 - Automatisme

Nature des informations traitées par l'automate :


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

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

2019-2020 9
LP SARII – Parcours AS UE21 - Automatisme

Architecture des systèmes automatisés :


Partie Relation Partie Commande Partie Opérative
(P.R) (P.C) (P.O)

Commande & signalisation Préactionneurs Actionneurs


(2)

(9) (3)
S Ana & S TOR Effecteurs
Superviseur (8) API (CPU)
(4)
E Ana E
TOR
Procédé
Pupitres opérateurs
(5)
(6)
Détecteurs /
Conditionneurs Capteurs
(7)

2019-2020 10
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 11
LP SARII – Parcours AS UE21 - Automatisme

Architectures compacte et modulaires : :

Automate compact Millenieum


(Crouzet)

Automates modulaires Télémécanique

2019-2020 12
LP SARII – Parcours AS UE21 - Automatisme

2 - Structure & Fonctionnement d’un API

Informations
(capteurs, dialogue)
Entrées

Traiter les informations entrantes


Programme pour émettre des ordres de sorties en
fonction d’un programme.

Sorties
Ordres
(pré actionneurs, dialogue)

2019-2020 13
LP SARII – Parcours AS UE21 - Automatisme

Bus Entrées / Sorties

Unité de
Traitement
Module d' Module
Entrées de Sorties
RAM

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

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)
2019-2020 14
LP SARII – Parcours AS UE21 - Automatisme

Déroulement d'un Cycle-automate :

Traitement Interne
La tâche de fond de l’API
Lecture des Entrées Peut être exécutée de façon cyclique
ou périodique

Exécution du Programme

Ecriture des Sorties


Si la tâche est périodique

Attente fin période

2019-2020 15
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 16
LP SARII – Parcours AS UE21 - Automatisme

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

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

+ %IX 0.0 E1
E1
- %IX 0.1 E2
%IX 0.2 E3
+ %IX 0.3 E4
E2
- ... ….
... ...
E3
+
-

E4
+
-

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

2019-2020 17
LP SARII – Parcours AS UE21 - Automatisme

➢Polarité des entrées TOR:

2019-2020 18
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 19
LP SARII – Parcours AS UE21 - Automatisme

 Exemple de Carte D'E TOR (Schneider) :

2019-2020 20
LP SARII – Parcours AS UE21 - Automatisme

 Entrées analogiques : les différents types de mesure

• Tension :

2019-2020 21
LP SARII – Parcours AS UE21 - Automatisme

• Courant :

2019-2020 22
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 23
LP SARII – Parcours AS UE21 - Automatisme
 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].

2019-2020 24
LP SARII – Parcours AS UE21 - Automatisme
 Exemple de Carte D'E analogiques 4-20mA (750-454) :

2019-2020 25
LP SARII – Parcours AS UE21 - Automatisme
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.

2019-2020 26
LP SARII – Parcours AS UE21 - Automatisme

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.

Mémoire Image des sorties Isolation / Amplification - Relayage Bornier de sorties

S1 %QX 0.0
S1 +
S2 %QX 0.1 -
S3 %QX 0.2
S2
+
-
S4 %QX 0.3

... …. S3 +
-
... ...
S4 +
Variables du Bits de -
programme sorties

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

2019-2020 27
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 28
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 29
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 30
LP SARII – Parcours AS UE21 - Automatisme

➢Cractéristiques :

2019-2020 31
LP SARII – Parcours AS UE21 - Automatisme

 Exemple de Carte De S analogiques 0/10V (750-513) :

La gamme numérique [0 ; 32760] est


convertie en tension [0;10V] par un CNA
12 bit.

2019-2020 32
LP SARII – Parcours AS UE21 - Automatisme

II / La Programmation IEC 1131-3


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

2019-2020 33
LP SARII – Parcours AS UE21 - Automatisme

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

- Un numéro d'adressage (valeur numérique 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' . 'Numéro'

2019-2020 34
LP SARII – Parcours AS UE21 - Automatisme

 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 :
• Exemple :

 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 :
• Exemple :

 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.
• Notation :
• Exemple :

2019-2020 35
LP SARII – Parcours AS UE21 - Automatisme

 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 :
• Exemple :

✔ Un octet est une donnée codée sur 8 bits

• Notation :
• Exemple :

2019-2020 36
LP SARII – Parcours AS UE21 - Automatisme

✔ Un mot est une donnée codée sur 16 bit

• Notation :
• Exemple :

✔ Un double mot est une variable codée sur 32 bits

• Notation :
• Exemple :

2019-2020 37
LP SARII – Parcours AS UE21 - Automatisme

 Le numéro d’adresse :
Enfin, la valeur d'adressage dépend du type d'automate utilisé :
- Schneider :
Les données numériques internes sont organisées selon des cases mémoires de 16 bits ; le n° est
donc un numéro de mot. Les bits internes ont des adresses distinctes.
Les données d'E/S ont un adressage physique dépendant de la position de la donnée dans le rack
(cf chapitre correspondant)

- Siemens :
Les données sont organisées selon des cases mémoires de 8 bits ; le n° est donc un numéro
d'octet. Les bits ont une adresse de la forme « n°octet.n°debit »

- Wago :
Les données sont organisées selon des cases mémoires de 16 bits ; le n° est donc un numéro de
mot. Les bits ont une adresse de la forme « n°mot.n°debit »

2019-2020 38
LP SARII – Parcours AS UE21 - 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 '
2019-2020 39
LP SARII – Parcours AS UE21 - Automatisme

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 :

2019-2020 40
LP SARII – Parcours AS UE21 - Automatisme

3 / Langage ST (Structured Text).

Il s'agit d'un langage textuel proche des langages évolués tels que le C. Il est particulièrement
utilisé pour :
•Traiter les valeurs numériques
•Les opérations sur les chaînes de caractères
•Les manipulations de tableaux

Exemple : Soit l'équation logique suivante →

Z = (A . B + C) . D

... se traduit par le code suivant :

2019-2020 41
LP SARII – Parcours AS UE21 - Automatisme

 Structures Algorithmiques

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

2019-2020 42
LP SARII – Parcours AS UE21 - Automatisme

 Énoncé CASE :

2019-2020 43
LP SARII – Parcours AS UE21 - Automatisme

 Boucle FOR :

FOR i := 0 TO 9 BY 1 DO

.............. ;

END_FOR;

 Boucle WHILE :

WHILE condition = TRUE DO

.............. ;

END_WHILE;

2019-2020 44
LP SARII – Parcours AS UE21 - Automatisme

 Opérateurs Numériques :

Le choix du langage ST s'impose souvent lorsque l'on doit faire des traitements numériques
sur des variables. Les opérations de bases sont :

• Addition :

• Soustraction :

• Multiplication :

• Division :

• Modulo :

2019-2020 45
LP SARII – Parcours AS UE21 - Automatisme

 Fonctions de Conversion :

Le choix du langage ST s'impose souvent lorsque l'on doit faire des traitements numériques
sur des variables. Les opérations de bases sont :

• Entier vers réel :

• Réel vers mot :

• Temps vers entier :

• Date vers date et heure :

• …..

2019-2020 46
LP SARII – Parcours AS UE21 - Automatisme

 Fonctions sur chaînes de caractères :

• Concaténer :

• Rechercher :

• Effacer :

• Obtenir la taille :

• Comparer :

• Remplacer :

2019-2020 47
LP SARII – Parcours AS UE21 - Automatisme

 Manipulation des tableaux :

• Type « ARRAY » :

• Déclaration :

• Indexation :

2019-2020 48
LP SARII – Parcours AS UE21 - Automatisme

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.

2019-2020 49
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 50
LP SARII – Parcours AS UE21 - Automatisme
➢ Mémoire RS :
A

t
B
t
x
t
➢ Front montant :
A
t

x t

A
t

x t

2019-2020 51
LP SARII – Parcours AS UE21 - Automatisme

➢ Temporisation : retard à l'activation


A
t

x
t
3s

➢ Temporisation : retard au déclenchement


A
t

x
t
3s 3s
➢ Temporisation : monostable
A
t

x
t
3s 3s
2019-2020 52
LP SARII – Parcours AS UE21 - Automatisme

➢ 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 = 0
QD BOOL Sortie, passe à 'TRUE' lorsque CV = PV
CV INT Valeur courante du compteur

2019-2020 53
LP SARII – Parcours AS UE21 - Automatisme

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 →


Z = (A . B + C) . D
Cette équation se traduit en FBD par le diagramme suivant :

2019-2020 54
LP SARII – Parcours AS UE21 - Automatisme

Mémoire RS
Comparaisons

Temporisations

opérations logiques

Compteurs Détection de Fronts

2019-2020 55
LP SARII – Parcours AS UE21 - Automatisme

• Fonction Move :

2019-2020 56
LP SARII – Parcours AS UE21 - Automatisme

• Bloc RTC :

2019-2020 57
LP SARII – Parcours AS UE21 - Automatisme

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

Étape initiale
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é

Important :
étape

Action

2019-2020 58
LP SARII – Parcours AS UE21 - Automatisme

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


Attribut Paramètre Description
N Aucun Action Non mémorisée : 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 Action limitée dans le temps : L'action est activée à l'entrée dans
d'activation : l'étape, puis désactivée automatiquement au bout du temps, spécifié
t#..... (ou à la sortie de l'étape).

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

2019-2020 59
LP SARII – Parcours AS UE21 - Automatisme

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.

2019-2020 60
LP SARII – Parcours AS UE21 - Automatisme

✔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

2019-2020 61
LP SARII – Parcours AS UE21 - Automatisme

✔ Cas particulier d'utilisation de la branche OU : saut d'étapes

✔ Cas particulier d'utilisation de la branche OU : Reprise de séquence

2019-2020 62
LP SARII – Parcours AS UE21 - Automatisme

✔Structure ET : Parallélisation. Elle permet d'effectuer en simultané plusieurs séquences.

Divergence

Convergence

2019-2020 63
LP SARII – Parcours AS UE21 - Automatisme

✔ Convergence en ET : Synchronisation.

La convergence se fait généralement sur des étapes vides (sans action), avec une réceptivité aval
toujours vraie, ce qui permet de synchroniser les différents cycles parallèles (le premier cycle
terminé attend les autres ; dès que tous les cycles sont terminés, la convergence est réalisée
grâce à la réceptivité 'TRUE').

2019-2020 64
LP SARII – Parcours AS UE21 - Automatisme

III / API Wago 750 et plateforme logicielle


CoDeSys
1 - Introduction
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.

2019-2020 65
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 66
LP SARII – Parcours AS UE21 - Automatisme

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

2019-2020 67
LP SARII – Parcours AS UE21 - Automatisme

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.

2019-2020 68
LP SARII – Parcours AS UE21 - Automatisme
➢ 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.

2019-2020 69
LP SARII – Parcours AS UE21 - Automatisme

➢ Échange de variables entre programmes :

➔ Bloc Fonctionnel G1 : Programme Principal PLC_PRG :


➔ Bloc Fonctionnel G2 :

2019-2020 70
LP SARII – Parcours AS UE21 - Automatisme

➢ 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'ac vité de l'étape (type TIME)


•Nom_etape . x → ac vité 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

2019-2020 71
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 72
LP SARII – Parcours AS UE21 - Automatisme

➢ 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éini alisa on du grafcet (retour à l'étape ini ale et arrêt de l’exécu on)
● SFCInit (BOOL) → Retour à l'étape ini ale
● 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.

2019-2020 73
LP SARII – Parcours AS UE21 - Automatisme

➢ Ressources :
L'onglet ressources du projet permet de définir les principales caractéristiques logicielles et matérielles

Définition des modules d'E/S

Choix de la CPU

Organisation du projet en tâches

Ajout de bibliothèques logicielles

2019-2020 74
LP SARII – Parcours AS UE21 - Automatisme

En plus des appels de programme, on peut définir des tâches dans le projet, qui permettront de
déclencher l’exécution de certains programme de façon automatique :
- de façon cyclique ou périodique, c'est à dire à intervalle de temps réguliers (utile par exemple
pour les fonctions de régulation)
- de façon événementielle, c'est à dire lorsqu'un événement particulié est rencontré (par
exemple le passage à '1' d'un booléen)

2019-2020 75
LP SARII – Parcours AS UE21 - Automatisme
 Présentation du contrôleur WAGO 750-849 :
Ports Ethernet pour le chargement des programmes, la supervision...

Bornes pour
l'alimentation 24Vcc

Interface série (configuration)

2019-2020 76
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 77
LP SARII – Parcours AS UE21 - Automatisme

➢ Particularités :
Les contrôleurs Wago 750-xxx sont des API modulaires pouvant gérer un nombre relativement
important d'entrées sorties (cf fiche tech. précédente).

Leur plan mémoire est organisé sous forme de mots (les numéros d'adresse seront par
conséquent des numéros mot ; les données binaires seront rangées à l'intérieur de ces mot →
un numéro de bit sera donc compris entre 0 et 15).

Ces contrôleurs ont été aussi bien pensés pour l'industrie que pour la GTB, ce qui fait que l'on
retrouve aussi bien des borne pouvant gérer des bus de communication pour ces deux
secteurs :

- Industrie : ASi, Profibus, Modbus, CANopen...


- Bâtiment : KNX, LON, Bacnet, DALI...

2019-2020 78
LP SARII – Parcours AS UE21 - Automatisme

IV / Programmation des API Schneider


M340 sous Unity
 Présentation du contrôleur M-340 :

La série M-340 représente le


segment milieu de gamme des API
Schneider, de dernière génération.

Ces API sont adaptés aux


systèmes automatisés de moyenne
taille, et aux grosses installations à
système de contrôle / commande
possédant une architecture
décentralisée.

2019-2020 79
LP SARII – Parcours AS UE21 - Automatisme

Au matériel, l'architecture est modulaire, Schneider propose différentes cartes d'E/S


adaptées aux besoins industriels (Sorties relayées ou non, cartes analogiques
configurables en 0-10V / 4-20 mA etc...).

Du point de vue communication, Schneider préconise :

• Le bus ASI pour le niveau terrain


• CanOpen pour le niveau Cellule / Machine
• Modbus-TCP pour la supervision

On pourra donc évidemment mettre en œuvre ces protocoles en choisissant les CPU
et coupleurs adaptées.

Le modèle de CPU utilisé en TP : P34 2020 offre :

• 1 port Modbus RTU (RS485) pouvant être configuré en maître ou


esclave
• 1 port Ethernet, pour les communications Modbus TCP, l'accès au
serveur Web intégré, le chargement des programmes.

2019-2020 80
LP SARII – Parcours AS UE21 - Automatisme

➢Adressage des données :

2019-2020 81
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 82
LP SARII – Parcours AS UE21 - Automatisme

 Organisation du projet sous Unity :

Interfaces de communication

Cartes d'E/S

Déclaration des variables

2019-2020 83
LP SARII – Parcours AS UE21 - Automatisme

Le programme est organisé en différentes « Sections », réparties en 2 catégories :


- Les tâches. Elles sont au nombre de 2 pour les M-340.

1 / La tâche MAST (Master) : Il s'agit de la tâche maître, elle correspond au


programme principal. Elle peut être appelée soit de façon cyclique (cas courant), soit
périodique c'est à dire que sa durée d'éxécution doit être maîtrisée.
La tâche MAST peut comporter plusieurs sous programmes, dans différents langage ;
en revanche elle est la seule à pouvoir contenir du grafcet.

2 / La tâche FAST : Il s'agit d'une tâche dite rapide, qui va être appelée
périodiquement, selon une durée à définir. L'appel de cette tâche correspond à une
interruption (au sens µC) de la tâche maître.

2019-2020 84
LP SARII – Parcours AS UE21 - Automatisme

 Langages de Programmation :
On retrouve les 5 langages CEI danss Unity : IL, ST, FBD, LD et SFC.

Un module optionnel d'Unity permet de créer des fonctions en langage C.

2019-2020 85
LP SARII – Parcours AS UE21 - Automatisme

De nombreuses bibliothèques viennent faciliter la programmation, notamment pour les


calculs et fonctions d'automatisation courantes. Ci-dessous, le bloc SFCCNTRL
permet d'agir sur un grafcet :

Toutes les caractéristiques de ce bloc sont dans


l'aide d'Unity, à la rubrique :
==> Bibliothèque EF/EFB/DFB ==> Bibliothèque
système ==> Gestion SFC.

La fonction "Read_Var" peut être utilisée pour lire émettre une requête de lecture Modbus :

les caractéristiques de cette fonction sont dans


l'aide d'Unity, à la rubrique :
==> Bibliothèque EF/EFB/DFB ==>
Communications

2019-2020 86
LP SARII – Parcours AS UE21 - Automatisme

V / Programmation des API Siemens


S7300 sous TIA
 Présentation du contrôleur S7315-F 2PN/DP:
Il s'agit d'une CPU placée dans le segment milieu/haut de gamme
des API Siemens. Elle présente la particularité d'intégrer des
fonctions de sécurité, ce qui dispense de l'utilisation d'un automate
de sécurité supplémentaire, pour les process régis par ce type de
norme.

S7 315-F 2PN/DP

Port Profibus DP
Gamme S7-300
Port ProfiNet
Fonctions de sécurité

2019-2020 87
LP SARII – Parcours AS UE21 - Automatisme

Du point de vue des communications, Les API Siemens sont orientés vers les protocoles :
✔Asi pour les capteurs/actionneurs
✔ProfiBUS et ProfiNet pour les autres niveaux

2019-2020 88
LP SARII – Parcours AS UE21 - Automatisme

 TIA Portal : Configuration matérielle :


Permet de définir le matériel utilisé pour le projet d'automatisation ; il permet de définir des
architecture complètes, incluant plusieurs CPU, entrées sorties déportées, variateurs (etc...) et
leurs connexions réseau :

2019-2020 89
LP SARII – Parcours AS UE21 - Automatisme

 Adressage des données :


Les plans mémoire des API Siemens sont organisés en octets. L'adressage des données répond
donc à la syntaxe suivante :
Données booléennes : %I4.0
n° du bit à l'intérieur de l'octet
I: Entrées
n° de l'octet dans le plan mémoire
Q : Sorties
M : Internes

Données numériques : % MW20

I : Entrées W pour les mots n° de l'octet dans le


Q : Sorties B pour les octets plan mémoire →
M : Internes adresses de mots
toujours paires

2019-2020 90
LP SARII – Parcours AS UE21 - Automatisme

Le programme est organisé « Blocs » :

1 / OB.. (Organisation Blocs) :


Ce sont des programmes appelés implicitement, de
façon, cyclique, périodique ou encore sur événements.

OB1 correspond au programme principal, ou encore à


la tâche maître.
Ce bloque est appelé à chaque cycle automate, et sera
chargé de l'appel des éventuels sous-programmes. Il ne
peut pas contenir de grafcet.

Il existe un grand nombre de blocs d'organisation


(traitements périodiques, gestion des alarmes / défauts
etc...) ; les premiers vous sont présentés à la page
suivante (se reporter au manuel pour plus de détails).

2019-2020 91
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 92
LP SARII – Parcours AS UE21 - Automatisme
 FB.. (Functions Blocs) : Ce sont des programmes appelés « explicitement », par des OB ou
d'autres FB. Ces blocs possèdent une mémoire associée (DB), qui permet de les instancier (un
FB peut donc être appelé plusieurs fois).

 FC.. (Functions) : Ce sont des fonctions (appelés « explicitement ») par des OB, FB ou d'autres
FC. Ces fonctions ne possèdent pas de bloc mémoire (DB) associé, et ne peuvent donc pas
retenir de valeur entre deux appels.

 DB.. (Data Blocs) : Données associées à un FB ; contient l'ensemble des variables utilisées par le
bloc.

 SFC, SFB (System Function / System Bloc funtion) : Fonctions et Blocs insérés automatiquement
par le système lors de la compilation.

2019-2020 93
LP SARII – Parcours AS UE21 - Automatisme

On retrouve certains langages CEI sous Step7, cependant les noms utilisés diffèrent de la norme :

FBD → LOG
SFC → GRAPH
➢Langages de Programmation :
LD → CONT
ST → SCL

2019-2020 94
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 95
LP SARII – Parcours AS UE21 - Automatisme

2019-2020 96

Vous aimerez peut-être aussi