Você está na página 1de 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 Actions ou situations risquant d'entraner des blessures pouvant tre mortelles, des dgts matriels ou des pertes financires.

!
IMPORTANT

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 Etats-Unis/ Canada Hors Etats-Unis/ Canada +1.440.646.5800 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)

Internet

Notes :

Sommaire des modifications

Introduction Modifications

Ce document contient des informations actualises et nouvelles.

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 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. Les instructions Fin de transition (End of Transition - EOT), Pause SFC (SFC Pause - SFP) et Positionnement SFC (SFC Reset - SFR) ont t ajoutes. 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. Voir le chapitre 6

10

10

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.
L'instruction se trouve dans ce manuel Logix5000 Controllers Process Control and Drives Instruction Set Reference Manual (publication 1756-RM006) Logix5000 Controllers Motion Instruction Set Reference Manual (publication 1756-RM007) Instruction AVE AWA AWT BAND BNOT BOR BRK BSL BSR BTD BTDT BTR (type MSG) BTW (type MSG) BXOR CLR CMP CONCAT COP Emplacement 7-36 16-23 16-27 6-34 6-42 6-37 11-4 8-2 8-5 6-11 6-14 3-2 3-2 6-40 6-17 4-2 17-3 7-26 Langages logique relais logique relais texte structur logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais logique relais logique relais logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur texte structur bloc fonctionnel logique relais texte structur logique relais logique relais texte structur logique relais texte structur

Si le tableau indique un numro de page une commande de procd une commande de mouvement

Instruction ABL ABS

Emplacement 16-5 5-29

Langages logique relais texte structur logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur texte structur logique relais bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais logique relais texte structur texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur texte structur logique relais bloc fonctionnel texte structur logique relais bloc fonctionnel

ACB ACL ACOS ACS ADD

16-8 16-10 13-10 13-10 5-6

AFI AHL ALM AND

10-22 16-12 une commande de procd 6-22

ARD ARL ASIN ASN ATAN ATN

16-16 16-19 13-8 13-8 13-12 13-12

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction COS

Emplacement 13-4

Langages logique relais texte structur bloc fonctionnel logique relais texte structur logique relais logique relais logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur logique relais logique relais texte structur logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais logique relais logique relais logique relais texte structur bloc fonctionnel

Instruction FIND FLL FOR FRD FSC GEQ

Emplacement 17-7 7-32 11-2 15-9 7-18 4-11

Langages logique relais texte structur logique relais logique relais logique relais bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais logique relais logique relais bloc fonctionnel

CPS CPT CTD CTU CTUD D2SD D3SD DDT DEDT DEG

7-26 5-2 2-25 2-22 2-29 une commande de procd une commande de procd 12-9 une commande de procd 15-2

GRT

4-15

GSV HLL HPF INSERT INTG JKFF JMP JSR

3-30 une commande de procd une commande de procd 17-9 une commande de procd une commande de procd 10-2 10-4

DELETE DERV DFF DIV

17-5 une commande de procd une commande de procd 5-15

DTOS DTR EOT EQU

18-7 12-16 10-24 4-7

JXR LBL LDL2 LDLG LEQ

10-13 10-2 une commande de procd une commande de procd 4-19

ESEL FAL FBC FFL FFU FGEN

une commande de procd 7-7 12-2 8-8 8-14 une commande de procd

LES

4-23

LFL LFU LIM

8-20 8-26 4-27

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction LN

Emplacement 14-2

Langages logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel logique relais texte structur

Instruction MCD MCR MDF MDO MDOC MDR MDW MEQ

Emplacement une commande de mouvement 10-18 une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement 4-33

Langages logique relais texte structur logique relais logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur texte structur bloc fonctionnel

LOG

14-4

LOWER LPF MAAT MAFR MAG MAH MAHD MAJ MAM MAOC MAPC MAR MAS MASD MASR MATC MAVE MAW MAXC MCCP

18-13 une commande de procd une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement une commande de procd une commande de mouvement une commande de procd une commande de mouvement

MGS MGSD MGSP MGSR MID MINC MOD

une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement 17-11 une commande de procd 5-19

MOV MRAT MRHD MRP MSF MSG MSO MSTD

6-3 une commande de mouvement une commande de mouvement une commande de mouvement une commande de mouvement 3-2 une commande de mouvement une commande de procd

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction MUL

Emplacement 5-12

Langages logique relais texte structur bloc fonctionnel bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais logique relais logique relais texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel

Instruction POSP RAD

Emplacement une commande de procd 15-4

Langages texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel texte structur bloc fonctionnel bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur logique relais texte structur logique relais texte structur bloc fonctionnel logique relais texte structur texte structur bloc fonctionnel

MUX MVM MVMT NEG

une commande de procd 6-5 6-8 5-26

RES RESD RET

2-33 une commande de procd 10-4 et 11-5

NEQ

4-38

RLIM RMPS RTO RTOR RTOS SBR

une commande de procd une commande de procd 2-9 2-19 18-9 10-4

NOP NOT

10-23 6-31

NTCH ONS OR

une commande de procd 1-11 6-25

SCL SCRV SEL SETD SFP SFR SIN

OSF OSFI OSR OSRI OTE OTL OTU PI PID PIDE PMUL

1-16 1-20 1-14 1-18 1-6 1-7 1-9 une commande de procd 12-19 une commande de procd une commande de procd

une commande de procd une commande de procd une commande de procd une commande de procd 10-26 10-28 13-2

SIZE SNEG

7-52 une commande de procd

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Instruction SOC SQI SQL SQO SQR SQRT SRT SRTP SSUM SSV STD STOD STOR SUB

Emplacement une commande de procd 9-2 9-10 9-6 5-23 5-23 7-41 une commande de procd une commande de procd 3-30 7-46 18-3 18-5 5-9

Langages texte structur bloc fonctionnel logique relais logique relais logique relais logique relais bloc fonctionnel texte structur logique relais texte structur texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais texte structur logique relais logique relais texte structur logique relais texte structur logique relais texte structur bloc fonctionnel logique relais texte structur logique relais texte structur bloc fonctionnel logique relais logique relais bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais bloc fonctionnel texte structur

Instruction UID UIE UPDN UPPER XIC XIO XOR

Emplacement 10-20 10-20 une commande de procd 18-11 1-2 1-4 6-28

Langages logique relais texte structur logique relais texte structur texte structur bloc fonctionnel logique relais texte structur logique relais logique relais logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel

XPY

14-6

SWPB TAN

6-18 13-6

TND TOD TOF TOFR TON TONR TOT TRN TRUNC

10-16 15-6 2-5 2-16 2-2 2-13 une commande de procd 15-11 15-11

Publication 1756-RM003F-FR-P - Mai 2002

Reprage des instructions

Notes :

Publication 1756-RM003F-FR-P - Mai 2002

Prface

Introduction
Tche/Objet Programmation de l'automate pour les applications squentielles
Vous tes dans ce document

Ce manuel fait partie d'une srie de documents d'instructions sur les produits Logix.
Documents Automate Logix5000 - Jeu d'instructions - Manuel de rfrence (publication 1756-RM003)

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 Importation d'un fichier texte ou de points dans un projet 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) Logix5000 Controllers Motion Instructions Reference Manual (publication 1756-RM007) Logix5000 Controllers Import/Export Reference Manual (publication 1756-RM084)

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
Cette section Nom de l'instruction Oprandes

Ce manuel fournit une description de chaque instruction dans le format suivant :


Fournit ce type d'information identifie l'instruction dtermine si l'instruction est une instruction d'entre ou de sortie 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 Description Indicateurs d'tat arithmtique Conditions d'erreur Excution Exemple

indique les bits et les valeurs d'tat de la commande de l'instruction, s'il y en a dcrit l'utilisation de l'instruction dfinit les diffrences entre l'activation et la dsactivation de l'instruction, si ncessaire dtermine si l'instruction a un effet sur les indicateurs d'tat arithmtique voir l'annexe Attributs communs dtermine si l'instruction gnre des dfauts mineurs ou majeurs le cas chant, dfinit le type et le code de dfaut dfinit le fonctionnement de l'instruction 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

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


Pour des informations sur les attributs communs Voir cette annexe l'annexe Attributs communs dfinit : les indicateurs d'tat arithmtique ; les types de donnes ; les mots-cls. l'annexe Attributs de bloc fonctionnel dfinit : les commandes Programme et Oprateur ; les modes de temporisation.

les attributs de bloc fonctionnel

Conventions et terminologie

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 activer effacer Indique que le bit est mis 1 (ON) une valeur est attribue tout nombre autre que zro 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

instruction de sortie

tat d'entre de la ligne

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 pr-scrutation Description 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. 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. 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.

premire scrutation de l'instruction premire excution de l'instruction

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

Chapitre 2 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
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 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

vii

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

Chapitre 5 Instructions de calcul/ mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcul (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oprateurs valables . . . . . . . . . . . . . . . . . . . . . Formatage des expressions. . . . . . . . . . . . . . . . Dfinition de l'ordre d'excution des oprations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-2 5-4 5-4 5-4

Publication 1756-RM003F-FR-P - Mai 2002

Table des matires

ix

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

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

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

Chapitre 6 Instructions de transfert/ logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
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

Chapitre 7 Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
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

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

Chapitre 9 Instructions squenceur (SQI, SQO, SQL)


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 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

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


Introduction . . . . . . . . . . . Logarithme naturel (LN) . . Logarithme dcimal (LOG) X la puissance Y (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

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) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 . 16-2 . 16-4 . 16-4 . 16-5 . 16-8 16-10 16-12 16-16 16-19 16-23 16-27

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


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

Chapitre 18 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)
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) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 . 18-2 . 18-3 . 18-5 . 18-7 . 18-9 18-11 18-13

Publication 1756-RM003F-FR-P - Mai 2002

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 activer les sorties lorsqu'un bit est activ activer les sorties lorsqu'un bit est effac activer un bit activer un bit (rmanent) effacer un bit (rmanent) activer les sorties pour une scrutation chaque fois qu'une ligne devient vraie activer un bit pour une scrutation chaque fois qu'une ligne devient vraie activer un bit pour une scrutation chaque fois qu'une ligne devient fausse activer un bit pour une scrutation chaque fois que le bit d'entre est activ dans le bloc fonctionnel activer un bit pour une scrutation chaque fois que le bit d'entre est effac dans le bloc fonctionnel
(1)

Utilisez les instructions sur bits (type relais) pour surveiller et commander l'tat des bits.
Utilisez cette instruction XIC XIO OTE OTL OTU ONS OSR OSF OSRI Disponible dans ces langages logique relais texte structur(1) logique relais texte structur(1) logique relais texte structur(1) logique relais texte structur(1) logique relais texte structur(1) logique relais texte structur(1) logique relais logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel Voir page 1-2 1-4 1-6 1-7 1-9 1-11 1-14 1-16 1-18

OSFI

1-20

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)


Oprandes :

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

Logique relais
Oprande bit de donnes Type BOOL Format point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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

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

Publication 1756-RM003F-FR-P - Mai 2002

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)


Oprandes :

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

Logique relais
Oprande bit de donnes Type BOOL Format point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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

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

Publication 1756-RM003F-FR-P - Mai 2002

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)


Oprandes :

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

Logique relais
Oprande bit de donnes Type BOOL Format point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais Le bit de donnes est effac. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes est effac. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes est activ. L'tat de sortie de la ligne est rgl sur vrai. 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)

1-7

Verrouillage de sortie (OTL)


Oprandes :

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

Logique relais
Oprande bit de donnes Type BOOL Format point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais Le bit de donnes n'est pas modifi. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes n'est pas modifi. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes est activ. L'tat de sortie de la ligne est rgl sur vrai. 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)

1-9

Dverrouillage de sortie (OTU)


Oprandes :

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

Logique relais
Oprande bit de donnes Type BOOL Format point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais Le bit de donnes n'est pas modifi. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes n'est pas modifi. L'tat de sortie de la ligne est rgl sur faux. Le bit de donnes est effac. L'tat de sortie de la ligne est rgl sur vrai. 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)

1-11

Excution sur front (ONS)


Oprandes :

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

Logique relais
Oprande bit de stockage Type BOOL Format point Description 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 pendant la pr-scrutation Action de la logique relais 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. 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 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 bit de stockage bit de sortie Type BOOL Format point Description bit de mmoire interne enregistre l'tat d'entre de la ligne de la dernire excution de l'instruction bit activer

BOOL

point

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

l'instruction est rinitialise lors de la scrutation suivante

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

Publication 1756-RM003F-FR-P - Mai 2002

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

1-15

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. 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 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 bit de stockage bit de sortie Type BOOL Format point Description bit de mmoire interne enregistre l'tat d'entre de la ligne de la dernire excution de l'instruction bit activer

BOOL

point

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

l'instruction est rinitialise pendant la scrutation suivante

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

Publication 1756-RM003F-FR-P - Mai 2002

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

1-17

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. Voir l'tat d'entre de la ligne rgl sur faux ci-dessus.

pendant la post-scrutation

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)


Oprandes :
OSRI(OSRI_tag);

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).

Texte structur
Oprande point OSRI Type FBD_ONESHOT Format structure Description structure OSRI

Bloc fonctionnel
Oprande point OSRI Type FBD_ONESHOT Format structure Description structure OSRI

Structure FBD_ONESHOT
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSR. Effac par dfaut. Description L'instruction a fourni un rsultat correct. Bit de sortie

InputBit Paramtre de sortie EnableOut OutputBit

BOOL Type de donnes BOOL BOOL

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

l'instruction est rinitialise lors de la scrutation suivante

Publication 1756-RM003F-FR-P - Mai 2002

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ Action du bloc fonctionnel Aucune. InputBitn-1 est activ. InputBitn-1 est activ. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. Lorsque InputBit passe d'effac activ, l'instruction active InputBitn-1. L'instruction est excute. EnableOut est activ. Aucune. Action du texte structur Aucune. InputBitn-1 est activ. InputBitn-1 est activ. Lorsque InputBit passe d'effac activ, l'instruction active InputBitn-1. EnableIn est toujours activ. L'instruction est excute. Aucune.

pendant la post-scrutation

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 point OSFI Type FBD_ONESHOT Format structure Description structure OSFI

Bloc fonctionnel
Oprande point OSFI Type FBD_ONESHOT Format structure Description structure OSFI

Structure FBD_ONESHOT
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSF. Effac par dfaut. Description L'instruction a fourni un rsultat correct. bit de sortie

InputBit Paramtre de sortie EnableOut OutputBit

BOOL Type de donnes BOOL BOOL

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

l'instruction est rinitialise lors de la scrutation suivante

40047

Publication 1756-RM003F-FR-P - Mai 2002

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ Action du bloc fonctionnel Aucune. InputBitn-1 est effac. InputBitn-1 est effac. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. Lorsque InputBit passe d'effac activ, l'instruction efface InputBitn-1. L'instruction est excute. EnableOut est activ. Aucune. Action du texte structur Aucune. InputBitn-1 est effac. InputBitn-1 est effac. Lorsque InputBit passe de dsactiv activ, l'instruction efface InputBitn-1. EnableIn est toujours activ. L'instruction est excute. Aucune.

pendant la post-scrutation

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
Si vous voulez mesurer le temps pendant lequel un temporisateur est actif mesurer le temps pendant lequel un temporisateur est inactif cumuler du temps

Les temporisateurs et les compteurs commandent les oprations en fonction du temps ou du nombre d'vnements.
Utilisez cette instruction TON TOF RTO TONR TOFR Disponible dans ces langages logique relais logique relais logique relais texte structur bloc fonctionnel texte structur bloc fonctionnel texte structur bloc fonctionnel logique relais logique relais texte structur bloc fonctionnel logique relais Voir page 2-2 2-5 2-9 2-13 2-16

calculer combien de temps un temporisateur est actif avec RAZ intgre en bloc fonctionnel calculer combien de temps un temporisateur est inactif avec RAZ intgre en bloc fonctionnel cumuler la dure avec RAZ intgre en bloc fonctionnel faire un comptage incrmental faire un comptage dcrmental faire des comptages incrmental et dcrmental en bloc fonctionnel remettre un temporisateur ou un compteur zro

RTOR CTU CTD CTUD RES

2-19 2-22 2-25 2-29 2-33

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 Temporisateur Prslection Accumulateur Type TIMER DINT DINT Format point immdiat immdiat Description structure de temporisateur dure avant le dlai (dure cumule) nombre total de ms que le temporisateur a comptes la valeur initiale est gnralement 0

Structure TIMER
Mnmonique .EN .TT .DN .PRE .ACC Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction TON est active. Le bit de temporisation indique qu'une opration de temporisation est en cours. Le bit de fin est activ lorsque .ACC .PRE. 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. 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) le temporisateur n'a pas atteint la valeur .PRE 0
16649

Publication 1756-RM003F-FR-P - Mai 2002

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 .PRE < 0 .ACC < 0 Type du dfaut 4 4 Code du dfaut 34 34

Excution :
Condition pendant la pr-scrutation Action de la logique relais Les bits .EN, .TT et .DN sont effacs. La valeur .ACC est efface. L'tat de sortie de la ligne est rgl sur 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 faux

si l'tat d'entre de la ligne est

examine le bit .DN

bit .DN = 1

bit .DN = 0

examine le bit .EN

bit .EN = 0

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

examine .ACC

.ACC .PRE

.ACC < .PRE le bit .DN est activ le bit .TT est effac le bit .EN est activ la valeur .ACC passe zro non

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)

2-5

Temporisateur au dclenchement (TOF)

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 Temporisateur Prslection Accumulateur Type TIMER DINT DINT Format point immdiat immdiat Description structure de temporisateur dure avant le dlai (dure cumule) nombre total de ms que le temporisateur a comptes la valeur initiale est gnralement 0

Structure TIMER
Mnmonique .EN .TT .DN .PRE .ACC Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction TOF est active. Le bit de temporisation indique qu'une opration de temporisation est en cours. Le bit de fin est effac lorsque .ACC .PRE. 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. 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 le temporisateur n'a pas atteint la valeur .PRE
16650

Indicateurs d'tat arithmtique : non affects Conditions d'erreur :


Un dfaut majeur se produit si .PRE < 0 .ACC < 0 Type du dfaut 4 4 Code du dfaut 34 34

Publication 1756-RM003F-FR-P - Mai 2002

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

2-7

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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

examine le bit .DN

bit .DN = 0

bit .DN = 1

examine le bit .EN

bit .EN = 1

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

examine .ACC

.ACC .PRE

.ACC < .PRE le bit .DN est effac. le bit .TT est effac le bit .EN est effac la valeur .ACC passe zro non

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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

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)

2-9

Temporisateur rmanent (RTO)

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 Temporisateur Prslection Accumulateur Type TIMER DINT DINT Format point immdiat immdiat Description structure de temporisateur dure avant le dlai (dure cumule) nombre de ms que le temporisateur a comptes la valeur initiale est gnralement 0

Structure TIMER
Mnmonique .EN .TT .DN .PRE .ACC Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction RTO est active. Le bit de temporisation indique qu'une opration de temporisation est en cours. Le bit de fin indique que .ACC .PRE. 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. 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

valeur cumule du temporisateur (.ACC) 0 le temporisateur n'a pas atteint la valeur .PRE

16651

Indicateurs d'tat arithmtique : non affects Conditions d'erreur :


Un dfaut majeur se produit si .PRE < 0 .ACC < 0 Type du dfaut 4 4 Code du dfaut 34 34

Publication 1756-RM003F-FR-P - Mai 2002

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

2-11

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. 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 faux

si l'tat d'entre de la ligne est

examine le bit .DN

bit .DN = 1

bit .DN = 0

examine le bit .EN

bit .EN = 0

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

examine .ACC

.ACC .PRE

.ACC < .PRE le bit .DN est activ le bit .TT est effac le bit .EN est activ la valeur .ACC passe zro non

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)

2-13

Temporisateur l'enclenchement avec RAZ (TONR)


Oprandes :
TONR(TONR_tag);

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).

Texte structur
Variable point TONR Type FBD_TIMER Format structure Description structure TONR

Bloc fonctionnel
Oprande point TONR Type FBD_TIMER Format structure Description structure TONR

Structure FBD_TIMER
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Si activ, il active le temporisateur pour qu'il excute et cumule le temps. Effac par dfaut. 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. Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son activation. Effac par dfaut. Description L'instruction a fourni un rsultat correct. Temps cumul en millisecondes. Sortie de temporisateur activ. Indique que l'instruction de temporisation est active. Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation est en cours. Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale la valeur prslectionne. Etat du bloc fonctionnel. 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. La valeur prslectionne est incorrecte.

TimerEnable PRE

BOOL DINT

Remise zro

BOOL

Paramtre de sortie Type de donnes EnableOut ACC EN TT DN Status InstructFault (Status.0) PresetInv (Status.1) BOOL BOOL BOOL BOOL BOOL DINT BOOL

BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ Action du bloc fonctionnel Aucune. 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. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. 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. Lorsque le paramtre d'entre Reset est activ, l'instruction efface EN, TT et DN, puis active ACC = zro. Aucune. Action du texte structur Aucune. 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. 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. Aucune.

pendant la post-scrutation

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)


Oprandes :
TOFR(TOFR_tag);

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).

Texte structur
Variable point TOFR Type FBD_TIMER Format structure Description structure TOFR

Oprandes de bloc fonctionnel


Oprande point TOFR Type FBD_TIMER Format structure Description structure TOFR

Structure FBD_TIMER
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Si effac, il active le temporisateur pour qu'il excute et cumule le temps. Effac par dfaut. 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. Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son activation. Effac par dfaut. Description L'instruction a fourni un rsultat correct. Temps cumul en millisecondes. Sortie de temporisateur activ. Indique que l'instruction de temporisation est active. Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation est en cours. Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale la valeur prslectionne.

TimerEnable PRE

BOOL DINT

Remise zro

BOOL

Paramtre de sortie EnableOut ACC EN TT DN

Type de donnes BOOL BOOL BOOL BOOL 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-17

Paramtre d'entre Status

Type de donnes DINT

Description Etat du bloc fonctionnel. 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. La valeur prslectionne est incorrecte.

InstructFault (Status.0) BOOL

PresetInv (Status.1)

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 le temporisateur n'a pas atteint la valeur .PRE
16650

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction Action du bloc fonctionnel Aucune. EN, TT et DN sont effacs. la valeur ACC est rgle sur PRE. Action du texte structur Aucune. 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. EnableIn est toujours activ. L'instruction est excute.

pendant la premire EN, TT et DN sont effacs. excution de l'instruction la valeur ACC est rgle sur PRE. si EnableIn est effac si EnableIn est activ EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. 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. 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.

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. Aucune.

pendant la post-scrutation

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 point RTOR Type FBD_TIMER Format structure Description structure RTOR

Oprandes de bloc fonctionnel


Oprande point RTOR Type FBD_TIMER Format structure Description structure RTOR

Structure FBD_TIMER
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Si activ, il active le temporisateur pour qu'il excute et cumule le temps. Effac par dfaut. 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. Demande de rinitialisation du temporisateur. Le temporisateur est rinitialis lors de son activation. Description L'instruction a fourni un rsultat correct. Temps cumul en millisecondes. Cette valeur est retenue mme quand l'entre TimerEnable est efface, ainsi ce bloc agit diffremment du bloc TONR. Sortie de temporisateur activ. Indique que l'instruction de temporisation est active. Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation est en cours. Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale la valeur prslectionne. Etat du bloc fonctionnel. 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. La valeur prslectionne est incorrecte.

TimerEnable PRE

BOOL DINT

Remise zro Paramtre de sortie EnableOut ACC EN TT DN Status

BOOL Type de donnes BOOL DINT BOOL BOOL BOOL DINT

InstructFault (Status.0) BOOL PresetInv (Status.1) 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

valeur cumule du temporisateur (.ACC) 0 le temporisateur n'a pas atteint la valeur .PRE

16651

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ Action du bloc fonctionnel Aucune. 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 EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. 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. Lorsque le paramtre d'entre Reset est activ, l'instruction efface EN, TT et DN, puis active ACC = zro. Aucune. Action du texte structur Aucune. 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 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. Aucune.

pendant la post-scrutation

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)

2-23

Comptage incrmental (CTU)


Oprandes :

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).

Logique relais
Oprande Compteur Prslection Accumulateur Type COUNTER DINT DINT Format point immdiat immdiat Description structure de compteur limite suprieure de comptage nombre de comptages effectus par le compteur la valeur initiale est gnralement 0

Structure COUNTER
Mnmonique .CU .DN .OV Type de donnes BOOL BOOL BOOL Description Le bit d'activation de comptage incrmental indique que l'instruction CTU est active. Le bit de fin indique que .ACC .PRE. 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. 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. La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que l'instruction n'active le bit .DN. La valeur cumule indique le nombre de transitions que l'instruction a comptes.

.UN

BOOL

.PRE .ACC

DINT DINT

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 pendant la pr-scrutation Action de la logique relais 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. 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 faux si l'tat d'entre de la ligne est

examine le bit .CU

bit .CU = 0

le bit .CU est activ .ACC = .ACC + 1

la valeur .ACC passe zro

oui

bit .CU = 1

non

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 bit .UN = 0

examine le bit .UN

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)

2-27

Comptage dcrmental (CTD)


Oprandes :

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).

Logique relais
Oprande Compteur Prslection Accumulateur Type COUNTER DINT DINT Format point immdiat immdiat Description structure de compteur limite infrieure de comptage nombre de comptages effectus par le compteur la valeur initiale est gnralement 0

Structure COUNTER
Mnmonique .CD .DN .OV Type de donnes BOOL BOOL BOOL Description Le bit d'activation de comptage dcrmental indique que l'instruction CTD est active. Le bit de fin indique que .ACC .PRE. 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. 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. La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que l'instruction n'active le bit .DN. La valeur cumule indique le nombre de transitions que l'instruction a comptes.

.UN

BOOL

.PRE .ACC

DINT DINT

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 pendant la pr-scrutation Action de la logique relais 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. 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 faux si l'tat d'entre de la ligne est

examine le bit .CD

bit .CD = 0

le bit .CD est activ .ACC = .ACC - 1

la valeur .ACC passe zro

oui

bit .CD = 1

non

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 bit .UN = 0

examine le bit .UN

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)

2-31

