Вы находитесь на странице: 1из 29

Step 7 : une

programmation
structure

LES LANGUAGES

Principe dappel des blocs


OB1
Bloc
dorganisation

Les blocs dorganisation


Le bloc dorganisation OB1 est le chef dorchestre du programme ; il
traite cycliquement le programme, il peut exister dautres OB dans le
programme:

Les fonctions
Une fonction (FC) est un bloc de code qui ne contient pas de donnes
statiques, conformment la norme CEI 1131-3.
Elle permet le transfert de paramtres dans le programme utilisateur et
s'adapte donc tout particulirement la programmation de fonctions
rcurrentes, comme par exemple les calculs.
Une fonction systme (SFC) est une fonction intgre au systme
d'exploitation de la CPU que vous pouvez appeler dans le programme
utilisateur, si besoin est. Elle ne peut tre programme par l'utilisateur.

Les blocs fonctionnels


Un bloc fonctionnel (FB) est un bloc de code qui contient des donnes
statiques, conformment la norme CEI 1131-3. Il permet le transfert de
paramtres dans le programme utilisateur et s'adapte donc tout
particulirement la programmation de fonctions complexes rcurrentes,
comme par exemple les rgulations ou la slection de l'tat de
fonctionnement.
Un bloc fonctionnel systme (SFB) est un bloc fonctionnel intgr au
systme d'exploitation de la CPU que vous pouvez appeler dans le
programme utilisateur, si besoin est. Il ne peut pas tre programm par
l'utilisateur.
Les blocs de code (OB, FB, FC) du programme utilisateur peuvent tre
chargs dans la CPU S7. Ils sont soit crs et dits directement dans des
diteurs incrmentaux, soit ils rsultent de la compilation de sources.

Les blocs de donnes


Les blocs de donnes sont des blocs utiliss par les blocs de code de
votre programme utilisateur pour enregistrer des valeurs.
Contrairement aux donnes temporaires du bloc de code, les donnes
du bloc de donnes ne sont pas effaces la fin de l'excution du bloc
de code ou lorsque vous fermez le bloc de donnes. La taille d'un
bloc de donnes dpend de la CPU considre. Dans une CPU 314
IFM, par exemple, elle peut atteindre jusqu' 8 kilo-octets, soit 8192
octets.

Blocs de donnes globales.


Il s'agit de blocs de donnes auxquels peuvent accder tous les blocs de code du
programme utilisateur S7. Tout FB, FC, ou OB peut lire ou craser les donnes qu'ils
contiennent. Vous pouvez crer des blocs de donnes globales en :
- dfinissant vous-mme la structure du bloc de donnes, c'est--dire en dfinissant
et ditant individuellement l'ordre des variables, leur nom et leur type de donnes.
- crant un bloc de donnes avec le type de donnes utilisateur correspondant.
Dans ce cas, c'est la structure du type de donnes utilisateur qui dtermine celle du
bloc de donnes.

Blocs de donnes d'instance


Il s'agit de blocs de donnes qui sont affects un bloc fonctionnel (FB) particulier. Ils
contiennent les donnes locales de ce bloc fonctionnel.
Si, dans un bloc fonctionnel, vous appelez d'autres FB et que vous avez dclar des variables
statiques (multi-instances) pour les instances de ces FB, alors le DB d'instance du bloc
fonctionnel appelant contient galement les donnes locales des FB appels.
Les blocs de donnes du programme utilisateur S7 peuvent tre chargs dans la CPU S7. Ils
sont soit crs et dits directement avec des diteurs incrmentaux, soit ils rsultent de la
compilation de sources

Droulement du programme.

Lecture de
la
priphrie
dentre,
Stockage
Droulement du programme en
dans la
utilisant les valeurs des entres de
MIE.
la MIE et en stockant les sorties
dans la MIS.

Temps de cycle (surveill)

Transfert
de la MIS
sur la
priphrie
Fonction
de sortie.
systme et
communic
ation

Lecture de
la
priphrie
dentre,
Stockage
dans la
MIE.

