Vous êtes sur la page 1sur 35

Opérations numériques

F1

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.1

Sommaire Page
Objectifs du chapitre .......................................................................................................................................... 3
Acquisition, traitement et sortie des données .................................................................................................... 4
Type de données Entier (INT, entier sur 16 bits) ............................................................................................... 5
Type de données Entier double (INT, entier sur 32 bits) ................................................................................... 6
Type de données Réel (REAL, nombre à virgule flottante sur 32 bits) .............................................................. 7
Code BCD pour l'entrée et la sortie de nombres entiers ................................................................................... 8
Formats d'affichage ............................................................................................................................................ 9
Chargement et transfert de données ................................................................................................................. 10
Chargement des données dans l'accumulateur 1 .............................................................................................. 11
Fonctions de comptage S5 (Counter) ................................................................................................................ 12
Compteur : Diagramme fonctionnel .................................................................................................................... 13
Exercice 1 : Comptage des pièces transportées (FC 18, Z 18) .......................................................................... 14
Fonctions de temporisation S5 (Timer) .............................................................................................................. 15
Temporisation : Retard à la montée (SE) ............................................................................................................ 16
Exercice 2 : Surveillance du temps de transport (FC 17) .................................................................................. 17
Opérations de conversion BCD  entier ........................................................................................................ 18
Opérations de comparaison ............................................................................................................................... 19
Fonctions mathématiques de base .................................................................................................................... 20
Exercice 3 : Comptage des pièces transportées (FC 19) .................................................................................. 21
Informations complémentaires .......................................................................................................................... 23
Exercice complémentaire 4 : Comptage des défauts du tapis roulant (FC17) ................................................... 24
Exercice complémentaire 5 : Verrouillage temporisé de la marche par à-coups du moteur du tapis ................ 25
Compteur : Opérations sur bits ........................................................................................................................... 26
Temporisation : Retard à la montée mémorisé (SS) ........................................................................................... 27

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 1 Opérations numériques
Opérations numériques

F1

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.2

Sommaire Page
Temporisation : Impulsion (SI) .......................................................................................................... 28
Temporisation : Impulsion prolongée (SV) ....................................................................................... 29
Temporisation : Retard à la retombée (SA) ...................................................................................... 30
Formats de temporisation S5 dans STEP 7 ...................................................................................... 31
Temporisation : Opérations sur bits ................................................................................................... 32
Opérations de conversion I  DI  REAL ...................................................................................... 33
Opérations combinatoires sur mots .................................................................................................. 34
Exemple d'application : Détection de fronts ...................................................................................... 35

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 2 Opérations numériques
Objectifs du chapitre

A l'issue du chapitre, vous allez...

... connaître les types de données INT, DINT, REAL


et le mode de représentation DCB

... savoir utiliser les formats d'affichage de la fonction de


test "Visualisation/forçage de variables"

... connaître les instructions "Charger" et "Transférer"

... savoir utiliser et programmer les fonctions de comptage


et de temporisation S5

... connaître les opérations de conversion des nombres

... savoir utiliser et programmer les opérations de


comparaison

... connaître les fonctions mathématiques de base

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.3

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 3 Opérations numériques
Acquisition, traitement et sortie des données

Contrôle- 0248
Roues codeuses,
commande V potentiomètre,
de processus afficheur
0 8 1 5 7 segments

Pupitre opérateur

Unité de MPI par ex.


Traitement
commande des valeurs

ETOR EANA
STOR SANA

PROFIBUS par ex.

Commande Appareils
de terrain
du processus

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.4

Traitement Les automates à logique purement combinatoire se distinguent par le fait


binaire/numérique qu'ils traitent exclusivement des données binaires.
Pourtant, les performances des calculateurs de commande modernes et les
tâches à réaliser dans le domaine du traitement des données, de l'assurance
qualité, etc. ont donné une importance croissante au traitement des données
numériques par automate programmable.
Les grandeurs numériques se rencontrent dans tous les domaines de la
commande, aussi bien au niveau de la surveillance et du pilotage des processus
qu'au niveau de la commande des appareils de terrain.

Contrôle-commande La surveillance de processus a pour but de fournir à l'utilisateur des informa-


tions instantanées et claires sur le déroulement du processus et de lui permettre
d'intervenir dans la commande.
Si l'on utilisait autrefois des appareils d'entrée et sortie dépourvus de logique,
comme les afficheurs numériques 7 segments ou les roues codeuses, on fait
appel aujourd'hui à des terminaux de contrôle-commande "intelligents"
raccordés à un automate programmable.

Appareils de terrain Les appareils de terrain chargés d'acquérir les données du processus ou
d'intervenir dans son déroulement sont, eux aussi, alimentés directement en
données numériques via des bus de terrain Le raccordement d'appareils de
terrain, comme les entraînements ou les systèmes de pesage, via des modules
d'entrée/sortie analogiques appartient de plus en plus au passé.

Formats Pour la transmission des données entre terminal et automate ou encore pour la
mémorisation et le traitement des données au sein de l'automate, on utilise
différents formats de codage numérique des données.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 4 Opérations numériques
Type de données Entier (INT, entier sur 16 bits)
Plage de valeurs -32768 ... +32767 Opérations
(sans signe : 0 ... 65535) arithmétiques : p. ex. + I, * I, <I, ==I

Formats de représentation :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DEC : + 662 BIN : 2# 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 HEX : W#16#0 2 9 6


9
sans
+2 7 signe
Nombres 2 6 x 160 = 6
positifs +24
signés +22
9 x 161 = 144
+21 2 x 162 = 512
+ 662 662

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DEC : - 662 BIN : 2# 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 HEX : W#16#F D 6 A


15 sans
-2
+214 signe
Nombres
négatifs +213 12
+2 10 x 160 =10
signés 6 x 161 = 96
+211
+210 +28 +26 13 x 162 = 3328
Représentation sous forme +25 +23 +21 15 x 163 = 61440
de complément à deux - 662 64874

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.5

Type Integer Une valeur de type de données Integer est un nombre entier, c'est-à-dire sans
(entier sur 16 bits) chiffres après la virgule.
SIMATIC S7 enregistre les valeurs du type de données Integer sous forme de
nombres signés codés sur 16 bits, ce qui donne la plage de valeurs indiquée
ci-dessus. De plus, SIMATIC S7 offre à l'utilisateur des opérations arithmétiques
pour le traitement des nombres entiers.

Décimal Dans STEP7, les constantes du type de données Integer sont entrées sous
forme décimale (et non BCD), c'est-à-dire avec signe et sans indication explicite
du format. Si l'entrée d'entiers constants sous forme binaire et hexadécimale est
par principe possible, elle est souvent inappropriée, car difficile à lire. C'est la
raison pour laquelle la syntaxe de STEP 7 ne permet de définir les entiers que
sous une forme décimale..

Binaire Dans un calculateur numérique, toutes les valeurs sont enregistrées sous forme
codée binaire. Le système de numération binaire ne connaît que les chiffres 0
et 1. La base 2 utilisée par ce système résulte de ce nombre de chiffres dispo-
nibles. Le poids de chaque chiffre d'un nombre binaire correspond donc à une
puissance de la base 2. Cette base s'exprime sous la forme 2#.... dans l'indica-
tion du format.
En format binaire, les valeurs négatives sont représentées en complément à
deux. Dans ce cas, le bit de plus fort poids (bit 15 pour le type de données
Integer) prend la valeur - 215. Cette valeur étant supérieure à la somme des
autres valeurs, ce bit contient aussi l'indication du signe. S'il est égal à 0, la
valeur est positive, s'il est égal à 1, elle est négative. La conversion d'un nombre
binaire en nombre décimal s'effectue en additionnant les poids des bits à "1"
(voir figure).

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 5 Opérations numériques
Type de données Entier double (INT, entier sur 32 bits)

