Vous êtes sur la page 1sur 17

Presenté par : Mr.

A OUTAYEB

Definition
• C'est un langage textuel, qui est le plus proche du comportement interne de l'automate
• Chaque instruction correspond à une étape de l'exécution du programme par la CPU.
• chacune spécifiant un code opération suivi d'un opérande.
• Le langage liste d’instruction permet de transcrire sous forme de liste :
 Un schéma à contact
 Un logigramme
 Équations booléennes
 Un grafcet
 Organigramme ( Algorithme )

mot d’état et ces FLAGS

L’état logique
C’est l’état de la variable binaire interrogée, la variable est à « 1 » ou
à«0»

La première interrogation
Ce flag indique le début d’une opération booléenne, sinon on combinerait
l’équation en cours avec le résultat de l’équation précédente. Les instructions qui
limitent le RLG sont:
= Assignation
S Mise à « 1 »
R Mise à « 0 »
SE, SV, SI, SA, SS Démarrage d’une temporisation
ZV,ZR Comptage ou décomptage d’un compteur
Le RLG (Résultat Logique)
Ce bit mémorise le résultat d’un test et permet de réaliser une combinaison avec
l’instruction suivante. Quelques instructions sur le résultat logique :
SAVE Sauvegarde le Résultat logique dans le bit RB
SET Mise à 1 inconditionnel du RLG
CLR Mise à 0 inconditionnel du RLG
NOT Complément du RLG

Les Operations de Base sur bits


FONCTION ET

ETAT RLG /PI

U E 0.0 1 1 1
U E 0.1 1 1 1
= A 4.0 1 1 0

FONCTION OU

ETAT RLG /PI

O E0.0 1 1 1
O E 0.1 0 1 1
= A 4.0 1 1 0
OU
Ce flag permet de mémoriser le résultat de la combinaison précédente pour
la combiner en OU avec la combinaison suivante.

OU ETAT RLG /PI


U E 0.0 0 1 1 1
U E 0.1 0 0 0 1
O 0 1 0 0 On Mémorise le RLG
U E 0.2 0 0 0 1 Le RLG se Combine avec le OU
U E 0.3 0 0 0 1
= A 4.0 0 0 0 0 = limit RLG, le OU retombe a ‘0’

FONCTION ET AVANT OU
La fonction ET avant OU est comparable à un montage en parallèle de plusieurs
contacts montés en série du schéma des circuits.

FONCTION OU AVANT ET

La fonction OU avant ET peut être comparée à un montage en série de plusieurs


contacts montés en parallèle du schéma des circuits. La sortie A1.0 n'affiche l'état
logique 1 que si dans chacune des deux branches parallèles au moins un contact a
l'état logique 1.
TEST A 0 DE L'ETAT DU SIGNAL

FONCTION OU EXCLUSIF

FONCTION OU NON EXCLUSIF


MISE A « ZERO » PRIORITAIRE

MISE A « UN » PRIORITAIRE

FRONT MONTANT
(FP)
FRONT DESCENDANT (FN)

Les Différents Types de Données élémentaires

Les Registres ACCUMULATEURS


Les accumulateurs sont des registres de 32 bits permettant de traiter des octets,
mots ou doubles mots. Il est en outre possible de charger et de combiner des
opérandes dans les ACCU. Le résultat de l’opération se trouve toujours dans
ACCU1, les automates disposent de 2 à 4 ACCU de 16 à 64 bits suivant le modèle
d’UC.

Les Registres ACCUMULATEURS


Les accumulateurs sont des registres permettant de traiter des octets, mots ou doubles
mots. Il est en outre possible de charger et de combiner des opérandes dans les ACCU. Le
résultat de l’opération se trouve toujours dans ACCU1. Les automates disposent de 2 à 4
ACCU de 16 à 64 bits suivant le modèle d’UC.
OPERATIONS DE CHARGEMENT ET DE TRANSFERT
Des opérations de chargement et de transfert permettent l'échange d'informations par
octets, mots ou double mots entre la mémoire image des entrées et sorties, les
mémoires de temporisations, compteurs et mémentos ainsi que les blocs de données.

Exemple

LIST
L EW 0
T AW 4
L +5
T AW 6
BE
La Temporisation en Langage LIST
 Diverses temporisations sont souvent utilisées dans la réalisation de tâches
d'automatisation. Ces Temporisations sont intégrées dans l'unité centrale de
l'automate programmable.

 Les automates programmables SIMATIC disposent d'un nombre défini de


temporisations qui varie en fonction de la CPU. Un mot de 16 bits est affecté à
chaque temporisation.

 Il existe 5 différents types de temporisations: SI, SV, SE, SS et SA.


 Les temporisations peuvent se représenter sous forme de bobine ou
bloc
EN BOBINE DE TEMPORISATION (SV/SE/SS/SA)

- Interrogation de l'état du signal


- Chargement du temps de déclenchement dans l'accu 1
- Déclenchement ( SI, SV, SE ou SA)
U E 0.0
L S5T#2S
SE T0

EN BLOC DE TEMPORISATION