Comptage incrmental/dcrmental (CTUD)

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 point CTUD Type FBD_COUNTER Format structure Description structure CTUD

Bloc fonctionnel
Oprande point CTUD Type FBD_COUNTER Format structure Description structure CTUD

Structure FBD_COUNTER
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Activation de comptage incrmental. Lorsque l'entre passe d'efface active, la valeur cumule augmente de un. Effac par dfaut. Activation de comptage dcrmental. Lorsque l'entre passe d'efface active, la valeur cumule diminue de un. Effac par dfaut. 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. Demande de rinitialisation du temporisateur. Le compteur est rinitialis lors de son activation. Effac par dfaut.

CUEnable

BOOL

CDEnable

BOOL

PRE

DINT

Remise zro

BOOL

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 EnableOut ACC CU CD DN OV

Type de donnes BOOL DINT BOOL BOOL BOOL BOOL

Description L'instruction a fourni un rsultat correct. Valeur cumule. Comptage incrmental activ. Comptage dcrmental activ. Comptage termin. Activ quand la valeur cumule est suprieure ou gale la valeur prslectionne. 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. 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.

UN

BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ Action du bloc fonctionnel Pas d'initialisation ncessaire. CUEnablen-1 et CDEnablen-1 sont activs. CUEnablen-1 et CDEnablen-1 sont activs. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. L'instruction active CUEnablen-1 et CDEnablen-1. Lorsque EnableIn passe d'effac activ : l'instruction est excute ; EnableOut est activ. Lorsqu'elle est active, l'instruction efface CUEnablen-1, CDEnablen-1, CU, CD, DN, OV et UN, puis active ACC = zro. Aucune. Action du texte structur Pas d'initialisation ncessaire. CUEnablen-1 et CDEnablen-1 sont activs. CUEnablen-1 et CDEnablen-1 sont activs. L'instruction active CUEnablen-1 et CDEnablen-1. EnableIn est toujours activ. L'instruction est excute. Lorsqu'elle est active, l'instruction efface CUEnablen-1, CDEnablen-1, CU, CD, DN, OV et UN, puis active ACC = zro. Aucune.

remise zro

pendant la post-scrutation

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)

2-35

Remise zro (RES)


Oprandes :

L'instruction RES rinitialise une structure TIMER, COUNTER ou CONTROL.

Logique relais
Oprande structure Type TIMER CONTROL COUNTER Format point Description 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 TIMER COUNTER CONTROL L'instruction efface la valeur .ACC les bits d'tat de la commande la valeur .ACC les bits d'tat de la commande la valeur .POS les bits d'tat de la commande

ATTENTION

!
Indicateurs d'tat arithmtique : non affects Conditions d'erreur : aucune Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation

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.

Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction RES rinitialise la structure indique. L'tat de sortie de la ligne est rgl sur vrai. 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.
Utilisez cette instruction MSG GSV SSV Disponible dans ces langages logique relais texte structur logique relais texte structur logique relais texte structur Voir page 3-2 3-30 3-30

Si vous voulez changer des donnes avec un autre module obtenir des informations sur l'tat de l'automate rgler les informations sur l'tat de l'automate

Publication 1756-RM003F-FR-P - Mai 2002

3-2

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

Message (MSG)
Oprandes :

L'instruction MSG crit ou lit un bloc de donnes de faon asynchrone vers un autre module sur un rseau.

Logique relais
Oprande Contrle de message Type MESSAGE Format point Description structure de message

Texte structur
MSG(MessageControl);

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

Structure MESSAGE
Mnmonique .FLAGS Type de donnes INT Description Le membre .FLAGS permet l'accs aux membres d'tat (bits) via un mot de 16 bits. Ce bit 2 4 5 6 7 8 9 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 .EXERR .REQ_LEN .DN_LEN .EW .ER .DN .ST .EN INT INT INT INT BOOL BOOL BOOL BOOL BOOL Si le bit .ER est activ, le mot de code d'erreur identifie les codes d'erreur pour l'instruction MSG. Le mot de code d'erreur tendu donne des informations de code d'erreur supplmentaires pour certains codes d'erreur. La longueur requise indique le nombre de mots que l'instruction de message tente de transfrer. La longueur de fin indique le nombre de mots ayant effectivement t transfrs. 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. 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. 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. 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. 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 .TO .EN_CC

Type de donnes BOOL BOOL

Description Si vous activez le bit .TO manuellement, l'automate arrte de traiter le message et active le bit .ER. 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. Utilis par le logiciel RSLogix 5000 pour indiquer l'erreur de chemin dans la bote de dialogue Configuration du message. Pour changer le lien destinataire d'un message DH+ ou CIP avec ID source, rglez le membre sur la valeur requise. Pour changer la station destinataire d'un message DH+ ou CIP avec ID source, rglez le membre sur la valeur requise. Pour changer le lien source d'un message DH+ ou CIP avec ID source, rglez le membre sur la valeur requise. Pour changer le paramtre de classe d'un message gnrique CIP, rglez le membre sur la valeur requise. Pour changer le paramtre d'attribut d'un message gnrique CIP, rglez le membre sur la valeur requise. Pour changer le paramtre d'occurrence d'un message gnrique CIP, rglez le membre sur la valeur requise. 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 lit les donnes crit les donnes Le tableau local est lment de destination lment source

.ERR_SRC .DestinationLink .DestinationNode .SourceLink .Class .Attribute .Instance .LocalIndex

SINT INT INT INT INT INT DINT DINT

.Channel .Rack .Group .Slot

SINT SINT SINT 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. Pour changer le numro de rack d'un message de bloc-transfert, rglez ce membre sur le numro de rack requis (octal). Pour changer le numro de groupe d'un message de bloc-transfert, rglez ce membre sur le numro de groupe requis (octal). Pour changer le numro d'emplacement d'un message de bloc-transfert, rglez ce membre sur le numro d'emplacement requis (octal). Si le message passe par ce rseau RIO ControlNet Indiquez le numro d'emplacement en

octal dcimal (0-15)

.Path

STRING

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 .RemoteIndex

Type de donnes DINT

Description 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. Si le message lit les donnes crit les donnes Le tableau distant est lment source lment de destination

.RemoteElement

STRING

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 lit les donnes crit les donnes Le tableau distant est lment source lment de destination

.UnconnnectedTimeout .ConnectionRate .TimeoutMultiplier

DINT DINT SINT

Dpassement de temps pour les messages non connects. La valeur par dfaut est de 30 secondes. 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

O 1

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

O 5

Description 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) l'tat d'entre de la ligne passe faux et .DN ou .ER est activ .EN est effac

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 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 pendant la pr-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. Action du texte structur Aucune.

Publication 1756-RM003F-FR-P - Mai 2002

3-6

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

Condition

Action de la logique relais


bit .EN = 1 examine le bit .EN

Action du texte structur

si l'tat d'entre de la ligne est faux (ne s'applique pas au texte structur)
bit .EW = 1 examine le bit .EW

bit .EN = 0

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 examine le bit .ER

bit .ER = 0

commande de bloc-transfert non

oui chemin du module correct oui

non

bit .DN = 1 examine le bit .DN oui connexion du module tablie le bit .EN est effac excute la demande de message non

bit .DN = 0

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 EnableIn est activ

Action de la logique relais -

Action du texte structur EnableIn est toujours activ. L'instruction est excute.

Publication 1756-RM003F-FR-P - Mai 2002

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

3-7

Condition Excution de l'instruction

Action de la logique relais


bit .EN = 1 examine le bit .EN

Action du texte structur


bit .EN = 0

bit .EW = 1 examine le bit .EW

bit .EW = 1 examine le bit .EW

bit .EW = 0

bit .EW = 0

bit .ST = 1 examine le bit .ST examine le bit .ST

bit .ST = 1

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

bit .DN = 0

le bit .EN est activ bit .ER = 0 oui chemin du module correct oui non

bit .ER = 1 examine le bit .ER

commande de bloc-transfert non

oui 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

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.

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) 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 001A 001B 001C 001D 001E 001F 0022 0025 0026 0027 0028 Description Echec de la connexion (voir les codes d'erreur tendus) Ressources insuffisantes Valeur incorrecte Erreur de syntaxe ESE (voir les codes d'erreur tendus) Destination inconnue, classe non accepte, occurrence non dfinie ou lment de structure non dfini (voir les codes d'erreur tendus) Espace de trame insuffisant Connexion perdue Service non accept Erreur dans le segment de donnes ou valeur d'attribut incorrecte Erreur de liste d'attributs L'tat existe dj Conflit de modle d'objet L'objet existe dj Attribut non rglable Permission refuse Conflit d'tat du dispositif La rponse ne peut tre insre Primitive du fragment Donnes de commande insuffisantes Attribut non accept Trop de donnes Demande de passerelle trop longue Rponse de passerelle trop longue Manque de liste d'attributs Liste d'attributs incorrecte Erreur de service intgr Panne lie la connexion (voir les codes d'erreur tendus) Rponse reue incorrecte Erreur de segment cl Erreur ESE incorrecte Attribut inattendu dans la liste Erreur DeviceNet - identit de membre incorrecte Affichage dans le logiciel identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description identique la description

Publication 1756-RM003F-FR-P - Mai 2002

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

3-9

Code d'erreur (hex) 0029 00D1 00FB 00FC 00FD 00FE 00FF

Description Erreur DeviceNet - membre non rglable Le module n'est pas en tat de marche Port de message non accept Types de donnes de message non accept Message non initialis Timeout de message Erreur gnrale (voir les codes d'erreur tendus)

Affichage dans le logiciel identique la description erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue

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) 0100 0103 0106 0107 0108 0109 0110 0111 0114 0115 0116 0118 011A Description Connexion en cours d'utilisation Transport non accept Conflit de proprit Connexion introuvable Type de connexion incorrecte Taille de connexion incorrecte Module non configur EPR non accept Module incorrect Type de dispositif incorrect Rvision incorrecte Format de configuration incorrect Plus de connexions disponibles pour l'application 0205 0206 0301 0302 0303 0305 0311 0312 0315 0317 Code d'erreur tendu (hex) 0203 0204 Description Timeout de connexion Timeout de message non connect Erreur de paramtre d'envoi non connect Message trop long Pas de mmoire tampon Bande passante non disponible Aucun filtre disponible Correspondance de signature Port non disponible Adresse de lien non disponible Type de segment incorrect 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) 0203 Description 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) 0000 0001 Description Insuffisance de mmoire pour l'tat tendu 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) 2001 2002 2018 201B 201C 2100 2101 2102 2103 2104 2105 2106 2107 Description ESE excessif Mauvaise valeur de paramtre Rejet de smaphore Taille trop petite Taille incorrecte Echec de privilge Position de commutateur cl incorrecte Mot de passe incorrect Aucun mot de passe attribu Adresse hors limites Adresse et quantit hors limites Donnes utilises Type incorrect ou non accept 2109 210A 210B 210E 210F 2110 2111 2112 2113 2114 Code d'erreur tendu (hex) 2108 Description Automate en mode de transfert ou de chargement Essai de changement des dimensions de tableau Nom de symbole incorrect Le symbole n'existe pas Echec de la recherche La tche ne peut commencer Ecriture impossible Lecture impossible Sous-programme partag non modifiable Automate en mode de dfaut Mode Run verrouill

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) 1000 2000 3000 4000 5000 6000 7000 8000 9000 B000 F001 F002 F003 F004 F005 Description Code d'erreur (hex) F00B F00C F00D F00E F00F F010 F011 F012 F013 F014 Description

Commande ou format non admis de la part du processeur local Module de communication hors service Station dcentralise manquante, dconnectez ou mettez hors tension Processeur connect mais en dfaut (matriel) Mauvais numro de station La fonction demande n'est pas disponible Le processeur est en mode Program Le fichier de compatibilit du processeur n'existe pas La station dcentralise ne peut mettre la commande dans le buffer Le processeur est en cours de chargement et n'est pas accessible Le processeur a incorrectement converti l'adresse Adresse incomplte Adresse incorrecte Format d'adresse non admis - symbole non trouv Format d'adresse non admis - le symbole a 0 ou plus de caractres que le nombre maximum accept par le dispositif Le fichier d'adresses n'existe pas dans le processeur cible Le fichier de destination est trop petit pour le nombre de mots demand La demande ne peut tre excute La situation a chang pendant l'opration multitrame Les donnes ou le fichier sont trop grands Mmoire non disponible Le processeur cible ne peut mettre les informations demandes en trames

Erreur de privilge ; accs refus La fonction demande n'est pas disponible La demande est redondante La commande ne peut tre excute Dpassement ; dpassement d'histogramme Pas d'accs Le type de donnes demand ne correspond pas aux donnes disponibles Paramtres de commande incorrects La rfrence d'adresse existe dans une zone efface Echec de l'excution de la commande pour une raison inconnue Dpassement d'histogramme de PLC-3 Erreur de conversion des donnes Le scrutateur n'est pas disponible pour communiquer avec un adaptateur de rack 1771 L'adaptateur n'est pas disponible pour communiquer avec le module La rponse du module 1771 n'est incorrecte Etiquette en double Le propritaire du fichier est actif - le fichier est utilis Le propritaire du programme est actif - quelqu'un effectue un chargement ou des modifications en ligne Le fichier disque est protg en criture ou non accessible pour toute autre raison (hors ligne uniquement) Le fichier disque est utilis par une autre application Mise jour non effectue (hors ligne uniquement)

F015 F016 F017 F018 F019 F01A F01B

F006 F007 F008

F01C

F01D

F009 F00A

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) 00D0 00D1 00D2 00D3 00D6 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD Description Le scrutateur n'a pas reu de rponse de bloc-transfert du module de bloc-transfert dans les 3,5 secondes aprs la demande. Le checksum de la rponse de lecture ne correspond pas au checksum des donnes Le scrutateur a demand une lecture ou une criture, mais le module de bloc-transfert a rpondu avec l'inverse Le scrutateur a demand une longueur et le module de bloc-transfert a rpondu avec une longueur diffrente Le scrutateur a reu une rponse du module de bloc-transfert indiquant que la demande d'criture a chou Le scrutateur n'a pas t configur pour communiquer avec le rack qui doit contenir ce module de bloc-transfert L'emplacement logique indiqu n'est pas disponible pour la taille de rack donne Une demande de bloc-transfert est en cours et une rponse est requise avant qu'une autre demande ne puisse commencer La taille des demandes de bloc-transfert ne correspond pas aux tailles de demandes de bloc-transfert valables Le type de demande de bloc-transfert ne correspond pas au BT_READ ou BT_WRITE attendu Le scrutateur n'a pas trouv d'emplacement disponible dans la table des blocs-transferts pour permettre la demande de bloc-transfert Affichage dans le logiciel erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue

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 Les files d'attente pour les bloc-transferts distance sont pleines Aucun canal de communication n'est configur pour le rack ou l'emplacement demand Aucun canal de communication n'est configur pour les E/S dcentralises Le timeout du bloc-transfert, dfini dans l'instruction, a t dpass avant la fin Erreur du protocole de bloc-transfert - bloc-transfert non sollicit Le module de bloc-transfert a demand une longueur diffrente de celle de l'instruction de bloc-transfert associe Le checksum des donnes de lecture du bloc-transfert est faux Un transfert incorrect de donnes d'criture du bloc-transfert a t effectu entre l'adaptateur et le module de bloc-transfert 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 erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue erreur inconnue

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

Publication 1756-RM003F-FR-P - Mai 2002

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

3-13

Spcification de la configuration

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 Automate Logix5000 Module d'E/S que vous configurez avec le logiciel RSLogix 5000 Automate PLC-5

Slectionnez l'un de ces types de message Lecture de table de donnes CIP Ecriture de table de donnes CIP Reconfiguration du module CIP gnrique Ecriture de type PLC5 Ecriture de type PLC5 Lecture de gamme de mots PLC5 Ecriture de gamme de mots PLC5

Voir page 3-14 3-14 3-16 3-17

Automate SLC Automate MicroLogix Module de bloc-transfert Processeur PLC-3

Ecriture de type SLC Ecriture de type SLC Bloc-transfert lecture Bloc-transfert criture Ecriture de type PLC3 Ecriture de type PLC3 Lecture de gamme de mots PLC3 Ecriture de gamme de mots PLC3

3-18 3-19 3-20

Processeur PLC-2

Lecture non protge PLC2 Ecriture non protge PLC2

3-21

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 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.

Elment de destination

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 Lecture de table de donnes CIP Ecriture de table de donnes CIP Si vous voulez lire des donnes partir d'un autre automate. Les types source et de destination doivent concorder. 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 :
Dans cette proprit Type de message Slectionnez Reconfiguration du module

Publication 1756-RM003F-FR-P - Mai 2002

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 Effectuer un test d'impulsion sur un module de sorties TOR Dans cette proprit Type de message Type de service Source Tapez ou slectionnez CIP gnrique Test d'impulsion tag_name de type INT [5] Ce tableau contient : tag_name[0] tag_name[1] tag_name[2] tag_name[3] bit de masque de points tester (ne teste qu'un point la fois) rserv, laisser 0 largeur d'impulsion (centaines de s, gnralement 20) dlai de passage par zro pour E/S ControlLogix (centaines de s, gnralement 40) vrifier le dlai

tag_name[4] Destination Rinitialiser les fusibles lectroniques sur un module de sorties TOR Type de message Type de service Source laisser en blanc CIP gnrique Rinitialiser le fusible lectronique

tag name de type DINT Ce point reprsente un masque de bit des points pour la rinitialisation des fusibles. laisser en blanc CIP gnrique Rinitialiser les diagnostics verrouills (I) tag_name de type DINT Ce point reprsente un masque de bit des points pour la rinitialisation des diagnostics. CIP gnrique Rinitialiser les diagnostics verrouills (O) tag_name de type DINT Ce point reprsente un masque de bit des points pour la rinitialisation des diagnostics. CIP gnrique 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) Canal de l'alarme que vous voulez dverrouiller

Destination Rinitialiser les diagnostics verrouills sur un module d'entres Type de message Type de service Source

Rinitialiser les diagnostics verrouills sur un module de sorties

Type de message Type de service Source

Dverrouiller l'alarme d'un module d'entres analogiques

Type de message Type de service

Instance

Publication 1756-RM003F-FR-P - Mai 2002

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

3-17

Si vous voulez Dverrouiller l'alarme d'un module de sorties analogiques

Dans cette proprit Type de message Type de service

Tapez ou slectionnez CIP gnrique 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) Canal de l'alarme que vous voulez dverrouiller

Instance

Dfinition des messages PLC-5


Utilisez les types de message PLC-5 pour communiquer avec les automates PLC-5.
Slectionnez cette commande Ecriture de type PLC5 Ecriture de type PLC5 Lecture de gamme de mots PLC5 Si vous voulez 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. 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 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. 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.

Ecriture de gamme de mots PLC5

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 B F N 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.) S ST INT 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 mots de 32 bits dans automate Logix5000 Commande de lecture ordonne mots de 16 bits dans processeur PLC-5 mots de 32 bits dans automate Logix5000

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.
Pour ce type de donnes SLC ou MicroLogix F L (automates MicroLogix 1200 et 1500) N Utilisez ce type de donnes Logix5000 REAL DINT INT

Publication 1756-RM003F-FR-P - Mai 2002

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 lire des donnes partir du module de bloc-transfert. Ce type de message remplace l'instruction BTR. crire des donnes vers un module de bloc-transfert. Ce type de message remplace l'instruction BTW. Slectionnez cette commande Bloc-transfert lecture 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 le module de bloc-transfert dtermine la quantit de nombres entiers de 16 bits envoyer (BTR). l'automate envoie 64 nombres entiers (BTW). Indiquez 0 comme nombre d'lments

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 Ecriture de type PLC3 Si vous voulez 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. 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). 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. 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.

Ecriture de type PLC3

Lecture de gamme de mots PLC3

Ecriture de gamme de mots PLC3

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 32 bits dans automate Logix5000 Commande de lecture ordonne mots de 32 bits dans automate Logix5000

mots de 16 bits dans processeur PLC-3

mots de 16 bits dans processeur PLC-3

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.

Publication 1756-RM003F-FR-P - Mai 2002

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 Lecture non protge PLC2 Ecriture non protge PLC2 Si vous voulez 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. 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 Logix5000 Logix5000

Exemple de source et de destination point source point de destination array_1[0] 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 lment de destination point source lment de destination array_1[0] N7:10 array_1[0] 010

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

Pour des instructions MSG ayant pour origine un automate Logix5000 et lisant partir d'un autre automate :
Chemin de message Logix5000 Logix5000 Exemple de source et de destination point source point de destination array_1[0] 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 point de destination lment source point de destination N7:10 array_1[0] 010 array_1[0]

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

Publication 1756-RM003F-FR-P - Mai 2002

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

3-23

Dfinition de la communication

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 port Pour 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 port DH+ via le canal B dun module 1756-DHRIO address fond de panier ControlLogix rseau DF1 rseau ControlNet rseau DH+ 3 le numro de l'emplacement l'adresse de station (0-254) le numro de station (1-99 dcimal) 8# suivi du numro de station (1-77 octal) Par exemple, pour dfinir l'adresse de station octale de 37, tapez 8#37. 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 (ex. : 130.130.130.5) (ex. : 130.130.130.5:24) (ex. : tanks) (ex. : tanks:24) Est 1 2

rseau EtherNet/IP

Publication 1756-RM003F-FR-P - Mai 2002

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 ControlNet RIO Ajoutez ces modules la configuration des E/S module de communication local (ex. : module 1756-CNB) module adaptateur distant (ex. : module 1771-ACN) 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.

EXEMPLE

Spcification d'un chemin sur ControlNet


I/O Configuration [0] 1756-CNB/x Local_CNB 2 [0] 1756-CNB/x chassis_b [3] 1756-L55/x peer_controller

MESSAGE

rseau ControlNet

42042

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
O Local_ENB 2 127.127.127.12 Est le nom du module 1756-ENBx dans le chssis local le port Ethernet du module 1756-ENBx dans le chssis local l'adresse IP de l'automate SLC 5/05

EXEMPLE

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 Automate Logix5000 Automate PLC-5 sur rseau EtherNet/IP Automate PLC-5 sur rseau ControlNet Automate SLC 5/05 Automate PLC-5 sur rseau DH+ Automate SLC sur rseau DH+ DH+ Canal : Lien source : Canal A ou B du module 1756-DHRIO connect au rseau DH+ 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.) Identificateur de la liaison DH+ l'endroit o le dispositif cible rside Adresse de station de l'quipement cible, en octal Slectionnez CIP Et indiquez aucune autre spcification requise

Processeur PLC-3 Processeur PLC-2

Lien destinataire : Station destinataire :

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 : Lien destinataire : Station destinataire : Identificateur distant de la rubrique dans le logiciel RSLinx Identificateur de liaison virtuelle rgl dans RSLinx (0-65535) 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 RIO Canal : Rack Groupe Emplacement Module de bloc-transfert sur rseau ControlNet ControlNet Emplacement Canal A ou B du module 1756-DHRIO connect au rseau RIO Numro de rack (octal) du module Numro de groupe du module Numro de l'emplacement dans lequel est le module 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 Lecture ou criture de table de donnes CIP PLC2, PLC3, PLC5 ou SLC (tous types) Utilisant cette mthode de communication CIP CIP CIP avec ID source DH+ CIP gnrique Bloc-transfert lecture ou criture
1 2

Utilise une connexion 

Que vous pouvez laisser ouverte 

 1 

 2 

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 Action A. Dsactivez la case Connexion cache (Cache Connection). B. Sautez l'tape 2. Passez l'tape 2.

Publication 1756-RM003F-FR-P - Mai 2002

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

3-29

2. Choix d'une option de cache


Si le message est destin un automate Action A combien d'automates cet automate envoie-t-il de messages que vous pouvez mettre en cache ? Si plus de 16 automates Action 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 Oui Non module de bloc-transfert Action Laissez la case Connexion cache coche. Dsactivez la case Connexion cache. 16 automates maximum Laissez la case Connexion cache slectionne (coche).

Combien d'quipements requirent des instructions de bloc-transfert ? Si 16 quipements maximum plus de 16 quipements Action Laissez la case Connexion cache slectionne (coche). 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 Oui Non Action Laissez la case Connexion cache coche. 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)


Oprandes :

Les instructions GSV/SSV rcuprent et activent les donnes systme de lautomate stockes dans les objets.

Logique relais

Oprande Nom de la classe Nom de l'occurrence Nom d'attribut Destination (GSV)

Type

Format nom nom nom

Description nom de l'objet nom de l'objet spcifique, lorsque celui-ci a besoin d'un nom attribut de l'objet le type des donnes dpend de l'attribut slectionn destination des donnes de l'attribut

SINT INT DINT REAL SINT INT DINT REAL

point

Source (SSV)

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). Utilisez les instructions GSV/SSV avec prcaution. La modification des objets peut entraner un fonctionnement inattendu de lautomate ou des blessures.

ATTENTION

!
Indicateurs d'tat arithmtique : non affects Conditions d'erreur :

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].

Un dfaut mineur se produit si 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

Type du dfaut 4 4 4 4 4

Code du dfaut 5 6 6 6 7

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. rcupre ou active la valeur indique. L'tat de sortie de la ligne est rgl sur faux. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. rcupre ou active la valeur indique. 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. 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.

ATTENTION

!
AXIS CONTROLLER CONTROLLERDEVICE CST DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP PROGRAM ROUTINE SERIALPORT TASK WALLCLOCKTIME

Vous pouvez accder aux objets suivants :


Pour des informations sur cet objet Voir la page ou la publication suivante ControlLogix Motion Module Setup and Configuration Manual (publication 1756-UM006) 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

Accs l'objet CONTROLLER


L'objet CONTROLLER fournit des informations d'tat sur l'excution d'un automate.
Attribut TimeSlice Type de donnes INT Instruction GSV SSV Description 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 DeviceName Type de donnes SINT[33] Instruction GSV Description 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. Identifie le type de l'automate Ce code produit : 3 15 41 42 43 50 51 ProductRev INT GSV Identifie cet automate Logix : 5550 5860 5433 5434 5320 5553 5555

ProductCode

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. Numro de srie du dispositif. Le numro de srie est attribu lors de la construction du dispositif.

SerialNumber

DINT

GSV

Publication 1756-RM003F-FR-P - Mai 2002