Droulement du programme en
utilisant les valeurs des entres de
la MIE et en stockant les sorties
dans la MIS.

Transfert
de la MIS
sur la
priphrie
de sortie.

Droulement du programme

Dcoupage en units de temps

Mmoire de chargement
La mmoire de chargement est stocke sur une micro-carte
mmoire SIMATIC Card (MMC).
La taille de la mmoire de chargement correspond exactement
la MMC. Elle sert mmoriser les blocs de codes et les
blocs de donnes ainsi que les donnes systme
(configuration, liaisons, paramtres de modules etc.).
Les blocs qui sont identifis comme n'intervenant pas dans
l'excution ne sont copis que dans la mmoire de
chargement.
Les donnes compltes de configuration d'un projet peuvent
tre galement archives sur la MMC.

Mmoire de travail
La mmoire vive est intgre la CPU et ne peut pas
tre tendue. Elle sert excuter le code et traiter
les donnes du programme utilisateur.
Le traitement du programme s'effectue exclusivement
au niveau de la mmoire de travail et de la mmoire
systme.
La mmoire vive de la CPU est toujours
rmanente.

Mmoire systme
La mmoire systme est intgre la CPU et ne
peut pas tre tendue.
Elle contient
les plages d'oprandes Mmentos M,
Tempos T et Compteurs Z
les mmoires images des entres MIE
. la mmoire image des sorties MIS
les donnes locales L (PILES)

Zones doprandes
Zones
doprandes

Accs par des units


de taille suivante

Notation
S7 IEC

Descriptions

Mmoire images
des entres MIE

- Entre (bit)
- Octet dentre
- Mot dentre
- Double mot dentre

E
EB
EW
ED

I
IB
IW
ID

Au dbut de chaque cycle la CPU lit les entres


provenant des modules dentres et les enregistre
dans la MIE

Mmoire images
des sorties MIS

- Sortie (bit)
- Octet de sortie
- Mot de sortie
- Double mot de sortie

A
AB
AW
AD

Q
QB
QW
QD

Pendant le cycle la CPU calcule les valeurs pour


les sorties et les dposes dans la MIS. A la fin la
CPU crit les valeurs de sorties calcules dans les
modules de sorties

Mmentos

- Mmento (bit)
- Octet de mmento
- Mot de mmento
- Double mot de
mmento

M
MB
MW
MD

Cette zone met disposition de lespace mmoire


pour les rsultats intermdiaires calculs dans le
programme

Temporisations

- Temporisation (T)

Cette zone sert despace mmoire pour les temporisations

Compteurs

- Compteur (Z)

Cette zone sert despace mmoire pour le compteurs

Oprandes suite 1
Zones
doprandes

Accs par des units de taille


suivante

Notation
S7

Descriptions

Blocs de
donnes

Bloc de donnes ouvert avec


AUF DB (OPEN DB)
- Bit de donnes
- Octet de donnes
- Mot de donnes
- Double mot de donnes

DB

Les blocs de donnes contiennent les


informations pour le programme. Ils
peuvent soit :
- servir tous les blocs de code(DB
globaux) ,

Bloc de donnes ouvert avec


AUF DI (OPEN DI)
- Bit de donnes
- Octet de donnes
- Mot de donnes
- Double mot de donnes

DI

- Bit de donnes locales


- Octet de donnes locales
- Mot de donnes locales
- Double mot de donnes
locales

L
LB
LW
LD

Donnes
locales

DBX
DBB
DBW
DBD

- soit tre associ un FB (DB


dinstance)

DIX
DIB
DIW
DID
Cette zone fournit de lespace mmoire
aux donnes temporaires dun bloc
pour la dure du traitement de ce bloc.
La pile L sert aussi la sauvegarde des
rsultats intermdiaires en CONT

Oprande suite 2
Zones
doprandes

Accs par des units de taille


suivante

Notation
S7

Descriptions

Zones de
priphrie
dentres

- Octet dentre de priphrie


- Mot dentre de priphrie
- Double mot dentre de
priphrie