FORME D'IMPULSION (SI) IMPULSION PROLONGEE (SV)

RETARD A LA MONTEE (SE) RETARD A LA RETOMBEE (SA)


Le Comptage en Langage LIST
 Dans l'automatisation, les fonctions de comptage sont requises pour l'acquisition
du nombre de pièces ou d'impulsions, pour la lecture de temporisations et de
distances. Des compteurs sont déjà intégrés dans le SIMATIC S7. Ces compteurs
ont leur zone de mémoire réservée. La plage de valeurs du compteur est comprise
entre 0 et 999.

 Il existe 3 différents types de compteurs : ZAHLER, Z_VORW et Z_RUECK


 Les compteurs peuvent se représenter sous forme de bobine ou bloc

EN BOBINE DE COMPTAGE (SZ/ZV/ZR)

- Interrogation de l'état du signal


- Chargement de la valeur de comptage
- Initialisation du compteur avec la valeur chargée
Cette fonction n'est traitée qu'après un front
montant de l'interrogation.
U E 0.2
L C#5
S Z0
U E 0.0
ZV Z0

U E 0.1
ZR Z0
EN BLOC DE COMPTAGE

COMPTEUR Z_VORW COMPTEUR Z_RUECK


COMPTEUR ZAEHLER

Les Indicateurs BI1 et BI0


Les BI1 et BI0 mettent à disposition les résultats des opérations suivantes :
- Operations de comparaison
- Operations combinatoires sur Bits
- Operations combinatoires sur Mots
- Operations arithmétiques
- Operations de décalage et de rotation
Résultat Binaire (RB)
Le bit RB sert à transmettre le résultat du traitement d’instruction list aux instructions
suivantes à traiter. Les instructions qui sauvegarde le RLG dans RB sont : SAVE,
SPBB, SPBNB

Les Bits de débordements (DEB), (DM)


DEB : ce flag passe à 1 suite à une opération arithmétique ou une opération de
comparaison avec nombres à virgule flottante lorsqu’apparait une erreur telle que
débordement, opération illicite , comparaison illicite, le bit OV passe à 0 une fois
l’erreur éliminée,
DM : débordement mémorisé, ce flag reste mémorisé et indique si une erreur s’est
produite dans l’une des opérations exécutées précédemment.

OPERATIONS SUR LES MOTS


Les opérations combinatoires sur mots combinent deux mots (16 bits) ou deux
doubles mots (32 bits) bit par bit selon les combinaisons booléennes.
Les opérations combinatoires sur mots sont :
UW ET mot
OW OU mot
XOW OU exclusif mot
UD ET double mot
OD OU double mot
XOD OU exclusif double mot

Les bits BI1 et BI0 indiquent la relation égale à 0 , diffèrent de 0

Exemple 1
Exemple 2
L EW20
L EW20
L EW22
OW W#16#0FFF
OW
T AW0
T MW8
OPERATIONS DE COMPARAISON
Les opérations de comparaison comparent le contenu de l'accumulateur 2 à celui de
l'accumulateur 1 selon les types de comparaison suivants :

== ACCU 2 est égal à ACCU 1


<> ACCU 2 est différent de ACCU 1
> ACCU 2 est supérieur à ACCU 1
< ACCU 2 est inférieur à ACCU 1
>= ACCU 2 est supérieur ou égal à ACCU 1
<= ACCU 2 est inférieur ou égal à ACCU 1

Si le RLG égale 1, le résultat de comparaison est vrai. Les bits BI1 et BI0 indiquent
la relation "inférieur à", "égal à" ou "supérieur à".
les opérations de comparaison sont :
?I Comparer entiers de 16 Bits
?D Comparer entiers de 32 Bits
?R Comparer réels de 32 Bits
Exemple

LIST

L EW 0
L EW 2
>I
= A 4.7

OPERATIONS ARITHMETIQUES sur des nombres entiers


Les opérations arithmétiques combinent le contenu des accumulateurs 1 et 2. Le résultat
est rangé dans l’accumulateur 1. Le contenu de l’accumulateur 2 reste inchangé.

Ils permettent d’exécuter les fonctions arithmétiques suivantes :

+I +D Additionner accumulateurs 2 et 1
-I -D Soustraire accumulateur 1 de l’accumulateur 2
/I /D Diviser accumulateur 2 par accumulateur 1
*I *D Multiplier accumulateur 2 par accumulateur 1
+ Additionner constante entière (16,32bits) à l’accumulateur 1
MOD Reste de division entière (32 bits)
Exemple 1 Exemple 2
L EW10 L ED10
L MW14 L MD14
+I MOD
+ 25 T MD20
T MW20

OPERATIONS ARITHMETIQUES sur des nombres réels


Les opérations arithmétiques sur nombres à virgule flottante permettent d’exécuter les
fonctions arithmétiques sur deux nombres réels :
+R Additionner accumulateurs 2 et 1
-R Soustraire accumulateur 1 d'accumulateur 2
*R Multiplier accumulateur 2 par accumulateur 1
/R diviser accumulateur 2 par accumulateur 1