3-34

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

Attribut Status

Type de donnes INT

Instruction GSV

Description 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 Vendor

INT INT

GSV GSV

Identifie le dispositif comme automate. Automate = 14 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 CurrentStatus Type de donnes INT Instruction GSV Description Etat en cours du temps systme coordonn. Les bits identifient : Bit : 0 1 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 00 = station temporelle 01 = station matre temporelle 10 = station de relais temporelle 11 = non utilis non utilis

2 3

4 5 6

7 8-9

10-15 CurrentValue DINT[2] GSV

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 ACKTimeout Type de donnes DINT Instruction GSV Description 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). Tableau de compteurs de diagnostic pour le driver de communication DF1.

DiagnosticCounters offset de mot 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

INT[19]

GSV

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 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 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 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. 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 Indique le schma de dtection des erreurs. Valeur : Signification : 0 BCC (valeur par dfaut) 1 CRC

DuplicateDetection

EmbeddedResponseEnable

SINT

GSV

ENQTransmitLimit

SINT

GSV

EOTSuppression

SINT

GSV

ErrorDetection

SINT

GSV

Publication 1756-RM003F-FR-P - Mai 2002

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

3-37

Attribut MasterMessageTransmit

Type de donnes SINT

Instruction GSV

Description 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. 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. 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. 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. 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). Adresse de station en cours du port srie. Les valeurs correctes vont de 0 254. La valeur par dfaut est 0. 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). 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. Valeur en attente pour l'attribut ACKTimeout. Valeur en attente pour l'attribut DuplicateDetection. Valeur en attente pour l'attribut EmbeddedResponse. Valeur en attente pour l'attribut ENQTransmitLimit. Valeur en attente pour l'attribut EOTSuppression. Valeur en attente pour l'attribut ErrorDetection. Valeur en attente pour l'attribut NormalPollGroupSize. Valeur en attente pour l'attribut MasterMessageTransmit. Valeur en attente pour l'attribut NAKReceiveLimit. Valeur en attente pour l'attribut PollingMode.

NAKReceiveLimit

SINT

GSV

NormalPollGroupSize

INT

GSV

PollingMode

SINT

GSV

ReplyMessageWait

DINT

GSV

StationAddress SlavePollTimeout

INT DINT

GSV GSV

TransmitRetries

SINT

GSV

PendingACKTimeout PendingDuplicateDetection PendingEmbeddedResponse Enable PendingENQTransmitLimit PendingEOTSuppression PendingErrorDetection PendingNormalPollGroupSize PendingMasterMessage Transmit PendingNAKReceiveLimit PendingPollingMode

DINT SINT SINT SINT SINT SINT INT SINT SINT SINT

SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV

Publication 1756-RM003F-FR-P - Mai 2002

3-38

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

Attribut PendingReplyMessageWait PendingStationAddress PendingSlavePollTimeout PendingTransmitRetries

Type de donnes DINT INT DINT SINT

Instruction SSV SSV SSV SSV

Description Valeur en attente pour l'attribut ReplyMessageWait. Valeur en attente pour l'attribut StationAddress. Valeur en attente pour l'attribut SlavePollTimeout. 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 Configuration Champ Type de message Code de service Type d'objet Attribut de l'objet Source Nombre d'lments Destination Communication Chemin Valeur CIP gnrique 0d hex a2 laisser en blanc laisser en blanc 0 laisser en blanc chemin de communication vers soi-mme (1,s o s = numro d'emplacement de l'automate)

Identificateur de l'objet 1

Publication 1756-RM003F-FR-P - Mai 2002

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 MajorEvents MinorEvents MajorFaultBits Type de donnes INT INT DINT Instruction GSV SSV GSV SSV GSV SSV Description Nombre dvnements majeurs qui se sont produits depuis la dernire remise zro de ce compteur. Nombre de dfauts mineurs qui se sont produits depuis la dernire remise zro de ce compteur. 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 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

MinorFaultBits

DINT

GSV SSV

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 ConnectionPath Type de donnes SINT[130] Instruction GSV SSV GSV SSV GSV SSV GSV SSV Description 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. Dbit de trame requis de la connexion. Indique le type de message. Valeur : Signification : 0 non initialis Indique le port par lequel le message doit tre envoy. Valeur : Signification : 1 fond de panier 2 port srie 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 Dlai d'attente en microsecondes pour tous les messages non connects. La valeur par dfaut est de 30 000 000 microsecondes (30 secondes).

ConnectionRate MessageType

DINT SINT

Port

SINT

TimeoutMultiplier

SINT

GSV SSV

UnconnectedTimeout

DINT

GSV SSV

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 message dont vous souhaitez modifier l'attribut point qui stocke la valeur de l'attribut Type de message point qui stocke un 0. point de tableau qui stocke le nouveau chemin de connexion du message

msg_1 msg_1_type tag_a msg_1_path

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 MessageType Source tag_a 0

SSV Set System Value Class name MESSAGE Instance name msg_1 Attribute Name ConnectionPath Source msg_1_path[0] 6

SSV Set System Value Class name MESSAGE Instance name msg_1 Attribute Name MessageType Source msg_1_type 2

msg_1.EN /

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 EntryStatus Type de donnes INT Instruction GSV Description 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. Nombre identifiant un dfaut de module, le cas chant. Fournit des informations particulires sur le code de dfaut de l'objet MODULE. 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

FaultCode FaultInfo ForceStatus

INT DINT INT

GSV GSV GSV

Publication 1756-RM003F-FR-P - Mai 2002

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

3-43

Attribut Instance LEDStatus

Type de donnes DINT INT

Instruction GSV GSV

Description Fournit le numro d'instance de cet objet MODULE. 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. 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.

Mode

INT

GSV SSV

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 Instance Type de donnes DINT Instruction GSV Description 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 DisableFlag Type de donnes SINT Instruction GSV SSV Description Commande l'excution de ce programme. Valeur : Signification : 0 excution active 1 excution dsactive Fournit le numro d'instance de cet objet PROGRAM. Dure ncessaire l'excution de ce programme la dernire fois qu'il a t excut. La dure est en microsecondes. Enregistre les dfauts majeurs pour ce programme. Il est recommand de crer une structure utilisateur pour simplifier l'accs l'attribut MajorFaultRecord :

Instance LastScanTime MajorFaultRecord

DINT DINT DINT[11]

GSV GSV SSV GSV SSV

Nom : TimeLow TimeHigh Type Code Info MaxScanTime MinorFaultRecord

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) DINT DINT[11] GSV SSV GSV SSV Style : Dcimal Dcimal Dcimal Dcimal Hexadcimal GSV SSV Dure d'excution maximale enregistre pour ce programme. La dure est en microsecondes. Enregistre les dfauts mineurs pour ce programme. Il est recommand de crer une structure utilisateur pour simplifier l'accs l'attribut MinorFaultRecord : 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)

Nom : TimeLow TimeHigh Type Code Info SFCRestart

Type de donnes : DINT DINT INT INT DINT[8] INT

Publication 1756-RM003F-FR-P - Mai 2002

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 Instance Type de donnes DINT Instruction GSV Description 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 BaudRate Type de donnes DINT Instruction GSV Description Indique la vitesse en bauds. Les valeurs correctes sont 110, 300, 600, 1200, 2400, 4800, 9600 et 19 200 (valeur par dfaut). 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) Indique la parit. Valeur : 0 1 2 Signification : pas de parit (pas de valeur par dfaut) parit impaire (ASCII uniquement) parit paire

DataBits

SINT

GSV

Parity

SINT

GSV

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. 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. Indique le nombre de bits d'arrt. Valeur : Signification : 1 1 bit d'arrt (valeur par dfaut) 2 2 bits d'arrts (ASCII uniquement) Valeur en attente pour l'attribut BaudRate. Valeur en attente pour l'attribut DataBits. Valeur en attente pour l'attribut Parity. Valeur en attente pour l'attribut RTSOffDelay. Valeur en attente pour l'attribut RTSSendDelay. Valeur en attente pour l'attribut StopBits.

RTSSendDelay

INT

GSV

StopBits

SINT

GSV

PendingBaudRate PendingDataBits PendingParity PendingRTSOffDelay PendingRTSSendDelay PendingStopBits

DINT SINT SINT INT INT SINT

SSV SSV SSV SSV SSV SSV

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 Configuration Champ Type de message Code de service Type d'objet Identificateur de l'objet Attribut de l'objet Source Nombre d'lments Destination Communication Chemin Valeur CIP gnrique 0d hex 6f hex 1 laisser en blanc laisser en blanc 0 laisser en blanc chemin de communication vers soi-mme (1,s o s = numro d'emplacement de l'automate)

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 Instance LastScanTime MaxInterval Type de donnes DINT DINT DINT[2] Instruction GSV GSV SSV GSV SSV Description Fournit le numro d'instance de cet objet TASK. Les valeurs correctes vont de 0 31. Dure ncessaire l'excution de cette tche la dernire fois qu'elle a t excute. La dure est en microsecondes. 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. Dure d'excution maximale enregistre pour ce programme. La dure est en microsecondes. 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. Priorit relative de cette tche compare aux autres tches. Les valeurs correctes vont de 0 15. Intervalle de temps entre les excutions de la tche. La dure est en microsecondes. 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. 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

MaxScanTime MinInterval

DINT DINT[2]

GSV SSV GSV SSV

Priority Rate StartTime

INT DINT DINT[2]

GSV GSV GSV SSV GSV SSV

Watchdog

DINT

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 CSTOffset

Type de donnes DINT[2]

Instruction GSV SSV

Description 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. 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. 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)

CurrentValue

DINT[2]

GSV SSV

DateTime

DINT[7]

GSV SSV

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
Si vous voulez

Les instructions de comparaison vous permettent de comparer des valeurs l'aide d'une expression ou d'une instruction de comparaison spcifique.
Utilisez cette instruction CMP EQU Disponible dans ces langages logique relais texte structur(1) logique relais texte structur(2) bloc fonctionnel logique relais texte structur(1) bloc fonctionnel logique relais texte structur(1) bloc fonctionnel logique relais texte structur(1) bloc fonctionnel logique relais texte structur(1) bloc fonctionnel logique relais bloc fonctionnel texte structur(1) logique relais bloc fonctionnel texte structur(1) logique relais texte structur(1) bloc fonctionnel Voir page 4-2 4-7

comparer des valeurs sur la base d'une expression tester si deux valeurs sont gales

tester si une valeur est suprieure ou gale une autre valeur tester si une valeur est suprieure une autre valeur

GEQ

4-11

GRT

4-15

tester si une valeur est infrieure ou gale une autre valeur tester si une valeur est infrieure une autre valeur

LEQ

4-19

LES

4-23

tester si une valeur est comprise entre deux autres valeurs passer deux valeurs dans un masque et tester si elles sont gales tester si une valeur n'est pas gale une autre valeur

LIM

4-27

MEQ

4-33

NEQ

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. Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.

(2)

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)
Oprandes :

L'instruction CMP effectue une comparaison sur les oprations arithmtiques que vous indiquez dans l'expression.

Logique relais
Oprande Expression Type SINT INT DINT REAL STRING Format immdiat point Description 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 diffrent de zro zro L'tat de sortie de la ligne est rgl sur vrai 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 + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Description addition soustraction/ngation multiplication division galit infrieur infrieur ou gal suprieur suprieur ou gal diffrent exposant (x y) valeur absolue cosinus d'arc ET sur bits sinus d'arc tangente d'arc cosinus Optimal DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL Oprateur DEG FRD LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Description radians en degrs DCB en nombre entier logarithme naturel logarithme dcimal modulo complment sur bits OU sur bits degrs en radians sinus racine carre tangente nombre entier en DCB troncation OU exclusif sur bits Optimal DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 un oprande deux oprandes Utilisez ce format oprateur(oprande) oprande_a oprateur oprande_b Exemples ABS(point_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Opration () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (ngation), NOT *, /, MOD <, <=, >, >=, = (soustraction), + AND XOR 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.
Caractres ASCII 1ab
in f ri e ur e s u p r ie ur e

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Publication 1756-RM003F-FR-P - Mai 2002

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

4-7

Egal (EQU)
Oprandes :

L'instruction EQU teste si Source A est gale Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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 point EQU Type FBD_COMPARE Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne de l'instruction EQU en logique relais.

SourceA SourceB Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL BOOL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

4-11

Suprieur ou gal (GEQ)


Oprandes :

L'instruction GEQ teste si Source A est suprieure ou gale Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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 point GEQ Type FBD_COMPARE Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction logique relais GEQ.

SourceA SourceB Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL BOOL

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.
Caractres ASCII 1ab
in f ri e ur s u p r ie ur

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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-13

Logique relais
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

4-15

Suprieur (GRT)
Oprandes :

L'instruction GRT teste si Source A est suprieure Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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 point GRT Type FBD_COMPARE Format structure Description 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 EnableIn SourceA SourceB Paramtre de sortie EnableOut Dest Type de donnes BOOL REAL REAL Type de donnes BOOL BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. 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.
Caractres ASCII 1ab
in f ri e ur s u p r ie ur

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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-17

Logique relais
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

4-19

Infrieur ou gal (LEQ)


Oprandes :

L'instruction LEQ teste si Source A est infrieure ou gale Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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 point LEQ Type FBD_COMPARE Format structure Description 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 EnableIn SourceA SourceB Paramtre de sortie EnableOut Dest Type de donnes BOOL REAL REAL Type de donnes BOOL BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. 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.
Caractres ASCII 1ab
in f ri e ur s u p r ie ur

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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-21

Logique relais
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

4-23

Infrieur (LES)
Oprandes :

L'instruction LES teste si Source A est infrieure Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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 point LES Type FBD_COMPARE Format structure Description 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 EnableIn SourceA SourceB Paramtre de sortie EnableOut Dest Type de donnes BOOL REAL REAL Type de donnes BOOL BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. 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.
Caractres ASCII 1ab
in f ri e ur s u p r ie ur

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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-25

Logique relais
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est faux si EnableIn est vrai pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

4-27

Test sur limites (LIM)


Oprandes :

L'instruction LIM teste si la valeur Test est comprise entre la limite infrieure (Low Limit) et la limite suprieure (High Limit).

Logique relais
Oprande Limite infrieure Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur de la limite infrieure

Un point SINT ou INT est converti en valeur DINT par extension de signe. Test immdiat point valeur tester

Un point SINT ou INT est converti en valeur DINT par extension de signe. Limite suprieure 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 point LIM Type FBD_LIMIT Format structure Description 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 EnableIn Type de donnes BOOL Description 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. Valeur de la limite infrieure. Valeurs correctes = toute virgule flottante. Valeur tester par rapport aux limites. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction logique relais LIM. Valeur de la limite suprieure Valeurs correctes = toute virgule flottante.

LowLimit Test Paramtre de sortie EnableOut Dest HighLimit

REAL REAL Type de donnes BOOL BOOL REAL

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 limite suprieure Et la valeur test est gale ou dans les limites diffrente ou en dehors des limites limite suprieure gale ou en dehors des limites diffrente ou dans les limites L'tat de sortie de la ligne est vrai faux vrai faux

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 dans les limites infrieure et suprieure 0 1 +1 limite infrieure 1 Limite infrieure Limite suprieure L'instruction est vraie si la valeur de test est gale ou en dehors des limites infrieure et suprieure 0 +1 limite suprieure

limite suprieure (n+1)

limite infrieure (n+1) +n n = valeur maximum

+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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. L'instruction est excute. EnableOut est activ. 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)

4-33

Egalit avec masque (MEQ)


Oprandes :

L'instruction MEQ passe les valeurs Source et Compare par un masque et compare les rsultats.

Logique relais
Oprande Source Type SINT INT DINT SINT INT DINT SINT INT DINT Format immdiat point Description valeur tester par rapport Compare

Un point SINT ou INT est converti en valeur DINT par remplissage par zros. Masque immdiat point dfinit les bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros. Comparer 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 point MEQ Type FBD_MASK_EQUAL Format structure Description 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 EnableIn Type de donnes BOOL Description 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. Valeur tester par rapport Compare. Valeurs correctes = tout nombre entier. Dfinit les bits bloquer (masque). Valeurs correctes = tout nombre entier. Valeur de comparaison. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction logique relais MEQ.

Source Masque Comparer Paramtre de sortie EnableOut Dest

DINT DINT DINT Type de donnes BOOL BOOL

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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. L'instruction est excute. EnableOut est activ. 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 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

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 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

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)
Oprandes :

L'instruction NEQ teste si Source A est diffrente de Source B.

Logique relais
Oprande Source A Type SINT INT DINT REAL STRING SINT INT DINT REAL STRING Format immdiat point Description valeur tester par rapport Source B

Source B

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
Oprande point NEQ Type FBD_COMPARE Format structure Description structure NEQ

Publication 1756-RM003F-FR-P - Mai 2002

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

4-39

Structure FBD_COMPARE
Paramtre d'entre EnableIn SourceA SourceB Paramtre de sortie EnableOut Dest Type de donnes BOOL REAL REAL Type de donnes BOOL BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur tester par rapport SourceB. Valeurs correctes = toute virgule flottante. Valeur tester par rapport SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. 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).
Caractres ASCII 1ab
in f ri e ur s u p r ie ur

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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
Si vous voulez valuer une expression additionner deux valeurs

Les instructions de calcul/mathmatiques valuent les oprations arithmtiques l'aide d'une expression ou d'une instruction arithmtique particulire.
Utilisez cette instruction CPT ADD Disponible dans ces langages logique relais texte structur(1) logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur bloc fonctionnel Voir page 5-2 5-6

soustraire deux valeurs

SUB

5-9

multiplier deux valeurs

MUL

5-12

diviser deux valeurs

DIV

5-15

dterminer le reste aprs la division d'une valeur par une autre calculer la racine carre d'une valeur

MOD

5-19

SQR SQRT(3) NEG

5-23

prendre le signe oppos d'une valeur

5-26

prendre la valeur absolue d'une valeur

ABS

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. Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression. Texte structur uniquement.

(2) (3)

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)
Oprandes :

L'instruction CPT effectue les oprations arithmtiques que vous dfinissez dans l'expression.

Logique relais
Oprande Destination Type SINT INT DINT REAL SINT INT DINT REAL Format point Description point pour le stockage du rsultat

Expression

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Linstruction value l'expression et stocke le rsultat dans la Destination. L'tat de sortie de la ligne est rgl sur vrai. 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 + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Description addition soustraction/ngation multiplication division exposant (x y) valeur absolue cosinus d'arc ET sur bits sinus d'arc tangente d'arc cosinus radians en degrs DCB en nombre entier logarithme naturel Optimal DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL Oprateur LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Description logarithme dcimal modulo complment sur bits OU sur bits degrs en radians sinus racine carre tangente nombre entier en DCB troncation OU exclusif sur bits Optimal REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 un oprande deux oprandes Utilisez ce format oprateur(oprande) oprande_a oprateur oprande_b Exemples ABS(point_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. Opration () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (ngation), NOT *, /, MOD (soustraction), + AND XOR 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)
Oprandes :

L'instruction ADD ajoute Source A Source B et stocke le rsultat dans la Destination.

Logique relais
Oprande Source A Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur ajouter Source B

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source B immdiat point valeur ajouter Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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
Oprande point ADD Type FBD_MATH Format structure Description structure ADD

Publication 1756-RM003F-FR-P - Mai 2002

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

5-7

Structure FBD_MATH
Paramtre d'entre EnableIn SourceA SourceB Paramtre de sortie EnableOut Dest Type de donnes BOOL REAL REAL Type de donnes BOOL REAL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur ajouter SourceB. Valeurs correctes = toute virgule flottante. Valeur ajouter SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = Source A + Source B L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

5-9

Soustraction (SUB)
Oprandes :

L'instruction SUB soustrait Source B Source A et stocke le rsultat dans la Destination.

Logique relais
Oprande Source A Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur dont Source B est soustraire

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source B immdiat point valeur soustraire de Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 point SUB Type FBD_MATH Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur dont SourceB est soustraire. Valeurs correctes = toute virgule flottante. valeur soustraire de SourceA. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

SourceA SourceB Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = Source B - Source A L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction MUL multiplie Source A par Source B et stocke le rsultat dans la Destination.

Logique relais
Oprande Source A Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur du multiplicande

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source B immdiat point valeur du multiplicateur

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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
Oprande point MUL Type FBD_MATH Format structure Description structure MUL

Publication 1756-RM003F-FR-P - Mai 2002

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

5-13

Structure FBD_MATH
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur du multiplicande. Valeurs correctes = toute virgule flottante. Valeur du multiplicateur. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source A Source B Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = Source B x Source A L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

5-15

Division (DIV)
Oprandes :

L'instruction DIV divise Source A par Source B et stocke le rsultat dans la Destination.

Logique relais
Oprande Source A Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source B immdiat point valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 point DIV Type FBD_MATH Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur du dividende. Valeurs correctes = toute virgule flottante. Valeur du diviseur. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source A Source B Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL REAL

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 Exemple Source A Source B Destination ou Source B est REAL est arrondie Source A Source B Destination DINT DINT DINT REAL DINT DINT 5 3 1 5.0 3 2

et Source B ne sont pas est tronque REAL

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 tous les oprandes sont des nombres entiers (SINT, INT ou DINT) au moins un oprande est un REAL SINT, INT ou DINT REAL positif ngatif positif ngatif Et la destination est un Et le rsultat est La destination est rgle sur Source A -1 0 1.$ (infini positif) -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 le diviseur est zro Type du dfaut 4 Code du dfaut 4

Excution : Logique relais


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = Source A / Source B L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

5-19

Modulo (MOD)
Oprandes :

L'instruction MOD divise Source A par Source B et stocke le reste dans la Destination.

Logique relais
Oprande Source A Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source B immdiat point valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 point MOD Type FBD_MATH Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur du dividende. Valeurs correctes = toute virgule flottante. Valeur du diviseur. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source A Source B Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL REAL

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 tous les oprandes sont des nombres entiers (SINT, INT ou DINT) au moins un oprande est un REAL SINT, INT ou DINT REAL positif ngatif positif ngatif Et la destination est un Et le rsultat est La destination est rgle sur Source A -1 0 1.$ (infini positif) -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 le diviseur est zro Type du dfaut 4 Code du dfaut 4

Excution : Logique relais


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = Source A (TRN (Source A / Source B) * Source B) L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. 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)

5-23

Racine carre (SQR)


Oprandes :

L'instruction SQR calcule la racine carre de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description trouve la racine carre de cette valeur

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 point SQR Type FBD_MATH_ADVANCED Format structure Description structure SQR

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Trouve la racine carre de cette valeur. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 n'est pas REAL est REAL La partie dcimale du rsultat est tronque est arrondie Exemple Source Destination Source Destination DINT DINT REAL DINT 3 1 3.0 2

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction NEG change le signe de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur de ngation

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination point point pour le stockage du rsultat

Texte structur
dest := -source;

Utilisez le signe moins comme oprateur dans une expression. Cette expression change le signe 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 point NEG Type FBD_MATH_ADVANCED Format structure Description structure NEG

Structure FBD_MATH
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur de ngation. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = 0 Source L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

5-29

Valeur absolue (ABS)


Oprandes :

L'instruction ABS prend la valeur absolue de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur de laquelle prendre la valeur absolue

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 point ABS Type FBD_MATH_ADVANCED Format structure Description structure ABS

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur de laquelle prendre la valeur absolue. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Destination = | Source | L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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 copier une valeur copier une partie spcifique d'un nombre entier copier une partie spcifique d'un nombre entier dans un bloc fonctionnel transfrer des bits l'intrieur d'un nombre entier ou entre des nombres entiers dplacer des bits dans un nombre entier ou entre des nombres entiers dans un bloc fonctionnel effacer une valeur

Utilisez cette instruction MOV MVM MVMT BTD BTDT CLR

Disponible dans ces langages logique relais texte structur(1) logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel texte structur(1) logique relais logique relais texte structur

Voir page 6-3 6-5 6-8 6-11 6-14 6-17 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 une opration ET sur bits Utilisez cette instruction AND &(1) OR Disponible dans ces langages logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel logique relais texte structur(2) bloc fonctionnel texte structur(2) bloc fonctionnel texte structur(2) bloc fonctionnel texte structur(2) bloc fonctionnel texte structur(2) bloc fonctionnel Voir page 6-22

une opration OU sur bits

6-25

une opration OU exclusif sur bits

XOR

6-28

une opration COMPLEMENT sur bits

NOT

6-31

une opration ET logique sur huit entres boolennes maximum une opration OU logique sur huit entres boolennes maximum effectuer un OU exclusif sur deux entres boolennes complter une entre boolenne
(1) (2)

BAND BOR BXOR BNOT

6-34 6-37 6-40 6-42

Texte structur uniquement. 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)

6-3

Transfert (MOV)
Oprandes :

L'instruction MOV copie la Source dans la Destination. La Source reste inchange.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur transfrer (copier)

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction copie la Source dans la Destination. L'tat de sortie de la ligne est rgl sur vrai. 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)

6-5

Transfert avec masque (MVM)

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 Source Type SINT INT DINT SINT INT DINT SINT INT DINT Format immdiat point Description valeur transfrer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros. Masque immdiat point bits bloquer ou passer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros. Destination 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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 binaire par exemple : 2#00110011

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects. Conditions d'erreur : aucune Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

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 Format structure Description structure MVMT

point MVMT FBD_MASKED_MOVE

Bloc fonctionnel
Oprande Type Format structure Description structure MVMT

point MVMT FBD_MASKED_MOVE

Structure FBD_MASKED_MOVE
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Valeur d'entre transfrer dans la Destination en fonction de la valeur du Masque. Valeurs correctes = tout nombre entier. 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. Valeur d'entre transfrer dans Dest avant de transfrer les bits de Source travers le Masque. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat d'une instruction de transfert avec masque. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Masque

DINT DINT

Cible

DINT

Paramtre de sortie EnableOut Dest

Type de donnes BOOL DINT

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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 binaire par exemple : 2#00110011

Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique sont affects. Conditions d'erreur : aucune Excution :
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. L'instruction est excute. EnableOut est activ. Aucune. Action du texte structur Aucune. Aucune. Aucune. EnableIn est toujours activ. L'instruction est excute. 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 :
Cible 1 1 1 1 1 1

1. Copier Cible dans Dest.

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)

