Académique Documents
Professionnel Documents
Culture Documents
F1
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
F1
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
Contrôle- 0248
Roues codeuses,
commande V potentiomètre,
de processus afficheur
0 8 1 5 7 segments
Pupitre opérateur
ETOR EANA
STOR SANA
Commande Appareils
de terrain
du processus
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.
Formats de représentation :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
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).
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
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
Nombres
négatifs
signés
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.
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
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.
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
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
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.
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.
(ACCU 1)
12345678 A1B2C3D4
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 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
T AD 4
AD 4
Tansfert T AW 4
AW 4
T AB 4
AB 4
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
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.
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
ZV
ZR
5
4
3
Etat du
compteur 2
1
0
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é.
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
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").
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
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
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".
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
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).
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.
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.
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
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).
MOVE
Condition
de mise à 0 EN OUT MW 20
0 IN ENO
MW 20 IN1 OUT MW 20
1 IN2 ENO
Convertir le nombre réel de pièces (MW 20) d'entier en BCD -> résultat sur l'afficheur numérique BCD (AW 6)
Convertir la valeur des roues codeuses (EW 2) de BCD en entier -> ranger la consigne (entier) dans MW 22
Comparer la valeur réelle (MW 20) à la consigne (MW 22) -> délivrer le résultat au voyant lumineux
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.
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.
Défaut
tapis
M 17.0
3
Compteur
2
de défauts
tapis Z 17 1
0
Marche
automatique
A 4.3
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).
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.
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)
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
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
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.
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
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".
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
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
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
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.
01 3 5 2
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
01 3 5 2
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).
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
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).
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
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)
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
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
Réseau 3 Sauvegarde des anciens états afin que les changements d'état ultérieurs des
entrées puissent être détectés.