Programmation SIMATIC
11 Organisation du programme
22 Les blocs OB
33 Les fonctions SIMATIC LOG
44 Les fonctions FC
55 Les fonctions FB
66 Multi-instance
77 Bibliothèque Step7
Programmation SIMATIC
Sous-chapitre
Organisation du programme
Organisation du programme
SIMATIC MANAGER
STEP 7 : Programmation linéaire ou structurée
Organisation du programme
SIMATIC MANAGER
STEP 7 : Hiérarchie d’appel des blocs
Programmation SIMATIC
Sous-chapitre
Les blocs OB
Les blocs OB
Types d’alarmes et classes de priorité
Type d’alarme Bloc Classe de Exemple
d’organisation priorité
Cycle libre OB 1 1
Alarmes horaires OB 10 à OB 17 2 Calcul du débit d'un processus de mélange à la
fin de la journée de travail
Alarmes Temporaires OB 20 3 Commande d'un ventilateur devant fonctionner
OB 21 4 encore 20 s après l'arrêt d'un moteur avant d'être
OB 22 5 lui-même arrêté
OB 23 6
Alarmes cycliques OB 30 7 Échantillonnage d'un niveau de signal pour une
OB 31 8 installation de régulation
OB 32 9
OB 33 10
OB 34 11
OB 35 12
OB 36 13
OB 37 14
OB 38 15
Les blocs OB
Types d’alarmes et classes de priorité
Type d’alarme Bloc Classe de Exemple
d’organisation priorité
Alarmes de OB 40 16 Signaler que le niveau maximal d'une cuve est
processus OB 41 17 atteint
OB 42 18
OB 43 19
OB 44 20
OB 45 21
OB 46 22
OB 47 23
Alarmes OB 60 25 Mode multiprocesseur - fonctionnement
multiprocesseur multiprocesseur synchrone de plusieurs CPU
Cycle en arrière-plan OB 90 29 Vous pouvez y programmer des boucles de
longueur indiffé[Link] CPU ne contrôle pas
son temps d’exécution
Les blocs OB
Types d’alarmes et classes de priorité
Type d’alarme Bloc Classe de Exemple
d’organisation priorité
Erreur de redondance OB 70 Erreur de 25 Deux catégories d’erreurs: Synchrone et
redondance de la asynchrone
périphérie
(uniquement dans
les systèmes H)
OB 72 Erreur de 28
redondance
de la CPU
(uniquement dans
les systèmes H)
Erreurs synchrones OB 121 Erreur de Priorité de l'OB
programmation OB à l'origine de
122 Erreur d'accès l'erreur
Mise en route OB 100 Démarrage 27 Le Redémarrage n'existe pas pour les S7-300
OB 101 27
Redémarrage
OB 102 Démarrage 27
à froid
Programmation SIMATIC
Sous-chapitre
Les fonctions SIMATIC LOG
Les fonctions SIMATIC LOG
STEP 7 : Les opérations standard
• Opérations sur bits • Nombres entiers • Opérations sur mots
• Comparaison • Nombres réels • Blocs FB
• Conversion • Transfert • Blocs FC
• Comptage • Gestion de programme • Blocs SFB
• Appel de DB • Décalage/Rotation • Blocs SFC
• Sauts • Bits du mot d’état • Multi-instances
• Temporisation • Bibliothèques
Les fonctions SIMATIC LOG
Bloc opération logique
Porte ET
0.0 0 &
0.1 0
1.0 0
1.1 1
Porte OU
0+0 0 >=1
0+1 1
1+0 1
1+1 1
OU exclusif
0 + 0 0
0 + 1 1 XOR
1 + 0 1
1 + 1 0
Les fonctions SIMATIC LOG
Bloc opération
<opérande>
Détecter front montant
Détecte le passage de 0 à1 de l’opérande P
<opérande>
Détecte le front montant de signal
Compare l’état de signal de <opérande> à celui provenant de POS
l’interrogation précédente : M_BIT M_BIT Q
<opérande>
Détecter front descendant
N
Détecte le passage de 1 à 0 de l’opérande
<opérande>
Détecte le front descendant de signal
NEG
Compare l’état de signal de <opérande> à celui provenant de
M_BIT Q
l’interrogation précédente : M_BIT
Les fonctions SIMATIC LOG
Bloc opération
Mise à 1 Bascule Mise à 1, mise à 0
<opérande> <opérande>
S SR
S
R Q
Mise à 0 Bascule Mise à 0, mise à 1
<opérande> <opérande>
R RS
S
R Q
Les fonctions SIMATIC LOG
Les compteurs
Initialiser compteur Incrémenter
<opérande1>
<opérande1>
SZ
EN ZV
<opérande2> IN1
décrémenter
La valeur d’initialisation (opérande
2) peut être comprise entre 0 et <opérande1>
999, en BCD (C #) ZR
Les fonctions SIMATIC LOG
Les temporisateurs
Temporisateur sous forme d’impulsion Réseau 1
T5
<opérande>
SI
SI E0.0 EN
EN
S5T#2s TW
<valeur de temps> TW
Réseau 2
A4.0
La valeur de temps est de format S5TIME
=
T5
Les fonctions SIMATIC LOG
Les temporisateurs
Temporisateur sous forme d’impulsion prolongée <opérande>
SV
EN
<valeur de temps> TW
Temporisateur sous forme de retard à la montée <opérande>
SE
EN
<valeur de temps> IN1
La valeur de temps est de format S5TIME
Les fonctions SIMATIC LOG
Les temporisateurs
Temporisateur sous forme de retard à la montée mémorisé <opérande>
SS
EN
<valeur de temps> IN1
<opérande>
Temporisateur sous forme de retard à la retombée
SA
EN
<valeur de temps> IN1
La valeur de temps est de format S5TIME
Les fonctions SIMATIC LOG
Opérations de temporisation
T n°
S DUAL
TW DEZ
¾S_IMPULS : Temporisation sous forme d’impulsion
R Q
S_VIMP: Temporisation sous forme d’impulsion
prolongée
S: entrées de démarrage
¾S_EVERZ: Temporisation sous forme de retard à
TW: valeur de temps prédéfini la montée
R: remise à 0 ¾S_SEVERZ : Temporisation sous forme de retard à
la montée mémorisé
DUAL: valeur de temps restante (Binaire)
¾S_AVERZ : Temporisation sous forme de retard à
DEZ: valeur de temps restante (BCD)
la retombée
Q: Etat de la temporisation
Les fonctions SIMATIC LOG
Opérations de temporisation
Chronogrammes
E0.0
S_IMPULS : t
S_VIMP: t
t
S_EVERZ:
t
S_SEVERZ :
S_AVERZ : t
Les fonctions SIMATIC LOG
Opérations de comptage
Z n°
ZV
ZR
S DUAL
TW DEZ
R Q
¾ ZAEHLER : Compteur incrémental /
ZV : entrée d’incrémentation décrémental
ZR : entrée de décrémentation
¾ Z_VORW: Compteur incrémental
S: entrée d’initialisation du compteur
ZW: valeur de comptage ¾ Z_RUECK: Compteur décrémental
R: remise à 0
DUAL: valeur de comptage en cours (Binaire)
DEZ: valeur de comptage en cours (BCD)
Q: État du compteur
Les fonctions SIMATIC LOG
Opérations sur nombres entiers
Addition Soustraction
ADD_I SUB_I
EN OUT EN OUT
IN1 ENO IN1 ENO
IN2 IN2
ADD_DI SUB_DI
EN OUT EN OUT
IN1 ENO IN1 ENO
IN2 IN2
Les fonctions SIMATIC LOG
Opérations sur nombres entiers
Multiplication Division Reste de Division
MUL_I DIV_I MOD_I
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
IN2 IN2 IN2
DIV_DI MOD_DI
MUL_DI
EN OUT EN OUT
EN OUT
IN1 ENO IN1 ENO
IN1 ENO
IN2 IN2
IN2
Les fonctions SIMATIC LOG
Opérations sur nombres réels
Addition Multiplication
ADD_R
MUL_R
EN OUT
EN OUT
IN1 ENO
IN1 ENO
IN2
IN2
Soustraction Division
DIV_R
SUB_R
EN OUT
EN OUT
IN1 ENO
IN1 ENO
IN2
IN2
Les fonctions SIMATIC LOG
Opérations sur nombres réels
Valeur
absolue Racine carrée
ABS SQRT
EN OUT EN OUT
IN1 ENO IN1 ENO
Carré d’un Logarithme
nombre réel
LN
SQR
EN OUT
EN OUT
IN1 ENO
IN1 ENO
Les fonctions SIMATIC LOG
Opérations sur nombres réels
Fonctions trigonométriques
Fonction SIN
Exponentielle
ASIN
EXP
COS
ACOS
EN OUT
IN1 ENO
TAN
ATAN
Les fonctions SIMATIC LOG
Opérations de comparaison
16 bits 32 bits réels
CMP CMP CMP
==I <DI >=R
IN1 IN1 IN1
IN2 OUT IN2 OUT IN2 OUT
Types de comparaisons
== <> > < >= <=
Les fonctions SIMATIC LOG
Opérations de transfert ou de conversion
Affecter valeur Convertir BCD en Convertir entier 16
entier 16 bits bits en BCD
MOVE BCD_I I_BCD
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
Convertir INT Convertir BCD(32) Convertir entier 32
en DINT en entier 32 bits bits en BCD(32)
I_DI BCD_DI DI_BCD
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
Les fonctions SIMATIC LOG
Opérations de transfert ou de conversion
Convertir entier 32 Complément à 1 Compléments à 1 de
en réel De l’entier de 16 bits l’entier 32 bits
DI_R INV_I INV_DI
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
Complément à 2 Complément à 2 Inverser le signe
d’entier de 16 bits d’entier de 32 bits d’un réel
NEG_I NEG_DI NEG_R
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
Les fonctions SIMATIC LOG
Opérations de transfert ou de conversion
Arrondir à un Tronquer à la partie
entier de 32 bits entière
ROUND TRUNC
EN OUT EN OUT
IN1 ENO IN1 ENO
Convertir en entier Convertir en entier
supérieur le plus proche inférieur le plus proche
CEIL FLOOR
EN OUT EN OUT
IN1 ENO IN1 ENO
Les fonctions SIMATIC LOG
Opérations sur les mots
ET mot ET double mot OU mot
WAND_W WAND_DW WOR_W
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
IN2 IN2 IN2
OU double mot OU exclusif mot OU exclusif double mot
WOR_DW WXOR_W WXOR_DW
EN OUT EN OUT EN OUT
IN1 ENO IN1 ENO IN1 ENO
IN2 IN2 IN2
Les fonctions SIMATIC LOG
Opérations de décalage et de rotation
¾ SHL_W : Décalage vers la gauche (mot)
¾ SHL_DW : Décalage vers la gauche (double mot)
¾ SHR_W : Décalage vers la droite (mot)
¾ SHR_DW : Décalage vers la droite (double mot)
¾ SHR_I : Décalage vers la droite (INT)
¾ SHR_DI : Décalage vers la droite (DINT)
¾ ROL_DW : Rotation vers la gauche (double mot)
¾ ROR_DW : Rotation vers la droite (double mot)
Les fonctions SIMATIC LOG
Opérations de décalage et de rotation
DB10
¾ AUF : Ouvrir bloc de données AUF
CAS1
¾ JMP : saut inconditionnel JMP
CAS1
¾ JMP : saut si 1 (conditionnel) E0.0 JMP
CAS1
¾ JMPN : saut si 0 (conditionnel) E0.0 JMP
Programmation SIMATIC
Sous-chapitre
Les fonctions FC
Les fonctions FC
Définition des fonctions FC
Déclaration
•Les entrées : IN
• Les entrées/sorties : IN/OUT
• Les sorties : OUT
• Les temporaires : TEMP
FC1
Les entrées et
Les sorties
Les entrées/ sorties
Les fonctions FC
Editeur des fonctions FC
Déclaration
des variables
Catalogue
Programme
Programmation SIMATIC
Sous-chapitre
Les fonctions FB
Les fonctions FB
Définition des fonctions FB
Déclaration :
• Les entrées : IN
• Les entrées/sorties : IN/OUT
• Les sorties : OUT
• Les variables statiques : STAT
• Les variables temporaires : TEMP
DB1
Bloc de données
FB1 associé
Les entrées et
les entrées/ Les sorties
sorties
Les fonctions FB
Editeur des fonctions FB
Déclaration
des variables
Catalogue
Programme
Les fonctions FB
Avantages des DB associés à un FB
DB1
FB1
DB2
FB1
Programmation SIMATIC
Sous-chapitre
Bibliothèque Step7
Bibliothéque STEP 7
SFC, SFB et FC
Exemples SFC
¾ SFC0 : SET_CLK Mise à l’heure
¾ SFC1 : READ_CLK Lecture de l’heure et de la date
¾ SFC20 : BLKMOV Copie d’une variable
¾ SFC46 : STP Mise à l’arrêt de la CPU