Langage liste d'instructions. Schneider Electric Twido TWD USE 10AE
Langage liste d'instructions
14
Présentation
Objet de ce chapitre
Contenu de ce chapitre
Ce chapitre décrit la programmation à l'aide du langage liste d'instructions.
Ce chapitre contient les sujets suivants :
Sujet
Vue d'ensemble des programmes en langage liste d'instructions
Fonctionnement des listes d'instructions
Instructions en langage liste d'instructions
Utilisation de parenthèses
Instructions de pile (MPS, MRD, MPP)
Page
TWD USE 10AE
349
Langage liste d'instructions
Vue d'ensemble des programmes en langage liste d'instructions
Introduction
z z z
Un programme écrit en langage liste d'instructions est constitué d'une série d'instructions exécutées en séquence par l'automate. Chaque instruction est représentée par une seule ligne de code et se compose de trois éléments :
Numéro de ligne
Code d'instruction
Opérande(s)
Exemple de programme liste d'instructions
L'illustration suivante est un exemple de programme liste d'instructions.
0
6
7
4
5
1
2
3
LD
ST
LDN
ST
LDR
ST
LDF
ST
%I0.1
%Q0.3
%M0
%Q0.2
%I0.2
%Q0.4
%I0.3
%Q0.5
0 LD %I0.1
Opérande(s)
Code d'instruction
Numéro de ligne
Numéro de ligne
Les numéros de ligne sont générés automatiquement lorsque vous saisissez une instruction. Les lignes vides et les lignes de commentaires n'ont pas de numéro de ligne.
350
TWD USE 10AE
Code d'instruction
Opérande
Langage liste d'instructions
Le code d'instruction est un symbole désignant un opérateur qui identifie l'opération
à effectuer à l'aide des opérandes. Les opérateurs types spécifient les opérations booléennes et numériques.
Par exemple, dans l'échantillon de programme présenté ci-dessus, LD est l'abréviation de LOAD en code d'instruction. L'instruction LOAD place (charge) la valeur de l'opérande %I0.1 dans un registre interne nommé accumulateur.
Il existe deux types d'instructions de base : z Instructions de test z
Il s'agit de tests des conditions ou résultat d'équation nécessaires à l'accomplissement d'une action. Par exemple, LOAD (LD) et AND.
Instructions d'action
Elles permettent d'effectuer les actions autorisées lorsque les conditions de test sont remplies. Par exemple, des instructions d'affectation telles que STORE (ST) et RESET (R).
Un opérande est un nombre, un repère ou un symbole représentant une valeur qu'un programme peut manipuler au sein d'une instruction. Par exemple, dans l'échantillon de programme présenté ci-dessus, l'opérande %I0.1 est un repère auquel on a affecté la valeur d'une entrée de l'automate. Une instruction peut avoir z z z entre zéro et trois opérandes selon le type de code d'instruction.
Les opérandes peuvent représenter les éléments suivants : z les entrées/sorties de l'automate, telles que les capteurs, boutons poussoirs et relais ; les fonctions système prédéfinies, telles que les temporisateurs et les compteurs ; les opérations arithmétiques, logiques, de comparaisons et numériques ; les variables internes de l'automate, telles que les bits et les mots.
TWD USE 10AE
351
Langage liste d'instructions
Fonctionnement des listes d'instructions
Introduction
Les listes d'instructions ne possèdent qu'un seul opérande explicite, l'autre étant implicite. L'opérande implicite correspond à la valeur de l'accumulateur booléen. Par exemple, dans l'instruction LD %I0.1, %I0.1 est l'opérande explicite. Un opérande implicite est stocké dans l'accumulateur et se voit écrasé par la valeur de %I0.1.
Fonctionnement
Une instruction en langage liste d'instructions exécute une opération spécifiée sur le contenu de l'accumulateur et sur l'opérande explicite, puis remplace le contenu de l'accumulateur par le résultat obtenu. Par exemple, l'opération AND %I1.2 effectue un AND logique entre le contenu de l'accumulateur et celui de l'entrée 1.2 et remplace le contenu de l'accumulateur par ce résultat.
L'ensemble des instructions booléennes, à l'exception des instructions de chargement, de stockage et les instructions NOT, fonctionnent avec deux opérandes. La valeur des deux opérandes peut être True ou False et l'exécution des instructions par le programme génère une valeur unique : soit True, soit False. Les instructions de chargement placent la valeur de l'opérande dans l'accumulateur, tandis que les instructions de stockage transfèrent la valeur de l'accumulateur vers l'opérande. L'instruction NOT ne comporte aucun opérande explicite et a seulement pour effet d'inverser l'état de l'accumulateur.
Instructions en langage liste d'instructions prises en charge
Le tableau suivant représente quelques instructions en langage liste :
Type d'instruction
Instruction sur bit
Instruction sur bloc
Instruction sur mot
Exemple
LD %M10
Instruction sur programme SR5
Instruction Grafcet -*-8
Fonction
Lit le bit interne %M10
IN %TM0 Démarre le temporisateur %TM0
[%MW10 := %MW50+100] Opération d'addition
Appelle le sous-programme n°5
Etape n°8
352
TWD USE 10AE
Langage liste d'instructions
Instructions en langage liste d'instructions
Introduction
z z z
Le langage liste d'instructions comprend les types d'instructions suivants :
Instructions sur test
Instructions sur action
Instructions sur bloc fonction
Ce sous-chapitre identifie et décrit les instructions Twido de programmation en langage liste d'instructions.
Instructions sur test
Le tableau suivant décrit les instructions sur test du langage liste d'instructions.
Nom Fonction Elément graphique correspondant
LD Le résultat booléen correspond à l'état de l'opérande.
LDN
LDR
LDF
AND
ANDN
ANDR
ANDF
OR
P
N
P
N
Le résultat booléen correspond à l'état inversé de l'opérande.
Le résultat booléen prend la valeur 1 lorsque le passage de l'opérande (front montant) de 0 à 1 est détecté.
Le résultat booléen devient 1 lorsque le passage de l'opérande (front descendant) de 1
à 0 est détecté.
Le résultat booléen est égal à la logique AND entre le résultat booléen de l'instruction précédente et l'état de l'opérande.
Le résultat booléen est égal à la logique AND entre le résultat booléen de l'instruction précédente et l'état inversé de l'opérande.
Le résultat booléen est égal à la logique AND entre le résultat booléen de l'instruction précédente et la détection du front montant de l'opérande (1 = front montant).
Le résultat booléen est égal à la logique AND entre le résultat booléen de l'instruction précédente et la détection du front descendant de l'opérande (1 = front descendant).
Le résultat booléen est égal à la logique OR entre le résultat booléen de l'instruction précédente et l'état de l'opérande.
AND( Logique AND (8 niveaux de parenthèses)
TWD USE 10AE
353
Langage liste d'instructions
Nom
OR(
Elément graphique correspondant
Fonction
Logique OR (8 niveaux de parenthèses)
XOR,
XORN,
XORR,
XORF
XOR
XORN
XORR
XORF
MPS
MRD
MPP
N -
OR exclusif
Commutation vers les bobines
Négation (NOT)
Instructions sur action
Nom
ST
Le tableau suivant décrit les instructions sur action du langage liste d'instructions.
Elément graphique correspondant
Fonction
L'opérande associé prend la valeur du résultat de la zone de test.
STN
S
L'opérande associé prend la valeur inversée du résultat de la zone de test.
L'opérande associé est réglé sur 1 lorsque le résultat de la zone de test est 1.
S
R L'opérande associé est réglé sur 0 lorsque le résultat de la zone de test est 1.
JMP
R
->>%Li
Se connecte inconditionnellement à une séquence portant une étiquette, en amont ou en aval.
354
TWD USE 10AE
Langage liste d'instructions
Nom
SRn
RET
END
ENDC
ENDCN
Elément graphique correspondant
Fonction
Connexion au début d'un sous-programme.
->>%SRi
Retour d'un sous-programme.
<
RET
>
Fin de programme.
<
END
>
Fin du programme conditionné avec un résultat booléen de 1.
<
ENDC
>
Fin du programme conditionné avec un résultat booléen de 0.
<
ENDCN
>
Instructions de blocs fonction
Le tableau suivant décrit les instructions sur bloc fonction du langage liste d'instructions.
Nom
Temporisateurs, compteurs, registres, etc.
Elément graphique correspondant
Fonction
Il existe des instructions de régulation de bloc pour chaque bloc fonction.
Une forme structurée est utilisée pour raccorder directement les entrées et les sorties du bloc.
Remarque : Les sorties des blocs fonction ne peuvent pas être connectées les unes aux autres (liaisons verticales).
TWD USE 10AE
355
Langage liste d'instructions
Utilisation de parenthèses
Introduction
z z
Dans les instructions logiques AND et OR, les parenthèses permettent de spécifier des divergences dans des schémas à contacts. Les parenthèses sont associées à des instructions, de la manière suivante :
L’ouverture des parenthèses est associée à l’instruction AND ou OR.
La fermeture des parenthèses correspond à une instruction requise pour chaque parenthèse ouverte.
Exemple d’utilisation d’une instruction
AND
Les schémas suivants illustrent l’utilisation des parenthèses dans une instruction
AND : AND(...).
%I0.0
%I0.1
%Q0.0
%I0.2
%I0.0
%I0.1
%I0.2
%Q0.1
LD %I0.0
AND %I0.1
OR %I0.2
ST %Q0.0
LD %I0.0
AND( %I0.1
OR %I0.2
)
ST %Q0.1
Exemple d’utilisation d’une instruction
OR
Les schémas suivants illustrent l’utilisation des parenthèses dans une instruction
OR : OR(...).
%I0.0 %I0.1
%I0.2 %I0.3
%Q0.0
LD %I0.0
AND %I0.1
OR( %I0.2
AND %I0.3
)
ST %Q0.0
356
TWD USE 10AE
Modificateurs
Langage liste d'instructions
Le tableau suivant répertorie les modificateurs pouvant être associés à des parenthèses.
Modificateur Fonction
N
Négation
F
R
[
Exemple
AND(N ou OR(N
Front descendant AND(F ou OU(F
Front montant AND(R ou OU(R
Comparaison Reportez-vous à la rubrique
Instructions de
Imbrication de parenthèses
z z z z
Il est possible d’imbriquer un maximum de huit niveaux de parenthèses.
Veuillez appliquer les règles suivantes lors de l’imbrication de parenthèses :
Chaque parenthèse ouverte doit être obligatoirement refermée.
Les étiquettes (%Li:), les sous-programmes (SRi:), les instructions de saut (JMP) et les instructions de bloc fonction ne doivent pas être placés dans des expressions comprises entre parenthèses.
Les instructions de stockage ST, STN, S et R ne doivent pas être programmées entre parenthèses.
Les instructions de pile MPS, MRD et MPP ne peuvent pas être utilisées entre parenthèses.
Exemples d’imbrication de parenthèses
Les schémas suivants illustrent l’imbrication de parenthèses.
%I0.0
%I0.1
%I0.2
%M3
%Q0.0
LD %I0.0
AND( %I0.1
OR(N %I0.2
)
)
AND %M3
%I0.1
%I0.2 %I0.3 %I0.4
%Q0.0
%I0.5
%I0.6
%I0.7 %I0.8
LD %I0.1
AND( %I0.2
AND %I0.3
OR( %I0.5
AND %I0.6
)
AND %I0.4
OR( %I0.7
)
AND %I0.8
)
ST %Q0.0
TWD USE 10AE
357
Langage liste d'instructions
Instructions de pile (MPS, MRD, MPP)
Introduction
Les instructions de pile permettent de traiter le routage vers des bobines .Les instructions MPS, MRD et MPP utilisent une zone de stockage temporaire appelée
« pile ». Cette pile peut stocker un maximum de huit expressions booléennes.
Note : Ces instructions ne peuvent pas être utilisées dans une expression comprise entre parenthèses.
Fonctionnement des instructions de pile
Le tableau suivant décrit le fonctionnement des trois instructions de pile.
Instruction Description
MPS
MRD
MPP
Abréviation de Memory Push onto
Stack (Mise en mémoire sur la pile)
Abréviation de Memory Read from stack (Lecture mémoire depuis la pile)
Fonction
Stocke le résultat de la dernière instruction logique (contenu de l’accumulateur) en haut de la pile. Ceci a pour effet de décaler les autres valeurs de la pile vers le bas.
Lit la valeur stockée en haut de la pile et la transmet à l’accumulateur.
Abréviation de Memory Pop from Stack
(Extraction mémoire depuis la pile)
Lit la valeur située dans le haut de la pile, la transmet à l’accumulateur et déplace les autres valeurs de la pile vers le haut.
Exemples d’instructions de pile
Les schémas suivants illustrent l’utilisation d’instructions de pile.
%I0.0
%M1
MPS
MRD
MPP
%I0.1
%I0.2
%I0.3
%I0.4
%Q0.0
%Q0.1
%Q0.2
%Q0.3
ST
MRD
AND
ST
MPP
AND
ST
LD
AND
MPS
AND
ST
MRD
AND
%I0.0
%M1
%I0.1
%Q0.0
%I0.2
%Q0.1
%I0.3
%Q0.2
%I0.4
%Q0.3
358
TWD USE 10AE
Langage liste d'instructions
Exemples du fonctionnement de la pile
Les schémas suivants illustrent le fonctionnement des instructions de pile.
%I0.0 %I0.1 %I0.3
%Q0.0
%I0.4
%M10
%M0
%M1 %Q0.1
%Q0.2
%Q0.3
LD
%I0.0
MPS
AND %I0.1
MPS
AND( %I0.3
)
OR %M0
ST
MPP
%Q0.0
ANDN %M1
ST
MRD
%Q0.1
AND %I0.4
ST %Q0.2
MPP
AND %M10
ST %Q0.3
TWD USE 10AE
359
Langage liste d'instructions
360
TWD USE 10AE

Public link updated
The public link to your chat has been updated.