I-Présentation des API S7-300 de Siemens :
Le système d'automatisation SIMATIC S7-300 est un automate modulaire de milieu de
gamme. Il existe une gamme étendue de modules S7-300 pour répondre de manière optimale à
différente tâche d'automatisation (exemple SIMATIC S7-300 CPU 314).
L'automate S7 est constitué d'une alimentation (Modules PS), d'une CPU ainsi que des modules
d'entrées / sorties.
Siemens fournit des :
Modules d'extension IM pour configuration multi rangées du S7-300
Modules de signaux SM pour entrées et sorties TOR et analogiques
Modules de fonction FM pour fonctions spéciales (par exemple l'activation d'un
moteur pas à pas)
Processeurs de communication CP pour la connexion au réseau
II- Programmation de l’API S7-300 de Siemens
1- Présentation du langage de programmation
L’API S7-300 est programmable à l’aide d’un PC avec le logiciel STEP 7 sous Windows qui
offre les fonctions suivantes pour l'automatisation d'une installation :
Configuration et paramétrage du matériel
Paramétrage de la communication
Programmation
Test, mise en service
La version de base STEP 7 permet l'utilisation d'autres logiciels optionnels tels que S7-GRAPH
ou S7-PLCSIM.
Le logiciel STEP 7 permet la programmation L’API S7-300 en :
Ladder Diagram LD (STEP 7: CONT) ·
Function Block Diagram FBD (STEP 7 : LOG)·
Sequential Function Chart SFC (STEP 7 : GRAPH7)·
Instruction List IL (STEP 7 : LIST)·
Structured Text ST (STEP 7 : SCL) qui est un langage évolué proche du C.
Une liaison MPI (Multi Point Interface ou interface multipoint) est nécessaire pour programmer
un SIMATIC S7-300 depuis le PC ou la PG. C’est une interface de communication utilisée pour
la programmation, le contrôle-commande avec HMI et l'échange de données entre des CPU
SIMATIC S7.
Le domaine d’utilisation de S7-PLCSIM est essentiellement le test de programmes STEP 7 pour
la SIMATIC S7-300 et la SIMATIC S7-400, que l’on ne peut pas tester directement par le
hardware (simulation du fonctionnement de l’API).
2- Variables et Adressage des E/S :
La mémoire de l’API S7-300 est compartimentée en zone chacune ayant une application
particulière :
Zone E : Mémoire image des entrées
Zone A : Mémoire image des sorties
Zone M : Mémoire utilisateur
Zone L : Mémoire locale, associée à un module de programme
Zone P : Accès à la périphérie
Zone T : Mémoire des temporisations
Zone Z : Mémoire des compteurs
Zone DB : Mémoire utilisateur ou système structuré dans des blocs de données
Les objets E, A, M, DB, PE et PA sont rangés dans des octets (8 bits), on peut accéder à un
BIT, à un OCTET, à un MOT de 16 bits ou à un DOUBLE MOT (32 bits) (voir S7-1).
Remarque : Le logiciel step7 permet la programmation en notation allemande (E, A, T, Z) ou
en notation anglaise (I, Q, T, C).
3- Adressage mnémonique :
L’adressage mnémonique est souvent fort utile pour une meilleure compréhension. Il permet
d’associer une adresse absolue définie à un nom mnémonique. Par exemple, on peut attribuer à
l’entrée E 0.0 le nom END_STOP et au type de données BOOL.
Chaque nom mnémonique ne doit être utilisé qu’une fois. L’attribution des associations
s’effectue dans la table des Mnémoniques on y définit Le nom du symbole, son adresse réelle,
son type et son commentaire.
On peut accéder à la table des symboles depuis l’éditeur CONT/LIST/LOG.
4- Configuration :
Utilisé pour les API modulaires, la configuration permet de préciser le nombre, le type et
l’emplacement des cartes et modules utilisés.
Pendant le montage de l’API S7-300, la CPU produit une configuration pratique et stocke celle-
ci dans les données système (SDB).
Avec l’outil ‘Configuration HW’ il est possible de créer une configuration théorique dérivant
de cette dernière et ainsi de configurer une nouvelle conception. De plus, on peut aussi charger
une configuration existante depuis une CPU. En plus des modules comme la CPU, d’autres
paramètres peuvent être prédéfinis (par ex. comportement de démarrage et de cycle d’une CPU,
choix d’un octet de cadence …).
5-Le mémento de cadence (clignotement) :
Le mémento de cadence est un octet. Chacun des bits de cet octet change d'état suivant une
horloge interne. Une durée de période et la fréquence correspondante sont affectées à chaque
bit de l'octet de mémento de cadence :
Exemple : Pour le mémento de cadence on choisit l’octet 120. Le bit 5 de MB120 change d'état
toutes les secondes :
III- Structure d’un programme STEP 7
Le STEP 7 utilise des Blocs d’organisation (OB) et des Fonctions et Blocs fonctionnels (FB et
FC) permettant l’écriture d’un programme dans différents modules, chaque module traitera une
fonction de l'automatisme qui seront appelles par le programme principale (OB 1).
III.1 Les Blocs d’organisation OB (OB 1 à OB 122)
Les OB sont appelés par le système d’exploitation, on distingue plusieurs types :
Ceux qui gèrent le traitement de programmes cycliques
Ceux qui sont déclenchés par un événement,
Ceux qui gèrent le comportement à la mise en route de l’automate programmable
Et en fin, ceux qui traitent les erreurs.
Il existe 7 blocs d’organisation différents :
OB cyclique (Program cycle), il s’agit de blocs traités de manière cyclique. Ce sont
des blocs de code de niveau supérieur dans le programme, dans lesquels vous pouvez
programmer des instructions ou appeler d'autres blocs. Le bloc cyclique OB1 est déjà
créé à la création du projet.
OB de démarrage (Startup), le traitement de ces OB est réalisé qu’une fois, lorsque la
CPU passe de STOP en RUN. Le traitement de l'OB de démarrage est suivi de celui de
l'OB cyclique.
OB d'alarme temporisée (Time delay interrupt), ils interrompent le traitement cyclique
du programme après écoulement d'un temps défini. Vous indiquez le temps de retard
dans le paramètre d'entrée de l'instruction étendue "SRT_DINT".
OB d'alarme cyclique (Cyclic interrupt), ils interrompent le traitement cyclique du
programme à intervalles de temps définis. Vous pouvez spécifier les intervalles de
temps dans cette boîte de dialogue ou dans les propriétés de l'OB.
OB d'alarme du processus (Hardware interrupt), ils interrompent le traitement cyclique
du programme en réponse à un événement matériel. Vous définissez l'événement
matériel dans les propriétés du matériel.
OB d'erreur de temps (Time error interrupt), ils interrompent le traitement cyclique du
programme lorsque le temps de cycle maximum est dépassé. Vous définissez le temps
de cycle maximum dans les propriétés de la CPU.
OB d'alarme de diagnostic (Diagnostic error interrupt), ils interrompent le traitement
cyclique du programme lorsque le module pour lequel l'alarme de diagnostic a été
activée détecte une erreur.
Vous retrouverez ces informations en ajoutant un OB à votre programme.
Ces blocs déterminent la structure du programme utilisateur. Les OB sont directement appelés
par le système d’exploitation de la CPU en réaction à un événement (à condition toutefois de
les avoir programmé et insérés dans l’automate).
Programme cyclique OB 1
Lors d’une exécution normale de programme, les traitements se font de façon cyclique.
L’exécution du programme contenu dans l’OB 1 est démarrée une fois par cycle (quand il est
fini, il recommence). On peut se servir de l’OB 1 pour appeler des blocs de type FC ou FB.
Le bloc OB1 est généré automatiquement lors de la création d’un projet. C’est le programme
cyclique appelé par le système d’exploitation.
III.2 Les Fonctions et Blocs fonctionnels FC et FB
Le dossier bloc, cité auparavant, contient les blocs que l’on doit charger dans la CPU pour
réaliser la tâche d’automatisation, il englobe :
Les blocs de code (OB, FB, SFB, FC, SFC) qui contiennent les programmes,
Les blocs de données DB d’instance et DB globaux qui contiennent les paramètres du
programme.
a. Les blocs fonctionnels (FB), (SFB)
Le FB est un sous-programme écrit par l’utilisateur et exécuté par des blocs de code. On lui
associe un bloc de données d’instance relatif à sa mémoire et contenant ses paramètres.
Les SFB système sont utilisés pour des fonctions spéciales intégrées dans la CPU.
b. Les fonction (FC), (SFC)
La FC contient des routines pour les fonctions fréquemment utilisées. Ces fonctions sont des
blocs de code sans mémoire et sauvegarde ses variables temporaires dans la pile de données
locales. Cependant elle peut faire appel à des blocs de données globaux pour la sauvegarde de
ses données.
Les blocs fonctionnels SFC sont des blocs de code qui sauvegardent en permanence leurs
valeurs dans des blocs de données d'instance afin qu'il soit possible d'y accéder même après le
traitement du bloc.
Les SFC sont utilisées pour des fonctions spéciales, intégrées dans la CPU S7, elle est appelée
à partir du programme.
III.3 Blocs de données (DB)
Les blocs de données sont des zones de données dans le programme utilisateur qui
contiennent des données utilisateur.
Vous pouvez sélectionner 2 types de bloc :
Un bloc de données global, qui est indépendant de tout autre bloc. (Par exemple nous
programmons un DB Global pour toutes les données d’échange entre API et HMI).
Un bloc de données d'instance, qui dépend d’un bloc fonctionnel, il s’agit de la
mémoire des valeurs du bloc dont il dépend.