Académique Documents
Professionnel Documents
Culture Documents
La Programmation Des PLC
La Programmation Des PLC
La Programmation Des PLC
Son rôle consiste donc à fournir des ordres `a la partie opérative en vue d’exécuter un travail
précis comme par exemple la sortie ou la rentrée d’une tige de vérin, l’ouverture ou la
fermeture d’une vanne. La partie opérative lui donnera en retour des informations relatives à
l’exécution dudit travail.
Ces quatre parties sont reliées entre elles par des bus (ensemble câble autorisant le passage de
l’information entre ces 4 secteurs de l’API). Ces quatre parties réunies forment un ensemble
compact appelé automate.
a. Le processeur
Son rôle consiste d’une part `à organiser les différentes relations entre la zone
Mémoire et les interfaces d’E/S et d’autre part à gérer les instructions du programme.
b. Les interfaces
L’interface d’Entrées comporte des adresses d’entrée, une pour chaque capteur relie.
L’interface de Sorties comporte des adresses de sorties, une pour chaque pré-actionneur.
Le nombre d’E/S varie suivant le type d’automate.
Les cartes d’E/S ont une modularité de 8, 16 ou 32 voies. Elles admettent ou délivrent des
tensions continues 0 - 24 Vcc.
c. La mémoire
Elle est conçue pour recevoir, gérer, stocker des informations issues des différents secteurs du
système que sont le terminal de programmation (PC ou console) et le processeur, qui lui gère
et exécute le programme. Elle reçoit également des informations en provenance des capteurs.
d. L’alimentation :
Tous les automates actuels utilisent un bloc d’alimentation alimenté en 240 VAC et délivrant
une tension de 24 VCC.
Chaque automate possède son propre langage. Mais par contre, les constructeurs proposent
tous une interface logicielle répondant à la norme CEI1 1131-3. Cette norme définît cinq
langages de programmation classés dans deux catégories.
Avant de commencer à programmer, il est très important de réaliser l’affectation des entrées
et des sorties de l’automate, et connaitre son adressage. L’affectation des entrées est en
fonction des capteurs et boutons de commandes utilisées. Les sorties sont affectées avec les
pré-actionneurs, voyants ...etc. L’affectation consiste également à identifier ces variables
destinées à mémoriser les états et valeurs intermédiaires durant l’exécution du programme.
L’adressage consiste à identifier les variables d’E/S et les variables internes par des adresses.
La notion d’adressage d’un automate permet de connaître le type d’objet, le format des
données que l’on va pouvoir former et son emplacement (ou numéro).
X : bit
B : Octet ou Byte est l’ensemble de 8 bits
W : Mot binaire (Word) est l’ensemble de 16 bits (double octet)
D : Double mot binaire (double Word) est l’ensemble de 32 bits (quatre octets)
L : mot long est l’ensemble de 64 bits (huit octets)
a. Les variables d’entrée : sont déclarées par un bit I ou E et sont raccordées que sur la
carte d’entrée digitale (DI)
b. Les variables de sortie : sont déclarées par un bit Q et sont raccordées que sur la carte
de sortie digitale (DO)
c. Exemples :
Entrée :
𝐼0.0 𝐼1.0 𝐼2.0 𝐼3.0
𝐼0.1 𝐼1.1 𝐼2.1 𝐼3.1
𝐼0.2 𝐼1.2 𝐼2.2 𝐼3.2
𝐼0.3 𝐼1.3 𝐼2.3 𝐼3.3
Octet 0 : Octet 1 : Octet 2 : Octet 3 :
𝐼0.4 𝐼1.4 𝐼2.4 𝐼3.4
𝐼0.5 𝐼1.5 𝐼2.5 𝐼3.5
𝐼0.6 𝐼1.6 𝐼2.6 𝐼3.6
{𝐼0.7 {𝐼1.7 {𝐼2.7 {𝐼3.7
Sortie :
- Si la variable doit contenir un nombre entier, elle sera déclarée par un mot binaire,
Word (IW)
- Et si la variable doit contenir un nombre décimal, elle sera déclarée par un double
mot binaire, double Word (ID)
Elles seront raccordées sur la carte d’entrée analogique (AI)
- Si la variable doit contenir un nombre entier, elle sera déclarée par un mot binaire,
Word (QW)
- Et si la variable doit contenir un nombre décimal, elle sera déclarée par un double
mot binaire, double Word (QD)
Elles seront raccordées sur la carte de sortie analogique (AO)
c. Exemples
𝐼𝑊0: 𝑜𝑐𝑡𝑒𝑡 0 𝑒𝑡 1
𝐼𝑊2: 𝑜𝑐𝑡𝑒𝑡 2 𝑒𝑡 3
𝑒𝑛𝑡𝑟é𝑒: {
𝐼𝑊4: 𝑜𝑐𝑡𝑒𝑡 4 𝑒𝑡 5
𝐼𝑊6: 𝑜𝑐𝑡𝑒𝑡 6 𝑒𝑡 7
𝑛𝑜𝑚𝑏𝑟𝑒 𝑒𝑛𝑡𝑖𝑒𝑟 𝑄𝑊0: 𝑜𝑐𝑡𝑒𝑡 0 𝑒𝑡 1
𝑄𝑊2: 𝑜𝑐𝑡𝑒𝑡 2 𝑒𝑡 3
𝑠𝑜𝑟𝑡𝑖𝑒: {
𝑄𝑊4: 𝑜𝑐𝑡𝑒𝑡 4 𝑒𝑡 5
{ 𝑄𝑊6: 𝑜𝑐𝑡𝑒𝑡 6 𝑒𝑡 7
𝐼𝐷𝑂 ∶ 𝑜𝑐𝑡𝑒𝑡 0,1,2 𝑒𝑡 3
𝑒𝑛𝑡𝑟é𝑒: { 𝐼𝐷4: 𝑜𝑐𝑡𝑒𝑡 4,5,6 𝑒𝑡 7
𝐼𝐷8: 𝑜𝑐𝑡𝑒𝑡 8,9,10 𝑒𝑡 11
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑é𝑐𝑖𝑚𝑎𝑙: 𝑄𝐷𝑂 ∶ 𝑜𝑐𝑡𝑒𝑡 0,1,2 𝑒𝑡 3
𝑠𝑜𝑟𝑡𝑖𝑒: { 𝑄𝐷4: 𝑜𝑐𝑡𝑒𝑡 4,5,6 𝑒𝑡 7
{ { 𝑄𝐷8: 𝑜𝑐𝑡𝑒𝑡 8,9,10 𝑒𝑡 11
Il existe des variables qui ne sont ni variables d’entrée, ni de sortie. Ces sont des variables
mémoires du CPU, elles sont appelées variables du type mémento. Dans un programme, ces
variables sont symbolisées par la lettre M. Il est possible d'y accéder en écriture et en lecture
(par bit, octet, mot et double mot). La zone des mémentos permet à l'utilisateur d'enregistrer
des résultats intermédiaires.
IV. LA PROGRAMMATION
IV.1 introduction
Ce langage, proche de l’assembleur des microprocesseurs, est utilisé dans des cas particuliers
pour optimiser certaines parties du code si les contraintes temporelles sont importantes. Un
programme IL est une suite de ligne d’instructions qui comprennent :
Une étiquette : (facultative) utilisée pour mettre des points de repère dans le programme,
Un opérateur : représenté par un code mnémonique qui indique quelle opération doit effectuer
le processeur,
Un argument : (éventuel) qui dépend de l’opérateur, indique sur quel objet porte l’opération,
Un commentaire : optionnel mais vivement recommandé.
Ces éléments sont encolonnés pour faciliter la lecture du code.
EXEMPLE
1.
Le langage texte structuré est dérivé des langages de programmation de haut niveau tels que
Pascal, ADA, C, BASIC. Il est utilisé pour programmer des algorithmes complexes qui
nécessitent des calculs numériques.
Le jeu d’instructions de ce langage comprend des fonctions, des instructions conditionnelles
(IF … THEN… ELSIF … ELSE … END_IF), des instructions de boucle (FOR … DO …
END_FOR) et d’autres instructions de contrôle.
EXEMPLE
Programmes en texte structuré ST pour la commande du vérin
Les plans de contacts sont dérivés des premières réalisations d’automatismes faites avec des
relais électromécaniques. C’est le plus ancien des langages normalisés (1969), il a été conçu
pour faciliter la transition entre les systèmes à logique câblée et les systèmes à logique
programmée. Il permet la représentation graphique sous forme de schémas des équations
logiques booléennes. Ce langage est conservé pour maintenir une compatibilité avec des
automates d’ancienne génération mais il est de moins en moins utilisé.
Les variables d’entrée des équations sont symbolisées par des ‘contacts’ –| |– et les variables
de sorties par des ‘bobines’ –( )–. La réalisation des fonctions logiques se fait en reliant ces
éléments par des lignes qui symbolisent l’équivalent d’un schéma électrique. L’automate
évalue ces réseaux de haut en bas et de gauche à droite.
Les fonctions de base de ce langage sont données dans le tableau ci-dessous. Il convient de
remarquer que les symboles diffèrent des contacts définis par la CEI. La raison est que ce
langage de programmation a été conçu aux USA, et qu’il a repris les symboles des contacts en
usage dans ce pays à l’époque.
EXEMPLE
Programme en réseaux de contacts LD pour la commande du vérin.
Ce langage est une évolution des réseaux de contacts. Il permet de traiter non seulement des
équations logiques binaires mais également des fonctions beaucoup plus complexes, par
exemple des régulateurs PID, faisant intervenir des variables numériques. Le langage FBD est
normalement utilisé pour des applications qui traitent un flux continu d’information.
La programmation se fait en interconnectant de manière judicieuse des composants, appelés
blocs fonctionnels,
Pour réaliser une fonction spécifique. Les blocs fonctionnels peuvent être :
• de simples fonctions logiques : portes NON, ET, OU
• des fonctions de logique séquentielle : bascules RS, flip-flop, temporisateurs
EXEMPLE
Ce langage est directement dérivé du GRAFCET et répond aux mêmes règles de base. Il est
utilisé pour programmer la commande de systèmes séquentiels. Un diagramme fonctionnel en
séquence est constitué d’une succession d’étapes reliées par des transitions. Un programme
d’application peut comporter plusieurs diagrammes fonctionnels en séquence indépendants ou
non. Une étape correspond à une situation dans laquelle le comportement du système est
invariant par rapport à ses entrées et ses sorties. Une étape peut être active ou inactive. Quand
l’étape est active le programme qui lui est associé s’exécute. Si elle est inactive cette partie du
programme n’est pas traitée par le processeur.
Le programme associé à une étape peut être écrit en langage IL, ST, LD ou FBD.
L’étape initiale est celle qui est activée à l’initialisation du programme. Il ne peut y avoir
qu’une seule et unique étape initiale par diagramme.
Une transition indique la possibilité d’évolution entre les étapes. A chaque transition est
associé une condition logique appelée réceptivité. Une transition est dite valide si toutes les
étapes qui lui sont reliées en amont sont actives. Quand une transition est valide et que sa
réceptivité est vraie, le diagramme peut évoluer d’une étape à l’autre ce qui se fait
généralement en un cycle d’automate. La réceptivité peut être écrite en langage IL, ST, LD ou
FBD.
EXEMPLE