Vous êtes sur la page 1sur 570

Automate

Logix5000 - Jeu
d'instructions
1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx,
PowerFlex 700S

Manuel de rfrence

Informations importantes
destines l'utilisateur

En raison de la diversit des utilisations des produits dcrits dans le


prsent manuel, les personnes qui en sont responsables doivent
s'assurer que toutes les mesures ont t prises pour que l'application
et l'utilisation des produits soient conformes aux exigences de
performance et de scurit, ainsi qu'aux lois, rglements, codes et
normes en vigueur. La socit Allen-Bradley ne saurait tre tenue pour
responsable des dommages indirects ou rsultant de l'utilisation de
ces produits.
Les illustrations, schmas et exemples de programmes contenus dans
cette publication sont prsents titre indicatif seulement. En raison
du nombre important de variables et d'impratifs associs chaque
installation, la socit Allen-Bradley ne saurait tre tenue pour
responsable ni tre redevable (y compris en matire de proprit
intellectuelle) des suites d'utilisation relle base sur les exemples et
schmas prsents dans ce manuel.
La publication SGI-1.1, Safety Guidelines for the Application,
Installation and Maintenance of Solid-State Control (disponible
auprs de votre agence commerciale Allen-Bradley), dcrit certaines
diffrences importantes entre les quipements lectroniques et les
quipements lectromagntiques, qui devront tre prises en compte
lors de l'application de ces produits comme indiqu dans la prsente
publication.
Toute reproduction totale ou partielle du prsent manuel sans
autorisation crite de la socit Rockwell Automation est interdite.
Des remarques sont utilises tout au long de cette publication pour
attirer votre attention sur les mesures de scurit prendre en
compte. Les messages suivants vous aident identifier un danger
potentiel, l'viter et en discerner les consquences.
ATTENTION

!
IMPORTANT

Actions ou situations risquant d'entraner des


blessures pouvant tre mortelles, des dgts
matriels ou des pertes financires.

Informations particulirement importantes dans le


cadre de l'utilisation du produit.

Allen-Bradley, ControlLogix, DH+, Logix5000, Logix5550, PLC-2, PLC-3, PLC-5, RSLinx, RSLogix 5000, RSNetWorx et SLC sont des
marques commerciales de Rockwell Automation.
ControlNet est une marque commerciale de ControlNet International, Ltd.
Ethernet est une marque commerciale de Digital Equipment Corporation, Intel et Xerox Corporation.

Assistance Rockwell
Automation

Avant de contacter l'assistance technique Rockwell Automation,


nous vous conseillons de lire d'abord les informations de
dpannage prsentes dans ce manuel.
Si le problme persiste, appelez votre reprsentant Rockwell
Automation ou contactez Rockwell Automation de l'une des faons
suivantes :
Tlphone

Internet

Etats-Unis/
Canada

+1.440.646.5800

Hors Etats-Unis/
Canada

Vous pouvez obtenir le numro de tlphone pour


votre pays par Internet :
1. Allez sur le site http://www.ab.com
2. Cliquez sur Product Support
(http://support.automation.rockwell.com)
3. Sous Support Centers, cliquez sur Contact
Information

1. Allez sur le site http://www.ab.com


2. Cliquez sur Product Support
(http://support.automation.rockwell.com)

Notes :

Sommaire des modifications

Introduction

Ce document contient des informations actualises et nouvelles.

Modifications

Les modifications gnrales apportes ce document sont les


suivantes :
ce document comprend prsent le texte structur, en plus de
la logique relais et des blocs fonctionnels ;
une liste, en dbut de chaque chapitre, indique les langages
dans lesquels les instructions dcrites dans le chapitre sont
disponibles ;
la table d'excution de chaque instruction comprend prsent
une condition de post-scrutation.
Ce document inclut les modifications suivantes :
Modification

Voir le chapitre

Les instructions boolennes AND (BAND), OR (BOR), XOR (BXOR) et


NOT (BNOT) ont t incluses dans ce manuel pour que les instructions
sur bits et les instructions logiques soient runies dans un seul
manuel. Elles ont t supprimes de la publication 1756-RM006,
Logix5000 Controllers Process Control and Drives Instruction Set
Reference Manual.

La source d'une instruction TAILLE (SIZE) peut dsormais tre un point


de tableau. Vous n'avez plus besoin de prciser le premier lment du
tableau.

L'instruction Saut vers sous-programme externe (Jump to External


Subroutine - JXR) a t ajoute : elle est prise en charge uniquement
par les automates SoftLogix5800.

10

Les instructions Fin de transition (End of Transition - EOT), Pause SFC


(SFC Pause - SFP) et
Positionnement SFC (SFC Reset - SFR) ont t ajoutes.

10

L'annexe A comprend des informations supplmentaires sur le


verrouillage des instructions IREF et OREF. Les instructions IREF et
OREF peuvent utiliser le mme nom de point sans changer les valeurs
de IREF pendant une scrutation.

Une nouvelle annexe explique comment programmer en texte


structur.

Publication 1756-RM003F-FR-P - Mai 2002

Sommaire des modifications

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

O trouver une instruction

Utilisez cette section pour trouver des informations sur les instructions
Logix (les instructions grises sont disponibles dans d'autres manuels).
Cette section indique galement quels langages de programmation
sont disponibles pour les instructions.

Si le tableau indique

L'instruction se trouve dans

un numro de page

ce manuel

une commande de procd

Logix5000 Controllers Process Control and Drives Instruction Set


Reference Manual (publication 1756-RM006)

une commande de mouvement

Logix5000 Controllers Motion Instruction Set Reference Manual


(publication 1756-RM007)

Instruction

Emplacement

Langages

Instruction

Emplacement

Langages

ABL

16-5

logique relais
texte structur

AVE

7-36

logique relais

AWA

16-23

ABS

5-29

logique relais
texte structur
bloc fonctionnel

logique relais
texte structur

AWT

16-27

logique relais
texte structur

ACB

16-8

logique relais
texte structur

BAND

6-34

texte structur
bloc fonctionnel

ACL

16-10

logique relais
texte structur

BNOT

6-42

texte structur
bloc fonctionnel

ACOS

13-10

texte structur

BOR

6-37

ACS

13-10

logique relais
bloc fonctionnel

texte structur
bloc fonctionnel

BRK

11-4

logique relais

ADD

5-6

logique relais
texte structur
bloc fonctionnel

BSL

8-2

logique relais

BSR

8-5

logique relais

AFI

10-22

logique relais

BTD

6-11

logique relais

AHL

16-12

logique relais
texte structur

BTDT

6-14

texte structur
bloc fonctionnel

ALM

une commande
de procd

texte structur
bloc fonctionnel

BTR (type MSG)

3-2

logique relais
texte structur

AND

6-22

logique relais
texte structur
bloc fonctionnel

BTW (type MSG)

3-2

logique relais
texte structur

ARD

16-16

logique relais
texte structur

BXOR

6-40

texte structur
bloc fonctionnel

ARL

16-19

logique relais
texte structur

CLR

6-17

logique relais
texte structur

ASIN

13-8

texte structur

CMP

4-2

logique relais

ASN

13-8

logique relais
bloc fonctionnel

CONCAT

17-3

logique relais
texte structur

ATAN

13-12

texte structur

COP

7-26

logique relais
texte structur

ATN

13-12

logique relais
bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction

Emplacement

Langages

Instruction

Emplacement

Langages

COS

13-4

logique relais
texte structur
bloc fonctionnel

FIND

17-7

logique relais
texte structur

FLL

7-32

logique relais

CPS

7-26

logique relais
texte structur

FOR

11-2

logique relais

CPT

5-2

logique relais

FRD

15-9

logique relais
bloc fonctionnel

CTD

2-25

logique relais

FSC

7-18

logique relais

CTU

2-22

logique relais

GEQ

4-11

CTUD

2-29

texte structur
bloc fonctionnel

logique relais
texte structur
bloc fonctionnel

D2SD

une commande
de procd

texte structur
bloc fonctionnel

GRT

4-15

D3SD

une commande
de procd

texte structur
bloc fonctionnel

logique relais
texte structur
bloc fonctionnel

GSV

3-30

DDT

12-9

logique relais

logique relais
texte structur

DEDT

une commande
de procd

texte structur
bloc fonctionnel

HLL

une commande
de procd

texte structur
bloc fonctionnel

DEG

15-2

logique relais
texte structur
bloc fonctionnel

HPF

une commande
de procd

texte structur
bloc fonctionnel

INSERT

17-9

logique relais
texte structur

logique relais
texte structur

INTG

une commande
de procd

texte structur
bloc fonctionnel

une commande
de procd

texte structur
bloc fonctionnel

JKFF

une commande
de procd

texte structur
bloc fonctionnel

une commande
de procd

texte structur
bloc fonctionnel

JMP

10-2

logique relais

DIV

5-15

logique relais
texte structur
bloc fonctionnel

JSR

10-4

logique relais
texte structur
bloc fonctionnel

DTOS

18-7

logique relais
texte structur

JXR

10-13

logique relais

LBL

10-2

logique relais

DTR

12-16

logique relais

LDL2

EOT

10-24

logique relais
texte structur

une commande
de procd

texte structur
bloc fonctionnel

LDLG

EQU

4-7

logique relais
texte structur
bloc fonctionnel

une commande
de procd

texte structur
bloc fonctionnel

LEQ

4-19

logique relais
texte structur
bloc fonctionnel

LES

4-23

logique relais
texte structur
bloc fonctionnel

LFL

8-20

logique relais

LFU

8-26

logique relais

LIM

4-27

logique relais
bloc fonctionnel

DELETE
DERV
DFF

17-5

ESEL

une commande
de procd

texte structur
bloc fonctionnel

FAL

7-7

logique relais

FBC

12-2

logique relais

FFL

8-8

logique relais

FFU

8-14

logique relais

FGEN

une commande
de procd

texte structur
bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction

Emplacement

Langages

Instruction

Emplacement

Langages

LN

14-2

logique relais
texte structur
bloc fonctionnel

MCD

une commande
de mouvement

logique relais
texte structur

MCR

10-18

logique relais

LOG

14-4

logique relais
texte structur
bloc fonctionnel

MDF

une commande
de mouvement

logique relais
texte structur

LOWER

18-13

logique relais
texte structur

MDO

une commande
de mouvement

logique relais
texte structur

LPF

une commande
de procd

texte structur
bloc fonctionnel

MDOC

une commande
de mouvement

logique relais
texte structur

MAAT

une commande
de mouvement

logique relais
texte structur

MDR

une commande
de mouvement

logique relais
texte structur

MAFR

une commande
de mouvement

logique relais
texte structur

MDW

une commande
de mouvement

logique relais
texte structur

MAG

une commande
de mouvement

logique relais
texte structur

MEQ

4-33

logique relais
texte structur
bloc fonctionnel

MAH

une commande
de mouvement

logique relais
texte structur

MGS

une commande
de mouvement

logique relais
texte structur

MAHD

une commande
de mouvement

logique relais
texte structur

MGSD

une commande
de mouvement

logique relais
texte structur

MAJ

une commande
de mouvement

logique relais
texte structur

MGSP

une commande
de mouvement

logique relais
texte structur

MAM

une commande
de mouvement

logique relais
texte structur

MGSR

une commande
de mouvement

logique relais
texte structur

MAOC

une commande
de mouvement

logique relais
texte structur

MID

17-11

logique relais
texte structur

MAPC

une commande
de mouvement

logique relais
texte structur

MINC

une commande
de procd

texte structur
bloc fonctionnel

MAR

une commande
de mouvement

logique relais
texte structur

MOD

5-19

MAS

une commande
de mouvement

logique relais
texte structur

logique relais
texte structur
bloc fonctionnel

MOV

6-3

logique relais

MASD

une commande
de mouvement

logique relais
texte structur

MRAT

une commande
de mouvement

logique relais
texte structur

MASR

une commande
de mouvement

logique relais
texte structur

MRHD

une commande
de mouvement

logique relais
texte structur

MATC

une commande
de mouvement

logique relais
texte structur

MRP

une commande
de mouvement

logique relais
texte structur

MAVE

une commande
de procd

texte structur
bloc fonctionnel

MSF

une commande
de mouvement

logique relais
texte structur

MAW

une commande
de mouvement

logique relais
texte structur

MSG

3-2

logique relais
texte structur

MAXC

une commande
de procd

texte structur
bloc fonctionnel

MSO

une commande
de mouvement

logique relais
texte structur

MCCP

une commande
de mouvement

logique relais
texte structur

MSTD

une commande
de procd

texte structur
bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction

Emplacement

Langages

Instruction

Emplacement

Langages

MUL

5-12

logique relais
texte structur
bloc fonctionnel

POSP

une commande
de procd

texte structur
bloc fonctionnel

RAD

15-4

MUX

une commande
de procd

bloc fonctionnel

logique relais
texte structur
bloc fonctionnel

MVM

6-5

logique relais

RES

2-33

logique relais

MVMT

6-8

texte structur
bloc fonctionnel

RESD

une commande
de procd

texte structur
bloc fonctionnel

NEG

5-26

logique relais
texte structur
bloc fonctionnel

RET

10-4 et 11-5

logique relais
texte structur
bloc fonctionnel

NEQ

4-38

logique relais
texte structur
bloc fonctionnel

RLIM

une commande
de procd

texte structur
bloc fonctionnel

RMPS

NOP

10-23

logique relais

une commande
de procd

texte structur
bloc fonctionnel

NOT

6-31

logique relais
texte structur
bloc fonctionnel

RTO

2-9

logique relais

RTOR

2-19

texte structur
bloc fonctionnel

RTOS

18-9

logique relais
texte structur

SBR

10-4

logique relais
texte structur
bloc fonctionnel

SCL

une commande
de procd

texte structur
bloc fonctionnel

NTCH

une commande
de procd

texte structur
bloc fonctionnel

ONS

1-11

logique relais

OR

6-25

logique relais
texte structur
bloc fonctionnel

OSF

1-16

logique relais

OSFI

1-20

texte structur
bloc fonctionnel

SCRV

une commande
de procd

texte structur
bloc fonctionnel

OSR

1-14

logique relais

SEL

bloc fonctionnel

OSRI

1-18

texte structur
bloc fonctionnel

une commande
de procd

SETD

une commande
de procd

texte structur
bloc fonctionnel

SFP

10-26

logique relais
texte structur

OTE

1-6

logique relais

OTL

1-7

logique relais

OTU

1-9

logique relais

SFR

10-28

PI

une commande
de procd

texte structur
bloc fonctionnel

logique relais
texte structur

SIN

13-2

PID

12-19

logique relais
texte structur

logique relais
texte structur
bloc fonctionnel

PIDE

une commande
de procd

texte structur
bloc fonctionnel

SIZE

7-52

logique relais
texte structur

PMUL

une commande
de procd

texte structur
bloc fonctionnel

SNEG

une commande
de procd

texte structur
bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction

Emplacement

Langages

Instruction

Emplacement

Langages

SOC

une commande
de procd

texte structur
bloc fonctionnel

UID

10-20

logique relais
texte structur

SQI

9-2

logique relais

UIE

10-20

SQL

9-10

logique relais

logique relais
texte structur

SQO

9-6

logique relais

UPDN

une commande
de procd

texte structur
bloc fonctionnel

SQR

5-23

logique relais
bloc fonctionnel

UPPER

18-11

logique relais
texte structur

SQRT

5-23

texte structur

XIC

1-2

logique relais

SRT

7-41

logique relais
texte structur

XIO

1-4

logique relais

SRTP

une commande
de procd

texte structur
bloc fonctionnel

XOR

6-28

logique relais
texte structur
bloc fonctionnel

SSUM

une commande
de procd

texte structur
bloc fonctionnel

XPY

14-6

SSV

3-30

logique relais
texte structur

logique relais
texte structur
bloc fonctionnel

STD

7-46

logique relais

STOD

18-3

logique relais
texte structur

STOR

18-5

logique relais
texte structur

SUB

5-9

logique relais
texte structur
bloc fonctionnel

SWPB

6-18

logique relais
texte structur

TAN

13-6

logique relais
texte structur
bloc fonctionnel

TND

10-16

logique relais

TOD

15-6

logique relais
bloc fonctionnel

TOF

2-5

logique relais

TOFR

2-16

texte structur
bloc fonctionnel

TON

2-2

logique relais

TONR

2-13

texte structur
bloc fonctionnel

TOT

une commande
de procd

texte structur
bloc fonctionnel

TRN

15-11

logique relais
bloc fonctionnel

TRUNC

15-11

texte structur

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Introduction

Ce manuel fait partie d'une srie de documents d'instructions sur les


produits Logix.

Tche/Objet

Documents

Programmation de l'automate pour les


applications squentielles

Automate Logix5000 - Jeu d'instructions - Manuel de rfrence


(publication 1756-RM003)

Vous tes dans ce document

Programmation de l'automate pour les


Logix5000 Controllers Process Control and Drives Instructions Reference Manual
applications de procd ou de variation de vitesse (publication 1756-RM006)
Programmation de l'automate pour les
applications de commande de mouvement

Logix5000 Controllers Motion Instructions Reference Manual


(publication 1756-RM007)

Importation d'un fichier texte ou de points dans


un projet

Logix5000 Controllers Import/Export Reference Manual (publication 1756-RM084)

Exportation d'un projet ou de points dans un


fichier texte
Conversion d'une application PLC-5 ou SLC 500 en Automate Logix5550, conversion d'un programme PLC-5/SLC 500 en programme
une application Logix5000
Logix5550 - Manuel de rfrence (publication 1756-RM085)

A qui sadresse ce manuel

Ce document fournit des informations aux programmeurs sur les


instructions disponibles avec un automate Logix. Vous devez savoir
comment un automate Logix enregistre et traite les donnes.
Si vous tes un programmeur novice, lisez toutes les informations
relatives une instruction avant de l'utiliser. Les programmeurs
expriments peuvent se reporter aux informations sur les instructions
pour vrifier des dtails.

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Objet de ce manuel

Ce manuel fournit une description de chaque instruction dans le


format suivant :

Cette section

Fournit ce type d'information

Nom de l'instruction

identifie l'instruction
dtermine si l'instruction est une instruction d'entre ou de sortie

Oprandes

liste tous les oprandes de l'instruction


si disponible en logique relais, dcrit les oprandes
si disponible en texte structur, dcrit les oprandes
si disponible en bloc fonctionnel, dcrit les oprandes
Les connecteurs affichs sur un bloc fonctionnel par dfaut sont ceux dfinis par
dfaut. Le tableau des oprandes rpertorie tous les connecteurs possibles pour
un bloc fonctionnel.

Structure de l'instruction

indique les bits et les valeurs d'tat de la commande de l'instruction, s'il y en a

Description

dcrit l'utilisation de l'instruction


dfinit les diffrences entre l'activation et la dsactivation de l'instruction, si ncessaire

Indicateurs d'tat arithmtique

dtermine si l'instruction a un effet sur les indicateurs d'tat arithmtique


voir l'annexe Attributs communs

Conditions d'erreur

dtermine si l'instruction gnre des dfauts mineurs ou majeurs


le cas chant, dfinit le type et le code de dfaut

Excution

dfinit le fonctionnement de l'instruction

Exemple

fournit au moins un exemple de programmation pour chaque langage de programmation


disponible
comprend une description expliquant chaque exemple

Les icnes suivantes aident identifier les informations propres un


langage.
Cette icne

Indique ce langage de programmation


logique relais

texte structur

bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Informations communes
toutes les instructions

Conventions
et terminologie

Le jeu d'instructions de l'automate Logix5000 a des attributs communs.


Pour des informations sur

Voir cette annexe

les attributs communs

l'annexe Attributs communs dfinit :


les indicateurs d'tat arithmtique ;
les types de donnes ;
les mots-cls.

les attributs de bloc


fonctionnel

l'annexe Attributs de bloc fonctionnel dfinit :


les commandes Programme et Oprateur ;
les modes de temporisation.

Activer et effacer
Dans ce manuel, les termes activer et effacer sont utiliss pour
dfinir l'tat des bits (boolens) et leurs valeurs (non-boolennes).
Ce terme

Indique que

activer

le bit est mis 1 (ON)


une valeur est attribue tout nombre autre que zro

effacer

le bit est mis 0 (OFF)


tous les bits d'une valeur sont mis 0

Si un oprande ou un paramtre accepte plus d'un type de donnes,


les types de donnes en gras indiquent les types de donnes
optimaux. Une instruction est excute plus rapidement et demande
moins de mmoire si tous les oprandes de l'instruction utilisent le
mme type de donnes optimal, gnralement DINT ou REAL.

Condition de ligne de logique relais


Lautomate value les instructions relais selon la condition de la
ligne prcdant linstruction (tat d'entre de la ligne). Selon la
condition dentre de la ligne et linstruction, lautomate rgle la
condition de la ligne suivant linstruction (tat de sortie de la ligne), ce
qui affecte toutes les instructions qui suivent.

instruction dentre

tat d'entre
de la ligne

instruction de sortie

tat de sortie
de la ligne

Si l'tat dentre de la ligne vers une instruction dentre est vrai,


lautomate value linstruction et rgle l'tat de sortie de la ligne selon
le rsultat de linstruction. Si l'instruction est vraie, l'tat de sortie de la
Publication 1756-RM003F-FR-P - Mai 2002

Prface

ligne est vrai ; si l'instruction est fausse, l'tat de sortie de la ligne est
faux.
L'automate pr-scrute galement les instructions. La pr-scrutation est
une scrutation spciale de tous les sous-programmes dans l'automate.
L'automate scrute tous les sous-programmes principaux et secondaires
pendant la pr-scrutation, mais ignore les sauts qui pourraient viter
l'excution d'instructions. L'automate excute toutes les boucles FOR
et les appels de sous-programmes. Si un sous-programme est appel
plus d'une fois, il est excut chaque fois qu'il est appel. L'automate
utilise la pr-scrutation et les instructions de logique relais pour
rinitialiser les E/S non rmanentes et les valeurs internes.
Pendant la pr-scrutation, les valeurs d'entres ne sont pas actualises
et les sorties ne sont pas crites. Les conditions suivantes gnrent
une pr-scrutation :
le passage du mode Programme (Program) au mode Excution
(Run) ;
le passage automatique au mode Excution partir d'une
condition de dmarrage.
La pr-scrutation d'un programme ne se fait pas si :
le programme est lanc alors que l'automate est dj en mode
Excution ;
le programme n'est pas lanc lorsque l'automate passe en mode
Excution (Run).

Etats de bloc fonctionnel


L'automate value les instructions de bloc fonctionnel en fonction de
l'tat de diverses conditions.
Condition possible

Description

pr-scrutation

La pr-scrutation des sous-programmes de blocs fonctionnels est la mme que pour les sous-programmes
en logique relais. La seule diffrence rside dans le paramtre EnableIn de chaque instruction de bloc
fonctionnel, qui est effac pendant la pr-scrutation.

premire scrutation de
l'instruction

La premire scrutation de l'instruction est la premire excution d'une instruction aprs la pr-scrutation.
L'automate utilise la premire scrutation de l'instruction pour lire les entres en cours et dterminer l'tat
appropri dans lequel se mettre.

premire excution de
l'instruction

La premire excution de l'instruction est la premire excution d'une instruction avec une nouvelle valeur
de structure de donnes. L'automate utilise la premire excution de l'instruction pour gnrer des
coefficients et d'autres enregistrements de donnes qui ne changent pas pour un bloc fonctionnel aprs le
chargement initial.

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Chaque instruction de bloc fonctionnel comprend galement des


paramtres EnableIn et EnableOut :
les instructions de bloc fonctionnel sont excutes normalement
lorsque EnableIn est activ ;
lorsque EnableIn est effac, l'instruction de bloc fonctionnel
excute une logique de pr-scrutation, une logique de
post-scrutation ou saute simplement l'excution normale de
l'algorithme ;
EnableOut est identique EnableIn ; cependant, si l'excution
du bloc fonctionnel dtecte un dpassement, EnableOut est
galement effac ;
l'excution du bloc fonctionnel reprend l o elle a t
interrompue lorsque EnableIn passe d'effac activ. Il y a
cependant certaines instructions de bloc fonctionnel qui
dfinissent des fonctionnalits spciales, telles que la
rinitialisation lorsque EnableIn passe d'effac activ. Pour les
instructions de bloc fonctionnel avec des paramtres avec base
de temps, lorsque le mode de temporisation est Oversample
(surchantillonnage), l'instruction reprend toujours l o elle a
t interrompue lorsque EnableIn passe d'effac activ.
Si le paramtre EnableIn n'est pas cbl, l'instruction est toujours
excute normalement et EnableIn reste activ. Si vous effacez
EnableIn, il est activ lors de l'excution suivante de l'instruction.

IMPORTANT

Lorsque vous programmez en blocs fonctionnels, limitez la plage


des units procd +/-10+/-15 car les calculs virgule flottante
internes sont effectus en virgule flottante simple prcision. Les
units procd en dehors de cette plage peuvent entraner une
perte de prcision si les rsultats approchent les limites de virgule
flottante simple prcision (+/-10+/-38).

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Table des matires


Chapitre 1
Instructions sur bits
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
(XIC, XIO, OTE, OTL, OTU, ONS, Examine si contact ferm (XIC) . . . . . . . . . . . . . . . . . . . . . 1-2
Examine si contact ouvert (XIO) . . . . . . . . . . . . . . . . . . . . 1-4
OSR, OSF, OSRI, OSFI)
Activation de sortie (OTE) . . . . . . . . . . . . . . . .
Verrouillage de sortie (OTL) . . . . . . . . . . . . . .
Dverrouillage de sortie (OTU) . . . . . . . . . . . .
Excution sur front (ONS) . . . . . . . . . . . . . . . .
Impulsion front montant (OSR) . . . . . . . . . . . .
Impulsion front descendant (OSF) . . . . . . . . . .
Impulsion front montant avec entre (OSRI) . .
Impulsion front descendant avec entre (OSFI)

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

1-6
1-7
1-9
1-11
1-14
1-16
1-18
1-20

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Temporisateur l'enclenchement (TON) . . . . . . . . .
Temporisateur au dclenchement (TOF) . . . . . . . . .
Temporisateur rmanent (RTO) . . . . . . . . . . . . . . . .
Temporisateur l'enclenchement avec RAZ (TONR).
Temporisateur au dclenchement avec RAZ (TOFR) .
Temporisateur rmanent avec RAZ (RTOR) . . . . . . .
Comptage incrmental (CTU) . . . . . . . . . . . . . . . . .
Comptage dcrmental (CTD) . . . . . . . . . . . . . . . . .
Comptage incrmental/dcrmental (CTUD) . . . . . .
Remise zro (RES) . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

2-1
2-2
2-5
2-9
2-13
2-16
2-19
2-22
2-25
2-29
2-33

Chapitre 2
Instructions de temporisation
et de comptage
(TON, TOF, RTO, TONR, TOFR,
RTOR, CTU, CTD, CTUD, RES)

Chapitre 3
Instructions d'entre/de sortie Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Message (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
(MSG, GSV, SSV)
Codes d'erreur MSG . . . . . . . . . . . . . . . . . . . . . . . . .
Codes d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . .
Codes d'erreur tendus . . . . . . . . . . . . . . . . . . . .
Codes d'erreur PLC et SLC (.ERR) . . . . . . . . . . . . .
Codes d'erreur de bloc-transfert . . . . . . . . . . . . . .
Spcification de la configuration . . . . . . . . . . . . . . . .
Spcification des messages de lecture et d'criture
du fichier de donnes CIP . . . . . . . . . . . . . . . . . .
Reconfiguration d'un module d'E/S. . . . . . . . . . . .
Dfinition des messages CIP gnriques . . . . . . . .
Dfinition des messages PLC-5 . . . . . . . . . . . . . . .
Dfinition des messages SLC . . . . . . . . . . . . . . . .
Dfinition des messages de blocs-transferts . . . . . .
Dfinition des messages PLC-3 . . . . . . . . . . . . . . .
Dfinition des messages PLC-2 . . . . . . . . . . . . . . .
Exemples de configuration MSG . . . . . . . . . . . . . . . .
Dfinition de la communication. . . . . . . . . . . . . . . . .
Dfinition d'un chemin . . . . . . . . . . . . . . . . . . . .

vii

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

3-8
3-8
3-9
3-11
3-12
3-13

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

3-14
3-14
3-16
3-17
3-18
3-19
3-20
3-21
3-22
3-23
3-23

Publication 1756-RM003F-FR-P - Mai 2002

viii

Table des matires

Dfinition d'une mthode de communication ou


d'une adresse de module . . . . . . . . . . . . . . . . . .
Choix d'une option de cache . . . . . . . . . . . . . . .
Lire la valeur systme (GSV) et Dfinir la valeur
systme (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objets GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accs l'objet CONTROLLER . . . . . . . . . . . . . . .
Accs l'objet CONTROLLERDEVICE . . . . . . . . .
Accs l'objet CST. . . . . . . . . . . . . . . . . . . . . . .
Accs l'objet DF1 . . . . . . . . . . . . . . . . . . . . . .
Accs l'objet FAULTLOG . . . . . . . . . . . . . . . . .
Accs l'objet MESSAGE . . . . . . . . . . . . . . . . . .
Accs l'objet MODULE . . . . . . . . . . . . . . . . . .
Accs l'objet MOTIONGROUP . . . . . . . . . . . . .
Accs l'objet PROGRAM . . . . . . . . . . . . . . . . .
Accs l'objet ROUTINE . . . . . . . . . . . . . . . . . .
Accs l'objet SERIALPORT . . . . . . . . . . . . . . . .
Accs l'objet TASK . . . . . . . . . . . . . . . . . . . . .
Accs l'objet WALLCLOCKTIME . . . . . . . . . . . .
Exemple de programmation GSV/SSV . . . . . . . . . . .
Obtenir des informations sur les dfauts . . . . . . .
Configuration de marqueurs d'activation et
de dsactivation. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . 3-27
. . . . . 3-28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3-30
3-32
3-32
3-33
3-35
3-36
3-39
3-40
3-42
3-43
3-44
3-45
3-45
3-47
3-47
3-49
3-49

. . . . . 3-50

Chapitre 4
Instructions de comparaison
(CMP, EQU, GEQ, GRT, LEQ,
LES, LIM, MEQ, NEQ)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparaison (CMP) . . . . . . . . . . . . . . . . . . . . . . .
Expressions CMP . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations
Utilisation de chanes dans une expression . . . .
Egal (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Suprieur ou gal (GEQ) . . . . . . . . . . . . . . . . . .
Suprieur (GRT) . . . . . . . . . . . . . . . . . . . . . . . . .
Infrieur ou gal (LEQ). . . . . . . . . . . . . . . . . . . .
Infrieur (LES) . . . . . . . . . . . . . . . . . . . . . . . . . .
Test sur limites (LIM). . . . . . . . . . . . . . . . . . . . . . .
Egalit avec masque (MEQ). . . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . . .
Diffrent de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4-1
4-2
4-4
4-4
4-4
4-5
4-6
4-7
4-11
4-15
4-19
4-23
4-27
4-33
4-34
4-38

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

5-1
5-2
5-4
5-4
5-4

Chapitre 5
Instructions de calcul/
mathmatiques
(CPT, ADD, SUB, MUL, DIV,
MOD, SQR, SQRT, NEG, ABS)

Publication 1756-RM003F-FR-P - Mai 2002

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calcul (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations

Table des matires

Addition (ADD) . . . .
Soustraction (SUB) . .
Multiplication (MUL) .
Division (DIV) . . . . .
Modulo (MOD) . . . . .
Racine carre (SQR) .
Ngation (NEG) . . . .
Valeur absolue (ABS)

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

ix

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

5-6
5-9
5-12
5-15
5-19
5-23
5-26
5-29

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transfert (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . .
Transfert avec masque (MVM) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . . .
Transfert avec masque et cible (MVMT) . . . . . . . . .
Distribution d'un champ de bits (BTD) . . . . . . . . .
Distribution d'un champ de bits avec cible (BTDT).
Effacer (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Permutation d'octets (SWPB) . . . . . . . . . . . . . . . . .
ET sur bits (AND) . . . . . . . . . . . . . . . . . . . . . . . . .
OU sur bits (OR). . . . . . . . . . . . . . . . . . . . . . . . . .
OU exclusif sur bits (XOR) . . . . . . . . . . . . . . . . . .
COMPLEMENT sur bits (NOT) . . . . . . . . . . . . . . . .
ET boolen (BAND) . . . . . . . . . . . . . . . . . . . . . . .
OU boolen (BOR) . . . . . . . . . . . . . . . . . . . . . . . .
OU exclusif boolen (BXOR). . . . . . . . . . . . . . . . .
COMPLEMENT boolen (BNOT) . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

6-1
6-3
6-5
6-6
6-8
6-11
6-14
6-17
6-18
6-22
6-25
6-28
6-31
6-34
6-37
6-40
6-42

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slection du mode de fonctionnement . . . . . . . . . . . . . . .
Mode Tout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode Numrique. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode Incrmental . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fichier arithmtique et logique (FAL) . . . . . . . . . . . . . . . .
Expressions FAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations . . . . .
Recherche et comparaison de fichiers (FSC) . . . . . . . . . . .
Expressions FSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations . . . . .
Utilisation de chanes dans une expression . . . . . . . . .
Copie de fichier (COP) Copie de fichier synchrone (CPS) .
Remplissage de fichier (FLL) . . . . . . . . . . . . . . . . . . . . . .
Moyenne (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

7-1
7-2
7-2
7-3
7-5
7-7
7-16
7-16
7-17
7-17
7-18
7-22
7-23
7-23
7-24
7-25
7-26
7-32
7-36

Chapitre 6
Instructions de transfert/
logiques
(MOV, MVM, BTD, MVMT,
BTDT, CLR, SWPB, AND, OR,
XOR, NOT, BAND, BOR, BXOR,
BNOT)

Chapitre 7
Instructions sur tableau
(fichier)/
Instructions diverses
(FAL, FSC, COP, CPS, FLL, AVE,
SRT, STD, SIZE)

Publication 1756-RM003F-FR-P - Mai 2002

Table des matires

Tri de fichier (SRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41


Ecart type de fichier (STD) . . . . . . . . . . . . . . . . . . . . . . . . 7-46
Taille en lments (SIZE). . . . . . . . . . . . . . . . . . . . . . . . . . 7-52

Chapitre 8
Instructions sur tableau
(fichier)/dcalage
(BSL, BSR, FFL, FFU, LFL, LFU)

Introduction . . . . . . . . . . . . . . . .
Dcalage binaire gauche (BSL) .
Dcalage binaire droite (BSR) . .
Chargement FIFO (FFL). . . . . . . .
Dchargement FIFO (FFU) . . . . .
Chargement LIFO (LFL) . . . . . . . .
Dchargement LIFO (LFU). . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

8-1
8-2
8-5
8-8
8-14
8-20
8-26

Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
Entre squenceur (SQI) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate
Utilisation de SQI sans SQO . . . . . . . . . . .
Sortie squenceur (SQO) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate
Utilisation de SQI avec SQO. . . . . . . . . . .
Remise zro de la position de SQO . . . .
Chargement squenceur (SQL) . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

9-1
9-2
9-3
9-5
9-6
9-7
9-9
9-9
9-10

Chapitre 9
Instructions squenceur
(SQI, SQO, SQL)

Chapitre 10
Instructions de commande de
programme
(JMP, LBL, JSR, RET, SBR, JXR,
TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers tiquette (JMP)
Etiquette (LBL) . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers sous-programme (JSR)
Sous-programme (SBR)
Retour (RET). . . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers sous-programme externe (JXR) . . . . .
Fin temporaire (TND) . . . . . . . . . . . . . . . . . . .
Relais de contrle matre (MCR). . . . . . . . . . . .
Dsactivation de l'interruption utilisateur (UID)
Activation d'interruption utilisateur (UIE) . . . . .
Toujours faux (AFI). . . . . . . . . . . . . . . . . . . . .
Pas d'opration (NOP) . . . . . . . . . . . . . . . . . .
Fin de transition (EOT) . . . . . . . . . . . . . . . . . .
Pause SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . .
Positionnement SFC (SFR) . . . . . . . . . . . . . . . .

. . . . . . . . . 10-1
. . . . . . . . . 10-2

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

. 10-4
10-13
10-16
10-18

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

10-20
10-22
10-23
10-24
10-26
10-28

Chapitre 11
Instruction pour/d'interruption Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1
(FOR, FOR...DO, BRK, EXIT, RET) Pour (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
Interruption (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4
Retour (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5
Publication 1756-RM003F-FR-P - Mai 2002

Table des matires

xi

Chapitre 12
Instructions spciales
(FBC, DDT, DTR, PID)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparaison des bits de fichier (FBC) . . . . . . . . .
Slection du mode de recherche. . . . . . . . . . .
Dtection par diagnostic (DDT) . . . . . . . . . . . . . .
Slection du mode de recherche. . . . . . . . . . .
Transition de donnes (DTR). . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . .
Proportionnel, intgral et driv (PID) . . . . . . . . .
Configuration d'une instruction PID . . . . . . . . . . .
Spcification des rglages. . . . . . . . . . . . . . . .
Dfinition de la configuration . . . . . . . . . . . . .
Dfinition des alarmes . . . . . . . . . . . . . . . . . .
Dfinition de la mise l'chelle . . . . . . . . . . .
Utilisation des instructions PID . . . . . . . . . . . . . .
Anti-saturation de l'action intgrale et transfert
sans -coup de manuel auto . . . . . . . . . . . .
Temporisation de l'instruction PID . . . . . . . . .
Redmarrage sans -coups . . . . . . . . . . . . . . .
Lissage de la drive . . . . . . . . . . . . . . . . . . .
Configuration de la zone morte . . . . . . . . . . .
Utilisation de la limite de sortie . . . . . . . . . . .
Anticipation de vitesse ou dcalage de sortie .
Mises de boucles en cascade . . . . . . . . . . . . .
Contrle de ratio . . . . . . . . . . . . . . . . . . . . . .
Thorie PID . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Processus PID . . . . . . . . . . . . . . . . . . . . . . . .
Processus PID avec boucles matre/esclave . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

. 12-1
. 12-2
. 12-3
. 12-9
12-11
12-16
12-16
12-19
12-23
12-24
12-24
12-25
12-25
12-26

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

12-28
12-29
12-32
12-33
12-33
12-34
12-34
12-35
12-35
12-37
12-37
12-37

Chapitre 13
Instructions trigonomtriques
(SIN, COS, TAN, ASN, ASIN,
ACS, ACOS, ATN, ATAN)

Introduction . . . . . . .
Sinus (SIN) . . . . . . . .
Cosinus (COS) . . . . .
Tangente (TAN) . . . .
Sinus d'arc (ASN) . . .
Cosinus d'arc (ACS). .
Tangente d'arc (ATN)

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

. 13-1
. 13-2
. 13-4
. 13-6
. 13-8
13-10
13-12

Introduction . . . . . . . . . . .
Logarithme naturel (LN) . .
Logarithme dcimal (LOG)
X la puissance Y (XPY) .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

Chapitre 14
Instructions mathmatiques
volues
(LN, LOG, XPY)

14-1
14-2
14-4
14-6

Publication 1756-RM003F-FR-P - Mai 2002

xii

Table des matires

Chapitre 15
Instructions de conversion
mathmatique
(DEG, RAD, TOD, FRD, TRN,
TRUNC)

Introduction . . . . . . . . . . . . . . . . . .
Degrs (DEG) . . . . . . . . . . . . . . . . .
Radians (RAD) . . . . . . . . . . . . . . . .
Conversion en DCB (TOD) . . . . . . .
Conversion en nombre entier (FRD)
Troncation (TRN) . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

. 15-1
. 15-2
. 15-4
. 15-6
. 15-9
15-11

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

. 16-1
. 16-2
. 16-4
. 16-4
. 16-5
. 16-8
16-10
16-12
16-16
16-19
16-23
16-27

Introduction . . . . . . . . . . . . . . . . . . . .
Types de donnes chane. . . . . . . .
Concatnation de chanes (CONCAT). .
Effacement dans une chane (DELETE)
Recherche de chane (FIND) . . . . . . . .
Insrer chane (INSERT) . . . . . . . . . . .
Copie dans une chane (MID) . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

. 17-1
. 17-2
. 17-3
. 17-5
. 17-7
. 17-9
17-11

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

. 18-1
. 18-2
. 18-3
. 18-5
. 18-7
. 18-9
18-11
18-13

Chapitre 16
Instructions port srie ASCII
(ABL, ACB, ACL, AHL, ARD,
ARL, AWA, AWT)

Introduction . . . . . . . . . . . . . . . . . .
Excution de l'instruction . . . . . .
Codes d'erreur ASCII . . . . . . . . .
Types de donnes chane. . . . . .
Test ASCII du buffer (ABL) . . . . . . .
Caractres ASCII dans buffer (ACB) .
Effacement buffer ASCII (ACL). . . . .
Lignes d'change ASCII (AHL) . . . . .
Lecture ASCII (ARD) . . . . . . . . . . . .
Ligne de lecture ASCII (ARL) . . . . . .
Ajout d'criture ASCII (AWA). . . . . .
Ecriture ASCII (AWT) . . . . . . . . . . .

Chapitre 17
Instructions de chane ASCII
(CONCAT, DELETE, FIND,
INSERT, MID)

Chapitre 18
Instructions de conversion
ASCII
(STOD, STOR, DTOS, RTOS,
UPPER, LOWER)

Publication 1756-RM003F-FR-P - Mai 2002

Introduction . . . . . . . . . . . . .
Types de donnes chane.
Chane vers DINT (STOD) . . .
Chane vers REAL (STOR) . . .
DINT vers chane (DTOS) . . .
REAL vers chane (RTOS) . . .
Majuscule (UPPER) . . . . . . . .
Minuscule (LOWER) . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

Table des matires

xiii

Annexe A
Attributs communs

Introduction . . . . . . . . . . .
Valeurs immdiates . . . . . .
Conversions de donnes . .
SINT ou INT en DINT .
Nombre entier en REAL
DINT en SINT ou INT .
REAL en nombre entier

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

A-1
A-1
A-1
A-3
A-4
A-5
A-5

Annexe B
Attributs de bloc fonctionnel

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verrouillage des donnes . . . . . . . . . . . . . . . . . . . . .
Ordre d'excution . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rponses de bloc fonctionnel aux conditions
de dpassement . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modes de temporisation . . . . . . . . . . . . . . . . . . . . . .
Paramtres d'instruction communs pour les modes
de temporisation . . . . . . . . . . . . . . . . . . . . . . . . .
Prsentation des modes de temporisation . . . . . . .
Commande Programme/Oprateur . . . . . . . . . . . . . .

. . . . B-1
. . . . B-1
. . . . B-3
. . . . B-5
. . . . B-5
. . . . B-7
. . . . B-9
. . . B-10

Annexe C
Programmation en texte
structur

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe du texte structur . . . . . . . . . . . . . . . . . . . . . . .
Affectations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spcification d'une affectation non rmanente. . . . . .
Attribution d'un caractre ASCII une chane . . . . . .
Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation d'oprateurs et de fonctions arithmtiques
Utilisation d'oprateurs de relation . . . . . . . . . . . . . .
Utilisation d'oprateurs logiques . . . . . . . . . . . . . . . .
Utilisation d'oprateurs sur bits. . . . . . . . . . . . . . . . .
Dtermination de l'ordre d'excution . . . . . . . . . . . .
Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instructions de test . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IF...THEN (SI... ALORS) . . . . . . . . . . . . . . . . . . . . . . . . .
CASE...OF (EN FONCTION... DE) . . . . . . . . . . . . . . . . .
FORDO (POUR... FAIRE) . . . . . . . . . . . . . . . . . . . . . .
WHILEDO (TANT QUE... FAIRE) . . . . . . . . . . . . . . . .
REPEATUNTIL (REPETER... JUSQU'A). . . . . . . . . . . . .
Commentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

C-1
C-1
C-2
C-3
C-4
C-4
C-5
C-7
C-8
C-9
C-10
C-10
C-11
C-12
C-15
C-17
C-20
C-23
C-26

Codes des caractres ASCII

Publication 1756-RM003F-FR-P - Mai 2002

xiv

Table des matires

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions sur bits


(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introduction
Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

activer les sorties lorsqu'un bit est activ

XIC

logique relais
texte structur(1)

1-2

activer les sorties lorsqu'un bit est effac

XIO

logique relais
texte structur(1)

1-4

activer un bit

OTE

logique relais
texte structur(1)

1-6

activer un bit (rmanent)

OTL

logique relais
texte structur(1)

1-7

effacer un bit (rmanent)

OTU

logique relais
texte structur(1)

1-9

activer les sorties pour une scrutation chaque


fois qu'une ligne devient vraie

ONS

logique relais
texte structur(1)

1-11

activer un bit pour une scrutation chaque fois


qu'une ligne devient vraie

OSR

logique relais

1-14

activer un bit pour une scrutation chaque fois


qu'une ligne devient fausse

OSF

logique relais

1-16

activer un bit pour une scrutation chaque fois


que le bit d'entre est activ dans le bloc
fonctionnel

OSRI

texte structur
bloc fonctionnel

1-18

activer un bit pour une scrutation chaque fois


que le bit d'entre est effac dans le bloc
fonctionnel

OSFI

texte structur
bloc fonctionnel

1-20

(1)

Utilisez les instructions sur bits (type relais) pour surveiller et


commander l'tat des bits.

Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

1-2

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examine si contact ferm


(XIC)

L'instruction XIC vrifie si le bit de donnes est activ.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de donnes

BOOL

point

bit tester

Texte structur
Il n'y a pas d'instruction XIC en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS).
IF data_bit THEN
<instruction>;
END_IF;

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Description : L'instruction XIC vrifie si le bit de donnes est activ.


Indicateurs d'tat arithmtique : non affects
Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit de
donnes

bit de donnes = 0

l'tat de sortie de la
ligne est rgl sur faux

bit de donnes = 1

l'tat de sortie de la ligne


est rgl sur vrai
fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-3

Exemple 1 : Si limit_switch_1 est activ, l'instruction suivante est active (l'tat de


sortie de la ligne est vrai).

Logique relais

Texte structur
IF limit_switch THEN
<instruction>;
END_IF;

Exemple 2 : Si S:V est activ (indique qu'un dpassement suprieur s'est produit),
l'instruction suivante est active (l'tat de sortie de la ligne est vrai).

Logique relais

Texte structur
IF S:V THEN
<instruction>;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

1-4

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examine si contact ouvert


(XIO)

L'instruction XIO vrifie si le bit de donnes est effac.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de donnes

BOOL

point

bit tester

Texte structur
Il n'y a pas d'instruction XIO en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS).
IF NOT data_bit THEN
<instruction>;
END_IF;

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Description : L'instruction XIO vrifie si le bit de donnes est effac.


Indicateurs d'tat arithmtique : non affects
Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit de
donnes

bit de donnes = 0

l'tat de sortie de la
ligne est rgl sur vrai

bit de donnes = 1

l'tat de sortie de la ligne


est rgl sur faux
fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-5

Exemple 1 : Si limit_switch_2 est effac, l'instruction suivante est active (l'tat de


sortie de la ligne est vrai).

Logique relais

Texte structur
IF NOT limit_switch_2 THEN
<instruction>;
END_IF;

Exemple 2 : Si S:V est effac (indique qu'un dpassement suprieur s'est produit),
l'instruction suivante est active (l'tat de sortie de la ligne est vrai).

Logique relais

Texte structur
IF NOT S:V THEN
<instruction>;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

1-6

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Activation de sortie (OTE)

L'instruction OTE active ou efface le bit de donnes.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de donnes

BOOL

point

bit activer ou effacer

Texte structur
Il n'y a pas d'instruction OTE en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une affectation non rmanente.
data_bit [:=] expression_boolenne;

Pour des informations sur la syntaxe des affectations et expressions en


texte structur, reportez-vous l'Annexe C.

Description : Lorsque l'instruction OTE est active, l'automate active le bit de


donnes. Lorsque l'instruction OTE est dsactive, l'automate efface le
bit de donnes.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de donnes est effac.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit de donnes est effac.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Le bit de donnes est activ.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

Le bit de donnes est effac.


L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsque switch est activ, l'instruction OTE active (allume) light_1.
Lorsque switch est effac, l'instruction OTE efface (teint) light_1.

Logique relais

Texte structur
light_1 [:=] switch;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Verrouillage de sortie (OTL)

1-7

L'instruction OTL active (verrouille) le bit de donnes.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de donnes

BOOL

point

bit activer

Texte structur
Il n'y a pas d'instruction OTL en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS) et une affectation.
IF expression_boolenne THEN
data_bit := 1;
END_IF;

Pour des informations sur la syntaxe des instructions de test,


expressions et affectations en texte structur, reportez-vous
l'Annexe C.

Description : Lorsqu'elle est active, l'instruction OTL active le bit de donnes. Ce


bit de donnes reste activ jusqu' ce qu'il soit effac, gnralement
par une instruction OTU. Lorsqu'elle est dsactive, l'instruction OTL
ne change pas l'tat du bit de donnes.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Le bit de donnes est activ.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

1-8

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemple : Lorsqu'elle est active, l'instruction OTL active light_2. Ce bit reste
activ jusqu' ce qu'il soit effac, gnralement par une instruction
OTU.

Logique relais

Texte structur
IF expression_boolenne THEN
light_2 := 1;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Dverrouillage de sortie
(OTU)

1-9

L'instruction OTU efface (dverrouille) le bit de donnes.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de donnes

BOOL

point

bit effacer

Texte structur
Il n'y a pas d'instruction OTU en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS) et une affectation.
IF expression_boolenne THEN
data_bit := 0;
END_IF;

Pour des informations sur la syntaxe des instructions de test,


expressions et affectations en texte structur, reportez-vous
l'Annexe C.

Description : Lorsqu'elle est active, l'instruction OTU efface le bit de donnes.


Lorsqu'elle est dsactive, l'instruction OTU ne change pas l'tat du bit
de donnes.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Le bit de donnes est effac.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

Le bit de donnes n'est pas modifi.


L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

1-10

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemple : Lorsqu'elle est active, l'instruction OTU efface light_2.


Logique relais

Texte structur
IF expression_boolenne THEN
light_2 := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Excution sur front (ONS)

1-11

L'instruction ONS active ou dsactive le reste de la ligne, selon l'tat


du bit de stockage.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de
stockage

BOOL

point

bit de mmoire interne


enregistre l'tat d'entre de la ligne de la
dernire excution de l'instruction

Texte structur
Il n'y a pas d'instruction ONS en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS).
IF expression_boolenne AND NOT storage_bit THEN
<instruction>;
END_IF;
storage_bit := expression_boolenne;

Pour des informations sur la syntaxe des instructions de test,


expressions et affectations en texte structur, reportez-vous
l'Annexe C.

Description : Lorsqu'elle est active et que le bit de stockage est effac, l'instruction
ONS active le reste de la ligne. Lorsqu'elle est dsactive ou lorsque le
bit de stockage est activ, l'instruction ONS dsactive le reste de la
ligne.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

1-12

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de stockage est activ pour empcher un dclenchement incorrect pendant la


premire scrutation.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit de stockage est effac.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit de
stockage

bit de stockage = 0

le bit de stockage est activ


l'tat de sortie de la ligne
est rgl sur vrai

bit de stockage = 1

le bit de stockage reste


activ
l'tat de sortie de la ligne est
rgl sur faux
fin

pendant la post-scrutation

Le bit de stockage est effac.


L'tat de sortie de la ligne est rgl sur faux.

Exemple : Une instruction ONS est gnralement prcde d'une instruction


d'entre car pour qu'elle fonctionne correctement, vous devez la
scruter lorsqu'elle est active et lorsqu'elle est dsactive. Une fois
l'instruction ONS active, l'tat d'entre de la ligne doit tre effac ou
le bit de stockage effac pour que l'instruction ONS soit de nouveau
active.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-13

Pendant une scrutation pour laquelle limit_switch_1 est effac ou


storage_1 activ, la ligne n'a aucun effet. Pendant une scrutation pour
laquelle limit_switch_1 est activ et storage_1 effac, l'instruction ONS
active storage_1 et l'instruction ADD augmente sum de 1. Tant que
limit_switch_1 reste activ, sum garde la mme valeur. limit_switch_1
doit repasser d'effac activ pour que sum augmente nouveau.

Logique relais

Texte structur
IF limit_switch_1 AND NOT storage_1 THEN
sum := sum + 1;
END_IF;
storage_1 := limit_switch_1;

Publication 1756-RM003F-FR-P - Mai 2002

1-14

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion front montant


(OSR)

L'instruction OSR active ou efface le bit de sortie, selon l'tat du bit de


stockage.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction OSRI (voir page 1-18).

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de
stockage

BOOL

point

bit de mmoire interne


enregistre l'tat d'entre de la ligne de la
dernire excution de l'instruction

bit de sortie

BOOL

point

bit activer

Description : Lorsqu'elle est active et que le bit de stockage est effac, l'instruction
OSR active le bit de sortie. Lorsqu'elle est active et que le bit de
stockage est activ, ou lorsqu'elle est dsactive, l'instruction OSR
efface le bit de sortie.

tat d'entre de la ligne

bit de stockage

bit de sortie

l'instruction est
excute

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

l'instruction est rinitialise lors de la


scrutation suivante

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-15

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de stockage est activ pour empcher un dclenchement incorrect pendant la


premire scrutation.
Le bit de sortie est effac.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit de stockage est effac.


Le bit de sortie n'est pas modifi.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit de
stockage

bit de stockage = 0

le bit de stockage est activ


le bit de sortie est activ
l'tat de sortie de la ligne
est rgl sur vrai

bit de stockage = 1

le bit de stockage reste activ


le bit de sortie est effac
l'tat de sortie de la ligne est
rgl sur vrai
fin

pendant la post-scrutation

Le bit de stockage est effac.


Le bit de sortie n'est pas modifi.
L'tat de sortie de la ligne est rgl sur faux.

Exemple : Chaque fois que limit_switch_1 passe d'effac activ, l'instruction


OSR active output_bit_1 et l'instruction ADD augmente sum de 5. Tant
que limit_switch_1 reste activ, sum garde la mme valeur.
limit_switch_1 doit repasser d'effac activ pour que sum augmente
nouveau. Vous pouvez utiliser output_bit_1 sur plusieurs lignes pour
dclencher d'autres oprations.

Publication 1756-RM003F-FR-P - Mai 2002

1-16

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion front descendant


(OSF)

L'instruction OSF active ou efface le bit de sortie, selon l'tat du bit de


stockage.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction OSFI (voir page 1-20).

Oprandes :
Oprandes de logique relais
Oprande

Type

Format

Description

bit de
stockage

BOOL

point

bit de mmoire interne


enregistre l'tat d'entre de la ligne de la
dernire excution de l'instruction

bit de sortie

BOOL

point

bit activer

Description : Lorsqu'elle est dsactive et que le bit de stockage est activ,


l'instruction OSF active le bit de sortie. Lorsqu'elle est dsactive et
que le bit de stockage est effac, ou lorsqu'elle est active,
l'instruction OSF efface le bit de sortie.

tat d'entre de la
ligne

bit de stockage

bit de sortie

l'instruction est
excute

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

l'instruction est
rinitialise pendant la
scrutation suivante

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-17

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit de stockage est dsactiv pour empcher un dclenchement incorrect pendant la


premire scrutation.
Le bit de sortie est effac.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

examine le bit de
stockage

bit de stockage = 0

le bit de stockage reste


effac
le bit de sortie est effac
l'tat de sortie de la ligne est
rgl sur faux

bit de stockage = 1

le bit de stockage est


effac
le bit de sortie est activ
l'tat de sortie de la ligne
est rgl sur faux
fin

si l'tat d'entre de la ligne est vrai

Le bit de stockage est activ.


Le bit de sortie est effac.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

Voir l'tat d'entre de la ligne rgl sur faux ci-dessus.

Exemple : Chaque fois que limit_switch_1 passe d'activ effac, l'instruction


OSF active output_bit_2 et l'instruction ADD augmente sum de 5.
Tant que limit_switch_1 reste effac, sum garde la mme valeur.
limit_switch_1 doit repasser d'activ effac pour que sum augmente
nouveau. Vous pouvez utiliser output_bit_2 sur plusieurs lignes
pour dclencher d'autres oprations.

Publication 1756-RM003F-FR-P - Mai 2002

1-18

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion front montant


avec entre (OSRI)

L'instruction OSRI active le bit de sortie pour une excution lorsque le


bit d'entre passe d'effac activ.
Cette instruction existe en logique relais comme instruction OSR
(voir page 1-14).

Oprandes :
OSRI(OSRI_tag);

Texte structur
Oprande

Type

Format

Description

point OSRI

FBD_ONESHOT

structure

structure OSRI

Bloc fonctionnel
Oprande

Type

Format

Description

point OSRI

FBD_ONESHOT

structure

structure OSRI

Structure FBD_ONESHOT
Paramtre d'entre

Type de donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

InputBit

BOOL

Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSR.
Effac par dfaut.

Paramtre de sortie

Type de donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

OutputBit

BOOL

Bit de sortie

Description : Lorsque InputBit est activ et InputBitn-1 effac, l'instruction OSRI


active OutputBit. Lorsque InputBitn-1 est activ ou lorsque InputBit est
effac, l'instruction OSRI efface OutputBit.

InputBit

InputBitn-1

OutputBit

l'instruction est
excute

Publication 1756-RM003F-FR-P - Mai 2002

l'instruction est rinitialise


lors de la scrutation suivante

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-19

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

InputBitn-1 est activ.

InputBitn-1 est activ.

pendant la premire
excution de l'instruction

InputBitn-1 est activ.

InputBitn-1 est activ.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

Lorsque InputBit passe d'effac activ, l'instruction


active InputBitn-1.
L'instruction est excute.
EnableOut est activ.

Lorsque InputBit passe d'effac activ, l'instruction


active InputBitn-1.
EnableIn est toujours activ.
L'instruction est excute.

pendant la post-scrutation

Aucune.

Aucune.

Exemple : Lorsque limit_switch1 passe d'effac activ, l'instruction OSRI active


OutputBit pour une scrutation.

Texte structur
OSRI_01.InputBit := limit_switch1;
OSRI(OSRI_01);
State := OSRI_01.OutputBit;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

1-20

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion front descendant


avec entre (OSFI)

L'instruction OSFI active OutputBit pour une excution lorsque


InputBit passe d'activ effac.
Cette instruction existe en logique relais comme instruction OSF
(voir page 1-16).

Oprandes :
OSFI(OSFI_tag);

Texte structur
Oprande

Type

Format

Description

point OSFI

FBD_ONESHOT

structure

structure OSFI

Bloc fonctionnel
Oprande

Type

Format

Description

point OSFI

FBD_ONESHOT

structure

structure OSFI

Structure FBD_ONESHOT
Paramtre d'entre

Type de donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

InputBit

BOOL

Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSF.
Effac par dfaut.

Paramtre de sortie

Type de donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

OutputBit

BOOL

bit de sortie

Description : Lorsque InputBit est effac et InputBitn-1 activ, l'instruction OSFI


active OutputBit. Lorsque InputBitn-1 est effac ou lorsque InputBit est
activ, l'instruction OSFI efface OutputBit.
InputBit

InputBit n-1

OutputBit

l'instruction est
excute

Publication 1756-RM003F-FR-P - Mai 2002

l'instruction est rinitialise


lors de la scrutation suivante

40047

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-21

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

InputBitn-1 est effac.

InputBitn-1 est effac.

pendant la premire
excution de l'instruction

InputBitn-1 est effac.

InputBitn-1 est effac.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

Lorsque InputBit passe d'effac activ, l'instruction


efface InputBitn-1.
L'instruction est excute.
EnableOut est activ.

Lorsque InputBit passe de dsactiv activ,


l'instruction efface InputBitn-1.
EnableIn est toujours activ.
L'instruction est excute.

pendant la post-scrutation

Aucune.

Aucune.

Exemple : Lorsque limit_switch1 passe d'activ effac, l'instruction OSFI active


OutputBit pour une scrutation.

Texte structur
OSFI_01.InputBit := limit_switch1;
OSFI(OSFI_01);
Output_state := OSFI_01.OutputBit;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

1-22

Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions de temporisation et de comptage


(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introduction

Les temporisateurs et les compteurs commandent les oprations en


fonction du temps ou du nombre d'vnements.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

mesurer le temps pendant lequel un


temporisateur est actif

TON

logique relais

2-2

mesurer le temps pendant lequel un


temporisateur est inactif

TOF

logique relais

2-5

cumuler du temps

RTO

logique relais

2-9

calculer combien de temps un temporisateur


est actif avec RAZ intgre en bloc fonctionnel

TONR

texte structur
bloc fonctionnel

2-13

calculer combien de temps un temporisateur


est inactif avec RAZ intgre en bloc
fonctionnel

TOFR

texte structur
bloc fonctionnel

2-16

cumuler la dure avec RAZ intgre en bloc


fonctionnel

RTOR

texte structur
bloc fonctionnel

2-19

faire un comptage incrmental

CTU

logique relais

2-22

faire un comptage dcrmental

CTD

logique relais

2-25

faire des comptages incrmental et


dcrmental en bloc fonctionnel

CTUD

texte structur
bloc fonctionnel

2-29

RES

logique relais

2-33

remettre un temporisateur ou un compteur


zro

La base de temps de tous les temporisateurs est 1 ms.

Publication 1756-RM003F-FR-P - Mai 2002

2-2

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur
l'enclenchement (TON)

L'instruction TON est un temporisateur non rmanent qui cumule le


temps lorsque l'instruction est active (l'tat d'entre de la ligne est
vrai).
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction TONR (voir page 2-13).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Temporisateur

TIMER

point

structure de temporisateur

Prslection

DINT

immdiat

dure avant le dlai (dure cumule)

Accumulateur

DINT

immdiat

nombre total de ms que le temporisateur


a comptes
la valeur initiale est gnralement 0

Structure TIMER
Mnmonique

Type de donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction TON est active.

.TT

BOOL

Le bit de temporisation indique qu'une opration de temporisation est en cours.

.DN

BOOL

Le bit de fin est activ lorsque .ACC .PRE.

.PRE

DINT

La valeur prdtermine dfinit la valeur (par units d'1 ms) que la valeur cumule doit
atteindre avant que l'instruction n'active le bit .DN.

.ACC

DINT

La valeur cumule dfinit le nombre de millisecondes qui se sont coules depuis l'activation
de l'instruction TON.

Description : L'instruction TON cumule le temps jusqu' ce que :


l'instruction TON soit dsactive ;
.ACC .PRE.
La base de temps est toujours 1 ms. Pour un temporisateur de
2 secondes par exemple, entrez 2000 pour la valeur .PRE.
Lorsque l'instruction TON est dsactive, la valeur .ACC est efface.
tat d'entre de la ligne
bit d'activation de temporisateur (.EN)
bit de temporisation en cours (.TT)
bit de fin de temporisation (.DN)
Encl.
prslection
valeur cumule du temporisateur (.ACC)

Publication 1756-RM003F-FR-P - Mai 2002

le temporisateur n'a pas


atteint la valeur .PRE
0

16649

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-3

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

.PRE < 0

34

.ACC < 0

34

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Les bits .EN, .TT et .DN sont effacs.


La valeur .ACC est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Les bits .EN, .TT et .DN sont effacs.


La valeur .ACC est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

bit .DN = 1

examine le bit .DN

bit .DN = 0

bit .EN = 0

examine le bit .EN

le bit .EN est activ


le bit .TT est activ
last_time = current_time

bit .EN = 1

le bit .TT est activ


.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC .PRE

examine .ACC

.ACC < .PRE


le bit .DN est activ
le bit .TT est effac
le bit .EN est activ
non

la valeur .ACC
passe zro

oui

l'tat de sortie de la ligne


est rgl sur vrai

.ACC = 2 147 483 647


fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

2-4

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemple : Lorsque limit_switch_1 est activ, light_2 est allum pendant 180 ms
(timer_1 compte). Lorsque timer_1.acc atteint 180, light_2 s'teint et
light_3 s'allume. Light_3 reste allum jusqu' ce que l'instruction TON
soit dsactive. Si limit_switch_1 est effac pendant que timer_1
compte, light_2 s'teint.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur au
dclenchement (TOF)

2-5

L'instruction TOF est un temporisateur non rmanent qui cumule le


temps lorsque l'instruction est active (l'tat d'entre de la ligne est
faux).
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction TOFR (voir page 2-16).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Temporisateur

TIMER

point

structure de temporisateur

Prslection

DINT

immdiat

dure avant le dlai (dure cumule)

Accumulateur

DINT

immdiat

nombre total de ms que le temporisateur


a comptes
la valeur initiale est gnralement 0

Structure TIMER
Mnmonique

Type de donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction TOF est active.

.TT

BOOL

Le bit de temporisation indique qu'une opration de temporisation est en cours.

.DN

BOOL

Le bit de fin est effac lorsque .ACC .PRE.

.PRE

DINT

La valeur prdtermine dfinit la valeur (par units d'1 ms) que la valeur cumule doit
atteindre avant que l'instruction n'efface le bit .DN.

.ACC

DINT

La valeur cumule dfinit le nombre de millisecondes qui se sont coules depuis


l'activation de l'instruction TOF.

Description : L'instruction TOF cumule le temps jusqu' ce que :


l'instruction TOF soit active ;
.ACC .PRE.
La base de temps est toujours 1 ms. Pour un temporisateur de
2 secondes par exemple, entrez 2000 pour la valeur .PRE.

Publication 1756-RM003F-FR-P - Mai 2002

2-6

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Lorsque l'instruction TOF est dsactive, la valeur .ACC est efface.


tat d'entre de la ligne
bit d'activation de temporisateur (.EN)

bit de temporisation en cours (.TT)


bit de fin de temporisation (.DN)
Dclenchement
prslection

valeur cumule du temporisateur (.ACC)


0

16650

le temporisateur n'a pas atteint la valeur .PRE

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Publication 1756-RM003F-FR-P - Mai 2002

Type du dfaut

Code du dfaut

.PRE < 0

34

.ACC < 0

34

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-7

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Les bits .EN, .TT et .DN sont effacs.


La valeur .ACC est rgle pour tre gale la valeur .PRE.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

bit .DN = 0

examine le bit .DN

bit .DN = 1

bit .EN = 1

examine le bit .EN

le bit .EN est effac


le bit .TT est activ
last_time = current_time

bit .EN = 0

le bit .TT est activ


.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC .PRE

examine .ACC

.ACC < .PRE


le bit .DN est effac.
le bit .TT est effac
le bit .EN est effac
non

la valeur .ACC
passe zro

oui

l'tat de sortie de la ligne


est rgl sur faux

.ACC = 2 147 483 647


fin

si l'tat d'entre de la ligne est vrai

Les bits .EN, .TT et .DN sont activs.


La valeur .ACC est efface.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

2-8

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemple : Lorsque limit_switch_2 est effac, light_2 est allum pendant 180 ms
(timer_2 compte). Lorsque timer_2.acc atteint 180, light_2 s'teint et
light_3 s'allume. Light_3 reste allum jusqu' ce que l'instruction TOF
soit active. Si limit_switch_2 est activ pendant que timer_2 compte,
light_2 s'teint.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur rmanent
(RTO)

2-9

L'instruction RTO est un temporisateur rmanent qui cumule le temps


lorsque l'instruction est active.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction RTOR (voir page 2-19).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Temporisateur

TIMER

point

structure de temporisateur

Prslection

DINT

immdiat

dure avant le dlai (dure cumule)

Accumulateur

DINT

immdiat

nombre de ms que le temporisateur a


comptes
la valeur initiale est gnralement 0

Structure TIMER
Mnmonique

Type de donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction RTO est active.

.TT

BOOL

Le bit de temporisation indique qu'une opration de temporisation est en cours.

.DN

BOOL

Le bit de fin indique que .ACC .PRE.

.PRE

DINT

La valeur prdtermine dfinit la valeur (par units d'1 ms ) que la valeur cumule doit
atteindre avant que l'instruction n'active le bit .DN.

.ACC

DINT

La valeur cumule dfinit le nombre de millisecondes qui se sont coules depuis l'activation
de l'instruction RTO.

Description : L'instruction RTO cumule le temps jusqu' ce qu'elle soit dsactive.


Lorsqu'elle est dsactive, l'instruction RTO garde sa valeur .ACC.
Vous devez effacer la valeur .ACC, gnralement l'aide d'une
instruction RES renvoyant la mme structure de temporisateur.

Publication 1756-RM003F-FR-P - Mai 2002

2-10

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

La base de temps est toujours 1 ms. Pour un temporisateur de


2 secondes par exemple, entrez 2000 pour la valeur .PRE.
tat d'entre de la ligne

bit d'activation de temporisateur (.EN)

tat de ligne qui commande l'instruction RES

bit de temporisation en cours (.TT)

bit de fin de temporisation (.DN)

prslection

16651

valeur cumule du temporisateur (.ACC)


0
le temporisateur n'a pas atteint la valeur .PRE

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Publication 1756-RM003F-FR-P - Mai 2002

Type du dfaut

Code du dfaut

.PRE < 0

34

.ACC < 0

34

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-11

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Les bits .EN, .TT et .DN sont effacs.


La valeur .ACC n'est pas modifie.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Les bits .EN et .TT sont effacs.


Le bit .DN n'est pas modifi.
La valeur .ACC n'est pas modifie.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

bit .DN = 1

examine le bit .DN

bit .DN = 0

bit .EN = 0

examine le bit .EN

le bit .EN est activ


le bit .TT est activ
last_time = current_time

bit .EN = 1

examine .ACC

le bit .TT est activ


.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC .PRE

.ACC < .PRE


le bit .DN est activ
le bit .TT est effac
le bit .EN est activ
non

la valeur .ACC
passe zro

oui

l'tat de sortie de la ligne


est rgl sur vrai

.ACC = 2 147 483 647


fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsque limit_switch_1 est activ, light_1 est allum pendant 180 ms
(timer_2 compte). Lorsque timer_3.acc atteint 180, light_1 s'teint et
light_2 s'allume. Light_2 reste allum jusqu' ce que timer_3 soit
rinitialis. Si limit_switch_2 est effac pendant que timer_3 compte,
light_1 reste allum. Lorsque limit_switch_2 est activ, l'instruction
RES rinitialise timer_3 (efface les bits d'tat et la valeur .ACC).

Publication 1756-RM003F-FR-P - Mai 2002

2-12

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur
l'enclenchement avec RAZ
(TONR)

2-13

L'instruction TONR est un temporisateur non rmanent qui cumule le


temps lorsque TimerEnable est activ.
Cette instruction est disponible en logique relais sous forme de deux
instructions spares : TON (voir page 2-2) et RES (voir page 2-33).

Oprandes :
TONR(TONR_tag);

Texte structur
Variable

Type

Format

Description

point TONR

FBD_TIMER

structure

structure TONR

Bloc fonctionnel
Oprande

Type

Format

Description

point TONR

FBD_TIMER

structure

structure TONR

Structure FBD_TIMER
Paramtre d'entre

Type de donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

TimerEnable

BOOL

Si activ, il active le temporisateur pour qu'il excute et cumule le temps.


Effac par dfaut.

PRE

DINT

Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit
atteindre avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction
active le bit appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.

Remise zro

BOOL

Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son


activation.
Effac par dfaut.

Paramtre de sortie Type de donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

ACC

BOOL

Temps cumul en millisecondes.

EN

BOOL

Sortie de temporisateur activ. Indique que l'instruction de temporisation est active.

TT

BOOL

Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation


est en cours.

DN

BOOL

Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou


gale la valeur prslectionne.

Status

DINT

Etat du bloc fonctionnel.

InstructFault
(Status.0)

BOOL

L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui
s'est pass.

PresetInv (Status.1)

BOOL

La valeur prslectionne est incorrecte.

Publication 1756-RM003F-FR-P - Mai 2002

2-14

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Description : L'instruction TONR cumule le temps jusqu' ce que :


l'instruction TONR soit active ;
ACC PRE.
La base de temps est toujours 1 ms. Pour un temporisateur de
2 secondes par exemple, entrez 2000 pour la valeur .PRE.
TimerEnable
bit d'activation (EN)
bit de temporisation en cours (.TT)
bit de fin de temporisation (.DN)
Encl.
prslection
valeur cumule du temporisateur (.ACC)

le temporisateur n'a
pas atteint la valeur
.PRE

16649

Rglez le paramtre d'entre Reset pour qu'il rinitialise l'instruction.


Si TimerEnable est activ quand Reset est actif, l'instruction TONR
recommence la temporisation lorsque Reset est effac.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

EN, TT et DN sont effacs.


La valeur ACC est rgle sur 0.

EN, TT et DN sont effacs.


La valeur ACC est rgle sur 0.

pendant la premire
excution de l'instruction

EN, TT et DN sont effacs.


La valeur ACC est rgle sur 0.

EN, TT et DN sont effacs.


La valeur ACC est rgle sur 0.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

Lorsque EnableIn passe d'effac activ,


l'instruction est initialise comme indiqu pour la
premire scrutation de l'instruction.
L'instruction est excute.
EnableOut est activ.

EnableIn est toujours activ.


L'instruction est excute.

remise zro

Lorsque le paramtre d'entre Reset est activ,


l'instruction efface EN, TT et DN, puis active
ACC = zro.

Lorsque le paramtre d'entre Reset est activ,


l'instruction efface EN, TT et DN, puis active
ACC = zro.

pendant la post-scrutation

Aucune.

Aucune.

Exemple : A chaque scrutation pendant laquelle limit_switch1 est activ,


l'instruction TONR incrmente la valeur ACC par le temps coul
jusqu' ce que la valeur ACC atteigne la valeur PRE. Lorsque ACC
PRE, le paramtre DN est activ et timer_state est activ.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-15

Texte structur
TONR_01.Preset := 500;
TONR_01.Reset : = reset;
TONR_O1.TimerEnable := limit_switch1;
TONR(TONR_01);
timer_state := TONR_01.DN;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

2-16

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur au
dclenchement avec RAZ
(TOFR)

L'instruction TOFR est un temporisateur non rmanent qui cumule le


temps lorsque TimerEnable est effac.
Cette instruction est disponible en logique relais sous forme de deux
instructions spares : TOF (voir page 2-5) et RES (voir page 2-33).

Oprandes :
TOFR(TOFR_tag);

Texte structur
Variable

Type

Format

Description

point TOFR

FBD_TIMER

structure

structure TOFR

Oprandes de bloc fonctionnel


Oprande

Type

Format

Description

point TOFR

FBD_TIMER

structure

structure TOFR

Structure FBD_TIMER
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

TimerEnable

BOOL

Si effac, il active le temporisateur pour qu'il excute et cumule le temps.


Effac par dfaut.

PRE

DINT

Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit
atteindre avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction
active le bit appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.

Remise zro

BOOL

Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son


activation.
Effac par dfaut.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

ACC

BOOL

Temps cumul en millisecondes.

EN

BOOL

Sortie de temporisateur activ. Indique que l'instruction de temporisation est active.

TT

BOOL

Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation


est en cours.

DN

BOOL

Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale
la valeur prslectionne.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Paramtre d'entre

Type de
donnes

Description

Status

DINT

Etat du bloc fonctionnel.

2-17

InstructFault (Status.0) BOOL

L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui s'est
pass.

PresetInv (Status.1)

La valeur prslectionne est incorrecte.

BOOL

Description : L'instruction TOFR cumule le temps jusqu' ce que :


l'instruction TOFR soit active ;
ACC PRE.
La base de temps est toujours 1 ms. Pour un temporisateur de
2 secondes par exemple, entrez 2000 pour la valeur .PRE.
TimerEnable
bit d'activation (EN)

bit de temporisation en cours (.TT)


bit de fin de temporisation (.DN)
Dclenchement
prslection

valeur cumule du temporisateur (.ACC)


0

16650

le temporisateur n'a pas atteint la valeur .PRE

Rglez le paramtre d'entre Reset pour qu'il rinitialise l'instruction.


Si TimerEnable est effac quand Reset est actif, l'instruction TOFR ne
recommence pas la temporisation lorsque Reset est effac.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

2-18

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la
pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de
l'instruction

EN, TT et DN sont effacs.


la valeur ACC est rgle sur PRE.

EN, TT et DN sont effacs.


la valeur ACC est rgle sur PRE.

pendant la premire
EN, TT et DN sont effacs.
excution de l'instruction la valeur ACC est rgle sur PRE.

EN, TT et DN sont effacs.


la valeur ACC est rgle sur PRE.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas
actualises.

si EnableIn est activ

Lorsque EnableIn passe d'effac activ, l'instruction est initialise


comme indiqu pour la premire scrutation de l'instruction.
L'instruction est excute.
EnableOut est activ.

EnableIn est toujours activ.


L'instruction est excute.

remise zro

Lorsque le paramtre d'entre Reset est activ, l'instruction efface EN, TT


et DN, puis active
ACC = PRE. Remarquez la diffrence avec l'utilisation d'une instruction
RES sur une instruction TOF.

Lorsque le paramtre d'entre


Reset est activ, l'instruction
efface EN, TT et DN, puis active
ACC = PRE. Remarquez la
diffrence avec l'utilisation d'une
instruction RES sur une
instruction TOF.

pendant la
post-scrutation

Aucune.

Aucune.

Exemple : A chaque scrutation suivant l'effacement de limit_switch1, l'instruction


TOFR ajoute le temps coul la valeur ACC jusqu' ce qu'elle
atteigne la valeur PRE. Lorsque ACC PRE, le paramtre DN est effac
et timer_state2 activ.

Texte structur
TOFR_01.Preset := 500
TOFR_01.Reset := reset;
TOFR_O1.TimerEnable := limit_switch1;
TOFR(TOFR_01);
timer_state2 := TOFR_01.DN;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-19

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

2-20

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur rmanent
avec RAZ (RTOR)

L'instruction RTOR est un temporisateur rmanent qui cumule le


temps lorsque TimerEnable est activ.
Cette instruction est disponible en logique relais sous forme de deux
instructions spares : RTO (voir page 2-9) et RES (voir page 2-33).

Oprandes :
RTOR(RTOR_tag);

Texte structur
Variable

Type

Format

Description

point RTOR

FBD_TIMER

structure

structure RTOR

Oprandes de bloc fonctionnel


Oprande

Type

Format

Description

point RTOR

FBD_TIMER

structure

structure RTOR

Structure FBD_TIMER
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

TimerEnable

BOOL

Si activ, il active le temporisateur pour qu'il excute et cumule le temps.


Effac par dfaut.

PRE

DINT

Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit atteindre
avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction active le bit
appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.

Remise zro

BOOL

Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son


activation.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

ACC

DINT

Temps cumul en millisecondes. Cette valeur est retenue mme quand l'entre TimerEnable est
efface, ainsi ce bloc agit diffremment du bloc TONR.

EN

BOOL

Sortie de temporisateur activ. Indique que l'instruction de temporisation est active.

TT

BOOL

Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation est en
cours.

DN

BOOL

Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale la
valeur prslectionne.

Status

DINT

Etat du bloc fonctionnel.

InstructFault (Status.0) BOOL

L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui s'est pass.

PresetInv (Status.1)

La valeur prslectionne est incorrecte.

BOOL

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-21

Description : L'instruction RTOR cumule le temps jusqu' ce qu'elle soit dsactive.


Lorsqu'elle est dsactive, l'instruction RTOR garde sa valeur .ACC.
Vous devez effacer la valeur .ACC l'aide de l'entre Reset.
La base de temps est toujours 1 ms. Pour un temporisateur de
2 secondes par exemple, entrez 2000 pour la valeur .PRE.
TimerEnable

bit d'activation (EN)

remise zro

bit de temporisation en cours (.TT)

bit de fin de temporisation (.DN)

prslection

16651

valeur cumule du temporisateur (.ACC)


0
le temporisateur n'a pas atteint la valeur .PRE

Rglez le paramtre d'entre Reset pour qu'il rinitialise l'instruction.


Si TimerEnable est activ quand Reset est actif, l'instruction RTOR
recommence la temporisation lorsque Reset est effac.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

2-22

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

EN, TT et DN sont effacs


La valeur .ACC n'est pas modifie

EN, TT et DN sont effacs


La valeur .ACC n'est pas modifie

pendant la premire
excution de l'instruction

EN, TT et DN sont effacs


La valeur .ACC n'est pas modifie

EN, TT et DN sont effacs


La valeur .ACC n'est pas modifie

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

Bloc fonctionnel :
Lorsque EnableIn passe d'effac activ, l'instruction est
initialise comme indiqu pour la premire scrutation de
l'instruction.
L'instruction est excute.
EnableOut est activ.

EnableIn est toujours activ.


L'instruction est excute.

remise zro

Lorsque le paramtre d'entre Reset est activ,


l'instruction efface EN, TT et DN, puis active
ACC = zro.

Lorsque le paramtre d'entre Reset est


activ, l'instruction efface EN, TT et DN, puis
active
ACC = zro.

pendant la post-scrutation

Aucune.

Aucune.

Exemple : A chaque scrutation pendant laquelle limit_switch1 est activ,


l'instruction RTOR incrmente la valeur ACC par le temps coul
jusqu' ce que la valeur ACC atteigne la valeur PRE. Lorsque ACC
PRE, le paramtre DN est activ et timer_state3 est activ.

Texte structur
RTOR_01.Preset := 500
RTOR_01.Reset := reset;
RTOR_O1.TimerEnable := limit_switch1;
RTOR(RTOR_01);
timer_state3 := RTOR_01.DN;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage incrmental
(CTU)

2-23

L'instruction CTU compte de faon croissante (incrmentale).


Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction CTUD (voir page 2-29).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Compteur

COUNTER

point

structure de compteur

Prslection

DINT

immdiat

limite suprieure de comptage

Accumulateur

DINT

immdiat

nombre de comptages effectus par le compteur


la valeur initiale est gnralement 0

Structure COUNTER
Mnmonique

Type de donnes

Description

.CU

BOOL

Le bit d'activation de comptage incrmental indique que l'instruction CTU est active.

.DN

BOOL

Le bit de fin indique que .ACC .PRE.

.OV

BOOL

Le bit de dpassement indique que le compteur a dpass la limite suprieure de


2 147 483 647. Le compteur passe alors -2 147 483 648 et recommence compter de faon
incrmentale.

.UN

BOOL

Le bit de dpassement indique que le compteur a dpass la limite infrieure de


-2 147 483 648. Le compteur passe alors 2 147 483 647 et recommence compter de faon
dcrmentale.

.PRE

DINT

La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que
l'instruction n'active le bit .DN.

.ACC

DINT

La valeur cumule indique le nombre de transitions que l'instruction a comptes.

Description : Lorsqu'elle est active et que le bit .CU est effac, l'instruction CTU
ajoute un au compteur. Lorsqu'elle est active et que le bit .CU est
activ, ou lorsqu'elle est dsactive, l'instruction CTU garde sa valeur
.ACC.
tat d'entre de la ligne

bit d'activation de comptage incrmental (.CU)

bit de fin de comptage incrmental (.DN)

prslection

valeur cumule du compteur (.ACC)


16636

Publication 1756-RM003F-FR-P - Mai 2002

2-24

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

La valeur cumule continue d'augmenter, mme une fois le bit .DN


activ. Pour effacer une valeur cumule, utilisez une instruction RES
qui renvoie la structure du compteur ou crivez 0 dans la valeur
cumule.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-25

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .CU est activ pour empcher une incrmentation incorrecte lors de la premire
scrutation de programme.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .CU est effac.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

bit .CU = 0

examine le bit .CU

le bit .CU est activ


.ACC = .ACC + 1

oui

la valeur .ACC passe


zro

non

bit .CU = 1

le bit .UN est effac


le bit .DN est effac
le bit .OV est effac

bit .UN = 1
examine le bit .UN

bit .UN = 0

examine le bit .UN

bit .UN = 0

examine le bit .OV

bit .OV = 0

le bit .OV est activ


bit .UN = 1

bit .OV = 1

examine .ACC

.ACC .PRE

.ACC < .PRE


le bit .DN est effac

le bit .DN est activ

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

2-26

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemple : Une fois que limit_switch_1 est pass 10 fois de dsactiv activ, le
bit .DN est activ et light_1 s'allume. Si limit_switch_1 continue de
passer de dsactiv activ, counter_1 continue d'augmenter et le bit
.DN reste activ. Lorsque limit_switch_1 est activ, l'instruction RES
rinitialise counter_1 (efface les bits d'tat et la valeur .ACC) et light_1
s'teint.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage dcrmental
(CTD)

2-27

L'instruction CTD compte de faon dcroissante (dcrmentale).


Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction CTUD (voir page 2-29).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Compteur

COUNTER

point

structure de compteur

Prslection

DINT

immdiat

limite infrieure de comptage

Accumulateur

DINT

immdiat

nombre de comptages effectus par le


compteur
la valeur initiale est gnralement 0

Structure COUNTER
Mnmonique

Type de donnes

Description

.CD

BOOL

Le bit d'activation de comptage dcrmental indique que l'instruction CTD est active.

.DN

BOOL

Le bit de fin indique que .ACC .PRE.

.OV

BOOL

Le bit de dpassement indique que le compteur a dpass la limite suprieure de


2 147 483 647. Le compteur passe alors -2 147 483 648 et recommence compter de
faon incrmentale.

.UN

BOOL

Le bit de dpassement indique que le compteur a dpass la limite infrieure de


-2 147 483 648. Le compteur passe alors 2 147 483 647 et recommence compter de faon
dcrmentale.

.PRE

DINT

La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que
l'instruction n'active le bit .DN.

.ACC

DINT

La valeur cumule indique le nombre de transitions que l'instruction a comptes.

Publication 1756-RM003F-FR-P - Mai 2002

2-28

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Description : L'instruction CTD est gnralement utilise avec une instruction CTU
qui renvoie la mme structure de compteur.
Lorsqu'elle est active et que le bit .CD est effac, l'instruction CTD
retire un au compteur. Lorsqu'elle est active et que le bit .CD est
activ, ou lorsqu'elle est dsactive, l'instruction CTD garde sa valeur
.ACC.
tat d'entre de la ligne

bit d'activation de comptage dcrmental (.CD)


bit de fin de comptage dcrmental (.DN)

valeur cumule du compteur (.ACC)

prslection
16637

La valeur cumule continue de diminuer, mme une fois le bit .DN


activ. Pour effacer une valeur cumule, utilisez une instruction RES
qui renvoie la structure du compteur ou crivez 0 dans la valeur
cumule.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-29

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .CD est activ pour empcher une diminution incorrecte lors de la premire
scrutation de programme.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .CD est effac.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

bit .CD = 0

examine le bit .CD

le bit .CD est activ


.ACC = .ACC - 1

oui

la valeur .ACC
passe zro

non

bit .CD = 1

le bit .OV est effac


le bit .DN est effac
le bit .UN est effac

bit .OV = 1
examine le bit .OV

bit .OV = 0

examine le bit .UN

bit .UN = 0

examine le bit .OV

bit .OV = 0

le bit .UN est activ


bit .UN = 1

bit .OV = 1

examine .ACC

.ACC .PRE

.ACC < .PRE


le bit .DN est effac

le bit .DN est activ

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

2-30

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemple : Un convoyeur apporte les pices dans une zone tampon. Chaque fois
qu'une pice entre, limit_switch_1 est activ et counter_1 augmente
de 1. Chaque fois qu'une pice sort, limit_switch_2 est activ et
counter_1 diminue de 1. S'il y a 100 pices dans la zone tampon
(counter_1.dn est activ), conveyor_a est activ et empche le
convoyeur d'apporter d'autres pices tant que la zone tampon n'a pas
de place disponible.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage
incrmental/dcrmental
(CTUD)

2-31

L'instruction CTUD augmente de un lorsque CUEnable passe d'effac


activ. L'instruction diminue de un lorsque CDEnable passe d'effac
activ.
Cette instruction existe en logique relais sous forme de trois
instructions spares : CTU (voir page 2-22), CTD (voir page 2-25) et
RES (voir page 2-33).

Oprandes :
CTUD(CTUD_tag);

Texte structur
Variable

Type

Format

Description

point CTUD

FBD_COUNTER

structure

structure CTUD

Bloc fonctionnel
Oprande

Type

Format

Description

point CTUD

FBD_COUNTER

structure

structure CTUD

Structure FBD_COUNTER
Paramtre
d'entre

Type de
donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

CUEnable

BOOL

Activation de comptage incrmental. Lorsque l'entre passe d'efface active, la valeur cumule
augmente de un.
Effac par dfaut.

CDEnable

BOOL

Activation de comptage dcrmental. Lorsque l'entre passe d'efface active, la valeur cumule
diminue de un.
Effac par dfaut.

PRE

DINT

Valeur de compteur prslectionne. Valeur que la valeur cumule doit atteindre avant l'activation de
DN.
Valeurs correctes = tout nombre entier.
La valeur par dfaut est 0.

Remise zro

BOOL

Demande de rinitialisation du temporisateur. Le compteur est rinitialis lors de son activation.


Effac par dfaut.

Publication 1756-RM003F-FR-P - Mai 2002

2-32

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

ACC

DINT

Valeur cumule.

CU

BOOL

Comptage incrmental activ.

CD

BOOL

Comptage dcrmental activ.

DN

BOOL

Comptage termin. Activ quand la valeur cumule est suprieure ou gale la valeur
prslectionne.

OV

BOOL

Dpassement suprieur du compteur. Indique que le compteur a dpass la limite suprieure


de 2 147 483 647.
Le compteur repasse alors 2 147 483 648 et recommence compter de faon
incrmentale.

UN

BOOL

Dpassement infrieur du compteur. Indique que le compteur a dpass la limite infrieure


de 2 147 483 648.
Le compteur repasse alors 2 147 483 647 et recommence compter de faon
dcrmentale.

Description Lorsqu'elle est active et que CUEnable est activ, l'instruction CTUD
ajoute un au compteur. Lorsqu'elle est active et que CDEnable est
activ, l'instruction CTUD retire un au compteur.
Les paramtres d'entre CUEnable et CDEnable peuvent tre modifis
pendant la mme scrutation. L'instruction excute le comptage
incrmental avant le comptage dcrmental.

Comptage incrmental

CUEnable

bit d'activation de comptage incrmental (CU)

bit de fin de comptage incrmental (DN)

prslection

valeur cumule du compteur (ACC)


16636

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-33

Comptage dcrmental

CDEnable

bit d'activation de comptage dcrmental (CD)


bit de fin de comptage dcrmental (DN)

valeur cumule du compteur (ACC)

prslection

16637

Lorsqu'elle est dsactive, l'instruction CTUD, elle garde sa valeur


cumule. Activez le paramtre d'entre Reset de la structure
FBD_COUNTER pour qu'il rinitialise l'instruction.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Pas d'initialisation ncessaire.

Pas d'initialisation ncessaire.

pendant la premire
scrutation de l'instruction

CUEnablen-1 et CDEnablen-1 sont activs.

CUEnablen-1 et CDEnablen-1 sont activs.

pendant la premire
excution de l'instruction

CUEnablen-1 et CDEnablen-1 sont activs.

CUEnablen-1 et CDEnablen-1 sont activs.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

L'instruction active CUEnablen-1 et CDEnablen-1.


Lorsque EnableIn passe d'effac activ :
l'instruction est excute ;
EnableOut est activ.

L'instruction active CUEnablen-1 et CDEnablen-1.


EnableIn est toujours activ.
L'instruction est excute.

remise zro

Lorsqu'elle est active, l'instruction efface


CUEnablen-1, CDEnablen-1, CU, CD, DN, OV et UN,
puis active
ACC = zro.

Lorsqu'elle est active, l'instruction efface


CUEnablen-1, CDEnablen-1, CU, CD, DN, OV et UN,
puis active
ACC = zro.

pendant la post-scrutation

Aucune.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

2-34

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemple : Lorsque limit_switch1 passe d'effac activ, CUEnable est activ


pour une scrutation et l'instruction CTUD augmente la valeur ACC de
1. Lorsque ACC PRE, le paramtre DN est activ, ce qui active
l'instruction de bloc fonctionnel suivant l'instruction CTUD.

Texte structur
CTUD_01.Preset := 500;
CTUD_01.Reset := Restart;
CTUD_O1.CUEnable := limit_switch1;
CTUD(CTUD_01);
counter_state := CTUD_01.DN;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Remise zro (RES)

2-35

L'instruction RES rinitialise une structure TIMER, COUNTER ou


CONTROL.

Oprandes :
Logique relais
Oprande

Type

Format

Description

structure

TIMER
CONTROL
COUNTER

point

structure rinitialiser

Description : Lorsqu'elle est active, l'instruction RES efface les lments suivants :
Lors de l'utilisation d'une instruction
RES pour une structure

L'instruction efface

TIMER

la valeur .ACC
les bits d'tat de la commande

COUNTER

la valeur .ACC
les bits d'tat de la commande

CONTROL

la valeur .POS
les bits d'tat de la commande

ATTENTION

Comme l'instruction RES efface la valeur .ACC, le bit


.DN et le bit .TT, n'utilisez pas cette instruction pour
rinitialiser un temporisateur TOF.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction RES rinitialise la structure indique.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

2-36

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemples :
Exemple

Description
Si activ, rinitialise timer_3.

Si activ, rinitialise counter_1.

Si activ, rinitialise control_1.

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions d'entre/de sortie


(MSG, GSV, SSV)

Introduction

Les instructions d'entre/de sortie lisent ou crivent, soit des donnes


vers ou partir de l'automate, soit un bloc de donnes vers ou partir
d'un autre module sur un autre rseau.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

changer des donnes avec un autre module

MSG

logique relais
texte structur

3-2

obtenir des informations sur l'tat de


l'automate

GSV

logique relais
texte structur

3-30

rgler les informations sur l'tat de l'automate

SSV

logique relais
texte structur

3-30

Publication 1756-RM003F-FR-P - Mai 2002

3-2

Instructions d'entre/de sortie (MSG, GSV, SSV)

Message (MSG)

L'instruction MSG crit ou lit un bloc de donnes de faon asynchrone


vers un autre module sur un rseau.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Contrle de message

MESSAGE

point

structure de message

Texte structur
MSG(MessageControl);

Les oprandes sont les mmes que ceux de l'instruction MSG en


logique relais.

Structure MESSAGE
Mnmonique

Type de
donnes

Description

.FLAGS

INT

Le membre .FLAGS permet l'accs aux membres d'tat (bits) via un mot de 16 bits.
Ce bit

est le membre

.EW

.ER

.DN

.ST

.EN

.TO

.EN_CC

Important : la rinitialisation des bits d'tat MSG pendant que MSG est actif peut perturber les
communications.
.ERR

INT

Si le bit .ER est activ, le mot de code d'erreur identifie les codes d'erreur pour l'instruction MSG.

.EXERR

INT

Le mot de code d'erreur tendu donne des informations de code d'erreur supplmentaires pour
certains codes d'erreur.

.REQ_LEN

INT

La longueur requise indique le nombre de mots que l'instruction de message tente de transfrer.

.DN_LEN

INT

La longueur de fin indique le nombre de mots ayant effectivement t transfrs.

.EW

BOOL

Le bit d'activation en attente est activ lorsque l'automate dtecte qu'une demande de message
est entre dans la file d'attente. L'automate rinitialise le bit .EW lorsque le bit .ST est activ.

.ER

BOOL

Le bit d'erreur est activ lorsque l'automate dtecte qu'un transfert a chou. Le bit .ER est
rinitialis au passage de l'tat d'entre de la ligne de faux vrai suivant.

.DN

BOOL

Le bit de fin est activ lorsque la dernire trame du message est transfre avec succs. Le bit
.DN est rinitialis au passage de l'tat d'entre de la ligne de faux vrai suivant.

.ST

BOOL

Le bit de dbut est activ lorsque l'automate commence l'excution de l'instruction MSG. Le bit
.ST est rinitialis lorsque le bit .DN ou le bit .ER est activ.

.EN

BOOL

Le bit d'activation est activ lorsque l'tat d'entre de la ligne passe vrai et reste activ jusqu'
ce que le bit .DN ou le bit .ER soit activ et que l'tat d'entre de la ligne soit faux. Si l'tat
d'entre de la ligne passe faux, mais si le bit .DN et le bit .ER sont effacs, le bit .EN reste
activ.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-3

Mnmonique

Type de
donnes

Description

.TO

BOOL

Si vous activez le bit .TO manuellement, l'automate arrte de traiter le message et active le bit
.ER.

.EN_CC

BOOL

Le bit d'activation de cache dtermine la gestion de la connexion MSG. Reportez-vous Choix


d'une option de cache, page 3-28. Les connexions d'instructions MSG sortant par le port srie ne
sont pas mises en mmoire cache, mme si le bit .EN_CC est activ.

.ERR_SRC

SINT

Utilis par le logiciel RSLogix 5000 pour indiquer l'erreur de chemin dans la bote de dialogue
Configuration du message.

.DestinationLink

INT

Pour changer le lien destinataire d'un message DH+ ou CIP avec ID source, rglez le membre sur
la valeur requise.

.DestinationNode

INT

Pour changer la station destinataire d'un message DH+ ou CIP avec ID source, rglez le membre
sur la valeur requise.

.SourceLink

INT

Pour changer le lien source d'un message DH+ ou CIP avec ID source, rglez le membre sur la
valeur requise.

.Class

INT

Pour changer le paramtre de classe d'un message gnrique CIP, rglez le membre sur la valeur
requise.

.Attribute

INT

Pour changer le paramtre d'attribut d'un message gnrique CIP, rglez le membre sur la valeur
requise.

.Instance

DINT

Pour changer le paramtre d'occurrence d'un message gnrique CIP, rglez le membre sur la
valeur requise.

.LocalIndex

DINT

Si vous utilisez un astrisque [*] pour dsigner le numro d'lment du tableau local, LocalIndex
fournit le numro d'lment. Pour changer le numro d'lment, rglez ce membre sur la valeur
requise.
Si le message

Le tableau local est

lit les donnes

lment de destination

crit les donnes

lment source

.Channel

SINT

Pour envoyer le message par un canal diffrent du module 1756-DHRIO, rglez ce membre sur la
valeur requise. Utilisez le caractre ASCII A ou B.

.Rack

SINT

Pour changer le numro de rack d'un message de bloc-transfert, rglez ce membre sur le numro
de rack requis (octal).

.Group

SINT

Pour changer le numro de groupe d'un message de bloc-transfert, rglez ce membre sur le
numro de groupe requis (octal).

.Slot

SINT

Pour changer le numro d'emplacement d'un message de bloc-transfert, rglez ce membre sur le
numro d'emplacement requis (octal).

.Path

STRING

Si le message
passe par ce
rseau

Indiquez le numro d'emplacement en

RIO

octal

ControlNet

dcimal (0-15)

Pour envoyer le message vers un automate diffrent, rglez ce membre sur le nouveau chemin.
Entrez le chemin en valeurs hexadcimales.
N'entrez pas les virgules [,]
Par exemple, pour ce chemin : 1, 0, 2, 42, 1, 3, entrez $01$00$02$2A$01$03.
Pour naviguer jusqu' un quipement et crer automatiquement une partie de la nouvelle chane
ou la nouvelle chane entire, cliquez avec le bouton droit de la souris sur une chane de
caractres et choisissez Go to Message Path Editor.

Publication 1756-RM003F-FR-P - Mai 2002

3-4

Instructions d'entre/de sortie (MSG, GSV, SSV)

Mnmonique

Type de
donnes

Description

.RemoteIndex

DINT

Si vous utilisez un astrisque [*] pour dsigner le numro d'lment du tableau distant,
RemoteIndex fournit le numro d'lment. Pour changer le numro d'lment, rglez ce membre
sur la valeur requise.

.RemoteElement

STRING

Si le message

Le tableau distant est

lit les donnes

lment source

crit les donnes

lment de destination

Pour indiquer une adresse ou un point diffrent dans l'automate auquel est envoy le message,
rglez ce membre sur la valeur requise. Entrez l'adresse ou le point en caractres ASCII.
Si le message

Le tableau distant est

lit les donnes

lment source

crit les donnes

lment de destination

.UnconnnectedTimeout

DINT

Dpassement de temps pour les messages non connects. La valeur par dfaut est de
30 secondes.

.ConnectionRate

DINT

.TimeoutMultiplier

SINT

Le ConnectionRate multipli par le TimeoutMultiplier produit le dpassement de temps des


messages connects.
Le temps de connexion par dfaut est de 7,5 secondes.
Le multiplicateur de dpassement de temps (TimeoutMultiplier) par dfaut est 0 (ce qui
quivaut un facteur de multiplication de 4).
Le dpassement de temps par dfaut des messages connects est de 30 secondes
(7,5 secondes x 4 = 30 secondes).
Pour changer le dpassement de temps, changez le taux de connexion (ConnectionRate)
et laissez le multiplicateur de dpassement de temps (TimeoutMultiplier) sa valeur par
dfaut.

ATTENTION

L'automate traite les bits .ST, .EW, .DN et .ER de faon


asynchrone la scrutation de programme. Pour examiner ces
bits en logique relais, copiez le mot .FLAGS dans un point
INT et vrifiez les bits partir de l. Dans le cas contraire, des
problmes de temporisation peuvent invalider votre
application en provoquant des dgts matriels et des
blessures corporelles.

Description L'instruction MSG transfre des lments de donnes.


Cette instruction est une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition (voir l'annexe C).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-5

La taille de chaque lment dpend du type de donnes que vous


indiquez et du type de message de commande que vous utilisez.
connexion avec .EN_CC = 1

tat d'entre de la ligne

bit .EN

bit .EW

connexion avec .EN_CC = 0

bit .ST

bit .DN ou bit .ER


41382

Description

Description

si l'tat d'entre de la ligne est vrai


.EN est activ
.EW est activ
la connexion est ouverte*

le message est envoy


.ST est activ
.EW est effac

le message est envoy


.ST est activ
.EW est effac

le message est termin ou une erreur s'est produite


et l'tat d'entre de la ligne est toujours vrai
.DN ou .ER est activ
.ST est effac
la connexion est ferme (si .EN_CC = 0)

le message est termin ou une erreur s'est produite


et l'tat d'entre de la ligne est faux
.DN ou .ER est activ
.ST est effac
la connexion est ferme (si .EN_CC = 0)
.EN est effac (l'tat d'entre de la ligne est faux)

l'tat d'entre de la ligne passe faux et .DN ou .ER


est activ
.EN est effac

l'tat d'entre de la ligne est vrai et


.DN ou .ER tait prcdemment activ
.EN est activ
.EW est activ
la connexion est ouverte*
.DN ou .ER est effac

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

3-6

Instructions d'entre/de sortie (MSG, GSV, SSV)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est faux


(ne s'applique pas au texte structur)

Action du texte structur

bit .EN = 1
examine le bit .EN
bit .EN = 0

bit .EW = 1
examine le bit .EW

bit .EW = 0

bit .ST = 1
examine le bit .ST

bit .ST = 0

bit .DN =
examine le bit .DN

bit .DN = 0

bit .ER = 1

bit .ER = 0
examine le bit .ER

oui

commande de
bloc-transfert

non
chemin du module
correct
oui

non
bit .DN = 1
oui

examine le bit .DN

non
connexion du
module tablie

bit .DN = 0

le bit .EN est effac

excute la demande de
message

bit .ER = 1
examine le bit .ER

le bit .EW est activ

le bit .ER est activ

bit .ER = 0

l'tat de sortie de la ligne


est rgl sur faux

fin

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

Condition

Action de la logique relais

Action du texte structur

EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

Condition

Action de la logique relais

Excution de l'instruction

3-7

Action du texte structur

bit .EN = 1

bit .EN = 0
examine le bit .EN

bit .EW = 1
examine le bit .EW

bit .EW = 1
examine le bit .EW

bit .EW = 0

bit .EW = 0

bit .ST = 1

bit .ST = 1
examine le bit .ST

examine le bit .ST

bit .ST = 0

bit .ST = 0

les bits .EW, .ST, .TO, .DN et .ER sont


effacs
le bit .EN est activ

bit .DN = 1
examine le bit .DN

le bit .EN est


activ

bit .DN = 0

bit .ER = 1

bit .ER = 0
examine le bit .ER

commande de
bloc-transfert

oui

non
chemin du module
correct
oui

non

oui

non
connexion du
module tablie

les bits .EW, .ST, .TO, .DN et .ER sont


effacs
le bit .EN est activ
excute la demande de message
le bit .EW est activ
le bit .ER est activ

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

3-8

Instructions d'entre/de sortie (MSG, GSV, SSV)

Codes d'erreur MSG

Les codes d'erreur dpendent du type d'instruction MSG.

Codes d'erreur
Le logiciel RSLogix 5000 n'affiche pas toujours la description
complte.
Code d'erreur (hex)

Description

Affichage dans le logiciel

0001

Echec de la connexion (voir les codes d'erreur tendus)

identique la description

0002

Ressources insuffisantes

identique la description

0003

Valeur incorrecte

identique la description

0004

Erreur de syntaxe ESE (voir les codes d'erreur tendus)

identique la description

0005

Destination inconnue, classe non accepte, occurrence non dfinie ou


lment de structure non dfini (voir les codes d'erreur tendus)

identique la description

0006

Espace de trame insuffisant

identique la description

0007

Connexion perdue

identique la description

0008

Service non accept

identique la description

0009

Erreur dans le segment de donnes ou valeur d'attribut incorrecte

identique la description

000A

Erreur de liste d'attributs

identique la description

000B

L'tat existe dj

identique la description

000C

Conflit de modle d'objet

identique la description

000D

L'objet existe dj

identique la description

000E

Attribut non rglable

identique la description

000F

Permission refuse

identique la description

0010

Conflit d'tat du dispositif

identique la description

0011

La rponse ne peut tre insre

identique la description

0012

Primitive du fragment

identique la description

0013

Donnes de commande insuffisantes

identique la description

0014

Attribut non accept

identique la description

0015

Trop de donnes

identique la description

001A

Demande de passerelle trop longue

identique la description

001B

Rponse de passerelle trop longue

identique la description

001C

Manque de liste d'attributs

identique la description

001D

Liste d'attributs incorrecte

identique la description

001E

Erreur de service intgr

identique la description

001F

Panne lie la connexion (voir les codes d'erreur tendus)

identique la description

0022

Rponse reue incorrecte

identique la description

0025

Erreur de segment cl

identique la description

0026

Erreur ESE incorrecte

identique la description

0027

Attribut inattendu dans la liste

identique la description

0028

Erreur DeviceNet - identit de membre incorrecte

identique la description

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

Code d'erreur (hex)

Description

Affichage dans le logiciel

0029

Erreur DeviceNet - membre non rglable

identique la description

00D1

Le module n'est pas en tat de marche

erreur inconnue

00FB

Port de message non accept

erreur inconnue

00FC

Types de donnes de message non accept

erreur inconnue

00FD

Message non initialis

erreur inconnue

00FE

Timeout de message

erreur inconnue

00FF

Erreur gnrale (voir les codes d'erreur tendus)

erreur inconnue

3-9

Codes d'erreur tendus


Le logiciel RSLogix 5000 n'affiche pas de texte pour les codes d'erreur
tendus.
Les codes suivants sont les codes d'erreur tendus pour le code
d'erreur 0001.
Code d'erreur tendu
(hex)

Description

Code d'erreur tendu


(hex)

Description

0100

Connexion en cours d'utilisation

0203

Timeout de connexion

0103

Transport non accept

0204

0106

Conflit de proprit

Timeout de message non


connect

0107

Connexion introuvable

0205

Erreur de paramtre d'envoi non


connect

0108

Type de connexion incorrecte

0206

Message trop long

0109

Taille de connexion incorrecte

0301

Pas de mmoire tampon

0110

Module non configur

0302

Bande passante non disponible

0111

EPR non accept

0303

Aucun filtre disponible

0114

Module incorrect

0305

Correspondance de signature

0115

Type de dispositif incorrect

0311

Port non disponible

0116

Rvision incorrecte

0312

Adresse de lien non disponible

0118

Format de configuration incorrect

0315

Type de segment incorrect

011A

Plus de connexions disponibles


pour l'application

0317

Connexion non programme

Publication 1756-RM003F-FR-P - Mai 2002

3-10

Instructions d'entre/de sortie (MSG, GSV, SSV)

Les codes suivants sont les codes d'erreur tendus pour le code
d'erreur 001F.
Code d'erreur tendu (hex)

Description

0203

Timeout de connexion

Les codes suivants sont les codes d'erreur tendus pour les codes
d'erreur 0004 et 0005.
Code d'erreur tendu (hex)

Description

0000

Insuffisance de mmoire pour l'tat tendu

0001

Insuffisance d'occurrences pour l'tat tendu

Les codes suivants sont les codes d'erreur tendus pour le code
d'erreur 00FF.
Code d'erreur
tendu (hex)

Description

Code d'erreur
tendu (hex)

Description

2001

ESE excessif

2108

2002

Mauvaise valeur de paramtre

Automate en mode de transfert ou de


chargement

2018

Rejet de smaphore

2109

Essai de changement des dimensions de


tableau

201B

Taille trop petite

210A

Nom de symbole incorrect

201C

Taille incorrecte

210B

Le symbole n'existe pas

2100

Echec de privilge

210E

Echec de la recherche

2101

Position de commutateur cl incorrecte

210F

La tche ne peut commencer

2102

Mot de passe incorrect

2110

Ecriture impossible

2103

Aucun mot de passe attribu

2111

Lecture impossible

2104

Adresse hors limites

2112

Sous-programme partag non modifiable

2105

Adresse et quantit hors limites

2113

Automate en mode de dfaut

2106

Donnes utilises

2114

Mode Run verrouill

2107

Type incorrect ou non accept

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-11

Codes d'erreur PLC et SLC (.ERR)


Pour les codes d'erreur PLC et SLC, le logiciel de programmation
n'affiche pas la description complte.
Code
d'erreur
(hex)

Description

Code
d'erreur
(hex)

Description

1000

Commande ou format non admis de la part du


processeur local

F00B

Erreur de privilge ; accs refus

F00C

La fonction demande n'est pas disponible

2000

Module de communication hors service

F00D

La demande est redondante

3000

Station dcentralise manquante, dconnectez ou


mettez hors tension

F00E

La commande ne peut tre excute

4000

Processeur connect mais en dfaut (matriel)

F00F

Dpassement ; dpassement d'histogramme

5000

Mauvais numro de station

F010

Pas d'accs

6000

La fonction demande n'est pas disponible

F011

Le type de donnes demand ne correspond pas aux


donnes disponibles

7000

Le processeur est en mode Program

F012

Paramtres de commande incorrects

8000

Le fichier de compatibilit du processeur n'existe


pas

F013

La rfrence d'adresse existe dans une zone efface

9000

La station dcentralise ne peut mettre la


commande dans le buffer

F014

Echec de l'excution de la commande pour une


raison inconnue
Dpassement d'histogramme de PLC-3

B000

Le processeur est en cours de chargement et n'est


pas accessible

F015

Erreur de conversion des donnes

F001

Le processeur a incorrectement converti l'adresse

F016

Le scrutateur n'est pas disponible pour


communiquer avec un adaptateur de rack 1771

F002

Adresse incomplte

F017

F003

Adresse incorrecte

L'adaptateur n'est pas disponible pour communiquer


avec le module

F004

Format d'adresse non admis - symbole non trouv

F018

La rponse du module 1771 n'est incorrecte

F005

Format d'adresse non admis - le symbole a 0 ou plus


de caractres que le nombre maximum accept par
le dispositif

F019

Etiquette en double

F01A

Le propritaire du fichier est actif - le fichier est


utilis

F01B

Le propritaire du programme est actif - quelqu'un


effectue un chargement ou des modifications en
ligne

F01C

Le fichier disque est protg en criture ou non


accessible pour toute autre raison (hors ligne
uniquement)

F01D

Le fichier disque est utilis par une autre


application
Mise jour non effectue (hors ligne uniquement)

F006

Le fichier d'adresses n'existe pas dans le


processeur cible

F007

Le fichier de destination est trop petit pour le


nombre de mots demand

F008

La demande ne peut tre excute


La situation a chang pendant l'opration
multitrame

F009

Les donnes ou le fichier sont trop grands


Mmoire non disponible

F00A

Le processeur cible ne peut mettre les informations


demandes en trames

Publication 1756-RM003F-FR-P - Mai 2002

3-12

Instructions d'entre/de sortie (MSG, GSV, SSV)

Codes d'erreur de bloc-transfert


Les codes suivants sont les codes d'erreur propres aux blocs-transferts
Logix5000.
Code d'erreur
(hex)

Description

Affichage dans le
logiciel

00D0

Le scrutateur n'a pas reu de rponse de bloc-transfert du module de bloc-transfert dans les
3,5 secondes aprs la demande.

erreur inconnue

00D1

Le checksum de la rponse de lecture ne correspond pas au checksum des donnes

erreur inconnue

00D2

Le scrutateur a demand une lecture ou une criture, mais le module de bloc-transfert a


rpondu avec l'inverse

erreur inconnue

00D3

Le scrutateur a demand une longueur et le module de bloc-transfert a rpondu avec une


longueur diffrente

erreur inconnue

00D6

Le scrutateur a reu une rponse du module de bloc-transfert indiquant que la demande


d'criture a chou

erreur inconnue

00EA

Le scrutateur n'a pas t configur pour communiquer avec le rack qui doit contenir ce module
de bloc-transfert

erreur inconnue

00EB

L'emplacement logique indiqu n'est pas disponible pour la taille de rack donne

erreur inconnue

00EC

Une demande de bloc-transfert est en cours et une rponse est requise avant qu'une autre
demande ne puisse commencer

erreur inconnue

00ED

La taille des demandes de bloc-transfert ne correspond pas aux tailles de demandes de


bloc-transfert valables

erreur inconnue

00EE

Le type de demande de bloc-transfert ne correspond pas au BT_READ ou BT_WRITE attendu

erreur inconnue

00EF

Le scrutateur n'a pas trouv d'emplacement disponible dans la table des blocs-transferts pour
permettre la demande de bloc-transfert

erreur inconnue

00F0

Le scrutateur a reu une demande de rinitialisation des canaux d'E/S dcentralises alors qu'il erreur inconnue
y avait des blocs-transferts en attente

00F3

Les files d'attente pour les bloc-transferts distance sont pleines

erreur inconnue

00F5

Aucun canal de communication n'est configur pour le rack ou l'emplacement demand

erreur inconnue

00F6

Aucun canal de communication n'est configur pour les E/S dcentralises

erreur inconnue

00F7

Le timeout du bloc-transfert, dfini dans l'instruction, a t dpass avant la fin

erreur inconnue

00F8

Erreur du protocole de bloc-transfert - bloc-transfert non sollicit

erreur inconnue

00F9

Les donnes de bloc-transfert ont t perdues en raison d'un mauvais canal de communication erreur inconnue

00FA

Le module de bloc-transfert a demand une longueur diffrente de celle de l'instruction de


bloc-transfert associe

erreur inconnue

00FB

Le checksum des donnes de lecture du bloc-transfert est faux

erreur inconnue

00FC

Un transfert incorrect de donnes d'criture du bloc-transfert a t effectu entre l'adaptateur


et le module de bloc-transfert

erreur inconnue

00FD

La taille du bloc-transfert plus celle de l'index de la table des donnes de bloc-transfert est
suprieure la taille du fichier de la table des donnes de bloc-transfert

erreur inconnue

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

Spcification de la
configuration

3-13

Une fois que vous avez entr l'instruction MSG et indiqu la structure
MESSAGE, utilisez l'onglet Configuration de Message dans le logiciel
de programmation pour dfinir les dtails du message.

Cliquez ici pour configurer l'instruction MSG

Les dtails que vous configurez dpendent du type de message que


vous slectionnez.

42976

Si le dispositif cible est un

Slectionnez l'un de ces types de message

Voir page

Automate Logix5000

Lecture de table de donnes CIP

3-14

Ecriture de table de donnes CIP


Module d'E/S que vous configurez avec le
logiciel RSLogix 5000

Reconfiguration du module

3-14

CIP gnrique

3-16

Automate PLC-5

Ecriture de type PLC5

3-17

Ecriture de type PLC5


Lecture de gamme de mots PLC5
Ecriture de gamme de mots PLC5
Automate SLC
Automate MicroLogix

Ecriture de type SLC

Module de bloc-transfert

Bloc-transfert lecture

3-18

Ecriture de type SLC


3-19

Bloc-transfert criture
Processeur PLC-3

Ecriture de type PLC3

3-20

Ecriture de type PLC3


Lecture de gamme de mots PLC3
Ecriture de gamme de mots PLC3
Processeur PLC-2

Lecture non protge PLC2

3-21

Ecriture non protge PLC2

Publication 1756-RM003F-FR-P - Mai 2002

3-14

Instructions d'entre/de sortie (MSG, GSV, SSV)

Vous devez dfinir ces informations de configuration


Pour cette proprit
Elment source

Indiquez
Si vous slectionnez un type de message de lecture, l'lment source est l'adresse des donnes que
vous voulez lire dans le dispositif cible. Utilisez la syntaxe d'adressage du dispositif cible.
Si vous slectionnez un type de message d'criture, le point source est le premier lment du point
que vous voulez envoyer vers l'quipement cible.

Nombre d'lments

Elment de destination

Le nombre d'lments que vous lisez/crivez dpend du type de donnes que vous utilisez. Un lment
renvoie un bloc de donnes lies. Par exemple, le point timer1 est un lment constitu d'une structure
de contrle de temporisateur.
Si vous slectionnez un type de message de lecture, l'lment de destination est le premier lment
du point dans l'automate Logix5000 o vous voulez stocker les donnes que vous lisez partir de
l'quipement cible.
Si vous slectionnez un type de message d'criture, l'lment de destination est l'adresse de
l'emplacement dans le dispositif cible o vous voulez crire les donnes.

Spcification des messages de lecture et d'criture du fichier de


donnes CIP
Les types de messages de lecture et d'criture du fichier de donnes
CIP transfre les donnes entre les automates Logix5000.
Slectionnez cette commande

Si vous voulez

Lecture de table de donnes CIP

lire des donnes partir d'un autre automate.


Les types source et de destination doivent concorder.

Ecriture de table de donnes CIP

crire des donnes vers un autre automate.


Les types source et de destination doivent concorder.

Reconfiguration d'un module d'E/S


Utilisez le message de reconfiguration du module (Module
Reconfigure) pour envoyer une nouvelle configuration vers un
module d'E/S. Pendant la reconfiguration :
les modules d'entres continuent d'envoyer des donnes
d'entre l'automate ;
les modules de sorties continuent de commander leurs
quipements de sortie.
Un message de reconfiguration du module requiert les proprits de
configuration suivantes :

Publication 1756-RM003F-FR-P - Mai 2002

Dans cette proprit

Slectionnez

Type de message

Reconfiguration du module

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-15

Exemple : Pour reconfigurer un module d'E/S :


1. Rglez le membre requis du point de configuration du module
sur la nouvelle valeur.
2. Envoyez un message de reconfiguration au module.
Lorsque reconfigure[5] est activ, rglez l'alarme haute sur 60 pour le
module local dans l'emplacement 4. Le message de reconfiguration du
module envoie alors la nouvelle valeur de l'alarme au module.
L'instruction ONS empche la ligne d'envoyer des messages multiples
au module pendant que reconfigure[5] est actif.

Logique relais

Texte structur
IF reconfigure[5] AND NOT reconfigure[6]THEN
Local:4:C.Ch0Config.HAlarmLimit := 60;
IF NOT change_Halarm.EN THEN
MSG(change_Halarm);
END_IF;
END_IF;
reconfigure[6] := reconfigure[5];

Publication 1756-RM003F-FR-P - Mai 2002

3-16

Instructions d'entre/de sortie (MSG, GSV, SSV)

Dfinition des messages CIP gnriques


Un message CIP gnrique excute une opration particulire sur un
module d'E/S.
Si vous voulez

Dans cette proprit

Tapez ou slectionnez

Effectuer un test d'impulsion sur un


module de sorties TOR

Type de message

CIP gnrique

Type de service

Test d'impulsion

Source

tag_name de type INT [5]


Ce tableau contient :

Rinitialiser les fusibles lectroniques sur


un module de sorties TOR

Rinitialiser les diagnostics verrouills sur


un module d'entres

Rinitialiser les diagnostics verrouills sur


un module de sorties

Dverrouiller l'alarme d'un module


d'entres analogiques

Publication 1756-RM003F-FR-P - Mai 2002

tag_name[0]

bit de masque de points tester (ne teste


qu'un point la fois)

tag_name[1]

rserv, laisser 0

tag_name[2]

largeur d'impulsion (centaines de s,


gnralement 20)

tag_name[3]

dlai de passage par zro pour E/S


ControlLogix (centaines de s,
gnralement 40)

tag_name[4]

vrifier le dlai

Destination

laisser en blanc

Type de message

CIP gnrique

Type de service

Rinitialiser le
fusible lectronique

Source

tag name de type DINT


Ce point reprsente un masque de bit des points pour la
rinitialisation des fusibles.

Destination

laisser en blanc

Type de message

CIP gnrique

Type de service

Rinitialiser les diagnostics verrouills (I)

Source

tag_name de type DINT


Ce point reprsente un masque de bit des points pour la
rinitialisation des diagnostics.

Type de message

CIP gnrique

Type de service

Rinitialiser les diagnostics verrouills (O)

Source

tag_name de type DINT


Ce point reprsente un masque de bit des points pour la
rinitialisation des diagnostics.

Type de message

CIP gnrique

Type de service

Slectionnez l'alarme que vous voulez dverrouiller :


Dverrouiller toutes les alarmes (I)
Dverrouiller l'alarme haute analogique (I)
Dverrouiller l'alarme haute haute analogique (I)
Dverrouiller l'alarme basse analogique (I)
Dverrouiller l'alarme basse basse analogique (I)
Dverrouiller l'alarme de variation (I)

Instance

Canal de l'alarme que vous voulez dverrouiller

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-17

Si vous voulez

Dans cette proprit

Tapez ou slectionnez

Dverrouiller l'alarme d'un module de


sorties analogiques

Type de message

CIP gnrique

Type de service

Slectionnez l'alarme que vous voulez dverrouiller :


Dverrouiller toutes les alarmes (O)
Dverrouiller l'alarme haute (O)
Dverrouiller l'alarme basse (O)
Dverrouiller l'alarme d'acclration ou de dclration (O)

Instance

Canal de l'alarme que vous voulez dverrouiller

Dfinition des messages PLC-5


Utilisez les types de message PLC-5 pour communiquer avec les
automates PLC-5.
Slectionnez cette commande

Si vous voulez

Ecriture de type PLC5

Lire des donnes de type nombre entier 16 bits, virgule flottante ou chane et
maintenir l'intgrit des donnes. Voir le tableau 3.1, page 3-17.

Ecriture de type PLC5

Ecrire des donnes de type nombre entier 16 bits, virgule flottante ou chane et
maintenir l'intgrit des donnes. Voir le tableau 3.1, page 3-17

Lecture de gamme de mots PLC5

Lire une gamme contigu de mots de 16 bits dans la mmoire du PLC-5 quel que soit le
type de donnes.
Cette commande commence l'adresse dfinie comme lment source et lit de faon
squentielle le nombre de mots de 16 bits demand.
Les donnes de l'lment source sont stockes, en commenant l'adresse indique
comme point de destination.

Ecriture de gamme de mots PLC5

Ecrire une gamme contigu de mots de 16 bits partir de la mmoire du Logix5000 quel
que soit le type de donnes vers la mmoire du PLC-5.
Cette commande commence l'adresse dfinie comme point source et lit de faon
squentielle le nombre de mots de 16 bits demand.
Les donnes du point source sont stockes, en commenant l'adresse indique
comme lment de destination dans le processeur PLC-5.

Le tableau suivant indique les types de donnes utiliser avec les


messages de lecture et d'criture de type PLC5.
Tableau 3.1 Types de donnes pour les messages de lecture et d'criture de type
PLC5
Pour ce type de donnes
PLC-5

Utilisez ce type de donnes Logix5000

INT

REAL

INT
DINT (n'crivez des valeurs DINT sur un automate PLC-5
que si la valeur est 32 768 et 32 767.)

INT

ST

STRING

Publication 1756-RM003F-FR-P - Mai 2002

3-18

Instructions d'entre/de sortie (MSG, GSV, SSV)

Les commandes de type lecture et criture fonctionnent galement


avec les processeurs SLC 5/03 (OS303 et ultrieur), SLC 5/04 (OS402
et ultrieur) et SLC 5/05.
Le diagramme suivant montre comment les commandes de type
lecture directe et lecture ordonne diffrent. L'exemple utilise des
commandes de lecture d'un processeur PLC-5 vers un automate
Logix5000.
Commande de lecture directe
mots de 16 bits dans
processeur PLC-5

Commande de lecture ordonne

mots de 32 bits dans


automate Logix5000

mots de 32 bits dans


automate Logix5000

mots de 16 bits dans


processeur PLC-5

Les commandes de lecture directe conservent la structure et la


valeur des donnes.

Les commandes de lecture ordonne remplissent le point de destination


de faon contigu. La structure et la valeur des donnes changent selon
le type des donnes de destination.

Dfinition des messages SLC


Utilisez les types de message SLC pour communiquer avec les
automates SLC et MicroLogix. Le tableau suivant indique quels types
de donnes l'instruction vous permet d'accder. Le tableau indique
galement le type de donnes Logix5000 correspondant.

Publication 1756-RM003F-FR-P - Mai 2002

Pour ce type de donnes SLC ou


MicroLogix

Utilisez ce type de donnes Logix5000

REAL

L (automates MicroLogix 1200 et 1500)

DINT

INT

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-19

Dfinition des messages de blocs-transferts


Les types de message de blocs-transferts servent communiquer avec
les modules de bloc-transfert sur un rseau d'E/S dcentralises (RIO).
Si vous voulez

Slectionnez cette commande

lire des donnes partir du module de bloc-transfert.


Ce type de message remplace l'instruction BTR.

Bloc-transfert lecture

crire des donnes vers un module de bloc-transfert.


Ce type de message remplace l'instruction BTW.

Bloc-transfert criture

Pour configurer un message de blocs-transferts, observez les directives


suivantes :
les points source (pour BTW) et destination (pour BTR) doivent
tre suffisamment longs pour accepter les donnes demandes,
except pour les structures MESSAGE, AXIS et MODULE ;
prcisez la quantit de nombres entiers de 16 bits (INT)
envoyer ou recevoir. Vous pouvez indiquer de 0 64 nombres
entiers.
Si vous voulez que

Indiquez

le module de bloc-transfert dtermine la quantit


de nombres entiers de 16 bits envoyer (BTR).

0 comme nombre d'lments

l'automate envoie 64 nombres entiers (BTW).

Publication 1756-RM003F-FR-P - Mai 2002

3-20

Instructions d'entre/de sortie (MSG, GSV, SSV)

Dfinition des messages PLC-3


Les messages de type PLC-3 sont conus pour les processeurs PLC-3.
Slectionnez cette commande

Si vous voulez

Ecriture de type PLC3

lire des donnes de nombres entiers ou de type REAL.


Pour les nombres entiers, cette commande lit des entiers de 16 bits partir du
processeur PLC-3 et les stocke dans des tableaux de donnes SINT, INT ou DINT dans
l'automate Logix5000 et maintient l'intgrit des donnes.
Cette commande lit galement les donnes virgule flottante partir du processeur
PLC-3 et les stocke dans un point de type de donnes REAL dans l'automate Logix5000.

Ecriture de type PLC3

crire des donnes de nombres entiers ou de type REAL.


Cette commande crit des donnes SINT ou INT, dans le fichier de nombres entiers
PLC-3 et maintient l'intgrit des donnes. Vous pouvez crire des donnes DINT tant
qu'elles entrent dans un type de donnes INT (32 768 donnes 32 767).
Cette commande crit galement les donnes REAL partir de l'automate Logix5000
vers un fichier virgule flottante PLC-3 (fichier de type F).

Lecture de gamme de mots PLC3

lire une gamme contigu de mots de 16 bits dans la mmoire du PLC-3 quel que soit le
type de donnes.
Cette commande commence l'adresse dfinie comme lment source et lit de faon
squentielle le nombre de mots de 16 bits demand.
Les donnes de l'lment source sont stockes, en commenant l'adresse indique
comme point de destination.

Ecriture de gamme de mots PLC3

crire une gamme contigu de mots de 16 bits partir de la mmoire du Logix5000 quel
que soit le type de donnes vers la mmoire du PLC-3.
Cette commande commence l'adresse dfinie comme point source et lit de faon
squentielle le nombre de mots de 16 bits demand.
Les donnes du point source sont stockes, en commenant l'adresse indique
comme lment de destination dans le processeur PLC-3.

Le diagramme suivant montre comment les commandes de type


lecture directe et lecture ordonne diffrent. L'exemple utilise des
commandes de lecture d'un processeur PLC-3 vers un automate
Logix5000.
Commande de lecture directe

mots de 16 bits dans


processeur PLC-3

Commande de lecture ordonne


mots de 32 bits dans
automate Logix5000

mots de 16 bits dans


processeur PLC-3

mots de 32 bits dans


automate Logix5000

Les commandes de lecture directe conservent la structure et la


valeur des donnes.

Publication 1756-RM003F-FR-P - Mai 2002

Les commandes de lecture ordonne remplissent le point de destination


de faon contigu. La structure et la valeur des donnes changent selon
le type des donnes de destination.

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-21

Dfinition des messages PLC-2


Les messages de type PLC-2 sont conus pour les processeurs PLC-2.
Slectionnez cette commande

Si vous voulez

Lecture non protge PLC2

lire des mots de 16 bits partir de n'importe quelle zone de la table de donnes PLC-2
ou du fichier de compatibilit PLC-2 d'un autre processeur.

Ecriture non protge PLC2

crire des mots de 16 bits dans n'importe quelle zone de la table de donnes PLC-2 ou
du fichier de compatibilit PLC-2 d'un autre processeur.

Le message de transfert utilise des mots de 16 bits : assurez-vous que


le point du Logix5000 stocke les donnes transfres de faon
approprie (gnralement sous forme de tableau INT).

Publication 1756-RM003F-FR-P - Mai 2002

3-22

Instructions d'entre/de sortie (MSG, GSV, SSV)

Exemples de configuration
MSG

Les exemples suivants montrent des points source et destination et


des lments pour diffrentes combinaisons dautomates.
Pour des instructions MSG ayant pour origine un automate Logix5000
et crivant dans un autre automate :

Chemin de message

Exemple de source et de destination

Logix5000 Logix5000

point source

array_1[0]

point de destination

array_2[0]

Vous pouvez utiliser un point d'alias pour le point source (dans l'automate Logix5000 d'origine).
Vous ne pouvez pas utiliser un alias pour le point de destination. La destination doit tre un point de base.
Logix5000 PLC-5
Logix5000 SLC

point source

array_1[0]

lment de destination

N7:10

Vous pouvez utiliser un point d'alias pour le point source (dans l'automate Logix5000 d'origine).
Logix5000 PLC-2

point source

array_1[0]

lment de destination

010

Pour des instructions MSG ayant pour origine un automate Logix5000


et lisant partir d'un autre automate :
Chemin de message

Exemple de source et de destination

Logix5000 Logix5000

point source

array_1[0]

point de destination

array_2[0]

Vous ne pouvez pas utiliser un point d'alias pour le point source. La source doit tre un point de base.
Vous pouvez utiliser un point d'alias pour le point de destination (dans l'automate Logix5000 d'origine).
Logix5000 PLC-5
Logix5000 SLC

lment source

N7:10

point de destination

array_1[0]

Vous pouvez utiliser un point d'alias pour le point de destination (dans l'automate Logix5000 d'origine).
Logix5000 PLC-2

lment source

010

point de destination

array_1[0]

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

Dfinition de la
communication

3-23

Lorsque vous configurez une instruction MSG, vous prcisez ces


dtails dans l'onglet Communication.

43008

Dfinition d'un chemin


Le chemin dcrit l'acheminement du message vers la destination.
Si vous ajoutez le module de communication local, le module de
communication distant et l'automate ou l'quipement
destinataire la configuration des E/S de l'automate, le bouton
Naviguer (Browse) vous permet de slectionner la destination.
Navigateur du chemin du message
Chemin
:

peer_controller
peer_controller

I/O Configuration

[0] 1756-CNB/x Local_CNB

2 [0] 1756-CNB/x chassis_b


[1] 1756-L55/x peer_controller

peer_controller

Publication 1756-RM003F-FR-P - Mai 2002

3-24

Instructions d'entre/de sortie (MSG, GSV, SSV)

Certains modules ou quipements de communication distants ne


sont pas disponibles pour la configuration des E/S de
l'automate. Si le cas ce prsente, compltez le chemin comme
suit :

1. Utilisez le bouton Naviguer (Browse) pour slectionner le module de


communication local.
2. Dans la bote de texte Chemin (Path), tapez le port partir duquel
le message part du module.
3. Tapez l'adresse du module suivant sur le chemin vers la
destination.
4. Tapez les combinaisons de port et d'adresse
supplmentaires, si ncessaire.
local_module,port,address,port,address
O

Pour

Est

port

fond de panier de tout automate ou module 1756

port DF1 dun automate Logix5000

port ControlNet dun module 1756-CNB


port Ethernet d'un module 1756-ENBx ou -ENET
port DH+ via le canal A dun module 1756-DHRIO

address

port DH+ via le canal B dun module 1756-DHRIO

fond de panier ControlLogix

le numro de l'emplacement

rseau DF1

l'adresse de station (0-254)

rseau ControlNet

le numro de station (1-99 dcimal)

rseau DH+

8# suivi du numro de station (1-77 octal)


Par exemple, pour dfinir l'adresse de station octale de 37,
tapez 8#37.

rseau EtherNet/IP

Vous pouvez indiquer un module sur un rseau Ethernet/IP


l'aide d'un des formats suivants :
adresse IP
adresse IP:Port
nom DNS
nom DNS:Port

Publication 1756-RM003F-FR-P - Mai 2002

(ex. : 130.130.130.5)
(ex. : 130.130.130.5:24)
(ex. : tanks)
(ex. : tanks:24)

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-25

Pour les messages de bloc-transfert, ajoutez les modules suivants


la configuration des E/S de l'automate :
Pour les blocs-transferts sur
ce rseau

Ajoutez ces modules la configuration des E/S

ControlNet

module de communication local (ex. : module 1756-CNB)


module adaptateur distant (ex. : module 1771-ACN)

RIO

module de communication local (ex. : module 1756-DHRIO)


un module adaptateur distant (ex. : module 1771-ASB) pour chaque rack, ou partie de rack, dans
un chssis
module de bloc-transfert (facultatif)

Les pages suivantes donnent des exemples de chemins :


sur ControlNet, page 3-25 ;
sur EtherNet/IP, page 3-26 ;
pour un message DH+, page 3-26.

Spcification d'un chemin sur ControlNet

EXEMPLE

I/O Configuration

[0] 1756-CNB/x Local_CNB

2 [0] 1756-CNB/x chassis_b


[3] 1756-L55/x peer_controller

MESSAGE

42042

rseau ControlNet

Chemin : peer_controller
o :
peer_controller est le nom de l'automate qui reoit le message.

Publication 1756-RM003F-FR-P - Mai 2002

3-26

Instructions d'entre/de sortie (MSG, GSV, SSV)

EXEMPLE

Spcification d'un chemin sur EtherNet/IP

I/O Configuration

[1] 1756-ENBx Local_ENB

MESSAGE

interrupteur

Chemin : Local_ENB,2,127.127.127.12

EXEMPLE

Est

Local_ENB

le nom du module 1756-ENBx dans le chssis local

le port Ethernet du module 1756-ENBx dans le chssis local

127.127.127.12

l'adresse IP de l'automate SLC 5/05

Spcification d'un chemin sur DH+

I/O Configuration

[1] 1756-DHRIO Local_DHRIO

MESSAGE

rseau DH+

Chemin : Local_DHRIO
o :
Local_DHRIO est le nom du module 1756-DHRIO dans le mme chssis que l'automate
qui envoie le message.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-27

Dfinition d'une mthode de communication ou d'une adresse de


module
Utilisez le tableau suivant pour slectionner une mthode de
communication ou une adresse de module pour le message.
Si le dispositif de destination
est un

Slectionnez

Et indiquez

Automate Logix5000

CIP

aucune autre spcification requise

DH+

Canal :

Canal A ou B du module 1756-DHRIO connect


au rseau DH+

Automate SLC sur rseau DH+

Lien source :

Identificateur de liaison attribu au fond de


panier de l'automate dans la table
d'acheminement du module 1756-DHRIO. (La
station source dans la table d'acheminement est
automatiquement le numro d'emplacement de
l'automate.)

Processeur PLC-3

Lien destinataire :

Identificateur de la liaison DH+ l'endroit o le


dispositif cible rside

Processeur PLC-2

Station destinataire :

Adresse de station de l'quipement cible, en


octal

Automate PLC-5 sur rseau


EtherNet/IP
Automate PLC-5 sur rseau
ControlNet
Automate SLC 5/05
Automate PLC-5 sur rseau DH+

S'il n'y a qu'une liaison DH+ et que vous n'avez pas utilis le logiciel
RSLinx pour configurer le module DH/RIO pour les liaisons dcentralises,
indiquez 0 pour Lien source et Lien destinataire.
Application sur une station de
travail qui reoit un message
non sollicit achemin via un
rseau Ethernet/IP ou
ControlNet l'aide de RSLinx

CIP avec ID source


(Ceci permet
l'application de recevoir
des donnes d'un
automate.)

Lien source :

Identificateur distant de la rubrique dans le


logiciel RSLinx

Lien destinataire :

Identificateur de liaison virtuelle rgl dans


RSLinx (0-65535)

Station destinataire :

Identificateur de destination (0-77 octal) fourni


par l'application RSLinx Pour une rubrique DDE
dans RSLinx, utilisez 77.

Le numro d'emplacement de l'automate ControlLogix est utilis comme


station source.
Module de bloc-transfert sur un
rseau d'E/S dcentralises

Module de bloc-transfert sur


rseau ControlNet

RIO

ControlNet

Canal :

Canal A ou B du module 1756-DHRIO connect


au rseau RIO

Rack

Numro de rack (octal) du module

Groupe

Numro de groupe du module

Emplacement

Numro de l'emplacement dans lequel est le


module

Emplacement

Numro de l'emplacement dans lequel est le


module

Publication 1756-RM003F-FR-P - Mai 2002

3-28

Instructions d'entre/de sortie (MSG, GSV, SSV)

Choix d'une option de cache


Certains types de messages utilisent une connexion pour envoyer ou
recevoir des donnes. Certains vous permettent galement de laisser
la connexion ouverte (cache) ou de la fermer lorsque le message est
transmis. Le tableau suivant indique quels messages utilisent une
connexion et si vous pouvez ou non la laisser ouverte.
Ce type de message

Utilisant cette mthode


de communication

Utilise une
connexion

Que vous pouvez


laisser ouverte

Lecture ou criture de table de


donnes CIP

CIP

PLC2, PLC3, PLC5 ou SLC (tous types)

CIP
DH+

CIP gnrique

Bloc-transfert lecture ou criture

CIP avec ID source

Seuls certains types de modules cibles requirent une connexion.

N'utilisez la cache que si le module cible requiert une connexion.

Utilisez la procdure suivante pour choisir l'option de cache d'un


message qui peut tre mis en cache.
1. Votre logique change-t-elle le chemin d'un message ? (une
instruction MSG communique-t-elle avec plus d'un
quipement ?)
Si
Oui
Non

Publication 1756-RM003F-FR-P - Mai 2002

Action
A. Dsactivez la case Connexion cache (Cache Connection).
B. Sautez l'tape 2.
Passez l'tape 2.

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-29

2. Choix d'une option de cache


Si le message est destin un

Action

automate

A combien d'automates cet automate envoie-t-il de messages que vous pouvez mettre en cache ?
Si

Action

16 automates maximum Laissez la case Connexion cache slectionne (coche).


plus de 16 automates

module de bloc-transfert

1. Slectionnez les 16 automates qui requirent les messages les


plus frquents.
2. Ce message va-t-il vers l'un de ces automates ?
Si

Action

Oui

Laissez la case Connexion cache coche.

Non

Dsactivez la case Connexion cache.

Combien d'quipements requirent des instructions de bloc-transfert ?


Si

Action

16 quipements
maximum

Laissez la case Connexion cache slectionne (coche).

plus de 16 quipements

1. Slectionnez 16 quipements qui requirent les mises jours les


plus frquentes.
2. Ce message va-t-il vers l'un de ces quipements ?
Si

Action

Oui

Laissez la case Connexion cache coche.

Non

Dsactivez la case Connexion cache.

Publication 1756-RM003F-FR-P - Mai 2002

3-30

Instructions d'entre/de sortie (MSG, GSV, SSV)

Lire la valeur systme (GSV)


et Dfinir la valeur
systme (SSV)

Les instructions GSV/SSV rcuprent et activent les donnes systme


de lautomate stockes dans les objets.

Oprandes :
Logique relais

Oprande

Type

Format

Description

Nom de la classe

nom

nom de l'objet

Nom de l'occurrence

nom

nom de l'objet spcifique, lorsque celui-ci a besoin d'un


nom

Nom d'attribut

nom

attribut de l'objet
le type des donnes dpend de l'attribut slectionn

Destination (GSV)

SINT
INT
DINT
REAL

point

destination des donnes de l'attribut

Source (SSV)

SINT
INT
DINT
REAL

point

point contenant les donnes que vous voulez copier dans


l'attribut

Texte structur
GSV(ClassName,InstanceName,AttributeName,Dest);
SSV(ClassName,InstanceName,AttributeName,Source);

Les oprandes de texte structur sont les mmes que pour les
instructions GSV et SSV en logique relais.

Description : Les instructions GSV/SSV rcuprent et activent les donnes systme


de lautomate stockes dans les objets. Lautomate stocke les donnes
systme dans des objets. Il ny a pas de fichier dtat, comme dans le
processeur PLC-5.
Lorsquelle est active, linstruction GSV rcupre les informations
indiques et les stocke dans la destination. Lorsquelle est active,
linstruction SSV active lattribut indiqu avec des donnes de la
source.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-31

Lorsque vous entrez une instruction GSV/SSV, le logiciel de


programmation affiche les classes dobjets valables, les noms dobjets
et les noms dattributs pour chaque instruction. Pour linstruction GSV,
vous pouvez obtenir des valeurs pour tous les attributs disponibles.
Pour l'instruction SSV, le logiciel n'affiche que les attributs pouvant
tre activs (SSV).

ATTENTION

Utilisez les instructions GSV/SSV avec prcaution. La


modification des objets peut entraner un
fonctionnement inattendu de lautomate ou des
blessures.

Si la taille de la source ou de la destination est trop petite, l'instruction


n'est pas excute et un dfaut mineur est enregistr. La section
suivante, Objets GSV/SSV, dfinit les attributs de chaque objet et leurs
types de donnes. Par exemple, l'attribut MajorFaultRecord de l'objet
Programme ncessite un type de donnes DINT[11].

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut mineur se produit si

Type du dfaut

Code du dfaut

l'adresse d'objet est incorrecte

l'objet indiqu n'accepte pas GSV/SSV

l'attribut est incorrect

les informations fournies ne sont pas suffisantes


pour une instruction SSV

la destination GSV n'tait pas assez longue pour


contenir les donnes demandes

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

rcupre ou active la valeur indique.

rcupre ou active la valeur indique.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

3-32

Instructions d'entre/de sortie (MSG, GSV, SSV)

Objets GSV/SSV

Lorsque vous entrez une instruction GSV/SSV, vous indiquez lobjet et


lattribut auquel vous voulez accder. Dans certains cas, il y a plus
dune occurrence du mme type dobjet, vous devrez peut-tre donc
indiquer aussi le nom de lobjet. Par exemple, il peut y avoir plusieurs
tches dans votre application. Chaque tche a son propre objet TASK
auquel vous accdez par le nom de la tche.

ATTENTION

Pour l'instruction GSV, seule la taille de donnes


indique est copie vers la destination. Par exemple,
si l'attribut est dfini comme SINT et la destination
est DINT, seuls les 8 bits infrieurs de la destination
DINT sont mis jour, les autres 24 bits restent
inchangs.

Vous pouvez accder aux objets suivants :


Pour des informations sur cet objet

Voir la page ou la publication suivante

AXIS

ControlLogix Motion Module Setup and


Configuration Manual (publication 1756-UM006)

CONTROLLER

3-32

CONTROLLERDEVICE

3-33

CST

3-35

DF1

3-36

FAULTLOG

3-39

MESSAGE

3-40

MODULE

3-42

MOTIONGROUP

3-43

PROGRAM

3-44

ROUTINE

3-45

SERIALPORT

3-45

TASK

3-47

WALLCLOCKTIME

3-47

Accs l'objet CONTROLLER


L'objet CONTROLLER fournit des informations d'tat sur l'excution
d'un automate.
Attribut

Type de
donnes

Instruction

Description

TimeSlice

INT

GSV
SSV

Pourcentage d'UC disponible attribu aux communications.


Les valeurs correctes vont de 10 90. La valeur ne peut tre
change lorsque le commutateur cl de l'automate est en
position Run.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-33

Accs l'objet CONTROLLERDEVICE


L'objet CONTROLLERDEVICE identifie la partie matrielle de
l'automate.
Attribut

Type de
donnes

Instruction

Description

DeviceName

SINT[33]

GSV

Chane ASCII qui identifie la rfrence de l'automate et de la


carte mmoire.
Le premier octet contient le nombre de caractres ASCII
renvoys dans la chane de tableau.

ProductCode

INT

GSV

Identifie le type de l'automate


Ce code produit :

Identifie cet automate Logix :

5550

15

5860

41

5433

42

5434

43

5320

50

5553

51

5555

ProductRev

INT

GSV

Identifie la version du produit. L'affichage doit tre


hexadcimal.
L'octet de poids faible contient la rvision majeure ; l'octet de
poids fort contient la rvision mineure.

SerialNumber

DINT

GSV

Numro de srie du dispositif.


Le numro de srie est attribu lors de la construction du
dispositif.

Publication 1756-RM003F-FR-P - Mai 2002

3-34

Instructions d'entre/de sortie (MSG, GSV, SSV)

Attribut

Type de
donnes

Instruction

Description

Status

INT

GSV

Les bits identifient l'tat :


Les bits 3 0 sont rservs
Bits d'tat du dispositif
Bits 7-4 :
Signification :
0000
rserv
0001
mise jour par mmoire flash en cours
0010
rserv
0011
rserv
0100
mmoire flash dfectueuse
0101
en dfaut
0110
excution
0111
programme
Bits d'tat de dfaut
Bits 11-8 :
Signification :
0001
dfaut mineur rcuprable
0010
dfaut mineur non rcuprable
0100
dfaut majeur rcuprable
1000
dfaut majeur non rcuprable
Bits d'tat propres au Logix5000
Bits 13-12 :
Signification :
01
commutateur cl sur Run
10
commutateur cl sur Program
11
commutateur cl sur Remote
Bits 15-14 :
Signification :
01
l'automate change de mode
10
mode de dbogage si l'automate est en
mode Run

Type

INT

GSV

Identifie le dispositif comme automate.


Automate = 14

Vendor

INT

GSV

Identifie le fournisseur du dispositif.


Allen-Bradley = 0001

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-35

Accs l'objet CST


L'objet CST (temps systme coordonn) fournit le temps systme
coordonn des dispositifs dans un chssis.
Attribut

Type de
donnes

Instruction

Description

CurrentStatus

INT

GSV

Etat en cours du temps systme coordonn. Les bits identifient :

CurrentValue

DINT[2]

GSV

Bit :

Signification :

panne matrielle du temporisateur : le matriel du


temporisateur interne du dispositif est en tat de dfaut

effet de rampe activ : la valeur en cours des 16 bits infrieurs


du temporisateur monte la valeur requise, au lieu de sauter
la valeur infrieure. Ces bits sont manipuls par la mthode de
synchronisation par incrments propre au rseau.

matre de temps systme : l'objet CST est une source de temps


matre dans le systme ControlLogix

synchronis : la valeur en cours de 64 bits de l'objet CST est


synchronise par un objet CST matre via une mise jour du
temps systme

matre de rseau local : l'objet CST est la source de temps


matre du rseau local

en mode relais : l'objet CST agit en mode relais temporel

doublon de matre dtect : un matre de temps du rseau local


en double a t dtect. Ce bit est toujours 0 pour les stations
temporelles

non utilis

8-9

00 = station temporelle
01 = station matre temporelle
10 = station de relais temporelle
11 = non utilis

10-15

non utilis

Valeur en cours du temporisateur. DINT[0] contient les 32 bits infrieurs ;


DINT[1] contient les 32 bits suprieurs.
La source de temporisateur est ajuste pour correspondre la valeur fournie
par les services de mise jour et par la synchronisation du rseau de
communication local. L'ajustement est soit une monte jusqu' la valeur
requise, soit un rglage immdiat cette valeur, tel qu'indiqu dans
l'attribut CurrentStatus.

Publication 1756-RM003F-FR-P - Mai 2002

3-36

Instructions d'entre/de sortie (MSG, GSV, SSV)

Accs l'objet DF1


L'objet DF1 fournit une interface au driver de communication DF1 que
vous pouvez configurer pour le port srie.
Attribut

Type de
donnes

Instruction

Description

ACKTimeout

DINT

GSV

La dure d'attente pour un accus de rception une transmission de


message (point point et matre uniquement).
Les valeurs correctes vont de 0 32 767. Dlai par intervalles de
20 ms. La valeur par dfaut est 50 (1 seconde).

DiagnosticCounters

INT[19]

GSV

Tableau de compteurs de diagnostic pour le driver de communication


DF1.

offset de mot
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

point point DF1esclave DF1matre


signature (0x0043)signature (0x0042)signature (0x0044)
bits de modembits de modembits de modem
trames envoyestrames envoyestrames envoyes
trames reuestrames reuestrames reues
trames non dlivrestrames non dlivrestrames non dlivres
inutilismessages ressaysmessages ressays
NAK reusNAK reusinutilis
ENQ reustrames d'appel reuesinutilis
trames dfectueuses non acquittestrames dfectueuses non acquittestrames dfectueuses non acquittes
pas de mmoire envoye NAKpas de mmoire non acquitteinutilis
trames reues en doubletrames reues en doubletrames reues en double
mauvais caractres reusinutilisinutilis
comptage de rcupration DCDcomptage de rcupration DCDcomptage de rcupration DCD
comptage de modem perducomptage de modem perducomptage de modem perdu
inutilisinutilisdure de scrutation prioritaire maximum
inutilisinutilisdernire dure de scrutation prioritaire
inutilisinutilisdure de scrutation normale maximum
inutilisinutilisdernire dure de scrutation normale
ENQ envoysinutilisinutilis

DuplicateDetection

SINT

GSV

Permet la dtection des messages en double.


Valeur :
Signification :
0
dtection de messages en double dsactive
autre que zro
dtection de message en double dsactive

EmbeddedResponseEnable

SINT

GSV

Active la fonctionnalit de rponse intgre (point point


uniquement).
Valeur :
Signification :
0
lanc uniquement aprs la rception d'une
rponse (valeur par dfaut)
1
activ sans condition

ENQTransmitLimit

SINT

GSV

Le nombre de demandes (ENQ) envoyer aprs un timeout ACK (point


point uniquement).
Les valeurs correctes vont de 0 127. La valeur par dfaut est 3.

EOTSuppression

SINT

GSV

Active la suppression des transmissions EOT en rponse aux trames


d'appel (esclave uniquement).
Valeur :
Signification :
0
suppression EOT dsactive (dsactiv)
autre que zro
suppression EOT active

ErrorDetection

SINT

GSV

Indique le schma de dtection des erreurs.


Valeur :
Signification :
0
BCC (valeur par dfaut)
1
CRC

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-37

Attribut

Type de
donnes

Instruction

Description

MasterMessageTransmit

SINT

GSV

Valeur en cours de la transmission de message matre (matre


uniquement).
Valeur :
Signification :
0
entre appels de station 1en squence d'appel
(au lieu du numro de station du matre)
La valeur par dfaut est 0.

NAKReceiveLimit

SINT

GSV

Le nombre de NAK reus en rponse un message avant l'arrt de la


transmission (communication point point uniquement).
Les valeurs correctes vont de 0 127. La valeur par dfaut est 3.

NormalPollGroupSize

INT

GSV

Nombre de stations appeler dans le tableau d'appel normal des


stations aprs l'appel de toutes les stations dans le tableau d'appel
prioritaire des stations (matre uniquement).
Les valeurs correctes vont de 0 255. La valeur par dfaut est 0.

PollingMode

SINT

GSV

Mode d'appel en cours (matre uniquement).


Valeur :
Signification :
0
bas sur message, mais n'autorise pas
les esclaves initier des messages
1
bas sur message, et autorise les esclaves
initier des messages (valeur par dfaut)
2
standard, transfert de message unique par
scrutation de station
3
standard, transfert de multiples messages par
scrutation de station
La valeur par dfaut est 1.

ReplyMessageWait

DINT

GSV

La dure (agissant comme matre) d'attente aprs la rception d'un


ACK avant d'appeler l'esclave pour une rponse (matre uniquement).
Les valeurs correctes vont 0 65 535. Dlai par intervalles de 20 ms.
La valeur par dfaut est de 5 intervalles (100 ms).

StationAddress

INT

GSV

Adresse de station en cours du port srie.


Les valeurs correctes vont de 0 254. La valeur par dfaut est 0.

SlavePollTimeout

DINT

GSV

Dure (en ms) pendant laquelle l'esclave attend que le matre appelle
avant de dclarer ne pas pouvoir transmettre, parce que le matre est
inactif (esclave uniquement).
Les valeurs correctes vont de 0 32 767. Dlai par intervalles de
20 ms. La valeur par dfaut est de 3000 intervalles (1 minute).

TransmitRetries

SINT

GSV

Nombre d'envois d'un message sans accus de rception en retour


(matre et esclave uniquement).
Les valeurs correctes vont de 0 127. La valeur par dfaut est 3.

PendingACKTimeout

DINT

SSV

Valeur en attente pour l'attribut ACKTimeout.

PendingDuplicateDetection

SINT

SSV

Valeur en attente pour l'attribut DuplicateDetection.

PendingEmbeddedResponse
Enable

SINT

SSV

Valeur en attente pour l'attribut EmbeddedResponse.

PendingENQTransmitLimit

SINT

SSV

Valeur en attente pour l'attribut ENQTransmitLimit.

PendingEOTSuppression

SINT

SSV

Valeur en attente pour l'attribut EOTSuppression.

PendingErrorDetection

SINT

SSV

Valeur en attente pour l'attribut ErrorDetection.

PendingNormalPollGroupSize

INT

SSV

Valeur en attente pour l'attribut NormalPollGroupSize.

PendingMasterMessage
Transmit

SINT

SSV

Valeur en attente pour l'attribut MasterMessageTransmit.

PendingNAKReceiveLimit

SINT

SSV

Valeur en attente pour l'attribut NAKReceiveLimit.

PendingPollingMode

SINT

SSV

Valeur en attente pour l'attribut PollingMode.

Publication 1756-RM003F-FR-P - Mai 2002

3-38

Instructions d'entre/de sortie (MSG, GSV, SSV)

Attribut

Type de
donnes

Instruction

Description

PendingReplyMessageWait

DINT

SSV

Valeur en attente pour l'attribut ReplyMessageWait.

PendingStationAddress

INT

SSV

Valeur en attente pour l'attribut StationAddress.

PendingSlavePollTimeout

DINT

SSV

Valeur en attente pour l'attribut SlavePollTimeout.

PendingTransmitRetries

SINT

SSV

Valeur en attente pour l'attribut TransmitRetries.

Pour attribuer des valeurs un des attributs DF1 en attente :


1. Utilisez une instruction SSV pour rgler la valeur de l'attribut en
attente.
Vous pouvez attribuer autant d'attributs en attente que vous le
voulez en utilisant une instruction SSV pour chacun d'eux.
2. Utilisez une instruction MSG pour attribuer la valeur.
L'instruction MSG s'applique chaque attribut en attente que
vous rglez. Configurez l'instruction MSG comme suit :
Onglet de configuration MSG

Champ

Valeur

Configuration

Type de message

CIP gnrique

Code de service

0d hex

Type d'objet

a2

Identificateur de l'objet 1

Communication

Publication 1756-RM003F-FR-P - Mai 2002

Attribut de l'objet

laisser en blanc

Source

laisser en blanc

Nombre d'lments

Destination

laisser en blanc

Chemin

chemin de communication
vers soi-mme (1,s o s =
numro d'emplacement de
l'automate)

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-39

Accs l'objet FAULTLOG


L'objet FAULTLOG fournit des informations sur les dfauts de
l'automate.
Attribut

Type de donnes

Instruction

Description

MajorEvents

INT

GSV
SSV

Nombre dvnements majeurs qui se sont produits depuis la dernire


remise zro de ce compteur.

MinorEvents

INT

GSV
SSV

Nombre de dfauts mineurs qui se sont produits depuis la dernire


remise zro de ce compteur.

MajorFaultBits

DINT

GSV
SSV

Les bits individuels indiquent la raison du dfaut majeur en cours.


Bit :
Signification :
1
perte d'alimentation
3
E/S
4
excution d'instruction (programme)
5
gestionnaire des dfauts
6
chien de garde
7
pile
8
changement de mode
11
mouvement

MinorFaultBits

DINT

GSV
SSV

Les bits individuels indiquent la raison du dfaut mineur en cours.


Bit :
Signification :
4
excution d'instruction (programme)
6
chien de garde
9
port srie
10
pile

Publication 1756-RM003F-FR-P - Mai 2002

3-40

Instructions d'entre/de sortie (MSG, GSV, SSV)

Accs l'objet MESSAGE


Vous pouvez accder l'objet MESSAGE par les instructions GSV/SSV.
Indiquez le nom du point du message pour dterminer l'objet
MESSAGE que vous voulez. L'objet MESSAGE fournit une interface
pour la configuration et le dclenchement des communications d'gal
gal. Cet objet remplace le type de donnes MG du processeur
PLC-5.
Attribut

Type de donnes

Instruction

Description

ConnectionPath

SINT[130]

GSV
SSV

Donnes de configuration du chemin de connexion. Les deux


premiers octets (octets de poids faible et de poids fort) forment la
longueur, en octets, du chemin de connexion.

ConnectionRate

DINT

GSV
SSV

Dbit de trame requis de la connexion.

MessageType

SINT

GSV
SSV

Indique le type de message.


Valeur :
Signification :
0
non initialis

Port

SINT

GSV
SSV

Indique le port par lequel le message doit tre envoy.


Valeur :
Signification :
1
fond de panier
2
port srie

TimeoutMultiplier

SINT

GSV
SSV

Dtermine le moment o une connexion doit tre considre


comme ayant dpass le dlai autoris et doit tre coupe.
Valeur :
Signification :
0
le dlai d'attente de la connexion correspondra
4 fois la vitesse d'actualisation (valeur par
dfaut)
1
le dlai d'attente de la connexion correspondra
8 fois la vitesse d'actualisation
2
le dlai d'attente de la connexion correspondra
16 fois la vitesse d'actualisation

UnconnectedTimeout

DINT

GSV
SSV

Dlai d'attente en microsecondes pour tous les messages non


connects. La valeur par dfaut est de 30 000 000 microsecondes
(30 secondes).

Pour changer l'attribut d'un MESSAGE, procdez comme suit :


1. Utilisez l'instruction GSV pour obtenir l'attribut MessageType et
sauvegardez-le dans un point.
2. Utilisez une instruction SSV pour mettre MessageType 0.
3. Utilisez une instruction SSV pour rgler l'attribut du MESSAGE
que vous souhaitez modifier.
4. Utilisez l'instruction SSV pour remettre l'attribut MessageType
sa valeur d'origine, obtenue l'tape 1.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-41

Exemple : Dans l'exemple suivant, l'attribut ConnectionPath est modifi pour


que le message soit envoy un automate diffrent. Lorsque
msg_path est activ, rgle le chemin du message msg msg_1 sur la
valeur de msg_1_path, ce qui envoie le message un autre automate.
O

Est

msg_1

message dont vous souhaitez modifier l'attribut

msg_1_type

point qui stocke la valeur de l'attribut Type de message

tag_a

point qui stocke un 0.

msg_1_path

point de tableau qui stocke le nouveau chemin de connexion du


message

Logique relais

msg_path
0

GSV
Get System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name MessageType
Dest
msg_1_type
2

SSV
Set System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name ConnectionPath
Source
msg_1_path[0]
6

msg_1.EN
/

SSV
Set System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name MessageType
Source
tag_a
0

SSV
Set System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name MessageType
Source
msg_1_type
2

MSG
Type - CIP Data Table Write
Message Control
msg_1 ...

EN
DN
ER

Texte structur
IF msg_path THEN
GSV(MESSAGE,msg_1,MessageType,msg_1_type);
SSV(MESSAGE,msg_1,MessageType,tag_a);
SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);
SSV(MESSAGE,msg_1,MessageType,msg_1_type);
END_IF;
IF NOT msg_1.EN THEN
MSG(msg_1);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

3-42

Instructions d'entre/de sortie (MSG, GSV, SSV)

Accs l'objet MODULE


L'objet MODULE fournit des informations sur l'tat d'un module. Pour
slectionner un objet MODULE particulier, rglez l'oprande Object
Name de l'instruction GSV/SSV sur le nom du module. Le module
indiqu doit tre prsent dans la section de configuration des E/S de
la fentre d'organisation de l'automate et doit avoir un nom de
dispositif.
Attribut

Type de
donnes

Instruction

Description

EntryStatus

INT

GSV

Indique l'tat en cours de l'entre de configuration indique. Les 12 bits


infrieurs doivent tre masqus lors d'une opration de comparaison. Seuls
les bits 12 15 sont valables.
Valeur :
Signification :
16#0000
En attente : l'automate est en cours de dmarrage.
16#1000
En dfaut : l'une des connexions de l'objet
MODULE au module associ a chou. Cette valeur
ne doit pas tre utilise pour dterminer si le module
a chou car l'objet MODULE quitte cet tat
priodiquement lorsqu'il essaie de se reconnecter au
module. Testez plutt l'tat d'excution (16#4000).
Recherchez les FaultCode diffrents de 0 pour
dterminer si un module est en dfaut..
Lorsqu'il sont en dfaut, les attributs FaultCode
et FaultInfo restent valables jusqu' ce que le dfaut
soit corrig.
16#2000
Validation : l'objet MODULE vrifie l'intgrit
de l'objet MODULE avant d'tablir des connexions vers
le module.
16#3000
Connexion : l'objet MODULE tablit des
connexions avec le module.
16#4000
Excution : toutes les connexions vers le module
sont tablies et les donnes sont transfres avec
succs.
16#5000
Arrt : l'objet MODULE est en train de couper
toutes les connexions avec le module.
16#6000
Inhibition : l'objet MODULE est bloqu
(le bit d'inhibition de l'attribut Mode est activ).
16#7000
En attente : l'objet MODULE parent dont
cet objet MODULE dpend ne fonctionne pas.

FaultCode

INT

GSV

Nombre identifiant un dfaut de module, le cas chant.

FaultInfo

DINT

GSV

Fournit des informations particulires sur le code de dfaut de l'objet


MODULE.

ForceStatus

INT

GSV

Indique l'tat des forages.


Bit :
Signification :
0
forages installs (1=oui, 0=non)
1
forages activs (1=oui, 0=non)
2-15
non utilis

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-43

Attribut

Type de
donnes

Instruction

Description

Instance

DINT

GSV

Fournit le numro d'instance de cet objet MODULE.

LEDStatus

INT

GSV

Indique l'tat en cours des voyants d'E/S sur l'avant de l'automate.


Valeur :
Signification :
0
Voyant teint : aucun objet MODULE n'est configur
pour l'automate (il n'y a aucun module dans la section
de configuration des E/S de la fentre d'organisation
de l'automate).
1
Rouge clignotant : aucun des objets MODULE ne
fonctionne.
2
Vert clignotant : au moins un objet MODULE
ne fonctionne pas.
3
Vert fixe : tous les objets Module fonctionnent.
Remarque : vous n'entrez pas de nom d'objet avec cet attribut parce qu'il
sert l'ensemble des modules.

Mode

INT

GSV
SSV

Indique le mode en cours de l'objet MODULE.


Bit :
Signification :
0
Lorsqu'il est activ, gnre un dfaut majeur si l'une
des connexions de l'objet MODULE se met en dfaut
pendant que l'automate est en mode Run.
2
Lorsqu'il est activ, fait passer l'objet MODULE l'tat
d'inhibition (blocage) aprs avoir coup toutes les
connexions avec le module.

Accs l'objet MOTIONGROUP


L'objet MOTIONGROUP fournit des informations sur l'tat d'un
groupe d'axes du servo-module. Indiquez le nom du point du groupe
d'axes pour dterminer l'objet MOTIONGROUP que vous voulez.
Attribut

Type de donnes

Instruction

Description

Instance

DINT

GSV

Fournit le numro d'instance de cet objet MOTION_GROUP.

Publication 1756-RM003F-FR-P - Mai 2002

3-44

Instructions d'entre/de sortie (MSG, GSV, SSV)

Accs l'objet PROGRAM


L'objet PROGRAM fournit des informations d'tat sur un programme.
Indiquez le nom du programme pour dterminer l'objet MESSAGE
que vous voulez.
Attribut

Type de donnes

Instruction

Description

DisableFlag

SINT

GSV
SSV

Commande l'excution de ce programme.


Valeur :
Signification :
0
excution active
1
excution dsactive

Instance

DINT

GSV

Fournit le numro d'instance de cet objet PROGRAM.

LastScanTime

DINT

GSV
SSV

Dure ncessaire l'excution de ce programme la dernire fois


qu'il a t excut. La dure est en microsecondes.

MajorFaultRecord

DINT[11]

GSV
SSV

Enregistre les dfauts majeurs pour ce programme.


Il est recommand de crer une structure utilisateur pour
simplifier l'accs l'attribut MajorFaultRecord :

Nom :
TimeLow
TimeHigh
Type
Code
Info

Type de donnes : Style : Description :


DINTDcimal32 bits infrieurs de la valeur d'horodatage du dfaut
DINT
Dcimal
32 bits suprieurs de la valeur d'horodatage du dfaut
INT
Dcimal
type du dfaut (programme, E/S, etc.)
INT
Dcimal
code unique pour le dfaut (dpend du type du dfaut)
DINT[8] Hexadcimal
information particulire sur le dfaut (dpend du type et du code du
dfaut)

MaxScanTime

DINT

GSV
SSV

Dure d'excution maximale enregistre pour ce programme. La


dure est en microsecondes.

MinorFaultRecord

DINT[11]

GSV
SSV

Enregistre les dfauts mineurs pour ce programme.


Il est recommand de crer une structure utilisateur pour
simplifier l'accs l'attribut MinorFaultRecord :

Nom :
TimeLow
TimeHigh
Type
Code
Info
SFCRestart

Type de donnes :
DINT
DINT
INT
INT
DINT[8]
INT

Publication 1756-RM003F-FR-P - Mai 2002

Style :
Dcimal
Dcimal
Dcimal
Dcimal
Hexadcimal
GSV
SSV

Description :
32 bits infrieurs de la valeur d'horodatage du dfaut
3 bits suprieurs de la valeur d'horodatage du dfaut
type du dfaut (programme, E/S, etc.)
code unique pour le dfaut (dpend du type du dfaut)
information particulire sur le dfaut (dpend du type et du code du
dfaut)
inutilis (rserv une utilisation future)

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-45

Accs l'objet ROUTINE


L'objet ROUTINE fournit des informations d'tat sur un
sous-programme. Indiquez le nom du sous-programme pour
dterminer l'objet ROUTINE que vous voulez.
Attribut

Type de
donnes

Instruction

Description

Instance

DINT

GSV

Fournit le numro d'instance de cet objet ROUTINE.


Les valeurs correctes vont de 0 65 535.

Accs l'objet SERIALPORT


L'objet SERIALPORT fournit une interface au port de communication
srie.
Attribut

Type de
donnes

Instruction

Description

BaudRate

DINT

GSV

Indique la vitesse en bauds.


Les valeurs correctes sont 110, 300, 600, 1200, 2400, 4800, 9600
et 19 200 (valeur par dfaut).

DataBits

SINT

GSV

Indique le nombre de bits de donnes par caractre.


Valeur :
Signification :
7
7 bits de donnes (ASCII uniquement)
8
8 bits de donnes (valeur par dfaut)

Parity

SINT

GSV

Indique la parit.
Valeur :
0
1
2

Signification :
pas de parit (pas de valeur par dfaut)
parit impaire (ASCII uniquement)
parit paire

RTSOffDelay

INT

GSV

Dlai d'arrt de la ligne RTS aprs la transmission du dernier


caractre.
Les valeurs correctes vont de 0 32 767. Dlai par intervalles de
20 ms. La valeur par dfaut est de 0 ms.

RTSSendDelay

INT

GSV

Dlai de transmission du premier caractre d'un message aprs le


dmarrage de la ligne RTS.
Les valeurs correctes vont de 0 32 767. Dlai par intervalles de
20 ms. La valeur par dfaut est de 0 ms.

StopBits

SINT

GSV

Indique le nombre de bits d'arrt.


Valeur :
Signification :
1
1 bit d'arrt (valeur par dfaut)
2
2 bits d'arrts (ASCII uniquement)

PendingBaudRate

DINT

SSV

Valeur en attente pour l'attribut BaudRate.

PendingDataBits

SINT

SSV

Valeur en attente pour l'attribut DataBits.

PendingParity

SINT

SSV

Valeur en attente pour l'attribut Parity.

PendingRTSOffDelay

INT

SSV

Valeur en attente pour l'attribut RTSOffDelay.

PendingRTSSendDelay

INT

SSV

Valeur en attente pour l'attribut RTSSendDelay.

PendingStopBits

SINT

SSV

Valeur en attente pour l'attribut StopBits.

Publication 1756-RM003F-FR-P - Mai 2002

3-46

Instructions d'entre/de sortie (MSG, GSV, SSV)

Pour attribuer des valeurs l'un des attributs SERIALPORT en attente :


1. Utilisez une instruction SSV pour rgler la valeur de l'attribut en
attente.
Vous pouvez attribuer autant d'attributs en attente que vous le
voulez en utilisant une instruction SSV pour chacun d'eux.
2. Utilisez une instruction MSG pour attribuer la valeur.
L'instruction MSG s'applique chaque attribut en attente que
vous rglez. Configurez les instructions MSG comme suit :
Onglet de configuration MSG

Champ

Valeur

Configuration

Type de message

CIP gnrique

Code de service

0d hex

Type d'objet

6f hex

Identificateur de l'objet

Attribut de l'objet

laisser en blanc

Source

laisser en blanc

Nombre d'lments

Destination

laisser en blanc

Chemin

chemin de communication vers soi-mme


(1,s o s = numro d'emplacement de l'automate)

Communication

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-47

Accs l'objet TASK


L'objet TASK fournit des informations d'tat sur une tche. Indiquez le
nom de la tche pour dterminer l'objet TASK que vous voulez.
Attribut

Type de
donnes

Instruction

Description

Instance

DINT

GSV

Fournit le numro d'instance de cet objet TASK.


Les valeurs correctes vont de 0 31.

LastScanTime

DINT

GSV
SSV

Dure ncessaire l'excution de cette tche la dernire fois


qu'elle a t excute. La dure est en microsecondes.

MaxInterval

DINT[2]

GSV
SSV

Intervalle de temps maximum entre les excutions successives de


la tche. DINT[0] contient les 32 bits infrieurs de la valeur,
DINT[1] contient les 32 bits suprieurs de la valeur.
Une valeur de 0 indique une excution ou moins de la tche.

MaxScanTime

DINT

GSV
SSV

Dure d'excution maximale enregistre pour ce programme. La


dure est en microsecondes.

MinInterval

DINT[2]

GSV
SSV

Intervalle de temps minimum entre les excutions successives de


la tche. DINT[0] contient les 32 bits infrieurs de la valeur,
DINT[1] contient les 32 bits suprieurs de la valeur.
Une valeur de 0 indique une excution ou moins de la tche.

Priority

INT

GSV

Priorit relative de cette tche compare aux autres tches.


Les valeurs correctes vont de 0 15.

Rate

DINT

GSV

Intervalle de temps entre les excutions de la tche. La dure est


en microsecondes.

StartTime

DINT[2]

GSV
SSV

Valeur de WALLCLOCKTIME au dbut de la dernire excution de


la tche. DINT[0] contient les 32 bits infrieurs de la valeur,
DINT[1] contient les 32 bits suprieurs de la valeur.

Watchdog

DINT

GSV
SSV

Limite de temps pour l'excution de tous les programmes associs


avec cette tche. La dure est en microsecondes.
Si vous entrez 0, les valeurs suivantes sont attribues :
Temps
Type de tche
0,5 s
priodique
5s
continue

Accs l'objet WALLCLOCKTIME


L'objet WALLCLOCKTIME fournit un horodatage que l'automate peut
utiliser pour la planification.

Publication 1756-RM003F-FR-P - Mai 2002

3-48

Instructions d'entre/de sortie (MSG, GSV, SSV)

Attribut

Type de
donnes

Instruction

Description

CSTOffset

DINT[2]

GSV
SSV

Dcalage positif de CurrentValue de l'objet CST (temps systme


coordonn : voir page 3-35). DINT[0] contient les 32 bits infrieurs
de la valeur, DINT[1] contient les 32 bits suprieurs de la valeur.
La valeur est en s. La valeur par dfaut est 0.

CurrentValue

DINT[2]

GSV
SSV

Valeur en cours de l'horloge. DINT[0] contient les 32 bits infrieurs


de la valeur, DINT[1] contient les 32 bits suprieurs de la valeur.
La valeur est le nombre de microsecondes coules depuis le
1er janvier 1972, 00:00 heure.
Les objets CST et WALLCLOCKTIME sont mathmatiquement
relis dans l'automate. Par exemple, si vous additionnez la valeur
CurrentValue CST et la valeur WALLCLOCKTIME CTSOffset, le
rsultat est la valeur WALLCLOCKTIME CurrentValue.

DateTime

DINT[7]

GSV
SSV

Date et heure dans un format lisible.


DINT[0]
anne
DINT[1]
mois sous forme de nombre entier (1-12)
DINT[2]
jour sous forme de nombre entier (1-31)
DINT[3]
heure (0-23)
DINT[4]
minute (0-59)
DINT[5]
secondes (0-59)
DINT[6]
microsecondes (0-999 999)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-49

Exemple de programmation Obtenir des informations sur les dfauts


GSV/SSV
Les exemples suivants utilisent des instructions GSV pour obtenir des
informations sur les dfauts.

Exemple 1 : Cet exemple donne des informations sur les dfauts partir du
module d'E/S disc_in_2 et stocke les donnes dans une structure
dfinie par l'utilisateur disc_in_2_info.

Logique relais

Texte structur
GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode);
GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo);
GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);

Exemple 2 : Cet exemple donne des informations d'tat sur le programme discrete
et stocke les donnes dans une structure dfinie par l'utilisateur
discrete_info.

Logique relais

Texte structur
GSV(PROGRAM,DISCRETE,LASTSCANTIME,
discrete_info.LastScanTime);
GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);

Publication 1756-RM003F-FR-P - Mai 2002

3-50

Instructions d'entre/de sortie (MSG, GSV, SSV)

Exemple 3 : Cet exemple donne des informations d'tat sur la tche IO_test et
stocke les donnes dans une structure dfinie par l'utilisateur
io_test_info.

Logique relais

Texte structur
GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime);
GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime);
GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);

Configuration de marqueurs d'activation et de dsactivation


L'exemple suivant utilise l'instruction SSV pour activer ou dsactiver
un programme. Vous pouvez galement utiliser cette mthode pour
activer ou dsactiver un module d'E/S, ce qui est similaire
l'utilisation de bits d'inhibition avec un processeur PLC-5.

Exemple : Selon l'tat de SW.1, place la valeur approprie dans l'attribut


disableflag du programme discrete.

Logique relais

Publication 1756-RM003F-FR-P - Mai 2002

Instructions d'entre/de sortie (MSG, GSV, SSV)

3-51

Texte structur
IF SW.1 THEN
discrete_prog_flag := enable_prog;
ELSE
discrete_prog_flag := disable_prog;
END_IF;
SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);

Publication 1756-RM003F-FR-P - Mai 2002

3-52

Instructions d'entre/de sortie (MSG, GSV, SSV)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions de comparaison
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduction

Les instructions de comparaison vous permettent de comparer des


valeurs l'aide d'une expression ou d'une instruction de comparaison
spcifique.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

comparer des valeurs sur la base d'une expression

CMP

logique relais
texte structur(1)

4-2

tester si deux valeurs sont gales

EQU

logique relais
texte structur(2)
bloc fonctionnel

4-7

tester si une valeur est suprieure ou gale une


autre valeur

GEQ

logique relais
texte structur(1)
bloc fonctionnel

4-11

tester si une valeur est suprieure une autre valeur

GRT

logique relais
texte structur(1)
bloc fonctionnel

4-15

tester si une valeur est infrieure ou gale une autre


valeur

LEQ

logique relais
texte structur(1)
bloc fonctionnel

4-19

tester si une valeur est infrieure une autre valeur

LES

logique relais
texte structur(1)
bloc fonctionnel

4-23

tester si une valeur est comprise entre deux autres


valeurs

LIM

logique relais
bloc fonctionnel
texte structur(1)

4-27

passer deux valeurs dans un masque et tester si elles


sont gales

MEQ

logique relais
bloc fonctionnel
texte structur(1)

4-33

tester si une valeur n'est pas gale une autre valeur

NEQ

logique relais
texte structur(1)
bloc fonctionnel

4-38

(1)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.

(2)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.

Vous pouvez comparer des valeurs de diffrents types de donnes,


tels que virgule flottante et nombre entier.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.
1

Publication 1756-RM003F-FR-P - Mai 2002

4-2

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Comparaison (CMP)

L'instruction CMP effectue une comparaison sur les oprations


arithmtiques que vous indiquez dans l'expression.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Expression

SINT
INT
DINT
REAL
STRING

immdiat
point

expression constitue de points et/ou de


valeurs immdiates spares par des
oprateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Texte structur
Il n'y a pas d'instruction CMP en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS) et une expression.
IF expression_boolenne THEN
<instruction>;
END_IF;

Pour des informations sur la syntaxe des instructions de test et


expressions en texte structur, reportez-vous l'Annexe C.

Description : Dfinissez l'expression CMP avec des oprateurs, des points et des
valeurs immdiates. Utilisez des parenthses ( ) pour dfinir les
sections d'expressions plus complexes.
L'excution d'une instruction CMP est lgrement plus lente et utilise
davantage de mmoire que l'excution des autres instructions de
comparaison. L'avantage de l'instruction CMP est qu'elle vous permet
d'entrer des expressions complexes dans une seule instruction.

Indicateurs d'tat arithmtique :

L'instruction CMP affecte les indicateurs d'tat arithmtique


uniquement si l'expression contient un oprateur (ex., +, , *, /) qui
affecte les indicateurs d'tat arithmtique.

Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-3

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

l'expression est vraie


value l'expression

l'tat de sortie de la ligne


est rgl sur vrai

l'expression est fausse

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemples : Si l'instruction CMP trouve l'expression vraie, l'tat de sortie de la


ligne est rgl sur vrai.

Si vous entrez une expression sans oprateur de comparaison, telle


que value_1 + value_2 ou value_1, l'instruction value l'expression
ainsi :
Si l'expression

L'tat de sortie de la ligne est rgl sur

diffrent de zro

vrai

zro

faux

Publication 1756-RM003F-FR-P - Mai 2002

4-4

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Expressions CMP
Vous programmez les expressions en instructions CMP de la mme
faon que les expressions en instructions FSC. Utilisez les sections
suivantes pour trouver les informations sur les oprateurs, le format et
l'ordre d'opration valables, communs aux deux instructions.

Oprateurs valables
Oprateur

Description

Optimal

Oprateur

Description

Optimal

addition

DINT, REAL

DEG

radians en degrs

DINT, REAL

soustraction/ngation

DINT, REAL

FRD

DCB en nombre entier

DINT

multiplication

DINT, REAL

LN

logarithme naturel

REAL

division

DINT, REAL

LOG

logarithme dcimal

REAL

galit

DINT, REAL

MOD

modulo

DINT, REAL

<

infrieur

DINT, REAL

NOT

complment sur bits

DINT

<=

infrieur ou gal

DINT, REAL

OR

OU sur bits

DINT

>

suprieur

DINT, REAL

RAD

degrs en radians

DINT, REAL

>=

suprieur ou gal

DINT, REAL

SIN

sinus

REAL

<>

diffrent

DINT, REAL

SQR

racine carre

DINT, REAL

**

exposant (x y)

DINT, REAL

TAN

tangente

REAL

ABS

valeur absolue

DINT, REAL

TOD

nombre entier en DCB

DINT

ACS

cosinus d'arc

REAL

TRN

troncation

DINT, REAL

AND

ET sur bits

DINT

XOR

OU exclusif sur bits

DINT

ASN

sinus d'arc

REAL

ATN

tangente d'arc

REAL

COS

cosinus

REAL

Formatage des expressions


Pour chaque oprateur utilis dans une expression, vous devez
fournir un ou deux oprandes (points ou valeurs immdiates). Utilisez

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-5

le tableau suivant pour formater les oprateurs et les oprandes dans


une expression.
Pour les oprateurs
oprant sur

Utilisez ce format

Exemples

un oprande

oprateur(oprande)

ABS(point_a)

deux oprandes

oprande_a oprateur
oprande_b

point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)

Dfinition de l'ordre d'excution des oprations


Les oprations que vous crivez dans l'expression sont excutes par
l'instruction dans un ordre prcis, qui n'est pas ncessairement l'ordre
dans lequel vous les crivez. Vous pouvez modifier l'ordre des
oprations en groupant des termes entre parenthses, ce qui force
l'instruction excuter une opration entre parenthses avant les
autres oprations.
Les oprations d'ordre identique sont excutes de gauche droite.
Ordre

Opration

1.

()

2.

ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,


RAD, SIN, SQR, TAN, TOD, TRN

3.

**

4.

(ngation), NOT

5.

*, /, MOD

6.

<, <=, >, >=, =

7.

(soustraction), +

8.

AND

9.

XOR

10.

OR

Publication 1756-RM003F-FR-P - Mai 2002

4-6

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Utilisation de chanes dans une expression


Utilisez une expression de logique relais ou de texte structur pour
comparer des donnes de type chane. Pour utiliser des chanes dans
une expression, suivez ces directives :
une expression vous permet de comparer deux chanes de
caractres ;
vous ne pouvez pas entrer des caractres ASCII directement
dans l'expression ;
seuls les oprateurs suivants sont autoriss :
Oprateur

Description

gal

<

infrieur

<=

infrieur ou gal

>

suprieur

>=

suprieur ou gal

<>

diffrent

Les chanes sont gales si leurs caractres concordent.


Les caractres ASCII sont diffrents s'ils sont en majuscules ou
en minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).
Les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel.
Lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur
e

Publication 1756-RM003F-FR-P - Mai 2002

s
u
p
r
ie
ur
e

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Egal (EQU)

4-7

L'instruction EQU teste si Source A est gale Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport


Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport


Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les valeurs REAL sont rarement parfaitement gales. Si vous
devez dterminer l'galit de deux valeurs REAL, utilisez
l'instruction LIM.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA = sourceB THEN
<instructions>;

Utilisez le signe gal = comme oprateur dans une expression. Cette


expression value si sourceA est gale sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point EQU

FBD_COMPARE

structure

structure EQU

Publication 1756-RM003F-FR-P - Mai 2002

4-8

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne de l'instruction EQU
en logique relais.

Description : Utilisez l'instruction EQU pour comparer deux nombres ou deux


chanes de caractres ASCII. Lorsque vous comparez des chanes :
les chanes sont gales si leurs caractres concordent ;
les caractres ASCII sont diffrents s'ils sont en majuscules ou en
minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-9

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

oui

Source A = Source B

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

4-10

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est gale value_2, light_a est activ. Si value_1 est
diffrente de value_2, light_a est effac.

Logique relais

Texte structur
light_a := (value_1 = value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Suprieur ou gal (GEQ)

4-11

L'instruction GEQ teste si Source A est suprieure ou gale


Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA >= sourceB THEN
<instructions>;

Utilisez les signes suprieur et gal >= juxtaposs comme oprateur


dans une expression. Cette expression value si sourceA est
suprieure ou gale sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point GEQ

FBD_COMPARE

structure

structure GEQ

Publication 1756-RM003F-FR-P - Mai 2002

4-12

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais GEQ.

Description : L'instruction GEQ teste si Source A est suprieure ou gale


Source B.
Lorsque vous comparez des chanes :
les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel ;
lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

s
u
p
r
ie
ur

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-13

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Source A Source B

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

4-14

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est suprieure ou gale value_2, light_b est activ. Si


value_1 est infrieure value_2, light_b est effac.

Logique relais

Texte structur
light_b := (value_1 >= value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Suprieur (GRT)

4-15

L'instruction GRT teste si Source A est suprieure Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA > sourceB THEN
<instructions>;

Utilisez le signe suprieur > comme oprateur dans une expression.


Cette expression value si sourceA est suprieure sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point GRT

FBD_COMPARE

structure

structure GRT

Publication 1756-RM003F-FR-P - Mai 2002

4-16

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais GRT.

Description : L'instruction GRT teste si Source A est suprieure Source B.


Lorsque vous comparez des chanes :
les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel ;
lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

s
u
p
r
ie
ur

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-17

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Source A > Source B

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

4-18

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est suprieure value_2, light_1 est activ. Si value_1 est
infrieure ou gale value_2, light_1 est effac.

Logique relais

Texte structur
light_1 := (value_1 > value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Infrieur ou gal (LEQ)

4-19

L'instruction LEQ teste si Source A est infrieure ou gale Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA <= sourceB THEN
<instructions>;

Utilisez les signes infrieur et gal <= juxtaposs comme oprateur


dans une expression. Cette expression value si sourceA est infrieure
ou gale sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point LEQ

FBD_COMPARE

structure

structure LEQ

Publication 1756-RM003F-FR-P - Mai 2002

4-20

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LEQ.

Description : L'instruction LEQ teste si Source A est infrieure ou gale Source B.


Lorsque vous comparez des chanes :
les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel ;
lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

s
u
p
r
ie
ur

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-21

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Source A Source B

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

4-22

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est infrieure ou gale value_2, light_2 est activ. Si


value_1 est suprieure value_2, light_2 est effac.

Logique relais

Texte structur
light_2 := (value_1 <= value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Infrieur (LES)

4-23

L'instruction LES teste si Source A est infrieure Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA < sourceB THEN
<instructions>;

Utilisez le signe infrieur < comme oprateur dans une expression.


Cette expression value si sourceA est infrieure sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point LES

FBD_COMPARE

structure

structure LES

Publication 1756-RM003F-FR-P - Mai 2002

4-24

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LES.

Description : L'instruction LES teste si Source A est infrieure Source B.


Lorsque vous comparez des chanes :
les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel ;
lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

s
u
p
r
ie
ur

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-25

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Source A < Source B

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est faux

EnableOut est effac.

si EnableIn est vrai

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Si value_1 est infrieure value_2, light_3 est activ. Si value_1 est
suprieure ou gale value_2, light_3 est effac.

Logique relais

Publication 1756-RM003F-FR-P - Mai 2002

4-26

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Texte structur
light_3 := (value_1 < value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Test sur limites (LIM)

4-27

L'instruction LIM teste si la valeur Test est comprise entre la limite


infrieure (Low Limit) et la limite suprieure (High Limit).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Limite
infrieure

SINT
INT
DINT
REAL

immdiat
point

valeur de la limite infrieure

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Test

SINT
INT
DINT
REAL

immdiat
point

valeur tester

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Limite
suprieure

SINT
INT
DINT
REAL

immdiat
point

valeur de la limite suprieure

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Texte structur
Il n'y a pas d'instruction LIM en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant les instructions suivantes :
IF (LowLimit <= HighLimit AND
(Test >= LowLimit AND Test <= HighLimit)) OR
(LowLimit >= HighLimit AND
(Test <= LowLimit OR Test >= HighLimit)) THEN
<instruction>;

END_IF;

Bloc fonctionnel
Oprande

Type

Format

Description

point LIM

FBD_LIMIT

structure

structure LIM

Publication 1756-RM003F-FR-P - Mai 2002

4-28

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_LIMIT
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute comme dcrit dans la section Excution.
Activ par dfaut.

LowLimit

REAL

Valeur de la limite infrieure.


Valeurs correctes = toute virgule flottante.

Test

REAL

Valeur tester par rapport aux limites.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LIM.

HighLimit

REAL

Valeur de la limite suprieure


Valeurs correctes = toute virgule flottante.

Description : L'instruction LIM teste si la valeur Test est comprise entre la limite
infrieure (Low Limit) et la limite suprieure (High Limit).
Si limite
infrieure

Et la valeur test est

L'tat de sortie de la ligne est

limite suprieure

gale ou dans les limites

vrai

diffrente ou en dehors des


limites

faux

gale ou en dehors des limites

vrai

diffrente ou dans les limites

faux

limite suprieure

Les nombres entiers signs passent du nombre positif maximum au


nombre ngatif maximum lorsque le bit de poids fort est activ. Par
exemple, dans les nombres entiers de 16 bits (type INT), le nombre
entier positif maximum est 32 767, reprsent en hexadcimal par
16#7FFF (les bits 0 14 sont tous activs). Si vous augmentez ce
nombre de un, le rsultat est 16#8000 (le bit 15 est activ). Pour les
nombres entiers signs, hexadcimal 16#8000 est gal -32 768
dcimal. En augmentant partir de ce point jusqu' ce que les 16 bits
soient activs, on atteint 16#FFFF, qui est gal -1 dcimal.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-29

Ceci peut tre reprsent comme une ligne numrique circulaire (voir
les diagrammes suivants). L'instruction LIM commence la limite
infrieure (Low Limit) et augmente dans le sens horaire jusqu' la
limite suprieure (High Limit). Toute valeur Test dans la plage de sens
horaire, de la limite infrieure (Low Limit) la limite suprieure (High
Limit), rgle l'tat de sortie de la ligne sur vrai. Toute valeur Test dans
la plage de sens horaire, de la limite suprieure (High Limit) la limite
infrieure (Low Limit), rgle l'tat de sortie de la ligne sur faux.
Limite infrieure Limite suprieure
L'instruction est vraie si la valeur de test est
gale ou en dehors des limites infrieure et
suprieure

Limite infrieure Limite suprieure


L'instruction est vraie si la valeur de test est
gale ou dans les limites infrieure et
suprieure
0

+1

+1

limite infrieure

limite suprieure

limite suprieure
(n+1)

+n

n = valeur maximum

limite infrieure
(n+1)
+n
n = valeur maximum

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

4-30

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

value la limite

la comparaison est vraie l'tat de sortie de la ligne


est rgl sur vrai

la comparaison est fausse

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple 1 : Limite infrieure Limite suprieure :

Lorsque 0 value 100, light_1 est activ. Si value < 0 ou value >100,
light_1 est effac.

Logique relais

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-31

Texte structur
IF (value <= 100 AND(value >= 0 AND value <= 100)) OR
(value >= 100 AND value <= 0 OR value >= 100)) THEN
light_1 := 1;
ELSE
light_1 := 0;

END_IF;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

4-32

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple 2 : Limite infrieure Limite suprieure :

Lorsque value 0 ou value 100, light_1 est activ. Si value < 0 ou


value >100, light_1 est effac.

Logique relais

Texte structur
IF (0 <= -100 AND value >= 0 AND value <= -100)) OR
(0 >= -100 AND(value <= 0 OR value >= -100)) THEN
light_1 := 1;
ELSE
light_1 := 0;

END_IF;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Egalit avec masque (MEQ)

4-33

L'instruction MEQ passe les valeurs Source et Compare par un masque


et compare les rsultats.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

valeur tester par rapport Compare

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Masque

SINT
INT
DINT

immdiat
point

dfinit les bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Comparer

SINT
INT
DINT

immdiat
point

valeur tester par rapport Source

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.

Texte structur
Il n'y a pas d'instruction MEQ en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant les instructions suivantes :
IF (Source AND Mask) = (Compare AND Mask) THEN
<instruction>;
END_IF;

Bloc fonctionnel
Oprande

Type

Format

Description

point MEQ

FBD_MASK_EQUAL

structure

structure MEQ

Publication 1756-RM003F-FR-P - Mai 2002

4-34

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_MASK_EQUAL
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute comme dcrit dans la section Excution.
Activ par dfaut.

Source

DINT

Valeur tester par rapport Compare.


Valeurs correctes = tout nombre entier.

Masque

DINT

Dfinit les bits bloquer (masque).


Valeurs correctes = tout nombre entier.

Comparer

DINT

Valeur de comparaison.
Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais MEQ.

Description : Un 1 dans le masque signifie que le bit de donnes est pass. Un


0 dans le masque signifie que le bit de donnes est bloqu.
Gnralement, les valeurs Source, Mask et Compare sont du mme
type.
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Entre d'une valeur de masque immdiate


Lorsque vous entrez un masque, le logiciel de programmation passe
des valeurs dcimales par dfaut. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.
Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-35

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

source masque =
comparaison
masque

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

4-36

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple 1 : Si la valeur masque value_1 est gale la valeur masque value_2,


light_1 est activ. Si la valeur masque value_1 n'est pas gale la
valeur masque value_2, light_1 est effac. Cet exemple montre des
valeurs masques gales. Un 0 dans le masque empche l'instruction
de comparer ce bit (indiqu par x dans l'exemple).
value_1

value_2

mask_1

mask_1

Valeur masque
value_1

Valeur masque
value_2

Logique relais

Texte structur
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-37

Exemple 2 : Si la valeur masque value_1 est gale la valeur masque value_2,


light_1 est activ. Si la valeur masque value_1 n'est pas gale la
valeur masque value_2, light_1 est effac. Cet exemple montre des
valeurs masques diffrentes. Un 0 dans le masque empche
l'instruction de comparer ce bit (indiqu par x dans l'exemple).
value_1

value_2

mask_1

mask_1

Valeur masque
value_1

Valeur masque
value_2

Logique relais

Texte structur
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

4-38

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Diffrent de (NEQ)

L'instruction NEQ teste si Source A est diffrente de Source B.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source B

Source B

SINT
INT
DINT
REAL
STRING

immdiat
point

valeur tester par rapport Source A

Si vous entrez un point SINT ou INT, la valeur est convertie en


valeur DINT par extension de signe.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane que vous crez.
Pour tester les caractres d'une chane, entrez un point de type
chane de caractres pour Source A et Source B.

Texte structur
IF sourceA <> sourceB THEN
<instructions>;

Utilisez les signes infrieur et suprieur <> comme oprateur dans


l'expression. Cette expression value si sourceA est diffrent de
sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point NEQ

FBD_COMPARE

structure

structure NEQ

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-39

Structure FBD_COMPARE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.

SourceA

REAL

Valeur tester par rapport SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur tester par rapport SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

BOOL

Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais NEQ.

Description : L'instruction NEQ teste si Source A est diffrente de Source B.


Lorsque vous comparez des chanes :
les chanes de ne sont pas gales si un seul de leurs caractres
ne correspond pas dans les deux chanes ;
les caractres ASCII sont diffrents s'ils sont en majuscules ou en
minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).

in
f
ri
e
ur

s
u
p
r
ie
ur

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

4-40

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Source A = Source B

oui

l'tat de sortie de la ligne


est rgl sur vrai

non

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-41

Exemple : Si value_1 est diffrente de value_2, light_4 est activ. Si value_1 est
gale value_2, light_4 est effac.

Logique relais

Texte structur
light_4 := (value_1 <> value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

4-42

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions de calcul/mathmatiques
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduction

Les instructions de calcul/mathmatiques valuent les oprations


arithmtiques l'aide d'une expression ou d'une instruction
arithmtique particulire.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

valuer une expression

CPT

logique relais
texte structur(1)

5-2

additionner deux valeurs

ADD

logique relais
texte structur(2)
bloc fonctionnel

5-6

soustraire deux valeurs

SUB

logique relais
texte structur(2)
bloc fonctionnel

5-9

multiplier deux valeurs

MUL

logique relais
texte structur(2)
bloc fonctionnel

5-12

diviser deux valeurs

DIV

logique relais
texte structur(2)
bloc fonctionnel

5-15

dterminer le reste aprs la division d'une


valeur par une autre

MOD

logique relais
texte structur(2)
bloc fonctionnel

5-19

calculer la racine carre d'une valeur

SQR
SQRT(3)

logique relais
texte structur
bloc fonctionnel

5-23

prendre le signe oppos d'une valeur

NEG

logique relais
texte structur(2)
bloc fonctionnel

5-26

prendre la valeur absolue d'une valeur

ABS

logique relais
texte structur
bloc fonctionnel

5-29

(1)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.

(2)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.

(3)

Texte structur uniquement.

Vous pouvez combiner diffrents types de donnes ; cependant des


erreurs de prcision et un arrondissement des valeurs peuvent se
produire et l'instruction est plus longue excuter. Vrifiez le bit S:V
pour voir si le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

5-2

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Calcul (CPT)

L'instruction CPT effectue les oprations arithmtiques que vous


dfinissez dans l'expression.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Expression

SINT
INT
DINT
REAL

immdiat
point

expression constitue de points et/ou de


valeurs immdiates spares par des
oprateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Texte structur
Il n'y a pas d'instruction CPT en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une affectation et une expression.
destination := numeric_expression;

Pour des informations sur la syntaxe des affectations et expressions en


texte structur, reportez-vous l'Annexe C.

Description : L'instruction CPT effectue les oprations arithmtiques que vous


dfinissez dans l'expression. Lorsquelle est active, linstruction CPT
value l'expression et stocke le rsultat dans la Destination.
L'excution d'une instruction CPT est lgrement plus lente et utilise
plus de mmoire que l'excution des autres instructions de
calcul/mathmatiques. L'avantage de l'instruction CPT est qu'elle vous
permet d'entrer des expressions complexes dans une seule
instruction.
CONSEIL

Il n'y a pas de limite la longueur d'une expression.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-3

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Linstruction value l'expression et stocke le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple 1 : Lorsqu'elle est active, l'instruction CPT value value_1 multiplie par
5 et divise ce rsultat par le rsultat de value_2 divise par 7 et stocke
le rsultat final dans result_1.

Exemple 2 : Lorsqu'elle est active, l'instruction CPT tronque float_value_1 et


float_value_2, porte la valeur tronque float_value_2 la puissance
deux et divise la valeur tronque float_value_1 par ce rsultat, puis
stocke le reste aprs la division dans float_value_result_cpt.

Publication 1756-RM003F-FR-P - Mai 2002

5-4

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Oprateurs valables
Oprateur

Description

Optimal

Oprateur

Description

Optimal

addition

DINT, REAL

LOG

logarithme dcimal

REAL

soustraction/ngation

DINT, REAL

MOD

modulo

DINT, REAL

multiplication

DINT, REAL

NOT

complment sur bits

DINT

division

DINT, REAL

OR

OU sur bits

DINT

**

exposant (x y)

DINT, REAL

RAD

degrs en radians

DINT, REAL

ABS

valeur absolue

DINT, REAL

SIN

sinus

REAL

ACS

cosinus d'arc

REAL

SQR

racine carre

DINT, REAL

AND

ET sur bits

DINT

TAN

tangente

REAL

ASN

sinus d'arc

REAL

TOD

nombre entier en DCB

DINT

ATN

tangente d'arc

REAL

TRN

troncation

DINT, REAL

COS

cosinus

REAL

XOR

OU exclusif sur bits

DINT

DEG

radians en degrs

DINT, REAL

FRD

DCB en nombre entier

DINT

LN

logarithme naturel

REAL

Formatage des expressions


Pour chaque oprateur utilis dans une expression, vous devez
fournir un ou deux oprandes (points ou valeurs immdiates). Utilisez
le tableau suivant pour formater les oprateurs et les oprandes dans
une expression.
Pour les oprateurs
oprant sur

Utilisez ce format

Exemples

un oprande

oprateur(oprande)

ABS(point_a)

deux oprandes

oprande_a oprateur
oprande_b

point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)

Dfinition de l'ordre d'excution des oprations


Les oprations que vous crivez dans l'expression sont excutes par
l'instruction dans un ordre prcis, qui n'est pas ncessairement l'ordre
dans lequel vous les crivez. Vous pouvez modifier l'ordre des
oprations en groupant des termes entre parenthses, ce qui force
l'instruction excuter une opration entre parenthses avant les
autres oprations.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-5

Les oprations d'ordre identique sont excutes de gauche droite.


Ordre

Opration

1.

()

2.

ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3.

**

4.

(ngation), NOT

5.

*, /, MOD

6.

(soustraction), +

7.

AND

8.

XOR

9.

OR

Publication 1756-RM003F-FR-P - Mai 2002

5-6

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Addition (ADD)

L'instruction ADD ajoute Source A Source B et stocke le rsultat


dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL

immdiat
point

valeur ajouter Source B

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B

SINT
INT
DINT
REAL

immdiat
point

valeur ajouter Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceA + sourceB;

Utilisez le signe plus + comme oprateur dans une expression. Cette


expression ajoute sourceA sourceB et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point ADD

FBD_MATH

structure

structure ADD

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-7

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.

SourceA

REAL

Valeur ajouter SourceB.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

Valeur ajouter SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.

Description : L'instruction ADD ajoute Source A Source B et stocke le rsultat


dans la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = Source A + Source B


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

5-8

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemple : Additionner float_value_1 et float_value_2 et placer le rsultat


dans add_result.

Logique relais

Texte structur
add_result := float_value_1 + float_value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Soustraction (SUB)

5-9

L'instruction SUB soustrait Source B Source A et stocke le rsultat


dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL

immdiat
point

valeur dont Source B est soustraire

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B

SINT
INT
DINT
REAL

immdiat
point

valeur soustraire de Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceA - sourceB;

Utilisez le signe moins comme oprateur dans une expression.


Cette expression soustrait sourceB de sourceA et stocke le rsultat
dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point SUB

FBD_MATH

structure

structure SUB

Publication 1756-RM003F-FR-P - Mai 2002

5-10

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

REAL

Valeur dont SourceB est soustraire.


Valeurs correctes = toute virgule flottante.

SourceB

REAL

valeur soustraire de SourceA.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : L'instruction SUB soustrait Source B Source A et stocke le rsultat


dans la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = Source B - Source A


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-11

Exemple : Soustraire float_value_2 de float_value_1 et placer le rsultat dans


subtract_result.

Logique relais

Texte structur
subtract_result := float_value_1 - float_value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

5-12

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Multiplication (MUL)

L'instruction MUL multiplie Source A par Source B et stocke le rsultat


dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL

immdiat
point

valeur du multiplicande

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B

SINT
INT
DINT
REAL

immdiat
point

valeur du multiplicateur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceA * sourceB;

Utilisez le signe multiplier comme oprateur dans une expression.


Cette expression multiplie sourceA par sourceB et stocke le rsultat
dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point MUL

FBD_MATH

structure

structure MUL

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-13

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source A

REAL

Valeur du multiplicande.
Valeurs correctes = toute virgule flottante.

Source B

REAL

Valeur du multiplicateur.
Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : L'instruction MUL multiplie Source A par Source B et stocke le rsultat


dans la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = Source B x Source A


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

5-14

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemple : Multiplier float_value_1 par float_value_2 et placer le rsultat dans


multiply_result.

Logique relais

Texte structur
multiply_result := float_value_1 float_value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Division (DIV)

5-15

L'instruction DIV divise Source A par Source B et stocke le rsultat


dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL

immdiat
point

valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B

SINT
INT
DINT
REAL

immdiat
point

valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceA / sourceB;

Utilisez le signe diviser / comme oprateur dans une expression.


Cette expression divise sourceA par sourceB et stocke le rsultat dans
dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point DIV

FBD_MATH

structure

structure DIV

Publication 1756-RM003F-FR-P - Mai 2002

5-16

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source A

REAL

Valeur du dividende.
Valeurs correctes = toute virgule flottante.

Source B

REAL

Valeur du diviseur.
Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : Si la Destination n'est pas REAL, l'instruction traite la partie dcimale


du rsultat comme suit :
Si Source A

La partie dcimale du
rsultat

et Source B ne sont pas est tronque


REAL

ou Source B est REAL

est arrondie

Exemple
Source A

DINT

Source B

DINT

Destination

DINT

Source A

REAL

5.0

Source B

DINT

Destination

DINT

Si Source B (le diviseur) est zro :


un dfaut mineur se produit :
type 4 : dfaut du programme ;
code 4 : dpassement arithmtique.
la destination est rgle comme suit :
Si Source B est zro et

Et la destination est un

Et le rsultat est

tous les oprandes sont des


nombres entiers (SINT, INT ou DINT)
au moins un oprande est un REAL

La destination est rgle sur


Source A

SINT, INT ou DINT


REAL

positif

-1

ngatif

positif

1.$ (infini positif)

ngatif

-1.$ (infini ngatif)

Pour dtecter une ventuelle division par zro, examinez le bit de


dfaut mineur (S:MINOR). Voir Automate Logix5000 - Procdures
gnrales (publication 1756-PM001).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-17

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut mineur se
produit si

Type du dfaut

Code du dfaut

le diviseur est zro

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = Source A / Source B


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

5-18

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemple 1 : Diviser float_value_1 par float_value_2 et placer le rsultat dans


divide_result.

Logique relais

Texte structur
divide_result := float_value_1 / float_value_2;

Bloc fonctionnel

Exemple 2 : Les instructions DIV et MOV travaillent ensemble pour diviser deux
nombres entiers, arrondir le rsultat et le placer dans un point de
nombre entier :
l'instruction DIV divise dint_a par dint_b ;
pour arrondir le rsultat, la destination est un point REAL (si la
destination est un point de nombre entier (SINT, INT ou DINT),
l'instruction tronque le rsultat) ;
l'instruction MOV dplace le rsultat arrondi (real_temp) de DIV
vers divide_result_rounded ;
puisque divide_result_rounded est un point DINT, la valeur de
real_temp est arrondie et place dans la destination DINT.

Logique relais

43009

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Modulo (MOD)

5-19

L'instruction MOD divise Source A par Source B et stocke le reste dans


la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT
REAL

immdiat
point

valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B

SINT
INT
DINT
REAL

immdiat
point

valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceA MOD sourceB;

Utilisez MOD comme oprateur dans une expression. Cette


expression divise sourceA par sourceB et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point MOD

FBD_MATH

structure

structure MOD

Publication 1756-RM003F-FR-P - Mai 2002

5-20

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source A

REAL

Valeur du dividende.
Valeurs correctes = toute virgule flottante.

Source B

REAL

Valeur du diviseur.
Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : Si Source B (le diviseur) est zro :


un dfaut mineur se produit :
type 4 : dfaut du programme ;
code 4 : dpassement arithmtique.
la destination est rgle comme suit :
Si Source B est zro et

Et la destination est un

Et le rsultat est

tous les oprandes sont des


nombres entiers (SINT, INT ou DINT)
au moins un oprande est un REAL

La destination est rgle sur


Source A

SINT, INT ou DINT


REAL

positif

-1

ngatif

positif

1.$ (infini positif)

ngatif

-1.$ (infini ngatif)

Pour dtecter une ventuelle division par zro, examinez le bit de


dfaut mineur (S:MINOR). Voir Automate Logix5000 - Procdures
gnrales (publication 1756-PM001).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-21

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut mineur se
produit si

Type du dfaut

Code du dfaut

le diviseur est zro

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = Source A (TRN (Source A / Source B) * Source B)


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

5-22

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemple : Diviser dividend par divisor et placer le rsultat dans remainder. Dans
cet exemple, trois va trois fois dans 10, avec un reste de un.

Logique relais

Texte structur
remainder := dividend MOD divisor;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Racine carre (SQR)

5-23

L'instruction SQR calcule la racine carre de la Source et stocke le


rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

trouve la racine carre de cette valeur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := SQRT(source);

Utilisez SQRT comme une fonction. Cette expression calcule la racine


carre de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point SQR

FBD_MATH_ADVANCED

structure

structure SQR

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Trouve la racine carre de cette valeur.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Publication 1756-RM003F-FR-P - Mai 2002

5-24

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Description : Si la Destination n'est pas REAL, l'instruction traite la partie dcimale


du rsultat comme suit :
Si la Source est

La partie dcimale du
rsultat

Exemple

n'est pas REAL

est tronque

Source

DINT

Destination

DINT

Source

REAL

3.0

Destination

DINT

est REAL

est arrondie

Si la valeur Source est ngative, l'instruction prend la valeur absolue


de la Source avant de calculer la racine carre.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination =

Source

L'tat de sortie de la ligne est rgl sur vrai.


pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-25

Exemple : Calculer la racine carre de value_1 et placer le rsultat dans


sqr_result.

Logique relais

Texte structur
sqr_result := SQRT(value_1);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

5-26

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Ngation (NEG)

L'instruction NEG change le signe de la Source et stocke le rsultat


dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

valeur de ngation

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
Utilisez le signe moins comme oprateur dans une expression.
Cette expression change le signe de source et stocke le rsultat
dans dest.

dest := -source;

Pour des informations sur la syntaxe des expressions en texte


structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point NEG

FBD_MATH_ADVANCED

structure

structure NEG

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Valeur de ngation.
Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : Si vous ajoutez un signe moins une valeur ngative, le rsultat est
positif. Si vous ajoutez un signe moins une valeur positive, le
rsultat est ngatif.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-27

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = 0 Source
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Changer le signe de value_1 et placer le rsultat dans negate_result.


Logique relais

Texte structur
negate_result := -value_1;

Publication 1756-RM003F-FR-P - Mai 2002

5-28

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Valeur absolue (ABS)

5-29

L'instruction ABS prend la valeur absolue de la Source et stocke le


rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

valeur de laquelle prendre la valeur absolue

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := ABS(source);

Utilisez ABS comme une fonction. Cette expression calcule la valeur


absolue de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point ABS

FBD_MATH_ADVANCED

structure

structure ABS

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Valeur de laquelle prendre la valeur absolue.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : L'instruction ABS prend la valeur absolue de la Source et stocke le


rsultat dans la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

5-30

Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Destination = | Source |
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Placer la valeur absolue de value_1 dans value_1_absolute. Dans cet


exemple, la valeur absolue de moins quatre est quatre.

Logique relais

Texte structur
value_1_absolute := ABS(value_1);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions de transfert/logiques
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT,
BAND, BOR, BXOR, BNOT)

Introduction

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de prcision et un arrondissement des valeurs peuvent se produire et
l'instruction est plus longue excuter. Vrifiez le bit S:V pour voir si
le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.
Les instructions de transfert modifient et dplacent les bits.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

copier une valeur

MOV

logique relais
texte structur(1)

6-3

copier une partie spcifique d'un nombre entier

MVM

logique relais

6-5

copier une partie spcifique d'un nombre entier


dans un bloc fonctionnel

MVMT

texte structur
bloc fonctionnel

6-8

transfrer des bits l'intrieur d'un nombre entier


ou entre des nombres entiers

BTD

logique relais

6-11

dplacer des bits dans un nombre entier ou entre


des nombres entiers dans un bloc fonctionnel

BTDT

texte structur
bloc fonctionnel

6-14

effacer une valeur

CLR

texte structur(1)
logique relais

6-17

logique relais
texte structur

6-18

rorganiser les octets d'un point INT, DINT ou REAL SWPB


(1)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

6-2

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Les instructions logiques effectuent des oprations sur les bits.


Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

une opration ET sur bits

AND
&(1)

logique relais
texte structur(2)
bloc fonctionnel

6-22

une opration OU sur bits

OR

logique relais
texte structur(2)
bloc fonctionnel

6-25

une opration OU exclusif sur bits

XOR

logique relais
texte structur(2)
bloc fonctionnel

6-28

une opration COMPLEMENT sur bits

NOT

logique relais
texte structur(2)
bloc fonctionnel

6-31

une opration ET logique sur huit entres


boolennes maximum

BAND

texte structur(2)
bloc fonctionnel

6-34

une opration OU logique sur huit entres


boolennes maximum

BOR

texte structur(2)
bloc fonctionnel

6-37

effectuer un OU exclusif sur deux entres


boolennes

BXOR

texte structur(2)
bloc fonctionnel

6-40

complter une entre boolenne

BNOT

texte structur(2)
bloc fonctionnel

6-42

(1)

Texte structur uniquement.

(2)

En texte structur, les oprations AND, OR, XOR et NOT peuvent tre sur bits ou logiques.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Transfert (MOV)

6-3

L'instruction MOV copie la Source dans la Destination. La Source reste


inchange.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

valeur transfrer (copier)

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := source;

Utilisez une affectation := avec une expression. Cette affectation


transfert la valeur de source dans dest.
Pour des informations sur la syntaxe des expressions et affectations en
texte structur, reportez-vous l'Annexe C.

Description : L'instruction MOV copie la Source dans la Destination. La Source reste


inchange.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

6-4

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction copie la Source dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Transfrer les donnes de value_1 dans value_2.


Logique relais

Texte structur
value_2 := value _1;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Transfert avec masque


(MVM)

6-5

L'instruction MVM copie la Source dans une Destination et permet de


masquer une partie des donnes.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction MVMT (voir page 6-8).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

valeur transfrer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Masque

SINT
INT
DINT

immdiat
point

bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Destination

SINT
INT
DINT

point

point pour le stockage du rsultat

Texte structur
dest := (Dest AND NOT (Mask))
OR (Source AND Mask);

Cette instruction existe en texte structur comme instruction MVMT.


Vous pouvez galement combiner une logique sur bits dans une
expression et attribuer le rsultat la destination. Cette expression
excute un transfert avec masque sur Source.
Pour des informations sur la syntaxe des expressions et affectations en
texte structur, reportez-vous l'Annexe C.

Description : L'instruction MVM utilise un masque pour passer ou bloquer les bits
de donnes Source. Un 1 dans le masque signifie que le bit de
donnes est pass. Un 0 dans le masque signifie que le bit de
donnes est bloqu.
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Publication 1756-RM003F-FR-P - Mai 2002

6-6

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Entre d'une valeur de masque immdiate


Lorsque vous entrez un masque, le logiciel de programmation passe
des valeurs dcimales par dfaut. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.
Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction passe la Source par le masque et copie le rsultat dans la Destination. Les
bits non masqus de la Destination restent inchangs.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-7

Exemple : Copier des donnes de value_a dans value_b, tout en permettant aux
donnes d'tre masques (un 0 masque les donnes de value_a).

Les parties grises montrent les bits qui ont chang dans value_b.

Logique relais

Texte structur
value_b := (value_b AND NOT (mask_2)) OR
(value_a AND mask_2);

Publication 1756-RM003F-FR-P - Mai 2002

6-8

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Transfert avec masque et


cible (MVMT)

L'instruction MVMT copie d'abord la Cible (consigne) dans la


Destination. Elle compare ensuite la Source masque la Destination
et applique les changements ncessaires la Destination. La Cible et
la Source restent inchanges.
Cette instruction est disponible en logique relais comme instruction
MVM (voir page 6-5).

Oprandes :
MVMT(MVMT_tag);

Texte structur
Variable

Type

point MVMT FBD_MASKED_MOVE

Format

Description

structure

structure MVMT

Format

Description

structure

structure MVMT

Bloc fonctionnel
Oprande

Type

point MVMT FBD_MASKED_MOVE

Structure FBD_MASKED_MOVE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

Source

DINT

Valeur d'entre transfrer dans la Destination en fonction de la valeur du Masque.


Valeurs correctes = tout nombre entier.

Masque

DINT

Masque des bits transfrer de Source Dest. Tous les bits rgls sur un font passer les bits
correspondants de Source dans Dest. Tous les bits rgls sur zro empchent les bits
correspondants de passer de Source dans Dest.
Valeurs correctes = tout nombre entier.

Cible

DINT

Valeur d'entre transfrer dans Dest avant de transfrer les bits de Source travers le
Masque.
Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat d'une instruction de transfert avec masque. Les indicateurs d'tat arithmtiques
sont activs pour cette sortie.

Description : Lorsqu'elle est active, l'instruction MVMT utilise un masque pour


passer ou bloquer les bits de donnes Source. Un 1 dans le masque
Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-9

signifie que le bit de donnes est pass. Un 0 dans le masque


signifie que le bit de donnes est bloqu.
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.
Entre d'une valeur de masque immdiate l'aide d'une rfrence
d'entre
Lorsque vous entrez un masque, le logiciel de programmation passe
des valeurs dcimales par dfaut. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.
Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

Aucune.

Aucune.

pendant la premire
excution de l'instruction

Aucune.

Aucune.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

EnableIn est toujours activ.


L'instruction est excute.

pendant la post-scrutation

Aucune.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

6-10

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple :

1. Copier Cible dans Dest.

Cible

Dest

2. L'instruction masque Source et la compare Dest. Les


modifications requises sont effectues dans Dest. Source et Cible
restent inchanges. Un 0 dans le masque empche l'instruction
de comparer ce bit (indiqu par x dans l'exemple).

Source

Mask1

Dest

Les parties grises montrent les bits qui ont chang.

Texte structur :
MVMT_01.Source := value_1;
MVMT_01.Mask := mask1;
MVMT_01.Target := target;
MVMT(MVMT_01);
value_masked := MVMT_01.Dest;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribution d'un champ de


bits (BTD)

6-11

L'instruction BTD copie les bits spcifis de la Source, les place dans
la position approprie et les crit dans la Destination.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction BTDT (voir page 6-14).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

point qui contient le bit transfrer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Bit source

DINT

immdiat
(0-31 DINT)
(0-15 INT)
(0-7 SINT)

numro du bit (plus petit numro de bit)


partir duquel commencer le transfert
doit tre dans la plage valable du type de
donnes Source

Destination

SINT
INT
DINT

point

point dans lequel transfrer les bits

Bit
destinataire

DINT

immdiat
(0-31 DINT)
(0-15 INT)
(0-7 SINT)

numro du bit (plus petit numro de bit)


partir duquel commencer la copie de bits
Source
doit tre dans la plage valable du type de
donnes Destination

Longueur

DINT

immdiat
(1-32)

nombre de bits transfrer

Description : Lorsqu'elle est active, l'instruction BTD copie un groupe de bits de la


Source dans la Destination. Le groupe de bits est identifi par le bit
Source (plus petit numro de bit du groupe) et la Longueur (nombre
de bits copier). Le bit de Destination identifie le plus petit numro
de bit par lequel commencer dans la Destination. La Source reste
inchange.
Si la longueur du champ de bit dpasse la Destination, l'instruction
n'enregistre pas les bits supplmentaires. Ces bits ne passent pas au
mot suivant.
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

6-12

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction copie et dplace les bits de Source dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple 1 : Lorsqu'elle est active, l'instruction BTD transfre les bits dans
value_1.

bit source

bit destination

value_1 avant l'instruction BTD

value_1 aprs l'instruction BTD

Les parties grises montrent les bits qui ont chang dans value_1.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-13

Exemple 2 : Lorsqu'elle est active, l'instruction BTD transfre 10 bits de value_1


dans value_2.

bit source

value_1

bit destination

value_2 avant l'instruction BTD

value_2 aprs l'instruction BTD

Les parties grises montrent les bits qui ont chang dans value_2.

Publication 1756-RM003F-FR-P - Mai 2002

6-14

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribution d'un champ de


bits avec cible (BTDT)

L'instruction BTDT copie d'abord la Cible dans la Destination.


L'instruction copie ensuite les bits indiqus de la Source, les place
dans la position approprie et les crit dans la Destination. La Cible et
la Source restent inchanges.
Cette instruction est disponible en logique relais comme instruction
BTD (voir page 6-11).

Oprandes :
BTDT(BTDT_tag);

Texte structur
Variable

Type

Format

Description

point BTDT

FBD_BIT_FIELD_DISTRIBUTE

structure

structure BTDT

Bloc fonctionnel
Oprande

Type

Format

Description

point BTDT

FBD_BIT_FIELD_DISTRIBUTE

structure

structure BTDT

Structure FBD_BIT_FIELD_DISTRIBUTE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.

Source

DINT

Valeur d'entre contenant les bits transfrer dans la Destination.


Valeurs correctes = tout nombre entier.

SourceBit

DINT

La position du bit dans Source (le plus petit numro de bit partir duquel commencer le
transfert).
Valeurs correctes = 0 31.

Longueur

DINT

Nombre de bits transfrer


Valeurs correctes = 1 32.

DestBit

DINT

La position du bit dans Dest (le plus petit numro de bit partir duquel commencer copier
des bits).
Valeurs correctes = 0 31.

Cible

DINT

Valeur d'entre transfrer dans Dest avant de transfrer les bits partir de la Source.
Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'opration de transfert de bit. Les indicateurs d'tat arithmtiques sont activs
pour cette sortie.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-15

Description : Lorsqu'elle est active, l'instruction BTD copie un groupe de bits de la


Source dans la Destination. Le groupe de bits est identifi par le bit
Source (plus petit numro de bit du groupe) et la Longueur (nombre
de bits copier). Le bit de Destination identifie le plus petit numro
de bit par lequel commencer dans la Destination. La Source reste
inchange.
Si la longueur du champ de bit dpasse la Destination, l'instruction
n'enregistre pas les bits supplmentaires. Ces bits ne passent pas au
mot suivant.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

Action du texte structur

pendant la pr-scrutation

Aucune.

Aucune.

pendant la premire
scrutation de l'instruction

Aucune.

Aucune.

pendant la premire
excution de l'instruction

Aucune.

Aucune.

si EnableIn est effac

EnableOut est effac, l'instruction ne fait rien et les


sorties ne sont pas actualises.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

EnableIn est toujours activ.


L'instruction est excute.

pendant la post-scrutation

Aucune.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

6-16

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple :

1. L'automate copie Cible dans Dest.

Cible

Dest

2. SourceBit et Length indiquent les bits de Source copis dans


Dest, en commenant par DestBit. Source et Cible restent
inchanges.
SourceBit

DestBit

Source

Dest

Les parties grises montrent les bits qui ont chang..

Texte structur :
BTDT_01.Source := source;
BTDT_01.SourceBit := source_bit;
BTDT_01.Length := length;
BTDT_01.DestBit := dest_bit;
BTDT_01.Target := target;
BTDT(BTDT_01);
distributed_value := BTDT_01.Dest;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Effacer (CLR)

6-17

L'instruction CLR efface tous les bits de la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Destination

SINT
INT
DINT
REAL

point

point effacer

Texte structur

dest := 0;

Il n'y a pas d'instruction CLR en texte structur. Attribuez un 0 au


point que vous voulez effacer. Cette instruction d'affectation efface
dest.
Pour des informations sur la syntaxe des expressions et instructions
d'affectation en texte structur, reportez-vous l'Annexe C.

Description : L'instruction CLR efface tous les bits de la Destination.


Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.
Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction efface la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Effacer tous les bits de value avec des 0.


Logique relais

Texte structur :
value := 0;

Publication 1756-RM003F-FR-P - Mai 2002

6-18

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Permutation d'octets
(SWPB)

L'instruction SWPB rorganise les octets d'une valeur.

Oprandes :
Logique relais

Oprande

Type

Format

Entrez

Source

INT
DINT
REAL

point

le point contenant les octets rorganiser

Mode Ordre

Destination

INT
DINT
REAL

point

Si la source
est

Et si vous voulez mettre les octets dans


cette configuration (chaque lettre
reprsente un octet diffrent)

Slectionnez

INT

n'importe quelle
option

DINT
REAL

ABCD DCBA

REVERSE (ou entrez 0)

ABCD CDAB

WORD (ou entrez 1)

ABCD BADC

HIGH/LOW (ou entrez


2)

le point stockant les octets dans le nouvel ordre


Si la source
est

La destination doit tre

INT

INT
DINT

DINT

DINT

REAL

REAL

Texte structur
SWPB(Source,OrderMode,Dest);

Les oprandes sont les mmes que ceux de l'instruction SWPB en


logique relais. Si vous slectionnez le mode HIGH/LOW, entrez-le
sous la forme HIGHLOW ou HIGH_LOW (sans barre oblique).

Description : L'instruction SWPB rorganise l'ordre des octets de la Source. Elle


place le rsultat dans la Destination.
Lorsque vous lisez ou crivez des caractres ASCII, vous n'avez
gnralement pas besoin de permuter les caractres. Les instructions

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-19

de lecture et d'criture ASCII (ARD, ARL, AWA, AWT) permutent


automatiquement les caractres, comme indiqu ci-dessous.
lecteur de codes-barres

BA

Nom du point

Valeur

Style

Type

bar_code[0]

AB

ASCII

INT

42969

42968

AB

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction rorganise les octets indiqus.

L'instruction rorganise les octets indiqus.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

6-20

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple 1 : Chacune des trois instructions SWPB rorganise les octets de DINT_1
dans un ordre diffrent. L'affichage est de type ASCII et chaque
caractre reprsente un octet. Chaque instruction place les octets,
dans le nouvel ordre, dans une Destination diffrente.

Logique relais

Texte structur :
SWPB(DINT_1,REVERSE,DINT_1_reverse);
SWPB(DINT_1,WORD,DINT_1_swap_word);
SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);

Exemple 2 : L'exemple suivant inverse les octets dans chaque lment d'un
tableau. Pour un projet RSLogix 5000 qui contient cet exemple, ouvrez
le dossier RSLogix 5000\Projects\Samples, fichier
Swap_Bytes_in_Array.ACD.
1. Initialisation des points. L'instruction SIZE trouve le nombre
d'lments dans array et stocke cette valeur dans array_length.
Une instruction suivante utilise cette valeur pour dterminer
quand le sous-programme a agi sur tous les lments dans le
tableau.
2. Inversion des octets dans un lment de array.
L'instruction SWPB inverse les octets du numro d'lment qui
est indiqu par la valeur de index. Par exemple, lorsque index
est gal 0, l'instruction SWPB agit sur array[0].
L'instruction ADD incrmente index. A l'excution suivante de
l'instruction, l'instruction SWPB agit sur l'lment suivant dans
array.
3. Dtermination du moment o l'instruction SWPB a agi sur tous
les lments dans le tableau.
Si index est infrieur au nombre d'lments dans le tableau
(array_length), l'instruction continue avec l'lment suivant du
tableau.
Si index est gal array_length, alors l'instruction SWPB a agi
sur tous les lments du tableau.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-21

Logique relais
Initialise les points.

Inverse les octets.

Dtermine si l'instruction SWPB a agi sur tous les lments du tableau.

Texte structur :
index := 0;
SIZE (array[0],0,array_length);
REPEAT
SWPB(array[index],REVERSE,array_bytes_reverse[index]);
index := index + 1;
UNTIL(index >= array_length)END_REPEAT;

Publication 1756-RM003F-FR-P - Mai 2002

6-22

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

ET sur bits (AND)

L'instruction AND effectue une opration ET sur bits l'aide des bits
dans Source A et Source B, et place le rsultat dans la Destination.
Pour effectuer un ET logique, voir page 6-34.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction AND avec


Source B

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Source B

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction AND avec


Source A

Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Destination

SINT
INT
DINT

point

stocke le rsultat

Texte structur
dest := sourceA AND sourceB

Utilisez AND ou le signe & comme oprateur dans une expression.


Cette expression calcule sourceA ET sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point AND

FBD_LOGICAL

structure

structure AND

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-23

Structure FBD_LOGICAL
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

DINT

Valeur utilise par l'instruction AND avec SourceB.


Valeurs correctes = tout nombre entier.

SourceB

DINT

Valeur utilise par l'instruction AND avec SourceA.


Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Description : Lorsqu'elle est active, l'instruction calcule l'opration ET :


Si le bit de
Source A est

Si le bit de
Source B est

Le bit de Destination
est

Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction effectue une opration ET sur bits.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

6-24

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Lorsqu'elle est active, l'instruction AND effectue une opration ET sur
bits sur SourceA et SourceB, puis stocke le rsultat dans la
Destination.

SourceA

SourceB

Dest

Logique relais

Texte structur :
value_result_and := value_1 AND value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU sur bits (OR)

6-25

L'instruction OR effectue une opration OU sur bits l'aide des bits


dans Source A et Source B et stocke le rsultat dans la Destination.
Pour effectuer un OU logique, voir page 6-37.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction OR


avec Source B

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Source B

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction OR


avec Source A

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination

SINT
INT
DINT

point

stocke le rsultat

Texte structur
dest := sourceA OR sourceB

Utilisez OR comme oprateur dans une expression. Cette expression


calcule sourceA OU sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point OR

FBD_LOGICAL

structure

structure OR

Publication 1756-RM003F-FR-P - Mai 2002

6-26

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Structure FBD_LOGICAL
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

DINT

Valeur utilise par l'instruction OR avec SourceB.


Valeurs correctes = tout nombre entier.

SourceB

DINT

Valeur utilise par l'instruction OR avec SourceA.


Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Description : Lorsqu'elle est active, l'instruction calcule l'opration OU :


Si le bit de
Source A est

Si le bit de
Source B est

Le bit de Destination
est

Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction effectue une opration OU sur bits.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-27

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Lorsqu'elle est active, l'instruction OR effectue une opration OU sur


bits sur SourceA et SourceB, puis stocke le rsultat dans la
Destination.

SourceA

SourceB

Dest

Logique relais

Texte structur :
value_result_or := value_1 OR value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

6-28

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU exclusif sur bits (XOR)

L'instruction XOR effectue une opration OU exclusif sur bits l'aide


des bits dans Source A et Source B et stocke le rsultat dans la
Destination.
Pour effectuer un OU exclusif logique, voir page 6-40.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source A

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction XOR


avec Source B

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Source B

SINT
INT
DINT

immdiat
point

valeur utilise par l'instruction XOR


avec Source A

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination

SINT
INT
DINT

point

stocke le rsultat

Texte structur
dest := sourceA XOR sourceB

Utilisez XOR comme oprateur dans une expression. Cette expression


calcule sourceA OU exclusif sourceB.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point XOR

FBD_LOGICAL

structure

structure XOR

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-29

Structure FBD_LOGICAL
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

SourceA

DINT

Valeur utilise par l'instruction XOR avec SourceB.


Valeurs correctes = tout nombre entier.

SourceB

DINT

Valeur utilise par l'instruction XOR avec SourceA.


Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Description : Lorsqu'elle est active, l'instruction calcule l'opration OU exclusif :


Si le bit de
Source A est

Si le bit de
Source B est

Le bit de
Destination est

Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction effectue une opration OU sur bits.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

6-30

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Lorsqu'elle est active, l'instruction XOR effectue une opration OU


exclusif sur bits sur SourceA et SourceB, et place le rsultat dans le
point de destination.

value_1

value_2

value_result_xor

Logique relais

Texte structur :
value_result_xor := value_1 XOR value_2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

COMPLEMENT sur bits


(NOT)

6-31

L'instruction NOT effectue une opration COMPLEMENT sur bits


l'aide des bits de la Source et stocke le rsultat dans la Destination.
Pour effectuer un COMPLEMENT logique, voir page 6-42.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

valeur de ngation

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination

SINT
INT
DINT

point

stocke le rsultat

Texte structur
dest := NOT source

Utilisez NOT comme oprateur dans une expression. L'expression


calcule COMPLEMENT source.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point NOT

FBD_LOGICAL

structure

structure NOT

Structure FBD_LOGICAL
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

DINT

Valeur de ngation.
Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Publication 1756-RM003F-FR-P - Mai 2002

6-32

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Description : Lorsqu'elle est active, l'instruction calcule l'opration


COMPLEMENT :
Si le bit de la Source est

Le bit de Destination est

Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction effectue une opration COMPLEMENT sur bits.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Lorsqu'elle est active, l'instruction NOT effectue une opration


COMPLEMENT sur bits sur Source et place le rsultat dans Dest.

value_1

value_result_not

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-33

Logique relais

Texte structur :
value_result_not := NOT value_1;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

6-34

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

ET boolen (BAND)

L'instruction BAND effectue une opration ET logique de 8 entres


boolennes maximum.
Pour effectuer un ET sur bits, voir page 6-22.

Oprandes :
Texte structur
IF operandA AND operandB THEN
<instruction>;
END_IF;

Utilisez AND ou le signe & comme oprateur dans une expression.


Les oprandes doivent tre des valeurs BOOL ou des expressions
values en valeurs BOOL. Cette expression calcule si operandA et
operandB sont tous les deux activs (vrai).
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point BAND

FBD_BOOLEAN_AND

structure

structure BAND

Structure FBD_BOOLEAN_AND
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

In1

BOOL

Premire entre boolenne.


Activ par dfaut.

In2

BOOL

Deuxime entre boolenne.


Activ par dfaut.

In3

BOOL

Troisime entre boolenne.


Activ par dfaut.

In4

BOOL

Quatrime entre boolenne.


Activ par dfaut.

In5

BOOL

Cinquime entre boolenne.


Activ par dfaut.

In6

BOOL

Sixime entre boolenne.


Activ par dfaut.

In7

BOOL

Septime entre boolenne.


Activ par dfaut.

In8

BOOL

Huitime entre boolenne.


Activ par dfaut.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

Sortie active.

Out

BOOL

Sortie de l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-35

Description : L'instruction BAND additionne (opration ET) jusqu' huit entres


boolennes. Si une entre n'est pas utilise, elle est active par dfaut
(1).
Sortie = In1 ET In2 ET In3 ET In4 ET In5 ET In6 ET In7 ET In8

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple 1 : Additionner (opration ET) bool_in1 et bool_in2, et placer le rsultat


dans value_result_and.
Si bool_in1 est

Si bool_in2 est

Alors value_result_and est

Texte structur :
value_result_and := bool_in1 AND bool_in2;

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

6-36

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple 2 : Si bool_in1 et bool_in2 sont activs (vrai), light1 est activ (allum).
Sinon, light1 est effac (teint).

Texte structur :
IF bool_in1 AND bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU boolen (BOR)

6-37

L'instruction BOR effectue une opration OU logique sur huit entres


boolennes maximum.
Pour effectuer un OU sur bits, voir page 6-25.

Oprandes :
Texte structur
IF operandA OR operandB THEN
<instruction>;
END_IF;

Utilisez OR comme oprateur dans une expression. Les oprandes


doivent tre des valeurs BOOL ou des expressions values en valeurs
BOOL. Cette expression calcule si operandA ou operandB, ou les
deux, sont activs (vrai).
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point BOR

FBD_BOOLEAN_OR

structure

structure BOR

Structure FBD_BOOLEAN_OR
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

In1

BOOL

Premire entre boolenne.


Effac par dfaut.

In2

BOOL

Deuxime entre boolenne.


Effac par dfaut.

In3

BOOL

Troisime entre boolenne.


Effac par dfaut.

In4

BOOL

Quatrime entre boolenne.


Effac par dfaut.

In5

BOOL

Cinquime entre boolenne.


Effac par dfaut.

In6

BOOL

Sixime entre boolenne.


Effac par dfaut.

In7

BOOL

Septime entre boolenne.


Effac par dfaut.

In8

BOOL

Huitime entre boolenne.


Effac par dfaut.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

Sortie active.

Out

BOOL

Sortie de l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

6-38

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Description : L'instruction BOR effectue une opration OU sur huit entres


boolennes maximum. Si une entre n'est pas utilise, elle est efface
par dfaut (0).
Sortie = In1 OU In2 OU In3 OU In4 OU In5 OU In6 OU In7 OU In8

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action du bloc fonctionnel

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de


l'instruction

Aucune.

pendant la premire excution de


l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-39

Exemple 1 : Effectuer une opration OU sur bool_in1 et bool_in2, et placer le


rsultat dans value_result_or.
Si bool_in1 est

Si bool_in2 est

Alors value_result_or est

Texte structur :
value_result_or := bool_in1 OR bool_in2;

Bloc fonctionnel

Exemple 2 : Dans cet exemple, light1 est activ (allum) si :


seul bool_in1 est activ (vrai) ;
seul bool_in2 est activ (vrai) ;
bool_in1 et bool_in2 sont activs (vrai) ;
Sinon, light1 est effac (teint).

Texte structur :
IF bool_in1 OR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

6-40

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU exclusif boolen
(BXOR)

L'instruction BXOR effectue une opration OU exclusif sur deux


entres boolennes.
Pour effectuer un OU exclusif sur bits, voir page 6-28.

Oprandes :
Texte structur
IF operandA XOR operandB THEN
<instruction>;
END_IF;

Utilisez XOR comme oprateur dans une expression. Les oprandes


doivent tre des valeurs BOOL ou des expressions qui sont values
en valeurs BOOL. Cette expression calcule si seulement operandA ou
si seulement operandB est activ (vrai).
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point BXOR

FBD_BOOLEAN_XOR

structure

structure BXOR

Structure FBD_BOOLEAN_XOR
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

In1

BOOL

Premire entre boolenne.


Effac par dfaut.

In2

BOOL

Deuxime entre boolenne.


Effac par dfaut.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

Sortie active.

Out

BOOL

Sortie de l'instruction.

Description : L'instruction BXOR effectue une opration OU exclusif sur deux


entres boolennes.
Out = In1 XOR In2

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-41

Excution :
Condition

Action du bloc fonctionnel

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple 1 : Effectuer une opration OU exclusif sur bool_in1 et bool_in2, et


placer le rsultat dans value_result_xor.
Si bool_in1 est

Si bool_in2 est

Alors value_result_xor est

Texte structur :
value_result_xor := bool_in1 XOR bool_in2;

Bloc fonctionnel

Exemple 2 : Dans cet exemple, light1 est activ (allum) si :


seul bool_in1 est activ (vrai) ;
seul bool_in2 est activ (vrai).
Sinon, light1 est dsactiv (teint).

Texte structur :
IF bool_in1 XOR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

6-42

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

COMPLEMENT boolen
(BNOT)

L'instruction BNOT complte une entre boolenne.


Pour effectuer un COMPLEMENT sur bits, voir page 6-31.

Oprandes :
Texte structur
IF NOT operand THEN
<instruction>;
END_IF;

Utilisez NOT comme oprateur dans une expression. Les oprandes


doivent tre des valeurs BOOL ou des expressions values en valeurs
BOOL. Cette expression calcule si operand est effac (faux).
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point BNOT

FBD_BOOLEAN_NOT

structure

structure BNOT

Structure FBD_BOOLEAN_NOT
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

In

BOOL

Entre dans l'instruction.


Activ par dfaut.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

Sortie active.

Out

BOOL

Sortie de l'instruction.

Description : L'instruction BNOT complte une entre boolenne.


Out = NOT In

Indicateurs d'tat arithmtique : non affects


WD1 Writer Designed tag 1Conditions d'erreur :

aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-43

Excution :
Condition

Action du bloc fonctionnel

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple 1 : Complter bool_in1 et placer le rsultat dans value_result_not.


Si bool_in1 est

Alors value_result_not est

Texte structur :
value_result_not := NOT bool_in1;

Bloc fonctionnel

Exemple 2 : Si bool_in1 est effac, light1 est effac (teint). Sinon, light1 est
activ (allum).

Texte structur :
IF NOT bool_in1 THEN
light1 := 0;
ELSE
light1 := 1;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

6-44

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions sur tableau (fichier)/


Instructions diverses
(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduction

Les instructions de fichier/instructions diverses fonctionnent sur des


tableaux de donnes.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

effectuer des oprations arithmtiques,


logiques, de dcalage et de fonction sur des
valeurs de tableaux

FAL

logique relais
texte structur(1)

7-7

chercher et comparer des valeurs de tableaux

FSC

logique relais

7-18

copier le contenu d'un tableau dans un autre

COP

logique relais
texte structur

7-26

copier le contenu d'un tableau dans un autre


sans interruption

CPS

logique relais
texte structur

7-26

remplir un tableau avec des donnes


particulires

FLL

logique relais
texte structur(1)

7-32

calculer la moyenne d'un tableau de valeurs

AVE

logique relais
texte structur(1)

7-36

classer une dimension de donnes de tableau


en ordre croissant

SRT

logique relais
texte structur

7-41

calculer l'cart type d'un tableau de valeurs

STD

logique relais
texte structur(1)

7-46

trouver la taille d'une dimension de tableau

SIZE

logique relais
texte structur

7-52

(1)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de prcision et un arrondissement des valeurs peuvent se produire et
l'instruction est plus longue excuter. Vrifiez le bit S:V pour voir si
le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

7-2

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Slection du mode de
fonctionnement

Pour les instructions FAL et FSC, le mode indique l'automate


comment rpartir l'opration sur tableau.
Si vous voulez

Slectionnez ce mode

agir sur tous les lments indiqus dans un tableau avant


de continuer avec l'instruction suivante

Tout

rpartir l'opration sur tableau sur plusieurs scrutations


entrez le nombre d'lments sur lesquels effectuer
l'opration chaque scrutation (1 2147483647)

Numrique

traiter un lment du tableau chaque fois que l'tat


d'entre de la ligne passe de faux vrai

Incrmental

Mode Tout
En mode Tout, tous les lments indiqus dans le tableau subissent
l'opration avant de continuer avec l'instruction suivante. L'opration
commence lorsque l'tat d'entre de la ligne de l'instruction passe de
faux vrai. La valeur de position (.POS) de la structure de contrle
indique l'lment du tableau actuellement utilis par l'instruction.
L'opration s'arrte lorsque la valeur .POS est gale la valeur .LEN.
Tableau de donnes

une scrutation

16639

Le diagramme de temporisation cidessous indique la relation entre les


bits d'tat et le fonctionnement de l'instruction. Lorsque l'excution de
l'instruction est termine, le bit .DN est activ. Les bits .DN et .EN,
ainsi que la valeur .POS, sont effacs lorsque l'tat d'entre de la ligne
est faux. A ce moment seulement, une autre excution de l'instruction

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-3

peut tre dclenche par une transition fauxvrai de l'tat d'entre de


la ligne.
une
scrutation

tat d'entre de la ligne

bit .EN

bit .DN
efface les bits d'tat et la valeur
.POS
scrutation de l'instruction

opration termine

aucune excution

40010

Mode Numrique
Le mode Numrique rpartit l'opration sur tableau entre un certain
nombre de scrutations. Ce mode est utile pour travailler avec des
donnes sans temps critique ou avec de grandes quantits de
donnes. Vous entrez le nombre d'lments sur lesquels agir pour
chaque scrutation, ce qui rduit la dure de scrutation.
L'excution est dclenche lorsque l'tat d'entre de la ligne passe de
faux vrai. Une fois dclenche, l'instruction est excute
continuellement chaque fois qu'elle est scrute, pendant le nombre de
scrutations ncessaires pour terminer l'opration sur le tableau entier.
Une fois dclenche, l'tat d'entre de la ligne peut changer plusieurs
fois sans interrompre l'excution de l'instruction.
une scrutation

deuxime
scrutation

scrutation
suivante

16641

Publication 1756-RM003F-FR-P - Mai 2002

7-4

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

IMPORTANT

Evitez d'utiliser les rsultats d'une instruction de


fichier fonctionnant en mode Numrique tant que le
bit .DN n'est pas activ.

Le diagramme de temporisation cidessous indique la relation entre les


bits d'tat et le fonctionnement de l'instruction. Lorsque l'excution de
l'instruction est termine, le bit .DN est activ.
La ligne est vrai la fin de l'opration

La ligne est faux la fin de l'opration


scrutations multiples

scrutations multiples

tat d'entre de la ligne

bit .EN
bit .DN
scrutation de l'instruction
opration termine

opration termine

efface les bits d'tat et la valeur


.POS

40013

efface les bits d'tat et la


valeur .POS

Si l'tat d'entre de la ligne est vrai la fin de l'opration, les bits .EN
et .DN sont activs jusqu' ce que l'tat d'entre de la ligne passe
faux. Lorsque l'tat d'entre de la ligne passe faux, ces bits et la
valeur .POS sont effacs.
Si l'tat d'entre de la ligne est faux la fin de l'opration, le bit .EN
est immdiatement effac. Une scrutation aprs l'effacement du bit
.EN, le bit .DN et la valeur .POS sont effacs.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-5

Mode Incrmental
Le mode incrmental traite un lment du tableau chaque fois que
l'tat d'entre de la ligne de l'instruction passe de faux vrai.
1re instruction d'activation
2e instruction d'activation
3e instruction d'activation

dernire instruction
d'activation

16643

Le diagramme de temporisation cidessous indique la relation entre les


bits d'tat et le fonctionnement de l'instruction. L'excution a lieu
uniquement pendant une scrutation au cours de laquelle l'tat
d'entre de la ligne passe de faux vrai. Chaque fois que ceci se
produit, un seul lment du tableau est trait. Si l'tat d'entre de la
ligne reste vrai pendant plus d'une scrutation, l'instruction n'est
excute que pendant la premire scrutation.
une
scrutation

tat d'entre de la ligne

bit .EN

bit .DN

40014

scrutation de l'instruction
opration
termine

efface les bits d'tat et la


valeur .POS

Le bit .EN est activ lorsque l'tat d'entre de la ligne est vrai. Le bit
.DN est activ lorsque le dernier lment du tableau a t trait.
Lorsque le dernier lment a t trait et que l'tat d'entre de la ligne
passe faux, les bits .EN et .DN, ainsi que la valeur .POS, sont effacs.

Publication 1756-RM003F-FR-P - Mai 2002

7-6

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Diffrence entre le mode Incrmental et Numrique au rythme d'un


lment par scrutation :
le mode Numrique, quel que soit le nombre d'lments par
scrutation, ne requiert qu'une transition de faux vrai de l'tat
d'entre de la ligne pour commencer l'excution. L'instruction
continue d'excuter le nombre d'lments indiqu chaque
scrutation jusqu' la fin, quel que soit l'tat d'entre de la ligne ;
en mode Incrmental, l'tat d'entre de la ligne doit passer de
faux vrai pour qu'un lment du tableau soit trait.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Fichier arithmtique et
logique (FAL)

7-7

L'instruction FAL effectue des oprations de copie, arithmtiques,


logiques et de fonction sur des donnes stockes dans un tableau.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Commande

CONTROL

point

structure de contrle pour l'opration

Longueur

DINT

immdiat

nombre d'lments du tableau


traiter

Position

DINT

immdiat

lment en cours du tableau


la valeur initiale est gnralement 0

Mode

DINT

immdiat

mode de rpartition de l'opration


slectionner INC, ALL ou entrer un
nombre

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Expression

SINT
INT
DINT
REAL

immdiat
point

expression constitue de points et/ou


de valeurs immdiates spares par
des oprateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Texte structur
Il n'y a pas d'instruction FAL en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction SIZE et une
instruction de test FOR...DO (POUR...FAIRE) ou une autre
construction en boucle.
SIZE(destination,0,length-1);
FOR position = 0 TO length DO
destination[position] := numeric_expression;
END_FOR;

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Publication 1756-RM003F-FR-P - Mai 2002

7-8

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Structure CONTROL
Mnmonique

Type de donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction FAL est active.

.DN

BOOL

Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment (.POS = .LEN).

.ER

BOOL

Le bit d'erreur est activ si l'expression gnre un dpassement suprieur (S:V est activ).
L'instruction s'arrte tant que le programme n'a pas remis le bit .ER 0. La valeur .POS contient
la position de l'lment qui produit le dpassement.

.LEN

DINT

La longueur indique le nombre d'lments du tableau sur lesquels l'instruction FAL est excute.

.POS

DINT

La position contient la position de l'lment auquel l'instruction est en train d'accder.

Description : L'instruction FAL effectue les mmes oprations sur les tableaux que
l'instruction CPT sur les lments.
Les exemples qui commencent la page 7-14 indiquent comment
utiliser la valeur .POS pour progresser dans un tableau. Si un indice
dans l'expression de la Destination est en dehors des limites,
l'instruction FAL gnre un dfaut majeur (type 4, code 20).

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :

Publication 1756-RM003F-FR-P - Mai 2002

Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

l'indice est en dehors des limites

20

.POS < 0 ou .LEN < 0

21

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-9

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

examine le bit .DN

bit .DN = 0

bit .DN = 1
le bit .EN est effac
le bit .ER est effac
le bit .DN est effac
la valeur .POS est
efface

mode INC

non

le bit interne est


effac

oui
le bit .EN est effac

mode TOUT

non

oui

.LEN < 0 ou
.POS < 0

oui

dfaut majeur

non

.POS = .POS + 1

oui

.LEN = 0
non

.POS = 0

oui
non

non

.POS < .LEN


oui

.POS = .POS - 1

.LEN > mode


le bit .DN est activ
le bit .EN est activ

non

oui
mode = .LEN

le bit .DN est activ


le bit .EN est effac

mode
Numrique
page 7-13

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

7-10

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai


.LEN < 0 ou
.POS < 0

oui

page 7-13
dfaut majeur
mode
Numrique

bit .ER = 0

examine le bit .ER

non
non

bit .DN = 0

bit .ER = 1
examine le bit .DN

.LEN = 0

bit .DN = 1

non

oui

non

mode INC

mode TOUT
oui

oui

le bit .DN est activ


le bit .EN est activ

mode
TOUT

mode
INC

page 7-12

page 7-11
commun

loop_count =
loop_count - 1

loop_count < 0

non

.POS = .POS + 1

oui
value l'expression

examine S:V

non

oui
le bit .ER est activ

.POS = .POS + 1

.POS = .LEN

non

oui
le bit .DN est activ
le bit .EN est activ

.POS = .POS + 1

l'tat de sortie de la ligne


est rgl sur vrai

fin

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

7-11

Action de la logique relais


mode
INC

bit .EN = 1
examine le bit .EN
bit .EN = 0

bit = 1

examine le
bit interne

.POS = .POS + 1
bit = 0

le bit interne est activ

oui

.POS .LEN

.POS = 0

oui

non

non

le bit .EN est activ


loop_count = 1
.POS = .POS - 1

.POS = .POS - 1

le bit .DN est activ


le bit .EN est activ
l'tat de sortie de la ligne
est rgl sur vrai

commun
page 7-10

fin

Publication 1756-RM003F-FR-P - Mai 2002

7-12

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

Action de la logique relais

mode
TOUT

bit .EN = 0

bit = 1

examine le
bit interne

examine le bit .EN

bit = 0

bit .EN = 1

le bit .EN est activ

.POS = .POS + 1

oui

.POS .LEN
non

.POS = 0

oui

non

loop_count = .LEN - .POS


.POS = .POS - 1

.POS = .POS - 1

le bit .DN est activ


le bit .EN est activ

l'tat de sortie de la ligne


est rgl sur vrai

commun
page 7-10
fin

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

7-13

Action de la logique relais


mode
Numrique

bit .EN = 1
examine le bit .EN
bit .EN = 0

.POS = .POS + 1

bit = 1

examine le
bit interne
bit = 0
le bit interne est activ

.POS .LEN

oui

.POS = 0
non

non

mode = .LEN

non

oui

.POS = .POS - 1
.LEN mode
oui
le bit .DN est activ
le bit .EN est activ

le bit .EN est activ


loop_count = .LEN - .POS
.POS = .POS - 1

l'tat de sortie de la ligne


est rgl sur vrai

fin

mode
loop_count
non

oui

commun
page 7-10

le bit .EN est activ


loop_count = mode

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

7-14

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 1 : Lorsqu'elle est active, l'instruction FAL copie chaque lment de


array_2 dans array_1, dans la mme position.
copie de tableau tableau

Expression :
array_2[control_2.pos]

Destination :
array_1[control_2.pos]

Exemple 2 : Lorsqu'elle est active, l'instruction FAL copie value_1 dans les 10
premires positions de la deuxime dimension de array_2.
copie d'lment dans un tableau

Expression :
value_1

Destination :
array_2[0,control_2.pos]

Exemple 3 : Chaque fois qu'elle est active, l'instruction FAL copie la valeur en
cours de array_1 dans value_1. L'instruction FAL utilise le mode
incrmental, ainsi une seule valeur de tableau est copie chaque fois
que l'instruction est active. Lorsqu'elle est active la fois suivante,
l'instruction crase value_1 avec la valeur suivante dans array_1.
copie de tableau dans un lment

Expression :
array_1[control_1.pos]

Destination :
value_1

Exemple 4 : Lorsqu'elle est active, l'instruction FAL additionne value_1 et value_2


et stocke le rsultat dans la position en cours de array_1.
opration arithmtique : (lment + lment) vers tableau

Expression :
value_1 + value_2

Publication 1756-RM003F-FR-P - Mai 2002

Destination :
array_1[control_1.pos]

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-15

Exemple 5 : Lorsqu'elle est active, l'instruction FAL divise la valeur de la position


en cours de array_2 par la valeur de la position en cours de array_3
et stocke le rsultat dans la position en cours de array_1.
opration arithmtique : (tableau / tableau) vers tableau

Expression :
array_2[control_2.pos] / array_3[control_2.pos]

Destination :
array_1[control_2.pos]

Exemple 6 : Lorsqu'elle est active, l'instruction FAL ajoute la valeur de la position


en cours de array_1 value_1 et stocke le rsultat dans la position en
cours de array_3. L'instruction doit tre excute 10 fois pour que
array_1 et array_3 soient entirement traits.
opration arithmtique : (tableau + lment) vers tableau

Expression :
array_1[control_1.pos] + value_1

Destination :
array_3[control_1.pos]

Exemple 7 : Chaque fois qu'elle est active, l'instruction FAL ajoute value_1 la
valeur en cours de array_1 et stocke le rsultat dans value_2.
L'instruction FAL utilise le mode incrmental, une seule valeur de
tableau est ainsi ajoute value_1 chaque fois que l'instruction est
active. Lorsqu'elle est active la fois suivante, l'instruction crase
value_2.
opration arithmtique : (lment + tableau) vers lment

Expression :
value_1 + array_1[control_1.pos]

Destination :
value_2

Publication 1756-RM003F-FR-P - Mai 2002

7-16

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 8 : Lorsqu'elle est active, l'instruction FAL multiplie la valeur en cours de


array_1 par la valeur en cours de array_3 et stocke le rsultat dans
value_1. L'instruction FAL utilise le mode incrmental, une seule paire
de valeurs de tableau est ainsi multiplie chaque fois que l'instruction
est active. Lorsqu'elle est active la fois suivante, l'instruction crase
value_1.
opration arithmtique : (tableau tableau) vers lment

Destination :
value_1

Expression :
array_1[control_1.pos] * array_3[control_1.pos]

Expressions FAL
Les expressions en instructions FAL se programment de la mme
faon que les expressions en instructions CPT. Utilisez les sections
suivantes pour trouver les informations sur les oprateurs, le format et
l'ordre d'opration valables, communs aux deux instructions.

Oprateurs valables
Oprateur

Description

Optimal

Oprateur

Description

Optimal

addition

DINT, REAL

LOG

logarithme dcimal

REAL

soustraction/ngation

DINT, REAL

MOD

modulo

DINT, REAL

multiplication

DINT, REAL

NOT

complment sur bits

DINT

division

DINT, REAL

OR

OU sur bits

DINT

**

exposant (x y)

DINT, REAL

RAD

degrs en radians

DINT, REAL

ABS

valeur absolue

DINT, REAL

SIN

sinus

REAL

ACS

cosinus d'arc

REAL

SQR

racine carre

DINT, REAL

AND

ET sur bits

DINT

TAN

tangente

REAL

ASN

sinus d'arc

REAL

TOD

nombre entier en DCB

DINT

ATN

tangente d'arc

REAL

TRN

troncation

DINT, REAL

COS

cosinus

REAL

XOR

OU exclusif sur bits

DINT

DEG

radians en degrs

DINT, REAL

FRD

DCB en nombre entier

DINT

LN

logarithme naturel

REAL

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-17

Formatage des expressions


Pour chaque oprateur utilis dans une expression, vous devez
fournir un ou deux oprandes (points ou valeurs immdiates). Utilisez
le tableau suivant pour formater les oprateurs et les oprandes dans
une expression.
Pour les oprateurs
oprant sur

Utilisez ce format

Exemples

un oprande

oprateur(oprande)

ABS(point_a)

deux oprandes

oprande_a oprateur
oprande_b

point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)

Dfinition de l'ordre d'excution des oprations


Les oprations que vous crivez dans l'expression sont excutes par
l'instruction dans un ordre prcis, qui n'est pas ncessairement l'ordre
dans lequel vous les crivez. Vous pouvez modifier l'ordre des
oprations en groupant des termes entre parenthses, ce qui force
l'instruction excuter une opration entre parenthses avant les
autres oprations.
Les oprations d'ordre identique sont excutes de gauche droite.
Ordre

Opration

1.

()

2.

ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3.

**

4.

(ngation), NOT

5.

*, /, MOD

6.

(soustraction), +

7.

AND

8.

XOR

9.

OR

Publication 1756-RM003F-FR-P - Mai 2002

7-18

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Recherche et comparaison
de fichiers (FSC)

L'instruction FSC compare des valeurs dans un tableau, lment par


lment.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Commande

CONTROL

point

structure de contrle pour l'opration

Longueur

DINT

immdiat

nombre d'lments du tableau traiter

Position

DINT

immdiat

offset dans le tableau


la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique

Type de donnes Description

.EN

BOOL

Le bit d'activation indique que l'instruction FSC est active.

.DN

BOOL

Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment
(.POS = .LEN).

.ER

BOOL

Le bit d'erreur n'est pas modifi.

.IN

BOOL

Le bit d'inhibition indique que l'instruction FSC a dtect une vraie comparaison. Vous devez
effacer ce bit pour continuer l'opration de recherche.

.FD

BOOL

Le bit trouv indique que l'instruction FSC a dtect une vraie comparaison.

.LEN

DINT

La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.

.POS

DINT

La position contient la position de l'lment auquel l'instruction est en train d'accder.

Description : Lorsque l'instruction FSC est active et que la comparaison est vraie,
l'instruction active le bit .FD et le bit .POS reflte la position du
tableau laquelle l'instruction a trouv la comparaison vraie.
L'instruction active le bit .IN pour empcher la recherche de
continuer.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :

Publication 1756-RM003F-FR-P - Mai 2002

Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

.POS < 0 ou .LEN < 0

21

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-19

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

examine le bit .DN

bit .DN = 0

bit .DN = 1
le bit .EN est effac
le bit .ER est effac
le bit .DN est effac
la valeur .POS est
efface

mode INC

non

le bit interne est


effac

oui
le bit .EN est effac

mode TOUT

non

oui

.LEN < 0 ou
.POS < 0

oui

dfaut majeur

non

.POS = .POS + 1

oui

.LEN = 0
non

.POS = 0

oui
non

non

.POS < .LEN


oui

.POS = .POS - 1

.LEN > mode


le bit .DN est activ
le bit .EN est activ

non

oui
mode = .LEN

le bit .DN est activ


le bit .EN est effac

mode
Numrique
l'tat de sortie de la ligne
est rgl sur faux

page 7-13

fin

Publication 1756-RM003F-FR-P - Mai 2002

7-20

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai


.LEN < 0 ou
.POS < 0

oui

page 7-13
dfaut majeur
mode
Numrique

bit .ER = 0

examine le bit .ER

non
non

bit .DN = 0

bit .ER = 1
examine le bit .IN

.LEN = 0

non

non

mode INC

mode TOUT

bit .DN = 1
oui

bit .IN = 0

oui

oui

le bit .DN est activ


le bit .EN est activ

mode
INC

examine le bit .DN


bit .DN = 1

mode
TOUT
page 7-12

page 7-11
commun
bit .DN = 0

loop_count =
loop_count - 1

loop_count < 0

non

.POS = .POS + 1

oui
value la comparaison

correspondance

non

oui
.POS = .POS + 1

.POS = .LEN

le bit .EN est activ


le bit .FD est activ
le bit .IN est activ

non

oui
le bit .DN est activ
le bit .EN est activ

.POS = .POS + 1

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-21

Exemple 1 : Rechercher une correspondance entre deux tableaux. Lorsqu'elle est


active, l'instruction FSC compare chacun des 10 premiers lments
de array_1 avec les lments correspondants dans array_2.

array_1

control_3.pos

array_2

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000001111111111111111

11111111111111110000000000000000

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

L'instruction FSC trouve que ces lments ne sont


pas gaux. Elle active les bits .FD et .IN. La valeur
.POS (4) indique la position des lments qui ne
sont pas gaux. Pour continuer comparer le reste
du tableau, effacez le bit .IN.

Exemple 2 : Rechercher une correspondance dans un tableau. Lorsqu'elle est


active, l'instruction FSC compare MySearchKey avec 10 lments
dans array_1.

MySearchKey

11111111111111110000000000000000

control_3.pos

rfrence
00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

11111111111111110000000000000000

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

L'instruction FSC trouve que cet lment de tableau


correspond MySearchKey. Elle active les bits .FD
et .IN. La valeur .POS (4) indique la position de
l'lment correspondant. Pour continuer comparer
le reste du tableau, effacez le bit .IN.

Publication 1756-RM003F-FR-P - Mai 2002

7-22

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 3 : Rechercher une chane dans un tableau de chanes. Lorsqu'elle est


active, l'instruction FSC compare les caractres dans code avec
10 lments dans code_table.

code

code_table_search.POS

code_table
AFG

SAM

BEH

HUO

SAK

SAM

FQG

CLE

CAK

DET

BWG

L'instruction FSC trouve que cet lment de tableau


correspond code. Elle active les bits .FD et .IN. La
valeur .POS (4) indique la position de l'lment
correspondant. Pour continuer comparer le reste
du tableau, effacez le bit .IN.

Expressions FSC
Les expressions en instructions FSC se programment de la mme
faon que les expressions en instructions CMP. Utilisez les sections
suivantes pour trouver les informations sur les oprateurs, le format et
l'ordre d'opration valables, communs aux deux instructions.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-23

Oprateurs valables
Oprateur

Description

Optimal

Oprateur

Description

Optimal

addition

DINT, REAL

DEG

radians en degrs

DINT, REAL

soustraction/ngation

DINT, REAL

FRD

DCB en nombre entier

DINT

multiplication

DINT, REAL

LN

logarithme naturel

REAL

division

DINT, REAL

LOG

logarithme dcimal

REAL

galit

DINT, REAL

MOD

modulo

DINT, REAL

<

infrieur

DINT, REAL

NOT

complment sur bits

DINT

<=

infrieur ou gal

DINT, REAL

OR

OU sur bits

DINT

>

suprieur

DINT, REAL

RAD

degrs en radians

DINT, REAL

>=

suprieur ou gal

DINT, REAL

SIN

sinus

REAL

<>

diffrent

DINT, REAL

SQR

racine carre

DINT, REAL

**

exposant (x y)

DINT, REAL

TAN

tangente

REAL

ABS

valeur absolue

DINT, REAL

TOD

nombre entier en DCB

DINT

ACS

cosinus d'arc

REAL

TRN

troncation

DINT, REAL

AND

ET sur bits

DINT

XOR

OU exclusif sur bits

DINT

ASN

sinus d'arc

REAL

ATN

tangente d'arc

REAL

COS

cosinus

REAL

Formatage des expressions


Pour chaque oprateur utilis dans une expression, vous devez
fournir un ou deux oprandes (points ou valeurs immdiates). Utilisez
le tableau suivant pour formater les oprateurs et les oprandes dans
une expression.
Pour les oprateurs
oprant sur

Utilisez ce format

Exemples

un oprande

oprateur(oprande)

ABS(point_a)

deux oprandes

oprande_a oprateur
oprande_b

point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)

Publication 1756-RM003F-FR-P - Mai 2002

7-24

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Dfinition de l'ordre d'excution des oprations


Les oprations que vous crivez dans l'expression sont excutes par
l'instruction dans un ordre prcis, qui n'est pas ncessairement l'ordre
dans lequel vous les crivez. Vous pouvez modifier l'ordre des
oprations en groupant des termes entre parenthses, ce qui force
l'instruction excuter une opration entre parenthses avant les
autres oprations.
Les oprations d'ordre identique sont excutes de gauche droite.
Ordre

Publication 1756-RM003F-FR-P - Mai 2002

Opration

1.

()

2.

ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,


RAD, SIN, SQR, TAN, TOD, TRN

3.

**

4.

(ngation), NOT

5.

*, /, MOD

6.

<, <=, >, >=, =

7.

(soustraction), +

8.

AND

9.

XOR

10.

OR

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-25

Utilisation de chanes dans une expression


Utilisez une expression de logique relais ou de texte structur pour
comparer des donnes de type chane. Pour utiliser des chanes dans
une expression, suivez ces directives :
une expression vous permet de comparer deux chanes de
caractres ;
vous ne pouvez pas entrer des caractres ASCII directement
dans l'expression ;
seuls les oprateurs suivants sont autoriss :
Oprateur

Description

gal

<

infrieur

<=

infrieur ou gal

>

suprieur

>=

suprieur ou gal

<>

diffrent

Les chanes sont gales si leurs caractres concordent.


Les caractres ASCII sont diffrents s'ils sont en majuscules ou
en minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).
Les valeurs hexadcimales des caractres dterminent si une
chane est infrieure ou suprieure une autre chane. Pour
trouver le code hexadcimal d'un caractre, reportez-vous la
dernire page de ce manuel.
Lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f
ri
e
ur
e

s
u
p
r
ie
ur
e

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Publication 1756-RM003F-FR-P - Mai 2002

7-26

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Copie de fichier (COP)


Copie de fichier synchrone
(CPS)

Les instructions COP et CPS copient les valeurs de la Source dans la


Destination. La Source reste inchange.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL
chane
structure

point

lment initial copier


Important : les oprandes Source et
Destination doivent avoir les mmes types de
donnes, au risque de produire des rsultats
inattendus.

Destination

SINT
INT
DINT
REAL
chane
structure

point

lment initial craser par la Source


Important : les oprandes Source et
Destination doivent avoir les mmes types de
donnes, au risque de produire des rsultats
inattendus.

Longueur

DINT

immdiat
point

nombre d'lments de Destination copier

Texte structur
COP(Source,Dest,Length);
CPS(Source,Dest,Length);

Les oprandes sont les mmes que pour les instructions COP et CPS
en logique relais.

Description : Pendant l'excution des instructions COP et CPS, d'autres actions de


l'automate peuvent tenter d'interrompre l'opration de copie et de
modifier les donnes de la source ou de la destination :
Si la source ou la destination
est

un point produit
un point consomm
des donnes d'E/S
des donnes qu'une autre
tche peut craser

aucune des solutions ci-dessus

Et si vous voulez

Slectionnez

empcher les donnes d'tre


modifies pendant l'opration de
copie

CPS

permettre aux donnes d'tre


modifies pendant l'opration de
copie

COP

COP

Le nombre d'octets copis est :

Publication 1756-RM003F-FR-P - Mai 2002

Remarques
Les tches qui tentent
d'interrompre une instruction CPS
sont interrompues tant que
l'instruction n'est pas termine.
Pour estimer la dure d'excution
de l'instruction CPS, voir Systme
ControlLogix - Manuel utilisateur
(publication 1756-UM001).

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-27

Nombre d'octets = Longueur (nombre d'octets du type de donnes


de la Destination)
ATTENTION

Si le nombre d'octets est suprieur la longueur de


la Source, des donnes imprvisibles sont copies
pour les lments restants.

Les instructions COP et CPS fonctionnent sur des donnes de mmoire


contigus et effectuent une simple copie de mmoire d'octet octet,
ce qui demande une comprhension de la structure de la mmoire de
l'automate.
Les instructions COP et CPS n'crivent pas au-del de la fin du
tableau. Si la longueur est suprieure au nombre total d'lments dans
le tableau de Destination, les instructions COP et CPS s'arrtent la fin
du tableau. Aucun dfaut majeur n'est gnr.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

7-28

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.
end_address = start_address + (Longueur
nombre d'octets dans un lment de
destination)

excution de l'instruction

end_address > fin du


tableau de
destination

oui

end_address = fin du tableau de destination

non

source_address = Source

destination_address =
end_address

oui

non

copie les donnes de source_address dans


destination _address
l'tat de sortie de la ligne
est rgl sur vrai
source_address = source _address + 1
fin

destination_address =
destination_address + 1

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple 1 : array_4 et array_5 ont le mme type de donnes. Lorsqu'elle est


active, l'instruction COP copie les 10 premiers lments de array_4
dans les 10 premiers lments de array_5.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-29

Logique relais

Texte structur :
COP(array_4[0],array_5[0],10);

Exemple 2 : Lorsqu'elle est active, l'instruction COP copie la structure timer_1


dans l'lment 5 de array_timer. L'instruction ne copie qu'une seule
structure dans un lment de tableau.

Logique relais

Texte structur :
COP(timer_1,array_timer[5],1);

Exemple 3 : Le tableau project_data (100 lments) stocke des valeurs qui


changent diffrents moments de l'application. Pour envoyer une
image complte de project_data un moment donn vers un autre
automate, l'instruction CPS copie project_data dans produced_array.
Pendant que l'instruction CPS copie les donnes, aucune mise
jour des E/S ni aucune tche ne peut modifier les donnes.
Le point produced_array produit les donnes sur un rseau
ControlNet pour qu'elles soient consommes par d'autres
automates.
Pour utiliser la mme image de donnes (copie synchronise
des donnes), les automates consommateurs utilisent une
instruction CPS pour copier les donnes du point consomm
dans un autre pour leur utilisation dans l'application.

Logique relais

Texte structur :
CPS(project_data[0],produced_array[0],100);
Publication 1756-RM003F-FR-P - Mai 2002

7-30

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 4 : Local:0:I.Data stocke les donnes d'entres pour le rseau DeviceNet


qui est connect au module 1756-DNB dans l'emplacement 0. Pour
synchroniser les entres avec l'application, l'instruction CPS copie les
donnes d'entres dans input_buffer.
Pendant que l'instruction CPS copie les donnes, aucune mise
jour des E/S ne peut modifier les donnes.
Lors de l'excution de l'application, elle utilise comme entres
les donnes d'entres dans input_buffer.

Logique relais

Texte structur :
CPS(Local:0:I.Data[0],input_buffer[0],20);

Exemple 5 : Initialiser un tableau de structures temporisateur. Lorsqu'elle est


active, l'instruction MOV initialise les valeurs .PRE et .ACC du
premier lment array_timer. Lorsqu'elle est active, l'instruction COP
copie un bloc d'octets contigus, commenant array_timer[0]. La
longueur est de neuf structures temporisateur.
array_timer[0]

L'instruction copie d'abord les valeurs


timer[0] dans timer[1]

array_timer[1]

Puis l'instruction copie les valeurs timer[1]


dans timer[2]

array_timer[2]

Puis l'instruction copie les valeurs timer[2]


dans timer[3]

array_timer[3]

Puis l'instruction copie les valeurs timer[3]


dans timer[4]

array_timer[4]

array_timer[9]

array_timer[10]

Publication 1756-RM003F-FR-P - Mai 2002

Enfin, l'instruction copie les valeurs


timer[9] dans timer[10]

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-31

Logique relais

Texte structur :
IF S:FS THEN
array_timer[0].pre := 500;
array_timer[0].acc := 0;
COP(array_timer[0],array_timer[1],10);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

7-32

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Remplissage de fichier
(FLL)

L'instruction FLL remplit les lments d'un tableau avec la valeur


Source. La Source reste inchange.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

lment copier
Important : les oprandes Source et
Destination doivent avoir les mmes types de
donnes, au risque de produire des rsultats
inattendus.

Destination

SINT
INT
DINT
REAL
structure

point

lment initial craser par la Source


Important : les oprandes Source et
Destination doivent avoir les mmes types de
donnes, au risque de produire des rsultats
inattendus.
La meilleure faon d'initialiser une structure
est d'utiliser l'instruction COP.

Longueur

DINT

immdiat

nombre d'lments remplir

Texte structur
Il n'y a pas d'instruction FLL en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction SIZE et une
instruction de test FOR...DO (POUR...FAIRE) ou une autre
construction en boucle.
SIZE(destination,0,length);
FOR position = 0 TO length-1 DO
destination[position] := source;
END_FOR;

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Description : Le nombre d'octets remplis est :


Nombre d'octets = Longueur (nombre d'octets du type de donnes
de la Destination)
L'instruction FLL fonctionne sur des donnes de mmoire contigus.
L'instruction FLL n'crit pas au-del de la fin d'un tableau. Si la
longueur est suprieure au nombre total d'lments dans le tableau de
Destination, l'instruction FLL s'arrte la fin du tableau. Aucun dfaut
majeur n'est gnr.
Pour de meilleurs rsultats, la Source et la Destination doivent tre de
mme type. Si vous voulez remplir une structure, utilisez l'instruction
COP (voir l'exemple 3, page 7-29). Si vous mlangez les types de
Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-33

donnes pour la Source et la Destination, les lments de Destination


sont remplis par des valeurs Source converties.
Si la Source est

Et la Destination est

La Source est convertie


en

SINT, INT, DINT ou REAL

SINT

SINT

SINT, INT, DINT ou REAL

INT

INT

SINT, INT, DINT ou REAL

DINT

DINT

SINT, INT, DINT ou REAL

REAL

REAL

SINT

structure

SINT (non convertie)

INT

structure

INT (non convertie)

DINT

structure

DINT (non convertie)

REAL

structure

REAL (non convertie)

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

7-34

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

end_address = start_address + (Longueur


nombre d'octets dans un lment de
destination)

oui

end_address > fin du


tableau de
destination

end_address = fin du tableau de destination

non

source_address = Source

destination_address =
end_address

oui

non

copie les donnes de source_address dans


destination _address

destination_address =
destination_address + 1

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : L'instruction FLL copie la valeur de value_1 dans dest_1.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-35

Logique relais

Type de donnes
Source (value_1)

Valeur Source
(value_1)

Type de donnes
Destination
(dest_1)

Valeur Destination
(dest_1) aprs FLL

SINT

16#80 (-128)

DINT

16#FFFF FF80 (-128)

DINT

16#1234 5678

SINT

16#78

SINT

16#01

REAL

1.0

REAL

2.0

INT

16#0002

SINT

16#01

TIMER

16#0101 0101
16#0101 0101
16#0101 0101

INT

16#0001

TIMER

16#0001 0001
16#0001 0001
16#0001 0001

DINT

16#0000 0001

TIMER

16#0000 0001
16#0000 0001
16#0000 0001

Texte structur
dest_1 := value_1;

Publication 1756-RM003F-FR-P - Mai 2002

7-36

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Moyenne (AVE)

L'instruction AVE calcule la moyenne d'un ensemble de valeurs.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

SINT
INT
DINT
REAL

point de
tableau

trouve la moyenne des valeurs dans ce


tableau
indique le premier lment du groupe
d'lments sur lequel faire une moyenne
n'utilisez pas CONTROL.POS dans l'indice

Dimension
variable

DINT

immdiat
(0, 1, 2)

dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]

Destination

SINT
INT
DINT
REAL

point

rsultat de l'opration

Commande

CONTROL

point

structure de contrle pour l'opration

Longueur

DINT

immdiat

nombre d'lments du tableau sur lesquels


faire la moyenne

Position

DINT

immdiat

lment en cours du tableau


la valeur initiale est gnralement 0

Texte structur
Il n'y a pas d'instruction AVE en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction SIZE et une
instruction de test FOR...DO (POUR...FAIRE) ou une autre
construction en boucle.
SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
destination := sum / length;

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-37

Structure CONTROL
Mnmonique

Type de donnes Description

.EN

BOOL

Le bit d'activation indique que l'instruction AVE est active.

.DN

BOOL

Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment du tableau
(.POS = .LEN).

.ER

BOOL

Le bit d'erreur est activ si l'instruction gnre un dpassement suprieur. L'instruction


s'arrte jusqu' ce que le programme remette 0 le bit .ER. La position de l'lment qui a
provoqu le dpassement est stocke dans la valeur .POS.

.LEN

DINT

La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.

.POS

DINT

La position contient la position de l'lment auquel l'instruction est en train d'accder.

Description : L'instruction AVE calcule la moyenne d'un ensemble de valeurs.


IMPORTANT

Assurez-vous que la longueur n'entrane pas


l'instruction au-del de la variation de Dimension
indique. Le cas chant, la Destination sera
incorrecte.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

.POS < 0 ou .LEN < 0

21

La variation de Dimension n'existe pas


dans le tableau indiqu

20

Publication 1756-RM003F-FR-P - Mai 2002

7-38

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

bit .DN = 0

examine le bit .DN

bit .DN = 1

le bit .EN est effac


le bit .ER est effac
le bit .DN est effac
la valeur .POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

si l'tat d'entre de la ligne est vrai

L'instruction AVE calcule la moyenne en additionnant tous les lments indiqus dans le
tableau et en divisant par le nombre d'lments.
En interne, l'instruction utilise une instruction FAL pour calculer la moyenne :
Expression = calcul de moyenne
Mode = TOUT
Pour plus de dtails sur l'excution de l'instruction FAL, voir page 7-9.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple 1 : Calculer la moyenne de array_dint, soit DINT[4,5].


dimension 1
s
ice
ind

dimension 0

20

19

18

17

16

15

14

13

12

11

10

Publication 1756-RM003F-FR-P - Mai 2002

+ 14 + 9 + 4- = 46
AVE = 19
----------------------------------------- = 11.5
4
4
dint_ave = 12

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-39

Logique relais

Texte structur
SIZE(array_dint,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

Publication 1756-RM003F-FR-P - Mai 2002

7-40

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 2 : Calculer la moyenne de array_dint, soit DINT[4,5].


dimension 1
s
ice
ind

dimension 0

20

19

18

17

16

15

14

13

12

11

10

+ 4 + 3 + 2 + 1- = 15
AVE = 5
-------------------------------------------- = 3
5
5
dint_ave = 3

Logique relais

Texte structur
SIZE(array_dint,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Tri de fichier (SRT)

7-41

L'instruction SRT trie un jeu de valeurs dans une dimension (variation


de Dimension) du tableau en ordre croissant.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

SINT
INT
DINT
REAL

point de
tableau

tableau trier
indique le premier lment du groupe
d'lments trier
n'utilisez pas CONTROL.POS dans l'indice

Dimension
variable

DINT

immdiat
(0, 1, 2)

dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]

Commande

CONTROL

point

structure de contrle pour l'opration

Longueur

DINT

immdiat

nombre d'lments du tableau trier

Position

DINT

immdiat

lment en cours du tableau


la valeur initiale est gnralement 0

Texte structur
SRT(Array,Dimtovary,
Control);

Les oprandes sont les mmes que ceux de l'instruction SRT en


logique relais. Indiquez cependant les valeurs de longueur et de
position en accdant aux membres .LEN et .POS de la structure
CONTROL, plutt qu'en incluant des valeurs dans la liste des
oprandes.

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction SRT est active.

.DN

BOOL

Le bit de fin est activ lorsque les lments indiqus ont t tris.

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN < 0 ou .POS < 0. Ces deux tats entranent un dfaut
majeur.

.LEN

DINT

La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.

.POS

DINT

La position contient la position de l'lment auquel l'instruction est en train d'accder.

Description : L'instruction SRT trie un jeu de valeurs dans une dimension (variation
de Dimension) du tableau en ordre croissant.
IMPORTANT

Assurez-vous que la longueur n'entrane pas


l'instruction au-del de la variation de Dimension
indique. Le cas chant, des rsultats inattendus se
produiront.

Publication 1756-RM003F-FR-P - Mai 2002

7-42

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Il s'agit d'une instruction de transition :


en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :

Publication 1756-RM003F-FR-P - Mai 2002

Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

.POS < 0 ou .LEN < 0

21

La variation de Dimension n'existe pas dans le


tableau indiqu

20

L'instruction essaie d'accder aux donnes en


dehors des limites du tableau

20

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-43

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
L'tat de sortie de la ligne est rgl sur faux.

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
-

si l'tat d'entre de la ligne est faux


examine le bit .DN

bit .DN = 0

bit .DN = 1

le bit .EN est effac


le bit .ER est effac
le bit .DN est effac
la valeur .POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction trie les lments indiqus du


tableau en ordre croissant.

L'instruction trie les lments indiqus du


tableau en ordre croissant.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

7-44

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 1 : Trier int_array, soit DINT[4,5].


Aprs

Avant

dimension 1

dimension 1
1

s
ice
ind

s
ice
ind

dimension 0

20

19

17

16

15

14

12

11

10

13

18

20

19

18

17

16

15

14

13

12

11

10

dimension 0

Logique relais

Texte structur
control_1.LEN := 4;
control_1.POS := 0;
SRT(int_array[0,2],0,control_1);

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-45

Exemple 2 : Trier int_array, soit DINT[4,5].


Aprs

Avant

dimension 1

dimension 1
1

s
ice
ind

s
ice
ind

dimension 0

20

19

18

17

16

15

14

13

12

11

10

20

19

18

17

16

15

14

13

12

11

10

dimension 0

Logique relais

Texte structur
control_1.LEN := 5;
control_1.POS := 0;
SRT(int_array[2,0],1,control_1);

Publication 1756-RM003F-FR-P - Mai 2002

7-46

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ecart type de fichier (STD)

L'instruction STD calcule l'cart type d'un ensemble de valeurs dans


une dimension du tableau et stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

SINT
INT
DINT
REAL

point de
tableau

trouve l'cart type des valeurs dans ce


tableau
indique le premier lment du groupe
d'lments utiliser pour calculer l'cart type
n'utilisez pas CONTROL.POS dans l'indice

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Dimension
variable

DINT

immdiat
(0, 1, 2)

dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]

Destination

REAL

point

rsultat de l'opration

Commande

CONTROL

point

structure de contrle pour l'opration

Longueur

DINT

immdiat

nombre d'lments du tableau utiliser pour


calculer l'cart type

Position

DINT

immdiat

lment en cours du tableau


la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction STD est active.

.DN

BOOL

Le bit de fin est activ lorsque le calcul est termin.

.ER

BOOL

Le bit d'erreur est activ lorsque l'instruction gnre un dpassement suprieur. L'instruction s'arrte
tant que le programme n'a pas remis le bit .ER 0. La position de l'lment qui a provoqu le
dpassement est stocke dans la valeur .POS.

.LEN

DINT

La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.

.POS

DINT

La position contient la position de l'lment auquel l'instruction est en train d'accder.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-47

Texte structur
Il n'y a pas d'instruction STD en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction SIZE et une
instruction de test FOR...DO (POUR...FAIRE) ou une autre
construction en boucle.
SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + ((array[position] - average)**2);
END_FOR;
destination := SQRT(sum /(length-1));

Pour des informations sur la syntaxe des instructions de test en texte


structur, reportez-vous l'Annexe C.

Description : L'cart type est calcul selon la formule suivante :

Ecart type =

AVE

]
( start + i )

i = 1

-------------------------------------------------------------------(N 1)

O :
start = indice de variation de dimension de l'oprande du
tableau
xi = lment variable dans le tableau
N = nombre d'lments indiqus dans le tableau
AVE =

x ( start + i )

i = 1

----------------------------------------N

Publication 1756-RM003F-FR-P - Mai 2002

7-48

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

IMPORTANT

Assurez-vous que la longueur n'entrane pas


l'instruction au-del de la variation de Dimension
indique. Le cas chant, la Destination sera
incorrecte.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

.POS < 0 ou .LEN < 0

21

La variation de Dimension n'existe pas


dans le tableau indiqu

20

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition

7-49

Action de la logique relais

si l'tat d'entre de la ligne est faux

examine le bit .DN

bit .DN = 0

bit .DN = 1

le bit .EN est effac


le bit .ER est effac
le bit .DN est effac
la valeur .POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

si l'tat d'entre de la ligne est vrai

L'instruction STD calcule l'cart type de l'lment indiqu.


En interne, l'instruction utilise une instruction FAL pour calculer la moyenne :
Expression = calcul de l'cart type
Mode = TOUT
Pour plus de dtails sur l'excution de l'instruction FAL, voir page 7-9.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple 1 : Calculer l'cart type de dint_array, soit DINT[4,5].


dimension 1
s
ice
ind

dimension 0

+ 11 + 6 + 1- = 34
AVE = 16
----------------------------------------- = 8.5
4
4
2

STD =

20

19

18

17

16

15

14

13

12

11

10

16 8.5 + 11 8.5 + 6 8.5 + 1 8.5


--------------------------------------------------------------------------------------------------------------------------- = 6.454972
4 1

real_std = 6,454972

Publication 1756-RM003F-FR-P - Mai 2002

7-50

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Logique relais

Texte structur
SIZE(dint_array,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

Exemple 2 : Calculer l'cart type de dint_array, soit DINT[4,5].


dimension 1
ic
ind
es

dimension 0

+ 19 + 18 + 17 + 16- = 90
AVE = 20
----------------------------------------------------------- = 18
5
5
2

STD =

Publication 1756-RM003F-FR-P - Mai 2002

20

19

18

17

16

15

14

13

12

11

10

20 18 + 19 18 + 18 18 + 17 18 + 16 18
----------------------------------------------------------------------------------------------------------------------------------------------------------- = 1.581139
5 1

real_std = 1,581139

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-51

Logique relais

Texte structur
SIZE(dint_array,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

Publication 1756-RM003F-FR-P - Mai 2002

7-52

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Taille en lments (SIZE)

L'instruction SIZE cherche la taille d'une dimension d'un tableau.

Oprandes :
Logique relais
Oprande

Type

Source

point de
SINT
tableau
INT
DINT
REAL
STRUCTURE
STRING

Dimension
variable

DINT

SIZE

SINT
INT
DINT
REAL

Format

Description
tableau sur lequel l'instruction agit

immdiat (0, dimension utiliser


1, 2)
Pour la taille de

point

Entrez

premire dimension

deuxime dimension

troisime dimension

point dans lequel le nombre d'lments de la


dimension indique du tableau est stock

Texte structur
SIZE(Source,Dimtovary,Size);

Les oprandes sont les mmes que ceux de l'instruction SIZE en


logique relais.

Description : L'instruction SIZE cherche le nombre d'lments (taille) dans la


dimension indique du tableau Source et place le rsultat dans
l'oprande Size.
L'instruction SIZE trouve la taille d'une dimension d'un tableau.
L'instruction agit sur :
un tableau ;
un tableau dans une structure ;
un tableau inclus dans un tableau plus grand.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

7-53

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction cherche la taille d'une dimension.

L'instruction cherche la taille d'une dimension.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple 1 : Trouver le nombre d'lments dans la dimension 0 (premire


dimension) de array_a et stocker la taille dans array_a_size. Dans cet
exemple, la dimension 0 de array_a comporte 10 lments.

Logique relais
SIZE
Size in Elements
Source
array_a[0]
255
Dim. To Vary
0
Size
array_a_size
10

Texte structur
SIZE(array_a,0,array_a_size);

Exemple 2 : Trouver le nombre d'lments dans le membre DATA de string_1, qui


est une chane, et stocker la taille dans string_1_size. Dans cet
exemple, le membre DATA de string_1 comporte 82 lments (la
chane utilise le type de donnes STRING par dfaut). Puisque chaque
lment comporte un caractre, string_1 peut contenir jusqu'
82 caractres.

Logique relais
SIZE
Size in Elements
Source string_1.DATA[0]
'$00'
Dim. To Vary
0
Size
string_1_size
82

Publication 1756-RM003F-FR-P - Mai 2002

7-54

Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Texte structur
SIZE(string_1.DATA[0],0,string_1_size);

Exemple 3 : Strings_a est un tableau de structures de chanes. L'instruction SIZE


cherche le nombre d'lments dans le membre DATA de la structure
de chane, et stocke la taille dans data_size_a. Dans cet exemple, le
membre DATA comporte 24 lments (la structure de la chane a une
longueur de 24, dfinie par l'utilisateur).

Logique relais
SIZE
Size in Elements
Source strings_a[0].DATA[0]
'$00'
Dim. To Vary
0
Size
data_size_a
24

Texte structur
SIZE(strings_a[0].DATA[0],0,data_size_a);

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions sur tableau (fichier)/dcalage


(BSL, BSR, FFL, FFU, LFL, LFU)

Introduction

Utilisez les instructions sur tableau (fichier)/dcalage pour modifier


l'emplacement de donnes dans des tableaux.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

charger, dcaler et dcharger des bits dans un


tableau de bits, un bit la fois

BSL

logique relais

8-2

BSR

logique relais

8-5

charger et dcharger des valeurs dans le mme


ordre

FFL

logique relais

8-8

FFU

logique relais

8-14

charger et dcharger des valeurs dans l'ordre


inverse

LFL

logique relais

8-20

LFU

logique relais

8-26

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de perte de prcision et d'arrondissement peuvent se produire.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

8-2

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Dcalage binaire gauche


(BSL)

L'instruction BSL dcale les bits indiqus d'une position vers la gauche
dans le tableau.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

DINT

point de
tableau

tableau modifier
indique le premier lment du groupe
d'lments
n'utilisez pas CONTROL.POS dans l'indice

Contrle

CONTROL

point

structure de contrle pour l'opration

Bit source

BOOL

point

bit dcaler

Longueur

DINT

immdiat

nombre de bits dcaler dans le tableau

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction BSL est active.

.DN

BOOL

Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la
gauche.

.UL

BOOL

Le bit de dchargement est la sortie de l'instruction. Le bit .UL stocke l'tat du bit qui a t
dcal hors de la plage de bits.

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN < 0.

.LEN

DINT

La longueur dfinit le nombre de bits de tableau dcaler.

Description : Lorsqu'elle est active, l'instruction dcharge le bit le plus lev des
bits indiqus dans le bit .UL, dcale les bits restants d'une position
vers la gauche et charge le bit de Source dans le bit 0 du tableau.
L'instruction BSL fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-3

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
La valeur .POS est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
La valeur .POS est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit .EN

bit .EN = 1

bit .EN = 0
le bit .EN est activ

.LEN = 0

oui

le bit .DN est activ

non

.LEN < 0

oui

le bit .ER est


activ

examine le bit de
source

bit .source = 1

le bit .UL reste


activ

bit .source = 0
non
le bit .UL est activ
dcale le tableau d'une position vers la gauche

bit .UL

tableau

Bit
source

l'tat de sortie de la ligne


est rgl sur vrai
le bit .DN est activ
.POS = .LEN

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

8-4

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Exemple 1 : Lorsqu'elle est active, l'instruction BSL commence au bit 0 dans


array_dint[0]. L'instruction dcharge array_dint[0].9 dans le bit .UL,
dcale les bits restants et charge input_1 dans array_dint[0].0. Les
valeurs dans les bits restants (10 31) ne sont pas valables.

array_dint[0]
avant dcalage

0
1

ces bits sont dcals gauche

input_1

bit .UL

array_dint[0]
aprs dcalage

Exemple 2 : Lorsqu'elle est active, l'instruction BSL commence au bit 0 dans


array_dint[0]. L'instruction dcharge array_dint[1].25 dans le bit .UL,
dcale les bits restants et charge input_1 dans array_dint[0].0. Les
valeurs dans les bits restants (31 26 dans array_dint[1]) ne sont pas
valables. Notez comment array_dint[0].31 dcale les mots vers
array_dint[1].0.

31
array_dint[0]

0
1

0
1

ces bits sont dcals gauche

input_1

31

array_dint[1]

0
bit .UL

Publication 1756-RM003F-FR-P - Mai 2002

ces bits sont dcals gauche

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Dcalage binaire droite


(BSR)

8-5

L'instruction BSR dcale les bits indiqus d'une position vers la droite
dans le tableau.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

DINT

point de
tableau

tableau modifier
indique l'lment avec lequel commencer le
dcalage
n'utilisez pas CONTROL.POS dans l'indice

Contrle

CONTROL

point

structure de contrle pour l'opration

Bit source

BOOL

point

bit dcaler

Longueur

DINT

immdiat

nombre de bits dans le tableau dcaler

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction BSR est active.

.DN

BOOL

Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la
droite.

.UL

BOOL

Le bit de dchargement est la sortie de l'instruction. Le bit .UL stocke l'tat du bit qui a t
dcal hors de la plage de bits.

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN < 0.

.LEN

DINT

La longueur dfinit le nombre de bits de tableau dcaler.

Description : Lorsqu'elle est active, l'instruction dcharge la valeur au bit 0 du


tableau vers le bit .UL, dcale les bits restants d'une position vers la
droite et charge le bit de Source dans le bit le plus lev des bits
indiqus.
L'instruction BSR fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

8-6

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
La valeur .POS est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .EN est effac.


Le bit .DN est effac.
Le bit .ER est effac.
La valeur .POS est efface.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

examine le bit .EN

bit .EN = 1

bit .EN = 0
le bit .EN est activ

.LEN = 0

oui

le bit .DN est activ

non

.LEN < 0

oui

le bit .ER est


activ

examine le bit de
source

bit .source = 1

bit .source = 0
non
le bit .UL est activ
dcale le tableau d'une position vers la droite
Bit
source

tableau

bit .UL

l'tat de sortie de la ligne


est rgl sur vrai
le bit .DN est activ
.POS = .LEN

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

le bit .UL reste


activ

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-7

Exemple 1 : Lorsqu'elle est active, l'instruction BSR commence au bit 9 dans


array_dint[0]. L'instruction dcharge array_dint[0].0 dans le bit .UL,
dcale droite les bits restants et charge input_1 dans array_dint[0].9.
Les valeurs dans les bits restants (10 31) ne sont pas valables.

array_dint[0]
avant dcalage

ces bits sont dcals droite

bit .UL
input_1

array_dint[0]
aprs dcalage

Exemple 2 : Lorsqu'elle est active, l'instruction BSR commence au bit 25 dans


array_dint[1]. L'instruction dcharge array_dint[0].0 dans le bit .UL,
dcale droite les bits restants et charge input_1 dans
array_dint[1].25. Les valeurs dans les bits restants (31 26 dans
array_dint[1]) ne sont pas valables. Notez comment array_dint[1].0
dcale les mots dans array_dint[0].31.

31
array_dint[0]

0
1

ces bits sont dcals droite

bit .UL
31

array_dint[1]

ces bits sont dcals droite

input_1

Publication 1756-RM003F-FR-P - Mai 2002

8-8

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Chargement FIFO (FFL)

L'instruction FFL copie la valeur de la Source dans le FIFO.

Oprandes :
Logique relais
Oprande Type
Source

Format

immdiat
SINT
point
INT
DINT
REAL
STRING
STRUCTURE

Description
donnes stocker dans le FIFO

La source est convertie dans le type de donnes du point du tableau. Un


nombre entier plus petit est converti en un nombre entier plus grand par
extension de signe.
FIFO

point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE

FIFO modifier
indique le premier lment du FIFO
n'utilisez pas CONTROL.POS dans l'indice

Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que l'instruction FFU associe

Longueur

DINT

immdiat

nombre maximum d'lments que le FIFO


peut contenir la fois

Position

DINT

immdiat

emplacement suivant dans le FIFO o


l'instruction charge des donnes
la valeur initiale est gnralement 0

Si vous utilisez une structure dfinie par l'utilisateur comme type de


donnes pour l'oprande Source ou FIFO, utilisez la mme structure
pour les deux oprandes.

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction FFL est active.

.DN

BOOL

Le bit de fin est activ pour indiquer que le FIFO est plein (.POS = .LEN). Le bit .DN empche
le chargement de FIFO jusqu' ce que .POS < .LEN.

.EM

BOOL

Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.

.LEN

DINT

La longueur dfinit le nombre maximum d'lments que le FIFO peut contenir la fois.

.POS

DINT

La position identifie l'emplacement dans le FIFO o l'instruction chargera la nouvelle valeur.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-9

Description : Utilisez l'instruction FFL avec l'instruction FFU pour stocker et


rcuprer les donnes dans l'ordre premier entr/premier sorti.
Lorsqu'elles sont couples, les instructions FFL et FFU tablissent un
registre dcalage asynchrone.
La Source et le FIFO sont gnralement le mme type de donnes.
Lorsqu'elle est active, l'instruction FFL charge la valeur Source de la
position dans le FIFO identifi par la valeur .POS. L'instruction charge
une valeur chaque fois qu'elle est active, jusqu' ce que le FIFO soit
plein.
L'instruction FFL fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

(lment de dpart + .POS) > taille du tableau


FIFO

20

Publication 1756-RM003F-FR-P - Mai 2002

8-10

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit .EN est activ pour empcher un chargement incorrect


lorsque la scrutation commence.

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

.DN est activ

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

8-11

Action de la logique relais

si l'tat d'entre de la ligne est faux

le bit .EN est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

.DN est activ

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

8-12

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

examine le bit .EN

.EN = 0

le bit .EN est activ

.EN = 1

non

oui

.LEN < 0

oui

.POS < 0

non

non

le bit .EM est activ


le bit .DN est activ

le bit .EM est effac


le bit .DN est effac
.POS = .POS + 1

oui

.POS < 0

oui

.LEN < 0

non
le bit .EM est activ
.DN est activ

le bit .EM est effac


le bit .DN est effac

oui

.POS .LEN

le bit .DN est activ

non
oui

.POS = 0

le bit .EM est activ


oui

.POS ou
.LEN > taille
du tableau

non

dfaut majeur

non
oui

.POS .LEN

le bit .DN est activ

non

oui

.POS > .LEN

.POS = .POS - 1

non

FIFO[.POS - 1] = source

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-13

Exemple : Lorsqu'elle est active, l'instruction FFL charge value_1 dans la


position suivante du FIFO, qui est array_dint[5] dans cet exemple.

array_dint[0]

array_dint[5]

avant chargement du FIFO

aprs chargement du FIFO

00000

00000

11111

11111

22222

22222

33333

control_1.pos = 5

33333

44444

value_1 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

Publication 1756-RM003F-FR-P - Mai 2002

8-14

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Dchargement FIFO (FFU)

L'instruction FFU dcharge la valeur de la position 0 (premire


position) du FIFO et stocke cette valeur dans la Destination. Les
donnes restantes dans le FIFO sont dcales d'une position.

Oprandes :
Logique relais
Oprande

Type

Format

FIFO

SINT
point de
INT
tableau
DINT
REAL
STRING
STRUCTURE

Destination

SINT
INT
DINT
REAL
STRING
STRUCTURE

point

Description
FIFO modifier
indique le premier lment du FIFO
n'utilisez pas CONTROL.POS dans l'indice

valeur qui sort du FIFO

La valeur de destination est converti dans le type de donnes du point de


destination. Un nombre entier plus petit est converti en un nombre entier
plus grand par extension de signe.
Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que l'instruction FFL associe

Longueur

DINT

immdiat

nombre maximum d'lments que le FIFO


peut contenir la fois

Position

DINT

immdiat

emplacement suivant dans le FIFO o


l'instruction dcharge des donnes
la valeur initiale est gnralement 0

Si vous utilisez une structure dfinie par l'utilisateur comme type de


donnes pour l'oprande FIFO ou Destination, utilisez la mme
structure pour les deux oprandes.

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EU

BOOL

Le bit d'activation de dchargement indique que l'instruction FFU est active. Le bit .EU est
rgl pour empcher un dchargement incorrect lorsque la scrutation commence.

.DN

BOOL

Le bit de fin est activ pour indiquer que le FIFO est plein (.POS = .LEN).

.EM

BOOL

Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.

.LEN

DINT

La longueur dfinit le nombre maximum d'lments dans le FIFO.

.POS

DINT

La position identifie la fin des donnes charges dans le FIFO.

Description : Utilisez l'instruction FFU avec l'instruction FFL pour stocker et


rcuprer les donnes dans l'ordre premier entr/premier sorti.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-15

Lorsqu'elle est active, l'instruction FFU dcharge des donnes du


premier lment du FIFO et stocke cette valeur dans la Destination.
L'instruction dcharge une valeur chaque fois qu'elle est active,
jusqu' ce que le FIFO soit vide. Si le FIFO est vide, FFU renvoie 0 la
Destination.
L'instruction FFU fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Longueur > taille du tableau FIFO

20

Publication 1756-RM003F-FR-P - Mai 2002

8-16

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit .EU est activ pour empcher un dchargement


incorrect lorsque la scrutation commence.

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

.DN est activ

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

8-17

Action de la logique relais

si l'tat d'entre de la ligne est faux

le bit .EU est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

.DN est activ

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

8-18

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

examine le bit .EU

.EU = 0

le bit .EU est activ

.EU = 1

non

oui

.LEN < 0

oui

.POS < 0
non

non

le bit .EM est activ


le bit .DN est activ

le bit .EM est effac


le bit .DN est effac

oui

.POS < 0

oui

.LEN < 0

non
le bit .EM est activ
.DN est activ

le bit .EM est effac


le bit .DN est effac

oui

.LEN > taille


du tableau

dfaut majeur

non
oui

.POS = 0

le bit .EM est activ

non

le bit .EM est activ

non

oui

.POS .LEN

oui

.POS 1

oui

.POS < 1

Destination = 0

le bit .DN est activ


non

non
.POS = .POS - 1
Destination = FIFO[0]
i=1

FIFO[i - 1] = FIFO[i]
i = i +1

oui
i < .LEN
non
l'tat de sortie de la ligne
est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-19

Exemple : Lorsqu'elle est active, l'instruction FFU dcharge array_dint[0] dans


value_2 et dcale les lments restants dans array_dint.

array_dint[0]

array_dint[5]

avant dchargement du
FIFO

aprs dchargement du
FIFO

00000

11111

11111

22222

22222

33333

33333

44444

44444

55555

55555
00000

control_1.pos = 6

00000

control_1.pos = 5

00000

value_2 = 00000

00000

00000

00000

00000

00000

00000

Publication 1756-RM003F-FR-P - Mai 2002

8-20

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Chargement LIFO (LFL)

L'instruction LFL copie la valeur de la Source dans le LIFO.

Oprandes :
Logique relais
Oprande

Type

Format

Source

immdiat
SINT
point
INT
DINT
REAL
STRING
STRUCTURE

Description
donnes stocker dans le LIFO

La source est convertie dans le type de donnes du point du tableau. Un


nombre entier plus petit est converti en un nombre entier plus grand par
extension de signe.
LIFO

point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE

LIFO modifier
indique le premier lment du LIFO
n'utilisez pas CONTROL.POS dans l'indice

Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que l'instruction LFU associe

Longueur

DINT

immdiat

nombre maximum d'lments que le LIFO


peut contenir la fois

Position

DINT

immdiat

emplacement suivant dans le LIFO o


l'instruction charge des donnes
la valeur initiale est gnralement 0

Si vous utilisez une structure dfinie par l'utilisateur comme type de


donnes pour l'oprande Source ou LIFO, utilisez la mme structure
pour les deux oprandes.

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction LFL est active.

.DN

BOOL

Le bit de fin est activ pour indiquer que le LIFO est plein (.POS = .LEN). Le bit .DN empche
le chargement de LIFO jusqu' ce que .POS < .LEN.

.EM

BOOL

Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.

.LEN

DINT

La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois.

.POS

DINT

La position identifie l'emplacement dans le LIFO o l'instruction chargera la nouvelle valeur.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-21

Description : Utilisez l'instruction LFL avec l'instruction LFU pour stocker et


rcuprer les donnes dans l'ordre dernier entr/premier sorti.
Lorsqu'elles sont couples, les instructions LFL et LFU tablissent un
registre dcalage asynchrone.
La Source et le LIFO sont gnralement le mme type de donnes.
Lorsqu'elle est active, l'instruction LFL charge la valeur Source de la
position dans le LIFO identifi par la valeur .POS. L'instruction charge
une valeur chaque fois qu'elle est active, jusqu' ce que le LIFO soit
plein.
L'instruction LFL fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

(lment de dpart + .POS) > taille du tableau


LIFO

20

Publication 1756-RM003F-FR-P - Mai 2002

8-22

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit .EN est activ pour empcher un chargement


incorrect lorsque la scrutation commence.

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

.DN est activ

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

8-23

Action de la logique relais

si l'tat d'entre de la ligne est faux

le bit .EN est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

.DN est activ

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

8-24

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

examine le bit .EN

.EN = 0

le bit .EN est activ

.EN = 1

non

oui

.LEN < 0

oui

.LEN < 0

oui

.POS < 0

non

non

.POS < 0

le bit .EM est activ


le bit .DN est activ

le bit .EM est effac


le bit .DN est effac
.POS = .POS + 1

oui

non
le bit .EM est activ
.DN est activ

le bit .EM est effac


le bit .DN est effac

oui

.POS .LEN

le bit .DN est activ

non
oui

.POS = 0

le bit .EM est activ


.POS ou
.LEN > taille
du tableau

non

oui

dfaut majeur

non
oui

.POS .LEN

le bit .DN est activ

non

oui

.POS > .LEN

.POS = .POS - 1

non

LIFO[.POS - 1] = source

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-25

Exemple : Lorsqu'elle est active, l'instruction LFL charge value_1 dans la


position suivante du LIFO, qui est array_dint[5] dans cet exemple.

array_dint[0]

array_dint[5]

avant chargement du LIFO

aprs chargement du LIFO

00000

00000

11111

11111

22222

22222

33333

control_1.pos = 5

33333

44444

value_1 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

Publication 1756-RM003F-FR-P - Mai 2002

8-26

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Dchargement LIFO (LFU)

L'instruction LFU dcharge la valeur .POS du LIFO et stocke 0 dans cet


emplacement.

Oprandes :
Logique relais
Oprande

Type

Format

LIFO

point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE

Destination

SINT
INT
DINT
REAL
STRING
STRUCTURE

point

Description
LIFO modifier
indique le premier lment du LIFO
n'utilisez pas CONTROL.POS dans l'indice

valeur qui sort du LIFO

La valeur de destination est converti dans le type de donnes du point de


destination. Un nombre entier plus petit est converti en un nombre entier
plus grand par extension de signe.
Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que l'instruction LFL associe

Longueur

DINT

immdiat

nombre maximum d'lments que le LIFO


peut contenir la fois

Position

DINT

immdiat

emplacement suivant dans le LIFO o


l'instruction dcharge des donnes
la valeur initiale est gnralement 0

Si vous utilisez une structure dfinie par l'utilisateur comme type de


donnes pour l'oprande LIFO ou Destination, utilisez la mme
structure pour les deux oprandes.

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EU

BOOL

Le bit d'activation de dchargement indique que l'instruction LFU est active. Le bit .EU est
rgl pour empcher un dchargement incorrect lorsque la scrutation commence.

.DN

BOOL

Le bit de fin est activ pour indiquer que le LIFO est plein (.POS = .LEN).

.EM

BOOL

Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.

.LEN

DINT

La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois.

.POS

DINT

La position identifie la fin des donnes charges dans le LIFO.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-27

Description : Utilisez l'instruction LFU avec l'instruction LFL pour stocker et


rcuprer les donnes dans l'ordre dernier entr/premier sorti.
Lorsqu'elle est active, l'instruction LFU dcharge la valeur .POS du
LIFO et stocke cette valeur dans la Destination. L'instruction dcharge
une valeur et la remplace par un 0 chaque fois qu'elle est active,
jusqu' ce que le LIFO soit vide. Si le LIFO est vide, LFU renvoie 0 la
Destination.
L'instruction LFU fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Longueur > taille du tableau LIFO

20

Publication 1756-RM003F-FR-P - Mai 2002

8-28

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit .EU est activ pour empcher un dchargement


incorrect lorsque la scrutation commence.

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

.DN est activ

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

8-29

Action de la logique relais

si l'tat d'entre de la ligne est faux

le bit .EU est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac


.DN est effac

.POS = 0

.EM est activ


.DN est activ

oui

.EM est activ

non

.POS .LEN

oui

.DN est activ

non

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

8-30

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

examine le bit .EU

.EU = 0

le bit .EU est activ

oui

.LEN < 0

.EU = 1

non

oui

.LEN < 0

oui

.POS < 0
non

non

.POS < 0

le bit .EM est activ


le bit .DN est activ

le bit .EM est effac


le bit .DN est effac

oui

non
le bit .EM est activ
.DN est activ

le bit .EM est effac


le bit .DN est effac

oui

.POS 1

le bit .EM est activ

non

oui

.POS = 0

le bit .EM est activ

oui

.POS < 1

non

non

oui

.POS .LEN

Destination = 0

oui

.POS > .LEN

.POS = .LEN

le bit .DN est activ


non

non
.POS = .POS - 1

oui

.LEN > taille


du tableau

dfaut majeur

non
Destination = LIFO[control.POS]
LIFO[control.POS) = 0

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

8-31

Exemple : Lorsqu'elle est active, l'instruction LFU dcharge array_dint[5] dans


value_2.

array_dint[0]

array_dint[5]

avant dchargement du
LIFO

aprs dchargement du
LIFO

00000

00000

11111

11111

22222

22222

33333

33333

44444

44444

55555

00000

control_1.pos = 5

00000

value_2 = 55555

00000

control_1.pos = 6

00000

00000

00000

00000

00000

00000

Publication 1756-RM003F-FR-P - Mai 2002

8-32

Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

Instructions squenceur
(SQI, SQO, SQL)

Introduction

Les instructions squenceur surveillent la cohrence et la rptition


d'oprations.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

dtecter si une tape est termine

SQI

logique relais

9-2

configurer les tats de sortie pour l'tape


suivante

SQO

logique relais

9-6

charger des tats de rfrence dans les


tableaux squenceur

SQL

logique relais

9-10

Pour les instructions de logique relais, les types de donnes en gras


indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

9-2

Instructions squenceur (SQI, SQO, SQL)

Entre squenceur (SQI)

L'instruction SQI dtecte la fin d'une tape dans une paire


d'instructions squenceur SQO/SQI.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

DINT

point de
tableau

tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice

Masque

SINT
INT
DINT

point
immdiat

bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source

SINT
INT
DINT

point

donnes d'entre pour le tableau squenceur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point CONTROL
que les instructions SQO et SQL

Longueur

DINT

immdiat

nombre d'lments du tableau (tableau


squenceur) comparer

Position

DINT

immdiat

position en cours du tableau


la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique

Type de
donnes

Description

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.

.LEN

DINT

La longueur dfinit le nombre d'tapes dans le tableau squenceur.

.POS

DINT

La position identifie l'lment que l'instruction est en train de comparer.

Description : Lorsqu'elle est active, l'instruction SQI compare un lment Source


un lment de tableau travers un masque pour voir s'ils sont gaux.
Utilise gnralement la mme structure CONTROL que les instructions
SQO et SQL.
L'instruction SQI fonctionne sur de la mmoire contigu.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions squenceur (SQI, SQO, SQL)

9-3

Entre d'une valeur de masque immdiate


Lorsque vous entrez un masque, le logiciel de programmation passe
par dfaut des valeurs dcimales. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.
Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

9-4

Instructions squenceur (SQI, SQO, SQL)

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

.LEN 0
.POS < 0
ou
.POS > .LEN

non

le bit .ER est effac

oui
le bit .ER est activ

non

Source masque =
Array[.POS] masqu

oui

l'tat de sortie de la ligne


est rgl sur vrai

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions squenceur (SQI, SQO, SQL)

9-5

Exemple : Lorsqu'elle est active, l'instruction SQI passe value_2 travers le


masque pour dterminer si le rsultat est gal l'lment en cours de
array_dint. La comparaison masque est vraie, l'tat de sortie de la
ligne passe donc vrai.

Oprande SQI

Valeurs d'exemple (DINT affich en binaire)

Source

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Masque

00000000 00000000 00001111 00001111

Tableau

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un 0 dans le masque signifie que le bit n'est pas compar (dsign


par xxxx dans cet exemple).

Utilisation de SQI sans SQO


Si vous utilisez une instruction SQI sans une instruction SQO, vous
devez augmenter le tableau squenceur de l'extrieur.
L'instruction SQI compare la valeur source. L'instruction ADD
augmente le tableau squenceur. GRT dtermine s'il y a une autre
valeur vrifier dans le tableau squenceur. L'instruction MOV
rinitialise la valeur de la position aprs tre compltement passe par
le tableau squenceur.

Publication 1756-RM003F-FR-P - Mai 2002

9-6

Instructions squenceur (SQI, SQO, SQL)

Sortie squenceur (SQO)

L'instruction SQO configure des tats de sortie pour l'tape suivante


d'une paire d'instructions squenceur SQO/SQI.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

DINT

point de
tableau

tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice

Masque

SINT
INT
DINT

point
immdiat

bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination

DINT

point

donnes de sortie du tableau squenceur

Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que les instructions SQI et SQL

Longueur

DINT

immdiat

nombre d'lments du tableau (tableau


squenceur) sortir

Position

DINT

immdiat

position en cours du tableau


la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction SQO est active.

.DN

BOOL

Le bit de fin est activ lorsque tous les lments indiqus ont t dplacs vers la
Destination.

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.

.LEN

DINT

La longueur dfinit le nombre d'tapes dans le tableau squenceur.

.POS

DINT

La position identifie l'lment que l'automate est en train de traiter.

Description : Lorsqu'elle est active, l'instruction SQO augmente la position,


dplace les donnes la position travers le masque et stocke le
rsultat dans la Destination. Si .POS > .LEN, l'instruction va au dbut
du tableau squenceur et continue avec .POS = 1.
Utilise gnralement la mme structure CONTROL que les instructions
SQI et SQL.
L'instruction SQO fonctionne sur de la mmoire contigu.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions squenceur (SQI, SQO, SQL)

9-7

Entre d'une valeur de masque immdiate


Lorsque vous entrez un masque, le logiciel de programmation passe
par dfaut des valeurs dcimales. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.
Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est rgl pour empcher un chargement incorrect lorsque la scrutation
commence.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .EN est effac.


L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

9-8

Instructions squenceur (SQI, SQO, SQL)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

.LEN 0 ou
.POS < 0

non

examine le bit .EN

oui

le bit .EN est activ


le bit .ER est effac
le bit .DN est activ

.EN = 1

non

.POS = .LEN

.EN = 0

oui

.POS .LEN

.POS = 1

non

oui

.POS = .POS + 1

le bit .DN est activ

oui

la valeur .POS
passe zro

erreur
d'instr

non

oui

.POS = .LEN

le bit .DN est activ

non

.POS > .LEN

non

oui

erreur

le bit .ER est activ

Destination = (Destination AND (NOT(Mask) OU


(Array[control.POS] AND Mask)

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions squenceur (SQI, SQO, SQL)

9-9

Exemple : Lorsqu'elle est active, l'instruction SQO augmente la position, passe


les donnes la position dans array_dint travers le masque, et
stocke le rsultat dans value_1.

Oprande SQO

Valeurs d'exemple (INT affich en binaire)

Tableau

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Masque

00000000 00000000 00001111 00001111

Destination

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un 0 dans le masque signifie que le bit n'est pas compar (dsign


par xxxx dans cet exemple).

Utilisation de SQI avec SQO


Si vous couplez une instruction SQI avec une instruction SQO,
assurez-vous qu'elles utilisent les mmes valeurs de Contrle,
Longueur et Position.

Remise zro de la position de SQO


Chaque fois que l'automate passe du mode Programme (Program) au
mode Excution (Run), l'instruction SQO efface (initialise) la valeur
.POS. Pour remettre .POS la valeur d'initialisation (.POS = 0), utilisez
une instruction RES pour effacer la valeur positive. Cet exemple utilise
l'tat du premier bit de scrutation pour effacer la valeur .POS.

Publication 1756-RM003F-FR-P - Mai 2002

9-10

Instructions squenceur (SQI, SQO, SQL)

Chargement squenceur
(SQL)

L'instruction SQL charge des tats de rfrence dans un tableau


squenceur.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Tableau

DINT

point de
tableau

tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice

Source

SINT
INT
DINT

point
immdiat

donnes d'entre charger dans le tableau


squenceur

Un point SINT ou INT est converti en valeur DINT par extension de signe.
Contrle

CONTROL

point

structure de contrle pour l'opration


utilise gnralement le mme point
CONTROL que les instructions SQI et SQO

Longueur

DINT

immdiat

nombre d'lments du tableau (tableau


squenceur) charger

Position

DINT

immdiat

position en cours du tableau


la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction SQL est active.

.DN

BOOL

Le bit de fin est activ lorsque tous les lments indiqus ont t chargs dans Array.

.ER

BOOL

Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.

.LEN

DINT

La longueur dfinit le nombre d'tapes dans le tableau squenceur.

.POS

DINT

La position identifie l'lment que l'automate est en train de traiter.

Description : Lorsqu'elle est active, l'instruction SQL augmente la position


suivante du tableau squenceur et charge la valeur Source dans la
position. Si le bit .DN est activ ou si .POS .LEN, l'instruction active
.POS=1.
Utilise gnralement la mme structure CONTROL que les instructions
SQI et SQO.
L'instruction SQL fonctionne sur de la mmoire contigu.

Indicateurs d'tat arithmtique : non affects

Publication 1756-RM003F-FR-P - Mai 2002

Instructions squenceur (SQI, SQO, SQL)

9-11

Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Longueur > taille du tableau

20

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Le bit .EN est rgl pour empcher un chargement incorrect lorsque la scrutation
commence.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Le bit .EN est effac.


L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

9-12

Instructions squenceur (SQI, SQO, SQL)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est vrai

.LEN 0 ou
.POS < 0

non

examine le bit .EN

le bit .EN est activ


le bit .ER est effac
le bit .DN est activ

.EN = 1

oui

non

.POS = .LEN

.EN = 0

oui

.POS .LEN

.POS = 1

non

oui

.POS = .POS + 1

le bit .DN est activ

la valeur
.POS passe
zro

oui

erreur
d'instructi
on goto

non

oui

.POS = .LEN

le bit .DN est activ

non

.POS > .LEN

non

oui
.LEN > taille
du tableau

erreur

non

le bit .ER est activ

oui

dfaut majeur

Array[control.POS] = Source

l'tat de sortie de la ligne


est rgl sur vrai

fin

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions squenceur (SQI, SQO, SQL)

9-13

Exemple : Lorsqu'elle est active, l'instruction SQL charge value_3 dans la


position suivante du tableau squenceur, qui est array_dint[5] dans
cet exemple.

array_dint[0]

array_dint[5]

avant chargement

aprs chargement

00000

00000

11111

11111

22222

22222

33333

control_1.pos = 5

33333

44444

value_3 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

Publication 1756-RM003F-FR-P - Mai 2002

9-14

Instructions squenceur (SQI, SQO, SQL)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

10

Instructions de commande de programme


(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR)

Introduction

Utilisez les instructions de commande de programme pour changer le


dbit de la logique.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

sauter une section logique qui n'a pas toujours


besoin d'tre excute

JMP
LBL

logique relais

10-2

passer directement un sousprogramme spar,


passer des donnes au sousprogramme, excuter le
sous-programme et produire des rsultats

JSR
SBR
RET

logique relais
texte structur
bloc fonctionnel

10-4

passer un sous-programme externe (automate


SoftLogix5800 uniquement)

JXR

logique relais

10-13

marquer une fin temporaire qui arrte l'excution du


sous-programme

TND

logique relais
texte structur

10-16

dsactiver toutes les lignes dans une section logique MCR

logique relais

10-18

dsactiver les tches utilisateur

UID

logique relais
texte structur

10-20

activer les tches utilisateur

UIE

logique relais
texte structur

10-20

dsactiver une ligne

AFI

logique relais

10-22

insrer un marqueur dans la logique

NOP

logique relais

10-23

arrter une transition pour un graphe de


fonctionnement squentiel

EOT

logique relais
texte structur

10-24

arrter provisoirement un graphe de fonctionnement


squentiel

SFP

logique relais
texte structur

10-26

rinitialiser un graphe de fonctionnement squentiel SFR

logique relais
texte structur

10-28

Publication 1756-RM003F-FR-P - Mai 2002

10-2

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Saut vers tiquette (JMP)


Etiquette (LBL)

Les instructions JMP et LBL sautent des portions de logique relais.

Oprandes :
Logique relais
Oprande

Type

Format

Description

nom
d'tiquette

entrer le nom de l'instruction LBL associe

nom
d'tiquette

l'excution saute l'instruction LBL avec nom


d'tiquette rfrenc

Instruction JMP
Nom de
l'tiquette
Instruction LBL
Nom de
l'tiquette

Description : Lorsqu'elle est active, l'instruction JMP passe l'instruction LBL


rfrence et l'automate continue l'excution partir de l. Lorsqu'elle
est dsactive, l'instruction JMP n'affecte pas l'excution de la logique
relais.
L'instruction JMP peut dplacer l'excution de la logique relais vers
l'avant ou l'arrire. Le saut avant vers une tiquette rduit la dure de
scrutation du programme en laissant de ct un segment logique
jusqu' ce que vous en ayez besoin. Le saut arrire permet
l'automate de rpter des itrations de logique.
Prenez soin de ne pas faire trop de sauts arrire. Le temporisateur du
chien de garde risque d'tre dpass car l'automate n'atteint jamais la
fin de la logique, ce qui met l'automate en dfaut.

ATTENTION

La logique saute n'est pas scrute. Placez la logique


critique en dehors de la zone saute.

!
L'instruction LBL est la cible de l'instruction JMP qui possde le mme
nom d'tiquette. Assurez-vous que l'instruction LBL est la
premire instruction sur sa ligne.
Un nom d'tiquette doit tre unique dans un sous-programme. Le
nom peut :
comporter un maximum de 40 caractres ;
contenir des lettres, des nombres et des caractres de
soulignement (_).

Indicateurs d'tat arithmtique : non affects

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-3

Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

l'tiquette n'existe pas

42

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur vrai.


L'excution saute la ligne contenant l'instruction LBL avec le nom d'tiquette
rfrenc.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsque l'instruction JMP est active, l'excution saute des lignes de
logique successives jusqu' atteindre la ligne contenant l'instruction
LBL avec label_20.

[autres lignes de code]

Publication 1756-RM003F-FR-P - Mai 2002

10-4

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Saut vers sous-programme


(JSR)
Sous-programme (SBR)
Retour (RET)

L'instruction JSR fait passer l'excution un autre sous-programme.


Les instructions SBR et RET sont des instructions facultatives qui
changent les donnes avec l'instruction JSR.

Oprandes JSR :
Logique relais
Oprande

Type

Format

Description

Nom du
sous-programme

ROUTINE

nom

sous-programme excuter
(sous-programme secondaire)

Paramtre
d'entre

BOOL
SINT
INT
DINT
REAL
STRUCTURE

immdiat
point
point de
tableau

donnes de ce sous-programme que


vous voulez copier dans un point dans le
sous-programme secondaire
Les paramtres d'entre sont
facultatifs.
Entrez plusieurs paramtres
d'entre, si ncessaire.

Paramtre de
retour

point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE

point de ce sous-programme dans lequel


vous voulez copier un rsultat du
sous-programme secondaire
Les paramtres de retour sont
facultatifs.
Entrez plusieurs paramtres de
retour, si ncessaire.

Texte structur
JSR(RoutineName,InputCount,
InputPar,ReturnPar);

Oprande

Type

Format

Description

Nom du
ROUTINE
sous-programme

nom

sous-programme excuter
(sous-programme secondaire)

Comptage des
entres

SINT
INT
DINT
REAL

immdiat

nombre de paramtres d'entre

Paramtre
d'entre

BOOL
SINT
INT
DINT
REAL
STRUCTURE

immdiat
point
point de
tableau

donnes de ce sous-programme que vous


voulez copier dans un point du
sous-programme secondaire
Les paramtres d'entre sont
facultatifs.
Entrez plusieurs paramtres
d'entre, si ncessaire.

Paramtre de
retour

point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE

point de ce sous-programme dans lequel


vous voulez copier un rsultat du
sous-programme secondaire
Les paramtres de retour sont
facultatifs.
Entrez plusieurs paramtres de
retour, si ncessaire.

(suite des oprandes JSR page suivante)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-5

Oprandes JSR (suite)


Bloc fonctionnel
Paramtres d'entre

Paramtres de retour

Les oprandes sont les mmes que ceux de l'instruction JSR en


logique relais.

ATTENTION

Pour chaque paramtre dans une instruction SBR ou


RET, utilisez le mme type de donnes (y compris les
dimensions de tableau) que celui du paramtre
correspondant dans l'instruction JSR. L'utilisation de
types de donnes diffrents peut produire des
rsultats inattendus.

Oprandes SBR : L'instruction SBR doit tre la premire instruction d'un


sous-programme logique relais ou en texte structur.

Logique relais

SBR(InputPar);

Oprande

Type

Format

Paramtre
d'entre

point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE

Description
point de ce sous-programme dans lequel
vous voulez copier le paramtre d'entre
correspondant partir de l'instruction JSR

Texte structur
Les oprandes sont les mmes que ceux de l'instruction SBR en
logique relais.

Bloc fonctionnel
Paramtres

Les oprandes sont les mmes que ceux de l'instruction SBR en


logique relais.
Publication 1756-RM003F-FR-P - Mai 2002

10-6

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Oprandes RET :
Logique relais

RET(ReturnPar);

Oprande

Type

Format

Description

Paramtre
de retour

BOOL
SINT
INT
DINT
REAL
STRUCTURE

immdiat
point
point de
tableau

donnes de ce sous-programme que vous


voulez copier dans le paramtre de retour
correspondant dans l'instruction JSR

Texte structur
Les oprandes sont les mmes que ceux de l'instruction RET en
logique relais.

Bloc fonctionnel
Paramtres

Les oprandes sont les mmes que ceux de l'instruction RET en


logique relais.

Description : L'instruction JSR lance l'excution du sous-programme indiqu, qui est


un sous-programme secondaire :
le sous-programme est excut une fois ;
une fois le sous-programme excut, l'excution logique revient
au sous-programme qui contient l'instruction JSR.
Pour programmer un saut vers un sous-programme, suivez les
directives ci-dessous :
IMPORTANT

N'utilisez pas d'instruction JSR pour appeler


(excuter) le sous-programme principal.
Vous pouvez insrer une instruction JSR dans le
sous-programme principal ou dans tout autre
sous-programme.
Si vous utilisez une instruction JSR pour appeler
le sous-programme principal, puis insrez une
instruction RET dans ce sous-programme
principal, un dfaut majeur se produit (type 4,
code 31).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-7

Le diagramme suivant illustre le fonctionnement des instructions.


Sous-programme
appelant

Sous-programme
secondaire

SBR
1. Si l'instruction JSR comporte un
paramtre d'entre, entrez une
instruction SBR.
2. Placez l'instruction SBR comme
premire instruction dans le
sous-programme.
3. Pour chaque paramtre d'entre dans
l'instruction JSR, entrez le point dans
lequel vous voulez copier les
donnes.

SBR
JSR

JSR
1. Si vous voulez copier des donnes
dans un point du sous-programme,
entrez un paramtre d'entre.
2. Si vous voulez copier un rsultat du
sous-programme dans un point du
sous-programme, entrez un
paramtre de retour.
3. Entrez autant de paramtres d'entre
et de retour que ncessaire.

RET

RET
42974

RET
1. Si l'instruction JSR comporte un paramtre de retour, entrez une instruction
RET.
2. Placez l'instruction RET comme dernire instruction dans le sous-programme.
3. Pour chaque paramtre de retour dans l'instruction JSR, entrez un paramtre
de retour envoyer l'instruction JSR.
4. Dans un sous-programme relais, placez des instructions RET
supplmentaires pour quitter le sous-programme secondaire en fonction de
diffrentes conditions d'entre, si ncessaire (les sous-programmes en blocs
fonctionnels ne permettent qu'une instruction RET).

Il n'y a pas de restrictions, hormis la quantit de mmoire de


l'automate, au nombre de sous-programmes imbriqus que vous
pouvez avoir ou au nombre de paramtres que vous passez ou
renvoyez.
niveau 1
sous-programme secondaire
action_1
sous-programme
principal
action_1

SBR

niveau 2
sous-programme secondaire
action_2
SBR

niveau 3
sous-programme secondaire
action_3
SBR

JSR
action_2

action_3

JSR

JSR

RET

RET

RET

Publication 1756-RM003F-FR-P - Mai 2002

10-8

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

L'instruction JSR a moins de paramtres d'entre que l'instruction SBR

31

L'instruction JSR passe un sous-programme de gestion des dfauts

4 ou dfini par
l'utilisateur

0 ou dfini par
l'utilisateur

L'instruction RET a moins de paramtres de retour que l'instruction JSR

31

Le sous-programme principal contient une instruction RET

31

Excution :
Logique relais et texte structur
Condition

Action de la logique relais

pendant la pr-scrutation

L'automate excute tous les sous-programmes quel que soit l'tat de la ligne. Pour assurer la
pr-scrutation de toutes les lignes du sous-programme, l'automate ignore les instructions RET (les
instructions RET ne quittent pas le sous-programme).
Version 6.x et antrieures : les entres et les paramtres de retour sont passs.
Version 7.x et ultrieures : les entres et les paramtres de retour ne sont pas passs.
S'il y a des appels rcurrents dans le mme sous-programme, le sous-programme est pr-scrut la
premire fois uniquement. S'il y a des appels multiples (non rcurrents) dans le mme sous-programme, le
sous-programme est pr-scrut chaque fois.
L'tat de sortie de la ligne est rgl sur faux (logique relais uniquement).

si l'tat d'entre de la ligne


de l'instruction JSR est faux

Le sous-programme n'est pas excut.


Les sorties du sous-programme gardent leur dernier
tat.
L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

Publication 1756-RM003F-FR-P - Mai 2002

Action du texte structur

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Condition

Action de la logique relais

10-9

Action du texte structur

Excution de l'instruction
oui

paramtres d'entre

JSR copie les paramtres d'entre


dans les points SBR appropris

non

l'excution de la logique commence dans le


sous-programme identifi par JSR

oui

oui
instruction RET

paramtres de
retour

RET copie les paramtres de


retour dans les points JSR
appropris

non

non

oui

fin du
sous-programme

non
l'tat de sortie de la ligne est faux
continue l'excution du
sous-programme

l'tat de sortie de la ligne est vrai


l'excution de la logique revient
JSR

fin

pendant la post-scrutation

Mme action que la pr-scrutation dcrite


ci-dessus.

Mme action que la pr-scrutation dcrite


ci-dessus.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation


de l'instruction

Aucune.

pendant la premire excution


de l'instruction

Aucune.

excution normale

pendant la post-scrutation

1. Si le sous-programme contient une instruction SBR, l'automate excute d'abord l'instruction


SBR.
2. L'automate verrouille toutes les valeurs de donnes dans les IREF.
3. L'automate excute les autres blocs fonctionnels dans l'ordre dtermin par leur cblage. Ceci
comprend les autres instructions JSR.
4. L'automate crit les sorties dans des OREF.
5. Si le sous-programme contient une instruction RET, l'automate excute l'instruction RET en
dernier.
Le sous-programme est appel.
S'il s'agit d'un sous-programme SFC, il est initialis comme pendant la pr-scrutation.

Publication 1756-RM003F-FR-P - Mai 2002

10-10

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Exemple 1 : L'instruction JSR passe value_1 et value_2 dans routine_1.


L'instruction SBR reoit value_1 et value_2 de l'instruction JSR et copie
ces valeurs respectivement dans value_a et value_b. L'excution de la
logique continue dans ce sous-programme.
L'instruction RET envoie float_a vers l'instruction JSR. L'instruction JSR
reoit float_a et copie la valeur dans float_value_1. L'excution de la
logique continue avec l'instruction suivant l'instruction JSR.

Logique relais
Sous-programme

Programme

Sous-programme principal

Sous-programme secondaire

[autres lignes de code]

Texte structur
Sous-programme

Programme

Sous-programme principal

JSR(routine_1,2,value_1,value_2,float_value_1);

Sous-programme secondaire

SBR(value_a,value_b);
<instructions>;
RET(float_a);

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-11

Exemple 2 :
Logique relais
MainRoutine
Lorsque abc est activ, subroutine_1 est excut, le nombre de cookies est calcul et une valeur place dans cookies_1.

L'instruction ajoute la valeur de cookies_1 cookies_2 et stocke le rsultat dans total_cookies.

Subroutine_1
Lorsque def est activ, l'instruction RET renvoie value_1 au paramtre JSR cookies_1 et le reste du sous-programme n'est pas scrut.

Lorsque def est dsactiv (ligne prcdente) et ghi activ, l'instruction RET renvoie value_2 au paramtre JSR cookies_1 et le reste du sous-programme n'est pas
scrut.

Lorsque def et ghi sont dsactivs (lignes prcdentes), l'instruction RET renvoie value_3 au paramtre JSR cookies_1.

Publication 1756-RM003F-FR-P - Mai 2002

10-12

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Exemple 3 :
Bloc fonctionnel
Instruction JSR dans Routine_A

42972

1. Les valeurs dans


Add_Input_1,
Add_Input_2 et
Add_Input_3 sont
copies respectivement
dans Input_A, Input_B
et Input_C.

6. La valeur de Sum_A_B_C est


copie dans Add_Three_Result.

Blocs fonctionnels du sous-programme Add_Three_Inputs

42973

6. Les instructions ADD additionnent Input_A, Input_B et Input_C et placent le rsultat dans Sum_A_B_C.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Saut vers sous-programme


externe (JXR)

10-13

L'instruction JXR excute un sous-programme externe. Cette


instruction est prise en charge uniquement par les automates
SoftLogix5800.

Oprandes :
Logique relais

.
Oprande

Type

Format

Description

Nom du
sous-programme
externe

ROUTINE

nom

excution du sous-programme externe

Contrle du
sous-programme
externe

EXT_ROUTINE_
CONTROL

point

structure de contrle (voir page suivante)

Paramtre

BOOL
SINT
INT
DINT
REAL
STRUCTURE

immdiat
point
point de tableau

donnes de ce sous-programme que vous voulez copier dans une variable du


sous-programme externe
Les paramtres sont facultatifs.
Entrez plusieurs paramtres, si ncessaire.
vous pouvez avoir jusqu' 10 paramtres.

Paramtre de
retour

BOOL
SINT
INT
DINT
REAL

point

point de ce sous-programme dans lequel vous voulez copier un rsultat du


sous-programme externe
Le paramtre de retour est facultatif.
Vous pouvez avoir un paramtre de retour seulement.

Publication 1756-RM003F-FR-P - Mai 2002

10-14

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Structure EXT_ROUTINE_CONTROL
Mnmonique

Type de donnes

Description

Application

ErrorCode

SINT

Si une erreur se produit, cette valeur identifie


l'erreur. Les valeurs correctes vont de 0 255.

Il n'y a pas de codes d'erreurs prdfinis. Le


dveloppeur du sous-programme externe doit
fournir les codes d'erreurs.

NumParams

SINT

Cette valeur indique le nombre de paramtres


associs cette instruction.

Affichage uniquement : cette information est


drive de l'entre de l'instruction.

ParameterDefs

EXT_ROUTINE_
PARAMETERS[10]

Ce tableau contient les dfinitions des


paramtres transmettre au sous-programme
externe. L'instruction peut transmettre jusqu'
10 paramtres.

Affichage uniquement : cette information est


drive de l'entre de l'instruction.

ReturnParamDef

EXT_ROUTIN_
PARAMETERS

Cette valeur contient les dfinitions du


paramtre de retour du sous-programme
externe. Il n'y a qu'un paramtre de retour.

Affichage uniquement : cette information est


drive de l'entre de l'instruction.

EN

BOOL

Lorsqu'il est activ, le bit d'activation indique


que l'instruction JXR est active.

Le sous-programme externe active ce bit.

ReturnsValue

BOOL

S'il est activ, ce bit indique qu'un paramtre


de retour a t entr pour l'instruction. S'il est
effac, ce bit indique qu'aucun paramtre de
retour n'a t entr pour l'instruction.

Affichage uniquement : cette information est


drive de l'entre de l'instruction.

DN

BOOL

Le bit de fin est activ lorsque le


sous-programme externe a t compltement
excut une fois.

Le sous-programme externe active ce bit.

ER

BOOL

Le bit d'erreur est activ si une erreur se


produit. L'instruction s'arrte jusqu' ce que le
programme remette le bit d'erreur 0.

Le sous-programme externe active ce bit.

FirstScan

BOOL

Ce bit indique si c'est la premire scrutation


aprs le passage de l'automate en mode
Excution (Run). Utilisez FirstScan pour lancer
le sous-programme externe, si ncessaire.

L'automate active ce bit pour reflter l'tat de


la scrutation.

EnableOut

BOOL

Sortie active.

Le sous-programme externe active ce bit.

EnableIn

BOOL

Entre active.

L'automate active ce bit pour reflter l'tat


d'entre de la ligne. L'instruction est
excute quel que soit l'tat de la ligne. Le
dveloppeur du sous-programme doit
surveiller cet tat et agir en consquence.

User1

BOOL

User0

BOOL

Ces bits peuvent tre utiliss par l'utilisateur.


L'automate n'initialise pas ces bits.

Ces bits peuvent tre activs par le


sous-programme externe ou le programme
utilisateur.

ScanType1

BOOL

ScanType0

BOOL

Ces bits identifient le type de scrutation en


cours.
Valeurs de bit :
Type de scrutation :
00
Normale
01
Pr-scrutation
10
Post-scrutation
(pas pour les programmes logiques relais)

L'automate active ces bits pour reflter l'tat


de la scrutation.

Description : Utilisez l'instruction Saut vers sous-programme externe (JXR) pour


appeler le sous-programme externe partir d'un sous-programme
logique relais de votre projet. L'instruction JXR prend en charge
plusieurs paramtres pour que vous puissiez transfrer des valeurs
entre le sous-programme logique relais et le sous-programme
externe.
Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-15

L'instruction JXR est similaire l'instruction Saut vers sous-programme


(JSR). L'instruction JXR lance l'excution du sous-programme externe
indiqu :
le sous-programme externe est excut une fois ;
une fois le sous-programme externe excut, l'excution logique
revient au sous-programme contenant l'instruction JXR.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique ne sont pas affects.
Conditions d'erreur :
Un dfaut majeur se produit si
une exception se produit dans la DLL du
sous-programme externe
la DLL n'a pas pu tre charge
le point d'entre n'a pas t trouv dans la DLL

Type du
dfaut

Code du
dfaut

88

Excution : L'instruction JXR peut tre synchrone ou asynchrone, suivant le type


de la DLL. Le code de la DLL dtermine aussi comment rpondre
l'tat de la scrutation, l'tat d'entre de la ligne et l'tat de sortie de
la ligne.
Pour de plus amples informations sur l'utilisation de l'instruction JXR
et sur la cration de sous-programmes externes, reportez-vous
Systme SoftLogix5800 - Manuel utilisateur (publication 1789-UM002).

Publication 1756-RM003F-FR-P - Mai 2002

10-16

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Fin temporaire (TND)

L'instruction TND agit comme limite.

Oprandes :
Oprandes de logique relais
aucune

Texte structur

TND();

aucune
Vous devez entrer les parenthses () aprs le mnmonique de
l'instruction, bien qu'il n'y ait pas d'oprandes.

Description : Lorsqu'elle est active, l'instruction TND laisse l'automate excuter la


logique jusqu' cette instruction.
Lorsqu'elle est active, l'instruction TND agit comme fin du
sous-programme. Lorsque l'automate scrute une instruction TND, il va
jusqu' la fin du sous-programme en cours. Si l'instruction TND est
dans un sous-programme, la commande revient au sous-programme
appelant. Si l'instruction TND est dans un sous-programme principal,
la commande revient au programme suivant dans la tche en cours.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l 'excution de l'instruction

Le sous-programme en cours s'arrte.

Le sous-programme en cours s'arrte.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Vous pouvez utiliser l'instruction TND lors d'un dbogage ou d'un
dpannage pour excuter la logique jusqu' un certain point.
Dplacez l'instruction TND progressivement dans la logique pour le
dbogage de chaque nouvelle section.
Lorsque l'instruction TND est active, l'automate arrte de scruter le
sous-programme en cours.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-17

Logique relais

Texte structur
TND();

Publication 1756-RM003F-FR-P - Mai 2002

10-18

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Relais de contrle matre


(MCR)

L'instruction MCR, utilise par paire, cre une zone programme qui
peut dsactiver toutes les lignes dans les instructions MCR.

Oprandes :
Logique relais
aucune

Description : Lorsque la zone MCR est active, les lignes de cette zone sont scrutes
la recherche d'tats vrai ou faux normaux. Lorsqu'elle est dsactive,
l'automate scrute toujours les lignes de la zone MCR, mais la dure de
scrutation est rduite parce que les sorties non rmanentes de la zone
sont dsactives. L'tat d'entre de la ligne est faux pour toutes les
instructions dans la zone MCR dsactive.
Lorsque vous programmez une zone MCR, notez que :
vous devez terminer la zone par une instruction MCR sans
condition ;
vous ne pouvez pas imbriquer une zone MCR dans une autre ;
vous ne devez pas sauter une autre zone MCR. Si la zone est
fausse, sautez dans la zone l'active partir du point o vous
avez saut jusqu' la fin de la zone ;
vous n'avez pas besoin de programmer une instruction MCR
pour terminer la zone si elle continue jusqu' la fin du
sous-programme.
L'instruction MCR ne remplace pas un relais de contrle matre cbl
offrant la capacit d'arrt d'urgence. Vous devez quand mme installer
un relais de contrle matre cbl pour pouvoir couper l'alimentation
des E/S en cas d'urgence.

ATTENTION

Ne superposez pas et n'imbriquez pas les zones


MCR. Chaque zone MCR doit tre spare et
complte. Une superposition ou une imbrication
peut entraner un fonctionnement imprvisible de la
machine, risquant de dtriorer l'quipement et/ou
d'occasionner des blessures.
Placez les oprations critiques en dehors de la zone
MCR. Si vous commencez des instructions telles que
des temporisateurs dans une zone MCR, l'excution
de l'instruction s'arrte lorsque la zone est dsactive
et le temporisateur est effac.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-19

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.


Les instructions de la zone sont scrutes, mais l'tat de la ligne est faux et les sorties
non rmanentes de la zone sont dsactives.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur vrai.


Les instructions de la zone sont scrutes normalement.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsque la premire instruction MCR est active (input_1, input_2 et


input_3 sont actives), l'automate excute les lignes de la zone MCR
(entre les deux instructions MCR) et active ou efface les sorties, selon
l'tat des entres.
Lorsque la premire instruction MCR est dsactive (input_1, input_2
et input_3 ne sont pas toutes actives), l'automate excute les lignes
de la zone MCR (entre les deux instructions MCR) et l'tat d'entre de
la ligne passe faux pour toutes les lignes de la zone MCR, quel que
soit l'tat des entres.

Publication 1756-RM003F-FR-P - Mai 2002

10-20

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Dsactivation de
l'interruption utilisateur
(UID) Activation
d'interruption utilisateur
(UIE)

Les instructions UID et UIE travaillent ensemble pour empcher un


petit nombre de lignes critiques d'tre interrompues par d'autres
tches.

Oprandes :
Logique relais
aucune

Texte structur

UID();
UIE();

aucune
Vous devez entrer les parenthses () aprs le mnmonique de
l'instruction, bien qu'il n'y ait pas d'oprandes.

Description : Lorsque l'tat d'entre de la ligne est vrai :


l'instruction UID empche les tches priorit suprieure
d'interrompre la tche en cours, mais n'empche pas l'excution
d'un sous-programme de gestion des dfauts ou du gestionnaire
des dfauts de l'automate ;
l'instruction UIE active d'autres tches pour interrompre la tche
courante.
Pour empcher une srie de lignes d'tre interrompues :
1. Rduisez au minimum le nombre de lignes qui ne doivent pas
tre interrompues. La dsactivation des interruptions pendant
une dure prolonge peut entraner la perte de la
communication.
2. Entrez une ligne et une instruction UID avant la premire ligne
qui ne doit pas tre interrompue.
3. Entrez une ligne et une instruction UIE aprs la dernire ligne
qui ne doit pas tre interrompue.
4. Si ncessaire, vous pouvez imbriquer des instructions UID/UIE
par paires.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-21

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction UID empche l'interruption par des tches de priorit plus leve.
L'instruction UIE permet l'interruption par des tches de priorit plus leve.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsqu'une erreur se produit (error_bit est activ), l'instruction FSC


vrifie le code d'erreur par rapport la liste des erreurs critiques. Si
l'erreur est critique (error_check.FD est activ), un avertissement est
gnr. Les instructions UID et UIE empchent les autres tches
d'interrompre la vrification d'erreur et l'avertissement.

Logique relais
UID
error_bit

FSC
File Search/Compare
Control
error_check
Length
10
Position
8
Mode
ALL
Expression
error_code=error_list[error_check.POS]

error_check.FD

EN
DN
ER

alarm

UIE

Texte structur
UID();
<instructions>
UIE();

Publication 1756-RM003F-FR-P - Mai 2002

10-22

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Toujours faux (AFI)

L'instruction AFI rgle son tat de sortie de ligne sur faux.

Oprandes :
Logique relais
aucune

Description : L'instruction AFI rgle son tat de sortie de ligne sur faux.
Indicateurs d'tat arithmtique : non affects
Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Utilisez l'instruction AFI pour dsactiver temporairement une ligne


lorsque vous dboguez un programme.
Lorsqu'elle est active, l'instruction AFI dsactive toutes les
instructions sur cette ligne.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Pas d'opration (NOP)

10-23

L'instruction NOP fonctionne comme marqueur.

Oprandes :
Logique relais
aucune

Description : Vous pouvez placer l'instruction NOP n'importe o sur une ligne.
Active ou dsactive, cette instruction n'effectue aucune opration.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Cette instruction est utile pour localiser des lignes sans condition
lorsque vous placez l'instruction NOP sur la ligne.
L'instruction NOP contourne l'instruction XIC pour activer la sortie.

Publication 1756-RM003F-FR-P - Mai 2002

10-24

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Fin de transition (EOT)

L'instruction EOT renvoie un tat boolen une transition SFC.

Oprandes :
Logique relais
Oprande

Type

Format

Description

bit de
donnes

BOOL

point

tat de la transition
(0=excution, 1=termin)

Texte structur

EOT(data_bit);

Les oprandes sont les mmes que ceux de l'instruction EOT en


logique relais.

Description : Du fait que l'instruction EOT renvoie un tat boolen, plusieurs


sous-programmes SFC peuvent partager le sous-programme contenant
l'instruction EOT. Si le sous-programme appelant n'est pas une
transition, l'instruction EOT agit comme une instruction TND (voir
page 10-16).
L'excution de l'instruction EOT dans un automate Logix diffre de
celle d'un automate PLC-5. Dans un automate PLC-5, l'instruction EOT
n'a pas de paramtres : elle renvoie la condition de ligne comme son
tat. Dans un automate Logix, le paramtre de retour renvoie l'tat de
la transition puisque la condition de ligne n'est pas disponible dans
tous les langages de programmation Logix.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction renvoie la valeur du bit de donnes au sous-programme appelant.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Aucune.

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-25

Exemple : Lorsque limit_switch1 et interlock_1 sont activs, l'tat est activ. Une
fois timer_1 termin, l'instruction EOT renvoie la valeur de state au
sous-programme appelant.

Logique relais

Texte structur
state := limit_switch1 AND interlock_1;
IF timer_1.DN THEN
EOT(state);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

10-26

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Pause SFC (SFP)

L'instruction SFP arrte temporairement un sous-programme SFC.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Nom de
SFCRoutine

ROUTINE

nom

Arrt temporaire du sous-programme SFC

TargetState

DINT

immdiat
point

slectionnez une solution :


excution (ou entrez 0)
pause (ou entrez 1)

Texte structur
SFP(SFCRoutineName,
TargetState);

Les oprandes sont les mmes que ceux de l'instruction SFP en


logique relais.

Description : L'instruction SFP vous permet d'arrter temporairement l'excution


d'un sous-programme SFC. Si un sous-programme SFC est en pause,
utilisez de nouveau l'instruction SFP pour reprendre l'excution du
sous-programme.
Utilisez galement l'instruction SFP pour reprendre l'excution du
sous-programme SFC aprs avoir utilis une instruction SFR (voir
page 10-28) pour rinitialiser un sous-programme SFC.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

le sous-programme n'est pas un


sous-programme SFC

85

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction arrte temporairement ou reprend l'excution du sous-programme SFC indiqu.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Aucune.

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-27

Exemple : Si sfc_en_p est activ, le sous-programme SFC appel normal est


temporairement arrt. Le sous-programme SFC reprend lorsque
sfc_en_e est activ.

Logique relais
Arrt temporaire du sous-programme SFC.

Reprise de l'excution du sous-programme SFC.

Texte structur
Arrt temporaire du
sous-programme SFC :

IF (sfp_en_p) THEN
SFP(normal,paused);
sfp_en_p := 0;
END_IF;

Reprise de l'excution du
sous-programme SFC :

IF (sfp_en_e) THEN
SFP(normal,executing);
sfp_en_e := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

10-28

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Positionnement SFC (SFR)

L'instruction SFR reprend l'excution d'un sous-programme SFC une


tape particulire.

Oprandes :
Oprandes de logique relais
Oprande

Type

Format

Description

Nom de SFCRoutine

ROUTINE

nom

positionnement du sous-programme SFC

Nom de l'tape

SFC_STEP

point

tape laquelle l'excution doit


reprendre

Texte structur
SFR(SFCRoutineName,StepName);

Les oprandes sont les mmes que ceux de l'instruction SFR en


logique relais.

Description : Lorsque l'instruction SFR est active, le sous-programme SFC est


excut partir d'une tape particulire.
Si l'tape est 0, le diagramme reprend depuis le dbut.
L'excution de l'instruction SFR dans un automate Logix diffre de
celle d'un automate PLC-5. Dans l'automate PLC-5, l'instruction SFR est
excute lorsque la condition de ligne est vrai. Aprs le
postionnement, le sous-programme SFC reste en pause jusqu' ce que
l'tat de la ligne contenant l'instruction SFR soit faux. Ceci permet de
diffrer l'excution suivant un positionnement. Cette fonction de
pause/reprise de l'instruction SFR du PLC-5 a t dcouple de la
condition de ligne et place dans l'instruction SFP.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Publication 1756-RM003F-FR-P - Mai 2002

Type du dfaut

Code du dfaut

le sous-programme n'est pas un sous-programme 4


SFC

85

l'tape indique n'existe pas dans le


sous-programme SFC

89

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-29

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction rinitialise le sous-programme


SFC indiqu.

L'instruction rinitialise le sous-programme


SFC indiqu.

pendant la post-scrutation

Aucune.

Aucune.

Exemple : Si une condition particulire se produit (shutdown est activ),


l'instruction redmarre le sous-programme SFC l'tape initialize.

Logique relais

Texte structur
IF shutdown THEN
SFR(mySFC,initialize);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

10-30

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

11

Instruction pour/d'interruption
(FOR, FOR...DO, BRK, EXIT, RET)

Introduction

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

excuter un sous-programme de faon rpte

FOR
FOR...DO(1)

logique relais
texte structur

11-2

terminer l'excution rptitive d'un


sous-programme

BRK
EXIT(1)

logique relais
texte structur

11-4

revenir l'instruction FOR

RET

logique relais

11-5

(1)

Utilisez l'instruction FOR pour appeler un sous-programme de faon


rpte. Utilisez l'instruction BRK pour interrompre l'excution d'un
sous-programme.

Texte structur uniquement.

Publication 1756-RM003F-FR-P - Mai 2002

11-2

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

Pour (FOR)

L'instruction FOR excute un sous-programme de faon rpte.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Nom du
sous-programme

ROUTINE

nom du
sous-programme

sous-programme excuter

Index

DINT

point

compte le nombre d'excutions du


sous-programme

Valeur initiale

SINT
INT
DINT

immdiat
point

valeur laquelle l'index commence

Valeur terminale

SINT
INT
DINT

immdiat
point

valeur laquelle l'excution du


sous-programme s'arrte

Taille de
l'incrment

SINT
INT
DINT

immdiat
point

quantit ajouter l'index chaque


fois que l'instruction FOR excute le
sous-programme

Texte structur
FOR count:= initial_value TO
final_value BY increment DO
<instruction>;

Utilisez l'instruction de test FOR...DO. Pour des informations sur les


instructions de test en texte structur, reportez-vous l'Annexe C.

END_FOR;

Description :
IMPORTANT

N'utilisez pas d'instruction FOR pour appeler


(excuter) le sous-programme principal.
Vous pouvez insrer une instruction FOR dans le
sous-programme principal ou dans tout autre
sous-programme.
Si vous utilisez une instruction FOR pour appeler le
sous-programme principal, puis insrez une
instruction RET dans ce sous-programme principal,
un dfaut majeur se produit (type 4, code 31).

Lorsqu'elle est active, l'instruction FOR excute le sous-programme


de faon rpte jusqu' ce que la valeur de l'index dpasse la valeur
terminale. Cette instruction ne transfre pas de paramtres dans le
sous-programme.
Chaque fois que l'instruction FOR excute le sous-programme, elle
augmente l'index de la taille de l'incrment.
Veillez ne pas faire trop de boucles dans une seule scrutation. Si les
rptitions sont trop nombreuses, le dlai d'attente du chien de garde
risque d'tre dpass, ce qui entrane un dfaut majeur.
Publication 1756-RM003F-FR-P - Mai 2002

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

11-3

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Le sous-programme principal contient une


instruction RET

31

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.


L'automate excute le sous-programme une fois.
S'il y a des instructions FOR rcurrentes dans le mme sous-programme, il est
pr-scrut la premire fois uniquement. S'il y a de multiples instructions FOR (non
rcurrentes) dans le mme sous-programme, il est pr-scrut chaque fois.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est


index = initial_value

non

taille de l'incrment < 0

oui
fin de
goto

non

index valeur terminale

oui

oui
index valeur terminale

non

excute le sous-programme
index =(index + step_size)

fin de
goto

fin

l'tat de sortie de la ligne est


rgl sur vrai

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsqu'elle est active, l'instruction FOR excute routine_2 de faon

rpte et augmente value_2 chaque fois de 1. Lorsque value_2 est >


10 ou qu'une instruction BRK est active, l'instruction FOR n'excute
plus routine_2.

Publication 1756-RM003F-FR-P - Mai 2002

11-4

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

Interruption (BRK)

L'instruction BRK interrompt l'excution d'un sous-programme appel


par l'instruction FOR.

Oprandes :
Logique relais
aucune

Texte structur

EXIT;

Utilisez l'expression EXIT dans une construction en boucle. Pour des


informations sur les instructions de test en texte structur,
reportez-vous au chapitre Programmation en texte structur .

Description : Lorsqu'elle est active, l'instruction BRK quitte le sous-programme et


renvoie l'automate l'instruction qui suit l'instruction FOR.
S'il y a des instructions FOR imbriques, l'instruction BRK renvoie la
commande l'instruction FOR la plus profonde.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'tat de sortie de la ligne est rgl sur vrai.


L'excution revient l'instruction qui suit l'instruction FOR.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : Lorsqu'elle est active, l'instruction BRK arrte l'excution du


sous-programme en cours et retourne l'instruction qui suit
l'instruction FOR.

Publication 1756-RM003F-FR-P - Mai 2002

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

Retour (RET)

11-5

L'instruction RET retourne l'instruction FOR appelante.

Oprandes :
Logique relais
aucune

Description :
IMPORTANT

N'insrez pas d'instruction RET dans le


sous-programme principal. Si vous insrez une
instruction RET dans le sous-programme principal,
un dfaut majeur se produit (type 4, code 31).

Lorsqu'elle est active, l'instruction RET retourne l'instruction FOR.


L'instruction FOR augmente la valeur de l'index de la taille de
l'incrment et excute le sous-programme de nouveau. Si la valeur de
l'index est suprieure la valeur terminale, l'instruction FOR est
termine et l'excution passe l'instruction qui suit l'instruction FOR.
L'instruction FOR n'utilise pas de paramtres. Elle ignore tout
paramtre que vous entrez dans une instruction RET.
Vous pouvez galement utiliser une instruction TND pour terminer
l'excution du sous-programme.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Le sous-programme principal contient une


instruction RET

31

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

Renvoie les paramtres indiqus au sous-programme appelant.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Exemple : L'instruction FOR excute routine_2 de faon rpte et augmente


value_2 chaque fois de 1. Lorsque value_2 est > 10 ou qu'une
instruction BRK est active, l'instruction FOR n'excute plus
routine_2.

Publication 1756-RM003F-FR-P - Mai 2002

11-6

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

L'instruction RET retourne l'instruction FOR appelante. L'instruction


FOR excute de nouveau le sous-programme et augmente la valeur de
l'index de la taille de l'incrment ou, si la valeur de l'index est
suprieure la valeur terminale, l'instruction FOR est termine et
l'excution passe l'instruction qui suit l'instruction FOR.
sous-programme appelant

Publication 1756-RM003F-FR-P - Mai 2002

sous-programme secondaire

Chapitre

12

Instructions spciales
(FBC, DDT, DTR, PID)

Introduction

Les instructions spciales effectuent des oprations propres des


applications.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

comparer des donnes une rfrence correcte FBC


connue et enregistrer toute diffrence

logique relais

12-2

comparer des donnes une rfrence correcte DDT


connue, enregistrer toute diffrence et mettre
la rfrence jour pour qu'elle corresponde la
source

logique relais

12-9

passer les donnes de la source par un masque


et comparer le rsultat aux donnes de
rfrence, puis crire la source dans la
rfrence pour la comparaison suivante

DTR

logique relais

12-16

commander une boucle PID

PID

logique relais
texte structur

12-19

Publication 1756-RM003F-FR-P - Mai 2002

12-2

Instructions spciales (FBC, DDT, DTR, PID)

Comparaison des bits de


fichier (FBC)

L'instruction FBC compare les bits d'un tableau Source avec ceux d'un
tableau Rfrence.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

DINT

point de
tableau

tableau comparer la rfrence


n'utilisez pas CONTROL.POS dans l'indice

Rfrence

DINT

point de
tableau

tableau comparer la source


n'utilisez pas CONTROL.POS dans l'indice

Rsultat

DINT

point de
tableau

tableau pour le stockage du rsultat


n'utilisez pas CONTROL.POS dans l'indice

Contrle de CONTROL
comparaison

structure

structure de contrle pour la comparaison

Longueur

DINT

immdiat

nombre de bits comparer

Position

DINT

immdiat

position en cours dans la source


la valeur initiale est gnralement 0

Contrle de
rsultat

CONTROL

structure

structure de contrle du rsultat

Longueur

DINT

immdiat

nombre d'emplacements de stockage dans


le rsultat

Position

DINT

immdiat

position en cours dans le rsultat


la valeur initiale est gnralement 0

ATTENTION

Publication 1756-RM003F-FR-P - Mai 2002

Utilisez des points diffrents pour la structure de


contrle de comparaison et la structure de contrle
de rsultat. L'utilisation du mme point pour les deux
peut entraner un fonctionnement imprvisible
risquant de dtriorer l'quipement et/ou de
provoquer des blessures.

Instructions spciales (FBC, DDT, DTR, PID)

12-3

Structure COMPARE
Mnmonique

Type de donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction FBC est active.

.DN

BOOL

Le bit de fin est activ lorsque l'instruction FBC compare le dernier bit dans les tableaux Source et
Rfrence.

.FD

BOOL

Le bit trouv est activ chaque fois que l'instruction FBC enregistre une diffrence (opration par
opration) ou aprs l'enregistrement de toutes les diffrences (opration tout en une scrutation).

.IN

BOOL

Le bit d'inhibition indique le mode de recherche FBC.


0 = mode tout
1 = mode une diffrence la fois

.ER

BOOL

Le bit d'erreur est activ si la comparaison .POS < 0, la comparaison .LEN < 0, le rsultat .POS < 0
ou le rsultat .LEN < 0. L'instruction arrte l'excution jusqu' ce que le programme efface le bit
.ER.

.LEN

DINT

La valeur de longueur indique le nombre de bits comparer.

.POS

DINT

La valeur de position indique le bit en cours.

Structure RESULT
Mnmonique

Type de donnes

Description

.DN

BOOL

Le bit de fin est activ lorsque le tableau Rsultat est plein.

.LEN

DINT

La valeur de longueur indique le nombre d'emplacements de stockage dans le tableau


Rsultat.

.POS

DINT

La valeur de position indique la position en cours dans le tableau Rsultat.

Description : Lorsqu'elle est active, l'instruction FBC compare les bits du tableau
Source avec ceux du tableau Rfrence et enregistre le nombre de bits
de chaque diffrence dans le tableau Rsultat.
L'instruction FBC fonctionne sur de la mmoire contigu.
La diffrence entre les instructions DDT et FBC est la suivante :
chaque fois que l'instruction DDT trouve une diffrence, elle modifie
le bit de rfrence afin qu'il corresponde au bit source. L'instruction
FBC ne change pas le bit de rfrence.

Slection du mode de recherche


Pour dtecter

Slectionnez ce mode

Une diffrence la fois

Activez le bit .IN dans la structure de contrle de comparaison.


Chaque fois que l'tat d'entre de la ligne passe de faux vrai, l'instruction FBC recherche la
diffrence suivante entre les tableaux Source et Rfrence. Lorsqu'elle trouve une diffrence,
l'instruction active le bit .FD, enregistre la position de la diffrence et arrte l'excution.

Toutes les diffrences

Effacez le bit .IN dans la structure de contrle de comparaison.


Chaque fois que l'tat d'entre de la ligne passe de faux vrai, l'instruction FSC recherche
toutes les diffrences entre les tableaux Source et Rfrence.

Indicateurs d'tat arithmtique : non affects


Publication 1756-RM003F-FR-P - Mai 2002

12-4

Instructions spciales (FBC, DDT, DTR, PID)

Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Result.POS > taille du tableau de


rsultat

20

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit compare.EN est effac


le bit compare.FD est effac

examine le bit
compare.DN

compare.DN = 0

compare.DN = 1
le bit compare.DN est effac
la valeur compare.POS est
efface
le bit result.DN est effac
la valeur result.POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

Condition

12-5

Action de la logique relais

si l'tat d'entre de la ligne est

le bit compare.EN est effac


le bit compare.FD est effac

examine le bit
compare.DN

compare.DN = 0

compare.DN = 1
le bit compare.DN est effac
la valeur compare.POS est
efface
le bit result.DN est effac
la valeur result.POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

12-6

Instructions spciales (FBC, DDT, DTR, PID)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est

examine le bit
compare.EN

sortie
instruction
goto

compare.EN = 1

compare.EN = 0
compare.DN = 1

examine le bit
compare.DN

le bit compare.EN est


activ

sortie
instruction
goto

compare.DN = 0
le bit compare.ER est effac
le bit compare.FD est effac

oui

compare.LEN 0

non

exit

compare.POS < 0

non

oui

le bit compare.ER est activ

l'tat de sortie de la ligne


est vrai
comparaison
fin
page 12-7

Publication 1756-RM003F-FR-P - Mai 2002

sortie
instruction
goto

Instructions spciales (FBC, DDT, DTR, PID)

Condition

12-7

Action de la logique relais

comparaison

compare.POS
compare.LEN

oui

compare.POS = compare.LEN
le bit compare.DN est activ

sortie
instruction
goto
page 12-6

non
result.DN = 1
source[compare.POS]=
rfrence[compare.POS]

non

le bit compare.FD est


activ

le bit result.DN est effac


la valeur result.POS est
efface

examine le bit
result.DN

result.DN = 0

oui
compare.POS =
compare.POS + 1

oui
result.POS < 0

non

oui
result.LEN 0

non

oui
Result.POS > taille du
tableau de rsultat

dfaut majeur

le bit compare.ER est


activ

sortie
instruction
goto
page 12-6

non
result[result.POS] = compare.POS
result.POS = result.POS + 1

non

result.POS >
result.LEN

oui
le bit result.DN est activ

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

12-8

Instructions spciales (FBC, DDT, DTR, PID)

Exemple : Lorsqu'elle est active, l'instruction FBC compare la source


array_dint1 la rfrence array_dint2 et stocke les positions de
toutes les diffrences dans le rsultat array_dint3.

source array_dint1

rfrence
array_dint2

rsultat array_dint3

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

Dtection par diagnostic


(DDT)

12-9

L'instruction DDT compare les bits d'un tableau Source avec les bits
d'un tableau Rfrence pour dterminer les changements d'tat.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

DINT

point de
tableau

tableau comparer la rfrence


n'utilisez pas CONTROL.POS dans l'indice

Rfrence

DINT

point de
tableau

tableau comparer la source


n'utilisez pas CONTROL.POS dans l'indice

Rsultat

DINT

point de
tableau

tableau pour le stockage des rsultats


n'utilisez pas CONTROL.POS dans l'indice

Contrle de
comparaiso
n

CONTROL

structure

structure de contrle pour la comparaison

Longueur

DINT

immdiat

nombre de bits comparer

Position

DINT

immdiat

position en cours dans la source


la valeur initiale est gnralement 0

Contrle de
rsultat

CONTROL

structure

structure de contrle du rsultat

Longueur

DINT

immdiat

nombre d'emplacements de stockage dans le


rsultat

Position

DINT

immdiat

position en cours dans le rsultat


la valeur initiale est gnralement 0

ATTENTION

Utilisez des points diffrents pour la structure de


contrle de comparaison et la structure de contrle
de rsultat. L'utilisation du mme point pour les deux
peut entraner un fonctionnement imprvisible
risquant de dtriorer l'quipement et/ou de
provoquer des blessures.

Publication 1756-RM003F-FR-P - Mai 2002

12-10

Instructions spciales (FBC, DDT, DTR, PID)

Structure COMPARE
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction DDT est active.

.DN

BOOL

Le bit de fin est activ lorsque l'instruction DDT compare le dernier bit dans les tableaux
Source et Rfrence.

.FD

BOOL

Le bit trouv est activ chaque fois que l'instruction DDT enregistre une diffrence (opration
par opration) ou aprs l'enregistrement de toutes les diffrences (opration tout en une
scrutation).

.IN

BOOL

Le bit d'inhibition indique le mode de recherche DDT.


0 = mode tout
1 = mode une diffrence la fois

.ER

BOOL

Le bit d'erreur est activ si la comparaison .POS < 0, la comparaison .LEN < 0, le rsultat
.POS < 0 ou le rsultat .LEN < 0. L'instruction arrte l'excution jusqu' ce que le programme
efface le bit .ER.

.LEN

DINT

La valeur de longueur indique le nombre de bits comparer.

.POS

DINT

La valeur de position indique le bit en cours.

Structure RESULT
Mnmonique

Type de
donnes

Description

.DN

BOOL

Le bit de fin est activ lorsque le tableau Rsultat est plein.

.LEN

DINT

La valeur de longueur indique le nombre d'emplacements de stockage dans le tableau


Rsultat.

.POS

DINT

La valeur de position indique la position en cours dans le tableau Rsultat.

Description : Lorsqu'elle est active, l'instruction DDT compare les bits du tableau
Source avec ceux du tableau Rfrence, enregistre le numro de
chaque diffrence dans le tableau Rsultat et modifie la valeur du bit
de Rfrence afin qu'il corresponde la valeur du bit Source
correspondant.
L'instruction DDT fonctionne sur de la mmoire contigu.
La diffrence entre les instructions DDT et FBC est la suivante :
chaque fois que l'instruction DDT trouve une diffrence, elle modifie
le bit de rfrence afin qu'il corresponde au bit source. L'instruction
FBC ne change pas le bit de rfrence.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-11

Slection du mode de recherche


Pour dtecter

Slectionnez ce mode

Une diffrence la fois

Activez le bit .IN dans la structure de contrle de comparaison.


Chaque fois que l'tat d'entre de la ligne passe de faux vrai, l'instruction DDT recherche la
diffrence suivante entre les tableaux Source et Rfrence. Lorsqu'elle trouve une diffrence,
l'instruction active le bit .FD, enregistre la position de la diffrence et arrte l'excution.

Toutes les diffrences

Effacez le bit .IN dans la structure de contrle de comparaison.


Chaque fois que l'tat d'entre de la ligne passe de faux vrai, l'instruction DDT recherche
toutes les diffrences entre les tableaux Source et Rfrence.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Un dfaut majeur se produit si

Type du dfaut

Code du dfaut

Result.POS > taille du tableau de


rsultat

20

Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

le bit compare.EN est effac


le bit compare.FD est effac

examine le bit
compare.DN

compare.DN = 0

compare.DN = 1
le bit compare.DN est effac
la valeur compare.POS est
efface
le bit result.DN est effac
la valeur result.POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

12-12

Instructions spciales (FBC, DDT, DTR, PID)

Condition

Action de la logique relais

si l'tat d'entre de la ligne est

le bit compare.EN est effac


le bit compare.FD est effac

examine le bit
compare.DN

compare.DN = 1
le bit compare.DN est effac
la valeur compare.POS est
efface
le bit result.DN est effac
la valeur result.POS est efface

l'tat de sortie de la ligne


est rgl sur faux

fin

Publication 1756-RM003F-FR-P - Mai 2002

compare.DN = 0

Instructions spciales (FBC, DDT, DTR, PID)

Condition

12-13

Action de la logique relais

si l'tat d'entre de la ligne est

sortie
instruction
goto

compare.EN = 1

examine le bit
compare.EN

compare.EN = 0
le bit compare.EN est
activ

le bit compare.DN = 1

examine le bit
compare.DN

sortie
instruction
goto

le bit compare.DN = 0
le bit compare.ER est effac
le bit compare.FD est effac

oui

compare.LEN 0

non

exit

compare.POS < 0

oui

le bit compare.ER est activ

non
l'tat de sortie de la ligne
est vrai

sortie
instruction
goto

comparaison
fin
page 12-14

Publication 1756-RM003F-FR-P - Mai 2002

12-14

Instructions spciales (FBC, DDT, DTR, PID)

Condition

Action de la logique relais

comparaison

compare.POS
compare.LEN

oui

sortie
instruction
goto

compare.POS = compare.LEN
le bit compare.DN est activ

page 12-13
non
result.DN = 1
source[compare.POS]=
rfrence[compare.POS]

non

le bit compare.FD est


activ
rfrence[compare.POS] =
source[compare.POS]

le bit result.DN est effac


la valeur result.POS est
efface

examine le bit
result.DN

result.DN = 0

oui
compare.POS =
compare.POS + 1

oui
result.POS < 0

non

oui
result.LEN 0

non

oui
dfaut majeur

Result.POS > taille du


tableau de rsultat

le bit compare.ER est activ

sortie
instruction
goto
page 12-6

non
result[result.POS] = compare.POS
result.POS = result.POS + 1

non

result.POS
result.LEN

oui
le bit result.DN est activ

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

L'tat de sortie de la ligne est rgl sur faux.

Instructions spciales (FBC, DDT, DTR, PID)

12-15

Exemple : Lorsqu'elle est active, l'instruction DDT compare la source


array_dint1 la rfrence array_dint2 et stocke les positions de
toutes les diffrences dans le rsultat array_dint3. L'automate change
galement les bits diffrents dans la rfrence array_dint2 afin qu'ils
correspondent la source array_dint1.

source
array_dint1

rfrence (avant comparaison)


array_dint2

rsultat
array_dint3
rfrence (aprs comparaison)
array_dint2

Publication 1756-RM003F-FR-P - Mai 2002

12-16

Instructions spciales (FBC, DDT, DTR, PID)

Transition de donnes
(DTR)

L'instruction DTR passe la valeur Source par un masque et compare le


rsultat la valeur Rfrence.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

DINT

immdiat
point

tableau comparer la rfrence

Masque

DINT

immdiat
point

bits bloquer ou passer

Rfrence

DINT

point

tableau comparer la source

Description : L'instruction DTR passe la valeur Source par un masque et compare le


rsultat la valeur Rfrence. Elle crit galement la valeur Source
masque dans la valeur Rfrence pour la comparaison suivante. La
Source reste inchange.
Un 1 dans le masque signifie que le bit de donnes est pass. Un
0 dans le masque signifie que le bit de donnes est bloqu.
Lorsque la source masque est diffrente de la rfrence, l'tat de
sortie de la ligne devient vrai pendant une scrutation. Lorsque la
source masque est identique la Rfrence, l'tat de sortie de la
ligne est faux.

ATTENTION

La programmation en ligne avec cette instruction


peut tre risque. Si la valeur Rfrence est diffrente
de la valeur Source, l'tat de sortie de la ligne passe
vrai. Faites attention si vous insrez cette instruction
lorsque le processeur est en mode Excution (Run)
ou Excution distance (Remote Run).

Entre d'une valeur de masque immdiate


Lorsque vous entrez un masque, le logiciel de programmation passe
par dfaut des valeurs dcimales. Si vous voulez entrer un masque
l'aide d'un autre format, faites prcder la valeur du prfixe correct.

Publication 1756-RM003F-FR-P - Mai 2002

Prfixe

Description

16#

hexadcimal
par exemple : 16#0F0F

8#

octal
par exemple : 8#16

2#

binaire
par exemple : 2#00110011

Instructions spciales (FBC, DDT, DTR, PID)

12-17

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

pendant la pr-scrutation

Rfrence = Source ET Masque.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

Rfrence = Source ET Masque.


L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

source masque =
rfrence

non

la rfrence est gale la source masque


l'tat de sortie de la ligne est rgl sur vrai

oui

l'tat de sortie de la ligne


est rgl sur faux

fin

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

12-18

Instructions spciales (FBC, DDT, DTR, PID)

Exemple : Lorsqu'elle est active, l'instruction DTR masque value_1. S'il y a une
diffrence entre les deux valeurs, l'tat de sortie de la ligne est rgl
sur vrai.

exemple 1

exemple 2
Source
value_1

masque = 0FFF
0000111111111111

scrutation en
cours
scrutation
prcdente

0000111111111111

rfrence
value_2
0

scrutation en
cours

scrutation
prcdente

La ligne reste sur faux tant que la valeur d'entre


ne change pas.

La ligne reste sur faux pendant une scrutation


lorsqu'un changement est dtect.
13385

Un 0 dans un masque ne change pas le bit.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

Proportionnel, intgral et
driv (PID)

12-19

L'instruction PID commande une variable de procd, telle que dbit,


pression, temprature ou niveau.

Oprandes :
Logique relais

Oprande

Type

Format

Description

PID

PID

structure

structure PID

Variable de
procd

SINT
INT
DINT
REAL

point

valeur que vous voulez commander

Elment
Tieback

SINT
INT
DINT
REAL

immdiat
point

(facultatif) sortie d'une station manuelle/auto qui contourne la sortie de l'automate


Entrez 0 si vous ne voulez pas utiliser ce paramtre.

Variable de
contrle

SINT
INT
DINT
REAL

point

valeur qui va vers le dispositif de commande final (vanne, clapet, etc.)


Si vous utilisez la zone morte, la variable de contrle doit tre REAL ou elle sera force 0
lorsque l'erreur sera dans la zone morte.

Boucle matre
PID

PID

structure

(facultatif) point PID pour le PID matre


Si vous effectuez une commande en cascade et si ce PID est une boucle esclave, entrez le
nom du PID matre.Entrez 0 si vous ne voulez pas utiliser ce paramtre.

Bit de
maintien

BOOL

point

(en option) tat en cours du bit de maintien d'un canal de sorties analogiques 1756 pour
accepter le redmarrage sans -coups
Entrez 0 si vous ne voulez pas utiliser ce paramtre.

Valeur de
maintien

SINT
INT
DINT
REAL

point

(facultatif) valeur de retour de donnes d'un canal de sorties analogiques 1756 pour
accepter le redmarrage sans coups
Entrez 0 si vous ne voulez pas utiliser ce paramtre.

Point de
consigne

affichage de la valeur en cours du point de consigne

Variable de
procd

affichage de la valeur en cours de la variable de procd mise l'chelle

% de sortie

affichage de la valeur du pourcentage de sortie en cours

Texte structur
PID(PID,ProcessVariable,
Tieback,ControlVariable,
PIDMasterLoop,InholdBit,
InHoldValue);

Les oprandes sont les mmes que ceux de l'instruction PID en


logique relais. Indiquez cependant le point de consigne, la variable
de procd et le % de sortie en accdant aux membres .SP, .PV et
.OUT de la structure PID, plutt qu'en incluant des valeurs dans la
liste des oprandes.

Publication 1756-RM003F-FR-P - Mai 2002

12-20

Instructions spciales (FBC, DDT, DTR, PID)

Structure PID
Mnmonique

Type de
donnes

Description

.CTL

DINT

Le membre .CTL permet l'accs aux membres d'tat (bits) par un mot de 32 bits. L'instruction PID
active les bits 07 15.
Ce bit

est le membre

31

.EN

30

.CT

29

.CL

28

.PVT

27

.DOE

26

.SWM

25

.CA

24

.MO

23

.PE

22

.NDF

21

.NOBC

20

.NOZC

Ce bit

est le membre suivant, activ par l'instruction PID

15

.INI

14

.SPOR

13

.OLL

12

.OLH

11

.EWD

10

.DVNA

09

.DVPA

08

.PVLA

07

.PVHA

.SP

REAL

point de consigne

.KP

REAL

indpendant

gain proportionnel (sans unit)

dpendant

gain automate (sans unit)

indpendant

gain intgral (1/s)

dpendant

dure de rinitialisation (minutes par rptition)

indpendant

gain driv (secondes)

dpendant

frquence (minutes)

.KI
.KD

REAL
REAL

.BIAS

REAL

anticipation de vitesse ou % de dcalage

.MAXS

REAL

valeur maximum de mise l'chelle en units procd

.MINS

REAL

valeur minimum de mise l'chelle en units procd

.DB

REAL

units procd de zone morte

.SO

REAL

dfinition du % de sortie

.MAXO

REAL

limite de sortie maximale (% de sortie)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

Mnmonique

Type de
donnes

Description

.MINO

REAL

limite de sortie minimale (% de sortie)

.UPD

REAL

temps de rafrachissement de boucle (secondes)

.PV

REAL

valeur PV mise l'chelle

.ERR

REAL

valeur d'erreur mise l'chelle

.OUT

REAL

% de sortie

.PVH

REAL

limite d'alarme haute de la variable de procd

.PVL

REAL

limite d'alarme basse de la variable de procd

.DVP

REAL

limite d'alarme d'cart positif

.DVN

REAL

limite d'alarme d'cart ngatif

.PVDB

REAL

zone morte d'alarme de la variable de procd

.DVDB

REAL

zone morte d'alarme de dviation

.MAXI

REAL

valeur PV maximum (entre non mise l'chelle)

.MINI

REAL

valeur PV minimum (entre non mise l'chelle)

.TIE

REAL

valeur de tieback pour la commande manuelle

.MAXCV

REAL

valeur CV maximum (correspondant 100 %)

.MINCV

REAL

valeur CV minimum (correspondant 0 %)

.MINTIE

REAL

valeur de tieback minimum (correspondant 100 %)

.MAXTIE

REAL

valeur de tieback maximum (correspondant 0 %)

.DATA

REAL[17]

Le membre .DATA stocke :


Elment

Description

.DATA[0]

cumul intgral

.DATA[1]

valeur temporaire de lissage driv

.DATA[2]

valeur .PV prcdente

.DATA[3]

valeur .ERR prcdente

.DATA[4]

valeur .SP correcte prcdente

.DATA[5]

constante de mise l'chelle en pourcentage

.DATA[6]

constante de mise l'chelle .PV

.DATA[7]

constante de mise l'chelle drive

.DATA[8]

valeur .KP prcdente

.DATA[9]

valeur .KI prcdente

.DATA[10]

valeur .KD prcdente

.DATA[11]

gain dpendant .KP

.DATA[12]

gain dpendant .KI

.DATA[13]

gain dpendant .KD

.DATA[14]

valeur .CV prcdente

.DATA[15]

constante .CV de non-mise l'chelle

.DATA[16]

constante de non-mise l'chelle de tieback

.EN

BOOL

activ

.CT

BOOL

type de cascade (0=esclave ; 1=matre)

12-21

Publication 1756-RM003F-FR-P - Mai 2002

12-22

Instructions spciales (FBC, DDT, DTR, PID)

Mnmonique

Type de
donnes

Description

.CL

BOOL

boucle en cascade (0=non ; 1=oui)

.PVT

BOOL

suivi de variable de procd (0=non ; 1=oui)

.DOE

BOOL

driv de (0=PV; 1=erreur)

.SWM

BOOL

mode logiciel manuel (0=non - auto ; 1=oui - logiciel manuel)

.CA

BOOL

Action de contrle pour le calcul de l'erreur (0 signifie E=SP-PV ; 1 signifie E=PV-SP)

.MO

BOOL

mode station (0=automatique ; 1=manuel)

.PE

BOOL

quation PID (0=indpendant ; 1=dpendant)

.NDF

BOOL

pas de lissage de la drive


(0=filtre de lissage de la drive activ ; 1=filtre de lissage de la drive dsactiv)

.NOBC

BOOL

pas de calcul sur retour de dcalage


(0=calcul sur retour de dcalage activ ; 1=calcul sur retour de dcalage dsactiv)

.NOZC

BOOL

pas de passage par zro pour zone morte


(0=la zone morte passe par zro ; 1=la zone morte ne passe pas par zro)

.INI

BOOL

PID initialis (0=non ; 1=oui)

.SPOR

BOOL

consigne hors limites (0=non ; 1=oui)

.OLL

BOOL

CV infrieur la limite de sortie minimum (0=non ;1=oui)

.OLH

BOOL

CV suprieur la limite de sortie maximum (0=non ; 1=oui)

.EWD

BOOL

erreur dans les limites de la zone morte (0=non ; 1=oui)

.DVNA

BOOL

alarme de drivation basse (0=non ; 1=oui)

.DVPA

BOOL

alarme de drivation haute (0=non ; 1=oui)

.PVLA

BOOL

alarme PV basse (0=non ; 1=oui)

.PVHA

BOOL

alarme PV haute (0=non ; 1=oui)

Description : L'instruction PID reoit gnralement la variable de procd (PV) d'un


module d'entres analogiques et module une sortie de variable de
contrle (CV) sur un module de sorties analogiques, de faon
maintenir la variable de procd au point de consigne dsir.
Le bit .EN indique l'tat de l'excution. Il est activ lorsque l'tat
d'entre de la ligne passe de faux vrai. Il est effac lorsque l'tat
d'entre de la ligne devient faux. L'instruction PID n'utilise pas de bit
.DN. Elle excute toutes les scrutations tant que l'tat d'entre de la
ligne est vrai.
bit .EN

tat de la ligne
excution de l'instruction PID

Indicateurs d'tat arithmtique : non affects

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-23

Conditions d'erreur :
IMPORTANT

Dans le processeur PLC-5, ces dfauts taient des


dfauts majeurs.

Un dfaut mineur se produit si

Type du dfaut

Code du dfaut

.UPD 0

35

point de consigne hors limites

36

Excution :
Condition

Action

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction excute la boucle PID.

L'instruction excute la boucle PID.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Configuration d'une
instruction PID

Aprs avoir entr l'instruction PID et indiqu sa structure, utilisez les


onglets de configuration pour dfinir le fonctionnement de cette
instruction.

Cliquez ici pour configurer


l'instruction PID

Publication 1756-RM003F-FR-P - Mai 2002

12-24

Instructions spciales (FBC, DDT, DTR, PID)

Spcification des rglages


Slectionnez longlet Rglage. Les modifications prennent effet ds
que vous cliquez sur un autre champ, sur OK, sur Appliquer ou que
vous appuyez sur Entre.
Dans ce champ

Indiquez

Setpoint (SP) (Point de consigne (SP))

Entrez une valeur de point de consigne (.SP).

Set output % (Dfinir % de sortie)

Entrez un pourcentage de sortie (.SO).


En mode logiciel manuel, cette valeur est utilise pour la sortie.
En mode auto, cette valeur affiche le % de sortie.

Output bias (Dcalage de sortie)

Entrez un pourcentage de dcalage de sortie (.BIAS).

Proportional gain (Kp) (Gain proportionnel (Kp)) Entrez le gain proportionnel (.KP).
Pour les gains indpendants, c'est le gain proportionnel (sans unit).
Pour les gains dpendants, c'est le gain automate (sans unit).
Integral gain (Ki) (Gain intgral (Ki)

Entrez le gain intgral (.KI).


Pour les gains indpendants, c'est le gain intgral (1/sec).
Pour les gains dpendants, c'est la dure de rinitialisation (minutes par rptition).

Derivative time (Kd) (Temps driv (Kd))

Entrez le gain driv (.KD).


Pour les gains indpendants, c'est le gain driv (secondes).
Pour les gains dpendants, c'est la frquence (minutes).

Manual mode (Mode manuel)

Slectionnez manuel (.MO) ou logiciel manuel (.SWM).


Si les deux sont slectionns, le mode manuel supplante le mode logiciel manuel.

Dfinition de la configuration
Slectionnez l'onglet Configuration. Vous devez cliquer sur OK ou sur
Appliquer pour que les modifications prennent effet.
Dans ce champ

Indiquez

PID equation (Equation PID)

Slectionnez les gains indpendants ou dpendants (.PE).


Utilisez les gains indpendants quand vous voulez que les trois gains (P, I et D)
fonctionnent indpendamment. Utilisez les gains dpendants quand vous voulez un
gain automate global qui affecte les trois termes (P, I et D).

Control action (Action de contrle)

Slectionnez E=PV-SP ou E=SP-PV comme sens de calcul de l'erreur (.CA).

Derivative of (Driv de)

Slectionnez PV ou erreur (.DOE).


Utilisez la drive de PV pour liminer les pics de sortie rsultant des modifications
de point de consigne. Utilisez la drive de l'erreur pour obtenir des rponses
rapides aux changements de point de consigne lorsque l'algorithme peut tolrer les
oscillations.

Loop update time (Heure de mise jour de la


boucle)

Entrez la frquence de d'actualisation (.UPD) de l'instruction.

CV high limit (Limite haute de CV)

Entrez une limite haute pour la variable de contrle (.MAXO).

CV low limit (Limite basse de CV)

Entrez une limite basse pour la variable de contrle (.MINO).

Deadband value (Valeur de zone morte)

Entrez une valeur de zone morte (.DB).

No derivative smoothing (Pas de lissage driv)

Activez ou dsactivez cette slection (.NDF).

No bias calculation (Pas de calcul de dcalage)

Activez ou dsactivez cette slection (.NOBC).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

Dans ce champ

Indiquez

No zero crossing in deadband (Pas de passage par


zro en zone morte)

Activez ou dsactivez cette slection (.NOZC).

PV tracking (Suivi de PV)

Activez ou dsactivez cette slection (.PVT).

Cascade loop (Boucle en cascade)

Activez ou dsactivez cette slection (.CL).

Cascade type (Type de cascade)

Si Cascade loop est activ, slectionnez esclave ou matre (.CT).

12-25

Dfinition des alarmes


Slectionnez l'onglet Alarmes. Vous devez cliquer sur OK ou sur
Appliquer pour que les modifications prennent effet.
Dans ce champ

Indiquez

PV high (PV haute)

Entrez une valeur d'alarme PV haute (.PVH).

PV low (PV basse)

Entrez une valeur d'alarme PV basse (.PVL).

PV deadband (Zone morte PV)

Entrez une valeur de zone morte d'alarme PV (.PVDB).

Positive deviation (Dviation positive)

Entrez une valeur d'cart positif (.DVP).

Negative deviation (Dviation ngative)

Entrez une valeur d'cart ngatif (.DVN).

Deviation deadband (Zone morte de dviation) Entrez une valeur de zone morte d'alarme de dviation (.DVDB).

Dfinition de la mise l'chelle


Slectionnez l'onglet Mise l'chelle. Vous devez cliquer sur OK ou
sur Appliquer pour que les modifications prennent effet.
Dans ce champ

Indiquez

PV unscaled maximum (Variable de procd


maximum non mise l'chelle)

Entrez une valeur de PV maximum (.MAXI) qui soit gale la valeur maximum non mise
l'chelle reue du canal d'entres analogiques pour la valeur PV.

PV unscaled minimum (Variable de procd


minimum non mise l'chelle)

Entrez une valeur de PV minimum (.MINI) qui soit gale la valeur minimum non mise
l'chelle reue du canal d'entres analogiques pour la valeur PV.

PV engineering units maximum (Variable de


procd maximum en units procd)

Entrez les units procd maximum correspondant .MAXI (.MAXS).

PV engineering units minimum (Variable de


procd minimum en units procd)

Entrez les units procd minimum correspondant .MINI (.MINS).

CV maximum (Variable de contrle maximum)

Entrez une valeur de CV maximum correspondant 100 % (.MAXCV).

CV minimum (Variable de contrle minimum)

Entrez une valeur de CV minimum correspondant 0 % (.MINCV).

Tieback maximum ( Elment Tieback


maximum))

Entrez une valeur de tieback maximum (.MAXTIE) qui soit gale la valeur non mise
l'chelle maximum reue du canal d'entres analogiques pour la valeur de tieback.

Tieback minimum (Elment Tieback


minimum)

Entrez une valeur de tieback minimum (.MINTIE) qui soit gale la valeur non mise
l'chelle minimum reue du canal d'entres analogiques pour la valeur de tieback.

PID Initialized (PID initialis)

Si vous changez les constantes de mise l'chelle en mode Excution (Run), dsactivez
cette option pour rinitialiser les valeurs de non-mise l'chelle internes (.INI).

Publication 1756-RM003F-FR-P - Mai 2002

12-26

Instructions spciales (FBC, DDT, DTR, PID)

Utilisation des instructions


PID

La commande en boucle ferme PID maintient une variable de


procd un point de consigne voulu. L'illustration suivante donne
un exemple de dbit/niveau de liquide :
point de consigne

erreur

quation PID

+
dbit
variable de procd

variable de
contrle

dtecteur de
niveau
14271

Dans l'exemple ci-dessus, le niveau du rservoir est compar au point


de consigne. Si le niveau est suprieur au point de consigne,
l'quation PID augmente la variable de contrle et la vanne de sortie
du rservoir s'ouvre, faisant baisser le niveau du rservoir.
L'quation PID utilise dans l'instruction PID est une quation avec
possibilit d'utiliser les gains indpendants ou dpendants. Lors de
l'utilisation des gains indpendants, les gains proportionnels,
intgraux et drivs n'affectent respectivement que leurs termes
proportionnels, intgraux et drivs. Lors de l'utilisation des gains
dpendants, le gain proportionnel est remplac par un gain automate
qui affecte les trois termes. Vous pouvez utiliser les deux formes
d'quation pour effectuer le mme type de commande. Ces deux

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-27

types d'quation sont fournis uniquement pour vous permettre


d'utiliser le type que vous connaissez le mieux.
Option de gains

Driv de

Gains dpendants
(standard ISA)

erreur (E)

Equation
t

CV = K C

dE
1
E + ---- Edt + T d ------- + BIAS
dt
Ti
0

variable de procd (PV)

E = SP - PV
t

CV = K C

1
dPV
E + ---- Edt T d ----------- + BIAS
Ti
dt
0

E = PV - SP
t

dPV
1
CV = K C E + ---- Edt + T d ----------- + BIAS
dt
Ti
0

Gains indpendants

erreur (E)
t

dE
CV = K P E + K i Edt + Kd ------- + BIAS
dt
0

variable de procd (PV)

E = SP - PV

dPV
CV = K P E + Ki Edt K d ----------- + BIAS
dt
0

E = PV - SP

dPV
CV = K P E + K i Edt + Kd ----------- + BIAS
dt
0

O :
Variable

Description

KP

gain proportionnel (sans unit)


Kp = Kc sans unit

Ki

gain intgral (secondes -1)


Pour convertir Ki (gain intgral) en Ti (dure de rinitialisation), utilisez :
KC
K i = ---------60T i

Kd

gain driv (secondes)


Pour convertir Kd (gain driv) en Td (frquence), utilisez :
Kd = Kc (Td) 60

KC

gain automate (sans unit)

Ti

dure de rinitialisation (minutes/rptition)

Td

frquence (minutes)

Publication 1756-RM003F-FR-P - Mai 2002

12-28

Instructions spciales (FBC, DDT, DTR, PID)

Variable

Description

SP

point de consigne

PV

variable de procd

erreur [(SP-PV) ou (PV-SP)]

BIAS

anticipation de vitesse ou dcalage

CV

variable de contrle

dt

frquence de rafrachissement de boucle

Si vous ne voulez pas utiliser un terme particulier de l'quation PID,


rglez son gain sur zro. Par exemple, si vous ne voulez pas d'action
drive, rglez Kd ou Td sur zro.

Anti-saturation de l'action intgrale et transfert sans -coup de


manuel auto
L'instruction PID vite automatiquement la saturation de la fonction
intgrale en empchant le terme intgral d'tre cumul lorsque la
sortie CV atteint ses valeurs maximum ou minimum, telles que rgles
par .MAXO et .MINO. Le terme intgral cumul reste fig jusqu' ce
que la sortie CV passe en dessous de sa limite maximum ou augmente
au-dessus de sa limite minimum. Le cumul intgral normal reprend
alors automatiquement.
L'instruction PID accepte deux modes de commande manuels :
Mode de commande manuel

Description

logiciel manuel (.SWM)

aussi appel mode de rglage des sorties


permet l'utilisateur de rgler le % des sorties partir du logiciel
La valeur de rglage des sorties (.SO) est utilise comme sortie de la boucle. La valeur de rglage
des sorties vient gnralement d'une entre oprateur de dispositif d'interface oprateur.

manuel (.MO)

prend la valeur de tieback comme entre et ajuste ses variables internes pour gnrer la mme
valeur la sortie
L'entre tieback de l'instruction PID est mise l'chelle de 0 100 % selon les valeurs de .MINTIE et
.MAXTIE : elle est utilise comme sortie de la boucle. L'entre tieback vient gnralement d'une
sortie d'une station manuelle/auto matrielle qui contourne la sortie de l'automate.
Remarque : le mode manuel supplante le mode logiciel manuel si les deux bits de mode sont
activs.

L'instruction PID fournit galement automatiquement les transferts


sans -coups partir du mode logiciel manuel vers le mode auto ou
partir du mode manuel vers le mode auto. L'instruction PID
rtrocalcule la valeur du terme de cumul intgral requis pour
permettre la sortie CV de suivre la valeur du rglage de sortie (.SO)
en mode logiciel manuel ou l'entre tieback en mode manuel. De
cette faon, lorsque la boucle passe en mode auto, la sortie CV
commence la valeur de rglage de sortie ou tieback et aucun -coup
ne se produit dans la valeur de sortie.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-29

L'instruction PID peut galement fournir automatiquement un transfert


sans -coups de manuel auto, mme si la commande intgrale n'est
pas utilise (ex. Ki = 0). Dans ce cas, l'instruction modifie le terme
.BIAS pour permettre la sortie CV de suivre la valeur de rglage de
sortie ou la valeur de tieback. Lorsque la commande automatique
reprend, le terme .BIAS garde sa dernire valeur. Vous pouvez
dsactiver le rtrocalcul du terme .BIAS en activant le bit .NOBC dans
la structure de donnes PID. Remarquez que si vous mettez .NOBC
sur vrai, l'instruction PID ne fournit plus de transfert sans -coups au
passage de manuel auto lorsque la commande intgrale n'est pas
utilise.

Temporisation de l'instruction PID


L'instruction PID et l'chantillonnage de la variable de procd
doivent tre rafrachis rgulirement. La frquence du rafrachissement
est lie au procd physique que vous commandez. Pour les boucles
trs lentes, telles que les boucles de temprature, un rafrachissement
toutes les secondes, voire plus, est gnralement suffisant pour
obtenir une commande correcte. Les boucles plus rapides, telles que
les boucles de pression ou de dbit, peuvent demander un
rafrachissement toutes les 250 millisecondes. Seuls des cas rares, tels
que la commande de tension sur un drouleur, demandent des
rafrachissements de boucle toutes les 10 millisecondes ou moins.
L'instruction PID utilisant une base de temps dans ses calculs, vous
devez synchroniser l'excution de cette instruction avec un
chantillonnage de la variable de procd (PV).
La faon la plus facile d'excuter l'instruction PID est de mettre
l'instruction PID dans une tche priodique. Rglez la frquence de
rafrachissement de boucle (.UPD) pour qu'elle soit gale la
frquence de la tche priodique et assurez-vous que l'instruction PID
est excute chaque scrutation de cette tche.

Logique relais

Publication 1756-RM003F-FR-P - Mai 2002

12-30

Instructions spciales (FBC, DDT, DTR, PID)

Texte structur
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold,
Local:1:I.Ch4Data);

Lorsque vous utilisez une tche priodique, assurez-vous que l'entre


analogique utilise pour la variable de procd est mise jour avec le
processeur une frquence bien plus rapide que la frquence de la
tche priodique. Idalement, la variable de procd doit tre
envoye au processeur au moins cinq dix fois plus rapidement que
la tche priodique. Ceci permet de minimiser la diffrence de temps
entre les chantillonnages rels de la variable de procd et
l'excution de la boucle PID. Par exemple, si la boucle PID est dans
une tche priodique de 250 millisecondes, utilisez une frquence de
rafrachissement de boucle de 250 millisecondes (.UPD = .25) et
configurez le module d'entres analogiques pour produire des
donnes au moins toutes les 25 50 ms.
Une autre mthode moins prcise pour l'excution d'une instruction
PID consiste placer cette instruction dans une tche continue et
utiliser un bit de fin de temporisation pour dclencher l'excution de
l'instruction PID.

Logique relais

Texte structur
PID_timer.pre := 1000
TONR(PID_timer);
IF PID_timer.DN THEN
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-31

Dans cette mthode, la frquence de rafrachissement de boucle pour


l'instruction PID doit tre gale au prrglage du temporisateur.
Comme pour l'emploi d'une tche priodique, vous devez rgler le
module analogique afin qu'il produise la variable de procd une
frquence bien plus rapide que la frquence de rafrachissement de
boucle. Vous ne devez utiliser la mthode temporisateur pour
l'excution PID de boucles qu'avec des frquences de
rafrachissement correspondant au moins plusieurs fois la dure
d'excution de la tche continue dans le cas le plus dfavorable.
La faon la plus prcise d'excuter l'instruction PID est d'utiliser la
fonction d'chantillonnage en temps rel (RTS) des modules d'entres
analogiques. Le module d'entres analogiques chantillonne ses
entres la frquence d'chantillonnage en temps rel que vous
dterminez lorsque vous configurez le module. Lorsque la priode
d'chantillonnage en temps rel du module expire, il rafrachit ses
entres et met jour un horodatage cyclique (reprsent par le
membre .RollingTimestamp de la structure de donnes d'entres
analogiques) produit par le module.
L'horodatage va de 0 32 767 millisecondes. Surveillez l'horodatage.
Lorsqu'il change, un nouvel chantillon de variable de procd a t
reu. Chaque fois que l'horodatage change, excutez l'instruction PID
une fois. Comme l'chantillon de variable de procd est gr par le
module d'entres analogiques, la frquence d'chantillonnage des
entres est trs prcise et la frquence de rafrachissement de boucle
utilise par l'instruction PID doit tre gale la dure RTS du module
d'entres analogiques.
Pour ne pas manquer d'chantillons de la variable de procd,
excutez votre logique une frquence suprieure la dure du RTS.
Par exemple, si la dure du RTS est de 250 ms, vous pouvez mettre la
logique PID dans une tche priodique qui s'excute toutes les
100 ms pour tre sr de ne pas rater un chantillon. Vous pouvez
mme placer la logique PID dans une tche continue, dans la mesure
o vous vous assurez que la logique sera mise jour plus
frquemment que toutes les 250 millisecondes.
Un exemple de la mthode d'excution RTS est donn ci-dessous.
L'excution de l'instruction PID dpend de la rception de nouvelles
donnes d'entres analogiques. Si le module d'entres analogiques est
dfectueux ou retir, l'automate cesse de recevoir les horodatages
cycliques et la boucle PID stoppe son excution. Vous devez surveiller
le bit d'tat de l'entre analogique PV et si son tat est incorrect, vous
devez forcer la boucle en mode logiciel manuel et excuter la boucle
chaque scrutation. Ceci permet l'oprateur de changer la sortie de
la boucle PID manuellement.

Publication 1756-RM003F-FR-P - Mai 2002

12-32

Instructions spciales (FBC, DDT, DTR, PID)

Logique relais

Texte structur
IF (Local:0:I.Ch0Fault) THEN
TIC101.SWM [:=] 1;
ELSE
TIC101.SWM := 0;
END_IF;
IF (Local:0:I.RollingTimestamp<>PreviousTimestamp) OR
(Local:0:I.Ch0Fault) THEN
PreviousTimestamp := Local:0:I.RollingTimestamp;
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);
END_IF;

Redmarrage sans -coups


L'instruction PID peut dialoguer avec les modules de sorties
analogiques 1756 pour permettre un redmarrage sans -coups,
lorsque l'automate passe du mode Programme (Program) au mode
Excution (Run) ou lorsqu'il dmarre.
Lorsqu'un module de sorties analogiques 1756 perd la communication
avec l'automate ou dtecte que l'automate est en mode Programme, le
module de sorties analogiques rgle ses sorties sur les valeurs d'tat
de dfaut que vous avez indiques lors de la configuration du
module. Lorsque l'automate revient au mode Excution ou rtablit la
communication avec le module de sorties analogiques, vous pouvez
demander l'instruction PID de remettre automatiquement sa variable
de contrle de sortie la mme valeur que la sortie analogique,
l'aide du bit de maintien et des paramtres de la valeur de maintien de
l'instruction PID.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-33

Pour activer le redmarrage sans -coups :


Faites ceci

Dtails

Configurez le canal du module de sorties


analogiques 1756 qui reoit la variable de contrle
de l'instruction PID

Slectionnez la case Maintenir pour initialisation sur l'cran des proprits du


canal spcifique du module.
Ceci indique au module de sorties analogiques que lorsque l'automate retourne au
mode Excution (Run) ou rtablit la communication avec le module, le module doit
garder la sortie analogique sa valeur en cours jusqu' ce que la valeur envoye par
l'automate corresponde ( 0,1 % prs) la valeur en cours utilise par le canal de
sorties. La sortie de l'automate augmente jusqu' la valeur de sortie en cours en
utilisant le terme .BIAS. Cet effet de rampe est similaire au transfert sans -coups
automatique.

Entrez le point du bit de maintien et le point de la


valeur de maintien dans l'instruction PID

Le module de sorties analogiques 1756 renvoie deux valeurs pour chaque canal de
sa structure de donnes d'entre. Lorsqu'il est vrai, le bit d'tat de maintien
(.Ch2InHold, par exemple) indique que le canal de sorties analogiques garde sa
valeur. La valeur de retour des donnes (.Ch2Data, par exemple) indique la valeur de
sortie en cours en units procd.
Entrez le point du bit d'tat de maintien comme paramtre du bit de maintien de
l'instruction PID. Entrez le point de la valeur de retour des donnes comme
paramtre de la valeur de maintien.
Lorsque le bit de maintien devient vrai, l'instruction PID dplace la valeur de
maintien dans la variable de contrle de sortie, puis est rinitialise pour permettre
un redmarrage sans -coups cette valeur. Lorsque le module de sorties
analogiques reoit cette valeur de l'automate, il dsactive le bit d'tat de maintien,
ce qui permet l'instruction PID d'effectuer la commande normalement.

Lissage de la drive
Le calcul de la drive est amlior par un filtre de lissage. Ce filtre
numrique passe-bas de premier ordre aide minimiser les grands
pics de terme driv produits par les parasites dans la PV. Ce lissage
est plus important avec les valeurs plus leves du gain driv. Vous
pouvez dsactiver le lissage de la drive si votre processus demande
de grandes valeurs de gain driv (Kd > 10, par exemple). Pour
dsactiver le lissage de la drive, slectionnez l'option Pas de
lissage driv dans l'onglet Configuration ou activez le bit .NDF dans
la structure PID.

Configuration de la zone morte


La zone morte rglable permet de slectionner une plage d'erreurs
au-dessus et en-dessous du point de consigne, de sorte que la sortie
ne change pas tant que l'erreur demeure dans cette plage. La zone
morte permet de contrler le degr de correspondance de la variable
de procd et du point de consigne, sans changer la sortie. La zone

Publication 1756-RM003F-FR-P - Mai 2002

12-34

Instructions spciales (FBC, DDT, DTR, PID)

morte aide galement minimiser l'usure de votre dispositif de


commande.

zone morte +
point de consigne

erreur dans la plage de la zone morte

zone morte -

dure

41026

Le passage par zro est une commande de zone morte qui permet
l'instruction d'utiliser l'erreur pour les calculs, depuis le moment o la
variable de procd traverse la zone morte jusqu'au moment o elle
traverse le point de consigne. Une fois que la variable de procd
traverse le point de consigne (l'erreur passe par zro et change de
signe) et tant qu'elle reste dans la zone morte, la sortie ne change
pas.
La zone morte s'tend au-dessus et en-dessous du point de consigne
selon la valeur que vous indiquez. Entrez zro pour inhiber la zone
morte. La zone morte a les mmes units d'chelle que le point de
consigne. Vous pouvez utiliser la zone morte sans le passage par zro
en slectionnant Pas de passage par zro en zone morte dans
l'onglet Configuration ou en activant le bit .NOZC dans la structure
PID.
Si vous utilisez la zone morte, la variable de contrle doit tre REAL
ou elle sera force 0 lorsque l'erreur sera dans la zone morte.

Utilisation de la limite de sortie


Vous pouvez activer une limite de sortie (pourcentage de sortie) sur la
sortie de commande. Lorsque l'instruction dtecte que la sortie a
atteint une limite, elle active une alarme et empche la sortie de
dpasser la limite infrieure ou suprieure.

Anticipation de vitesse ou dcalage de sortie


Vous pouvez anticiper une perturbation du systme en mettant la
valeur .BIAS dans la valeur d'anticipation de vitesse/dcalage de
l'instruction PID.
La valeur d'anticipation reprsente une perturbation introduite dans
l'instruction PID avant qu'elle ait eu l'occasion de changer la variable
de procd. L'anticipation est souvent utilise pour contrler des
Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-35

applications avec dphasage de transport. Par exemple, une valeur


d'anticipation reprsentant eau froide verse dans mlange chaud
peut activer la valeur de sortie plus rapidement que le changement de
la variable de procd d au mlange.
Une valeur d'anticipation est gnralement utilise lorsque la
commande intgrale n'est pas utilise. Dans ce cas, la valeur
d'anticipation peut tre ajuste pour maintenir la sortie dans la plage
requise, afin de garder la variable de procd prs du point de
consigne.

Mises de boucles en cascade


L'instruction PID met deux boucles en cascade en attribuant la sortie
en pourcentage de la boucle matre au point de consigne de la boucle
esclave. La boucle esclave convertit automatiquement la sortie de la
boucle matre en units procd correctes pour le point de consigne
de la boucle esclave, en fonction des valeurs de la boucle esclave
pour .MAXS et .MINS.

Logique relais

Texte structur
PID(master,pv_master,0,cv_master,0,0,0);
PID (slave,pv_slave,0,cv_slave,master,0,0);

Contrle de ratio
Vous pouvez maintenir deux valeurs dans un ratio en utilisant ces
paramtres :
valeur non contrle ;
valeur contrle (le point de consigne rsultant devant tre
utilis par l'instruction PID) ;
ratio entre ces deux valeurs.

Publication 1756-RM003F-FR-P - Mai 2002

12-36

Instructions spciales (FBC, DDT, DTR, PID)

Logique relais

Texte structur
pid_2.sp := uncontrolled_flow * ratio
PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);

Publication 1756-RM003F-FR-P - Mai 2002

Pour ce paramtre de multiplication

Entrez cette valeur

destination

valeur contrle

source A

valeur non contrle

source B

ratio

Instructions spciales (FBC, DDT, DTR, PID)

Thorie PID

12-37

Les illustrations suivantes montrent le droulement d'instructions PID.

Processus PID
SP
affich en
units procd

Erreur affiche
en
units procd

A/M Logiciel
OU
A/M Station oprateur

A/M Logiciel

SP-PV

Auto
+

SP

% dcalage
de sortie

Action de
contrle
Conversion des
units en %

(Erreur)
-

PV-SP

PVT

Calcul PID

(Sortie%)

Auto

Erreur X 100
max. UP-min. UP

-1

Manuel

Conversion % en units CV

Auto
Limite de
sortie

Manuel

Non

CV%(maxcv-mincv)
100

Manuel

Dfinition %
de sortie

PV
affiche en
units procd

Oui

Dfinition %
de sortie

A/M Station
oprateur

CV
+ mincv

Sortie (CV)
affiche en %
d'units procd

Conversion des binaires en units


procd
(PV-min.)(max. UP-min. UP)
+ min. UP
max.-min.

Conversion units Tieback en %


tieback-mintie
maxtie-mintie

x 100

PV

Processus PID avec boucles matre/esclave


Boucle
matre

A/M Logiciel
OU
A/M Station oprateur

% dcalage
de sortie

Action de
contrle

A/M Logiciel
Auto
SP

SP-PV
(Erreur)

+
-

-1

Manuel

Conversion des
units en %

Calcul PID

(Sortie%)

A/M Station
oprateur

Auto

Erreur X 100
max. UP-min. UP

PV-SP

PVT
Non

Auto
Dfinition %
de sortie

(Sortie

Limite de
sortie

Manuel

Dfinition %
de sortie

Manuel
A/M Logiciel

Oui
Auto
Conversion des binaires en units
procd
(PV-min.)(max. UP-min. UP)
+ min. UP
max.-min.

Boucle
esclave

(Sortie matre)

Conversion des
units en %
Erreur X 100
max. UP-min. UP

SP
PV

Manuel
Manuel

Les lments rfrencs dans cette case


sont des paramtres, des units et des
modes en fonction de leur appartenance
la boucle esclave dsigne.

PV
% dcalage
de sortie

Action de
contrle
Conversion % en
.SP
units procd
+
X (max. UP-min. UP)
+ min. UP
100

SP-PV
-1

PV-SP

A/M Logiciel
Conversion des
units en %
Erreur X 100
max. UP-min. UP

Calcul PID

A/M Station
oprateur

Auto
Auto

Dfinition %
de sortie

Conversion des binaires en units


procd

Conversion % en units CV
Limite de
sortie

Manuel
Manuel

Dfinition %
de sortie

CV%(maxcv-mincv)
100

+ mincv

(PV-min.)(max. UP-min. UP)

max.-min.

+ min. UP

Conversion units
Tieback en %
tieback-mintie
maxtie-mintie

x 100

PV

Publication 1756-RM003F-FR-P - Mai 2002

12-38

Instructions spciales (FBC, DDT, DTR, PID)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

13

Instructions trigonomtriques
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Introduction

Les instructions trigonomtriques valuent les oprations


arithmtiques l'aide d'oprations trigonomtriques.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

trouver le sinus d'une valeur

SIN

logique relais
texte structur
bloc fonctionnel

13-2

trouver le cosinus d'une valeur

COS

logique relais
texte structur
bloc fonctionnel

13-4

trouver la tangente d'une valeur

TAN

logique relais
texte structur
bloc fonctionnel

13-6

trouver le sinus d'arc d'une valeur

ASN
ASIN(1)

logique relais
texte structur
bloc fonctionnel

13-8

trouver le cosinus d'arc d'une valeur

ACS
ACOS(1)

logique relais
texte structur
bloc fonctionnel

13-10

trouver la tangente d'arc d'une valeur

ATN
ATAN(1)

logique relais
texte structur
bloc fonctionnel

13-12

(1)

Texte structur uniquement.

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de prcision et un arrondissement des valeurs peuvent se produire et
l'instruction est plus longue excuter. Vrifiez le bit de dpassement
(S:V) pour voir si le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

13-2

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Sinus (SIN)

L'instruction SIN prend le sinus de la valeur Source (en radians) et


stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le sinus de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := SIN(source);

Utilisez SIN comme une fonction. Cette fonction calcule le sinus de


source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point SIN

FBD_MATH_ADVANCED

structure

structure SIN

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure ou gale -205 887,4 (-2 x 215) et
infrieure ou gale 205 887,4 (2 x 215). La valeur rsultante dans la
Destination est toujours suprieure ou gale -1 et infrieure ou gale
1.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-3

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le sinus de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le sinus de value et placer le rsultat dans result.


Logique relais

Texte structur
result := SIN(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-4

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Cosinus (COS)

L'instruction COS prend le cosinus de la valeur Source (en radians) et


stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le cosinus de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := COS(source);

Utilisez COS comme une fonction. Cette fonction calcule le cosinus de


source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point COS

FBD_MATH_ADVANCED

structure

structure COS

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure ou gale -205 887,4 (-2 x 215) et
infrieure ou gale 205 887,4 (2 x 215). La valeur rsultante dans la
Destination est toujours suprieure ou gale -1 et infrieure ou gale
1.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-5

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le cosinus de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le cosinus de value et placer le rsultat dans result.


Logique relais

Texte structur
result := COS(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-6

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Tangente (TAN)

L'instruction TAN prend la tangente de la valeur Source (en radians) et


stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche la tangente de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := TAN(source);

Utilisez TAN comme une fonction. Cette fonction calcule la tangente


de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point TAN

FBD_MATH_ADVANCED

structure

structure TAN

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure ou gale -102 943,7(-2 x 214) et


infrieure ou gale 102 943,7 (2 x 214).

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-7

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule la tangente de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer la tangente de value et placer le rsultat dans result.


Logique relais

Texte structur
result := TAN(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-8

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Sinus d'arc (ASN)

L'instruction ASN prend le sinus d'arc de la valeur Source et stocke le


rsultat dans la Destination (en radians).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le sinus d'arc de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := ASIN(source);

Utilisez ASIN comme une fonction. Cette fonction calcule le sinus


d'arc de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point ASN

FBD_MATH_ADVANCED

structure

structure ASN

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure ou gale -1 et infrieure ou gale 1.


La valeur rsultante dans la Destination est toujours suprieure ou
gale -/2 et infrieure ou gale /2 (o = 3,141593).

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-9

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le sinus d'arc de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le sinus d'arc de value et placer le rsultat dans result.


Logique relais

Texte structur
result := ASIN(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-10

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Cosinus d'arc (ACS)

L'instruction ACS prend le cosinus d'arc de la valeur Source et stocke


le rsultat dans la Destination (en radians).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le cosinus d'arc de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := ACOS(source);

Utilisez ACOS comme une fonction. Cette fonction calcule le cosinus


d'arc de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point ACS

FBD_MATH_ADVANCED

structure

structure ACS

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure ou gale -1 et infrieure ou gale 1.


La valeur rsultante dans la Destination est toujours suprieure ou
gale 0 ou infrieure ou gale (o = 3,141593).

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-11

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le cosinus d'arc de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le cosinus d'arc de value et placer le rsultat dans result.


Logique relais

Texte structur
result := ACOS(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-12

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Tangente d'arc (ATN)

L'instruction ATN prend la tangente d'arc de la valeur Source et stocke


le rsultat dans la Destination (en radians).

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche la tangente d'arc de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := ATAN(source);

Utilisez ATAN comme une fonction. Cette fonction calcule la tangente


d'arc de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point ATN

FBD_MATH_ADVANCED

structure

structure ATN

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La valeur rsultante dans la Destination est toujours suprieure ou


gale -/2 et infrieure ou gale /2 (o = 3,141593).

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-13

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule la tangente d'arc de la Source et place le rsultat dans la


Destination.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer la tangente d'arc de value et placer le rsultat dans result.


Logique relais

Texte structur
result := ATAN(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

13-14

Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

14

Instructions mathmatiques volues


(LN, LOG, XPY)

Introduction

Les instructions mathmatiques volues comprennent les instructions


suivantes :

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

trouver le logarithme naturel d'une valeur

LN

logique relais
texte structur
bloc fonctionnel

14-2

trouver le logarithme dcimal d'une valeur

LOG

logique relais
texte structur
bloc fonctionnel

14-4

lever une valeur la puissance d'une autre


valeur

XPY

logique relais
texte structur(1)
bloc fonctionnel

14-6

(1)

Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de prcision et un arrondissement des valeurs peuvent se produire et
l'instruction est plus longue excuter. Vrifiez le bit S:V pour voir si
le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

14-2

Instructions mathmatiques volues (LN, LOG, XPY)

Logarithme naturel (LN)

L'instruction LN prend le logarithme naturel de la Source et stocke le


rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le logarithme naturel de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := LN(source);

Utilisez LN comme une fonction. Cette fonction calcule le logarithme


naturel de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, voir l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point LN

FBD_MATH_ADVANCED

structure

structure LN

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Description : La Source doit tre suprieure zro, sinon le bit d'tat de


dpassement (S:V) est activ. La Destination rsultante est suprieure
ou gale 87,33655 et infrieure ou gale 88,72284.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions mathmatiques volues (LN, LOG, XPY)

14-3

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le logarithme naturel de la Source et place le rsultat dans la


Destination.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

EnableIn est effac

EnableOut est effac.

EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le logarithme naturel de value et placer le rsultat dans result.


Logique relais

Texte structur
result := LN(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

14-4

Instructions mathmatiques volues (LN, LOG, XPY)

Logarithme dcimal (LOG)

L'instruction LOG prend le logarithme dcimal de la Source et stocke


le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

cherche le logarithme de cette valeur

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := LOG(source);

Utilisez LOG comme une fonction. Cette fonction calcule le


logarithme de source et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, voir l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point LOG

FBD_MATH_ADVANCED

structure

structure LOG

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction mathmatique.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La Source doit tre suprieure zro, sinon le bit d'tat de


dpassement (S:V) est activ. La Destination rsultante est suprieure
ou gale 37,92978 et infrieure ou gale 38,53184.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions mathmatiques volues (LN, LOG, XPY)

14-5

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate calcule le logarithme de la Source et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Calculer le logarithme de value et placer le rsultat dans result.


Logique relais

Texte structur
result := LOG(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

14-6

Instructions mathmatiques volues (LN, LOG, XPY)

X la puissance Y (XPY)

L'instruction XPY lve Source A (X) la puissance de Source B (Y) et


stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source X

SINT
INT
DINT
REAL

immdiat
point

valeur de base

Source Y

SINT
INT
DINT
REAL

immdiat
point

exposant

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := sourceX ** sourceY;

Utilisez deux signes de multiplication juxtaposs comme


oprateur dans une expression. Cette expression lve sourceX la
puissance de sourceY et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, voir l'Annexe C.

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Oprande

Type

Format

Description

point XPY

FBD_MATH

structure

structure XPY

Instructions mathmatiques volues (LN, LOG, XPY)

14-7

Structure FBD_MATH
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source X

REAL

Valeur de base
Valeurs correctes = toute virgule flottante.

Source Y

REAL

Exposant.
Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : Si Source X est ngatif, Source Y doit tre un nombre entier ou un


dfaut mineur se produit.
L'instruction XPY utilise l'algorithme suivant : Destination = X**Y
L'automate comprend x0=1 et 0x=0.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Un dfaut mineur se produit si

Type du dfaut

Code du dfaut

Source X est ngatif et Source Y n'est pas un


nombre entier

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate lve Source X la puissance de Source Y et place le rsultat dans la


Destination.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

14-8

Instructions mathmatiques volues (LN, LOG, XPY)

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : L'instruction XPY lve value_1 la puissance de value_2 et stocke le


rsultat dans result.

Logique relais

Texte structur
result := (value_1 value_2);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

15

Instructions de conversion mathmatique


(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduction

Les instructions de conversion mathmatique convertissent des


valeurs.

Si vous voulez

Utilisez cette instruction

Disponible dans ces langages

Voir page

convertir des radians en degrs

DEG

logique relais
texte structur
bloc fonctionnel

15-2

convertir des degrs en radians

RAD

logique relais
texte structur
bloc fonctionnel

15-4

convertir un nombre entier en valeur DCB

TOD

logique relais
bloc fonctionnel

15-6

convertir une valeur DCB en un nombre entier

FRD

logique relais
bloc fonctionnel

15-9

retirer la partie dcimale d'une valeur

TRN
TRUNC(1)

logique relais
texte structur
bloc fonctionnel

15-11

(1)

Texte structur uniquement.

Vous pouvez combiner diffrents types de donnes, mais des erreurs


de prcision et un arrondissement des valeurs peuvent se produire et
l'instruction est plus longue excuter. Vrifiez le bit S:V pour voir si
le rsultat a t tronqu.
Pour les instructions de logique relais, les types de donnes en gras
indiquent les types de donnes optimaux. Une instruction est
excute plus rapidement et demande moins de mmoire si tous les
oprandes de l'instruction utilisent le mme type de donnes optimal,
gnralement DINT ou REAL.

Publication 1756-RM003F-FR-P - Mai 2002

15-2

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Degrs (DEG)

L'instruction DEG convertit la Source (en radians) en degrs et stocke


le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

valeur convertir en degrs

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := DEG(source);

Utilisez DEG comme une fonction. Cette fonction convertit source en


degrs et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point DEG

FBD_MATH_ADVANCED

structure

structure DEG

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction de conversion.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.

Description : L'instruction DEG utilise l'algorithme suivant :


Source*180/ (o = 3,141593)

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-3

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate convertit la Source en degrs et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Convertir value en degrs et placer le rsultat dans result.


Logique relais

Texte structur
result := DEG(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

15-4

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Radians (RAD)

L'instruction RAD convertit la Source (en degrs) en radians et stocke


le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT
REAL

immdiat
point

valeur convertir en radians

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := RAD(source);

Utilisez RAD comme une fonction. Cette fonction convertit source en


radians et stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point RAD

FBD_MATH_ADVANCED

structure

structure RAD

Structure FBD_MATH_ADVANCED
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction de conversion.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

REAL

Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.

Description : L'instruction RAD utilise l'algorithme suivant :


Source*/180 (o = 3,141593)

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-5

Conditions d'erreur : aucune


Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate convertit la Source en radians et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Convertir value en radians et placer le rsultat dans result.


Logique relais

Texte structur
result := RAD(value);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

15-6

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Conversion en DCB (TOD)

L'instruction TOD convertit une valeur dcimale (0 Source 99 999 999) en


valeur DCB et stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

valeur convertir en dcimal

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination

SINT
INT
DINT

point

point pour le stockage du rsultat

Bloc fonctionnel
Oprande

Type

Format

Description

point TOD

FBD_CONVERT

structure

structure TOD

Structure FBD_CONVERT
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

DINT

Entre dans l'instruction de conversion.


Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.

Description : DCB est le systme nombre Dcimal Cod Binaire qui exprime des
chiffres dcimaux individuels (0 9) dans une numration binaire sur
4 bits.
Si vous entrez une Source ngative, l'instruction gnre un dfaut
mineur et efface la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :

Publication 1756-RM003F-FR-P - Mai 2002

Un dfaut mineur se produit si

Type du dfaut

Code du dfaut

Source < 0

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-7

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est

non
source < 0

source > 99 999 999

oui

non

conversion de source en
DCB

oui

S:V est rgl sur 1

l'tat de sortie de la ligne


est rgl sur vrai

fin

si l'tat d'entre de la ligne est vrai

L'automate convertit la Source en DCB et place le rsultat dans la Destination.


L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : L'instruction TOD convertit value_1 en valeur DCB et place le rsultat


dans result_a.

Publication 1756-RM003F-FR-P - Mai 2002

15-8

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Logique relais

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Conversion en nombre
entier (FRD)

15-9

L'instruction FRD convertit une valeur DCB (Source) en valeur


dcimale et stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

SINT
INT
DINT

immdiat
point

valeur convertir en dcimal

Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination

SINT
INT
DINT

point

point pour le stockage du rsultat

Bloc fonctionnel
Oprande

Type

Format

Description

point FRD

FBD_CONVERT

structure

structure FRD

Structure FBD_CONVERT
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

DINT

Entre dans l'instruction de conversion.


Valeurs correctes = tout nombre entier.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.

Description : L'instruction FRD convertit une valeur DCB (Source) en valeur


dcimale et stocke le rsultat dans la Destination.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune
Excution :

Publication 1756-RM003F-FR-P - Mai 2002

15-10

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate convertit la Source en valeur dcimale et place le rsultat dans la


Destination.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : L'instruction FRD convertit value_a en valeur dcimale et place le


rsultat dans result_1.

Logique relais

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Troncation (TRN)

15-11

L'instruction TRN retire (tronque) la partie dcimale de la Source et


stocke le rsultat dans la Destination.

Oprandes :
Logique relais
Oprande

Type

Format

Description

Source

REAL

immdiat
point

valeur tronquer

Destination

SINT
INT
DINT
REAL

point

point pour le stockage du rsultat

Texte structur
dest := TRUNC(source);

Utilisez TRUNC comme une fonction. Cette fonction tronque source et


stocke le rsultat dans dest.
Pour des informations sur la syntaxe des expressions en texte
structur, reportez-vous l'Annexe C.

Bloc fonctionnel
Oprande

Type

Format

Description

point TRN

FBD_TRUNCATE

structure

structure TRN

Structure FBD_TRUNCATE
Paramtre d'entre

Type de
donnes

Description

EnableIn

BOOL

Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.

Source

REAL

Entre dans l'instruction de conversion.


Valeurs correctes = toute virgule flottante.

Paramtre de sortie

Type de
donnes

Description

EnableOut

BOOL

L'instruction a fourni un rsultat correct.

Dest

DINT

Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs


pour cette sortie.

Description : La troncation n'arrondit pas la valeur, au contraire la partie non


dcimale reste identique quelle que soit la valeur de cette partie.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

15-12

Instructions de conversion mathmatique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Excution :
Logique relais
Condition

Action

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'automate retire la partie dcimale de la Source et place le rsultat dans la


Destination.
L'tat de sortie de la ligne est rgl sur vrai.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition

Action

pendant la pr-scrutation

Aucune.

pendant la premire scrutation de l'instruction

Aucune.

pendant la premire excution de l'instruction

Aucune.

si EnableIn est effac

EnableOut est effac.

si EnableIn est activ

L'instruction est excute.


EnableOut est activ.

pendant la post-scrutation

Aucune.

Exemple : Retirer la partie dcimale float_value_1, sans changer la partie non


dcimale, et placer le rsultat dans float_value_1_truncated.

Logique relais

Texte structur
float_value_1_truncated := TRUNC(float_value_1);

Bloc fonctionnel

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

16

Instructions port srie ASCII


(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduction

Utilisez les instructions du port srie ASCII pour lire et crire des
caractres ASCII.

Si vous voulez

Par exemple

Utilisez cette
instruction

Disponible dans ces


langages

Voir page

dterminer quand le buffer contient


des caractres de fin

trouver les donnes contenant des


caractres de fin

ABL

logique relais
texte structur

16-5

ACB

logique relais
texte structur

16-8

ACL

logique relais
texte structur

16-10

faire raccrocher un modem

AHL

logique relais
texte structur

16-12

lire des donnes d'un quipement qui


envoie le mme nombre de
caractres chaque transmission

ARD

logique relais
texte structur

16-16

lire un nombre variable de caractres, lire des donnes d'un quipement qui
jusqu'au premier jeu de caractres de envoie un nombre variable de
caractres chaque transmission
fin inclus

ARL

logique relais
texte structur

16-19

compter les caractres dans le buffer vrifier qu'il y a le nombre de


caractres voulu avant de lire le
buffer
effacer le contenu du buffer
effacer les instructions port srie
ASCII qui sont en cours d'excution
ou qui sont en attente
obtenir l'tat des lignes de
commande du port srie

effacer les anciennes


donnes du buffer au
dmarrage
synchroniser le buffer avec un
quipement

activer ou dsactiver le signal DTR


activer ou dsactiver le signal RTS
lire un nombre fixe de caractres

envoyer des caractres et ajouter


automatiquement un ou deux
caractres supplmentaires pour
marquer la fin des donnes

envoyer des messages utilisant


toujours le ou les mmes caractres
de fin

AWA

logique relais
texte structur

16-23

envoyer des caractres

envoyer des messages utilisant


diffrents caractres de fin

AWT

logique relais
texte structur

16-27

IMPORTANT

Pour utiliser les instructions port srie ASCII, vous


devez configurer le port srie de l'automate. Voir
Automate Logix5000 - Procdures gnrales
(publication 1756-PM001).

Publication 1756-RM003F-FR-P - Mai 2002

16-2

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Excution de l'instruction
Les instructions port srie ASCII sont excutes de faon asynchrone
par rapport la scrutation de la logique.
Logique
L'tat d'entre de la ligne
passe de faux vrai

File d'attente
Instruction 1
Instruction 2

Tche ASCII
La premire instruction de
la file d'attente est
excute.

Instruction 3
Instruction 4
L'instruction entre dans la
file d'attente ASCII.

Les donnes circulent


entre la tche et le
buffer.

Les donnes circulent entre


le buffer et le port srie.
Contrle

Buffer

Chaque instruction port srie ASCII (sauf l'instruction ACL) utilise une
structure SERIAL_PORT_CONTROL pour excuter les fonctions
suivantes :
contrler l'excution de l'instruction ;
fournir des informations d'tat sur l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-3

Le schma suivant montre les changements dans les bits d'tat


pendant que l'instruction ABL teste le buffer pour les caractres de fin.
scrutation

scrutation

scrutation

scrutation

tat d'entre de la
ligne

faux

vrai

faux

vrai

faux

.EN

dsactiv

activ

dsactiv

activ

dsactiv

.EU

dsactiv

activ

.RN

ds
acti
v

.DN ou .ER

ds
acti
v

acti
v

ds
acti
v

acti
v

.FD

ds
acti
v

acti
v

ds
acti
v

acti
v

acti
v

ds
acti
v

acti
v

entre dans la
file d'attente

ds
acti
v

remet les bits d'tat


zro
quand scrut et .DN ou .ER
est activ, active le bit EM

excute
dans cet exemple,
trouve les caractres
de fin

La file d'attente ASCII peut contenir jusqu' 16 instructions. Lorsque la


file d'attente est pleine, une instruction tente d'entrer dans la file
chacune des scrutations suivantes de l'instruction, comme indiqu
ci-dessous :
scrutation

scrutation

tat d'entre de la
ligne

faux

vrai

.EN

dsactiv

activ

.EU

dsactiv

scrutation

scrutation

faux

activ

tente d'entrer dans la file, mais celle-ci est pleine


entre dans la
file d'attente

Publication 1756-RM003F-FR-P - Mai 2002

16-4

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Codes d'erreur ASCII


Si l'excution d'une instruction port srie ASCII choue, le membre
d'erreur ERROR de sa structure SERIAL_PORT_CONTROL contient
l'un des codes d'erreur hexadcimal suivant :
Ce code hex

Indique que

16#2

Le modem est hors ligne.

16#3

Le signal CTS a t perdu pendant la communication.

16#4

Le port srie tait en mode System.

16#A

Le bit UL a t activ avant l'excution de l'instruction. Ceci empche l'excution de l'instruction.

16#C

L'automate est pass du mode Excution (Run) au mode Programme (Program). Ceci arrte l'excution de l'instruction
port srie ASCII et efface la file d'attente.

16#D

Dans l'onglet Protocole utilisateur de la bote de dialogue Proprits de l'automate, les paramtres de taille ou de
mode cho du buffer ont t changs et appliqus. Ceci arrte l'excution de l'instruction port srie ASCII et efface la
file d'attente.

16#E

L'instruction ACL est excute.

16#F

La configuration du port srie passe du mode Utilisateur (User) au mode Systme (System). Ceci arrte l'excution
d'une instruction port srie ASCII et efface la file d'attente des instructions du port srie ASCII.

16#51

La valeur LEN de la chane de caractres est ngative ou suprieure la taille DATA de la chane de caractres.

16#54

La longueur de contrle du port srie est suprieure la taille du buffer.

16#55

La longueur de contrle du port srie est ngative ou suprieure la taille de la Source ou de la Destination.

Types de donnes chane


Vous stockez des caractres ASCII dans des points de type chane de
caractres.
Vous pouvez utiliser le type de donnes STRING par dfaut. Il
peut stocker jusqu' 82 caractres.
Vous pouvez crer un nouveau type de donnes chane qui
stocke plus ou moins de caractres.
Pour crer un nouveau type de donnes chane, voir Automate
Logix5000 - Procdures gnrales (publication 1756-PM001).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-5

Chaque type de donnes chane contient les membres suivants :


Nom

Type de donnes

Description

Remarques

LEN

DINT

nombre de
caractres dans la
chane

La valeur LEN est automatiquement mise jour avec le nouveau nombre de


caractres lorsque vous :
utilisez la bote de dialogue Navigateur de chane pour entrer des
caractres ;
utilisez des instructions qui lisent, convertissent ou manipulent une chane.
La valeur LEN indique la longueur de la chane en cours. Le membre DATA peut
aussi contenir d'anciens caractres qui ne sont pas inclus dans la valeur LEN.

DATA

tableau SINT

caractres ASCII
dans la chane

Pour accder aux caractres de la chane, adressez le nom du point.


Par exemple, pour accder aux caractres du point chane_1, entrez
chane_1.
Chaque lment du tableau DATA contient un caractre.
Vous pouvez crer des nouveaux types de donnes chane qui stockent plus
ou moins de caractres.

Test ASCII du buffer (ABL)

L'instruction ABL compte le nombre de caractres dans le buffer,


jusqu'au premier caractre de fin inclus.

Oprandes :
Logique relais
ABL
ASCII Test For Buffer Line
Channel
SerialPort Control
Character Count

?
?
?

EN
DN
ER

Oprande

Type

Format

Description

Canal

DINT

immdiat
point

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande l'opration

immdiat

Comptage des DINT


caractres

Pendant l'excution, affiche le nombre


de caractres dans le buffer, y compris
le premier jeu de caractres de fin.

Texte structur
ABL(Channel
SerialPortControl);

Les oprandes sont les mmes que ceux de l'instruction ABL en


logique relais. Accdez la valeur de Comptage des caractres par
le membre .POS de la structure SERIAL_PORT_CONTROL.

Publication 1756-RM003F-FR-P - Mai 2002

16-6

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv indique que l'instruction a trouv le ou les caractres de fin.

.POS

DINT

La position dtermine le nombre de caractres dans le buffer, jusqu'au premier jeu de


caractres de fin inclus. L'instruction renvoie ce nombre uniquement aprs avoir trouv le ou
les caractres de fin.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction ABL cherche le premier jeu de caractres de fin dans le


buffer. Si l'instruction trouve les caractres de fin, elle :
active le bit .FD ;
compte le nombre de caractres dans le buffer, jusqu'au premier
jeu de caractres de fin inclus.
L'onglet Protocole utilisateur de la bote de dialogue Proprits de
l'automate dfinit les caractres ASCII que l'instruction considre
comme les caractres de fin.
Pour programmer l'instruction ABL, suivez ces directives :
1. Configurez le port srie de l'automate pour le mode Utilisateur
et dfinissez les caractres qui servent de caractres de fin.
2. Cette instruction est une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir l'Annexe C.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-7

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction compte les caractres dans le buffer.


Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Tester le buffer en continu pour dtecter la prsence de caractres de


fin.

Logique relais

MV_line.EN
/

ABL
ASCII Test For Buffer Line
Channel
0
SerialPort Control
MV_line
Character Count
0

EN
DN
ER

Texte structur
ABL(0,MV_line);

Publication 1756-RM003F-FR-P - Mai 2002

16-8

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Caractres ASCII dans


buffer (ACB)

L'instruction ACB compte les caractres dans le buffer.

Oprandes :
Logique relais
ACB
ASCII Chars in Buffer
Channel
SerialPort Control
Character Count

?
?
?

EN
DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande l'opration

Comptage des
caractres

DINT

immdiat

0
Pendant l'excution, affiche le nombre
de caractres dans le buffer.

Texte structur
ACB(Channel
SerialPortControl);

Les oprandes sont les mmes que ceux de l'instruction ACB en


logique relais. Indiquez cependant la valeur de Comptage des
caractres en accdant au membre .POS de la structure
SERIAL_PORT_CONTROL, plutt qu'en incluant la valeur dans la liste
des oprandes.

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv indique que l'instruction a trouv un caractre.

.POS

DINT

La position dtermine le nombre de caractres dans le buffer, jusqu'au premier jeu de


caractres de fin inclus.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction ACB compte les caractres dans le buffer.


Pour programmer l'instruction ACB, suivez ces directives :
1. Configurez le port srie de l'automate en mode Utilisateur
(User).

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-9

2. Il s'agit d'une instruction de transition :


en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction compte les caractres dans le buffer.


Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Compter les caractres dans le buffer en continu.


Logique relais
bar_code_count.EN
/

ACB
ASCII Chars in Buffer
Channel
0
SerialPort Control
bar_code_count
Character Count
0

EN
DN
ER

Texte structur
ACB(0,bar_code_count);

Publication 1756-RM003F-FR-P - Mai 2002

16-10

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Effacement buffer ASCII


(ACL)

L'instruction ACL efface immdiatement le contenu du buffer et la file


d'attente ASCII.

Oprandes :
Logique relais
ACL
ASCII Clear Buffer
Channel
Clear Serial Port Read
Clear Serial Port Write

?
?
?

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Effacer
lecture port
srie

BOOL

immdiat
point

Pour effacer le buffer et retirer les


instructions ARD et ARL de la file d'attente,
entrez Oui.

BOOL
Effacer
criture port
srie

immdiat
point

Pour retirer les instructions AWA et AWT de


la file d'attente, entrez Oui.

Texte structur
ACL(Channel,
ClearSerialPortRead,
ClearSerialPortWrite);

Les oprandes sont les mmes que ceux de l'instruction ACL en


logique relais.

Description : L'instruction ACL excute immdiatement l'une des actions suivantes,


ou les deux :
efface les caractres prsents dans le buffer, ainsi que les
instructions de lecture de la file d'attente ASCII ;
efface les instructions d'criture de la file d'attente ASCII.
Pour programmer l'instruction ACL, suivez ces directives :
1. Configurez le port srie de l'automate :
Si votre application

Action

utilise des instructions ARD ou ARL

Slectionnez le mode Utilisateur (User).

n'utilise pas d'instructions ARD ou ARL

Slectionnez le mode Systme (System) ou


Utilisateur.

2. Pour dterminer si une instruction a t retire de la file


d'attente ou si elle a t abandonne, examinez les lments
suivants dans l'instruction approprie :
le bit .ER est activ ;
le membre .ERROR est 16#E.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-11

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction efface les instructions et le contenu du (des) buffer(s) indiqus.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsque l'automate passe en mode Excution (Run), efface le contenu


du buffer et la file d'attente ASCII.

Logique relais

S:FS

ACL
ASCII Clear Buffer
Channel
Clear Serial Port Read
Clear Serial Port Write

0
1
1

Texte structur
osri_1.InputBit := S:FS;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ACL(0,0,1);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

16-12

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Lignes d'change ASCII


(AHL)

L'instruction AHL obtient l'tat des lignes de commande et active ou


dsactive les signaux DTR et RTS.

Oprandes :
Logique relais
AHL
ASCII Handshake Lines
Channel
AND Mask
OR Mask
SerialPort Control
Channel Status(Decimal)

EN
?
?
??
?
??
?
?

DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

ANDMask

DINT

immdiat
point

reportez-vous la description

ORMask

DINT

immdiat
point

Contrle du port srie

SERIAL_PORT_CONTROL point

point qui commande l'opration

Etat du canal (dcimal)

DINT

immdiat

Pendant l'excution, affiche l'tat des lignes de commande.


Pour l'tat de cette ligne de commande

Examinez ce bit

CTS

RTS

DSR

DCD

DTR

Caractre XOFF reu

Texte structur
AHL(Channel,ANDMask,ORMask,
SerialPortControl);

Publication 1756-RM003F-FR-P - Mai 2002

Les oprandes sont les mmes que ceux de l'instruction AHL en


logique relais. Indiquez cependant la valeur d'Etat du canal en
accdant au membre .POS de la structure SERIAL_PORT_CONTROL,
plutt qu'en incluant la valeur dans la liste des oprandes.

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-13

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation
logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation
logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv ne s'applique pas cette instruction.

.POS

DINT

La position stocke l'tat des lignes de commande.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction AHL peut :


obtenir l'tat des lignes de commande du port srie ;
activer ou dsactiver le signal de terminal de donnes prt (DTR) ;
activer ou dsactiver le signal de demande pour mettre (RTS).
Pour programmer l'instruction AHL, suivez ces directives :
1. Configurez le port srie de l'automate :
Si votre application

Action

utilise des instructions ARD ou ARL

Slectionnez le mode Utilisateur (User).

n'utilise pas d'instructions ARD ou ARL Slectionnez le mode Systme (System) ou


Utilisateur.

2. Utilisez le tableau suivant pour slectionner les valeurs correctes


pour les oprandes ANDMask et ORMask :
Pour que DTR soit

Et pour que RTS


soit

Entrez cette valeur Et entrez cette


ANDMask
valeur ORMask

dsactiv

dsactiv

activ

inchang

dsactiv

activ

inchang

dsactiv

activ

inchang

activ

inchang

Publication 1756-RM003F-FR-P - Mai 2002

16-14

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

3. Il s'agit d'une instruction de transition :


en logique relais, fait passer l'tat d'entre de la ligne d'effac
activ chaque fois que l'instruction doit tre excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

Mthode de correction

57

L'instruction AHL n'a pas t excute car le port srie


est rgl sur pas d'change.

Vous pouvez au choix :


changer le rglage de la ligne de contrle du
port srie ;
supprimer l'instruction AHL.

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction obtient l'tat de la ligne de commande et active ou dsactive les signaux DTR et
RTS.
Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Publication 1756-RM003F-FR-P - Mai 2002

Aucune.

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-15

Exemple : Lorsque get_control_line_status est activ, l'instruction obtient l'tat


des lignes de commande du port srie et stocke l'tat dans l'oprande
Etat du canal. Pour afficher l'tat d'une ligne de commande
particulire, surveillez le point SerialPortControl et dveloppez le
membre POS.

Logique relais
get_control_line_status

AHL
ASCII Handshake Lines
Channel
AND Mask

0
0

DN

OR Mask

ER

SerialPort Control
Channel Status(Decimal)

EN

serial_port
29

Texte structur
osri_1.InputBit := get_control_line_status;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
AHL(0,0,0,serial_port);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

16-16

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Lecture ASCII (ARD)

L'instruction ARD retire des caractres du buffer et les stocke dans la


Destination.

Oprandes :
Logique relais
ARD
ASCII Read
Channel
Destination

EN

SerialPort Control
SerialPort Control Length
Characters Read

?
?
??
?
?
?

DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Destination

STRING
SINT
INT
DINT

point

point dans lequel les caractres


sont dplacs (lecture) :
pour un type de donnes
chane, entrez le nom du
point ;
pour un tableau SINT, INT
ou DINT, entrez le premier
lment du tableau.

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande l'opration

Longueur de
contrle
du port srie

DINT

immdiat

nombre de caractres transfrer


vers la destination (lecture)

Caractres lus

DINT

immdiat

Remarques

Si vous voulez comparer, convertir ou


manipuler les caractres, utilisez un type
de donnes chane.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

La longueur de contrle du port srie doit


tre infrieure ou gale la taille de la
Destination.
Si vous voulez que la longueur de
contrle du port srie soit gale la taille
de la Destination, entrez 0.
Pendant l'excution, affiche le nombre de
caractres lus.

Texte structur
ARD(Channel,Destination,
SerialPortControl);

Publication 1756-RM003F-FR-P - Mai 2002

Les oprandes sont les mmes que ceux de l'instruction ARD en


logique relais. Indiquez cependant les valeurs de Longueur de
contrle du port srie et de Caractres lus en accdant aux membres
.LEN et .POS de la structure SERIAL_PORT_CONTROL, plutt qu'en
incluant les valeurs dans la liste des oprandes.

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-17

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv ne s'applique pas cette instruction.

.LEN

DINT

La longueur indique le nombre de caractres dplacer dans la Destination (lecture).

.POS

DINT

La position affiche le nombre de caractres lus.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction ARD retire le nombre dfini de caractres du buffer et les


stocke dans la Destination :
l'instruction ARD est excute jusqu' ce que le nombre de
caractres indiqu aient t retirs (Longueur de contrle du
port srie) ;
pendant l'excution de l'instruction ARD, aucune autre
instruction port srie ASCII n'est excute.
Pour programmer l'instruction ARD, suivez ces directives :
1. Configurez le port srie de l'automate en mode Utilisateur
(User).
2. Utilisez les rsultats d'une instruction ACB pour dclencher
l'instruction ARD. Ceci empche l'instruction ARD d'arrter la file
d'attente ASCII pendant qu'elle attend le nombre de caractres
indiqu.
3. Il s'agit d'une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute ;
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.
4. Pour dclencher une action aprs l'excution de l'instruction,
examinez le bit EM.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune

Publication 1756-RM003F-FR-P - Mai 2002

16-18

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de la


ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction retire des caractres du buffer et les stocke dans la Destination.


Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Un lecteur de codes-barres envoie des codes-barres au port srie


(canal 0) de l'automate. Chaque code-barres contient 24 caractres.
Pour dterminer quel moment l'automate reoit un code-barres,
l'instruction ACB compte en continu les caractres prsents dans le
buffer. Lorsque le buffer contient au moins 24 caractres, l'automate a
reu un code-barres. L'instruction ARD dplace le code-barres dans le
membre DATA du point bag_bar_code, qui est une chane.

Logique relais
bar_code_count.EN
/

ACB
ASCII Chars in Buffer
Channel
0
SerialPort Control
bar_code_count
Character Count
0

GEQ
Grtr Than or Eql (A>=B)
Source A bar_code_count.pos
0
Source B
24

ARD
ASCII Read
Channel
Destination

0
bag_bar_code
''
SerialPort Control
bar_code_read
SerialPort Control Length
24
Characters Read
0

Texte structur
ACB(0,bar_code_count);
IF bar_code_count.POS >= 24 THEN
bar_code_read.LEN := 24;
ARD(0,bag_bar_code,bar_code_read);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

EN
DN
ER

EN
DN
ER

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ligne de lecture ASCII


(ARL)

16-19

L'instruction ARL retire des caractres dfinis du buffer et les stocke


dans la Destination.

Oprandes :
Logique relais
ARL
ASCII Read Line
Channel
Destination

EN

SerialPort Control
SerialPort Control Length
Characters Read

?
?
??
?
?
?

DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Destination

STRING
SINT
INT
DINT

point

point dans lequel les caractres


sont dplacs (lecture) :
pour un type de donnes
chane, entrez le nom du
point ;
pour un tableau SINT, INT
ou DINT, entrez le
premier lment du
tableau.

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande l'opration

Longueur de
contrle du
port srie

DINT

immdiat

nombre maximum de caractres


lire si aucun caractre de fin
n'est trouv.

Remarques

Si vous voulez comparer, convertir ou


manipuler les caractres, utilisez un type de
donnes chane.
Les types de donnes chane sont :
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Entrez le nombre maximum de caractres


qu'un message peut contenir (ex. : quand
arrter la lecture si aucun caractre de fin
n'est trouv).
Par exemple, si les messages ont une
longueur de 3 6 caractres, entrez 6.
La longueur de contrle du port srie doit
tre infrieure ou gale la taille de la
Destination.
Si vous voulez que la longueur de contrle
du port srie soit gale la taille de la
Destination, entrez 0.

Caractres lus

DINT

immdiat

Pendant l'excution, affiche le nombre de


caractres lus.

Texte structur
ARL(Channel,Destination,
SerialPortControl);

Les oprandes sont les mmes que ceux de l'instruction ARL en


logique relais. Indiquez cependant les valeurs de Longueur de
contrle du port srie et de Caractres lus en accdant aux membres
.LEN et .POS de la structure SERIAL_PORT_CONTROL, plutt qu'en
incluant les valeurs dans la liste des oprandes.

Publication 1756-RM003F-FR-P - Mai 2002

16-20

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv ne s'applique pas cette instruction.

.LEN

DINT

La longueur indique le nombre maximum de caractres dplacer dans la destination (ex. :


quand arrter la lecture si aucun caractre de fin n'est trouv).

.POS

DINT

La position affiche le nombre de caractres lus.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction ARL retire des caractres du buffer et les stocke dans la
Destination comme suit :
l'excution de l'instruction ARL continue jusqu' ce qu'elle ait
retir un des lments suivants :
le premier jeu de caractres de fin ;
le nombre de caractres indiqu (Longueur de contrle du
port srie) ;
pendant l'excution de l'instruction ARL, aucune autre
instruction port srie ASCII n'est excute.
Pour programmer l'instruction ARL, suivez ces directives :
1. Configurez le port srie de l'automate.
a. Slectionnez le mode Utilisateur (User).
b. Dfinissez les caractres qui servent de caractres de fin.
2. Utilisez les rsultats d'une instruction ABL pour dclencher
l'instruction ARL. Ceci empche l'instruction ARL d'arrter la file
d'attente ASCII pendant qu'elle attend les caractres de fin.
3. Il s'agit d'une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute.
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.
4. Pour dclencher une action aprs l'excution de l'instruction,
examinez le bit EM.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-21

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction retire les caractres dfinis du buffer et les stocke dans la Destination.
Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Tester le buffer en continu pour trouver un message provenant d'un


terminal MessageView. Chaque message tant termin par un retour
chariot ($r), le retour chariot est configur comme le caractre de fin
dans l'onglet Protocole utilisateur de la bote de dialogue Proprits
de l'automate. Lorsque l'instruction ABL trouve un retour chariot, elle
active le bit FD.
Lorsque l'instruction ABL trouve le retour chariot (MV_line.FD est
activ), l'automate a reu un message complet. L'instruction ARL retire
les caractres du buffer, jusqu'au retour chariot inclus, et les place
dans le membre DATA du point MV_msg, qui est une chane.

Publication 1756-RM003F-FR-P - Mai 2002

16-22

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Logique relais
MV_line.EN
/

ABL
ASCII Test For Buffer Line
Channel
0
SerialPort Control
MV_line
Character Count
0

MV_line.FD

ARL
ASCII Read Line
Channel
Destination
SerialPort Control
SerialPort Control Length
Characters Read

Texte structur
ABL(0,MV_line);
osri_1.InputBit := MVLine.FD;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
mv_read.LEN := 12;
ARL(0,MV_msg,MV_read);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

EN
DN
ER

EN
0
MV_msg
''
MV_read
12
0

DN
ER

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ajout d'criture ASCII


(AWA)

16-23

L'instruction AWA envoie un nombre dfini de caractres du point


Source vers un quipement srie et ajoute un ou deux caractres
prdfinis.

Oprandes :
Logique relais
AWA
ASCII Write Append
Channel
Source
SerialPort Control
SerialPort Control Length
Characters Sent

EN
?
?
??
?
?
?

DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Source

STRING
SINT
INT
DINT

point

point contenant les


caractres envoyer :
pour un type de
donnes chane,
entrez le nom du
point ;
pour un tableau
SINT, INT ou DINT,
entrez le premier
lment du tableau.

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande


l'opration

Longueur de
contrle du port
srie

DINT

immdiat

nombre de caractres
envoyer

Caractres
envoys

DINT

immdiat

Remarques

Si vous voulez comparer, convertir ou


manipuler les caractres, utilisez un
type de donnes chane.
Les types de donnes chane sont :
type de donnes STRING par
dfaut ;
tout nouveau type de donnes
chane que vous crez.

La longueur de contrle du port srie


doit tre infrieure ou gale la taille
de la Source.
Si vous voulez que la longueur de
contrle du port srie soit gale au
nombre de caractres de la Source,
entrez 0.
Pendant l'excution, affiche le nombre de
caractres envoys.

Texte structur
AWA(Channel,Source,
SerialPortControl);

Les oprandes sont les mmes que ceux de l'instruction AWA en


logique relais. Indiquez cependant les valeurs de Longueur de
contrle du port srie et de Caractres envoys en accdant aux
membres .LEN et .POS de la structure SERIAL_PORT_CONTROL,
plutt qu'en incluant les valeurs dans la liste des oprandes.

Publication 1756-RM003F-FR-P - Mai 2002

16-24

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv ne s'applique pas cette instruction.

.LEN

DINT

La longueur indique le nombre de caractres envoyer.

.POS

DINT

La position affiche le nombre de caractres envoys.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction AWA :


envoie le nombre de caractres indiqu (Longueur de contrle
du port srie) du point Source vers l'quipement connect au
port srie de l'automate ;
ajoute un ou deux caractres, dfinis dans l'onglet Protocole
utilisateur de la bote de dialogue Proprits de l'automate, la
fin des caractres.
Pour programmer l'instruction AWA, suivez ces directives :
1. Configurez le port srie de l'automate.
a. Votre application comprend-elle galement des instructions
ARD ou ARL ?
Si

Action

Oui

Slectionnez le mode Utilisateur (User).

Non

Slectionnez le mode Systme (System) ou


Utilisateur.

b. Dfinissez les caractres ajouter aux donnes.


2. Il s'agit d'une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute.
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-25

3. Envoyez-vous toujours le mme nombre de caractres chaque


excution de l'instruction ?
Si

Action

Oui

Entrez le nombre de caractres envoyer dans la longueur de


contrle du port srie.

Non

Avant que l'instruction ne soit excute, activez le membre LEN du


point Source vers le membre LEN du point Contrle du port srie.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction envoie un nombre dfini de caractres et ajoute un ou deux caractres prdfinis.


Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple 1 : Lorsque la temprature dpasse la limite suprieure (temp_high est


activ), l'instruction AWA envoie un message au terminal MessageView
connect au port srie de l'automate. Le message contient cinq
caractres provenant du membre DATA du point string[1], qui est une
chane ($14 compte pour un caractre : c'est le code hexadcimal du
caractre Ctrl-T). L'instruction envoie (ajoute) galement les caractres
dfinis dans les proprits de l'automate. Dans cet exemple,
l'instruction AWA envoie un retour chariot ($0D), qui marque la fin du
message.

Logique relais
temp_high

AWA
ASCII Write Append
Channel
Source

0
string[1]
'$1425\1'
SerialPort Control
temp_high_write
SerialPort Control Length
5
Characters Sent
6

EN
DN
ER

Publication 1756-RM003F-FR-P - Mai 2002

16-26

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Texte structur
IF temp_high THEN
temp_high_write.LEN := 5;
AWA(0,string[1],temp_high_write);
temp_high := 0;
END_IF;

Exemple 2 : Lorsque alarm est activ, l'instruction AWA envoie le nombre de


caractres indiqu dans alarm_msg et ajoute un ou plusieurs
caractres de fin. Le nombre de caractres dans alarm_msg variant, la
ligne commence par dplacer la longueur de la chane
(alarm_msg.LEN) dans la longueur de contrle du port srie de
l'instruction AWA (alarm_write.LEN). Dans alarm_msg, $14 compte
pour un caractre : c'est le code hexadcimal du caractre Ctrl-T.

Logique relais
alarm

MOV
Move
Source alarm_msg.LEN
5
Dest
alarm_write.LEN
5

AWA
ASCII Write Append
Channel
Source
SerialPort Control
SerialPort Control Length
Characters Sent

Texte structur
osri_1.InputBit := alarm;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
alarm_write.LEN := alarm_msg.LEN;
AWA(0,alarm_msg,alarm_write);
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

EN
0
alarm_msg
'$1425\1'
alarm_write
5
6

DN
ER

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ecriture ASCII (AWT)

16-27

L'instruction AWT envoie un nombre dfini de caractres du point


Source vers un quipement srie.

Oprandes :
Logique relais
AWT
ASCII Write
Channel
Source

EN

SerialPort Control
SerialPort Control Length
Characters Sent

?
?
??
?
?
?

DN
ER

Oprande

Type

Format

Entrez

Canal

DINT

immdiat
point

Source

STRING
SINT
INT
DINT

point

point contenant les


caractres envoyer :
pour un type de
donnes chane,
entrez le nom du
point ;
pour un tableau
SINT, INT ou DINT,
entrez le premier
lment du tableau.

Contrle du
port srie

SERIAL_PORT_
CONTROL

point

point qui commande


l'opration

Longueur de
contrle du port
srie

DINT

immdiat

nombre de caractres
envoyer

Caractres
envoys

DINT

immdiat

Remarques

Si vous voulez comparer, convertir ou


manipuler les caractres, utilisez un
type de donnes chane.
Les types de donnes chane sont :
type de donnes STRING par
dfaut ;
tout nouveau type de donnes
chane que vous crez.

La longueur de contrle du port srie


doit tre infrieure ou gale la taille
de la Source.
Si vous voulez que la longueur de
contrle du port srie soit gale au
nombre de caractres de la Source,
entrez 0.
Pendant l'excution, affiche le nombre de
caractres envoys.

Texte structur
AWT(Channel,Source,
SerialPortControl);

Les oprandes sont les mmes que ceux de l'instruction AWT en


logique relais. Indiquez cependant les valeurs de Longueur de
contrle du port srie et Caractres envoys en accdant aux
membres .LEN et .POS de la structure SERIAL_PORT_CONTROL,
plutt qu'en incluant les valeurs dans la liste des oprandes.

Publication 1756-RM003F-FR-P - Mai 2002

16-28

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL
Mnmonique

Type de
donnes

Description

.EN

BOOL

Le bit d'activation indique que l'instruction est active.

.EU

BOOL

Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.

.DN

BOOL

Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.

.RN

BOOL

Le bit d'excution indique que l'instruction est en cours d'excution.

.EM

BOOL

Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.

.ER

BOOL

Le bit d'erreur indique quand l'instruction choue (erreurs).

.FD

BOOL

Le bit trouv ne s'applique pas cette instruction.

.LEN

DINT

La longueur indique le nombre de caractres envoyer.

.POS

DINT

La position affiche le nombre de caractres envoys.

.ERROR

DINT

L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

Description : L'instruction AWT envoie le nombre de caractres indiqu (Longueur


de contrle du port srie) du point Source vers l'quipement connect
au port srie de l'automate
Pour programmer l'instruction AWT, suivez ces directives :
1. Configurez le port srie de l'automate :
Si votre application

Action

utilise des instructions ARD ou ARL

Slectionnez le mode Utilisateur (User).

n'utilise pas d'instructions ARD ou


ARL

Slectionnez le mode Systme (System)


ou Utilisateur.

2. Il s'agit d'une instruction de transition :


en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute.
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.
3. Envoyez-vous toujours le mme nombre de caractres chaque
excution de l'instruction ?
Si

Action

Oui

Entrez le nombre de caractres envoyer dans la longueur de


contrle du port srie.

Non

Avant que l'instruction ne soit excute, dplacez le membre LEN du


point Source dans le membre LEN du point Contrle du port srie.

Indicateurs d'tat arithmtique : non affects

Publication 1756-RM003F-FR-P - Mai 2002

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-29

Conditions d'erreur : aucune


Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute lorsque l'tat d'entre de


la ligne passe d'effac activ.
L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction envoie un nombre dfini de caractres.


Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple 1 : Lorsque la temprature atteint la limite infrieure (temp_low est


activ), l'instruction AWT envoie un message au terminal
MessageView connect au port srie de l'automate. Le message
contient neuf caractres provenant du membre DATA du point
string[2], qui est une chane ($14 compte pour un caractre : c'est le
code hexadcimal du caractre Ctrl-T). Le dernier caractre est un
retour chariot ($r), qui marque la fin du message.

Logique relais
temp_low

AWT
ASCII Write
Channel
Source

EN

0
string[2]
'$142224\01$r'
SerialPort Control
temp_low_write
SerialPort Control Length
9
Characters Sent
9

DN
ER

Texte structur
osri_1.InputBit := temp_low;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
temp_low_write.LEN := 9;
AWT(0,string[2],temp_low_write);
END_IF;

Exemple 2 : Lorsque MV_update est activ, l'instruction AWT envoie les caractres
dans MV_msg. Le nombre de caractres dans MV_msg variant, la ligne
commence par dplacer la longueur de la chane (MV_msg.LEN) dans
la longueur de contrle du port srie de l'instruction AWT

Publication 1756-RM003F-FR-P - Mai 2002

16-30

Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

17

Instructions de chane ASCII


(CONCAT, DELETE, FIND, INSERT, MID)

Introduction

Utilisez les instructions de chane ASCII pour crer et modifier des


chanes de caractres ASCII.

Si vous voulez

Par exemple

Utilisez cette
instruction

Disponible dans ces


langages

Voir page

ajouter des caractres la fin d'une


chane

ajouter des caractres de fin ou des


sparateurs dans une chane

CONCAT

logique relais
texte structur

17-3

effacer des caractres d'une chane

supprimer les caractres d'en-tte ou


de contrle d'une chane

DELETE

logique relais
texte structur

17-5

dterminer le caractre de dbut


d'une sous-chane

localiser un groupe de caractres


dans une chane

FIND

logique relais
texte structur

17-7

insrer des caractres dans une


chane

crer une chane qui utilise des


variables

INSERT

logique relais
texte structur

17-9

extraire des caractres d'une chane

extraire des informations d'un


code-barres

MID

logique relais
texte structur

17-11

Vous pouvez galement utiliser les instructions suivantes pour


comparer ou convertir des caractres ASCII :

Si vous voulez

Utilisez cette
instruction

Voir page

comparer une chane une autre

CMP

4-2

voir si les caractres sont gaux des caractres spcifiques

EQU

4-7

voir si les caractres ne sont pas gaux des caractres spcifiques

NEQ

4-38

voir si les caractres sont suprieurs ou gaux des caractres spcifiques

GEQ

4-11

voir si les caractres sont suprieurs des caractres spcifiques

GRT

4-15

voir si les caractres sont infrieurs ou gaux des caractres spcifiques

LEQ

4-19

voir si les caractres sont infrieurs des caractres spcifiques

LES

4-23

rorganiser les octets d'un point INT, DINT ou REAL

SWPB

6-18

trouver une chane dans un tableau de chanes

FSC

7-18

convertir des caractres en une valeur SINT, INT, DINT ou REAL

STOD

18-3

convertir des caractres en une valeur REAL

STOR

18-5

convertir une valeur SINT, INT, DINT ou REAL en une chane de caractres ASCII

DTOS

18-7

convertir une valeur REAL en une chane de caractres ASCII

RTOS

18-9

Publication 1756-RM003F-FR-P - Mai 2002

17-2

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Types de donnes chane


You store ASCII characters in tags that use a string data type.
You can use the default STRING data type. It stores up to 82
characters.
You can create a new string data type that stores less or more
characters.
To create a new string data type, see Automate Logix5000 Procdures gnrales (publication 1756-PM001).
Each string data type contains the following members:
Name:

Data Type:

Description:

Notes:

LEN

DINT

number of characters
in the string

The LEN automatically updates to the new count of characters whenever you:
use the String Browser dialog box to enter characters
use instructions that read, convert, or manipulate a string
The LEN shows the length of the current string. The DATA member may contain
additional, old characters, which are not included in the LEN count.

DATA

SINT array

ASCII characters of
the string

To access the characters of the string, address the name of the tag.
For example, to access the characters of the string_1 tag, enter string_1.
Each element of the DATA array contains one character.
You can create new string data types that store less or more characters.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Concatnation de chanes
(CONCAT)

17-3

L'instruction CONCAT ajoute des caractres ASCII la fin d'une


chane.

Oprandes :
Logique relais
CONCAT
String Concatenate
Source A
?
??
Source B
?
??
Dest
?
??

Oprande

Type

Format

Entrez

Remarques

Source A

STRING

point

le point contenant les


caractres de dbut

Source B

STRING

point

le point contenant les


caractres de fin

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Destination

STRING

point

le point pour le stockage du


rsultat

Texte structur
CONCAT(SourceA,SourceB,
Dest);

Les oprandes sont les mmes que ceux de l'instruction CONCAT en


logique relais.

Description : L'instruction CONCAT combine les caractres de Source A avec les


caractres de Source B et stocke le rsultat dans la Destination :
les caractres de Source A sont les premiers, suivis des
caractres de Source B ;
moins que Source A et la Destination ne soient le mme point,
Source A ne change pas.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

Mthode de correction

51

La valeur LEN de la chane de


caractres est suprieure la
taille DATA de la chane de
caractres.

1. Vrifiez qu'aucune instruction n'crit dans le membre LEN de la chane.


2. Dans la valeur LEN, entrez le nombre de caractres contenus dans la
chane.

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

Publication 1756-RM003F-FR-P - Mai 2002

17-4

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condition

Action de la logique relais

Action du texte structur

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de l'instruction

L'instruction assemble (concatne) les chanes.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Pour dclencher un message dans un terminal MessageView,


l'automate doit envoyer une chane ASCII contenant un numro de
message et un numro de station. String_1 contient le numro du
message. Lorsque add_node est activ, l'instruction CONCAT ajoute
les caractres de node_num_ascii (numro de station) la fin de la
chane de caractres dans string_1, puis stocke le rsultat dans msg.

Logique relais
add_node

CONCAT
String Concatenate
Source A
string_1
'$1423\'
Source B node_num_ascii
'1'
Dest
msg
'$1423\1'

Texte structur
IF add_node THEN
CONCAT(string_1,node_num_ascii,msg);
add_node := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Effacement dans une


chane (DELETE)

17-5

L'instruction DELETE supprime des caractres ASCII d'une chane.

Oprandes :
DELETE
String Delete
Source
Qty
Start
Dest

Logique relais
?
??
?
??
?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source

STRING

point

le point qui contient la chane dont Les types de donnes chane sont :
vous voulez retirer des caractres
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Quantit

SINT
INT
DINT

immdiat
point

le nombre de caractres effacer

La valeur de Dbut plus la valeur de Quantit


doit tre infrieure ou gale la taille DATA de
la Source.

Dbut

SINT
INT
DINT

immdiat
point

la position du premier caractre


effacer

Entrez un numro entre 1 et la taille DATA de la


Source.

Destination

STRING

point

le point pour le stockage du


rsultat

Texte structur
DELETE(Source,Qty,Start,
Dest);

Les oprandes sont les mmes que ceux de l'instruction DELETE en


logique relais.

Description : L'instruction DELETE efface (supprime) un groupe de caractres de la


Source et stocke les caractres qui restent dans la Destination :
la position de Dbut et la Quantit dfinissent les caractres
effacer ;
moins que la Source et la Destination ne soient le mme point,
la Source ne change pas.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

Mthode de correction

51

La valeur LEN de la chane de


caractres est suprieure la taille
DATA de la chane de caractres.

1. Vrifiez qu'aucune instruction n'crit dans le membre LEN de la chane.


2. Dans la valeur LEN, entrez le nombre de caractres contenus dans la
chane.

56

La valeur de Dbut ou de Quantit


est incorrecte.

1. Vrifiez que la valeur de Dbut est entre 1 et la taille DATA de la Source.


2. Vrifiez que la valeur de Dbut plus la valeur de Quantit est infrieure
ou gale la taille DATA de la Source.

Publication 1756-RM003F-FR-P - Mai 2002

17-6

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction efface les caractres dfinis.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Les informations ASCII d'un terminal contiennent un caractre


d'en-tte. Une fois que l'automate a lu les donnes (term_read.EM est
activ), l'instruction DELETE efface le caractre d'en-tte.

Logique relais
term_read.EM

DELETE
String Delete
Source term_input
'$0655'
Qty
1

Texte structur
IF term_read.EM THEN
DELETE(term_input,1,1,term_text);
term_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Start

Dest

term_text
'55'

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Recherche de chane
(FIND)

17-7

L'instruction FIND repre la position de dbut d'une chane dfinie,


l'intrieur d'une autre chane.

Oprandes :
Logique relais

FIND
Find String
Source

?
??
?
??
?
??
?
??

Search
Start
Result

Oprande

Type

Format

Entrez

Remarques

Source

STRING

point

la chane dans laquelle la


recherche est effectuer

Recherche

STRING

point

la chane rechercher

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Dbut

SINT
INT
DINT

immdiat
point

la position dans la Source Entrez un numro entre 1 et la taille DATA de la


Source.
partir de laquelle la
recherche doit commencer

Rsultat

SINT
INT
DINT

point

le point qui stocke la


position de dbut de la
chane rechercher

Texte structur
FIND(Source,Search,Start,
Result);

Les oprandes sont les mmes que ceux de l'instruction FIND en


logique relais dcrite ci-dessus.

Description : L'instruction FIND recherche la chane Recherche dans la chane


Source. Si l'instruction trouve la chane Recherche, le Rsultat indique
la position de dbut de cette chane dans la chane Source.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

51

La valeur LEN de la chane de


caractres est suprieure la taille
DATA de la chane de caractres.

56

La valeur de Dbut est incorrecte.

Mthode de correction
1. Vrifiez qu'aucune instruction n'crit dans le membre LEN de la
chane.
2. Dans la valeur LEN, entrez le nombre de caractres contenus dans
la chane.
Vrifiez que la valeur de Dbut est entre 1 et la taille DATA de la Source.

Publication 1756-RM003F-FR-P - Mai 2002

17-8

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction recherche les caractres dfinis.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Un message de terminal MessageView contient plusieurs informations.


La barre oblique inverse [ \ ] spare chaque information. Pour trouver
une information, l'instruction FIND recherche le caractre barre
oblique inverse et enregistre sa position dans find_pos.

Logique relais
MV_read.EM

FIND
Find String
Source MV_msg
'$06324\12\1\$r'
Search
find
'\'
Start
1
Result

Texte structur
IF MV_read.EM THEN
FIND(MV_msg,find,1,find_pos);
MV_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

find_pos
5

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Insrer chane (INSERT)

17-9

L'instruction INSERT ajoute des caractres ASCII un emplacement


dfini d'une chane.

Oprandes :
INSERT
Insert String
Source A
Source B
Start
Dest

Logique relais
?
??
?
??
?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source A

STRING

point

la chane dans laquelle


vous voulez insrer des
caractres

Source B

STRING

point

la chane contenant les


caractres insrer

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Dbut

SINT
INT
DINT

immdiat
point

la position dans Source A


o les caractres doivent
tre insrs

Rsultat

STRING

point

la chane pour le stockage


du rsultat

Entrez un numro entre 1 et la taille DATA de la


Source.

Texte structur
INSERT(SourceA,SourceB,
Start,Dest);

Les oprandes sont les mmes que ceux de l'instruction INSERT en


logique relais.

Description : L'instruction INSERT ajoute les caractres de Source B un


emplacement dfini dans Source A et place le rsultat dans la
Destination :
Dbut dfinit o Source B doit tre insr dans Source A ;
moins que Source A et la Destination ne soient le mme point,
Source A ne change pas.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

51

La valeur LEN de la chane de


caractres est suprieure la taille
DATA de la chane de caractres.

56

La valeur de Dbut est incorrecte.

Mthode de correction
1. Vrifiez qu'aucune instruction n'crit dans le membre LEN de la
chane.
2. Dans la valeur LEN, entrez le nombre de caractres contenus dans
la chane.
Vrifiez que la valeur de Dbut est entre 1 et la taille DATA de la Source.

Publication 1756-RM003F-FR-P - Mai 2002

17-10

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction insre les caractres dfinis.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsque temp_high est activ, l'instruction INSERT insre les caractres
de string_2 la position 2 dans string_1 et place le rsultat dans
string_3:

Logique relais
temp_high

INSERT
Insert String
Source A
string_1
'AD'
Source B
string_2
'BC'
Start
2
Dest

Texte structur
IF temp_high THEN
INSERT(string_1,string_2,2,string_3);
temp_high := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

string_3
'ABCD'

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Copie dans une chane


(MID)

17-11

L'instruction MID copie un nombre dtermin de caractres ASCII


partir d'une chane et les stocke dans une autre chane.

Oprandes :
Logique relais
MID
Middle String
Source
Qty
Start
Dest

?
??
?
??
?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source

STRING

point

la chane partir de
laquelle vous voulez copier
des caractres

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Quantit

SINT
INT
DINT

immdiat
point

le nombre de caractres
copier

La valeur de Dbut plus la valeur de Quantit


doit tre infrieure ou gale la taille DATA de
la Source.

Dbut

SINT
INT
DINT

immdiat
point

la position du premier
caractre copier

Entrez un numro entre 1 et la taille DATA de la


Source.

Destination

STRING

point

la chane dans laquelle les


caractres doivent tre
copis

Texte structur
MID(Source,Qty,Start,
Dest);

Les oprandes sont les mmes que ceux de l'instruction MID en


logique relais.

Description : L'instruction MID copie un groupe de caractres de la Source et stocke


le rsultat dans la Destination :
la position de Dbut et la Quantit dfinissent les caractres
copier ;
moins que la Source et la Destination ne soient le mme point,
la Source ne change pas.

Indicateurs d'tat arithmtique : non affects

Publication 1756-RM003F-FR-P - Mai 2002

17-12

Instructions de chane ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Conditions d'erreur :
Type

Code

Cause

Mthode de correction

51

La valeur LEN de la chane de caractres


est suprieure la taille DATA de la
chane de caractres.

1. Vrifiez qu'aucune instruction n'crit dans le membre LEN de la


chane.
2. Dans la valeur LEN, entrez le nombre de caractres contenus dans
la chane.

56

La valeur de Dbut ou de Quantit est


incorrecte.

1. Vrifiez que la valeur de Dbut est entre 1 et la taille DATA de la


Source.
2. Vrifiez que la valeur de Dbut plus la valeur de Quantit est
infrieure ou gale la taille DATA de la Source.

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction copie les caractres dfinis partir d'une chane et les stocke dans une autre chane.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Sur les tapis roulants d'un aroport, chaque valise reoit un
code-barres. Les caractres 9 17 de ce code reprsentent le numro
du vol et l'aroport de destination. Une fois que le code a t lu
(bag_read.EM est activ), l'instruction MID copie le numro du vol et
l'aroport de destination dans la chane bag_flt_and_dest.

Logique relais
bag_read.EM

MID
Middle String
Source
bag_barcode
'NWA HOP 5058 AMS 01'
Qty
9
Start

Dest

bag_flt_and_dest
'5058 AMS '

Texte structur
IF bag_read.EM THEN
MID(bar_barcode,9,9,bag_flt_and_dest);
bag_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

18

Instructions de conversion ASCII


(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduction

Utilisez les instructions de conversion ASCII pour modifier le format


des donnes.

Si vous voulez

Par exemple

convertir la reprsentation ASCII d'un


nombre entier en une valeur SINT, INT, DINT
ou REAL

Utilisez cette
instruction

Disponible dans
ces langages

Voir page

STOD
convertir une valeur de balance de
pesage, ou d'un autre quipement
ASCII, en nombre entier pour l'utiliser
dans votre programme

logique relais
texte structur

18-3

convertir la reprsentation ASCII d'une valeur convertir une valeur de balance de


virgule flottante en une valeur REAL
pesage, ou d'un autre quipement
ASCII, en une valeur REAL pour
l'utiliser dans votre programme

STOR

logique relais
texte structur

18-5

convertir une valeur SINT, INT, DINT ou REAL


en une chane de caractres ASCII

convertir une variable en une chane


ASCII pour l'envoyer un terminal
MessageView

DTOS

logique relais
texte structur

18-7

convertir une valeur REAL en une chane de


caractres ASCII

convertir une variable en une chane


ASCII pour l'envoyer un terminal
MessageView

RTOS

logique relais
texte structur

18-9

convertir les lettres d'une chane de


caractres ASCII en majuscules

UPPER
convertir une entre effectue en
majuscules par un oprateur pour que
vous puissiez la chercher dans un
tableau

logique relais
texte structur

18-11

convertir les lettres d'une chane de


caractres ASCII en minuscules

LOWER
convertir une entre effectue en
minuscules par un oprateur pour que
vous puissiez la chercher dans un
tableau

logique relais
texte structur

18-13

Publication 1756-RM003F-FR-P - Mai 2002

18-2

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Vous pouvez galement utiliser les instructions suivantes pour


comparer ou manipuler des caractres ASCII :
Si vous voulez

Utilisez cette instruction

Voir page

ajouter des caractres la fin d'une chane

CONCAT

17-3

effacer des caractres d'une chane

DELETE

17-5

dterminer le caractre de dbut d'une sous-chane

FIND

17-7

insrer des caractres dans une chane

INSERT

17-9

extraire des caractres d'une chane

MID

17-11

rorganiser les octets d'un point INT, DINT ou REAL

SWPB

6-18

comparer une chane une autre

CMP

4-2

voir si les caractres sont gaux des caractres spcifiques

EQU

4-7

voir si les caractres ne sont pas gaux des caractres spcifiques

NEQ

4-38

voir si les caractres sont suprieurs ou gaux des caractres spcifiques

GEQ

4-11

voir si les caractres sont suprieurs des caractres spcifiques

GRT

4-15

voir si les caractres sont infrieurs ou gaux des caractres spcifiques

LEQ

4-19

voir si les caractres sont infrieurs des caractres spcifiques

LES

4-23

trouver une chane dans un tableau de chanes

FSC

7-18

Types de donnes chane


You store ASCII characters in tags that use a string data type.
You can use the default STRING data type. It stores up to 82
characters.
You can create a new string data type that stores less or more
characters.
To create a new string data type, see Automate Logix5000 Procdures gnrales (publication 1756-PM001).
Each string data type contains the following members:
Name:

Data Type:

Description:

Notes:

LEN

DINT

number of characters
in the string

The LEN automatically updates to the new count of characters whenever you:
use the String Browser dialog box to enter characters
use instructions that read, convert, or manipulate a string
The LEN shows the length of the current string. The DATA member may contain
additional, old characters, which are not included in the LEN count.

DATA

SINT array

ASCII characters of
the string

To access the characters of the string, address the name of the tag.
For example, to access the characters of the string_1 tag, enter string_1.
Each element of the DATA array contains one character.
You can create new string data types that store less or more characters.

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Chane vers DINT (STOD)

18-3

L'instruction STOD convertit la reprsentation ASCII d'un nombre


entier en une valeur de nombre entier ou REAL.

Oprandes :
Logique relais
STOD
String To DINT
Source
Dest

?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source

STRING

point

le point qui contient la


valeur ASCII

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Destination

SINT
INT
DINT
REAL

point

le point qui stocke la valeur Si la valeur Source est un nombre virgule


de nombre entier
flottante, l'instruction convertit uniquement la
partie non dcimale du nombre (quel que soit le
type de donnes de la destination).

STOD(Source,Dest);

Texte structur
Les oprandes sont les mmes que ceux de l'instruction STOD en
logique relais.

Description : L'instruction STOD convertit la Source en nombre entier et place le


rsultat dans la Destination.
L'instruction convertit les nombres positifs et ngatifs.
Si la chane Source contient des caractres non numriques,
l'instruction STOD convertit le premier groupe de chiffres
contigus :
l'instruction saute tous les premiers caractres de commande
ou non numriques (sauf le signe moins plac devant un
nombre) ;
si la chane contient plusieurs groupes de chiffres spars par
des sparateurs (ex. : / ), l'instruction ne convertit que le
premier groupe de chiffres.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.

Publication 1756-RM003F-FR-P - Mai 2002

18-4

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Conditions d'erreur :
Type

Code

Cause

Mthode de correction

51

La valeur LEN de la chane de caractres est suprieure


la taille DATA de la chane de caractres.

53

Le nombre de sorties dpasse les limites du type de


donnes de la destination.

1. Vrifiez qu'aucune instruction n'crit dans le


membre LEN de la chane.
2. Dans la valeur LEN, entrez le nombre de
caractres contenus dans la chane.
Vous pouvez au choix :
rduire la taille de la valeur ASCII ;
utiliser un type de donnes plus grand pour la
destination.

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

S:C est activ.


La Destination est efface.
L'instruction convertit la Source.
Si le rsultat est zro, S:Z est activ.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsque MV_read.EM est activ, l'instruction STOD convertit le


premier groupe de caractres numriques dans MV_msg en un
nombre entier. L'instruction saute le premier caractre de commande
($06) et s'arrte au sparateur ( \ ).

Logique relais
MV_read.EM

STOD
String To DINT
Source
MV_msg
'$06324\12\1\$r'
Dest MV_msg_nmbr
324

Texte structur
IF MV_read.EM THEN
STOD(MV_msg,MV_msg_nmbr);
MV_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Chane vers REAL (STOR)

18-5

L'instruction STOR convertit la reprsentation ASCII d'une valeur


virgule flottante en valeur REAL.

Oprandes :
STOR
String to Real
Source
Dest

Oprandes de logique relais


?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source

STRING

point

le point qui contient la


valeur ASCII

Les types de donnes chane sont :


type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

Destination

REAL

point

le point qui stocke la valeur


REAL

STOR(Source,Dest);

Texte structur
Les oprandes sont les mmes que ceux de l'instruction STOR en
logique relais.

Description : L'instruction STOR convertit la Source en valeur REAL et place le


rsultat dans la Destination.
L'instruction convertit les nombres positifs et ngatifs.
Si la chane Source contient des caractres non numriques,
l'instruction STOR convertit le premier groupe de chiffres
contigus, y compris la virgule dcimale [ , ] :
l'instruction saute tous les premiers caractres de commande
ou non numriques (sauf le signe moins plac devant un
nombre) ;
si la chane contient plusieurs groupes de chiffres spars par
des sparateurs (ex. : / ), l'instruction ne convertit que le
premier groupe de chiffres.

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects.


Conditions d'erreur :
Type

Code

Cause

51

La valeur LEN de la chane de caractres est suprieure


la taille DATA de la chane de caractres.

53

Le nombre de sorties dpasse les limites du type de


donnes de la destination.

Mthode de correction
1. Vrifiez qu'aucune instruction n'crit dans le
membre LEN de la chane.
2. Dans la valeur LEN, entrez le nombre de
caractres contenus dans la chane.
Vous pouvez au choix :
rduire la taille de la valeur ASCII ;
utiliser un type de donnes plus grand pour la
destination.

Publication 1756-RM003F-FR-P - Mai 2002

18-6

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

S:C est activ.


La Destination est efface.
L'instruction convertit la Source.
Si le rsultat est zro, S:Z est activ.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Aprs avoir lu le poids indiqu par une balance de pesage


(weight_read.EM est activ), l'instruction STOR convertit les caractres
numriques de weight_ascii en une valeur REAL.
Il peut y avoir une petite diffrence entre les parties dcimales de la
Source et de la Destination.

Logique relais
weight_read.EM

STOR
String to Real
Source weight_ascii
'428.259'
Dest
weight
428.259

Texte structur
IF weight_read.EM THEN
STOR(weight_ascii,weight);
weight_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

DINT vers chane (DTOS)

18-7

L'instruction DTOS donne la reprsentation ASCII d'une valeur.

Oprandes :
DTOS
DINT to String
Source
Dest

Logique relais
?
??
?
??

Oprande

Type

Format

Entrez

Remarques

Source

SINT
INT
DINT
REAL

point

le point qui contient la


valeur

Si la source est une valeur REAL, l'instruction la


convertit en valeur DINT. Reportez-vous REAL
en nombre entier, page A-5.

Destination

STRING

point

le point qui stocke la valeur Les types de donnes chane sont :


ASCII
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

DTOS(Source,Dest);

Texte structur
Les oprandes sont les mmes que ceux de l'instruction DTOS en
logique relais.

Description : L'instruction DTOS convertit la Source en une chane de caractres


ASCII et place le rsultat dans la Destination.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

Mthode de correction

51

La valeur LEN de la chane de caractres est suprieure


la taille DATA de la chane de caractres.

1. Vrifiez qu'aucune instruction n'crit dans le


membre LEN de la chane.
2. Dans la valeur LEN, entrez le nombre de
caractres contenus dans la chane.

52

La chane de sortie est plus grande que la destination.

Crez un nouveau type de donnes chane suffisamment


grand pour la chane de sortie. Utilisez le nouveau type
de donnes chane comme type de donnes pour la
destination.

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

Publication 1756-RM003F-FR-P - Mai 2002

18-8

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condition

Action de la logique relais

Action du texte structur

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction convertit la Source.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsque temp_high est activ, l'instruction DTOS convertit la valeur


dans msg_num en une chane de caractres ASCII et place le rsultat
dans msg_num_ascii. Les lignes suivantes insrent ou assemblent
msg_num_ascii avec d'autres chanes pour produire un message
complet pour un terminal d'affichage.

Logique relais
temp_high

DTOS
DINT to String
Source
msg_num
23
Dest msg_num_ascii
'23'

Texte structur
IF temp_high THEN
DTOS(msg_num,msg_num_ascii);
temp_high := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

REAL vers chane (RTOS)

18-9

L'instruction RTOS donne la reprsentation ASCII d'une valeur REAL.

Oprandes :
Logique relais
RTOS
Real to String
Source
Dest

?
??
?
??

Oprande

Type

Format

Entrez

Source

REAL

point

le point qui contient la


valeur REAL

Destination

STRING

point

le point qui stocke la valeur Les types de donnes chane sont :


ASCII
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.

RTOS(Source,Dest);

Remarques

Texte structur
Les oprandes sont les mmes que ceux de l'instruction RTOS en
logique relais.

Description : L'instruction RTOS convertit la Source en une chane de caractres


ASCII et place le rsultat dans la Destination.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur :
Type

Code

Cause

51

La valeur LEN de la chane de caractres est suprieure


la taille DATA de la chane de caractres.

52

La chane de sortie est plus grande que la destination.

Mthode de correction
1. Vrifiez qu'aucune instruction n'crit dans le
membre LEN de la chane.
2. Dans la valeur LEN, entrez le nombre de caractres
contenus dans la chane.
Crez un nouveau type de donnes chane suffisamment
grand pour la chane de sortie. Utilisez le nouveau type de
donnes chane comme type de donnes pour la
destination.

Publication 1756-RM003F-FR-P - Mai 2002

18-10

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction convertit la Source.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Exemple : Lorsque send_data est activ, l'instruction RTOS convertit la valeur


dans data_1 en une chane de caractres ASCII et place le rsultat
dans data_1_ascii. Les lignes suivantes insrent ou assemblent
data_1_ascii avec d'autres chanes pour produire un message complet
pour un terminal d'affichage.
Il peut y avoir une petite diffrence entre les parties dcimales de la
Source et de la Destination.

Logique relais
send_data

RTOS
Real to String
Source
data_1
15.3001
Dest data_1_ascii
'15.3001003'

Texte structur
IF send_data THEN
RTOS(data_1,data_1_ascii);
send_data := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Majuscule (UPPER)

18-11

L'instruction UPPER convertit les caractres alphabtiques d'une


chane en caractres majuscules.

Oprandes :
Logique relais

UPPER(Source,Dest);

Oprande

Type

Format

Description

Source

STRING

point

point qui contient les caractres que vous


voulez convertir en majuscules

Destination

STRING

point

point qui stocke les caractres en majuscules

Texte structur
Les oprandes sont les mmes que ceux de l'instruction UPPER en
logique relais.

Description : L'instruction UPPER convertit toutes les lettres de Source en


majuscules et place le rsultat dans la Destination.
Les caractres ASCII sont diffrents s'ils sont en majuscules ou
en minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).
Si des oprateurs entrent directement des caractres ASCII,
convertissez-les tous en majuscules ou en minuscules avant de
les comparer.
Tout caractre de la chane Source qui n'est pas une lettre reste
inchang.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction convertit la Source en majuscules.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

18-12

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemple : Pour trouver des informations sur un lment particulier, un oprateur


entre la rfrence de l'lment dans un terminal ASCII. Une fois que
l'automate a lu l'entre partir d'un terminal (terminal_read.EM est
activ), l'instruction UPPER convertit les caractres dans
catalog_number en majuscules et stocke le rsultat dans
catalog_number_upper_case. Une ligne suivante recherche alors dans
un tableau les caractres correspondant ceux de
catalog_number_upper_case.

Logique relais

Texte structur
IF terminal_read.EM THEN
UPPER(catalog_number,catalog_number_upper_case);
terminal_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Minuscule (LOWER)

18-13

L'instruction LOWER convertit les caractres alphabtiques d'une


chane en caractres minuscules.

Oprandes :
Logique relais

LOWER(Source,Dest);

Oprande

Type

Format

Description

Source

STRING

point

point qui contient les caractres que vous


voulez convertir en minuscules

Destination

STRING

point

point qui stocke les caractres en minuscules

Texte structur
Les oprandes sont les mmes que ceux de l'instruction LOWER en
logique relais.

Description : L'instruction LOWER convertit toutes les lettres de Source en


minuscules et place le rsultat dans la Destination.
Les caractres ASCII sont diffrents s'ils sont en majuscules ou
en minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).
Si des oprateurs entrent directement des caractres ASCII,
convertissez-les tous en majuscules ou en minuscules avant de
les comparer.
Tout caractre de la chane Source qui n'est pas une lettre reste
inchang.

Indicateurs d'tat arithmtique : non affects


Conditions d'erreur : aucune
Excution :
Condition

Action de la logique relais

Action du texte structur

pendant la pr-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

si l'tat d'entre de la ligne


est faux

L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne


est vrai

L'instruction est excute.


L'tat de sortie de la ligne est rgl sur vrai.

si EnableIn est activ

EnableIn est toujours activ.


L'instruction est excute.

pendant l'excution de
l'instruction

L'instruction convertit la Source en minuscules.

pendant la post-scrutation

L'tat de sortie de la ligne est rgl sur faux.

Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

18-14

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemple : Pour trouver des informations sur un lment particulier, un oprateur


entre la rfrence de l'lment dans un terminal ASCII. Une fois que
l'automate a lu l'entre partir d'un terminal (terminal_read.EM est
activ), l'instruction LOWER convertit les caractres dans
item_number en minuscules et stocke le rsultat dans
item_number_lower_case. Une ligne suivante recherche alors dans un
tableau les caractres correspondant ceux de
item_number_lower_case.

Logique relais

Texte structur
IF terminal_read.EM THEN
LOWER(item_number,item_number_lower_case);
terminal_read.EM := 0;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Annexe

Attributs communs

Introduction

Valeurs immdiates

Cette annexe dcrit les attributs communs aux instructions Logix.


Pour des informations sur les

Voir page

Valeurs immdiates

A-1

Conversions de donnes

A-1

Lorsque vous entrez une valeur immdiate (constante) en format


dcimal (ex. : -2, 3), l'automate stocke la valeur en utilisant 32 bits. Si
vous entrez une valeur dans une base numrique autre que dcimale,
telle que binaire ou hexadcimale, et si vous ne prcisez pas la totalit
des 32 bits, l'automate place un zro dans les bits que vous ne
prcisez pas (remplissage par des zros).
EXEMPLE

Conversions de donnes

Remplissage de valeurs immdiates par des zros

Si vous entrez

L'automate stocke

-1

16#ffff ffff (-1)

16#ffff (-1)

16#0000 ffff (65535)

8#1234 (668)

16#0000 029c (668)

2#1010 (10)

16#0000 000a (10)

Des conversions de donnes ont lieu lorsque vous combinez


diffrents types de donnes dans votre programmation.
En programmation en

Des conversions peuvent avoir lieu quand

logique relais

vous combinez diffrents types de donnes pour les


paramtres d'une instruction

blocs fonctionnels

vous relier deux paramtres ayant des types de donnes


diffrents

Publication 1756-RM003F-FR-P - Mai 2002

A-2

Attributs communs

Les instructions sont excutes plus rapidement et requirent moins


de mmoire si tous les oprandes de l'instruction utilisent :
le mme type de donnes ;
un type de donnes optimal :
dans la section Oprandes de chaque instruction dcrite
dans ce manuel, le type de donnes en gras indique le type
de donnes optimal,
les types de donnes DINT et REAL sont gnralement les
types optimaux,
la plupart des instructions de bloc fonctionnel n'acceptent
qu'un type de donnes (le type optimal) pour ses oprandes.
Si vous combinez diffrents types de donnes et utilisez des points
qui ne sont pas le type de donnes optimal, l'automate convertit les
donnes selon ces rgles.
Au moins un des oprandes est-il une valeur REAL ?
Si

Les oprandes d'entre (source, point dans une expression,


limite) sont convertis en

Oui

REAL

Non

DINT

Aprs l'excution de l'instruction, le rsultat (une valeur DINT


ou REAL) est converti dans le type de donnes de la destination,
si ncessaire.
Vous ne pouvez pas spcifier un point BOOL dans une instruction
fonctionnant sur des types de donnes de nombres entiers ou REAL.
La conversion des donnes ncessitant du temps et de la mmoire
supplmentaires, vous pouvez amliorer l'efficacit de vos
programmes en :
utilisant le mme type de donnes dans toute l'instruction ;
minimisant l'utilisation des types de donnes SINT ou INT.
En d'autres termes, utilisez tous les points DINT ou REAL, avec des
valeurs immdiates, dans vos instructions.
Les sections suivantes indiquent comment les donnes sont converties
lorsque vous utilisez les points SINT ou INT, ou lorsque vous
combinez diffrents types de donnes.

Publication 1756-RM003F-FR-P - Mai 2002

Attributs communs

A-3

SINT ou INT en DINT


Pour les instructions qui convertissent des valeurs SINT ou INT en
valeurs DINT, les sections Oprandes de ce manuel indiquent la
mthode de conversion.
Cette mthode de
conversion

Convertit les donnes en plaant

Extension de signe

la valeur du bit le plus gauche (le signe de la valeur) dans


chaque position de bit gauche des bits existants jusqu'
ce qu'il y ait 32 bits.

Remplissage par des zros

des zros gauche des bits existants jusqu' ce qu'il y ait


32 bits

L'exemple suivant montre les rsultats de la conversion d'une valeur


l'aide de l'extension de signe et du remplissage par des zros.
Cette valeur

2#1111_1111_1111_1111

(-1)

Est convertie en cette


valeur par extension de
signe

2#1111_1111_1111_1111_1111_1111_1111_1111 (-1)

Est convertie en cette


valeur par remplissage
par des zros

2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)

Les valeurs immdiates tant toujours converties par remplissage par


des zros, la conversion d'une valeur SINT ou INT peut produire des
rsultats inattendus. Dans l'exemple suivant, la comparaison est fausse
parce que Source A, une valeur INT, est convertie par extension de
signe, alors que Source B, une valeur immdiate, est convertie par
remplissage par des zros.

der Logic Listing - Total number of rungs: 3


EQU
Equal
Source A

remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B 2#1111_1111_1111_1111
42093

Si vous utilisez un point SINT ou INT et une valeur immdiate dans


une instruction qui convertit des donnes par extension de signe,
utilisez l'une des mthodes suivantes pour manipuler les valeurs
immdiates :
indiquez toute valeur immdiate en base dcimale ;
si vous entrez la valeur dans une base numrique autre que
dcimale, prcisez la totalit des 32 bits de la valeur immdiate.
Pour cela, entrez la valeur du bit le plus gauche dans chaque
position de bit sa gauche, jusqu' ce qu'il y ait 32 bits ;

Publication 1756-RM003F-FR-P - Mai 2002

A-4

Attributs communs

crez un point pour chaque oprande et utilisez le mme type


de donnes dans toute l'instruction. Pour attribuer une valeur
constante, procdez de l'une des faons suivantes :
entrez-la dans l'un des points,
ajoutez une instruction MOV qui dplace la valeur dans l'un
des points.
utilisez une instruction MEQ pour vrifier uniquement les bits
requis.
Les exemples suivants montrent deux faons de combiner une valeur
immdiate avec un point INT. Ces deux exemples vrifient les bits
d'un module d'E/S 1771 pour dterminer si tous les bits sont activs.
Le mot de donnes d'entre d'un module d'E/S 1771 tant un point
INT, le plus simple est d'utiliser une valeur constante de 16 bits.
EXEMPLE

Combinaison d'un point INT avec une valeur


immdiate
remote_rack_1:I.Data[0] tant un point INT, la valeur
par rapport laquelle il est vrifi est galement
entre comme un point INT.

EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B
int_0
2#1111_1111_1111_1111
42093

EXEMPLE

Combinaison d'un point INT avec une valeur


immdiate
remote_rack_1:I.Data[0] tant un point INT, la valeur
par rapport laquelle il est vrifi est d'abord
dplace dans int_0, un point INT galement.
L'instruction EQU compare alors les deux points.

2#1111_1111_1111_1111

MOV
Move
Source 2#1111_1111_1111_1111
Dest

int_0
2#1111_1111_1111_1111

EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B
int_0
2#1111_1111_1111_1111

42093

Nombre entier en REAL


L'automate stocke les valeurs REAL dans le format de nombre
virgule flottante et prcision unique IEEE. Il utilise un bit pour le signe
de la valeur, 23 bits pour la valeur de base, et huit bits pour l'exposant
(32 bits au total). Si vous combinez un point de nombre entier (SINT,
INT ou DINT) et un point REAL comme entres dans la mme

Publication 1756-RM003F-FR-P - Mai 2002

Attributs communs

A-5

instruction, l'automate convertit la valeur de nombre entier en valeur


REAL avant que l'instruction ne soit excute.
Une valeur SINT ou INT est toujours convertie dans la mme
valeur REAL.
Une valeur DINT peut ne pas tre convertie dans la mme
valeur REAL :
une valeur REAL utilise jusqu' 24 bits pour la valeur de base
(23 bits stocks, plus un bit cach ) ;
une valeur DINT utilise jusqu' 32 bits pour la valeur (un
pour le signe et 31 pour la valeur) ;
si la valeur DINT requiert plus de 24 bits significatifs, elle peut
ne pas tre convertie dans la mme valeur REAL. Si c'est le
cas, l'automate arrondit la valeur REAL la plus proche avec
24 bits significatifs.

DINT en SINT ou INT


Pour convertir une valeur DINT en valeur SINT ou INT, l'automate
tronque la partie suprieure de la valeur DINT et active l'indicateur
d'tat de dpassement suprieur, si ncessaire. L'exemple suivant
montre le rsultat d'une conversion DINT en SINT ou INT.
EXEMPLE

Conversion d'une valeur DINT en valeur INT et SINT

Cette valeur DINT

Est convertie en cette valeur infrieure

16#0001_0081 (65,665)

INT :

16#0081 (129)

SINT :

16#81 (-127)

REAL en nombre entier


Pour convertir une valeur REAL en un nombre entier, l'automate
arrondit la partie dcimale et tronque la partie suprieure de la partie
non dcimale. Si des donnes sont perdues, lautomate active
lindicateur dtat de dpassement suprieur. Les nombres sont
arrondis de la faon suivante :
les nombres autres que x,5 sont arrondis au nombre entier le
plus proche ;
x,5 est arrondi au nombre pair le plus proche.

Publication 1756-RM003F-FR-P - Mai 2002

A-6

Attributs communs

L'exemple suivant donne le rsultat de la conversion de valeurs REAL


en valeurs DINT.
EXEMPLE
Cette valeur REAL

Est convertie en cette valeur DINT

-2,5

-2

-1,6

-2

-1,5

-2

-1,4

-1

1,4

1,5

1,6

2,5

IMPORTANT

Publication 1756-RM003F-FR-P - Mai 2002

Conversion de valeurs REAL en valeurs DINT

Les indicateurs d'tat arithmtique sont activs en


fonction de la valeur stocke. Les instructions qui, en
principe, n'affectent pas les mots-cls d'tat
arithmtique peuvent sembler le faire si une
conversion de type se produit cause de types de
donnes combins dans les paramtres de
l'instruction. Le processus de conversion de type
active les mots-cls d'tat arithmtique.

Annexe

Attributs de bloc fonctionnel

Introduction

Cette annexe dcrit des caractristiques propres aux instructions de


bloc fonctionnel. Lisez les informations contenues dans cette annexe
pour vous assurer que vous comprenez le fonctionnement de vos
sous-programmes de blocs fonctionnels.

IMPORTANT

Verrouillage des donnes

Lorsque vous programmez en blocs fonctionnels, limitez la plage


des units procd +/-10+/-15 car les calculs virgule flottante
internes sont effectus en virgule flottante simple prcision. Les
units procd en dehors de cette plage peuvent entraner une
perte de prcision si les rsultats approchent les limites de virgule
flottante simple prcision (+/-10+/-38).

Si vous utilisez une instruction IREF pour spcifier les donnes


d'entre d'une instruction de bloc fonctionnel, les donnes dans
l'instruction IREF sont verrouilles durant la scrutation du
sous-programme de blocs fonctionnels, qu'elles proviennent de points
d'accs programme ou d'accs automate. L'automate actualise toutes
les donnes IREF au dbut de chaque scrutation.

IREF

Dans cet exemple, la valeur de pointA est stocke au dbut de


l'excution du sous-programme. La valeur stocke est utilise lorsque
Bloc_01 est excut. Cette valeur est galement utilise lorsque
Bloc_02 est excut. Si la valeur de pointA change pendant
l'excution du sous-programme, la valeur stocke de pointA dans
l'instruction IREF ne change pas avant l'excution suivante du
sous-programme.
Bloc_01

pointA

Bloc_02

Publication 1756-RM003F-FR-P - Mai 2002

B-2

Attributs de bloc fonctionnel

Cet exemple est identique au prcdent. La valeur de pointA est stocke


une seule fois au dbut de l'excution du sous-programme. Le
sous-programme utilise cette valeur pour l'ensemble du
sous-programme.
Bloc_01

pointA

Bloc_02

pointA

Dans la version 11 du logiciel RSLogix 5000, vous pouvez utiliser le


mme point dans plusieurs instructions IREF et une instruction OREF
dans le mme sous-programme. Les valeurs des points dans les
instructions IREF tant verrouilles par le sous-programme chaque
scrutation, les instructions IREF utilisent toutes la mme valeur, mme
si une instruction OREF reoit une valeur de point diffrente pendant
l'excution du sous-programme. Dans cet exemple, si pointA a une
valeur de 25,4 lorsque le sous-programme commence cette scrutation,
et si le Bloc_01 change la valeur de pointA en 50,9, la seconde
instruction IREF lie Bloc_02 utilise toujours une valeur de 25,4
lorsque Bloc_02 excute cette scrutation. La nouvelle valeur 50,9 de
pointA n'est utilise par aucune instruction IREF de ce
sous-programme jusqu' la scrutation suivante.

Publication 1756-RM003F-FR-P - Mai 2002

Attributs de bloc fonctionnel

Ordre d'excution

B-3

Le logiciel de programmation RSLogix 5000 dtermine


automatiquement l'ordre d'excution des blocs fonctionnels dans un
sous-programme lorsque vous :
vrifiez un sous-programme de blocs fonctionnels ;
vrifiez un projet contenant un sous-programme de blocs
fonctionnels ;
chargez un projet contenant un sous-programme de blocs
fonctionnels.
Vous dfinissez l'ordre d'excution lors du cblage des blocs
fonctionnels et en indiquant les boucles de retour, si ncessaire.
Si les blocs fonctionnels ne sont pas relis entre eux, il n'y a pas
d'ordre d'excution dterminer.

Si vous reliez les blocs de faon squentielle, l'ordre d'excution va de


l'entre la sortie. Les entres d'un bloc doivent tre disponibles
avant que l'automate ne puisse excuter ce bloc. Par exemple, le
bloc 2 doit tre excut avant le bloc 3 parce que les sorties du bloc 2
alimentent les entres du bloc 3.
1

L'ordre d'excution est valable uniquement pour les blocs relis entre
eux. L'exemple suivant est correct parce que les deux groupes de
blocs ne sont pas relis entre eux. Les blocs d'un groupe particulier
sont excuts dans l'ordre appropri par rapport aux blocs de ce
groupe.
1

Publication 1756-RM003F-FR-P - Mai 2002

B-4

Attributs de bloc fonctionnel

Si les blocs d'un groupe sont dans une boucle, l'automate ne peut pas
dterminer les entres qui doivent tre accessibles en premier. Utilisez
une boucle de retour pour dterminer les entres qui doivent tre
accessibles en premier. Si un connecteur d'entre est connect une
boucle de retour, il n'est pas ncessaire que l'entre soit accessible
pour que le bloc soit excut. Dans cet exemple, le bloc 1 utilise la
sortie du bloc 3 produite lors de la prcdente excution
du sous-programme.
1

boucle de retour

En rsum, un sous-programme de blocs fonctionnels est excut


dans l'ordre suivant :
1. L'automate verrouille toutes les valeurs de donnes dans les
instructions IREF.
2. L'automate excute les autres blocs fonctionnels dans l'ordre
dtermin par leur cblage.
3. L'automate crit les sorties dans des instructions OREF.

Publication 1756-RM003F-FR-P - Mai 2002

Attributs de bloc fonctionnel

Rponses de bloc
fonctionnel aux conditions
de dpassement

B-5

En gnral, les instructions de bloc fonctionnel qui intgrent une


valeur ne mettent pas jour cette valeur lorsqu'un dpassement se
produit. Chaque instruction rpond de l'une des faons suivantes un
dpassement :

Rponse 1 :
Les blocs excutent leur algorithme et
vrifient le rsultat pour NAN ou INF. Si
NAN ou INF, la sortie du bloc est NAN
ou INF.

Rponse 2 :
Les blocs avec limite de sortie excutent
leur algorithme et vrifient le rsultat pour
NAN ou INF. Les limites de sortie sont
dfinies par les paramtres d'entre
HighLimit et LowLimit. Si INF, la sortie du
bloc donne un rsultat limit. Si NAN, les
limites de sortie ne sont pas utilises et la
sortie du bloc est NAN.

Rponse 3 :
Il n'y a pas de condition de dpassement. Ces
instructions ont gnralement une sortie
boolenne.

ALM
DEDT
DERV
ESEL
FGEN
HPF
LDL2
LDLG
LPF
MAVE
MAXC
MINC
MSTD
MUX

HLL
INTG
PI
PIDE
SCL
SOC

BAND
BNOT
BOR
BXOR
CUTD
D2SD
D3SD
DFF
JKFF
OSFI

NTCH
PMUL
POSP
RLIM
RMPS
SCRV
SEL
SNEG
SRTP
SSUM
TOT
UPDN

Modes de temporisation

OSRI
RESD
RTOR
SETD
TOFR
TONR

Ces instructions de commande de procd et de variation de vitesse


prennent en charge diffrents modes de temporisation.
DEDT

NTCH

DERV

PI

HPF

PIDE

INTG

RLIM

LDLG

SCRV

LDL2

SOC

LPF

TOT

Publication 1756-RM003F-FR-P - Mai 2002

B-6

Attributs de bloc fonctionnel

Il existe trois modes de temporisation :


Mode de temporisation

Description

priodique

En mode priodique, la variable de temps (DeltaT) utilise par l'instruction est la frquence de scrutation de
la tche lorsque l'instruction est excute dans une tche priodique. Si l'instruction est excute pendant
une tche continue, la variable DeltaT est gale au temps coul depuis l'excution prcdente.
La mise jour de l'entre procd doit tre synchronise avec l'excution de la tche ou chantillonne 5
10 fois plus rapidement que l'excution de la tche, afin de minimiser l'erreur d'chantillonnage entre
l'entre et l'instruction.

surchantillonnage

En mode de surchantillonnage, la variable de temps (DeltaT) utilise par l'instruction est la valeur crite
dans le paramtre OversampleDT de l'instruction. Utilisez ce mode lorsque l'instruction est excute dans
une tche continue et lorsque l'entre procd n'a pas d'horodatage associ ses mises jour. Si l'entre
procd a une valeur d'horodatage, utilisez le mode d'chantillonnage en temps rel.
Ajoutez une logique votre programme pour commander l'excution de l'instruction. Vous pouvez utiliser,
par exemple, un temporisateur rgl sur la valeur OversampleDeltaT pour commander l'excution en
utilisant l'entre EnableIn de l'instruction.
L'entre procd doit tre chantillonne 5 10 fois plus rapidement que l'excution de l'instruction, afin de
minimiser l'erreur d'chantillonnage entre l'entre et l'instruction.

chantillonnage en temps
rel

En mode d'chantillonnage en temps rel, la variable de temps (DeltaT) utilise par l'instruction est la
diffrence entre deux valeurs d'horodatage qui correspondent aux mises jour de l'entre procd. Utilisez
ce mode lorsque l'instruction est excute dans une tche continue et lorsque l'entre procd a un
horodatage associ ses mises jour.
La valeur d'horodatage est lue partir du nom de point entr pour le paramtre RTSTimeStamp de
l'instruction. Ce nom de point est, en principe, un paramtre du module d'entre associ l'entre procd.
L'instruction compare la valeur RTSTime configure (frquence d'actualisation attendue) la valeur DeltaT
calcule pour dterminer si toutes les mises jour de l'entre procd sont lues par l'instruction. Si DeltaT
n'est pas moins d'1 milliseconde du temps de configuration, l'instruction active le bit d'tat RTSMissed
pour indiquer un problme de lecture des mises jour de l'entre du module.

Les instructions bases sur le temps requirent une valeur constante


pour DeltaT pour que l'algorithme de commande calcule correctement
la sortie procd. Si DeltaT varie, une discontinuit se produit dans la
sortie procd. L'importance de cette discontinuit dpend de
l'instruction et de la plage dans laquelle DeltaT varie. Une
discontinuit se produit si :
l'instruction n'est pas excute pendant une scrutation ;
l'instruction est excute plusieurs fois pendant une tche ;
la tche est en cours d'excution et sa frquence de scrutation
ou le temps d'chantillonnage de l'entre procd change ;
l'utilisateur change le mode de temporisation pendant
l'excution de la tche ;
le paramtre Ordre est modifi sur un bloc filtre pendant
l'excution de la tche. La modification du paramtre Ordre
slectionne un algorithme de commande diffrent dans
l'instruction.

Publication 1756-RM003F-FR-P - Mai 2002

Attributs de bloc fonctionnel

B-7

Paramtres d'instruction communs pour les modes de


temporisation
Les instructions qui prennent en charge les modes de temporisation
ont les paramtres d'entre et de sortie suivants :

Paramtres d'entre
Paramtre d'entre

Type de
donnes

Description

TimingMode

DINT

Slectionne le mode de temporisation.


Valeur : Description :
0
mode priodique
1
mode de surchantillonnage
2
mode d'chantillonnage en temps rel
Valeurs correctes = 0 2.
Par dfaut = 0.
Lorsque TimingMode = 0 et lorsque la tche est priodique, le mode priodique est activ et
DeltaT est rgle sur la frquence de scrutation de la tche. Lorsque TimingMode = 0 et que
la tche est continue, le mode priodique est activ et DeltaT est rgle pour tre gale au
temps coul depuis la dernire excution de l'instruction.
Lorsque TimingMode = 1, le mode de surchantillonnage est activ et DeltaT est rgle sur
la valeur du paramtre OversampleDT.
Lorsque TimingMode = 2, le mode d'chantillonnage en temps rel est activ et DeltaT
correspond la diffrence entre la valeur d'horodatage en cours et la valeur prcdente lues
partir du module associ l'entre.
Si TimingMode est incorrect, l'instruction active le bit appropri dans Status.

OversampleDT

REAL

Dure d'excution pour la temporisation de surchantillonnage. La valeur utilise pour


DeltaT est en secondes. Si TimingMode = 1, alors OversampleDT = 0,0 dsactive l'excution
de l'algorithme de commande. Si la valeur est incorrecte, l'instruction rgle DeltaT = 0,0 et
active le bit appropri dans Status.
Valeurs correctes = 0 4194,303 secondes.
Par dfaut = 0,0.

RTSTime

DINT

Frquence d'actualisation du module en mode d'chantillonnage en temps rel. La frquence


d'actualisation DeltaT attendue est en millisecondes. La frquence d'actualisation est, en
principe, la valeur utilise pour configurer la frquence d'actualisation du module. Si la
valeur est incorrecte, l'instruction active le bit appropri dans Status et dsactive la
vrification de RTSMissed.
Valeurs correctes = 1 32 767 ms.
Par dfaut = 1.

RTSTimeStamp

DINT

Valeur d'horodatage en mode d'chantillonnage en temps rel. Valeur d'horodatage


correspondant la dernire mise jour du signal d'entre. Cette valeur est utilise pour
calculer DeltaT. Si la valeur est incorrecte, l'instruction active le bit appropri dans Status,
dsactive l'excution de l'algorithme de commande, ainsi que la vrification de RTSMissed.
Valeurs correctes = 1 32 767 ms (revient de 32 767 0).
1 comptage = 1 milliseconde.
Par dfaut = 0.

Publication 1756-RM003F-FR-P - Mai 2002

B-8

Attributs de bloc fonctionnel

Paramtres de sortie
Paramtre de sortie

Type de
donnes

Description

DeltaT

REAL

Temps coul entre les mises jour. Temps coul en secondes, utilis par l'algorithme de
commande pour calculer la sortie procd.
Priodique : DeltaT = frquence de scrutation de la tche si la tche est priodique ; DeltaT =
temps coul depuis la prcdente 'excution de l'instruction si la tche est continue.
Surchantillonnage : DeltaT = OversampleDT
Echantillonnage en temps rel :DeltaT = (RTSTimeStampn - RTSTimeStampn-1)

Status

DINT

Etat du bloc fonctionnel.

TimingModeInv
(Status.27)

BOOL

Valeur TimingMode incorrecte.

RTSMissed (Status.28) BOOL

Utilis uniquement en mode d'chantillonnage en temps rel. Activ quand ABS | DeltaT RTSTime | > 1 (0,001 seconde).

RTSTimeInv
(Status.29)

BOOL

Valeur RTSTime incorrecte.

RTSTimeStampInv
(Status.30)

BOOL

Valeur RTSTimeStamp incorrecte.

DeltaTInv (Status.31)

BOOL

Valeur DeltaT incorrecte.

Publication 1756-RM003F-FR-P - Mai 2002

Attributs de bloc fonctionnel

B-9

Prsentation des modes de temporisation


Le schma suivant indique comment une instruction dtermine le
mode de temporisation appropri.

Dtermine le mode de
temporisation
TimingMode = 0

Temporisation priodique

TimingMode = 1

TimingMode = 2

Temporisation en temps rel

Temporisation de surchantillonnage

DeltaT = OversampleDT

DeltaT = RTSTimeStampn - RTSTimeStampn-1

Si DeltaT < 0 ou DeltaT > 4 194,303 s,


l'instruction rgle DeltaT = 0,0 et active
le bit appropri dans Status.

Si DeltaT > 0, l'instruction est excute.


Si |RTSTIME - DeltaT| > 1, l'instruction active le bit
RTSMissed dans Status.

Si DeltaT > 0, l'instruction est excute.


Dtermine le type de tche

Tche priodique

DeltaT = temps de scrutation de la tche

Tche non priodique

DeltaT = temps coul depuis la dernire


excution

Si DeltaT > 0, l'instruction est excute.


Si DeltaT > 0, l'instruction est excute.

Publication 1756-RM003F-FR-P - Mai 2002

B-10

Attributs de bloc fonctionnel

Commande
Programme/Oprateur

Plusieurs instructions prennent en charge le concept de commande


Programme/Oprateur. Ces instructions comprennent :

Slection tendue (ESEL) ;


Totalisateur (TOT) ;
PID tendu (PIDE) ;
Rampe/Palier (RMPS)
Dispositif 2 tats TOR (D2SD) ;
Dispositif 3 tats TOR (D3SD).

La commande Programme/Oprateur vous permet de commander ces


instructions simultanment depuis votre programme utilisateur et
depuis interface oprateur. En commande Programme, l'instruction est
commande par les entres programme dans l'instruction ; en
commande Oprateur, l'instruction est commande par les entres
oprateur dans l'instruction.
La commande Programme ou Oprateur est dtermine par
l'utilisation des entres suivantes :
Entre

Description

.ProgProgReq

Demande du programme pour passer en commande Programme.

.ProgOperReq

Demande du programme pour passer en commande Oprateur.

.OperProgReq

Demande de l'oprateur pour passer en commande Programme.

.OperOperReq

Demande de l'oprateur pour passer en commande Oprateur.

Pour dterminer si une instruction est en commande Programme ou


Oprateur, examinez la sortie ProgOper. Si ProgOper est active,
l'instruction est en commande Programme ; si ProgOper est
dsactive, l'instruction est en commande oprateur.
La commande Oprateur est prioritaire sur la commande Programme
si les deux bits de demande d'entre sont activs. Par exemple, si
ProgProgReq et ProgOperReq sont activs, l'instruction passe en
commande Oprateur.
Les entres de demande Programme sont prioritaires sur les entres
de demande Oprateur. Ceci permet d'utiliser les entres ProgProgReq
et ProgOperReq pour verrouiller une instruction dans la commande
dsire. Supposons par exemple qu'une instruction Totalisateur soit
toujours utilise en commande Oprateur et que votre programme
utilisateur ne commande jamais le fonctionnement ou l'arrt du
Totalisateur. Dans ce cas, vous pouvez entrer une valeur littrale de 1
dans ProgOperReq, ce qui empche l'oprateur de mettre le

Publication 1756-RM003F-FR-P - Mai 2002

Attributs de bloc fonctionnel

B-11

Totalisateur en commande Programme par l'activation d'OperProgReq


partir d'une interface oprateur.

L'entre ProgOperReq tant toujours


active, appuyer sur le bouton
Program sur la face avant (ce qui
active l'entre OperProgReg) n'a
aucun effet. Normalement,
l'activation de OperProgReq met le
Totalisateur (TOT) en commande
Programme.
Entrer un 1 dans ProgOperReq
signifie que le programme utilisateur
veut toujours TOT en commande
Oprateur.

De mme, l'activation constante de ProgProgReq peut verrouiller


l'instruction en commande Programme. C'est utile pour les squences
de dmarrage automatique lorsque vous voulez que le programme
commande l'action de l'instruction, sans avoir vous soucier d'un
oprateur qui prendrait la commande de l'instruction par
inadvertance. Dans cet exemple, le programme active l'entre
ProgProgReq au dmarrage, puis l'efface une fois le dmarrage
termin. Une fois l'entre ProgProgReq efface, l'instruction reste en
commande Programme jusqu' ce qu'elle reoive une demande de
changement. Par exemple, l'oprateur peut activer l'entre
OperOperReq partir de la face avant pour reprendre la commande
de cette instruction. L'exemple suivant montre comment verrouiller
une instruction en commande Programme.

Lorsque StartupSequenceActive
est activ, l'instruction PIDE
passe en commande
Programme et en mode Manuel.
La valeur StartupCV est utilise
comme sortie de boucle.

Publication 1756-RM003F-FR-P - Mai 2002

B-12

Attributs de bloc fonctionnel

Les entres de demande Oprateur d'une instruction sont toujours


effaces par l'instruction lors de son excution. De cette faon, les
interfaces oprateur peuvent fonctionner avec ces instructions
simplement en activant le bit de demande de mode souhait. Vous
n'avez pas besoin de programmer l'interface oprateur pour
rinitialiser les bits de demande. Par exemple, si une interface
oprateur active l'entre OperAutoReq d'une instruction PIDE, lors de
l'excution de cette instruction, elle dtermine la rponse approprie
et efface OperAutoReq.
En principe, les entres de demande Programme ne sont pas effaces
par l'instruction, parce qu'elles sont normalement cbles comme
entres dans l'instruction. Si l'instruction efface ces entres, l'entre est
ractive par l'entre cble. Il peut arriver que vous souhaitiez
utiliser une autre logique pour activer les demandes Programme, de
sorte que ces dernires soient effaces par l'instruction. Dans ce cas,
vous pouvez activer l'entre ProgValueReset et l'instruction, lors de
son excution, effacera systmatiquement les entres de demande de
mode Programme.
Dans cet exemple, une ligne de logique relais d'un autre
sous-programme est utilise comme commande impulsionnelle de
verrouillage en mode Auto (ProgAutoReq) d'une instruction PIDE, sur
activation d'un bouton-poussoir. L'instruction PIDE efface
automatiquement les demandes de mode Programme, vous n'avez
donc pas besoin d'crire une logique relais pour effacer
ProgAutoReq aprs l'excution du sous-programme : l'instruction
PIDE reoit seulement une demande pour passer en mode Auto
chaque fois que le bouton-poussoir est activ.
Appuyer sur le bouton-poussoir TIC101AutoReq verrouille ProgAutoReq pour l'instruction PIDE TIC101. TIC101
a t configur avec l'entre ProgValueReset active : par consquent, lorsque l'instruction PIDE est excute,
elle efface automatiquement ProgAutoReq.

Publication 1756-RM003F-FR-P - Mai 2002

Annexe

Programmation en texte structur

Introduction

Cette annexe dcrit des caractristiques propres la programmation


en texte structur. Lisez les informations contenues dans cette annexe
pour vous assurer que vous comprenez comment votre
programmation en texte structur sera excute.

Syntaxe du texte structur

Pour des informations sur

Voir page

Syntaxe du texte structur

C-1

Affectations

C-2

Expressions

C-4

Instructions

C-10

Instructions de test

C-11

Commentaires

C-26

Le texte structur est un langage de programmation textuel qui utilise


des instructions pour dfinir ce qui doit tre excut. Le texte
structur ne fait pas de distinction entre majuscules et minuscules. Il
peut contenir les composants suivants :

Terme

Dfinition

Exemples

affectation
(voir page C-2)

Utilisez une instruction d'affectation pour attribuer des valeurs des


points.
L'oprateur := est l'oprateur d'affectation.
Terminez l'affectation par un point-virgule ;.

point := expression;

expression
(voir page C-4)

Une expression fait partie d'une affectation complte ou d'une


commande construite. Une expression se traduit par un nombre
(expression numrique) ou par un tat vrai ou faux (expression
boolenne).
Une expression contient les lments suivants :
des points

Zone dnomme de la mmoire o les donnes sont


stockes (BOOL, SINT, INT, DINT, REAL, STRING).

valeur1

des immdiats

Constante.

des oprateurs

Symbole ou mnmonique qui dfinit un oprateur


dans une expression.

point1 + point2
point1 >= valeur1

des fonctions

Lorsqu'elle est excute, une fonction donne une


valeur. Mettez l'oprande d'une fonction entre
parenthses.

fonction(point1)

Bien que leurs syntaxes soient similaires, les


fonctions diffrent des instructions dans la mesure
o elles ne peuvent tre utilises que dans des
expressions, alors que les instructions ne peuvent
pas l'tre.

Publication 1756-RM003F-FR-P - Mai 2002

C-2

Programmation en texte structur

Terme

Dfinition

Exemples

une instruction
(voir page C-10)

Instruction autonome.
Dans une instruction, les oprandes sont entre parenthses.
Suivant l'instruction, il peut y avoir aucun, un ou plusieurs oprandes.
Lorsqu'elle est excute, une instruction donne une ou plusieurs valeurs
qui font partie d'une structure de donnes.
Terminez l'instruction par un point-virgule ;.

instruction();
instruction(oprande);
instruction(oprande1,
oprande2,oprande3);

Bien que leurs syntaxes soient similaires, les instructions diffrent des
fonctions dans la mesure o elles ne peuvent pas tre utilises dans des
expressions, alors que les fonctions ne peuvent tre utilises que dans
des expressions.
des instructions
de test
(voir page C-11)

Instructions conditionnelles utilises pour dclencher un code en texte


structur (ex. : d'autres instructions).
Terminez l'instruction de test par un point-virgule ;.

IF...THEN
CASE
FOR...DO
WHILE...DO
REPEAT...UNTIL
EXIT

des
commentaires
(voir page C26)

Texte expliquant ce que fait une section de texte structur.


Utilisez les commentaires pour faciliter l'interprtation du texte
structur.
Les commentaires n'affectent pas l'excution du texte structur.
Les commentaires peuvent apparatre n'importe o dans le texte
structur.

//commentaire

Affectations

(*dbut de commentaire . .
. fin de commentaire*)
/*dbut de commentaire . .
. fin de commentaire*/

Utilisez une affectation pour changer la valeur stocke dans un point.


La syntaxe d'une affectation est la suivante :
point := expression ;
o :
Composant

Description

point

reprsente le point qui obtient la nouvelle valeur


le point doit tre de type BOOL, SINT, INT, DINT ou REAL

:=

symbole de l'affectation

expression

reprsente la nouvelle valeur attribuer au point

Si point est de ce type :

Utilisez ce type d'expression :

BOOL

expression boolenne

SINT
INT
DINT
REAL

expression numrique

termine l'affectation

Le point garde la valeur de l'affectation jusqu' ce qu'une autre


affectation change la valeur.
L'expression peut tre simple, comme une valeur immdiate ou un
autre nom de point, ou complexe et inclure plusieurs oprateurs et/ou
fonctions. Pour plus de dtails, voir la section Expressions ,
page C-4.

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-3

Spcification d'une affectation non rmanente


Une affectation non rmanente est diffrente de l'affectation standard
dcrite ci-dessus dans la mesure o le point dans une affectation non
rmanente est remis zro chaque fois que l'automate :
passe en mode Excution (Run) ;
sort de l'tape d'un graphe de fonctionnement squentiel (SFC)
si vous configurez le graphe pour une Rinitialisation
automatique (Automatic reset) (ceci est valable uniquement si
vous intgrez l'affectation dans l'action de l'tape ou si vous
utilisez l'action pour appeler un sous-programme en texte
structur au moyen d'une instruction JSR).
La syntaxe d'une affectation non rmanente est la suivante :
point [:=] expression ;
o :
Composant

Description

point

reprsente le point qui reoit la nouvelle valeur


le point doit tre de type BOOL, SINT, INT, DINT ou REAL

[:=]

symbole de l'affectation non rmanente

expression

reprsente la nouvelle valeur attribuer au point

Si point est de ce type :

Utilisez ce type
d'expression :

BOOL

expression boolenne

SINT
INT
DINT
REAL

expression numrique

termine l'affectation

Publication 1756-RM003F-FR-P - Mai 2002

C-4

Programmation en texte structur

Attribution d'un caractre ASCII une chane


Utilisez l'oprateur d'affectation pour attribuer un caractre ASCII un
lment DATA d'une chane de caractres. Pour attribuer un caractre,
indiquez la valeur du caractre ou le nom du point et l'lment DATA.
Par exemple :
Correct

Incorrect

string1.DATA[0]:= 65;

string1.DATA[0] := A;

string1.DATA[0]:= string2.DATA[0];

string1 := string2;

Pour ajouter ou insrer des caractres dans une chane, utilisez l'une
de ces instructions de chane ASCII :

Expressions

Pour

Utilisez cette instruction

ajouter des caractres la fin d'une chane

CONCAT

insrer des caractres dans une chane

INSERT

Une expression est un nom de point, une quation ou une


comparaison. Pour crire une expression, utilisez l'un des lments
suivants :
nom du point qui stocke la valeur (variable) ;
nombre entrer directement dans l'expression (valeur
immdiate) ;
fonction telle que ABS, TRUNC ;
oprateurs tels que +, -, <, >, And, Or.
Pour crire une expression, observez les rgles gnrales suivantes :
utilisez indiffremment des lettres majuscules ou minuscules. Par
exemple, ces trois variantes de ET sont correctes : ET, Et, et ;
pour des besoins plus complexes, utilisez des parenthses pour
regrouper des expressions dans d'autres expressions. Ceci
facilite la lecture de l'expression et vous permet de vous assurer
que l'expression sera excute dans l'ordre souhait. Voir
Dtermination de l'ordre d'excution , page C10.
En texte structur, vous utilisez deux types d'expressions :
Expression boolenne : expression qui produit la valeur boolenne
1 (vrai) ou 0 (faux).
Une expression boolenne utilise des points boolens, des
oprateurs de relation et des oprateurs logiques pour comparer
des valeurs ou vrifier si des conditions sont vraies ou fausses.
Par exemple, tag1>65.
Une expression boolenne simple peut tre un seul point
BOOL.

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-5

Gnralement, vous utilisez des expressions boolennes pour


conditionner l'excution d'une autre logique.
Expression numrique : expression qui calcule une valeur de
nombre entier ou virgule flottante.
Une expression numrique utilise des oprateurs et des
fonctions arithmtiques et des oprateurs sur bits. Par exemple,
tag1+5.
Une expression numrique est souvent imbrique dans une
expression de comparaison. Par exemple, (tag1+5)>65.
Utilisez le tableau suivant pour choisir des oprateurs pour vos
expressions :
Si vous voulez

Voir

calculer une valeur arithmtique

Utilisation d'oprateurs et de fonctions arithmtiques ,


page C-5.

comparer deux valeurs ou chanes

Utilisation d'oprateurs de relation , page C-7.

vrifier si des conditions sont vraies ou fausses

Utilisation d'oprateurs logiques , page C-8.

comparer les bits dans des valeurs

Utilisation d'oprateurs sur bits , page C-9.

Utilisation d'oprateurs et de fonctions arithmtiques


Vous pouvez combiner plusieurs oprateurs et fonctions dans des
expressions arithmtiques.
Les oprateurs arithmtiques calculent les nouvelles valeurs.
Pour

Utilisez cet oprateur

Type de donnes optimal

addition

DINT, REAL

soustraction/ngation

DINT, REAL

multiplication

DINT, REAL

exposant (x la puissance y)

**

DINT, REAL

division

DINT, REAL

modulo

MOD

DINT, REAL

Publication 1756-RM003F-FR-P - Mai 2002

C-6

Programmation en texte structur

Les fonctions arithmtiques effectuent des oprations mathmatiques.


Indiquez une constante, un point non boolen ou une expression
pour la fonction.
Pour

Utilisez cette fonction

Type de donnes
optimal

valeur absolue

ABS (expression_numrique)

DINT, REAL

cosinus d'arc

ACOS (expression_numrique)

REAL

sinus d'arc

ASIN (expression_numrique)

REAL

tangente d'arc

ATAN (expression_numrique)

REAL

cosinus

COS (expression_numrique)

REAL

radians en degrs

DEG (expression_numrique)

DINT, REAL

logarithme naturel

LN (expression_numrique)

REAL

logarithme dcimal

LOG (expression_numrique)

REAL

degrs en radians

RAD (expression_numrique)

DINT, REAL

sinus

SIN (expression_numrique)

REAL

racine carre

SQRT (expression_numrique)

DINT, REAL

tangente

TAN (expression_numrique)

REAL

troncation

TRUNC
(expression_numrique)

DINT, REAL

Par exemple
Utilisez ce format

Exemple
Pour cette situation

Ecrivez

valeur1 oprateur valeur2

Si "gain_4" et "gain_4_adj" sont des points DINT et


votre spcification indique : Ajouter 15 "gain_4"
et stocker le rsultat dans "gain_4_adj".

gain_4_adj :=
gain_4+15;

oprateur valeur1

Si "alarm" et "high_alarm" sont des points DINT et alarm:=


votre spcification indique : Inverser "high_alarm" -high_alarm;
et stocker le rsultat dans "alarm".

fonction(expression_numrique)

Si "overtravel" et "overtravel_POS" sont des points


DINT et votre spcification indique : Calculer la
valeur absolue de "overtravel" et stocker le rsultat
dans "overtravel_POS".

overtravel_POS :=
ABS(overtravel);

valeur1 oprateur
(fonction((valeur2+valeur3)/2)

Si "adjustment" et "position" sont des points DINT,


"sensor1" et "sensor2" des points REAL et si votre
spcification indique : Trouver la valeur absolue
de la moyenne de "sensor1" et "sensor2", ajouter
"adjustment" et stocker le rsultat dans "position".

position :=
adjustment +
ABS((sensor1 +
sensor2)/2);

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-7

Utilisation d'oprateurs de relation


Les oprateurs de relation comparent deux valeurs ou chanes pour
fournir un rsultat vrai ou faux. Le rsultat d'une opration
relationnelle est une valeur boolenne.
Si la comparaison est

Le rsultat est

vraie

fausse

Utilisez les oprateurs de relation suivants :


Pour cette comparaison

Utilisez cet oprateur

Type de donnes
optimal

gal

DINT, REAL, STRING

infrieur

<

DINT, REAL, STRING

infrieur ou gal

<=

DINT, REAL, STRING

suprieur

>

DINT, REAL, STRING

suprieur ou gal

>=

DINT, REAL, STRING

diffrent

<>

DINT, REAL, STRING

Par exemple :
Utilisez ce format

Exemple
Pour cette situation

Ecrivez

valeur1 oprateur valeur2

Si "temp" est un point DINT et votre


spcification indique : Si "temp" est infrieur
100, alors

IF temp<100 THEN...

chane_de_caractres1
oprateur
chane_de_caractres2

Si "bar_code" et "dest" sont des chanes de


caractres et votre spcification indique : Si
"bar_code" est gal "dest", alors

IF bar_code=dest THEN...

caractre1 oprateur
caractre2

Si "bar_code" est une chane de caractres et


votre spcification indique : Si
"bar_code.DATA[0]" est gal "A", alors

IF bar_code.DATA[0]=65
THEN...

Si "count" et "length" sont des points DINT,


"done" un point BOOL et si votre spcification
indique : Si "count" est suprieur ou gal
"length", fin du comptage.

done := (count >=


length);

Pour entrer un caractre ASCII directement


dans l'expression, entrez la valeur
dcimale du caractre.
point_bool :=
expressions_boolennes

Publication 1756-RM003F-FR-P - Mai 2002

C-8

Programmation en texte structur

Evaluation des chanes


Les valeurs hexadcimales des caractres ASCII dterminent si une
chane est infrieure ou suprieure une autre chane.
Lorsque les deux chanes sont tries comme dans un rpertoire
tlphonique, l'ordre des chanes dtermine laquelle est
suprieure.

in
f

ri
e
u
r

s
u
p

ri
e
u

Caractres ASCII

Codes Hex

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Les chanes sont gales si leurs caractres concordent.


Les caractres sont diffrents s'ils sont en majuscules ou en
minuscules. Un A majuscule ($41) n'est pas gal un a
minuscule ($61).
Pour trouver la valeur dcimale et le code hexadcimal d'un caractre,
reportez-vous la dernire page de ce manuel.

Utilisation d'oprateurs logiques


Les oprateurs logiques vous permettent de vrifier si plusieurs
conditions sont vraies ou fausses. Le rsultat d'une opration logique
est une valeur boolenne.
Si la comparaison est

Le rsultat est

vraie

fausse

Utilisez les oprateurs logiques suivants :

Publication 1756-RM003F-FR-P - Mai 2002

Pour

Utilisez cet oprateur

Type de donnes

ET logique

&, AND

BOOL

OU logique

OR

BOOL

OU exclusif logique

XOR

BOOL

complment logique

NOT

BOOL

Programmation en texte structur

C-9

Par exemple :
Utilisez ce format

Exemple
Pour cette situation

Ecrivez

pointBOOL

Si "photoeye" est un point BOOL et votre


spcification indique : Si "photoeye_1" est
active, alors

IF photoeye THEN...

NOT pointBOOL

Si "photoeye" est un point BOOL et votre


spcification indique : Si "photoeye" est
dsactive, alors

IF NOT photoeye THEN...

expression1 & expression2

Si "photoeye" est un point BOOL, "temp" un


point DINT et si votre spcification indique :
Si "photoeye" est active et "temp" infrieure
100, alors

IF photoeye & (temp<100)


THEN...

expression1 OR expression2

Si "photoeye" est un point BOOL, "temp" un


point DINT et si votre spcification indique :
Si "photoeye" est active ou "temp" infrieure
100, alors

IF photoeye OR (temp<100)
THEN...

expression1 XOR expression2

Si "photoeye1" et "photoeye2" sont des points


BOOL et votre spcification indique : Si :
"photoeye1" est active et "photoeye2"
dsactive, ou
"photoeye1" est dsactive et
"photoeye2" active,
alors

IF photoeye1 XOR
photoeye2 THEN...

pointBOOL := expression1
& expression2

Si "photoeye1" et "photoeye2" sont des points


BOOL, "open" un point BOOL et si votre
spcification indique : Si "photoeye1" et
"photoeye2" sont actives, rgler "open" sur
vrai.

open := photoeye1 &


photoeye2;

Utilisation d'oprateurs sur bits


Les oprateurs sur bits traitent les bits d'une valeur partir de deux
valeurs.
Pour

Utilisez cet oprateur

Type de donnes
optimal

ET sur bits

&, AND

DINT

OU sur bits

OR

DINT

OU exclusif sur bits

XOR

DINT

complment sur bits

NOT

DINT

Par exemple :
Utilisez ce format

valeur1 oprateur valeur2

Exemple
Pour cette situation

Ecrivez

Si "input1", "input2" et "result1" sont des points DINT


et votre spcification indique : Calculer le rsultat
sur bits de "input1" et "input2" et stocker le rsultat
dans "result1"

result1 := input1 AND


input2;

Publication 1756-RM003F-FR-P - Mai 2002

C-10

Programmation en texte structur

Dtermination de l'ordre d'excution


Les oprations que vous crivez dans une expression sont excutes
dans un ordre prdfini, qui n'est pas ncessairement de gauche
droite.
Les oprations d'ordre identique sont effectues de gauche
droite.
Si une expression contient plusieurs oprateurs ou fonctions,
regroupez les conditions entre parenthses ( ) pour vous
assurer que l'excution se fait dans l'ordre souhait et pour
faciliter la lecture de l'expression.
Ordre

Instructions

Opration

1.

()

2.

fonction ()

3.

**

4.

(ngation)

5.

NOT

6.

*, /, MOD

7.

+, - (soustraction)

8.

<, <=, >, >=

9.

=, <>

10.

&, AND

11.

XOR

12.

OR

Les instructions en texte structur peuvent tre galement des


instructions. Pour connatre les instructions disponibles en texte
structur, reportez-vous au tableau de reprage des instructions au
dbut de ce manuel. Une instruction en texte structur est excute
chaque fois qu'elle est scrute. Une instruction en texte structur dans
une instruction de test est excute chaque fois que les conditions de
cette instruction de test sont vraies. Si les conditions de l'instruction de
test sont fausses, les instructions figurant dans l'instruction de test ne
sont pas scrutes. Il n'est pas possible de conditionner l'excution de
l'instruction extrieurement.
Ceci diffre des instructions de bloc fonctionnel qui utilisent EnableIn
pour dclencher l'excution. Les instructions en texte structur sont
excutes comme si EnableIn tait toujours activ.
Ceci diffre galement des instructions de logique relais qui utilisent
l'tat d'entre de la ligne pour dclencher l'excution. Certaines
instructions de logique relais sont excutes uniquement lorsque
l'tat d'entre de la ligne passe de faux vrai. Ce sont des instructions
de logique relais de transition. En texte structur, les instructions

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-11

sont excutes chaque fois qu'elles sont scrutes, moins qu'elles ne


soient imbriques dans un test.
L'instruction ABL, par exemple, est une instruction de logique relais
de transition. Dans cet exemple, l'instruction ABL est excute lors
d'une scrutation uniquement si tag_xic passe d'effac activ.
L'instruction ABL n'est pas excute si tag_xic reste activ ou si
tag_xic est effac.

En texte structur, si vous crivez cet exemple comme suit :


IF tag_xic THEN ABL(0,serial_control);
END_IF;
l'instruction ABL est excute chaque scrutation pendant laquelle
tag_xic est activ, et pas seulement lorsque tag_xic passe d'effac
activ.
Si vous souhaitez que l'instruction ABL soit excute uniquement
lorsque tag_xic passe d'effac activ, vous devez conditionner
l'instruction en texte structur. Utilisez une instruction d'excution sur
front pour dclencher l'excution.
osri_1.InputBit := tag_xic;
OSRI(osri_1);

IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;

Instructions de test
Si vous voulez

Les instructions de test peuvent tre programmes seules ou


imbriques dans d'autres instructions de test.
Utilisez cette instruction de test

Disponible dans ces langages

Voir page

excuter une action si ou lorsque des


conditions particulires se produisent

IF...THEN

texte structur

C-12

slectionner l'action excuter en fonction


d'une valeur numrique

CASE...OF

texte structur

C-15

excuter une action un certain nombre de


fois avant l'excution d'une autre action

FOR...DO

texte structur

C-17

continuer l'excution d'une action tant que


certaines conditions sont vraies

WHILE...DO

texte structur

C-20

REPEAT...UNTIL

texte structur

C-23

continuer l'excution d'une action jusqu' ce


qu'une condition soit vraie

Publication 1756-RM003F-FR-P - Mai 2002

C-12

Programmation en texte structur

IF...THEN (SI... ALORS)

Utilisez l'instruction de test IFTHEN pour excuter une action si ou


lorsque des conditions particulires se produisent.

Oprandes :
Texte structur
IF expression_boolenne
THEN
<instruction>;
END_IF;

Oprande

Type

Format

Entrez

expression_
boolenne

BOOL

point
expression

un point ou une expression boolenne


qui donne une valeur boolenne
(expression boolenne)

Description : La syntaxe est la suivante :


IF expression_boolenne1
THEN
<instruction >;

.
.
.
facultatif

ELSIF
expression_boolenne2 THEN
<instruction>;

.
.
.
facultatif

instructions excuter lorsque


expression_boolenne1 est
vraie

instructions excuter lorsque


expression_boolenne2 est
vraie

ELSE
<instruction>;

.
.
.

instructions excuter lorsque


les deux expressions sont
fausses

END_IF;
Pour utiliser ELSIF ou ELSE, suivez ces directives :
1. Pour faire une slection dans plusieurs groupes d'instructions
possibles, ajoutez une ou plusieurs instructions ELSIF.
Chaque condition ELSIF reprsente un chemin alternatif.
Indiquez autant de conditions ELSIF que de chemins
ncessaires.
L'automate excute la premire condition IF ou ELSIF vraie et
saute les autres conditions ELSIF et la condition ELSE.
2. Pour excuter une action lorsque toutes les conditions IF ou
ELSIF sont fausses, ajoutez une instruction ELSE.

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-13

Le tableau suivant donne plusieurs combinaisons de IF, THEN, ELSIF


et ELSE.
Si vous voulez

Et

Utilisez cette instruction de test

excuter une action si ou lorsque des


conditions sont vraies

ne rien faire si les conditions sont fausses

IFTHEN

faire autre chose si les conditions sont fausses IFTHENELSE

ne rien faire si les conditions sont fausses


choisir parmi des instructions (ou
groupes d'instructions) alternatives en
attribuer des instructions par dfaut si toutes
fonction des conditions d'entre
les conditions sont fausses

IFTHENELSIF
IFTHENELSIFELSE

Exemple 1 : IFTHEN
Si vous voulez ceci

Entrez ce texte structur

SI rejette > 3 alors

IF rejects > 3 THEN

convoyeur = dsactiv (0)

conveyor := 0;

alarme = active (1)

alarm := 1;
END_IF;

Exemple 2 : IFTHENELSE
Si vous voulez ceci

Entrez ce texte structur

Si contact de direction du convoyeur = avant (1) alors

IF conveyor_direction THEN

voyant = teint
Sinon voyant = allum

light := 0;
ELSE
light [:=] 1;
END_IF;

[:=] indique l'automate d'effacer light lorsque ce dernier :


passe en mode Excution (Run) ;
sort de l'tape d'un graphe de fonctionnement squentiel si vous
configurez le graphe pour une Rinitialisation automatique
(Automatic reset) (ceci est valable uniquement si vous intgrez
l'affectation dans l'action de l'tape ou si vous utilisez l'action
pour appeler un sous-programme en texte structur au moyen
d'une instruction JSR).

Publication 1756-RM003F-FR-P - Mai 2002

C-14

Programmation en texte structur

Exemple 3 : IFTHENELSIF
Si vous voulez ceci

Entrez ce texte structur

Si dtecteur de niveau bas sucre = bas (activ) et dtecteur de


niveau haut sucre = pas haut (activ) alors

IF Sugar.Low & Sugar.High THEN

vanne d'entre = ouverte (active)

Sugar.Inlet [:=] 1;

Jusqu' ce que dtecteur de niveau haut sucre = haut (dsactiv) ELSIF NOT(Sugar.High) THEN
Sugar.Inlet := 0;
END_IF;

[:=] indique l'automate d'effacer Sugar.Inlet lorsque ce dernier :


passe en mode Excution (Run) ;
sort de l'tape d'un graphe de fonctionnement squentiel si vous
configurez le graphe pour une Rinitialisation automatique
(Automatic reset) (ceci est valable uniquement si vous intgrez
l'affectation dans l'action de l'tape ou si vous utilisez l'action
pour appeler un sous-programme en texte structur au moyen
d'une instruction JSR).

Exemple 4 : IFTHENELSIFELSE
Si vous voulez ceci

Entrez ce texte structur

Si temprature du rservoir > 100

IF tank.temp > 200 THEN

alors pompe = lente


Si temprature de rservoir > 200

pump.fast :=1; pump.slow :=0; pump.off :=0;


ELSIF tank.temp > 100 THEN

alors pompe = rapide


Sinon pompe = arrte

pump.fast :=0; pump.slow :=1; pump.off :=0;


ELSE
pump.fast :=0; pump.slow :=0; pump.off :=1;
END_IF;

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

CASE...OF (EN FONCTION...


DE)

C-15

Utilisez CASE pour dterminer ce qu'il faut faire en fonction d'une


valeur numrique.

Oprandes :
Texte structur
CASE expression_numrique
OF

Oprande

Type

Format

Entrez

slecteur1:
instruction;

expression_
numrique

SINT
INT
DINT
REAL

point
expression

un point ou une expression qui donne un


nombre (expression numrique)

slecteur

SINT
INT
DINT
REAL

immdiat

slecteurN:
instruction;
ELSE
instruction;
END_CASE;

IMPORTANT

le mme type que


expression_numrique

Si vous utilisez des valeurs REAL, utilisez une plage


de valeurs pour un slecteur car il est plus probable
qu'une valeur REAL se trouve dans une plage de
valeurs qu'elle ne corresponde exactement une
valeur particulire.

Description : La syntaxe est la suivante :


CASE expression_numrique OF

indiquez autant de
valeurs de slecteur
alternatives (chemins)
que ncessaire

slecteur1
:

<instruction
>;
.
.
.

instructions excuter lorsque


expression_numrique =
slecteur1

slecteur2
:

<instruction
>;

instructions excuter lorsque


expression_numrique =
slecteur2

.
.
.
slecteur3
:

<instruction
>;

.
.
.

instructions excuter lorsque


expression_numrique =
slecteur3

ELSE
<instruction
>;

facultatif

.
.
.

instructions excuter lorsque


expression_numrique
n'importe quel slecteur

END_CASE;
Publication 1756-RM003F-FR-P - Mai 2002

C-16

Programmation en texte structur

Pour connatre les valeurs de slecteur correctes, reportez-vous au


tableau page suivante.
La syntaxe pour l'entre des valeurs de slecteur est la suivante :
Lorsque le slecteur est

Entrez

une valeur

valeur: instruction

plusieurs valeurs diffrentes

valeur1, valeur2, valeurN : <instruction>


Utilisez une virgule (,) pour sparer chaque valeur.

une plage de valeurs

valeur1..valeurN : <instruction>
Utilisez deux points (..) pour identifier la plage.

des valeurs diffrentes plus une plage valeura, valeurb, valeur1..valeurN : <instruction>
de valeurs

Exemple
Si vous voulez ceci

Entrez ce texte structur

Si numro de recette = 1 alors

CASE recipe_number OF

Ingrdient A sortie 1 = ouvert (1)

1:

Ingrdient B sortie 4 = ouvert (1)

Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;

Si numro de recette = 2 ou 3 alors

2,3:

Ingrdient A sortie 4 = ouvert (1)

Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;

Ingrdient B sortie 2 = ouvert (1)


Si numro de recette = 4, 5, 6 ou 7, alors

4..7:

Ingrdient A sortie 4 = ouverte (1)

Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;

Ingrdient B sortie 2 = ouverte (1)


Si numro de recette = 8, 11, 12 ou 13, alors

8,11-13

Ingrdient A sortie 1 = ouverte (1)

Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;

Ingrdient B sortie 4 = ouverte (1)


Sinon toutes les sorties = fermes (0)

ELSE
Ingredient_A.Outlet_1 [:=]0;
Ingredient_A.Outlet_4 [:=]0;
Ingredient_B.Outlet_2 [:=]0;
Ingredient_B.Outlet_4 [:=]0;
END_CASE;

[:=] indique l'automate d'effacer galement le point de sortie lorsque


ce dernier :
passe en mode Excution (Run) ;
sort de l'tape d'un graphe de fonctionnement squentiel si vous
configurez le graphe pour une Rinitialisation automatique
(Automatic reset) (ceci est valable uniquement si vous intgrez
l'affectation dans l'action de l'tape ou si vous utilisez l'action
pour appeler un sous-programme en texte structur au moyen
d'une instruction JSR).
Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

FORDO (POUR... FAIRE)

C-17

Utilisez la boucle FORDO pour excuter une action un certain


nombre de fois avant l'excution d'une autre action.

Oprandes :
Texte structur
FOR comptage:=
valeur_initiale TO
valeur_finale BY incrment
DO

Oprande

Type

Format

Description

comptage

SINT
INT
DINT

point

point pour le stockage de la position de


comptage pendant l'excution de
FORDO

valeur_ini SINT
tiale
INT
DINT

point
expression
immdiat

doit donner un nombre


dfinit la valeur initiale du comptage

valeur_fin SINT
ale
INT
DINT

point
expression
immdiat

dfinit la valeur finale du comptage, qui


indique quand sortir de la boucle

SINT
INT
DINT

point
expression
immdiat

(facultatif) valeur d'incrmentation du


comptage chaque passage dans la
boucle

<instruction>;
END_FOR;

incrment

Si vous n'indiquez pas d'incrment, le


comptage s'effectue de 1 en 1.

IMPORTANT

Veillez ne pas trop rpter la boucle lors d'une mme scrutation.


L'automate n'excute pas d'autres instructions du
sous-programme tant qu'il n'a pas termin la boucle.
Si le temps ncessaire pour terminer la boucle est suprieur au
chien de garde de la tche, un dfaut majeur se produit.
Pensez utiliser une instruction de test diffrente, telle que
IF...THEN.

Description : La syntaxe est la suivante :


FOR comptage := valeur_initiale
TO valeur_finale
facultatif {

BY incrment

Si vous n'indiquez pas d'incrment, la


boucle est incrmente de 1 en 1.

DO
<instruction>;
IF expression_boolenne
THEN
EXIT;
facultatif

END_IF;

S'il y a des conditions pour lesquelles vous


voulez quitter la boucle avant qu'elle ne
soit termine, utilisez d'autres
instructions, telle qu'une instruction de
test IF...THEN, pour conditionner une
instruction de sortie (EXIT).

END_FOR;

Publication 1756-RM003F-FR-P - Mai 2002

C-18

Programmation en texte structur

Les diagrammes suivants montrent comment une boucle FOR...DO est


excute et comment une instruction EXIT quitte la boucle avant que
cette dernire ne soit termine.
Excute x fois ?

Excute x fois ?

oui

non

non

instruction 1
instruction 2
instruction 3
instruction 4

instruction 1
instruction 2
instruction 3
instruction 4

Sortir ?
reste du sous-programme

oui

oui

non
reste du sous-programme

La boucle FORDO est excute un certain


nombre de fois.

Pour arrter la boucle avant que le compte n'atteigne la


dernire valeur, utilisez une instruction de sortie (EXIT).

Exemple 1 :
Si vous voulez ceci

Entrez ce texte structur

Effacer les bits 0 31 dans un tableau de bits :


1. Initialiser le point "subscript" (0).
2. Effacer "array[ subscript ]". Par exemple, lorsque
"subscript" = 5, effacer "array[5]."
3. Ajouter 1 "subscript".
4. Si "subscript" est 31, rpter 2 et 3.
Sinon, arrter.

For subscript:=0 to 31 by 1 do

Publication 1756-RM003F-FR-P - Mai 2002

array[subscript] := 0;
End_for;

Programmation en texte structur

C-19

Exemple 2 :
Si vous voulez ceci

Entrez ce texte structur

SIZE(Inventory,0,Inventory_Items);
Un type de donnes dfini par l'utilisateur (structure) stocke
les informations suivantes sur un article de votre inventaire :
For position:=0 to Inventory_Items - 1 do
numro d'identification du code-barres de l'article
(donnes de type chane)
If Barcode = Inventory[position].ID then
quantit d'articles de ce type en stock (donnes de
Quantity := Inventory[position].Qty;
type DINT)
Un tableau correspondant la structure ci-dessus contient
Exit;
une entre pour chaque article de votre inventaire. Vous
End_if;
voulez rechercher un article particulier (utilisez son
code-barres) dans le tableau et en dterminer la quantit en
End_for;
stock.
1. Chercher la taille (nombre d'articles) du tableau
"Inventory" et stocker le rsultat dans
"Inventory_Items" (point DINT).
2. Initialiser le point "position" (0).
3. Si "Barcode" correspond au numro d'identification
d'un article du tableau, alors :
a. Dfinir le point "Quantity = "Inventory[position].Qty."
Ceci indique la quantit d'articles de ce type en
stock.
b. Arrter.
"Barcode" est une chane de caractres qui stocke le
code-barres de l'article que vous recherchez. Par
exemple, lorsque "position" = 5, comparer "Barcode"
"Inventory[5].ID".
4. Ajouter 1 "position".
5. Si "position" est ("Inventory_Items -1)", rpter 3 et
4. Les numros d'lments commenant 0, le dernier
lment est 1 de moins que le nombre d'lments dans
le tableau.
Sinon, arrter.

Publication 1756-RM003F-FR-P - Mai 2002

C-20

Programmation en texte structur

WHILEDO (TANT QUE...


FAIRE)

Utilisez la boucle WHILEDO pour poursuivre l'excution d'une


action tant que certaines conditions sont vraies.

Oprandes :
Texte structur
WHILE expression_boolenne
DO

Oprande

<instruction>;

Type

Format

Entrez

BOOL

point
expression

un point ou une expression boolenne


qui donne une valeur boolenne

expression_
boolenne

END_WHILE;

IMPORTANT

Veillez ne pas trop rpter la boucle lors d'une mme scrutation.


L'automate n'excute pas d'autres instructions du
sous-programme tant qu'il n'a pas termin la boucle.
Si le temps ncessaire pour terminer la boucle est suprieur au
chien de garde de la tche, un dfaut majeur se produit.
Pensez utiliser une instruction de test diffrente, telle que
IF...THEN.

Description : La syntaxe est la suivante :


WHILE expression_boolenne1
DO
<instruction>;

instructions excuter tant que


expression_boolenne1 est vraie

IF
expression_boolenne2
THEN
facultatif

EXIT;
END_IF;

END_WHILE;

Publication 1756-RM003F-FR-P - Mai 2002

S'il y a des conditions pour lesquelles vous


voulez quitter la boucle avant qu'elle ne
soit termine, utilisez d'autres
instructions, telles qu'une instruction de
test IF...THEN, pour conditionner une
instruction de sortie (EXIT).

Programmation en texte structur

C-21

Les diagrammes suivants montrent comment une boucle WHILE...DO


est excute et comment une instruction EXIT quitte la boucle avant
que cette dernire ne soit termine.
expression boolenne

fausse

fausse
expression boolenne

vraie

vraie

instruction 1
instruction 2
instruction 3
instruction 4

instruction 1
instruction 2
instruction 3
instruction 4

Sortir ?

oui

non

reste du sous-programme

reste du sous-programme

Tant que expression_boolenne est vraie,


l'automate excute uniquement les instructions
de la boucle WHILEDO.

Pour arrter la boucle avant que les conditions ne


soient vraies, utilisez une instruction de sortie (EXIT).

Exemple 1 :
Si vous voulez ceci

Entrez ce texte structur

La boucle WHILE...DO value d'abord ses conditions. Si les


conditions sont vraies, l'automate excute les instructions de
la boucle.

pos := 0;

Ceci est diffrent de la boucle REPEAT...UNTIL dans la mesure


o la boucle REPEAT...UNTIL excute les instructions du test,
puis dtermine si les conditions sont vraies avant d'excuter
de nouveau les instructions. Les instructions d'une boucle
REPEAT...UNTIL sont toujours excutes au moins une fois.
Les instructions d'une boucle WHILE...DO peuvent ne jamais
tre excutes.

While ((pos <= 100) & structarray[pos].value


<> targetvalue)) do
pos := pos + 2;
String_tag.DATA[pos] := SINT_array[pos];
end_while;

Publication 1756-RM003F-FR-P - Mai 2002

C-22

Programmation en texte structur

Exemple 2 :
Si vous voulez ceci

Entrez ce texte structur

Dplacer des caractres ASCII d'un tableau SINT dans une


chane de caractres (dans un tableau SINT, chaque lment
garde un caractre). Arrter lorsque vous atteignez le retour
chariot.
1. Initialiser "Element_number" (0).
2. Compter le nombre d'lments dans "SINT_array"
(tableau contenant les caractres ASCII) et stocker le
rsultat dans "SINT_array_size" (point DINT).
3. Si le caractre au niveau de
"SINT_array[element_number] " = 13 (valeur dcimale
du retour chariot), alors arrter.
4. Dfinir "String_tag[element_number]" = caractre au
niveau de "SINT_array[element_number]".
5. Ajouter 1 "element_number". Ceci permet
l'automate de vrifier le caractre suivant dans
"SINT_array".
6. Dfinir le membre Longueur de "String_tag" =
"element_number" (ceci enregistre le nombre de
caractres dans "String_tag" jusqu' ce caractre).
7. Si "element_number" = "SINT_array_size", alors
arrter (vous avez atteint la fin du tableau et il ne
contient pas de retour chariot).
8. Aller 3.

element_number := 0;

Publication 1756-RM003F-FR-P - Mai 2002

SIZE(SINT_array, 0, SINT_array_size);
While SINT_array[element_number] <> 13 do
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number:= element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
end_while;

Programmation en texte structur

REPEATUNTIL
(REPETER... JUSQU'A)

C-23

Utilisez la boucle REPEATUNTIL pour poursuivre l'excution d'une


action jusqu' ce que les conditions soient vraies.

Oprandes :
Texte structur
REPEAT
<instruction>;
UNTIL expression_boolenne
END_REPEAT;

IMPORTANT

Oprande

Type

Format

Entrez

expression_
boolenne

BOOL

point
expression

un point ou une expression boolenne


qui donne une valeur boolenne
(expression boolenne)

Veillez ne pas trop rpter la boucle lors d'une mme scrutation.


L'automate n'excute pas d'autres instructions du
sous-programme tant qu'il n'a pas termin la boucle.
Si le temps ncessaire pour terminer la boucle est suprieur au
chien de garde de la tche, un dfaut majeur se produit.
Pensez utiliser une instruction de test diffrente, telle que
IF...THEN.

Description : La syntaxe est la suivante :


REPEAT
<instruction>;

instructions excuter tant que


expression_boolenne1 est fausse

IF expression_boolenne2
THEN
facultatif

EXIT;
END_IF;

S'il y a des conditions pour lesquelles vous voulez


quitter la boucle avant qu'elle ne soit termine,
utilisez d'autres instructions, telle qu'une
instruction de test IF...THEN, pour conditionner une
instruction de sortie (EXIT).

UNTIL
expression_boolenne1
END_REPEAT;

Publication 1756-RM003F-FR-P - Mai 2002

C-24

Programmation en texte structur

Les diagrammes suivants montrent comment une boucle


REPEAT...UNTIL est excute et comment une instruction EXIT quitte
la boucle avant que cette dernire ne soit termine.
instruction 1
instruction 2
instruction 3
instruction 4

expression boolenne

instruction 1
instruction 2
instruction 3
instruction 4

Sortir ?

vraie

oui

non
fausse
expression boolenne
reste du sous-programme

Tant que expression_boolenne est fausse,


l'automate excute uniquement les instructions de la
boucle REPEATUNTIL.

vraie

fausse
reste du sous-programme

Pour arrter la boucle avant que les conditions ne soient


fausses, utilisez une instruction de sortie (EXIT).

Exemple 1 :
Si vous voulez ceci

Entrez ce texte structur

La boucle REPEAT...UNTIL excute les instructions du test,


puis dtermine si les conditions sont vraies avant d'excuter
de nouveau les instructions.

pos := -1;

Ceci diffre de la boucle WHILE...DO dans la mesure o la


boucle WHILE...DO value d'abord ses conditions. Si les
conditions sont vraies, l'automate excute les instructions de
la boucle. Les instructions d'une boucle REPEAT...UNTIL sont
toujours excutes au moins une fois. Les instructions d'une
boucle WHILE...DO peuvent ne jamais tre excutes.

Publication 1756-RM003F-FR-P - Mai 2002

REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR
(structarray[pos].value = targetvalue))
end_repeat;

Programmation en texte structur

C-25

Exemple 2 :
Si vous voulez ceci

Entrez ce texte structur

Dplacer des caractres ASCII d'un tableau SINT dans une


chane de caractres (dans un tableau SINT, chaque lment
garde un caractre). Arrter lorsque vous atteignez le retour
chariot.
1. Initialiser "Element_number" (0).
2. Compter le nombre d'lments dans "SINT_array"
(tableau contenant les caractres ASCII) et stocker le
rsultat dans "SINT_array_size" (point DINT).
3. Dfinir "String_tag[element_number]" = caractre au
niveau de "SINT_array[element_number]".
4. Ajouter 1 "element_number". Ceci permet
l'automate de vrifier le caractre suivant dans
"SINT_array".
5. Dfinir le membre Longueur de "String_tag" =
"element_number" (ceci enregistre le nombre de
caractres dans "String_tag" jusqu' ce caractre).
6. Si "element_number" = "SINT_array_size", alors
arrter (vous avez atteint la fin du tableau et il ne
contient pas de retour chariot).
7. Si le caractre au niveau de
"SINT_array[element_number]" = 13 (valeur dcimale
du retour chariot), alors arrter.
Sinon, aller 3.

element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
Repeat
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
Until SINT_array[element_number] = 13
end_repeat;

Publication 1756-RM003F-FR-P - Mai 2002

C-26

Programmation en texte structur

Commentaires

Ajoutez des commentaires votre texte structur pour en faciliter


l'interprtation.
Les commentaires vous permettent d'utiliser du langage clair
pour dcrire le fonctionnement de votre texte structur.
Les commentaires n'affectent pas l'excution du texte structur.
Pour ajouter des commentaires votre texte structur :
Pour ajouter un commentaire

Utilisez l'un de ces formats

sur une seule ligne

//commentaire

la fin d'une ligne de texte structur

(*commentaire*)
/*commentaire*/

dans une ligne de texte structur

(*commentaire*)
/*commentaire*/

qui couvre plusieurs lignes

(*dbut du commentaire . . .
fin du commentaire*)
/*dbut du commentaire . . .
fin du commentaire*/

Par exemple :
Format

Exemple

//commentaire

Au dbut d'une ligne


//Vrifie la direction de la courroie du convoyeur
IF conveyor_direction THEN...
A la fin d'une ligne
ELSE //Si le convoyeur est immobile, allume le voyant
d'alarme
light := 1;
END_IF;

(*commentaire*)

Sugar.Inlet[:=]1;(*ouvre l'entre*)
IF Sugar.Low (*dtecteur niveau bas*)& Sugar.High
(*dtecteur niveau haut*)THEN...
(*Contrle la vitesse de la pompe de recirculation. La
vitesse dpend de la temprature dans le rservoir.*)
IF tank.temp > 200 THEN...

/*commentaire*/

Sugar.Inlet:=0;/*ferme l'entre*/
IF bar_code=65 /*A*/ THEN...
/*Prend le nombre d'lments dans le tableau Inventory
et stocke la valeur dans le point Inventory_Items*/
SIZE(Inventory,0,Inventory_Items);

Publication 1756-RM003F-FR-P - Mai 2002

Index
A
activation d'interruption utilisateur 10-20
activation de sortie 1-6
addition 5-6
ajout d'criture ASCII 16-23
alarmes 12-25
anticipation de vitesse 12-34
attributs
conversion des types de donnes A-1
valeurs immdiates A-1
attributs communs A-1
conversion des types de donnes A-1
valeurs immdiates A-1

B
BAND 6-34
BNOT 6-42
BOR 6-37
BXOR 6-40

C
calcul 5-2
caractres ASCII dans buffer 16-8
CASE (EN FONCTION) C-15
chane vers DINT 18-3
chane vers REAL 18-5
chargement FIFO 8-8
chargement LIFO 8-20
chargement squenceur 9-10
codes d'erreur
ASCII 16-4
instruction MSG 3-8
combinaison des types de donnes A-1
commande Programme/Oprateur
prsentation B-10
comparaison 4-2
comparaison des bits de fichier 12-2
COMPLEMENT boolen 6-42
COMPLEMENT sur bits 6-31
comptage dcrmental 2-25
comptage incrmental 2-22
comptage incrmental/dcrmental 2-29
concatnation de chanes 17-3
conditions de dpassement B-5
configuration 3-13
instruction MSG 3-13
instruction PID 12-23
conversion des types de donnes A-1
conversion en DCB 15-6

conversion en nombre entier 15-9


copie 7-26
Copie dans une chane 17-11
copie synchrone 7-26
cosinus 13-4
cosinus d'arc 13-10

D
dcalage binaire droite 8-5
dcalage binaire gauche 8-2
dcalage de sortie 12-34
dchargement FIFO 8-14
dchargement LIFO 8-26
dfinir la valeur systme 3-30
degr 15-2
dsactivation d'interruption utilisateur 10-20
dtection par diagnostic 12-9
dverrouillage de sortie 1-9
diffrent 4-38
DINT vers chane 18-7
distribution d'un champ de bits 6-11
distribution d'un champ de bits avec cible 6-14
division 5-15

E
cart type 7-46
criture ASCII 16-27
effacement buffer ASCII 16-10
effacement dans une chane 17-5
effacer 6-17
gal 4-7
galit avec masque 4-33
lments
instruction SIZE 7-52
entre squenceur 9-2
ET boolen 6-34
ET sur bits 6-22
tiquette 10-2
examine si contact ouvert 1-4
excution sur front 1-11
exposant 14-6
expressions
format 4-4, 5-4, 7-17, 7-23
oprateurs valables 4-4, 5-4, 7-16, 7-23
ordre d'excution des oprations 4-5, 5-4, 7-17, 7-24

F
fichier arithmtique et logique 7-7
Publication 1756-RM003F-FR-P - Mai 2002

Index

fin temporaire 10-16

I
impulsion front descendant 1-16
impulsion front descendant avec entre 1-20
impulsion front montant 1-14
impulsion front montant avec entre 1-18
indicateurs d'tat arithmtique
dpassement B-5
infrieur 4-23
infrieur ou gal 4-19
insrer chane 17-9
instruction ABL 16-5
instruction ABS 5-29
instruction ACB 16-8
instruction ACL 16-10
instruction ACS 13-10
instruction ADD 5-6
instruction AFI 10-22
instruction AHL 16-12
instruction AND 6-22
instruction ARD 16-16
instruction ARL 16-19
instruction ASN 13-8
instruction ATN 13-12
instruction AVE 7-36
instruction AWA 16-23
instruction AWT 16-27
instruction BRK 11-4
instruction BSL 8-2
instruction BSR 8-5
instruction BTD 6-11
instruction BTDT 6-14
instruction CLR 6-17
instruction CMP 4-2
instruction CONCAT 17-3
instruction COP 7-26
instruction COS 13-4
instruction CPS 7-26
instruction CPT 5-2
instruction CTD 2-25
instruction CTU 2-22
instruction CTUD 2-29
instruction DDT
mode de recherche 12-11
oprandes 12-9
instruction de pause SFC 10-26
instruction de positionnement SFC 10-28
instruction DEG 15-2
instruction DELETE 17-5
instruction DIV 5-15
instruction DTOS 18-7
Publication 1756-RM003F-FR-P - Mai 2002

instruction DTR 12-16


instruction EOT 10-24
instruction EQU 4-7
instruction FAL
mode de fonctionnement 7-2
oprandes 7-7
instruction FBC
mode de recherche 12-3
oprandes 12-2
instruction FFL 8-8
instruction FFU 8-14
instruction Fin de transition 10-24
instruction FIND 17-7
instruction FLL 7-32
instruction FOR 11-2
instruction FRD 15-9
instruction FSC
mode de fonctionnement 7-2
oprandes 7-18
instruction GEQ 4-11
instruction GRT 4-15
instruction GSV
objets 3-32
oprandes 3-30
instruction INSERT 17-9
instruction JMP 10-2
instruction JSR 10-4
instruction JXR
structure de contrle 10-14
instruction LBL 10-2
instruction LEQ 4-19
instruction LES 4-23
instruction LFL 8-20
instruction LFU 8-26
instruction LIM 4-27
instruction LN 14-2
instruction LOWER 18-13
instruction MCR 10-18
instruction MEQ 4-33
instruction MID 17-11
instruction MOD 5-19
instruction MOV 6-3
instruction MSG 3-13
codes d'erreur 3-8
mthode de communication 3-27
oprandes 3-2
structure 3-2
instruction MUL 5-12
instruction MVM 6-5
instruction MVMT 6-8
instruction NEG 5-26
instruction NEQ 4-38
instruction NOP 10-23
instruction NOT 6-31

Index

instruction ONS 1-11


instruction OR 6-25
instruction OSF 1-16
instruction OSFI 1-20
instruction OSR 1-14
instruction OSRI 1-18
instruction OTE 1-6
instruction OTL 1-7
instruction OTU 1-9
instruction PID
alarmes 12-25
anticipation de vitesse 12-34
configuration 12-23
dcalage de sortie 12-34
mise l'chelle 12-25
oprandes 12-19
rglages 12-24
zone morte 12-33
instruction RAD 15-4
instruction RES 2-33
instruction RET 10-4, 11-5
instruction RTO 2-9
instruction RTOR 2-19
instruction RTOS 18-9
instruction SBR 10-4
instruction SFP 10-26
instruction SFR 10-28
instruction SIN 13-2
instruction SIZE 7-52
instruction SQI 9-2
instruction SQL 9-10
instruction SQO 9-6
instruction SQR 5-23
instruction SRT 7-41
instruction SSV
objets 3-32
oprandes 3-30
instruction STD 7-46
instruction STOD 18-3, C-12
instruction STOR 18-5
instruction SUB 5-9
instruction SWPB 6-18
instruction TAN 13-6
instruction TND 10-16
instruction TOD 15-6
instruction TOF 2-5
instruction TOFR 2-16
instruction TON 2-2
instruction TONR 2-13
instruction TRN 15-11
instruction UID 10-20
instruction UIE 10-20
instruction UPPER 18-11
instruction XIO 1-4

instruction XOR 6-28


instruction XPY 14-6
instructions
calcul

MOD 5-19
d'entre/de sortie 3-1
de calcul 5-1
de commande de programme 10-1
de comparaison 4-1
de comptage 2-1
de conversion 15-1
de conversion ASCII 18-1
de conversion de chane 18-1
de conversion mathmatique 15-1
de dcalage 8-1
de manipulation de chane 17-1
de temporisation 2-1
de transfert 6-1
logiques 6-1
manipulation de chane ASCII 17-1
mathmatiques volues 14-1
port srie 16-1
port srie ASCII 16-1
pour/d'interruption 11-1
squenceur 9-1
spciales 12-1
sur bits 1-1
sur tableau
trigonomtriques 13-1
instructions ASCII
ABL 16-5
ACB 16-8
ACL 16-10
AHL 16-12
ARD 16-16
ARL 16-19
AWA 16-23
AWT 16-27
CONCAT 17-3
DELETE 17-5
DTOS 18-7
FIND 17-7
INSERT 17-9
LOWER 18-13
MID 17-11
RTOS 18-9
STOD 18-3, C-12
STOR 18-5
SWPB 6-18
UPPER 18-11
instructions d'entre/de sortie
GSV 3-30
introduction 3-1
MSG 3-2
Publication 1756-RM003F-FR-P - Mai 2002

Index

SSV 3-30
instructions de calcul
ABS 5-29
ADD 5-6
CPT 5-2
DIV 5-15
format d'expression 5-4, 7-17
introduction 5-1
MUL 5-12
NEG 5-26
oprateurs valables 5-4, 7-16
ordre d'excution des oprations 5-4, 7-17
SQR 5-23
SUB 5-9
instructions de commande de programme
AFI 10-22
EOT 10-24
introduction 10-1
JMP 10-2
JSR 10-4
LBL 10-2
MCR 10-18
NOP 10-23
RET 10-4
SBR 10-4
TND 10-16
UID 10-20
UIE 10-20
instructions de comparaison
CMP 4-2
EQU 4-7
format d'expression 4-4, 7-23
GEQ 4-11
GRT 4-15
introduction 4-1
LEQ 4-19
LES 4-23
LIM 4-27
MEQ 4-33
NEQ 4-38
oprateurs valables 4-4, 7-23
ordre d'excution des oprations 4-5, 7-24
instructions de comptage
CTD 2-25
CTU 2-22
CTUD 2-29
introduction 2-1
RES 2-33
instructions de conversion
DEG 15-2
FRD 15-9
introduction 15-1
RAD 15-4
TOD 15-6
Publication 1756-RM003F-FR-P - Mai 2002

TRN 15-11
instructions de conversion de chane
DTOS 18-7
introduction 18-1
LOWER 18-13
RTOS 18-9
STOD 18-3, C-12
STOR 18-5
SWPB 6-18
UPPER 18-11
instructions de conversion mathmatique
DEG 15-2
FRD 15-9
introduction 15-1
RAD 15-4
TOD 15-6
TRN 15-11
instructions de dcalage
BSL 8-2
BSR 8-5
FFL 8-8
FFU 8-14
introduction 8-1
LFL 8-20
LFU 8-26
instructions de fichier
voir instructions sur tableau
instructions de manipulation de chane
CONCAT 17-3
DELETE 17-5
FIND 17-7
INSERT 17-9
introduction 17-1
MID 17-11
instructions de temporisation
introduction 2-1
RES 2-33
RTO 2-9
RTOR 2-19
TOF 2-5
TOFR 2-16
TON 2-2
TONR 2-13
instructions de transfert
BTD 6-11
BTDT 6-14
CLR 6-17
introduction 6-1
MOV 6-3
MVM 6-5
MVMT 6-8
instructions de transfert/logiques
BAND 6-34
BNOT 6-42

Index

BOR 6-37
BXOR 6-40
instructions LOG 14-4
instructions logiques
AND 6-22
COMPLEMENT 6-31
introduction 6-1
OR 6-25
XOR 6-28
instructions mathmatiques volues
introduction 14-1
LN 14-2
LOG 14-4
XPY 14-6
instructions port srie
ABL 16-5
ACB 16-8
ACL 16-10
AHL 16-12
ARD 16-16
ARL 16-19
AWA 16-23
AWT 16-27
introduction 16-1
instructions pour/d'interruption
BRK 11-4
FOR 11-2
introduction 11-1
RET 11-5
instructions squenceur
introduction 9-1
SQI 9-2
SQL 9-10
SQO 9-6
instructions spciales
DDT 12-9
DTR 12-16
FBC 12-2
introduction 12-1
PID 12-19
SFP 10-26
SFR 10-28
instructions sur bits
introduction 1-1
ONS 1-11
OSF 1-16
OSFI 1-20
OSR 1-14
OSRI 1-18
OTE 1-6
OTL 1-7
OTU 1-9
XIO 1-4
instructions sur tableau

AVE 7-36
BSL 8-2
BSR 8-5
COP 7-26
CPS 7-26
DDT 12-9
de fichier/diverses 7-1
dcalage 8-1
FAL 7-7
FBC 12-2
FFL 8-8
FFU 8-14
FLL 7-32
FSC 7-18
LFL 8-20
LFU 8-26
mode de fonctionnement 7-2
RES 2-33
squenceur 9-1
SIZE 7-52
SQI 9-2
SQL 9-10
SQO 9-6
SRT 7-41
STD 7-46
instructions trigonomtriques
ACS 13-10
ASN 13-8
ATN 13-12
COS 13-4
introduction 13-1
SIN 13-2
TAN 13-6
interruption 11-4

L
lecture ASCII 16-16
ligne de lecture ASCII 16-19
lignes d'change ASCII 16-12
lire la valeur systme 3-30
logarithme
dcimal 14-4
naturel 14-2
logarithme dcimal 14-4
logarithme naturel 14-2

M
majuscule 18-11
masque 12-16
message 3-2
Publication 1756-RM003F-FR-P - Mai 2002

Index

minuscule 18-13
mise l'chelle 12-25
mode de fonctionnement 7-2
mode de recherche 12-3, 12-11
mode Incrmental 7-5
mode Numrique 7-3
mode TOUT 7-2
modes de temporisation B-5
Modulo 5-19
moyenne 7-36
multiplication 5-12

OU exclusif sur bits 6-28


OU sur bits 6-25

P
pas d'opration 10-23
permutation d'octets 6-18
proportionnel, intgral et driv 12-19

R
N
ngation 5-26

O
objet CONTROLLER 3-32
objet CONTROLLERDEVICE 3-33
objet CST 3-35
objet DF1 3-36
objet FAULTLOG 3-39
objet MESSAGE 3-40
objet MODULE 3-42
objet MOTIONGROUP 3-43
objet PROGRAM 3-44
objet ROUTINE 3-45
objet SERIALPORT 3-45
objet TASK 3-47
objet WALLCLOCKTIME 3-47
objets
CONTROLLER 3-32
CONTROLLERDEVICE 3-33
CST 3-35
DF1 3-36
FAULTLOG 3-39
instruction GSV/SSV 3-32
MESSAGE 3-40
MODULE 3-42
MOTIONGROUP 3-43
PROGRAM 3-44
ROUTINE 3-45
SERIALPORT 3-45
TASK 3-47
WALLCLOCKTIME 3-47
oprateurs 4-4, 5-4, 7-16, 7-23
ordre d'excution B-3
ordre d'excution des oprations 4-5, 7-24
ordre des oprations 5-4, 7-17
OU boolen 6-37
OU exclusif boolen 6-40
Publication 1756-RM003F-FR-P - Mai 2002

racine carre 5-23


radians 15-4
REAL vers chane 18-9
Recherche de chane 17-7
recherche et comparaison de fichiers 7-18
rechercher une chane 17-7
rglages 12-24
relais de contrle matre 10-18
remise zro 2-33
remplissage de fichier 7-32
retour 10-4, 11-5

S
saut 10-2
saut vers sous-programme 10-4
sinus 13-2
sinus d'arc 13-8
sortie squenceur 9-6
sous-programme 10-4
soustraction 5-9
STRING vers DINT C-12
structure COMPARE 12-3, 12-10
structure CONTROL 7-8, 7-18, 7-37, 7-41, 7-46, 8-2, 8-5,
8-8, 8-14, 8-20, 8-26, 9-2, 9-6, 9-10
structure COUNTER 2-22, 2-25
structure de contrle 10-14
structure FBD_BIT_FIELD_DISTRIBUTE 6-14
structure FBD_BOOLEAN_AND 6-34
structure FBD_BOOLEAN_NOT 6-42
structure FBD_BOOLEAN_OR 6-37
structure FBD_BOOLEAN_XOR 6-40
structure FBD_COMPARE 4-8, 4-12, 4-16, 4-20, 4-24, 4-39
structure FBD_CONVERT 15-6, 15-9
structure FBD_COUNTER 2-29
structure FBD_LIMIT 4-28
structure FBD_LOGICAL 6-23, 6-26, 6-29, 6-31
structure FBD_MASK_EQUAL 4-34
structure FBD_MASKED_MOVE 6-8

Index

structure FBD_MATH 5-7, 5-10, 5-13, 5-16, 5-20, 5-26,


14-7
structure FBD_MATH_ADVANCED 5-23, 5-29, 13-2, 13-4,
13-6, 13-8, 13-10, 13-12, 14-2, 14-4, 15-2, 15-4
structure FBD_ONESHOT 1-18, 1-20
structure FBD_TIMER 2-13, 2-16, 2-19
structure FBD_TRUNCATE 15-11
structure MESSAGE 3-2
structure PID 12-20
structure RESULT 12-3, 12-10
structure SERIAL_PORT_CONTROL 16-2, 16-4, 16-6,
16-8, 16-13, 16-17, 16-20, 16-24, 16-28
structure STRING 16-3, 17-2, 18-2
structure TIMER 2-2, 2-5, 2-9
structures
chane 17-2, 18-2
COMPARE 12-3, 12-10
CONTROL 7-8, 7-18, 7-37, 7-41, 7-46, 8-2, 8-5, 8-8, 8-14,
8-20, 8-26, 9-2, 9-6, 9-10
COUNTER 2-22, 2-25
FBD_BIT_FIELD_DISTRIBUTE 6-14
FBD_BOOLEAN_AND 6-34
FBD_BOOLEAN_NOT 6-42
FBD_BOOLEAN_OR 6-37
FBD_BOOLEAN_XOR 6-40
FBD_COMPARE 4-8, 4-12, 4-16, 4-20, 4-24, 4-39
FBD_CONVERT 15-6, 15-9
FBD_COUNTER 2-29
FBD_LIMIT 4-28
FBD_LOGICAL 6-23, 6-26, 6-29, 6-31
FBD_MASK_EQUAL 4-34
FBD_MASKED_MOVE 6-8
FBD_MATH 5-7, 5-10, 5-13, 5-16, 5-20, 5-26, 14-7
FBD_MATH_ADVANCED 5-23, 5-29, 13-2, 13-4, 13-6,
13-8, 13-10, 13-12, 14-2, 14-4, 15-2, 15-4
FBD_ONESHOT 1-18, 1-20
FBD_TIMER 2-13, 2-16, 2-19
FBD_TRUNCATE 15-11
instruction RES 2-33
MESSAGE 3-2
PID 12-20
RESULT 12-3, 12-10
SERIAL_PORT_CONTROL 16-2, 16-4, 16-6, 16-8, 16-13,
16-17, 16-20, 16-24, 16-28
STRING 16-3, 17-2, 18-2
TIMER 2-2, 2-5, 2-9

suprieur 4-15
suprieur ou gal 4-11

T
taille en lments 7-52
tangente 13-6
tangente d'arc 13-12
temporisateur l'enclenchement 2-2
temporisateur l'enclenchement avec RAZ 2-13
temporisateur au dclenchement 2-5
temporisateur au dclenchement avec RAZ 2-16
temporisateur rmanent 2-9
temporisateur rmanent avec RAZ 2-19
test ASCII du buffer 16-5
test sur limites 4-27
texte structur
CASE (EN FONCTION) C-15
toujours faux 10-22
transfert 6-3
transfert avec masque 6-5
transfert avec masque et cible 6-8
transition de donnes 12-16
tri 7-41
troncation 15-11
type de donnes chane 16-3, 17-2, 18-2

V
valeur absolue 5-29
valeurs immdiates A-1
verrouillage de sortie 1-7
verrouillage des donnes B-1

X
X la puissance Y 14-6

Z
zone morte 12-33

Publication 1756-RM003F-FR-P - Mai 2002

Index

Publication 1756-RM003F-FR-P - Mai 2002

Codes des caractres ASCII


Caractre

Dc. Hex.

Caractre

Dc. Hex.

Caractre

Dc. Hex.

Caractre

Dc. Hex.

[ctrl-@] NUL 0

$00

&

38

$26

76

$4C

114

$72

[ctrl-A] SOH

$01

39

$27

77

$4D

115

$73

[ctrl-B] STX

$02

40

$28

78

$4E

116

$74

[ctrl-C] ETX

$03

41

$29

79

$4F

117

$75

[ctrl-D] EOT

$04

42

$2A

80

$50

118

$76

[ctrl-E] ENQ

$05

43

$2B

81

$51

119

$77

[ctrl-F] ACK

$06

44

$2C

82

$52

120

$78

[ctrl-G] BEL

$07

45

$2D

83

$53

121

$79

[ctrl-H] BS

$08

46

$2E

84

$54

122

$7A

[ctrl-I] HT

$09

47

$2F

85

$55

123

$7B

[ctrl-J] LF

10

$l ($0A)

48

$30

86

$56

124

$7C

[ctrl-K] VT

11

$0B

49

$31

87

$57

125

$7D

[ctrl-L] FF

12

$0C

50

$32

88

$58

126

$7E

[ctrl-M] CR

13

$r ($0D)

51

$33

89

$59

DEL

127

$7F

[ctrl-N] SO

14

$0E

52

$34

90

$5A

[ctrl-O] SI

15

$0F

53

$35

91

$5B

[ctrl-P] DLE

16

$10

54

$36

92

$5C

[ctrl-Q] DC1

17

$11

55

$37

93

$5D

[ctrl-R] DC2

18

$12

56

$38

94

$5E

[ctrl-S] DC3

19

$13

57

$39

95

$5F

[ctrl-T] DC4

20

$14

58

$3A

96

$60

[ctrl-U] NAK

21

$15

59

$3B

97

$61

[ctrl-V] SYN

22

$16

<

60

$3C

98

$62

[ctrl-W] ETB

23

$17

61

$3D

99

$63

[ctrl-X] CAN

24

$18

>

62

$3E

100

$64

[ctrl-Y] EM

25

$19

63

$3F

101

$65

[ctrl-Z] SUB

26

$1A

64

$40

102

$66

ctrl-[ ESC

27

$1B

65

$41

103

$67

[ctrl-\] FS

28

$1C

66

$42

104

$68

ctrl-] GS

29

$1D

67

$43

105

$69

[ctrl-^] RS

30

$1E

68

$44

106

$6A

[ctrl-_] US

31

$1F

69

$45

107

$6B

ESPACE

32

$20

70

$46

108

$6C

33

$21

71

$47

109

$6D

34

$22

72

$48

110

$6E

35

$23

73

$49

111

$6F

36

$24

74

$4A

112

$70

37

$25

75

$4B

113

$71

Quatrime de couverture

Publication 1756-RM003F-FR-P - Mai 2002 1


Remplace la publication 1756-RM003E-FR-P - Novembre 2001

PN 957707-64
Copyright 2002 Rockwell Automation. Tous droits rservs. Imprim aux Etats-Unis.

Vous aimerez peut-être aussi