6-11

Distribution d'un champ de bits (BTD)

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 Source Type SINT INT DINT DINT Format immdiat point Description point qui contient le bit transfrer

Un point SINT ou INT est converti en valeur DINT par remplissage par zros. Bit source immdiat (0-31 DINT) (0-15 INT) (0-7 SINT) point numro du bit (plus petit numro de bit) partir duquel commencer le transfert doit tre dans la plage valable du type de donnes Source point dans lequel transfrer les bits

Destination

SINT INT DINT DINT

Bit destinataire

immdiat (0-31 DINT) (0-15 INT) (0-7 SINT) immdiat (1-32)

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 nombre de bits transfrer

Longueur

DINT

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction copie et dplace les bits de Source dans la Destination. L'tat de sortie de la ligne est rgl sur vrai. 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 destination

bit source

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 point BTDT Type FBD_BIT_FIELD_DISTRIBUTE Format structure Description structure BTDT

Bloc fonctionnel
Oprande point BTDT Type FBD_BIT_FIELD_DISTRIBUTE Format structure Description structure BTDT

Structure FBD_BIT_FIELD_DISTRIBUTE
Paramtre d'entre EnableIn Type de donnes BOOL Description 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. Valeur d'entre contenant les bits transfrer dans la Destination. Valeurs correctes = tout nombre entier. La position du bit dans Source (le plus petit numro de bit partir duquel commencer le transfert). Valeurs correctes = 0 31. Nombre de bits transfrer Valeurs correctes = 1 32. La position du bit dans Dest (le plus petit numro de bit partir duquel commencer copier des bits). Valeurs correctes = 0 31. Valeur d'entre transfrer dans Dest avant de transfrer les bits partir de la Source. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'opration de transfert de bit. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source SourceBit

DINT DINT

Longueur DestBit

DINT DINT

Cible Paramtre de sortie EnableOut Dest

DINT Type de donnes BOOL DINT

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises. L'instruction est excute. EnableOut est activ. Aucune. Action du texte structur Aucune. Aucune. Aucune. EnableIn est toujours activ. L'instruction est excute. 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 :
Cible 1 1 1 1 1 1

1. L'automate copie Cible dans Dest.

Dest

2. SourceBit et Length indiquent les bits de Source copis dans Dest, en commenant par DestBit. Source et Cible restent inchanges.
DestBit SourceBit

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)

6-17

Effacer (CLR)
Oprandes :

L'instruction CLR efface tous les bits de la Destination.

Logique relais
Oprande Destination Type SINT INT DINT REAL Format point Description point effacer

dest := 0;

Texte structur
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction efface la Destination. L'tat de sortie de la ligne est rgl sur vrai. 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)


Oprandes :

L'instruction SWPB rorganise les octets d'une valeur.

Logique relais

Oprande Source

Type INT DINT REAL

Format point

Entrez le point contenant les octets rorganiser

Mode Ordre

Si la source est INT DINT REAL

Et si vous voulez mettre les octets dans cette configuration (chaque lettre reprsente un octet diffrent) ABCD DCBA ABCD CDAB ABCD BADC

Slectionnez

n'importe quelle option REVERSE (ou entrez 0) WORD (ou entrez 1) HIGH/LOW (ou entrez 2)

Destination

INT DINT REAL

point

le point stockant les octets dans le nouvel ordre Si la source est INT DINT REAL La destination doit tre INT DINT DINT 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
42969

Nom du point bar_code[0]

Valeur AB

Style ASCII

Type INT

42968

AB

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


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur vrai. L'instruction rorganise les octets indiqus. L'tat de sortie de la ligne est rgl sur faux. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. L'instruction rorganise les octets indiqus. 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 Source A Type SINT INT DINT SINT INT DINT SINT INT DINT Format immdiat point Description 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 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 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
Oprande point AND Type FBD_LOGICAL Format structure Description structure AND

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-23

Structure FBD_LOGICAL
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur utilise par l'instruction AND avec SourceB. Valeurs correctes = tout nombre entier. Valeur utilise par l'instruction AND avec SourceA. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

SourceA SourceB Paramtre de sortie EnableOut Dest

DINT DINT Type de donnes BOOL DINT

Description : Lorsqu'elle est active, l'instruction calcule l'opration ET :


Si le bit de Source A est 0 0 1 1 Si le bit de Source B est 0 1 0 1 Le bit de Destination est 0 0 0 1

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction effectue une opration ET sur bits. L'tat de sortie de la ligne est rgl sur vrai. 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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

6-25

OU sur bits (OR)

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 Source A Type SINT INT DINT Format immdiat point Description 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 point OR Type FBD_LOGICAL Format structure Description 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 EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur utilise par l'instruction OR avec SourceB. Valeurs correctes = tout nombre entier. Valeur utilise par l'instruction OR avec SourceA. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

SourceA SourceB Paramtre de sortie EnableOut Dest

DINT DINT Type de donnes BOOL DINT

Description : Lorsqu'elle est active, l'instruction calcule l'opration OU :


Si le bit de Source A est 0 0 1 1 Si le bit de Source B est 0 1 0 1 Le bit de Destination est 0 1 1 1

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction effectue une opration OU sur bits. L'tat de sortie de la ligne est rgl sur vrai. 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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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 Source A Type SINT INT DINT Format immdiat point Description 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
Oprande point XOR Type FBD_LOGICAL Format structure Description structure XOR

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-29

Structure FBD_LOGICAL
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur utilise par l'instruction XOR avec SourceB. Valeurs correctes = tout nombre entier. Valeur utilise par l'instruction XOR avec SourceA. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

SourceA SourceB Paramtre de sortie EnableOut Dest

DINT DINT Type de donnes BOOL DINT

Description : Lorsqu'elle est active, l'instruction calcule l'opration OU exclusif :


Si le bit de Source A est 0 0 1 1 Si le bit de Source B est 0 1 0 1 Le bit de Destination est 0 1 1 0

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction effectue une opration OU sur bits. L'tat de sortie de la ligne est rgl sur vrai. 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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

6-31

COMPLEMENT sur bits (NOT)


Oprandes :

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.

Logique relais
Oprande Source Type SINT INT DINT Format immdiat point Description 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 point NOT Type FBD_LOGICAL Format structure Description structure NOT

Structure FBD_LOGICAL
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur de ngation. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

DINT Type de donnes BOOL DINT

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 0 1 Le bit de Destination est 1 0

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction effectue une opration COMPLEMENT sur bits. L'tat de sortie de la ligne est rgl sur vrai. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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 point BAND Type FBD_BOOLEAN_AND Format structure Description structure BAND

Structure FBD_BOOLEAN_AND
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Premire entre boolenne. Activ par dfaut. Deuxime entre boolenne. Activ par dfaut. Troisime entre boolenne. Activ par dfaut. Quatrime entre boolenne. Activ par dfaut. Cinquime entre boolenne. Activ par dfaut. Sixime entre boolenne. Activ par dfaut. Septime entre boolenne. Activ par dfaut. Huitime entre boolenne. Activ par dfaut. Description Sortie active. Sortie de l'instruction.

In1 In2 In3 In4 In5 In6 In7 In8 Paramtre de sortie EnableOut Out

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Type de donnes BOOL BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. Aucune.

Exemple 1 : Additionner (opration ET) bool_in1 et bool_in2, et placer le rsultat


dans value_result_and.
Si bool_in1 est 0 0 1 1 Si bool_in2 est 0 1 0 1 Alors value_result_and est 0 0 0 1

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)

6-37

OU boolen (BOR)

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 point BOR Type FBD_BOOLEAN_OR Format structure Description structure BOR

Structure FBD_BOOLEAN_OR
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Premire entre boolenne. Effac par dfaut. Deuxime entre boolenne. Effac par dfaut. Troisime entre boolenne. Effac par dfaut. Quatrime entre boolenne. Effac par dfaut. Cinquime entre boolenne. Effac par dfaut. Sixime entre boolenne. Effac par dfaut. Septime entre boolenne. Effac par dfaut. Huitime entre boolenne. Effac par dfaut. Description Sortie active. Sortie de l'instruction.

In1 In2 In3 In4 In5 In6 In7 In8 Paramtre de sortie EnableOut Out

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Type de donnes BOOL BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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 0 0 1 1 Si bool_in2 est 0 1 0 1 Alors value_result_or est 0 1 1 1

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)


Oprandes :

L'instruction BXOR effectue une opration OU exclusif sur deux entres boolennes. Pour effectuer un OU exclusif sur bits, voir page 6-28.

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 point BXOR Type FBD_BOOLEAN_XOR Format structure Description structure BXOR

Structure FBD_BOOLEAN_XOR
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Premire entre boolenne. Effac par dfaut. Deuxime entre boolenne. Effac par dfaut. Description Sortie active. Sortie de l'instruction.

In1 In2 Paramtre de sortie EnableOut Out

BOOL BOOL Type de donnes BOOL BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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 0 0 1 1 Si bool_in2 est 0 1 0 1 Alors value_result_xor est 0 1 1 0

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)


Oprandes :

L'instruction BNOT complte une entre boolenne. Pour effectuer un COMPLEMENT sur bits, voir page 6-31.

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 point BNOT Type FBD_BOOLEAN_NOT Format structure Description structure BNOT

Structure FBD_BOOLEAN_NOT
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction. Activ par dfaut. Description Sortie active. Sortie de l'instruction.

In Paramtre de sortie EnableOut Out

BOOL Type de donnes BOOL BOOL

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action du bloc fonctionnel Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. Aucune.

Exemple 1 : Complter bool_in1 et placer le rsultat dans value_result_not.


Si bool_in1 est 0 1 Alors value_result_not est 1 0

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
Si vous voulez effectuer des oprations arithmtiques, logiques, de dcalage et de fonction sur des valeurs de tableaux chercher et comparer des valeurs de tableaux copier le contenu d'un tableau dans un autre copier le contenu d'un tableau dans un autre sans interruption remplir un tableau avec des donnes particulires calculer la moyenne d'un tableau de valeurs classer une dimension de donnes de tableau en ordre croissant calculer l'cart type d'un tableau de valeurs trouver la taille d'une dimension de tableau
(1)

Les instructions de fichier/instructions diverses fonctionnent sur des tableaux de donnes.


Utilisez cette instruction FAL Disponible dans ces langages logique relais texte structur(1) logique relais logique relais texte structur logique relais texte structur logique relais texte structur(1) logique relais texte structur(1) logique relais texte structur logique relais texte structur(1) logique relais texte structur Voir page 7-7

FSC COP CPS FLL AVE SRT STD SIZE

7-18 7-26 7-26 7-32 7-36 7-41 7-46 7-52

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 agir sur tous les lments indiqus dans un tableau avant de continuer avec l'instruction suivante rpartir l'opration sur tableau sur plusieurs scrutations entrez le nombre d'lments sur lesquels effectuer l'opration chaque scrutation (1 2147483647) traiter un lment du tableau chaque fois que l'tat d'entre de la ligne passe de faux vrai Slectionnez ce mode Tout Numrique

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 scrutations multiples La ligne est faux la fin de l'opration scrutations multiples

tat d'entre de la ligne

bit .EN bit .DN scrutation de l'instruction opration termine opration termine

40013

efface les bits d'tat et la valeur .POS

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

scrutation de l'instruction opration termine

40014

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)

7-7

Fichier arithmtique et logique (FAL)


Oprandes :

L'instruction FAL effectue des oprations de copie, arithmtiques, logiques et de fonction sur des donnes stockes dans un tableau.

Logique relais
Oprande Commande Longueur Position Mode Type CONTROL DINT DINT DINT Format point immdiat immdiat immdiat Description structure de contrle pour l'opration nombre d'lments du tableau traiter lment en cours du tableau la valeur initiale est gnralement 0 mode de rpartition de l'opration slectionner INC, ALL ou entrer un nombre point pour le stockage du rsultat

Destination

SINT INT DINT REAL SINT INT DINT REAL

point

Expression

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 .EN .DN .ER Type de donnes BOOL BOOL BOOL Description Le bit d'activation indique que l'instruction FAL est active. Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment (.POS = .LEN). 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. La longueur indique le nombre d'lments du tableau sur lesquels l'instruction FAL est excute. La position contient la position de l'lment auquel l'instruction est en train d'accder.

.LEN .POS

DINT DINT

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 :
Un dfaut majeur se produit si l'indice est en dehors des limites .POS < 0 ou .LEN < 0 Type du dfaut 4 4 Code du dfaut 20 21

Publication 1756-RM003F-FR-P - Mai 2002

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

7-9

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux Action de la logique relais L'tat de sortie de la ligne est rgl sur faux.

examine le bit .DN

bit .DN = 0

mode INC oui le bit .EN est effac

non

le bit interne est effac

bit .DN = 1 le bit .EN est effac le bit .ER est effac le bit .DN est effac la valeur .POS est efface

mode TOUT oui

non

.LEN < 0 ou .POS < 0 non

oui

dfaut majeur

.POS = .POS + 1

oui

.LEN = 0 non

.POS = 0 non .POS = .POS - 1

oui non

.POS < .LEN oui

.LEN > mode le bit .DN est activ le bit .EN est activ oui le bit .DN est activ le bit .EN est effac

non

mode = .LEN

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 si l'tat d'entre de la ligne est vrai

Action de la logique relais

.LEN < 0 ou .POS < 0 examine le bit .ER bit .ER = 1 examine le bit .DN bit .DN = 1 bit .ER = 0 non bit .DN = 0 .LEN = 0 oui le bit .DN est activ le bit .EN est activ

oui

page 7-13 dfaut majeur mode Numrique non

non

mode INC oui

non mode TOUT oui

mode INC page 7-11

mode TOUT page 7-12

commun

loop_count = loop_count - 1

loop_count < 0 oui

non

.POS = .POS + 1

value l'expression

examine S:V oui .POS = .POS + 1 le bit .ER est activ

non

.POS = .LEN oui le bit .DN est activ le bit .EN est activ

non

.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)

7-11

Condition
mode INC

Action de la logique relais

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

examine le bit interne bit = 0

bit = 1 .POS = .POS + 1

le bit interne est activ

.POS .LEN non

oui

.POS = 0 non .POS = .POS - 1

oui

le bit .EN est activ loop_count = 1 .POS = .POS - 1

le bit .DN est activ le bit .EN est activ commun page 7-10 fin l'tat de sortie de la ligne est rgl sur vrai

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
mode TOUT

Action de la logique relais

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

examine le bit interne bit = 0

bit = 1

.POS = .POS + 1

le bit .EN est activ

.POS .LEN non loop_count = .LEN - .POS .POS = .POS - 1

oui

.POS = 0 non .POS = .POS - 1

oui

le bit .DN est activ le bit .EN est activ commun page 7-10

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)

7-13

Condition
mode Numrique

Action de la logique relais

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

.POS = .POS + 1

examine le bit interne bit = 0 le bit interne est activ

bit = 1

.POS .LEN non

oui

.POS = 0 non .POS = .POS - 1

oui

mode = .LEN

non

.LEN mode oui le bit .EN est activ loop_count = .LEN - .POS .POS = .POS - 1 le bit .DN est activ le bit .EN est activ l'tat de sortie de la ligne est rgl sur vrai

fin

mode loop_count non le bit .EN est activ loop_count = mode

oui

commun page 7-10

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

Destination : array_1[control_1.pos]

Publication 1756-RM003F-FR-P - Mai 2002

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

Expression : array_1[control_1.pos] * array_3[control_1.pos]

Destination : value_1

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 + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Description addition soustraction/ngation multiplication division exposant (x y) valeur absolue cosinus d'arc ET sur bits sinus d'arc tangente d'arc cosinus radians en degrs DCB en nombre entier logarithme naturel Optimal DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL Oprateur LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Description logarithme dcimal modulo complment sur bits OU sur bits degrs en radians sinus racine carre tangente nombre entier en DCB troncation OU exclusif sur bits Optimal REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 un oprande deux oprandes Utilisez ce format oprateur(oprande) oprande_a oprateur oprande_b Exemples ABS(point_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. Opration () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (ngation), NOT *, /, MOD (soustraction), + AND XOR 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)


Oprandes :

L'instruction FSC compare des valeurs dans un tableau, lment par lment.

Logique relais
Oprande Commande Longueur Position Type CONTROL DINT DINT Format point immdiat immdiat Description structure de contrle pour l'opration nombre d'lments du tableau traiter offset dans le tableau la valeur initiale est gnralement 0

Structure CONTROL
Mnmonique .EN .DN .ER .IN .FD .LEN .POS Type de donnes Description BOOL BOOL BOOL BOOL BOOL DINT DINT Le bit d'activation indique que l'instruction FSC est active. Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment (.POS = .LEN). Le bit d'erreur n'est pas modifi. 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. Le bit trouv indique que l'instruction FSC a dtect une vraie comparaison. La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute. 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 :
Un dfaut majeur se produit si .POS < 0 ou .LEN < 0 Type du dfaut 4 Code du dfaut 21

Publication 1756-RM003F-FR-P - Mai 2002

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

7-19

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux Action de la logique relais L'tat de sortie de la ligne est rgl sur faux.

examine le bit .DN

bit .DN = 0

mode INC oui le bit .EN est effac

non

le bit interne est effac

bit .DN = 1 le bit .EN est effac le bit .ER est effac le bit .DN est effac la valeur .POS est efface

mode TOUT oui

non

.LEN < 0 ou .POS < 0 non

oui

dfaut majeur

.POS = .POS + 1

oui

.LEN = 0 non

.POS = 0 non .POS = .POS - 1

oui non

.POS < .LEN oui

.LEN > mode le bit .DN est activ le bit .EN est activ oui le bit .DN est activ le bit .EN est effac

non

mode = .LEN

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 si l'tat d'entre de la ligne est vrai

Action de la logique relais


oui page 7-13 dfaut majeur mode Numrique non .LEN = 0 oui le bit .DN est activ le bit .EN est activ examine le bit .DN bit .DN = 1 commun bit .DN = 0 non mode INC oui non mode TOUT oui

.LEN < 0 ou .POS < 0 examine le bit .ER bit .ER = 1 examine le bit .IN bit .DN = 1 bit .IN = 0 bit .ER = 0 non bit .DN = 0

mode INC page 7-11

mode TOUT page 7-12

loop_count = loop_count - 1

loop_count < 0 oui

non

.POS = .POS + 1

value la comparaison

correspondance oui .POS = .POS + 1 le bit .EN est activ le bit .FD est activ le bit .IN est activ

non

.POS = .LEN oui le bit .DN est activ le bit .EN est activ

non

.POS = .POS + 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.

Publication 1756-RM003F-FR-P - Mai 2002

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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000001111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

array_2 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 0 1 2 3 4 5 6 7 8 9

control_3.pos

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

rfrence 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0 1 2 3 4 5 6 7 8 9

control_3.pos

11111111111111110000000000000000

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 AFG BEH HUO SAK SAM SAM FQG CLE CAK DET BWG 0 1 2 3 4 5 6 7 8 9

code_table_search.POS

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 + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Description addition soustraction/ngation multiplication division galit infrieur infrieur ou gal suprieur suprieur ou gal diffrent exposant (x y) valeur absolue cosinus d'arc ET sur bits sinus d'arc tangente d'arc cosinus Optimal DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL Oprateur DEG FRD LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Description radians en degrs DCB en nombre entier logarithme naturel logarithme dcimal modulo complment sur bits OU sur bits degrs en radians sinus racine carre tangente nombre entier en DCB troncation OU exclusif sur bits Optimal DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 un oprande deux oprandes Utilisez ce format oprateur(oprande) oprande_a oprateur oprande_b Exemples ABS(point_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Opration () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (ngation), NOT *, /, MOD <, <=, >, >=, = (soustraction), + AND XOR OR

Publication 1756-RM003F-FR-P - Mai 2002

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.
Caractres ASCII 1ab
in f ri e ur e s u p r ie ur e

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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)


Oprandes :

Les instructions COP et CPS copient les valeurs de la Source dans la Destination. La Source reste inchange.

Logique relais
Oprande Source Type SINT INT DINT REAL chane structure SINT INT DINT REAL chane structure DINT Format point Description lment initial copier Important : les oprandes Source et Destination doivent avoir les mmes types de donnes, au risque de produire des rsultats inattendus. 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. nombre d'lments de Destination copier

Destination

point

Longueur

immdiat point

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 Et si vous voulez empcher les donnes d'tre modifies pendant l'opration de copie Slectionnez CPS 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).

permettre aux donnes d'tre modifies pendant l'opration de copie aucune des solutions ci-dessus

COP

COP

Le nombre d'octets copis est :

Publication 1756-RM003F-FR-P - Mai 2002

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. 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 non

oui

end_address = fin du tableau de destination

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] Puis l'instruction copie les valeurs timer[1] dans timer[2] Puis l'instruction copie les valeurs timer[2] dans timer[3] Puis l'instruction copie les valeurs timer[3] dans timer[4]

array_timer[1]

array_timer[2]

array_timer[3]

array_timer[4]


array_timer[9] Enfin, l'instruction copie les valeurs timer[9] dans timer[10]

array_timer[10]

Publication 1756-RM003F-FR-P - Mai 2002

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)


Oprandes :

L'instruction FLL remplit les lments d'un tableau avec la valeur Source. La Source reste inchange.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL structure Format immdiat point Description lment copier Important : les oprandes Source et Destination doivent avoir les mmes types de donnes, au risque de produire des rsultats inattendus. 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. nombre d'lments remplir

Destination

point

Longueur

DINT

immdiat

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 SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT INT DINT REAL Et la Destination est SINT INT DINT REAL structure structure structure structure La Source est convertie en SINT INT DINT REAL SINT (non convertie) INT (non convertie) DINT (non convertie) 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

end_address = start_address + (Longueur nombre d'octets dans un lment de destination)

end_address > fin du tableau de destination non

oui

end_address = fin du tableau de destination

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) SINT DINT SINT REAL SINT

Valeur Source (value_1) 16#80 (-128) 16#1234 5678 16#01 2.0 16#01

Type de donnes Destination (dest_1) DINT SINT REAL INT TIMER

Valeur Destination (dest_1) aprs FLL 16#FFFF FF80 (-128) 16#78 1.0 16#0002 16#0101 0101 16#0101 0101 16#0101 0101 16#0001 0001 16#0001 0001 16#0001 0001 16#0000 0001 16#0000 0001 16#0000 0001

INT

16#0001

TIMER

DINT

16#0000 0001

TIMER

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)
Oprandes :

L'instruction AVE calcule la moyenne d'un ensemble de valeurs.

Logique relais
Oprande Tableau Type SINT INT DINT REAL DINT Format point de tableau Description 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 utiliser selon le nombre de dimensions, l'ordre est array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] rsultat de l'opration

Dimension variable

immdiat (0, 1, 2)

Destination

SINT INT DINT REAL CONTROL DINT DINT

point

Commande Longueur Position

point immdiat immdiat

structure de contrle pour l'opration nombre d'lments du tableau sur lesquels faire la moyenne 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 .EN .DN .ER Type de donnes Description BOOL BOOL BOOL Le bit d'activation indique que l'instruction AVE est active. Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment du tableau (.POS = .LEN). 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. La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute. La position contient la position de l'lment auquel l'instruction est en train d'accder.

.LEN .POS

DINT DINT

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 .POS < 0 ou .LEN < 0 La variation de Dimension n'existe pas dans le tableau indiqu Type du dfaut 4 4 Code du dfaut 21 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 pendant la pr-scrutation Action de la logique relais 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

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 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Exemple 1 : Calculer la moyenne de array_dint, soit DINT[4,5].


dimension 1
s ice ind

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimension 0 1 2 3

+ 14 + 9 + 4 AVE = 19 ------------------------------------ = 46 ----- = 11.5 4 4


dint_ave = 12

Publication 1756-RM003F-FR-P - Mai 2002

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

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimension 0 1 2 3

+4+3+2+1 AVE = 5 --------------------------------------- = 15 ----- = 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)

7-41

Tri de fichier (SRT)


Oprandes :

L'instruction SRT trie un jeu de valeurs dans une dimension (variation de Dimension) du tableau en ordre croissant.

Logique relais
Oprande Tableau Type SINT INT DINT REAL DINT Format point de tableau Description tableau trier indique le premier lment du groupe d'lments trier n'utilisez pas CONTROL.POS dans l'indice 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] structure de contrle pour l'opration nombre d'lments du tableau trier lment en cours du tableau la valeur initiale est gnralement 0

Dimension variable

immdiat (0, 1, 2)

Commande Longueur Position

CONTROL DINT DINT

point immdiat immdiat

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 .EN .DN .ER .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction SRT est active. Le bit de fin est activ lorsque les lments indiqus ont t tris. Le bit d'erreur est activ lorsque .LEN < 0 ou .POS < 0. Ces deux tats entranent un dfaut majeur. La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute. 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 :
Un dfaut majeur se produit si .POS < 0 ou .LEN < 0 La variation de Dimension n'existe pas dans le tableau indiqu L'instruction essaie d'accder aux donnes en dehors des limites du tableau Type du dfaut 4 4 4 Code du dfaut 21 20 20

Publication 1756-RM003F-FR-P - Mai 2002

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

7-43

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. Action du texte structur 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 si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation

L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction trie les lments indiqus du tableau en ordre croissant. L'tat de sortie de la ligne est rgl sur faux.

EnableIn est toujours activ. L'instruction est excute. L'instruction trie les lments indiqus du tableau en ordre croissant. 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].


Avant
dimension 1
s ice ind s ice ind

Aprs
dimension 1 3 17 12 7 2 16 11 dimension 0 10 5 9 4 8 3 6 1 4 0 20 15 10 5 19 14 9 4 1 3 8 13 18 2 17 12 7 2 3 16 11 6 1 4

0 20 15 19 14

1 18 13

0 dimension 0 1 2 3

0 1 2 3

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].


Avant
dimension 1
s ice ind s ice ind

Aprs
dimension 1 3 17 12 7 2 16 11 dimension 0 10 5 9 4 8 3 6 1 4 0 20 15 6 5 19 14 7 4 1 18 13 8 3 2 17 12 9 2 3 16 11 10 1 4

0 20 15 19 14

1 18 13

0 dimension 0 1 2 3

0 1 2 3

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)


Oprandes :