Plage de valeurs L# -2147483648 ... L#+2147483647 Opérations : p. ex. + D, * D, <D, ==D


(sans signe : 0 ... 4294967295)

Formats de représentation :
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DEC : L# +540809 BIN : 2# 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1

Nombres
positifs
signés

HEX : DW#16# 0 0 0 8 4 0 8 9
(sans signe)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DEC : L# -540809 BIN : 2# 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1

Nombres
négatifs
signés

Représentation sous forme HEX : DW#16# F F F 7 B F 7 7


de complément à deux
(sans signe)

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.6

Double integer SIMATIC S7 enregistre les valeurs du type de données Double integer (DINT)
(entier sur 32 bits) sous forme de nombres signés codés sur 32 bits, ce qui donne la plage de
valeurs indiquée ci-dessus. De plus, SIMATIC S7 offre à l'utilisateur des
opérations arithmétiques pour le traitement des valeurs DINT.

Décimal Dans STEP7, les constantes du type Double integer sont entrées sous forme
décimale (et non BCD) avec signe et indication de format L#, où L signifie "long"
(double mot, 32 bits).
Si les valeurs définies sont inférieures à –32768 ou supérieures à 32767,
l'indication de format L# est ajoutée automatiquement ; elle doit en revanche
être entrée par l'utilisateur pour les nombres négatifs supérieurs à –32768
(L# -1, par exemple). Ceci est indispensable lorsque la valeur est utilisée
comme entier double dans une autre opération arithmétique, sinon le traitement
s'effectuerait avec une valeur erronée (valeur + signe).

Hexadécimal Le système hexadécimal utilise 16 chiffres différents (0 ... 9 et A ... F), ce qui
donne un système de numération en base 16. Le poids de chaque chiffre d'un
nombre hexadécimal correspond donc à une puissance de la base 16.
Les nombres hexadécimaux sont définis avec les indications de format W#
(W = word (mot) = 16 bits) ou DW# (DW = double word (double mot) = 32 bits)
pour l'identification de la longueur et 16# pour l'identification du système de
numération. Le nombre de chiffres admis varie de 1 à 8, les emplacements
vides étant remplis avec des zéros de tête.
Les chiffres A à F correspondent aux valeurs décimales 10 à 15. La valeur 15
correspond à la valeur qui peut être codée en binaire (sans signe) sur 4 bits à 1.
La conversion d'un nombre binaire en nombre hexadécimal (et inversement) est
très simple. La valeur hexadécimale s'obtient en remplaçant chaque groupe de
4 bits d'un nombre binaire par le chiffre hexadécimal correspondant.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 6 Opérations numériques
Type de données Réel (REAL, nombre à virgule flottante sur 32 bits)
Plage de valeurs -3.402823•10+38 ... -1.175495•10-38 , 0.0, +1.175495•10-38 … +3.402823•10+38

Opérations : p. ex. + R, * R, <R, ==R


sin, acos, ln, exp, SQR

Format général d'un nombre réel = (signe) • (1.f) • (2e-127)

Exemple : 0.75 (Pour la saisie sur la PG, on utilise un point à la place de la virgule)

Signe du
nombre réel e = exposant (8 bits) f = mantisse (23 bits)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 ..... 2-23

Nombre réel = +1,5 * 2 126-127 = 0,75

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.7

Real Les types de données INT et DINT précédemment décrits s'utilisent pour
enregistrer des valeurs entières signées. Ces valeurs ne permettent donc
d'effectuer que des opérations dont le résultat est aussi un nombre entier.
Cependant, lorsque les valeurs traitées sont des grandeurs analogiques de type
courant, tension ou température, l'utilisation de nombres au format real est
indispensable (nombres à virgule flottante). Pour pouvoir représenter ces
valeurs, il faut définir des positions binaires dont la valeur est inférieure à 1
(puissances de la base 2 avec exposant négatif).

Format réel Pour pouvoir représenter la plus grande plage de valeurs possible (voir figure)
avec une place mémoire définie (SIMATIC S7 : double mot, 32 bits), il est
nécessaire de pouvoir choisir l'emplacement de la virgule selon ses besoins.
Pour faciliter le traitement d'une position de virgule variable, l'IEEE a défini très
tôt un format pour les nombres à virgule flottante, qui a été ensuite repris par la
norme IEC 61131 et, par conséquent, par STEP 7.
Le code binaire d'un nombre à virgule flottante est constitué d'un bit de signe,
d'un exposant (8 bits) et d'une mantisse.
Les valeurs réelles sont définies sans indication de format. Lors de l'entrée
d’une valeur réelle constante (exemple : 0.75), l'éditeur procède à un formatage
automatique (exemple : 7.5000e-001).

Application Les nombres à virgule flottante s'utilisent notamment pour le traitement des
valeurs analogiques.
Leur principal avantage réside dans le fait qu'ils admettent une multitude
d'opérations, parmi lesquelles des opérations standard comme +, -, * , / mais
aussi des opérations comme sin, cos, exp, ln, ..., qui trouvent surtout leur
application dans les algorithmes de régulation.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 7 Opérations numériques
Code BCD pour l'entrée et la sortie de nombres entiers

Plage de valeurs 16 bits : - 999 ... + 999 Opérations de


32 bits : -9999999 ... + 9999999 conversion : BTI, BTD, ITB, DTB
(non arithmétiques)

0 2 9 6

16 bits : BIN : 2# 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0

Signe (+) 2 9 6

HEX : W#16# 0 2 9 6 DEC : + 662

Signe (+) 0 0 0 0 2 9 6

32 bits : BIN : 2# 0 x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0

HEX : DW#16# 0 0 0 0 2 9 6 DEC : + 662

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.8

Historique Autrefois, l'entrée et la visualisation des nombres entiers étaient exclusivement


réalisées à l'aide de dispositifs de réglage et d'affichage mécaniques simples,
qui étaient raccordés aux modules d'entrée/sortie tout-ou-rien d'un API par un
câblage parallèle.
Code BCD Chaque chiffre d'un nombre décimal est codé sur quatre chiffres binaires (bits).
Ce mode de représentation à quatre bits provient du fait que le chiffre décimal le
plus élevé, le 9, nécessite au moins quatre chiffres en représentation binaire.

Nombre décimal Code BCD Nombre décimal Code BCD


0 0000 6 0110
1 0001 7 0111
2 0010 8 1000
3 0011 9 1001
4 0100 10 ... 15 interdit
5 0101

Nombres négatifs Pour pouvoir également entrer des nombres négatifs via un codeur BCD, le
signe est codé, avec STEP 7, à l'aide du bit de plus fort poids du chiffre le plus
élevé (voir figure). Un bit de signe = 0 indique un nombre positif, un bit de
signe = 1, un nombre négatif.
STEP 7 reconnaît les nombres BCD codés 16 bits (signe + 3 chiffres) et codés
32 bits (signe + 7 chiffres).
Formats de données STEP7 ne dispose d'aucun format de données pour l'entrée de valeurs codées
BCD. La définition peut toutefois s'effectuer en entrant sous forme de nombre
HEX le nombre décimal dont on veut entrer le code BCD. Le code binaire du
nombre HEX et celui du nombre décimal codé BCD sont identiques.
Comme le montre la figure, le format de données décimal ne convient pas à
l'entrée de nombres codés BCD.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 8 Opérations numériques
Formats d'affichage

prise à côté valeur invalide !!!

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.9

Formats d'affichage Les fonctions de test "Visualisation/forçage de variables" et "Visualiser bloc"


offrent différents formats d'affichage du contenu des variables ou des registres.
Chaque variable peut en principe être visualisée dans n'importe quel format
d'affichage, mais il est préférable de choisir le format le mieux adapté au type de
données.
BOOL Affichage d'un bit individuel
(possible uniquement avec les variables de type BOOL)
BIN Affichage des différents bits d'une variable
(intéressant pour les variables de type BYTE, WORD, DWORD)
HEX Affichage du contenu d'une variable sous forme de nombre
hexadécimal (BCD)
(intéressant pour les variables de type BYTE, WORD, DWORD)
DEC Affichage du contenu d'une variable sous forme de nombre
décimal (non BCD) signé (intéressant pour les variables de type
INT, DINT)
Virgule flottante
Affichage du contenu d'une variable sous forme de nombre à
virgule flottante (intéressant pour les variables de type REAL)

Adressage La mémoire du SIMATIC S7 est entièrement orientée octets. Par suite, le mot
de mémentos MW 20, par exemple, contient les octets de mémentos MB 20
(octet de poids fort) et MB 21 (octet de poids faible, voir figure) et le double mot
de mémentos MD 80 les octets de mémentos MB 80, 81, 82 et 83.
Pour les accès absolus aux variables (par ex. avec L MD 80), il faut prendre
soin d'écrire correctement non seulement la dimension de l'accès (ici MD...),
mais aussi son adresse (toujours identique celle de l'octet de poids fort, 80 dans
le cas présent). Avec une "prise à côté" par mégarde, c'est une valeur invalide
qui serait chargée (par ex. avec L MW 83, voir figure). L'adressage
symbolique des variables (ici L "MD_DINT") permet d'éviter de telles erreurs.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 9 Opérations numériques
Chargement et transfert de données

(ACCU 1)
12345678 A1B2C3D4

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.10

MOVE (CONT/LOG) Lorsque l'entrée EN est active, la valeur indiquée à l'entrée "IN" est copiée à
l'adresse précisée pour la sortie "OUT". "ENO" a le même état logique que "EN".

L et T (LIST) Le chargement et le transfert sont réalisés indépendamment du résultat logique


(RLG). L'échange de données s'effectue via l'accumulateur ACCU1.

Accumulateur 1 L'accumulateur 1 est le registre central de la CPU. L'opération de chargement


écrit la valeur de la source adressée dans l'accumulateur 1 (standard)
en partant de la droite et complète par des zéros les positions inutilisées.
L'opération de transfert copie (partiellement ou intégralement) le contenu de
l'accumulateur 1 à l'adresse de mémoire indiquée sans effacer le contenu de
l'accumulateur 1 (voir page suivante). Toutes les opérations de calcul
arithmétiques et numériques rangent leur résultat dans l'accumulateur 1.

Accumulateur 2 L'opération de chargement décale d'abord l'ancien contenu de l'accumulateur 1


dans l'accumulateur 2, efface l'accumulateur 1 (le remet à "0") et écrit alors
seulement la nouvelle valeur dans l'accumulateur 1.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 10 Opérations numériques
Chargement des données dans l'accumulateur 1
Contenu de l'accumulateur 1
Programme
31 23 15 7 0

L MB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MB0

31 23 15 7 0
Chargem.
L MW 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MB0 MB1

31 23 15 7 0

L MD 0 MB0 MB1 MB2 MB3

T AD 4
AD 4

Tansfert T AW 4
AW 4

T AB 4
AB 4

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.11

Généralités Les accumulateurs sont des mémoires auxiliaires destinées à l'échange de


données entre différents opérandes et aux opérations de comparaison et de
calcul. Le S7-300 dispose de 2 accumulateurs de 32 bits chacun, la CPU 318-2
et le S7-400 de 4 accumulateurs de 32 bits également.

Chargement L'opération de chargement charge le contenu de l'octet, du mot ou du double


mot adressé dans l'accumulateur 1.

Transfert Lors du transfert, le contenu de l'accumulateur 1 est conservé, ce qui permet de


transférer la même information vers différentes cibles. Si le transfert ne porte
que sur un seul octet, le système utilise les 8 bits de droite (voir figure).

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 11 Opérations numériques
Fonctions de comptage S5 (Counter)
CONT LOG LIST

U E0.4
Z5 Z5
ZV Z5
ZAEHLER ZAEHLER
E 0.4 A 8.3 U E0.5
ZV Q
Q E 0.4 ZV ZR Z5
U E0.3
E 0.5
L C#5
ZR DUAL MW 4 E 0.5 ZR
S Z5
E 0.3 U E0.7
S DEZ AW 12 E 0.3 S DUAL MW 4 R Z5
L Z5
C#5 ZW C#5 ZW DEZ AW 12 T MW4
A 8.3 LC Z5
E 0.7
R E 0.7 R Q
Q = T AW12
U Z5
= A8.3

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.12

Valeur de comptage Un mot de 16 bits est réservé à chaque compteur dans la mémoire de données
système pour la mémorisation de la valeur de comptage (0...999) codée en
binaire.

Compteur Lorsque le RLG passe de "0" à "1" à l'entrée "ZV", l'état du compteur est
incrémenté de 1 (valeur maximale = 999).
Décompteur Lorsque le RLG passe de "0" à "1" à l'entrée "ZR", l'état du compteur est
décrémenté de 1 (valeur minimale = 0).
Positionnement Lorsque le RLG passe de "0" à "1" à l'entrée "S", le compteur est positionné à la
du compteur valeur présente à l'entrée "ZW".

Remise à zéro Lorsque le RLG est 1, le compteur est remis à zéro. Si la condition de remise à
zéro est remplie, le positionnement et le comptage sont impossibles.

ZW La valeur de positionnement codée BCD (0...999) est spécifiée à l'entrée ZW :


• sous forme de constante (C#...)
• via une interface de données, en format BCD.

DUAL / DEZ La valeur de comptage peut être chargée dans l'accumulateur à partir de la
sortie binaire (DUAL) au format Integer ou à partir de la sortie décimale (DEZ)
au format BCD, puis transférée dans d'autres zones d'opérandes.
Q L'état logique du compteur peut être interrogé à la sortie "Q" :
• valeur de comptage n : =0  Q=0
• valeur de comptage n : 1<= n <= 999  Q=1

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 12 Opérations numériques
Compteur : Diagramme fonctionnel

ZV

ZR

5
4
3
Etat du
compteur 2
1
0

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.13

Remarques Lorsque le compteur atteint 999 lors du comptage ou 0 lors du décomptage, son
état n'est plus modifié par les impulsions de comptage ou de décomptage
suivantes.
Si des impulsions de comptage et de décomptage se présentent simultanément,
l'état du compteur reste inchangé.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 13 Opérations numériques
Exercice 1 : Comptage des pièces transportées (FC 18, Z 18)

Entrées Sorties
E 0.0 BP_Marche Nombre réel de pièces
E 0.1 BP_Arret Led_disponible A 4.1
E 0.2 BP_Droite Led_manuel A 4.2
E 0.3 BP_Gauche Led_automatique A 4.3 V

E 0.4 Selecteur_choix_mode
E 0.5 BP_Validation_mode "Afficheur" (AW 6)
-15V...+15V -15V...+15V
AI2 AO1
AI1 AO2

AI1 AI2
V

0 8 1 5 AI1 AI2 AO1 AO2

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.14

Fonction précédente En mode automatique, les pièces sont transportées du poste 1 ou 2 jusqu'au
poste de contrôle final, c'est-à-dire jusqu'au franchissement de la barrière
lumineuse. L'opération de transport commence dès qu'une pièce est déposée
au poste 1 ou 2 et que le bouton-poussoir du poste correspondant est actionné.
Elle s'arrête dès que la pièce a franchi la barrière lumineuse.

Enoncé • Les pièces transportées en mode automatique doivent être comptées dès
qu'elles ont franchi la barrière lumineuse "FL1_Cellule" (E 8.0)
("FL1_Cellule" 0->1).
• Le nombre de pièces transportées (nombre REEL) doit être acquis avec le
compteur S5 Z 18 et visualisé sur l'afficheur numérique BCD.
• Le compteur doit être remis à zéro à la mise hors tension de l'installation
(A 4.1 = "0").

Marche à suivre 1. Programmez le comptage des pièces transportées dans le bloc FC 18


"FC_Comptage". Utilisez pour ce faire le compteur S5 Z 18.
2. Programmez l'appel du bloc FC 18 dans l'OB 1.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 14 Opérations numériques
Fonctions de temporisation S5 (Timer)
Impulsion (SI) Impulsion prolongée (SV)
T44 T44
S_IMPULS S_VIMP
E0.7 S DUAL MW 0 E0.7 S DUAL MW 0
S5T#35s DEZ AW 6 MW 20 AW 6
TW M8.5 TW DEZ M8.5
E0.5 R Q = E0.5 R Q =

Retard à la montée (SE)


T44
S_EVERZ
E0.7 S DUAL MW 0
S5T#35s DEZ AW 6
TW M8.5
E0.5 R Q =
Retard à la montée
mémorisé (SS) Retard à la retombée (SA)
T44 T44
S_SEVERZ S_AVERZ
E0.7 S DUAL MW 0 MW 0
E0.7 S DUAL
MW 20 TW DEZ AW 6 S5T#35s AW 6
M8.5 TW DEZ
M8.5
E0.5 R Q = E0.5 R Q =

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.15

Généralités Dans le domaine de la commande, les fonctions de temporisation suivantes


(issues de SIMATIC S5) sont considérées depuis longtemps comme des
classiques :
• impulsion (S_IMPULS ou SI),
• impulsion prolongée (S_VIMP ou SV),
• retard à la montée (S_EVERZ ou SE),
• retard à la montée mémorisé (S_SEVERZ ou SS),
• retard à la retombée (S_AVERZ ou SA).

Mémoire Les temporisations occupent une zone de mémoire réservée dans la CPU, à
raison d'un mot par temporisation. Pour connaître le nombre de mots de
temporisation et, par conséquent, le nombre de fonctions de temporisation
offertes par votre CPU, reportez-vous aux caractéristiques techniques.

Valeur de temps La valeur de temps peut être entrée au moyen d'une variable (par ex. MW50)
ou - comme le montre la figure – au moyen d'une constante. La syntaxe pour
saisir une valeur de temps constante est la suivante (peut être saisie avec ou
sans caractère de soulignement) :
S5T#aH_bM_cS_dMS par ex. S5T#1h_20m_10s ou S5T#1h20m10s

valeur de temps mini S5T#10ms

valeur de temps maxi S5T#2h_46m_30s

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 15 Opérations numériques
Temporisation : Retard à la montée (SE)
CONT LOG LIST

T4 T4
E0.7 S_EVERZ A8.5 S_EVERZ U E0.7
S Q E0.7 S DUAL MW0 L S5T#35s
S5T#35s TW DUAL MW0 S5T#35s AW12
SE T4
TW DEZ
E0.5 A8.5 U E0.5
R DEZ AW12 E0.5 R Q = R T4
L T4
T MW0
RLG à S
LC T4
RLG à R T AW12
U T4
La durée = A8.5
programmée
Exemple s'écoule
Q

Type de données 0,01s <-- 0 0


0,1s <-- 0 1
"S5TIME" 1s <-- 1 0 Unités de temps : 0 . . . 999 (codé BCD)
10s <-- 1 1

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.16

Démarrage La temporisation démarre lorsque le RLG passe de "0" à "1" à l'entrée S. La


durée programmée s'écoule conformément à la valeur de temps indiquée à
l'entrée TW tant que l'état logique est 1 à l'entrée S.

Remise à zéro Lorsque le RLG est "1" à l'entrée "R" de remise à 0, la valeur de temps courante
et la base de temps sont effacées et la sortie Q est remise à zéro.

Sorties TOR La valeur de temps courante peut être lue aux sorties DUAL (format binaire) et
DEZ (format BCD).
La valeur de temps courante est la valeur initiale de TW moins la valeur du
temps écoulé depuis le démarrage de la temporisation.

Sortie binaire L'état logique à la sortie Q passe à "1" après que la durée programmée s'est
écoulée correctement et que l'entrée "S" a l'état logique "1".
Si l'entrée S passe de "1" à "0" pendant l'écoulement de la durée programmée,
la temporisation s'arrête. Dans ce cas, la sortie "Q" reste à l'état "0".

Remarque Vous pouvez remplacer les fonctions de temporisation et de comptage


classiques par des blocs fonctionnels système (SFB) conformes à la norme IEC.
L'utilisation des blocs fonctionnels système est traitée dans un cours de
programmation avancé.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 16 Opérations numériques
Exercice 2 : Surveillance du temps de transport (FC 17)

Entrées Sorties

E 0.0 BP_Marche
E 0.1 BP_Arret Led_disponible A 4.1
E 0.2 BP_Droite Led_manuel A 4.2
E 0.3 BP_Gauche Led_automatique A 4.3
E 0.4 Selecteur_choix_mode
E 0.5 BP_Validation_mode

BP_Acq Led_defaut
defaut_tapis _tapis

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.17

Enoncé On veut contrôler le temps de transport en mode automatique. La surveillance


doit fonctionner de la manière suivante :
• Si une opération de transport dépasse le temps maximal autorisé de
6 secondes, cela signifie qu'un défaut s'est produit et le moteur du tapis
est automatiquement coupé (opération logique dans FC 16).
• Un défaut est signalé par un feu clignotant à 2 Hz (bit nº 3 de l'octet de
mémentos de cadence MB 10 de la CPU) de la LED "Led_defaut_tapis"
(A 5.0) du simulateur.
• Un défaut peut être acquitté par le bouton "BP_acq_defaut_tapis" (E 1.0) du
simulateur.
• Tant qu'un défaut n'a pas été acquitté, aucun transport ne doit démarrer
en mode automatique.
• Les voyants lumineux aux postes 1 et 2 ne montrent à nouveau un feu fixe
(= poser une nouvelle pièce) ou ne clignotent à 1 Hz (pièce posée pour le
transport) qu'après acquittement du défaut (verrouillage dans le bloc
FC 14).

Marche à suivre : 1. Programmez la fonction de surveillance décrite dans le bloc FC 17.


- Pour la surveillance du temps, utilisez la temporisation S5 T 17
sous forme de retard à la montée (SE).
- Mettez le mémento M 17.0 à 1 en présence d'un défaut pour pouvoir
le combiner dans le bloc FC 14 et le bloc FC 16.
2. Programmez l'appel du bloc FC 17 dans l'OB 1.
3. Programmez les verrouillages requis dans le bloc FC 14 et la coupure du
moteur du tapis dans le bloc FC16.
4. Chargez les blocs modifiés dans la CPU et testez la fonction.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 17 Opérations numériques
Opérations de conversion BCD  entier

Entrée d'un Conversion


nombre BCD 0 81 5 BCD->entier Programme utilisa-
Enoncé teur contenant des
opérations arithmé-
Sortie d'un Conversion tiques sur des
nombre BCD 0 2 4 8 BCD<-entier entiers

CONT LOG LIST

BCD_I BCD_I L EW4


EN ENO EN OUT MW20 BTI
T MW20
EW4 IN OUT MW20 EW4 IN ENO

I_BCD I_BCD L MW10


EN ENO EN OUT AW12 ITB
T AW12
MW10 IN OUT AW12 MW10 IN ENO

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.18

Application Comme il n'y a pas d'opération arithmétique disponible pour traiter directement
les valeurs codées BCD, il faut transformer ces dernières, par une conversion
de format, en types de données arithmétiques (I, DI ou R).

Opérations Le jeu d'instructions du S7-300 / 400 offre de multiples opérations de


de conversion conversion. En voici quelques exemples :
BCD_I (en LIST : BTI)
convertit un nombre BCD à 3 positions (+/- 999) en entier 16 bits.
I_BCD (en LIST : ITB)
convertit un entier 16 bits (+/- 999) en nombre BCD à 3 positions.

Entrées et sorties des éléments CONT/LOG :


EN L'entrée EN commande l'exécution de l'opération de conversion comme suit :
EN sans affectation : la conversion est toujours exécutée (indépendamment du
RLG).
La combinaison logique avec EN est satisfaite (RLG = 1) : la conversion est
exécutée.
La combinaison logique avec EN n'est pas satisfaite (RLG = 0) :
la conversion n'est pas exécutée.

IN La valeur présente à l'entrée IN est convertie et le résultat est délivré à la


sortie OUT.

ENO / OUT ENO = 0 parce que RLG=0 à l'entrée EN  rien n'est écrit dans OUT
La variable délivrée à la sortie OUT n'a pas de contenu ou elle conserve sa
valeur initiale.
ENO = 0 parce qu'une erreur est apparue  OUT contient une valeur
invalide
La variable délivrée à la sortie OUT est remplacée par une valeur invalide.
ENO = 1 (l'opération a été exécutée sans erreur) : OUT contient le résultat
La variable délivrée à la sortie OUT est remplacée par le résultat.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 18 Opérations numériques
Opérations de comparaison

CONT LOG LIST

M 3.4 CMP >=I A 9.7 CMP >=I U M 3.4


U(
IN1 L EW 0
EW0
L EW 2
EW 0 IN1 M 3.4 & A9.7 >=I
EW 2 IN2 EW2 IN2 = )
= A 9.7

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.19

CMP Les opérations de comparaison permettent de comparer les paires de valeurs


numériques suivantes :
I deux nombres entiers (de 16 bits)
D deux nombres entiers (de 32 bits)
R deux nombres à virgule flottante (nombres réels de 32 bits = nombres à
virgule flottante IEEE).
Si la comparaison est "vraie", le RLG de l'opération est "1", sinon il est "0".
Les entrées IN1 et IN2 sont comparées conformément au type d'opération
choisi :

== IN1 est égal à IN2


<> IN1 est différent de IN2
> IN1 est supérieur à IN2
< IN1 est inférieur à IN2
>= IN1 est supérieur ou égal à IN2
<= IN1 est inférieur ou égal à IN2

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 19 Opérations numériques
Fonctions mathématiques de base
CONT LOG LIST

ADD_I ADD_I L MW4


Addition EN ENO EN OUT MW6 L MW10
MW4 IN1 MW4 IN1 +I
MW10 IN2 OUT MW6 MW10 IN2 ENO T MW6

SUB_I SUB_I L MW8


Soustrac- MW6
tion EN ENO EN OUT L MW12
MW8 IN1 MW8 IN1 -I
MW12 IN2 OUT MW6 MW12 IN2 ENO T MW6

MUL_DI MUL_DI L MD6


Multipli- MD66 L MD12
cation EN ENO EN OUT
MD6 IN1 MD6 IN1 *D
MD12 MD66
T MD66
IN2 MD12 IN2 ENO

DIV_R DIV_R L MD40


EN OUT MD32
Division EN ENO L MD4
MD40 IN1 MD40 IN1 /R
MD4 IN2 OUT MD32 MD4 IN2 ENO T MD32

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.20

Opérations Le jeu d'instructions du S7-300 / 400 offre de multiples opérations arithmétiques.


arithmétiques pour le traitement de variables des types de données arithmétiques Integer (I),
Double Integer (DI) et Real (R).

Entrées et sorties des éléments CONT/LOG :


EN L'entrée EN commande l'exécution de l'opération comme suit :
EN sans affectation : l'opération est toujours exécutée (indépendamment du
RLG).
La combinaison logique avec EN est satisfaite (RLG = 1) : l'opération est
exécutée.
La combinaison logique avec EN n'est pas satisfaite (RLG = 0) : l'opération
n'est pas exécutée.

IN1 / IN2 La valeur présente à IN1 est traitée avec la valeur présente à IN2 (en LIST, la
valeur chargée en premier avec celle chargée en second, de manière générale :
l'accumulateur 2 avec l'accumulateur 1) conformément à l'opération
arithmétique et le résultat est délivré à la sortie OUT.

ENO / OUT ENO = 0 parce que RLG=0 à l'entrée EN  rien n'est écrit dans OUT
La variable délivrée à la sortie OUT n'a pas de contenu ou elle conserve sa
valeur initiale.
ENO = 0 parce qu'une erreur est apparue  OUT contient une valeur
invalide
La variable délivrée à la sortie OUT est remplacée par une valeur invalide.
ENO = 1 (l'opération a été exécutée sans erreur) : OUT contient le résultat
La variable délivrée à la sortie OUT est remplacée par le résultat.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 20 Opérations numériques
Exercice 3 : Comptage des pièces transportées (FC 19)

Consigne du nombre
Entrées Sorties de pièces Nombre réel de pièces
E 0.0 BP_Marche
E 0.1 A 4.1
BP_Arret Led_disponible
0 8 1 5
E 0.2 BP_Droite Led_manuel A 4.2
E 0.3 BP_Gauche Led_automatique A 4.3
E 0.4 Selecteur_choix_mode "Roues_codeuses" (EW 2) "Afficheur" (AW 6)
E 0.5 BP_Validation_mode

BP_Acq_defaut Led_defaut
_tapis _tapis

Consigne atteinte Acquittement


"Led_FL1_poste_4" (A 8.4) "S4_Bp_FL1" (E 8.4)

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.21

Fonction précédente • Les pièces transportées en mode automatique sont comptées (avec le
dans FC 18 compteur S5 Z 18) dès qu'elles ont franchi la barrière lumineuse
"FL1_Cellule" ("FL1_Cellule" : 0 1)
• Le nombre de pièces transportées (nombre réel) est visualisé sur
l'afficheur numérique BCD.
• Le compteur est remis à zéro à la mise hors tension de l'installation
(A 4.1 = "0").
Nouvelle fonction • Le comptage des pièces transportées n'est plus effectué avec le compteur
dans FC19 Z 18, mais par addition avec MW 20.
• La consigne, c'est-à-dire le nombre de pièces à transporter, est réglée sur
les roues codeuses BCD. Lorsque la consigne est atteinte, la signalisation
"Consigne atteinte" s'allume sur la LED "Led_FL1_poste_4" (A8.4) du
modèle de convoyeur.
• Tant que la signalisation "Consigne atteinte" (A8.4) est présente, les voyants
lumineux des postes 1 et 2 sont éteints (= interdit de déposer une nouvelle
pièce -> verrouillage dans FC 14) et il n'est pas possible de démarrer un
autre transport (-> verrouillage dans FC 16).
• Le bouton "S4_Bp_FL1" (E 8.4) du modèle de convoyeur acquitte la signali-
sation "Consigne atteinte" et remet en même temps le nombre réel de
pièces à zéro (MW20).
Le nombre réel de pièces (MW20) est également remis à zéro à la mise
hors tension de l'installation.
Marche à suivre 1. Programmez le nouveau bloc "FC_Comptage_ADD" (FC 19) avec les
nouvelles fonctions de comptage et de comparaison.
2. Appelez le nouveau bloc FC 19 dans l'OB1 au lieu de l'ancien bloc FC 18.
3. Programmez les verrouillages requis dans les blocs "FC_Signalisation"
(FC 14) et "FC_Pilotage_tapis" (FC 16).

Remarque : Lorsque vous réglez la consigne du nombre de pièces, il peut


arriver que la CPU s'arrête parce que les roues codeuses BCD délivrent des
valeurs invalides en changeant de chiffres.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 21 Opérations numériques
Exercice 3 : Comptage des pièces transportées (FC 19),
pour une solution
Réseau 1 : mettre le "compteur" à 0

MOVE
Condition
de mise à 0 EN OUT MW 20
0 IN ENO

Réseau 2 : compter via le mot de mémentos, nombre réel de pièces


ADD_I
Front montant de
l'événement comptage EN

MW 20 IN1 OUT MW 20
1 IN2 ENO

Réseau 3 : visualiser le nombre réel de pièces sur l'afficheur numérique BCD

Convertir le nombre réel de pièces (MW 20) d'entier en BCD -> résultat sur l'afficheur numérique BCD (AW 6)

Réseau 4 : lire la consigne en mémoire et la convertir de BCD en entier

Convertir la valeur des roues codeuses (EW 2) de BCD en entier -> ranger la consigne (entier) dans MW 22

Réseau 5 : comparer valeur réelle et consigne, LED de consigne atteinte A 8.4

Comparer la valeur réelle (MW 20) à la consigne (MW 22) -> délivrer le résultat au voyant lumineux

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.22

Comptage par Par rapport à la méthode par compteur S5, le comptage des pièces
addition transportées par addition via un mot de mémentos offre l'avantage suivant :
le compteur S5 ne permet de compter que de 0 à 999, tandis que l'addition
d'entiers est possible de -32768 à + 32767.

Fonctions partielles Comme le montre la figure, on peut diviser la fonction globale du bloc FC 19
du bloc FC 19 en fonctions partielles :
• Réseau 1 : mettre le "compteur" à 0
signifie remplacer par 0 le contenu du mot de mémentos MW 20 utilisé
comme compteur.
• Réseau 2 : compter via le mot de mémentos
signifie incrémenter de 1 par addition, à chaque apparition de l'événement
de comptage (pas tant que l'événement est présent !) le contenu du mot de
mémentos. L'apparition de l'événement de comptage doit être détectée par
réponse au front.
• Réseau 3 : visualiser le nombre réel de pièces sur l'afficheur numérique
BCD
Comme le nombre réel de pièces, acquis par addition dans le mot de
mémentos MW 20, est stocké au format entier, il faut le convertir en BCD
avant de le transférer à l'afficheur numérique BCD.
• Réseau 4 : lire la consigne en mémoire et la convertir de BCD en entier
La consigne lue sur les roues codeuses BCD doit être convertie de BCD
en entier. Utilisez le mot de mémentos MW 22 pour stocker le résultat de la
conversion.
• Réseau 5 : comparer valeur réelle et consigne, LED de consigne atteinte
A 8.4
Le nombre réel de pièces (MW 20) est comparé à la consigne convertie
(MW 22). Si le nombre réel est égal à la consigne, le voyant lumineux A 8.4
doit s'allumer.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 22 Opérations numériques
Informations complémentaires

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.23

Remarque Les pages suivantes donnent des informations complémentaires et pourront être
consultées pour compléter le sujet.
Pour une étude plus approfondie, nous vous proposons des cours de formation
de niveau supérieur et des supports d'auto-apprentissage.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 23 Opérations numériques
Exercice complémentaire 4 : Comptage des défauts du tapis
roulant (FC 17)

Défaut
tapis
M 17.0

3
Compteur
2
de défauts
tapis Z 17 1
0

Marche
automatique
A 4.3

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.24

Fonction précédente Le temps de transport est surveillé en mode automatique. Si une opération de
transport dépasse le temps maximal autorisé de 6 secondes, cela signifie qu'un
défaut s'est produit et le moteur du tapis est automatiquement coupé
(opération logique dans FC 16).

Enoncé Il s'agit de compter les défauts de fonctionnement du tapis en mode automa-


tique. Pour des raisons de sécurité, le mode automatique doit être désactivé
après 3 défauts. Pour démarrer une nouvelle opération de transport, il faut
acquitter le défaut (ce qui est déjà programmé) et activer de nouveau le mode
automatique.

Marche à suivre 1. Dans un nouveau réseau du bloc FC 17, programmez le comptage des
défauts avec le compteur S5 Z 17 utilisé comme décompteur.
- L'activation du mode automatique entraîne le positionnement du
compteur sur la valeur 3 (nombre de défauts jusqu'à la désactivation
du mode automatique).
- Le compteur est décrémenté de 1 à chaque apparition d'un défaut
(M 17.0 = "1").
2. Programmez dans le bloc FC 15 (modes de fonctionnement) la
désactivation (mise à zéro) du mode automatique après 3 défauts.
Le mode automatique doit être désactivé lorsque le compteur Z 17 a
compté de 3 à 0ou lorsque son état binaire passe de 1  0. Utilisez le
mémento M 15.7 comme mémento auxiliaire dans le bloc FC 15
"FC_Mode_fonctionnement"pour détecter le front descendantdu
compteur Z 17.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 24 Opérations numériques
Exercice complémentaire 5 : Verrouillage temporisé de la marche
par à-coups du moteur du tapis
Durée de
verrouillage
à gauche
Marche par à-coups
à droite
E 0.2
Moteur du tapis
à droite
(A8.5)

Verrouillage
à droite
T 15 (SA)
Marche par à-coups
à gauche
E 0.3 Durée de
verrouillage
Moteur du tapis à droite
à gauche
(A8.6)

Verrouillage
à gauche
T 16 (SA)

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.25

Fonction précédente En mode manuel (A 8.2 / A 4.2 = "1"), on peut faire marcher le moteur du tapis par
Marche par à-coups à-coups à droite et à gauche avec les boutons E 0.2 et E 0.3 du simulateur.
dans FC 16
Enoncé : Pour éviter les variations de charge trop importantes, on veut programmer une
durée de verrouillage de 2 s entre la marche par à-coups du moteur du tapis dans
un sens et sa marche dans l'autre sens (voir figure). Si le moteur a marché à droite,
par exemple, il ne pourra marcher par à-coups à gauche qu'après écoulement de la
durée de verrouillage de 2 s.
Marche à suivre 1. Dans le bloc FC 16, programmez les temporisations S5 T 15 et T 16 sous forme
de retard à la retombée (SA) pour les durées de verrouillage à droite et à
gauche.
Démarrez T 15 si la condition de la marche par à-coups à droite est remplie et
T 16 si la conditions de la marche par à-coups à gauche est remplie.
2. Combinez les états des temporisations dans les conditions de marche par
à-coups. La conditionde marche par à-coups à droite doit être remplie seule-
ment si la durée de verrouillage à gauche n'est plus active (T 16 = "0") et
inversement.
3. Enregistrez le bloc FC 16 modifié et chargez-le dans la CPU.
4. Vérifiez la fonction modifiée "Marche par à-coups du moteur du tapis" sur le
modèle de convoyeur.
Pour une solution : Utilisez une "branche" pour intégrer les temporisations dans les deux réseaux
Moteur du tapis à droite et à gauche de la manière suivante :
T_Secu
Pour éditer une branche : _manu_gauche
Condition de marche
1. Sélectionnez la liaison sur par à-coups à gauche =
laquelle vous voulez créer T 16
la branche. (branche) SA

2. Dans la barre d'outils de


S5T#2s TW
cliquez sur

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 25 Opérations numériques
Compteur : Opérations sur bits
CONT LOG LIST

Réseau 1 : Z5
E0.0 SZ
E0.0 Z5
U E0.0
SZ L C#20
C#20 ZW
C#20 S Z5
Réseau 2 :
Z5
E0.1 Z5
E0.1 ZV U E0.1
ZV
ZV Z5

Réseau 3 :
E0.2 Z5 Z5
U E0.2
ZR E0.2 ZR ZR Z5

Réseau 4 :
Z5 A 4.0 A 4.0
U Z5
Z5 = = A 4.0

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.26

Opérations sur bits Toutes les fonctions de comptage peuvent utiliser aussi des opérations simples
sur bits. Par rapport aux compteurs déjà étudiés, on constate
• des similitudes :
- conditions de mise à 1 à l'entrée "SZ"
- entrée de la valeur de comptage
- changement d'état du RLG à l'entrée "ZV"
- changement d'état du RLG à l'entrée "ZR"
• des différences :
- impossible de scruter la valeur courante du compteur
(les sorties DUAL et BCD n'existent pas).
- la sortie binaire Q n'existe pas en représentation graphique.

Remarque STEP 7 permet également de programmer des compteurs conformes à la


norme CEI.
Leur réalisation au moyen de blocs fonctionnels système fait l'objet d'un cours
de programmation avancé.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 26 Opérations numériques
Temporisation : Retard à la montée mémorisé (SS)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_SEVERZ A8.5 S_SEVERZ L S5T#35s
S Q E0.7 S DUAL MW0 SS T4
S5T#35s DUAL MW0 U E0.5
TW S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R Q = L T4
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

La durée
programmée
Exemple s'écoule
Q

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.27

Démarrage La temporisation démarre lorsque le RLG passe de "0" à "1" à l'entrée "S".
La durée programmée s'écoule conformément à la valeur de temps indiquée à
l'entrée TW, même si l'état logique passe à "0" à l'entrée "S".
Si l'état passe de nouveau de "0" à "1" à l'entrée de démarrage pendant que la
temporisation s'exécute, elle est redémarrée.

Remise à zéro Lorsque le RLG est "1" à l'entrée "R" de remise à 0, la valeur de temps courante
et la base de temps sont effacées et la sortie Q est remise à zéro.

Sortie binaire L'état logique à l'entrée Q passe à "1" après que la durée programmée s'est
écoulée sans erreur, sans que l'état "1" soit nécessaire à l'entrée "S".

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 27 Opérations numériques
Temporisation : Impulsion (SI)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_IMPULS A8.5 S_IMPULS L S5T#35s
S Q E0.7 S DUAL MW0 SI T4
S5T#35s DUAL U E0.5
TW MW0 S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R = L T4
Q
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

La durée
programmée
Exemple s'écoule
Q

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.28

Démarrage La temporisation démarre lorsque le RLG passe de "0" à "1" à l'entrée S et la


sortie "Q" passe à "1".

Remise à zéro La sortie "Q" est remise à zéro si :


• la temporisation s'est écoulée ou
• le signal de démarrage passe de "1" à "0" ou
• l'entrée de remise à zéro "R" délivre l'état logique "1".

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 28 Opérations numériques
Temporisation : Impulsion prolongée (SV)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_VIMP A8.5 S_VIMP L S5T#35s
S Q MW0 SV T4
E0.7 S DUAL
S5T#35s TW DUAL MW0 U E0.5
S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R L T4
Q =
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

La durée
programmé
Exemple e s'écoule
Q

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.29

Démarrage La temporisation démarre lorsque le RLG passe de "0" à "1" à l'entrée S et la


sortie "Q" passe à "1".
La sortie "Q" reste à l'état logique "1", même quand l'entrée "S" passe à
l'état "0".
Si l'état passe de nouveau de "0" à "1" à l'entrée de démarrage pendant que la
temporisation s'exécute, elle est redémarrée.

Remise à zéro La sortie "Q" est remise à zéro si :


• la temporisation s'est écoulée ou
• l'entrée de remise à zéro "R" délivre l'état logique "1".

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 29 Opérations numériques
Temporisation : Retard à la retombée (SA)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_AVERZ A8.5 S_AVERZ L S5T#35s
S Q E0.7 S DUAL MW0 SA T4
S5T#35s DUAL MW0 U E0.5
TW S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R Q = L T4
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

La durée
programmée
Exemple s'écoule
Q

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.30

Démarrage La temporisation démarre lorsque le RLG passe de "1" à "0" à l'entrée S. Une
fois la temporisation écoulée, la sortie Q passe à "0".
Un changement de "0" à "1" à l'entrée "S" pendant l'écoulement de la durée
programmée provoque l'arrêt de la temporisation qui n'est redémarrée qu'au
prochain changement de "1" à "0".

Remise à zéro Lorsque le RLG est "1" à l'entrée "R" de remise à 0, la valeur de temps courante
et la base de temps sont effacées et la sortie Q est remise à zéro.
Si les deux entrées (S et R) délivrent l'état logique "1", la sortie "Q" n'est mise à
1 que lorsque la remise à zéro dominante est désactivée.

Sortie binaire La sortie "Q" est activée par le passage du RLG de "0" à "1" à l'entrée "S".
Lorsque l'entrée "S" est désactivée, la sortie "Q" continue à délivrer l'état logique
"1" jusqu'à ce que la durée programmée soit écoulée.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 30 Opérations numériques
Formats de temporisation S5 dans STEP 7

Durée entrée comme constante


S5T#35s200ms
(base de temps : 01 (100ms), nombre d'unités de temps : 352)

01 3 5 2

Durée entrée via variable X X 0 1 0 0 1 1 0 1 0 1 0 0 1 0

Base de temps Unités de temps (format BCD)

29 28 27 26 25 24 23 22 21 20
Accu 1 - contenu après "L T..." X X X X X X 0 1 0 1 1 0 0 0 0 0

Unités de temps restantes (entier)

01 3 5 2

Accu 1 - contenu après "LC T..." X X 0 1 0 0 1 1 0 1 0 1 0 0 1 0

Base de temps Unités de temps restantes (format BCD)

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.31

Durée de la Les valeurs de temps fixes peuvent être entrées sous forme de constantes. La
temporisation plage admissible pour les valeurs de temps va de S5T#10ms à
S5T#2h46m30s0ms.
Les valeurs de temps variables peuvent être entrées à l'aide de variables de
type S5TIME (mots de mémentos ou de données, par exemple). Ce faisant,
l'utilisateur doit veiller dans son programme à ce que la base de temps
appropriée et le nombre d'unités de temps soient rangées dans les variables
comme il est indiqué sur la figure.
Base de temps La base de temps définit à quel intervalle le nombre des unités de temps est
décrémenté chaque fois d'une unité pendant l'écoulement de la durée
programmée. Les bits 12 et 13 de la variable doivent contenir la base de temps
au format binaire :
base de temps 0 (bit 13 = 0, bit 12 = 0) = 10 ms
base de temps 1 (bit 13 = 0, bit 12 = 1) = 100ms
base de temps 2 (bit 13 = 1, bit 12 = 0) = 1s
base de temps 3 (bit 13 = 1, bit 12 = 1) = 10s

Unités de temps Le nombre d'unités de temps doit être entré au format BCD. Multiplié par la
base de temps, il donne la valeur de temps souhaitée. La plage admissible va
de 1 à 999. Si la durée de temporisation est une constante (S5T#...), le système
utilise automatiquement la base de temps la plus petite possible et le nombre
d'unités de temps.
L/DUAL A la sortie "DUAL" ou avec l'instruction "L T...", la valeur de temps restante
(nombre d'unités de temps) de la temporisation est interrogée sous forme
d'entier, sans base de temps.
LC/DEZ A la sortie "DZ" ou avec l'instruction "LC T...", la valeur de temps restante
(nombre d'unités de temps) de la temporisation est interrogée au format BCD,
avec la base de temps (bits 12 et 13).

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 31 Opérations numériques
Temporisation : Opérations sur bits

CON LOG LIST


T

Réseau 1 :
T4
E0.0 T4 E0.0 & SE U E0.0
SE L S5T#5s
S5T#5s TW SE T4
S5T#5s

Réseau 2 :

T4 A 8.0 A 8.0
U T4
T4 & =
= A 8.0

Réseau 3 :
T4
E0.1 T4 U E0.1
R E0.1 & R R T4

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.32

Opérations sur bits Toutes les fonctions de temporisation peuvent être démarrées aussi avec des
opérations simples sur bits. Par rapport aux temporisations déjà étudiées, on
constate
• des similitudes :
- conditions de démarrage à l'entrée "S"
- entrée de la valeur de temps
- conditions de remise à zéro à l'entrée "R"
- comportement du signal à la sortie "Q"
• des différences en CONT/LOG :
- impossible d'interroger la valeur de temps courante
(les sorties DUAL et BCD n'existent pas).

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 32 Opérations numériques
Opérations de conversion I  DI  REAL

Données de type Integer


(nombre entier sur 16 bits)

Conversion Conversion Programme


d'entier sur d'entier sur de calcul
Enoncé 32 bits
16 bits en sur nombres
entier de 32 bits en nombre réel réels

F I_DI
LIST
U MD14
EN OUT
P DI_R
ENO EN OUT MD26
MW12 IN L MW12
CONT MD14 ENO ITD
IN
DTR
T MD26
I_DI DI_R
EN ENO EN ENO

MW12 IN OUT MD14 MD14 IN OUT MD26

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.33

Application Par principe, les opérations arithmétiques ne peuvent traiter entre elles que des
valeurs du même type de données. C'est pourquoi il existe des opérations
permettant la conversion de valeurs Integer (I ou DI) en valeurs Real (R) et
inversement.

I_DI (en LIST : ITD) convertit un nombre entier de 16 bits (I) en nombre entier de 32 bits (DI).

DI_R (en LIST : DTR) convertit un nombre entier de 32 bits (DI) en nombre à virgule flottante (R).

Autres opérations
de conversion Ces opérations font l'objet d'un cours de programmation avancé :
- INV_I (INVI) Inversion d'un entier (I)
(calcul du complément à un)
- NEG_I (NEGI) Négation d'un entier (I) (inversion du signe)
(calcul du complément à deux)
- TRUNC (TRUNC) Conversion R  DI : troncation des chiffres après la virgule
- ROUND (RND) Conversion R  DI : arrondi
- CEIL (RND+) Conversion R  DI : arrondi à l'entier immédiatement
supérieur
- FLOOR (RND-) Conversion R  DI : arrondi à l'entier immédiatement
inférieur
- INV_DI (INVD) Inversion d'un entier (DI)
(calcul du complément à un)
- NEG_DI (NEGD) Négation d'un entier (DI) (inversion du signe)
(calcul du complément à deux)
- NEG_R / NEGR Négation d'un nombre à virgule flottante (R) (inversion du
signe)

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 33 Opérations numériques
Opérations combinatoires sur mots

WXOR_W L EW 0
WOR_W
L W#16#5F2A
WAND_W
UW / OW / XOW
EN ENO
T MW10
EW0 IN1
OUT MW10 15 0
W#16#5F2A IN2
EW0 = 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0

W#16#5F2A = 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0

AND OR XOR

MW10 après "UW" 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0

MW10 après "OW" 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0

MW10 après "XOW" 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.34

WAND_W L'opération "ET mot" combine, bit par bit, les deux mots présents aux entrées
IN1 et IN2 selon la table de vérité ET. Le résultat de l'opération ET est délivré à
la sortie OUT.
L'opération est exécutée lorsque EN = 1.
Exemple : Masquage de la 4ème décade de la roue codeuse :
EW2= = 0100 0100 1100 0100
W#16#0FFF = 0000 1111 1111 1111
MW30 = 0000 0100 1100 0100

WOR_W L'opération "OU mot" combine, bit par bit, les deux mots présents aux entrées
IN1 et IN2 selon la table de vérité OU. Le résultat de l'opération OU est délivré à
la sortie OUT.
L'opération est exécutée lorsque EN = 1.
Exemple : Positionnement du bit 0 dans MW32 :
MW32 = 0100 0010 0110 1010
W#16#0001 = 0000 0000 0000 0001
MW32 = 0100 0010 0110 1011

WXOR_W L'opération "OU exclusif mot" combine, bit par bit, les deux mots présents aux
entrées IN1 et IN2 selon la table de vérité OU exclusif. Le résultat de l'opération
Ou exclusif est délivré à la sortie OUT.
L'opération est exécutée lorsque EN=1.
Exemple : Détection de changements d'état à EW0 :
EW0 = 0100 0100 1100 1010
MW28 = 0110 0010 1011 1001
MW24 = 0010 0110 0111 0011

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 34 Opérations numériques
Exemple d'application : Détection de fronts

SIMATIC S7 Date : 15.03.2010 SITRAIN Formation


Automatisation et entraînements
Siemens AG 2010. All rights reserved. Fichier : PRO1_08F.35

Généralités L'exemple de programme représenté par la figure réalise un calcul destiné à


détecter un changement d'état sur 16 positions binaires (détection de front sur
16 bits) en utilisant des opérations logiques sur mots.

Réseau 1 Pour détecter un front montant, c'est-à-dire un changement d'état 0  1, il suffit


d'effectuer une opération logique ET entre les changements d'état décelés
(MW 220) et le nouvel état des signaux (EW 0).

Réseau 2 Si l'on veut seulement détecter un front descendant, c'est-à-dire un changement


d'état 1  0, il faut effectuer une opération logique ET entre les changements
d'états décelés et l'ancien état des signaux.

Réseau 3 Sauvegarde des anciens états afin que les changements d'état ultérieurs des
entrées puissent être détectés.

SITRAIN Formation ST-PRO1


Automatisation et entraînements Page 35 Opérations numériques

Vous aimerez peut-être aussi