Les opérations ci-dessous permettent d’exécuter les fonctions arithmétiques sur un nombre
réel :
ABS Valeur absolue d’un nombre réel SIN Sinus d’un angle comme nombre réel
SQR Carre d’un nombre réel COS Cosinus d’un angle comme nombre réel
SQRT Racine carrée d’un nombre réel TAN Tangente d’un angle comme nombre réel
EXP Valeur exponentielle d’un nombre réel ASIN Arc sinus d’un angle comme nombre réel
LN Logarithme naturel d’un nombre réel ACOS Arc sinus d’un angle comme nombre réel
ATAN Arc tangente d’un angle comme nombre réel

Exemple 1 Exemple 2
L MD0
L MD10
SQR
SIN
UN OV
T MD20
SPB OK
BEA
OK: T MD20
OPERATIONS DE CONVERSION
Les opérations de conversion permettent de convertir des nombres décimaux codés
binaires et des nombres entiers en d’autres types de nombres :
BTI Convertir DCB en entier de 16 bits
ITB Convertir entier de 16 bits en DCB
BTD Convertir DCB en entier de 32 bits
ITD Convertir entier de 16 bits en entier de 32 bits
DTB Convertir entier de 32 bits en DCB
DTR Convertir entier de 32 bits en réel

Exemple

LIST
L MW10
BTI
T MW20

Les opérations suivantes permettent de réaliser l’inversion de nombres entier et à


virgule flottante :

NEGI Complément à 2 d'entier de 16 bits


NEGD Complément à 2 d'entier de 32 bits
NEGR Inverser nombre à virgule flottante

Exemple

LIST
L EW8
NEGI
T MW10

Les opérations suivantes permettent de modifier l’ordre des octets dans le mot de poids
faible de l’accumulateur 1 ou dans l’accumulateur 1 entier :
TAW Modifier l'ordre dans l'accumulateur 1-L (16 bits)
TAD Modifier l'ordre dans l'accumulateur 1 (32 bits)
Exemple

LIST
L MD10
TAD
T MD20

Les opérations suivantes permettent de convertir le nombre réel de 32bits figurant


dans l’accu 1 en un nombre entier de 32 bits (entier double).
Les différentes opérations se distinguent par leur façon d’arrondir :
RND Arrondir à l'entier
RND+ Arrondir à l’entier supérieur
RND- Arrondir à l’entier inférieur

Exemple
LIST
L MD10
RND+
T MD20

OPERATION DE SAUT
Les opérations de saut permettent de gérer le déroulement de votre programme, elles
interrompent le déroulement linéaire de votre programme afin de reprendre son
exécution à un endroit diffèrent

Les opérations de saut suivantes permettent d’interrompre la séquence normale de votre


programme de manière inconditionnelle :

SPA Saut inconditionnel

Les opérations de saut suivantes interrompent la séquence normale dans votre programme
selon le résultat logique RLG généré par l’instruction précédente :
SPB Saut si RLG est 1
SPBN Saut si RLG est 0
SPBB Saut si RLG est 1 avec RB
SPBNB saut si RLG est 0 avec RB
Exemple

LIST
U E 1.0
U E 1.2
SPB SAUT
L EW8
T MW22
SAUT: U E 2.1

Les opérations de saut suivantes interrompent la séquence normale dans votre programme
selon le résultat d’un calcul :
SPZ Saut si égal à 0
SPN Saut si diffèrent de 0
SPP Saut si plus
SPM Saut si moins
SPPZ Saut si supérieur ou égal à 0
SPMZ Saut si inférieur ou égal à 0
SPU Saut si illicite

Exemple
LIST
L EW8
L MW12
-I
SPP POS
UN M 4.0
S M 4.0
SPA SUIV
POS: UN M 4.1
S M 4.1
SUIV: NOP 0

OPERATION DE REPRISE DE SEQUENCE


L’instruction (LOOP) permet plusieurs exécutions consécutives d'une même partie de
programme. Le nombre chargé dans l’accumulateur 1 sera décrémenté de 1. Ensuite la
valeur est testée à <>0. Si la valeur diffère de '0', un saut est effectué au repère de
l'opération LOOP, sinon l'opération suivante est exécutée.
Exemple
LIST
L 5
NEXT: T MB 10
// partie du programme à répéter
L MB 10
LOOP NEXT
OPERATIONS SUR LES ACCUMULATEURS
Ils permettent de traiter le contenu d’un ou plusieurs accumulateurs
TAK Permuter accumulateur 1 et accumulateur 2
PUSH CPU avec deux accumulateurs
INC Incrémenter accumulateur 1-L-L (0-255)
PUSH CPU avec quatre accumulateurs
DEC Décrémenter accumulateur 1-L-L
POP CPU avec deux accumulateurs
POP CPU avec quatre accumulateurs

Exemple 1 Exemple 2

L MB22 L MW10
INC 1 L MW12
T MB22 >I
SPB SUIV
TAK
SUIV: -I
T MW14

Vous aimerez peut-être aussi