LP EEP API TP3

Download Report

Transcript LP EEP API TP3

IUT de MARSEILLE GEII SALON
Licence PRO EEP
TP3
PROGRAMMATION DE BLOC DE FONCTIONS (FB)
A) NOUVEAU PROJET : MOTEUR_XX
Créer le nouveau projet.
On vous demande de faire un compte rendu avec les explications nécessaires , les adresses et les
programmes.
Quand cela fonctionne, vous devez le faire valider par l'enseignant.
B) UTILISATION DE BLOC DE FONCTION (FB)
Voir l'ANNEXES TP pour les détails sur les FB et DB d'instance.
un FB dispose d’un espace mémoire. Lors de l’appel d’un FB, un bloc de données d'instance (DB) lui est
alloué, il aura alors accès aux données contenues dans ce DB. Plusieurs DB peuvent être alloués à un
même FB. Cela permet de standardiser la programmation.
Une FC ne dispose pas d’espace mémoire, les données locales sont perdues après l’exécution de la
fonction.
OB 1
Call FB1,
DB10
FB 1
FC 21
Call FC21
DB 11
DB global
Pour tous les
FB
FC
OB
BE
DB 10
DB -Instance
Données locales
seulement pour
FB1
BE
FC 2
UC FC2
OB = Bloc d’organisation
FB = Bloc de fonctions
FC = Fonction
DB = Bloc de données
BE
LP EEP API TP3
1/8
Lionel Isoard
1) Exemple de marche à suivre pour créer un FB
( Ne pas réaliser !!!):
1.1) Sélectionnez le répertoire ‚Blocs’. (→ Blocs)
1.2) Insérer un ‚Bloc fonctionnel’ ( → Insertion → Bloc S7 → Bloc fonctionnel).
LP EEP API TP3
2/8
Lionel Isoard
1.3) .
Accepter le nom et les propriétés en cliquant sur ‚OK’. ( → FB1 → OK).
1.4) Double clique sur ‚FB1’ pour ouvrir le bloc fonctionnel. (→ FB1)
LP EEP API TP3
3/8
Lionel Isoard
1.5) L’éditeur ‘CONST, LIST, LOG’ vous permet de modifier votre bloc fonctionnel (FB).
Des variables de type ‘in’, ‘out’, ‘in_out’ et ‘temp’ peuvent être définies, ceci se fait dans la
table de déclaration des variables située en haut du FB1. A faire apparaître avec votre
souris.
Les adresses absolues
sont automatiquement
établies par Step7, leur
format est : BYTE.BIT
Nom mnémonique. Il pointe
sur l’adresse absolue et
permet donc d’accéder à la
variable correspondante.
Type des variables
(Voir tableau 2 TP2)
Type des
variables
Valeur initiale, du
même type que la
variable ( optionnel )
Commentaire
( optionnel )
Variables d’entrée (IN) pour les FB, FC
Grâce aux paramètres d’entrées, des données peuvent être transmises au bloc de programme.
Lecture seulement.
Variables de sortie (OUT) pour les FB, FC
Les résultats du bloc appelé sont transmis grâce aux paramètres de sortie. Ecriture seulement.
Variables d’entrée/sortie (IN_OUT) pour les FB, FC
Grâce aux paramètres d’entrée/sortie, des données peuvent être transmises au bloc, où elles
seront utilisées. Cette même variable contiendra ensuite le résultat du bloc appelé.
Lecture/ecriture.
Variable statique (STAT) pour les FB
Les Variables statiques sont les variables locales d’un bloc fonctionnel contenues dans le DB
d’instance correspondant. Celles-ci restent inchangées jusqu’au prochain appel du bloc
fonctionnel.
Variable temporaire (TEMP) pour tous les blocs
Les variables temporaires sont les variables locales d’un bloc contenues dans la pile locale (LStack). Celles-ci sont détruites après l’exécution du bloc.
Indication : C’est ici que réside la différence entre FB/SFB et FC/SFC : les FC n’ont pas de
variable statique à disposition alors que pour les FB, ces variables sont stockées
dans le DB d’instance correspondant jusqu’au prochain appel de l’FB.
C’est pourquoi les FB vont être utilisés dans les programmes où des données
doivent subsister durant plusieurs cycles d’exécution du programme.
LP EEP API TP3
4/8
Lionel Isoard
1.6) Pour la programmation du FB, les variables sont utilisées dans le programme en les faisant
précéder du caractère #’. Le bloc fonctionnel FB peut ensuite être enregistré ‚
dans la CPU ‚
’ et chargé
’. Le commutateur d’état de la CPU est sur la position ,Stop’ ( →
→
)
1.7) Le message d’alerte informe de la modification de l’interface d’appel du bloc fonctionnel.
Répondre par ,Oui’. ( → Oui).
1.8) Dans ‚SIMATIC Manager’, ouvrir l’‚OB1’ pour programmer l’appel du FB1 (→ OB1).
Cliquer sur ‚OK’ pour accepter les propriétés ( → OK ).
1.9) La programmation de l’OB1 se fait dans l’éditeur ‘CONST/LIST/LOG’. Le FB doit être appelé
avec le DB d’instance (ou DB local) correspondant. L'appel se fait comme pour les FC.
En répondant ,Oui’ à la question suivante, le DB d’instance sera automatiquement généré par
Step7
LP EEP API TP3
5/8
Lionel Isoard
1.10)
L’interface d’appel du FB est affichée, les variables de type ‘in’, ‘out’ et ‘in_out’
peuvent alors être affectés avec les valeurs souhaitées
Le bloc d’organisation OB1 peut ensuite être enregistré ‚
→
’: ( →
’ et chargé dans la CPU ‚
)
Indication : Tel qu’il a été programmé, le FB20 peut être appelé avec différents DB et différentes
entrées/sorties. Il peut donc être considéré comme un « bloc standard » spécifique à notre
application.
1.11)Il ne faut pas oublier de charger dans la CPU le DB d'instance utilisé (→ DB →
LP EEP API TP3
6/8
)
Lionel Isoard
2) Application : Gestion de 2 moteurs
2.1) Première partie
Cahier des charges:
Le bouton poussoir 'S0' permet de sélectionner le type de fonctionnement ‘manuel’ des 2 moteurs,
tandis que le bouton poussoir ‘S1’ le type de fonctionnement ‘automatique’ des 2 moteurs. Les 2
moteurs sont en auto ou manu en même temps.
En fonctionnement ‚manuel’, le moteur A tourne tant que l’on reste appuyé sur le bouton poussoir
‘S2’ et que le bouton poussoir ‘S3’ n’est pas actionné.
En fonctionnement ‚automatique’, le moteur A est mis en route avec le bouton ‘S2’ et est arrêté avec
le bouton ‘S3’.
Même type de fonctionnement avec le moteur B et les boutons poussoirs S4 et S5.
Les nombres de démarrage des moteurs A et B sont comptabilisés dans deux mémentos de type
double (MD). Quand on atteint 10 démarrages, un voyant clignote à 1 Hz. Ce même voyant clignote
à 10 Hz quand on dépasse 15 démarrages. Cela correspond à une demande de maintenance.
Le bouton RAZ_A permet d'acquitter la demande de maintenance du moteur A et de mettre à 0 le
compteur qui compte le nombre de ces démarrages. Même chose avec RAZ_B pour le moteur B.
Entrées :
Bouton de commande manuelle S0 = I x.0
Bouton de commande automatique S1 = I x.1
Bouton de mise en route S2 = I x.2
Bouton d'arrêt S3 = I x.3
Bouton de mise en route S4 = I x.4
Bouton d’arrêt S5 = I x.5
Bouton de maintenance RAZ_A = I x.6
Bouton de maintenance RAZ_B = I x.7
Sorties :
Moteur A = Q x.0
Moteur B = Q x.1
Voyant maintenance moteur A = Q x.2
Voyant maintenance moteur B = Q x.3
-
Mémentos :
Compteur A = MD20
Compteur B = à vous de bien choisir ….
Consignes de programmation:
Nouveau projet : MOTEUR_XX
Créer un FB1 : Commande de moteur avec comptage de démarrage. Langage de programmation : le
CONT. Pas d'utilisation de SET et RESET.
Pour le comptage, vous utiliserez un « Additionneur + 1. »
Ce FB sera un "bloc standard" utilisé pour le moteur A puis le B. Pour cela vous utiliserez la table de
déclaration de variables dans le FB1. Vous choisirez des noms explicitent pour vos variables!! Vous
utiliserez les types IN, OUT, IN/OUT. Vous utiliserez également le type STAT pour mémoriser
l'information des boutons poussoirs.
LP EEP API TP3
7/8
Lionel Isoard
Vous utiliserez le DB1 d'instance pour le moteur A et DB2 pour le B.
Programmer les deux appels de FB1 dans l'OB1. Il faut affecter les variables de types IN, OUT et IN/OUT
des opérandes d'entrées et sorties souhaitées.
Programmer, visualiser et tester.
2.2) Deuxième partie
On souhaite compter le nombre total de démarrage des deux moteurs. L’affichage des unités ( pas assez
de bits libres sur notre module d’affichage…) du résultat sera fait sur les bits Qx.4 à Qx.7 en code DCB.
Vous utiliserez une fonction FC1 pour réaliser ce fonctionnement.
Peux t on utiliser les MD20 et MD ? dans cette fonction ? Pourquoi ?
Programmer, visualiser et tester.
2.3) En cas de coupure d’électricité, on souhaite conserver le nombre de démarrage des
moteurs. Pour cela on utilisera le DB 10 pour le moteur A et le DB 20 pour le moteur B.
Faites les modifications nécessaires sur votre programme précédent
Programmer, visualiser et tester.
3) Refaire la même question en utilisant des FC
Préliminaire : vous n'avez plus le type STAT avec des FC. Pourquoi vous ne pouvez pas le remplacer par
le type TEMP ?
Programmer, visualiser et tester.
Conclure sur l'intérêt des FB par rapport au FC.
4) Recherche d'erreurs
Tous les outils prévu dans STEP7 pour aider à trouver les erreurs de programmation sont expliqués dans
le Chapitre 11 de Poly "Support de Cours".
Utilisez les différents outils avec le programme MOTEUR_XX.
Faites un résumé sur votre compte rendu des différentes possibilités et de leur intérêt.
LP EEP API TP3
8/8
Lionel Isoard