Vous êtes sur la page 1sur 9

Atelier C TIA Portal

CTIA06 : programmation des automates S7-300


Blocs dorganisation

CTIA06

Page 1

1. Types de blocs de programme

Lautomate met disposition diffrents types de blocs qui contiennent le programme et les donnes
correspondantes. Selon les exigences et la complexit du processus, il est possible de structurer le
programme en diffrents blocs : OB, FB et FC.

1.1 Les blocs dorganisation - OB


Ils constituent linterface entre le systme dexploitation et le programme
utilisateur.
Les OB sont programmables par lutilisateur, ce qui permet de dterminer le
comportement de la CPU.
Les OB sont appels par le systme dexploitation en liaison avec les vnements suivants :

Comportement au dmarrage
Excution cyclique du programme
Excution du programme dclenche par des alarmes (cyclique, processus, diagnostic,)
Traitement des erreurs

Pour que le traitement du programme dmarre, le projet doit possder au moins un OB cyclique (par
exemple lOB 1)

CTIA06

Page 2

1.2 Les fonctions FC


Ce sont des blocs de code sans mmoire.
Les donnes des variables temporaires sont perdues aprs lexcution de la
fonction. Si on veut mmoriser ces donnes, il faut utiliser des oprandes globaux.
Elles sont utilises pour la programmation de fonctions utilises plusieurs fois. On simplifie de ce fait
la programmation.

1.3 Les blocs fonctionnels FB


Ce sont des blocs de code qui mmorisent durablement leurs paramtres d'entre,
de sortie et d'entre/sortie dans des blocs de donnes d'instance afin qu'il soit
possible d'y accder mme aprs le traitement de blocs.

Lutilisation de ces diffrents blocs permet plusieurs structures du programme.

Programmation linaire

Programmation segmente

Programmation structure

Moteur
1

Toutes les instructions sont


contenues dans un seul bloc
(OB1).

CTIA06

Pompe
1
Les instructions pour les
diffrentes fonctions contenues
dans diffrents blocs. LOB 1
appelle les blocs les uns aprs
les autres.

Les fonctions rutilisables sont


programmes dans diffrents
blocs. LOB 1 appelle ces blocs et
transmets les donnes utiles
lexcution du programme.

Page 3

2. Les Blocs dOrganisations OB

Traitement

Traitement

Traitement

100

1017
OB dalarme et OB derreur

OS

Traitement des interruptions

Matriel

3038
2023
4047
Traitement
8087

121,122

2.1 Les OB de dmarrage (ex : OB 100)


Ils sont traits une seule fois, lorsque le mode de fonctionnement passe de STOP RUN. Aprs le
traitement de lOB de dmarrage, cest le traitement de lOB cyclique qui dmarre (voir type de
dmarrage dans S7 ).

2.2 Les OB cycliques (ex : OB 1)


Ils sont traits cycliquement. Les OB cycliques sont des blocs de code de niveau suprieur dans le
programme, dans lesquels on peut appeler dautres blocs.

2.3 Les OB de traitement priodique


Le traitement cyclique du programme peut tre interrompu par des OB de priorits suprieur.
Les OB dalarmes horaires (OB 10)

Les alarmes horaires sont utilises pour excuter un programme donn, appel dans lOB 10, une
seule fois un moment prcis ou priodiquement partir de ce moment (toutes les minutes, toutes
les heures, tous les jours, toutes les semaines, tous les mois, dclenchement annuel).
En fonction de la CPU, lutilisateur dispose au maximum de huit alarmes horaires diffrentes.
CTIA06

Page 4

Les OB dalarmes temporises (OB 20, 21)

S7 met disposition jusqu' quatre OB (en fonction de la CPU) qui sont traits chaque fois la suite
d'une temporisation paramtrable.
Le traitement du programme d'un OB d'alarme temporise (OB20) est lanc avec retard aprs
l'apparition d'un vnement dtermin.
L'OB20 peut tre activ uniquement par un appel de l'instruction SRT_DINT . Cette instruction est
galement utilise pour prciser la dure de la temporisation.

Laction peut tre annule par linstruction CAN_DINT .

Les OB dalarmes cycliques (OB 3037)

Une alarme cyclique permet de lancer le traitement dun bloc intervalles rguliers. Le S7-300
dispose de lOB dalarme cyclique OB35. Par dfaut, lintervalle de temps pour lappel de lOB est de
100 ms, la plage de rglage allant de 1 ms 1 min.
En fonction de la CPU, lutilisateur dispose au maximum de huit alarmes cycliques diffrentes.
Il faut veiller ce que lintervalle dfini soit suprieur au temps ncessaire lexcution du contenu
de lOB 35. Si lOB 35 est encore actif au moment o il est appel, le systme appelle lOB 80 (erreur
dalarme cyclique).

