Académique Documents
Professionnel Documents
Culture Documents
Cours Unity Pro
Cours Unity Pro
DAUTOMATES SCHNEIDER
MODICON, PREMIUM,
QUANTUM
SOUS UNITY-PRO
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 3/54
PROGRAMMATION
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 4/54
SOMMAIRE
1.
LES VARIABLES.......................................................................................................... 6
1.1. Topologie .............................................................................................................. 6
1.1.1. Les bits de type EBOOL.............................................................................. 6
1.1.2. Les mots de type INT, UINT, WORD .......................................................... 7
1.1.3. Les bits de mots de type BOOL ................................................................... 7
1.1.4. Les doubles mots de type DINT, UDINT, DWORD, REAL, DATE, TIME,
TIME OF DAY, ............................................................................................................. 7
1.1.5. Les structures STRUCT ............................................................................... 7
1.1.6. Les tableaux ARRAY[n..m] OF xxx .............................................................. 7
1.2. Types des variables .............................................................................................. 8
1.3. Reprsentation des nombres ................................................................................ 8
1.4. Adresses ............................................................................................................... 9
1.4.1. Les variables internes .................................................................................... 9
1.4.2. Les constantes ............................................................................................... 9
1.4.3. Les variables systmes.................................................................................. 9
1.4.4. Les entres de l'automate............................................................................ 10
1.4.5. Les sorties de l'automate ............................................................................. 10
1.4.6. Les entres dport de l'automate (bus FIPIO, AsI, Profibus, Ethernet) ..... 11
1.4.7. Les sortie dport de l'automate (bus FIPIO, AsI, Profibus, Ethernet) ........ 11
1.4.8. Les mots communs (communication par rseaux FIPWAY ou ETHWAY) .. 12
2. ADRESSES DES CARTES ........................................................................................ 13
2.1. Exemple de l'objet carte d'entre emplacement 4 dans le rack 0 ....................... 14
3. LES MNEMONIQUES ................................................................................................ 15
3.1. Voici un exemple ................................................................................................. 15
3.2. On peut accder la table des symboles depuis variable et instance FB .......... 15
4. ACCES AUX VARIABLE ............................................................................................ 16
4.1. Accs aux bits de mots ....................................................................................... 16
4.2. Accs aux lments d'une instance de structure ................................................ 16
4.3. Accs aux lments d'un tableau........................................................................ 16
5. LE NAVIGATEUR....................................................................................................... 17
5.1. Vue structurelle ................................................................................................... 17
5.2. Vue fonctionnelle................................................................................................. 17
6. LA CONFIGURATION ................................................................................................ 18
6.1. Configuration des modules d'entres analogiques.............................................. 18
6.2. Configuration des modules de comptage............................................................ 19
6.3. Configuration des modules de communication rseaux Ethernet ....................... 20
6.4. Configuration des modules de communication rseaux FIPWAY....................... 20
6.5. Configuration des modules unit centrale ........................................................... 21
6.6. Configuration de la tche matre ......................................................................... 21
7. LES FONCTIONS DANS LA BIBLIOTHEQUE........................................................... 22
7.1. Les fonctions de bases standards....................................................................... 23
7.2. Les EF de communications ................................................................................. 23
7.3. Les EFB et EF de rgulation ............................................................................... 23
7.4. Les EFB de sortie des rgulateurs ...................................................................... 23
7.5. Les EFB d'entre des rgulateurs ....................................................................... 24
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 5/54
7.6. Les EF sur chane de caractres ........................................................................ 24
7.7. Prsentation des EF mathmatiques .................................................................. 24
7.8. Prsentation des EF statistiques......................................................................... 24
7.9. Prsentation des EF de comparaisons ............................................................... 25
7.10.
Prsentation des EF logiques.......................................................................... 25
7.11.
Prsentation des EF sur tableaux.................................................................... 25
7.12.
Prsentation des EF sur date et temps ........................................................... 25
8. LES SECTIONS DE PROGRAMMES ........................................................................ 26
9. LE LANGAGE LADDER ou "LD" ............................................................................... 27
9.1. Exemple d'un programme en LADDER............................................................... 27
9.2. Prsentation de la barre d'outils.......................................................................... 27
10.
LE LANGAGE LITTERAL STRUCTURE ou "ST" ................................................... 29
10.1.
Structure de programme.................................................................................. 29
10.2.
Exemples de programme en littral structur .................................................. 31
11.
LE GRAFCET ou "SFC".......................................................................................... 32
11.1.
Exemple d'un grafcet ....................................................................................... 32
11.2.
La fonction SFCCNTRL ................................................................................... 33
11.3.
Les fonctions SETSTEP et RESETSTEP........................................................ 33
11.4.
Les variables associs aux tapes .................................................................. 33
11.5.
Actions associer aux tapes ............................................................................ 34
11.6.
Transitions associs aux tapes...................................................................... 35
12.
LE LANGAGE LISTE D'INSTRUCTION ou "IL"..................................................... 36
12.1.
Prsentation .................................................................................................... 36
12.2.
Les instructions................................................................................................ 36
13.
LE LANGAGE BLOCS FONCTIONNELS OU "FBD".............................................. 38
14.
LES OPTIONS DU PROJET................................................................................... 39
15.
LES DIFFRENTES TACHES .................................................................................. 40
15.1.
Principe de scrutation d'une tche................................................................... 40
15.2.
Configuration d'une tche................................................................................ 41
16.
LES VARIABLES DERIVEES D'ENTREES/SORTIES ........................................... 42
16.1.
Les changes explicites................................................................................... 43
17.
SYNTHESE D'ACCES AUX VARIABLES............................................................... 46
17.1.
Vue d'ensemble ............................................................................................... 46
17.2.
Accs rapide l'ensemble des types, variables et instances .......................... 46
18.
LES FONCTIONS DERIVEES DE TYPE DFB ....................................................... 47
19.
LES EFB (voir chapitre 7) ....................................................................................... 48
20.
LES PRINCIPAUX BIT SYSTEMES ....................................................................... 49
21.
QUELQUES MOTS SYSTEMES ............................................................................ 51
22.
LES ECRANS D'EXPLOITATION........................................................................... 52
22.1.
Utiliser la bibliothque d'objet prdfinis.......................................................... 52
23.
LES TABLES D'ANIMATIONS................................................................................ 54
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 6/54
1. LES VARIABLES
1.1. Topologie
1.1.1. Les bits
de type EBOOL
Etat courant
Etat antrieur
Etat forc
Ce sont des bits que l'on peut mettre 1 ou 0, que l'on peut tester.
Ces bits on l'avantage de pouvoir tester leurs fronts montants ou descendants, grce
leur tat antrieur
L'tat antrieur est mise jour chaque fois qu'il est crit, c'est--dire que l'tat
antrieur prend la valeur de l'tat courant, puis l'tat courant est mis jour
bit
actio
Ces bits on l'avantage de pouvoir tre forc, grce au bit "Etat forc", ils peuvent tre
forcs (ou figs) l'aide de la console de programmation et cet tat reste mme lors que
la console est dbranche.
Attention 1: forcer un bit peut gner la dtection des fronts, c'est--dire que le front peut
tre dtect en permanence, par exemple vous avez une instruction qui dtecte le front
montant d'un bit, ce bit vos 0 et vous le forc 1, sont tat courant prend la valeur 1 mais
sont tat antrieur qui vaut 0 n'est plus chang, puisqu'il est "forc". On dtecte le front
chaque passage.
Attention 2: L'tat antrieur est mis jour chaque fois qu'une instruction de mise jour
est excute, pour les instructions d'assignation il n'y pas de problme, mais il reste le
problme des instructions de mmorisation (set ou reset) en langage LADDER, qui sont
systmatiquement excuts, mme lorsque la condition amont est fausse.
cond
bit
S
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 7/54
1.1.2. Les mots
de type INT, UINT, WORD
Ce sont des mots de 16 bits que l'on peut crire ou lire
1.1.3. Les bits de mots
15
14
13
12
11
10
de type BOOL
8
Ceux sont des bits extraits de mots, il y a donc 16 bits par mot
1.1.4. Les doubles mots de type DINT, UDINT, DWORD, REAL, DATE, TIME,
TIME OF DAY,
Ceux sont deux mots conscutifs, chacun faisant 16 bits, un double mot fait donc 32 bits.
1.1.5. Les structures
STRUCT
Les structures peuvent contenir l'ensemble des variables vues ci-dessus, la taille des
structures dpend des lments qui la constituent
1.1.6. Les tableaux
ARRAY[n..m] OF xxx
Ceux sont des ensembles allant de n m de mme type
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 8/54
1.2.
TYPE
BOOL
EBOOL
BYTE
INT
UINT
WORD
DINT
UDINT
DWORD
REAL
DT
DATE
TIME
TOD
STRING
1.3.
Dfinition
Bit simple
Bit avanc
Octet
Entier sign sur 16 bits
Entier non sign sur 16
bits
Mot de 16 bit
Entier sign sur 32 bits
Entier non sign sur 32
bits
Double mot sur 32 bits
Rel sur 32 bits
Date and time sur 64 bits
Date sur 32 bits
Temps 32 bits
Heure du jour sur 32 bits
Chane de caractres
Reprsentation
True/false
True/false
Example
TRUE
FALSE
201
-154
64200
-1478230
5412410
DT#
D#
T#
TOD#
'chane'
154e10
DT#2009-05-09-10:54:12
D#2009-05-09
T#10D_3H_42M_5S_290MS
TOD#10:54:10
Format
Dcimal
Hexadcimal
Binaire
Octal
Rel
Reprsentation
16#
2#
8#
Exemples
214, -58
16#5FA2
2#1001101011
8#571
12.21
-458e-24
T#2H_50M_35S_12MS
T#5S
D#1998-12-28
TOD#10:32:50
DT#1998-10-25-07:15:00
A, COUCOU, $N'indice
Date
D#aaa-mm-jj
Heure
TOD#hh:mm:ss
Date et Heure
DT#aaaa-mm-jj-hh:mm:ss
Chane car.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 9/54
1.4.
Adresses
Les diffrentes variables ci-dessus ont une adresse, qu'il n'est pas ncessaire de
connatre ni de dfinir.
On peut donc avoir besoin d'un entier sign de 16 bits, qu'on appellera par exemple "toto"
on dfinira son type "INT" et on pourra lui affecter un commentaire, par exemple "toto est
un mot entier sign de 16 bits"
t:
type topologique
n:
numro
Exemples : %M12
%MW54
%MD157
%Mx12
type topologique:
Exemples:
n:
numro
%KW63
%KD70
Mot numro 63
Double mot numro 70
t:
type topologique
n:numro
Exemples : %S1
%SW50
%SD20
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 10/54
1.4.4. Les entres de l'automate
Ce sont des variables qui sont chang
implicitement avec les priphriques d'entres, cet
change lieu au dpart de la tche laquelle les
cartes sont affectes, par dfaut la tache matre MAST,
sinon la FAST ou l'AUX. Cet change se dfini lors de
la configuration de la carte
%Itr,m,v.d
t:
r:
m:
v:
d:
type topologique
rien ou X bits, W mot, D double mots
n du rack
n du module
n de la voie
n de rang (si =0 on peu s'en passer)
Exemples
%I0.2.45
%IW0.4.2
%I0.4.2.3
type topologique
rien ou X bits, W mot, D double mots
n du rack
n du module
n de la voie
n de rang (si =0 on peu s'en passer)
%QW0.3.2
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 11/54
1.4.6. Les entres dport de l'automate (bus FIPIO, AsI, Profibus, Ethernet)
Ce sont des variables qui sont chang
implicitement avec les priphriques dports
d'entres, cet change lieu au dpart de la tche
laquelle les cartes sont affectes, par dfaut la tache
matre MAST, sinon la FAST ou l'AUX. Cet change se
dfini lors de la configuration de la carte sur le
priphrique dport
%It\b.e\r.m.v.d
t:
b
e
r:
m:
v:
d
Exemples
type topologique
rien ou X bits, W mot,
D double mots
Identificateur de bus
point de connexion
n du rack
n du module
n de la voie
rang (si =0 on peu s'en passer)
%I\2.4\0.2.45
%IW\2.4\0.2.45.2
1.4.7. Les sortie dport de l'automate (bus FIPIO, AsI, Profibus, Ethernet)
Ce sont des variables qui sont chang
implicitement avec les priphriques dports de
sorties, cet change lieu la fin de la tche laquelle
les cartes sont affectes, par dfaut la tche matre
MAST, sinon tche FAST ou AUX. Cet change se
dfini lors de la configuration de la carte sur le
priphrique dport
%Qt\b.e\r.m.v.d
t:
b
e
r:
m:
v:
d
Exemples
type topologique
rien ou X bits, W mot,
D double mots
Identificateur de bus
point de connexion
n du rack
n du module
n de la voie
rang (si =0 on peu s'en passer)
%Q\2.4\0.2.45
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 12/54
Pour les objets d'Entre/Sortie de l'automate, le bit ou le mot de rang "0" correspond
l'tat de la voie TOR ou Analogique ou de comptage, le numro de rang "0" n'est pas
obligatoire (on n'crit pas .0)
Exemple :
%I0.2.3
Correspond l'entre 3 du module 2 dans le rack 0
%IW0.3.2
Correspond l'entre 2 du module 3 dans le rack 0
%Q0.4.61
Correspond la sortie 61 du module 4 dans le rack 0
Numro de rseau
Le numro de la station est dfini
sur la carte elle mme
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 13/54
2. ADRESSES DES CARTES
Numro de rang, si on en a
besoin.
Soit au niveau d'une voie
Soit au niveau du module
Numro de rack
Numro du module
Numro de voie
Est affich l, quand il
existe
Iditifiant du BUS
Numro du rack
Numro du point de
raccordement
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 14/54
2.1. Exemple de l'objet carte d'entre emplacement 4 dans le rack 0
.MOD
%I0.4.MOD.ERR
%I0.4.MOD
%I04.MOD.1
.ERR
Voie
.0
%I0.4.0.ER
%I0.4.0.0
ou
%I0.4.0
.1
%IW0.4.MOD.0
%IW0.4.MOD
.0
%IW0.4.MOD.1
.1
%IW0.4.MOD.2
.2
.ERR
.0
%I0.4.0.
.1
%IW0.4.0
.0
%IW0.4.0.1
.1
Variables globale
la carte
.0
.1
%I0.4.1.ERR
%I0.4.1.
0
ou
%I0.4.1
.ERR
.0
.1
%IW0.4.1
.0
%IW0.4.1.1
.1
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 15/54
3. LES MNEMONIQUES
Saisir les mnmoniques est trs utile, il vaut mieux saisir un programme entirement en
symbole quen adressage absolu, cest beaucoup plus lisible et comprhensible.
Il suffit daller dans la table des Mnmoniques et y entrer les diffrents lments.
Le nom du symbole, sont type, ventuellement sont adresse rel et sa valeur par dfaut,
sont commentaire
3.1.
Voici un exemple
3.2.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 16/54
4. ACCES AUX VARIABLE
On accde aux variables en indiquant leur nom ou leur adresse si elle est dfinie
.Exemple : titi
accde la variable titi
%mw10
accde la variable %mw10
Si titi est dclar de type INT avec l'adresse %mw10, on peut y accder soit par le terme
titi soit par son adresse %mw10
4.1. Accs aux bits de mots
On accde aux bits de mots en indiquant le mot suivi d'un point, puis le numro du bit
Exemple : tutu.10
accde au bit 10 du mot tutu
La variable tutu doit tre du type INT ou WORD
On accde au bit de mot, tous simplement en dfinissant une variable de type BOOL
Exemple : toto
accde une variable de type BOOL (bit de mot)
La variable doit tre de type BOOL, son adresse peut tre
dfini par exemple %mw20.5, le bit 5 du mot 20
4.2. Accs aux lments d'une instance de structure
On accde un lment d'une structure en indiquant le nom de l'instance suivi d'un
point suivi de l'lment auquel on veut accder
Exemple :
mastruct.ele1
accde la variable ele1 de l'instance mastruct
La variable mastruct doit tre dclarer du type
d'une structure
4.3. Accs aux lments d'un tableau
On accde un lment d'un tableau en indiquant le nom du tableau suivi du rang
entre crochets
Exemple :
tab[54]
accde l'lment numro 54 du tableau d'entier
tab doit tre de type ARRAY[n..m] OF INT, la valeur 54
doit tre comprise dans la plage n..m
tab2[9]
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 17/54
5. LE NAVIGATEUR
C'est simple, il suffit de lire pour comprendre
5.1. Vue structurelle
Nom du programme
Configuration de l'automate
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 18/54
6. LA CONFIGURATION
6.1.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 19/54
6.2.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 20/54
6.3.
6.4.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 21/54
6.5.
6.6.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 22/54
7. LES FONCTIONS DANS LA BIBLIOTHEQUE
Il y a les fonctions lmentaires EF, qui n'ont pas besoins d'tre instancies, et les blocs
fonctions lmentaires EFB qui doivent tre instancies, on peu se faire soit mme des
EFB en langage C, mais il faut avoir le logiciel SDKC, sinon on peut faire en langage
automate nos propres blocs fonctions drives DFB (voir chapitre 18)
Cliquer sur l'un des boutons suivants
OU
Fonctions de base
Fonctions communications
Fonctions de rgulations
Fonctions utilisateurs
Fonctions de diagnostiques
Fonctions d'entres sorties explicites
Fonctions pour les cartes d'AXES
Fonctions pour les cartes d'AXES
Ex fonction du PL7
Fonctions systmes tel les contrle
d'vnements, de mise l'heure, gestion des
grafcets ou encore la fonction SCHEDULE qui
permet de monter un bit certaines priodes
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 23/54
7.1.
7.2.
Les EF de communications
Lit une adresse
Annule un change
Envoi ou reoit des donnes
Lit des octets
Lit une chaine de caractre
Envoi une question attend la rponse
Ecrit une chaine de caractres
Reoit un tlgramme
Lis des bits ou mot s de manire asynchrone
Lis de donne MODBUS +
Lis de donnes standard
Envoi une requte
Envoi un tlgramme
Active le serveur UNITE
Ecrit des bits ou mots de manire asynchrone
Ecrit des donnes MODBUS +
Ecrit des donnes standard
7.3.
7.4.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 24/54
7.5.
7.6.
7.7.
ABS
ACOS
ADD
ASIN
ATAN
COS
DEC
DIV
DIVMOD
EXP
INC
LN
LOG
MOD
MOVE
MUL
NEG
SIGN
SIN
SQRT
SUB
TAN
7.8.
Valeur absolu
Arc cosinus
Addition
Arc sinus
Arc tangente
Cosinus
Dcrmentation d'un point
Division
Division ave modulo
Exponentiel
Incrmentation d'un point
Logarithme naturel
Logarithme en base 10
Modulo
Assignation
Multiplication
Inverse la sortie
Reconnat le signe
Sinus
Racine carr
Soustraction
Tangente
AVE
LIMIT
LIMIT_IND
MAX
MIN
MUX
SEL
Valeur moyenne
Valeur limite
Valeur limite avec indication
Valeur maxi
Valeur mini
Multiplexeur
Slectionne une valeur sur deux
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 25/54
7.9.
EQ
GE
GT
LE
LT
NE
7.10.
Egal
Plus grand ou gal
Plus grand
Plus petit ou gal
Plus petit
Non gal, diffrent
AND
FE
NOT
OR
RE
RESET
ROL
ROR
SET
SHL
SHR
XOR
TRIGGER
7.11.
ET
Front descendant
PAS
OU
Front montant
Met zro
Rotation sur la gauche
Rotation sur la droite
Met UN
Dcale sur la gauche
Dcale sur la droite
Ou exclusif
Dtecte tout front
ADD_ARxx
COPY_ARxx
DIV_ARxx
EQUAL_ARxx
FIND_EQ_ARxx
FING_GT_ARxx
FIND_LT_ARxx
LENGTH_ARxx
MAX_ARxx
MIN_ARxx
MOD-ARxx
MOVE_AREBOOL_xx
MOVE_xx_ARxx
7.12.
ADD_DT_TIME
ADD_TOD_TIME
DIVTIME
MULTIME
SUB_DATE_DATE
SUB_DT_DT
SUB_DT_TIME
SUB_TOD_TIME
SUB_TOD_TOD
Il y a beaucoup d'autres fonction que je ne vous prsente pas, mais que vous pouvez aller voir, tel les
fonctions sur les compteur et temporisateurs, les fonction d'change explicite sur les entres sortie, les
fonction de diagnostiques, les fonctions systmes, les fonctions sur les mouvements, les anciennes fonctions
du PL7 (obsolte lib)
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 26/54
8. LES SECTIONS DE PROGRAMMES
Une section peut tre cre en Littral (ST) en liste d'instruction (IL) en Bloc fonction
(FBD) en grafet (SFC) ou en LADDER (LD)
Vous devez lui donner un nom, vous pouvez lui donner une "condition", c'est--dire un bit
d'autorisation d'excution, vous pouvez lui affecter un "commentaire" pour expliquer son
rle et vous pouvez ventuellement la protger en lecture seule voire mme qu'elle ne soit
pas lisible.
Lorsque vous protger des sections, il faut alors protger l'ensemble de l'application et lui
donner un mot de passe (qu'il ne faut pas oublier).
Vous pouvez crer une section directement dans la vue fonctionnelle, ce qui est
prfrable, sinon vous pouvez donner sa "localisation", sachant que de toute faon, vous
pourrez changer sa localisation en faisant un glisser dplacer.
Le choix du langage dpend uniquement de vous. Bien sur elle dpend de ce que vous
imposent votre client.
Si vous avez le choix, choisissez le langage LADDER pour toutes les fonctions de bases,
choisissez le LITTERAL si vous avez de gros calcul faire, ou des algorithmes
compliqus, choisissez la reprsentation en BLOCS fonctions si vous avez des boucles
de rgulations complexes raliser, enfin choisissez le GRAFCET si vous avez des
squences raliser,
Mise en garde : N'oubliez pas que le grafcet est compliqu modifier, s'il faut modifier sa
structure, s'il y a beaucoup de saut d'tapes faire, si un imprvu arrive, dans certain cas
la structure est entirement revoir, il vaut mieux utiliser un autre langage avec des
mmoire ou des valeurs de mots (case of).
La question qu'il faut se poser est: l'action de je tente de raliser dpend elle
rellement d'une autre action, par exemple J'attends une rponse, dpend elle de je pose
une question, la rponse est oui, dans ce cas le grafcet peut tre envisag, un autre
exemple: je sors la bute dpend elle de je fais avanc le tapis, la rponse est ambigu,
videment si mon tapis n'avance pas la pice n'arrivera pas, on serai tent de dire "oui",
mais en fait la rponse est que cela dpend du numro de pice, la bute ne sortira que
lorsque le bon numro de pice arrivera et le grafcet n'est pas adapt au problme.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 27/54
9. LE LANGAGE LADDER OU "LD"
9.1. Exemple d'un programme en LADDER
Test un front
descendant
Test un front
montant
Test un bit 0
Test un bit 1
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 28/54
Fait un commentaire
Inverse une liaison
Appel une fonction
Retour d'un SR
Dfini une
tiquette
Saut une
tiquette
Fait une comparaison
Fait une opration
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 29/54
10. LE LANGAGE LITTERAL STRUCTURE OU "ST"
Le langage littral structur se programme sous forme de phrases d'une longueur
maximale de 300 caractres, comportant ventuellement un commentaire et une
tiquette, suivant le mme principe que le langage liste d'instructions.
10.1.
Structure de programme
Structure inconditionnelle
Une suite d'actions spares par des ";"
<Action>;<Action>;<Action>;
<Action>;
<Action>;
Une action fini toujours par un ";"
Structures conditionnelle
IF <condition> THEN
<programme>
ELSE
<programme>
END_IF;
IF <condition> THEN
<programme>
ELSEIF <condition> THEN
<programme>
ELSE
<Programme>
END_IF;
( Le nombre de ELSEIF est illimit )
CASE <variable> OF
<valeur1>: <Programme1>
<valeur2>:<Programme2>
<valeur3>:<Programme3>
END_CASE;
Structures itratives
WHILE <condition> DO
<programme>
END_WHILE;
REPEAT
<programme>
UNTIL <condition> END_REPEAT;
!!! Attention : l'UC ne fait rien d'autre pendant le programme, c'est dire qu'elle ne va pas
tester les entres ni mettre jour les sorties
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 30/54
Structure rptitive
FOR <indice>:=<valeur dpart> TO <Valeur arriv> DO
<programme>
END_FOR;
Instruction de saut
JMP <tiquette>
<tiquette>:
Le mot cl "EXIT"
Le mot cl "EXIT" permet de sortir prmaturment d'une boucle
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 31/54
Appel de fonctions EFB ou DFB
Appel en faisant passer les paramtres de manires formelles, c'est--dire en nommant
les paramtres, cette forme l'avantage de ne faire passer que les paramtres utiles
Exemples :
Appel d'un DFB instanci
MON_DFB (IN1 := var1, IN2 := var12, OUT => var3);
Appel de la fonction PIDFF instanci
PID1 (PV:=ProcessVariable,SP:=Setpoint,MAN_AUTO:=OperatingMode,
PARA:=FIC_Eau_Para, OUT:=sortie, STATUS=>Etat);
Appel d'une temporisation instanci
TP1 (IN:=Start, PT:=t#5s, Q=>Outputa);
Appel de la fonction gestion d'un grafcet instanci, on ne fait que l'initialisation
G7CTRL (CHARTREF:=G7, INIT:=init_g7) ;
10.2.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 32/54
11. LE GRAFCET OU "SFC"
11.1.
Chaque grafcet se dfini dans une section et porte son nom, on peut donc avoir autant de
grafcet indpendant les uns des autres
On peut initialiser, figer, vider, prpositioner n'importe quel grafcet, il suffit d'utiliser la
fonction SFCCNTRL
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 33/54
11.2.
La fonction SFCCNTRL
Cette fonction permet de grer un grafcet, on peu l'initialiser, le figer, le forcer etc.
Nom de la section
Bit d'initialisation
RAZ du grafcet
Arrte le contrle de temps
Gel le grafcet
Arrte tout traitement
Force le passage l'tape suivante
Active l'tape suivante
Acquitte les erreurs
Interdit la gestion
Traite toute les transition
RAZ des temps de calcul
Grafcet initialis
Grafcet t RAZ
Arrt du contrle de temps en cours
Gel du grafcet en cours
Arrt de tout traitement en cours
Forage du passage l'tape suivante en cours
Activation de l'tape suivante en cours
Erreur de temps
Contrle du temps actif
11.4.
tat de l'tape
0 ou 1
Temps d'activation de l'tape en dure de type TIME "T#"
Erreur de dure d'tape, temps trop court
Erreur de dure d'tape, temps trop long
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 34/54
11.5.
On peut lui associ plusieurs sections de programme qui seront ralis conformment au
"qualificatif"
On peut lui associ plusieurs bits variables qui seront ralis conformment au
"qualificatif"
Qualificatifs
N : Normal
R : Raz l'action prcdente
S : Mmorise l'action qui sera dsactivs par une tape "R"
L : Action temporis, le temps est dfini ou dans une variable
D : Action retard, le temps est dfini ou dans une variable
P : Action ne dure d'un tour de scrutation
DS: Action retard puis mmoris, dsactiv par une tape "R"
P1: Action sur front montant, s'excute en premier, "Equivalent l'activation du PL7"
P0: Action sur front descendant, s'excute en dernier "Equivalent la dsactivation du PL7"
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 35/54
11.6.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 36/54
12. LE LANGAGE LISTE D'INSTRUCTION OU "IL"
12.1.
Prsentation
Les instructions
INSTRUCTIONS BOOLEENNES
LD
LDN
LDF
LDR
AND
OR
ANDN
ORN
ANDF
ORF
ANDR
ORR
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 37/54
XOR
XORN
XORF
XORR
ST
STN
Ou exclusif
Ou pas exclusif
Ou front montant exclusif
Ou front descendant exclusif
Range le rsultat
Range le complment
MPS
MPP
MRD
toujours Vrai
toujours Faux
Exemple
LD
TRUE
[%MW2:=%MW10/5]
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 38/54
13. LE LANGAGE BLOCS FONCTIONNELS OU "FBD"
Voyez ici, comment augmenter le nombre d'entres d'une fonction, il suffit d'largir la
fonction elle-mme, en cliquant avec le bouton gauche sur la poign.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 39/54
14. LES OPTIONS DU PROJET
Accessible depuis "Outils"
Si vous utilisez les tableaux issu du PL7, par exemple le tableau %mw10:10, si vous
voulez accder un lment de ce tableau %mw10[%mw50] par exemple, cette syntaxe
ne sera pas accept ou alors, il faudra cocher la case "Autoriser le reprsentation direct
de tableaux (%xxx:nn)
Si vous voulez transfrer une chaine de bit dans un mot, il faut utiliser la fonction
"move_arebool_int", le problme c'est que se ne sera pas accept, il faudra cocher la
case "Autoriser les tableaux dynamiques [ANY_ARRAY_XXX]", ou sinon utiliser la
fonction "bit_to_word", l'inconvnient c'est qu'il faut crire l'ensemble des 16 bits
convertir.
Ou encore crivez une fonction DFB qui le fera, en entre un tableau de bit, en sortie un
entier et vous affecter chaque bit du mot avec chaque bit du tableau.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 40/54
15. LES DIFFRENTES TACHES
Priorit
Tches
auxiliaires
Tche matre
Tche rapide
Priodiques
La tche matre doit
tre priodique
Cyclique
ou
priodiques
(Suivant la
configuration)
Priodique
Tches
vnementielles
Dclenches par
des
temporisations
ou des
priphriques
Validation
Reset le timer
Gle le timer
Numro de timer
Pour autoriser les vnements, vous pouvez utiliser le bit systme %S38 ou utiliser les
fonctions UNMASKEVT ou MASKEVT
Il faut aussi que l'vnement soit choisis dans la configuration de la carte priphrique
%I
%Q
Recommence
cycliquement ou aprs la
priode dfini de la tche
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 41/54
15.2.
La tche matre doit tre dfini priodique si vous utiliser une tche auxiliaire
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 42/54
16. LES VARIABLES DERIVEES D'ENTREES/SORTIES
Chaque carte d'entres sorties de comptage de positionnement de communication,
analogique, de pesage, a sa structure spciale qui donne des informations ou donne des
ordres.
On dfini ces structures par l'diteur de variable, le nom de chaque structure est prdfini,
il est accessible par le catalogue ci aprs.
L'avantage de ces structures est qu'il donne les adresses et les symboles de tous les
paramtres.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 43/54
Exemple d'une voie de communication sur le rack 1, le module 4 et la voie 0
Les changes implicites avec les cartes d'entres et de sorties se font chaque cycle (%I
et %Q), il n' y pas bessoin d'instruction pour aller lire les entres ni pour crire les
sorties
Toutefois, on peu faire des changes explicites avec les cartes priphrique, c'est--dire
lire et crire dans les cartes avec des EF de programme.
Lis les paramtres de rglage d'une carte
Lis les tats de la carte
Lis les adresses topologiques d'une carte
Restaure les paramtres de rglage d'une carte
Sauve les paramtres de rglage d'une carte
Transfrer une recette dans une carte (carte d'AXE par exemple)
Ecrire les commandes d'une carte
Ecrire les entrs d'une carte
Ces fonctions permettent de simuler
Les entres
A n'utiliser que pour faire une simulation
Ecrit les paramtres d'une carte
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 44/54
Il y a des mots interne %mw qui sont ddis aux cartes priphriques, ces mots on une
adresse qui est:
%MWr.m.c.d
r : numro du rack
m: numro du module
c: numro de la voie
d: numro du rang (si =0 on peu s'en passer)
%MWr.m.MOD.d
r: numro du rack
m numro du module
MOD : crit en toute lettre, signifie qu'on s'adresse au module
lui-mme et nom pas une voie en particulier
d: numro du rang (si =0 on peu s'en passer)
Exemples :
%MW0.2.3.4
Le mot de rang 4 de la voie 3 du module 2 du rack 0
On peu exrtaire un bit d'un mot
%MW0.2.1.0.3
Le bit 3 du mot de rang 0 de la voie 1 du module 2 dans le rack 0
Il faut avoir la documentation de la carte, pour savoir qu'elles sont les diffrents
paramtres.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 45/54
Exemple de lecture de l'tat d'une carte
L aussi, il faut avoir la documentation de la carte pour interprter les diffrents tats
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 46/54
17. SYNTHESE D'ACCES AUX VARIABLES
17.1.
Vue d'ensemble
On dfini les types utilisateurs STRUCT ou ARRAY, bien que les types ARRAY
sont rarement dfinis
On dfini les fonctions utilisateur DFB
17.2.
Variables
lmentaires
Variables
d'entres, sorties
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 47/54
18. LES FONCTIONS DERIVEES DE TYPE DFB
Ce sont des fonctions critent par l'utilisateur, ces fonctions on peut faire passer des
paramtres d'entres (qui ne peuvent tre que lu), des paramtres de sortie (qui ne
peuvent tre qu'cit) et des paramtres d'entre/sortie (qui peuvent tre lu et crit)
En plus il y a des paramtres qui ne sont pas passs lors de l'appel de la fonction, mais
qui peuvent tre utile pour la fonction elle-mme. Il y a deux type de paramtres, les
prives qui ne sont accessibles que par la fonction elle-mme et les publics qui sont
accessible par la fonction, mais aussi par l'appplication.
Ces fonctions sont critent dans des sections qui leurs sont affects
On accde ces section depuis le navigateur, le langage de ces sections peut tre ST, IL,
LD ou FBD, mais ne peuvent pas tre en grafcet.
Les fonctions DFB sont trs utiles, en plus vous pouvez les exporter dans une
bibliothque et les rendre rutilisable.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 48/54
Exemple d'une fonction DFB
Cette fonction est du type "azerty" et est instanci sous le noms "UTILS", on peut rappeler
cette fonction avec cette instance ou la rappeler avec une autre instance. Il est utile de
crer une nouvelle instance lorsque vous avez besoins de mmoriser les paramtres
d'une scrutation sur l'autre, sinon utilisez la mme instance.
Vous avez accs dans l'application appelelante aux diffrrents paramtres de sorties, et
public sous la forme :
<nom de l'instance>.<nom du paramtre>
Exemple:
UTILS.c
UTILS.d
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 49/54
20. LES PRINCIPAUX BIT SYSTEMES
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 50/54
Bits de dbordements
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 51/54
21. QUELQUES MOTS SYSTEMES
Mots de dure
Mots horodateurs
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 52/54
22. LES ECRANS D'EXPLOITATION
Les crans d'exploitation sont trs utiles lors des mises aux points mais aussi en
maintenance, ils remplacent avantageusement les superviseurs, trs facile utiliser, on
peut dfinir toutes sortes de formes, de textes, de boutons, les animer trs facilements
On peut aussi utiliser les objets de "outils" "bibliothque des crans d'exploitations"
Voyez un exemple d'cran d'exploitation
22.1.
Utiliser la bibliothque d'objet prdfinis
Choisissez dans la fentre "Bibliotthque des crans d'exploitation"
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 53/54
Slectionner un objet, par exemple une vue d'un PID, copier le dans un nouvel
cran, ensuite afficher la fentre des variables
Double cliquer sur la variable que vous dsirer modifier, par exemple %MF0, vous
avez les objet slectionn qui aparaissent, cliquer alors avec le bouton droite et
selectionner caractristique, vous pouvez modifier la variable.
AMS720090001
Programmation des automates Schneider sous Unity-pro
Page 54/54