Automatisme TP Step7

8
P. TRAU v4.2 Utilisation de Step 7 Introduction Step 7 permet l'accès "de base" aux automates Siemens. Il permet de programmer individuellement un automate (en différents langages). Il prend également en compte le réseau, ce qui permet d'accéder à tout automate du réseau (pour le programmer), et éventuellement aux automates de s'envoyer des messages entre eux. Mais il ne permet pas de faire participer les ordinateurs à l'automatisme (possible sous PCS7). Créer son projet Un projet contient la description complète de votre automatisme. Il comporte donc deux grandes parties : la description du matériel, et la description du fonctionnement (le programme). En entrant dans Step7, il peut y avoir un assistant qui vous propose de créer un nouveau projet, il vaut mieux l'annuler car par défaut il configure mal la liaison avec l'automate. On choisira donc plutôt « fichier -> nouveau » ou « fichier ->ouvrir ». N'utilisez pas un projet existant, suivant les filières les projets peuvent être incompatibles ! Le matériel La première chose à faire est de décrire le matériel. Nous disposons de 10 PC appelés ESx (x entre 0 et 9), ES0 et ES1 pouvant servir de serveurs; et de 10 valises (comportant un automate, ses modules d'entrées/sorties, ainsi qu'une console de simulation) nommées Vxx (V10 à V19). Ils sont tous reliés par un réseau industriel (PROFIBUS, câble violet) et par Ethernet (redondant, inutilisé ici). Repérez votre PC et votre valise, leurs numéros sont indiqués sur une étiquette rouge Pour commencer, insérez dans le projet une station SIMATIC 300 (renommez la du nom de votre valise, par exemple V10). On définit ensuite le matériel : un rail support (à trouver dans la liste du matériel, pour la gamme Simatic 300, dans les racks). Il vous prévoit plusieurs lignes : la première (dans Step7 v4.2 1

description

un tp sur step 7 avec indication de realisation du logeciel

Transcript of Automatisme TP Step7

  • P. TRAU v4.2

    Utilisation de Step 7

    IntroductionStep 7 permet l'accs "de base" aux automates Siemens. Il permet de programmer individuellement un automate (en diffrents langages). Il prend galement en compte le rseau, ce qui permet d'accder tout automate du rseau (pour le programmer), et ventuellement aux automates de s'envoyer des messages entre eux. Mais il ne permet pas de faire participer les ordinateurs l'automatisme (possible sous PCS7).

    Crer son projetUn projet contient la description complte de votre automatisme. Il comporte donc deuxgrandes 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 avec l'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 Vxx (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).

    On dfinit ensuite le matriel : un rail support ( trouver dans la liste du matriel, pour la gamme Simatic 300, dans les racks). Il vous prvoit plusieurs lignes : la premire (dans

    Step7 v4.2 1

  • 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 en ligne 2 l'automate (son numro IP 192.168.0.1xx est not sur la valise). La ligne 3 est rserve aux coupleurs (en particulier pour connecter un second rail), puis le module 32 sorties ToR, le module 32 entres ToR, le module 8E/8S (sauf sur V12), 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. Utilisez exactement l'adressage du tableau ci-dessus pour les modules d'E/S Pour le CPU, en ligne X1, vous dfinissez la connection PROFIBUS (et non MPI). On se connecte 500kbits, en format standard : les 10 valises Vxx (V10 V19), ont xx comme numro PROFIBUS (et surtout pas 2 qu'il vous propose par dfaut). 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 n'est pas obligatoire d'activer cette liaison, Profibus suffit).

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

    Step7 v4.2 2

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

    Le langage CONTC'est une suite de rseaux qui seront parcourus squentiellement. Les entres sont

    Step7 v4.2 3

  • 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 utilise dans 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.

    Le langage LOGC'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

    Step7 v4.2 4

  • 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 LISTC'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 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 entres inverses, = 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

  • L MW0 //charger le mot doubleL 130 //charger la constante>R //tester= A0.0 //s'allume si MW0 tait suprieur 130

    On sauve le sommet de la pile par T (T MW0 par ex). Sur les rels on peut faire de nombreux calculs : ABS, SQR, SQRT, LN, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN.

    Les conversions de formats de mots sont possibles : ITD ou DTI (16 32 bits), DTR ou RND, TRUNC (entier rel). On note B les nombres en BCD, toujours sur 32 bits. Ils sont entre -999 et plus 999, les 3 quartets de droite pour les 3 chiffres, celui de gauche pour le signe (0 = positif, F = ngatif). On traduit par ITB ou BTI, DTB ou BTD. C'est avec cela que vous grerez l'afficheur numrique de la valise.L EW6 //acqurir l'entre numriqueL W#16#FFF //masque pour ne garder que 12bits, la capacit du convertisseurUW //masquageITB //traduire en BCDT AW2 //transfrer sur l'afficheur

    Les constantes sont par dfaut en dcimal. On peut insrer des _ non significatifs mais pas d'espaces (1234 ou 1_234 mais pas 1 234). On peut utiliser une autre base X en commenant par X# (2#0110_1100 16#1ABA6). Les rels contiennent un . , et peuvent tre suivis d'un exposant (puissance de 10) : 1.2E-5. Les caractres sont entre quotes (simple apostrophe), le $ est un caractre d'chappement, c'est dire qu'il permet d'entrer un caractre spcial qu'un ne pourrait pas entrer autrement ($', $$, $N pour nouvelle ligne...) 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 (et n'oubliez pas l'aide en ligne).

    Le langage GRAPHLe Graph (langage proche du Grafcet mais moins puissant) n'est pas un langage de base dans S7. Mais il suffit 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)

    Step7 v4.2 6

  • 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 -> 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 faut galement 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 plusLa documentation se trouve dans le logiciel (menu ? ou F1), mais aussi dans le menu

    Step7 v4.2 7

  • dmarrer sous Simatic -> documentation -> franais. Mme les experts se servent frquemment de l'aide en ligne, (F1 sur un composant 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)...

    AnnexeLes 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 donnes Plage 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

    ID ED Double mot d'entre DWORD, DINT, REAL, TOD, TIME 0..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 sortie DWORD, DINT, REAL, TOD, TIME 0..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 mmento DWORD, DINT, REAL, TOD, TIME 0..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 PED Double mot priphrie d'entre DWORD, DINT, REAL, TOD, TIME 0..65532

    PQD PAD Double mot 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

    Step7 v4.2 8

    IntroductionCrer son projetLe matrielLe programmeLe langage CONTLe langage LOGLe langage LISTLe langage GRAPHTransfert vers l'automatePour en savoir plusAnnexe