CTIA06

Page 5

2.4 Les OB dalarmes processus


Le traitement du programme dun OB dalarme de processus (OB40) est lanc ds quun vnement
dtermin survient dans le processus.
Les alarmes de processus peuvent tre dclenches par diffrents signaux provenant des modules :
Sur les modules de signaux paramtrables (DI, DO, AI, AO), le signal qui doit dclencher lalarme
de processus est dfini avec loutil de configuration matrielle.
Sur les modules CP (processeur de communication) et FM (module de fonction), le
comportement de lalarme est dfini laide du logiciel de configuration du module
correspondant.
En fonction de la CPU, lutilisateur dispose au maximum de huit alarmes de processus diffrentes.
Il ny a pas dalarme processus disponible sur les automates du CTA.

2.5 Les OB de traitement des erreurs asynchrones


Par dfinition, les erreurs asynchrones surviennent de manire asynchrone par rapport au traitement
du programme et ne peuvent donc pas tre imputes un endroit prcis du programme.
Le tableau ci-dessous nous montre les diffrents types derreurs asynchrones.

CTIA06

Page 6

3. Type de dmarrage dans S7

Il existe 3 modes de dmarrage de la CPU, avec les trois OB de mise en route correspondants. Cela
permet lutilisateur de programmer le comportement de lautomate au dmarrage en fonction de
la situation.
En cas de dmarrage, les mmoires images du processus (Mmoire Internes des Entres et
Mmoires Interne des Sorties) ainsi que tous les mmentos, les temporisations et les compteurs non
rmanents sont effacs. Les mmentos, les temporisations et les compteurs rmanents, ainsi que les
valeurs effectives des blocs de donnes sont en revanche conserv si lautomate est dot dune pile
de sauvegarde (S7 300 galement sans pile de sauvegarde, si lautomate est dot dune EPROM et
que la rmanence de la CPU a t paramtre. Le programme stock dans lOB 100 est excut une
seule fois, puis le traitement cyclique du programme dmarre.
Les CPU des automates S7 400 et les modles haut de gamme du S7 300 peuvent faire lobjet
dun redmarrage ou dun dmarrage froid (voir tableau ci-dessus).

CTIA06

Page 7

4. Diagramme de fonctionnement des OB

Les OB constituent linterface entre le systme dexploitation de la CPU et le programme utilisateur.


Ils sont appels exclusivement par le systme dexploitation. Certains vnements (alarmes horaire
et de processus,) entranent le lancement dun OB appropri.

4.1 Interruption des OB


Lorsque le systme dexploitation appelle un OB autre que lOB1, il interrompt le traitement cyclique
du programme car l'OB1 est celui qui a la priorit la plus faible. Tout OB peut donc interrompre le
programme principal et lancer lexcution de son propre programme, le traitement de lOB1
reprenant ensuite au point dinterruption.
Lorsque le systme appelle un OB de priorit suprieure celui dj en cours dexcution,
linterruption intervient aprs lopration en cours de traitement. Le systme d'exploitation
sauvegarde alors la pile complte des registres du bloc interrompu. Les informations contenues dans
ces registres sont restaures lorsque le systme dexploitation reprend le traitement du bloc
interrompu.

4.2 Priorit des OB


Le traitement dun OB peut tre interrompu aux limites dune instruction par un vnement (OB) de
priorit suprieure. Les priorits schelonnent de 0 28, 0 tant la priorit la plus faible et 28 la
priorit la plus forte.

CTIA06

Page 8

LOB 82 possde soit la priorit 26 lorsquil survient au cours du traitement de lOB 1, soit la priorit
28 lorsquil survient au cours dun dmarrage.
Les OB de mme priorit ne sinterrompent pas mutuellement, mais sont traits selon leur ordre
doccurrence.

5. Exercices
1. A laide de lOB 100, raliser un programme qui vous permet davoir en permanence un bit
1 (M0.1) et un bit 0 (%M0.0).
2. Vous souhaitez utiliser une frquence de clignotement de 4 Hz. Cette frquence n'est
malheureusement pas disponible via le mmento de cadence de clignotement. Etablir une
frquence de clignotement dans le mmento M35.0 l'aide de l'alarme cyclique.
3. Raliser un programme dans lequel toutes les minutes, un voyant sallume pendant 5
secondes.
4. Raliser un programme dans lequel tous les jours 16h, une sonnerie (%Q1.0) retenti jusqu
acquittement via une impulsion sur les BP_ACQ (%I0.1)

CTIA06

Page 9