L'instruction STD calcule l'cart type d'un ensemble de valeurs dans une dimension du tableau et stocke le rsultat dans la Destination.

Logique relais
Oprande Tableau Type SINT INT DINT REAL Format point de tableau Description 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 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] rsultat de l'opration structure de contrle pour l'opration nombre d'lments du tableau utiliser pour calculer l'cart type lment en cours du tableau la valeur initiale est gnralement 0

Un point SINT ou INT est converti en valeur DINT par extension de signe. Dimension variable DINT immdiat (0, 1, 2)

Destination Commande Longueur Position

REAL CONTROL DINT DINT

point point immdiat immdiat

Structure CONTROL
Mnmonique .EN .DN .ER Type de donnes BOOL BOOL BOOL Description Le bit d'activation indique que l'instruction STD est active. Le bit de fin est activ lorsque le calcul est termin. 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. La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute. La position contient la position de l'lment auquel l'instruction est en train d'accder.

.LEN .POS

DINT DINT

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 : N 2 [ X AVE ] ( start + i ) i = 1 ------------------------------------------------------------------(N 1)

Ecart type =

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 .POS < 0 ou .LEN < 0 La variation de Dimension n'existe pas dans le tableau indiqu Type du dfaut 4 4 Code du dfaut 21 20

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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)

7-49

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

Action de la logique relais

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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Exemple 1 : Calculer l'cart type de dint_array, soit DINT[4,5].


dimension 1
s ice ind

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimension 0 1 2 3

+ 11 + 6 + 1 AVE = 16 ------------------------------------ = 34 ----- = 8.5 4 4


2 2 2 2

STD =

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

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimension 0 1 2 3

+ 19 + 18 + 17 + 16 AVE = 20 ------------------------------------------------------ = 90 ----- = 18 5 5


2 2 2 2

STD =

20 18 + 19 18 + 18 18 + 17 18 + 16 18 ----------------------------------------------------------------------------------------------------------------------------------------------------------- = 1.581139 5 1

real_std = 1,581139

Publication 1756-RM003F-FR-P - Mai 2002

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)


Oprandes :

L'instruction SIZE cherche la taille d'une dimension d'un tableau.

Logique relais
Oprande Source Type Format Description tableau sur lequel l'instruction agit

point de SINT tableau INT DINT REAL STRUCTURE STRING DINT

Dimension variable

immdiat (0, dimension utiliser 1, 2) Pour la taille de premire dimension deuxime dimension troisime dimension

Entrez 0 1 2

SIZE

SINT INT DINT REAL

point

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction cherche la taille d'une dimension. L'tat de sortie de la ligne est rgl sur faux. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. L'instruction cherche la taille d'une dimension. 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
Si vous voulez charger, dcaler et dcharger des bits dans un tableau de bits, un bit la fois

Utilisez les instructions sur tableau (fichier)/dcalage pour modifier l'emplacement de donnes dans des tableaux.
Utilisez cette instruction BSL BSR FFL FFU LFL LFU Disponible dans ces langages logique relais logique relais logique relais logique relais logique relais logique relais Voir page 8-2 8-5 8-8 8-14 8-20 8-26

charger et dcharger des valeurs dans le mme ordre charger et dcharger des valeurs dans l'ordre inverse

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)


Oprandes :

L'instruction BSL dcale les bits indiqus d'une position vers la gauche dans le tableau.

Logique relais
Oprande Tableau Type DINT Format point de tableau Description tableau modifier indique le premier lment du groupe d'lments n'utilisez pas CONTROL.POS dans l'indice structure de contrle pour l'opration bit dcaler nombre de bits dcaler dans le tableau

Contrle Bit source Longueur

CONTROL BOOL DINT

point point immdiat

Structure CONTROL
Mnmonique .EN .DN .UL .ER .LEN Type de donnes BOOL BOOL BOOL BOOL DINT Description Le bit d'activation indique que l'instruction BSL est active. Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la gauche. 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. Le bit d'erreur est activ lorsque .LEN < 0. 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 pendant la pr-scrutation Action de la logique relais 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. 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

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 examine le bit de source bit .source = 1 le bit .UL reste activ

.LEN < 0

oui

le bit .ER est activ

bit .source = 0 non le bit .UL est activ dcale le tableau d'une position vers la gauche tableau Bit source

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

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.

9 array_dint[0] avant dcalage 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

8 0

7 1

6 1

5 1

4 1

3 0

2 0

1 0

0 0 1

0 bit .UL 9 array_dint[0] aprs dcalage 0

ces bits sont dcals gauche

input_1

8 1

7 1

6 1

5 1

4 0

3 0

2 0

1 0

0 1

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] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

0 0 1 ces bits sont dcals gauche input_1

31 array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

0 0

0 bit .UL

ces bits sont dcals gauche

Publication 1756-RM003F-FR-P - Mai 2002

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

8-5

Dcalage binaire droite (BSR)


Oprandes :

L'instruction BSR dcale les bits indiqus d'une position vers la droite dans le tableau.

Logique relais
Oprande Tableau Type DINT Format point de tableau Description tableau modifier indique l'lment avec lequel commencer le dcalage n'utilisez pas CONTROL.POS dans l'indice structure de contrle pour l'opration bit dcaler nombre de bits dans le tableau dcaler

Contrle Bit source Longueur

CONTROL BOOL DINT

point point immdiat

Structure CONTROL
Mnmonique .EN .DN .UL .ER .LEN Type de donnes BOOL BOOL BOOL BOOL DINT Description Le bit d'activation indique que l'instruction BSR est active. Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la droite. 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. Le bit d'erreur est activ lorsque .LEN < 0. 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 pendant la pr-scrutation Action de la logique relais 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. 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

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 examine le bit de source bit .source = 1 le bit .UL reste activ

.LEN < 0

oui

le bit .ER est activ

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

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

Publication 1756-RM003F-FR-P - Mai 2002

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.

9 array_dint[0] avant dcalage 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

8 0

7 1

6 1

5 1

4 1

3 0

2 0

1 0

0 0

1 input_1 9 array_dint[0] aprs dcalage 1

ces bits sont dcals droite

0 bit .UL

8 0

7 0

6 1

5 1

4 1

3 1

2 0

1 0

0 0

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] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

0 0

ces bits sont dcals droite

0 bit .UL

31 array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

0 0

1 input_1

ces bits sont dcals droite

Publication 1756-RM003F-FR-P - Mai 2002

8-8

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

Chargement FIFO (FFL)


Oprandes :

L'instruction FFL copie la valeur de la Source dans le FIFO.

Logique relais
Oprande Type Source Format Description donnes stocker dans le FIFO

immdiat SINT point INT DINT REAL STRING STRUCTURE

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 CONTROL point FIFO modifier indique le premier lment du FIFO n'utilisez pas CONTROL.POS dans l'indice

Contrle

structure de contrle pour l'opration utilise gnralement le mme point CONTROL que l'instruction FFU associe nombre maximum d'lments que le FIFO peut contenir la fois emplacement suivant dans le FIFO o l'instruction charge des donnes la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

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 .EN .DN .EM .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction FFL est active. 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. Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont activs. La longueur dfinit le nombre maximum d'lments que le FIFO peut contenir la fois. 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 (lment de dpart + .POS) > taille du tableau FIFO Type du dfaut 4 Code du dfaut 20

Publication 1756-RM003F-FR-P - Mai 2002

8-10

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

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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

.EM est activ .DN est activ

.POS = 0

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

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

8-11

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

Action de la logique relais

le bit .EN est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac .DN est effac

.EM est activ .DN est activ

.POS = 0

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 si l'tat d'entre de la ligne est vrai

Action de la logique relais

examine le bit .EN .EN = 1

.EN = 0

le bit .EN est activ

.LEN < 0 non

oui

.LEN < 0 non

oui

.POS < 0

oui

non le bit .EM est activ le bit .DN est activ

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

le bit .EM est effac le bit .DN est effac .POS = .POS + 1

le bit .EM est activ .DN est activ .POS .LEN non oui le bit .DN est activ

.POS = 0 non

oui

le bit .EM est activ .POS ou .LEN > taille du tableau non oui dfaut majeur

.POS .LEN non

oui

le bit .DN est activ oui

.POS > .LEN non

.POS = .POS - 1

FIFO[.POS - 1] = source

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

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.

avant chargement du FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

aprs chargement du FIFO 00000 11111 22222 33333 44444 55555 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)


Oprandes :

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.

Logique relais
Oprande FIFO Type Format Description FIFO modifier indique le premier lment du FIFO n'utilisez pas CONTROL.POS dans l'indice

SINT point de INT tableau DINT REAL STRING STRUCTURE SINT INT DINT REAL STRING STRUCTURE point

Destination

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 nombre maximum d'lments que le FIFO peut contenir la fois emplacement suivant dans le FIFO o l'instruction dcharge des donnes la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

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 .EU .DN .EM .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description 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. Le bit de fin est activ pour indiquer que le FIFO est plein (.POS = .LEN). Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont activs. La longueur dfinit le nombre maximum d'lments dans le FIFO. 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 Longueur > taille du tableau FIFO Type du dfaut 4 Code du dfaut 20

Publication 1756-RM003F-FR-P - Mai 2002

8-16

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

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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

.EM est activ .DN est activ

.POS = 0

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

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

8-17

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

Action de la logique relais

le bit .EU est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac .DN est effac

.EM est activ .DN est activ

.POS = 0

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 si l'tat d'entre de la ligne est vrai


.EU = 0

Action de la logique relais

examine le bit .EU .EU = 1

le bit .EU est activ

.LEN < 0 non

oui

.LEN < 0

oui

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

non

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

le bit .EM est activ le bit .DN est activ

le bit .EM est activ .DN est activ .LEN > taille du tableau non oui

oui

dfaut majeur

.POS = 0 non

le bit .EM est activ

.POS 1 non

oui

le bit .EM est activ

.POS .LEN non

oui

.POS < 1 le bit .DN est activ non .POS = .POS - 1 Destination = FIFO[0] i=1

oui

Destination = 0

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

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

Publication 1756-RM003F-FR-P - Mai 2002

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.

avant dchargement du FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

aprs dchargement du FIFO 11111 22222 33333 44444 55555 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 00000

Publication 1756-RM003F-FR-P - Mai 2002

8-20

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

Chargement LIFO (LFL)


Oprandes :

L'instruction LFL copie la valeur de la Source dans le LIFO.

Logique relais
Oprande Source Type Format Description donnes stocker dans le LIFO

immdiat SINT point INT DINT REAL STRING STRUCTURE

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 CONTROL point LIFO modifier indique le premier lment du LIFO n'utilisez pas CONTROL.POS dans l'indice

Contrle

structure de contrle pour l'opration utilise gnralement le mme point CONTROL que l'instruction LFU associe nombre maximum d'lments que le LIFO peut contenir la fois emplacement suivant dans le LIFO o l'instruction charge des donnes la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

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 .EN .DN .EM .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction LFL est active. 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. Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont activs. La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois. 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 (lment de dpart + .POS) > taille du tableau LIFO Type du dfaut 4 Code du dfaut 20

Publication 1756-RM003F-FR-P - Mai 2002

8-22

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

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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

.EM est activ .DN est activ

.POS = 0

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

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

8-23

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

Action de la logique relais

le bit .EN est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac .DN est effac

.EM est activ .DN est activ

.POS = 0

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 si l'tat d'entre de la ligne est vrai

Action de la logique relais

examine le bit .EN .EN = 1

.EN = 0

le bit .EN est activ

.LEN < 0 non

oui

.LEN < 0 non

oui

.POS < 0

oui

non le bit .EM est effac le bit .DN est effac .POS = .POS + 1 le bit .EM est activ le bit .DN est activ

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

le bit .EM est activ .DN est activ .POS .LEN non oui le bit .DN est activ

.POS = 0 non

oui

le bit .EM est activ .POS ou .LEN > taille du tableau non oui dfaut majeur

.POS .LEN non

oui

le bit .DN est activ oui

.POS > .LEN non

.POS = .POS - 1

LIFO[.POS - 1] = source

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

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.

avant chargement du LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

aprs chargement du LIFO 00000 11111 22222 33333 44444 55555 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)


Oprandes :

L'instruction LFU dcharge la valeur .POS du LIFO et stocke 0 dans cet emplacement.

Logique relais
Oprande LIFO Type Format Description LIFO modifier indique le premier lment du LIFO n'utilisez pas CONTROL.POS dans l'indice

point de SINT tableau INT DINT REAL STRING STRUCTURE SINT INT DINT REAL STRING STRUCTURE point

Destination

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 nombre maximum d'lments que le LIFO peut contenir la fois emplacement suivant dans le LIFO o l'instruction dcharge des donnes la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

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 .EU .DN .EM .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description 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. Le bit de fin est activ pour indiquer que le LIFO est plein (.POS = .LEN). Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont activs. La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois. 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 Longueur > taille du tableau LIFO Type du dfaut 4 Code du dfaut 20

Publication 1756-RM003F-FR-P - Mai 2002

8-28

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

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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

.EM est activ .DN est activ

.POS = 0

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

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

8-29

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

Action de la logique relais

le bit .EU est effac

.LEN < 0

oui

non

.POS < 0

oui

non

.EM est effac .DN est effac

.EM est activ .DN est activ

.POS = 0

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 si l'tat d'entre de la ligne est vrai


.EU = 0

Action de la logique relais

examine le bit .EU .EU = 1

le bit .EU est activ

.LEN < 0 non

oui

.LEN < 0

oui

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

non

.POS < 0 non le bit .EM est effac le bit .DN est effac

oui

le bit .EM est activ le bit .DN est activ

le bit .EM est activ .DN est activ

.POS 1 non

oui

le bit .EM est activ

.POS = 0 non

oui

le bit .EM est activ

.POS < 1 non

oui

Destination = 0

.POS .LEN non

oui

.POS > .LEN le bit .DN est activ non .POS = .POS - 1

oui

.POS = .LEN

.LEN > taille du tableau non

oui

dfaut majeur

Destination = LIFO[control.POS] LIFO[control.POS) = 0

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

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.

avant dchargement du LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

aprs dchargement du LIFO 00000 11111 22222 33333 44444 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 55555

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
Si vous voulez dtecter si une tape est termine configurer les tats de sortie pour l'tape suivante charger des tats de rfrence dans les tableaux squenceur

Les instructions squenceur surveillent la cohrence et la rptition d'oprations.


Utilisez cette instruction SQI SQO SQL Disponible dans ces langages logique relais logique relais logique relais Voir page 9-2 9-6 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)


Oprandes :

L'instruction SQI dtecte la fin d'une tape dans une paire d'instructions squenceur SQO/SQI.

Logique relais
Oprande Tableau Type DINT Format point de tableau Description tableau squenceur indique le premier lment du tableau squenceur n'utilisez pas CONTROL.POS dans l'indice bits bloquer ou passer

Masque

SINT INT DINT SINT INT DINT CONTROL

point immdiat

Un point SINT ou INT est converti en valeur DINT par extension de signe. Source point donnes d'entre pour le tableau squenceur

Un point SINT ou INT est converti en valeur DINT par extension de signe. Contrle point structure de contrle pour l'opration utilise gnralement le mme point CONTROL que les instructions SQO et SQL nombre d'lments du tableau (tableau squenceur) comparer position en cours du tableau la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

Structure CONTROL
Mnmonique .ER .LEN .POS Type de donnes BOOL DINT DINT Description Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN. La longueur dfinit le nombre d'tapes dans le tableau squenceur. 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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

.LEN 0 .POS < 0 ou .POS > .LEN oui le bit .ER est activ

non

le bit .ER est effac

non

Source masque = Array[.POS] masqu

oui

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

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

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 Source Masque Tableau

Valeurs d'exemple (DINT affich en binaire) xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 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)


Oprandes :

L'instruction SQO configure des tats de sortie pour l'tape suivante d'une paire d'instructions squenceur SQO/SQI.

Logique relais
Oprande Tableau Type DINT Format point de tableau Description tableau squenceur indique le premier lment du tableau squenceur n'utilisez pas CONTROL.POS dans l'indice bits bloquer ou passer

Masque

SINT INT DINT DINT CONTROL

point immdiat

Un point SINT ou INT est converti en valeur DINT par extension de signe. Destination Contrle point point donnes de sortie du tableau squenceur structure de contrle pour l'opration utilise gnralement le mme point CONTROL que les instructions SQI et SQL nombre d'lments du tableau (tableau squenceur) sortir position en cours du tableau la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

Structure CONTROL
Mnmonique .EN .DN .ER .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction SQO est active. Le bit de fin est activ lorsque tous les lments indiqus ont t dplacs vers la Destination. Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN. La longueur dfinit le nombre d'tapes dans le tableau squenceur. 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 d but 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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 binaire par exemple : 2#00110011

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


Condition pendant la pr-scrutation Action de la logique relais 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. Le bit .EN est effac. L'tat de sortie de la ligne est rgl sur faux.

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

Publication 1756-RM003F-FR-P - Mai 2002

9-8

Instructions squenceur (SQI, SQO, SQL)

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

Action de la logique relais

.LEN 0 ou .POS < 0 oui

non

examine le bit .EN

.EN = 0

le bit .EN est activ le bit .ER est effac le bit .DN est activ

.EN = 1

.POS = .LEN

non

.POS .LEN

oui

.POS = 1

oui le bit .DN est activ

non .POS = .POS + 1

la valeur .POS passe zro non

oui

erreur d'instr

.POS = .LEN

oui

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

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

Publication 1756-RM003F-FR-P - Mai 2002

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 Tableau Masque Destination

Valeurs d'exemple (INT affich en binaire) xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 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)


Oprandes :

L'instruction SQL charge des tats de rfrence dans un tableau squenceur.

Logique relais
Oprande Tableau Type DINT Format point de tableau Description tableau squenceur indique le premier lment du tableau squenceur n'utilisez pas CONTROL.POS dans l'indice donnes d'entre charger dans le tableau squenceur

Source

SINT INT DINT CONTROL

point immdiat

Un point SINT ou INT est converti en valeur DINT par extension de signe. Contrle point structure de contrle pour l'opration utilise gnralement le mme point CONTROL que les instructions SQI et SQO nombre d'lments du tableau (tableau squenceur) charger position en cours du tableau la valeur initiale est gnralement 0

Longueur Position

DINT DINT

immdiat immdiat

Structure CONTROL
Mnmonique .EN .DN .ER .LEN .POS Type de donnes BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction SQL est active. Le bit de fin est activ lorsque tous les lments indiqus ont t chargs dans Array. Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN. La longueur dfinit le nombre d'tapes dans le tableau squenceur. 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 Longueur > taille du tableau Type du dfaut 4 Code du dfaut 20

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. Le bit .EN est effac. L'tat de sortie de la ligne est rgl sur faux.

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

Publication 1756-RM003F-FR-P - Mai 2002

9-12

Instructions squenceur (SQI, SQO, SQL)

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

Action de la logique relais

.LEN 0 ou .POS < 0 oui

non

examine le bit .EN

.EN = 0

le bit .EN est activ le bit .ER est effac le bit .DN est activ

.EN = 1

.POS = .LEN

non

.POS .LEN

oui

.POS = 1

oui le bit .DN est activ

non .POS = .POS + 1

la valeur .POS passe zro non

oui

erreur d'instructi on goto

.POS = .LEN

oui

le bit .DN est activ

non

.POS > .LEN

non

oui .LEN > taille du tableau non oui

erreur

dfaut majeur

le bit .ER est activ

Array[control.POS] = Source

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

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.

avant chargement array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_3 = 55555

aprs chargement 00000 11111 22222 33333 44444 55555 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
Si vous voulez

Utilisez les instructions de commande de programme pour changer le dbit de la logique.


Utilisez cette instruction JMP LBL JSR SBR RET JXR TND Disponible dans ces langages logique relais logique relais texte structur bloc fonctionnel logique relais logique relais texte structur logique relais logique relais texte structur logique relais texte structur logique relais logique relais logique relais texte structur logique relais texte structur logique relais texte structur Voir page 10-2 10-4

sauter une section logique qui n'a pas toujours besoin d'tre excute passer directement un sousprogramme spar, passer des donnes au sousprogramme, excuter le sous-programme et produire des rsultats passer un sous-programme externe (automate SoftLogix5800 uniquement) marquer une fin temporaire qui arrte l'excution du sous-programme dsactiver les tches utilisateur activer les tches utilisateur dsactiver une ligne insrer un marqueur dans la logique arrter une transition pour un graphe de fonctionnement squentiel arrter provisoirement un graphe de fonctionnement squentiel

10-13 10-16 10-18 10-20 10-20 10-22 10-23 10-24 10-26 10-28

dsactiver toutes les lignes dans une section logique MCR UID UIE AFI NOP EOT SFP

rinitialiser un graphe de fonctionnement squentiel SFR

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)


Oprandes :

Les instructions JMP et LBL sautent des portions de logique relais.

Logique relais
Oprande Nom de l'tiquette Instruction LBL Nom de l'tiquette nom d'tiquette l'excution saute l'instruction LBL avec nom d'tiquette rfrenc Type Format nom d'tiquette Description entrer le nom de l'instruction LBL associe

Instruction JMP

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. La logique saute n'est pas scrute. Placez la logique critique en dehors de la zone saute.

ATTENTION

!
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 l'tiquette n'existe pas Type du dfaut 4 Code du dfaut 42

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

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)


Oprandes JSR :

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.

Logique relais
Oprande Nom du sous-programme Paramtre d'entre Type ROUTINE BOOL SINT INT DINT REAL STRUCTURE Format nom immdiat point point de tableau Description sous-programme excuter (sous-programme secondaire) 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. 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.

Paramtre de retour

point BOOL point de SINT tableau INT DINT REAL STRUCTURE

Texte structur
JSR(RoutineName,InputCount, InputPar,ReturnPar);

Oprande

Type

Format nom immdiat

Description sous-programme excuter (sous-programme secondaire) nombre de paramtres d'entre

Nom du ROUTINE sous-programme Comptage des entres SINT INT DINT REAL BOOL SINT INT DINT REAL STRUCTURE

Paramtre d'entre

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. 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.

Paramtre de retour

point BOOL point de SINT tableau INT DINT REAL STRUCTURE

(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

!
Logique relais
Oprande Paramtre d'entre Type

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.

Format

Description point de ce sous-programme dans lequel vous voulez copier le paramtre d'entre correspondant partir de l'instruction JSR

point BOOL point de SINT tableau INT DINT REAL STRUCTURE

SBR(InputPar);

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


Oprande Paramtre de retour Type BOOL SINT INT DINT REAL STRUCTURE Format immdiat point point de tableau Description donnes de ce sous-programme que vous voulez copier dans le paramtre de retour correspondant dans l'instruction JSR

RET(ReturnPar);

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.
42974

SBR

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.

JSR RET

RET

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 JSR action_2 JSR action_3 JSR SBR niveau 2 sous-programme secondaire action_2 SBR niveau 3 sous-programme secondaire action_3 SBR

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 L'instruction JSR a moins de paramtres d'entre que l'instruction SBR L'instruction JSR passe un sous-programme de gestion des dfauts L'instruction RET a moins de paramtres de retour que l'instruction JSR Le sous-programme principal contient une instruction RET Type du dfaut 4 4 ou dfini par l'utilisateur 4 4 Code du dfaut 31 0 ou dfini par l'utilisateur 31 31

Excution : Logique relais et texte structur


Condition pendant la pr-scrutation Action de la logique relais Action du texte structur

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). 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. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. EnableIn est toujours activ. L'instruction est excute.

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

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

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-9

Condition Excution de l'instruction

Action de la logique relais

Action du texte structur

paramtres d'entre

oui

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 instruction RET paramtres de retour

oui

RET copie les paramtres de retour dans les points JSR appropris

non

non

fin du sous-programme

oui

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 pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction excution normale Action Aucune. Aucune. Aucune. 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.

pendant la post-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 Sous-programme principal Programme

Sous-programme secondaire

[autres lignes de code]

Texte structur
Sous-programme Sous-programme principal Sous-programme secondaire Programme
JSR(routine_1,2,value_1,value_2,float_value_1); 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)

10-13

Saut vers sous-programme externe (JXR)


Oprandes :

L'instruction JXR excute un sous-programme externe. Cette instruction est prise en charge uniquement par les automates SoftLogix5800.

Logique relais

.
Oprande Nom du sous-programme externe Contrle du sous-programme externe Paramtre Type ROUTINE Format nom Description excution du sous-programme externe

EXT_ROUTINE_ CONTROL BOOL SINT INT DINT REAL STRUCTURE BOOL SINT INT DINT REAL

point

structure de contrle (voir page suivante)

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. 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.

Paramtre de retour

point

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 ErrorCode Type de donnes SINT Description Si une erreur se produit, cette valeur identifie l'erreur. Les valeurs correctes vont de 0 255. Cette valeur indique le nombre de paramtres associs cette instruction. Ce tableau contient les dfinitions des paramtres transmettre au sous-programme externe. L'instruction peut transmettre jusqu' 10 paramtres. Cette valeur contient les dfinitions du paramtre de retour du sous-programme externe. Il n'y a qu'un paramtre de retour. Lorsqu'il est activ, le bit d'activation indique que l'instruction JXR est active. 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. Le bit de fin est activ lorsque le sous-programme externe a t compltement excut une fois. 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. 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. Sortie active. Entre active. Application Il n'y a pas de codes d'erreurs prdfinis. Le dveloppeur du sous-programme externe doit fournir les codes d'erreurs. Affichage uniquement : cette information est drive de l'entre de l'instruction. Affichage uniquement : cette information est drive de l'entre de l'instruction.

NumParams ParameterDefs

SINT EXT_ROUTINE_ PARAMETERS[10]

ReturnParamDef

EXT_ROUTIN_ PARAMETERS BOOL BOOL

Affichage uniquement : cette information est drive de l'entre de l'instruction. Le sous-programme externe active ce bit. Affichage uniquement : cette information est drive de l'entre de l'instruction.

EN ReturnsValue

DN

BOOL

Le sous-programme externe active ce bit.

ER

BOOL

Le sous-programme externe active ce bit.

FirstScan

BOOL

L'automate active ce bit pour reflter l'tat de la scrutation.

EnableOut EnableIn

BOOL BOOL

