Mastère CoSIC Enseignant : M.
Ridha MAHJOUB
La programmation des automates
voici les conventions à respecter :
Les lignes verticales du schéma représentent les barres , entre lesquelles des
circuits sont connectés. Le flux du courant part de la ligne verticale de gauche et traverse une
ligne horizontale.
Chaque ligne horizontale définit une opération du processus de commande.
Chaque ligne doit commencer par une ou plusieurs entrées et doit se terminer par au
moins une sortie. Le terme entrée correspond à une action de commande, comme fermer les
e terme sortie correspond à un dispositif,
comme un moteur, connecté à la sortie API. Les sorties ne sont pas affectées
programme.
Les dispositifs électriques sont représentés dans leur condition normale. Ainsi, un
interrupteur qui est normalement ouvert
sur le schéma à contacts. Un interrupteur normalement fermé est représenté fermé.
Un même dispositif peut apparaître sur plusieurs lignes du schéma. Par exemple, un relais
peut commuter un ou plusieurs systèmes. Les mêmes lettres et/ou numéros sont utilisés comme
libellés du dispositif dans chaque cas.
Les entrées et les sorties sont toutes identifiées par leur adresse, dont le format dépend du
fabricant de Il de de ou de la sortie dans la mémoire de .
L analyse d un programme comportant des réseaux à contacts est effectuée comme suit :
Module : Programmation avancée et régulation des SAP 1
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
VI- Les langages de programmation
Il existe cinq langages de programmation des automates qui sont normalisés au plan mondial
par la norme CEI 61131-3, à savoir :
Les langages Graphiques :
1. ..
2. ..
3. ..
Les langages textuels :
4. ..
5. ..
En fait, cette section poursuite sur la lancée des précédentes en décrivant les autres langages de
programmation définis par la CEI 61131-3 -à-dire, les diagrammes de schémas
fonctionnels (FBD, Function Block Diagram IL, Instruction Lists), et
le texte structuré (ST, Structured Text).
VI.1- Diagrammes de schémas fonctionnels (FBD)
Un diagramme de schémas fonctionnels
données passant au travers de blocs, qui sont des éléments logiciels réutilisables. Un bloc
fonctionnel est
fonction est écrit dans la boite.
Un exemple de bloc fonctionnel standard (voir figure (a) ci-dessous) représente un compteur
CTU qui produit une sortie sur Q lorsque le nombre d'impulsions sur l'entrée CU a atteint la
valeur fixée par PV. A chaque impulsion d'entrée, la sortie CV est augmentée de 1. L'entrée R
remet à zéro le compteur. Les libelles des entrées et des sorties indiquent le type du signal:
BOOL pour booléen et INT pour entier.
Un autre exemple (voir figure (b)) de bloc défini par l'utilisateur pour calculer la moyenne
de deux poids. II peut être réutilisé ensuite dans d'autres blocs fonctionnels.
Module : Programmation avancée et régulation des SAP 29
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
VI.2- Listes d'instructions
. Un programme écrit selon cette
-à- dire les
Par exemple, nous pouvons avoir la ligne suivante : LD A. Cette ligne indique le chargement
A, LD
instruction : OUT Q.
LD A.
Des codes mnémoniques sont utilisés pour les opérateurs, chaque code correspondant à un
opé
norme CEI 61131-3 a été établie et est à présent largement adoptée. Le tableau suivant recense
quelques codes utilisés par les fabricants et les instructions normalisées que nous rencontrerons
dans ce chapitre.
CEI 61131-3 Mitsubishi OMRON Siemens Opération Langage Ladder
LD LD LD LD Commencer une ligne
(A) registre de résultat. avec des contacts ouverts
LDN LDI LD LD Charger l'opérande inverse Commencer une ligne
NOT
N dans un registre de résultat. avec des contacts
fermes.
AND AND AND A ET Booléen Eléments en série avec
des contacts ouverts.
ANDN ANI AND AN ET booléen avec un Eléments en série avec
NOT opérande inversé. des contacts fermés.
OR OR OR O Ou booléen Eléments en parallèle
avec des contacts ouverts.
ORN ORI OR ON OU booléen avec un Eléments en parallèle
NOT opérande inversé. avec des contacts fermés.
ST OUT OUT = Stocker un registre de Une sortie
résultats dans un
opérande.
Module : Programmation avancée et régulation des SAP 30
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
-3 :
LD A (*Charger A*)
AND (*ET B*)
ST Q (*stocker le résultat dans Q*)
Sur la première ligne du programme, LD A
mots placés en fin de lignes, entre parenthèses et précédés et suivis par un caractère *, sont des
-points :
P0MPE_0K: LD C (*Charger C*)
Une instruction dans le programme peut sauter à la ligne P0MPE_0K
particulière est rencontrée.
VI.2.1- Schémas à contacts et listes d'instructions
da ». LD, ou
peut-être , pour indiquer que la ligne commence par des contacts ouverts, ou de LDI, ou peut-
être LDN, LD NOT ou LN, pour indiquer quelle commence par des contacts fermés. Toutes les
OUT, ou peut-être de = ou ST.
Omron et de Siemens pour la porte ET illustrée ci-dessous :
vante :
LD X400 LD I0.1
AND X401 A I0.2
OUT Y430 = Q2.0
(a) Omron (b) Siemens
avec les notations de Omron et de Siemens.
Module : Programmation avancée et régulation des SAP 31
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
LD X400 LD I0.1
OR X401 O I0.2
OUT Y430 = Q2.0
(a) Omron (b) Siemens
La figure ci- -OU dans les
notations de Omron et de Siemens.
Voici la liste des instructions pour la porte NON-OU du schéma à contacts :
LDI X400 LDN I0.1
ANI X401 AN I0.2
OUT Y430 = Q2.0
(a) Omron (b) Siemens
De même, la porte NON-ET est illustrée comme suit :
LDI X400 LDN I0.1
ORI X401 ON I0.2
OUT Y430 = Q2.0
(a) Omron (b) Siemens
La porte OU-exclusif de la figure ci-dessous comprend deux branches en parallèle avec un
Module : Programmation avancée et régulation des SAP 32
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
La figure (a) montre la version Omron. Dans ce genre de situation, Omron utilise une instruction
ORB (OLD dans Siemens) pour indiquer un « OU entre des branches en parallèle ». Rappelons
que les nouvelles lignes commencent toutes par LD ou LDI (LDN
Omron comme suit :
LD X400 (*début de la première branche*)
ANI X401
LDI X400 (*début de la deuxième branche*)
AND X401
ORB (*OU entre les deux branches*)
OUT Y430
Pour la notation de Siemens, on a :
LD I0.0 (*début de la première branche*)
AN I0.1
LDN I0.1 (*début de la deuxième branche*)
A I0.1
OLD (*OU entre les deux branches*)
= Q2.0
Les parenthèses sont utilisées également dans la norme CEI 61131-3 (comme dans la
notation de Siemens), indiquant que certaines instructions forment un bloc. Elles jouent le
même rôle que les parenthèses dans une équation mathématique. Par exemple, (2 + 3) / 4 signifie
que 2 et 3 doivent être additionnés avant que le résultat ne soit divisé par 4. Ainsi, la liste
LD X
ADD(
MUL( C
ADD D
)
)
X + (B × (C + D)).
La figure suivante présente un circuit effectuant un ET entre des blocs à deux branches. La
version Omron est donnée à la partie (a), tandis que celle de Siemens est illustrée à la partie (b).
Module : Programmation avancée et régulation des SAP 33
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
spondante :
LD X400 LD I0.0
OR X402 O I0.2
LD X401 LD I0.1
OR X403 O I0.3
ANB ALD
OUT Y430 = Q2.0
(a) Omron (b) Siemens
Pour la version Siemens S7-200, quelques instructions de base sont données dans le
tableau suivant :
Instruction Description
LD Lire (Load)
LDN Lire inverse (Load NOT)
A Faire le ET (AND)
AN Et avec inverse (AND NOT)
ALD Faire le ET entre les deux premières cases (branches)
O Faire le OU (OR)
ON OU avec inverse (OR NOT)
OLD Faire le OU entre les deux premières cases (branches)
NOT
S @,N Mise à 1 des N sorties successives à partir de la sortie @
R @,N Mise à 0 des N sorties successives à partir de la sortie @
LPS Doubler la 1ère case (branche)
LPP Enlever la 1ère case (branche)
LRD Enlever la 1ère case et doubler la 2ème
= @ @
EU Prendre le front montant
ED Prendre le front descendant
Un exemple exploitant ces instructions est donné comme suit :
Module : Programmation avancée et régulation des SAP 34
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
Zone mémoire : Avant
a b c d
Après
LD X A X O X ALD OLD LPP LPS LRD
X a.X a+X a.b a+b b a b
a b b c c c a b
b c c d d d b c
c d d e e e c d
VI.3- Texte structuré
Le texte structuré est un langage de programmation qui ressemble énormément au langage
points- -routines qui permettent de
modifier des variables, celles-ci étant des valeurs définies, des valeurs mémorisées de manière
interne ou des entrées et des sorties.
Lampe := InterrupteurA; (i.e. Y := X;)
Lampe := InterrupteurA OR InterrupteurB;
également :
Marche := Vapeur AND Pompe;
La mise en marche se produit lorsque le détecteur de vapeur et la pompe sont actifs.
Le tableau suivant recense quelques opérateurs utilisés dans un texte structuré :
Opérateur Description
(...) Expression parenthésée
Function(...) Liste des paramètres d'une fonction
** Elévation a une puissance
-, NOT Négation, NON booléen
*, /, MOD Multiplication, division, modulo
+, - Addition, soustraction
<, >, <=, >= Inferieur à, supérieur à, inférieur ou égal à, supérieur ou égal à
=, <> Egalité, inégalité
AND, & ET booléen
Module : Programmation avancée et régulation des SAP 35
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
OR OU booléen
XOR Ou exclusif booléen
EntreeA := 6;
EntreeB := 4;
EntreeC := 2;
SortieQ := EntreeA/3 + EntreeB/(3 - EntreeC);
Dans cet exemple, la valeur de SortieQ est : 2 + 4 = 6.
Les identités des variables représentées directement commencent par le caractère %
%IX100 100*)
%ID200 200*)
%QX100 (*Bit mémoire de la sortie 100*)
La première lettre est un I Q pour une sortie ou M
pour un emplacement mémoire interne. La deuxième lettre est X pour un bit, pour un octet
(8 bits), W pour un mot (16 bits), D pour un mot double (32 bits) ou L pour un mot long (64
bits).
AT
Entreel AT %IX100; (*Entreel correspond au bit mémoire*)
VI.3.1- Instructions conditionnelles
IF -à-
dire à 1, les actions qui viennent après cette ligne dans le programme sont exécutées :
IF temp_fluide THEN
IF NOT,
qui viennent après cette ligne dans le programme sont effectuées :
IF NOT temp_fluide THEN
Dans le cas suivant :
IF temp_fluidel OR temp_fluide2 THEN
IF dans le programme sont exécutées si la variable
1 de température du fluide est à 1 ou si la variable 2 de température du fluide est active (i.e. à
1).
La combinaison IF ... THEN ... ELSE est utilisée pour exécuter des instructions
sélectionnées lorsque certaines conditions se réalisent :
IF (Fin_de_coursel AND Piece_presente) THEN
Portel := Ouvert;
Porte2 := Ferme;
Module : Programmation avancée et régulation des SAP 36
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
ELSE
Portel := Ferme;
Porte2 := Ouvert;
END_IF;
IF (I:000/00 = 1) THEN
O:001/00 := 1;
ELSE
O:000/01 := 0;
END_IF ;
I:000/00 est à 1, la sortie O:001/00 est mise à 1; sinon elle est mise à 0.
CASE
contrôle de température, nous pouvons avoir le code suivant :
CASE (Temperature) OF
0 ... 40: Interrupteur_four := Marche;
40 ... 100: Interrupteur_four := Arret;
ELSE
Interrupteur_four := Arret;
END_CASE;
CASE Configuration_vitesse OF
1: vitesse := 5;
2: vitesse := 10;
3: vitesse := 15; ventilo1 := Marche;
4: vitesse := 20; ventilo2 := Marche;
ELSE
Vitesse := 0; defaut_vitesse := TRUE;
END_CASE;
VI.3.2-
Ces instructions permettent de répéter une ou plusieurs instructions un certain nombre de
FOR ... DO permet de répéter une
entière :
FOR Entree := 10 TO 0 BY -1
DO
Sortie := Entree;
END_F0R;
La boucle WHILE ... DO
expression booléenne reste vraie :
SortieQ := 0;
WHILE EntreeA AND EntreeB
DO
SortieQ := SortieQ + 1;
END_WHILE;
Module : Programmation avancée et régulation des SAP 37
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
La boucle REPEAT ... UNTIL
SortieQ := 0;
REPEAT
SortieQ := SortieQ + 1;
UNTIL (Entreel = Arret) OR (SortieQ > 5)
END_REPEAT;
VI.3.3- Ecriture des programmes
Les programmes doivent commencer par définir les types qui représentent les données :
TYPE Moteur: (Arrete, EnFonction);
END_TYPE;
TYPE Vanne: (Ouverte, Fermee);
END_TYPE;
TYPE Pression: REAL; (*La pression est une valeur analogique*)
END_TYPE;
Ensuite v -à-dire les signaux issus des capteurs et les signaux de
sortie qui seront utilisés dans le programme :
VAR_IN (*Entrées*)
Defaut_Pompe: BOOL; (*Le défaut de fonctionnement de la pompe*)
END_VAR; (*est une variable booléenne*)
VAR_0UT (*Sorties*)
Vitesse_Moteur: REAL; (*la vitesse du moteur est une variable*)
END_VAR; (*analogique*)
VAR_IN
Valeur: INT; (*La valeur est un entier*)
END_VAR;
VAR
Entreel AT %IX100; (*Entreel correspond au bit mémoire*)
END_VAR; 100*)
Des valeurs initiales doivent être données aux variables :
VAR
Temp: REAL = 100; (*La valeur initiale de la variable Temp*)
END_VAR; (*est un nombre analogique 100*)
Le code suivant est un exemple de bloc fonctionnel qui peut apparaitre dans un
programme plus vaste ; il vérifie des tensions :
FUNCTION_BLOCK TEST_VOLTAGE
VAR_INPUT
VOLTSl, VOLTS2, VOLTS3
END_VAR;
VAR_OUTPUT
SURTENSION: BOOL;
END_VAR;
IF VOLTSl > 12 THEN
SURTENSION := TRUE; RETURN;
END_IF;
Module : Programmation avancée et régulation des SAP 38
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
IF VOLTS2 > 12 THEN
SURTENSION := TRUE; RETURN;
END_IF;
IF VOLTS3 > 12 THEN
SURTENSION := TRUE;
END_IF;
END_FUNCTION_BLOCK;
es est supérieure à 12, la sortie SURTENSION
est fixée à TRUE RETURN
fonctionnel. Ailleurs dans le programme, lorsque SURTENSION est à TRUE, une certaine action
sera réalisée.
VI.3.4- Comparaison avec le langage à contacts
La figure ci-dessous montre un schéma à contacts simple et les expressions équivalentes en
texte structuré :
Vanne1 := Capteur1;
IF Capteur1 THEN
Vanne1 := 1;
END_IF;
Un autre schéma à contacts avec son équivalent sous forme de texte structuré sont illustrés
comme suit :
Vanne1 := (Capteurl AND NOT Capteur2)
OR Capteur3;
IF Capteur1 AND NOT Capteur2 THEN
Vanne1 := 1;
ELSEIF Capteur3 THEN
Vanne1 := 1;
VI.4- Temporisateurs
VI.4.1- Types de temporisateurs
(TON), au déclenchement (TOF) et à impulsion (TP) comme illustré ci-dessous :
Dans la norme CEI, IN est l'entrée booléenne, Q est la sortie booléenne, ET est la sortie de
temps écoulé, PT est l'entrée qui précise le retard ou la durée de l'impulsion.
- Les r figure
(a) ci-
Module : Programmation avancée et régulation des SAP 39
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
1.
- Les temporisateurs au déclenchement (TOF) sont actifs pendant une durée fixée, avant de
1 à 0.
- Le temporisateur à impulsion (TP) représente un autre type de temporisateur, qui produit
une sortie à 1 pendant une durée fixée (voir figure (c)). El
de 0 à 1, puis la sortie revient à 0 lorsque le temps indiqué par PT est écoulé.
La temporisation définie est appelée présélection et correspond à un multiple de la base de
temps. Les bases de temps les plus fréquentes sont 10 ms, 100 ms, 1 s, 10 s et 100 s. Ainsi, avec
une présélection de 5 et une base de temps de 100 ms, la temporisation est de 500 ms.
VI.4.2-
VI.4.2.1- Séquencement
t des temporisateurs TON, examinons le cas de
démarrage en séquence trois sorties, par exemple trois moteurs.
La figure ci-dessus montre deux solutions de ce problème. En (a), les temporisateurs sont
Module : Programmation avancée et régulation des SAP 40
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
appui sur le bouton-poussoir marche provoque une sortie sur le relais interne RIl. Cela verrouille
Lorsque la durée de présélection du temporisateur Tl est écoulée, ses contacts se ferment et le
moteur 2 démarre. Lorsque la durée de présélection du temporisateur T2 est écoulée, ses
contacts se ferment et le moteur 3 démarre. Les trois moteurs sont stoppés en appuyant sur le
bouton-
oubliée.
VI.4.2.2- Temporisateurs en cascade
Des temporisateurs peuvent être reliés les uns aux autres (mis en cascade) pour obtenir un
retard plus long que ne le permet un seul temporisateur. La figure (a) ci-dessous présente un
schéma à contacts correspondant. Le temporisateur 1 peut être configuré avec un retard de 999
temporisateur 1 se ferment. Cela déclenche le temporisateur 2, dont la présélection est fixée à
100 s. Lorsque cette durée est écoulée, les contacts du temporisateur 2 se ferment et la sortie
S1 est activée. Ainsi, la sortie se produit 1099 s après de
(b) montre la version Mitsubishi de ce schéma à contacts avec des temporisateurs TON, ainsi
que les instructions du programme correspondantes.
VI.4.2.3- Temporisateur cyclique marche-arrêt
temporisateur cyclique marche-arrêt peut être
Le temporisateur est conçu pour activer une sortie pendant 5 s, puis la désactiver pendant 5 s,
tacts se ferment,
Module : Programmation avancée et régulation des SAP 41
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
le temporisateur 1 démarre. II est configuré avec un retard de 5 s. Après 5 s, il active le
temporisateur 2 et la sortie S1. Le temporisateur 2 est configuré avec un retard de 5 s. Après 5
s, les contacts du temporisateur 2, qui sont nor
deuxième ligne et à la désactivation du temporisateur 2. Les contacts du temporisateur 2
reviennent donc à leur état cycle.
Si on considère que le temporisateur est un retard et non pas une bobine (le cas, par exemple,
se donne comme suit :
VI.4.3- Temporisateurs au déclenchement
La figure ci-
pour obtenir un temporisateur au déclenchement
momentanée est présente en El, la sortie S1 et le temporisateu
est verrouillée par les contacts de S1, la sortie reste active. Lorsque la durée de présélection du
Par conséquent, la sortie es
temporisation soit écoulée.
nir un TOF.
La figure suivante illustre cette fonction pour un API -Bradley.
Module : Programmation avancée et régulation des SAP 42
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
(EN : activation de temporisation, TT : temporisation en cours, DN : fin de la temporisation)
VI.4.4- Temporisateurs à impulsion
Les temporisateurs à impulsion produisent
- une
sortie S1 est activée et le temporisateur démarre. Lorsque la durée présélectionnée est écoulée,
les contacts du temporisateur se ferment, ce qui désactive la sortie. Par conséquent, la sortie
reste active pendant la durée définie par le temporisateur. Le schéma à contacts équivalent basé
sur un temporisateur qui retarde l
VI.4.5- Exemples de programmes
Examinons un programme qui permet de faire clignoter un témoin lumineux pendant
-dessous).
Module : Programmation avancée et régulation des SAP 43
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
Les temporisateurs 0 et 1 sont configurés à 1 s. Lorsque la sortie est présente, le temporisateur
rès 1 s. Ses contacts se ferment alors, ce qui démarre le temporisateur
1. II devient actif après 1 s, ce qui désactive le temporisateur 0. La lampe est allumée
programme qui initialement active le moteur 1 et son témoin lumineux Ll, puis, après une
durée fixée par le temporisateur, arrête le moteur 1 et le témoin 1, et active le moteur 2 et le
témoin lumineux 2.
VI.5- Compteurs
VI.5.1- Types des compteurs
ntrée a été reçu, il actionne ses contacts. Les contacts normalement ouverts sont fermés, les
contacts normalement fermés sont ouverts. II existe deux types de compteurs : les compteurs
dégressifs et les compteurs progressifs.
- Un compteur dégressif ou compteur décrémental (CTD), décompte à partir de la valeur
Module : Programmation avancée et régulation des SAP 44
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
disposent de compteurs dégressifs.
- Un compteur progressif
cumul atteigne la présélection. Lorsque le compteur atteint la valeur présélectionnée, ses
contacts changent
- Certains API offrent dans une même fonction une possibilité de comptage progressif et
dégressif (CTUD).
La figure suivante présente les symboles des compteurs tels que définis par la CEI.
VI.5.2- Programmation
La figure ci-dessous présente un circuit de comptage de base selon la norme CEI.
-à-dire dix transitions de 0 à 1, les contacts du
compteur se ferment et la sortie S1 est activée. Si, au cours du comptage, une entrée est présente
sur El, le compteur est réinitialisé et le cycle recommence pour dix impulsions.
Le programme précèdent est illustré dans la figure suivante pour les API de Mitsubishi
(a), de Siemens (b) et de Toshiba (c).
Module : Programmation avancée et régulation des SAP 45
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
pouvez utiliser le schéma à contacts suivant :
-à-dire un court moment après, le relais interne RI2 est activé. Lorsque RI2 est
une impulsion de courte durée, qui sert
compteur.
VI.5.2.1- Mise en application d'un compteur
e. Après un nombre défini,
un signal est envoyé pour informer que ce compte à été atteint et la bande transporteuse est
arrêtée. La figure ci-
à zéro provoque la réinitialisation du compteur
compteur.
Module : Programmation avancée et régulation des SAP 46
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
doit diriger six boites de conserve vers un chemin pour leur emballage dans un carton et douze
boites vers un autre chemin pour leur emballage dans un autre carton (voir figure (a)). Un
déflecteur est commandé par un capteur photoélectrique, qui produit une sortie chaque fois
ite passe devant lui. Les impulsions produites par le capteur doivent donc être
comptées et utilisées pour commander le déflecteur. La figure (b) présente le schéma à contacts
qui peut être utilisé, avec la notation de Mitsubishi.
U
être un bouton-
ce des boites de
conserve passant sur la bande transporteuse. C460 commence à compter après la fermeture
momentanée de X400. Lorsque C460 a compté six articles, il ferme ses contacts et produit une
un déflecteur afin de dévier les articles
vers un carton ou un autre. Le déflecteur peut ainsi se trouver dans une position qui permet de
Module : Programmation avancée et régulation des SAP 47
Mastère CoSIC Enseignant : M. Ridha MAHJOUB
dévier les six premières boites de conserve vers le carton de six boites. Ensuite, le déflecteur
est déplacé pour que les boites se dirigent vers le carton de douze boites. Lorsque C460 arrête
de compter, il ferme ses contacts et permet à C461 de débuter son travail. C461 compte douze
impulsions sur X401, puis ferme ses contacts. Cela remet à zéro les deux compteurs et le
processus se répète.
VI.5.3- Compteurs progressifs-dégressifs
Etudions par exemple le problème de comptage des articles qui arrivent sur une bande
transporteuse et qui en sortent, ou bien le comptage des voitures qui pénètrent dans un parking
et qui en s
peut commander
pour les articles qui entrent et le compteur dégressif pour ceux qui sortent. La figure ci-dessous
produit une entrée sur E2, ce qui diminue de 1 le nombre. Ainsi, chaque article qui sort diminue
de 1 la valeur cumulée. Lorsque la valeur cumulée atteint la valeur de présélection, la sortie S1
est activée. La valeur de présélection est chargée via F0.0, qui est un relais interne.
Module : Programmation avancée et régulation des SAP 48