PEB
PEW
PED

Les zones de priphries permettent


laccs direct des modules dentres
ou de sorties.

Zones de
priphrie de
sorties

- Octet de sortie de priphrie


- Mot de sortie de priphrie
- Double mot de sortie de
priphrie

PAB
PAW
PAD

Mmoire des entres MIE


Entres E (I) (lecture dans la Mmoire Image
d'Entres MIE)
- E y.x dsigne une entre, y est le numro de voies
(octet 0 127ou plus), x sa position (0 7).
- EB y dsigne un octet d'entres.
- EW y dsigne un mot d'entres ( 16 bits).
- ED y dsigne un double mot d'entres (32 bits).
Les mme termes prcd d'un P accdent
directement la priphrie sauf E y.x

Mmoire des sorties MIS


Sorties A (Q) (sortie dans la Mmoire Image
de Sorties MIS)
- A y.x dsigne une sortie. y est le numro de voies
(octet 0 127 ou plus), x sa position (0 7).
- AB y dsigne un octet de sorties.
- AW y dsigne un mot de sorties ( 16 bits).
- AD y dsigne un double mot de sorties (32 bits).
Les mmes termes prcds d'un P accdent
directement la priphrie sauf Ay.x

Zone de mmoire interne


Mmentos M (lecture dans la mmoire interne)
- M y.x dsigne un bit mmoire. y est le numro
d'octets (0 255 minimum), x sa position (0 7).
- MB y dsigne un octet de mmoire.
- MW y dsigne un mot de mmoire( 16 bits).
- MD y dsigne un double mot de mmoire(32 bits).

Donnes globales
Donnes D (ncessite l'ouverture pralable d'un DB
global).
- DBX y.x dsigne un bit de donnes y est le numro
d'octets (0 N), x sa position (0 7).
- DBB y dsigne un octet de donnes .
- DBW y dsigne un mot de donnes ( 16 bits).
- DBD y dsigne un double mot de donnes (32 bits).
- Laccs direct scrit Dbn.DB ( Xy.x ou By ou Wy ou
Dy), n = numro du DB

Donnes locales
Donnes L ( donnes locales dans la zone de
dclaration dun DB dinstance)
- L y.x dsigne un bit de donnes y est le numro
d'octets (0 127), x sa position (0 7).
- LB y dsigne un octet de donnes locales .
- LW y dsigne un mot de donnes locales ( 16
bits).
-LD y dsigne un double mots de donnes locales
(32 bits).
-Utilisation uniquement dans le bloc concern

Variables associes un bloc


Outre les instructions du programme utilisateur, les blocs contiennent des
variables que vous dclarez laide de STEP 7 lorsque vous programmez
des blocs vous mme.
Vous pouvez indiquer, dans la dclaration de variables, les variables que le
bloc devra utiliser lors de son traitement. Les variables sont :
des paramtres transmis entre blocs de code, des variables statiques
ranges dans un bloc de donnes dinstance et restant disponibles mme
une fois le bloc fonctionnel associ trait, des variables temporaires qui ne
sont disponibles que pendant le traitement du bloc et sont ensuite crases.
Le systme dexploitation affecte une zone de mmoire propre ces
donnes temporaires

Types de dclarations pour


paramtres et variables locales.
Paramtres/
variables

Description

Autoris
pour

IN

Paramtre dentre dont la valeur est fournie par le bloc de code


appelant

FB,FC

OUT

Paramtre dentre dont la valeur est fournie par le bloc de code appel

FB,FC

IN_OUT

Paramtre dentre dont la valeur est fournie par le bloc de code


appelant et modifi par le bloc de code appel et renvoy au bloc de
code appelant

FB,FC

STAT

Variable statique contenue dans le DB dinstance (mmorise dun


appel lautre)

FB

TEMP

Variable temporaire range dans la pile des donnes locales. Les


valeurs de ces variables sont perdues une fois lexcution du bloc
achev

FB,FC, OB

Changement de fonctionnement de la CPU

changes des blocs

Zones de mmoires

Zones de mmoires