Le sous-programme externe active ce bit. 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. Ces bits peuvent tre activs par le sous-programme externe ou le programme utilisateur. L'automate active ces bits pour reflter l'tat de la scrutation.

User1 User0 ScanType1 ScanType0

BOOL BOOL BOOL BOOL

Ces bits peuvent tre utiliss par l'utilisateur. L'automate n'initialise pas ces bits. 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)

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 4 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)


Oprandes :

L'instruction TND agit comme limite.

Oprandes de logique relais


aucune
TND();

Texte structur
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l 'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Le sous-programme en cours s'arrte. L'tat de sortie de la ligne est rgl sur faux. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. Le sous-programme en cours s'arrte. 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)


Oprandes :

L'instruction MCR, utilise par paire, cre une zone programme qui peut dsactiver toutes les lignes dans les instructions MCR.

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. 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.

ATTENTION

!
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux Action de la logique relais L'tat de sortie de la ligne est rgl sur 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. L'tat de sortie de la ligne est rgl sur vrai. Les instructions de la zone sont scrutes normalement. L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est vrai pendant la post-scrutation

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)


Oprandes :

Les instructions UID et UIE travaillent ensemble pour empcher un petit nombre de lignes critiques d'tre interrompues par d'autres tches.

Logique relais
aucune
UID(); UIE();

Texte structur
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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. 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]

EN DN ER

error_check.FD

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)


Oprandes :

L'instruction AFI rgle son tat de sortie de ligne sur faux.

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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)

10-23

Pas d'opration (NOP)


Oprandes :

L'instruction NOP fonctionne comme marqueur.

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur vrai. 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)


Oprandes :

L'instruction EOT renvoie un tat boolen une transition SFC.

Logique relais
Oprande bit de donnes
EOT(data_bit);

Type BOOL

Format point

Description tat de la transition (0=excution, 1=termin)

Texte structur
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

L'instruction renvoie la valeur du bit de donnes au sous-programme appelant. L'tat de sortie de la ligne est rgl sur faux. 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-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)


Oprandes :

L'instruction SFP arrte temporairement un sous-programme SFC.

Logique relais
Oprande Nom de SFCRoutine TargetState Type ROUTINE DINT Format nom immdiat point Description Arrt temporaire du sous-programme SFC 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 le sous-programme n'est pas un sous-programme SFC Type du dfaut 4 Code du dfaut 85

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. Aucune.

L'instruction arrte temporairement ou reprend l'excution du sous-programme SFC indiqu. L'tat de sortie de la ligne est rgl sur faux.

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-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)


Oprandes :

L'instruction SFR reprend l'excution d'un sous-programme SFC une tape particulire.

Oprandes de logique relais


Oprande Nom de SFCRoutine Nom de l'tape Type ROUTINE SFC_STEP Format nom point Description positionnement du sous-programme SFC 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 Type du dfaut Code du dfaut 85 89

le sous-programme n'est pas un sous-programme 4 SFC l'tape indique n'existe pas dans le sous-programme SFC 4

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-29

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction rinitialise le sous-programme SFC indiqu. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. L'instruction rinitialise le sous-programme SFC indiqu. 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

Utilisez l'instruction FOR pour appeler un sous-programme de faon rpte. Utilisez l'instruction BRK pour interrompre l'excution d'un sous-programme.
Utilisez cette instruction FOR FOR...DO(1) BRK EXIT(1) RET Disponible dans ces langages logique relais texte structur logique relais texte structur logique relais Voir page 11-2 11-4 11-5

Si vous voulez excuter un sous-programme de faon rpte terminer l'excution rptitive d'un sous-programme revenir l'instruction FOR
(1)

Texte structur uniquement.

Publication 1756-RM003F-FR-P - Mai 2002

11-2

Instruction pour/d'interruption (FOR, FOR...DO, BRK, EXIT, RET)

Pour (FOR)
Oprandes :

L'instruction FOR excute un sous-programme de faon rpte.

Logique relais
Oprande Nom du sous-programme Index Valeur initiale Type ROUTINE DINT SINT INT DINT SINT INT DINT SINT INT DINT Format nom du sous-programme point immdiat point immdiat point immdiat point Description sous-programme excuter compte le nombre d'excutions du sous-programme valeur laquelle l'index commence

Valeur terminale

valeur laquelle l'excution du sous-programme s'arrte quantit ajouter l'index chaque fois que l'instruction FOR excute le sous-programme

Taille de l'incrment

Texte structur
FOR count:= initial_value TO final_value BY increment DO <instruction>; END_FOR;

Utilisez l'instruction de test FOR...DO. Pour des informations sur les instructions de test en texte structur, reportez-vous l'Annexe C.

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 Le sous-programme principal contient une instruction RET Type du dfaut 4 Code du dfaut 31

Excution :
Condition pendant la pr-scrutation Action de la logique relais 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. L'tat de sortie de la ligne est rgl sur faux.

si l'tat d'entre de la ligne est 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

fin de goto

fin

excute le sous-programme index =(index + step_size)

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)
Oprandes :

L'instruction BRK interrompt l'excution d'un sous-programme appel par l'instruction FOR.

Logique relais
aucune
EXIT;

Texte structur
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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur vrai. L'excution revient l'instruction qui suit l'instruction FOR. 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)

11-5

Retour (RET)
Oprandes :

L'instruction RET retourne l'instruction FOR appelante.

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 Le sous-programme principal contient une instruction RET Type du dfaut 4 Code du dfaut 31

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. Renvoie les paramtres indiqus au sous-programme appelant. L'tat de sortie de la ligne est rgl sur vrai. 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 sous-programme secondaire

Publication 1756-RM003F-FR-P - Mai 2002

Chapitre

12

Instructions spciales
(FBC, DDT, DTR, PID)

Introduction
Si vous voulez

Les instructions spciales effectuent des oprations propres des applications.


Utilisez cette instruction Disponible dans ces langages logique relais logique relais Voir page 12-2 12-9

comparer des donnes une rfrence correcte FBC connue et enregistrer toute diffrence comparer des donnes une rfrence correcte DDT connue, enregistrer toute diffrence et mettre la rfrence jour pour qu'elle corresponde la source 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 commander une boucle PID DTR

logique relais

12-16

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)


Oprandes :

L'instruction FBC compare les bits d'un tableau Source avec ceux d'un tableau Rfrence.

Logique relais
Oprande Source Rfrence Rsultat Type DINT DINT DINT Format point de tableau point de tableau point de tableau structure immdiat immdiat structure immdiat immdiat Description tableau comparer la rfrence n'utilisez pas CONTROL.POS dans l'indice tableau comparer la source n'utilisez pas CONTROL.POS dans l'indice tableau pour le stockage du rsultat n'utilisez pas CONTROL.POS dans l'indice structure de contrle pour la comparaison nombre de bits comparer position en cours dans la source la valeur initiale est gnralement 0 structure de contrle du rsultat nombre d'emplacements de stockage dans le rsultat position en cours dans le rsultat la valeur initiale est gnralement 0

Contrle de CONTROL comparaison Longueur Position Contrle de rsultat Longueur Position DINT DINT CONTROL DINT DINT

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

Instructions spciales (FBC, DDT, DTR, PID)

12-3

Structure COMPARE
Mnmonique .EN .DN .FD .IN Type de donnes BOOL BOOL BOOL BOOL Description Le bit d'activation indique que l'instruction FBC est active. Le bit de fin est activ lorsque l'instruction FBC compare le dernier bit dans les tableaux Source et Rfrence. 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). Le bit d'inhibition indique le mode de recherche FBC. 0 = mode tout 1 = mode une diffrence la fois 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. La valeur de longueur indique le nombre de bits comparer. La valeur de position indique le bit en cours.

.ER

BOOL

.LEN .POS

DINT DINT

Structure RESULT
Mnmonique .DN .LEN .POS Type de donnes BOOL DINT DINT Description Le bit de fin est activ lorsque le tableau Rsultat est plein. La valeur de longueur indique le nombre d'emplacements de stockage dans le tableau Rsultat. 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 Une diffrence la fois Slectionnez ce mode 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. 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.

Toutes les diffrences

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 Result.POS > taille du tableau de rsultat Type du dfaut 4 Code du dfaut 20

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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)

12-5

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

Action de la logique relais

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 si l'tat d'entre de la ligne est

Action de la logique relais

examine le bit compare.EN

compare.EN = 1

sortie instruction goto

compare.EN = 0 le bit compare.EN est activ examine le bit compare.DN compare.DN = 1 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

oui

non l'tat de sortie de la ligne est vrai comparaison fin page 12-7

le bit compare.ER est activ

sortie instruction goto

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-7

Condition

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 examine le bit result.DN le bit result.DN est effac la valeur result.POS est efface result.DN = 0

oui compare.POS = compare.POS + 1

oui result.POS < 0

non

oui result.LEN 0

non

le bit compare.ER est activ

oui dfaut majeur Result.POS > taille du tableau de rsultat

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)

12-9

Dtection par diagnostic (DDT)


Oprandes :

L'instruction DDT compare les bits d'un tableau Source avec les bits d'un tableau Rfrence pour dterminer les changements d'tat.

Logique relais
Oprande Source Rfrence Rsultat Contrle de comparaiso n Longueur Position Contrle de rsultat Longueur Position Type DINT DINT DINT CONTROL Format point de tableau point de tableau point de tableau structure Description tableau comparer la rfrence n'utilisez pas CONTROL.POS dans l'indice tableau comparer la source n'utilisez pas CONTROL.POS dans l'indice tableau pour le stockage des rsultats n'utilisez pas CONTROL.POS dans l'indice structure de contrle pour la comparaison

DINT DINT CONTROL DINT DINT

immdiat immdiat structure immdiat immdiat

nombre de bits comparer position en cours dans la source la valeur initiale est gnralement 0 structure de contrle du rsultat nombre d'emplacements de stockage dans le rsultat 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 .EN .DN .FD Type de donnes BOOL BOOL BOOL Description Le bit d'activation indique que l'instruction DDT est active. Le bit de fin est activ lorsque l'instruction DDT compare le dernier bit dans les tableaux Source et Rfrence. 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). Le bit d'inhibition indique le mode de recherche DDT. 0 = mode tout 1 = mode une diffrence la fois 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. La valeur de longueur indique le nombre de bits comparer. La valeur de position indique le bit en cours.

.IN

BOOL

.ER

BOOL

.LEN .POS

DINT DINT

Structure RESULT
Mnmonique .DN .LEN .POS Type de donnes BOOL DINT DINT Description Le bit de fin est activ lorsque le tableau Rsultat est plein. La valeur de longueur indique le nombre d'emplacements de stockage dans le tableau Rsultat. 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 Une diffrence la fois Slectionnez ce mode 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. 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.

Toutes les diffrences

Indicateurs d'tat arithmtique : non affects Conditions d'erreur :


Un dfaut majeur se produit si Result.POS > taille du tableau de rsultat Type du dfaut 4 Code du dfaut 20

Excution :
Condition pendant la pr-scrutation Action de la logique relais

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 si l'tat d'entre de la ligne est

Action de la logique relais

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)

12-13

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

Action de la logique relais

examine le bit compare.EN

compare.EN = 1

sortie instruction goto

compare.EN = 0 le bit compare.EN est activ examine le bit compare.DN le bit compare.DN = 1 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

non l'tat de sortie de la ligne est vrai comparaison fin page 12-14

le bit compare.ER est activ

sortie instruction goto

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

compare.POS = compare.LEN le bit compare.DN est activ

sortie instruction goto 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] examine le bit result.DN le bit result.DN est effac la valeur result.POS est efface result.DN = 0

oui compare.POS = compare.POS + 1

oui result.POS < 0

non

oui result.LEN 0

non

le bit compare.ER est activ

oui dfaut majeur

Result.POS > taille du tableau de rsultat

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

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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Publication 1756-RM003F-FR-P - Mai 2002

12-16

Instructions spciales (FBC, DDT, DTR, PID)

Transition de donnes (DTR)


Oprandes :

L'instruction DTR passe la valeur Source par un masque et compare le rsultat la valeur Rfrence.

Logique relais
Oprande Source Masque Rfrence Type DINT DINT DINT Format immdiat point immdiat point point Description tableau comparer la rfrence bits bloquer ou passer 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. 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).

ATTENTION

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 16# 8# 2# Description hexadcimal par exemple : 16#0F0F octal par exemple : 8#16 binaire par exemple : 2#00110011

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-17

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


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est Action de la logique relais Rfrence = Source ET Masque. L'tat de sortie de la ligne est rgl sur faux. Rfrence = Source ET Masque. L'tat de sortie de la ligne est rgl sur faux.

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 Source value_1 7 1 8 3 9

exemple 2

masque = 0FFF 0000111111111111 0000111111111111

scrutation en cours scrutation prcdente

rfrence value_2 0 0 1 1 8 8 3 3 0 0

1 1

8 8

7 3

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)

12-19

Proportionnel, intgral et driv (PID)


Oprandes :

L'instruction PID commande une variable de procd, telle que dbit, pression, temprature ou niveau.

Logique relais

Oprande PID Variable de procd

Type PID SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL PID

Format structure point

Description structure PID valeur que vous voulez commander

Elment Tieback

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

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. (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. (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. (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. affichage de la valeur en cours du point de consigne affichage de la valeur en cours de la variable de procd mise l'chelle affichage de la valeur du pourcentage de sortie en cours

Boucle matre PID Bit de maintien Valeur de maintien

structure

BOOL

point

SINT INT DINT REAL

point

Point de consigne Variable de procd % de sortie

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 .CTL Type de donnes DINT Description 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 31 30 29 28 27 26 25 24 23 22 21 20 Ce bit 15 14 13 12 11 10 09 08 07 .SP .KP .KI .KD .BIAS .MAXS .MINS .DB .SO .MAXO REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL point de consigne indpendant dpendant indpendant dpendant indpendant dpendant gain proportionnel (sans unit) gain automate (sans unit) gain intgral (1/s) dure de rinitialisation (minutes par rptition) gain driv (secondes) frquence (minutes) est le membre .EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC est le membre suivant, activ par l'instruction PID .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA

anticipation de vitesse ou % de dcalage valeur maximum de mise l'chelle en units procd valeur minimum de mise l'chelle en units procd units procd de zone morte dfinition du % de sortie limite de sortie maximale (% de sortie)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-21

Mnmonique .MINO .UPD .PV .ERR .OUT .PVH .PVL .DVP .DVN .PVDB .DVDB .MAXI .MINI .TIE .MAXCV .MINCV .MINTIE .MAXTIE .DATA

Type de donnes REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL[17]

Description limite de sortie minimale (% de sortie) temps de rafrachissement de boucle (secondes) valeur PV mise l'chelle valeur d'erreur mise l'chelle % de sortie limite d'alarme haute de la variable de procd limite d'alarme basse de la variable de procd limite d'alarme d'cart positif limite d'alarme d'cart ngatif zone morte d'alarme de la variable de procd zone morte d'alarme de dviation valeur PV maximum (entre non mise l'chelle) valeur PV minimum (entre non mise l'chelle) valeur de tieback pour la commande manuelle valeur CV maximum (correspondant 100 %) valeur CV minimum (correspondant 0 %) valeur de tieback minimum (correspondant 100 %) valeur de tieback maximum (correspondant 0 %) Le membre .DATA stocke : Elment .DATA[0] .DATA[1] .DATA[2] .DATA[3] .DATA[4] .DATA[5] .DATA[6] .DATA[7] .DATA[8] .DATA[9] .DATA[10] .DATA[11] .DATA[12] .DATA[13] .DATA[14] .DATA[15] .DATA[16] Description cumul intgral valeur temporaire de lissage driv valeur .PV prcdente valeur .ERR prcdente valeur .SP correcte prcdente constante de mise l'chelle en pourcentage constante de mise l'chelle .PV constante de mise l'chelle drive valeur .KP prcdente valeur .KI prcdente valeur .KD prcdente gain dpendant .KP gain dpendant .KI gain dpendant .KD valeur .CV prcdente constante .CV de non-mise l'chelle constante de non-mise l'chelle de tieback

.EN .CT

BOOL BOOL

activ type de cascade (0=esclave ; 1=matre)

Publication 1756-RM003F-FR-P - Mai 2002

12-22

Instructions spciales (FBC, DDT, DTR, PID)

Mnmonique .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA

Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Description boucle en cascade (0=non ; 1=oui) suivi de variable de procd (0=non ; 1=oui) driv de (0=PV; 1=erreur) mode logiciel manuel (0=non - auto ; 1=oui - logiciel manuel) Action de contrle pour le calcul de l'erreur (0 signifie E=SP-PV ; 1 signifie E=PV-SP) mode station (0=automatique ; 1=manuel) quation PID (0=indpendant ; 1=dpendant) pas de lissage de la drive (0=filtre de lissage de la drive activ ; 1=filtre de lissage de la drive dsactiv) pas de calcul sur retour de dcalage (0=calcul sur retour de dcalage activ ; 1=calcul sur retour de dcalage dsactiv) pas de passage par zro pour zone morte (0=la zone morte passe par zro ; 1=la zone morte ne passe pas par zro) PID initialis (0=non ; 1=oui) consigne hors limites (0=non ; 1=oui) CV infrieur la limite de sortie minimum (0=non ;1=oui) CV suprieur la limite de sortie maximum (0=non ; 1=oui) erreur dans les limites de la zone morte (0=non ; 1=oui) alarme de drivation basse (0=non ; 1=oui) alarme de drivation haute (0=non ; 1=oui) alarme PV basse (0=non ; 1=oui) 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.
Type du dfaut 4 4 Code du dfaut 35 36

Un dfaut mineur se produit si .UPD 0 point de consigne hors limites

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction excute la boucle PID. L'tat de sortie de la ligne est rgl sur faux. Action Aucune. EnableIn est toujours activ. L'instruction est excute. L'instruction excute la boucle PID. Aucune.

si l'tat d'entre de la ligne est faux L'tat de sortie de la ligne est rgl sur faux.

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 Setpoint (SP) (Point de consigne (SP)) Set output % (Dfinir % de sortie) Indiquez Entrez une valeur de point de consigne (.SP). 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. Entrez un pourcentage de dcalage de sortie (.BIAS).

Output bias (Dcalage de sortie)

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). Entrez le gain driv (.KD). Pour les gains indpendants, c'est le gain driv (secondes). Pour les gains dpendants, c'est la frquence (minutes). Slectionnez manuel (.MO) ou logiciel manuel (.SWM). Si les deux sont slectionns, le mode manuel supplante le mode logiciel manuel.

Derivative time (Kd) (Temps driv (Kd))

Manual mode (Mode 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 PID equation (Equation PID) Indiquez 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). Slectionnez E=PV-SP ou E=SP-PV comme sens de calcul de l'erreur (.CA). 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. Entrez la frquence de d'actualisation (.UPD) de l'instruction. Entrez une limite haute pour la variable de contrle (.MAXO). Entrez une limite basse pour la variable de contrle (.MINO). Entrez une valeur de zone morte (.DB). Activez ou dsactivez cette slection (.NDF). Activez ou dsactivez cette slection (.NOBC).

Control action (Action de contrle) Derivative of (Driv de)

Loop update time (Heure de mise jour de la boucle) CV high limit (Limite haute de CV) CV low limit (Limite basse de CV) Deadband value (Valeur de zone morte) No derivative smoothing (Pas de lissage driv) No bias calculation (Pas de calcul de dcalage)

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-25

Dans ce champ No zero crossing in deadband (Pas de passage par zro en zone morte) PV tracking (Suivi de PV) Cascade loop (Boucle en cascade) Cascade type (Type de cascade)

Indiquez Activez ou dsactivez cette slection (.NOZC). Activez ou dsactivez cette slection (.PVT). Activez ou dsactivez cette slection (.CL). Si Cascade loop est activ, slectionnez esclave ou matre (.CT).

Dfinition des alarmes


Slectionnez l'onglet Alarmes. Vous devez cliquer sur OK ou sur Appliquer pour que les modifications prennent effet.
Dans ce champ PV high (PV haute) PV low (PV basse) PV deadband (Zone morte PV) Positive deviation (Dviation positive) Negative deviation (Dviation ngative) Indiquez Entrez une valeur d'alarme PV haute (.PVH). Entrez une valeur d'alarme PV basse (.PVL). Entrez une valeur de zone morte d'alarme PV (.PVDB). Entrez une valeur d'cart positif (.DVP). 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 PV unscaled maximum (Variable de procd maximum non mise l'chelle) PV unscaled minimum (Variable de procd minimum non mise l'chelle) PV engineering units maximum (Variable de procd maximum en units procd) PV engineering units minimum (Variable de procd minimum en units procd) CV maximum (Variable de contrle maximum) CV minimum (Variable de contrle minimum) Tieback maximum ( Elment Tieback maximum)) Tieback minimum (Elment Tieback minimum) PID Initialized (PID initialis) Indiquez 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. 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. Entrez les units procd maximum correspondant .MAXI (.MAXS). Entrez les units procd minimum correspondant .MINI (.MINS). Entrez une valeur de CV maximum correspondant 100 % (.MAXCV). Entrez une valeur de CV minimum correspondant 0 % (.MINCV). 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. 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. 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 Gains dpendants (standard ISA) Driv de erreur (E)
t

Equation

CV = K C

dE 1 - + BIAS E + ---- Edt + T d -----dt Ti


0

variable de procd (PV)

E = SP - PV
t

CV = K C

1 dPV - + BIAS E + ---- Edt T d ---------Ti dt


0

E = PV - SP
t

dPV 1 - + BIAS CV = K C E + ---- Edt + T d ---------dt Ti


0

Gains indpendants

erreur (E)
t

dE - + BIAS CV = K P E + K i Edt + Kd -----dt


0

variable de procd (PV)

E = SP - PV

dPV - + BIAS CV = K P E + Ki Edt K d ---------dt


0

E = PV - SP

dPV - + BIAS CV = K P E + K i Edt + Kd ---------dt


0

O :
Variable KP Ki Description gain proportionnel (sans unit) Kp = Kc sans unit gain intgral (secondes -1) Pour convertir Ki (gain intgral) en Ti (dure de rinitialisation), utilisez :
KC K i = ---------60 T i

Kd

gain driv (secondes) Pour convertir Kd (gain driv) en Td (frquence), utilisez : Kd = Kc (Td) 60 gain automate (sans unit) dure de rinitialisation (minutes/rptition) frquence (minutes)

KC Ti Td

Publication 1756-RM003F-FR-P - Mai 2002

12-28

Instructions spciales (FBC, DDT, DTR, PID)

Variable SP PV E BIAS CV dt

Description point de consigne variable de procd erreur [(SP-PV) ou (PV-SP)] anticipation de vitesse ou dcalage variable de contrle 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 logiciel manuel (.SWM) Description 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. 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.

manuel (.MO)

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 Configurez le canal du module de sorties analogiques 1756 qui reoit la variable de contrle de l'instruction PID Dtails 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 zone morte erreur dans la plage de la 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);

Pour ce paramtre de multiplication destination source A source B

Entrez cette valeur valeur contrle valeur non contrle ratio

Publication 1756-RM003F-FR-P - Mai 2002

Instructions spciales (FBC, DDT, DTR, PID)

12-37

Thorie PID

Les illustrations suivantes montrent le droulement d'instructions PID.

Processus PID
SP affich en units procd A/M Logiciel OU A/M Station oprateur Auto
+ -

Erreur affiche en units procd

Action de contrle Conversion des units en % Erreur X 100 max. UP-min. UP

% dcalage de sortie A/M Logiciel Calcul PID (Sortie%) Auto Auto Manuel PV affiche en units procd Dfinition % de sortie Manuel Sortie (CV) affiche en % d'units procd Conversion units Tieback en % tieback-mintie maxtie-mintie x 100 Limite de sortie A/M Station oprateur Dfinition % de sortie Conversion % en units CV CV%(maxcv-mincv) 100 CV + mincv

SP-PV (Erreur)
-1

SP

Manuel PVT Non

PV-SP

Oui Conversion des binaires en units procd (PV-min.)(max. UP-min. UP) + min. UP max.-min.

PV

Processus PID avec boucles matre/esclave


Boucle matre

A/M Logiciel OU A/M Station oprateur Auto SP-PV


+ -

Action de contrle Conversion des units en % Erreur X 100 max. UP-min. UP Dfinition % de sortie

% dcalage de sortie A/M Logiciel A/M Station oprateur Auto Manuel Manuel A/M Logiciel Limite de sortie Dfinition % de sortie

(Erreur)
-1

Calcul PID

(Sortie%)

Auto

SP

Manuel PVT Non

PV-SP

(Sortie

Oui Auto Conversion des binaires en units procd (PV-min.)(max. UP-min. UP) + min. UP max.-min. SP PV Conversion des units en % Erreur X 100 max. UP-min. UP 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. % dcalage de sortie A/M Logiciel

Boucle esclave

PV Action de contrle Conversion % en .SP units procd + X (max. UP-min. UP) + min. UP 100 SP-PV
-1

(Sortie matre)

PV-SP

Conversion des units en % Erreur X 100 max. UP-min. UP

Calcul PID

Auto Auto Manuel

A/M Station oprateur Limite de sortie Manuel

Dfinition % de sortie

Conversion % en units CV CV%(maxcv-mincv) 100 + mincv

Conversion des binaires en units procd


(PV-min.)(max. UP-min. UP)

Dfinition % de sortie Conversion units Tieback en % tieback-mintie maxtie-mintie x 100

max.-min.

+ min. UP

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
Si vous voulez trouver le sinus d'une valeur

Les instructions trigonomtriques valuent les oprations arithmtiques l'aide d'oprations trigonomtriques.
Utilisez cette instruction SIN Disponible dans ces langages logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel Voir page 13-2

trouver le cosinus d'une valeur

COS

13-4

trouver la tangente d'une valeur

TAN

13-6

trouver le sinus d'arc d'une valeur

ASN ASIN(1) ACS ACOS(1) ATN ATAN(1)

13-8

trouver le cosinus d'arc d'une valeur

13-10

trouver la tangente d'arc d'une valeur

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)
Oprandes :

L'instruction SIN prend le sinus de la valeur Source (en radians) et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le sinus de cette valeur

Destination

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 point SIN Type FBD_MATH_ADVANCED Format structure Description structure SIN

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction COS prend le cosinus de la valeur Source (en radians) et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le cosinus de cette valeur

Destination

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 point COS Type FBD_MATH_ADVANCED Format structure Description structure COS

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction TAN prend la tangente de la valeur Source (en radians) et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche la tangente de cette valeur

Destination

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 point TAN Type FBD_MATH_ADVANCED Format structure Description structure TAN

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)


