Upload
adilofive
View
216
Download
0
Embed Size (px)
Citation preview
7/31/2019 Utilisation de Step 7
1/9
Utilisation de Step 7
Introduction
Step 7 permet l'accs "de base" aux automates Siemens. Il permet de programmer individuellement unautomate (en diffrents langages). Il prend galement en compte le rseau des automates, ce qui permet
d'accder tout automate du rseau (pour le programmer), et ventuellement aux automates de s'envoyer des
messages entre eux. Il ne permet pas d'incorporer les ordinateurs dans le rseau (durant le fonctionnement, il
n'y a pas de dialogue entre les PC et les automates, donc pas de supervision du processus par un logiciel
centralis, comme ce serait possible sous PCS7).
Crer son projet
Un projet contient la description
complte de votre automatisme. Il
comporte donc deux grandes parties :
la description du matriel, et la
description du fonctionnement (le
programme).
En entrant dans Step7, il peut y avoir
un assistant qui vous propose de
crer un nouveau projet, il vaut
mieux l'annuler car par dfaut il
configure mal la liaison avecl'automate. On choisira donc plutt
fichier -> nouveau ou fichier
->ouvrir . N'utilisez pas un projet
existant, suivant les filires les
projets peuvent tre incompatibles !
Le matrielLa premire chose faire est de dcrire le matriel. Nous disposons de 10 PC appels ESx (x entre 0 et 9),
ES0 et ES1 pouvant servir de serveurs; et de 10 valises (comportant un automate, ses modules
d'entres/sorties, ainsi qu'une console de simulation) nommes Vx (V10 V19). Ils sont tous relis par un
rseau industriel (PROFIBUS, cble violet) et par Ethernet (redondant, inutilis ici). Reprez votre PC et
votre valise, leurs numros sont indiqus sur une tiquette rouge
Pour commencer, insrez dans le projet une station SIMATIC 300 (renommez la du nom de votre valise, par
exemple V10).
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
2/9
On dfinit ensuite le matriel : un rail support ( trouver dans la liste du matriel pour la gamme Simatic 300,
dans les racks), puis (dans l'ordre de leur implantation physique, de gauche droite) l'alimentation (reprez
sur le matriel, en haut son type : PS 307 5A, en bas son numro de rfrence : 307-1EA-0AA0). Insrez
l'automate (son numro IP 192.168.0.1xx est not sur la valise), puis le module 32 sorties ToR, le module 32
entres ToR, le module 8E/8S (sauf sur ES2), et enfin le module analogique. On pourrait aussi dcrire son PC
(mais il n'interviendra pas dans le fonctionnement final, ce sera pour PCS7). La solution la plus simple est de
prparer un projet contenant la description de l'automate, sans y mettre de programme, et l'ouvrir chaque
nouveau programme (enregistrer sous... pour garder le projet initial). Je parle videmment de ceux qui
auraient plusieurs TP successifs effectuer ici.
Vrifiez bien les diffrentes adresses. Pour le CPU, en premier (X1) vous dfinissez la connection
PROFIBUS ( connecter en 500kbits, en format standard) : les 10 valises Vxx (V10 V19), ont xx comme
numro PROFIBUS. En X2 (seconde interface, ici Ethernet), dfinissez son numro IP (192.168.0.1xx) et
donnez le nom de votre valise (par exemple V10), il ne doit plus s'appeler PN-IO (il vaut mieux ne pas activer
cette liaison, Profibus suffit). Utilisez galement l'adressage du tableau ci-dessus pour les modules d'E/S.
Quand nous ferons des projets PCS7 il faudra galement dfinir le PC, nomm ESx (x entre 0 et 9), de
numro PROFIBUS x et IP 192.168.0.00x, voire plusieurs PC et plusieurs valises. Nous avons en plus un
gros automate (srie AS400) nomm AS400, d'adresse PROFIBUS 20, et 192.168.0.120 comme IP. Il est
prvu d'y adjoindre une priphrie dcentralise mais ce n'est pas encore fait. Ci dessous sa description
actuelle ( dfinir uniquement si vous l'utilisez) :
On peut (devrait, sauf dans les problmes suffisamment simples comme le premier exercice) donner des noms
explicites aux diffrentes E/S, en choisissant "mnmoniques" dans le dossier "programme" de l'automate. De
base, les entres ToR se notent E a.b (E=ein) avec a l'adresse du module (ou la partie d'adresse, on regroupe
par octet, donc dans un module 32 E/S il y a 4 adresses a), b tant le numro du bit dans l'octet (entre 0 et 7).
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
3/9
Exemple : E0.4 est la cinquime entre du premier bloc d'entres) les sorties se notent A a.b (A=Aus). Les
entres et les sorties peuvent utiliser les mmes adresses, les 32 entres du premier bloc s'appellent E0.0
E3.7, les 32 sorties du second bloc s'appellent A0.0 A3.7. On peut galement accder directement un octet
complet (B), un mot (W) de deux octets, un double mot (D) de 4 octets. Pour stocker des rsultats
intermdiaire, on dispose de mmoires internes (mmento) nomms en ToR M0.0 M65535.7 (si on a assez
de mmoire), ou MB, MW, MD. Pour l'arithmtique on dispose aussi des types int, dint, real, char, date,
time...
Les mnmoniques sont des variables globales (pour tous les blocs ou sous-programmes). Mais elles sont
dfinies pour un matriel donn uniquement. voici un exemple de table de mnmoniques :
Le programme
Le programme sera plac dans l'automate (->programme->blocs). Le "programme principal" s'appelle
obligatoirement OB1 (OB= Bloc d'Organisation, contient un bout de programme, on pourrait aussi appeler
cela un sous-programme). On double clique sur OB1 pour entrer le programme. Il faut avant tout choisir son
langage prfr (dans "affichage" s'il ne le propose pas automatiquement) : CONT (langage contacts), LIST
(langage textuel), ou LOG (portes logiques). D'autres langages (optionnels) existent, les trois qui me semblent
les plus intressants sont SCL (langage proche du Pascal, permettant des algorithmes et calculs complexes),
GRAPH (proche du Grafcet), HiGRAPH (proche des rseaux de Petri).
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
4/9
Le langage CONT
C'est une suite de rseaux qui seront parcourus squentiellement. Les entres sont reprsentes par des
interrupteurs -| |- (ou -|/|- si entre inverse), les sorties par des bobines -( )- ou des bascules -(S)- -(R)-.Il y a
galement des oprations unaires (une entre une sortie) : l'inverseur -|NOT|-, l'attente d'un front montant
-(P)- ou descendant -(N)-. Les sorties sont obligatoirement droite du rseau On doit videmment dfinir nos
E/S, soit directement par leur code (E a.b / A a.b), ou avec leur nom en clair dfini dans la table des
mnmoniques (entrez le nom entre guillemets). On relie les lments en srie pour la fonction ET, en parallle
pour le OU. On peut utiliser des bits internes (peuvent servir en bobines et interrupteurs), comme on utilisedans une calculatrice une mmoire pour stocker un rsultat intermdiaire (M a.b). On peut aussi introduire des
lments plus complexes, en particulier les oprations sur bits comme par exemple une bascule SR (priorit
dclenchement), RS (priorit enclenchement), POS et NEG pour la dtection de fronts... Dans le document en
ligne CONT pour S7 on trouvera d'autres fonctions utiles, les compteurs, les tempos, la rigueur le
registre dcalage qui permettrait de grer du squentiel sans Grafcet. On peut galement utiliser des
fonctions plus complexes (calculs sur mots par exemple), mais l je pense qu'il vaut mieux travailler en
langage LIST. On trouve normalement dans la fentre lments de programme l'ensemble des oprations
existantes (si on ne l'a pas ferme, bien sr, sinon choisir affichage -> vues d'ensemble ).
Le programme est en gnral dcompos en plusieurs rseaux, par exemple un rseau par sortie (2 parties du
schma non relies entre elles doivent tre dans deux rseaux diffrents). Les rseaux sont excuts
squentiellement.
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
5/9
Le langage LOG
C'est un langage graphique, utilisant les symboles de l'lectronique numrique (portes logiques). Il n'y a rien
de spcial dire, c'est trs intuitif. On peut utiliser plusieurs entres pour une mme porte, placer des
inverseurs sur les entres.... Ici, on dcoupe son programme en plusieurs rseaux (en gnral quand un
ensemble de blocs n'est pas reli au reste, ou un rseau par sortie...) Voici l'exemple correspondant au
programme CONT montr plus haut :
Le langage LIST
C'est un langage textuel, qui est le plus proche du comportement interne de l'automate (correspond peu prs
l'assembleur dans un ordinateur). Le systme sait toujours traduire du CONT ou du LOG en LIST, mais pas
l'inverse (ou alors je ne sais pas faire). Le programme se compose d'une suite de lignes, chacune spcifiant un
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
6/9
code opration suivi d'un oprande (et un seul). L'oprande peut tre une adresse absolue (E0.0) ou un
mnmonique entre guillemets (si les mnmoniques ont t dfinis, bien sr). Comme on ne peut pas utiliser
deux oprandes dans une mme ligne, pour faire x=a et b on crit :
U "a"
U "b"
= "x"
On utilise U pour ET (und), O pour Ou (oder), X pour Ou Exclusif), UN, ON et mme XN pour les entresinverses, = pour stocker le rsultat. L'opration (O ou U) pour le premier oprande n'a pas grande
importance. Pour une bascule on utilisera S et R :
U "a"
S "x"
U "b"
R "x"
NOT inverse le rsultat prcdent, FP indique si le rsultat prcdent vient de passer de 0 1 (front montant),
FN pour le front descendant. Ici aussi, on peut dcomposer le programme en plusieurs rseaux, mais peut-tre
est-ce moins courant qu'en CONT ?
On peut, comme en programmation classique, faire des sauts (goto) : SPA label (inconditionnel), SPB (si
dernier calcul = 1), SPBN (si 0). On saute une ligne prcde de label :
En LIST, on peut aussi traiter des mots (peut-tre plus facilement que dans les autres langages) : octets (B),
entiers de 16 bits (W) ou 32 bits (D), rels 32 bits). On utilise un accumulateur sous forme d'une pile ( 2
niveaux). On empile une valeur par L (load). Les calculs se font entre les deux accumulateurs, se notent pour
les entiers +I, -I, /I, *I (idem +D,... sur 32 bits, +R rels). On peut comparer les deux derniers niveaux de la
pile par I, =I, = =I, I (idem
7/31/2019 Utilisation de Step 7
7/9
ou directement son code en hexa ($4E pour 'N').
Le systme gre automatiquement le type de la constante, si on veut imposer son type il suffit de la prcder
par TYPE# : BOOL (bool#true, Bool#FALSE, BOOL#1), BYTE ou CHAR (BYTE#16#FF, BYTE#'a',
BYTE#127), INT ou WORD ou W (W#16#FFFF), DINT ou DWORD ou DW voire REAL (car les rels sont
stocks sur 32 bits).
Les constantes de dates dbutent par DATE# (ou D#), TIME# (T#) DATE_AND_TIME# (DT#) ou
TIME-OF_DAY# (TOD#). La date est sous la forme anne-mois-jour (D#2006-06-28), l'heure h:mn:s.ms (les
derniers sont optionnels) (DT#1995-02-02-11:11:11) Pour les dures, on utilise TIME dans le format dfinit
plus haut, ou on prcise les units (on peut alors prendre des nombres rels pour le dernier) : D (jour)H
(heure) M S MS (T#1d3h2m, T#2.5s, T#150ms). Il y a aussi des formats hrits de S5.
J'ai crit un document plus complet sur LIST, cliquez ici (et n'oubliez pas l'aide en ligne).
Le langage GRAPH
Le Graph (langage proche du Grafcet mais moins puissant) n'est pas un langage de base dans S7. Mais ilsuffit de crer un bloc fonctionnel (FB) en Graph : on se met au niveau des blocs et on insre (clic droit) un
FB (bloc fonctionnel). Il nous ouvre une fentre de proprits, o l'on choisit le nom (FB1 est trs bien) mais
surtout le langage (choisir GRAPH). Le systme cre automatiquement un DB (les donnes associes, DB1),
un FC72 et un SFC64 (fonctions systme ncessaires). Il n'y a plus qu' rentrer le programme, le sauver. Vous
aviez galement le droit de prciser des mnmoniques. Le systme me semble ncessiter des convergences en
ET symtriques aux divergences (mais accepte les tapes initiales multiples). Par contre pour les OU il m'a
l'air un peu plus souple. Il ne respecte pas la norme, en particulier les OU sont exclusifs (si deux voies sont
possibles, seule la plus gauche est emprunte), la rgle 5 est bafoue (si une tape doit tre active et
dsactive en mme temps, il la dsactive !), les simultanits sont farfelues.
Une tape est dfinie par un identificateur Sx (x numro unique), un nom (par dfaut StepX) qui servira pour
les synchronisations, et une extension (commentaire) not droite. On clique avec le bouton droit sur cette
extension pour demander l'insertion d'un objet (une action). Celle-ci est dfinie par un code sur une lettre (N
normal : sortie allume au dbut de l'activation et teinte la dsactivation, S set : sortie mise 1, R Reset :
sortie teinte, D dlai : allumage au bout d'un certain dlai aprs l'activation, extinction la dsactivation, il y
a d'autres options comme compteurs...).
Pour les transitions, on peut choisir le langage CONT ou LOG (j'utilise CONT). On peut insrer trs
facilement une tempo (Step12.T charger . On
peut regarder le programme actuellement dans l'automate (s'il est en mode RUN ou RUN-P) par affichage
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
8/9
-> en ligne (hors ligne correspond au projet que l'on est en train de crer sur le PC). On peut mme
directement modifier un programme dans la fentre en ligne (si l'automate est au repos), voire faire du
copier-coller ou glisser entre la fentre en ligne et hors ligne.
Dans la fentre en ligne , en entrant dans le programme (OB1 ou autres blocs), on peut directement
visualiser l'tat des variables dans le programme. On choisit pour cela test -> visualiser . En CONT, les
schmas deviennent en pointills au endroits o le courant n'arrive pas . En LIST, un tableau est affich
cot du programme, spcifiant les valeurs (0 ou 1) des oprandes, en LOG des 0 ou 1 sont crits sur les
liaisons. En Grafcet, les tapes actives sont en vert, les transitions valides sont montres comme dans le
langage correspondant, les valeurs des tempos, compteurs... sont notes ct du schma.
On peut galement lister l'tat de toutes les variables, voire les modifier. Pour cela, se placer sur les blocs
(fentre gauche du projet), puis dans la fentre droite (il s'y trouve au moins OB1) cliquer avec le bouton droit
et insrer une table des variables (VAT).
PLCSIM est un logiciel de simulation d'automates livr avec STEP7. On peut donc tester un programme sur
un PC non reli aux automates (mais avec STEP7 install, videmment). Pour tester un programme, il n'est
pas ncessaire d'avoir dfini de matriel. Sinon, enregistrez-sous, puis supprimez la description du matriel
(cliquez dessus avec le bouton de droite par exemple), et rpondez NON quand il vous demande s'il fautgalement supprimer le programme. Dmarrez le simulateur (outils -> simulation de modules ou l'icne
reprsentant l'automate virtuel dans un nuage), affichez les E/S (insertion ->entres ou sorties). Transfrez le
programme (par exemple par systme cible ->partenaires accessibles et un copier-coller). Vous pouvez
dsormais tester (en mode RUN).
Pour en savoir plus
La documentation se trouve dans le logiciel (menu ? ou F1), mais aussi dans le menu dmarrer sous Simatic
-> documentation -> franais. Mme les experts se servent frquemment de l'aide en ligne, (F1 sur uncomposant s'il a oubli le dtail de ses entres par exemple). Dans STEP7, getting started vous trouverez
peu prs la mme chose que dans ce document (mais on y parle aussi d'autres choses, par exemple des
sous-programmes FB).
Dans Step7, configuration matrielle on dtaille la configuration du matriel. Pour une seule valise c'est
inutile de le lire, mais on y dtaille la priphrie dcentralise (DP), les projets multi-cpu, la communication
par donnes globales (GD)...
Annexe
Les mnmoniques globaux (tous les blocs d'un mme CPU) sont entre guillemets, et acceptent tous
caractres. Les mnmoniques locaux dbutent par # et comportent lettres, chiffres et soulign.
Ci-dessous tous les types de variables pouvant tre associes un mnmonique :
Anglais Allemand Dsignation Type de donnesPlage
d'adresses
I E Bit d'entre BOOL 0.0..65535.7
IB EB Octet d'entre BYTE, CHAR 0..65535
IW EW Mot d'entre WORD, INT, S5TIME, DATE 0..65534
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm
r 9 09/05/2012 20:27
7/31/2019 Utilisation de Step 7
9/9
Anglais Allemand Dsignation Type de donnesPlage
d'adresses
ID ED Double mot d'entreDWORD, DINT, REAL, TOD,
TIME0..65532
Q A Bit de sortie BOOL 0.0..65535.7
QB AB Octet de sortie BYTE, CHAR 0..65535
QW AW Mot de sortie WORD, INT, S5TIME, DATE 0..65534
QD AD Double mot de sortieDWORD, DINT, REAL, TOD,
TIME0..65532
M M Bit de mmento BOOL 0.0..65535.7
MB MB Octet de mmento BYTE, CHAR 0..65535
MW MW Mot de mmento WORD, INT, S5TIME, DATE 0..65534
MD MD Double mot de mmentoDWORD, DINT, REAL, TOD,
TIME0..65532
PIB PEB Octet de priphrie d'entre BYTE, CHAR 0..65535
PQB PAB Octet de priphrie de sortie BYTE, CHAR 0..65535
PIW PEW Mot de priphrie d'entre WORD, INT, S5TIME, DATE 0..65534
PQW PAW Mot de priphrie de sortie WORD, INT, S5TIME, DATE 0..65534
PID PEDDouble mot de priphrie
d'entre
DWORD, DINT, REAL, TOD,
TIME0..65532
PQD PADDouble mot de priphrie de
sortie
DWORD, DINT, REAL, TOD,
TIME 0..65532
T T Temporisation TIMER 0..65535
C Z Compteur COUNTER 0..65535
FB FB Bloc fonctionnel FB 0..65535
OB OB Bloc d'organisation OB 1..65535
DB DB Bloc de donnes DB, FB, SFB, UDT 1..65535
FC FC Fonction FC 0..65535
SFB SFB Bloc fonctionnel systme SFB 0..65535
SFC SFC Fonction systme SFC 0..65535
VAT VAT Table des variables 0..65535
UDT UDT Type de donnes utilisateur UDT 0..65535
Patrick TRAU,
isation de Step 7 http://www-ipst.u-strasbg.fr/pat/autom/siemens/step7.htm