Instructions élémentaires. Schneider Electric Twido TWD USE 10AE
Instructions élémentaires
16
Présentation
Objet de ce chapitre
Contenu de ce chapitre
Ce chapitre fournit des détails sur les instructions et les blocs fonctions utilisés pour créer des programmes de régulation élémentaires des automates Twido.
Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet
16.1
Traitement booléen
16.2
16.3
16.4
Blocs fonctions élémentaires
Traitement numérique
Instructions sur programme
Page
373
TWD USE 10AE
Instructions élémentaires
374
TWD USE 10AE
Instructions élémentaires
16.1
Traitement booléen
Présentation
Objet de ce souschapitre
Ce sous-chapitre offre une introduction au traitement booléen. Elle s'appuie sur des descriptions et des directives de programmation d'instructions booléennes.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
Instructions booléennes
Explication du format de description des instructions booléennes
Instructions de chargement (LD, LDN, LDR, LDF)
Instructions d’affectation (ST, STN, R, S)
Instructions AND logique (AND, ANDN, ANDR, ANDF)
Instructions OR logique (OR, ORN, ORR, ORF)
OR exclusif, instructions (XOR, XORN, XORR, XORF)
Instruction NOT (N)
Page
TWD USE 10AE
375
Instructions élémentaires
Instructions booléennes
Introduction
Les instructions booléennes s'apparentent aux éléments graphiques du langage schéma à contacts. Ces instructions sont présentées dans le tableau suivant.
Elément Instruction Exemple Description
Eléments de test L'instruction de chargement (LD)
équivaut à un contact ouvert.
LD %I0.0
Le contact est fermé lorsque le bit %I0.0 se trouve
à l'état 1.
Eléments d'action L'instruction de stockage (ST)
équivaut à une bobine.
ST %Q0.0 L'objet bit associé prend la valeur logique de l'accumulateur de bit (résultat de la logique précédente).
Le résultat booléen des éléments de test est appliqué aux éléments d'action, comme l'illustrent les instructions suivantes.
LD %I0.0
AND %I0.1
ST %Q0.0
Test des entrées de l'automate
Des instructions sur test booléennes peuvent être utilisées pour détecter des fronts montants ou descendants sur les entrées de l'automate. Un front est détecté lorsque l'état d'une entrée est passé de la valeur "scrutation n-1" à la valeur "scrutation n" courante. La détection de ce front reste effective pendant la scrutation courante.
Front montant, détection
L'instruction LDR (Load Rising Edge - chargement du front montant) équivaut à un contact de détection d'un front montant. Le front montant détecte le passage de la valeur d’entrée de 0 à 1.
Un contact de détection de transition positive est utilisé pour détecter un front montant, comme l'illustre le schéma suivant.
LDR %I0.0
%I0.0
P
P: contact de détection de transition positive
376
TWD USE 10AE
Instructions élémentaires
Détection d’un front descendant
L'instruction LDF (Load Falling Edge - chargement du front descendant) équivaut à un contact de détection d'un front descendant. Le front descendant détecte le passage de la valeur d’entrée de régulation de 1 à 0.
Un contact de détection de transition négative est utilisé pour détecter un front descendant, comme l'illustre le schéma suivant.
LDF %I0.0
%I0.0
N N : contact de détection de transition négative
Détection d’un front
Le tableau suivant résume les instructions de détection de fronts et leurs chronogramme :
Front
Front montant
Instruction sur test
LDR %I0.0
Schéma à contacts
Chronogramme
Front montant
%I0.0
P
%I0.2
temps
T
Résultat booléen
T=1 scrutation de l'automate temps
Front descendant
LDF %I0.0
Front descendant
%I0.0
N
%I0.2
temps
T
Résultat booléen
T=1 scrutation de l'automate temps
Note : il est dorénavant possible d’appliquer les instructions sur front aux bits internes %Mi.
TWD USE 10AE
377
Instructions élémentaires
Explication du format de description des instructions booléennes
Introduction
Exemples
Opérandes autorisés
Chaque instruction booléenne de ce sous-chapitre est décrite à l'aide des informations suivantes : z Description rapide z z
Exemple représentant l'instruction et le schéma à contacts correspondant
Liste d'opérandes autorisés z
Chronogramme
Les explications ci-dessous présentent plus en détails le mode de description des instructions booléennes de ce sous-chapitre.
L'illustration suivante présente le mode d'affichage des exemples pour chaque instruction.
%I0.1
%Q0.3
%M0
%I0.1
P
%I0.3
N
%Q0.2
%Q0.4
%Q0.5
LD %I0.1
ST %Q0.3
LDN %M0
ST %Q0.2
LDR %I0.1
ST %Q0.4
LDF %I0.3
ST %Q0.5
Equivalents dans le langage schéma à contacts
Instructions en langage liste d'instructions
Le tableau suivant définit les types d'opérandes autorisés et utilisés dans les instructions booléennes.
Opérande
0/1
%I
%Q
%M
%S
%X
%BLK.x
[
%•:Xk
Description
Valeur immédiate de 0 ou 1
Entrée automate %Ii.j
Sortie automate %Qi.j
Bit interne %Mi
Bit système %Si
Bit étape %Xi
Bit bloc fonction (%TMi.Q, par exemple)
Bit mot (%MWi:Xk, par exemple)
Expression de comparaison ([%MWi<1000], par exemple)
378
TWD USE 10AE
Instructions élémentaires
Chronogrammes
L'illustration suivante présente le mode d'affichage des chronogrammes pour chaque instruction.
LD
Etat de l'entrée
%I0.1
Etat de la sortie
%Q0.3
Chronogramme pour l'instruction LD
LD LDN
%I0.1
%M0
LDR LDF
%I0.2
%I0.3
%Q0.3
%Q0.2
%Q0.4
%Q0.5
Les chronogrammes pour les quatre types d'instructions de chargement sont regroupés.
TWD USE 10AE
379
Instructions élémentaires
Instructions de chargement (LD, LDN, LDR, LDF)
Introduction
Exemples
Les instructions de chargement LD, LDN, LDR et LDF correspondent respectivement aux contacts ouverts, fermés, à front montant et à front descendant (les instructions LDR et LDF ne sont utilisées qu'avec des entrées et des mots internes de l'automate et des entrées d’esclaves AS-Interface et PDO CANopen).
Les schémas suivants sont des exemples d'instructions de chargement.
%I0.1
%Q0.3
%M0
%I0.2
P
%I0.3
N
%Q0.2
%Q0.4
%Q0.5
LD %I0.1
ST %Q0.3
LDN %M0
ST %Q0.2
LDR %I0.2
ST %Q0.4
LDF %I0.3
ST %Q0.5
Opérandes autorisés
Le tableau suivant répertorie les types d'instructions de chargement, leurs
équivalents dans le langage schéma à contacts, ainsi que les opérandes autorisés.
Instruction en langage liste
LD
Symbole équivalent dans un schéma à contacts
Opérandes autorisés
0/1, %I, %IA, %IWCx.y.z:Xk, %Q, %QA,
%M, %S, %X, %BLK.x, %•:Xk,[
LDN
LDR
0/1, %I, %IA, %IWCx.y.z:Xk, %Q, %QA,
%M, %S, %X, %BLK.x, %•:Xk,[
%I, %IA, %M
P
LDF %I, %IA, %M
N
380
TWD USE 10AE
Chronogramme
Instructions élémentaires
L'illustration suivante montre le chronogramme des instructions de chargement :
LD LDN LDR LDF
%I0.1
%M0 %I0.2
%I0.3
%Q0.3
%Q0.2
%Q0.4
%Q0.5
TWD USE 10AE
381
Instructions élémentaires
Instructions d’affectation (ST, STN, R, S)
Introduction
Exemples
Les instructions d’affectation ST, STN, S et R correspondent respectivement aux bobines directes, inverses, d'enclenchement et de déclenchement.
Les schémas suivants sont des exemples d'instructions d’affectation.
%I0.1
%I0.2
%Q0.3
%Q0.2
/
%Q0.4
S
%Q0.4
R
LD %I0.1
ST %Q0.3
STN %Q0.2
S %Q0.4
LD
R
%I0.2
%Q0.4
Opérandes autorisés
Le tableau suivant répertorie les types d'instructions d’affectation, leurs équivalents dans le langage schéma à contacts, ainsi que les opérandes autorisés.
Opérandes autorisés Instruction en langage liste
ST
Symbole équivalent dans un schéma à contacts
%Q,%QA,%M,%S,%BLK.x,%•:Xk
STN
S
R
S
R
%Q,%QA%M,%S,%BLK.x,%•:Xk
%Q,%QA,%M,%S,%X,%BLK.x,%•:Xk
%Q,%QA,%M,%S,%X,%BLK.x,%•:Xk
382
TWD USE 10AE
Chronogramme
Instructions élémentaires
L’illustration suivante montre le chronogramme des instructions d’affectation.
ST STN S R
%I0.1
%I0.1
%I0.1
%I0.2
%Q0.3
%Q0.2
%Q0.4
%Q0.4
TWD USE 10AE
383
Instructions élémentaires
Instructions AND logique (AND, ANDN, ANDR, ANDF)
Introduction
Exemples
Les instructions AND effectuent une opération de liaison AND logique entre l'opérande (ou son inverse, ou son front montant ou descendant) et le résultat booléen de l'instruction précédente.
Les schémas suivants sont des exemples d'instructions AND.
%I0.1
%M1
%M2 %I0.2
%I0.3
%I0.4
P
%M3 %I0.5
N
%Q0.3
%Q0.2
%Q0.4
S
%Q0.5
S
LD %I0.1
AND %M1
ST
LD
%Q0.3
%M2
ANDN %I0.2
ST
LD
%Q0.2
%I0.3
ANDR %I0.4
S %Q0.4
LD %M3
ANDF %I0.5
S %Q0.5
Opérandes autorisés
Le tableau suivant répertorie les types d'instructions AND, leurs équivalents dans le langage schéma à contacts, ainsi que les opérandes autorisés.
Instruction en langage liste
AND
Symbole équivalent dans un schéma à contacts
Opérandes autorisés
0/1, %I, %IA, %Q, %QA, %M, %S, %X,
%BLK.x, %•:Xk, [
ANDN
ANDR
0/1, %I, %IA, %Q, %QA, %M, %S, %X,
%BLK.x, %•:Xk, [
%I, %IA, %M
P
ANDF %I, %IA, %M
N
384
TWD USE 10AE
Chronogramme
Instructions élémentaires
L'illustration suivante montre le chronogramme des instructions AND.
AND ANDN ANDR ANDF
%I0.1
%M2 %I0.3
%M3
%M1
%Q0.3
%I0.2
%Q0.2
%I0.4
%Q0.4
%I0.5
%Q0.5
TWD USE 10AE
385
Instructions élémentaires
Instructions OR logique (OR, ORN, ORR, ORF)
Introduction
Exemples
Les instructions OR effectuent une opération de liaison OR logique entre l'opérande
(ou son inverse, ou son front montant ou descendant) et le résultat booléen de l'instruction précédente.
Les schémas suivants sont des exemples d'instructions OR.
%Q0.3
%I0.1
%M1
%M2
%I0.2
%M3
%I0.4
P
%I0.5
N
%I0.6
N
%Q0.2
%Q0.4
S
%Q0.5
S
LD %I0.1
OR
ST
LD
ORN
ST
LD
ORR
S
LDF
ORF
S
%M1
%Q0.3
%M2
%I0.2
%Q0.2
%M3
%I0.4
%Q0.4
%I0.5
%I0.6
%Q0.5
386
TWD USE 10AE
Opérandes autorisés
Instructions élémentaires
Le tableau suivant répertorie les types d'instructions OR, leurs équivalents dans le langage schéma à contacts, ainsi que les opérandes autorisés.
Instruction en langage liste
OR
Symbole équivalent dans un schéma à contacts
Opérandes autorisés
0/1, %I,%IA, %Q, %QA, %M, %S, %X,
%BLK.x, %•:Xk
ORN 0/1, %I,%IA, %Q, %QA, %M, %S, %X,
%BLK.x, %•:Xk
ORR %I, %IA, %M
P
ORF %I, %IA, %M
N
Chronogramme
L'illustration suivante montre le chronogramme des instructions OR.
OR ORN ORR ORF
%I0.1
%M2 %M3 %I0.5
%M1
%Q0.3
%I0.2
%Q0.2
%I0.4
%Q0.4
%I0.6
%Q0.5
TWD USE 10AE
387
Instructions élémentaires
OR exclusif, instructions (XOR, XORN, XORR, XORF)
Introduction
Exemples
Les instructions XOR effectuent une opération de liaison OR exclusif entre l'opérande (ou son inverse, ou son front montant ou descendant) et le résultat booléen de l'instruction précédente.
L’exemple suivant illustre l'utilisation d'instructions XOR.
Schéma avec instruction XOR :
%I0.1
%M1
XOR
%Q0.3
LD %I0.1
XOR %M1
ST %Q0.3
Opérandes autorisés
Schéma équivalent sans instruction XOR :
%I0.1
%M1
%M1 %I0.1
%Q0.3
LD %I0.1
ANDN %M1
OR( %M1
)
ANDN %I0.1
ST %Q0.3
Le tableau suivant répertorie les types d'instructions XOR, ainsi que les opérandes autorisés.
Instruction langage liste
XOR
XORN
XORR
XORF
Opérandes autorisés
%I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %•:Xk
%I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %•:Xk
%I, %IA, %M
%I, %IA, %M
388
TWD USE 10AE
Chronogramme
Instructions élémentaires
Le diagramme suivant illustre la temporisation des instructions XOR.
XOR
%I0.1
%M1
%Q0.3
Cas spécifiques
Veuillez observer les précautions suivantes lors de l'utilisation d'instructions XOR z z dans des programmes en langage schéma à contacts :
Ne commencez jamais un réseau par un contact XOR.
N'insérez jamais de contacts XOR parallèlement à d'autres éléments du schéma
à contacts (reportez-vous à l'exemple suivant.)
Comme l'illustre l'exemple suivant, l'insertion d'un élément parallèle à un contact
XOR générera une erreur de validation.
%M13
%Q1.10
%I1.5
XOR
%M10
TWD USE 10AE
389
Instructions élémentaires
Instruction NOT (N)
Introduction
Exemple
L’instruction NOT (N) inverse le résultat booléen de l’instruction précédente.
L’exemple suivant illustre l’utilisation de l’instruction NOT.
LD %I0.1
OR
ST
%M2
%Q0.2
N
AND %M3
ST %Q0.3
Note : L’instruction NOT n’est pas réversible.
Opérandes autorisées
Chronogramme
Sans objet.
L'illustration suivante montre le chronogramme de l’instruction NOT.
NOT
%I0.1
%M2
%Q0.2
%M3
%Q0.3
390
TWD USE 10AE
Instructions élémentaires
16.2
Blocs fonctions élémentaires
Présentation
Objet de ce souschapitre
Ce sous-chapitre présente des descriptions et des conseils de programmation relatifs aux blocs fonctions élémentaires.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
Blocs fonctions standards
Principes de programmation de blocs fonction standards
Bloc fonction temporisateur (%TMi)
Type de temporisateur TOF
Type de temporisateur TON
Type de temporisateur TP
Programmation et configuration de temporisateurs
Bloc fonction compteur/décompteur (%Ci)
Programmation et configuration des compteurs
Bloc fonction registre bits à décalage (%SBRi)
Bloc fonction pas à pas (%SCi)
Page
TWD USE 10AE
391
Instructions élémentaires
Blocs fonctions standards
Introduction
Les blocs fonctions sont les sources des objets bits et des mots spécifiques utilisés par les programmes. Les blocs fonctions élémentaires comportent des fonctions simples telles que des temporisateurs ou des compteurs/décompteurs.
Exemple de bloc fonction
L’illustration suivante présente un exemple de bloc fonction compteur/décompteur.
%Ci
R
E
S
CU
ADJ Y
%Ci.P 9999
D
CD
F
Objets bits
Objets mots
Bloc compteur/décompteur
Les objets bits correspondent aux sorties des blocs. Les instructions booléennes de test peuvent accéder à ces bits selon l'une ou l'autre de ces méthodes : z directement (LD E, par exemple) s'ils sont liés au bloc par une programmation réversible (voir rubrique
Principes de programmation de blocs fonction z
en spécifiant le type de bloc (LD %Ci.E, par exemple).
Les entrées sont accessibles sous forme d'instructions.
Les objets mots correspondent aux : z Paramètres de configuration du bloc : Le programme peut accéder à certains paramètres (paramètres de pré-sélection, par exemple), mais pas à d'autres
(base temps, par exemple).
z Valeurs courantes : %Ci.V, la valeur de comptage courante, par exemple.
392
TWD USE 10AE
Instructions élémentaires
Objets bits et objets mots accessibles
Le tableau suivant décrit les objets bits et les objets mots de blocs fonctions auxquels le programme a accès.
Bloc fonction standard
Symbole Plage (i) Types
Temporisateur %TMi 0 - 127
d'objets
Mot
Compteur/
Décompteur
%Ci
Bit
0 - 127 Mot
Bit
Description
Valeur courante
Valeur de présélection
Sortie du temporisateur
Valeur courante
Valeur de présélection
Sortie pour dépassement par valeur inférieure (vide)
Adresse Accès en mode
écriture
%TMi.V
%TMi.P
non oui
%TMi.Q
non
%Ci.V
non
%Ci.P
%Ci.E
Sortie prédéfinie atteinte %Ci.D
Sortie pour débordement (plein) %Ci.F
oui non non non
TWD USE 10AE
393
Instructions élémentaires
Principes de programmation de blocs fonction standards
Introduction
Pour programmer des blocs fonction standards, appliquez l'une des méthodes suivantes : z Instructions sur bloc fonction (par exemple BLK %TM2) : Cette méthode de programmation en langage schéma à contacts réversible permet l'exécution z d'opérations sur le bloc, à un emplacement unique du programme.
Instructions spécifiques (par exemple CU %Ci) : Cette méthode non réversible permet l'exécution d'opérations sur les entrées du bloc, à plusieurs emplacements du programme (par exemple, line 100 CU %C1, line 174 CD
%C1
, line 209 LD %C1.D).
Programmation réversible
Utilisez les instructions BLK, OUT_BLK et END_BLK pour une programmation z z réversible : z BLK : Indique le début du bloc.
OUT_BLK : Utilisé pour câbler directement les sorties du bloc.
END_BLK : Indique la fin du bloc.
Exemple avec des sorties câblées
Vous trouverez ci-dessous un exemple de programmation réversible d'un bloc fonction compteur avec des sorties câblées.
%I1.1
N R
%C8
E
%I1.2 %M0
S
CU
ADJ Y
%Ci.P 9999
D
%M1 %Q0.4
CD F
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.4
END_BLK
Traitement en entrée
Traitement en sortie
394
TWD USE 10AE
Exemple sans sortie câblée
Instructions élémentaires
Vous trouverez ci-dessous un exemple de programmation réversible d'un bloc fonction compteur dépourvu de sortie câblée.
%I1.1
N
R
%C8
E
%I1.2 %M0
S
CU
ADJ Y
%Ci.P 9999
D
CD F
%C8.D %M1 %Q0.4
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
END_BLK
LD %C8.D
AND %M1
ST %Q0.4
Traitement en entrée
Traitement en sortie
Note : Seules les instructions de test et d'entrée sur le bloc correspondant peuvent
être placées entre les instructions BLK et OUT_BLK (ou entre BLK et END_BLK lorsque OUT_BLK n'est pas programmé).
TWD USE 10AE
395
Instructions élémentaires
Bloc fonction temporisateur (%TMi)
Introduction
Illustration
Il existe trois types de blocs fonction temporisateur : z TON (temporisateur de retard à l’enclenchement) : ce type de temporisateur permet de gérer les retards à l’enclenchement.
z z
TOF (temporisateur de retard au déclenchement) : ce type de temporisateur permet de gérer les retards au déclenchement.
TP (temporisateur - Impulsion) : ce type de temporisateur permet de générer des impulsions d'une durée précise.
TwidoSoft permet de programmer et de modifier les retards de ces temporisateurs et/ou les durées des impulsions qu'ils génèrent.
L'exemple suivant illustre l'utilisation du bloc fonction temporisateur.
%TMi
IN
TYPE TON
TB 1min
ADJ Y
%TMi.P 9999
Q
Bloc fonction temporisateur
396
TWD USE 10AE
Instructions élémentaires
Paramètres
Le bloc fonction temporisateur possède les paramètres suivants :
Paramètre Etiquette Valeur
Numéro du temporisateur %TMi 0 à 63 : TWDLCAA10DRF et TWDLCAA16DRF
0 à 127 pour tous les autres automates.
Type TON
TOF
• retard à l’enclenchement (par défaut)
• retard au déclenchement
Base de temps
Valeur courante
TP
TB
• impulsion (monostable)
1 min (par défaut), 1 s, 100 ms, 10 ms, 1 ms
%TMi.V
Mot avec des incréments allant de 0 à %TMi.P lorsque le temporisateur est en cours d'exécution. Peut être lu et testé, mais pas écrit par le programme.
%TMi.V peut être modifié par l'éditeur de tables d'animation.
Valeur de présélection
Editeur de tables d'animation
Entrée validation (ou de l'instruction)
IN
Sortie du temporisateur Q
%TMi.P
0 - 9999. Mot pouvant être lu, testé et écrit par le programme. La valeur par défaut est 9999. La période ou le délai généré est égal à %TMi.P x TB.
Y/N Y : Oui, la valeur %TMi.P de présélection peut être modifiée à l'aide de l'éditeur de tables d'animation.
N : Non, la valeur %TMi.P de présélection ne peut pas être modifiée.
Démarre le temporisateur sur le front montant (types TON ou TP) ou descendant (type TOF).
Le bit associé %TMi.Q est réglé sur 1 en fonction de la fonction exécutée :
TON, TOF ou TP
Note : Plus la valeur de présélection est grande, plus le temporisateur sera précis.
TWD USE 10AE
397
Instructions élémentaires
Type de temporisateur TOF
Introduction
Chronogramme
Le type de temporisateur TOF (Timer Off-Delay, temporisateur à retard de déclenchement) permet de gérer des retards au déclenchement. TwidoSoft permet de programmer ce retard.
Le chronogramme suivant illustre le fonctionnement du type de temporisateur TOF.
(1)
(3)
IN
(2)
Q
%TMi.P
%TMi.V
(4)
(5)
(1)
Fonctionnement
Le tableau suivant décrit le fonctionnement du type de temporisateur TOF.
Phase Description
1
2
3
4
La valeur courante %TMi.V prend la valeur 0 sur un front montant en entrée IN, et ce, même si le temporisateur est en cours d’exécution.
Le bit de sortie %TMi.Q passe à 1 lorsqu’un front montant est détecté en entrée IN.
Le temporisateur démarre sur le front descendant de l’entrée IN.
La valeur courante %TMi.V augmente jusqu’à %TMi.P, par incréments d’une unité à chaque pulsation de la base temps TB.
5 Le bit de sortie %TMi.Q est remis à 0 lorsque la valeur courante atteint %TMi.P.
398
TWD USE 10AE
Instructions élémentaires
Type de temporisateur TON
Introduction
Chronogramme
Le type de temporisateur TON (Timer On-Delay, temporisateur à retard à l'enclenchement) permet de gérer des retards à l'enclenchement. TwidoSoft permet de programmer ce retard.
Le chronogramme suivant illustre le fonctionnement du type de temporisateur TON.
(1)
IN
Q
%TMi.P
%TMi.V
(2)
(3)
(4)
(5)
Fonctionnement
Le tableau suivant décrit le fonctionnement du type de temporisateur TON.
Phase Description
1 Le temporisateur démarre sur le front montant de l’entrée IN.
2 La valeur courante %TMi.V augmente de 0 à %TMi.P, par incréments d’une unité à chaque pulsation de la base temps TB.
3
4
5
Le bit de sortie %TMi.Q passe à 1 lorsque la valeur courante a atteint %TMi.P.
Le bit de sortie %TMi.Q conserve la valeur 1 tant que la valeur de l’entrée IN est à 1.
Lorsqu’un front descendant est détecté en entrée IN, le temporisateur s’arrête, et ce, même s’il n’a pas atteint %TMi.P et que %TMi.V est réglé sur 0.
TWD USE 10AE
399
Instructions élémentaires
Type de temporisateur TP
Introduction
Chronogramme
Le type de temporisateur TP (Timer – Pulse, Temporisateur – Impulsion) permet de générer des impulsions d’une durée spécifique. TwidoSoft permet de programmer cette durée.
Le chronogramme suivant illustre le fonctionnement du type de temporisateur TP.
(1)
IN
(2)
Q
%TMi.P
%TMi.V
(3)
(4)
(5)
(6)
Fonctionnement
Le tableau suivant décrit le fonctionnement du type de temporisateur TP.
Phase Description
1 Le temporisateur démarre sur le front montant de l’entrée IN. La valeur courante
%TMi.V est mis à 0 si le temporisateur n’a pas encore démarré.
2
3
4
5
Le bit de sortie %TMi.Q est mis à 1 lorsque le temporisateur démarre.
La valeur courante %TMi.V du temporisateur augmente de 0 à %TMi.P, par incréments d’une unité à chaque pulsation de la base temps TB.
Le bit de sortie %TMi.Q est mis à 0 lorsque la valeur courante atteint %TMi.P.
6
La valeur courante %TMi.V est mis à 0 lorsque %TMi.V égale %TMi.P et que l’entrée IN retrouve la valeur 0.
Le temporisateur ne peut pas être remis à zéro. Lorsque %TMi.V égale %TMi.P et que l’entrée IN est mis à 0, %TMi.V est réglé sur 0.
400
TWD USE 10AE
Instructions élémentaires
Programmation et configuration de temporisateurs
Introduction
Exemples
Tous les blocs fonction temporisateur (%TMi) sont programmés de la même façon, indépendamment de leur mode d'utilisation. La fonction temporisateur (TON, TOF ou TP) est sélectionnée au moment de la configuration.
L'illustration suivante représente un bloc fonction temporisateur et affiche des exemples de programmation réversible et non réversible.
%I0.1
IN
%TMi
Q
TYPE TON
TB 1min
ADJ Y
%TMi.P 9999
%Q0.3
Programmation réversible
BLK
%TM1
LD
IN
%I0.1
OUT_BLK
LD
Q
ST %Q0.3
END_BLK
Programmation non réversible
LD
IN
LD
ST
%I0.1
%TM1
%TM1.Q
%Q0.3
Configuration
z z z z
Les paramètres suivants doivent être saisis au moment de la configuration :
Type de temporisateur : TON, TOF ou TP
Base temps (TB) : 1 min, 1 s, 100 ms, 10 ms ou 1 ms
Valeur de présélection (%TMi.P) : 0 à 9 999
Réglage : coché ou non coché
TWD USE 10AE
401
Instructions élémentaires
Cas particuliers
Le tableau suivant présente une liste des cas spécifiques de programmation du bloc fonction temporisateur.
Cas spécifique Description
Effet d'un redémarrage à froid (%S0=1) Force la valeur courante sur 0. Règle la sortie %TMi.Q sur 0. La valeur de présélection reprend la valeur réglée au moment de la configuration.
Effet d'une reprise à chaud (%S1=1)
Effet d'un arrêt de l'automate
Effet d'un saut de programme
N'a aucun effet sur la valeur courante et la valeur de présélection du temporisateur.
La valeur courante n'est pas modifiée lors d'une coupure d'alimentation secteur.
L'arrêt de l'automate ne provoque pas le gel de la valeur courante.
Le saut d'un bloc temporisateur ne provoque pas le gel du temporisateur.
L'incrémentation du temporisateur se poursuit jusqu'à ce que la valeur de présélection (%TMi.P) soit atteinte. A ce stade, l'état du bit Terminé (%TMi.Q) affecté
à la sortie Q du bloc temporisateur est modifié. Cependant, la sortie associée, liée directement à la sortie du bloc, n'est ni activée, ni scrutée par l'automate.
Test par bit %TMi.Q (bit terminé)
Effet de la modification de la valeur de présélection de %TMi.P
Nous conseillons de ne tester le bit %TMi.Q qu'une seule fois dans le programme.
La modification de la valeur de présélection à l'aide d'une instruction ou d'un réglage ne prend effet qu'à la prochaine activation du temporisateur.
Temporisateurs avec base temps de 1 ms
La base temps de 1 ms n'est disponible qu'avec les cinq premiers temporisateurs.
Les quatre mots système %SW76, %SW77, %SW78 et SW79 peuvent être utilisés comme des "sabliers". Ces quatre mots sont décrémentés de manière individuelle par le système toutes les millisecondes, si leur valeur est positive.
Il est possible de créer une temporisation multiple en chargeant successivement un de ces mots ou en testant les valeurs intermédiaires. Les valeurs négatives de ces quatre mots ne seront pas modifiées. Un temporisateur peut être "gelé" en réglant le bit 15 sur la valeur 1, puis "dégelé" en remettant à zéro cette valeur.
402
TWD USE 10AE
Exemple de programmation
Instructions élémentaires
L'exemple suivant illustre la programmation d'un bloc fonction temporisateur.
LDR %I0.1
(Lancement du temporisateur sur le front montant de
%I0.1)
[%SW76:=XXXX]
LD %I0.2
ST
LD
ST
..............
%SW76:X15
[%SW76=0]
%M0
(XXXX = valeur requise)
(gestion optionnelle du gel, gel de l'entrée I0.2)
(test du temporisateur de fin)
%I0.1
P
%I0.2
%SW76:=XXXX
%SW76:X15
%M0
%SW76=0
TWD USE 10AE
403
Instructions élémentaires
Bloc fonction compteur/décompteur (%Ci)
Introduction
Illustration
Le bloc fonction compteur (%Ci) permet de compter ou de décompter des
événements. Ces deux opérations peuvent être réalisées simultanément.
L'illustration suivante présente un exemple de bloc fonction compteur/décompteur.
%Ci
R
E
S
CU
ADJ Y
%Ci.P 9999
D
CD
F
Bloc fonction compteur/décompteur
404
TWD USE 10AE
Instructions élémentaires
Paramètres
Le bloc fonction compteur possède les paramètres suivants :
Paramètre
Numéro du compteur
Valeur courante
Valeur de présélection
Edition à l'aide de l'Editeur de tables d'animation
Etiquette
%Ci
%Ci.V
%Ci.P
ADJ
Valeur
0 à 127
La valeur du mot est augmentée ou diminuée d'une unité en fonction des entrées (ou des instructions) CU et CD. Peut être lue et testée, mais pas
écrite par le programme. Utilisez l'éditeur de données pour modifier %Ci.V.
0
≤ %Ci.P ≤ 9999. Le mot peut être lu, testé et écrit (valeur par défaut : 9999).
z z
Y : Oui, la valeur de présélection peut être modifiée à l'aide de l'éditeur de tables d'animation.
N : Non, la valeur de présélection ne peut pas être modifiée à l'aide de l'éditeur de tables d'animation.
A l'état 1 : %Ci.V = 0.
A l'état 1 : %Ci.V = %Ci.P.
Entrée (ou instruction) RAZ R
Entrée (ou instruction) de présélection
S
Entrée (ou instruction) de comptage
CU Augmente la valeur de %Ci.V d'une unité sur un front montant.
Entrée (ou instruction) de décomptage
CD
Sortie débordement décomptage
E (vide)
Diminue la valeur de %Ci.V d'une unité sur un front montant.
Le bit associé %Ci.E est égal à 1, lorsque la valeur du décompteur %Ci.V passe de 0 à
9999 (mis à 1 lorsque %Ci.V atteint 9999 et remis à zéro si le décomptage se poursuit).
Sortie prédéfinie atteinte D (Terminé) Le bit associé %Ci.D est égal à 1, lorsque %Ci.V est égal à %Ci.P.
Sortie débordement comptage
F (plein) Le bit associé %Ci.F est égal à 1, lorsque la valeur de %Ci.V passe de 9999 à 0 (mis
à 1 lorsque %Ci.V atteint 0 et remis à zéro si le comptage croissant se poursuit).
TWD USE 10AE
405
Instructions élémentaires
Fonctionnement
Le tableau suivant décrit les étapes principales des opérations de comptage et de décomptage.
Fonctionnement Action
Comptage Un front montant apparaît sur l’entrée comptage
CU (ou l'instruction CU est activée).
Résultat
La valeur courante de %Ci.V est augmentée d'une unité.
La valeur courante de %Ci.V est égale à la valeur de présélection de %Ci.P.
Le bit de sortie "présélection atteinte" %Ci.D passe à 1.
La valeur courante de %Ci.V passe de 9999 à 0. Le bit de sortie %Ci.F (débordement comptage) passe à 1.
Si le comptage se poursuit.
Le bit de sortie %Ci.F (débordement comptage) est remis à zéro.
Décomptage
Comptage/
Décomptage
Remise à zéro
Présélection
Un front montant apparaît sur l’entrée décomptage CD (ou l'instruction CD est activée).
La valeur courante de %Ci.V est diminuée d'une unité.
La valeur courante de %Ci.V passe de 0 à 9999. Le bit de sortie %Ci.E (débordement décomptage) passe à 1.
Si le décomptage se poursuit.
Le bit de sortie %Ci.F (débordement décomptage) est remis à zéro.
Pour utiliser simultanément les fonctions de comptage et de décomptage (ou pour activer les deux instructions
CD et CU), les deux entrées CU et CD correspondantes doivent être commandées simultanément. Ces deux entrées sont ensuite scrutées. Si leur valeur est égale à 1, la valeur courante n'est pas modifiée.
Mise à 1 de l’entrée R (ou l'instruction R est activée).
Force la remise à zéro de la valeur %Ci.V. Les sorties %Ci.E, %Ci.D et %Ci.F sont mises à 0.
L'entrée remise à zéro est prioritaire.
Si l'entrée S est mis à 1 (ou si l'instruction S est activée) et que l'entrée de remise à zéro est à l’état 0 (ou que l'instruction R est inactive).
La valeur courante %Ci.V prend la valeur de
%Ci.P et la sortie %Ci.D est mis à 1.
Cas spécifiques
Le tableau suivant présente une liste de cas spécifiques de fonctionnement et de configuration des compteurs.
Cas spécifique Description
Effet d'un redémarrage à froid (%S0=1) z
La valeur courante de %Ci.V est mise à 0.
z
Les bits de sortie %Ci.E, %Ci.D et %Ci.F sont mis à sur 0.
z
La valeur de présélection est initialisée avec la valeur définie au moment de la configuration
N'a aucun effet sur la valeur courante du compteur (%Ci.V).
Effet d'une reprise à chaud (%S1=1) d'un arrêt de l'automate (STOP)
Effet de la modification de la valeur de présélection de %Ci.P
La modification de la valeur de présélection à l'aide d'une instruction ou d'un réglage ne prend effet qu'au moment du traitement du bloc par l'application (activation de l'une des entrées).
406
TWD USE 10AE
Instructions élémentaires
Programmation et configuration des compteurs
Introduction
Exemple de programmation
L’exemple suivant illustre un compteur permettant de compter un maximum de 5000 articles. Chaque impulsion sur l’entrée %I1.2 (lorsque le bit interne %M0 est mis à
1) incrémente la valeur du compteur %C8 d’une unité, jusqu’à la valeur de présélection finale (bit %C8.D=1). Le compteur est remis à zéro par l’entrée %I1.1.
L’illustration suivante représente un bloc fonction compteur et affiche des exemples de programmation réversible et non réversible.
%I1.1
%I1.2 %M0
R
%C8 E
S
CU
ADJ Y
%Ci.P 9999
D
CD F
%C8.D
%Q0.0
BLK
%C8
LD
R
%I1.1
LD %I1.2
AND %M0
CU
END_BLK
LD
ST
%C8.D
%Q0.0
Schéma à contacts
LD
R
LD
%I1.1
%C8
%I1.2
AND %M0
CU %C8
LD
ST
%C8.D
%Q0.0
Programmation réversible Programmation non réversible
TWD USE 10AE
407
Instructions élémentaires
Configuration
Exemple d’un compteur/
Décompteur
z z
Les paramètres suivants doivent être saisis au moment de la configuration :
Valeur de présélection (%Ci.P) : fixée à 5000 dans cet exemple
Réglage : Oui
L’illustration suivante représente un bloc fonction compteur / décompteur.
%M0
%I0.0
%M0 %I0.0
R
S
CU
CD
%C1 E
D
F
%M0
R
%M0
S
Schéma à contacts
Dans cet exemple, si on prends %C1.P 4, la valeur courante du compteur %C1.V sera incrémenté de 0 jusqu’à 3 puis décrémenté de 3 jusqu’à 0.Tant que %I0.0=1
%C1.V oscille entre 0 et 3.
408
TWD USE 10AE
Instructions élémentaires
Bloc fonction registre bits à décalage (%SBRi)
Introduction
Illustration
Le bloc fonction registre bits à décalage (%SBRi) effectue un décalage vers la gauche ou vers la droite des bits de données binaires (0 ou 1).
L'exemple suivant illustre un bloc fonction registre à décalage :
R
%SBRi
CU
CD
Paramètres
Paramètre
Numéro de registre
Bit de registre
Le bloc fonction registre bits à décalage possède les paramètres suivants :
Etiquette
%SBRi
%SBRi.j
Entrée (ou instruction) de présélection
Entrée (ou l'instruction) décalage à gauche
R
CU
Entrée (ou l'instruction) décalage à droite
CD
Valeur
0 à 7
Les bits 0 à 15 (j = 0 à 15) du registre à décalage peut être testé par une instruction de test et écrit à l'aide d'une instruction d'affectation.
Lorsque le paramètre fonction R est 1, ceci définit les bits de registre 0 à
15 %SBRi.j sur 0.
Sur un front montant, décale un bit du registre vers la gauche.
Sur un front montant, décale un bit du registre vers la droite.
TWD USE 10AE
409
Instructions élémentaires
Fonctionnement
L'illustration suivante présente une configuration binaire avant et après une opération de décalage.
Fonctionnement
Etat initial
1 1
Bit 15
0 0 0 0 0 0 1 1 0 1 1 1 0 0
Bit 0
CU %SBRi effectue un décalage vers la gauche
Le bit 15 est perdu
1 0
Bit 15
0 0 0 0 0 1 1 0 1 1 1 0 0
Bit 0
0
Cet exemple peut également s'appliquer à une requête de décalage d'un bit vers la droite (Bit 15 à Bit 0) à l'aide de l'instruction CD. Le bit 0 est perdu.
Si un registre de 16 bits n'est pas adapté, il est possible d'utiliser le programme pour afficher en cascade plusieurs registres.
Programmation
Dans l'exemple suivant, un bit est décalé vers la gauche à chaque seconde et le bit 0 prend l'état opposé au bit 15.
Programmation
réversible
%SBR0.15
%SBR0.0
/
%SBR0
LDN %SBR0.15
ST
LD
CU
%SBR0.0
BLK %SBR0
%S6
END_BLK
R
%S6
CU
Programmation
non réversible
CD
LDN %SBR0.15
ST %SBR0.0
LD
CU
%S6
%SBR0
Cas particuliers
Le tableau suivant présente une liste des cas spéciaux de fonctionnement.
Cas spécial Description
Effet d'un redémarrage à froid (%S0=1) Règle tous les bits du mot registre sur 0.
Effet d'une reprise à chaud (%S1=1) N'a aucun effet sur les bits du mot registre.
410
TWD USE 10AE
Instructions élémentaires
Bloc fonction pas à pas (%SCi)
Introduction
Illustration
Un bloc fonction pas à pas (%SCi) permet d'accomplir une série d'étapes auxquelles des actions peuvent être affectées. Le passage d'une étape à l'autre dépend d'événements internes ou externes. Chaque fois qu'une étape est active, le bit associé est réglé sur 1.
Une seule étape d'une fonction pas à pas peut être active à la fois.
L'exemple suivant illustre un bloc fonction pas à pas.
R
%SCi
CU
CD
Paramètres
Le bloc fonction pas à pas possède les paramètres suivants :
Paramètre Etiquette Valeur
Numéro de fonction pas à pas %SCi 0 - 7
Bit de fonction pas à pas %SCi.j
Les bits de fonction pas à pas 0 à 255 (j = 0 à 255) peuvent être testés par une instruction logique de chargement et écrits à l'aide d'une instruction d'affectation.
Entrée (ou instruction) de présélection R
Entrée (ou instruction) d'incrémentation CU
Entrée (ou instruction) de décrémentation
CD
Lorsque le paramètre fonction R est 1, ceci réinitialise la fonction pas à pas.
Sur un front montant, incrémente la fonction pas à pas d'une étape.
Sur un front montant, décrémente la fonction pas à pas d'une étape.
Chronogramme
Le chronogramme suivant illustre le fonctionnement du bloc fonction pas à pas.
Entrée CU
Entrée CD
Numéro du pas actif
0 1 2 3 2 1 0
TWD USE 10AE
411
Instructions élémentaires
Programmation
z z z
L'exemple suivant illustre un bloc fonction pas à pas.
La fonction pas à pas 0 est incrémentée par l'entrée %I0.2.
La fonction pas à pas 0 est remise à 0 par l'entrée %I0.3 ou lorsqu'elle arrive à l'étape 3.
L'étape 0 commande la sortie %Q0.1, l'étape 1 commande la sortie %Q0.2 et l'étape 2 commande la sortie %Q0.3.
L'illustration suivante présente la programmation réversible et non réversible correspondant à cet exemple.
Programmation
réversible
%SC0.3
%I0.3
%I0.2
R
CU
CD
%SC0
BLK %SC0
LD
OR
R
LD
CU
%SC0.3
%I0.3
%I0.2
END_BLK
LD
ST
LD
ST
LD
ST
%SC0.0
%Q0.1
%SC0.1
%Q0.2
%SC0.2
%Q0.3
%SC0.0
%SC0.1
%SC0.2
%Q0.1
%Q0.2
%Q0.3
Programmation
non réversible
LD
OR
R
LD
CU
LD
ST
LD
ST
LD
ST %Q0.3
%SC0.3
%I0.3
%SC0
%I0.2
%SC0
%SC0.0
%Q0.1
%SC0.1
%Q0.2
%SC0.2
Cas spécifique
Le tableau suivant présente une liste des cas spécifiques de fonctionnement du bloc fonction pas à pas.
Cas spécifique
Effet d'un redémarrage à froid (%S0=1)
Effet d'une reprise à chaud (%S1=1)
Description
Initialise la fonction pas à pas.
N'a aucun effet sur la fonction pas à pas.
412
TWD USE 10AE
Instructions élémentaires
16.3
Traitement numérique
Présentation
Objet de ce souschapitre
Ce sous-chapitre offre une introduction au traitement numérique, qui s'appuie sur des descriptions et des directives de programmation.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
Introduction aux instructions numériques
Instructions d'affectation
Instructions de comparaison
Instructions arithmétiques sur entiers
Instructions logiques
Instructions de décalage
Instructions de conversion
Instructions de conversion entre mots simples et doubles
Page
TWD USE 10AE
413
Instructions élémentaires
Introduction aux instructions numériques
Présentation
Les instructions numériques s'appliquent généralement aux mots de 16 bits (voir section
Objets mots, p. 29) et aux doubles mots de 32 bits (Voir Objets flottants et
mots doubles, p. 32). Ces instructions apparaissent entre crochets. Si le résultat de
l'opération logique précédente est Vraie (accumulateur booléen = 1), l'instruction numérique est exécutée. Si ce résultat est Faux (accumulateur booléen = 0), l'instruction numérique n'est pas exécutée et l'opérande reste inchangé.
414
TWD USE 10AE
Instructions élémentaires
Instructions d'affectation
Introduction
Affectation
Les instructions d'affectation permettent de charger l'opérande Op2 dans l'opérande
Op1.
Syntaxe des instructions d'affectation
[
Op1:=Op2
] <=>
Op2 -> Op1
Affectation de chaînes de bits
z z z z z z
Les opérations d'affectation peuvent être exécutées sur : z des chaînes de bits
Mots
Doubles mots
Flottants des tables de mots des tables de doubles mots des tables de flottants z z z z
Les opérations peuvent être exécutées sur les chaînes de bits suivantes (voir souschapitre
Chaîne de bit -> chaîne de bit (Exemple 1)
Chaîne de bit -> mot (Exemple 2) ou double mot (indexé)
Mot ou double mot (indexé) -> chaîne de bit (Exemple 3)
Valeur immédiate -> chaîne de bit
TWD USE 10AE
415
Instructions élémentaires
Exemples
Exemples d'affectations de chaînes de bits
%Q0:8:=%M64:8
%I0.2
%I0.3
P
%MW100:=%I0:16
%M104:16:=%KW0
LD 1
[%Q0:8:=%M64:8]
LD %I0.2
[%MW100:=%I0:16]
LDR %I0.3
[%M104:16:=%KW0]
(Ex. 1)
(Ex. 2)
(Ex. 3)
Règles d'utilisation : z z
Pour l'affectation chaîne de bit -> mot : les bits de la chaîne sont transférés vers le mot en commençant par la droite (premier bit de la chaîne vers bit 0 du mot) et les bits mot non concernés par le transfert (longueur
≤16) sont réglés sur 0.
Pour l'affectation mot -> chaîne de bits : les bits mot sont transférés en partant de la droite (bit mot 0 vers premier bit de la chaîne).
Affectations de chaînes de bits
Syntaxe des affectations de chaînes de bits
Opérateur Syntaxe
:= [Op1 : = Op2 ]
L'opérande 1 (Op1) prend la valeur de l'opérande 2 (Op2).
Opérande 1 (Op1)
%MWi,%QWi,
%QWAi,%SWi
%MWi[%MWi], %MDi,
%MDi[%MWi]
%Mi:L, %Qi:L, %Si:L, %Xi:L
Opérande 2 (Op2)
Valeur immédiate, %MWi, %KWi,
%IW,%IWAi, %INWi, %QWi, %QWAi
%QNWi, %SWi, %BLK.x,
%MWi[%MWi], %KWi[%MWi],
%MDi[%MWi], %KDi[%MWi],
%Mi:L,%Qi:L, %Si:L, %Xi:L, %Ii:L
Note : L'abréviation %BLK.x (%C0.P, par exemple) est utilisée pour décrire tout mot de bloc fonction.
416
TWD USE 10AE
Affectation de mots
Exemples
Instructions élémentaires z z z z z z z
Les opérations d'affectation peuvent être exécutées sur les mots et doubles mots suivants :
Mot (indexé) -> mot (Exemple 2) (indexé ou non)
Double mot (indexé) -> Double mot (indexé ou non)
Valeur entière immédiate -> mot (Exemple 3) ou double mot (indexés ou non)
Chaîne de bit -> mot ou double mot
Flottant (indexé ou non)-> flottant (indexé ou non)
Mot ou double mot -> chaîne de bit
Valeur flottante immédiate -> flottant (indexé ou non)
Exemples d'affectations de mots
%SW112:=%MW100
LD 1
[%SW112:=%MW100]
(Ex. 1)
%I0.2
%MW0[%MW10]:=%KW0[%MW20]
LD %I0.2
[%MW0[%MW10]:=
%KW0[%MW20]]
(Ex. 2)
%I0.3
P
%MW10:=100
LDR %I0.3
[%MW10:=100]
(Ex. 3)
TWD USE 10AE
417
Instructions élémentaires
Syntaxe
Syntaxe des affectations de mots
Opérateur Syntaxe
:= [Op1 : = Op2 ]
L'opérande 1 (Op1) prend la valeur de l'opérande 2 (Op2).
Le tableau suivant détaille les opérandes :
Type
mot, double mot, chaîne de bits
Flottant
Opérande 1 (Op1)
%BLK.x, %MWi, %QWi,
%QWAi, %SWi
%MWi[MWi, %MDi,
%MDi[%MWj]],
%Mi:L, %Qi:L, %Si:L, %Xi:L
%MFi, %MFi[%MWj]
Opérande 2 (Op2)
Valeur immédiate, %MWi, %KWi, %IW,
%IWAi, %QWi, %QWAi, %SWi, %MWi[MWi],
%KWi[MWi], %MDi, %MDi[%MWj], %KDi,
%KDi[MWj] , %INW, %Mi:L, %Qi:L, %QNW,
%Si:L, %Xi:L, %Ii:L
valeur flottante immédiate, %MFi,
%MFi[%MWj], %KFi, %KFi[%MWj]
Note : L'abréviation %BLK.x (%R3.I, par exemple) est utilisée pour décrire tout mot de bloc fonction. Pour les chaînes de bits %Mi:L, %Si:L et %Xi:L, le repère de base du premier bit de la chaîne doit être un multiple de 8 (0, 8, 16, ..., 96, ...).
Affectation de tables de mots, doubles mots ou flottants
z z z z z
Les opérations d'affectation peuvent être exécutées sur les tables d’objets suivantes
(voir sous-chapitre
z
Valeur entière immédiate -> table de mots (Exemple 1) ou de mots doubles z Mot -> table de mots (Exemple 2) z Table de mots -> table de mots (Exemple 3)
La longueur de la table (L) doit être la même pour les deux tables.
Double mot -> table de doubles mots
Table de doubles mots -> table de doubles mots
La longueur de la table (L) doit être la même pour les deux tables.
Valeur flottante immédiate -> table de flottants
Flottant -> table de flottants
Table de flottants -> table de flottants
La longueur de la table (L) doit être la même pour les deux tables.
418
TWD USE 10AE
Exemples
Syntaxe
Instructions élémentaires
Exemples d'affectations de tables de mots
%MW0:10:=100
%I0.2
%I0.3
P
%MW0:10:=%MW11
%MW10:20:=%KW30:20
LD 1
[%MW0:10:=100]
LD %I0.2
[%MW0:10:=%MW11]
(Ex. 1)
(Ex. 2)
LDR %I0.3
[%MW10:20:=%KW30:20]
(Ex. 3)
Syntaxe des affectations de tables de mots, doubles mots et flottants
Opérateur Syntaxe
:= [Op1 : = Op2 ]
L'opérande 1 (Op1) prend la valeur de l'opérande 2 (Op2).
Le tableau suivant détaille les opérandes :
Type
tableau de mots
Opérande 1 (Op1)
%MWi:L, %SWi:L
tableau de doubles mots tableau de flottants
%MDi:L
%MFi:L]
Opérande 2 (Op2)
%MWi:L, %SWi:L, Valeur entière immédiate, %MWi, %KWi, %IW, %QW,
%IWA, %QWA, %SWi, %BLK.x
valeur entière immédiate, %MDi,
%KDi,%MDi:L, %KDi:L valeur flottante immédiate, %MFi,
%KFi, %MFi:L, %KFi:L
Note : L'abréviation %BLK.x (%R3.I, par exemple) est utilisée pour décrire tout mot de bloc fonction.
TWD USE 10AE
419
Instructions élémentaires
Instructions de comparaison
Introduction
Les instructions de comparaison permettent de comparer deux opérandes.
Le tableau suivant répertorie les différents types d'instructions de comparaison.
<=
=
<>
Instruction
>
>=
<
Fonction
Teste si l'opérande 1 est supérieur à l'opérande 2.
Teste si l'opérande 1 est supérieur ou égale à l'opérande 2.
Teste si l'opérande 1 est inférieur à l'opérande 2.
Teste si l'opérande 1 est inférieur ou égal à l'opérande 2.
Teste si l'opérande 1 est égal à l'opérande 2.
Teste si l'opérande 1 est différent de l'opérande 2.
Structure
La comparaison s'effectue entre les crochets qui suivent les instructions LD, AND et
OR. Le résultat est 1 lorsque le résultat de la comparaison requise est Vrai.
Exemples d'instructions de comparaison
%Q0.3
%M0
%I0.2
%MW10>100
%MW20<%KW35
%Q0.2
%Q0.4
LD [%MW10 > 100]
ST %Q0.3
LD %M0
AND [%MW20 < %KW35]
ST %Q0.2
LD %I0.2
OR [%MF30>=%MF40]
ST %Q0.4
%MF30>=%MF40
420
TWD USE 10AE
Syntaxe
Instructions élémentaires
Syntaxe des instructions de comparaison :
Opérateur
>, >=, <, <=, =, <>
Syntaxe
LD [Op1 Opérateur Op2]
AND [Op1 Opérateur Op2]
OR [Op1 Opérateur Op2]
Opérandes :
Type
Mots
Opérande 1 (Op1) Opérande 2 (Op2)
%MWi, %KWi, %INWi, %IW,
%IWAi, %QNWi, %QWi, %QWAi,
%QNWi, %SWi, %BLK.x
Valeur immédiate, %MWi, %KWi, %INWi,
%IW, %IWAi, %QNWi, %QW, %QWAi, %SWi,
%BLK.x, %MWi [%MWi], %KWi [%MWi]
Doubles mots %MDi, %KDi
Flottants %MFi, %KFi
Valeur immédiate, %MDi, %KDi, %MDi
[%MWi], %KD [%MWi]
Valeur flottante immédiate, %MFi, %KFi,
%MFi [%MWi], %KFi [%MWi]
Note : Les instructions de comparaison peuvent être utilisées au sein de parenthèses.
Exemple d'utilisation d'une instruction de comparaison entre parenthèses
LD %M0
AND( [%MF20 > 10.0]
)
OR
ST
%I0.0
%Q0.1
TWD USE 10AE
421
Instructions élémentaires
Instructions arithmétiques sur entiers
Introduction
Les instructions arithmétiques permettent d'effectuer des opérations arithmétiques entre deux opérandes entiers ou sur un opérande entier.
Le tableau suivant répertorie les différents types d'instructions arithmétiques.
-
*
Instruction Fonction
+ Addition de deux opérandes
Soustraction de deux opérandes
Multiplication de deux opérandes
/
REM
SQRT
INC
DEC
ABS
Division de deux opérandes
Reste de la division de deux opérandes
Racine carrée d'un opérande
Incrémentation d'un opérande
Décrémentation d'un opérande
Valeur absolue d'un opérande
Structure
Les opérations arithmétiques sont effectuées de la façon suivante :
%M0
%MW0:=%MW10+100
LD %M0
[%MW0:=%MW10 + 100]
%I0.2
%MW0:=SQRT(%MW10)
LD %I0.2
[%MW0:=SQRT(%MW10)]
%I0.3
P
INC %MW100
LDR %I0.3
[INC %MW100]
422
TWD USE 10AE
Syntaxe
Instructions élémentaires
La syntaxe dépend des opérateurs utilisés, tel que l'indique le tableau ci-dessous.
Opérateur
+, -, *, /, REM
INC, DEC
SQRT (1)
ABS (1)
Syntaxe
[Op1: = Op 2 Opérateur Op3]
[Opérateur Op1]
[Op1: = SQRT(Op2)]
[Op1: = ABS(Op2)]
Opérandes :
Type
Mots
Doubles mots
Opérande 1 (Op1) Opérandes 2 et 3 (Op2 & 3) (1)
%MWi, %QWi,
%QWAi, %SWi
%MDi
Valeur immédiate , %MWi, %KWi, %INW, %IW,
%IWAi, %QNW, %QW, %QWAi, %SWi, %BLK.x
Valeur immédiate, %MDi, %KDi
Note : (1) Avec cet opérateur, Op2 ne peut pas être une valeur immédiate.
La fonction ABS n'est utilisable qu'avec des doubles mots (%MD et %KD) et des flottants (%MF et %KF). Par conséquent OP1 et OP2 doivent être des doubles mots ou des flottants.
TWD USE 10AE
423
Instructions élémentaires
Débordement et conditions d'erreurs
Addition
z Débordement pendant l'opération sur mots
Si le résultat dépasse les limites de -32 768 ou de +32 767, le bit %S18
(débordement) est mis à 1. Le résultat est alors non significatif (voir Exemple 1 page suivante). Le programme utilisateur gère le bit %S18.
Remarque :
Pour les doubles mots, les limites sont -2 147 483 648 et 21 474 836 487.
Multiplication
z Débordement pendant l'opération
Si le résultat dépasse la capacité du mot de résultat, le bit %S18 (débordement) est mis à 1 et le résultat n'est pas significatif.
Division / reste
z
Division par 0
Si le dividende est 0, la division est impossible et le bit système %S18 est mis à z
1. Le résultat est alors incorrect.
Débordement pendant l'opération
Si le quotient de la division dépasse la capacité du mot de résultat, le bit système
%S18 est mis à 1.
Calcul de la racine carrée
z Débordement pendant l'opération
Le calcul de la racine carrée est uniquement effectué sur les valeurs positives. Le résultat est, par conséquent, toujours positif. Si l'opérande de racine carrée est négatif, le bit système %S18 est mis à 1 et le résultat est incorrect.
Note : Le programme utilisateur gère les bits système %S17 et %S18. L'automate les règle sur 1. Ils doivent être remis à 0 par le programme afin de pouvoir être réutilisés (voir exemple page précédente).
424
TWD USE 10AE
Exemples
Instructions élémentaires
Exemple 1 : débordement lors de l'addition
%M0
%MW0:=%MW1+%MW2
LD %M0
[%MW0:=%MW1 + %MW2]
%S18
/
%MW10:=%MW0
LDN %S18
[%MW10:=%MW0]
%S18
%MW10:=32767
LD %S18
[%MW10:=32767]
R %S18
%S18
R
Si %MW1 =23 241 et %MW2=21 853, le résultat réel (45 094) ne peut pas être exprimé par un mot de 16 bits, le bit %S18 est réglé sur 1 et le résultat obtenu (-
20 442) est incorrect. Dans cet exemple, la valeur est fixée à 32 767 lorsque le résultat est supérieur à cette valeur.
TWD USE 10AE
425
Instructions élémentaires
Instructions logiques
Introduction
Les instructions logiques permettent d'effectuer des opérations logiques entre deux opérandes ou sur un opérande.
Le tableau suivant répertorie les différents types d'instructions logiques :
Instruction
AND
OR
XOR
NOT
Fonction
AND (bit à bit) entre deux opérandes
OR logique (bit à bit) entre deux opérandes
OR exclusif (bit à bit) entre deux opérandes
Complément logique (bit à bit) d'un opérande
Structure
Les opérations logiques sont effectuées de la façon suivante :
%M0
%MW0:=%MW10 AND 16#FF00
LD %M0
[%MW0:=%MW10 AND 16#FF00]
LD 1
[%MW0:=%KW5 OR %MW10]
[%MW0:=%KW5 OR %MW10]
%I0.3
%MW102:=NOT (%MW100)
LD %I0.3
[%MW102:=NOT(%MW100)]
Syntaxe
La syntaxe dépend des opérateurs utilisés :
Opérateur Syntaxe Opérande 1 (Op1) Opérandes 2 et 3 (Op2 et 3)
AND, OR, XOR [Op1: = Op2 Opérateur Op3] %MWi, %QWi,
NOT [Op1:=NOT(Op2)]
%QWAi, %SWi
Valeur immédiate (1), %MWi, %KWi, %IW,
%IWAi, %QW, %QWAi, %SWi, %BLK.x
Exemple
Note : (1) Avec NOT, Op2 ne peut pas être une valeur immédiate.
L'exemple suivant présente une instruction AND logique.
[%MW15:=%MW32 AND %MW12]
426
TWD USE 10AE
Instructions élémentaires
Instructions de décalage
Introduction
Les instructions de décalage déplacent les bits d'un opérande d'un certain nombre de positions vers la droite ou vers la gauche.
Le tableau suivant répertorie les différents types d'instructions de décalage.
Instruction Fonction
Décalage logique
SHL(op2,i) Décalage logique de i positions vers la gauche
F 0
SHR(op2,i) Décalage logique de i positions vers la droite
F
%S17
0
%S17
Décalage circulaire
ROL(op2,i) Décalage circulaire de i positions vers la gauche
F 0
ROL(op2,i) Décalage circulaire de i positions vers la droite
F
%S17
0
%S17
Note : Le bit système %S17 (Voir
Bits système (%S), p. 596) est utilisé pour le
dépassement de capacité.
TWD USE 10AE
427
Instructions élémentaires
Structure
Les opérations de décalage sont effectuées de la façon suivante :
%I0.1
P %MW0:=SHL(%MW10, 5)
LDR %I0.1
[%MW0 :=SHL(%MW10, 5)]
%I0.2
P
%MW10:=ROR(%KW9, 8)
LDR %I0.2
[%MW10 :=ROR(%KW9, 8)]
Syntaxe
La syntaxe dépend des opérateurs utilisés, tel que l'indique le tableau ci-dessous.
Opérateur
SHL, SHR
ROL, ROR
Syntaxe
[Op1 : = Opérateur (Op2,i)]
Opérandes :
Types
Mots
Double mots
Opérande 1 (Op1) Opérande 2 (Op2)
%MWi, %QWi,
%QWAi, %SWi
%MDi
%MWi, %KWi, %IW, %IWAi, %QW,
%QWAi, %SWi, %BLK.x
%MDi, %KDi
428
TWD USE 10AE
Instructions élémentaires
Instructions de conversion
Introduction
Les instructions de conversion permettent d'effectuer la conversion entre les différentes représentations numériques.
Le tableau suivant répertorie les différents types d'instructions de conversion.
Instruction
BTI
ITB
Fonction
BCD --> Conversion binaire
Binaire --> Conversion BCD
Révision du code
BCD
Le codage BCD (Binary Coded Decimal - décimal codé binaire) représente les décimaux (entre 0 et 9) par un code à quatre bits. Un objet mot de 16 bits peut ainsi contenir un nombre exprimé par quatre chiffres (0000 - 9999), et un objet double mot de 32 bits peut ainsi contenir un nombre exprimé par huit chiffres.
Lors d'une conversion, le bit système %S18 est mis à 1 si la valeur n'est pas BCD.
Ce bit doit être testé et remis à 0 par le programme.
Représentation BCD des décimaux :
Décimal
BCD
0 1 2 3 4 5 6 7 8 9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Exemples : z
Le mot %MW5 exprime la valeur BCD "2450", qui correspond à la valeur binaire
: 0010 0100 0101 0000 z Le mot %MW12 exprime la valeur décimale "2450", qui correspond à la valeur binaire : 0000 1001 1001 0010
Le mot %MW5 est converti en mot %MW12 à l'aide de l'instruction BTI.
Le mot %MW12 est converti en mot %MW5 à l'aide de l'instruction ITB.
Structure
Les opérations de conversion sont effectuées de la façon suivante :
%M0
%MW0:=BTI(%MW10)
LD %M0
[%MW0 :=BTI(%MW10)]
%I0.2
%MW10:=ITB(%KW9)
LD %I0.2
[%MW10 :=ITB(%KW9)]
TWD USE 10AE
429
Instructions élémentaires
Syntaxe
La syntaxe dépend des opérateurs utilisés, tel que l'indique le tableau ci-dessous.
Opérateur
BTI, ITB
Syntaxe
[Op1 : = Opérateur (Op2)]
Opérandes :
Type
Mots
Mots double
Opérande 1 (Op1) Opérande 2 (Op2)
%MWi, %QWi,
%QWAi, %SWi
%MDi
%MWi, %KWi, %IW, %IWAi,
%QW, %QWAi, %SWi, %BLK.x
%MDi, %KDi
Exemples d'application :
L'instruction BTI peut être utilisée pour traiter une valeur de consigne aux entrées de l'automate via des roues codeuses en BCD.
L'instruction peut être utilisée pour afficher des valeurs numériques sur des afficheurs codés en BCD (résultat d'un calcul, valeur courante d'un bloc fonction, par exemple).
430
TWD USE 10AE
Instructions élémentaires
Instructions de conversion entre mots simples et doubles
Inroduction
Le tableau suivant décrit les instructions de conversions entre les mots simples et doubles :
Instruction
LW
HW
CONCATW
DWORD
Fonction
Extrait l’octet de poids faible d’un double mot vers un mot.
Extrait l’octet de poids fort d’un double mot vers un mot.
Concatène deux mots pour constituer un double mot.
Convertit un mot de 16 bits en un double mot de 32 bits.
Structure
Les opérations de conversion sont effectuées de la façon suivante :
%M0
%MW0:=HW(%MD10)
LD %M0
[%MW0 :=HW(%MD10)]
%I0.2
%MD10:=DWORD(%KW9)
LD %I0.2
[%MD10 :=DWORD(%KW9)]
%I0.3
%MD11:=CONCATW(%MW10, %MW5)
LD %I0.3
[%MD11:=CONCATW(%MW10,%MW5)]
Syntaxe
La syntaxe dépend des opérateurs utilisés, tele que l’indique le tableau suivant : l
Opérateur Syntaxe
LW, HW Op1 = Opérateur (Op2)
Opérande 1 (Op1) Opérande 2 (Op2)
%MWi
CONCATW Op1 = Opérateur (Op2, Op3)) %MDi
%MDi, %KDi
DWORD Op1 = Opérateur (Op2) %MDi
%MWi, %KWi, valeur immédiate
%MWi, %KWi
Opérande 3 (Op3)
[-]
%MWi, %KWi, valeur immédiate
[-]
TWD USE 10AE
431
Instructions élémentaires
16.4
Instructions sur programme
Présentation
Objet de ce souschapitre
Ce sous-chapitre présente une introduction aux instructions sur programme.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
Instructions END
Instruction NOP
Instructions de saut
Instructions de sous-programme
Page
432
TWD USE 10AE
Instructions élémentaires
Instructions END
Introduction
END, ENDC et
ENDCN
Les instructions END définissent la fin de l'exécution de la scrutation d'un programme.
Il existe trois instructions END différentes : z z
END : fin de programme inconditionnelle
ENDC : fin de programme si le résultat booléen de l'instruction sur test z précédente est 1
ENDCN : fin de programme si le résultat booléen de l'instruction sur test précédente est 0
Par défaut (en mode Normal), des sorties sont générées et la scrutation suivante est lancée dès la fin d'un programme.
Si la scrutation est périodique, des sorties sont générées et la scrutation suivante est lancée dès que la fin de période est atteinte.
TWD USE 10AE
433
Instructions élémentaires
Exemples
Exemple d'instruction END inconditionnelle
%M1 %Q0.1
LD
ST
LD
ST
%M2
%Q0.2
%M1
%Q0.1
%M2
%Q0.2
...................
END
END
Exemple d'instruction END conditionnelle
%M1 %Q0.1
LD
ST
LD
ST
%M2 %Q0.2
%M1
%Q0.1
%M2
%Q0.2
%I0.2
%M2
END
%Q0.2
END
...................
LD
ENDC
LD
ST
%I0.2
%M2
%Q0.2
...................
END
Si %I0.2 = 1, fin de scrutation du programme
Si %I0.2 = 0, continue la scrutation du programme jusqu'à la nouvelle instruction
END
434
TWD USE 10AE
Instructions élémentaires
Instruction NOP
NOP
L'instruction NOP n'effectue aucune opération. Utilisez cette instruction pour « réserver » des lignes d’un programme afin de pouvoir insérer ultérieurement des instructions, sans modifier les numéros de ligne.
TWD USE 10AE
435
Instructions élémentaires
Instructions de saut
Introduction
JMP, JMPC et
JMPCN
Exemples
Les instructions de saut ont pour effet d'interrompre immédiatement l'exécution d'un programme et de le reprendre à partir de la ligne suivant la ligne contenant l'étiquette %Li (i = 1 à 16 pour un compact et de 1 à 63 pour les autres).
z z
Trois instructions de saut différentes sont disponibles : z JMP : saut de programme inconditionnel
JMPC : saut de programme si le résultat booléen de la logique précédente est 1.
JMPCN : saut de programme si le résultat booléen de la logique précédente est 0.
Exemples d'instructions de saut
000 LD %M15
001 JMPC
%L8
002 LD
003 ST
[%MW24>%MW12]
%M15
%L12
004 JMP
005 %L8 :
006 LD
007 AND
008 ST %M12
009 JMPCN %L12
010 OR
011 S
012 %L12 :
013 LD
%M12
%M13
%M11
%Q0.0
%I0.0
...............
Saut vers l'étiquette %L8 si la valeur %M15 est 1
Saut inconditionnel vers l'étiquette %L12 :
Saut vers l'étiquette %L12 si la valeur %M12 est 0
Directives
z z z z
Les instructions de saut sont interdites entre parenthèses et ne doivent pas être placées entre les instructions AND(, OR( et une parenthèse fermante ")".
L'étiquette peut uniquement être placée devant une instruction LD, LDN, LDR,
LDF ou BLK.
Le numéro de l'étiquette %Li doit être défini une seule fois dans un programme.
Le saut de programme est effectué vers une ligne de programmation en amont ou en aval. Lorsque le saut est en amont, le temps de scrutation doit être contrôlé. Un temps de scrutation trop long peut provoquer le déclenchement du chien de garde.
436
TWD USE 10AE
Instructions élémentaires
Instructions de sous-programme
Introduction
Les instructions de sous-programme déclenchent l'exécution d'un sous-programme, puis le retour vers le programme principal.
SRn, SRn: et RET
Les sous-programmes se composent de trois étapes : z L'instruction SRn appelle le sous-programme référencé par l'étiquette SRn, si le z résultat de l'instruction booléenne précédente est 1.
Le sous-programme est référencé par l'étiquette SRn:, n pouvant prendre une valeur comprise entre 0 à 15 pour TWDLCAA10DRF, TWDLCAA16DRF et 0 à z
63 pour tous les autres automates.
L'instruction RET placée à la fin du sous-programme provoque le retour au programme principal.
Exemple
Exemples d'instructions de sous-programme
000 LD %M15
001 AND %M5
002 ST
003 LD
%Q0.0
[%MW24>%MW12]
004 SR8
005 LD %I0.4
006 AND M13
007 _
008 _
009 _
010 END
011 SR8:
012 LD
013 IN
014 LD
015 ST
010 RET
1
%TM0
%TM0.Q
%M15
.....................
Saut vers le sous-programme SR8
Retour au programme principal
TWD USE 10AE
437
Instructions élémentaires
Directives
z z
Un sous-programme ne doit pas appeler un autre sous-programme.
Les instructions de sous-programme sont interdites entre parenthèses et ne doivent pas être placées entre les instructions AND(, OR( et une fermeture de parenthèse ")".
L'étiquette peut uniquement être placée devant une instruction LD ou BLK pour z z marquer le début d'une équation booléenne (ou d'un réseau booléen).
L'appel du sous-programme ne doit pas être suivi d'une instruction d'affectation.
En effet, le sous-programme risque de modifier le contenu de l'accumulateur booléen. Aussi celui risque d'avoir une valeur de retour différente de celle qu'il avait avant l'appel. Voir l'exemple suivant.
Exemple de programmation d'un sous-programme
%I0.0
LD
SR0
ST
%I0.0
%Q0.0
>>%SR0
%Q0.0
LD
ST
SR0
%I0.0
%Q0.0
438
TWD USE 10AE

Lien public mis à jour
Le lien public vers votre chat a été mis à jour.