Oprandes :

L'instruction ASN prend le sinus d'arc de la valeur Source et stocke le rsultat dans la Destination (en radians).

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le sinus d'arc de cette valeur

Destination

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 point ASN Type FBD_MATH_ADVANCED Format structure Description structure ASN

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)


Oprandes :

L'instruction ACS prend le cosinus d'arc de la valeur Source et stocke le rsultat dans la Destination (en radians).

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le cosinus d'arc de cette valeur

Destination

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 point ACS Type FBD_MATH_ADVANCED Format structure Description structure ACS

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)


Oprandes :

L'instruction ATN prend la tangente d'arc de la valeur Source et stocke le rsultat dans la Destination (en radians).

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche la tangente d'arc de cette valeur

Destination

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 point ATN Type FBD_MATH_ADVANCED Format structure Description structure ATN

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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
Si vous voulez trouver le logarithme naturel d'une valeur

Les instructions mathmatiques volues comprennent les instructions suivantes :


Utilisez cette instruction LN Disponible dans ces langages logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais texte structur(1) bloc fonctionnel Voir page 14-2

trouver le logarithme dcimal d'une valeur

LOG

14-4

lever une valeur la puissance d'une autre valeur


(1)

XPY

14-6

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)


Oprandes :

L'instruction LN prend le logarithme naturel de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le logarithme naturel de cette valeur

Destination

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 point LN Type FBD_MATH_ADVANCED Format structure Description structure LN

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct.

Source Paramtre de sortie EnableOut

REAL Type de donnes BOOL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction EnableIn est effac EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)


Oprandes :

L'instruction LOG prend le logarithme dcimal de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description cherche le logarithme de cette valeur

Destination

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 point LOG Type FBD_MATH_ADVANCED Format structure Description structure LOG

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction mathmatique. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction XPY lve Source A (X) la puissance de Source B (Y) et stocke le rsultat dans la Destination.

Logique relais
Oprande Source X Type SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur de base

Source Y

immdiat point

exposant

Destination

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
Oprande point XPY Type FBD_MATH Format structure Description structure XPY

Publication 1756-RM003F-FR-P - Mai 2002

Instructions mathmatiques volues (LN, LOG, XPY)

14-7

Structure FBD_MATH
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Valeur de base Valeurs correctes = toute virgule flottante. Exposant. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source X Source Y Paramtre de sortie EnableOut Dest

REAL REAL Type de donnes BOOL REAL

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 Source X est ngatif et Source Y n'est pas un nombre entier Type du dfaut 4 Code du dfaut 4

Excution : Logique relais


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

14-8

Instructions mathmatiques volues (LN, LOG, XPY)

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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
Si vous voulez convertir des radians en degrs

Les instructions de conversion mathmatique convertissent des valeurs.


Utilisez cette instruction DEG Disponible dans ces langages logique relais texte structur bloc fonctionnel logique relais texte structur bloc fonctionnel logique relais bloc fonctionnel logique relais bloc fonctionnel logique relais texte structur bloc fonctionnel Voir page 15-2

convertir des degrs en radians

RAD

15-4

convertir un nombre entier en valeur DCB convertir une valeur DCB en un nombre entier retirer la partie dcimale d'une valeur

TOD FRD TRN TRUNC(1)

15-6 15-9 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)
Oprandes :

L'instruction DEG convertit la Source (en radians) en degrs et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur convertir en degrs

Destination

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 point DEG Type FBD_MATH_ADVANCED Format structure Description structure DEG

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction de conversion. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)
Oprandes :

L'instruction RAD convertit la Source (en degrs) en radians et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT REAL SINT INT DINT REAL Format immdiat point Description valeur convertir en radians

Destination

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 point RAD Type FBD_MATH_ADVANCED Format structure Description structure RAD

Structure FBD_MATH_ADVANCED
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction de conversion. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL REAL

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai pendant la post-scrutation Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)


Oprandes :

L'instruction TOD convertit une valeur dcimale (0 Source 99 999 999) en valeur DCB et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT Format immdiat point Description 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 point TOD Type FBD_CONVERT Format structure Description structure TOD

Structure FBD_CONVERT
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction de conversion. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

DINT Type de donnes BOOL DINT

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 :
Un dfaut mineur se produit si Source < 0
Publication 1756-RM003F-FR-P - Mai 2002

Type du dfaut 4

Code du dfaut 4

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

15-7

Excution : Logique relais


Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux.

non source < 0

source > 99 999 999

non

conversion de source en DCB

oui

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 pendant la post-scrutation

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. L'tat de sortie de la ligne est rgl sur faux.

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

15-9

Conversion en nombre entier (FRD)


Oprandes :

L'instruction FRD convertit une valeur DCB (Source) en valeur dcimale et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Type SINT INT DINT Format immdiat point Description 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 point FRD Type FBD_CONVERT Format structure Description structure FRD

Structure FBD_CONVERT
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction de conversion. Valeurs correctes = tout nombre entier. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

DINT Type de donnes BOOL DINT

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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)

15-11

Troncation (TRN)
Oprandes :

L'instruction TRN retire (tronque) la partie dcimale de la Source et stocke le rsultat dans la Destination.

Logique relais
Oprande Source Destination Type REAL SINT INT DINT REAL Format immdiat point point Description valeur tronquer 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 point TRN Type FBD_TRUNCATE Format structure Description structure TRN

Structure FBD_TRUNCATE
Paramtre d'entre EnableIn Type de donnes BOOL Description Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises. Activ par dfaut. Entre dans l'instruction de conversion. Valeurs correctes = toute virgule flottante. Description L'instruction a fourni un rsultat correct. Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.

Source Paramtre de sortie EnableOut Dest

REAL Type de donnes BOOL DINT

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. L'tat de sortie de la ligne est rgl sur faux.

pendant la post-scrutation

Bloc fonctionnel
Condition pendant la pr-scrutation pendant la premire scrutation de l'instruction pendant la premire excution de l'instruction si EnableIn est effac si EnableIn est activ pendant la post-scrutation Action Aucune. Aucune. Aucune. EnableOut est effac. L'instruction est excute. EnableOut est activ. 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
Si vous voulez dterminer quand le buffer contient des caractres de fin

Utilisez les instructions du port srie ASCII pour lire et crire des caractres ASCII.
Par exemple trouver les donnes contenant des caractres de fin Utilisez cette instruction ABL ACB Disponible dans ces langages logique relais texte structur logique relais texte structur logique relais texte structur Voir page 16-5 16-8

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 activer ou dsactiver le signal DTR activer ou dsactiver le signal RTS lire un nombre fixe de caractres lire des donnes d'un quipement qui envoie le mme nombre de caractres chaque transmission effacer les anciennes donnes du buffer au dmarrage synchroniser le buffer avec un quipement faire raccrocher un modem

ACL

16-10

AHL

logique relais texte structur

16-12

ARD

logique relais texte structur logique relais texte structur 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 envoyer des caractres et ajouter automatiquement un ou deux caractres supplmentaires pour marquer la fin des donnes envoyer des caractres envoyer des messages utilisant toujours le ou les mmes caractres de fin envoyer des messages utilisant diffrents caractres de fin

ARL

16-19

AWA

16-23

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 Instruction 3 Instruction 4 L'instruction entre dans la file d'attente ASCII. Les donnes circulent entre le buffer et le port srie. Contrle Buffer Les donnes circulent entre la tche et le buffer. Tche ASCII La premire instruction de la file d'attente est excute.

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

acti v

ds acti v

acti v

ds acti v

.DN ou .ER

ds acti v

acti v

ds acti v

acti v

.FD

ds acti v entre dans la file d'attente excute dans cet exemple, trouve les caractres de fin

acti v

ds acti v

acti v

remet les bits d'tat zro quand scrut et .DN ou .ER est activ, active le bit EM

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 scrutation scrutation

tat d'entre de la ligne

faux

vrai

faux

.EN

dsactiv

activ

.EU

dsactiv

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 16#2 16#3 16#4 16#A 16#C 16#D Indique que Le modem est hors ligne. Le signal CTS a t perdu pendant la communication. Le port srie tait en mode System. Le bit UL a t activ avant l'excution de l'instruction. Ceci empche l'excution de l'instruction. 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. 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. L'instruction ACL est excute. 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. La valeur LEN de la chane de caractres est ngative ou suprieure la taille DATA de la chane de caractres. La longueur de contrle du port srie est suprieure la taille du buffer. La longueur de contrle du port srie est ngative ou suprieure la taille de la Source ou de la Destination.

16#E 16#F 16#51 16#54 16#55

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 LEN Type de donnes DINT Description nombre de caractres dans la chane Remarques 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)


Oprandes :

L'instruction ABL compte le nombre de caractres dans le buffer, jusqu'au premier caractre de fin inclus.

Logique relais
ABL ASCII Test For Buffer Line Channel SerialPort Control Character Count EN DN ER

Oprande Canal Contrle du port srie

Type DINT SERIAL_PORT_ CONTROL

Format immdiat point point immdiat

Description 0 point qui commande l'opration 0 Pendant l'excution, affiche le nombre de caractres dans le buffer, y compris le premier jeu de caractres de fin.

? ? ?

Comptage des DINT caractres

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 .EN .EU .DN .RN .EM .ER .FD .POS Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv indique que l'instruction a trouv le ou les caractres de fin. 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. L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.

.ERROR

DINT

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. 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. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

pendant la post-scrutation

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)


Oprandes :

L'instruction ACB compte les caractres dans le buffer.

Logique relais
ACB ASCII Chars in Buffer Channel SerialPort Control Character Count EN DN ER

Oprande Canal Contrle du port srie Comptage des caractres

Type DINT SERIAL_PORT_ CONTROL DINT

Format immdiat point point immdiat

Entrez 0 point qui commande l'opration 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 .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv indique que l'instruction a trouv un caractre. La position dtermine le nombre de caractres dans le buffer, jusqu'au premier jeu de caractres de fin inclus. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. 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. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

pendant la post-scrutation

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)


Oprandes :

L'instruction ACL efface immdiatement le contenu du buffer et la file d'attente ASCII.

Logique relais
ACL ASCII Clear Buffer Channel Clear Serial Port Read Clear Serial Port Write

Oprande
? ? ?

Type DINT BOOL

Format immdiat point immdiat point immdiat point

Entrez 0 Pour effacer le buffer et retirer les instructions ARD et ARL de la file d'attente, entrez Oui. Pour retirer les instructions AWA et AWT de la file d'attente, entrez Oui.

Canal Effacer lecture port srie

BOOL Effacer criture port srie

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 utilise des instructions ARD ou ARL n'utilise pas d'instructions ARD ou ARL Action Slectionnez le mode Utilisateur (User). 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute. Aucune.

L'instruction efface les instructions et le contenu du (des) buffer(s) indiqus. L'tat de sortie de la ligne est rgl sur faux.

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)


Oprandes :

L'instruction AHL obtient l'tat des lignes de commande et active ou dsactive les signaux DTR et RTS.

Logique relais
AHL ASCII Handshake Lines Channel AND Mask OR Mask SerialPort Control Channel Status(Decimal) EN ? ? ?? ? ?? ? ? DN ER

Oprande Canal ANDMask ORMask Contrle du port srie Etat du canal (dcimal)

Type DINT DINT DINT

Format immdiat point immdiat point immdiat point

Entrez 0 reportez-vous la description

SERIAL_PORT_CONTROL point DINT immdiat

point qui commande l'opration 0 Pendant l'excution, affiche l'tat des lignes de commande. Pour l'tat de cette ligne de commande CTS RTS DSR DCD DTR Caractre XOFF reu Examinez ce bit 0 1 2 3 4 5

Texte structur
AHL(Channel,ANDMask,ORMask, SerialPortControl);

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.

Publication 1756-RM003F-FR-P - Mai 2002

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

16-13

Structure SERIAL_PORT_CONTROL
Mnmonique .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv ne s'applique pas cette instruction. La position stocke l'tat des lignes de commande. 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 utilise des instructions ARD ou ARL Action 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 dsactiv Et pour que RTS soit dsactiv activ inchang activ dsactiv activ inchang inchang dsactiv activ inchang Entrez cette valeur Et entrez cette ANDMask valeur ORMask 3 1 1 2 0 0 2 0 0 0 2 0 1 3 1 0 2 0

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 4 Code 57 Cause L'instruction AHL n'a pas t excute car le port srie est rgl sur pas d'change. Mthode de correction Vous pouvez au choix : changer le rglage de la ligne de contrle du port srie ; supprimer l'instruction AHL.

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

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. L'tat de sortie de la ligne est rgl sur faux. Aucune.

pendant la post-scrutation

Publication 1756-RM003F-FR-P - Mai 2002

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 OR Mask SerialPort Control Channel Status(Decimal)

EN 0 0 0 serial_port 29 DN ER

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)


Oprandes :

L'instruction ARD retire des caractres du buffer et les stocke dans la Destination.

Logique relais
ARD ASCII Read Channel Destination SerialPort Control SerialPort Control Length Characters Read EN ? ? ?? ? ? ? DN ER

Oprande Canal Destination

Type DINT STRING SINT INT DINT

Format immdiat point point

Entrez 0 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. point qui commande l'opration nombre de caractres transfrer vers la destination (lecture)

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.

Contrle du port srie Longueur de contrle du port srie

SERIAL_PORT_ CONTROL DINT

point immdiat

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.

Caractres lus

DINT

immdiat

Texte structur
ARD(Channel,Destination, SerialPortControl);

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.

Publication 1756-RM003F-FR-P - Mai 2002

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

16-17

Structure SERIAL_PORT_CONTROL
Mnmonique .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv ne s'applique pas cette instruction. La longueur indique le nombre de caractres dplacer dans la Destination (lecture). La position affiche le nombre de caractres lus. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

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. L'tat de sortie de la ligne est rgl sur faux. Aucune.

pendant la post-scrutation

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

EN DN ER

GEQ Grtr Than or Eql (A>=B) Source A bar_code_count.pos 0 Source B 24

ARD ASCII Read Channel Destination EN DN ER 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

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

16-19

Ligne de lecture ASCII (ARL)


Oprandes :

L'instruction ARL retire des caractres dfinis du buffer et les stocke dans la Destination.

Logique relais
ARL ASCII Read Line Channel Destination SerialPort Control SerialPort Control Length Characters Read EN ? ? ?? ? ? ? DN ER

Oprande Canal Destination

Type DINT STRING SINT INT DINT

Format immdiat point point

Entrez 0 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. point qui commande l'opration 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.

Contrle du port srie Longueur de contrle du port srie

SERIAL_PORT_ CONTROL DINT

point immdiat

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 .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv ne s'applique pas cette instruction. 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). La position affiche le nombre de caractres lus. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

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. L'tat de sortie de la ligne est rgl sur faux. Aucune.

pendant la post-scrutation

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

EN DN ER

MV_line.FD ASCII Read Line Channel Destination

ARL EN 0 MV_msg '' MV_read 12 0 DN ER

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

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

16-23

Ajout d'criture ASCII (AWA)


Oprandes :

L'instruction AWA envoie un nombre dfini de caractres du point Source vers un quipement srie et ajoute un ou deux caractres prdfinis.

Logique relais
AWA ASCII Write Append Channel Source SerialPort Control SerialPort Control Length Characters Sent EN ? ? ?? ? ? ? DN ER

Oprande Canal Source

Type DINT STRING SINT INT DINT

Format immdiat point point

Entrez 0 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. point qui commande l'opration nombre de caractres envoyer

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.

Contrle du port srie Longueur de contrle du port srie

SERIAL_PORT_ CONTROL DINT

point immdiat

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.

Caractres envoys

DINT

immdiat

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 .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv ne s'applique pas cette instruction. La longueur indique le nombre de caractres envoyer. La position affiche le nombre de caractres envoys. 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 Oui Non Action Slectionnez le mode Utilisateur (User). 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 Oui Non Action Entrez le nombre de caractres envoyer dans la longueur de contrle du port srie. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. Action du texte structur Aucune. -

EnableIn est toujours activ. L'instruction est excute.

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. L'tat de sortie de la ligne est rgl sur faux. Aucune.

pendant la post-scrutation

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

EN DN ER

0 string[1] '$1425\1' SerialPort Control temp_high_write SerialPort Control Length 5 Characters Sent 6

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

EN 0 alarm_msg '$1425\1' alarm_write 5 6 DN ER

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

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

16-27

Ecriture ASCII (AWT)


Oprandes :

L'instruction AWT envoie un nombre dfini de caractres du point Source vers un quipement srie.

Logique relais
AWT ASCII Write Channel Source SerialPort Control SerialPort Control Length Characters Sent EN ? ? ?? ? ? ? DN ER

Oprande Canal Source

Type DINT STRING SINT INT DINT

Format immdiat point point

Entrez 0 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. point qui commande l'opration nombre de caractres envoyer

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.

Contrle du port srie Longueur de contrle du port srie

SERIAL_PORT_ CONTROL DINT

point immdiat

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.

Caractres envoys

DINT

immdiat

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 .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Type de donnes BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Description Le bit d'activation indique que l'instruction est active. Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII. Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation logique. Le bit d'excution indique que l'instruction est en cours d'excution. Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation logique. Le bit d'erreur indique quand l'instruction choue (erreurs). Le bit trouv ne s'applique pas cette instruction. La longueur indique le nombre de caractres envoyer. La position affiche le nombre de caractres envoys. 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 utilise des instructions ARD ou ARL n'utilise pas d'instructions ARD ou ARL Action Slectionnez le mode Utilisateur (User). 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 Oui Non Action Entrez le nombre de caractres envoyer dans la longueur de contrle du port srie. 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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. 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. 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. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. -

si EnableIn est activ pendant l'excution de l'instruction

EnableIn est toujours activ. L'instruction est excute.

pendant la post-scrutation

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 ASCII Write Channel Source AWT EN DN ER 0 string[2] '$142224\01$r' SerialPort Control temp_low_write SerialPort Control Length 9 Characters Sent 9

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
Si vous voulez ajouter des caractres la fin d'une chane effacer des caractres d'une chane dterminer le caractre de dbut d'une sous-chane insrer des caractres dans une chane extraire des caractres d'une chane

Utilisez les instructions de chane ASCII pour crer et modifier des chanes de caractres ASCII.
Par exemple ajouter des caractres de fin ou des sparateurs dans une chane supprimer les caractres d'en-tte ou de contrle d'une chane localiser un groupe de caractres dans une chane crer une chane qui utilise des variables extraire des informations d'un code-barres Utilisez cette instruction CONCAT DELETE FIND INSERT MID Disponible dans ces langages logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur logique relais texte structur Voir page 17-3 17-5 17-7 17-9 17-11

Vous pouvez galement utiliser les instructions suivantes pour comparer ou convertir des caractres ASCII :
Si vous voulez comparer une chane une autre voir si les caractres sont gaux des caractres spcifiques voir si les caractres ne sont pas gaux des caractres spcifiques voir si les caractres sont suprieurs ou gaux des caractres spcifiques voir si les caractres sont suprieurs des caractres spcifiques voir si les caractres sont infrieurs ou gaux des caractres spcifiques voir si les caractres sont infrieurs des caractres spcifiques rorganiser les octets d'un point INT, DINT ou REAL trouver une chane dans un tableau de chanes convertir des caractres en une valeur SINT, INT, DINT ou REAL convertir des caractres en une valeur REAL convertir une valeur SINT, INT, DINT ou REAL en une chane de caractres ASCII convertir une valeur REAL en une chane de caractres ASCII Utilisez cette instruction CMP EQU NEQ GEQ GRT LEQ LES SWPB FSC STOD STOR DTOS RTOS Voir page 4-2 4-7 4-38 4-11 4-15 4-19 4-23 6-18 7-18 18-3 18-5 18-7 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: LEN Data Type: DINT Description: number of characters in the string Notes: 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)

17-3

Concatnation de chanes (CONCAT)


Oprandes :

L'instruction CONCAT ajoute des caractres ASCII la fin d'une chane.

Logique relais
CONCAT String Concatenate Source A ? ?? Source B ? ?? Dest ? ??

Oprande Source A Source B Destination

Type STRING STRING STRING

Format point point point

Entrez le point contenant les caractres de dbut le point contenant les caractres de fin le point pour le stockage du rsultat

Remarques Les types de donnes chane sont : type de donnes STRING par dfaut ; tout nouveau type de donnes chane que vous crez.

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. -

Publication 1756-RM003F-FR-P - Mai 2002

17-4

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

Condition si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation

Action de la logique relais L'instruction assemble (concatne) les chanes. L'tat de sortie de la ligne est rgl sur faux.

Action du texte structur EnableIn est toujours activ. L'instruction est excute. 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)

17-5

Effacement dans une chane (DELETE)


Oprandes :
DELETE String Delete Source Qty Start Dest

L'instruction DELETE supprime des caractres ASCII d'une chane.

Logique relais
? ?? ? ?? ? ?? ? ??

Oprande Source

Type STRING

Format point

Entrez

Remarques

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. 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. Entrez un numro entre 1 et la taille DATA de la Source.

Quantit

SINT INT DINT SINT INT DINT STRING

immdiat point immdiat point point

Dbut

la position du premier caractre effacer le point pour le stockage du rsultat

Destination

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. La valeur de Dbut ou de Quantit 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. 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.

56

Publication 1756-RM003F-FR-P - Mai 2002

17-6

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

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction efface les caractres dfinis. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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 Start Dest 1 term_text '55'

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

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

17-7

Recherche de chane (FIND)


Oprandes :
FIND Find String Source Search Start Result

L'instruction FIND repre la position de dbut d'une chane dfinie, l'intrieur d'une autre chane.

Logique relais
? ?? ? ?? ? ?? ? ??

Oprande Source Recherche Dbut

Type STRING STRING SINT INT DINT SINT INT DINT

Format point point immdiat point point

Entrez la chane dans laquelle la recherche est effectuer la chane rechercher

Remarques Les types de donnes chane sont : type de donnes STRING par dfaut ; tout nouveau type de donnes chane que vous crez.

la position dans la Source Entrez un numro entre 1 et la taille DATA de la Source. partir de laquelle la recherche doit commencer le point qui stocke la position de dbut de la chane rechercher

Rsultat

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

56

Publication 1756-RM003F-FR-P - Mai 2002

17-8

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

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction recherche les caractres dfinis. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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 find_pos 5

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

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

17-9

Insrer chane (INSERT)


Oprandes :
INSERT Insert String Source A Source B Start Dest

L'instruction INSERT ajoute des caractres ASCII un emplacement dfini d'une chane.

Logique relais
? ?? ? ?? ? ?? ? ??

Oprande Source A

Type STRING

Format point

Entrez la chane dans laquelle vous voulez insrer des caractres la chane contenant les caractres insrer la position dans Source A o les caractres doivent tre insrs la chane pour le stockage du rsultat

Remarques Les types de donnes chane sont : type de donnes STRING par dfaut ; tout nouveau type de donnes chane que vous crez. Entrez un numro entre 1 et la taille DATA de la Source.

Source B Dbut

STRING SINT INT DINT STRING

point immdiat point point

Rsultat

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

56

Publication 1756-RM003F-FR-P - Mai 2002

17-10

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

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction insre les caractres dfinis. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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 string_3 'ABCD'

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

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

17-11

Copie dans une chane (MID)


Oprandes :

L'instruction MID copie un nombre dtermin de caractres ASCII partir d'une chane et les stocke dans une autre chane.

Logique relais
MID Middle String Source Qty Start Dest ? ?? ? ?? ? ?? ? ??

Oprande Source

Type STRING

Format point

Entrez la chane partir de laquelle vous voulez copier des caractres le nombre de caractres copier la position du premier caractre copier la chane dans laquelle les caractres doivent tre copis

Remarques Les types de donnes chane sont : type de donnes STRING par dfaut ; tout nouveau type de donnes chane que vous crez. La valeur de Dbut plus la valeur de Quantit doit tre infrieure ou gale la taille DATA de la Source. Entrez un numro entre 1 et la taille DATA de la Source.

Quantit

SINT INT DINT SINT INT DINT STRING

immdiat point immdiat point point

Dbut

Destination

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. La valeur de Dbut ou de Quantit 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. 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.

56

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

L'instruction copie les caractres dfinis partir d'une chane et les stocke dans une autre chane. 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 9 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
Si vous voulez convertir la reprsentation ASCII d'un nombre entier en une valeur SINT, INT, DINT ou REAL

Utilisez les instructions de conversion ASCII pour modifier le format des donnes.
Par exemple Utilisez cette instruction Disponible dans ces langages logique relais texte structur Voir page 18-3

STOD convertir une valeur de balance de pesage, ou d'un autre quipement ASCII, en nombre entier pour l'utiliser dans votre programme STOR

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 convertir une valeur SINT, INT, DINT ou REAL en une chane de caractres ASCII convertir une valeur REAL en une chane de caractres ASCII convertir les lettres d'une chane de caractres ASCII en majuscules convertir une variable en une chane ASCII pour l'envoyer un terminal MessageView convertir une variable en une chane ASCII pour l'envoyer un terminal MessageView

logique relais texte structur

18-5

DTOS

logique relais texte structur logique relais texte structur logique relais texte structur

18-7

RTOS

18-9

UPPER convertir une entre effectue en majuscules par un oprateur pour que vous puissiez la chercher dans un tableau LOWER convertir une entre effectue en minuscules par un oprateur pour que vous puissiez la chercher dans un tableau

18-11

convertir les lettres d'une chane de caractres ASCII en minuscules

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 ajouter des caractres la fin d'une chane effacer des caractres d'une chane dterminer le caractre de dbut d'une sous-chane insrer des caractres dans une chane extraire des caractres d'une chane rorganiser les octets d'un point INT, DINT ou REAL comparer une chane une autre voir si les caractres sont gaux des caractres spcifiques voir si les caractres ne sont pas gaux des caractres spcifiques voir si les caractres sont suprieurs ou gaux des caractres spcifiques voir si les caractres sont suprieurs des caractres spcifiques voir si les caractres sont infrieurs ou gaux des caractres spcifiques voir si les caractres sont infrieurs des caractres spcifiques trouver une chane dans un tableau de chanes Utilisez cette instruction CONCAT DELETE FIND INSERT MID SWPB CMP EQU NEQ GEQ GRT LEQ LES FSC Voir page 17-3 17-5 17-7 17-9 17-11 6-18 4-2 4-7 4-38 4-11 4-15 4-19 4-23 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: LEN Data Type: DINT Description: number of characters in the string Notes: 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)

