Académique Documents
Professionnel Documents
Culture Documents
1756 Rm003f FR P Jeux D'instruction Avril2002
1756 Rm003f FR P Jeux D'instruction Avril2002
Logix5000 - Jeu
d'instructions
1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx,
PowerFlex 700S
Manuel de rfrence
Informations importantes
destines l'utilisateur
!
IMPORTANT
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
Internet
Etats-Unis/
Canada
+1.440.646.5800
Hors Etats-Unis/
Canada
Notes :
Introduction
Modifications
Voir le chapitre
10
10
Notes :
Utilisez cette section pour trouver des informations sur les instructions
Logix (les instructions grises sont disponibles dans d'autres manuels).
Cette section indique galement quels langages de programmation
sont disponibles pour les instructions.
Si le tableau indique
un numro de page
ce manuel
Instruction
Emplacement
Langages
Instruction
Emplacement
Langages
ABL
16-5
logique relais
texte structur
AVE
7-36
logique relais
AWA
16-23
ABS
5-29
logique relais
texte structur
bloc fonctionnel
logique relais
texte structur
AWT
16-27
logique relais
texte structur
ACB
16-8
logique relais
texte structur
BAND
6-34
texte structur
bloc fonctionnel
ACL
16-10
logique relais
texte structur
BNOT
6-42
texte structur
bloc fonctionnel
ACOS
13-10
texte structur
BOR
6-37
ACS
13-10
logique relais
bloc fonctionnel
texte structur
bloc fonctionnel
BRK
11-4
logique relais
ADD
5-6
logique relais
texte structur
bloc fonctionnel
BSL
8-2
logique relais
BSR
8-5
logique relais
AFI
10-22
logique relais
BTD
6-11
logique relais
AHL
16-12
logique relais
texte structur
BTDT
6-14
texte structur
bloc fonctionnel
ALM
une commande
de procd
texte structur
bloc fonctionnel
3-2
logique relais
texte structur
AND
6-22
logique relais
texte structur
bloc fonctionnel
3-2
logique relais
texte structur
ARD
16-16
logique relais
texte structur
BXOR
6-40
texte structur
bloc fonctionnel
ARL
16-19
logique relais
texte structur
CLR
6-17
logique relais
texte structur
ASIN
13-8
texte structur
CMP
4-2
logique relais
ASN
13-8
logique relais
bloc fonctionnel
CONCAT
17-3
logique relais
texte structur
ATAN
13-12
texte structur
COP
7-26
logique relais
texte structur
ATN
13-12
logique relais
bloc fonctionnel
Instruction
Emplacement
Langages
Instruction
Emplacement
Langages
COS
13-4
logique relais
texte structur
bloc fonctionnel
FIND
17-7
logique relais
texte structur
FLL
7-32
logique relais
CPS
7-26
logique relais
texte structur
FOR
11-2
logique relais
CPT
5-2
logique relais
FRD
15-9
logique relais
bloc fonctionnel
CTD
2-25
logique relais
FSC
7-18
logique relais
CTU
2-22
logique relais
GEQ
4-11
CTUD
2-29
texte structur
bloc fonctionnel
logique relais
texte structur
bloc fonctionnel
D2SD
une commande
de procd
texte structur
bloc fonctionnel
GRT
4-15
D3SD
une commande
de procd
texte structur
bloc fonctionnel
logique relais
texte structur
bloc fonctionnel
GSV
3-30
DDT
12-9
logique relais
logique relais
texte structur
DEDT
une commande
de procd
texte structur
bloc fonctionnel
HLL
une commande
de procd
texte structur
bloc fonctionnel
DEG
15-2
logique relais
texte structur
bloc fonctionnel
HPF
une commande
de procd
texte structur
bloc fonctionnel
INSERT
17-9
logique relais
texte structur
logique relais
texte structur
INTG
une commande
de procd
texte structur
bloc fonctionnel
une commande
de procd
texte structur
bloc fonctionnel
JKFF
une commande
de procd
texte structur
bloc fonctionnel
une commande
de procd
texte structur
bloc fonctionnel
JMP
10-2
logique relais
DIV
5-15
logique relais
texte structur
bloc fonctionnel
JSR
10-4
logique relais
texte structur
bloc fonctionnel
DTOS
18-7
logique relais
texte structur
JXR
10-13
logique relais
LBL
10-2
logique relais
DTR
12-16
logique relais
LDL2
EOT
10-24
logique relais
texte structur
une commande
de procd
texte structur
bloc fonctionnel
LDLG
EQU
4-7
logique relais
texte structur
bloc fonctionnel
une commande
de procd
texte structur
bloc fonctionnel
LEQ
4-19
logique relais
texte structur
bloc fonctionnel
LES
4-23
logique relais
texte structur
bloc fonctionnel
LFL
8-20
logique relais
LFU
8-26
logique relais
LIM
4-27
logique relais
bloc fonctionnel
DELETE
DERV
DFF
17-5
ESEL
une commande
de procd
texte structur
bloc fonctionnel
FAL
7-7
logique relais
FBC
12-2
logique relais
FFL
8-8
logique relais
FFU
8-14
logique relais
FGEN
une commande
de procd
texte structur
bloc fonctionnel
Instruction
Emplacement
Langages
Instruction
Emplacement
Langages
LN
14-2
logique relais
texte structur
bloc fonctionnel
MCD
une commande
de mouvement
logique relais
texte structur
MCR
10-18
logique relais
LOG
14-4
logique relais
texte structur
bloc fonctionnel
MDF
une commande
de mouvement
logique relais
texte structur
LOWER
18-13
logique relais
texte structur
MDO
une commande
de mouvement
logique relais
texte structur
LPF
une commande
de procd
texte structur
bloc fonctionnel
MDOC
une commande
de mouvement
logique relais
texte structur
MAAT
une commande
de mouvement
logique relais
texte structur
MDR
une commande
de mouvement
logique relais
texte structur
MAFR
une commande
de mouvement
logique relais
texte structur
MDW
une commande
de mouvement
logique relais
texte structur
MAG
une commande
de mouvement
logique relais
texte structur
MEQ
4-33
logique relais
texte structur
bloc fonctionnel
MAH
une commande
de mouvement
logique relais
texte structur
MGS
une commande
de mouvement
logique relais
texte structur
MAHD
une commande
de mouvement
logique relais
texte structur
MGSD
une commande
de mouvement
logique relais
texte structur
MAJ
une commande
de mouvement
logique relais
texte structur
MGSP
une commande
de mouvement
logique relais
texte structur
MAM
une commande
de mouvement
logique relais
texte structur
MGSR
une commande
de mouvement
logique relais
texte structur
MAOC
une commande
de mouvement
logique relais
texte structur
MID
17-11
logique relais
texte structur
MAPC
une commande
de mouvement
logique relais
texte structur
MINC
une commande
de procd
texte structur
bloc fonctionnel
MAR
une commande
de mouvement
logique relais
texte structur
MOD
5-19
MAS
une commande
de mouvement
logique relais
texte structur
logique relais
texte structur
bloc fonctionnel
MOV
6-3
logique relais
MASD
une commande
de mouvement
logique relais
texte structur
MRAT
une commande
de mouvement
logique relais
texte structur
MASR
une commande
de mouvement
logique relais
texte structur
MRHD
une commande
de mouvement
logique relais
texte structur
MATC
une commande
de mouvement
logique relais
texte structur
MRP
une commande
de mouvement
logique relais
texte structur
MAVE
une commande
de procd
texte structur
bloc fonctionnel
MSF
une commande
de mouvement
logique relais
texte structur
MAW
une commande
de mouvement
logique relais
texte structur
MSG
3-2
logique relais
texte structur
MAXC
une commande
de procd
texte structur
bloc fonctionnel
MSO
une commande
de mouvement
logique relais
texte structur
MCCP
une commande
de mouvement
logique relais
texte structur
MSTD
une commande
de procd
texte structur
bloc fonctionnel
Instruction
Emplacement
Langages
Instruction
Emplacement
Langages
MUL
5-12
logique relais
texte structur
bloc fonctionnel
POSP
une commande
de procd
texte structur
bloc fonctionnel
RAD
15-4
MUX
une commande
de procd
bloc fonctionnel
logique relais
texte structur
bloc fonctionnel
MVM
6-5
logique relais
RES
2-33
logique relais
MVMT
6-8
texte structur
bloc fonctionnel
RESD
une commande
de procd
texte structur
bloc fonctionnel
NEG
5-26
logique relais
texte structur
bloc fonctionnel
RET
10-4 et 11-5
logique relais
texte structur
bloc fonctionnel
NEQ
4-38
logique relais
texte structur
bloc fonctionnel
RLIM
une commande
de procd
texte structur
bloc fonctionnel
RMPS
NOP
10-23
logique relais
une commande
de procd
texte structur
bloc fonctionnel
NOT
6-31
logique relais
texte structur
bloc fonctionnel
RTO
2-9
logique relais
RTOR
2-19
texte structur
bloc fonctionnel
RTOS
18-9
logique relais
texte structur
SBR
10-4
logique relais
texte structur
bloc fonctionnel
SCL
une commande
de procd
texte structur
bloc fonctionnel
NTCH
une commande
de procd
texte structur
bloc fonctionnel
ONS
1-11
logique relais
OR
6-25
logique relais
texte structur
bloc fonctionnel
OSF
1-16
logique relais
OSFI
1-20
texte structur
bloc fonctionnel
SCRV
une commande
de procd
texte structur
bloc fonctionnel
OSR
1-14
logique relais
SEL
bloc fonctionnel
OSRI
1-18
texte structur
bloc fonctionnel
une commande
de procd
SETD
une commande
de procd
texte structur
bloc fonctionnel
SFP
10-26
logique relais
texte structur
OTE
1-6
logique relais
OTL
1-7
logique relais
OTU
1-9
logique relais
SFR
10-28
PI
une commande
de procd
texte structur
bloc fonctionnel
logique relais
texte structur
SIN
13-2
PID
12-19
logique relais
texte structur
logique relais
texte structur
bloc fonctionnel
PIDE
une commande
de procd
texte structur
bloc fonctionnel
SIZE
7-52
logique relais
texte structur
PMUL
une commande
de procd
texte structur
bloc fonctionnel
SNEG
une commande
de procd
texte structur
bloc fonctionnel
Instruction
Emplacement
Langages
Instruction
Emplacement
Langages
SOC
une commande
de procd
texte structur
bloc fonctionnel
UID
10-20
logique relais
texte structur
SQI
9-2
logique relais
UIE
10-20
SQL
9-10
logique relais
logique relais
texte structur
SQO
9-6
logique relais
UPDN
une commande
de procd
texte structur
bloc fonctionnel
SQR
5-23
logique relais
bloc fonctionnel
UPPER
18-11
logique relais
texte structur
SQRT
5-23
texte structur
XIC
1-2
logique relais
SRT
7-41
logique relais
texte structur
XIO
1-4
logique relais
SRTP
une commande
de procd
texte structur
bloc fonctionnel
XOR
6-28
logique relais
texte structur
bloc fonctionnel
SSUM
une commande
de procd
texte structur
bloc fonctionnel
XPY
14-6
SSV
3-30
logique relais
texte structur
logique relais
texte structur
bloc fonctionnel
STD
7-46
logique relais
STOD
18-3
logique relais
texte structur
STOR
18-5
logique relais
texte structur
SUB
5-9
logique relais
texte structur
bloc fonctionnel
SWPB
6-18
logique relais
texte structur
TAN
13-6
logique relais
texte structur
bloc fonctionnel
TND
10-16
logique relais
TOD
15-6
logique relais
bloc fonctionnel
TOF
2-5
logique relais
TOFR
2-16
texte structur
bloc fonctionnel
TON
2-2
logique relais
TONR
2-13
texte structur
bloc fonctionnel
TOT
une commande
de procd
texte structur
bloc fonctionnel
TRN
15-11
logique relais
bloc fonctionnel
TRUNC
15-11
texte structur
Notes :
Prface
Introduction
Tche/Objet
Documents
Prface
Objet de ce manuel
Cette section
Nom de l'instruction
identifie l'instruction
dtermine si l'instruction est une instruction d'entre ou de sortie
Oprandes
Structure de l'instruction
Description
Conditions d'erreur
Excution
Exemple
texte structur
bloc fonctionnel
Prface
Informations communes
toutes les instructions
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
Indique que
activer
effacer
instruction dentre
tat d'entre
de la ligne
instruction de sortie
tat de sortie
de la ligne
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).
Description
pr-scrutation
La pr-scrutation des sous-programmes de blocs fonctionnels est la mme que pour les sous-programmes
en logique relais. La seule diffrence rside dans le paramtre EnableIn de chaque instruction de bloc
fonctionnel, qui est effac pendant la pr-scrutation.
premire scrutation de
l'instruction
La premire scrutation de l'instruction est la premire excution d'une instruction aprs la pr-scrutation.
L'automate utilise la premire scrutation de l'instruction pour lire les entres en cours et dterminer l'tat
appropri dans lequel se mettre.
premire excution de
l'instruction
La premire excution de l'instruction est la premire excution d'une instruction avec une nouvelle valeur
de structure de donnes. L'automate utilise la premire excution de l'instruction pour gnrer des
coefficients et d'autres enregistrements de donnes qui ne changent pas pour un bloc fonctionnel aprs le
chargement initial.
Prface
IMPORTANT
Prface
Notes :
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1-6
1-7
1-9
1-11
1-14
1-16
1-18
1-20
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Temporisateur l'enclenchement (TON) . . . . . . . . .
Temporisateur au dclenchement (TOF) . . . . . . . . .
Temporisateur rmanent (RTO) . . . . . . . . . . . . . . . .
Temporisateur l'enclenchement avec RAZ (TONR).
Temporisateur au dclenchement avec RAZ (TOFR) .
Temporisateur rmanent avec RAZ (RTOR) . . . . . . .
Comptage incrmental (CTU) . . . . . . . . . . . . . . . . .
Comptage dcrmental (CTD) . . . . . . . . . . . . . . . . .
Comptage incrmental/dcrmental (CTUD) . . . . . .
Remise zro (RES) . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2-1
2-2
2-5
2-9
2-13
2-16
2-19
2-22
2-25
2-29
2-33
Chapitre 2
Instructions de temporisation
et de comptage
(TON, TOF, RTO, TONR, TOFR,
RTOR, CTU, CTD, CTUD, RES)
Chapitre 3
Instructions d'entre/de sortie Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Message (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
(MSG, GSV, SSV)
Codes d'erreur MSG . . . . . . . . . . . . . . . . . . . . . . . . .
Codes d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . .
Codes d'erreur tendus . . . . . . . . . . . . . . . . . . . .
Codes d'erreur PLC et SLC (.ERR) . . . . . . . . . . . . .
Codes d'erreur de bloc-transfert . . . . . . . . . . . . . .
Spcification de la configuration . . . . . . . . . . . . . . . .
Spcification des messages de lecture et d'criture
du fichier de donnes CIP . . . . . . . . . . . . . . . . . .
Reconfiguration d'un module d'E/S. . . . . . . . . . . .
Dfinition des messages CIP gnriques . . . . . . . .
Dfinition des messages PLC-5 . . . . . . . . . . . . . . .
Dfinition des messages SLC . . . . . . . . . . . . . . . .
Dfinition des messages de blocs-transferts . . . . . .
Dfinition des messages PLC-3 . . . . . . . . . . . . . . .
Dfinition des messages PLC-2 . . . . . . . . . . . . . . .
Exemples de configuration MSG . . . . . . . . . . . . . . . .
Dfinition de la communication. . . . . . . . . . . . . . . . .
Dfinition d'un chemin . . . . . . . . . . . . . . . . . . . .
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3-8
3-8
3-9
3-11
3-12
3-13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3-14
3-14
3-16
3-17
3-18
3-19
3-20
3-21
3-22
3-23
3-23
viii
. . . . . 3-27
. . . . . 3-28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3-30
3-32
3-32
3-33
3-35
3-36
3-39
3-40
3-42
3-43
3-44
3-45
3-45
3-47
3-47
3-49
3-49
. . . . . 3-50
Chapitre 4
Instructions de comparaison
(CMP, EQU, GEQ, GRT, LEQ,
LES, LIM, MEQ, NEQ)
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparaison (CMP) . . . . . . . . . . . . . . . . . . . . . . .
Expressions CMP . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations
Utilisation de chanes dans une expression . . . .
Egal (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Suprieur ou gal (GEQ) . . . . . . . . . . . . . . . . . .
Suprieur (GRT) . . . . . . . . . . . . . . . . . . . . . . . . .
Infrieur ou gal (LEQ). . . . . . . . . . . . . . . . . . . .
Infrieur (LES) . . . . . . . . . . . . . . . . . . . . . . . . . .
Test sur limites (LIM). . . . . . . . . . . . . . . . . . . . . . .
Egalit avec masque (MEQ). . . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . . .
Diffrent de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4-1
4-2
4-4
4-4
4-4
4-5
4-6
4-7
4-11
4-15
4-19
4-23
4-27
4-33
4-34
4-38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5-1
5-2
5-4
5-4
5-4
Chapitre 5
Instructions de calcul/
mathmatiques
(CPT, ADD, SUB, MUL, DIV,
MOD, SQR, SQRT, NEG, ABS)
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calcul (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations
Addition (ADD) . . . .
Soustraction (SUB) . .
Multiplication (MUL) .
Division (DIV) . . . . .
Modulo (MOD) . . . . .
Racine carre (SQR) .
Ngation (NEG) . . . .
Valeur absolue (ABS)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5-6
5-9
5-12
5-15
5-19
5-23
5-26
5-29
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transfert (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . .
Transfert avec masque (MVM) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . . .
Transfert avec masque et cible (MVMT) . . . . . . . . .
Distribution d'un champ de bits (BTD) . . . . . . . . .
Distribution d'un champ de bits avec cible (BTDT).
Effacer (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Permutation d'octets (SWPB) . . . . . . . . . . . . . . . . .
ET sur bits (AND) . . . . . . . . . . . . . . . . . . . . . . . . .
OU sur bits (OR). . . . . . . . . . . . . . . . . . . . . . . . . .
OU exclusif sur bits (XOR) . . . . . . . . . . . . . . . . . .
COMPLEMENT sur bits (NOT) . . . . . . . . . . . . . . . .
ET boolen (BAND) . . . . . . . . . . . . . . . . . . . . . . .
OU boolen (BOR) . . . . . . . . . . . . . . . . . . . . . . . .
OU exclusif boolen (BXOR). . . . . . . . . . . . . . . . .
COMPLEMENT boolen (BNOT) . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6-1
6-3
6-5
6-6
6-8
6-11
6-14
6-17
6-18
6-22
6-25
6-28
6-31
6-34
6-37
6-40
6-42
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slection du mode de fonctionnement . . . . . . . . . . . . . . .
Mode Tout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode Numrique. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mode Incrmental . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fichier arithmtique et logique (FAL) . . . . . . . . . . . . . . . .
Expressions FAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations . . . . .
Recherche et comparaison de fichiers (FSC) . . . . . . . . . . .
Expressions FSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Oprateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatage des expressions. . . . . . . . . . . . . . . . . . . . .
Dfinition de l'ordre d'excution des oprations . . . . .
Utilisation de chanes dans une expression . . . . . . . . .
Copie de fichier (COP) Copie de fichier synchrone (CPS) .
Remplissage de fichier (FLL) . . . . . . . . . . . . . . . . . . . . . .
Moyenne (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7-1
7-2
7-2
7-3
7-5
7-7
7-16
7-16
7-17
7-17
7-18
7-22
7-23
7-23
7-24
7-25
7-26
7-32
7-36
Chapitre 6
Instructions de transfert/
logiques
(MOV, MVM, BTD, MVMT,
BTDT, CLR, SWPB, AND, OR,
XOR, NOT, BAND, BOR, BXOR,
BNOT)
Chapitre 7
Instructions sur tableau
(fichier)/
Instructions diverses
(FAL, FSC, COP, CPS, FLL, AVE,
SRT, STD, SIZE)
Chapitre 8
Instructions sur tableau
(fichier)/dcalage
(BSL, BSR, FFL, FFU, LFL, LFU)
Introduction . . . . . . . . . . . . . . . .
Dcalage binaire gauche (BSL) .
Dcalage binaire droite (BSR) . .
Chargement FIFO (FFL). . . . . . . .
Dchargement FIFO (FFU) . . . . .
Chargement LIFO (LFL) . . . . . . . .
Dchargement LIFO (LFU). . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8-1
8-2
8-5
8-8
8-14
8-20
8-26
Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
Entre squenceur (SQI) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate
Utilisation de SQI sans SQO . . . . . . . . . . .
Sortie squenceur (SQO) . . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate
Utilisation de SQI avec SQO. . . . . . . . . . .
Remise zro de la position de SQO . . . .
Chargement squenceur (SQL) . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9-1
9-2
9-3
9-5
9-6
9-7
9-9
9-9
9-10
Chapitre 9
Instructions squenceur
(SQI, SQO, SQL)
Chapitre 10
Instructions de commande de
programme
(JMP, LBL, JSR, RET, SBR, JXR,
TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR)
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers tiquette (JMP)
Etiquette (LBL) . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers sous-programme (JSR)
Sous-programme (SBR)
Retour (RET). . . . . . . . . . . . . . . . . . . . . . . . . .
Saut vers sous-programme externe (JXR) . . . . .
Fin temporaire (TND) . . . . . . . . . . . . . . . . . . .
Relais de contrle matre (MCR). . . . . . . . . . . .
Dsactivation de l'interruption utilisateur (UID)
Activation d'interruption utilisateur (UIE) . . . . .
Toujours faux (AFI). . . . . . . . . . . . . . . . . . . . .
Pas d'opration (NOP) . . . . . . . . . . . . . . . . . .
Fin de transition (EOT) . . . . . . . . . . . . . . . . . .
Pause SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . .
Positionnement SFC (SFR) . . . . . . . . . . . . . . . .
. . . . . . . . . 10-1
. . . . . . . . . 10-2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 10-4
10-13
10-16
10-18
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10-20
10-22
10-23
10-24
10-26
10-28
Chapitre 11
Instruction pour/d'interruption Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1
(FOR, FOR...DO, BRK, EXIT, RET) Pour (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
Interruption (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4
Retour (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5
Publication 1756-RM003F-FR-P - Mai 2002
xi
Chapitre 12
Instructions spciales
(FBC, DDT, DTR, PID)
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparaison des bits de fichier (FBC) . . . . . . . . .
Slection du mode de recherche. . . . . . . . . . .
Dtection par diagnostic (DDT) . . . . . . . . . . . . . .
Slection du mode de recherche. . . . . . . . . . .
Transition de donnes (DTR). . . . . . . . . . . . . . . .
Entre d'une valeur de masque immdiate . . .
Proportionnel, intgral et driv (PID) . . . . . . . . .
Configuration d'une instruction PID . . . . . . . . . . .
Spcification des rglages. . . . . . . . . . . . . . . .
Dfinition de la configuration . . . . . . . . . . . . .
Dfinition des alarmes . . . . . . . . . . . . . . . . . .
Dfinition de la mise l'chelle . . . . . . . . . . .
Utilisation des instructions PID . . . . . . . . . . . . . .
Anti-saturation de l'action intgrale et transfert
sans -coup de manuel auto . . . . . . . . . . . .
Temporisation de l'instruction PID . . . . . . . . .
Redmarrage sans -coups . . . . . . . . . . . . . . .
Lissage de la drive . . . . . . . . . . . . . . . . . . .
Configuration de la zone morte . . . . . . . . . . .
Utilisation de la limite de sortie . . . . . . . . . . .
Anticipation de vitesse ou dcalage de sortie .
Mises de boucles en cascade . . . . . . . . . . . . .
Contrle de ratio . . . . . . . . . . . . . . . . . . . . . .
Thorie PID . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Processus PID . . . . . . . . . . . . . . . . . . . . . . . .
Processus PID avec boucles matre/esclave . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 12-1
. 12-2
. 12-3
. 12-9
12-11
12-16
12-16
12-19
12-23
12-24
12-24
12-25
12-25
12-26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12-28
12-29
12-32
12-33
12-33
12-34
12-34
12-35
12-35
12-37
12-37
12-37
Chapitre 13
Instructions trigonomtriques
(SIN, COS, TAN, ASN, ASIN,
ACS, ACOS, ATN, ATAN)
Introduction . . . . . . .
Sinus (SIN) . . . . . . . .
Cosinus (COS) . . . . .
Tangente (TAN) . . . .
Sinus d'arc (ASN) . . .
Cosinus d'arc (ACS). .
Tangente d'arc (ATN)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 13-1
. 13-2
. 13-4
. 13-6
. 13-8
13-10
13-12
Introduction . . . . . . . . . . .
Logarithme naturel (LN) . .
Logarithme dcimal (LOG)
X la puissance Y (XPY) .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapitre 14
Instructions mathmatiques
volues
(LN, LOG, XPY)
14-1
14-2
14-4
14-6
xii
Chapitre 15
Instructions de conversion
mathmatique
(DEG, RAD, TOD, FRD, TRN,
TRUNC)
Introduction . . . . . . . . . . . . . . . . . .
Degrs (DEG) . . . . . . . . . . . . . . . . .
Radians (RAD) . . . . . . . . . . . . . . . .
Conversion en DCB (TOD) . . . . . . .
Conversion en nombre entier (FRD)
Troncation (TRN) . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 15-1
. 15-2
. 15-4
. 15-6
. 15-9
15-11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 16-1
. 16-2
. 16-4
. 16-4
. 16-5
. 16-8
16-10
16-12
16-16
16-19
16-23
16-27
Introduction . . . . . . . . . . . . . . . . . . . .
Types de donnes chane. . . . . . . .
Concatnation de chanes (CONCAT). .
Effacement dans une chane (DELETE)
Recherche de chane (FIND) . . . . . . . .
Insrer chane (INSERT) . . . . . . . . . . .
Copie dans une chane (MID) . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 17-1
. 17-2
. 17-3
. 17-5
. 17-7
. 17-9
17-11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 18-1
. 18-2
. 18-3
. 18-5
. 18-7
. 18-9
18-11
18-13
Chapitre 16
Instructions port srie ASCII
(ABL, ACB, ACL, AHL, ARD,
ARL, AWA, AWT)
Introduction . . . . . . . . . . . . . . . . . .
Excution de l'instruction . . . . . .
Codes d'erreur ASCII . . . . . . . . .
Types de donnes chane. . . . . .
Test ASCII du buffer (ABL) . . . . . . .
Caractres ASCII dans buffer (ACB) .
Effacement buffer ASCII (ACL). . . . .
Lignes d'change ASCII (AHL) . . . . .
Lecture ASCII (ARD) . . . . . . . . . . . .
Ligne de lecture ASCII (ARL) . . . . . .
Ajout d'criture ASCII (AWA). . . . . .
Ecriture ASCII (AWT) . . . . . . . . . . .
Chapitre 17
Instructions de chane ASCII
(CONCAT, DELETE, FIND,
INSERT, MID)
Chapitre 18
Instructions de conversion
ASCII
(STOD, STOR, DTOS, RTOS,
UPPER, LOWER)
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) . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
xiv
Chapitre
Introduction
Si vous voulez
Voir page
XIC
logique relais
texte structur(1)
1-2
XIO
logique relais
texte structur(1)
1-4
activer un bit
OTE
logique relais
texte structur(1)
1-6
OTL
logique relais
texte structur(1)
1-7
OTU
logique relais
texte structur(1)
1-9
ONS
logique relais
texte structur(1)
1-11
OSR
logique relais
1-14
OSF
logique relais
1-16
OSRI
texte structur
bloc fonctionnel
1-18
OSFI
texte structur
bloc fonctionnel
1-20
(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.
1-2
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de donnes
BOOL
point
bit tester
Texte structur
Il n'y a pas d'instruction XIC en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS).
IF data_bit THEN
<instruction>;
END_IF;
pendant la pr-scrutation
examine le bit de
donnes
bit de donnes = 0
l'tat de sortie de la
ligne est rgl sur faux
bit de donnes = 1
pendant la post-scrutation
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-3
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;
1-4
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de donnes
BOOL
point
bit tester
Texte structur
Il n'y a pas d'instruction XIO en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS).
IF NOT data_bit THEN
<instruction>;
END_IF;
pendant la pr-scrutation
examine le bit de
donnes
bit de donnes = 0
l'tat de sortie de la
ligne est rgl sur vrai
bit de donnes = 1
pendant la post-scrutation
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-5
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;
1-6
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de donnes
BOOL
point
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;
pendant la pr-scrutation
pendant la post-scrutation
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;
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-7
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de donnes
BOOL
point
bit activer
Texte structur
Il n'y a pas d'instruction OTL en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS) et une affectation.
IF expression_boolenne THEN
data_bit := 1;
END_IF;
pendant la pr-scrutation
pendant la post-scrutation
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;
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Dverrouillage de sortie
(OTU)
1-9
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de donnes
BOOL
point
bit effacer
Texte structur
Il n'y a pas d'instruction OTU en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant une instruction de test IF...THEN
(SI...ALORS) et une affectation.
IF expression_boolenne THEN
data_bit := 0;
END_IF;
pendant la pr-scrutation
pendant la post-scrutation
1-10
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texte structur
IF expression_boolenne THEN
light_2 := 0;
END_IF;
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-11
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de
stockage
BOOL
point
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;
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.
1-12
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Excution :
Condition
pendant la pr-scrutation
examine le bit de
stockage
bit de stockage = 0
bit de stockage = 1
pendant la post-scrutation
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-13
Logique relais
Texte structur
IF limit_switch_1 AND NOT storage_1 THEN
sum := sum + 1;
END_IF;
storage_1 := limit_switch_1;
1-14
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de
stockage
BOOL
point
bit de sortie
BOOL
point
bit activer
Description : Lorsqu'elle est active et que le bit de stockage est effac, l'instruction
OSR active le bit de sortie. Lorsqu'elle est active et que le bit de
stockage est activ, ou lorsqu'elle est dsactive, l'instruction OSR
efface le bit de sortie.
bit de stockage
bit de sortie
l'instruction est
excute
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-15
Excution :
Condition
pendant la pr-scrutation
examine le bit de
stockage
bit de stockage = 0
bit de stockage = 1
pendant la post-scrutation
1-16
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
Oprandes de logique relais
Oprande
Type
Format
Description
bit de
stockage
BOOL
point
bit de sortie
BOOL
point
bit activer
tat d'entre de la
ligne
bit de stockage
bit de sortie
l'instruction est
excute
l'instruction est
rinitialise pendant la
scrutation suivante
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-17
Excution :
Condition
pendant la pr-scrutation
examine le bit de
stockage
bit de stockage = 0
bit de stockage = 1
pendant la post-scrutation
1-18
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
OSRI(OSRI_tag);
Texte structur
Oprande
Type
Format
Description
point OSRI
FBD_ONESHOT
structure
structure OSRI
Bloc fonctionnel
Oprande
Type
Format
Description
point OSRI
FBD_ONESHOT
structure
structure OSRI
Structure FBD_ONESHOT
Paramtre d'entre
Type de donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
InputBit
BOOL
Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSR.
Effac par dfaut.
Paramtre de sortie
Type de donnes
Description
EnableOut
BOOL
OutputBit
BOOL
Bit de sortie
InputBit
InputBitn-1
OutputBit
l'instruction est
excute
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-19
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
pendant la premire
excution de l'instruction
pendant la post-scrutation
Aucune.
Aucune.
Texte structur
OSRI_01.InputBit := limit_switch1;
OSRI(OSRI_01);
State := OSRI_01.OutputBit;
Bloc fonctionnel
1-20
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Oprandes :
OSFI(OSFI_tag);
Texte structur
Oprande
Type
Format
Description
point OSFI
FBD_ONESHOT
structure
structure OSFI
Bloc fonctionnel
Oprande
Type
Format
Description
point OSFI
FBD_ONESHOT
structure
structure OSFI
Structure FBD_ONESHOT
Paramtre d'entre
Type de donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
InputBit
BOOL
Bit d'entre. Ceci est quivalent l'tat de la ligne pour l'instruction logique relais OSF.
Effac par dfaut.
Paramtre de sortie
Type de donnes
Description
EnableOut
BOOL
OutputBit
BOOL
bit de sortie
InputBit n-1
OutputBit
l'instruction est
excute
40047
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
1-21
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
pendant la premire
excution de l'instruction
pendant la post-scrutation
Aucune.
Aucune.
Texte structur
OSFI_01.InputBit := limit_switch1;
OSFI(OSFI_01);
Output_state := OSFI_01.OutputBit;
Bloc fonctionnel
1-22
Instructions sur bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Notes :
Chapitre
Introduction
Si vous voulez
Voir page
TON
logique relais
2-2
TOF
logique relais
2-5
cumuler du temps
RTO
logique relais
2-9
TONR
texte structur
bloc fonctionnel
2-13
TOFR
texte structur
bloc fonctionnel
2-16
RTOR
texte structur
bloc fonctionnel
2-19
CTU
logique relais
2-22
CTD
logique relais
2-25
CTUD
texte structur
bloc fonctionnel
2-29
RES
logique relais
2-33
2-2
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Temporisateur
l'enclenchement (TON)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Temporisateur
TIMER
point
structure de temporisateur
Prslection
DINT
immdiat
Accumulateur
DINT
immdiat
Structure TIMER
Mnmonique
Type de donnes
Description
.EN
BOOL
.TT
BOOL
.DN
BOOL
.PRE
DINT
La valeur prdtermine dfinit la valeur (par units d'1 ms) que la valeur cumule doit
atteindre avant que l'instruction n'active le bit .DN.
.ACC
DINT
La valeur cumule dfinit le nombre de millisecondes qui se sont coules depuis l'activation
de l'instruction TON.
16649
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-3
Type du dfaut
Code du dfaut
.PRE < 0
34
.ACC < 0
34
Excution :
Condition
pendant la pr-scrutation
bit .DN = 1
bit .DN = 0
bit .EN = 0
bit .EN = 1
.ACC .PRE
examine .ACC
la valeur .ACC
passe zro
oui
pendant la post-scrutation
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.
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Temporisateur au
dclenchement (TOF)
2-5
Oprandes :
Logique relais
Oprande
Type
Format
Description
Temporisateur
TIMER
point
structure de temporisateur
Prslection
DINT
immdiat
Accumulateur
DINT
immdiat
Structure TIMER
Mnmonique
Type de donnes
Description
.EN
BOOL
.TT
BOOL
.DN
BOOL
.PRE
DINT
La valeur prdtermine dfinit la valeur (par units d'1 ms) que la valeur cumule doit
atteindre avant que l'instruction n'efface le bit .DN.
.ACC
DINT
2-6
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
16650
Type du dfaut
Code du dfaut
.PRE < 0
34
.ACC < 0
34
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-7
Excution :
Condition
pendant la pr-scrutation
bit .DN = 0
bit .DN = 1
bit .EN = 1
bit .EN = 0
.ACC .PRE
examine .ACC
la valeur .ACC
passe zro
oui
pendant la post-scrutation
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.
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Temporisateur rmanent
(RTO)
2-9
Oprandes :
Logique relais
Oprande
Type
Format
Description
Temporisateur
TIMER
point
structure de temporisateur
Prslection
DINT
immdiat
Accumulateur
DINT
immdiat
Structure TIMER
Mnmonique
Type de donnes
Description
.EN
BOOL
.TT
BOOL
.DN
BOOL
.PRE
DINT
La valeur prdtermine dfinit la valeur (par units d'1 ms ) que la valeur cumule doit
atteindre avant que l'instruction n'active le bit .DN.
.ACC
DINT
La valeur cumule dfinit le nombre de millisecondes qui se sont coules depuis l'activation
de l'instruction RTO.
2-10
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
prslection
16651
Type du dfaut
Code du dfaut
.PRE < 0
34
.ACC < 0
34
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-11
Excution :
Condition
pendant la pr-scrutation
bit .DN = 1
bit .DN = 0
bit .EN = 0
bit .EN = 1
examine .ACC
.ACC .PRE
la valeur .ACC
passe zro
oui
pendant la post-scrutation
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).
2-12
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Temporisateur
l'enclenchement avec RAZ
(TONR)
2-13
Oprandes :
TONR(TONR_tag);
Texte structur
Variable
Type
Format
Description
point TONR
FBD_TIMER
structure
structure TONR
Bloc fonctionnel
Oprande
Type
Format
Description
point TONR
FBD_TIMER
structure
structure TONR
Structure FBD_TIMER
Paramtre d'entre
Type de donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
TimerEnable
BOOL
PRE
DINT
Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit
atteindre avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction
active le bit appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.
Remise zro
BOOL
Description
EnableOut
BOOL
ACC
BOOL
EN
BOOL
TT
BOOL
DN
BOOL
Status
DINT
InstructFault
(Status.0)
BOOL
L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui
s'est pass.
PresetInv (Status.1)
BOOL
2-14
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
le temporisateur n'a
pas atteint la valeur
.PRE
16649
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
pendant la premire
excution de l'instruction
remise zro
pendant la post-scrutation
Aucune.
Aucune.
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
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);
Texte structur
Variable
Type
Format
Description
point TOFR
FBD_TIMER
structure
structure TOFR
Type
Format
Description
point TOFR
FBD_TIMER
structure
structure TOFR
Structure FBD_TIMER
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
TimerEnable
BOOL
PRE
DINT
Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit
atteindre avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction
active le bit appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.
Remise zro
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
ACC
BOOL
EN
BOOL
TT
BOOL
DN
BOOL
Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale
la valeur prslectionne.
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Paramtre d'entre
Type de
donnes
Description
Status
DINT
2-17
L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui s'est
pass.
PresetInv (Status.1)
BOOL
16650
2-18
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Excution :
Condition
pendant la
pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de
l'instruction
pendant la premire
EN, TT et DN sont effacs.
excution de l'instruction la valeur ACC est rgle sur PRE.
EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas
actualises.
remise zro
pendant la
post-scrutation
Aucune.
Aucune.
Texte structur
TOFR_01.Preset := 500
TOFR_01.Reset := reset;
TOFR_O1.TimerEnable := limit_switch1;
TOFR(TOFR_01);
timer_state2 := TOFR_01.DN;
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-19
Bloc fonctionnel
2-20
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Temporisateur rmanent
avec RAZ (RTOR)
Oprandes :
RTOR(RTOR_tag);
Texte structur
Variable
Type
Format
Description
point RTOR
FBD_TIMER
structure
structure RTOR
Type
Format
Description
point RTOR
FBD_TIMER
structure
structure RTOR
Structure FBD_TIMER
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
TimerEnable
BOOL
PRE
DINT
Valeur prslectionne du temporisateur. Valeur, en incrments d'1 ms, que ACC doit atteindre
avant que la temporisation ne soit termine. Si elle est incorrecte, l'instruction active le bit
appropri dans Status et la temporisation n'a pas lieu.
Valeurs correctes = 0 nombre entier positif maximum.
Remise zro
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
ACC
DINT
Temps cumul en millisecondes. Cette valeur est retenue mme quand l'entre TimerEnable est
efface, ainsi ce bloc agit diffremment du bloc TONR.
EN
BOOL
TT
BOOL
Sortie de temporisation en cours. Lorsqu'elle est active, une opration de temporisation est en
cours.
DN
BOOL
Sortie de temporisation termine. Indique quand la valeur cumule est suprieure ou gale la
valeur prslectionne.
Status
DINT
L'instruction a dtect une des erreurs d'excution suivantes. Il ne s'agit pas d'une erreur
automate mineure ou majeure. Vrifiez les bits d'tat restants pour dterminer ce qui s'est pass.
PresetInv (Status.1)
BOOL
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-21
remise zro
prslection
16651
2-22
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Excution :
Condition
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
pendant la premire
excution de l'instruction
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.
remise zro
pendant la post-scrutation
Aucune.
Aucune.
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
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Comptage incrmental
(CTU)
2-23
Oprandes :
Logique relais
Oprande
Type
Format
Description
Compteur
COUNTER
point
structure de compteur
Prslection
DINT
immdiat
Accumulateur
DINT
immdiat
Structure COUNTER
Mnmonique
Type de donnes
Description
.CU
BOOL
Le bit d'activation de comptage incrmental indique que l'instruction CTU est active.
.DN
BOOL
.OV
BOOL
.UN
BOOL
.PRE
DINT
La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que
l'instruction n'active le bit .DN.
.ACC
DINT
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
prslection
2-24
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-25
Excution :
Condition
pendant la pr-scrutation
Le bit .CU est activ pour empcher une incrmentation incorrecte lors de la premire
scrutation de programme.
L'tat de sortie de la ligne est rgl sur faux.
bit .CU = 0
oui
non
bit .CU = 1
bit .UN = 1
examine le bit .UN
bit .UN = 0
bit .UN = 0
bit .OV = 0
bit .OV = 1
examine .ACC
.ACC .PRE
fin
pendant la post-scrutation
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.
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Comptage dcrmental
(CTD)
2-27
Oprandes :
Logique relais
Oprande
Type
Format
Description
Compteur
COUNTER
point
structure de compteur
Prslection
DINT
immdiat
Accumulateur
DINT
immdiat
Structure COUNTER
Mnmonique
Type de donnes
Description
.CD
BOOL
Le bit d'activation de comptage dcrmental indique que l'instruction CTD est active.
.DN
BOOL
.OV
BOOL
.UN
BOOL
.PRE
DINT
La valeur prdtermine dfinit la valeur que la valeur cumule doit atteindre avant que
l'instruction n'active le bit .DN.
.ACC
DINT
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
prslection
16637
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-29
Excution :
Condition
pendant la pr-scrutation
Le bit .CD est activ pour empcher une diminution incorrecte lors de la premire
scrutation de programme.
L'tat de sortie de la ligne est rgl sur faux.
bit .CD = 0
oui
la valeur .ACC
passe zro
non
bit .CD = 1
bit .OV = 1
examine le bit .OV
bit .OV = 0
bit .UN = 0
bit .OV = 0
bit .OV = 1
examine .ACC
.ACC .PRE
fin
pendant la post-scrutation
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.
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Comptage
incrmental/dcrmental
(CTUD)
2-31
Oprandes :
CTUD(CTUD_tag);
Texte structur
Variable
Type
Format
Description
point CTUD
FBD_COUNTER
structure
structure CTUD
Bloc fonctionnel
Oprande
Type
Format
Description
point CTUD
FBD_COUNTER
structure
structure CTUD
Structure FBD_COUNTER
Paramtre
d'entre
Type de
donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
CUEnable
BOOL
Activation de comptage incrmental. Lorsque l'entre passe d'efface active, la valeur cumule
augmente de un.
Effac par dfaut.
CDEnable
BOOL
Activation de comptage dcrmental. Lorsque l'entre passe d'efface active, la valeur cumule
diminue de un.
Effac par dfaut.
PRE
DINT
Valeur de compteur prslectionne. Valeur que la valeur cumule doit atteindre avant l'activation de
DN.
Valeurs correctes = tout nombre entier.
La valeur par dfaut est 0.
Remise zro
BOOL
2-32
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
ACC
DINT
Valeur cumule.
CU
BOOL
CD
BOOL
DN
BOOL
Comptage termin. Activ quand la valeur cumule est suprieure ou gale la valeur
prslectionne.
OV
BOOL
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
prslection
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-33
Comptage dcrmental
CDEnable
prslection
16637
pendant la pr-scrutation
pendant la premire
scrutation de l'instruction
pendant la premire
excution de l'instruction
remise zro
pendant la post-scrutation
Aucune.
Aucune.
2-34
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
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
Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
2-35
Oprandes :
Logique relais
Oprande
Type
Format
Description
structure
TIMER
CONTROL
COUNTER
point
structure rinitialiser
Description : Lorsqu'elle est active, l'instruction RES efface les lments suivants :
Lors de l'utilisation d'une instruction
RES pour une structure
L'instruction efface
TIMER
la valeur .ACC
les bits d'tat de la commande
COUNTER
la valeur .ACC
les bits d'tat de la commande
CONTROL
la valeur .POS
les bits d'tat de la commande
ATTENTION
pendant la pr-scrutation
pendant la post-scrutation
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.
Chapitre
Introduction
Si vous voulez
Voir page
MSG
logique relais
texte structur
3-2
GSV
logique relais
texte structur
3-30
SSV
logique relais
texte structur
3-30
3-2
Message (MSG)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Contrle de message
MESSAGE
point
structure de message
Texte structur
MSG(MessageControl);
Structure MESSAGE
Mnmonique
Type de
donnes
Description
.FLAGS
INT
Le membre .FLAGS permet l'accs aux membres d'tat (bits) via un mot de 16 bits.
Ce bit
est le membre
.EW
.ER
.DN
.ST
.EN
.TO
.EN_CC
Important : la rinitialisation des bits d'tat MSG pendant que MSG est actif peut perturber les
communications.
.ERR
INT
Si le bit .ER est activ, le mot de code d'erreur identifie les codes d'erreur pour l'instruction MSG.
.EXERR
INT
Le mot de code d'erreur tendu donne des informations de code d'erreur supplmentaires pour
certains codes d'erreur.
.REQ_LEN
INT
La longueur requise indique le nombre de mots que l'instruction de message tente de transfrer.
.DN_LEN
INT
.EW
BOOL
Le bit d'activation en attente est activ lorsque l'automate dtecte qu'une demande de message
est entre dans la file d'attente. L'automate rinitialise le bit .EW lorsque le bit .ST est activ.
.ER
BOOL
Le bit d'erreur est activ lorsque l'automate dtecte qu'un transfert a chou. Le bit .ER est
rinitialis au passage de l'tat d'entre de la ligne de faux vrai suivant.
.DN
BOOL
Le bit de fin est activ lorsque la dernire trame du message est transfre avec succs. Le bit
.DN est rinitialis au passage de l'tat d'entre de la ligne de faux vrai suivant.
.ST
BOOL
Le bit de dbut est activ lorsque l'automate commence l'excution de l'instruction MSG. Le bit
.ST est rinitialis lorsque le bit .DN ou le bit .ER est activ.
.EN
BOOL
Le bit d'activation est activ lorsque l'tat d'entre de la ligne passe vrai et reste activ jusqu'
ce que le bit .DN ou le bit .ER soit activ et que l'tat d'entre de la ligne soit faux. Si l'tat
d'entre de la ligne passe faux, mais si le bit .DN et le bit .ER sont effacs, le bit .EN reste
activ.
3-3
Mnmonique
Type de
donnes
Description
.TO
BOOL
Si vous activez le bit .TO manuellement, l'automate arrte de traiter le message et active le bit
.ER.
.EN_CC
BOOL
.ERR_SRC
SINT
Utilis par le logiciel RSLogix 5000 pour indiquer l'erreur de chemin dans la bote de dialogue
Configuration du message.
.DestinationLink
INT
Pour changer le lien destinataire d'un message DH+ ou CIP avec ID source, rglez le membre sur
la valeur requise.
.DestinationNode
INT
Pour changer la station destinataire d'un message DH+ ou CIP avec ID source, rglez le membre
sur la valeur requise.
.SourceLink
INT
Pour changer le lien source d'un message DH+ ou CIP avec ID source, rglez le membre sur la
valeur requise.
.Class
INT
Pour changer le paramtre de classe d'un message gnrique CIP, rglez le membre sur la valeur
requise.
.Attribute
INT
Pour changer le paramtre d'attribut d'un message gnrique CIP, rglez le membre sur la valeur
requise.
.Instance
DINT
Pour changer le paramtre d'occurrence d'un message gnrique CIP, rglez le membre sur la
valeur requise.
.LocalIndex
DINT
Si vous utilisez un astrisque [*] pour dsigner le numro d'lment du tableau local, LocalIndex
fournit le numro d'lment. Pour changer le numro d'lment, rglez ce membre sur la valeur
requise.
Si le message
lment de destination
lment source
.Channel
SINT
Pour envoyer le message par un canal diffrent du module 1756-DHRIO, rglez ce membre sur la
valeur requise. Utilisez le caractre ASCII A ou B.
.Rack
SINT
Pour changer le numro de rack d'un message de bloc-transfert, rglez ce membre sur le numro
de rack requis (octal).
.Group
SINT
Pour changer le numro de groupe d'un message de bloc-transfert, rglez ce membre sur le
numro de groupe requis (octal).
.Slot
SINT
Pour changer le numro d'emplacement d'un message de bloc-transfert, rglez ce membre sur le
numro d'emplacement requis (octal).
.Path
STRING
Si le message
passe par ce
rseau
RIO
octal
ControlNet
dcimal (0-15)
Pour envoyer le message vers un automate diffrent, rglez ce membre sur le nouveau chemin.
Entrez le chemin en valeurs hexadcimales.
N'entrez pas les virgules [,]
Par exemple, pour ce chemin : 1, 0, 2, 42, 1, 3, entrez $01$00$02$2A$01$03.
Pour naviguer jusqu' un quipement et crer automatiquement une partie de la nouvelle chane
ou la nouvelle chane entire, cliquez avec le bouton droit de la souris sur une chane de
caractres et choisissez Go to Message Path Editor.
3-4
Mnmonique
Type de
donnes
Description
.RemoteIndex
DINT
Si vous utilisez un astrisque [*] pour dsigner le numro d'lment du tableau distant,
RemoteIndex fournit le numro d'lment. Pour changer le numro d'lment, rglez ce membre
sur la valeur requise.
.RemoteElement
STRING
Si le message
lment source
lment de destination
Pour indiquer une adresse ou un point diffrent dans l'automate auquel est envoy le message,
rglez ce membre sur la valeur requise. Entrez l'adresse ou le point en caractres ASCII.
Si le message
lment source
lment de destination
.UnconnnectedTimeout
DINT
Dpassement de temps pour les messages non connects. La valeur par dfaut est de
30 secondes.
.ConnectionRate
DINT
.TimeoutMultiplier
SINT
ATTENTION
3-5
bit .EN
bit .EW
bit .ST
Description
Description
Excution :
Condition
pendant la pr-scrutation
Aucune.
3-6
Condition
bit .EN = 1
examine le bit .EN
bit .EN = 0
bit .EW = 1
examine le bit .EW
bit .EW = 0
bit .ST = 1
examine le bit .ST
bit .ST = 0
bit .DN =
examine le bit .DN
bit .DN = 0
bit .ER = 1
bit .ER = 0
examine le bit .ER
oui
commande de
bloc-transfert
non
chemin du module
correct
oui
non
bit .DN = 1
oui
non
connexion du
module tablie
bit .DN = 0
excute la demande de
message
bit .ER = 1
examine le bit .ER
bit .ER = 0
fin
Condition
Condition
Excution de l'instruction
3-7
bit .EN = 1
bit .EN = 0
examine le bit .EN
bit .EW = 1
examine le bit .EW
bit .EW = 1
examine le bit .EW
bit .EW = 0
bit .EW = 0
bit .ST = 1
bit .ST = 1
examine le bit .ST
bit .ST = 0
bit .ST = 0
bit .DN = 1
examine le bit .DN
bit .DN = 0
bit .ER = 1
bit .ER = 0
examine le bit .ER
commande de
bloc-transfert
oui
non
chemin du module
correct
oui
non
oui
non
connexion du
module tablie
fin
pendant la post-scrutation
Aucune.
3-8
Codes d'erreur
Le logiciel RSLogix 5000 n'affiche pas toujours la description
complte.
Code d'erreur (hex)
Description
0001
identique la description
0002
Ressources insuffisantes
identique la description
0003
Valeur incorrecte
identique la description
0004
identique la description
0005
identique la description
0006
identique la description
0007
Connexion perdue
identique la description
0008
identique la description
0009
identique la description
000A
identique la description
000B
L'tat existe dj
identique la description
000C
identique la description
000D
L'objet existe dj
identique la description
000E
identique la description
000F
Permission refuse
identique la description
0010
identique la description
0011
identique la description
0012
Primitive du fragment
identique la description
0013
identique la description
0014
identique la description
0015
Trop de donnes
identique la description
001A
identique la description
001B
identique la description
001C
identique la description
001D
identique la description
001E
identique la description
001F
identique la description
0022
identique la description
0025
Erreur de segment cl
identique la description
0026
identique la description
0027
identique la description
0028
identique la description
Description
0029
identique la description
00D1
erreur inconnue
00FB
erreur inconnue
00FC
erreur inconnue
00FD
erreur inconnue
00FE
Timeout de message
erreur inconnue
00FF
erreur inconnue
3-9
Description
Description
0100
0203
Timeout de connexion
0103
0204
0106
Conflit de proprit
0107
Connexion introuvable
0205
0108
0206
0109
0301
0110
0302
0111
0303
0114
Module incorrect
0305
Correspondance de signature
0115
0311
0116
Rvision incorrecte
0312
0118
0315
011A
0317
3-10
Les codes suivants sont les codes d'erreur tendus pour le code
d'erreur 001F.
Code d'erreur tendu (hex)
Description
0203
Timeout de connexion
Les codes suivants sont les codes d'erreur tendus pour les codes
d'erreur 0004 et 0005.
Code d'erreur tendu (hex)
Description
0000
0001
Les codes suivants sont les codes d'erreur tendus pour le code
d'erreur 00FF.
Code d'erreur
tendu (hex)
Description
Code d'erreur
tendu (hex)
Description
2001
ESE excessif
2108
2002
2018
Rejet de smaphore
2109
201B
210A
201C
Taille incorrecte
210B
2100
Echec de privilge
210E
Echec de la recherche
2101
210F
2102
2110
Ecriture impossible
2103
2111
Lecture impossible
2104
2112
2105
2113
2106
Donnes utilises
2114
2107
3-11
Description
Code
d'erreur
(hex)
Description
1000
F00B
F00C
2000
F00D
3000
F00E
4000
F00F
5000
F010
Pas d'accs
6000
F011
7000
F012
8000
F013
9000
F014
B000
F015
F001
F016
F002
Adresse incomplte
F017
F003
Adresse incorrecte
F004
F018
F005
F019
Etiquette en double
F01A
F01B
F01C
F01D
F006
F007
F008
F009
F00A
3-12
Description
Affichage dans le
logiciel
00D0
Le scrutateur n'a pas reu de rponse de bloc-transfert du module de bloc-transfert dans les
3,5 secondes aprs la demande.
erreur inconnue
00D1
erreur inconnue
00D2
erreur inconnue
00D3
erreur inconnue
00D6
erreur inconnue
00EA
Le scrutateur n'a pas t configur pour communiquer avec le rack qui doit contenir ce module
de bloc-transfert
erreur inconnue
00EB
L'emplacement logique indiqu n'est pas disponible pour la taille de rack donne
erreur inconnue
00EC
Une demande de bloc-transfert est en cours et une rponse est requise avant qu'une autre
demande ne puisse commencer
erreur inconnue
00ED
erreur inconnue
00EE
erreur inconnue
00EF
Le scrutateur n'a pas trouv d'emplacement disponible dans la table des blocs-transferts pour
permettre la demande de bloc-transfert
erreur inconnue
00F0
Le scrutateur a reu une demande de rinitialisation des canaux d'E/S dcentralises alors qu'il erreur inconnue
y avait des blocs-transferts en attente
00F3
erreur inconnue
00F5
erreur inconnue
00F6
erreur inconnue
00F7
erreur inconnue
00F8
erreur inconnue
00F9
Les donnes de bloc-transfert ont t perdues en raison d'un mauvais canal de communication erreur inconnue
00FA
erreur inconnue
00FB
erreur inconnue
00FC
erreur inconnue
00FD
La taille du bloc-transfert plus celle de l'index de la table des donnes de bloc-transfert est
suprieure la taille du fichier de la table des donnes de bloc-transfert
erreur inconnue
Spcification de la
configuration
3-13
Une fois que vous avez entr l'instruction MSG et indiqu la structure
MESSAGE, utilisez l'onglet Configuration de Message dans le logiciel
de programmation pour dfinir les dtails du message.
42976
Voir page
Automate Logix5000
3-14
Reconfiguration du module
3-14
CIP gnrique
3-16
Automate PLC-5
3-17
Module de bloc-transfert
Bloc-transfert lecture
3-18
Bloc-transfert criture
Processeur PLC-3
3-20
3-21
3-14
Indiquez
Si vous slectionnez un type de message de lecture, l'lment source est l'adresse des donnes que
vous voulez lire dans le dispositif cible. Utilisez la syntaxe d'adressage du dispositif cible.
Si vous slectionnez un type de message d'criture, le point source est le premier lment du point
que vous voulez envoyer vers l'quipement cible.
Nombre d'lments
Elment de destination
Le nombre d'lments que vous lisez/crivez dpend du type de donnes que vous utilisez. Un lment
renvoie un bloc de donnes lies. Par exemple, le point timer1 est un lment constitu d'une structure
de contrle de temporisateur.
Si vous slectionnez un type de message de lecture, l'lment de destination est le premier lment
du point dans l'automate Logix5000 o vous voulez stocker les donnes que vous lisez partir de
l'quipement cible.
Si vous slectionnez un type de message d'criture, l'lment de destination est l'adresse de
l'emplacement dans le dispositif cible o vous voulez crire les donnes.
Si vous voulez
Slectionnez
Type de message
Reconfiguration du module
3-15
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];
3-16
Tapez ou slectionnez
Type de message
CIP gnrique
Type de service
Test d'impulsion
Source
tag_name[0]
tag_name[1]
rserv, laisser 0
tag_name[2]
tag_name[3]
tag_name[4]
vrifier le dlai
Destination
laisser en blanc
Type de message
CIP gnrique
Type de service
Rinitialiser le
fusible lectronique
Source
Destination
laisser en blanc
Type de message
CIP gnrique
Type de service
Source
Type de message
CIP gnrique
Type de service
Source
Type de message
CIP gnrique
Type de service
Instance
3-17
Si vous voulez
Tapez ou slectionnez
Type de message
CIP gnrique
Type de service
Instance
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.
INT
REAL
INT
DINT (n'crivez des valeurs DINT sur un automate PLC-5
que si la valeur est 32 768 et 32 767.)
INT
ST
STRING
3-18
REAL
DINT
INT
3-19
Bloc-transfert lecture
Bloc-transfert criture
Indiquez
3-20
Si vous voulez
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.
3-21
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.
3-22
Exemples de configuration
MSG
Chemin de message
Logix5000 Logix5000
point source
array_1[0]
point de destination
array_2[0]
Vous pouvez utiliser un point d'alias pour le point source (dans l'automate Logix5000 d'origine).
Vous ne pouvez pas utiliser un alias pour le point de destination. La destination doit tre un point de base.
Logix5000 PLC-5
Logix5000 SLC
point source
array_1[0]
lment de destination
N7:10
Vous pouvez utiliser un point d'alias pour le point source (dans l'automate Logix5000 d'origine).
Logix5000 PLC-2
point source
array_1[0]
lment de destination
010
Logix5000 Logix5000
point source
array_1[0]
point de destination
array_2[0]
Vous ne pouvez pas utiliser un point d'alias pour le point source. La source doit tre un point de base.
Vous pouvez utiliser un point d'alias pour le point de destination (dans l'automate Logix5000 d'origine).
Logix5000 PLC-5
Logix5000 SLC
lment source
N7:10
point de destination
array_1[0]
Vous pouvez utiliser un point d'alias pour le point de destination (dans l'automate Logix5000 d'origine).
Logix5000 PLC-2
lment source
010
point de destination
array_1[0]
Dfinition de la
communication
3-23
43008
peer_controller
peer_controller
I/O Configuration
peer_controller
3-24
Pour
Est
port
address
le numro de l'emplacement
rseau DF1
rseau ControlNet
rseau DH+
rseau EtherNet/IP
(ex. : 130.130.130.5)
(ex. : 130.130.130.5:24)
(ex. : tanks)
(ex. : tanks:24)
3-25
ControlNet
RIO
EXEMPLE
I/O Configuration
MESSAGE
42042
rseau ControlNet
Chemin : peer_controller
o :
peer_controller est le nom de l'automate qui reoit le message.
3-26
EXEMPLE
I/O Configuration
MESSAGE
interrupteur
Chemin : Local_ENB,2,127.127.127.12
EXEMPLE
Est
Local_ENB
127.127.127.12
I/O Configuration
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.
3-27
Slectionnez
Et indiquez
Automate Logix5000
CIP
DH+
Canal :
Lien source :
Processeur PLC-3
Lien destinataire :
Processeur PLC-2
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
Lien source :
Lien destinataire :
Station destinataire :
RIO
ControlNet
Canal :
Rack
Groupe
Emplacement
Emplacement
3-28
Utilise une
connexion
CIP
CIP
DH+
CIP gnrique
Action
A. Dsactivez la case Connexion cache (Cache Connection).
B. Sautez l'tape 2.
Passez l'tape 2.
3-29
Action
automate
A combien d'automates cet automate envoie-t-il de messages que vous pouvez mettre en cache ?
Si
Action
module de bloc-transfert
Action
Oui
Non
Action
16 quipements
maximum
plus de 16 quipements
Action
Oui
Non
3-30
Oprandes :
Logique relais
Oprande
Type
Format
Description
Nom de la classe
nom
nom de l'objet
Nom de l'occurrence
nom
Nom d'attribut
nom
attribut de l'objet
le type des donnes dpend de l'attribut slectionn
Destination (GSV)
SINT
INT
DINT
REAL
point
Source (SSV)
SINT
INT
DINT
REAL
point
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.
3-31
ATTENTION
Type du dfaut
Code du dfaut
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
3-32
Objets GSV/SSV
ATTENTION
AXIS
CONTROLLER
3-32
CONTROLLERDEVICE
3-33
CST
3-35
DF1
3-36
FAULTLOG
3-39
MESSAGE
3-40
MODULE
3-42
MOTIONGROUP
3-43
PROGRAM
3-44
ROUTINE
3-45
SERIALPORT
3-45
TASK
3-47
WALLCLOCKTIME
3-47
Type de
donnes
Instruction
Description
TimeSlice
INT
GSV
SSV
3-33
Type de
donnes
Instruction
Description
DeviceName
SINT[33]
GSV
ProductCode
INT
GSV
5550
15
5860
41
5433
42
5434
43
5320
50
5553
51
5555
ProductRev
INT
GSV
SerialNumber
DINT
GSV
3-34
Attribut
Type de
donnes
Instruction
Description
Status
INT
GSV
Type
INT
GSV
Vendor
INT
GSV
3-35
Type de
donnes
Instruction
Description
CurrentStatus
INT
GSV
CurrentValue
DINT[2]
GSV
Bit :
Signification :
non utilis
8-9
00 = station temporelle
01 = station matre temporelle
10 = station de relais temporelle
11 = non utilis
10-15
non utilis
3-36
Type de
donnes
Instruction
Description
ACKTimeout
DINT
GSV
DiagnosticCounters
INT[19]
GSV
offset de mot
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DuplicateDetection
SINT
GSV
EmbeddedResponseEnable
SINT
GSV
ENQTransmitLimit
SINT
GSV
EOTSuppression
SINT
GSV
ErrorDetection
SINT
GSV
3-37
Attribut
Type de
donnes
Instruction
Description
MasterMessageTransmit
SINT
GSV
NAKReceiveLimit
SINT
GSV
NormalPollGroupSize
INT
GSV
PollingMode
SINT
GSV
ReplyMessageWait
DINT
GSV
StationAddress
INT
GSV
SlavePollTimeout
DINT
GSV
Dure (en ms) pendant laquelle l'esclave attend que le matre appelle
avant de dclarer ne pas pouvoir transmettre, parce que le matre est
inactif (esclave uniquement).
Les valeurs correctes vont de 0 32 767. Dlai par intervalles de
20 ms. La valeur par dfaut est de 3000 intervalles (1 minute).
TransmitRetries
SINT
GSV
PendingACKTimeout
DINT
SSV
PendingDuplicateDetection
SINT
SSV
PendingEmbeddedResponse
Enable
SINT
SSV
PendingENQTransmitLimit
SINT
SSV
PendingEOTSuppression
SINT
SSV
PendingErrorDetection
SINT
SSV
PendingNormalPollGroupSize
INT
SSV
PendingMasterMessage
Transmit
SINT
SSV
PendingNAKReceiveLimit
SINT
SSV
PendingPollingMode
SINT
SSV
3-38
Attribut
Type de
donnes
Instruction
Description
PendingReplyMessageWait
DINT
SSV
PendingStationAddress
INT
SSV
PendingSlavePollTimeout
DINT
SSV
PendingTransmitRetries
SINT
SSV
Champ
Valeur
Configuration
Type de message
CIP gnrique
Code de service
0d hex
Type d'objet
a2
Identificateur de l'objet 1
Communication
Attribut de l'objet
laisser en blanc
Source
laisser en blanc
Nombre d'lments
Destination
laisser en blanc
Chemin
chemin de communication
vers soi-mme (1,s o s =
numro d'emplacement de
l'automate)
3-39
Type de donnes
Instruction
Description
MajorEvents
INT
GSV
SSV
MinorEvents
INT
GSV
SSV
MajorFaultBits
DINT
GSV
SSV
MinorFaultBits
DINT
GSV
SSV
3-40
Type de donnes
Instruction
Description
ConnectionPath
SINT[130]
GSV
SSV
ConnectionRate
DINT
GSV
SSV
MessageType
SINT
GSV
SSV
Port
SINT
GSV
SSV
TimeoutMultiplier
SINT
GSV
SSV
UnconnectedTimeout
DINT
GSV
SSV
3-41
Est
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 ConnectionPath
Source
msg_1_path[0]
6
msg_1.EN
/
SSV
Set System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name MessageType
Source
tag_a
0
SSV
Set System Value
Class name
MESSAGE
Instance name
msg_1
Attribute Name MessageType
Source
msg_1_type
2
MSG
Type - CIP Data Table Write
Message Control
msg_1 ...
EN
DN
ER
Texte structur
IF msg_path THEN
GSV(MESSAGE,msg_1,MessageType,msg_1_type);
SSV(MESSAGE,msg_1,MessageType,tag_a);
SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);
SSV(MESSAGE,msg_1,MessageType,msg_1_type);
END_IF;
IF NOT msg_1.EN THEN
MSG(msg_1);
END_IF;
3-42
Type de
donnes
Instruction
Description
EntryStatus
INT
GSV
FaultCode
INT
GSV
FaultInfo
DINT
GSV
ForceStatus
INT
GSV
3-43
Attribut
Type de
donnes
Instruction
Description
Instance
DINT
GSV
LEDStatus
INT
GSV
Mode
INT
GSV
SSV
Type de donnes
Instruction
Description
Instance
DINT
GSV
3-44
Type de donnes
Instruction
Description
DisableFlag
SINT
GSV
SSV
Instance
DINT
GSV
LastScanTime
DINT
GSV
SSV
MajorFaultRecord
DINT[11]
GSV
SSV
Nom :
TimeLow
TimeHigh
Type
Code
Info
MaxScanTime
DINT
GSV
SSV
MinorFaultRecord
DINT[11]
GSV
SSV
Nom :
TimeLow
TimeHigh
Type
Code
Info
SFCRestart
Type de donnes :
DINT
DINT
INT
INT
DINT[8]
INT
Style :
Dcimal
Dcimal
Dcimal
Dcimal
Hexadcimal
GSV
SSV
Description :
32 bits infrieurs de la valeur d'horodatage du dfaut
3 bits suprieurs de la valeur d'horodatage du dfaut
type du dfaut (programme, E/S, etc.)
code unique pour le dfaut (dpend du type du dfaut)
information particulire sur le dfaut (dpend du type et du code du
dfaut)
inutilis (rserv une utilisation future)
3-45
Type de
donnes
Instruction
Description
Instance
DINT
GSV
Type de
donnes
Instruction
Description
BaudRate
DINT
GSV
DataBits
SINT
GSV
Parity
SINT
GSV
Indique la parit.
Valeur :
0
1
2
Signification :
pas de parit (pas de valeur par dfaut)
parit impaire (ASCII uniquement)
parit paire
RTSOffDelay
INT
GSV
RTSSendDelay
INT
GSV
StopBits
SINT
GSV
PendingBaudRate
DINT
SSV
PendingDataBits
SINT
SSV
PendingParity
SINT
SSV
PendingRTSOffDelay
INT
SSV
PendingRTSSendDelay
INT
SSV
PendingStopBits
SINT
SSV
3-46
Champ
Valeur
Configuration
Type de message
CIP gnrique
Code de service
0d hex
Type d'objet
6f hex
Identificateur de l'objet
Attribut de l'objet
laisser en blanc
Source
laisser en blanc
Nombre d'lments
Destination
laisser en blanc
Chemin
Communication
3-47
Type de
donnes
Instruction
Description
Instance
DINT
GSV
LastScanTime
DINT
GSV
SSV
MaxInterval
DINT[2]
GSV
SSV
MaxScanTime
DINT
GSV
SSV
MinInterval
DINT[2]
GSV
SSV
Priority
INT
GSV
Rate
DINT
GSV
StartTime
DINT[2]
GSV
SSV
Watchdog
DINT
GSV
SSV
3-48
Attribut
Type de
donnes
Instruction
Description
CSTOffset
DINT[2]
GSV
SSV
CurrentValue
DINT[2]
GSV
SSV
DateTime
DINT[7]
GSV
SSV
3-49
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);
3-50
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);
Logique relais
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);
3-52
Notes :
Chapitre
Instructions de comparaison
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Introduction
Si vous voulez
Voir page
CMP
logique relais
texte structur(1)
4-2
EQU
logique relais
texte structur(2)
bloc fonctionnel
4-7
GEQ
logique relais
texte structur(1)
bloc fonctionnel
4-11
GRT
logique relais
texte structur(1)
bloc fonctionnel
4-15
LEQ
logique relais
texte structur(1)
bloc fonctionnel
4-19
LES
logique relais
texte structur(1)
bloc fonctionnel
4-23
LIM
logique relais
bloc fonctionnel
texte structur(1)
4-27
MEQ
logique relais
bloc fonctionnel
texte structur(1)
4-33
NEQ
logique relais
texte structur(1)
bloc fonctionnel
4-38
(1)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.
(2)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.
4-2
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Comparaison (CMP)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Expression
SINT
INT
DINT
REAL
STRING
immdiat
point
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;
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.
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-3
Excution :
Condition
pendant la pr-scrutation
fin
pendant la post-scrutation
diffrent de zro
vrai
zro
faux
4-4
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Expressions CMP
Vous programmez les expressions en instructions CMP de la mme
faon que les expressions en instructions FSC. Utilisez les sections
suivantes pour trouver les informations sur les oprateurs, le format et
l'ordre d'opration valables, communs aux deux instructions.
Oprateurs valables
Oprateur
Description
Optimal
Oprateur
Description
Optimal
addition
DINT, REAL
DEG
radians en degrs
DINT, REAL
soustraction/ngation
DINT, REAL
FRD
DINT
multiplication
DINT, REAL
LN
logarithme naturel
REAL
division
DINT, REAL
LOG
logarithme dcimal
REAL
galit
DINT, REAL
MOD
modulo
DINT, REAL
<
infrieur
DINT, REAL
NOT
DINT
<=
infrieur ou gal
DINT, REAL
OR
OU sur bits
DINT
>
suprieur
DINT, REAL
RAD
degrs en radians
DINT, REAL
>=
suprieur ou gal
DINT, REAL
SIN
sinus
REAL
<>
diffrent
DINT, REAL
SQR
racine carre
DINT, REAL
**
exposant (x y)
DINT, REAL
TAN
tangente
REAL
ABS
valeur absolue
DINT, REAL
TOD
DINT
ACS
cosinus d'arc
REAL
TRN
troncation
DINT, REAL
AND
ET sur bits
DINT
XOR
DINT
ASN
sinus d'arc
REAL
ATN
tangente d'arc
REAL
COS
cosinus
REAL
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-5
Utilisez ce format
Exemples
un oprande
oprateur(oprande)
ABS(point_a)
deux oprandes
oprande_a oprateur
oprande_b
point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)
Opration
1.
()
2.
3.
**
4.
(ngation), NOT
5.
*, /, MOD
6.
7.
(soustraction), +
8.
AND
9.
XOR
10.
OR
4-6
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Description
gal
<
infrieur
<=
infrieur ou gal
>
suprieur
>=
suprieur ou gal
<>
diffrent
in
f
ri
e
ur
e
s
u
p
r
ie
ur
e
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Egal (EQU)
4-7
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA = sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point EQU
FBD_COMPARE
structure
structure EQU
4-8
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne de l'instruction EQU
en logique relais.
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-9
Logique relais
Condition
Action
pendant la pr-scrutation
oui
Source A = Source B
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
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
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-11
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA >= sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point GEQ
FBD_COMPARE
structure
structure GEQ
4-12
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais GEQ.
in
f
ri
e
ur
s
u
p
r
ie
ur
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-13
Logique relais
Condition
Action
pendant la pr-scrutation
Source A Source B
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
4-14
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Logique relais
Texte structur
light_b := (value_1 >= value_2);
Bloc fonctionnel
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Suprieur (GRT)
4-15
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA > sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point GRT
FBD_COMPARE
structure
structure GRT
4-16
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais GRT.
in
f
ri
e
ur
s
u
p
r
ie
ur
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-17
Logique relais
Condition
Action
pendant la pr-scrutation
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
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
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-19
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA <= sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point LEQ
FBD_COMPARE
structure
structure LEQ
4-20
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LEQ.
in
f
ri
e
ur
s
u
p
r
ie
ur
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-21
Logique relais
Condition
Action
pendant la pr-scrutation
Source A Source B
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
4-22
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Logique relais
Texte structur
light_2 := (value_1 <= value_2);
Bloc fonctionnel
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Infrieur (LES)
4-23
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA < sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point LES
FBD_COMPARE
structure
structure LES
4-24
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LES.
in
f
ri
e
ur
s
u
p
r
ie
ur
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-25
Logique relais
Condition
Action
pendant la pr-scrutation
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Exemple : Si value_1 est infrieure value_2, light_3 est activ. Si value_1 est
suprieure ou gale value_2, light_3 est effac.
Logique relais
4-26
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texte structur
light_3 := (value_1 < value_2);
Bloc fonctionnel
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-27
Oprandes :
Logique relais
Oprande
Type
Format
Description
Limite
infrieure
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Test
SINT
INT
DINT
REAL
immdiat
point
valeur tester
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Limite
suprieure
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Texte structur
Il n'y a pas d'instruction LIM en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant les instructions suivantes :
IF (LowLimit <= HighLimit AND
(Test >= LowLimit AND Test <= HighLimit)) OR
(LowLimit >= HighLimit AND
(Test <= LowLimit OR Test >= HighLimit)) THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point LIM
FBD_LIMIT
structure
structure LIM
4-28
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_LIMIT
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute comme dcrit dans la section Excution.
Activ par dfaut.
LowLimit
REAL
Test
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais LIM.
HighLimit
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
vrai
faux
vrai
faux
limite suprieure
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-29
Ceci peut tre reprsent comme une ligne numrique circulaire (voir
les diagrammes suivants). L'instruction LIM commence la limite
infrieure (Low Limit) et augmente dans le sens horaire jusqu' la
limite suprieure (High Limit). Toute valeur Test dans la plage de sens
horaire, de la limite infrieure (Low Limit) la limite suprieure (High
Limit), rgle l'tat de sortie de la ligne sur vrai. Toute valeur Test dans
la plage de sens horaire, de la limite suprieure (High Limit) la limite
infrieure (Low Limit), rgle l'tat de sortie de la ligne sur faux.
Limite infrieure Limite suprieure
L'instruction est vraie si la valeur de test est
gale ou en dehors des limites infrieure et
suprieure
+1
+1
limite infrieure
limite suprieure
limite suprieure
(n+1)
+n
n = valeur maximum
limite infrieure
(n+1)
+n
n = valeur maximum
4-30
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Logique relais
Condition
Action
pendant la pr-scrutation
value la limite
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises.
pendant la post-scrutation
Aucune.
Lorsque 0 value 100, light_1 est activ. Si value < 0 ou value >100,
light_1 est effac.
Logique relais
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
4-32
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
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
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-33
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Masque
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Comparer
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Texte structur
Il n'y a pas d'instruction MEQ en texte structur, mais vous pouvez
obtenir le mme rsultat en utilisant les instructions suivantes :
IF (Source AND Mask) = (Compare AND Mask) THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point MEQ
FBD_MASK_EQUAL
structure
structure MEQ
4-34
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Structure FBD_MASK_EQUAL
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute comme dcrit dans la section Excution.
Activ par dfaut.
Source
DINT
Masque
DINT
Comparer
DINT
Valeur de comparaison.
Valeurs correctes = tout nombre entier.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais MEQ.
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-35
Logique relais
Condition
Action
pendant la pr-scrutation
source masque =
comparaison
masque
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
EnableOut est effac, l'instruction ne fait rien et les sorties ne sont pas actualises.
pendant la post-scrutation
Aucune.
4-36
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
value_2
mask_1
mask_1
Valeur masque
value_1
Valeur masque
value_2
Logique relais
Texte structur
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));
Bloc fonctionnel
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-37
value_2
mask_1
mask_1
Valeur masque
value_1
Valeur masque
value_2
Logique relais
Texte structur
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));
Bloc fonctionnel
4-38
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Diffrent de (NEQ)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
STRING
immdiat
point
Source B
SINT
INT
DINT
REAL
STRING
immdiat
point
Texte structur
IF sourceA <> sourceB THEN
<instructions>;
Bloc fonctionnel
Oprande
Type
Format
Description
point NEQ
FBD_COMPARE
structure
structure NEQ
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
4-39
Structure FBD_COMPARE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
BOOL
Rsultat de l'instruction. Ceci est quivalent l'tat de sortie de la ligne pour l'instruction
logique relais NEQ.
in
f
ri
e
ur
s
u
p
r
ie
ur
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
4-40
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Logique relais
Condition
Action
pendant la pr-scrutation
Source A = Source B
oui
non
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
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
4-42
Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Notes :
Chapitre
Instructions de calcul/mathmatiques
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Introduction
Si vous voulez
Voir page
CPT
logique relais
texte structur(1)
5-2
ADD
logique relais
texte structur(2)
bloc fonctionnel
5-6
SUB
logique relais
texte structur(2)
bloc fonctionnel
5-9
MUL
logique relais
texte structur(2)
bloc fonctionnel
5-12
DIV
logique relais
texte structur(2)
bloc fonctionnel
5-15
MOD
logique relais
texte structur(2)
bloc fonctionnel
5-19
SQR
SQRT(3)
logique relais
texte structur
bloc fonctionnel
5-23
NEG
logique relais
texte structur(2)
bloc fonctionnel
5-26
ABS
logique relais
texte structur
bloc fonctionnel
5-29
(1)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.
(2)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.
(3)
5-2
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Calcul (CPT)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Destination
SINT
INT
DINT
REAL
point
Expression
SINT
INT
DINT
REAL
immdiat
point
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;
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-3
Excution :
Condition
pendant la pr-scrutation
pendant la post-scrutation
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.
5-4
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Oprateurs valables
Oprateur
Description
Optimal
Oprateur
Description
Optimal
addition
DINT, REAL
LOG
logarithme dcimal
REAL
soustraction/ngation
DINT, REAL
MOD
modulo
DINT, REAL
multiplication
DINT, REAL
NOT
DINT
division
DINT, REAL
OR
OU sur bits
DINT
**
exposant (x y)
DINT, REAL
RAD
degrs en radians
DINT, REAL
ABS
valeur absolue
DINT, REAL
SIN
sinus
REAL
ACS
cosinus d'arc
REAL
SQR
racine carre
DINT, REAL
AND
ET sur bits
DINT
TAN
tangente
REAL
ASN
sinus d'arc
REAL
TOD
DINT
ATN
tangente d'arc
REAL
TRN
troncation
DINT, REAL
COS
cosinus
REAL
XOR
DINT
DEG
radians en degrs
DINT, REAL
FRD
DINT
LN
logarithme naturel
REAL
Utilisez ce format
Exemples
un oprande
oprateur(oprande)
ABS(point_a)
deux oprandes
oprande_a oprateur
oprande_b
point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-5
Opration
1.
()
2.
ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN
3.
**
4.
(ngation), NOT
5.
*, /, MOD
6.
(soustraction), +
7.
AND
8.
XOR
9.
OR
5-6
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Addition (ADD)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceA + sourceB;
Bloc fonctionnel
Oprande
Type
Format
Description
point ADD
FBD_MATH
structure
structure ADD
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-7
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Rsultat de l'instruction mathmatique. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
5-8
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Logique relais
Texte structur
add_result := float_value_1 + float_value_2;
Bloc fonctionnel
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Soustraction (SUB)
5-9
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceA - sourceB;
Bloc fonctionnel
Oprande
Type
Format
Description
point SUB
FBD_MATH
structure
structure SUB
5-10
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
REAL
SourceB
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-11
Logique relais
Texte structur
subtract_result := float_value_1 - float_value_2;
Bloc fonctionnel
5-12
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Multiplication (MUL)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
immdiat
point
valeur du multiplicande
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B
SINT
INT
DINT
REAL
immdiat
point
valeur du multiplicateur
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceA * sourceB;
Bloc fonctionnel
Oprande
Type
Format
Description
point MUL
FBD_MATH
structure
structure MUL
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-13
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source A
REAL
Valeur du multiplicande.
Valeurs correctes = toute virgule flottante.
Source B
REAL
Valeur du multiplicateur.
Valeurs correctes = toute virgule flottante.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
5-14
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Logique relais
Texte structur
multiply_result := float_value_1 float_value_2;
Bloc fonctionnel
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Division (DIV)
5-15
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
immdiat
point
valeur du dividende
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B
SINT
INT
DINT
REAL
immdiat
point
valeur du diviseur
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceA / sourceB;
Bloc fonctionnel
Oprande
Type
Format
Description
point DIV
FBD_MATH
structure
structure DIV
5-16
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source A
REAL
Valeur du dividende.
Valeurs correctes = toute virgule flottante.
Source B
REAL
Valeur du diviseur.
Valeurs correctes = toute virgule flottante.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
La partie dcimale du
rsultat
est arrondie
Exemple
Source A
DINT
Source B
DINT
Destination
DINT
Source A
REAL
5.0
Source B
DINT
Destination
DINT
Et la destination est un
Et le rsultat est
positif
-1
ngatif
positif
ngatif
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-17
Type du dfaut
Code du dfaut
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
5-18
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
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
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Modulo (MOD)
5-19
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
REAL
immdiat
point
valeur du dividende
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source B
SINT
INT
DINT
REAL
immdiat
point
valeur du diviseur
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceA MOD sourceB;
Bloc fonctionnel
Oprande
Type
Format
Description
point MOD
FBD_MATH
structure
structure MOD
5-20
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source A
REAL
Valeur du dividende.
Valeurs correctes = toute virgule flottante.
Source B
REAL
Valeur du diviseur.
Valeurs correctes = toute virgule flottante.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Et la destination est un
Et le rsultat est
positif
-1
ngatif
positif
ngatif
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-21
Type du dfaut
Code du dfaut
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
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
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-23
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := SQRT(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point SQR
FBD_MATH_ADVANCED
structure
structure SQR
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
5-24
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
La partie dcimale du
rsultat
Exemple
est tronque
Source
DINT
Destination
DINT
Source
REAL
3.0
Destination
DINT
est REAL
est arrondie
Action
pendant la pr-scrutation
Destination =
Source
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-25
Logique relais
Texte structur
sqr_result := SQRT(value_1);
Bloc fonctionnel
5-26
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Ngation (NEG)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
valeur de ngation
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
Utilisez le signe moins comme oprateur dans une expression.
Cette expression change le signe de source et stocke le rsultat
dans dest.
dest := -source;
Bloc fonctionnel
Oprande
Type
Format
Description
point NEG
FBD_MATH_ADVANCED
structure
structure NEG
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Valeur de ngation.
Valeurs correctes = toute virgule flottante.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
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.
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-27
Action
pendant la pr-scrutation
Destination = 0 Source
L'tat de sortie de la ligne est rgl sur vrai.
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
negate_result := -value_1;
5-28
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Bloc fonctionnel
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
5-29
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := ABS(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point ABS
FBD_MATH_ADVANCED
structure
structure ABS
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
5-30
Instructions de calcul/mathmatiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Action
pendant la pr-scrutation
Destination = | Source |
L'tat de sortie de la ligne est rgl sur vrai.
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
Texte structur
value_1_absolute := ABS(value_1);
Bloc fonctionnel
Chapitre
Instructions de transfert/logiques
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT,
BAND, BOR, BXOR, BNOT)
Introduction
Si vous voulez
Voir page
MOV
logique relais
texte structur(1)
6-3
MVM
logique relais
6-5
MVMT
texte structur
bloc fonctionnel
6-8
BTD
logique relais
6-11
BTDT
texte structur
bloc fonctionnel
6-14
CLR
texte structur(1)
logique relais
6-17
logique relais
texte structur
6-18
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.
6-2
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Voir page
AND
&(1)
logique relais
texte structur(2)
bloc fonctionnel
6-22
OR
logique relais
texte structur(2)
bloc fonctionnel
6-25
XOR
logique relais
texte structur(2)
bloc fonctionnel
6-28
NOT
logique relais
texte structur(2)
bloc fonctionnel
6-31
BAND
texte structur(2)
bloc fonctionnel
6-34
BOR
texte structur(2)
bloc fonctionnel
6-37
BXOR
texte structur(2)
bloc fonctionnel
6-40
BNOT
texte structur(2)
bloc fonctionnel
6-42
(1)
(2)
En texte structur, les oprations AND, OR, XOR et NOT peuvent tre sur bits ou logiques.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Transfert (MOV)
6-3
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := source;
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
pendant la post-scrutation
Texte structur
value_2 := value _1;
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-5
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
valeur transfrer
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Masque
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Destination
SINT
INT
DINT
point
Texte structur
dest := (Dest AND NOT (Mask))
OR (Source AND Mask);
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.
6-6
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
pendant la pr-scrutation
L'instruction passe la Source par le masque et copie le rsultat dans la Destination. Les
bits non masqus de la Destination restent inchangs.
L'tat de sortie de la ligne est rgl sur vrai.
pendant la post-scrutation
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);
6-8
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Oprandes :
MVMT(MVMT_tag);
Texte structur
Variable
Type
Format
Description
structure
structure MVMT
Format
Description
structure
structure MVMT
Bloc fonctionnel
Oprande
Type
Structure FBD_MASKED_MOVE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
Source
DINT
Masque
DINT
Masque des bits transfrer de Source Dest. Tous les bits rgls sur un font passer les bits
correspondants de Source dans Dest. Tous les bits rgls sur zro empchent les bits
correspondants de passer de Source dans Dest.
Valeurs correctes = tout nombre entier.
Cible
DINT
Valeur d'entre transfrer dans Dest avant de transfrer les bits de Source travers le
Masque.
Valeurs correctes = tout nombre entier.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat d'une instruction de transfert avec masque. Les indicateurs d'tat arithmtiques
sont activs pour cette sortie.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-9
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
Aucune.
Aucune.
pendant la premire
excution de l'instruction
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Aucune.
6-10
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Exemple :
Cible
Dest
Source
Mask1
Dest
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
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-11
L'instruction BTD copie les bits spcifis de la Source, les place dans
la position approprie et les crit dans la Destination.
Cette instruction existe en texte structur et en bloc fonctionnel
comme instruction BTDT (voir page 6-14).
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Bit source
DINT
immdiat
(0-31 DINT)
(0-15 INT)
(0-7 SINT)
Destination
SINT
INT
DINT
point
Bit
destinataire
DINT
immdiat
(0-31 DINT)
(0-15 INT)
(0-7 SINT)
Longueur
DINT
immdiat
(1-32)
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
pendant la post-scrutation
Exemple 1 : Lorsqu'elle est active, l'instruction BTD transfre les bits dans
value_1.
bit source
bit destination
Les parties grises montrent les bits qui ont chang dans value_1.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-13
bit source
value_1
bit destination
Les parties grises montrent les bits qui ont chang dans value_2.
6-14
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Oprandes :
BTDT(BTDT_tag);
Texte structur
Variable
Type
Format
Description
point BTDT
FBD_BIT_FIELD_DISTRIBUTE
structure
structure BTDT
Bloc fonctionnel
Oprande
Type
Format
Description
point BTDT
FBD_BIT_FIELD_DISTRIBUTE
structure
structure BTDT
Structure FBD_BIT_FIELD_DISTRIBUTE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Bloc fonctionnel :
Si effac, l'instruction n'est pas excute et les sorties ne sont pas actualises.
Si activ, l'instruction est excute.
Activ par dfaut.
Texte structur :
Aucun effet. L'instruction est excute.
Source
DINT
SourceBit
DINT
La position du bit dans Source (le plus petit numro de bit partir duquel commencer le
transfert).
Valeurs correctes = 0 31.
Longueur
DINT
DestBit
DINT
La position du bit dans Dest (le plus petit numro de bit partir duquel commencer copier
des bits).
Valeurs correctes = 0 31.
Cible
DINT
Valeur d'entre transfrer dans Dest avant de transfrer les bits partir de la Source.
Valeurs correctes = tout nombre entier.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'opration de transfert de bit. Les indicateurs d'tat arithmtiques sont activs
pour cette sortie.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-15
pendant la pr-scrutation
Aucune.
Aucune.
pendant la premire
scrutation de l'instruction
Aucune.
Aucune.
pendant la premire
excution de l'instruction
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Aucune.
6-16
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Exemple :
Cible
Dest
DestBit
Source
Dest
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
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Effacer (CLR)
6-17
Oprandes :
Logique relais
Oprande
Type
Format
Description
Destination
SINT
INT
DINT
REAL
point
point effacer
Texte structur
dest := 0;
pendant la pr-scrutation
pendant la post-scrutation
Texte structur :
value := 0;
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 :
Logique relais
Oprande
Type
Format
Entrez
Source
INT
DINT
REAL
point
Mode Ordre
Destination
INT
DINT
REAL
point
Si la source
est
Slectionnez
INT
n'importe quelle
option
DINT
REAL
ABCD DCBA
ABCD CDAB
ABCD BADC
INT
INT
DINT
DINT
DINT
REAL
REAL
Texte structur
SWPB(Source,OrderMode,Dest);
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-19
BA
Nom du point
Valeur
Style
Type
bar_code[0]
AB
ASCII
INT
42969
42968
AB
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
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.
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.
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;
6-22
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
L'instruction AND effectue une opration ET sur bits l'aide des bits
dans Source A et Source B, et place le rsultat dans la Destination.
Pour effectuer un ET logique, voir page 6-34.
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Source B
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par zros.
Destination
SINT
INT
DINT
point
stocke le rsultat
Texte structur
dest := sourceA AND sourceB
Bloc fonctionnel
Oprande
Type
Format
Description
point AND
FBD_LOGICAL
structure
structure AND
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-23
Structure FBD_LOGICAL
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
DINT
SourceB
DINT
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.
Si le bit de
Source B est
Le bit de Destination
est
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.
Action
pendant la pr-scrutation
pendant la post-scrutation
6-24
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Exemple : Lorsqu'elle est active, l'instruction AND effectue une opration ET sur
bits sur SourceA et SourceB, puis stocke le rsultat dans la
Destination.
SourceA
SourceB
Dest
Logique relais
Texte structur :
value_result_and := value_1 AND value_2;
Bloc fonctionnel
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-25
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Source B
SINT
INT
DINT
immdiat
point
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
Bloc fonctionnel
Oprande
Type
Format
Description
point OR
FBD_LOGICAL
structure
structure OR
6-26
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Structure FBD_LOGICAL
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
DINT
SourceB
DINT
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.
Si le bit de
Source B est
Le bit de Destination
est
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.
Action
pendant la pr-scrutation
pendant la post-scrutation
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-27
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
SourceA
SourceB
Dest
Logique relais
Texte structur :
value_result_or := value_1 OR value_2;
Bloc fonctionnel
6-28
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source A
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Source B
SINT
INT
DINT
immdiat
point
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
Bloc fonctionnel
Oprande
Type
Format
Description
point XOR
FBD_LOGICAL
structure
structure XOR
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-29
Structure FBD_LOGICAL
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
SourceA
DINT
SourceB
DINT
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.
Si le bit de
Source B est
Le bit de
Destination est
Si vous mlangez des types d'entiers, l'instruction crit des 0 pour les
bits suprieurs dans des entiers de taille infrieure, pour qu'ils aient la
mme taille que les entiers de grande taille.
Action
pendant la pr-scrutation
pendant la post-scrutation
6-30
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
value_1
value_2
value_result_xor
Logique relais
Texte structur :
value_result_xor := value_1 XOR value_2;
Bloc fonctionnel
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-31
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
valeur de ngation
Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination
SINT
INT
DINT
point
stocke le rsultat
Texte structur
dest := NOT source
Bloc fonctionnel
Oprande
Type
Format
Description
point NOT
FBD_LOGICAL
structure
structure NOT
Structure FBD_LOGICAL
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
DINT
Valeur de ngation.
Valeurs correctes = tout nombre entier.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction. Les indicateurs d'tat arithmtiques sont activs pour cette sortie.
6-32
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
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.
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
value_1
value_result_not
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
6-34
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
ET boolen (BAND)
Oprandes :
Texte structur
IF operandA AND operandB THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point BAND
FBD_BOOLEAN_AND
structure
structure BAND
Structure FBD_BOOLEAN_AND
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
In1
BOOL
In2
BOOL
In3
BOOL
In4
BOOL
In5
BOOL
In6
BOOL
In7
BOOL
In8
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Sortie active.
Out
BOOL
Sortie de l'instruction.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-35
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Si bool_in2 est
Texte structur :
value_result_and := bool_in1 AND bool_in2;
Bloc fonctionnel
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;
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
OU boolen (BOR)
6-37
Oprandes :
Texte structur
IF operandA OR operandB THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point BOR
FBD_BOOLEAN_OR
structure
structure BOR
Structure FBD_BOOLEAN_OR
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
In1
BOOL
In2
BOOL
In3
BOOL
In4
BOOL
In5
BOOL
In6
BOOL
In7
BOOL
In8
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Sortie active.
Out
BOOL
Sortie de l'instruction.
6-38
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
6-39
Si bool_in2 est
Texte structur :
value_result_or := bool_in1 OR bool_in2;
Bloc fonctionnel
Texte structur :
IF bool_in1 OR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;
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 :
Texte structur
IF operandA XOR operandB THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point BXOR
FBD_BOOLEAN_XOR
structure
structure BXOR
Structure FBD_BOOLEAN_XOR
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
In1
BOOL
In2
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Sortie active.
Out
BOOL
Sortie de l'instruction.
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
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Si bool_in2 est
Texte structur :
value_result_xor := bool_in1 XOR bool_in2;
Bloc fonctionnel
Texte structur :
IF bool_in1 XOR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;
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 :
Texte structur
IF NOT operand THEN
<instruction>;
END_IF;
Bloc fonctionnel
Oprande
Type
Format
Description
point BNOT
FBD_BOOLEAN_NOT
structure
structure BNOT
Structure FBD_BOOLEAN_NOT
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
In
BOOL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Sortie active.
Out
BOOL
Sortie de l'instruction.
aucune
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
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
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;
6-44
Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Notes :
Chapitre
Introduction
Si vous voulez
Voir page
FAL
logique relais
texte structur(1)
7-7
FSC
logique relais
7-18
COP
logique relais
texte structur
7-26
CPS
logique relais
texte structur
7-26
FLL
logique relais
texte structur(1)
7-32
AVE
logique relais
texte structur(1)
7-36
SRT
logique relais
texte structur
7-41
STD
logique relais
texte structur(1)
7-46
SIZE
logique relais
texte structur
7-52
(1)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez une autre programmation en texte structur pour obtenir le mme rsultat. Voir la description de
l'instruction.
7-2
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Slection du mode de
fonctionnement
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
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-3
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
7-4
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
IMPORTANT
scrutations multiples
bit .EN
bit .DN
scrutation de l'instruction
opration termine
opration termine
40013
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.
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
bit .EN
bit .DN
40014
scrutation de l'instruction
opration
termine
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.
7-6
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Fichier arithmtique et
logique (FAL)
7-7
Oprandes :
Logique relais
Oprande
Type
Format
Description
Commande
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Mode
DINT
immdiat
Destination
SINT
INT
DINT
REAL
point
Expression
SINT
INT
DINT
REAL
immdiat
point
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;
7-8
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Structure CONTROL
Mnmonique
Type de donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment (.POS = .LEN).
.ER
BOOL
Le bit d'erreur est activ si l'expression gnre un dpassement suprieur (S:V est activ).
L'instruction s'arrte tant que le programme n'a pas remis le bit .ER 0. La valeur .POS contient
la position de l'lment qui produit le dpassement.
.LEN
DINT
La longueur indique le nombre d'lments du tableau sur lesquels l'instruction FAL est excute.
.POS
DINT
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).
Type du dfaut
Code du dfaut
20
21
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-9
Excution :
Condition
pendant la pr-scrutation
bit .DN = 0
bit .DN = 1
le bit .EN est effac
le bit .ER est effac
le bit .DN est effac
la valeur .POS est
efface
mode INC
non
oui
le bit .EN est effac
mode TOUT
non
oui
.LEN < 0 ou
.POS < 0
oui
dfaut majeur
non
.POS = .POS + 1
oui
.LEN = 0
non
.POS = 0
oui
non
non
.POS = .POS - 1
non
oui
mode = .LEN
mode
Numrique
page 7-13
fin
7-10
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
oui
page 7-13
dfaut majeur
mode
Numrique
bit .ER = 0
non
non
bit .DN = 0
bit .ER = 1
examine le bit .DN
.LEN = 0
bit .DN = 1
non
oui
non
mode INC
mode TOUT
oui
oui
mode
TOUT
mode
INC
page 7-12
page 7-11
commun
loop_count =
loop_count - 1
loop_count < 0
non
.POS = .POS + 1
oui
value l'expression
examine S:V
non
oui
le bit .ER est activ
.POS = .POS + 1
.POS = .LEN
non
oui
le bit .DN est activ
le bit .EN est activ
.POS = .POS + 1
fin
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
7-11
bit .EN = 1
examine le bit .EN
bit .EN = 0
bit = 1
examine le
bit interne
.POS = .POS + 1
bit = 0
oui
.POS .LEN
.POS = 0
oui
non
non
.POS = .POS - 1
commun
page 7-10
fin
7-12
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
mode
TOUT
bit .EN = 0
bit = 1
examine le
bit interne
bit = 0
bit .EN = 1
.POS = .POS + 1
oui
.POS .LEN
non
.POS = 0
oui
non
.POS = .POS - 1
commun
page 7-10
fin
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
7-13
bit .EN = 1
examine le bit .EN
bit .EN = 0
.POS = .POS + 1
bit = 1
examine le
bit interne
bit = 0
le bit interne est activ
.POS .LEN
oui
.POS = 0
non
non
mode = .LEN
non
oui
.POS = .POS - 1
.LEN mode
oui
le bit .DN est activ
le bit .EN est activ
fin
mode
loop_count
non
oui
commun
page 7-10
pendant la post-scrutation
7-14
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
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
Expression :
value_1 + value_2
Destination :
array_1[control_1.pos]
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-15
Expression :
array_2[control_2.pos] / array_3[control_2.pos]
Destination :
array_1[control_2.pos]
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
7-16
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Destination :
value_1
Expression :
array_1[control_1.pos] * array_3[control_1.pos]
Expressions FAL
Les expressions en instructions FAL se programment de la mme
faon que les expressions en instructions CPT. Utilisez les sections
suivantes pour trouver les informations sur les oprateurs, le format et
l'ordre d'opration valables, communs aux deux instructions.
Oprateurs valables
Oprateur
Description
Optimal
Oprateur
Description
Optimal
addition
DINT, REAL
LOG
logarithme dcimal
REAL
soustraction/ngation
DINT, REAL
MOD
modulo
DINT, REAL
multiplication
DINT, REAL
NOT
DINT
division
DINT, REAL
OR
OU sur bits
DINT
**
exposant (x y)
DINT, REAL
RAD
degrs en radians
DINT, REAL
ABS
valeur absolue
DINT, REAL
SIN
sinus
REAL
ACS
cosinus d'arc
REAL
SQR
racine carre
DINT, REAL
AND
ET sur bits
DINT
TAN
tangente
REAL
ASN
sinus d'arc
REAL
TOD
DINT
ATN
tangente d'arc
REAL
TRN
troncation
DINT, REAL
COS
cosinus
REAL
XOR
DINT
DEG
radians en degrs
DINT, REAL
FRD
DINT
LN
logarithme naturel
REAL
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-17
Utilisez ce format
Exemples
un oprande
oprateur(oprande)
ABS(point_a)
deux oprandes
oprande_a oprateur
oprande_b
point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)
Opration
1.
()
2.
ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN
3.
**
4.
(ngation), NOT
5.
*, /, MOD
6.
(soustraction), +
7.
AND
8.
XOR
9.
OR
7-18
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Recherche et comparaison
de fichiers (FSC)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Commande
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment
(.POS = .LEN).
.ER
BOOL
.IN
BOOL
Le bit d'inhibition indique que l'instruction FSC a dtect une vraie comparaison. Vous devez
effacer ce bit pour continuer l'opration de recherche.
.FD
BOOL
Le bit trouv indique que l'instruction FSC a dtect une vraie comparaison.
.LEN
DINT
La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.
.POS
DINT
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.
Type du dfaut
Code du dfaut
21
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-19
Excution :
Condition
pendant la pr-scrutation
bit .DN = 0
bit .DN = 1
le bit .EN est effac
le bit .ER est effac
le bit .DN est effac
la valeur .POS est
efface
mode INC
non
oui
le bit .EN est effac
mode TOUT
non
oui
.LEN < 0 ou
.POS < 0
oui
dfaut majeur
non
.POS = .POS + 1
oui
.LEN = 0
non
.POS = 0
oui
non
non
.POS = .POS - 1
non
oui
mode = .LEN
mode
Numrique
l'tat de sortie de la ligne
est rgl sur faux
page 7-13
fin
7-20
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
oui
page 7-13
dfaut majeur
mode
Numrique
bit .ER = 0
non
non
bit .DN = 0
bit .ER = 1
examine le bit .IN
.LEN = 0
non
non
mode INC
mode TOUT
bit .DN = 1
oui
bit .IN = 0
oui
oui
mode
INC
mode
TOUT
page 7-12
page 7-11
commun
bit .DN = 0
loop_count =
loop_count - 1
loop_count < 0
non
.POS = .POS + 1
oui
value la comparaison
correspondance
non
oui
.POS = .POS + 1
.POS = .LEN
non
oui
le bit .DN est activ
le bit .EN est activ
.POS = .POS + 1
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-21
array_1
control_3.pos
array_2
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000001111111111111111
11111111111111110000000000000000
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
MySearchKey
11111111111111110000000000000000
control_3.pos
rfrence
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
11111111111111110000000000000000
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
7-22
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
code
code_table_search.POS
code_table
AFG
SAM
BEH
HUO
SAK
SAM
FQG
CLE
CAK
DET
BWG
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.
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-23
Oprateurs valables
Oprateur
Description
Optimal
Oprateur
Description
Optimal
addition
DINT, REAL
DEG
radians en degrs
DINT, REAL
soustraction/ngation
DINT, REAL
FRD
DINT
multiplication
DINT, REAL
LN
logarithme naturel
REAL
division
DINT, REAL
LOG
logarithme dcimal
REAL
galit
DINT, REAL
MOD
modulo
DINT, REAL
<
infrieur
DINT, REAL
NOT
DINT
<=
infrieur ou gal
DINT, REAL
OR
OU sur bits
DINT
>
suprieur
DINT, REAL
RAD
degrs en radians
DINT, REAL
>=
suprieur ou gal
DINT, REAL
SIN
sinus
REAL
<>
diffrent
DINT, REAL
SQR
racine carre
DINT, REAL
**
exposant (x y)
DINT, REAL
TAN
tangente
REAL
ABS
valeur absolue
DINT, REAL
TOD
DINT
ACS
cosinus d'arc
REAL
TRN
troncation
DINT, REAL
AND
ET sur bits
DINT
XOR
DINT
ASN
sinus d'arc
REAL
ATN
tangente d'arc
REAL
COS
cosinus
REAL
Utilisez ce format
Exemples
un oprande
oprateur(oprande)
ABS(point_a)
deux oprandes
oprande_a oprateur
oprande_b
point_b + 5
point_c AND point_d
(point_e ** 2) MOD
(point_f / point_g)
7-24
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Opration
1.
()
2.
3.
**
4.
(ngation), NOT
5.
*, /, MOD
6.
7.
(soustraction), +
8.
AND
9.
XOR
10.
OR
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-25
Description
gal
<
infrieur
<=
infrieur ou gal
>
suprieur
>=
suprieur ou gal
<>
diffrent
in
f
ri
e
ur
e
s
u
p
r
ie
ur
e
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
7-26
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
chane
structure
point
Destination
SINT
INT
DINT
REAL
chane
structure
point
Longueur
DINT
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.
un point produit
un point consomm
des donnes d'E/S
des donnes qu'une autre
tche peut craser
Et si vous voulez
Slectionnez
CPS
COP
COP
Remarques
Les tches qui tentent
d'interrompre une instruction CPS
sont interrompues tant que
l'instruction n'est pas termine.
Pour estimer la dure d'excution
de l'instruction CPS, voir Systme
ControlLogix - Manuel utilisateur
(publication 1756-UM001).
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-27
7-28
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Excution :
Condition
pendant la pr-scrutation
Aucune.
excution de l'instruction
oui
non
source_address = Source
destination_address =
end_address
oui
non
destination_address =
destination_address + 1
pendant la post-scrutation
Aucune.
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);
Logique relais
Texte structur :
COP(timer_1,array_timer[5],1);
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)
Logique relais
Texte structur :
CPS(Local:0:I.Data[0],input_buffer[0],20);
array_timer[1]
array_timer[2]
array_timer[3]
array_timer[4]
array_timer[9]
array_timer[10]
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-31
Logique relais
Texte structur :
IF S:FS THEN
array_timer[0].pre := 500;
array_timer[0].acc := 0;
COP(array_timer[0],array_timer[1],10);
END_IF;
7-32
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Remplissage de fichier
(FLL)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
lment copier
Important : les oprandes Source et
Destination doivent avoir les mmes types de
donnes, au risque de produire des rsultats
inattendus.
Destination
SINT
INT
DINT
REAL
structure
point
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;
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-33
Et la Destination est
SINT
SINT
INT
INT
DINT
DINT
REAL
REAL
SINT
structure
INT
structure
DINT
structure
REAL
structure
7-34
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Excution :
Condition
pendant la pr-scrutation
oui
non
source_address = Source
destination_address =
end_address
oui
non
destination_address =
destination_address + 1
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-35
Logique relais
Type de donnes
Source (value_1)
Valeur Source
(value_1)
Type de donnes
Destination
(dest_1)
Valeur Destination
(dest_1) aprs FLL
SINT
16#80 (-128)
DINT
DINT
16#1234 5678
SINT
16#78
SINT
16#01
REAL
1.0
REAL
2.0
INT
16#0002
SINT
16#01
TIMER
16#0101 0101
16#0101 0101
16#0101 0101
INT
16#0001
TIMER
16#0001 0001
16#0001 0001
16#0001 0001
DINT
16#0000 0001
TIMER
16#0000 0001
16#0000 0001
16#0000 0001
Texte structur
dest_1 := value_1;
7-36
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Moyenne (AVE)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
SINT
INT
DINT
REAL
point de
tableau
Dimension
variable
DINT
immdiat
(0, 1, 2)
dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination
SINT
INT
DINT
REAL
point
rsultat de l'opration
Commande
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
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;
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-37
Structure CONTROL
Mnmonique
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque l'instruction a t excute sur le dernier lment du tableau
(.POS = .LEN).
.ER
BOOL
.LEN
DINT
La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.
.POS
DINT
Type du dfaut
Code du dfaut
21
20
7-38
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Excution :
Condition
pendant la pr-scrutation
bit .DN = 0
bit .DN = 1
fin
L'instruction AVE calcule la moyenne en additionnant tous les lments indiqus dans le
tableau et en divisant par le nombre d'lments.
En interne, l'instruction utilise une instruction FAL pour calculer la moyenne :
Expression = calcul de moyenne
Mode = TOUT
Pour plus de dtails sur l'excution de l'instruction FAL, voir page 7-9.
pendant la post-scrutation
dimension 0
20
19
18
17
16
15
14
13
12
11
10
+ 14 + 9 + 4- = 46
AVE = 19
----------------------------------------- = 11.5
4
4
dint_ave = 12
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-39
Logique relais
Texte structur
SIZE(array_dint,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;
7-40
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
dimension 0
20
19
18
17
16
15
14
13
12
11
10
+ 4 + 3 + 2 + 1- = 15
AVE = 5
-------------------------------------------- = 3
5
5
dint_ave = 3
Logique relais
Texte structur
SIZE(array_dint,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-41
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
SINT
INT
DINT
REAL
point de
tableau
tableau trier
indique le premier lment du groupe
d'lments trier
n'utilisez pas CONTROL.POS dans l'indice
Dimension
variable
DINT
immdiat
(0, 1, 2)
dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Commande
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Texte structur
SRT(Array,Dimtovary,
Control);
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque les lments indiqus ont t tris.
.ER
BOOL
Le bit d'erreur est activ lorsque .LEN < 0 ou .POS < 0. Ces deux tats entranent un dfaut
majeur.
.LEN
DINT
La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.
.POS
DINT
Description : L'instruction SRT trie un jeu de valeurs dans une dimension (variation
de Dimension) du tableau en ordre croissant.
IMPORTANT
7-42
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Type du dfaut
Code du dfaut
21
20
20
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-43
Excution :
Condition
pendant la pr-scrutation
bit .DN = 0
bit .DN = 1
fin
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
7-44
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Avant
dimension 1
dimension 1
1
s
ice
ind
s
ice
ind
dimension 0
20
19
17
16
15
14
12
11
10
13
18
20
19
18
17
16
15
14
13
12
11
10
dimension 0
Logique relais
Texte structur
control_1.LEN := 4;
control_1.POS := 0;
SRT(int_array[0,2],0,control_1);
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-45
Avant
dimension 1
dimension 1
1
s
ice
ind
s
ice
ind
dimension 0
20
19
18
17
16
15
14
13
12
11
10
20
19
18
17
16
15
14
13
12
11
10
dimension 0
Logique relais
Texte structur
control_1.LEN := 5;
control_1.POS := 0;
SRT(int_array[2,0],1,control_1);
7-46
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
SINT
INT
DINT
REAL
point de
tableau
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Dimension
variable
DINT
immdiat
(0, 1, 2)
dimension utiliser
selon le nombre de dimensions, l'ordre est
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination
REAL
point
rsultat de l'opration
Commande
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
.ER
BOOL
Le bit d'erreur est activ lorsque l'instruction gnre un dpassement suprieur. L'instruction s'arrte
tant que le programme n'a pas remis le bit .ER 0. La position de l'lment qui a provoqu le
dpassement est stocke dans la valeur .POS.
.LEN
DINT
La longueur indique le nombre d'lments du tableau sur lesquels l'instruction est excute.
.POS
DINT
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));
Ecart type =
AVE
]
( start + i )
i = 1
-------------------------------------------------------------------(N 1)
O :
start = indice de variation de dimension de l'oprande du
tableau
xi = lment variable dans le tableau
N = nombre d'lments indiqus dans le tableau
AVE =
x ( start + i )
i = 1
----------------------------------------N
7-48
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
IMPORTANT
Type du dfaut
Code du dfaut
21
20
Excution :
Condition
pendant la pr-scrutation
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condition
7-49
bit .DN = 0
bit .DN = 1
fin
pendant la post-scrutation
dimension 0
+ 11 + 6 + 1- = 34
AVE = 16
----------------------------------------- = 8.5
4
4
2
STD =
20
19
18
17
16
15
14
13
12
11
10
real_std = 6,454972
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));
dimension 0
+ 19 + 18 + 17 + 16- = 90
AVE = 20
----------------------------------------------------------- = 18
5
5
2
STD =
20
19
18
17
16
15
14
13
12
11
10
20 18 + 19 18 + 18 18 + 17 18 + 16 18
----------------------------------------------------------------------------------------------------------------------------------------------------------- = 1.581139
5 1
real_std = 1,581139
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-51
Logique relais
Texte structur
SIZE(dint_array,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));
7-52
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Oprandes :
Logique relais
Oprande
Type
Source
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE
STRING
Dimension
variable
DINT
SIZE
SINT
INT
DINT
REAL
Format
Description
tableau sur lequel l'instruction agit
point
Entrez
premire dimension
deuxime dimension
troisime dimension
Texte structur
SIZE(Source,Dimtovary,Size);
Instructions sur tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
7-53
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
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);
Logique relais
SIZE
Size in Elements
Source string_1.DATA[0]
'$00'
Dim. To Vary
0
Size
string_1_size
82
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);
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);
Chapitre
Introduction
Si vous voulez
Voir page
BSL
logique relais
8-2
BSR
logique relais
8-5
FFL
logique relais
8-8
FFU
logique relais
8-14
LFL
logique relais
8-20
LFU
logique relais
8-26
8-2
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
L'instruction BSL dcale les bits indiqus d'une position vers la gauche
dans le tableau.
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
DINT
point de
tableau
tableau modifier
indique le premier lment du groupe
d'lments
n'utilisez pas CONTROL.POS dans l'indice
Contrle
CONTROL
point
Bit source
BOOL
point
bit dcaler
Longueur
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la
gauche.
.UL
BOOL
Le bit de dchargement est la sortie de l'instruction. Le bit .UL stocke l'tat du bit qui a t
dcal hors de la plage de bits.
.ER
BOOL
.LEN
DINT
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.
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-3
Excution :
Condition
pendant la pr-scrutation
bit .EN = 1
bit .EN = 0
le bit .EN est activ
.LEN = 0
oui
non
.LEN < 0
oui
examine le bit de
source
bit .source = 1
bit .source = 0
non
le bit .UL est activ
dcale le tableau d'une position vers la gauche
bit .UL
tableau
Bit
source
fin
pendant la post-scrutation
8-4
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
array_dint[0]
avant dcalage
0
1
input_1
bit .UL
array_dint[0]
aprs dcalage
31
array_dint[0]
0
1
0
1
input_1
31
array_dint[1]
0
bit .UL
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-5
L'instruction BSR dcale les bits indiqus d'une position vers la droite
dans le tableau.
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
DINT
point de
tableau
tableau modifier
indique l'lment avec lequel commencer le
dcalage
n'utilisez pas CONTROL.POS dans l'indice
Contrle
CONTROL
point
Bit source
BOOL
point
bit dcaler
Longueur
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ pour indiquer que des bits ont t dcals d'une position vers la
droite.
.UL
BOOL
Le bit de dchargement est la sortie de l'instruction. Le bit .UL stocke l'tat du bit qui a t
dcal hors de la plage de bits.
.ER
BOOL
.LEN
DINT
8-6
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Excution :
Condition
pendant la pr-scrutation
bit .EN = 1
bit .EN = 0
le bit .EN est activ
.LEN = 0
oui
non
.LEN < 0
oui
examine le bit de
source
bit .source = 1
bit .source = 0
non
le bit .UL est activ
dcale le tableau d'une position vers la droite
Bit
source
tableau
bit .UL
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-7
array_dint[0]
avant dcalage
bit .UL
input_1
array_dint[0]
aprs dcalage
31
array_dint[0]
0
1
bit .UL
31
array_dint[1]
input_1
8-8
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Oprandes :
Logique relais
Oprande Type
Source
Format
immdiat
SINT
point
INT
DINT
REAL
STRING
STRUCTURE
Description
donnes stocker dans le FIFO
point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE
FIFO modifier
indique le premier lment du FIFO
n'utilisez pas CONTROL.POS dans l'indice
Contrle
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ pour indiquer que le FIFO est plein (.POS = .LEN). Le bit .DN empche
le chargement de FIFO jusqu' ce que .POS < .LEN.
.EM
BOOL
Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.
.LEN
DINT
La longueur dfinit le nombre maximum d'lments que le FIFO peut contenir la fois.
.POS
DINT
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-9
Type du dfaut
Code du dfaut
20
8-10
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Excution :
Condition
pendant la pr-scrutation
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
8-11
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
8-12
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
.EN = 0
.EN = 1
non
oui
.LEN < 0
oui
.POS < 0
non
non
oui
.POS < 0
oui
.LEN < 0
non
le bit .EM est activ
.DN est activ
oui
.POS .LEN
non
oui
.POS = 0
.POS ou
.LEN > taille
du tableau
non
dfaut majeur
non
oui
.POS .LEN
non
oui
.POS = .POS - 1
non
FIFO[.POS - 1] = source
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-13
array_dint[0]
array_dint[5]
00000
00000
11111
11111
22222
22222
33333
control_1.pos = 5
33333
44444
value_1 = 55555
44444
00000
55555
00000
00000
00000
00000
00000
00000
00000
00000
control_1.pos = 6
8-14
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Oprandes :
Logique relais
Oprande
Type
Format
FIFO
SINT
point de
INT
tableau
DINT
REAL
STRING
STRUCTURE
Destination
SINT
INT
DINT
REAL
STRING
STRUCTURE
point
Description
FIFO modifier
indique le premier lment du FIFO
n'utilisez pas CONTROL.POS dans l'indice
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EU
BOOL
Le bit d'activation de dchargement indique que l'instruction FFU est active. Le bit .EU est
rgl pour empcher un dchargement incorrect lorsque la scrutation commence.
.DN
BOOL
Le bit de fin est activ pour indiquer que le FIFO est plein (.POS = .LEN).
.EM
BOOL
Le bit vide indique que le FIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.
.LEN
DINT
.POS
DINT
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-15
Type du dfaut
Code du dfaut
20
8-16
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Excution :
Condition
pendant la pr-scrutation
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
8-17
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
8-18
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
.EU = 0
.EU = 1
non
oui
.LEN < 0
oui
.POS < 0
non
non
oui
.POS < 0
oui
.LEN < 0
non
le bit .EM est activ
.DN est activ
oui
dfaut majeur
non
oui
.POS = 0
non
non
oui
.POS .LEN
oui
.POS 1
oui
.POS < 1
Destination = 0
non
.POS = .POS - 1
Destination = FIFO[0]
i=1
FIFO[i - 1] = FIFO[i]
i = i +1
oui
i < .LEN
non
l'tat de sortie de la ligne
est rgl sur vrai
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-19
array_dint[0]
array_dint[5]
avant dchargement du
FIFO
aprs dchargement du
FIFO
00000
11111
11111
22222
22222
33333
33333
44444
44444
55555
55555
00000
control_1.pos = 6
00000
control_1.pos = 5
00000
value_2 = 00000
00000
00000
00000
00000
00000
00000
8-20
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Oprandes :
Logique relais
Oprande
Type
Format
Source
immdiat
SINT
point
INT
DINT
REAL
STRING
STRUCTURE
Description
donnes stocker dans le LIFO
point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE
LIFO modifier
indique le premier lment du LIFO
n'utilisez pas CONTROL.POS dans l'indice
Contrle
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ pour indiquer que le LIFO est plein (.POS = .LEN). Le bit .DN empche
le chargement de LIFO jusqu' ce que .POS < .LEN.
.EM
BOOL
Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.
.LEN
DINT
La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois.
.POS
DINT
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-21
Type du dfaut
Code du dfaut
20
8-22
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Excution :
Condition
pendant la pr-scrutation
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
8-23
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
8-24
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
.EN = 0
.EN = 1
non
oui
.LEN < 0
oui
.LEN < 0
oui
.POS < 0
non
non
.POS < 0
oui
non
le bit .EM est activ
.DN est activ
oui
.POS .LEN
non
oui
.POS = 0
non
oui
dfaut majeur
non
oui
.POS .LEN
non
oui
.POS = .POS - 1
non
LIFO[.POS - 1] = source
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-25
array_dint[0]
array_dint[5]
00000
00000
11111
11111
22222
22222
33333
control_1.pos = 5
33333
44444
value_1 = 55555
44444
00000
55555
00000
00000
00000
00000
00000
00000
00000
00000
control_1.pos = 6
8-26
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Oprandes :
Logique relais
Oprande
Type
Format
LIFO
point de
SINT
tableau
INT
DINT
REAL
STRING
STRUCTURE
Destination
SINT
INT
DINT
REAL
STRING
STRUCTURE
point
Description
LIFO modifier
indique le premier lment du LIFO
n'utilisez pas CONTROL.POS dans l'indice
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EU
BOOL
Le bit d'activation de dchargement indique que l'instruction LFU est active. Le bit .EU est
rgl pour empcher un dchargement incorrect lorsque la scrutation commence.
.DN
BOOL
Le bit de fin est activ pour indiquer que le LIFO est plein (.POS = .LEN).
.EM
BOOL
Le bit vide indique que le LIFO est vide. Si .LEN 0 ou .POS < 0, les bits .EM et .DN sont
activs.
.LEN
DINT
La longueur dfinit le nombre maximum d'lments que le LIFO peut contenir la fois.
.POS
DINT
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-27
Type du dfaut
Code du dfaut
20
8-28
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Excution :
Condition
pendant la pr-scrutation
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
8-29
.LEN < 0
oui
non
.POS < 0
oui
non
.POS = 0
oui
non
.POS .LEN
oui
non
fin
8-30
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Condition
.EU = 0
oui
.LEN < 0
.EU = 1
non
oui
.LEN < 0
oui
.POS < 0
non
non
.POS < 0
oui
non
le bit .EM est activ
.DN est activ
oui
.POS 1
non
oui
.POS = 0
oui
.POS < 1
non
non
oui
.POS .LEN
Destination = 0
oui
.POS = .LEN
non
.POS = .POS - 1
oui
dfaut majeur
non
Destination = LIFO[control.POS]
LIFO[control.POS) = 0
fin
pendant la post-scrutation
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
8-31
array_dint[0]
array_dint[5]
avant dchargement du
LIFO
aprs dchargement du
LIFO
00000
00000
11111
11111
22222
22222
33333
33333
44444
44444
55555
00000
control_1.pos = 5
00000
value_2 = 55555
00000
control_1.pos = 6
00000
00000
00000
00000
00000
00000
8-32
Instructions sur tableau (fichier)/dcalage (BSL, BSR, FFL, FFU, LFL, LFU)
Notes :
Chapitre
Instructions squenceur
(SQI, SQO, SQL)
Introduction
Si vous voulez
Voir page
SQI
logique relais
9-2
SQO
logique relais
9-6
SQL
logique relais
9-10
9-2
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
DINT
point de
tableau
tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice
Masque
SINT
INT
DINT
point
immdiat
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Source
SINT
INT
DINT
point
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Contrle
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.ER
BOOL
Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.
.LEN
DINT
.POS
DINT
9-3
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
9-4
Excution :
Condition
pendant la pr-scrutation
.LEN 0
.POS < 0
ou
.POS > .LEN
non
oui
le bit .ER est activ
non
Source masque =
Array[.POS] masqu
oui
fin
pendant la post-scrutation
9-5
Oprande SQI
Source
Masque
Tableau
9-6
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
DINT
point de
tableau
tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice
Masque
SINT
INT
DINT
point
immdiat
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Destination
DINT
point
Contrle
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque tous les lments indiqus ont t dplacs vers la
Destination.
.ER
BOOL
Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.
.LEN
DINT
.POS
DINT
9-7
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
pendant la pr-scrutation
Le bit .EN est rgl pour empcher un chargement incorrect lorsque la scrutation
commence.
L'tat de sortie de la ligne est rgl sur faux.
9-8
Condition
.LEN 0 ou
.POS < 0
non
oui
.EN = 1
non
.POS = .LEN
.EN = 0
oui
.POS .LEN
.POS = 1
non
oui
.POS = .POS + 1
oui
la valeur .POS
passe zro
erreur
d'instr
non
oui
.POS = .LEN
non
non
oui
erreur
fin
pendant la post-scrutation
9-9
Oprande SQO
Tableau
Masque
Destination
9-10
Chargement squenceur
(SQL)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Tableau
DINT
point de
tableau
tableau squenceur
indique le premier lment du tableau
squenceur
n'utilisez pas CONTROL.POS dans l'indice
Source
SINT
INT
DINT
point
immdiat
Un point SINT ou INT est converti en valeur DINT par extension de signe.
Contrle
CONTROL
point
Longueur
DINT
immdiat
Position
DINT
immdiat
Structure CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque tous les lments indiqus ont t chargs dans Array.
.ER
BOOL
Le bit d'erreur est activ lorsque .LEN 0, .POS < 0 ou .POS > .LEN.
.LEN
DINT
.POS
DINT
9-11
Conditions d'erreur :
Un dfaut majeur se produit si
Type du dfaut
Code du dfaut
20
Excution :
Condition
pendant la pr-scrutation
Le bit .EN est rgl pour empcher un chargement incorrect lorsque la scrutation
commence.
L'tat de sortie de la ligne est rgl sur faux.
9-12
Condition
.LEN 0 ou
.POS < 0
non
.EN = 1
oui
non
.POS = .LEN
.EN = 0
oui
.POS .LEN
.POS = 1
non
oui
.POS = .POS + 1
la valeur
.POS passe
zro
oui
erreur
d'instructi
on goto
non
oui
.POS = .LEN
non
non
oui
.LEN > taille
du tableau
erreur
non
oui
dfaut majeur
Array[control.POS] = Source
fin
pendant la post-scrutation
9-13
array_dint[0]
array_dint[5]
avant chargement
aprs chargement
00000
00000
11111
11111
22222
22222
33333
control_1.pos = 5
33333
44444
value_3 = 55555
44444
00000
55555
00000
00000
00000
00000
00000
00000
00000
00000
control_1.pos = 6
9-14
Notes :
Chapitre
10
Introduction
Si vous voulez
Voir page
JMP
LBL
logique relais
10-2
JSR
SBR
RET
logique relais
texte structur
bloc fonctionnel
10-4
JXR
logique relais
10-13
TND
logique relais
texte structur
10-16
logique relais
10-18
UID
logique relais
texte structur
10-20
UIE
logique relais
texte structur
10-20
AFI
logique relais
10-22
NOP
logique relais
10-23
EOT
logique relais
texte structur
10-24
SFP
logique relais
texte structur
10-26
logique relais
texte structur
10-28
10-2
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Logique relais
Oprande
Type
Format
Description
nom
d'tiquette
nom
d'tiquette
Instruction JMP
Nom de
l'tiquette
Instruction LBL
Nom de
l'tiquette
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 (_).
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-3
Conditions d'erreur :
Un dfaut majeur se produit si
Type du dfaut
Code du dfaut
42
Excution :
Condition
pendant la pr-scrutation
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.
10-4
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes JSR :
Logique relais
Oprande
Type
Format
Description
Nom du
sous-programme
ROUTINE
nom
sous-programme excuter
(sous-programme secondaire)
Paramtre
d'entre
BOOL
SINT
INT
DINT
REAL
STRUCTURE
immdiat
point
point de
tableau
Paramtre de
retour
point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE
Texte structur
JSR(RoutineName,InputCount,
InputPar,ReturnPar);
Oprande
Type
Format
Description
Nom du
ROUTINE
sous-programme
nom
sous-programme excuter
(sous-programme secondaire)
Comptage des
entres
SINT
INT
DINT
REAL
immdiat
Paramtre
d'entre
BOOL
SINT
INT
DINT
REAL
STRUCTURE
immdiat
point
point de
tableau
Paramtre de
retour
point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-5
Paramtres de retour
ATTENTION
Logique relais
SBR(InputPar);
Oprande
Type
Format
Paramtre
d'entre
point
BOOL
point de
SINT
tableau
INT
DINT
REAL
STRUCTURE
Description
point de ce sous-programme dans lequel
vous voulez copier le paramtre d'entre
correspondant partir de l'instruction JSR
Texte structur
Les oprandes sont les mmes que ceux de l'instruction SBR en
logique relais.
Bloc fonctionnel
Paramtres
10-6
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes RET :
Logique relais
RET(ReturnPar);
Oprande
Type
Format
Description
Paramtre
de retour
BOOL
SINT
INT
DINT
REAL
STRUCTURE
immdiat
point
point de
tableau
Texte structur
Les oprandes sont les mmes que ceux de l'instruction RET en
logique relais.
Bloc fonctionnel
Paramtres
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-7
Sous-programme
secondaire
SBR
1. Si l'instruction JSR comporte un
paramtre d'entre, entrez une
instruction SBR.
2. Placez l'instruction SBR comme
premire instruction dans le
sous-programme.
3. Pour chaque paramtre d'entre dans
l'instruction JSR, entrez le point dans
lequel vous voulez copier les
donnes.
SBR
JSR
JSR
1. Si vous voulez copier des donnes
dans un point du sous-programme,
entrez un paramtre d'entre.
2. Si vous voulez copier un rsultat du
sous-programme dans un point du
sous-programme, entrez un
paramtre de retour.
3. Entrez autant de paramtres d'entre
et de retour que ncessaire.
RET
RET
42974
RET
1. Si l'instruction JSR comporte un paramtre de retour, entrez une instruction
RET.
2. Placez l'instruction RET comme dernire instruction dans le sous-programme.
3. Pour chaque paramtre de retour dans l'instruction JSR, entrez un paramtre
de retour envoyer l'instruction JSR.
4. Dans un sous-programme relais, placez des instructions RET
supplmentaires pour quitter le sous-programme secondaire en fonction de
diffrentes conditions d'entre, si ncessaire (les sous-programmes en blocs
fonctionnels ne permettent qu'une instruction RET).
SBR
niveau 2
sous-programme secondaire
action_2
SBR
niveau 3
sous-programme secondaire
action_3
SBR
JSR
action_2
action_3
JSR
JSR
RET
RET
RET
10-8
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Type du dfaut
Code du dfaut
31
4 ou dfini par
l'utilisateur
0 ou dfini par
l'utilisateur
31
31
Excution :
Logique relais et texte structur
Condition
pendant la pr-scrutation
L'automate excute tous les sous-programmes quel que soit l'tat de la ligne. Pour assurer la
pr-scrutation de toutes les lignes du sous-programme, l'automate ignore les instructions RET (les
instructions RET ne quittent pas le sous-programme).
Version 6.x et antrieures : les entres et les paramtres de retour sont passs.
Version 7.x et ultrieures : les entres et les paramtres de retour ne sont pas passs.
S'il y a des appels rcurrents dans le mme sous-programme, le sous-programme est pr-scrut la
premire fois uniquement. S'il y a des appels multiples (non rcurrents) dans le mme sous-programme, le
sous-programme est pr-scrut chaque fois.
L'tat de sortie de la ligne est rgl sur faux (logique relais uniquement).
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Condition
10-9
Excution de l'instruction
oui
paramtres d'entre
non
oui
oui
instruction RET
paramtres de
retour
non
non
oui
fin du
sous-programme
non
l'tat de sortie de la ligne est faux
continue l'excution du
sous-programme
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
excution normale
pendant la post-scrutation
10-10
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Logique relais
Sous-programme
Programme
Sous-programme principal
Sous-programme secondaire
Texte structur
Sous-programme
Programme
Sous-programme principal
JSR(routine_1,2,value_1,value_2,float_value_1);
Sous-programme secondaire
SBR(value_a,value_b);
<instructions>;
RET(float_a);
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.
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.
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
42973
6. Les instructions ADD additionnent Input_A, Input_B et Input_C et placent le rsultat dans Sum_A_B_C.
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-13
Oprandes :
Logique relais
.
Oprande
Type
Format
Description
Nom du
sous-programme
externe
ROUTINE
nom
Contrle du
sous-programme
externe
EXT_ROUTINE_
CONTROL
point
Paramtre
BOOL
SINT
INT
DINT
REAL
STRUCTURE
immdiat
point
point de tableau
Paramtre de
retour
BOOL
SINT
INT
DINT
REAL
point
10-14
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Structure EXT_ROUTINE_CONTROL
Mnmonique
Type de donnes
Description
Application
ErrorCode
SINT
NumParams
SINT
ParameterDefs
EXT_ROUTINE_
PARAMETERS[10]
ReturnParamDef
EXT_ROUTIN_
PARAMETERS
EN
BOOL
ReturnsValue
BOOL
DN
BOOL
ER
BOOL
FirstScan
BOOL
EnableOut
BOOL
Sortie active.
EnableIn
BOOL
Entre active.
User1
BOOL
User0
BOOL
ScanType1
BOOL
ScanType0
BOOL
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-15
Indicateurs d'tat arithmtique : Les indicateurs d'tat arithmtique ne sont pas affects.
Conditions d'erreur :
Un dfaut majeur se produit si
une exception se produit dans la DLL du
sous-programme externe
la DLL n'a pas pu tre charge
le point d'entre n'a pas t trouv dans la DLL
Type du
dfaut
Code du
dfaut
88
10-16
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Oprandes de logique relais
aucune
Texte structur
TND();
aucune
Vous devez entrer les parenthses () aprs le mnmonique de
l'instruction, bien qu'il n'y ait pas d'oprandes.
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
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.
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();
10-18
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
L'instruction MCR, utilise par paire, cre une zone programme qui
peut dsactiver toutes les lignes dans les instructions MCR.
Oprandes :
Logique relais
aucune
Description : Lorsque la zone MCR est active, les lignes de cette zone sont scrutes
la recherche d'tats vrai ou faux normaux. Lorsqu'elle est dsactive,
l'automate scrute toujours les lignes de la zone MCR, mais la dure de
scrutation est rduite parce que les sorties non rmanentes de la zone
sont dsactives. L'tat d'entre de la ligne est faux pour toutes les
instructions dans la zone MCR dsactive.
Lorsque vous programmez une zone MCR, notez que :
vous devez terminer la zone par une instruction MCR sans
condition ;
vous ne pouvez pas imbriquer une zone MCR dans une autre ;
vous ne devez pas sauter une autre zone MCR. Si la zone est
fausse, sautez dans la zone l'active partir du point o vous
avez saut jusqu' la fin de la zone ;
vous n'avez pas besoin de programmer une instruction MCR
pour terminer la zone si elle continue jusqu' la fin du
sous-programme.
L'instruction MCR ne remplace pas un relais de contrle matre cbl
offrant la capacit d'arrt d'urgence. Vous devez quand mme installer
un relais de contrle matre cbl pour pouvoir couper l'alimentation
des E/S en cas d'urgence.
ATTENTION
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
pendant la post-scrutation
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 :
Logique relais
aucune
Texte structur
UID();
UIE();
aucune
Vous devez entrer les parenthses () aprs le mnmonique de
l'instruction, bien qu'il n'y ait pas d'oprandes.
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
Aucune.
L'instruction UID empche l'interruption par des tches de priorit plus leve.
L'instruction UIE permet l'interruption par des tches de priorit plus leve.
pendant la post-scrutation
Aucune.
Logique relais
UID
error_bit
FSC
File Search/Compare
Control
error_check
Length
10
Position
8
Mode
ALL
Expression
error_code=error_list[error_check.POS]
error_check.FD
EN
DN
ER
alarm
UIE
Texte structur
UID();
<instructions>
UIE();
10-22
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Logique relais
aucune
Description : L'instruction AFI rgle son tat de sortie de ligne sur faux.
Indicateurs d'tat arithmtique : non affects
Conditions d'erreur : aucune
Excution :
Condition
pendant la pr-scrutation
pendant la post-scrutation
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-23
Oprandes :
Logique relais
aucune
Description : Vous pouvez placer l'instruction NOP n'importe o sur une ligne.
Active ou dsactive, cette instruction n'effectue aucune opration.
pendant la pr-scrutation
pendant la post-scrutation
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.
10-24
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Logique relais
Oprande
Type
Format
Description
bit de
donnes
BOOL
point
tat de la transition
(0=excution, 1=termin)
Texte structur
EOT(data_bit);
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-25
Exemple : Lorsque limit_switch1 et interlock_1 sont activs, l'tat est activ. Une
fois timer_1 termin, l'instruction EOT renvoie la valeur de state au
sous-programme appelant.
Logique relais
Texte structur
state := limit_switch1 AND interlock_1;
IF timer_1.DN THEN
EOT(state);
END_IF;
10-26
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Nom de
SFCRoutine
ROUTINE
nom
TargetState
DINT
immdiat
point
Texte structur
SFP(SFCRoutineName,
TargetState);
Type du dfaut
Code du dfaut
85
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-27
Logique relais
Arrt temporaire 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;
10-28
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Oprandes :
Oprandes de logique relais
Oprande
Type
Format
Description
Nom de SFCRoutine
ROUTINE
nom
Nom de l'tape
SFC_STEP
point
Texte structur
SFR(SFCRoutineName,StepName);
Type du dfaut
Code du dfaut
85
89
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
10-29
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
Aucune.
Logique relais
Texte structur
IF shutdown THEN
SFR(mySFC,initialize);
END_IF;
10-30
Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Notes :
Chapitre
11
Instruction pour/d'interruption
(FOR, FOR...DO, BRK, EXIT, RET)
Introduction
Si vous voulez
Voir page
FOR
FOR...DO(1)
logique relais
texte structur
11-2
BRK
EXIT(1)
logique relais
texte structur
11-4
RET
logique relais
11-5
(1)
11-2
Pour (FOR)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Nom du
sous-programme
ROUTINE
nom du
sous-programme
sous-programme excuter
Index
DINT
point
Valeur initiale
SINT
INT
DINT
immdiat
point
Valeur terminale
SINT
INT
DINT
immdiat
point
Taille de
l'incrment
SINT
INT
DINT
immdiat
point
Texte structur
FOR count:= initial_value TO
final_value BY increment DO
<instruction>;
END_FOR;
Description :
IMPORTANT
11-3
Type du dfaut
Code du dfaut
31
Excution :
Condition
pendant la pr-scrutation
non
oui
fin de
goto
non
oui
oui
index valeur terminale
non
excute le sous-programme
index =(index + step_size)
fin de
goto
fin
fin
pendant la post-scrutation
11-4
Interruption (BRK)
Oprandes :
Logique relais
aucune
Texte structur
EXIT;
pendant la pr-scrutation
pendant la post-scrutation
Retour (RET)
11-5
Oprandes :
Logique relais
aucune
Description :
IMPORTANT
Type du dfaut
Code du dfaut
31
Excution :
Condition
pendant la pr-scrutation
pendant la post-scrutation
11-6
sous-programme secondaire
Chapitre
12
Instructions spciales
(FBC, DDT, DTR, PID)
Introduction
Si vous voulez
Voir page
logique relais
12-2
logique relais
12-9
DTR
logique relais
12-16
PID
logique relais
texte structur
12-19
12-2
L'instruction FBC compare les bits d'un tableau Source avec ceux d'un
tableau Rfrence.
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
DINT
point de
tableau
Rfrence
DINT
point de
tableau
Rsultat
DINT
point de
tableau
Contrle de CONTROL
comparaison
structure
Longueur
DINT
immdiat
Position
DINT
immdiat
Contrle de
rsultat
CONTROL
structure
Longueur
DINT
immdiat
Position
DINT
immdiat
ATTENTION
12-3
Structure COMPARE
Mnmonique
Type de donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque l'instruction FBC compare le dernier bit dans les tableaux Source et
Rfrence.
.FD
BOOL
Le bit trouv est activ chaque fois que l'instruction FBC enregistre une diffrence (opration par
opration) ou aprs l'enregistrement de toutes les diffrences (opration tout en une scrutation).
.IN
BOOL
.ER
BOOL
Le bit d'erreur est activ si la comparaison .POS < 0, la comparaison .LEN < 0, le rsultat .POS < 0
ou le rsultat .LEN < 0. L'instruction arrte l'excution jusqu' ce que le programme efface le bit
.ER.
.LEN
DINT
.POS
DINT
Structure RESULT
Mnmonique
Type de donnes
Description
.DN
BOOL
.LEN
DINT
.POS
DINT
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.
Slectionnez ce mode
12-4
Conditions d'erreur :
Un dfaut majeur se produit si
Type du dfaut
Code du dfaut
20
Excution :
Condition
pendant la pr-scrutation
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
fin
Condition
12-5
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
fin
12-6
Condition
examine le bit
compare.EN
sortie
instruction
goto
compare.EN = 1
compare.EN = 0
compare.DN = 1
examine le bit
compare.DN
sortie
instruction
goto
compare.DN = 0
le bit compare.ER est effac
le bit compare.FD est effac
oui
compare.LEN 0
non
exit
compare.POS < 0
non
oui
sortie
instruction
goto
Condition
12-7
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
examine le bit
result.DN
result.DN = 0
oui
compare.POS =
compare.POS + 1
oui
result.POS < 0
non
oui
result.LEN 0
non
oui
Result.POS > taille du
tableau de rsultat
dfaut majeur
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
12-8
source array_dint1
rfrence
array_dint2
rsultat array_dint3
12-9
L'instruction DDT compare les bits d'un tableau Source avec les bits
d'un tableau Rfrence pour dterminer les changements d'tat.
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
DINT
point de
tableau
Rfrence
DINT
point de
tableau
Rsultat
DINT
point de
tableau
Contrle de
comparaiso
n
CONTROL
structure
Longueur
DINT
immdiat
Position
DINT
immdiat
Contrle de
rsultat
CONTROL
structure
Longueur
DINT
immdiat
Position
DINT
immdiat
ATTENTION
12-10
Structure COMPARE
Mnmonique
Type de
donnes
Description
.EN
BOOL
.DN
BOOL
Le bit de fin est activ lorsque l'instruction DDT compare le dernier bit dans les tableaux
Source et Rfrence.
.FD
BOOL
Le bit trouv est activ chaque fois que l'instruction DDT enregistre une diffrence (opration
par opration) ou aprs l'enregistrement de toutes les diffrences (opration tout en une
scrutation).
.IN
BOOL
.ER
BOOL
Le bit d'erreur est activ si la comparaison .POS < 0, la comparaison .LEN < 0, le rsultat
.POS < 0 ou le rsultat .LEN < 0. L'instruction arrte l'excution jusqu' ce que le programme
efface le bit .ER.
.LEN
DINT
.POS
DINT
Structure RESULT
Mnmonique
Type de
donnes
Description
.DN
BOOL
.LEN
DINT
.POS
DINT
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.
12-11
Slectionnez ce mode
Type du dfaut
Code du dfaut
20
Excution :
Condition
pendant la pr-scrutation
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
fin
12-12
Condition
examine le bit
compare.DN
compare.DN = 1
le bit compare.DN est effac
la valeur compare.POS est
efface
le bit result.DN est effac
la valeur result.POS est efface
fin
compare.DN = 0
Condition
12-13
sortie
instruction
goto
compare.EN = 1
examine le bit
compare.EN
compare.EN = 0
le bit compare.EN est
activ
le bit compare.DN = 1
examine le bit
compare.DN
sortie
instruction
goto
le bit compare.DN = 0
le bit compare.ER est effac
le bit compare.FD est effac
oui
compare.LEN 0
non
exit
compare.POS < 0
oui
non
l'tat de sortie de la ligne
est vrai
sortie
instruction
goto
comparaison
fin
page 12-14
12-14
Condition
comparaison
compare.POS
compare.LEN
oui
sortie
instruction
goto
compare.POS = compare.LEN
le bit compare.DN est activ
page 12-13
non
result.DN = 1
source[compare.POS]=
rfrence[compare.POS]
non
examine le bit
result.DN
result.DN = 0
oui
compare.POS =
compare.POS + 1
oui
result.POS < 0
non
oui
result.LEN 0
non
oui
dfaut majeur
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
12-15
source
array_dint1
rsultat
array_dint3
rfrence (aprs comparaison)
array_dint2
12-16
Transition de donnes
(DTR)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
DINT
immdiat
point
Masque
DINT
immdiat
point
Rfrence
DINT
point
ATTENTION
Prfixe
Description
16#
hexadcimal
par exemple : 16#0F0F
8#
octal
par exemple : 8#16
2#
binaire
par exemple : 2#00110011
12-17
pendant la pr-scrutation
source masque =
rfrence
non
oui
fin
pendant la post-scrutation
12-18
Exemple : Lorsqu'elle est active, l'instruction DTR masque value_1. S'il y a une
diffrence entre les deux valeurs, l'tat de sortie de la ligne est rgl
sur vrai.
exemple 1
exemple 2
Source
value_1
masque = 0FFF
0000111111111111
scrutation en
cours
scrutation
prcdente
0000111111111111
rfrence
value_2
0
scrutation en
cours
scrutation
prcdente
Proportionnel, intgral et
driv (PID)
12-19
Oprandes :
Logique relais
Oprande
Type
Format
Description
PID
PID
structure
structure PID
Variable de
procd
SINT
INT
DINT
REAL
point
Elment
Tieback
SINT
INT
DINT
REAL
immdiat
point
Variable de
contrle
SINT
INT
DINT
REAL
point
Boucle matre
PID
PID
structure
Bit de
maintien
BOOL
point
(en option) tat en cours du bit de maintien d'un canal de sorties analogiques 1756 pour
accepter le redmarrage sans -coups
Entrez 0 si vous ne voulez pas utiliser ce paramtre.
Valeur de
maintien
SINT
INT
DINT
REAL
point
(facultatif) valeur de retour de donnes d'un canal de sorties analogiques 1756 pour
accepter le redmarrage sans coups
Entrez 0 si vous ne voulez pas utiliser ce paramtre.
Point de
consigne
Variable de
procd
% de sortie
Texte structur
PID(PID,ProcessVariable,
Tieback,ControlVariable,
PIDMasterLoop,InholdBit,
InHoldValue);
12-20
Structure PID
Mnmonique
Type de
donnes
Description
.CTL
DINT
Le membre .CTL permet l'accs aux membres d'tat (bits) par un mot de 32 bits. L'instruction PID
active les bits 07 15.
Ce bit
est le membre
31
.EN
30
.CT
29
.CL
28
.PVT
27
.DOE
26
.SWM
25
.CA
24
.MO
23
.PE
22
.NDF
21
.NOBC
20
.NOZC
Ce bit
15
.INI
14
.SPOR
13
.OLL
12
.OLH
11
.EWD
10
.DVNA
09
.DVPA
08
.PVLA
07
.PVHA
.SP
REAL
point de consigne
.KP
REAL
indpendant
dpendant
indpendant
dpendant
indpendant
dpendant
frquence (minutes)
.KI
.KD
REAL
REAL
.BIAS
REAL
.MAXS
REAL
.MINS
REAL
.DB
REAL
.SO
REAL
dfinition du % de sortie
.MAXO
REAL
Mnmonique
Type de
donnes
Description
.MINO
REAL
.UPD
REAL
.PV
REAL
.ERR
REAL
.OUT
REAL
% de sortie
.PVH
REAL
.PVL
REAL
.DVP
REAL
.DVN
REAL
.PVDB
REAL
.DVDB
REAL
.MAXI
REAL
.MINI
REAL
.TIE
REAL
.MAXCV
REAL
.MINCV
REAL
.MINTIE
REAL
.MAXTIE
REAL
.DATA
REAL[17]
Description
.DATA[0]
cumul intgral
.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]
.EN
BOOL
activ
.CT
BOOL
12-21
12-22
Mnmonique
Type de
donnes
Description
.CL
BOOL
.PVT
BOOL
.DOE
BOOL
.SWM
BOOL
.CA
BOOL
.MO
BOOL
.PE
BOOL
.NDF
BOOL
.NOBC
BOOL
.NOZC
BOOL
.INI
BOOL
.SPOR
BOOL
.OLL
BOOL
.OLH
BOOL
.EWD
BOOL
.DVNA
BOOL
.DVPA
BOOL
.PVLA
BOOL
.PVHA
BOOL
tat de la ligne
excution de l'instruction PID
12-23
Conditions d'erreur :
IMPORTANT
Type du dfaut
Code du dfaut
.UPD 0
35
36
Excution :
Condition
Action
Action
pendant la pr-scrutation
Aucune.
si l'tat d'entre de la ligne est faux L'tat de sortie de la ligne est rgl sur faux.
pendant la post-scrutation
Aucune.
Configuration d'une
instruction PID
12-24
Indiquez
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)
Dfinition de la configuration
Slectionnez l'onglet Configuration. Vous devez cliquer sur OK ou sur
Appliquer pour que les modifications prennent effet.
Dans ce champ
Indiquez
Dans ce champ
Indiquez
12-25
Indiquez
Deviation deadband (Zone morte de dviation) Entrez une valeur de zone morte d'alarme de dviation (.DVDB).
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 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).
12-26
erreur
quation PID
+
dbit
variable de procd
variable de
contrle
dtecteur de
niveau
14271
12-27
Driv de
Gains dpendants
(standard ISA)
erreur (E)
Equation
t
CV = K C
dE
1
E + ---- Edt + T d ------- + BIAS
dt
Ti
0
E = SP - PV
t
CV = K C
1
dPV
E + ---- Edt T d ----------- + BIAS
Ti
dt
0
E = PV - SP
t
dPV
1
CV = K C E + ---- Edt + T d ----------- + BIAS
dt
Ti
0
Gains indpendants
erreur (E)
t
dE
CV = K P E + K i Edt + Kd ------- + BIAS
dt
0
E = SP - PV
dPV
CV = K P E + Ki Edt K d ----------- + BIAS
dt
0
E = PV - SP
dPV
CV = K P E + K i Edt + Kd ----------- + BIAS
dt
0
O :
Variable
Description
KP
Ki
Kd
KC
Ti
Td
frquence (minutes)
12-28
Variable
Description
SP
point de consigne
PV
variable de procd
BIAS
CV
variable de contrle
dt
Description
manuel (.MO)
prend la valeur de tieback comme entre et ajuste ses variables internes pour gnrer la mme
valeur la sortie
L'entre tieback de l'instruction PID est mise l'chelle de 0 100 % selon les valeurs de .MINTIE et
.MAXTIE : elle est utilise comme sortie de la boucle. L'entre tieback vient gnralement d'une
sortie d'une station manuelle/auto matrielle qui contourne la sortie de l'automate.
Remarque : le mode manuel supplante le mode logiciel manuel si les deux bits de mode sont
activs.
12-29
Logique relais
12-30
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);
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;
12-31
12-32
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;
12-33
Dtails
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.
12-34
zone morte +
point de consigne
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.
12-35
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.
12-36
Logique relais
Texte structur
pid_2.sp := uncontrolled_flow * ratio
PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);
destination
valeur contrle
source A
source B
ratio
Thorie PID
12-37
Processus PID
SP
affich en
units procd
Erreur affiche
en
units procd
A/M Logiciel
OU
A/M Station oprateur
A/M Logiciel
SP-PV
Auto
+
SP
% dcalage
de sortie
Action de
contrle
Conversion des
units en %
(Erreur)
-
PV-SP
PVT
Calcul PID
(Sortie%)
Auto
Erreur X 100
max. UP-min. UP
-1
Manuel
Conversion % en units CV
Auto
Limite de
sortie
Manuel
Non
CV%(maxcv-mincv)
100
Manuel
Dfinition %
de sortie
PV
affiche en
units procd
Oui
Dfinition %
de sortie
A/M Station
oprateur
CV
+ mincv
Sortie (CV)
affiche en %
d'units procd
x 100
PV
A/M Logiciel
OU
A/M Station oprateur
% dcalage
de sortie
Action de
contrle
A/M Logiciel
Auto
SP
SP-PV
(Erreur)
+
-
-1
Manuel
Conversion des
units en %
Calcul PID
(Sortie%)
A/M Station
oprateur
Auto
Erreur X 100
max. UP-min. UP
PV-SP
PVT
Non
Auto
Dfinition %
de sortie
(Sortie
Limite de
sortie
Manuel
Dfinition %
de sortie
Manuel
A/M Logiciel
Oui
Auto
Conversion des binaires en units
procd
(PV-min.)(max. UP-min. UP)
+ min. UP
max.-min.
Boucle
esclave
(Sortie matre)
Conversion des
units en %
Erreur X 100
max. UP-min. UP
SP
PV
Manuel
Manuel
PV
% dcalage
de sortie
Action de
contrle
Conversion % en
.SP
units procd
+
X (max. UP-min. UP)
+ min. UP
100
SP-PV
-1
PV-SP
A/M Logiciel
Conversion des
units en %
Erreur X 100
max. UP-min. UP
Calcul PID
A/M Station
oprateur
Auto
Auto
Dfinition %
de sortie
Conversion % en units CV
Limite de
sortie
Manuel
Manuel
Dfinition %
de sortie
CV%(maxcv-mincv)
100
+ mincv
max.-min.
+ min. UP
Conversion units
Tieback en %
tieback-mintie
maxtie-mintie
x 100
PV
12-38
Notes :
Chapitre
13
Instructions trigonomtriques
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Introduction
Si vous voulez
Voir page
SIN
logique relais
texte structur
bloc fonctionnel
13-2
COS
logique relais
texte structur
bloc fonctionnel
13-4
TAN
logique relais
texte structur
bloc fonctionnel
13-6
ASN
ASIN(1)
logique relais
texte structur
bloc fonctionnel
13-8
ACS
ACOS(1)
logique relais
texte structur
bloc fonctionnel
13-10
ATN
ATAN(1)
logique relais
texte structur
bloc fonctionnel
13-12
(1)
13-2
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Sinus (SIN)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := SIN(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point SIN
FBD_MATH_ADVANCED
structure
structure SIN
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
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.
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-3
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := SIN(value);
Bloc fonctionnel
13-4
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Cosinus (COS)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := COS(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point COS
FBD_MATH_ADVANCED
structure
structure COS
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
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.
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-5
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := COS(value);
Bloc fonctionnel
13-6
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Tangente (TAN)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := TAN(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point TAN
FBD_MATH_ADVANCED
structure
structure TAN
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-7
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := TAN(value);
Bloc fonctionnel
13-8
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := ASIN(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point ASN
FBD_MATH_ADVANCED
structure
structure ASN
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-9
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := ASIN(value);
Bloc fonctionnel
13-10
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := ACOS(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point ACS
FBD_MATH_ADVANCED
structure
structure ACS
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-11
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := ACOS(value);
Bloc fonctionnel
13-12
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := ATAN(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point ATN
FBD_MATH_ADVANCED
structure
structure ATN
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
13-13
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := ATAN(value);
Bloc fonctionnel
13-14
Instructions trigonomtriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Notes :
Chapitre
14
Introduction
Si vous voulez
Voir page
LN
logique relais
texte structur
bloc fonctionnel
14-2
LOG
logique relais
texte structur
bloc fonctionnel
14-4
XPY
logique relais
texte structur(1)
bloc fonctionnel
14-6
(1)
Il n'existe pas d'instruction quivalente en texte structur. Utilisez l'oprateur dans une expression.
14-2
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := LN(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point LN
FBD_MATH_ADVANCED
structure
structure LN
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
14-3
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := LN(value);
Bloc fonctionnel
14-4
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := LOG(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point LOG
FBD_MATH_ADVANCED
structure
structure LOG
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
14-5
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := LOG(value);
Bloc fonctionnel
14-6
X la puissance Y (XPY)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source X
SINT
INT
DINT
REAL
immdiat
point
valeur de base
Source Y
SINT
INT
DINT
REAL
immdiat
point
exposant
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := sourceX ** sourceY;
Bloc fonctionnel
Oprande
Type
Format
Description
point XPY
FBD_MATH
structure
structure XPY
14-7
Structure FBD_MATH
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source X
REAL
Valeur de base
Valeurs correctes = toute virgule flottante.
Source Y
REAL
Exposant.
Valeurs correctes = toute virgule flottante.
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Type du dfaut
Code du dfaut
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
14-8
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
Texte structur
result := (value_1 value_2);
Bloc fonctionnel
Chapitre
15
Introduction
Si vous voulez
Voir page
DEG
logique relais
texte structur
bloc fonctionnel
15-2
RAD
logique relais
texte structur
bloc fonctionnel
15-4
TOD
logique relais
bloc fonctionnel
15-6
FRD
logique relais
bloc fonctionnel
15-9
TRN
TRUNC(1)
logique relais
texte structur
bloc fonctionnel
15-11
(1)
15-2
Degrs (DEG)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := DEG(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point DEG
FBD_MATH_ADVANCED
structure
structure DEG
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.
15-3
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := DEG(value);
Bloc fonctionnel
15-4
Radians (RAD)
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
REAL
immdiat
point
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := RAD(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point RAD
FBD_MATH_ADVANCED
structure
structure RAD
Structure FBD_MATH_ADVANCED
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
REAL
Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.
15-5
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Texte structur
result := RAD(value);
Bloc fonctionnel
15-6
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination
SINT
INT
DINT
point
Bloc fonctionnel
Oprande
Type
Format
Description
point TOD
FBD_CONVERT
structure
structure TOD
Structure FBD_CONVERT
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
DINT
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.
Description : DCB est le systme nombre Dcimal Cod Binaire qui exprime des
chiffres dcimaux individuels (0 9) dans une numration binaire sur
4 bits.
Si vous entrez une Source ngative, l'instruction gnre un dfaut
mineur et efface la Destination.
Type du dfaut
Code du dfaut
Source < 0
15-7
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
non
source < 0
oui
non
conversion de source en
DCB
oui
fin
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
15-8
Logique relais
Bloc fonctionnel
Conversion en nombre
entier (FRD)
15-9
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
SINT
INT
DINT
immdiat
point
Un point SINT ou INT est converti en valeur DINT par remplissage par
zros.
Destination
SINT
INT
DINT
point
Bloc fonctionnel
Oprande
Type
Format
Description
point FRD
FBD_CONVERT
structure
structure FRD
Structure FBD_CONVERT
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
DINT
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
Rsultat de l'instruction de conversion. Les indicateurs d'tat arithmtiques sont activs pour
cette sortie.
15-10
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
Bloc fonctionnel
Troncation (TRN)
15-11
Oprandes :
Logique relais
Oprande
Type
Format
Description
Source
REAL
immdiat
point
valeur tronquer
Destination
SINT
INT
DINT
REAL
point
Texte structur
dest := TRUNC(source);
Bloc fonctionnel
Oprande
Type
Format
Description
point TRN
FBD_TRUNCATE
structure
structure TRN
Structure FBD_TRUNCATE
Paramtre d'entre
Type de
donnes
Description
EnableIn
BOOL
Entre active. Si effac, l'instruction n'est pas excute et les sorties ne sont pas
actualises.
Activ par dfaut.
Source
REAL
Paramtre de sortie
Type de
donnes
Description
EnableOut
BOOL
Dest
DINT
15-12
Excution :
Logique relais
Condition
Action
pendant la pr-scrutation
pendant la post-scrutation
Bloc fonctionnel
Condition
Action
pendant la pr-scrutation
Aucune.
Aucune.
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
Texte structur
float_value_1_truncated := TRUNC(float_value_1);
Bloc fonctionnel
Chapitre
16
Introduction
Utilisez les instructions du port srie ASCII pour lire et crire des
caractres ASCII.
Si vous voulez
Par exemple
Utilisez cette
instruction
Voir page
ABL
logique relais
texte structur
16-5
ACB
logique relais
texte structur
16-8
ACL
logique relais
texte structur
16-10
AHL
logique relais
texte structur
16-12
ARD
logique relais
texte structur
16-16
lire un nombre variable de caractres, lire des donnes d'un quipement qui
jusqu'au premier jeu de caractres de envoie un nombre variable de
caractres chaque transmission
fin inclus
ARL
logique relais
texte structur
16-19
AWA
logique relais
texte structur
16-23
AWT
logique relais
texte structur
16-27
IMPORTANT
16-2
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Excution de l'instruction
Les instructions port srie ASCII sont excutes de faon asynchrone
par rapport la scrutation de la logique.
Logique
L'tat d'entre de la ligne
passe de faux vrai
File d'attente
Instruction 1
Instruction 2
Tche ASCII
La premire instruction de
la file d'attente est
excute.
Instruction 3
Instruction 4
L'instruction entre dans la
file d'attente ASCII.
Buffer
Chaque instruction port srie ASCII (sauf l'instruction ACL) utilise une
structure SERIAL_PORT_CONTROL pour excuter les fonctions
suivantes :
contrler l'excution de l'instruction ;
fournir des informations d'tat sur l'instruction.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-3
scrutation
scrutation
scrutation
tat d'entre de la
ligne
faux
vrai
faux
vrai
faux
.EN
dsactiv
activ
dsactiv
activ
dsactiv
.EU
dsactiv
activ
.RN
ds
acti
v
.DN ou .ER
ds
acti
v
acti
v
ds
acti
v
acti
v
.FD
ds
acti
v
acti
v
ds
acti
v
acti
v
acti
v
ds
acti
v
acti
v
entre dans la
file d'attente
ds
acti
v
excute
dans cet exemple,
trouve les caractres
de fin
scrutation
tat d'entre de la
ligne
faux
vrai
.EN
dsactiv
activ
.EU
dsactiv
scrutation
scrutation
faux
activ
16-4
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Indique que
16#2
16#3
16#4
16#A
16#C
L'automate est pass du mode Excution (Run) au mode Programme (Program). Ceci arrte l'excution de l'instruction
port srie ASCII et efface la file d'attente.
16#D
Dans l'onglet Protocole utilisateur de la bote de dialogue Proprits de l'automate, les paramtres de taille ou de
mode cho du buffer ont t changs et appliqus. Ceci arrte l'excution de l'instruction port srie ASCII et efface la
file d'attente.
16#E
16#F
La configuration du port srie passe du mode Utilisateur (User) au mode Systme (System). Ceci arrte l'excution
d'une instruction port srie ASCII et efface la file d'attente des instructions du port srie ASCII.
16#51
La valeur LEN de la chane de caractres est ngative ou suprieure la taille DATA de la chane de caractres.
16#54
16#55
La longueur de contrle du port srie est ngative ou suprieure la taille de la Source ou de la Destination.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-5
Type de donnes
Description
Remarques
LEN
DINT
nombre de
caractres dans la
chane
DATA
tableau SINT
caractres ASCII
dans la chane
Oprandes :
Logique relais
ABL
ASCII Test For Buffer Line
Channel
SerialPort Control
Character Count
?
?
?
EN
DN
ER
Oprande
Type
Format
Description
Canal
DINT
immdiat
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
immdiat
Texte structur
ABL(Channel
SerialPortControl);
16-6
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-7
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
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);
16-8
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Oprandes :
Logique relais
ACB
ASCII Chars in Buffer
Channel
SerialPort Control
Character Count
?
?
?
EN
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
Comptage des
caractres
DINT
immdiat
0
Pendant l'excution, affiche le nombre
de caractres dans le buffer.
Texte structur
ACB(Channel
SerialPortControl);
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-9
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
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);
16-10
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Oprandes :
Logique relais
ACL
ASCII Clear Buffer
Channel
Clear Serial Port Read
Clear Serial Port Write
?
?
?
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Effacer
lecture port
srie
BOOL
immdiat
point
BOOL
Effacer
criture port
srie
immdiat
point
Texte structur
ACL(Channel,
ClearSerialPortRead,
ClearSerialPortWrite);
Action
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-11
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
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;
16-12
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Oprandes :
Logique relais
AHL
ASCII Handshake Lines
Channel
AND Mask
OR Mask
SerialPort Control
Channel Status(Decimal)
EN
?
?
??
?
??
?
?
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
ANDMask
DINT
immdiat
point
reportez-vous la description
ORMask
DINT
immdiat
point
SERIAL_PORT_CONTROL point
DINT
immdiat
Examinez ce bit
CTS
RTS
DSR
DCD
DTR
Texte structur
AHL(Channel,ANDMask,ORMask,
SerialPortControl);
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-13
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la scrutation
logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la scrutation
logique.
.ER
BOOL
.FD
BOOL
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Action
dsactiv
dsactiv
activ
inchang
dsactiv
activ
inchang
dsactiv
activ
inchang
activ
inchang
16-14
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Code
Cause
Mthode de correction
57
Excution :
Condition
pendant la pr-scrutation
Aucune.
L'instruction obtient l'tat de la ligne de commande et active ou dsactive les signaux DTR et
RTS.
Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.
pendant la post-scrutation
Aucune.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-15
Logique relais
get_control_line_status
AHL
ASCII Handshake Lines
Channel
AND Mask
0
0
DN
OR Mask
ER
SerialPort Control
Channel Status(Decimal)
EN
serial_port
29
Texte structur
osri_1.InputBit := get_control_line_status;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
AHL(0,0,0,serial_port);
END_IF;
16-16
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Oprandes :
Logique relais
ARD
ASCII Read
Channel
Destination
EN
SerialPort Control
SerialPort Control Length
Characters Read
?
?
??
?
?
?
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Destination
STRING
SINT
INT
DINT
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
Longueur de
contrle
du port srie
DINT
immdiat
Caractres lus
DINT
immdiat
Remarques
Texte structur
ARD(Channel,Destination,
SerialPortControl);
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-17
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.LEN
DINT
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
16-18
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
bar_code_count.EN
/
ACB
ASCII Chars in Buffer
Channel
0
SerialPort Control
bar_code_count
Character Count
0
GEQ
Grtr Than or Eql (A>=B)
Source A bar_code_count.pos
0
Source B
24
ARD
ASCII Read
Channel
Destination
0
bag_bar_code
''
SerialPort Control
bar_code_read
SerialPort Control Length
24
Characters Read
0
Texte structur
ACB(0,bar_code_count);
IF bar_code_count.POS >= 24 THEN
bar_code_read.LEN := 24;
ARD(0,bag_bar_code,bar_code_read);
END_IF;
EN
DN
ER
EN
DN
ER
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-19
Oprandes :
Logique relais
ARL
ASCII Read Line
Channel
Destination
EN
SerialPort Control
SerialPort Control Length
Characters Read
?
?
??
?
?
?
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Destination
STRING
SINT
INT
DINT
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
Longueur de
contrle du
port srie
DINT
immdiat
Remarques
Caractres lus
DINT
immdiat
Texte structur
ARL(Channel,Destination,
SerialPortControl);
16-20
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.LEN
DINT
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Description : L'instruction ARL retire des caractres du buffer et les stocke dans la
Destination comme suit :
l'excution de l'instruction ARL continue jusqu' ce qu'elle ait
retir un des lments suivants :
le premier jeu de caractres de fin ;
le nombre de caractres indiqu (Longueur de contrle du
port srie) ;
pendant l'excution de l'instruction ARL, aucune autre
instruction port srie ASCII n'est excute.
Pour programmer l'instruction ARL, suivez ces directives :
1. Configurez le port srie de l'automate.
a. Slectionnez le mode Utilisateur (User).
b. Dfinissez les caractres qui servent de caractres de fin.
2. Utilisez les rsultats d'une instruction ABL pour dclencher
l'instruction ARL. Ceci empche l'instruction ARL d'arrter la file
d'attente ASCII pendant qu'elle attend les caractres de fin.
3. Il s'agit d'une instruction de transition :
en logique relais, fait passer l'tat d'entre de la ligne
d'effac activ chaque fois que l'instruction doit tre
excute.
en texte structur, conditionne l'instruction afin qu'elle soit
excute uniquement lors d'une transition. Voir Annexe C.
4. Pour dclencher une action aprs l'excution de l'instruction,
examinez le bit EM.
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-21
pendant la pr-scrutation
Aucune.
L'instruction retire les caractres dfinis du buffer et les stocke dans la Destination.
Le bit .EN est activ.
Les autres bits d'tat sont effacs, sauf le bit .UL.
L'instruction tente d'entrer dans la file d'attente ASCII.
pendant la post-scrutation
Aucune.
16-22
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Logique relais
MV_line.EN
/
ABL
ASCII Test For Buffer Line
Channel
0
SerialPort Control
MV_line
Character Count
0
MV_line.FD
ARL
ASCII Read Line
Channel
Destination
SerialPort Control
SerialPort Control Length
Characters Read
Texte structur
ABL(0,MV_line);
osri_1.InputBit := MVLine.FD;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
mv_read.LEN := 12;
ARL(0,MV_msg,MV_read);
END_IF;
EN
DN
ER
EN
0
MV_msg
''
MV_read
12
0
DN
ER
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-23
Oprandes :
Logique relais
AWA
ASCII Write Append
Channel
Source
SerialPort Control
SerialPort Control Length
Characters Sent
EN
?
?
??
?
?
?
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Source
STRING
SINT
INT
DINT
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
Longueur de
contrle du port
srie
DINT
immdiat
nombre de caractres
envoyer
Caractres
envoys
DINT
immdiat
Remarques
Texte structur
AWA(Channel,Source,
SerialPortControl);
16-24
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.LEN
DINT
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Action
Oui
Non
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-25
Action
Oui
Non
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
Logique relais
temp_high
AWA
ASCII Write Append
Channel
Source
0
string[1]
'$1425\1'
SerialPort Control
temp_high_write
SerialPort Control Length
5
Characters Sent
6
EN
DN
ER
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;
Logique relais
alarm
MOV
Move
Source alarm_msg.LEN
5
Dest
alarm_write.LEN
5
AWA
ASCII Write Append
Channel
Source
SerialPort Control
SerialPort Control Length
Characters Sent
Texte structur
osri_1.InputBit := alarm;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
alarm_write.LEN := alarm_msg.LEN;
AWA(0,alarm_msg,alarm_write);
END_IF;
EN
0
alarm_msg
'$1425\1'
alarm_write
5
6
DN
ER
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-27
Oprandes :
Logique relais
AWT
ASCII Write
Channel
Source
EN
SerialPort Control
SerialPort Control Length
Characters Sent
?
?
??
?
?
?
DN
ER
Oprande
Type
Format
Entrez
Canal
DINT
immdiat
point
Source
STRING
SINT
INT
DINT
point
Contrle du
port srie
SERIAL_PORT_
CONTROL
point
Longueur de
contrle du port
srie
DINT
immdiat
nombre de caractres
envoyer
Caractres
envoys
DINT
immdiat
Remarques
Texte structur
AWT(Channel,Source,
SerialPortControl);
16-28
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Structure SERIAL_PORT_CONTROL
Mnmonique
Type de
donnes
Description
.EN
BOOL
.EU
BOOL
Le bit de file d'attente indique que l'instruction est dans la file d'attente ASCII.
.DN
BOOL
Le bit de fin indique que l'instruction est termine, mais il est asynchrone par rapport la
scrutation logique.
.RN
BOOL
.EM
BOOL
Le bit vide indique que l'instruction est termine, mais il est synchrone par rapport la
scrutation logique.
.ER
BOOL
.FD
BOOL
.LEN
DINT
.POS
DINT
.ERROR
DINT
L'erreur contient une valeur hexadcimale qui identifie la cause d'une erreur.
Action
Action
Oui
Non
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
16-29
pendant la pr-scrutation
Aucune.
pendant la post-scrutation
Aucune.
Logique relais
temp_low
AWT
ASCII Write
Channel
Source
EN
0
string[2]
'$142224\01$r'
SerialPort Control
temp_low_write
SerialPort Control Length
9
Characters Sent
9
DN
ER
Texte structur
osri_1.InputBit := temp_low;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
temp_low_write.LEN := 9;
AWT(0,string[2],temp_low_write);
END_IF;
Exemple 2 : Lorsque MV_update est activ, l'instruction AWT envoie les caractres
dans MV_msg. Le nombre de caractres dans MV_msg variant, la ligne
commence par dplacer la longueur de la chane (MV_msg.LEN) dans
la longueur de contrle du port srie de l'instruction AWT
16-30
Instructions port srie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Notes :
Chapitre
17
Introduction
Si vous voulez
Par exemple
Utilisez cette
instruction
Voir page
CONCAT
logique relais
texte structur
17-3
DELETE
logique relais
texte structur
17-5
FIND
logique relais
texte structur
17-7
INSERT
logique relais
texte structur
17-9
MID
logique relais
texte structur
17-11
Si vous voulez
Utilisez cette
instruction
Voir page
CMP
4-2
EQU
4-7
NEQ
4-38
GEQ
4-11
GRT
4-15
LEQ
4-19
LES
4-23
SWPB
6-18
FSC
7-18
STOD
18-3
STOR
18-5
convertir une valeur SINT, INT, DINT ou REAL en une chane de caractres ASCII
DTOS
18-7
RTOS
18-9
17-2
Data Type:
Description:
Notes:
LEN
DINT
number of characters
in the string
The LEN automatically updates to the new count of characters whenever you:
use the String Browser dialog box to enter characters
use instructions that read, convert, or manipulate a string
The LEN shows the length of the current string. The DATA member may contain
additional, old characters, which are not included in the LEN count.
DATA
SINT array
ASCII characters of
the string
To access the characters of the string, address the name of the tag.
For example, to access the characters of the string_1 tag, enter string_1.
Each element of the DATA array contains one character.
You can create new string data types that store less or more characters.
Concatnation de chanes
(CONCAT)
17-3
Oprandes :
Logique relais
CONCAT
String Concatenate
Source A
?
??
Source B
?
??
Dest
?
??
Oprande
Type
Format
Entrez
Remarques
Source A
STRING
point
Source B
STRING
point
Destination
STRING
point
Texte structur
CONCAT(SourceA,SourceB,
Dest);
Code
Cause
Mthode de correction
51
Excution :
Condition
pendant la pr-scrutation
Aucune.
17-4
Condition
pendant la post-scrutation
Aucune.
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;
17-5
Oprandes :
DELETE
String Delete
Source
Qty
Start
Dest
Logique relais
?
??
?
??
?
??
?
??
Oprande
Type
Format
Entrez
Remarques
Source
STRING
point
le point qui contient la chane dont Les types de donnes chane sont :
vous voulez retirer des caractres
type de donnes STRING par dfaut ;
tout nouveau type de donnes chane
que vous crez.
Quantit
SINT
INT
DINT
immdiat
point
Dbut
SINT
INT
DINT
immdiat
point
Destination
STRING
point
Texte structur
DELETE(Source,Qty,Start,
Dest);
Code
Cause
Mthode de correction
51
56
17-6
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
Logique relais
term_read.EM
DELETE
String Delete
Source term_input
'$0655'
Qty
1
Texte structur
IF term_read.EM THEN
DELETE(term_input,1,1,term_text);
term_read.EM := 0;
END_IF;
Start
Dest
term_text
'55'
Recherche de chane
(FIND)
17-7
Oprandes :
Logique relais
FIND
Find String
Source
?
??
?
??
?
??
?
??
Search
Start
Result
Oprande
Type
Format
Entrez
Remarques
Source
STRING
point
Recherche
STRING
point
la chane rechercher
Dbut
SINT
INT
DINT
immdiat
point
Rsultat
SINT
INT
DINT
point
Texte structur
FIND(Source,Search,Start,
Result);
Code
Cause
51
56
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.
17-8
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
Logique relais
MV_read.EM
FIND
Find String
Source MV_msg
'$06324\12\1\$r'
Search
find
'\'
Start
1
Result
Texte structur
IF MV_read.EM THEN
FIND(MV_msg,find,1,find_pos);
MV_read.EM := 0;
END_IF;
find_pos
5
17-9
Oprandes :
INSERT
Insert String
Source A
Source B
Start
Dest
Logique relais
?
??
?
??
?
??
?
??
Oprande
Type
Format
Entrez
Remarques
Source A
STRING
point
Source B
STRING
point
Dbut
SINT
INT
DINT
immdiat
point
Rsultat
STRING
point
Texte structur
INSERT(SourceA,SourceB,
Start,Dest);
Code
Cause
51
56
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.
17-10
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
Exemple : Lorsque temp_high est activ, l'instruction INSERT insre les caractres
de string_2 la position 2 dans string_1 et place le rsultat dans
string_3:
Logique relais
temp_high
INSERT
Insert String
Source A
string_1
'AD'
Source B
string_2
'BC'
Start
2
Dest
Texte structur
IF temp_high THEN
INSERT(string_1,string_2,2,string_3);
temp_high := 0;
END_IF;
string_3
'ABCD'
17-11
Oprandes :
Logique relais
MID
Middle String
Source
Qty
Start
Dest
?
??
?
??
?
??
?
??
Oprande
Type
Format
Entrez
Remarques
Source
STRING
point
la chane partir de
laquelle vous voulez copier
des caractres
Quantit
SINT
INT
DINT
immdiat
point
le nombre de caractres
copier
Dbut
SINT
INT
DINT
immdiat
point
la position du premier
caractre copier
Destination
STRING
point
Texte structur
MID(Source,Qty,Start,
Dest);
17-12
Conditions d'erreur :
Type
Code
Cause
Mthode de correction
51
56
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
L'instruction copie les caractres dfinis partir d'une chane et les stocke dans une autre chane.
pendant la post-scrutation
Aucune.
Exemple : Sur les tapis roulants d'un aroport, chaque valise reoit un
code-barres. Les caractres 9 17 de ce code reprsentent le numro
du vol et l'aroport de destination. Une fois que le code a t lu
(bag_read.EM est activ), l'instruction MID copie le numro du vol et
l'aroport de destination dans la chane bag_flt_and_dest.
Logique relais
bag_read.EM
MID
Middle String
Source
bag_barcode
'NWA HOP 5058 AMS 01'
Qty
9
Start
Dest
bag_flt_and_dest
'5058 AMS '
Texte structur
IF bag_read.EM THEN
MID(bar_barcode,9,9,bag_flt_and_dest);
bag_read.EM := 0;
END_IF;
Chapitre
18
Introduction
Si vous voulez
Par exemple
Utilisez cette
instruction
Disponible dans
ces langages
Voir page
STOD
convertir une valeur de balance de
pesage, ou d'un autre quipement
ASCII, en nombre entier pour l'utiliser
dans votre programme
logique relais
texte structur
18-3
STOR
logique relais
texte structur
18-5
DTOS
logique relais
texte structur
18-7
RTOS
logique relais
texte structur
18-9
UPPER
convertir une entre effectue en
majuscules par un oprateur pour que
vous puissiez la chercher dans un
tableau
logique relais
texte structur
18-11
LOWER
convertir une entre effectue en
minuscules par un oprateur pour que
vous puissiez la chercher dans un
tableau
logique relais
texte structur
18-13
18-2
Voir page
CONCAT
17-3
DELETE
17-5
FIND
17-7
INSERT
17-9
MID
17-11
SWPB
6-18
CMP
4-2
EQU
4-7
NEQ
4-38
GEQ
4-11
GRT
4-15
LEQ
4-19
LES
4-23
FSC
7-18
Data Type:
Description:
Notes:
LEN
DINT
number of characters
in the string
The LEN automatically updates to the new count of characters whenever you:
use the String Browser dialog box to enter characters
use instructions that read, convert, or manipulate a string
The LEN shows the length of the current string. The DATA member may contain
additional, old characters, which are not included in the LEN count.
DATA
SINT array
ASCII characters of
the string
To access the characters of the string, address the name of the tag.
For example, to access the characters of the string_1 tag, enter string_1.
Each element of the DATA array contains one character.
You can create new string data types that store less or more characters.
18-3
Oprandes :
Logique relais
STOD
String To DINT
Source
Dest
?
??
?
??
Oprande
Type
Format
Entrez
Remarques
Source
STRING
point
Destination
SINT
INT
DINT
REAL
point
STOD(Source,Dest);
Texte structur
Les oprandes sont les mmes que ceux de l'instruction STOD en
logique relais.
18-4
Conditions d'erreur :
Type
Code
Cause
Mthode de correction
51
53
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
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;
18-5
Oprandes :
STOR
String to Real
Source
Dest
Oprande
Type
Format
Entrez
Remarques
Source
STRING
point
Destination
REAL
point
STOR(Source,Dest);
Texte structur
Les oprandes sont les mmes que ceux de l'instruction STOR en
logique relais.
Code
Cause
51
53
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.
18-6
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
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;
18-7
Oprandes :
DTOS
DINT to String
Source
Dest
Logique relais
?
??
?
??
Oprande
Type
Format
Entrez
Remarques
Source
SINT
INT
DINT
REAL
point
Destination
STRING
point
DTOS(Source,Dest);
Texte structur
Les oprandes sont les mmes que ceux de l'instruction DTOS en
logique relais.
Code
Cause
Mthode de correction
51
52
Excution :
Condition
pendant la pr-scrutation
Aucune.
18-8
Condition
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
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;
18-9
Oprandes :
Logique relais
RTOS
Real to String
Source
Dest
?
??
?
??
Oprande
Type
Format
Entrez
Source
REAL
point
Destination
STRING
point
RTOS(Source,Dest);
Remarques
Texte structur
Les oprandes sont les mmes que ceux de l'instruction RTOS en
logique relais.
Code
Cause
51
52
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.
18-10
Excution :
Condition
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
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;
Majuscule (UPPER)
18-11
Oprandes :
Logique relais
UPPER(Source,Dest);
Oprande
Type
Format
Description
Source
STRING
point
Destination
STRING
point
Texte structur
Les oprandes sont les mmes que ceux de l'instruction UPPER en
logique relais.
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
18-12
Logique relais
Texte structur
IF terminal_read.EM THEN
UPPER(catalog_number,catalog_number_upper_case);
terminal_read.EM := 0;
END_IF;
Minuscule (LOWER)
18-13
Oprandes :
Logique relais
LOWER(Source,Dest);
Oprande
Type
Format
Description
Source
STRING
point
Destination
STRING
point
Texte structur
Les oprandes sont les mmes que ceux de l'instruction LOWER en
logique relais.
pendant la pr-scrutation
Aucune.
pendant l'excution de
l'instruction
pendant la post-scrutation
Aucune.
18-14
Logique relais
Texte structur
IF terminal_read.EM THEN
LOWER(item_number,item_number_lower_case);
terminal_read.EM := 0;
END_IF;
Annexe
Attributs communs
Introduction
Valeurs immdiates
Voir page
Valeurs immdiates
A-1
Conversions de donnes
A-1
Conversions de donnes
Si vous entrez
L'automate stocke
-1
16#ffff (-1)
8#1234 (668)
2#1010 (10)
logique relais
blocs fonctionnels
A-2
Attributs communs
Oui
REAL
Non
DINT
Attributs communs
A-3
Extension de signe
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)
remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B 2#1111_1111_1111_1111
42093
A-4
Attributs communs
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
2#1111_1111_1111_1111
MOV
Move
Source 2#1111_1111_1111_1111
Dest
int_0
2#1111_1111_1111_1111
EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B
int_0
2#1111_1111_1111_1111
42093
Attributs communs
A-5
16#0001_0081 (65,665)
INT :
16#0081 (129)
SINT :
16#81 (-127)
A-6
Attributs communs
-2,5
-2
-1,6
-2
-1,5
-2
-1,4
-1
1,4
1,5
1,6
2,5
IMPORTANT
Annexe
Introduction
IMPORTANT
IREF
pointA
Bloc_02
B-2
pointA
Bloc_02
pointA
Ordre d'excution
B-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
B-4
Si les blocs d'un groupe sont dans une boucle, l'automate ne peut pas
dterminer les entres qui doivent tre accessibles en premier. Utilisez
une boucle de retour pour dterminer les entres qui doivent tre
accessibles en premier. Si un connecteur d'entre est connect une
boucle de retour, il n'est pas ncessaire que l'entre soit accessible
pour que le bloc soit excut. Dans cet exemple, le bloc 1 utilise la
sortie du bloc 3 produite lors de la prcdente excution
du sous-programme.
1
boucle de retour
Rponses de bloc
fonctionnel aux conditions
de dpassement
B-5
Rponse 1 :
Les blocs excutent leur algorithme et
vrifient le rsultat pour NAN ou INF. Si
NAN ou INF, la sortie du bloc est NAN
ou INF.
Rponse 2 :
Les blocs avec limite de sortie excutent
leur algorithme et vrifient le rsultat pour
NAN ou INF. Les limites de sortie sont
dfinies par les paramtres d'entre
HighLimit et LowLimit. Si INF, la sortie du
bloc donne un rsultat limit. Si NAN, les
limites de sortie ne sont pas utilises et la
sortie du bloc est NAN.
Rponse 3 :
Il n'y a pas de condition de dpassement. Ces
instructions ont gnralement une sortie
boolenne.
ALM
DEDT
DERV
ESEL
FGEN
HPF
LDL2
LDLG
LPF
MAVE
MAXC
MINC
MSTD
MUX
HLL
INTG
PI
PIDE
SCL
SOC
BAND
BNOT
BOR
BXOR
CUTD
D2SD
D3SD
DFF
JKFF
OSFI
NTCH
PMUL
POSP
RLIM
RMPS
SCRV
SEL
SNEG
SRTP
SSUM
TOT
UPDN
Modes de temporisation
OSRI
RESD
RTOR
SETD
TOFR
TONR
NTCH
DERV
PI
HPF
PIDE
INTG
RLIM
LDLG
SCRV
LDL2
SOC
LPF
TOT
B-6
Description
priodique
En mode priodique, la variable de temps (DeltaT) utilise par l'instruction est la frquence de scrutation de
la tche lorsque l'instruction est excute dans une tche priodique. Si l'instruction est excute pendant
une tche continue, la variable DeltaT est gale au temps coul depuis l'excution prcdente.
La mise jour de l'entre procd doit tre synchronise avec l'excution de la tche ou chantillonne 5
10 fois plus rapidement que l'excution de la tche, afin de minimiser l'erreur d'chantillonnage entre
l'entre et l'instruction.
surchantillonnage
En mode de surchantillonnage, la variable de temps (DeltaT) utilise par l'instruction est la valeur crite
dans le paramtre OversampleDT de l'instruction. Utilisez ce mode lorsque l'instruction est excute dans
une tche continue et lorsque l'entre procd n'a pas d'horodatage associ ses mises jour. Si l'entre
procd a une valeur d'horodatage, utilisez le mode d'chantillonnage en temps rel.
Ajoutez une logique votre programme pour commander l'excution de l'instruction. Vous pouvez utiliser,
par exemple, un temporisateur rgl sur la valeur OversampleDeltaT pour commander l'excution en
utilisant l'entre EnableIn de l'instruction.
L'entre procd doit tre chantillonne 5 10 fois plus rapidement que l'excution de l'instruction, afin de
minimiser l'erreur d'chantillonnage entre l'entre et l'instruction.
chantillonnage en temps
rel
En mode d'chantillonnage en temps rel, la variable de temps (DeltaT) utilise par l'instruction est la
diffrence entre deux valeurs d'horodatage qui correspondent aux mises jour de l'entre procd. Utilisez
ce mode lorsque l'instruction est excute dans une tche continue et lorsque l'entre procd a un
horodatage associ ses mises jour.
La valeur d'horodatage est lue partir du nom de point entr pour le paramtre RTSTimeStamp de
l'instruction. Ce nom de point est, en principe, un paramtre du module d'entre associ l'entre procd.
L'instruction compare la valeur RTSTime configure (frquence d'actualisation attendue) la valeur DeltaT
calcule pour dterminer si toutes les mises jour de l'entre procd sont lues par l'instruction. Si DeltaT
n'est pas moins d'1 milliseconde du temps de configuration, l'instruction active le bit d'tat RTSMissed
pour indiquer un problme de lecture des mises jour de l'entre du module.
B-7
Paramtres d'entre
Paramtre d'entre
Type de
donnes
Description
TimingMode
DINT
OversampleDT
REAL
RTSTime
DINT
RTSTimeStamp
DINT
B-8
Paramtres de sortie
Paramtre de sortie
Type de
donnes
Description
DeltaT
REAL
Temps coul entre les mises jour. Temps coul en secondes, utilis par l'algorithme de
commande pour calculer la sortie procd.
Priodique : DeltaT = frquence de scrutation de la tche si la tche est priodique ; DeltaT =
temps coul depuis la prcdente 'excution de l'instruction si la tche est continue.
Surchantillonnage : DeltaT = OversampleDT
Echantillonnage en temps rel :DeltaT = (RTSTimeStampn - RTSTimeStampn-1)
Status
DINT
TimingModeInv
(Status.27)
BOOL
Utilis uniquement en mode d'chantillonnage en temps rel. Activ quand ABS | DeltaT RTSTime | > 1 (0,001 seconde).
RTSTimeInv
(Status.29)
BOOL
RTSTimeStampInv
(Status.30)
BOOL
DeltaTInv (Status.31)
BOOL
B-9
Dtermine le mode de
temporisation
TimingMode = 0
Temporisation priodique
TimingMode = 1
TimingMode = 2
Temporisation de surchantillonnage
DeltaT = OversampleDT
Tche priodique
B-10
Commande
Programme/Oprateur
Description
.ProgProgReq
.ProgOperReq
.OperProgReq
.OperOperReq
B-11
Lorsque StartupSequenceActive
est activ, l'instruction PIDE
passe en commande
Programme et en mode Manuel.
La valeur StartupCV est utilise
comme sortie de boucle.
B-12
Annexe
Introduction
Voir page
C-1
Affectations
C-2
Expressions
C-4
Instructions
C-10
Instructions de test
C-11
Commentaires
C-26
Terme
Dfinition
Exemples
affectation
(voir page C-2)
point := expression;
expression
(voir page C-4)
valeur1
des immdiats
Constante.
des oprateurs
point1 + point2
point1 >= valeur1
des fonctions
fonction(point1)
C-2
Terme
Dfinition
Exemples
une instruction
(voir page C-10)
Instruction autonome.
Dans une instruction, les oprandes sont entre parenthses.
Suivant l'instruction, il peut y avoir aucun, un ou plusieurs oprandes.
Lorsqu'elle est excute, une instruction donne une ou plusieurs valeurs
qui font partie d'une structure de donnes.
Terminez l'instruction par un point-virgule ;.
instruction();
instruction(oprande);
instruction(oprande1,
oprande2,oprande3);
Bien que leurs syntaxes soient similaires, les instructions diffrent des
fonctions dans la mesure o elles ne peuvent pas tre utilises dans des
expressions, alors que les fonctions ne peuvent tre utilises que dans
des expressions.
des instructions
de test
(voir page C-11)
IF...THEN
CASE
FOR...DO
WHILE...DO
REPEAT...UNTIL
EXIT
des
commentaires
(voir page C26)
//commentaire
Affectations
(*dbut de commentaire . .
. fin de commentaire*)
/*dbut de commentaire . .
. fin de commentaire*/
Description
point
:=
symbole de l'affectation
expression
BOOL
expression boolenne
SINT
INT
DINT
REAL
expression numrique
termine l'affectation
C-3
Description
point
[:=]
expression
Utilisez ce type
d'expression :
BOOL
expression boolenne
SINT
INT
DINT
REAL
expression numrique
termine l'affectation
C-4
Incorrect
string1.DATA[0]:= 65;
string1.DATA[0] := A;
string1.DATA[0]:= string2.DATA[0];
string1 := string2;
Pour ajouter ou insrer des caractres dans une chane, utilisez l'une
de ces instructions de chane ASCII :
Expressions
Pour
CONCAT
INSERT
C-5
Voir
addition
DINT, REAL
soustraction/ngation
DINT, REAL
multiplication
DINT, REAL
exposant (x la puissance y)
**
DINT, REAL
division
DINT, REAL
modulo
MOD
DINT, REAL
C-6
Type de donnes
optimal
valeur absolue
ABS (expression_numrique)
DINT, REAL
cosinus d'arc
ACOS (expression_numrique)
REAL
sinus d'arc
ASIN (expression_numrique)
REAL
tangente d'arc
ATAN (expression_numrique)
REAL
cosinus
COS (expression_numrique)
REAL
radians en degrs
DEG (expression_numrique)
DINT, REAL
logarithme naturel
LN (expression_numrique)
REAL
logarithme dcimal
LOG (expression_numrique)
REAL
degrs en radians
RAD (expression_numrique)
DINT, REAL
sinus
SIN (expression_numrique)
REAL
racine carre
SQRT (expression_numrique)
DINT, REAL
tangente
TAN (expression_numrique)
REAL
troncation
TRUNC
(expression_numrique)
DINT, REAL
Par exemple
Utilisez ce format
Exemple
Pour cette situation
Ecrivez
gain_4_adj :=
gain_4+15;
oprateur valeur1
fonction(expression_numrique)
overtravel_POS :=
ABS(overtravel);
valeur1 oprateur
(fonction((valeur2+valeur3)/2)
position :=
adjustment +
ABS((sensor1 +
sensor2)/2);
C-7
Le rsultat est
vraie
fausse
Type de donnes
optimal
gal
infrieur
<
infrieur ou gal
<=
suprieur
>
suprieur ou gal
>=
diffrent
<>
Par exemple :
Utilisez ce format
Exemple
Pour cette situation
Ecrivez
IF temp<100 THEN...
chane_de_caractres1
oprateur
chane_de_caractres2
IF bar_code=dest THEN...
caractre1 oprateur
caractre2
IF bar_code.DATA[0]=65
THEN...
C-8
in
f
ri
e
u
r
s
u
p
ri
e
u
Caractres ASCII
Codes Hex
1ab
$31$61$62
1b
$31$62
$41
AB
$41$42
$42
$61
ab
$61$62
AB < B
a>B
Le rsultat est
vraie
fausse
Pour
Type de donnes
ET logique
&, AND
BOOL
OU logique
OR
BOOL
OU exclusif logique
XOR
BOOL
complment logique
NOT
BOOL
C-9
Par exemple :
Utilisez ce format
Exemple
Pour cette situation
Ecrivez
pointBOOL
IF photoeye THEN...
NOT pointBOOL
expression1 OR expression2
IF photoeye OR (temp<100)
THEN...
IF photoeye1 XOR
photoeye2 THEN...
pointBOOL := expression1
& expression2
Type de donnes
optimal
ET sur bits
&, AND
DINT
OU sur bits
OR
DINT
XOR
DINT
NOT
DINT
Par exemple :
Utilisez ce format
Exemple
Pour cette situation
Ecrivez
C-10
Instructions
Opration
1.
()
2.
fonction ()
3.
**
4.
(ngation)
5.
NOT
6.
*, /, MOD
7.
+, - (soustraction)
8.
9.
=, <>
10.
&, AND
11.
XOR
12.
OR
C-11
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;
Instructions de test
Si vous voulez
Voir page
IF...THEN
texte structur
C-12
CASE...OF
texte structur
C-15
FOR...DO
texte structur
C-17
WHILE...DO
texte structur
C-20
REPEAT...UNTIL
texte structur
C-23
C-12
Oprandes :
Texte structur
IF expression_boolenne
THEN
<instruction>;
END_IF;
Oprande
Type
Format
Entrez
expression_
boolenne
BOOL
point
expression
.
.
.
facultatif
ELSIF
expression_boolenne2 THEN
<instruction>;
.
.
.
facultatif
ELSE
<instruction>;
.
.
.
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.
C-13
Et
IFTHEN
IFTHENELSIF
IFTHENELSIFELSE
Exemple 1 : IFTHEN
Si vous voulez ceci
conveyor := 0;
alarm := 1;
END_IF;
Exemple 2 : IFTHENELSE
Si vous voulez ceci
IF conveyor_direction THEN
voyant = teint
Sinon voyant = allum
light := 0;
ELSE
light [:=] 1;
END_IF;
C-14
Exemple 3 : IFTHENELSIF
Si vous voulez ceci
Sugar.Inlet [:=] 1;
Jusqu' ce que dtecteur de niveau haut sucre = haut (dsactiv) ELSIF NOT(Sugar.High) THEN
Sugar.Inlet := 0;
END_IF;
Exemple 4 : IFTHENELSIFELSE
Si vous voulez ceci
C-15
Oprandes :
Texte structur
CASE expression_numrique
OF
Oprande
Type
Format
Entrez
slecteur1:
instruction;
expression_
numrique
SINT
INT
DINT
REAL
point
expression
slecteur
SINT
INT
DINT
REAL
immdiat
slecteurN:
instruction;
ELSE
instruction;
END_CASE;
IMPORTANT
indiquez autant de
valeurs de slecteur
alternatives (chemins)
que ncessaire
slecteur1
:
<instruction
>;
.
.
.
slecteur2
:
<instruction
>;
.
.
.
slecteur3
:
<instruction
>;
.
.
.
ELSE
<instruction
>;
facultatif
.
.
.
END_CASE;
Publication 1756-RM003F-FR-P - Mai 2002
C-16
Entrez
une valeur
valeur: instruction
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
CASE recipe_number OF
1:
Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;
2,3:
Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;
4..7:
Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;
8,11-13
Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;
ELSE
Ingredient_A.Outlet_1 [:=]0;
Ingredient_A.Outlet_4 [:=]0;
Ingredient_B.Outlet_2 [:=]0;
Ingredient_B.Outlet_4 [:=]0;
END_CASE;
C-17
Oprandes :
Texte structur
FOR comptage:=
valeur_initiale TO
valeur_finale BY incrment
DO
Oprande
Type
Format
Description
comptage
SINT
INT
DINT
point
valeur_ini SINT
tiale
INT
DINT
point
expression
immdiat
valeur_fin SINT
ale
INT
DINT
point
expression
immdiat
SINT
INT
DINT
point
expression
immdiat
<instruction>;
END_FOR;
incrment
IMPORTANT
BY incrment
DO
<instruction>;
IF expression_boolenne
THEN
EXIT;
facultatif
END_IF;
END_FOR;
C-18
Excute x fois ?
oui
non
non
instruction 1
instruction 2
instruction 3
instruction 4
instruction 1
instruction 2
instruction 3
instruction 4
Sortir ?
reste du sous-programme
oui
oui
non
reste du sous-programme
Exemple 1 :
Si vous voulez ceci
For subscript:=0 to 31 by 1 do
array[subscript] := 0;
End_for;
C-19
Exemple 2 :
Si vous voulez ceci
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.
C-20
Oprandes :
Texte structur
WHILE expression_boolenne
DO
Oprande
<instruction>;
Type
Format
Entrez
BOOL
point
expression
expression_
boolenne
END_WHILE;
IMPORTANT
IF
expression_boolenne2
THEN
facultatif
EXIT;
END_IF;
END_WHILE;
C-21
fausse
fausse
expression boolenne
vraie
vraie
instruction 1
instruction 2
instruction 3
instruction 4
instruction 1
instruction 2
instruction 3
instruction 4
Sortir ?
oui
non
reste du sous-programme
reste du sous-programme
Exemple 1 :
Si vous voulez ceci
pos := 0;
C-22
Exemple 2 :
Si vous voulez ceci
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;
REPEATUNTIL
(REPETER... JUSQU'A)
C-23
Oprandes :
Texte structur
REPEAT
<instruction>;
UNTIL expression_boolenne
END_REPEAT;
IMPORTANT
Oprande
Type
Format
Entrez
expression_
boolenne
BOOL
point
expression
IF expression_boolenne2
THEN
facultatif
EXIT;
END_IF;
UNTIL
expression_boolenne1
END_REPEAT;
C-24
expression boolenne
instruction 1
instruction 2
instruction 3
instruction 4
Sortir ?
vraie
oui
non
fausse
expression boolenne
reste du sous-programme
vraie
fausse
reste du sous-programme
Exemple 1 :
Si vous voulez ceci
pos := -1;
REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR
(structarray[pos].value = targetvalue))
end_repeat;
C-25
Exemple 2 :
Si vous voulez ceci
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;
C-26
Commentaires
//commentaire
(*commentaire*)
/*commentaire*/
(*commentaire*)
/*commentaire*/
(*dbut du commentaire . . .
fin du commentaire*)
/*dbut du commentaire . . .
fin du commentaire*/
Par exemple :
Format
Exemple
//commentaire
(*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);
Index
A
activation d'interruption utilisateur 10-20
activation de sortie 1-6
addition 5-6
ajout d'criture ASCII 16-23
alarmes 12-25
anticipation de vitesse 12-34
attributs
conversion des types de donnes A-1
valeurs immdiates A-1
attributs communs A-1
conversion des types de donnes A-1
valeurs immdiates A-1
B
BAND 6-34
BNOT 6-42
BOR 6-37
BXOR 6-40
C
calcul 5-2
caractres ASCII dans buffer 16-8
CASE (EN FONCTION) C-15
chane vers DINT 18-3
chane vers REAL 18-5
chargement FIFO 8-8
chargement LIFO 8-20
chargement squenceur 9-10
codes d'erreur
ASCII 16-4
instruction MSG 3-8
combinaison des types de donnes A-1
commande Programme/Oprateur
prsentation B-10
comparaison 4-2
comparaison des bits de fichier 12-2
COMPLEMENT boolen 6-42
COMPLEMENT sur bits 6-31
comptage dcrmental 2-25
comptage incrmental 2-22
comptage incrmental/dcrmental 2-29
concatnation de chanes 17-3
conditions de dpassement B-5
configuration 3-13
instruction MSG 3-13
instruction PID 12-23
conversion des types de donnes A-1
conversion en DCB 15-6
D
dcalage binaire droite 8-5
dcalage binaire gauche 8-2
dcalage de sortie 12-34
dchargement FIFO 8-14
dchargement LIFO 8-26
dfinir la valeur systme 3-30
degr 15-2
dsactivation d'interruption utilisateur 10-20
dtection par diagnostic 12-9
dverrouillage de sortie 1-9
diffrent 4-38
DINT vers chane 18-7
distribution d'un champ de bits 6-11
distribution d'un champ de bits avec cible 6-14
division 5-15
E
cart type 7-46
criture ASCII 16-27
effacement buffer ASCII 16-10
effacement dans une chane 17-5
effacer 6-17
gal 4-7
galit avec masque 4-33
lments
instruction SIZE 7-52
entre squenceur 9-2
ET boolen 6-34
ET sur bits 6-22
tiquette 10-2
examine si contact ouvert 1-4
excution sur front 1-11
exposant 14-6
expressions
format 4-4, 5-4, 7-17, 7-23
oprateurs valables 4-4, 5-4, 7-16, 7-23
ordre d'excution des oprations 4-5, 5-4, 7-17, 7-24
F
fichier arithmtique et logique 7-7
Publication 1756-RM003F-FR-P - Mai 2002
Index
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
Index
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
P
pas d'opration 10-23
permutation d'octets 6-18
proportionnel, intgral et driv 12-19
R
N
ngation 5-26
O
objet CONTROLLER 3-32
objet CONTROLLERDEVICE 3-33
objet CST 3-35
objet DF1 3-36
objet FAULTLOG 3-39
objet MESSAGE 3-40
objet MODULE 3-42
objet MOTIONGROUP 3-43
objet PROGRAM 3-44
objet ROUTINE 3-45
objet SERIALPORT 3-45
objet TASK 3-47
objet WALLCLOCKTIME 3-47
objets
CONTROLLER 3-32
CONTROLLERDEVICE 3-33
CST 3-35
DF1 3-36
FAULTLOG 3-39
instruction GSV/SSV 3-32
MESSAGE 3-40
MODULE 3-42
MOTIONGROUP 3-43
PROGRAM 3-44
ROUTINE 3-45
SERIALPORT 3-45
TASK 3-47
WALLCLOCKTIME 3-47
oprateurs 4-4, 5-4, 7-16, 7-23
ordre d'excution B-3
ordre d'excution des oprations 4-5, 7-24
ordre des oprations 5-4, 7-17
OU boolen 6-37
OU exclusif boolen 6-40
Publication 1756-RM003F-FR-P - Mai 2002
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
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
Index
Dc. Hex.
Caractre
Dc. Hex.
Caractre
Dc. Hex.
Caractre
Dc. Hex.
[ctrl-@] NUL 0
$00
&
38
$26
76
$4C
114
$72
[ctrl-A] SOH
$01
39
$27
77
$4D
115
$73
[ctrl-B] STX
$02
40
$28
78
$4E
116
$74
[ctrl-C] ETX
$03
41
$29
79
$4F
117
$75
[ctrl-D] EOT
$04
42
$2A
80
$50
118
$76
[ctrl-E] ENQ
$05
43
$2B
81
$51
119
$77
[ctrl-F] ACK
$06
44
$2C
82
$52
120
$78
[ctrl-G] BEL
$07
45
$2D
83
$53
121
$79
[ctrl-H] BS
$08
46
$2E
84
$54
122
$7A
[ctrl-I] HT
$09
47
$2F
85
$55
123
$7B
[ctrl-J] LF
10
$l ($0A)
48
$30
86
$56
124
$7C
[ctrl-K] VT
11
$0B
49
$31
87
$57
125
$7D
[ctrl-L] FF
12
$0C
50
$32
88
$58
126
$7E
[ctrl-M] CR
13
$r ($0D)
51
$33
89
$59
DEL
127
$7F
[ctrl-N] SO
14
$0E
52
$34
90
$5A
[ctrl-O] SI
15
$0F
53
$35
91
$5B
[ctrl-P] DLE
16
$10
54
$36
92
$5C
[ctrl-Q] DC1
17
$11
55
$37
93
$5D
[ctrl-R] DC2
18
$12
56
$38
94
$5E
[ctrl-S] DC3
19
$13
57
$39
95
$5F
[ctrl-T] DC4
20
$14
58
$3A
96
$60
[ctrl-U] NAK
21
$15
59
$3B
97
$61
[ctrl-V] SYN
22
$16
<
60
$3C
98
$62
[ctrl-W] ETB
23
$17
61
$3D
99
$63
[ctrl-X] CAN
24
$18
>
62
$3E
100
$64
[ctrl-Y] EM
25
$19
63
$3F
101
$65
[ctrl-Z] SUB
26
$1A
64
$40
102
$66
ctrl-[ ESC
27
$1B
65
$41
103
$67
[ctrl-\] FS
28
$1C
66
$42
104
$68
ctrl-] GS
29
$1D
67
$43
105
$69
[ctrl-^] RS
30
$1E
68
$44
106
$6A
[ctrl-_] US
31
$1F
69
$45
107
$6B
ESPACE
32
$20
70
$46
108
$6C
33
$21
71
$47
109
$6D
34
$22
72
$48
110
$6E
35
$23
73
$49
111
$6F
36
$24
74
$4A
112
$70
37
$25
75
$4B
113
$71
Quatrime de couverture
PN 957707-64
Copyright 2002 Rockwell Automation. Tous droits rservs. Imprim aux Etats-Unis.