18-3

Chane vers DINT (STOD)


Oprandes :

L'instruction STOD convertit la reprsentation ASCII d'un nombre entier en une valeur de nombre entier ou REAL.

Logique relais
STOD String To DINT Source Dest ? ?? ? ??

Oprande Source

Type STRING

Format point

Entrez le point qui contient la valeur ASCII

Remarques 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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

53

Le nombre de sorties dpasse les limites du type de donnes de la destination.

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. S:C est activ. La Destination est efface. L'instruction convertit la Source. Si le rsultat est zro, S:Z est activ. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

pendant la post-scrutation

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)

18-5

Chane vers REAL (STOR)


Oprandes :
STOR String to Real Source Dest

L'instruction STOR convertit la reprsentation ASCII d'une valeur virgule flottante en valeur REAL.

Oprandes de logique relais


? ?? ? ??

Oprande Source

Type STRING

Format point

Entrez le point qui contient la valeur ASCII

Remarques 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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

53

Le nombre de sorties dpasse les limites du type de donnes de la destination.

Publication 1756-RM003F-FR-P - Mai 2002

18-6

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

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. S:C est activ. La Destination est efface. L'instruction convertit la Source. Si le rsultat est zro, S:Z est activ. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

pendant la post-scrutation

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)

18-7

DINT vers chane (DTOS)


Oprandes :
DTOS DINT to String Source Dest

L'instruction DTOS donne la reprsentation ASCII d'une valeur.

Logique relais
? ?? ? ??

Oprande Source

Type SINT INT DINT REAL STRING

Format point

Entrez le point qui contient la valeur

Remarques Si la source est une valeur REAL, l'instruction la convertit en valeur DINT. Reportez-vous REAL en nombre entier, page A-5.

Destination

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

52

La chane de sortie est plus grande que la destination.

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. Action du texte structur Aucune. -

Publication 1756-RM003F-FR-P - Mai 2002

18-8

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

Condition si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation

Action de la logique relais L'instruction convertit la Source. L'tat de sortie de la ligne est rgl sur faux.

Action du texte structur EnableIn est toujours activ. L'instruction est excute.

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)

18-9

REAL vers chane (RTOS)


Oprandes :

L'instruction RTOS donne la reprsentation ASCII d'une valeur REAL.

Logique relais
RTOS Real to String Source Dest ? ?? ? ??

Oprande Source Destination

Type REAL STRING

Format point point

Entrez le point qui contient la valeur REAL

Remarques

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);

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 4 Code 51 Cause La valeur LEN de la chane de caractres est suprieure la taille DATA de la chane de caractres. 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.

52

La chane de sortie est plus grande que la destination.

Publication 1756-RM003F-FR-P - Mai 2002

18-10

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

Excution :
Condition pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction convertit la Source. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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)

18-11

Majuscule (UPPER)
Oprandes :

L'instruction UPPER convertit les caractres alphabtiques d'une chane en caractres majuscules.

Logique relais
Oprande Source Destination Type STRING STRING Format point point Description point qui contient les caractres que vous voulez convertir en majuscules point qui stocke les caractres en majuscules

UPPER(Source,Dest);

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction convertit la Source en majuscules. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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)

18-13

Minuscule (LOWER)
Oprandes :

L'instruction LOWER convertit les caractres alphabtiques d'une chane en caractres minuscules.

Logique relais
Oprande Source Destination Type STRING STRING Format point point Description point qui contient les caractres que vous voulez convertir en minuscules point qui stocke les caractres en minuscules

LOWER(Source,Dest);

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 pendant la pr-scrutation si l'tat d'entre de la ligne est faux si l'tat d'entre de la ligne est vrai si EnableIn est activ pendant l'excution de l'instruction pendant la post-scrutation Action de la logique relais L'tat de sortie de la ligne est rgl sur faux. L'tat de sortie de la ligne est rgl sur faux. L'instruction est excute. L'tat de sortie de la ligne est rgl sur vrai. L'instruction convertit la Source en minuscules. L'tat de sortie de la ligne est rgl sur faux. Aucune. Action du texte structur Aucune. EnableIn est toujours activ. L'instruction est excute.

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

Cette annexe dcrit les attributs communs aux instructions Logix.


Pour des informations sur les Valeurs immdiates Conversions de donnes Voir page A-1 A-1

Valeurs immdiates

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
Si vous entrez -1 16#ffff (-1) 8#1234 (668) 2#1010 (10)

Remplissage de valeurs immdiates par des zros


L'automate stocke 16#ffff ffff (-1) 16#0000 ffff (65535) 16#0000 029c (668) 16#0000 000a (10)

Conversions de donnes

Des conversions de donnes ont lieu lorsque vous combinez diffrents types de donnes dans votre programmation.
En programmation en logique relais blocs fonctionnels Des conversions peuvent avoir lieu quand vous combinez diffrents types de donnes pour les paramtres d'une instruction 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 Oui Non Les oprandes d'entre (source, point dans une expression, limite) sont convertis en REAL 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 Extension de signe Convertit les donnes en plaant 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. des zros gauche des bits existants jusqu' ce qu'il y ait 32 bits

Remplissage par des zros

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 Est convertie en cette valeur par extension de signe Est convertie en cette valeur par remplissage par des zros 2#1111_1111_1111_1111 (-1)

2#1111_1111_1111_1111_1111_1111_1111_1111 (-1)

2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)

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

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.

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.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111

2#1111_1111_1111_1111

MOV Move Source 2#1111_1111_1111_1111 Dest 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
Cette valeur DINT 16#0001_0081 (65,665)

Conversion d'une valeur DINT en valeur INT et SINT


Est convertie en cette valeur infrieure INT : SINT : 16#0081 (129) 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 -2,5 -1,6 -1,5 -1,4 1,4 1,5 1,6 2,5

Conversion de valeurs REAL en valeurs DINT

Est convertie en cette valeur DINT -2 -2 -2 -1 1 2 2 2

IMPORTANT

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.

Publication 1756-RM003F-FR-P - Mai 2002

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

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).

Verrouillage des donnes

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

B-3

Ordre d'excution

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 2 3

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 3 5

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 2 3

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

B-5

Rponses de bloc fonctionnel aux conditions de 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.

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 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. HLL INTG PI PIDE SCL SOC 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

NTCH PMUL POSP RLIM RMPS SCRV SEL SNEG SRTP SSUM TOT UPDN

BAND BNOT BOR BXOR CUTD D2SD D3SD DFF JKFF OSFI

OSRI RESD RTOR SETD TOFR TONR

Modes de temporisation

Ces instructions de commande de procd et de variation de vitesse prennent en charge diffrents modes de temporisation. DEDT DERV HPF INTG LDLG LDL2 LPF NTCH PI PIDE RLIM SCRV SOC TOT

Publication 1756-RM003F-FR-P - Mai 2002

B-6

Attributs de bloc fonctionnel

Il existe trois modes de temporisation :


Mode de temporisation priodique Description 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 TimingMode Type de donnes DINT Description 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. 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. 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.

RTSTime

DINT

RTSTimeStamp

DINT

Publication 1756-RM003F-FR-P - Mai 2002

B-8

Attributs de bloc fonctionnel

Paramtres de sortie
Paramtre de sortie DeltaT Type de donnes REAL Description 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 TimingModeInv (Status.27) DINT BOOL Etat du bloc fonctionnel. Valeur TimingMode incorrecte. Utilis uniquement en mode d'chantillonnage en temps rel. Activ quand ABS | DeltaT RTSTime | > 1 (0,001 seconde). Valeur RTSTime incorrecte. Valeur RTSTimeStamp incorrecte. Valeur DeltaT incorrecte.

RTSMissed (Status.28) BOOL RTSTimeInv (Status.29) RTSTimeStampInv (Status.30) DeltaTInv (Status.31) BOOL BOOL BOOL

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 TimingMode = 1 TimingMode = 2

Temporisation priodique

Temporisation de surchantillonnage

Temporisation en temps rel

DeltaT = OversampleDT 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. Dtermine le type de tche

DeltaT = RTSTimeStampn - RTSTimeStampn-1 Si DeltaT > 0, l'instruction est excute. Si |RTSTIME - DeltaT| > 1, l'instruction active le bit RTSMissed dans Status.

Tche priodique

Tche non priodique

DeltaT = temps de scrutation de la tche Si DeltaT > 0, l'instruction est excute.

DeltaT = temps coul depuis la dernire excution 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 .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Description Demande du programme pour passer en commande Programme. Demande du programme pour passer en commande Oprateur. Demande de l'oprateur pour passer en commande Programme. 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.
Pour des informations sur Syntaxe du texte structur Affectations Expressions Instructions Instructions de test Commentaires Voir page C-1 C-2 C-4 C-10 C-11 C-26

Syntaxe du texte structur

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 :
Exemples point := expression;

Terme affectation (voir page C-2)

Dfinition 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 ;. 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 des immdiats des oprateurs des fonctions Zone dnomme de la mmoire o les donnes sont stockes (BOOL, SINT, INT, DINT, REAL, STRING). Constante. Symbole ou mnmonique qui dfinit un oprateur dans une expression. Lorsqu'elle est excute, une fonction donne une valeur. Mettez l'oprande d'une fonction entre parenthses. 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.

expression (voir page C-4)

valeur1 4 point1 + point2 point1 >= valeur1 fonction(point1)

Publication 1756-RM003F-FR-P - Mai 2002

C-2

Programmation en texte structur

Terme une instruction (voir page C-10)

Dfinition 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 ;. 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.

Exemples instruction(); instruction(oprande); instruction(oprande1, oprande2,oprande3);

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 //commentaire (*dbut de commentaire . . . fin de commentaire*) /*dbut de commentaire . . . fin de commentaire*/

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.

Affectations

Utilisez une affectation pour changer la valeur stocke dans un point. La syntaxe d'une affectation est la suivante : point := expression ; o :
Composant point := expression Description reprsente le point qui obtient la nouvelle valeur le point doit tre de type BOOL, SINT, INT, DINT ou REAL symbole de l'affectation reprsente la nouvelle valeur attribuer au point Si point est de ce type : BOOL SINT INT DINT REAL ; termine l'affectation Utilisez ce type d'expression : expression boolenne expression numrique

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 point [:=] expression Description 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 reprsente la nouvelle valeur attribuer au point Si point est de ce type : BOOL SINT INT DINT REAL ; termine l'affectation Utilisez ce type d'expression : expression boolenne expression numrique

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 string1.DATA[0]:= 65; string1.DATA[0]:= string2.DATA[0]; Incorrect string1.DATA[0] := A; string1 := string2;

Pour ajouter ou insrer des caractres dans une chane, utilisez l'une de ces instructions de chane ASCII :
Pour ajouter des caractres la fin d'une chane insrer des caractres dans une chane Utilisez cette instruction CONCAT INSERT

Expressions

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 calculer une valeur arithmtique comparer deux valeurs ou chanes vrifier si des conditions sont vraies ou fausses comparer les bits dans des valeurs Voir Utilisation d'oprateurs et de fonctions arithmtiques , page C-5. Utilisation d'oprateurs de relation , page C-7. Utilisation d'oprateurs logiques , page C-8. 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 addition soustraction/ngation multiplication exposant (x la puissance y) division modulo Utilisez cet oprateur + * ** / MOD Type de donnes optimal DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL 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 valeur absolue cosinus d'arc sinus d'arc tangente d'arc cosinus radians en degrs logarithme naturel logarithme dcimal degrs en radians sinus racine carre tangente troncation Utilisez cette fonction ABS (expression_numrique) ACOS (expression_numrique) ASIN (expression_numrique) ATAN (expression_numrique) COS (expression_numrique) DEG (expression_numrique) LN (expression_numrique) LOG (expression_numrique) RAD (expression_numrique) SIN (expression_numrique) SQRT (expression_numrique) TAN (expression_numrique) TRUNC (expression_numrique) Type de donnes optimal DINT, REAL REAL REAL REAL REAL DINT, REAL REAL REAL DINT, REAL REAL DINT, REAL REAL DINT, REAL

Par exemple
Utilisez ce format Exemple Pour cette situation 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". Ecrivez 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". 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". 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". overtravel_POS := ABS(overtravel);

fonction(expression_numrique)

valeur1 oprateur (fonction((valeur2+valeur3)/2)

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 vraie fausse Le rsultat est 1 0

Utilisez les oprateurs de relation suivants :


Pour cette comparaison gal infrieur infrieur ou gal suprieur suprieur ou gal diffrent Utilisez cet oprateur = < <= > >= <> Type de donnes optimal DINT, REAL, STRING DINT, REAL, STRING DINT, REAL, STRING DINT, REAL, STRING DINT, REAL, STRING DINT, REAL, STRING

Par exemple :
Utilisez ce format Exemple Pour cette situation valeur1 oprateur valeur2 Si "temp" est un point DINT et votre spcification indique : Si "temp" est infrieur 100, alors Si "bar_code" et "dest" sont des chanes de caractres et votre spcification indique : Si "bar_code" est gal "dest", alors Si "bar_code" est une chane de caractres et votre spcification indique : Si "bar_code.DATA[0]" est gal "A", alors Ecrivez IF temp<100 THEN...

chane_de_caractres1 oprateur chane_de_caractres2 caractre1 oprateur caractre2 Pour entrer un caractre ASCII directement dans l'expression, entrez la valeur dcimale du caractre. point_bool := expressions_boolennes

IF bar_code=dest THEN...

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);

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.
Caractres ASCII 1ab
in f ri e u r s u p ri e u

Codes Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 vraie fausse Le rsultat est 1 0

Utilisez les oprateurs logiques suivants :


Pour ET logique OU logique OU exclusif logique complment logique Utilisez cet oprateur &, AND OR XOR NOT Type de donnes BOOL BOOL BOOL BOOL

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-9

Par exemple :
Utilisez ce format Exemple Pour cette situation
pointBOOL

Ecrivez IF photoeye THEN...

Si "photoeye" est un point BOOL et votre spcification indique : Si "photoeye_1" est active, alors Si "photoeye" est un point BOOL et votre spcification indique : Si "photoeye" est dsactive, alors Si "photoeye" est un point BOOL, "temp" un point DINT et si votre spcification indique : Si "photoeye" est active et "temp" infrieure 100, alors Si "photoeye" est un point BOOL, "temp" un point DINT et si votre spcification indique : Si "photoeye" est active ou "temp" infrieure 100, alors 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 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.

NOT pointBOOL

IF NOT photoeye THEN...

expression1 & expression2

IF photoeye & (temp<100) THEN...

expression1 OR expression2

IF photoeye OR (temp<100) THEN...

expression1 XOR expression2

IF photoeye1 XOR photoeye2 THEN...

pointBOOL := expression1 & expression2

open := photoeye1 & photoeye2;

Utilisation d'oprateurs sur bits


Les oprateurs sur bits traitent les bits d'une valeur partir de deux valeurs.
Pour ET sur bits OU sur bits OU exclusif sur bits complment sur bits Utilisez cet oprateur &, AND OR XOR NOT Type de donnes optimal DINT DINT DINT DINT

Par exemple :
Utilisez ce format Exemple Pour cette situation valeur1 oprateur valeur2 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" Ecrivez 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Opration () fonction () ** (ngation) NOT *, /, MOD +, - (soustraction) <, <=, >, >= =, <> &, AND XOR OR

Instructions

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 excuter une action si ou lorsque des conditions particulires se produisent slectionner l'action excuter en fonction d'une valeur numrique excuter une action un certain nombre de fois avant l'excution d'une autre action continuer l'excution d'une action tant que certaines conditions sont vraies continuer l'excution d'une action jusqu' ce qu'une condition soit vraie

Les instructions de test peuvent tre programmes seules ou imbriques dans d'autres instructions de test.
Utilisez cette instruction de test IF...THEN CASE...OF FOR...DO WHILE...DO REPEAT...UNTIL Disponible dans ces langages texte structur texte structur texte structur texte structur texte structur Voir page C-12 C-15 C-17 C-20 C-23

Publication 1756-RM003F-FR-P - Mai 2002

C-12

Programmation en texte structur

IF...THEN (SI... ALORS)


Oprandes :

Utilisez l'instruction de test IFTHEN pour excuter une action si ou lorsque des conditions particulires se produisent.

Texte structur
IF expression_boolenne THEN <instruction>; END_IF;

Oprande expression_ boolenne

Type BOOL

Format point expression

Entrez un point ou une expression boolenne qui donne une valeur boolenne (expression boolenne)

Description : La syntaxe est la suivante :


IF expression_boolenne1 THEN <instruction >;
instructions excuter lorsque expression_boolenne1 est vraie

. . .
facultatif

ELSIF expression_boolenne2 THEN <instruction>;


instructions excuter lorsque expression_boolenne2 est vraie

. . .
facultatif

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 excuter une action si ou lorsque des conditions sont vraies Et ne rien faire si les conditions sont fausses Utilisez cette instruction de test IFTHEN IFTHENELSIF IFTHENELSIFELSE

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

Exemple 1 : IFTHEN
Si vous voulez ceci SI rejette > 3 alors convoyeur = dsactiv (0) alarme = active (1) Entrez ce texte structur IF rejects > 3 THEN conveyor := 0; alarm := 1; END_IF;

Exemple 2 : IFTHENELSE
Si vous voulez ceci Si contact de direction du convoyeur = avant (1) alors voyant = teint Sinon voyant = allum Entrez ce texte structur IF conveyor_direction THEN 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 Si dtecteur de niveau bas sucre = bas (activ) et dtecteur de niveau haut sucre = pas haut (activ) alors vanne d'entre = ouverte (active) Entrez ce texte structur IF Sugar.Low & Sugar.High THEN 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 Si temprature du rservoir > 100 alors pompe = lente Si temprature de rservoir > 200 alors pompe = rapide Sinon pompe = arrte ELSE pump.fast :=0; pump.slow :=0; pump.off :=1; END_IF; Entrez ce texte structur IF tank.temp > 200 THEN pump.fast :=1; pump.slow :=0; pump.off :=0; ELSIF tank.temp > 100 THEN pump.fast :=0; pump.slow :=1; pump.off :=0;

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-15

CASE...OF (EN FONCTION... DE)


Oprandes :

Utilisez CASE pour dterminer ce qu'il faut faire en fonction d'une valeur numrique.

Texte structur
CASE expression_numrique OF slecteur1: instruction; slecteurN: instruction; ELSE instruction; END_CASE; slecteur

Oprande
expression_ numrique

Type SINT INT DINT REAL SINT INT DINT REAL

Format point expression

Entrez un point ou une expression qui donne un nombre (expression numrique)

immdiat

le mme type que


expression_numrique

IMPORTANT

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 slecteur1 : <instruction >; . . . <instruction >;
instructions excuter lorsque expression_numrique = slecteur1

indiquez autant de valeurs de slecteur alternatives (chemins) que ncessaire

slecteur2 :

. . .
slecteur3 : <instruction >;

instructions excuter lorsque expression_numrique = slecteur2

. . .
ELSE <instruction >;

instructions excuter lorsque expression_numrique = slecteur3

facultatif

. . .
END_CASE;

instructions excuter lorsque expression_numrique n'importe quel slecteur

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 une valeur plusieurs valeurs diffrentes Entrez valeur: instruction 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 Si numro de recette = 1 alors Ingrdient A sortie 1 = ouvert (1) Ingrdient B sortie 4 = ouvert (1) Si numro de recette = 2 ou 3 alors Ingrdient A sortie 4 = ouvert (1) Ingrdient B sortie 2 = ouvert (1) Si numro de recette = 4, 5, 6 ou 7, alors Ingrdient A sortie 4 = ouverte (1) Ingrdient B sortie 2 = ouverte (1) Si numro de recette = 8, 11, 12 ou 13, alors Ingrdient A sortie 1 = ouverte (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; 8,11-13 Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; 4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1; 2,3:

Entrez ce texte structur


CASE recipe_number OF 1: Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;

[:=] 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

C-17

FORDO (POUR... FAIRE)


Oprandes :

Utilisez la boucle FORDO pour excuter une action un certain nombre de fois avant l'excution d'une autre action.

Texte structur
FOR comptage:= valeur_initiale TO valeur_finale BY incrment DO <instruction>; END_FOR;

Oprande comptage

Type SINT INT DINT

Format point

Description point pour le stockage de la position de comptage pendant l'excution de FORDO doit donner un nombre dfinit la valeur initiale du comptage dfinit la valeur finale du comptage, qui indique quand sortir de la boucle (facultatif) valeur d'incrmentation du comptage chaque passage dans la boucle Si vous n'indiquez pas d'incrment, le comptage s'effectue de 1 en 1.

valeur_ini SINT tiale INT DINT valeur_fin SINT ale INT DINT incrment SINT INT DINT

point expression immdiat point expression immdiat point expression immdiat

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 DO <instruction>; IF expression_boolenne THEN EXIT;

Si vous n'indiquez pas d'incrment, la boucle est incrmente de 1 en 1.

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 ? non instruction 1 instruction 2 instruction 3 instruction 4 reste du sous-programme oui Excute x fois ? non instruction 1 instruction 2 instruction 3 instruction 4 Sortir ? non reste du sous-programme oui

oui

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 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. Entrez ce texte structur For subscript:=0 to 31 by 1 do array[subscript] := 0; End_for;

Publication 1756-RM003F-FR-P - Mai 2002

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)


Oprandes :

Utilisez la boucle WHILEDO pour poursuivre l'excution d'une action tant que certaines conditions sont vraies.

Texte structur
WHILE expression_boolenne DO <instruction>; END_WHILE;

Oprande expression_ boolenne

Type BOOL

Format point expression

Entrez un point ou une expression boolenne qui donne une valeur boolenne

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>; IF expression_boolenne2 THEN
facultatif instructions excuter tant que expression_boolenne1 est vraie

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, telles qu'une instruction de test IF...THEN, pour conditionner une instruction de sortie (EXIT).

END_WHILE;

Publication 1756-RM003F-FR-P - Mai 2002

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 vraie instruction 1 instruction 2 instruction 3 instruction 4 fausse expression boolenne vraie instruction 1 instruction 2 instruction 3 instruction 4 Sortir ? reste du sous-programme non reste du sous-programme fausse

oui

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 La boucle WHILE...DO value d'abord ses conditions. Si les conditions sont vraies, l'automate excute les instructions de la boucle. 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. Entrez ce texte structur pos := 0; 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 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. Entrez ce texte structur element_number := 0; 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;

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-23

REPEATUNTIL (REPETER... JUSQU'A)


Oprandes :

Utilisez la boucle REPEATUNTIL pour poursuivre l'excution d'une action jusqu' ce que les conditions soient vraies.

Texte structur
REPEAT <instruction>; UNTIL expression_boolenne END_REPEAT;

Oprande expression_ boolenne

Type BOOL

Format point expression

Entrez un point ou une expression boolenne qui donne une valeur boolenne (expression boolenne)

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 :


REPEAT <instruction>; IF expression_boolenne2 THEN
facultatif instructions excuter tant que expression_boolenne1 est fausse

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 fausse expression boolenne reste du sous-programme fausse reste du sous-programme vraie instruction 1 instruction 2 instruction 3 instruction 4 Sortir ? non vraie

oui

Tant que expression_boolenne est fausse, l'automate excute uniquement les instructions de la boucle REPEATUNTIL.

Pour arrter la boucle avant que les conditions ne soient fausses, utilisez une instruction de sortie (EXIT).

Exemple 1 :
Si vous voulez ceci La boucle REPEAT...UNTIL excute les instructions du test, puis dtermine si les conditions sont vraies avant d'excuter de nouveau les instructions. 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. Entrez ce texte structur pos := -1; REPEAT pos := pos + 2; UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue)) end_repeat;

Publication 1756-RM003F-FR-P - Mai 2002

Programmation en texte structur

C-25

Exemple 2 :
Si vous voulez ceci 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. Entrez ce texte structur 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 sur une seule ligne la fin d'une ligne de texte structur Utilisez l'un de ces formats //commentaire (*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 //commentaire Exemple 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 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

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

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 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

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

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 [ctrl-A] SOH [ctrl-B] STX [ctrl-C] ETX [ctrl-D] EOT [ctrl-E] ENQ [ctrl-F] ACK [ctrl-G] BEL [ctrl-H] BS [ctrl-I] HT [ctrl-J] LF [ctrl-K] VT [ctrl-L] FF [ctrl-M] CR [ctrl-N] SO [ctrl-O] SI [ctrl-P] DLE [ctrl-Q] DC1 [ctrl-R] DC2 [ctrl-S] DC3 [ctrl-T] DC4 [ctrl-U] NAK [ctrl-V] SYN [ctrl-W] ETB [ctrl-X] CAN [ctrl-Y] EM [ctrl-Z] SUB ctrl-[ ESC [ctrl-\] FS ctrl-] GS [ctrl-^] RS [ctrl-_] US ESPACE ! # $ % Dc. Hex. $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $l ($0A) $0B $0C $r ($0D) $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E $1F $20 $21 $22 $23 $24 $25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Caractre & ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K Dc. Hex. 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F $30 $31 $32 $33 $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F $40 $41 $42 $43 $44 $45 $46 $47 $48 $49 $4A $4B Caractre L M N O P Q R S T U V W X Y Z [ \ ] ^ _ a b c d e f g h i j k l m n o p q Dc. Hex. 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 $4C $4D $4E $4F $50 $51 $52 $53 $54 $55 $56 $57 $58 $59 $5A $5B $5C $5D $5E $5F $60 $61 $62 $63 $64 $65 $66 $67 $68 $69 $6A $6B $6C $6D $6E $6F $70 $71 Caractre r s t u v w x y z { | } ~ DEL Dc. Hex. 114 115 116 117 118 119 120 121 122 123 124 125 126 127 $72 $73 $74 $75 $76 $77 $78 $79 $7A $7B $7C $7D $7E $7F

[ctrl-@] NUL 0

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.

Você também pode gostar