ST - Panasonic Electric Works Europe AG

Anuncio
FP0/FP1/FPM
Introducción
Introducción
Este manual explica las instrucciones disponibles en los autómatas programables
FP0/FP--M/FP1.
• MS--DOS y Windows están registradas como marcas registradas de Microsoft
Corporation.
• IBM Personal Computer AT es una marca registrada de International Business
Machines Corporation.
I
Contenidos
FP0/FP1/FPM
Contenidos
Capítulo 1 Programación
1.1
1.2
1.3
Programación a través del ordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 -- 3
Programación a través de la consola de programación
FP Programmer II Ver. 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 -- 5
Tabla de herramientas de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 -- 7
Capítulo 2 Contactos, áreas de memoria, y constantes
2.1
2.2
2.3
2.4
Tipos de contactos y su función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 3
2.1.1 Tipos de contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 3
2.1.2 Numeración de contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 4
2.1.3 Entradas externas (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 6
2.1.4 Salidas externas (Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 7
2.1.5 Relés internos (R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 8
2.1.6 Relés internos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 9
2.1.7 Temporizadores (T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 10
2.1.8 Contadores (C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 11
Constantes y áreas de memoria: Tipos y función . . . . . . . . . . . . . . . . . . . . 2 -- 13
2.2.1 Tipos de áreas de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 13
2.2.2 Registros de datos (DT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 15
2.2.3 Registros de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 16
2.2.4 WX, WY, WR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 17
2.2.5 Área de preselección de: Temporizadores/Contadores (SV) . . . . 2 -- 18
2.2.6 Área de valor actual de: Temporizadores/Contadores (EV) . . . . . 2 -- 19
2.2.7 Registros de índice (IX, IY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 20
Constantes, explicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 23
2.3.1 Constantes decimales (K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 23
2.3.2 Constantes hexadecimales (H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 24
2.3.3 Constantes de caracteres (M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 25
Números, manejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 26
2.4.1 Números en autómatas progamables . . . . . . . . . . . . . . . . . . . . . . . 2 -- 26
2.4.2 Overflow y Underflow ( rebosamiento ) . . . . . . . . . . . . . . . . . . . . . 2 -- 29
Capítulo 3 Instrucciones Básicas
3.1
3.2
3.3
II
Tipos de instrucciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 3
3.1.1 Instrucciones de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 3
3.1.2 Instrucciones de función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 4
3.1.3 Intrucciones de control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 5
3.1.4 Intrucciones de comparación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 6
Tablas de instrucciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 7
Descripción de instrucciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 13
FP0/FP1/FPM
ST . . . . . . . . . . . . . . . . . . . . . . 3 -- 14
ST/ . . . . . . . . . . . . . . . . . . . . . . 3 -- 14
OT . . . . . . . . . . . . . . . . . . . . . . 3 -- 14
/ . . . . . . . . . . . . . . . . . . . . . . . . 3 -- 16
AN . . . . . . . . . . . . . . . . . . . . . . 3 -- 17
AN/ . . . . . . . . . . . . . . . . . . . . . 3 -- 17
OR . . . . . . . . . . . . . . . . . . . . . . 3 -- 18
OR/ . . . . . . . . . . . . . . . . . . . . . 3 -- 18
ANS . . . . . . . . . . . . . . . . . . . . . 3 -- 19
ORS . . . . . . . . . . . . . . . . . . . . 3 -- 20
PSHS . . . . . . . . . . . . . . . . . . . 3 -- 21
RDS . . . . . . . . . . . . . . . . . . . . . 3 -- 21
POPS . . . . . . . . . . . . . . . . . . . 3 -- 21
DF . . . . . . . . . . . . . . . . . . . . . . 3 -- 24
DF/ . . . . . . . . . . . . . . . . . . . . . . 3 -- 24
SET . . . . . . . . . . . . . . . . . . . . . 3 -- 28
RST . . . . . . . . . . . . . . . . . . . . . 3 -- 28
KP . . . . . . . . . . . . . . . . . . . . . . 3 -- 30
NOP . . . . . . . . . . . . . . . . . . . . 3 -- 31
TML . . . . . . . . . . . . . . . . . . . . . 3 -- 32
TMR . . . . . . . . . . . . . . . . . . . . 3 -- 32
TMX . . . . . . . . . . . . . . . . . . . . . 3 -- 32
TMY . . . . . . . . . . . . . . . . . . . . . 3 -- 32
CT . . . . . . . . . . . . . . . . . . . . . . 3 -- 39
SR . . . . . . . . . . . . . . . . . . . . . . 3 -- 46
MC . . . . . . . . . . . . . . . . . . . . . . 3 -- 49
MCE . . . . . . . . . . . . . . . . . . . . 3 -- 49
JP . . . . . . . . . . . . . . . . . . . . . . 3 -- 52
LBL . . . . . . . . . . . . . . 3 -- 52, 3 -- 55
LOOP . . . . . . . . . . . . . . . . . . . 3 -- 55
ED . . . . . . . . . . . . . . . . . . . . . . 3 -- 59
CNDE . . . . . . . . . . . . . . . . . . . 3 -- 60
SSTP . . . . . . . . . . . . . . . . . . . . 3 -- 61
NSTP . . . . . . . . . . . . . . . . . . . 3 -- 61
NSTL . . . . . . . . . . . . . . . . . . . . 3 -- 61
CSTP . . . . . . . . . . . . . . . . . . . 3 -- 61
STPE . . . . . . . . . . . . . . . . . . . . 3 -- 61
CALL . . . . . . . . . . . . . . . . . . . . 3 -- 71
SUB . . . . . . . . . . . . . . . . . . . . . 3 -- 71
RET . . . . . . . . . . . . . . . . . . . . . 3 -- 71
Contenidos
INT . . . . . . . . . . . . . . . . . . . . . .
IRET . . . . . . . . . . . . . . . . . . . .
ICTL . . . . . . . . . . . . . . . . . . . .
ST = . . . . . . . . . . . . . . . . . . . .
ST <> . . . . . . . . . . . . . . . . . . .
ST > . . . . . . . . . . . . . . . . . . . .
ST >= . . . . . . . . . . . . . . . . . . .
ST < . . . . . . . . . . . . . . . . . . . .
ST <= . . . . . . . . . . . . . . . . . . .
STD = . . . . . . . . . . . . . . . . . . .
STD <> . . . . . . . . . . . . . . . . . .
STD > . . . . . . . . . . . . . . . . . . .
STD >= . . . . . . . . . . . . . . . . . .
STD < . . . . . . . . . . . . . . . . . . .
STD <= . . . . . . . . . . . . . . . . . .
AN = . . . . . . . . . . . . . . . . . . . .
AN <> . . . . . . . . . . . . . . . . . . .
AN > . . . . . . . . . . . . . . . . . . . .
AN >= . . . . . . . . . . . . . . . . . . .
AN < . . . . . . . . . . . . . . . . . . . .
AN <= . . . . . . . . . . . . . . . . . . .
AND = . . . . . . . . . . . . . . . . . . .
AND <> . . . . . . . . . . . . . . . . . .
AND > . . . . . . . . . . . . . . . . . . .
AND >= . . . . . . . . . . . . . . . . . .
AND < . . . . . . . . . . . . . . . . . . .
AND <= . . . . . . . . . . . . . . . . . .
OR = . . . . . . . . . . . . . . . . . . . .
OR <> . . . . . . . . . . . . . . . . . . .
OR > . . . . . . . . . . . . . . . . . . . .
OR >= . . . . . . . . . . . . . . . . . . .
OR < . . . . . . . . . . . . . . . . . . . .
OR <= . . . . . . . . . . . . . . . . . . .
ORD = . . . . . . . . . . . . . . . . . . .
ORD <> . . . . . . . . . . . . . . . . .
ORD > . . . . . . . . . . . . . . . . . . .
ORD >= . . . . . . . . . . . . . . . . .
ORD < . . . . . . . . . . . . . . . . . . .
ORD <= . . . . . . . . . . . . . . . . .
3 -- 74
3 -- 74
3 -- 80
3 -- 85
3 -- 85
3 -- 85
3 -- 85
3 -- 85
3 -- 85
3 -- 87
3 -- 87
3 -- 87
3 -- 87
3 -- 87
3 -- 87
3 -- 89
3 -- 89
3 -- 89
3 -- 89
3 -- 89
3 -- 89
3 -- 91
3 -- 91
3 -- 91
3 -- 91
3 -- 91
3 -- 91
3 -- 93
3 -- 93
3 -- 93
3 -- 93
3 -- 93
3 -- 93
3 -- 96
3 -- 96
3 -- 96
3 -- 96
3 -- 96
3 -- 96
III
Contenidos
FP0/FP1/FPM
Capítulo 4 Instrucciones de alto nivel
4.1
4.2
4.3
IV
Descripción de las instrucciones de alto nivel . . . . . . . . . . . . . . . . . . . . . . . . 4 -- 3
4.1.1 Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 -- 3
4.1.2 Números y programación de las instrucciones de alto nivel . . . . . 4 -- 4
4.1.3 Instrucciones de alto nivel y contactos de entrada . . . . . . . . . . . . . 4 -- 5
4.1.4 Tipos de instrucciones de alto nivel . . . . . . . . . . . . . . . . . . . . . . . . . . 4 -- 6
Tablas de instrucciones de alto nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 -- 11
Descripción de las instrucciones de alto nivel . . . . . . . . . . . . . . . . . . . . . . . 4 -- 23
F0 (MV) . . . . . . . . . . . . . . . . . . 4 -- 24
F52 (B%) . . . . . . . . . . . . . . . 4 -- 104
F1 (DMV) . . . . . . . . . . . . . . . . 4 -- 26
F53 (DB%) . . . . . . . . . . . . . . 4 -- 106
F2 (MV/) . . . . . . . . . . . . . . . . . 4 -- 28
F55 (B+1) . . . . . . . . . . . . . . . 4 -- 109
F3 (DMV/) . . . . . . . . . . . . . . . . 4 -- 30
F56 (DB+1) . . . . . . . . . . . . . 4 -- 111
F5 (BTM) . . . . . . . . . . . . . . . . 4 -- 32
F57 (B--1) . . . . . . . . . . . . . . . 4 -- 113
F6 (DGT) . . . . . . . . . . . . . . . . 4 -- 34
F58 (DB--1) . . . . . . . . . . . . . 4 -- 115
F10 (BKMV) . . . . . . . . . . . . . . 4 -- 37
F60 (CMP) . . . . . . . . . . . . . . 4 -- 117
F11 (COPY) . . . . . . . . . . . . . . 4 -- 39
F61 (DCMP) . . . . . . . . . . . . . 4 -- 121
F15 (XCH) . . . . . . . . . . . . . . . 4 -- 41
F62 (WIN) . . . . . . . . . . . . . . . 4 -- 125
F16 (DXCH) . . . . . . . . . . . . . . 4 -- 43
F63 (DWIN) . . . . . . . . . . . . . 4 -- 127
F17 (SWAP) . . . . . . . . . . . . . . 4 -- 45
F64 (BCMP) . . . . . . . . . . . . . 4 -- 129
F20 (+) . . . . . . . . . . . . . . . . . . 4 -- 47
F65 (WAN) . . . . . . . . . . . . . . 4 -- 132
F21 (D+) . . . . . . . . . . . . . . . . . 4 -- 49
F66 (WOR) . . . . . . . . . . . . . . 4 -- 134
F22 (+) . . . . . . . . . . . . . . . . . . 4 -- 51
F67 (XOR) . . . . . . . . . . . . . . 4 -- 136
F23 (D+) . . . . . . . . . . . . . . . . . 4 -- 53
F68 (XNR) . . . . . . . . . . . . . . 4 -- 138
F25 (--) . . . . . . . . . . . . . . . . . . 4 -- 55
F70 (BCC) . . . . . . . . . . . . . . 4 -- 140
F26 (D--) . . . . . . . . . . . . . . . . . 4 -- 57
F71 (HEXA) . . . . . . . . . . . . . 4 -- 143
F27 (--) . . . . . . . . . . . . . . . . . . 4 -- 59
F72 (AHEX) . . . . . . . . . . . . . 4 -- 146
F28 (D--) . . . . . . . . . . . . . . . . . 4 -- 61
F73 (BCDA) . . . . . . . . . . . . . 4 -- 149
F30 (*) . . . . . . . . . . . . . . . . . . 4 -- 63
F74 (ABCD) . . . . . . . . . . . . . 4 -- 153
F31(D*) . . . . . . . . . . . . . . . . . . 4 -- 65
F75 (BINA) . . . . . . . . . . . . . . 4 -- 157
F32 (%) . . . . . . . . . . . . . . . . . . 4 -- 67
F76 (ABIN) . . . . . . . . . . . . . . 4 -- 160
F33 (D%) . . . . . . . . . . . . . . . . 4 -- 69
F77 (DBIA) . . . . . . . . . . . . . . 4 -- 163
F35 (+1) . . . . . . . . . . . . . . . . . 4 -- 71
F78 (ADBI) . . . . . . . . . . . . . . 4 -- 166
F36 (D+1) . . . . . . . . . . . . . . . . 4 -- 73
F80 (BCD) . . . . . . . . . . . . . . 4 -- 170
F37 (--1) . . . . . . . . . . . . . . . . . 4 -- 75
F81 (BIN) . . . . . . . . . . . . . . . 4 -- 172
F38 (D--1) . . . . . . . . . . . . . . . . 4 -- 77
F82 (DBCD) . . . . . . . . . . . . . 4 -- 174
F40 (B+) . . . . . . . . . . . . . . . . . 4 -- 79
F83 (DBIN) . . . . . . . . . . . . . . 4 -- 176
F41 (DB+) . . . . . . . . . . . . . . . 4 -- 81
F84 (INV) . . . . . . . . . . . . . . . 4 -- 178
F42 (B+) . . . . . . . . . . . . . . . . . 4 -- 84
F85 (NEG) . . . . . . . . . . . . . . 4 -- 179
F43 (DB+) . . . . . . . . . . . . . . . 4 -- 86
F86 (DNEG) . . . . . . . . . . . . . 4 -- 181
F45 (B--) . . . . . . . . . . . . . . . . . 4 -- 89
F87 (ABS) . . . . . . . . . . . . . . 4 -- 183
F46 (DB--) . . . . . . . . . . . . . . . . 4 -- 91
F88 (DABS) . . . . . . . . . . . . . 4 -- 185
F47 (B--) . . . . . . . . . . . . . . . . . 4 -- 94
F89 (EXT) . . . . . . . . . . . . . . . 4 -- 187
F48 (DB--) . . . . . . . . . . . . . . . . 4 -- 97
F90 (DECO) . . . . . . . . . . . . . 4 -- 189
F50 (B*) . . . . . . . . . . . . . . . . 4 -- 100
F91 (SEGT) . . . . . . . . . . . . . 4 -- 193
F51 (DB*) . . . . . . . . . . . . . . . 4 -- 102
F92 (ENCO) . . . . . . . . . . . . . 4 -- 195
FP0/FP1/FPM
F93 (UNIT) . . . . . . . . . . . . . . 4 -- 198
F94 (DIST) . . . . . . . . . . . . . . 4 -- 200
F95 (ASC) . . . . . . . . . . . . . . 4 -- 202
F96 (SRC) . . . . . . . . . . . . . . 4 -- 204
F100 (SHR) . . . . . . . . . . . . . 4 -- 207
F101 (SHL) . . . . . . . . . . . . . 4 -- 209
F105 (BSR) . . . . . . . . . . . . . 4 -- 211
F106 (BSL) . . . . . . . . . . . . . . 4 -- 213
F110 (WSHR) . . . . . . . . . . . 4 -- 215
F111 (WSHL) . . . . . . . . . . . . 4 -- 217
F112 (WBSR) . . . . . . . . . . . 4 -- 219
F113 (WBSL) . . . . . . . . . . . . 4 -- 221
F118 (UDC) . . . . . . . . . . . . . 4 -- 223
F119 (LRSR) . . . . . . . . . . . . 4 -- 227
F120 (ROR) . . . . . . . . . . . . . 4 -- 231
F121 (ROL) . . . . . . . . . . . . . 4 -- 233
F122 (RCR) . . . . . . . . . . . . . 4 -- 235
F123 (RCL) . . . . . . . . . . . . . 4 -- 237
F130 (BTS) . . . . . . . . . . . . . 4 -- 239
F131 (BTR) . . . . . . . . . . . . . 4 -- 241
F132 (BTI) . . . . . . . . . . . . . 4 -- 243
F133 (BTT) . . . . . . . . . . . . . . 4 -- 245
F135 (BCU) . . . . . . . . . . . . . 4 -- 247
F136 (DBCU) . . . . . . . . . . . . 4 -- 249
F137 (STMR) . . . . . . . . . . . . 4 -- 251
F183 (DSTM) . . . . . . . . . . . . 4 -- 254
Contenidos
F138 (HMSS) . . . . . . . . . . . . 4 -- 257
F139 (SHMS) . . . . . . . . . . . . 4 -- 259
F140 (STC) . . . . . . . . . . . . . 4 -- 261
F141 (CLC) . . . . . . . . . . . . . 4 -- 262
F143 (IORF) . . . . . . . . . . . . . 4 -- 263
F144 (TRNS) . . . . . . . . . . . . 4 --264
F147 (PR) . . . . . . . . . . . . . . . 4 -- 270
F148 (ERR) . . . . . . . . . . . . . 4 -- 273
F149 (MSG) . . . . . . . . . . . . . 4 -- 275
F157 (CADD) . . . . . . . . . . . . 4 -- 276
F158 (CSUB) . . . . . . . . . . . . 4 --279
F0 (MV) . . . . . . . . . . . . . . . . . 4 -- 282
F1 (DMV) . . . . . . . . . . . . . . . 4 -- 286
F162 (HCOS) . . . . . . . . . . . . 4 -- 289
F163 (HCOR) . . . . . . . . . . . 4 -- 292
F164 (SPDO) . . . . . . . . . . . . 4 -- 295
F165 (CAM0) . . . . . . . . . . . . 4 -- 309
F166 (HC1S) . . . . . . . . . . . . 4 -- 318
F167 (HC1R) . . . . . . . . . . . . 4 -- 320
F168 (SPD1) . . . . . . . . . . . . 4 -- 322
F169 (PLS) . . . . . . . . . . . . . . 4 -- 326
F170 (PWM) . . . . . . . . . . . . 4 -- 328
F355 (PID) . . . . . . . . . . . . . . 4 --330
F12 (ICRD) . . . . . . . . . . . . . . 4 -- 333
P13 (ICWT) . . . . . . . . . . . . . 4 -- 333
Funciones en coma flotante . .4 -- 335
Capítulo 5 Consejos para la programación
5.1
5.2
5.3
5.4
5.5
Uso duplicado de salidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 3
5.1.1 Salidas duplicadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 3
5.1.2 Salidas duplicadas con las instrucciones
OT, KP, SET, o RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 4
Manejo de datos en código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 5
5.2.1 Datos en código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 5
5.2.2 Manejo de datos en código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 5
Manejo de los registro de índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 7
5.3.1 Registros de índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 7
5.3.2 Áreas de memoria modificables por los registro de índice . . . . . . . 5 -- 7
5.3.3 Como utilizar un registro de índice . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 8
Errores de operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 10
5.4.1 Errores de operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 10
5.4.2 Modo de operación del autómata al producirse
un error de operación en modo RUN . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 10
5.4.3 Tratamiento de los errores de operación . . . . . . . . . . . . . . . . . . . . . 5 -- 11
5.4.4 Partes del programa a comprobar . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 12
Instrucciones de detección de flanco de subida . . . . . . . . . . . . . . . . . . . . . 5 -- 13
5.5.1 Detección del flanco de subida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 13
V
Contenidos
5.6
5.7
5.8
5.9
FP0/FP1/FPM
5.5.2 Modo de operación y precauciones a tener
en cuenta en el primer ciclo de scan . . . . . . . . . . . . . . . . . . . . . . . .
5.5.3 Precauciones en el uso de instrucciones de control . . . . . . . . . .
Precauciones en la programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modificación de una función en modo RUN . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.1 Modo de operación al modificar una función en modo RUN . . . .
5.7.2 Modificaciones no posibles en modo RUN . . . . . . . . . . . . . . . . . . .
5.7.3 Procedimiento y modo de operación de una
modificación en modo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.4 Como cambiar de modo con la consola de programación
FP Programmer II Ver.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modificación de un valor preseleccionado en modo RUN . . . . . . . . . . . . .
5.8.1 Como modificar una constante con la consola de
programación FP Programmer II Ver.2 . . . . . . . . . . . . . . . . . . . . . .
5.8.2 Como modificar el valor en un área de preselección . . . . . . . . . .
Proceso interno al forzar entradas y salidas . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
5
5
5
-- 14
-- 15
-- 17
-- 18
-- 18
-- 19
5 -- 20
5 -- 22
5 -- 23
5 -- 23
5 -- 24
5 -- 27
Capítulo 6 Contador de alta velocidad / Salida de pulsos /
Salida PWM
6.1
6.2
6.3
6.4
6.5
Introducción a las funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 3
6.1.1 Tres funciones que utilizan el contador de alta velocidad . . . . . . . 6 -- 3
6.1.2 Estructura del contador de alta velocidad . . . . . . . . . . . . . . . . . . . . . 6 -- 4
Especificaciones y restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 5
6.2.1 Especificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 5
6.2.2 Funciones y restricciones en el FP0 . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 7
Función de contador de alta velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 10
6.3.1 Introducción a la función del contador de alta velocidad . . . . . . . 6 -- 10
6.3.2 Dos modos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 10
6.3.3 Configuración de entradas/salidas . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 12
6.3.4 Instrucciones utiizadas con la función del contador
de alta velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 13
6.3.5 Programa ejemplo para el FP0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 16
Función de salida de pulsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 20
6.4.1 Introducción a la salida de pulsos . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 20
6.4.2 Modos de control en el FP0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 21
6.4.3 Configuración de entradas/salidas y cableado en el FP0 . . . . . . . 6 -- 22
6.4.4 Instrucciones utilizadas con la función de salida de
pulsos en el FP0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 24
6.4.5 Ejemplo de control de posicionamiento en el FP0 . . . . . . . . . . . . . 6 -- 27
6.4.6 Aplicaciones en el FP1/FP--M
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 -- 33
Función de salida PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 36
6.5.1 Introducción a la función de salida PWM . . . . . . . . . . . . . . . . . . . . 6 -- 38
6.5.2 Instrucciones utilizadas con la función de salida PWM . . . . . . . . . 6 -- 38
Capítulo 7 Apéndice
7.1
VI
Especificiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 3
FP0/FP1/FPM
7.2
7.3
Contenidos
Tabla de configuración de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 6
7.2.1 Unidades de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 6
7.2.2 Expansiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 6
Contactos, áreas de memoria y constantes . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 10
VII
Contenidos
7.4
7.5
7.6
7.7
7.8
FP0/FP1/FPM
7.3.1 Número de contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabla de registros especiales de sistemas . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Registros especiales de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.2 Configuración de los registros especiales de sistema . . . . . . . . .
7.4.3 Tabla de registros especiales de sistema . . . . . . . . . . . . . . . . . . . .
Relés internos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Registros de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Códigos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7.1 Cuando se enciende el LED ERROR/ALARMA . . . . . . . . . . . . . . .
7.7.2 Códigos de error de sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7.3 Códigos de error de autodiagnóstico . . . . . . . . . . . . . . . . . . . . . . . .
Tabla de expresiones binarias/hexadecimales/BCD . . . . . . . . . . . . . . . . .
7
7
7
7
7
7
7
7
7
7
7
7
-- 12
-- 14
-- 14
-- 16
-- 18
-- 27
-- 30
-- 38
-- 38
-- 40
-- 41
-- 42
Memoria de cambios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 -- 1
VIII
FP0/FP1/FPM
Contenidos
IX
Capítulo 1
Programación
1.1
Programación a través de ordenador . . . . . . . 1 -- 3
1.2
Programación a través de la consola FP
Programmer II ver. 2 . . . . . . . . . . . . . . . . . . . . . . 1 -- 5
1.3
Tabla de herramientas de programación . . . . 1 -- 7
Programación
1 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Programación
1.1 Programación a través de ordenador
1.1
Programación a través de ordenador
Empleando el software de programación la creación de programas desde cualquier
ordenador es muy sencilla.
Herramientas necesarias
Ordenador
(IBM PC/AT ó 100 % compatible)
AFP8550FP1
FP1
RS232C
(9 pines)
FP0
AFC8513E
Software de programación
NPST-GR V3/V4 o
FPSOFT o
NAiS Control V2.3
FPM
Conexión entre FP0/FPM/FP1 y ordenador
Se requiere simplemente el cable de programación de la figura de arriba
Configuración de velocidad de transmisión de la unidad de control
La velocidad de transmisión se configura de fábrica a 9600 bps. Para más información
consulte los manuales del NPST--GR o FPSOFT en el apartado de configuración de
la velocidad de transmisión.
Configuración del ordenador
Configure el puerto RS232C como asíncrono. Para esta operación consulte el manual
de su ordenador.
1 -- 3
Programación
FP0/FP1/FPM
1.1 Programación a través de ordenador
Antes de cargar un programa en el autómata
Antes de cargar un programa, asegúrese de borrar la memoria del autómata.
Procedimiento empleando NPST--GR.
1.
Pulse de manera simultánea <CTRL.> y <ESC> para
cambiar a modo ONLINE.
2.
Pulse <ESC> y seleccione ”Edit program” dentro del
menú ” NPST menú”. Después selecciones ”Clear
program” y por último pulse <Enter>.
3.
Cuando aparezca el mensaje ”PC program clear”
presione <F1>.
Procedimiento empleando FPSOFT.
1 -- 4
1.
Abra el menú ”Tool” de la barra de menúes
2.
Seleccione ”Clear PLC program” dentro del menú
”Tool”.
3.
Aparecerá entonces el mensaje ”Do you want to
clear PLC program?”.
4.
Haga click sobre el botón OK
FP0/FP1/FPM
Programación
1.2 Programación a través de la consola FP Programmer II ver. 2
1.2
Programación a través de la consola FP Programmer II ver. 2
Con la consola de programación FP Programmer II ver. 2, pueden llevarse a cabo
operaciones como: lectura, escritura y recuperación de programas de forma sencilla.
Herramientas necesarias
FP programmer II Ver. 2
(AFP1114V2)
FP1
AFP1523E
FP0
AFC8523E
FPM
Conexión entre FP0/FP1/FP--M y la consola FP Programmer II ver. 2
D Simplemente es necesario el cable de programación que
aparece en la fig. superior
Configuración de la velocidad de transmisión de la unidad de control.
D La velocidad de transmisión se configura a 9600 bps de
fábrica.
Empleando la consola de programación se permite la
selección de una velocidad de transmisión de 9600 bps ó
19200 bps.
Introducción de instrucciones.
D Las instrucciones introducidas con la consola de
programación se almacenan una detrás de otra en la
memoria que lleva integrada el autómata.
FP0--C14
FP0--C32
FP0--RCT
FP0--C16
EEPROM
2,7 kpasos 5 kpasos
10 kpasos
FP1--C14
FP1--C24
FP1--C56
FP1--C16
FP1--C40
FP1--C72
0,9 kpasos 2,7 kpasos 5 kpasos
opcional
RAM
opcional
2,7 kpasos 5 kpasos
FP--M
FPM--C
2,7 kpasos 5 kpasos
opcional
opcional
2,7 kpasos 5 kpasos
1 -- 5
Programación
FP0/FP1/FPM
1.2 Programación a través de la consola FP Programmer II ver. 2
Procedimiento de carga de programas desde la consola de programación en el
autómata
1. Conectar la consola con el autómata mediante el
cable de programación apropiado.
2.
Cambie el conmutador de modo del autómata a PROG
3.
Presione las teclas del FP Programmer II ver. 2 como
se muestra debajo para eliminar los datos
almacenados en el autómata.
ACLR
4.
0
ENT
SHIFT
SC
(DELT)
INST
Introduzca la dirección desde la cual quiere
introducir instrucciones (emplee para ello el teclado
alfanumérico ). En el ejemplo las intrucciones se
introducen a partir de la dirección 0, así pues,
para leer sus contenidos.
presione
ACLR
5.
(--)
OP
0
READ
Cargue el programa (direcciones e instrucciones) en
el autómata.
. Notas
D Sonará un sonido de alarma si intenta cargar un programa en
modo RUN o si presiona teclas equivocadas. Si suena una
y realice de nuevo la operación
alarma, presione la tecla
desde el principio.
ACLR
D La primera vez que introduzca un programa, asegúrese de
ejecutar el procedimiento de borrado de programa ( paso 3º,
arriba explicado), antes de comenzar la carga.
1 -- 6
FP0/FP1/FPM
Programación
1.3 Tabla de herramientas de programación
1.3
Tabla de herramientas de programación
Tipo
Descripción
FPSOFT
Software para programación de autómatas bajo Windows.
(Requerimientos del sistema: IBM PC 486/66 o superior con
8MB RAM y 7MB libres de disco duro, Windows 3.1 o
posterior)
NPST--GR ver.
4NPST--GR ver. 3 (*1)
Software para programación de autómatas bajo DOS.
(Requerimientos del sistema: IBM PC--AT ó 100% compatibles
con 550KB de memoria principal o más, 800KB ó más de
memoria EMS libre, 2 MB libres de disco duro, MS--DOS 6.2 o
posterior y tarjeta de vídeo VGA o EGA)
NAIS--Control
IEC 1131
Software para programación de autómatas bajo Windows para
toda la serie de autómatas Matsushita, de acuerdo al estádar
IEC1131.
Cable de programación
para conexión con PC
Cable necesario para la conexion entre el puerto de
AFP8550FP1 (FP1)
programación del autómata y el puerto RS323C del ordenador.AFC8513E(FP0/FPM)
Código de pedido
Consola de
Dispositivo de programación para FP0/FP1/FP--M
programación FP
Programmer II ver. 2 (*2)
Cable de programación
para conexión con la
consola de
programación
Cable necesario para la conexión entre el puerto de
AFP1523E (FP1)
programación del autómata y la consola de programación FP AFC8523E (FP0/FPM)
Programmer II ver. 2
. Notas
D (*1): Cuando se emplean NPST--GR ver. 3 y versiones
anteriores de la consola de programación AFP1114, la lectura
y escritura de las siguientes instrucciones no es posible:
-- Función de contador de alta velocidad, instrucciones
relacionadas F166/F167.
-- Función de salida de pulsos, instrucciones relacionadas
F168/F169.
-- Función de modulación de pulsos (PWM), instrucción
F170.
-- Base de tiempos de 1ms (TML).
-- Instrucción de temporización auxiliar de 32--Bits: F183.
-- Cambio de velocidad de transmisión a 19200 bps
(configurada de fábrica a 9600 bps).
D (*2): Consolas de programación anteriores (AFP1112A y
AFP1112) no pueden ser empleadas con el FP0.
1 -- 7
Programación
1.3 Tabla de herramientas de programación
1 -- 8
FP0/FP1/FPM
Capítulo 2
Contactos, áreas de memoria y constantes
2.1
2.2
2.3
2.4
Tipos de contactos y su función . . . . . . . . . . . . 2 -- 3
2.1.1
Tipos de contactos . . . . . . . . . . . . . . . 2 -- 3
2.1.2
Numeración de contactos . . . . . . . . . 2 -- 4
2.1.3
Entradas externas (X) . . . . . . . . . . . . . 2 -- 6
2.1.4
Salidas externas (Y) . . . . . . . . . . . . . . 2 -- 7
2.1.5
Relés internos (R) . . . . . . . . . . . . . . . . 2 -- 8
2.1.6
Relés internos especiales . . . . . . . . . 2 -- 9
2.1.7
Temporizadores (T) . . . . . . . . . . . . . . 2 -- 10
2.1.8
Contadores (C) . . . . . . . . . . . . . . . . . 2 -- 11
Constantes y áreas de memoria:
Tipos y función . . . . . . . . . . . . . . . . . . . . . . . . . 2 -- 13
2.2.1
Tipos de áreas de memoria . . . . . . . 2 -- 13
2.2.2
Registros de datos (DT) . . . . . . . . . . 2 -- 15
2.2.3
Registros de datos especiales
2.2.4
WX, WY, WR . . . . . . . . . . . . . . . . . . . 2 -- 17
2.2.5
Área de preselección de:
Temporizadores/Contadores (SV) . 2 -- 18
2.2.6
Área de valor actual de:
Temporizadores/Contadores (EV) . 2 -- 19
2.2.7
Registros de índice (IX, IY) . . . . . . . 2 -- 20
. . . 2 -- 16
Constantes, explicación . . . . . . . . . . . . . . . . . . 2 -- 23
2.3.1
Constantes decimales (K) . . . . . . . . 2 -- 23
2.3.2
Constantes hexadecimales (H) . . . . 2 -- 24
2.3.3
Constantes de caracteres (M) . . . . . 2 -- 25
Números, manejo . . . . . . . . . . . . . . . . . . . . . . . 2 -- 26
2.4.1
Números en
autómatas programables . . . . . . . . . 2 -- 26
2.4.2
Overflow/underflow (rebosamiento) . . 2 -- 29
Contactos, Áreas de memoria y constantes
2 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.1 Tipos de contactos y su función
2.1
Tipos de contactos y su función
2.1.1
Tipos de contactos
Numeración
FP0
Elemento
C10/C14R
C16
Entradas
Externas
X
C
o
n
t
a
c
t
o
s
FPM
C32
Todos
FP1
C24/C40
C56/C72
208 puntos (X0 a X12F)
Salidas
Externas
Y
208 puntos (Y0 a Y12F)
Relés
internos
R (*2)
1,008 puntos (R0 to R62F)
Temporiz.
T
(*2)
144 puntos (*1)
(T0 a T99/
C100 a C143)
Contador.
C
(*2)
Relés
internos
especial.
R
64 puntos
(R9000 to R903F)
Función
C14/C16
Conmutan a ON/OFF
dependiendo de entradas
externas
Conmutan a ON/OFF
salidas externas
256 puntos Conmutan a ON/OFF sólo
dentro del programa
(R0 a
R15F)
Cuando una instrucción
128 puntos TM finaliza, el contacto con
el mismo número conmuta
(*1)
(T0 a T99/ a ON.
C100 a
Cuando una instrucción CT
C127)
ha terminado la cuenta, el
contacto con el mismo
número conmuta a ON.
Relé que conmuta a
ON/OFF dependiendo de
condiciones específicas y
que se emplea como
bandera (ver 7.5)
. Notas
D (*1): La numeración para contadores y temporizadores
pueden cambiarse configurando el registro especial de
sistema nº 5. La numeración que se muestra en la tabla
es la que corresponde a la configuración por defecto del
registro especial nº. 5. Para obtener más detalles, lea el
punto 7.4 ”Tabla de Registros del Sistema”.
D (*2): Existen dos tipos: el tipo de retención que almacena las
condiciones que existen justo antes de apagar el equipo
o cambiar de modo RUN a PROG, y el tipo de no
retención que los resetea. Para el FP0, esta división es
fija y se han asignado los valores mostrados debajo.
. página siguiente
2 -- 3
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.1 Tipos de contactos y su función
Tipos de áreas: de retención y de no retención
FP0
Item
C10R/C14R/C16
Todos los puntos son sin retención
Temporizadores
Contadores
Relés
internos
Tipo sin
retención
Desde el primer contador hasta el
C139
Desde el primer contador hasta el
C127
Tipo con
retención
4 puntos (valores actuales)
(C140 hasta C143)
16 puntos (valores actuales)
(C128 hasta C143)
Tipo sin
retención
976 puntos (R0 hasta R60F)
61 palabras (WR0 hasta WR60)
880 puntos (R0 hasta R54F)
55 palabras (WR0 hasta WR54)
Tipo con
retención
32 puntos (R610 hasta R62F)
2 palabras (WR61 hasta WR62)
128 puntos (R550 hasta R62F)
8 palabras (WR55 hasta WR62)
FP--M
Item
Todos
Tipo con
Contadores retención
/temporiz.
Tipo sin
(*1)
retención
Relés
internos
(*2)
C32
FP1
C24/C40/C56/C72
Desde el contador 100 hasta 143
C14/C16
Desde el contador 100 al 127
Desde el primer temporizador hasta el 99
Tipo sin
retención
160 puntos (R0 hasta R9F)
10 palabras (WR0 hasta WR9)
160 puntos (R0 hasta R9F)
10 palabras (WR0 hasta WR9)
Tipo con
retención
1008 puntos (R100 hasta R15F)
63 palabras (WR10 hasta WR62)
96 puntos (R610 hasta R62F)
6 palabras (WR10 hasta WR15)
Tanto el área de temporizadores y contadores como el de relés internos podemos
configurarlas como de retención o de no retención (la configuración de la tabla es la
configuración por defecto):
(*1):configurando el registro especial nº6.
(*2):configurando el registro especial nº7.
2.1.2
Numeración de contactos
Entradas externas (X), Salidas externas (Y) y Relés internos (R)
Debido a que las entradas externas, salidas externas y relés internos se manejan en
unidades de 16 puntos, su numeración se expresa como una combinación de
numeración decimal y hexadecimal tal como se muestra debajo.
<Ejemplo> Salida externa ”X”
X
Decimal
1, 2, 3,...
Hexadecimal
0, 1, 2, 3,...,A, B, ..., F
2 -- 4
X 0, X 1 . . . . . . . . . . . . . . . . . . . . .X F
X 10, X 11 . . . . . . . . . . . . . . . . . . . . .X 1F
X 20, X 21 . . . . . . . . . . . . . . . . . . . . .X 2F
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.1 Tipos de contactos y su función
Temporizadores (T) y Contadores (C)
Las direcciones para temporizadores y contadores se expresan mediante numeración
decimal como se muestra a continuación.
<Ejemplo> Contacto de temporizador
T
Decimal
0, 1, 2, ..., 99
T0, T1 . . . . . . . . . . . . . . . . . . . . . . . . . . .T 99
C100, C101 . . . . . . . . . . . . . . . . . . . . . . .C143
. Nota
Debido a que las direcciones para temporizadores (T) y contadores (C)
corresponden a los números de las instrucciones TM y CT, si la mezcla
de instrucciones TM y CT se cambia mediante el registro especial de
sistema nº 5, las direcciones de los temporizadores/contadores también
lo hacen.
Entradas externas (X) y Salidas externas (Y)
Sólo las entradas con números coincidentes con la configuración de entradas/salidas
del autómata pueden emplearse como entradas externas (X).
Sólo las salidas con números coincidentes con la configuración de entradas/salidas del
autómata pueden emplearse como salidas externas (Y).
La configuración de entradas/salidas depende de la combinación de unidades
empleadas (configuración hardware). Para más detalles consulte la sección ”7.2 Tabla
de configuración de E/S”
Temporizadores/Contadores
Si no tiene suficiente temporizadores o contadores, puede cambiar el número de
puntos de una clase y de otra mediante la configuración del registro de sistema nº 5.
De cualquier manera, el número total de contadores/temporizadores no se puede
variar, sólo su distribución.
Puede consultar la sección ”7.4 Configuración de los registros del sistema” para
obtener más información.
Relación entre WX, WY y WR con X, Y y R
WX, WY y WR corresponden respectivamente a grupos de 16 entradas externas (X),
16 salidas externas (Y) y 16 relés internos (R).
<Ejemplo> Palabra de entrada externa (WX)
Cada palabra de entrada externa se compone de 16 entradas externas (X) tal como
se muestra debajo.
XFXE XDXCXB XA X9 X8 X7 X6 X5 X4 X3 X2 X1 X0
WX0
WX1
Al cambiar el estado de una entrada externa (X), el contenido de WX también lo hace.
2 -- 5
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.1 Tipos de contactos y su función
2.1.3
Entradas externas (X)
Funcionamiento de las entradas externas (X)
Estas entradas externas suministran al autómata señales procedentes de dispositivos
externos tales como finales de carrera, sensores fotoeléctricos, etc.
Programa
X contact: ON
X
Y
CPU
Entrada
Interfaz
de
entrada
Entrada: ON
Limitaciones
Las direcciones de entradas que no existen no pueden emplearse.
El estado de las entradas no puede cambiarse desde el programa.
No hay limitación en el número de veces que se emplea una entrada externa en un
programa.
2 -- 6
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.1 Tipos de contactos y su función
2.1.4
Numeración de salidas externas (Y)
Funcionamiento de las salidas externas (Y)
Estas salidas externas pueden activar un dispositivo externo como un motor o un
solenoide de acuerdo a los resultados de la ejecución del programa del autómata.
El estado de las salidas externas (Y) se emplea como una señal de control.
Programa
X
R
R
Salida externa
Y
CPU
Interfaz
de
salida
Ejecución
Dispositivos
Salida
Externos:
ON
Limitaciones
Las salidas externas que no estén en la configuración física de E/S pueden emplearse
de la misma forma que los relés internos. Sin embargo, no pueden especificarse como
relés de retención.
Cuando se emplea como contacto, no hay límite en el número de veces que se utiliza
en el programa.
Cuando se emplean como destino de instrucciones KP u OT, está prohibido su empleo
duplicado.
Se puede permitir la duplicación de uso de una salida cambiando el registro de sistema
nº 20.
Su uso como operando de instrucciones tales como SET y RST no se considera
duplicación de uso.
Para obtener más información sobre el registro de sistema nº 20, consulte la sección,
”7.4.3 Tabla de registros de sistemas”
Ejemplo: Duplicación de uso de la salida externa (Y3)
Y3
Y3
Salida duplicada
2 -- 7
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.1 Tipos de contactos y su función
2.1.5
Relés internos (R)
Funcionamiento de los relés internos (R)
Estos relés sólo pueden emplearse dentro del autómata y su estado ON/OFF no
produce una salida externa. Cuando la bobina del relé se activa, sus contactos
conmutan a ON.
Relé
interno
R0
R0
F0 MV
Limitaciones
Cuando se emplean como contactos, no existe limitación en el número de veces que
se programan.
Cuando se utilizan como destino de instrucciones KP u OT, está prohibido su empleo
duplicado.
Se puede permitir la duplicación de uso de una salida cambiando el registro especial
de sistema nº 20.
Su uso como operando de instrucciones tales como SET y RST no se considera
duplicación de uso.
Para obtener más información sobre el registro especial de sistema nº 20, consulte la
sección, ”7.4.3 Tabla de registros de sistemas”
Relés con retención y sin retención
Hay dos tipos de relés internos: relés de retención y relés sin retención. Cuando se
apaga el equipo o se cambia de modo RUN a PROG:
D Los relés de retención mantienen su último estado y
continúan su operación con ese valor al reiniciar el sistema.
D Los relés sin retención se resetean.
2 -- 8
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.1 Tipos de contactos y su función
D La numeración de relés sin retención y con retención es como sigue:
Item
Temporizadores
Contadores Tipo sin
retención
Tipo con
retención
Relés
Tipo sin
internos
retención
Tipo con
retención
Registros
Tipo sin
de datos
retención
Tipo con
retención
Item
Tipo con
Contadores retención
/temporiz.
Tipo sin
(*1)
retención
Relés
internos
(*2)
C10R/C14R/C16
C32
Todos los puntos son sin retención
Desde el primer contador hasta el
C139
Desde el primer contador hasta el C127
4 puntos (valores actuales)
(C140 hasta C143)
16 puntos (valores actuales)
(C128 hasta C143)
976 puntos (R0 hasta R60F)
61 palabras (WR0 hasta WR60)
880 puntos (R0 hasta R54F)
55 palabras (WR0 hasta WR54)
32 puntos (R610 hasta R62F)
2 palabras (WR61 hasta WR62)
128 puntos (R550 hasta R62F)
8 palabras (WR55 hasta WR62)
1652 palabras
(DT0 hasta DT1651)
6112 palabras
(DT0 hasta DT6111)
8 palabras
(DT1652 hasta DT1659)
32 palabras
(DT6112 hasta DT6143)
FP--M
Tipo 2.7 k
FP1
Tipo 5 k C56/C72
C24/C40
Desde el contador 100 hasta 143
Desde el contador
100 al 127
Desde el primer temporizador hasta el 99
Tipo sin
retención
160 puntos (R0 hasta R9F)
10 palabras (WR0 hasta WR9)
Tipo con
retención
1008 puntos (R100 hasta R15F)
Registros de datos
(*3)
C14/C16
63 palabras (WR10 hasta WR62)
1660 palabras
(DT0 hasta
DT1659)
6144 palabras
(DT0 hasta DT6143)
1660 palabras
(DT0 hasta
DT1659)
R160 puntos
(0 hasta R9F)
10 palabras
(WR0 hasta WR9)
96 puntos
(R610 hasta R62F)
6 palabras (WR10
hasta WR15)
256 palabras
(DT0 hasta DT255)
Tanto el área de temporizadores/contadores como el de relés internos y registros de
datos podemos configurarlas como de retención o de no retención (la configuración de
la tabla es la configuración por defecto):
(*1):configurando el registro especial 6.
(*2):configurando el registro especial 7.
(*3):configurando el registro especial 8.
2.1.6
Relés internos especiales
Funcionamiento de los relés internos especiales
Los relés internos especiales conmutan a ON/OFF bajo condiciones específicas. El
estado ON/OFF no sale al exterior y sólo funciona dentro del programa.
Los pricipales relés internos especiales son los siguientes:
2 -- 9
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.1 Tipos de contactos y su función
D Flags de estado de operación:
El estado de operación se indica mediante estado ON/OFF.
-- Flag de modo RUN (R9020)
-- Relé de pulso de scan (R9012)
-- Flags para instrucciones de comparación (R9000A hasta R9000C)
-- Flag de control del contador de alta velocidad (R903A hasta R903D)
D Flags indicadores de error:
Se activan cuando ocurre un error.
-- Error de operación (R9007, R9008)
D Relés que conmutan bajo condiciones especiales.
Las condiciones especiales se pueden seleccionar en el programa y
emplear los relés de acuerdo a esa configuración.
-- Relé siempre ON (R9010)
-- Relé de base de tiempo (R9018 hasta R901E)
D Para obtener más detalles sobre relés internos especiales,
consulte la sección ”7.5 Relés internos especiales”.
2.1.7
Contactos de temporizador (T)
Funcionamiento de los temporizadores
Cuando pasa a ON la condición de ejecución de un temporizador y transcurre el tiempo
de preselección, se activa su contacto correspondiente.
Si mientras el temporizador se encuentra temporizando la condición de ejecución se
pone a OFF, se resetea y su contacto correspondiente se pone también a OFF.
TM
Tiempo de
preselección
transcurrido
Nº de temporizador Tn: ON
n
Tn
Contacto de temporizador: on
Limitaciones
Cuando se emplean como contactos, no existe limitación en el número de veces que
se programa.
2 -- 10
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.1 Tipos de contactos y su función
2.1.8
Contactos de contador (C)
Función de los contadores
Cuando el valor de cuenta transcurrido (elapsed value) alcanza el valor cero, el
contacto del contador correspondiente se pone a ON.
Cuando la entrada de reset del contador se pone a ON, el contacto del contador se
pone a OFF.
Entrada de
contaje
CT
Valor actual
pasa a cero.
Entrada de reset
n
Nº de contador
Valor
actual
Cn: ON
Cn
Contacto de contador: ON
Limitaciones
Cuando se emplean como contactos, no existe limitación en el número de veces que
se programa.
División del área de temporizadores/contadores
Temporizadores y contadores comparten la misma área. La división de este área puede
cambiarse para obtener el número de temporizadores o contadores que se necesitan.
Esta división se puede modificar configurando el registro especial de sistema nº 5.
0
Temporizadores
to
(T0 to T99)
99
100
Contadores
to
(C100 to C143)
143
Configure el número del primer contador en el registro especial de sistema nº 5. El valor por defecto es 100,
por lo tanto 100 puntos son temporizadores y los restantes 44 son contadores tal como se muestra arriba.
Para obtener más información sobre los registros del sistema, consulte la sección
”7.4 Configuración de los registros del sistema”.
2 -- 11
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.1 Tipos de contactos y su función
División entre temporizadores/contadores con retención y sin retención
Los contenidos de las áreas de preselección (set value) y actual (elapsed value)
pueden mantenerse cuando el equipo se apaga o se pasa de modo RUN a modo
PROG, y las operaciones pendientes pueden terminarse basándose en aquellos
contenidos.
Item
Temporizadores
Contadores
FP0
Tipo sin retención: Todos los puntos
Tipo sin retención:
C10, C14, C16: Desde el primer contador considerado (por
defecto el C100) hasta el C139
C32: Desde el primer contador considerado (por defecto el
C100) hasta el C127
Tipo con retención:
C10, C14, C16: desde el C140 hasta el C143
C32: desde el C128 hasta el C143
Item
Tipo con
Contadores retención
/temporiz.
Tipo sin
(*1)
retención
FP--M
Todos
FP1
C24/C40/C56/C72
Desde el contador 100 hasta 143
C14/C16
Desde el contador 100 al
127
Desde el primer temporizador hasta el 99
(*1): El área de temporizadores/contadores se pueden configurar como de retención o de
no retención a través del registro especial nº6. (la configuración de la tabla es la
configuración por defecto).
2 -- 12
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.2 Constantes y áreas de memoria: tipos y función
2.2
Constantes y áreas de memoria: tipos y función
2.2.1
Tipos de áreas de memoria
Numeración
Elemento
FP0
C10R/C14R
C16
FP--M
C32T/
C32P
Tipo
2.7 k
Entradas
externas
WX
d
e
m
e
m
o
r
i
a
Regist.
de
datos
espec.
DT
Regist.
de índice
IX / IY
C
o
n
s
t
.
Const.
decim.
K
Const.
hexad.
H
C24/
C40
C56/
C72
C14/
C16
La palabra de entradas
externas ”WX” trata grupos de
16 entradas externas como
una palabra (palabra=16 bits)
13 palabras
(WY0 a WY12)
Relés
internos
WR
Á
r
e
a
s
Tipo
5k
Función
13 palabras
(WX0 a WX12)
Salidas
externas
WY
Relés
internos
espec.
WR
Regis.
de
datos
DT
(*2)
Valor de
presel.
de
tempor./
contad.
SV (*1)
Valor
actual de
tempor./
contad.
EV (*1)
FP1
La palabra de las salidas
externas ”WY” trata grupos de
16 salidas externas como una
palabra (palabra =16 bits )
16
palabras
(WR0 a
WR15)
63 palabras
(WR0 a WR62)
Este tipo de relés se utilizan
únicamente como contactos
4 palabras (WR900 a WR903)
1,660
palabras
(DT0 a
DT1659)
6,144
palabras
(DT0 a
DT6143)
1,660
palabras
(DT0 a
DT1659)
6,144
palabras
(DT0 a
DT6143)
1,660
palabras
(DT0 a
DT1659)
144 palabras
(SV0 a SV143)
6,144
palabras
(DT0 a
DT6143)
256
palabras
(DT0 a
DT255)
128
palabras
(SV0 a
SV127)
128
144 palabras
(EV0 a EV143)
112 palabras
(DT9000 a DT9111)
112 palabras
(DT9000 a DT9069)
y
(DT9080 a
DT9121)
El formato de palabra de los
relés internos ”WR” trata
grupos de 16 relés como una
palabra (palabra = 16 bits)
palabras
(EV0 a
EV127 )
112 palabras
(DT9000 a DT9069)
2 palabras (IX, IY)
El registro de datos es un
área de memoria de lectura /
escritura para datos y cada
registro consiste en una
palabra (palabra = 16 bits)
Área de memoria para
almacenar el valor de
preselección de un
temporizador/contador. Su
número corresponde al de su
temporizador/contador
Área de memoria para
almacenar el valor actual de
operación de un
temporizador/contador. Su
número corresponde al de su
temporizador/contador.
Área de memoria para
almacenar datos específicos.
Diversos códigos de
configuración y de error se
almacenan en ellas. (ver 7.6)
Se pueden emplear para
almacenar una dirección de
área de memoria y como un
modificador de constantes
K--32768 a K32767 (para operar con 16-bits)
K--2147483648 a K2147483647 (para operar con 32-bits)
H0 a HFFFF (para operar con 16-bits)
H0 a HFFFFFFFF (para operar con 32-bits)
2 -- 13
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.2 Constantes y áreas de memoria: tipos y función
. Notas
D (*1): Los puntos para contadores y temporizadores pueden
cambiarse configurando el registro especial de sistema
nº 5. Los números que se muestran en la tabla son los
que corresponden a la configuración por defecto del
registro especial nº. 5. Para obtener más detalles, lea el
punto 7.4 ”Tabla de Registros del Sistema”.
D (*2): Existen dos tipos: el tipo de retención que almacena las
condiciones que existen justo antes de apagar el equipo
o cambiar de modo RUN a PROG, y el tipo de no
retención que los resetea. Para el FP0, esta división es
fija y se han asignado los valores mostrados debajo.
Tipos de áreas: de retención y de no retención
Elemento
Registros
de datos
Elemento
C10R/C14R/C16
C32
Tipo sin
retención
1652 palabras
(DT0 a DT1651)
6112 palabras
(DT0 a DT6111)
Tipo con
retención
8 palabras
(DT1652 a DT1659)
32 palabras
(DT6112 a DT6143)
FP--M
Tipo 2.7 k
Registros de 1660 palabras
datos (*1)
(DT0 a DT1659)
FP1
Tipo 5 k C56/C72
C24/C40
C14/C16
6144 palabras
(DT0 a DT6143)
1660 palabras
(DT0 a DT1659)
256 palabras
(DT0 a DT255)
D (*1): El área de registros de datos se puede configurar como
de retención o de no retención a través del registro
especial de sistema nº8.
2 -- 14
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.2 Constantes y áreas de memoria: tipos y función
2.2.2
Registos de datos (DT)
Función de los registros de datos
Los registros de datos (DT) son áreas de memoria de 16 bits (una palabra) para
almacenar datos, como por ejemplo una constante.
Posición de bit
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DT
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
Ejemplo de programa que escribe un valor numérico en un DT
F0,
MV,
ffff, DT n
Constantes decimales (K) o
constantes hexadecimales (H)
Cuando se manejan datos de 32 bits con registros de datos, emplee dos registros de
datos como un conjunto. En este caso, el área de 16 bits superior queda determinada
de forma automática cuando se especifica el área de 16 bits inferior.
Empleo de datos de 32 bits:
DTn
DTn+1
0 0 0 1 1 0 1 0 0 1
0 1 0 0 1 0 0 0 0 1 1 0 1 0
16-bit área superior
0 1 0 1 1 0 0 0
16-bit área inferior
Tipos de áreas: de retención y de no retención
Existen dos tipos de registros de datos que tratan los datos de manera diferente en
caso de apagado del equipo o cambio de modo RUN a PROG:
D Registros con retención, mantienen los datos mientras el
autómata no está trabajando y permiten que la operación se
reanude con sus contenidos inalterados.
D Registros sin retención, se resetean cuando el autómata para su trabajo.
Debajo se muestra la numeración de los registros con y sin retención para:
Elemento
Registros
de datos
Elemento
Elemento
C10R/C14R/C16
C32
Tipo sin
retención
1652 palabras
(DT0 a DT1651)
6112 palabras
(DT0 a DT6111)
Tipo con
retención
8 palabras
(DT1652 a DT1659)
32 palabras
(DT6112 a DT6143)
FP--M
Tipo 2.7 k
Registros de 1660 palabras
datos (*1)
(DT0 a DT1659)
FP1
Tipo 5 k C56/C72
C24/C40
C14/C16
6144 palabras
(DT0 a DT6143)
1660 palabras
(DT0 a DT1659)
256 palabras
(DT0 a DT255)
D (*1): El área de registros de datos se puede configurar como de retención o
de no retención a través del registro especial de sistema nº8.
2 -- 15
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.2 Constantes y áreas de memoria: tipos y función
2.2.3
Registos de datos especiales
Función de los registros de datos especiales
Los registros de datos especiales se emplean en aplicaciones específicas.
No se pueden escribir datos en la mayoría de ellos empleando instrucciones tales como
F0 (MV).
Las funciones principales de estos registros son:
D Como registros de indicación de estado de operación:
Estos registros mantienen el estado de operación del FP0 junto con los
registros del sistema y varias instrucciones.
-- Registro de control del contador de alta velocidad (DT9052), etc.
D Como registros de almacenamiento de condiciones de error:
Estos registros almacenan la unidad donde ocurrió el error así como el
código del error.
-- Autodiagnosis de registro de código de error (DT9000)
-- Registro de dirección de error de operación (DT9017)
D Como registros del contador de alta velocidad:
Estos registros se emplean para lectura/escritura del valor de preselección
y del valor actual de los contadores de alta velocidad.
-- Área de valores de preselección y actual del contador de alta velocidad.
(DT9044 a DT9051/DT9104 a DT9111)
Para más detalles sobre los registros de datos especiales, consulte el punto ”7.6
Registros de datos especiales”.
2 -- 16
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.2 Constantes y áreas de memoria: tipos y función
2.2.4
WX, WY, WR
Función de WX, WY y WR
Las entradas externas (X), las salidas externas (Y) y los relés internos (R) pueden
también expresarse en formato de palabra. Este formato trata grupos de 16 bits como
una palabra.
Pueden ser tratadas como memoria de datos porque son áreas de memoria de 16 bits.
La composición de un área de memoria de una palabra es como se muestra en la
siguiente figura.
WR0
RF RE RD RC RB RA R9 R8 R7 R6 R5 R4 R3 R2 R1 R0
WR1
R1F R1E ·
·
·
·
·
·
·
·
·
·
· R12 R11 R10
R2F R2E ·
·
·
·
·
·
·
·
·
·
· R22 R21 R20
WR2
Ejemplo de uso de WX, WY y WR
WX puede emplearse para leer conmutadores digitales y pulsaciones de teclado, WY
puede utilizarse como salida hacia un display de 7 segmentos.
Puede hacerse uso de WR como registro de desplazamiento.
Precaución
Si uno de los relés que componen el área de memoria cambia, el valor del área de
memoria cambia también.
WR0
0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1
Cuando R1 se activa
R1
WR0
0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1
R1
2 -- 17
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.2 Constantes y áreas de memoria: tipos y función
2.2.5
Área de preselección de temporizadores/contadores
Función de las áreas de preselección (SV)
El valor de preselección de un contador se almacena en un área de preselección (SV)
con el mísmo número del contador/temporizador .
Área de preselección
CT
n
30
SVn
K30
(Constante decimal)
Cuando se introduce una instrucción TM o CT en un programa se especifica un valor
decimal para el valor de preselección.
El valor de preselección es una palabra de 16 bits que almacena un valor decimal
desde K0 hasta K32767.
Modificación del área de preselección:
D El dato en el área de preselección puede cambiarse desde el
programa mediante una instrucción de trasferencia de datos (F0).
Sólo para el FP0:
El valor de preselección de un temporizador/contador operando puede cambiarse en
modo RUN reescribiendo el área de preselección SV con el mismo número que el
temporizador/contador .
D El área de preselección puede leerse y reescribirse empleando las
herramientas de programación.
2 -- 18
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.2 Constantes y áreas de memoria: tipos y función
. Notas
D Para más detalles, consulte la sección ”8.8 Cambio del valor
del área de preselección en modo RUN”
D Existen áreas SV y EV para cada uno de los
contadores/temporizadores.
2.2.6
Numeración
Temp/Cont
Área de
preselección (SV)
Área de valor
actual (EV)
T0
T1
...
T99
SV0
SV1
...
SV99
EV0
EV1
...
EV99
C100
...
SV100
...
EV100
...
Área de valor actual de temporizadores/contadores
Función de las áreas de valor actual (EV)
Mientras que un temporizador/contador está operando se almacena el valor actual en
el área de valor actual EV correspondiente al temporizador/contador .
Cuando EV llega a cero, el contacto de temporizador/contador con el mismo número
se activa (se pone a ON).
El área de valor actual EV es una palabra de 16 bits que almacena un valor decimal
desde K0 hasta k32767.
T
n
30
0
Valor de SVn
SVn
K30
EVn
K30
Valor de EVn
29
Tn
28
Decrementa
1
EVn
0
Tn se activa cuando la operación de decremento finaliza
2 -- 19
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.2 Constantes y áreas de memoria: tipos y función
Empleo del área de valor actual (EV)
El área de valor actual de un temporizador/contador operando puede cambiarse para
prolongar o acortar la operación en modo RUN.
D El dato en el área de valor actual puede cambiarse desde el
programa mediante una instrucción de trasferencia de datos (F0).
D El área de valor actual puede leerse y reescribirse empleando las
herramientas de programación.
2.2.7
Registros de índice (IX, IY)
Función de los registros de índice (IX, IY)
Los registos de índice se emplean para especificar indirectamente direcciones de
constantes y áreas de memoria en instrucciones de alto nivel. Disponemos de dos
registros de 16 bits, IX e IY. La modificación de direcciones de memoria y
constantes empleando un registro de índice se denomina ”modificación indexada”.
D Modificación de una dirección de memoria
Dirección = Dirección base + Valor del registro de índice IX/IY (constante K)
Ejemplo: Modificación de DT11
IXDT11
Dirección base
DT11
+
DT11
+
DT11
+
2 -- 20
Valor de IX
K0
=
K10
=
K--10 =
Dirección objetivo
DT11
DT21
DT1
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.2 Constantes y áreas de memoria: tipos y función
D Modificación de una constante
Constante = Valor base + Valor del registro de índice IX/IY
Ejemplo 1: Modificación de K100
IXK100
Valor base
K100
K100
K100
Valor de IX
K0
=
K10
=
K--10 =
+
+
+
Constante
K100
K110
K90
Ejemplo 2: Modificación de H10
IXH10
Valor base
Valor de IX
H10
+
HA
=
H10
+
H10
=
Constante
H1A
H20
. Nota
Para procedimientos detallados de uso de estos registros consulte la
sección ”5.3 Manejo de registros de índice”.
Método de modificación de índice
Ejemplo 1: Modificación de una dirección de almacenamiento (destino)
X0
F0
MV, DT 0,
IX
F0
MV, K100,
IXWR0
Configuración de IX
El valor de DT0 determina la dirección de WR donde se escribe K100.
Ejemplo: Cuando DT0 vale K10
IX
WR0
WR10
K10
10
+
0 = 10
Se escribe K100 en WR10.
2 -- 21
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.2 Constantes y áreas de memoria: tipos y función
Ejemplo 2: Modificación de una dirección fuente
X0
F0
MV, DT 1,
IX
F0
MV, IXWR0,
Configuración de IX
DT 0
El valor de DT1 determina la dirección de WR para transferir desde ella su
valor a DT0.
Ejemplo: Cuando DT1 vale K9
IX
WR0
WR9
K9
9
+
0 = 9
Se escribe en DT0 el valor que hay en WR9.
Precauciones cuando se emplee registros de índice:
D Un registro de índice no puede modificarse con un registro de índice.
Ejemplo: IXIX, IXIY
D Si el resultado de una modificación de una dirección se sale del área
de memoria se producirá un error de operación.
Ejemplo: Cuando la dirección resultado de una modificación es
negativa o un número excesivamente grande.
D Cuando se modifica una constante de 32 bits, el registro de índice
especificado y el siguiente registro de índice se emplean en
combinación para menejar el dato en 32 bits.
Área de 16--bits superior Área de 16--bits inferior
Contenido de IY
2 -- 22
Contenido de IX
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.3 Constantes, explicación
2.3
Constantes, explicación
2.3.1
Constantes decimales (K)
Función de las constantes decimales (K)
Cuando se lea o introduzca una constante decimal, especifique el valor de la misma
introduciendo delante una ’K’.
Las constantes decimales se utilizan principalmente para especificar tamaños y
cantidades tales como valores de preselección de temporizadores
Los datos se manejan normalmente como palabras de 16 bits, sin embargo pueden
también manejarse en unidades de 32 bits de manera ocasional.
El rango disponible de constantes decimales es:
D Datos de 16 bits: K--32768 a K32767
D Datos de 32 bits: K--2147483648 a K2147483647
2 -- 23
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.3 Constantes, explicación
2.3.2
Constantes hexadecimales (H)
Función de las constantes hexadecimales (H)
Las constantes hexadecimales son valores que se han convertido de binario a
hexadecimal. Cuando introduzca o lea una constante hexadecimal, especifique el valor
introduciendo una ’H’ delante de él.
Este tipo de constantes se emplean principalmente para especificar un determinado
orden de unos y ceros mediante un dato de 16 bits. Como por ejemplo en
configuraciones de registros de sistema y especificaciones de datos de control en
funciones de alto nivel. Las constantes hexadecimales se emplean también para
especificar datos en BCD.
Las constantes hexadecimales que se introducen en el autómata se convierten
internamente a binario en 16 bits y entonces se procesan como se muestra debajo.
Ejemplo: Entrada de la constante ”H2A”
Posición de bit
15
14
Hexadecimal
Binario
13
12
11
10
0
0
0
9
8
7
6
0
0
0
0
0
5
4
3
2
2
0
0
0
0
1
0
1
0
A
1
0
1
0
Los datos se manejan normalmente en unidades de 16 bits aunque ocasionalmente
pueden manejarse en unidades de 32 bits.
El rango disponible para las constantes hexadecimales es:
D Datos de 16 bits: H0 a HFFFF
D Datos de 32 bits: H0 a HFFFFFFFF
2 -- 24
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.3 Constantes, explicación
2.3.3
Constantes de caracteres (M)
Función de las constantes de caracteres (M)
Las constantes de caracteres (M) se emplean para expresar códigos ASCII en binario.
Las constantes de caracteres se expresan añadiendo el prefijo M al dato.
Este tipo de constantes se encuentran disponibles para las instrucciones F95 (ASC)
y F194 (MSG) mediante los software NPST--GR, FPSOFT y NAIS CONTROL.
Las constantes de carácter introducidas en el autómata se expresan en código
hexadecimal ASCII tal como se muestra debajo.
Ejemplo: Entrada de la constante ”MEWNET”
Constante caracter
T
E
N
W
E
M
ASCII Código Hex.
54
45
4E
57
45
4D
palabra
palabra
palabra
2 -- 25
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.4 Manejo de datos
2.4
Manejo de datos
2.4.1
Números en el autómata programable
Los autómatas programables FP0/FP1/FPM pueden manejar datos en unidades de 16
bits (palabras) o en unidades de 32 bits (dobles palabras).
<16 bits>
Datos de 16--bits binarios
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Constantes
decimales
K
·
·
·
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
·
·
·
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
32767
·
·
·
K
K
K
1
0
--1
K
·
·
·
--32768
Constantes
hexadecimales
H7FFF
·
·
·
H0001
H0000
HFFFF
·
·
·
H8000
<32-bits>
Datos de 32--bits binarios
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
·
·
·
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
·
·
·
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 -- 26
Constantes
decimales
Constantes
hexadecimales
K 2147483647
·
·
·
K
1
K
0
K
--1
·
·
·
K--2147483648
H7FFFFFFF
·
·
·
H00000001
H00000000
HFFFFFFFF
·
·
·
H80000000
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.4 Manejo de datos
Expresión de números en base decimal en el autómata
Los números en base decimal en los autómatas programables se procesan en binario
básicamente en 16 ó 32 bits.
El bit más significativo (MSB) de una unidad de 16 ó 32 bits expresa el signo del dato.
Cuando dicho bit es 0 se considera que el signo es positivo y si es 1 se considera que
el dato es negativo.
En el caso de números positivos, los bits que siguen al más significativo expresan la
cantidad.
Ejemplo 1: Expresión del número 1868
16,384
8,192
4,096
2,048
1,024
512
256
128
64
32
16
8
4
2
1
0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0
1,024 + 512 + 256 + 64 + 8 + 4 = 1,868
Bit más significativo: 0 (valor positivo)
Los números negativos por contra se expresan en complemento a dos (se invierten los
bits del número positivo y se añade un 1 al resultado).
Ejemplo2: Expresión del número decimal --4
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Expresión del nº 4
en binario
Invierte cada
bit
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
Añade
un 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
Expresión del nº --4
en binario
Bit más significtivo: 1 (valor negativo)
2 -- 27
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.4 Manejo de datos
Rangos de datos que pueden manejarse en el autómata
Los datos binarios que pueden manejarse en el autómata son:
D Datos de 16 bits: K--32768 a K32767
D Datos de 32 bits: K--2147483648 a K2147483647
Los códigos BCD que pueden manejarse son;
D Datos de 4 dígitos BCD Hexadecimal (16 bits): H0 a H9999
D Datos de 8 dígitos BCD Hexadecimal (32 bits): H0 a H99999999
Si alguno de los rangos arriba mencionados se excede cuando se está procesando el
dato correspondiente, se producirá un desbordamiento.
BCD es el acrónimo de Binary Coded Decimal y quiere decir que
cada dígito decimal se expresa mediante cuatro bits.
Ejemplo: Expresión en BCD del número 645.
Decimal
BCD Binario
BCD Hexadecimal
2 -- 28
6
4
5
0110
H 6
0100
4
0101
5
Cada dígito se
convierte a binario
FP0/FP1/FPM
Contactos, Áreas de memoria y constantes
2.4 Manejo de datos
2.4.2
Desbordamiento
Las instrucciones aritméticas pueden dar lugar de forma ocasional a un valor fuera de
los rangos permitidos. Este desbordamiento se puede producir por exceder el valor
máximo del rango (overflow) o por no llegar al valor mínimo. Cuando se produce desbordamiento del tipo que sea, el flag de acarreo R9009 se activa (se pone a ON).
Desbordamiento durante una operación binaria
Si alguno de los siguientes valores se excede, se producirá desbordamiento.
<Operación binaria de 16--bits>
Se produce desbordamiento si
se supera el valor máximo.
Max. value K 32767 H 7FFF
.
.
K
K
K
Min. value
.
.
<Operación binaria de 32--bits>
Se produce desbordamiento si
se supera el valor máximo.
K 2147483647
1
0
--1
H 0001
H 0000
H FFFF
.
.
K-32768
H 8000
Underflow si el valor es
menor que el mínimo.
H 7FFFFFFF
.
.
.
.
K
K
K
.
.
.
.
H 00000001
H 00000000
H FFFFFFFF
.
1
0
--1
.
K-2147483648
H 80000000
Underflow si el valor es
menor que el mínimo.
Desbordamiento durante una operación en BCD
Si alguno de los siguientes valores se excede, se producirá desbordamiento.
Sólo se puden emplear valores posiivos.
<Operación BCD de 4--bits>
Se produce desbordamiento si se
supera el valor máximo.
Max. value
H 9999
<Operación BCD de 8--bits>
Se produce desbordamiento si
se supera el valor máximo.
H 99999999
.
.
.
.
.
.
Min. value
H
.
.
.
.
.
.
0
Underflow si el valor es
menor que el mínimo.
H
0
Underflow si el valor es
menor que el mínimo.
2 -- 29
Contactos, Áreas de memoria y constantes
FP0/FP1/FPM
2.4 Manejo de datos
Valores cuando se produce desbordamiento
Los números empleados por el autómata forman en conjunto un lazo en el que el valor
máximo se une con el valor mínimo del rango simplemente añadiendo una unidad y el
valor mínimo con el máximo si se resta una unidad.
<Operación binaria de 16--bits>
Overflow
Máx. valor
K 32767
H 7FFF
1
0
--1
H 0001
H 0000
H FFFF
...
...
Mín. valor
...
...
K
K
K
K-32768
H 8000
El valor máximo
se enlaza con el
valor mínimo.
Underflow
Ejemplo 1: K32767 + K1 (desbordamiento, overflow)
El resultado es K--32768 y el flag de acarreo se activa.
Ejemplo 2: K--32768 -- K1 (desbordamiento, underflow)
El resultado es K32767 y el flag de acarreo se activa.
<Operación en BCD de 4--bits>
Overflow
Máx. valor
H 9999
.....
El valor máximo
se enlaza con el
valor mínimo.
Mín. valor
H
0
Underflow
Ejemplo 1: H9999 + H1 (desbordamiento, overflow)
El resultado es H0 y el flag de acarreo se activa.
Ejemplo 2: H0 -- H1 (desbordamiento, underflow))
El resultado es H9999 y el flag de acarreo se activa.
2 -- 30
Capítulo 3
Instrucciones básicas
3.1
Tipos de instrucciones básicas . . . . . . . . . . . . 3 -- 3
3.1.1
Instrucciones de secuencia . . . . . . . . 3 -- 3
3.1.2
Instrucciones de función . . . . . . . . . . 3 -- 4
3.1.3
Instrucciones de control . . . . . . . . . . . 3 -- 5
3.1.4
Instrucciones de comparación . . . . . 3 -- 6
3.2
Tablas de instrucciones básicas . . . . . . . . . . . . 3 -- 7
3.3
Descripción de instrucciones básicas . . . . . . 3 -- 13
Instrucciones básicas
3 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Instrucciones básicas
3.1 Tipos de instrucciones básicas
3.1
3.1.1
Tipos de instrucciones básicas
Instrucciones de secuencia
Estas instrucciones básicas realizan operaciones lógicas tomando como operando un
solo bit (relé interno, contacto de temporizador, etc.) y representan la base de la
secuencia del circuito del relés.
Hay varios tipos de contactos que se explican en la sección “2.1.1 Tipos de contactos”,
y el contacto que puede especificarse depende de la instrucción. Consulte la
explicación de cada instrucción en particular.
Ejemplo:
D Instrucción Start (ST)
-- Lee el estado ON/OFF del contacto especificado.
Entrada externa (X0).
Lee el estado de X0.
D Instrucción Out (OT)
-- Almacena el resultado de una operación en la salida indicada.
Salida externa (Y0)
Saca el resultado del operando (ON/OFF)
Programa ejemplo:
Contacto de
entrada externa
Relé interno
Dirección
X0
X1
R0
ST
AN
OT
0
R0
1
Contacto
de relé
interno
OR
Salida
Externa
R0
Y10
ST
OT
4
<Diagrama en escalera>
3 -- 3
Instrucciones básicas
FP0/FP1/FPM
3.1 Tipos de instrucciones básicas
3.1.2
Instrucciones de función
Estas instrucciones son las de temporizador, contador y registro de desplazamiento.
Estas instrucciones se componen de varios pasos.
Programa ejemplo:
-- Ejemplo de preselección de 3 segundos del temporizador
número 5 con una base de tiempos de 0.1 s
--
X0
T5
Base de tiempos de 0.1 x
tiempo de preselección
Valor de preselección (K30)
TXK
30
5
Contacto del
temporizador
Y0
-- La temporización comienza cuando la entrada X0 se
activa, y el contacto de temporizador 5 se activará cuando
hayan transcurrido 3.0 s con lo que la salida Y0 se
activará también.
3 -- 4
FP0/FP1/FPM
Instrucciones básicas
3.1 Tipos de instrucciones básicas
3.1.3
Instrucciones de control
Estas instrucciones determinarán el orden de ejecución del programa,especificando la
parte del mismo que se ejecutará.
Podemos dividir el programa en distintas partes, según el modo de ejecución.
D Relé maestro de control
El programa comprendido entre las instrucciones MC/MCE,
se ejecutará cuando su condición de activación esté en ON.
D Salto
Se produce un salto en la ejecución del programa, al
ejecutarse la instrucción JP, siendo la dirección de destino
aquella donde está la instrucción LBL. El salto se produce
cuando la condición de activación de la instrucción JP pase a
ON. Ésto acorta tiempo de ejecución del programa.
D Control paso a paso
Es la parte del programa, comprendido entre las instrucciones SSTP / STPE. Se trata como un proceso independiente, llevandose a cabo una ejecución secuencial y jerarquizada.
D Subrutina
Programa ,ejecutado repetidamente, para realizar una función determinada. Las instrucciones para programar una
subrutina son SUB o RET.
D Programa de interrupción
Se añaden a nuestro programa si es preciso que se ejecute
un programa inmediatamente después de haberse producido
una interrupción, abandonando el programa que se estaba
ejecutando.Las instrucciones que van a definir los programas
de interrupción son INT o IRET.
3 -- 5
Instrucciones básicas
FP0/FP1/FPM
3.1 Tipos de instrucciones básicas
3.1.4
Instrucciones de comparación
La función de este grupo de instrucciones es comparar dos datos. Según el resultado
de la comparación el contacto variará su estado de ON a OFF o viceversa. Cada
instrucción de este tipo está formada de varias partes.
Programa ejemplo
-- Ejemplo de comparación entre el valor de un registro de
datos, el DT10, y una constante decimal, en nuestro
ejemplo la K100.
<=, DT 10, K100
Y0
-- Si el valor de DT10 es menor o igual que el de K100, Y0
conmuta a ON.
-- Si el valor de DT10 es mayor que el de K100, Y0 conmuta
a OFF.
3 -- 6
FP0/FP1/FPM
Instrucciones básicas
3.2 Tablas de instrucciones básicas
3.2
Tablas de instrucciones básicas
Disponibilidad
FP0
-Instrucción
Lógica
Descripción
-- Todos
FP1
Paso
Pag.
C14 C24 C56
C16 C40 C72
FP--M
-- 2.7k 5 k
Instrucciones de secuencia
Start
ST
Start Not
ST/
Out
OT
Not
AND
/
AN
AND Not
AN/
OR
OR
OR Not
OR/
AND stack
ANS
OR stack
ORS
Push stack
Read stack
Pop stack
PSHS
RDS
POPS
Diferencial
flanco de
subida
Diferencial
flanco de
bajada
Set
Reset
Keep
DF
DF/
SET
RST
KP
Comienza una operación lógica con un
contacto normalmente abierto.
Comienza una operación lógica con un
contacto normalmente cerrado.
Almacena el resultado de una operación
en la salida específica.
Invierte el resultado de una operación.
Realiza la operación AND (serie) entre
contactos normalmente abiertos.
Realiza la operación AND (serie) entre
contactos normalmente cerrados.
Realiza la operación OR (paralelo) entre
contactos normalmente abiertos.
Realiza la operación OR (paralelo) entre
contactos normalmente cerrados.
Realiza la operación AND (serie) entre
bloques de contactos.
Realiza la operación OR (paralelo) entre
bloques de contactos.
Almacena el resultado de un operación.
Lee el resultado almacenado por PSHS.
Lee y borra el resultado almacenado por
PSHS.
Produce un pulso de duración igual a la
de 1 ciclo de scan en el flanco de subida.
1
A
A
A
3 -- 14
1
A
A
A
3 -- 14
1
A
A
A
3 -- 14
1
1
A
A
A
A
A
A
3 -- 16
1
A
A
A
3 -- 17
1
A
A
A
3 -- 18
1
A
A
A
3 -- 18
A
A
A
3 -- 19
1
A
A
A
3 -- 20
1
1
1
A
A
A
A
A
A
A
A
A
3 -- 21
A
A
A
3 -- 24
Crea un pulso de duración igual a la de 1
ciclo de scan en el flanco de bajada.
1
A
A
A
3 -- 24
Fuerza un contacto siempre a ON.
Fuerza un contacto siempre a OFF.
Convierte un relé interno o salida en
biestable
No operación.
3
3
1
A
A
A
A
A
A
A
A
A
3 -- 28
A
A
A
3 -- 31
No
NOP
operation
-- A: disponible N:no disponible
1
3 -- 17
3 -- 21
3 -- 21
1
1
3 -- 28
3 --30
3 -- 7
Instrucciones básicas
FP0/FP1/FPM
3.2 Tablas de instrucciones básicas
Disponibilidad
FP0
-Nombre
Lógica
Descripción
--
Todos
FP1
Paso
Pag.
C14 C24C C56
C16 40 C72
FP--M
Instrucciones de función
Temporiz.
TML
Temporizador a la conexión en
0,001 seg
(1)
unidades de 0,001 s (0 a 32,767 s).
Temporiz.
TMR
Temporizador a la conexión en
0,01 seg
unidades de 0,01 s (0 a 327,67 s).
Temporiz.
TMX
Temporizador a la conexión en
0,1 seg
unidades de 0,1 s (0 a 3276,7 s).
Temporiz.
TMY
Temporizador a la conexión en
1,0 seg
unidades de 1,0 s (0 a 32767 s).
Temporiz.
F137
Temporizador a la conexión en
auxiliar
(STMR) unidades de 0,01 s (0,01 a 327,67 s).
Contador.
CT
Contador con preselección tipo
sustracción.
Contador
F118
Contador con preselección tipo
UP/DOWN
(UDC)
sustracción/adición.
Registro de SR
Registro de desplazamiento (izquierda).
desplazami
ento sobre
relés
internos
Reg. Desp. F119
Registro de desplazamiento
Izquierda/
(LRSR) izquierda/derecha.
Derecha
Instrucciones de control
Relé
MC
Ejecuta las instrucciones desde MC
maestro de
hasta MCE cuando la condicion de
control
activación está en ON.
Final relé
MCE
maestro de
control
Salto
JP
Salta a la etiqueta determinada cuando
es ON.
Etiqueta
LBL
Indica el lugar de salto a la instrucción
JP.
Loop
LOOP
Realiza un bucle tantas veces como se
halla especificado.
--
2.7k
3
--
--
3
A
A
A
3 -- 32
A
A
A
3 -- 32
A
A
A
3 -- 32
N
N(2)
A
A
A
A
A
A 4 -- 223
A
A
A
A
A
A 4 -- 227
A
A
A
3
4
5
3
5
5k
A(1) 3 -- 32
A 4 -- 251
3 -- 39
1
3 -- 46
5
2
3 -- 49
2
1
4
A
A
A
A
A
A
3 -- 53
A
A
A
3 -- 53
A
A
A
3 -- 56
(1): Para introducir la instrucción TML se necesitan las herramientas de programación
NPST--GR Ver. 4, FPSOFT Ver.1 o FP Programmer II (AFP1114V2). Sólo disponible en el FP0.
(2): No disponible para el FP1 pero si para el FP--M.
3 -- 8
FP0/FP1/FPM
Instrucciones básicas
3.2 Tablas de instrucciones básicas
Disponibilidad
FP0
-Nombre
Lógica
Descripción
-- Todos
FP1
Paso
Pag.
C14 C24 C56
C16 C40 C72
FP--M
-- 2.7k 5 k
End
ED
Indica el final del ciclo de scan.
End
CNDE Ejecuta el final del ciclo de scan
condicional
cuando es ON.
Instrucciones paso a paso
1
1
Proceso paso SSTP
Comienzo de proceso paso a paso.
a paso
Próximo paso NSTL
Transfiere el proceso al siguiente
(scan)
paso en cada scan.
Próximo paso NSTP
Transfiere el proceso al siguiente
(pulso)
paso en el flanco de subida.
Final proc.
CSTP
Fin del proceso paso a paso.
paso a paso
Final de área
STPE
Fin de área de proceso paso a paso.
paso a paso
Instrucciones de subrutinas
3
Llamada a
CALL
Transfiere el control a la subrutina
subrutina
especificada.
Comienzo
SUB
Comienzo de una subrutina.
subrutina
Final de
RET
Finaliza una subrutina y devuelve el
subrutina
control al programa principal.
Instrucciones de interrupciones
2
Comienzo de
interrupción
Final de
interrupción
INT
1
Llamada a
interrupción
ICTL
IRET
Comienzo de un programa de
interrupción.
Finaliza un programa de interrupción
y devuelve el control al programa
principal.
Transfiere el control a la subrutina
de interrupción especificada.
3
3
3
1
1
1
A
A
A
3 -- 59
A
A
A
3 -- 61
A
A
A
3 -- 62
A
A
A
3 -- 62
A
A
A
3 -- 62
A
A
A
3 -- 62
A
A
A
3 -- 62
A
A
A
3 -- 72
A
A
A
3 -- 72
A
A
A
3 -- 72
N
A
A
3 -- 75
N
A
A
3 -- 75
N
A
A
3 -- 81
1
5
3 -- 9
Instrucciones básicas
FP0/FP1/FPM
3.2 Tablas de instrucciones básicas
Disponibilidad
FP0
-Nombre
Lógica
Operandos
Descripción
--
Todos
FP1
Paso
C14
C16
C24
C40
Pag.
C56
C72
FP--M
--
2.7k
5k
N
A
A
3 -- 85
N
A
A
3 -- 89
N
A
A
3 --93
N
A
A
3 -- 85
N
A
A
3 -- 89
N
A
A
3 --93
N
A
A
3 --85
N
A
A
3 --93
N
A
A
3 -- 89
N
A
A
3 -- 85
N
A
A
3 -- 89
N
A
A
3 --93
Instrucciones de comparación
Comparación ST =
de palabras:
START , AND
AN =
u OR igual
OR=
Comparación ST< >
de palabras:
START, AND
u OR distinto AN <>
OR<>
Comparación ST>
de palabras:
START, AND
AN >
u OR mayor
OR>
Comparación ST >=
de palabras:
START, AND
u OR mayor
AN >=
o igual
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
OR >=
S1, S2
3 -- 10
Realiza la
operación START,
AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1 =
S2” (igual que).
Realiza la
operación START,
AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1 <>
S2” (distinto que).
Realiza la
operación START,
AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1 >
S2” (mayor que).
Realiza la
operación START,
AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1>=
S2” (mayor o igual
que).
5
5
5
5
5
5
5
5
5
5
5
5
FP0/FP1/FPM
Instrucciones básicas
3.2 Tablas de instrucciones básicas
Disponibilidad
FP0
-Nombre
Lógica
Operandos
Descripción
--
Todos
FP1
Paso
C14
C16
C24
C40
Pag.
C56
C72
FP--M
Comparación ST<
de palabras:
START, AND
AN<
u OR menor
S1, S2
OR<
S1, S2
S1, S2
Comparación ST<=
de palabras:
START, AND
u OR menor AN <=
o igual
S1, S2
OR <=
S1, S2
Comparación STD =
de palabras
dobles:
START, AND AND=
u OR menor
o igual
ORD=
S1, S2
S1, S2
S1, S2
S1, S2
Comparación STD <>
de palabras
dobles:
START, AND AND <>
u OR distinto
S1, S2
ORD <>
S1, S2
S1, S2
Realiza la operación
START, AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1 < S2”
(menor que).
Realiza la operación
START, AND u OR
comparando dos
datos de 16 bits
mediante la
condición “S1 <=
S2” (menor o igual
que).
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1) =
(S2+1, S2).”
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1)<>
(S2+1, S2).”
5
5
5
5
5
5
9
9
9
9
9
9
--
2.7k
5k
N
A
A
3 -- 85
N
A
A
3 --89
N
A
A
3 -- 93
N
A
A
3 --85
N
A
A
3 --89
N
A
A
3 -- 93
N
A
A
3 -- 87
N
A
A
3 --91
N
A
A
3 --96
N
A
A
3 -- 87
N
A
A
3 --91
N
A
A
3 --96
3 -- 11
Instrucciones básicas
FP0/FP1/FPM
3.2 Tablas de instrucciones básicas
Disponibilidad
FP0
-Nombre
Lógica
Operandos
Descripción
--
Todos
FP1
Paso
C14
C16
C24
C40
Pag.
C56
C72
FP--M
Comparación STD >
de palabras
dobles:
START, AND AND >
u OR mayor
OR >
S1, S2
S1, S2
S1, S2
Comparación STD >=
de palabras
dobles:
START, AND AND >=
u OR mayor
o igual
ORD >=
S1, S2
Comparación STD <
de palabras
dobles:
START, AND AND <
u OR menor
S1, S2
ORD <
S1, S2
Comparación STD <=
de palabras
dobles:
START, AND AND <=
u OR menor
o igual
ORD <=
3 -- 12
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
S1, S2
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1) >(S2+1,
S2).”
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1) >=
(S2+1, S2).”
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1) <
(S2+1, S2).”
Realiza la operación
START, AND u OR
comparando dos
datos de 32 bits
mediante la
condición
“(S1+1, S1) <=
(S2+1, S2).”
9
9
9
9
9
9
9
9
9
9
9
9
--
2.7k
5k
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
N
A
A
3 --87
3 --91
3 --96
3 --87
3 --91
3 --96
3 --87
3 --91
3 --96
3 --87
3 --91
3 --96
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
3.3
Descripción de instrucciones básicas
Diagrama explicativo de las instrucciones
Nombre de la instrucción
Número de pasos por
instrucción
Tipo de autómata disponible
Lógica programable
Diagrama en
escalera
empleando
software de
programación
Programación
con consola de
mano FP
programmer II
Operadores
válidos para la
instrucción
Ampliación del
programa
ejemplo y
descripción de
las
instrucciones
Diagrama de
tiempos del
programa
ejemplo
3 -- 13
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
ST
ST/
OT
Concepto
Start
1
Todos FP0s /
Start Not
1
FP--Ms
Out
1
y FP1s
ST:
Comienza una operación lógica con un contacto normalmente
abierto.
ST/: Comienza una operación lógica con un contacto normalmente
cerrado.
OT: Almacena el resultado de una operación en la salida
específica. 1
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
X0
Y0
0
0
X0
2
Out
Start Not
Y1
Out
2
ST/
OT
X
Y
X
Y
0
0
0
1
ST
ST
X-WX
X-WX
OT
AN
0
WRT
WRT
L-WL
Y-WY
0
ST
NOT
ST
X-WX
DT/Ld
X-WX
0
OT
AN
L-WL
Y-WY
1
WRT
WRT
J Diagrama de tiempos
Contacto del
temporizador /
contador
Contacto
Instrucción
OT
3
J Operandos
Instrucción
ST
1
Start
Programación con
consola de mano FP
Programmer II
X
Y
R
T
C
ST, ST/
A
A
A
A
A
OT
N/A
A
A
N/A
N/A
X0
ON
OFF
Y0
ON
OFF
Y1
ON
OFF
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Y0 conmuta a ON cuando lo hace X0.
S Y1 conmuta a ON cuando X0 cambia a OFF.
Descripción
S Use la instrucción ST cuando programe un contacto normalmente abierto
como comienzo de linea.
S Use la instrucción ST/ cuando programe un contacto normalmente cerrado
como comienzo de linea.
S Use la instrucción OT para activar una salida externa (relé) o un relé interno.
3 -- 14
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
. Notas
D Las instrucciones ST y ST/ se programan como comienzo de
línea.
X0
Y0
D No se puede emplear la salida Y0 directamente como inicio de
linea.
Y0
D La instrucción OT puede utilizarse continuamente.
X0
Y0
Y1
Y2
D Si el sensor conectado a una entrada está ya cerrado
(interruptor de emegencia), se debe programar como un
contacto normalmente abierto.
D Para más detalles sobre de salidas duplicadas empleando la
instrucción OT cosultar la página 5--3, “ 5.1 Uso duplicado de
salidas”
3 -- 15
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
/
Concepto
Not
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
1
Invierte el resultado de una operación.
2
Programa ejemplo
Lógica
Diagrama en escalera
X0
Dirección
Y0
0
ST
1
0
Y1
Not
J Explicación del ejemplo
S Y0 conmuta a ON e Y1 a OFF cuando X0
cambia a ON.
S Y0 conmuta a OFF e Y1 a ON cuando X0
cambia a OFF.
Programación con
consola de mano FP
Programmer II
Instrucción
OT
2
/
3
OT
X
Y
0
0
ST
ST
X-WX
X-WX
OT
AN
L-WL
Y-WY
0
WRT
0
WRT
1
WRT
NOT WRT
DT/Ld
Y
1
OT
AN
L-WL
Y-WY
J Diagrama de tiempos
X0
ON
OFF
Y0
ON
OFF
Y1
ON
OFF
Descripción
S La instrucción “NOT” invierte el resultado obtenido justamente antes de esta
instrucción.
3 -- 16
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
AN
AN/
Concepto
AND
1
AND Not
1
Todos FP0s /
FP--Ms y FP1s
AN: Realiza la operación AND (serie) entre contactos normalmente
abiertos.
AN/: Realiza una operación AND (serie) entre contactos normalmente
cerrados. 3
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X1
X2
Y0
AN
2
AND Not
AND
AN/
3
J Operandos
AN, AN/
OT
X
X
X
Y
0
1
2
0
ST
ST
X-WX
X-WX
AN
ST
0
WRT
WRT
Y-WY
X-WX
1
AN
NOT
ST
Y-WY
DT/Ld X-WX
OT
AN
L-WL
Y-WY
0
2
WRT
WRT
J Diagrama de tiempos
Contacto del
temporizador /
contador
Contacto
Instrucción
Instrucción
ST
1
0
Programación con
consola de mano FP
Programmer II
X
Y
R
T
C
A
A
A
A
A
A:Disponible
N/A:No disponible
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
Y0
ON
OFF
J Explicación del ejemplo
S Y0 conmuta a ON cuando X0 y X1 cambian a ON y X2 lo hace a OFF.
Descripción
S Realiza operación lógica AND o AND NOT con los resultados obtenidos de
los diferentes contactos conectados en serie.
. Notas
D Se emplea la instrucción AN cuando contactos
normalmente abiertos están conectados en serie.
D Se emplea la instrucción AN/ cuando contactos
normalmente cerrados están conectados en serie.
X0
X1
Y0
X2
X3
Y1
D AN and AN/ pueden ser usadas continuamente.
X0
X1
X2
X3
Y0
3 -- 17
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
OR
OR/
Concepto
OR
1
Todos FP0s /
OR Not
1
FP--Ms y FP1s
OR: Realiza la operación OR (paralelo) entre contactos normalmente
abiertos.
OR/: Realiza la operación OR (paralelo) entre contactos normalmente
cerrados. 4
Programa ejemplo
Lógica
Diagrama en escalera
X0
Dirección
Y0
0
0
1
OR
2
OR
X2
OR/
3
2
Instrucción
ST
1
X1
Programación con
consola de mano FP
Programmer II
OT
X
X
X
Y
0
1
2
0
ST
ST
X-WX
X-WX
OR
ST
R-WR
X-WX
OR NOT
R-WR DT/Ld
OT
AN
L-WL
Y-WY
0
WRT
1
WRT
ST
X-WX
2
0
WRT
WRT
OR Not
J Operandos
Contacto del
temporizador /
contador
Contacto
Instrucción
OR, OR/
J Diagrama de tiempos
X
Y
R
T
C
A
A
A
A
A
A:Disponible
N/A:No disponible
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
Y0
ON
OFF
J Explicación del ejemplo
S Y0 conmuta a ON cuando X0 o X1 cambia a ON o X2 lo hace a OFF.
Descripción
S Realiza la operación lógica OR / OR/ con los resultados obtenidos en los
diferentes contactos conectados en paralelo.
. Notas
D Cuando los contactos en paralelo son normalmente abiertos
se utiliza la instrucción OR.
D Cuando los contactos en paralelo son normalmente cerrados
se utiliza la instrucción OR/.
Y0
X0
D Use la instrucción OR al comienzo
de línea, de la misma forma que
la instrucción ST.
D Se pueden utilizar continuamente
las instrucciones OR y OR/.
3 -- 18
X1
X2
X3
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
ANS
Concepto
Paso
Disponibilidad
1
Todos FP0s / FP--Ms
y FP1s
AND stack
Realiza la operación AND (serie) entre bloques de contactos.
5
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X2
X1
OR
2
X3
ST
3
Bloque 2
Bloque 1
J Explicación del ejemplo
OR
4
ANS
5
OT
X
X
X
X
0
1
2
3
ST
ST
X-WX
X-WX
OR
ST
R-WR X-WX
ST
ST
X-WX
X-WX
OR
ST
R-WR X-WX
AN
Y-WY
Y
0
0
WRT
1
WRT
2
WRT
3
WRT
STK
IX/IY WRT
OT
AN
L-WL
Y-WY
0
WRT
J Diagrama de tiempos
S Y0 conmuta a ON cuando X0 o X1 y X2 o X3
cambian a ON.
(X0 OR X1) AND (X2 OR X3) → Y0
bloque 1
ST
1
Y0
0
Programación con
consola de mano FP
Programmer II
Instrucción
bloque 2
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
X3
ON
OFF
Y0
ON
OFF
Descripción
S Use la instrucción ANS cuando programe bloques en serie.
+
S Use la instrucción ST al iniciar un bloque.
S Cuando dos o más bloques de insrucciones se programen en serie, se debe
realizar el programa como se indica a continuación.
1
2
bloque
5
X0
X2
X4
bloque
4
X1
X3
X5
Y0
bloque
5
ST
bloque
1
OR
bloque
4
ST
bloque
2
OR
0
X
1
X
2
X
3
ANS . . . . . . . . . . . 1
bloque
3
bloque bloque bloque
1
2
3
X
ST
X
4
OR
X
5
ANS . . . . . . . . . . . 2
OUT
Y
0
3 -- 19
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
ORS
Concepto
OR stack
1
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
Realiza la operación OR (paralelo) entre bloques de contactos.
6
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X1
X3
ST
3
Block 2
J Explicación del ejemplo
AN
4
ORS
5
OT
X
X
X
X
0
1
2
3
ST
ST
X-WX
X-WX
AN
ST
Y-WY
X-WX
ST
ST
X-WX
X-WX
AN
ST
Y-WY
X-WX
OR
R-WR
Y
0
0
WRT
1
WRT
2
WRT
3
WRT
STK
IX/IY WRT
OT
AN
L-WL
Y-WY
0
WRT
J Diagrama de tiempos
S Y0 conmuta a ON cuando X0 y X1 o X2 y X3
cambia a ON.
(X0 AND X1) OR (X2 AND X3) → Y0
bloque 1
AN
2
0
X2
ST
1
Y0
Block 1
Programación con
consola de mano FP
Programmer II
Instrucción
bloque 2
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
X3
ON
OFF
Y0
ON
OFF
Descripción
S Use la instrucción ORS cuando programe bloques en pararelo.
+
S Use la instrucción ST al iniciar un bloque.
S Cuando dos o más bloques de insrucciones se programen en paralelo, se
debe realizar el programa como se indica a continuación.
bloque 4
bloque
1
bloque
2
bloque
3
X0
X1
X2
X3 1
X4
X5 2
Y0
bloque
5
ST
bloque
AN
bloque 1
4
ST
bloque
AN
2
X
0
X
1
X
2
X
3
ORS . . . . . . . . .
ST
bloque
3
AN
X
4
X
5
ORS . . . . . . . . .
bloque 5
3 -- 20
OUT
1
Y
2
0
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
PSHS
RDS
POPS
Push stack
1
Read stack
1
Pop stack
1
Todos FP0s /
FP--Ms y FP1s
Concepto
PSHS: Almacena el resultado de una operación. 7
RDS: Lee el resultado de la operación almacenado por PSHS.
POPS: Lee y borra el resultado almacenado por PSHS.
Programa ejemplo
Lógica
Diagrama en escalera
X0
X1
Dirección
Y0
0
X2 Push Stack
X3 Read Stack
Y1
Y2
Pop Stack
J Explicación del ejemplo
S Cuando X0 cambia a ON:
-- La instrucción PSHS almacena el resultado
obtenido inmediatamente antes de esta
instrucción e Y0 pasa a ON cuado X1 lo
hace a ON.
-- La instrucción RDS lee el resultado
almacenado por PSHS e Y1 conmuta a ON
cuando X2 lo hace a ON.
-- La instrucción POPS lee el resultado
almacenado por PSHS e Y2 conmuta a ON
cuando X3 lo hace a OFF. Esta instrucción
también borra el resultado almacenado por
la instrucción PSHS.
Programación con
consola de mano FP
Programmer II
Instrucción
0
ST
1
PSHS
2
AN
3
OT
4
RDS
5
X
0
ST
ST
X-WX
X-WX
0
WRT
9
SHIFT
WRT
SHIFT
SC
X
1
Y
0
AN
X
2
6
OT
Y
1
7
POPS
8
AN/
X
3
9
OT
Y
2
AN
ST
Y-WY
X-WX
OT
AN
L-WL
SHIFT
SC
1
WRT
Y-WY
0
WRT
A
SHIFT
WRT
AN
ST
Y-WY
X-WX
OT
AN
L-WL
SHIFT
SC
SC
2
WRT
Y-WY
1
WRT
WRT
B
SHIFT
AN
NOT
ST
Y-WY
DT/Ld
X-WX
3
OT
AN
L-WL
Y-WY
2
WRT
SC
SC
WRT
J Diagrama de tiempos
X0
ON
OFF
X1
ON
OFF
Y0
ON
OFF
X2
ON
OFF
Y1
ON
OFF
X3
ON
OFF
Y2
ON
OFF
3 -- 21
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Descripción
S PSHS: Almacena el resultado obtenido inmediatamente antes de esta
instrucción.
S RDS: Lee el resultado almacenado por la instrucción PSHS ,y en base a
éste continúa la operación en el paso siguiente.
S POPS: (borra el resultado):
1. Lee el resultado almacenado por la instrucción PSHS, y en base
a éste continúa la operación en el siguiente paso.
2. Resetea el resultado almacenado por la instrucción PSHS.
. Notas
D Se puede emplear el mismo resultado de una operación varias
veces, utilizando repetidamente la instrucción RDS. Cuando
se termine este proceso se debe utilizar la instrucción POPS
para borrar el resultado de la operación.
X1
Y0
PSHS
X2
Y1
RDS
X3
X0
X4
Y2
POPS
D La instrucción RDS puede utilizarse repetidamente cualquier
número de veces.
Y0
X0
Y1
X1
X2
X3
Y2
X4
X5
Y3
X6
X7
Y4
RDS
3 -- 22
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Consideraciones en el uso repetido de la instrucción PSHS en el FP0
D La instrucción PSHS puede ser utilizada ocho veces antes de
que se realice una operación de borrado con la instrucción
POPS. Si se utiliza más de ocho veces no se garantiza un
funcionamiento correcto.
X0 X1 X2 X3 X4 X5 X6 X7
1
2
3
4
5
6
7
Max. 8 veces
8
X8 Y0
ST X 0
PSHS . . . .1
AN X 1
PSHS . . . .
2
AN X 2
PSHS . . . .
AN X 3 3
PSHS . . . .
AN X 4 4
PSHS . . . .
AN X 5 5
PSHS . . . .
AN X 6 6
PSHS . . . .
AN X 7 7
PSHS . . . .
AN X 8 8
OT Y 0
D Si se utiliza la instrución POPS durante el uso repetido de la
instrucción PSHS, se leerán los datos empezando por el
último almacenado por la instrucción PSHS.
X0 X1 X2 X3 X4 X5 Y0
X6 Y1
1
2
3
4
5
X7 Y2
X8 Y3
POPS . . . . . 5 Leyendo
AN
X 6
OT
Y 1
POPS . . . . .
Leyendo
4
AN
X 7
OT
Y 2
POPS . . . . .
Leyendo
AN
X 8 3
OT
Y 3
X9 Y4
XA Y5
3 -- 23
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
DF
DF/
Concepto
Paso
Disponibilidad
Diferencial flanco de subida
1
Todos FP0s /
Diferencial flanco de bajada
1
FP--Ms y FP1s
DF: Produce un pulso de duración igual a la de 1 ciclo de “scan” en el
flanco de subida.
DF/: Produce un pulso de duración igual a la de 1 ciclo de “scan” en el
flanco de bajada. 8
Programa ejemplo
Lógica
Diagrama en escalera
0
ST
Y0
1
DF
(DF)
2
X1
3
Instrucción
Diferencial flanco de subida
X0
0
Dirección
Y1
(DF/)
Diferencial flanco de bajada
J Explicación del ejemplo
S Y0 conmuta a ON durante un ciclo de scan
cuando se detecta el flanco de subida en X0.
S Y1 conmuta a ON durante un ciclo de scan
cuando se detecta el flanco de bajada en X1.
OT
3
Programación con
consola de mano FP
Programmer II
ST
4
DF/
5
OT
X
0
ST
X-WX
0
WRT
0
SHIFT
WRT
SHIFT
SC
Y
X
0
1
OT
AN
L-WL
Y-WY
ST
ST
X-WX
SHIFT
SC
Y
1
SC
0
WRT
X-WX
1
WRT
0
SHIFT
NOT
OT
AN
L-WL
Y-WY
SC
DT/Ld
1
WRT
J Diagrama de tiempos
X0
ON
OFF
X1
ON
OFF
Y0
ON
OFF
Y1
ON
OFF
1 scan
1 scan
1 scan
Flanco de
subida
3 -- 24
ST
X-WX
Flanco de
bajada
1 scan
WRT
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Descripción
S La instrucción DF produce un pulso en la salida Y0, de duración un ciclo de
scan, cuando la entrada (X0 en el ejemplo) cambia de OFF a ON.
S La instrucción DF/ produce un pulso en la salida Y1, de duración un ciclo de
scan, cuando la entrada (X1 en el ejemplo) cambia de ON a OFF.
S Se pueden emplear las instrucciones DF y DF/ tantas veces como se desee.
S No se puede obtener una salida diferencial cuando un relé biestable se
activa o cuando una entrada ya está activada en el primer ciclo de scan. Sólo
se produce la salida diferencial si se detecta una transición en modo RUN.
<Ejemplo> DIferencial en flanco de subida ( instrucción DF)
X0 ON
OFF
Y0 ON
OFF
Instrucción DF
RUN no ejecutada
Flanco de
subida
. Notas
D La ejecución del circuito mostrado se explica a continuación.
X0
X0
X1
(DF)
Y0
X1
Y0
1 2
3
--
1
Cuando X1 está en OFF, incluso si X0 conmuta a
ON, Y0 permanece en OFF.
--
2
Cuando X0 está en ON, incluso si X1 conmuta a
ON, Y0 permanece en OFF.
--
3
Si X0 conmuta a ON cuando X1 está en este
estado, entonces Y0 cambiará a ON durante 1
ciclo de scan.
3 -- 25
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
D Para más información ver en 3--49 Instrucciones MC/MCE,
3--52 Instrucciones JP/LBL y en el capítulo “5.5 Instrucción
Diferencial en flanco de subida (DF).”
D Cuando se utilicen las instrucciones DF o/y DF/ con las
instrucciones ANS o POPS, se debe comprobar que la sintaxis
es correcta. Para más detalles ir a “5.6 Precauciones en la
programación.”
D Cuando se utilicen las instrucciones DF o DF/ con
instrucciones que cambien el orden de ejecución del
programa, como MC y MCE o JP y LBL, se debe tener en
cuenta los siguientes puntos:
-- con MC y MCE (Ver página 3 -- 50.)
-- con JP y LBL (Ver página 3 -- 53.)
-- con LOOP y LBL (Ver página 3 -- 56.)
-- con CNDE (Ver página 3 --62.)
-- con instrucciones paso a paso (Ver página 3 -- 62.)
-- con instrucciones de subrutinas (Ver página 3 -- 72.)
D En el siguiente programa la condición de ejecución está
inicialmente a ON, por lo tanto no se obtiene salida.
R9013
Y0
DF
R9010
R9013 sólo conmuta a ON durante el primer
scan después de comenzar el modo RUN.
Y0
DF
R9010 está siempre en ON.
D Con el siguiente programa si se obtiene salida.
R9014
DF
Y0
3 -- 26
R9014 conmuta a ON desde el segundo scan
después de comenzar el modo RUN.
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Ejemplos de aplicación
Empleando las instrucciones DF y DF/ se facilita el ajuste del programa.
Aplicación a un circuito de auto--retención
S Empleando las instrucciones DF y DF/ se pueden manejar señales de entrada de gran duración.
X0
R0
Y0
X0
DF
Y10
X1
X1
R0
R0
DF
Y0
Sin emplear
DF oDF/
Y0’
Aplicación a un circuito alternativo
S Este tipo de instrucciones se pueden utilizar también en un circuito alternativo, para activar y
desactivar el circuito empleando una única señal.
X0
R0
R3
R0
DF
X0
R0
R0
X0
R0
R3
R1
R1
R3
R2
DF/
R1
R1
R2
X0
DF
R2
X0
DF/
R0 R2
R3
Y0
R2
R3
Y0
3 -- 27
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
SET
RST
Concepto
Set
3
Reset
3
SET: Fuerza un contacto siempre a ON.
RST: Fuerza un contacto siempre a OFF.
Todos FP0s /
FP--Ms y FP1s
4
Programa ejemplo
Lógica
Diagrama en escalera
Set
20
X1
SET, RST
0
ST
ST
X-WX
X-WX
0
WRT
1
9
SHIFT
21
SET
Y
0
Y0
24
ST
X
1
ST
ST
X-WX
X-WX
1
WRT
25
RST
Y
0
SHIFT
1
A
SHIFT
SC
SC
SC
SC
AN
Y-WY
AN
Y-WY
0
WRT
0
WRT
Reset
J Operandos
J Diagrama de tiempos
Contacto del
temporizador /
contador
Contacto
Instrucción
X
⟨S
⟨R
Número del
contacto de salida
ST
SHIFT
⟨
24
20
Y0
Programación con
consola de mano FP
Programmer II
Instrucción
⟨
X0
Dirección
X
Y
R
T
C
N/A
A
A
N/A
N/A
X0
ON
OFF
X1
ON
OFF
Y0
ON
OFF
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando X0 conmuta a ON, Y0 se pone en ON y mantiene este estado, aunque X0 vuelva a OFF.
S Cuando X1 conmuta a ON, Y0 se pone en OFF y mantiene este estado, aunque X1 vuelva a OFF.
Descripción
S La instrucción SET se ejecuta cuando su entrada pasa a ON. La salida pasa
a ON y mantiene ese estado, aunque la entrada cambie a OFF.
S La instrucción RST se ejecuta cuando su entrada pasa a ON. La salida pasa
a OFF y mantiene ese estado, aunque la entrada cambie a OFF.
S Se pueden utilizar las intrucciones SET y RST sobre la misma salida o relé
interno tantas veces como se quiera.
3 -- 28
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Al utilizar las instrucciones SET y RST se debe tener en cuenta:
S Cuando se utilizan SET y RST el estado de la salida cambia en cada paso de ejecución de la
instrucción.
Ejemplo: Estado de la salida al conmutar X0, X1 y X2 a ON
X0
Y0
⟨S
⟨
Y0
Esta parte del programa se procesa como si Y0 estuviera en ON.
X1
Y0
X2
Y0
⟨
⟨R
Esta parte del programa se procesa como si Y0 estuviera en OFF.
⟨S
⟨
Esta parte del programa se procesa como si Y0 estuviera en ON.
S El refresco de las entradas/salidas se realiza al ejecutar instrucción ED, por lo tanto el dato que se
encuentra en la salida no es válido hasta que se completa el ciclo de scan. En el ejemplo la salida
que proporciona Y0 es ON.
S Para obtener un resultado provisional en la salida mientras la instrucción no ha terminado de
ejecutarse, se utiliza la instrucción de refresco parcial de entradas/salidas (F143).
Notas
D La salida física para resultado de la ejecución de la
instrucción SET se conserva incluso durante la ejecución de
la instrucción MC.
D La salida física para el resultado de la ejecución de la
instrucción SET se resetea cuando se cambia de modo RUN a
PROG o cuando la alimentación pasa a OFF, excepto si la
salida física es un relé interno de retención.
D Más detalles sobre las instrucciones MC/MCE, ver en 3--49.
Uso de las instruccciones SET/RST y DF/DF/
S Para desarrollar y mejorar el programa más fácilmente se puede situar la instrucción DF antes de
utilizar SET y RST.
S Ésto es particularmente efectivo cuando se emplea la misma salida física en diferentes partes del
programa.
X0
Y0
⟨S
(DF)
⟨R
X1
⟨
(DF)
Y0
⟨
3 -- 29
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
KP
Concepto
Keep
Todos FP0s / FP--Ms
y FP1s
1
Convierte un relé interno o salida externa en biestable.
5
Programa ejemplo
Lógica
Diagrama en escalera
X0
0
X1
Dirección
Entrada de RESET
KP R 30
Entrada de SET
1
0
Programación con
consola de mano FP
Programmer II
Instrucción
ST
X
0
1
ST
X
1
2
KP
R
30
ST
ST
X-WX
X-WX
ST
ST
X-WX
X-WX
SHIFT
2
SC
0
WRT
1
WRT
SHIFT
SC
OR
R-WR
3
0
WRT
Dirección de salida
J Operandos
Contacto del
temporizador /
contador
Contacto
Instrucción
KP
J Diagrama de tiempos
X
Y
R
T
C
N/A
A
A
N/A
N/A
X0
ON
OFF
X1
ON
OFF
R30 ON
OFF
A:Disponible
N/A:No disponible
Set
Reset
Reset tiene
peferencia
J Explicación del ejemplo
S Cuando conmuta a ON, la salida R30 pasa a ON y permanece en ese estado.
S La salida R30 pasa a OFF cuando X1 conmuta a ON.
Descripción
S La salida es puesta en ON en el flanco de subida de la señal de entrada de
set, y permanece en este estado mientras la entrada de reset esté en OFF.
S La salida pasa a OFF en el flanco de subida de la entrada reset.
S El estado de la salida se mantiene en ON hasta que la entrada de reset pase
a ON, sin tener en cuenta el estado en que se encuentra la entrada de set.
S Si la señal de entrada de set y la entrada de reset se activan al mismo
tiempo, la entrada de reset tiene prioridad.
. Notas
D Si la instrucción KP se programa entre las instrucciones
MC/MCE el estado de su salida no varía aunque la entrada de
la instrucción MC no se active.
D Si se quiere mantener el estado del relé biestable ante un
corte de alimentación, o un cambio de RUN a PROG, se debe
programar como biestable un relé de retención ante fallo de
tensión.
3 -- 30
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
NOP
Concepto
Paso
Disponibilidad
1
Todos FP0s / FP--Ms
y FP1s
No operation
No operación.
6
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X1
0
X2
Y0
S
NOP
1
ST
X
AN
2
NOP
3
AN/
4
Programación con
consola de mano FP
Programmer II
Instrucción
0
X
1
ST
ST
X-WX
X-WX
AN
ST
Y-WY
X-WX
SHIFT
1
SC
X
OT
2
Y
0
WRT
1
WRT
SHIFT (DELT)
SC INST
AN
NOT
ST
Y-WY
DT/Ld
X-WX
2
OT
AN
L-WL
Y-WY
0
WRT
0
WRT
J Explicación del ejemplo
S Se detecta un estado válido en la salida Y0 cuando X0 y X1 pasa a ON y X2 está OFF.
Descripción
S Se puede utilizar esta la instrucción NOP para hacer más legible el programa
cuando se compruebe o corrija.
S Esta instrucción no hace nada.No tiene efecto sobre los resultados.
S Cuando se quiere borrar una insrucción de un programa sin variar las direcciones
es que está ubicado se escribe la instrucción NOP sobre la que se desea eliminar.
S Si se desea cambiar de dirección una parte del programa sin modificar el resto se
inserta la instrucción NOP.
S Con esta instrucción se puede dividir un programa largo en varios bloques.
S Al utilizar la instrucción NOP se incrementa ligeramente el tamaño del programa,
sin embargo, no varia el resultado de las operaciones aritméticas.
Ejemplo:
S Para mover el punto de inicio de un bloque del programa de la dirección 39 a la 40, se inserta la
instrucción NOP en la dirección 39. Ésto sitúa el punto de inicio a la dirección 40.
Address
Address
36
ST X0
36
ST X0
S
OR X1
S
OR X1
S
OT Y1
S
OT Y1
Insertar la instrucción NOP.
39
NOP
39
ST X2
40
ST X2
40
AN X3
41
AN X3
S
OT R20
S
OT R20
S
ST R2
S
ST R2
S
DF
S
DF
44
ST X3
45
ST X3
Para borrar la instrucción NOP
S Para borrar la instrucción NOP después de realizar un programa en el modo PROG, debemos
utilizar las siguientes herramientas de programación: NPST--GR / FPSOFT / FP programmer II.
-- Con el NPST-GR: DELETE ALL NOPS
-- Con el FPSOFT: Delete All Nops
-- Con el FP programmer II: OP1 Clave de operación:ACLR
(--)
OP
1
ENT
SHIFT (DELT)
SC
INST
3 -- 31
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
TML
TMR
TMX
TMY
Concepto
Paso
Disponibilidad
Temporizador 0.001s
3
Todos FP0s
Temporizador 0.01s
3
Temporizador 0.1s
3
Temporizador 1.0s
4
Todos FP0s /
FP--Ms y FP1s
TML:Temporizador a la conexión en unidades de 0.001 s (0 a 32.767 s)
TMR:Temporizador a la conexión en unidades de 0.01 s (0 a 327.67 s)
TMX:Temporizador a la conexión en unidades de 0.1 s (0 to 3276.7 s)
TMY:Temporizador a la conexión en unidades de 1 s (0 to 32767 s) 7
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Valor de preselección
0
Entrada
0
T5
4
Número
del temporizador
X
TM
X
K
Valor actual
Contacto del temporizador
No.5
Instrucción
ST
1
TX K 30
5
X0
4
0
5
30
ST
5
Y0
Programación con
consola de mano FP
Programmer II
T
OT
Y
5
0
ST
ST
X-WX
X-WX
TM
ST
T-SV
0
WRT
X-WX
5
ENT
K/H
3
0
WRT
ST
TM
X-WX
T-SV
5
WRT
OT
AN
L-WL
Y-WY
0
WRT
(BIN)
Número
del
temporiz.
C14 Y C16 del FP1: hasta el 128 Todos los FP--Ms, FP0s y C24, C40, C56, y C72 del FP1: hasta el 144
Se comparte la numeración de los temporizadores con la de los contadores. La numeración de los contadores y de los temporizadores pueden cambiarse configurando el registro especial de sistema nº 5.
El valor por defecto de la numeración de los contadores y temporizadores:
C14 y C16 del FP1: temporizadores: 0 a 99 / contadores: 100 a 127
todos los FP--Ms,FP0s y C24, C40, C56 y C72 del FP1: temporizadores: 0 a 99 / contadores: 100 a143
Valor de
preselec.
Rango: K0 a K32767
Se pueden usar constantes o áreas de preselección (SVn) * cuyo número coincide con el número del
temporizador (n).
J Operandos
Instrucción
Valor de
preselec.
Contactos
Temporizador
/ Contador
Registro
Registro
de índice
Constante
WX WY WR
SV
EV
DT
IX
IY
K
H
N/A N/A N/A
A
N/A
N/A
N/A
N/A
A
N/A
J Explicación del ejemplo
S Tres segundos después de que X0 pase a
ON, el contacto del temporizador T5
conmuta a ON. Entonces Y0 pasa a ON.
N/A
A:Disponible
N/A:No disponible
J Diagrama de tiempos
X0
ON
OFF
T5
ON
OFF
Y0
ON
OFF
3s
3 -- 32
Modific.
de índice
3s
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Descripción
SSi no hay suficientes temporizadores (instrucciones TM) , se pueden incrementar cambiando la
configuración del registro especial de sistema nº 5.
SEl temporizador se resetea cuando se apaga la alimentación, o al se cambiar de modo RUN a PROG.
SCuando la entrada está en ON, el tiempo de preselección [n] se decrementa, y cuando el área de valor
actual llega a cero, el contacto del temporizador Tn (siendo n el número del contacto del temporizador)
conmuta a ON.
SSi la entrada cambia a OFF durante una operación, se detiene esa operación y el valor actual se
reinicializa con el valor que tenemos en el área de preselección.
SUna instrucción OT se puede programar directamente después de un temporizador.
Nota para las herramientas de programación
Sólo cuando se utiliza NPST--GR Ver. 4 o posteriores, FPSOFT Ver.1 o FP Programmer II Ver.2
(AFP1114V2) se puede escribir o leer la instrucción TML (cuya unidad de incremento son 0.001
segundos).
Tiempo de preselección del temporizador
S La fórmula para calcular el tiempo de preselección es: [unidades de temporización] [valor de
preselección]
S Para la configuración del temporizador [n] se debe emplear una constante decimal desde K1 a
K32767.
-- El rango del TM L va desde 0.001 a 32.767 segundos en incrementos de 0.001 segundos.
-- El rango del TM Rva desde 0.01 a 327.67 segundos en incrementos de 0.01 segundos.
-- El rango del TM X va desde 0.1 a 3276.7 segundos en incrementos de 0.1 segundos.
-- El rango del TM Y va desde 1 a 32767 segundos en incrementos de 1 segundo.
Ejemplo
-- Cuando K43 se configura en TMX, el tiempo de preselección es 0.1 x 43 = 4.3 segundos.
-- Cuando K500 se configura en TMR, el tiempo de preselección es 0.01 x 500 = 5 segundos.
. Notas
D Para asegurar que temorizador opera de modo correcto, la instrucción TM debe ejecutarse en
cada ciclo de scan. Se debe tener especial cuidado cuando empleemos las instrucciones
INT,JP y LOOP.
D Cuando una instrucción de temporizador (TML/TMR/TMX/TMY) se combina con las
instrucciones AND stack (ANS) o POPS, se debe asegurar una sintaxis correcta. Para más
detalles, consultar en “5.6 Precauciones en la programación.”
D El contacto del temporiador pasa a ON cuando el área de valor actual del temporizador (EV)
alcanza el valor 0.
D Existe una correspondencía biunívoca entre SV, EV y T. Ver página 2--19.
D El temporizador se resetea cuando la alimentación pasa a OFF, o se cambia de modo RUN a
PROG. Para mantener las mismas condiciones ante fallo de alimentación se debe configurar
el registro especial de sistema nº6.
3 -- 33
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Modo de operación del temporizador
D El siguiente ejemplo muestra la forma de configurar un temporizador con una constante K. La
explicación de esta operación, cuando se declara una constante K como valor de preselección
(SV), se muestra a continuación.
1
Cuando el modo cambia a RUN (o se proporciona alimentación estando en modo RUN), el valor
programado en el temporizador se transpasa al área de valor de preselección (SV) del mismo
número.
Valor de
preselección
X0
TXK
5
T5
2
3
1
30
Transferencia al área de valor de preselección
SV5
30
Y0
Cuando la entrada X0 pasa de OFF a ON, el valor de preselección (K30) se transpasa del área de
valor preselección (SV) al área de valor actual (EV), tanto la SV como la EV deben tener el mismo
número. (La misma operación tendría lugar si se cambia a modo RUN estando la entrada X0 en
ON.)
El valor que está en el área de valor actual se decrementa, mientras X0 permanezca en ON.
2
X0
TXK
5
EV5
30
29
28
27
Y0
T5
4
30
Transferencia al área de valor actual
SV5
30
3
Decrementos
Cuando se alcanza el valor cero en el área de valor actual, el contacto del temporizador T con el
mismo número pasa a ON y por lo tanto también pasará a ON Y0.
X0
T5
TXK
5
30
Y0
SV5
30
EV5
0
4
Finaliza la operación de cuenta atrás
D Consultar los puntos “2.2.5 y 2.2.6” para la explicación del área de valor de preselección (SV) y el
área de valor actual (EV).
3 -- 34
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Ejemplos de aplicación de instrucciones de temporizadores
Conexión en serie de los temporizadores
• Diagrama en escalera
X0
TXK 30
0
TXK 20
1
T0
Y0
T1
Y1
• Lógica
ST
TXK
K
TXK
K
ST
OT
ST
OT
X
T
Y
T
Y
• Diagrama de tiempos
0
0
30
1
20
0
0
1
1
X0
ON
OFF
T0
ON
OFF
T1
ON
OFF
Y0
ON
OFF
Y1
ON
OFF
3s
2s
S Explicación del ejemplo
Tres segundos después de que X0 pase a ON, el contacto del temporizador T0 conmuta a ON al
igual que Y0. Entonces se alimenta el temporizador T1 y dos segundos más tarde el contacto T1
pasa a ON al igual que Y1.
Conexión en paralelo de los temporizadores
• Diagrama en escalera
X0
TXK 30
0
TXK 20
1
T0
Y0
T1
Y1
• Lógica
ST
PSHS
TXK
K
POPS
TXK
K
ST
OT
ST
OT
X
• Diagrama de tiempos
0
0
30
T
Y
T
Y
1
20
0
0
1
1
X0
ON
OFF
T0
ON
OFF
T1
ON
OFF
Y0
ON 2s
OFF
Y1
ON
OFF
3s
S Explicación del ejemplo
Cuando X0 conmuta a ON ambos temporizadores se activan, dos segundos después el contacto
del temporizador T1 e Y0 pasan a ON. Un segundo después el contacto T0 e Y0 pasan a ON.
Cambio de los valores del temporizador durante el modo RUN
S Los valores del temporizador se pueden cambiar en modo RUN. Para más detalles, consultar en
“5.8 Cambio del valor de preselección en modo RUN.”
3 -- 35
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Como configurar un temporizador con un área de valor de preselección
X0
F0 MV, K30, SV5
X1
TXS 5
5
T5
.............1
.............2
Y0
El funcionamiento del programa es el siguiente:
1
2
Cuando la entrada X0 está en ON, se ejecuta la instrucción de transferencia de 16 bits [F0 (MV)],
cargándose en el área de valor de preselección SV5 la constante decimal K30.
Cuando la entrada X1 pasa a ON, la cuenta atrás comienza desde el valor de preselección dado,
en este caso 30.
S Cuando se declara el número [n] del área de valor de preselección, éste debe ser el mismo que el
número del temporizador.
FP Programmer II:
TM
ST
T--SV X--WX
5
ENT
TM
T--SV
5
Valor de preselección (n)
Diagrama en
escalera
Número del
temporizador
TXS
5
5
Los dos números deben coincidir
S Incluso si se cambia el valor del área de valor de preselección durante la operación de cuenta
atrás, ésta continuará desde el valor que tenía antes del cambio (en el programa mostrado
anteriormente, si X0 no se activa, el temporizador empieza a descontar desde el valor dado en en
el paso 2, si después de comenzada esta operación se activa X0, el temporizador sigue
descontando sin tener en cuenta el cambio). El temporizador no empezará a trabajar con el nuevo
valor de preselección hasta que la operación anterior termine o sea interrumpida y por lo tanto la
entrada pase de OFF a ON.
S El área de valor de preselección normalmente es del tipo de no retención que se resetea apagando
la alimentación o cambiamdo el modo de operación de RUN a PROG.
S Nota: se utiliza la “S” (TXS) para indicar que se emplea el área de valor de preselección al
programar el temporizador, si aparece una “K” indica que se utiliza una constante.
3 -- 36
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Modo de operación del temporizador cuando se programa con un área de valor
de preselección (SV)
1
Cuando la entrada X0 pasa a ON, el valor programado se carga en el área de valor de
preselección SV. El siguiente esquema muestra un ejemplo del empleo de una instrucción del alto
nivel F0 (MV).
Valor de preselección
X0
F0 MV, K30, SV5
X1
TXS 5
5
T5
2
3
SV5
30
1
Cuando la entrada X1 pasa de OFF a ON, el valor de preselección se transpasa del área de valor
de preselección SV al área de valor actual EV del mismo número. (Lo mismo ocurre si el modo de
operación cambia a RUN estando la entrada X1 en ON.)
El valor del área de valor actual EV se va decrementando si la entrada X1 permanece en ON.
2
X0
F0 MV, K30, SV5
X1
TXS
5
Transferencia al área EV
EV5
30
29
28
27
SV5
30
5
T5
4
Transferencia al área de SV
Y0
3
Decremento
Y0
Cuando se alcanza el valor cero en el área de valor actual, el contacto del temporizador T con el
mismo número pasa a ON y por lo tanto también pasará a ON Y0.
X1
T5
TXS 5
5
SV5
30
EV5
0
Y0
4
Finaliza la operación de cuenta atrás
D Consultar los puntos “2.2.5 y 2.2.6” para la explicación del área de valor de preselección (SV) y el
área de valor actual (EV).
3 -- 37
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Ejemplo de cambio del valor de preselección
Ejemplo 1:
Cambio de los valores de preselección dependiendo de ciertas
condiciones
El valor de preselección es K50 cuando X0 está en ON y será K30 cuando
X1 esté en ON.
• Diagrama en escalera
X1 X0
F0 MV, K 50, SV 5
• Lógica
ST/
AN
F0
X
X
1
0
(MV)
K
50
SV
5
X
0
X
1
(MV)
K
30
SV
5
X
2
5
SV
5
T
5
Y
0
X0 X1
F0 MV, K 30, SV 5
TXS
5
5
Y0
X2
T5
ST/
AN
F0
ST
TMX
ST
OT
• Diagrama de tiempos
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
T5
ON
OFF
Y0
ON
OFF
5s
SV5 K0
3s
K50
K30
K50
Ejemplo 2:
Ejemplo de cambio del valor de preselección desde conmutadores
externos digitales.
Se toma como valor de preselección el dato en BCD de los conmutadores
conectados desde la X0 hasta la XF.
• Diagrama en escalera
R10
F81 BIN, WX 0, SV 5
R11
T5
TXS
5
• Lógica
ST
F81
5
Y0
ST
TMX
ST
OT
3 -- 38
R
10
(BIN)
WX 0
SV
5
R
11
5
SV
5
T
5
Y
0
Unidad de control
del FP0
0
7
9
4
WX0
Conmutador digital
Valor de
preselección
del
temporizador
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Paso
CT
Concepto
Contador
3
Contador con preselección tipo sustracción .
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
5
Programa ejemplo
Lógica
Diagrama en escalera
Valor de preselección
Entrada de
X0
contaje
0
X1
1
C 100
5
Dirección
CTK
0
10
contador
C14 Y C16 del FP1: hasta el 128
0
X
1
CT
100
K
EV
Y0
Número
de contador
X
ST
2
Entrada de reset
5
Contacto del contador (No.100)
Número
de
ST
1
100
10
ST
6
Programación con
consola de mano FP
Programmer II
Instrucción
C
OT
100
Y
0
ST
ST
X--WX X--WX
ST
ST
X--WX X--WX
CT
0
WRT
1
WRT
1
0
0
K/H
1
0
WRT
ST
CT
1
0
0
WRT
C--EV
(BIN)
X--WX C--EV
OT
AN
L--WL Y--WY
ENT
0
WRT
Todos los FP--Ms, FP0s y C24, C40, C56, y C72 del FP1: hasta el 144
Se comparte la numeración de los temporizadores con la del los contadores. La numeración de los contadores y de los temporizadores pueden cambiarse configurando el registro especial del sistema nº 5.
El valor por defecto de la numeración de los contadores y temporizadores:
C14 y C16 del FP1:
temporizadores: 0 a 99 / contadores: 100 a 127
Todos los FP--Ms, FP0s y C24, C40, C56 y C72 del FP1: temporizadores: 0 a 99 / contadores: 100 a143
Valor de
preselec.
Rango: K0 a K32767
Se pueden usar constantes decimales o áreas de preselección (SVn) * cuyo número coincide del número
contador (n).
J Operandos
Instrucción
Valor de
preselec.
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A N/A N/A
A
N/A
N/A
N/A N/A
Contactos
Temporizador/
Registro
Contador
J Explicación del ejemplo
S Cuando la entrada X0 conmuta de OFF a
ON diez veces, el contacto del contador
C100 pasa a ON y entonces Y0 conmuta a
ON.
S El valor actual se resetea cuando X1 pasa a
ON.
A
N/A
N/A
A:Disponible
N/A:No disponible
J Diagrama de tiempos
X0
ON
OFF
....
X1
ON
OFF
10 veces
C100 ON
OFF
Y0 ON
OFF
S Para resetear el contador debemos provocar
un pulso en X1.
3 -- 39
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Descripción
SLos contadores son del tipo cuenta atrás.
SA continuación se muestra una tabla con los números de los contadores
utilizables.
Item
FP0
Tipo sin retención:C10, C14, C16: Desde el primer contador considerado (por
defecto el C100) hasta el C139
C32: Desde el primer contador considerado (por defecto el C100) hasta el C127
Contadores
Tipo con retención:
C10, C14, C16: desde el C140 hasta el C143
C32: desde el C128 hasta el C143
FP--M
Item
Contadores
Todos
Tipo con
retención
FP1
C24/C40/C56/C72
Desde el contador 100 hasta 143
(por defecto)
C14/C16
Desde el contador 100 al
127 (por defecto)
Descripción
SCuando la entrada de contaje pasa de OFF a ON, el valor actual se empieza a
decrementar, y cuando el área de valor actual llega a 0, el contacto del
contador Cn (n es el número de contador) pasa a ON.
SCuando la entrada de reset está en ON, se inicializa el valor actual con el valor
que tiene el área de preselección.
SSi la entrada de contador y la de reset se ponen a ON al mismo tiempo, la
entrada de reset tiene prioridad.
SSi la entrada de contador pasa a ON y la entrada de reset pasa a OFF al
mismo tiempo, se ignora la entrada de contador y se ejecuta un reset.
SUna instrucción OT se puede insertar justamente después de una instrucción
de contador (CT).
SSi no hay suficientes contadores ( instrucciones CT) , se pueden incrementar
cambiando la configuración del registro especial del sistema nº 6.
SAl programar la instrucción CT, se debe programar también la entrada de
contaje y la de reset.
Entrada de contaje: resta una unidad del área de valor actual cada
vez que que X0 pasa a ON.
Entrada de reset: resetea el contador cuando está en ON.
Área de preselección
S Como valor de preselección del contador puede utilizarse una constante decimal (constante K)
desde K0 a K32767.
3 -- 40
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Modo de operación del contador
D A continuación se muestra un ejemplo usando una constante K como valor de preselección. La
explicación del proceso es la siguiente:
1
Cuando el modo de operación cambia a RUN (o cuando se enciende la alimentación estando en
modo RUN), el valor programado en el contador se transfiere al área de valor de preselección del
mismo número.
2
Cuando la entrada de reset pasa a OFF, el valor del área de valor de preselección SV se carga en
el área de valor actual EV.
Transferencia
2 Después
de
reset
10
1
X0
CT
100
SV100
10
EV100
10
X1
C100
3
Y0
Cada vez que la entrada de contaje X0 pasa a ON, el valor en el área de valor actual disminuye
en una unidad.
X0
CT 10
200
SV100
10
9
8
7
X1
C100
4
EV100
10
Y0
3
Decremento
Cuando el valor del área de valor actual llega a cero, el contacto del contador C del mismo
número pasa a ON y por lo tanto también pasa a ON Y0.
X0
CT 10
200
X1
C100
SV100
10
4
EV100
0
Fin de la operación de cuenta atrás
Y0
D Consultar los puntos “2.2.5 y 2.2.6” para la explicación del área de valor de preselección (SV) y el área
de valor actual (EV).
3 -- 41
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Cambio de la preselección del contador durante el modo RUN
S La preselección del contador se puede cambiar cuando está activo el modo RUN. Para más
detalles, consultar en “5.8 Cambio del valor de preselección mientras está activo el modo RUN”.
Detección de la entrada de contador
En una instrucción de contador (CT), el decremento se produce cuando la entrada de contador pasa de
OFF a ON.
D Si la entrada de contaje permanece continuamente a ON, sólo se produce un decremento en el flanco
de subida de la misma.
D En los casos en que la entrada está inicialmente a ON, al cambiar a modo RUN o al encender
alimentación, la cuenta atrás no comienza hasta que dicha entrada no pasa a OFF y de nuevo a ON.
RUN
(Alimentación: ON)
Entrada de
contaje
Operación de
la instrucción
CT
Inactivo
Contando
D Cuando se utilicen combinaciones de instrucciones que cambian el orden de ejecución del programa
(como las que se muestran a continuación) la forma de operar de la instruccción puede cambiar.
-- Instrucciones MC--MCE (ver pag. 3 -- 49.)
-- Instrucciones JP--LBL (ver pag. 3 -- 52.)
-- Instrucciones LOOP--LBL(ver pag. 3 -- 55.)
-- Instrucciones CNDE (ver pag. 3--60.)
-- Instrucciones paso a paso (ver pag. 3 -- 62.)
-- Instrucciones de subrutina (ver pag. 3 -- 72.)
D Cuando se combinan instrucciones de contador con las instrucciones ANS o POPS, se debe tener
especial cuidado con la sintaxis. Para más detalles, consultar en “5.6 Precauciones en la
programación.”
J Instrucciones relacionadas con la instrucción CT
D Otra instrucción relacionada con los contadores es la F118 (contador Up/Down).
D El mismo tipo de función se puede realizar con una instrucción de incremento en
1 en registros de 16 bits (F35).
3 -- 42
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Como preseleccionar un contador directamente con un área de valor de
preselección
X0
F0 MV, K30, SV100
X1
CTS 100
100
..........
1
..........
2
X2
C100
Y0
El programa mostrado opera como se indica a continuación:
1
2
Cuando la entrada X0 está en ON se ejecuta la instrucción de transferencia de datos [F0 (MV)],
cargandose la constante K30 en el área de valor de preselección SV100.
Cuando la entrda X1 pasa a ON, la operación de cuenta atrás empieza desde el valor de
preselección 30.
S Cuando declaremos el número [n] del área de valor de preselección,éste debe ser el mismo que el
número del contador.
FP Programmer II:
CT
C--EV
1
0
0
Diagrama en
escalera
ENT
CT
C--EV
1
0
0
Valor de preselección
(n)
CTS
100
100
H6
Número del contador
Estos números deben
coincidir.
S Incluso si se cambia el valor del área de valor de preselección durante la operación de cuenta
atrás, ésta continuará desde el valor que tenía antes del cambio (en el programa mostrado
anteriormente, si X0 no se activa, el temporizador empieza a descontar desde el valor dado en en
el paso 2, si después de comenzada esta operación se activa X0, el temporizador sigue
descontando sin tener en cuenta el cambio). La operación del contador tomando el nuevo valor no
comenzará hasta que el contador se resetee y, la entrada de contaje pase de OFF a ON.
S Si el contador es del tipo de retención, el área de valor actual EV no se resetea aunque apagemos
la alimentación o pasemos del modo RUN a PROG. Si el valor en el área de valor de preselección
cambia estando en modo RUN, este valor se cargará la próxima vez que se encienda la
alimentación o se cambie de modo de operación de PROG. a RUN.
S Nota: se utiliza la “S” (CTS) para indicar que empleamos el área de valor de preselección para la
preselección, si apareciera una “K” nos indicaría que hemos utilizado una constante.
Notas
D Existe una correspondencia biunívoca entre SV, EV yC . Ver página 2--19.
D El contador no se resetea incluso cuando se desconecta la alimentación o se pasa de modo
RUN a PROG. Para convertir el contador en uno de no retención debemos configurar el
registro especial de sistema nº6.
3 -- 43
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Modo de operación del contador cuando se preselecciona directamente con un
área de valor de preselección
1
Cuando la entrada X0 está en ON , el valor programado se carga en el área de valor de
preselección. El siguiente diagrama muestra un ejemplo del uso de la instrucción de alto nivel
F0(MV) (transferir).
X0
F0 MV, K30, SV100
X1
CTS
100
SV100
30
100
1
Transferencia al área SV
X2
C100
2
Y0
Cuando la entrada de reset (X2) pasa de ON a OFF, el valor en el área de valor de preselección
se carga en el área de valor actual.
X1
CTS
100
100
SV100
30
X2
2
C100
3
Configuración
Y0
Cada vez que la entrada de contaje (X1) pasa a ON, el valor del área de valor actual se
decrementa en una unidad.
X1
CTS
100
100
X2
C200
4
EV100
30
SV100
30
EV100
30
29
28
27
Y0
3
Decrementos
Cuando se alcanza el valor cero en el área de valor actual, el contacto del contador C con el
mismo número pasa a ON y por lo tanto también también pasa a ON Y0.
X1
CTS
100
100
X2
SV100
30
4
C100
EV100
0
Fin de la cuenta atrás
Y0
D Consultar los puntos “2.2.5 y 2.2.6” para la explicación del área de valor de preselección (SV) y el área
de valor actual (EV).
3 -- 44
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Ejemplo de preselección usando un área de valor de preselección
Ejemplo 1:
Cambio de los valores de preselección basándonos en ciertas condiciones
El valor de preselección es K50 cuando X0 está en ON y será K30 cuando
X1 esté ON.
• Diagrama en escalera
• Lógica
X1 X0
ST/
AN
F0
F0 MV, K 50, SV 100
X0 X1
F0 MV, K 30, SV 100
X2
CTS
ST/
AN
F0
100
X3
100
C100
Y30
ST
ST
CT
ST
OT
• Diagrama de tiempos
Ejemplo cuando X0 pasa a ON
X
X
1
0
(MV)
K
50
SV 100
X
0
X
1
(MV)
K
30
SV 100
X
2
X
3
100
SV 100
C 100
Y
30
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
X3
ON
OFF
C100
ON
OFF
SV100
50 veces
......
K0
K50
Ejemplo 2:
Ejemplo de preselección usando conmutadores externos digitales
Se toma como valor de preselección el dato en BCD de los conmutadores
conectados desde la X0 hasta la XF.
• Diagrama en escalera
• Lógica
R10
F81 BIN, WX 0, SV 100
R11
CTS
100
ST
ST
CT
R12
100
C100
ST
F81
Y0
ST
OT
R
10
(BIN)
WX 0
SV 100
R
11
R
12
100
SV 100
C 100
Y
0
Unidad de control
del FP0
0
7
9
4
Conmutador digital:
WX0
Valor de
preselección del
contador
3 -- 45
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
Registro de desplazamiento
sobre relés internos
SR
Concepto
Registro de desplazamiento (izquierda).
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
1
5
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Área de datos
0
1
X0 Entrada de datos
0
SR WR 3
X1 Entrada de
desplazamiento
X2
2
Programación con
consola de mano FP
Programmer II
Instrucción
ST
X
0
ST
ST
X-WX
X-WX
ST
ST
X-WX
X-WX
0
WRT
1
WRT
WRT
1
ST
X
1
2
ST
X
2
ST
ST
X-WX
X-WX
2
3
SHIFT
3
SHIFT
3
SR
WR
SC
SC
OR
R-WR
3
WRT
Entrada de reset
Desplaza un bit a la izquierda el dato que se encuentra en el área dada (en
nuestro caso una palabra de relé interno de16 bits (WR))
Función
J Operandos
Operando
Área de
datos
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A N/A
N/A
N/A
N/A
N/A
Contactos
A
Temporizador/
Registro
Contador
J Explicación del ejemplo
S Si la entrada de desplazamiento X1 pasa a
ON cuado X2 está en OFF, el contenido del
área de memoria de relés internos WR3
(relés internos R30 to R3F), se desplaza un
bit a la izquierda.
S En el desplazamiento en R30 tendremos un
“1” si X0 está en ON, y un “0” si X0 está en
OFF.
S Si la entrada de reset X2 pasa a ON (flanco
de subida), el contenido de of WR3 se borra
(todos los bits pasan a valer “0”).
N/A
N/A
N/A
J Diagrama de tiempos
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
ON
R30 OFF
ON
R31 OFF
ON
R32 OFF
ON
R33 OFF
ON
R34 OFF
3 -- 46
N/A
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Descripción
SDesplaza un bit a la izquierda el dato que se encuentra en el área dada (en
nuestro caso una palabra de relé interno de16 bits (WR)).
-- Cuando la entrada de desplazamiento pasa a ON, el contenido de WR se
desplaza un bit a la izquierda.
-- En el desplazamiento, se toma un 1 como bit de menor peso si la entrada
de datos está en ON, o un 0 si la entrada de datos está en OFF.
Cuando la entrada de desplazamiento (X1) pasa a ON:
WR3
3F . . . . . . . . . . . . . . . . 30
Pos. de bit
15 . . 12
11 . . 8
7 . . 4
3 . . 0
Dato
0 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
Desplazamiento de
un bit hacia
la izquierda.
Dato
0 0 0 1
0 0 0 1
0 0 0 1
1 0 0 1
-- Entrada de datos (X0) ON: entra un 1.
-- Entrada de datos (X0) OFF: entra un 0.
-- Cuando la entrada de reset pasa a ON, el contenido de los registros se
borra.
Cuando la entrada de reset (X2) pasa a ON:
Dato
0 0 0 1
0 0 0 1
0 0 0 1
1 0 0 1
Se borra el contenido de WR3.
(Todos los bits pasan a valer “0”).
Dato
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
. Notas
D La instrucción SR necesita una entrada de datos, una de desplazamiento y una de
reset.
D Cuando se activan simultaneamente las entradas de reset y de desplazamiento, tiene
prioridad la entrada de reset.
Entrada de
desplazamiento
Entrada de
reset
Área de datos
(Rn)
Tiene prioridad la entrada de reset
D Si el área de memoria de relés internos se define del tipo de retención, se debe tener
cuidado ya que el área de datos no se reseta cuando se enciende la alimentación.
D Cuando se combina una instrucción de desplazamiento de registro con las
instrucciones ANS o POPS se debe tener cuidado con la sintaxis. Para más detalles,
consultar en “5.6 Precauciones en la programación.”
D El área disponible para la instrucción SR es sólamente la de las palabras de relés
internos siendo el rango:
-- Series C14 y C16 del FP1: WR0 a WR15.
-- Todos los FP--Ms y las series C24, C40, C56 y C72: WR0 a WR62.
-- FP0: WR0 a WR62.
3 -- 47
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Precauciones en la detección de la entrada de desplazamiento en el FP0
Con la instrucción SR, se produce un desplazamiento cuando la entrada de desplazamiento pasa de
OFF--ON.
D Sólo se producirá un desplazamiento en el flanco de subida, aunque la entrada de desplazamiento
permanezca continuamente a ON, .
D En los casos donde la entrada de desplazamiento está inicialmente a ON como al cambiar a modo
RUN o cuando se enciende la alimentación estando configurado el modo RUN, el desplazamiento no
tendrá lugar en el primer ciclo de scan.
RUN
(Alimentación encendida)
Entrada de
desplazamiento
Modo de
operación de
la instrucción
SR
No se efectúa
desplazamiento
Desplazamiento
D Cuando se utilicen combinaciones de instrucciones que cambian el orden de ejecución del programa
(como las que se muestran a continuación)la forma de operar de la instruccción puede cambiar.
-- Instrucciones MC--MCE (ver pag. 3 -- 49.)
-- Instrucciones JP--LBL (ver pag. 3 -- 52.)
-- Instrucciones LOOP--LBL i(ver pag. 3 -- 55.)
-- Instrucciones CNDE (ver pag. 3--60.)
-- Instrucciones paso a paso (ver pag. 3 -- 62.)
-- Instrucciones de subrutina (ver pag. 3 -- 72.)
J Instrucciones relacionadas con la instrucción SR
D Además de la instrucción SR encontramos otras instrucciones que realizan el
mismo tipo de función como son: F119 (LRSR), de la F100 (SHR) a la F113 (WBSL)
para el FP0,de la F120 (ROR) a la 123 (RCL).
3 -- 48
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
MC
MCE
Concepto
Relé maestro de control
2
Final de relé maestro de control
2
Todos FP0s / FP--Ms
y FP1s
Ejecuta las instrucciones desde MC a MCE cuando la condición de
activación está en ON. 6
Programa ejemplo
Lógica
Diagrama en escalera
X0
Dirección
Condición de activación
Número de instrucción MC
(MC
0
X1
0
ST
1
1)
Y1
X2
Y2
5
(MCE 1 )
Número de instrucción MC
Y
ST/
6
7
X
OT
5
X
OT
7
0
1
ST
4
3
X
MC
3
Programación con
consola de mano FP
Programmer II
Instrucción
Y
MCE
1
1
2
2
1
FP0, FP--M y series C24, C40, C56, C72 del FP1 :
Series C14 y C16 del FP1:
ST
ST
X-WX
X-WX
SHIFT
SC
4
ST
ST
X-WX
X-WX
0
SHIFT
SC
1
1
WRT
WRT
OT
AN
L-WL
Y-WY
1
ST
NOT
ST
X-WX
DT/Ld X-WX
OT
AN
L-WL
Y-WY
SHIFT
SC
5
WRT
2
SHIFT
SC
2
WRT
WRT
WRT
1
WRT
0 a 31 (32 puntos)
0 a 15 (16 puntos)
Descripción
SEjecuta las instrucciones comprendidas entre MC y MCE cuando la condición
de activación pasa a ON.
SCuando la condición de activación (X0) está en OFF, las instrucciones
comprendidas entre MC y MCE operan de la siguiente manera:
Instrucción
Condición E/S
OT
Se ponen todas a OFF
KP
Mantienen su estado.
SET
RST
TM
Se resetean.
CT
Mantienen su estado.
SR
DF
Ver en la página siguiente.
Otras instrucciones
No se ejecutan.
J Explicación del ejemplo
J Diagrama de tiempos
S Ejecuta la parte del programa comprendido
entre las instrucciones MC1 y MCE1 cuando
la condición de activación (X0) pasa a ON.
X0
ON
OFF
X1
ON
OFF
S Si X0 está en OFF, las instrucciones
comprendidas entre MC1 y MCE1 no se
ejecutan
Y1
ON
OFF
X2
ON
OFF
Y2
ON
OFF
3 -- 49
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
SEn las series FP de los autómatas programables, hay algunas instrucciones
que sólo detectan el flanco de subida de su propia entrada, por ejemplo:
-- la instrucción DF.
-- la entrada de contador para la instrucción CT
-- la entrada de contador para la instrucción F118 (UDC)
-- la entrada de desplazamiento para la instrucción SR
-- la entrada de desplazamiento para la instrucción F119 (LRSR)
-- la instrucción NSTP
SPor lo tanto éstas no se ven afectadas por el flanco de subida de la condición
de activación de la instrucción MC (para que se ejecuten las instrucciones
que están comprendidas entre MC/MCE la condición de activación de MC
debe estar en ON.)
Modo de operación de las instrucciones DF y DF/ cuando están comprendidas
entre las instrucciones MC y MCE
D Si se utilizan las instrucciones DF y DF/ (instrucciones diferenciales) entre MC y MCE, la salida variará
dependiendo de la sincronización entre la condición de activación de la instrucción MC y la de la
entrada de la instrucción DF.
X0
MC
X1
0
Y0
DF
MCE 0
• Diagrama de tiempos 1
• Diagrama de tiempos 2
X0
X0
X1
X1
Y0
Y0
Ejecución de una
instrucción diferencial
anterior
Ejecución de una
instrucción diferencial
anterior
Si la entrada de la instrucción DF (X1) no ha cambiado respecto a la ejecución anterior, no se obtiene salida en Y0.
La entrada de la instrucción diferencial (X1) ha
cambiado de OFF a ON con respecto a la ejecución anterior, por lo tanto se obtiene salida en
Y0.
S Si se declara la misma entrada para la instrucción MC y para la instrucción diferencial no se
obtiene salida alguna. Si se necesita obtener una salida, se debe situar la instrucción diferencial
fuera de la secuencia del programa comprendida entre MC y MCE.
X0
MC
X0
0
Y0
DF
MCE 0
X0
MC
X0
0
R0
MCE 0
Y0
R0
DF
3 -- 50
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Notas
S Se puede insertar otro par de instrucciones MC--MCE entre el par inicial MC--MCE (anidamiento).
(En el FP0 no existe límite para el número de anidamientos.)
X0
MC
0
X1
Y0
X2
MC
1
X3
Y1
X4
MC
2
X5
Y2
MCE 2
MCE 1
MCE 0
S El programa no se ejecutará si:
-- Se programa la instrucción MC directamente como comienzo de linea.
-- Se intercambia el orden de las instrucciones MC y MCE.
MCE 0
X1
Y0
X0
MC
0
-- Se configuran dos o más instrucciones MC/MCE con el mismo número .
X0
MC
0
MC
0
Uso del mismo número para
dos insrucciones MC
X1
X2
Y0
MCE 0
MCE 0
3 -- 51
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
JP
LBL
Concepto
Salto
2
Etiqueta
1
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
JP: Salta a la etiqueta determinada cuando es ON.
LBL: Indica el luar de salto a la instrucción JP. 7
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de activación
10
X1
(JP
10
20
20
Número de instrucción JP
1
JP
1
LBL
1
FP0, FP--M y series C24, C40, C56, C72 del FP1 :
Series C14 y C16 del FP1:
J Explicación del ejemplo
X1
S Cuando la condición de activación (X1)
pasa a ON, la ejecución del programa salta
desde JP1 a LBL1.
ST
ST
1
WRT
SHIFT
1
WRT
1
WRT
X--WX X--WX
SHIFT
SC
6
SC
....
(LBL 1 )
Número de instrucción JP
X
....
11
ST
....
1)
Programación con
consola de mano FP
Programmer II
Instrucción
SC
7
SHIFT
SC
0 a 63 (64 puntos)
0 a 31 (32 puntos)
Programa
(JP
SHIFT
1)
X1: ON
No
se ejecuta
Programa
(LBL 1 )
Programa
Descripción
SCuando la condición de activación pasa a ON, el, programa salta a la etiqueta (LBL)
que tiene el mismo número que la instrucción JP.
SLa ejecución del programa continúa desde la dirección de la etiqueta, que es el destino
del salto.
SLa etiqueta LBL se utiliza para especificar el destino de las instrucciones JP y LOOP.
SSe puede repetir el mismo número para diferentes instrucciones JP dentro del mismo
programa.
X0
(JP
0)
(JP
0)
(JP
1)
X1
R20
(LBL 1 )
(LBL 0 )
SOtro par JP/LBL puede utilizarse dentro del inicial (anidamiento).
SLa parte del programa comprendida entre las instrucciones JP y LBL no se ejcuta. Ver
las páginas siguientes.
SEl tiempo de ejecución de las instrucciones que se han saltado con la ejecución de la
instrucción JP, no está incluido en el tiempo de scan.
SSi no se programa la etiqueta de destino para una instrucción JP, se producirá un error
gramatical.
3 -- 52
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
SSe debe tener cuidado al emplear las instrucciones que se muestran a continuación,
que se ejecutan cuando detectan el flanco de subida de la condición de activación,
como la instrucción diferencial. Para más detalles, consultar en “5.5 Instrucciones de
detección de flanco de subida.”
-- DF (differential up)
-- La entrada contando con CT (contador)
-- La entrada contando con F118 (contador up/down)
-- La entrada se desplaza con SR (registro de desplazamiento)
-- La entrada se desplaza con F119 (registro de desplazamiento izquierda /
derecha)
-- NSTP (próximo paso (pulso))
. Notas
D Si la dirección de la instrucción LBL es anterior a la dirección de la instrucción JP, el ciclo de
scan no terminará y ocurrirá un error por acumulación.
D Las instrucciones JP y LBL no se pueden utilizar en el área comprendida entra las
instrucciones SSTP y STPE (área paso a paso).
D No se puede realizar un salto desde el programa principal a un subprograma (una subrutina o
un programa de interrupción después de la instrucción ED), desde un subprograma al
programa principal, o desde un subprograma a otro subprograma.
D En las siguientes situaciones el programa no se ejecutará:
-- cuando se programa directamente como comienzo de línea la instrucción JP, debemos
programar antes la condición de activación.
-- cuando falte una de las instrucciones JP o LBL, estando configurada la otra.
Nota para el FP--M/FP1
D El programa no se ejecutará cuando se empleen dos o más etiquetas con el mismo número en
el mismo programa.
J Modo de operación de las instrucciones TM, CT, y SR cuando están situadas entre
las instrucciones JP y LBL
S Si la instrucción LBL está localizada después de la instrucción
-- instrucción TM: La instrucción TM no se ejecuta.
Si no se ejecuta una vez por cada ciclo
de scan, no se asegura un sincronismo
correcto.
-- instrucción CT: Incluso aunque la entrada del contador
esté en ON, la cuenta no se ejecuta. El
valor actual se conserva.
-- instrucción SR: Incluso si la entrada de desplazamiento
está en ON, el desplazamiento no se
ejecuta. Los contenidos del registro se
conservan.
JP:
X1
(JP 1 )
Secuencia del programa que
incluye las instrucciones TM,
CT, y SR
(LBL 1 )
El programa salta cuando
la condición de activación
pasa a ON.
S Cuando la instrucción LBL está situada antes que la instrucción JP:
-- instrucción TM: No se asegura un sincronismo correcto,
(LBL 1 )
ya que la instrucción TM se ejecutará
Secuencia del programa
varias veces por cada ciclo de scan.
que incluye las instruccio-- instrucción CT: Si el estado de la entrada de contador no
X1 nes TM, CT, y SR
cambia durante el ciclo de scan, la
(JP 1 )
instrucción se ejecutará de manera usual.
Se vuelve a ejecutar el pro-- instrucción SR: Si el estado de la entrada de
grama cuando la condición
desplazamiento no cambia durante el
de activación pasa a ON.
ciclo de scan, la instrucción se ejecutará
de manera usual.
3 -- 53
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
J Modo de operación de las instrucciones diferenciales (DF o DF/) cuando están
situadas entre las instrucciones JP y LBL
S En el FP0, si una instrucción diferencial se emplea en el área comprendida entre las instrucciones
JP y LBL, debemos tener cuidado, ya que la salida dependerá de la sincronización entre la
condición de activación de la intrucción JP y la entrada de la instrucción diferencial.
X0
JP
1
Y0
LBL
1
X1
DF
• Diagrama de tiempos 1
• Diagrama de tiempos 2
X0
X0
X1
X1
Y0
Y0
Ejecución de
una instrucción
diferencial
anterior
Si el estado de la condición de
activación de la instrucción
diferencial (X1) no ha
cambiado desde la ejecución
anterior, no obtenemos niguna
salida en Y0.
Ejecución de
una
instrucción
diferencial
anterior
Si el estado de la
condición de activación de
la instrucción diferencial
(X1) cambia de OFF a
ON, obtenemos salida en
Y0.
S En el FPM / FP1, si la instrucción diferencial se emplea en el área comprendida entre las
instrucciones JP y LBL, los cambios que se produzcan cuando la condición de activación de la
instrucción JP esté en ON se ignorarán.
S Si se configura la misma entrada externa como condicion de activación de las instrucciones JP y
diferenciales, no se obtendrá salida.
Si queremos obtener una salida en Y0 debemos escribir la instrucción diferencial fuera de la parte
del programa comprendida entre las instrucciones JP y LBL.
X1
JP
X1
1
Y1
DF/
No se ejecuta
LBL
1
Y1
X1
DF/
X1
3 -- 54
JP
1
LBL
1
Situado fuera de la parte del programa comprendida entre las
instrucciones JP y LBL.
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
LOOP
LBL
Concepto
Lazo
4
Etiqueta
1
Todos FP0s / FP--Ms y
FP1s
LOOP: Realiza un bucle tantas veces como se halla especificado.
LBL: Indica el lugar de salto a la instrucción LOOP. 8
Programa ejemplo
Lógica
Diagrama en escalera
LBL
1
31
X
LOOP
S
DT
S
SC
1
SHIFT
7
SC
1
WRT
....
ST
SHIFT
....
....
30
....
....
16
....
LOOP 1 , DT 0
30
....
(LBL 1 )
Condición de activación
Número de instrucción LBL
X1
Programación con
consola de mano FP
Programmer II
Instrucción
....
16
Dirección
ST
ST
X-WX
X-WX
1
SHIFT
0
NOT
SC
DT/Ld
8
0
1
SHIFT
SC
WRT
1
ENT
WRT
Área de 16-bit para declarar el número de veces que se realizará el bucle
FP0, FP--M y series C24, C40, C56, C72 del FP1 :
Series C14 y C16 del FP1:
Número de instrucción LBL
0 a 63 (64 puntos)
0 a 31 (32 puntos)
J Operandos
Operando
Temporizador/
Registro
Contador
Contactos
WX WY WR
S
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Esta instrucción efectúa un salto en el programa desde su dirección LOOP1 a LBL1. Cada vez que
se ejecuta esta instrucción, el valor que tiene el registro DT0 se decrementa en “1”. Se repetirá la
misma operación hasta que el valor en DT0 sea “0”.
X0
F0 MV, K5 , DT 0
Programa
(LBL 1 )
X0
Programa
Si el valor de DT0 es K5, el salto se ejecutará 5 veces.
Cuando el programa llegue de nuevo a la instrucción
LOOP, ésta no se ejecutará aunque X0 esté en ON.
LOOP 1 , DT 0
3 -- 55
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Descripción
SDespués del salto, el programa continúa desde la dirección donde está la
etiqueta ,que es el destino de la instrucción LOOP.
SSi el valor en el área de datos “S” es “0” desde el principio del programa, la
instrucción LOOP no se ejecuta (es ignorada).
SNo se pueden declarar dos o más instrucciones LBL con el mismo número en
el mismo programa.
SCuando la condición de activación de la instrucción LOOP pasa a ON, se resta
1 al contenido de S y si el resultado es distinto de 0, el programa salta a la
etiqueta (LBL) del mismo número que la instrucción LOOP.
Notas para el FP0.
SUna etiqueta puede ser el destino de una instrucción JP o LOOP. La misma
etiqueta puede ser utilizada como destino de las dos instrucciones tantas
veces como se necesite.
X0
JP
1
JP
1
LBL
1
R20
X20
LOOP 1, DT0
SSi no se programa la etiqueta destino de una instrucción LOOP, se producirá
un error.
J Condiciones de bandera
S Bandera de error (R9007):Pasa a ON y permanece en ese estado cuando el valor en el área de
datos “S” alcanza un valor negativo (cuando el bit de mayor peso
(posición 15) del área de datos pasa a valer “1”). La dirección del error
se guarda en el registro DT9017 y se mantiene. Ver notas).
S Bandera de error (R9008):Pasa a ON durante un momento cuando el valor en el área de datos
alcanza un valor negativo (cuando el bit de mayor peso (posición 15) del
área de datos pasa a valer “1”). La dirección se guarda en el registro
DT9018. Ver notas).
Notas para el FP--M/FP1
-- Los registros de datos especiales DT9017 y DT9018 están disponibles en:
-- FP1s con CPU versión 2.7 o posteriores.
-- FP--Ms.
-- Cuando se empleen el relé interno especial R9008 como bandera de la instrucción LOOP, se
debe programar la bandera en la dirección que esté inmediatamente después de la
instrucción.
-- Para más detalles acerca de las banderas consultar en “7.5 Relés internos especiales”.
3 -- 56
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
J Modo de operación de las instrucciones TM, CT, y SR cuando están situadas entre
las instrucciones LOOP y LBL
S Cuando la instrucción LBL está situada antes que la instrucción LOOP:
-- instrucciónTM : No se asegura un sincronismo correcto,
ya que la instrucción TM se ejecutará
varias veces por cada ciclo de scan.
-- instrucción CT: Si el estado de la entrada de contador no
cambia durante el ciclo de scan, la
instrucción se ejecutará de manera usual.
-- instrucción SR :Si el estado de la entrada de
desplazamiento no cambia durante el
ciclo de scan, la instrucción se ejecutará
de manera usual.
(LBL 1 )
Secuencia del programa
que incluye las instrucX0 ciones TM, CT, y SR
LOOP 1, DT 0
El programa se repite
cuando la condición de
activación pasa a ON
(DT0 = 1).
S Si la instrucción LBL está localizada después de la instrucción LOOP:
-- instrucción TM: La instrucción TM no se ejecuta.
Si no se ejecuta una vez por cada ciclo
de scan, no se asegura un sincronismo
correcto.
-- instrucción CT: Incluso aunque la entrada del contador
esté en ON, la cuenta no se ejecuta. El
valor actual se conserva.
-- instrucción SR: Incluso si la entrada de desplazamiento
esté en ON, no se ejecuta el
desplazamiento. Los contenidos del
registro se conservan.
X0
LOOP 1, DT 0
Secuencia del programa que
incluye las instrucciones TM,
CT, y SR
(LBL 1 )
El programa salta cuando
la condición de activación
pasa a ON (DT0 = 1).
J Precauciones en la programación
S Las instrucciones LOOP y LBL no se pueden utilizar en el área comprendida entra las
instrucciones SSTP y STPE (área paso a paso).
S No se puede realizar un salto desde el programa principal a un subprograma (un programa
subrutina o un programa de interrupción después de la instrucción ED), desde un subprograma al
programa principal, o desde un subprograma a otro subprograma.
Precauciones en el FP0
S Cuando la etiqueta está escrita en una dirección anterior a la instrucción LOOP, se debe tener
cuidado con los siguientes aspectos:
-- configurar las instrucciones que están dentro del bucle, para que tengan la misma condición de
activación que la instrucción LOOP.
-- Durante las repeticiones, es posible que un ciclo de scan pueda superar el tiempo de vigilancia
por un error de acumulación.
<Ejemplo 1> Ejecuta 5 ciclos da ambas instrucciones MV cuando X5 está en ON.
X5
F0 MV, K 5, DT 0
LBL 10
X5
F0 MV, WR 0, DT 10
F0 MV, WR 1, DT 20
LOOP 10, DT 0
3 -- 57
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
<Ejemplo 2> Cargar el valor de DT100 a DT200 hasta de DT219.
R0
F0 MV, K 20, DT 0
F0 MV, K 0, IX
LBL 10
R0
F0 MV, DT100, IXDT200
F35 +1, IX
LOOP 10, DT 0
S Se debe tener cuidado al emplear las instrucciones que se muestran a continuación, que se
ejecutan cuando detectan el flanco de subida de la condición de activación. Para más detalles,
cosultar en “5.5 Instrucciones de detección de flanco de subida.”
-- DF (differential up)
-- La entrada de contador con la instrucción CT (contador)
-- La entrada de contador con la instrucción F118 (contador up/down)
-- La entrada de desplazamiento con la instrucción SR (registro de desplazamiento)
-- La entrada de desplazamiento con la instrucción F119 (registro de desplazamiento izquierda /
derecha)
-- NSTP (próximo paso (pulso))
Notas para el FP--M/FP1
D Si la dirección de la instrucción LOOP es anterior a la dirección de la
instrucción JP, el ciclo de scan no terminará y ocurrirá un error por
acumulación.
D En las siguientes situaciones el programa no se ejecutará:
-- cuando se programa directamente como comienzo de línea la
instrucción LOOP, debemos programar antes la condición de
activación.
-- cuando se empleen dos o más etiquetas con el mismo número
en el mismo programa.
-- cuando falte una de las instrucciones LOOP o LBL, estando
configurada la otra.
J Modo de operación de las instrucciones diferenciales (DF o DF/) cuando están
situadas entre las instrucciones LOOP y LBL para el FP--M/FP1
S Si la una instrucción diferencial se emplea en el área comprendida entre las instrucciones LOOP y
LBL, los cambios que se produzcan cuando la condición de activación de la instrucción LOOP
esté en ON se ignorarán.
S Si se configura la misma entrada externa como condicion de activación de las instrucciones LOOP
y diferenciales, no se obtendrá salida.
Si se quiere obtener un resultado en salida externa correspondiente se debe escribir la instrucción
diferencial fuera de la parte del programa comprendida entre las instrucciones LOOP y LBL.
3 -- 58
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Paso
ED
Concepto
End
1
Indica el final del ciclo de scan.
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
9
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X1
R0
0
R0
( ED )
99
ST
ST
X-WX
X-WX
OR
OR
0
WRT
0
WRT
1
OR
R
0
R-WR R-WR
2
AN/
X
1
AN
NOT
ST
Y-WY
DT/Ld
X-WX
1
OR
OR
0
WRT
OT
R
0
R-WR R-WR
96
ST
R
0
X-WX R-WR
97
AN
X
2
AN
ST
Y-WY
X-WX
OT
AN
L-WL
SHIFT
98
OT
99
WRT
....
Y0
0
....
X2
X
....
R0
ST
3
96
Programación con
consola de mano FP
Programmer II
Instrucción
Y
0
ED
ST
SC
OR
0
WRT
2
WRT
Y-WY
0
WRT
1
0
WRT
J Explicación del ejemplo
S El paso 99 es el final del programa principal.
Descripción
SIndica el final del programa principal.
<Área del programa>
Dirección 0
Programa principal
Programa
principal
( ED )
Programa subrutina
Programa de interrupción
Sub
programa
SDebemos situar los programas subrutinas y los programas de interrupción
después de la instrucción ED.
3 -- 59
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
CNDE
Concepto
1
End condicional
Disponibilidad
Todos FP0s / FP--Ms y
FP1s
Ejecuta el final del ciclo de scan cuando es ON.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
X1
Y0
0
R0
X2
Y1
98
ST
ST
X-WX
X-WX
OR
AN
Y-WY
0
WRT
0
WRT
OR
Y
0
R-WR
2
AN/
X
1
AN
NOT
ST
Y-WY
DT/Ld
X-WX
1
OT
AN
Y-WY
0
WRT
OT
Y
0
L-WL
96
ST
X
3
ST
ST
X-WX
X-WX
3
SC
1
1
97
ST
OR
SHIFT
CNDE
98
ST
99
AN/
100
OT
WRT
....
( CNDE )
96
0
....
Condición de activación
X
1
....
X3
ST
3
Y0
Programación con
consola de mano FP
Programmer II
Instrucción
R
0
X
2
Y
1
X-WX R-WR
0
WRT
SHIFT
SC
WRT
WRT
AN
NOT
ST
Y-WY
DT/Ld
X-WX
2
OT
AN
L-WL
Y-WY
1
WRT
WRT
J Explicación del ejemplo
S Cuando la condición de activación X3
pasa a ON, el programa principal finaliza
en la dirección de la instrucción CNDE.
La ejecución del programa finaliza
en la dirección de la instrucción
CNDE cuando X3 pasa a ON.
X0
X1
Y0
Y0
X3
CNDE
Esta parte del programa se
ignora cuando se ejecuta la
instrucción CNDE.
Descripción
ED
Ejecución
del programa durante un
ciclo de
scan normal
SSe pueden utilizar dos o más instrucciones CNDE en el programa principal.
SCon la intrucción CNDE podemos controlar el ciclo de scan, permitiendonos
terminar la ejecución del programa, cuando finalice la parte que nos interesa.
SLa instrucción CNDE permite finalizar un ciclo de scan del programa.
SCuando la condición de activación pasa a ON, el programa finaliza, se realizan
las operaciones de entrada, salida y otras. Cuando éstas se completan, la
ejecución pasa a la dirección de comienzo del programa.
SLa instrucción CNDE no se puede utilizar en subprogramas (programas
subrutinas o programas de interrupción). Sólo podemos emplear la
instrucción CNDE en el área del programa principal.
SEsta instrucción es muy útil para depurar programas.
3 -- 60
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
SSTP
NSTP
NSTL
CSTP
STPE
Concepto
SSTP:
NSTP:
NSTL:
CSTP:
STPE:
Proceso paso a paso
3
Próximo paso (pulso)
3
Próximo paso (scan)
3
Final proceso paso a paso
3
Final área paso a paso
1
Disponibilidad
Todos los
FP0s / FP--Ms
y FP1s
Comienzo del proceso paso a paso. 10
Transfiere el proceso al siguiente paso en el flanco de subida.
Transfiere el proceso al siguiente paso en cada scan.
Final del proceso paso a paso.
Fin del área de proceso paso a paso.
Programa ejemplo
Lógica
Diagrama en escalera
X0
Dirección
Entrada
(NSTP
10
1)
11
(SSTP
14
Número del proceso paso a paso
1)
Y0
X1
18
Entrada
(NSTL
18
2)
100
(CSTP 50 )
100
(STPE
104
Número del proceso paso a
paso
)
X
NSTP
1
SSTP
OT
ST
0
1
Y
X
NSTL
SSTP
0
ST
ST
X-WX
X-WX
0
WRT
SHIFT
D
D
SHIFT
1
WRT
SHIFT
SC
=
C
SC
1
WRT
OT
AN
L-WL
Y-WY
0
WRT
SC
SHIFT
ST
101
CSTP
104
STPE
SC
ST
ST
X-WX
X-WX
1
WRT
2
SHIFT
1
B
SHIFT
SC
2
SHIFT
=
C
SHIFT
1
SC
SC
SC
2
2
WRT
WRT
....
Entrada
22
ST
....
2)
19
....
(SSTP
Número del proceso paso a paso
X3
14
17
17
22
10
Programación con
consola de mano FP
Programmer II
Instrucción
X
3
50
Series C14 y C16 del FP1:
FP0s, FP--Ms y las series C24, C24, C56, C72 del FP1:
ST
ST
X-WX
X-WX
SHIFT
<
E
SHIFT
>
F
SHIFT
SC
SHIFT
SC
3
SC
SC
WRT
5
0
WRT
WRT
64 procesos (0 a 63)
128 procesos (0 a 127)
J Explicación del ejemplo
S Cuando se detecta el flanco de subida de X0, se ejecuta el proceso 1 (desde SSTP1 a SSTP2).
S Cuando X1 pasa a ON, se resetea el proceso 1 y se ejecuta el proceso 2 (desde SSTP2).
S Cuando X3 pasa a ON, se resetea el proceso 50 y la operación paso a paso termina.
3 -- 61
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Descripción
--Al ejecutarse las instrucciones NSTL o NSTP, se ejecuta la instrucción SSTP
comenzando de este modo el proceso del mismo número.
--En un programa paso a paso,
(SSTP 1 )
se denomina proceso, a la
X0
Y0
parte del programa comprendida
entre dos instrucciones SSTP
Proceso 1
X1
o entre la instrucción SSTP y
F0 MV, DT 0, DT 100
STPE.
(SSTP
2)
--Con estas instrucciones se pueden realizar fácilmente operaciones como
secuencias de control, secuencias de control con ramificaciones o
secuencias de control con ramificaciones paralelas.
--Secuencia de control
Sólo se activan los procesos necesarios y se ejecutan en orden.
Proceso 1
Proceso 2
Proceso 4
Proceso 3
--Secuencia de control con ramificaciones
Se seleccionan los procesos y se ejecutan dependiendo de ciertas
condiciones.
Proceso 2
Proceso 1
Proceso 4
Proceso 3
--Secuencia de control con ramificaciones paralelelas
--Se ejecutan varios procesos a la vez.
--Cuando finaliza un proceso se ejecuta el siguiente.
Proceso 2
Proceso 1
Proceso 4
Proceso 3
. Nota
El área del programa paso a paso en el FP0 es del tipo no
retención, por lo tanto se deben tomar las precauciones
necesarias.
3 -- 62
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
J Instrucciones paso a paso
Instrucción SSTP (proceso paso a paso) :
S Indica el comienzo del proceso paso a paso.
S La instrucción SSTP n ha de estar programada al inicio de cada proceso n (el número de procesos
disponibles están detallados en la página 61).
SSTP
1
SSTP
2
SSTP
5
Programa
Programa
Programa
Proceso 1
Proceso 2
S El proceso n comprende desde la instrucción SSTP n hasta la próxima instrucción SSTP o STPE.
S No se puede emplear el mismo número para procesos diferentes.
S Se puede programar una instrucción OT directamente después de una instrucción SSTP.
S La instrucción SSTP no se puede programar en un programa subrutina o de interrupción.
S La parte del programa comprendida entre la primera instrucción SSTP hasta la instrucción STPE
se denomina área paso a paso.
S En el programa principal se pueden encontrar áreas de ejecución normal y de ejecución paso a
paso.
SSTP
SSTP
Área de
ejecución normal
1
Área de ejecución
paso a paso
n
STPE
Área de
ejecución normal
S Cuando comienza el proceso paso a paso un relé interno especial pasa a ON durante un ciclo de
scan. (R9015: Relé de pulso de inicio de instrucción paso a paso.) Este relé se utiliza para ejecutar
operaciones durante un ciclo de scan como el reseteo de contadores o comienzos de procesos.
Instrucción NSTL (Próximo paso (scan)) / Instrucción NSTP (Próximo paso (pulso)):
S Al ejecutar una instrucción NSTP o NSTL, comienza el proceso del mismo número que las
instrucciones NSTP o NSTL.
S Si tenemos una entrada para las instrucciones NSTP o NSTL tendremos que activarla para que se
ejecuten dichas instrucciones.
X0
NSTP
1
X0: OFF
SSTP
1
SSTP1: Comienza
NSTL
2
SSTP
2
R0
3 -- 63
ON
R0: ON
SSTP1: Reseteado
SSTP2: Comienza
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
S Un proceso se puede comenzar desde el área de ejecución normal o desde dentro de otro proceso
que ya ha comenzado.
S Sin embargo, si se comienza un proceso con las instrucciones NSTL o NSTP desde otro proceso
ya iniciado, éste ultimo será reseteado automáticamente y se comenzará el proceso especificado
por las intrucciones NSTL o NSTP.
Se debe asegurar que las salidas y procesos programados en el proceso anterior pasan a OFF o
son reseteados en el siguiente ciclo de scan.
S La instrucción NSTP es del tipo diferencial, por lo tanto sólo se ejecutará al pasar su condición de
activación a ON, estando en modo RUN con la alimentación encendida. Si al pasar al modo RUN o
cuando se enciende la alimentación estando en este modo, la entrada de la instrucción NSTP está
ya en ON no se ejecutará.
RUN
(Alimentación: ON)
Entrada de la
instrucción
NSTP/NSTL
Operaciones
con NSTP
Operaciones
con NSTL
No
ejecutado
No
ejecutado
Ejecutado
Ejecutado
S Para más detalles, consultar en “5.5 Instrucciones de detección de flanco de subida.”
S Se debe declarar el primer proceso en el área de ejecución normal.
S Cuando se emplee la instrucción NSTP con alguna de las siguientes instrucciones que alteran el
orden de ejecución normal, se debe tener en cuenta que el modo de operación puede cambiar.
-- Instrucciones MC a MCE (ver en la página 3 -- 50.)
-- Instrucciones JP a LBL (ver en la página 3 -- 53.)
-- Instrucciones LOOP a LBL (ver en la página 3 -- 56.)
-- Instrucción CNDE (ver en la página 3--60)
-- Instrucciones paso a paso (ver en la página 3 -- 62.)
-- Instrucciones de subrutina (ver en la página 3 -- 72.)
S Cuando se combine la instrucción NSTP con las instrucciones ANDS o POPS, se debe asegurar
una programación correcta. Para más detalles, consultar en “5.6 Precauciones en la
programación.”
S Las diferencias entre las instrucciones NSTP y NSTL son:
--NSTL: se ejecuta cada ciclo de scan, si su entrada está en ON.
--NSTP: se ejecuta cuando se detecta el flanco de subida. ( Más detalles en la página 39,
instrucción DF.)
Si la instrucción NSTL se programa en el área de ejecución normal, el proceso especificado se
ejecutará cada ciclo de scan en el que la entrada de la instrucción esté en ON. Cuando la
instrucción NSTP se programa en el área de ejecución paso a paso, no se ejecuta si su entrada
pasa a ON antes de abrir el proceso en el que está programada, se recomienda abrir los procesos
desde el área de ejecución normal con la instrucción NSTP, si los abrimos desde el área de
ejecución paso a paso se debe utilizar la instrucción NSTL.
3 -- 64
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Instrucción CSTP (final proceso paso a paso):
S Cuando se ejecuta una instrucción CSTP, el proceso del mismo número que esta instrucción se
resetea. Esta instrucción se puede utilizar para resetear el útimo proceso del área de ejecución
paso a paso o para cerrar procesos paralelos que no son necesarios.
X0
X1: ON
NSTP 50
X1
CSTP 50
Programa
Proceso 50
reseteado
SSTP 50
Proceso 50
SSTP 51
S Se puede resetear un proceso desde un área de ejecución normal o desde un proceso ya
comenzado.
Instrucción STPE (final área paso a paso):
S La instrucción STPE indica el final del área de ejecución paso a paso. Esta instrucción debe estar
al final de último proceso. Por lo tanto, el último proceso del área ejecución paso a paso es desde
la instrucción SSTP a la instrucción STPE.
SSTP
SSTP
Área de
ejecución normal
1
Área de ejecución
paso a paso
n
Process n
STPE
Área de
ejecución normal
S En la situación de arriba , el proceso n es el último proceso.
S La instrucción STPE se utiliza sólo una vez en el programa principal. (Esta instrucción no puede
ser programada en programas subrutina o de interrupción.)
J Precauciones en la programación
S No es necesario programar los procesos siguiendo el orden ordinal.
S En el área de ejecución paso a paso, no se pueden utilizar las siguientes instrucciones:
-- Instrucciones JP y LBL
-- Instrucciones LOOP y LBL
-- Instrucciones MC y MCE
-- Instrucciones SUB y RET (*)
-- Instrucciones INT y IRET
-- Instrucción ED
-- Instrucción CNDE
(*): La instrucción CALL, en el FP0, puede utilizarse dentro del área paso a paso.
3 -- 65
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
S Para resetear un programa paso a paso entero, se deben emplear las instrucciones MC y MCE
como se muestra a continuación.
<Ejemplo> Todos los procesos son reseteados cuando X0 pasa a ON.
X0
MC
0
SSTP
1
SSTP
2
SSTP
3
Área de
ejecución
paso a
paso
Instrucciones
MC/MCE
STPE
MCE
0
ED
S Se pueden ejecutar los procesos en un orden diferente al ordinal. Se pueden ejecutar dos o más
procesos al mismo tiempo.
S Si fuerzas una salida, que está programada en un proceso que todavía no se ha ejecutado, a ON o
a OFF , este estado se mantendrá hasta que el proceso comience, incluso si se cancela la
operación que ha forzado la salida a un estado determinado.
J Operaciones paso a paso
S La ejecución de un proceso paso a paso se controla desde el área de ejecución normal con las
instrucciones NSTL o NSTP. Los procesos que no son activados se ignoran.
Área de ejecución normal
SSTP
Sin ejecutar el proceso 1
SSTP
Sin ejecutar
2
Ejecutando el proceso 2
SSTP
Ejecutando
1
Ejecutando
9
Sin ejecutar el proceso 9
Sin ejecutar
STPE
Área de ejecución normal
Ejecutando
ED
S En el diagrama, se ejecuta el programa en el área normal de ejecución y en el proceso 2.
S Cuando comienza un proceso paso a paso, el relé de pulso de inicio de instrucción paso a paso,
R9015 pasa a ON durante un instante en el primer ciclo de scan del proceso. Se puede emplear el
R9015 para resetear un contador o desplazar un registro en el proceso en curso.
3 -- 66
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
S El estado de la ejecución de los procesos paso a paso, arranques y paradas, se almacena en los
registros de datos especiales comprendidos entre el DT9060 y DT9067.
<Ejemplo> Condiciones de arranque del proceso No. 16 al No. 31.
Pos. de bit
Nº del proceso
DT9061
15 .
31 .
0 0
. 12 11 . . 8 7 . . 4 3 . . 0
. 28 27 . . 24 23 . . 20 19 . . 16
00 0 0 0 1 0 0 0 0 0 0 0 0
Cuando el bit nº8 del registro DT9061 es un “1”, se está ejecutando el proceso paso a paso 24.
S La relación entre el número del registro y el número del proceso está detallada en “5.6 Registros de
datos especiales.”
J Notas de los procesos de borrado
S Si se ejecuta la instrucción NSTP o NSTL dentro de un proceso, éste es automáticamente
reseteado. Sin embargo, la operación de reseteado no se lleva a cabo hasta el siguiente ciclo de
scan. Por lo tanto, durante un ciclo de scan en el proceso de transición, estarán dos procesos
activos simultaneamente. Si se quiere evitar esta situación, se puede programar un circuito de
interbloqueo. Puede ocurrir que dos procesos estén activos al mismo tiempo a causa de los
retardos introducidos por el hardware, ésto se debe tener en cuenta en el diseño del hardware.
Ejemplo:
SSTP
Y1
0
Y0
X0
NSTP
1
Interbloqueo
SSTP
1
Interbloqueo
Y0
Y1
S Si se resetea el proceso, las instruccionesen en él programadas operan de la siguiente forma.
Instrucción
Condición E/S
OT
Se ponen todas a OFF.
KP
Mantienen su estado.
SET
RST
TM
Se resetean.
CT
Mantienen el valor actual.
SR
Mantienen su estado.
DF y DF/ (*)
Otras instrucciones
3 -- 67
Mantiene el estado de su entrada.
No se ejecutan.
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Nota:
S Se debe tener cuidado cuando al utilizar las instrucciones mostradas a continuación, que se
ejecutan cuando se detecta el flanco de subida de la condición de activación, como la instrucción
diferencial. Para más detalles, cosultar en “5.5 Instrucciones de detección de flanco de subida.”
-- DF (differential up)
-- La entrada de contador con CT (contador)
-- La entrada de contador con F118 (contador up/down)
-- La entrada de desplazamiento con SR (registro de desplazamiento)
-- La entrada de desplazamiento con F119 (registro de desplazamiento izquierda/derecha)
-- NSTP (próximo paso (pulso))
J Ejemplos de empleo de las instrucciones paso a paso
1
Secuencia de control
Este programa ejecuta los procesos consecutivamente, empieza a ejecutar el siguiente cuando
ha completado el anterior.
S Programamos la instucción NSTL dentro de cada proceso para activar el siguiente. Cuando se
ejecuta la instrucción NSTL, se activa el siguiente proceso y el actual se resetea.
S No es necesario ejecutar los procesos en orden. Se puede programar la instrucción NSTL
dentro de un proceso para activar otro anterior cumpliendo ciertas condiciones dadas en el
proceso en curso.
Programa ejemplo
Diagrama de flujo
X0
(NSTP 10 )
(SSTP 10 )
Y0
X0: ON
Y0 pasa a ON
Proceso 10
Proceso 10
X1
(NSTL 11 )
X1: ON
(SSTP 11 )
Y1
X2
Proceso 11
X2: ON
(NSTL 12 )
Proceso 12
(SSTP 12 )
Y2
X4
Y1 pasa a ON
Y0 pasa a OFF en
el siguiente ciclo
de scan.
Y2 pasa a ON
Proceso 11
Y1 pasa a OFF en
el siguiente ciclo
de scan.
X4: ON
Proceso 12
(CSTP 12 )
(STPE
END
Y2 pasa a OFF en
el siguiente ciclo
de scan.
)
Diagrama de tiempos
Explicación del ejemplo
1) El proceso 10 se ejecuta cuando X0
pasa a ON.
X0 ON
OFF
X1 ON
OFF
2) Al pasar X1 a ON, el proceso 10 se resetea X2 ON
OFF
y se ejecuta el proceso 11.
3) Cuando X2 pasa a ON, el proceso 11 se
resetea y se ejecuta el proceso 12.
ON
X4 OFF
Y0
ON (Ejecutando)
OFF (Finalizado)
4) Al pasar X4 a ON, el proceso 12 se resetea
ON (Ejecutando)
y se finaliza la ejecución paso a paso.
Y1 OFF (Finalizado)
(Ejecutando)
Y2 ON
OFF (Finalizado)
Proceso 10
Proceso 11
Proceso 12
3 -- 68
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
2
Secuencia de control con ramificaciones
El programa activa los procesos dependiendo de acciones y resultados del programa en curso.
No se pasa al siguiente proceso hasta que se completa el que está activo.
S Se programan dos o más instrucciones NSTL, dentro del proceso en curso, para activar el
siguiente proceso. Dependiendo de las condiciones de ejecución, se selecciona el siguiente
proceso, y la ejecución del programa continúa en éste, que debe ser activado desde el proceso
activo.
Programa ejemplo
Diagrama de flujo
X0
(NSTP
50 )
(SSTP
50 )
Y0
X0: ON
Y0 pasa a ON.
Proceso 50
Proceso 50
X1
(NSTL
51 )
(NSTL
52 )
(SSTP
51 )
Y1
X2
X1: ON
X2: ON
Proceso 51
Y1 pasa Proceso 52
Y2 pasa
a ON.
a ON.
X3: ON
X4: ON
Proceso 51
X3
(NSTL
60 )
(SSTP
52 )
Y2
X4
X5: ON
END
Proceso 52
(NSTL
60 )
(SSTP
60 )
Y3
Y3 pasa a ON.
Proceso 60
Proceso 60
X5
(CSTP
60 )
(STPE
)
Diagrama de tiempos
Explicación del ejemplo
X0
ON
OFF
1) El proceso 50 se ejecuta cuando X0 pasa
X1
a ON.
ON
OFF
2) Cuando X1 pasa a ON en el proceso 50,
X2
éste se resetea y se ejecuta el proceso 51.
X3
Si por el contrario, X2 pasa a ON en el
proceso 50, éste se resetea y se ejecuta
X4
el proceso 52.
ON
OFF
3) Cuando X3 pasa a ON en el proceso 51,
X5
éste se resetea y se ejecuta el proceso 60.
ON
OFF
ON
OFF
Y0
Ejecutando
Finalizado
Cuando X4 pasa a ON en el proceso 52,
éste se resetea y se ejecuta el proceso 60. Y1
Ejecutando
Finalizado
Proceso 51
Y2
Ejecutando
Finalizado
Proceso 52
Y3
Ejecutando
Finalizado
4) Cuando X5 pasa a ON, se resetea el
proceso 60 y finaliza el área de ejecución
paso a paso.
3 -- 69
ON
OFF
Proceso 50
Proceso 60
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
3
Secuencia de control con ramificaciones paralelas
Este programa activa varios procesos a la vez. Después de que se terminan los procesos de
cada rama, antes se transferir la ejecución al siguiente proceso las ramificaciones se vuelven a
unir.
S Se programa la misma entrada para varias instrucciones NSTL.
S Para volver a unir las diferentes ramas al producirase la condición de transferencia en algún
proceso, incluimos una bandera para indicar el estado de ejecución de los procesos de las
diferentes ramas.
S Cuando las ramas se fusionan y comienza el siguiente proceso, se resetean todos los procesos
,que no se habían reseteado antes, al mismo tiempo.
Programa ejemplo
Diagrama de flujo
X0
(NSTP
0)
(SSTP
0)
Y0
X0: ON
Proceso 0
X1
(NSTL 10 )
(NSTL 20 )
X1: ON
(SSTP 10 )
Y1
Proceso 10
X2
Proceso 10
X2: ON
(NSTL 11 )
Y1
pasa a
ON.
Y2
pasa
a ON.
Proceso 20
Y3
pasa a
ON.
Proceso 11
(SSTP 20 )
Y2
R100
Y0 pasa a ON.
Proceso 0
Proceso 20
X3: ON
Proceso 30
(SSTP 11 )
Y3
Y4 pasa a ON.
X4: ON
Proceso 11
X3 R100
(NSTL 30 )
(CSTP 20 )
(SSTP 30 )
Y4
Proceso 30
X4
(NSTL 0 )
(STPE
)
Explicación del ejemplo
1) Cuando X0 pasa a ON, se ejecuta el proceso 0.
2) Cuando X1 pasa a ON, se resetea el proceso 0
y el proceso 10 y 20 se ejecutan a la vez
(Secuencia de control paralelo).
3) Cuando X2 pasa a ON, se resetea el proceso
10 y se ejecuta el proceso 11.
El proceso 20 continúa.
4) Cuando X3 pasa a ON, el proceso 11 y el
20 se resetean y se activa el proceso 30.
(Secuencia de control fusionado)
S Se resetea el proceso 20 con CSTP.
S Se resetea el proceso11 y comienza el
proceso 30 con la instrucción NSTL.
5) Al pasar X4 a ON, se resetea el proceso 30.
y se vuelve al proceso 0, activado con la
instrucción NSTL.
Diagrama de tiempos
X0
ON
OFF
X1
ON
OFF
X2
ON
OFF
X3
ON
OFF
X4
ON
OFF
Y0 Ejecutando
Finalizado
Y1 Ejecutando
Proceso 0
Proceso 0
Finalizado
Y2 Ejecutando
Finalizado
Proceso 10
Proceso 20
Y3 Ejecutando
Finalizado
Y4 Ejecutando
Finalizado
Proceso 11
Proceso 30
3 -- 70
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
CALL
SUB
RET
Concepto
Lamada a subrutina
2
Comienzo subrutina
1
Final de subrutina
1
Disponibilidad
Todos los
FP0s / FP--Ms
y FP1s
CALL: Transfiere el control a la subrutina especificada. 11
SUB: Comienzo de una subrutina.
RET: Finaliza una subrutina y devuelve el control al programa principal.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Entrada
10
ST
11
X0
(ED
20
)
ED
21
30
(RET
)
Número de subrutina
SC
2
SHIFT
1
SUB
30
WRT
SHIFT
SC
1
WRT
1
SHIFT
SC
1
SHIFT
RET
SC
Series C14 y C16:
FP0s, FP--Ms y series C24, C40, C56 y C72 del FP1:
0
SHIFT
3
SHIFT
SC WRT
SC
1
WRT
....
1)
0
1
SHIFT
....
(SUB
ST
X-WX
SC
....
21
1
ST
X-WX
....
Número del subrutina
20
CALL
0
....
10
1)
X
....
(CALL
Programación con
consola de mano FP
Programmer II
Instrucción
1
4
SHIFT
SC WRT
8 subrutinas (0 a 7)
16 subrutinas (0 a 15)
J Explicación del ejemplo
S Cuando la entrada X0 pasa a ON, se ejecuta la subrutina que está comprendida entre las
instrucciones SUB y RET.
S Después de la ejecución de una subrutina, el programa continuará por la instrucción que está
después de CALL.
Descripción
--La instrucción CALL se ejecuta cuando su entrada pasa a ON, entonces se ejecuta la
subrutina especificada, que empieza con la instrucción SUB.
--Al llegar a la instrucción RET, el programa vuelve a la dirección siguiente a la instrucción
CALL, y la ejecución sigue en el programa principal.
X0
Programa principal
1
CALL n
Programa principal
ED
SUB
Programa subrutina
3
n
2
RET
--Cuando se ejecuta la instrucción CALLn, el orden de ejecución del programa es 1, 2, 3
mostrado en la figura anterior.
--La subrutina n (el número de subrutinas disponibles están detallado en la página 71) la
componen las instrucciones comprendidas entre SUBn y RET. Se debe situar siempre la
subrutina después de la instrucción ED.
3 -- 71
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
--Se puede programar la instrucción CALL en el programa principal, en una subrutina o en
un programa interrupción.
Se pueden declarar dos o más instrucciones CALL con el mismo número en el mismo
programa.
--El grado de anidamiento permitido para las subrutinas es de cuatro.
Sólo la instrucción CALL está anidada. Una subrutina no puede estar dentro de otra
subrutina.
(Programa
subrutina1)
SUB 0
CALL1
RET
Programa
subrutina 2
(1er anidamiento)
SUB 1
CALL2
RET
Programa
subrutina 3
(2º anidamiento)
SUB 2
CALL3
RET
Lamada efectuada desde fuera de la subrutina.
Programa
subrutina 4
(3er anidamiento)
SUB 3
CALL4
RET
Programa
subrutina 5
(4º anidamiento)
SUB 4
RET
Ejemplo de anidamiento
Descripción para el FP--M / FP1:
--Instrucción SUB:
-- No se pueden declarar dos o más instrucciones SUB con el mismo número en el mismo
programa.
--Instrucción RET:
-- Se pueden finalizar dos o más subrutinas con una instrucción RET.
J Condiciones de bandera
S Bandera de error (R9007):Pasa a ON cuando se ejecutan cinco anidamientos y la instrucción
CALL se encuentra en el quinto anidamiento. La dirección del error se
transfiere al registro especial de datos DT9027 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando se ejecutan cinco anidamientos y
la instrucción CALL se ejecuta en el quito anidamiento. La dirección del error
se transfiere al registro especial de datos DT9028.
Notas para el FP--M / FP1:
--Los registro de datos especiales DT9017 y DT9018 están disponibles en los FP1s con CPU
versión 2.7 o posteriores y en todos los FP--Ms.
--Cuando se utilice el relé interno especial R9008 como bandera para la instrucción CALL, esta
debe ser programada inmediatamente antes de esta instrucción.
--Para más detalles sobre los errores de bandera, cosultar en “7--5 Relés internos especiales”.
J Notas de programación
S No se puede programar una subrutina en un programa interrupción.
INT
SUB
RET
1
Programa interrupción
11
Subrutina
IRET
S No se puede programar un programa interrupción en una subrutina.
3 -- 72
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
SUB
INT
11
0
Programa interrupción
Subrutina
IRET
RET
S Una subrutina no se puede escribir dentro de otra subrutina.
SUB
0
SUB
2
Subrutina
Subrutina
RET
J Cuando la entrada de la instrucción CALL está en OFF
S Cuando la condición de activación de una subrutina pasa a OFF, no se ejecuta la subrutina.
(Ocurre lo mismo con la instrucción CALL cuando se utiliza entre las instrucciones MC/MCE o en el
área de ejecución paso a paso, y estas partes del programa no son activadas.)
S Si la entrada de la insrucción CALL está en OFF, no se ejecuta el programa subrutina. En estas
condiciones las instrucciones que están dentro de la subrutina operan como se describe a
continuación.
Instrucciones
OT
Condición E/S
Mantienen su estado.
KP
SET
RST
TM
DF y DF/
CT
No se realiza temporización.Si esta instrucción no se ejecuta al menos una vez
por cada ciclo de scan, no se garantiza una operación correcta del programa.
Opera de la misma forma que si estuviera entre las instrucciones MC y MCE.
Ver en la explicación de estas instrucciones.
Mantienen el valor actual.
SR
Otras instrucciones
No se ejecutan.
Notas:
S Se debe tener cuidado al emplear las instrucciones que se muestran a continuación dentro de una
subrutina, que se ejecutan cuando se detecta el flanco de subida de la condición de activación
como las instrucciones diferenciales. Para más detalles, consultar en “5.5 Instrucciones de
detección de flanco de subida.
-- DF (differential up)
-- La entrada de contador con con CT (contador)
-- La entrada de contador con F118 (contador up/down)
-- La entrada de desplazamiento con SR (registro de desplazamiento)
-- La entrada de desplazamiento con F119 (registro de desplazamiento izquierda/derecha)
-- NSTP (próximo paso (pulso))
3 -- 73
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Paso
INT
IRET
Concepto
INT:
IRET:
Comienzo de interrupción
1
Final de interrupción
1
Disponibilidad
Todos los FP0s/FP--Ms
Series C24, C40, C56 y
C72 del FP1
Comienzo de un programa de interrupción.
Finaliza un programa de interrupción y devuelve el control al
programa principal.
Programa ejemplo
Lógica
Diagrama en escalera
(ED
20
(INT
21
20
)
21
)
26
Número de programa interrupción FP0: 7
SC
INT
3
SHIFT
SC
1
1
IRET
0
SHIFT
6
SHIFT
SC
0
SHIFT
WRT
SC
WRT
WRT
....
0)
SHIFT
ED
....
Número de programa interrupción
(IRET
Instrucción
....
26
Dirección
Programación con
consola de mano FP
Programmer II
SHIFT
SC
1
7
SC
FP--Ms y las series C24, C40, C56 y C72 del FP1: 9 (Ver nota)
Nota:
--INT0 puede emplearse como programa de interrupción cuando el área de valor actual del
contador de alta velocidad en el FP0 o FP1 coincide con el valor de preselección de las
instrucciones F162, F163, F164 y F165. Si es empleado como interrupción de un contador
de alta velocidad no hace falta configurarlo en el registro especial de sistema 403.
Descripción
--Cuando una entrada de insterrupción se activa, se empieza a ejecutar la
instrucción INT.
--Cuando se llega a la instrucción RET,el programa retorna al programa
principal, a la dirección donde se había producido la interrupción.
X0
DF
ICTL, S1, S2
1
Programa principal
Interrupción
3
ED
INT
Programa
interrupción n
n
2
IRET
--Al producirse la interrupción, el rpograma se ejecuta en el orden 1 -- 2 -- 3
mostrado arriba.
--La insrucción ICTL (llamada a interrupción) se explica en la siguiente sección.
--No se pueden programar varias instrucciones INT con el mismo número.
--La instrucción INT se tiene que programar en una dirección anterior a la
instrucción IRET.
3 -- 74
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
J Términos relacionados con los programas interrupción
S Se denomina programa interrupción a las instrucciones comprendidas entre las instrucciones INTn
y IRET. El programa interrupción debe estar siempre situado detrás de la instrucción ED.
S El número del programa interrupción depende del tipo de interrupción, si se activa por entrada o
por temporización.
FP0
Número del
programa
interrupción
FP--M/FP1
Configuración del contador de alta
Configuración de las
Configuración de las entravelocidad <al emplear las instruccioentradas de interrupción
das de interrupción
nes F166/F167>
INT0
X0
Igual al valor de preselección del canal 0 X0 /contador de alta velocidad
INT1
X1
Igual al valor de preselección del canal 1
INT2
X2
INT3
X3
Igual al valor de preselección del canal 2
X3
Igual al valor de preselección del canal 3
X4
--
X1
X2
INT4
X4
INT5
X5
--
X5
INT6
--
--
X6
INT7
--
--
X7
INT24
Interrupción periódica
J Antes de iniciar un programa interrupción
1
Declaración del contacto que se utiliza como entrada de interrupción.
Se debe elegir el contacto entre las entradas externas e indicarlo en el registro especial del
sistema No. 403. Para más detalles, ver en “7.4 Tabla de registros de sistema.”
Nota:
D Si un contacto se configura como entrada de contador de alta velocidad/captura
de pulsos, este contacto no puede ser empleado como entrada de interrupción.
D En los contadores de alta velocidad y las interrupciones periódicas, no es
necesario declarar el contacto que será la entrada de interrupción.
2
Habilitar la ejecución de un programa interrupción.
Las condiciones por defecto deshabilitan los programas interrupción Para permitir la ejecución de
un programa interrupción debemos emplear la instrucción ICTL. Ver en la explicación de la
instrucción ICTL.
J Ejecución del programa interrupción
S Hay tres tipos de programa interrupción.
1
2
3
Interrupción desde el contacto configurado como entrada de interrupción (INT0 a INT7).
La interrupción sucede cuando la entrada de interrupción declarada en el registro especial de
sistema No. 403 pasa a ON o a OFF.
Interrupción de contador de alta velocidad (INT0, INT1, INT3, INT4, en el FP--M/FP1 sólo la INT0
).Al ejecutarse ,en el FP0, la instrucción F166 o F167, la interrupción se produce cuando el valor
de contador de alta velocidad se iguala al valor de preselección. Ver en F166 y F167.
Interrupción periódica (INT24)
La interrupción se produce repetidamente en intervalos de tiempo fijados. Para configurar el
intervalo de tiempo se emplea la instrucción ICTL.
El intervalo se configura en unidades de 10 ms si el rango que vamos a emplear está
comprendido entre 10 ms y 30 ms (ICTL S1 = H2)
El intervalo se configura en unidades de 0.5 ms si el rango que vamos a emplear está
comprendido entre 0.5 ms y 1.5 ms (ICTL S1 = H3)
3 -- 75
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
S El programa interrupción especificado se ejecuta, cuando se produce una interrupción.
Ejecución
Programa principal
Ejecución
Ejecución
Programa interrupción
ON
Entrada de interrupción OFF
S Si no se habilita una interrupción con la instrucción ICTL, está no se ejecutará, aunque se active la
entrada de interrupción correspondiente.
Ejecución
Programa principal
Ejecución
Programa interrupción
ON
Entrada de interrupción OFF
Enable
S Si durante la ejecución de un programa interrupción, se produce una llamada a interrupción , la
ejecución de la última no empezará hasta que finalice la primera.
Ejecución
Programa principal
Programa interrupción 1
Ejecución
Ejecución
Programa interrupción 2
Entrada de interrupción 2
ON
OFF
J Precauciones en la programación
S Se producirá un error si en una interrupción no se programa la instrucción INT o IRET.
S No se puede emplear la entrada de interrupción dentro de la misma interrupción. En su lugar se
puede utilizar el relé de siempre ON (R9010) u otro contacto.
X5
INT
5
Declarar R9010 u otro
contacto en vez de X5.
F0 MV, K10, DT100
IRET
S No se puede programar una subrutina dentro de un programa interrupción.
INT
SUB
1
11
Subrutina
RET
IRET
3 -- 76
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
S No se puede programar un programa interrupción dentro de una subrutina.
SUB
INT
11
0
Programa interrupción
Subrutina
IRET
RET
S Un programa interrupción no se puede programar dentro de otro programa interrupción.
INT
0
INT
1
IRET
J Modo de operación cuando se producen dos o más llamadas a interrupción simultaneamente.
S Cuando dos o más interrupciones se producen a la vez, se ejecutará primero el programa
interrupción con menor número. Los otros programas interrupción se mantendrán en espera.
Cuando finaliza la ejecución del primer programa interrupción, se empezarán a ejecutar los otros
programas en un orden creciente 1, 2, 3,..., n.
Programa principal
Programa interrupción 1
Programa interrupción 2
Programa interrupción 3
ON
Entrada de interrupción 1 OFF
ON
Entrada de interrupción 2 OFF
ON
Entrada de interrupción 3 OFF
S Cuando se producen varias llamadas a interrupción mientras se está ejecutando otro programa
interrupción, se ejecutarán cuando se finalice la interrupción que estaba activa y en un orden
creciente.
3 -- 77
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Programa principal
Programa interrupción 1
Programa interrupción 2
Programa interrupción 3
Programa interrupción 4
ON
Entrada de interrupción 1OFF
ON
Entrada de interrupción 2OFF
ON
Entrada de interrupción 3OFF
ON
Entrada de interrupción 4OFF
S Durante la ejecución del programa interrupción 3, del ejemplo de arriba, la entrada de interrupción
2 se activa antes que la 1. Pero, al finalizar el programa interrupción 3, se ejecutará primero el
prorama interrupción 1 que el 2.
J Modo de operación en estado de espera y reseteado
S Cuando se producen varias llamadas a interrupción simultaneamente o se produce una llamada a
interrupción cuando se está ejecutando otro programa interrupción, el que tenga menor grado de
preferencia se mantendrá en estado de espera, ejecutándose, por orden de preferencia, cuando se
finaliza el programa interrupción activo.
Ejemplo
Programa principal
Programa interrupción 1
Programa interrupción 2
Entrada de interrupción 1
Entrada de interrupción 2
ON
OFF
ON
OFF
Tiempo de espera
S Si se mantiene en estado de espera un programa, éste no se ejecutará en el momento en el que
se produce la llamada a interrupción. Si no se quiere que un programa interrupción se mantengan
en estado de espera debido a la diferencia de tiempos entre la orden de ejecución y la ejecución,
podemos resetearlo con la instrucción ICTL. Se debe tener en cuenta que al resetear un programa
interrupción, éste no se ejecutará aunque se habilite más tarde.
3 -- 78
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Ejemplo
Ejecución de la instrucción ICTL (INT2 es reseteada)
Programa principal
Programa interrupción 1
Programa interrupción 2
Entrada de interrupción 1
ON
OFF
Entrada de interrupción 2
ON
OFF
Reseteado
S Si se produce una interrupción, que no está habilitada por la instrucción ICTL, se mantendrá en
estado de espera. Cuando se habilite con la instrucción ICTL, se ejecutará. Los programas en
estado de espera se pueden resetear con la instrucción ICTL.
3 -- 79
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Paso
ICTL
Concepto
Llamada a interrupción
ICTL:
Disponibilidad
FP0s/FP--Ms, C24, C40,
C56 y C72 del FP1
5
Transfiere el control a la interrupción especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Entrada de ICTL
0
( DF )
0
>1
S1
X
0
2
ST
X-WX
0
SC
SHIFT
ICTL
H
0
H
S2
ST
X-WX
SHIFT
DF
ICTL, H 0, H 1
1>
Instrucción
ST
1
X0
Programación con
consola de mano FP
Programmer II
1
0
WRT
SHIFT
SC WRT
SHIFT
SC
1
5
(BIN)
(BIN)
0
ENT
1
WRT
K/H
K/H
(BIN)
(BIN)
K/H
K/H
SC
ENT
S1
Área de 16 bits (registro o constante) configurada con los datos de especificación
de control
S2
Área de 16 bits configurada con una constante o con datos de control.
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
Descripción
--Cuando se ejecuta la instrucción ICTL, la interrupción se habilita, deshabilita o
se resetea según la configuración de S1 y S2.
--Asegurarse de utilizar esta instrucción siempre en un solo scan con la
instrucción DF.
--Se puede declarar la misma entrada para varias instrucciones ICTL.
--Antes de ejecutar un programa interrupción, se debe comprobar que está
habilitado por la instrucción ICTL.
--En el registro de datos especiales DT9025 se guarda la máscara de
condiciones de interrupciones . Este registro está disponible para monitorizar
las condiciones de interrupción.
--El registro de datos especiales DT9027 está disponible para monitorizar el
intervalo de interrupción.
J Ejemplos de entradas de la instrucción ICTL
<Ejemplo 1> Configuración de una interrupción periódica cada 10 ms desde el
comienzo del programa
Se ejecuta el programa interrupción 24 cada 10 ms
R9013
ICTL,
H2,
K1
El relé R9013 (relé de ON inicial) permanece en ON durante el primer scan, el resto del tiempo
está OFF.
3 -- 80
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
<Ejemplo 2> Desenmascaramiento de INT0 a INT3 cuando pasa a ON la entrada X30.
X30
DF
ICTL,
H0,
HF
<Ejemplo 3> Resetea todos los programas interrupción excepto el 0, después de
finalizar su ejecución.
INT 0
R0
ICTL,
H100,
H1
IRET
J Decripción de las áreas S1 y S2
S1 define las funciones control y el tipo de interrupción del siguiente modo:
Pos. de bit 15 . . 12 11 . . 8 7 . . 4 3 . . 0
S1
Selección del tipo de interrupción
H00: INT 0 a INT 5 (para el FP0) y a
INT7 (para el FP--M/FP1)
H02: INT 24 (10 ms units)
H03: INT 24 (0.5 ms units)
Selección de la función control
H00: Especificación “habilitado/deshabilitado”
H01: Borra la especificación de control
S S1 = H0 habilita o deshabilita la ejecución de los programas interrupción, menos INT24.
S S1 = H100 resetea los programas interrupción, menos INT24.
S S1 = H2 (en unidades de 10 ms) especifica el intervalo de repetición INT24. En el caso del FP0
también tenemos la posibilidad de especificar el intervalo de repetición en unidades de0.5 ms
haciendo S1 = H3.
S2 define el control de interrupciones
Enmascaramiento o desenmascaramiento del programa interrupción (cuando S1 = H0 o H1).
S Configuración de los datos de control en el bit correspondiente al programa interrupción que
queremos controlar.
1
-- Se pone a “1” el bit correspondente al programa interrupción que queremos desenmascarar, es
decir , hacemos que la entrada de interrupción correspondiente al bit que hemos puesto a 1, sea
efectiva.
-- Se pone a “0” el bit correspondiente al programa interrupción que queremos enmascarar.
<Ejemplo> Desenmascaramiento de los programas interrupción INT1 e INT2 y
enmascaramiento del programa interrupción INT3 a INT5.
Pos. bit
¨Número de
programa INT
S2
3 -- 81
15 . . 12 11 . . 8 7 . . 4 3 . . 0
5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
0: INT programa enmascarado
1: INT programa desenmascarado
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
2 Reseteo de los programa interrupción (cuando S1 = H100)
S Configuración de los datos de control en el bit correspondiente al programa que se quiere controlar.
--Se pone a “0” el bit correspondiente al programa interrupción que se quiere resetear.
--Se pone a “1” el bit correspondiente al programa interrupción que no se quiere resetear.
<Ejemplo> Se resetean los programas interrupcción INT1 e INT2 y no se resetean los
programas de interrupción INT3 a INT5.
Pos. bit
15 . . 12 11 . . 8 7 . . 4 3 . . 0
Número de
programa INT
S2
5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
0: INT programa enmascarado
1: INT programa desenmascarado
3 Habilitación del programa interrupción periódica (cuando S1 = H2)
S Se configura con un número decimal. El intervalo se calcula como S2 x 10 (ms).
Pos. bit
15 . .12 11 . . 8 7 . . 4 3 . . 0
S2
K0 a K3000
S Configuración del intervalo de tiempo: K1 a K3000 (10 ms a 30 ms)
S INT24 no actúa si la constante es K0
4 Habilitación, en el FP0, del programa de interrupción periódica (cuando S1 = H3)
S Intervalo de tiempo = S2 x 0.5 (ms).
Pos. bit
15 . .12 11 . . 8 7 . . 4 3 . . 0
S2
K0 a K3000
S Configuración del intervalo de tiempo: K1 a K3000 (0.5 ms to 1.5 ms)
S INT24 no actúa si la constante es K0
J Ejemplo de habilitación de un programa interrupción
Ejemplo
X0
DF
ICTL,
H0,
H21
S1
S2
[S1]: H0000
Habilita o deshabilita los programas interrupción cuya entrada de interrupción es
una entrada externa (X0--X5 para el FP0 y X0--X7 en el FP--M/FP1) o una
interrupción producida desde un contador de alta velocidad.
[S2]: H0021
Desenmascara INT0 e INT5 (pone a “1” los bits 0 y 5) y enmascara todos los
demás.
3 -- 82
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Pos. bit 15 . . 12 11 . . 8 7 . . 4 3 . . 0
S2
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1
INT No. 5 4 3 2 1 0
Contacto de entrada
X0
(INT0)
X1
X2
(INT1)
(INT2)
X3
X4
(INT3)
(INT4)
X5
(INT5)
Nota:
el ejemplo es para el
FP0, en el caso del
FP--M/FP1 se tienen
8 contactos de entrada (X0 a X7).
S Para desenmascarar los programas interrupción se debe poner a “1” el bit correspondiente.
S Para desenmascarar todos los programas interrupción, se iguala S2 a HFF.
Explicación
S Los programas interrupción 1 y 5 se ejecutarán al ocurrir su interrupción.
Instrucción ICTL
Programa principal
Ejecución
Ejecución
Ejecución
Programa interrupción 0
Programa interrupción 5
Ejecución
ON
Entrada de interrupción 0 OFF
ON
Entrada de interrupción 5 OFF
Condición
Deshabilitada
Habilitada
J Ejemplo de reseteo de programas interrupción
Ejemplo
X0
DF
ICTL,
H100,
HFE
S1
S2
[S1]: H0100
Resetea los programas interrupción cuya entrada de interrupción es una entrada
externa (X0--X5 para el FP0 y X0--X7 en el FP--M/FP1) o una interrupción
producida desde un contador de alta velocidad.
[S2]: HFE
Resetea únicamente INT0 (el bit 0 se pone a “0”).
S Para la relación entre el valor de preselección y el contacto de entrada de interrupción, ver en
“Ejemplos de habilitación / deshabilitación”.
3 -- 83
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Explicación
S La instrucción ICTL se puede emplear para resetear la ejecución de un programa interrupción, que
estando enmascarado se activa su entrada.
Instrucción ICTL
Programa principal
Ejecución
Ejecución
Programa interrupción 0
Programa interrupción 1
Entrada de interrupción 0
ON
OFF
Entrada de interrupción 1
ON
OFF
Final
Ejecución
Deshabilitada
Condición
Habilitada
S Si INT0 se resetea no se ejecutará aunque más tarde se desenmascare. Si no se resetea, como
en el ejemplo de arriba ocurre con INT1, el programa interrupción se ejecutará después de que se
desenmascare.
J Ejemplo de configuración de una interrupción periódica
Ejemplo
X0
DF
ICTL,
H2,
K1500
S1
S2
[S1]: H002
Habilita una interrupción periódica
[S2]: K1500
Declara el el intervalo de tiempo para la interrupción periódica. Con K1500, el
intervalo de tiempo sería K1500 x 10 ms = 15000 ms (15 segundos)
Explicación
S La interrupción periódica se producirá cada 15 segundos, después de la ejecución de la instrucción
ICTL. Cuando se produzca la interrupción se ejecutará el programa interrupción 24 (INT24).
Instrucción ICTL
Ejecución
Ejecución Ejecución
Programa principal
Programa interrupción 24
15s
15s
S Para detener el programa interrupción periódico (INT24), se debe ejecutar el siguiente programa.
X1
DF
ICTL,
H2,
K0
Notas
S Al pasar de modo PROG. a RUN las interrupciones están por defecto deshabilitadas.
S La entrada de interrupción desenmascarada debe coincidir con el programa interrupción habilitado.
3 -- 84
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
Comparación de palabras:
Start igual
Comparación de palabras:
Start distinto
Comparación de palabras:
Start mayor
Comparación de palabras:
Start mayor o igual
Comparación de palabras:
Start menor
Comparación de palabras:
Start menor o igual
ST =
ST <>
ST >
ST >=
ST <
ST <=
Concepto
5
Todos los
5
FP0s/FP--Ms
Series C24,
5
C40, C56 y
5
C72 del FP1
5
(CPU 2.7 o
5
posterior)
Realiza la operación start comparando dos datos de 16 bits. El
contacto pasa a ON/OFF dependiendo del resultado de la operación.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
S1
0
6
Instrucción
ST
ST =
50
OT
5
Y1
> =, DT 0, K 60
0
K
Y0
Y
S2
0
K
60
OT
11
ENT
0
ENT
K/H
5
0
WRT
OT
AN
L-WL
Y-WY
0
WRT
ST
>
F
=
C
ENT
0
ENT
K/H
6
0
WRT
OT
AN
L-WL
Y-WY
1
WRT
NOT
DT/Ld
(BIN)
X-WX
DT
S1
0
ST > =
6
=
C
X-WX
DT
S2
=, DT 0, K 50
Programación con
consola de mano FP
Programmer II
Y
1
NOT
DT/Ld
(BIN)
S1
Área de 16 bits (constante o registro) con el dato para la comparación
S2
Área de 16 bits (constante o registro) con el dato para la comparación
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
Condiciones de bandera
S Bandera de error (R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
3 -- 85
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
S Para más detalles consultar en “7.5 Relés internos especiales”.
J Explicación del ejemplo
S Compara el contenido del registro de datos DT0 con la constante K50 y K60. Si DT0 = K50, la
salida externa Y0 pasa a ON y si DT0 >= K60, la salida externa Y1 pasa a ON.
DT0
60
50
10
ON
Y0 OFF
ON
Y1 OFF
Descripción
--Compara las palabras de datos especificadas por S1 y S2.
--La salida externa correspondiente pasa a ON/OFF dependiendo del resultado
de la comparación.
--Los resultados de las comparaciones serían los siguientes:
Condición
ST =
S1 < S2 S1 = S2
S1 > S2
ON
OFF
ST <> ON
OFF
ST >
ON
OFF
ST >= ON
OFF
ST <
ON
OFF
ST <= ON
OFF
. Notas
D Las instrucciones start de comparación (ST =, ST<>, ST >, ST
>=, ST <, and ST <=) se programan como comienzo de línea.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 86
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
Comparación de palabras
Start igual
Comparación de palabras
Start distinto
Comparación de palabras
Start mayor
Comparación de palabras
Start mayor o igual
Comparación de palabras
Start menor
Comparación de palabras
Start menor o igual
STD =
STD <>
STD >
STD >=
STD <
STD <=
Concepto
dobles:
9
dobles:
9
FP0s/FP--Ms
dobles:
9
Series C24,
dobles:
9
Todos los
C40, C56 y
dobles:
9
dobles:
9
C72 del FP1
(CPU 2.7
o posterior)
Realiza la operación start comparando dos datos de 32 bits. El
contacto pasa a ON/OFF dependiendo del resultado de la
comparación. 12
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
S1
0
10
D =, DT 0, DT 100
S1
9
Y1
D >, DT 0, DT 100
ST
STD =
S2
Y0
Programación con
consola de mano FP
Programmer II
Instrucción
DT
0
DT
100
OT
10
Y
0
STD >
S2
=
C
0
ENT
DT/Ld
1
0
0
OT
AN
L-WL
Y-WY
0
WRT
ST
D
D
>
F
ENT
0
ENT
DT/Ld
1
0
0
OT
AN
L-WL
Y-WY
0
WRT
NOT
DT/Ld
NOT
X-WY
DT
0
DT
100
OT
19
D
D
X-WY
Y
0
NOT
DT/Ld
NOT
ENT
WRT
WRT
S1
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
S2
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
A:Disponible
N/A:No disponible
Condiciones de bandera
S Bandera de error (R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
3 -- 87
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
S Para más detalles consultar en “7.5 Relés internos especiales”.
J Explicación del ejemplo
S Compara el contenido de los registros de datos (DT1, DT0) (S1, S1+1)con (DT101, DT100) (S2,
S2+1). Si se cumple que (DT1, DT0) = (DT101, DT100), la salida externa Y0 pasa a ON y si (DT1,
DT0) > (DT101, DT100), la salida externa Y1 pasa a ON.
Descripción
--Compara la palabra doble de datos formada por S1 y S1+1 con la formada por S2 y S2+1.
--La salida externa determinada pasa a ON/OFF según el resultado de la operación.
--Los resultados de las comparaciones serían los siguientes:
Condición
(S1+1, S1) < (S1+1, S1) = (S1+1, S1) >
(S2+2, S2)
(S2+1, S2) (S2+1, S2)
STD = ON
OFF
STD <> ON
OFF
STD > ON
OFF
STD >= ON
OFF
STD < ON
OFF
STD <= ON
OFF
--Al definir el área de datos de 16 bits más baja (S1,S2), los 16 bits más altos se asignan
automáticamente (S1+1, S2+1).
S1+1
S2+1
S1
Comparación
Se trabaja con el área de datos
especificada y con la siguiente,
como si se tratara de un área de
datos única de 32--bits.
S2
. Notas
D Las instrucciones start de comparación (STD =, STD<>, STD >,
STD >=, STD <, and STD <=) se programan como comienzo de
línea.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 88
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Paso
Comparación de palabras:
AND igual
Comparación de palabras:
AND distinto
Comparación de palabras:
AND mayor
Comparación de palabras:
AND mayor o igual
Comparación de palabras:
AND menor
Comparación de palabras:
AND menor o igual
AN =
AN <>
AN >
AN >=
AN <
AN <=
5
Concepto
Disponibilidad
5
Todos los
5
FP0s/FP--Ms
5
Series C24,
C40, C56 y
5
C72 del FP1
5
(CPU 2.7
o posterior)
5
Realiza la operación AND comparando dos datos de 16 bits. El
contacto pasa a ON/OFF dependiendo del resultado de la
comparación. Los contactos están conectados en serie. 13
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
0
> =, DT 0, K 60
S1
ST
1
Y0
Programación con
consola de mano FP
Programmer II
Instrucción
X
0
AN > =
0
K
60
OT
6
ST
X-WX
0
WRT
AN
>
F
=
C
ENT
0
ENT
K/H
6
0
WRT
OT
AN
L-WL
Y-WY
0
WRT
Y-WY
DT
S2
ST
X-WX
Y
0
NOT
DT/Ld
(BIN)
S1
Área de 16 bits (constante o registro) con el dato para la comparación
S2
Área de 16 bits (constante o registro) con el dato para la comparación
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
Condiciones de bandera
S Bandera de error (R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
3 -- 89
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
S Para más detalles consultar en “7.5 Relés internos especiales”.
J Explicación del ejemplo
S Compara el contenido del registro de datos DT0 con la constante K60 cuando X0 pasa a ON. Si
DT0 >= K60 ,estando X0 en ON, la salida externa Y0 pasa a ON. Si DT0 < K60 o si X0 está en
OFF, la salida externa Y0 pasa a OFF.
DT0
60
10
ON
X0 OFF
ON
Y0 OFF
Descripción
--Compara las palabras de datos especificadas por S1 y S2.
--La salida externa correspondiente pasa a ON/OFF dependiendo del resultado
de la comparación.
Los contactos están conectados en serie.
--Los resultados de las comparaciones serían los siguientes:
Condición
AN =
S1 < S2
S1 = S2
S1 > S2
ON
OFF
AN <> ON
OFF
AN >
ON
OFF
AN >= ON
OFF
AN <
ON
OFF
AN <= ON
OFF
. Notas
D Se pueden programar varias intrucciones AND de
comparación (AN =, AN <>, AN >,AN >=, AN <, y AN <=)
consecutivamente.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 90
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
AND =
AND <>
AND >
AND >=
AND <
AND <=
Comparación de palabras
AND igual
Comparación de palabras
AND distinto
Comparación de palabras
AND mayor
Comparación de palabras
AND mayor o igual
Comparación de palabras
AND menor
Comparación de palabras
AND menor o igual
dobles:
9
dobles:
9
dobles:
9
dobles:
9
Todos los
FP0s/FP--Ms
Series C24,
C40, C56 y
C72 del FP1
dobles:
9
dobles:
9
(CPU 2.7
o posterior)
Concepto
Realiza la operación AND comparando dos datos de 32 bits. El
contacto pasa a ON/OFF dependiendo del resultado de la operación.
Los contactos están conectados en serie. 14
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
X0
0
D> =, DT 0, DT100
S1
ST
1
Y0
Programación con
consola de mano FP
Programmer II
Instrucción
X
0
AND >=
DT
OT
10
100
Y
ST
X-WX
0
WRT
AN
D
D
>
F
=
0
ENT
DT/Ld
1
OT
AN
L-WL
Y-WY
Y-WY
0
DT
S2
ST
X-WX
0
NOT
DT/Ld
NOT
C
ENT
0
0
WRT
0
WRT
S1
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
S2
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Compara el contenido de los registros de datos (DT1, DT0) (S1, S1+1) con (DT101, DT100) (S2,
S2+1)cuando X0 pasa a ON. Si (DT1, DT0) >= (DT101, DT100), estando X0 en ON, la salida
externa Y0 pasa a ON. Si (DT1, DT0) < (DT101, DT100) o si X0 está en OFF, la salida externa Y0
pasa a OFF.
Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
3 -- 91
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
S Para más detalles consultar en “7.5 Relés internos especiales”.
Descripción
--Compara la palabra doble de datos formada por S1 y S1+1 con la formada por
S2 y S2+1.
--La salida externa determinada pasa a ON/OFF según el resultado de la
operación. Los contactos están conectados en serie.
--Los resultados de las comparaciones serían los siguientes:
Condition
(S1+1, S1) < (S1+1, S1) = (S1+1, S1) >
(S2+1, S2) (S2+1, S2) (S2+1, S2)
AND = ON
OFF
AND <> ON
OFF
AND > ON
OFF
ON
AND >= OFF
AND < ON
OFF
AND <= ON
OFF
--Al definir el área de datos de 16 bits más baja (S1,S2), los 16 bits más altos se
asignan automáticamente (S1+1, S2+1).
S1+1
S2+1
S1
Comparación
Se trabaja con el área de datos
especificada y con la siguiente;
como si fuera un área de datos
única de 32--bits.
S2
. Notas
D Se pueden programar varias intrucciones AND de
comparación (AND =, AND <>, AND >,AND >=, AND <,
y AND <=) consecutivamente.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 92
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
Comparación de palabras:
OR igual
Comparación de palabras:
OR distinto
Comparación de palabras:
OR mayor
Comparación de palabras:
OR mayor o igual
Comparación de palabras:
OR menor
Comparación de palabras:
OR menor o igual
OR =
OR <>
OR >
OR >=
OR <
OR <=
Concepto
5
Todos los
5
FP0s/FP--Ms
5
Series C24,
C40, C56 y
5
C72 del FP1
5
(CPU 2.7
o posterior)
5
Realiza la operación OR comparando dos datos de 16 bits. El contacto
pasa a ON/OFF dependiendo del resultado de la comparación. Los
contactos están conectados en paralelo. 15
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
Y0
X0
ST
1
0
X
0
K
60
OT
6
ST
ST
X-WX
X-WX
0
WRT
OR
>
F
=
C
ENT
0
ENT
K/H
6
0
WRT
OT
AN
L-WL
Y-WY
0
WRT
R-WR
DT
S2
0
OR > =
> =, DT 0, K 60
S1
Programación con
consola de mano FP
Programmer II
Instrucción
Y
0
NOT
DT/Ld
(BIN)
S1
Área de 16 bits (constante o registro) con el dato para la comparación
S2
Área de 16 bits (constante o registro) con el dato para la comparación
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
3 -- 93
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
J Explicación del ejemplo
S Y0 pasa a ON cuando X0 está en ON, o si se cumple DT0 >= K60. Si DT0 < K60 y X0 está en OFF,
entonces Y0 pasa a OFF.
DT0
60
10
ON
X0 OFF
ON
Y0 OFF
Descripción
--Compara las palabras de datos especificadas por S1 y S2.
--La salida externa correspondiente pasa a ON/OFF dependiendo del resultado
de la comparación.Los contactos están conectados en paralelo.
--Los resultados de las comparaciones serían los siguientes:
Condición
OR =
S1 < S2
S1 = S2
S1 > S2
ON
OFF
OR <> ON
OFF
OR >
ON
OFF
OR >= ON
OFF
OR <
ON
OFF
OR <= ON
OFF
Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
S Para más detalles consultar en “7.5 Relés internos especiales”.
3 -- 94
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
. Notas
D Las instrucciones de comparación OR (OR =, OR <>, OR >, OR
>=, OR <, y OR <= ) se programan como comienzo de línea.
D Se pueden programar varias intrucciones OR de comparación
(OR =, OR <>, OR >,OR >=, OR <, y OR <=) consecutivamente.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 95
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
Disponibilidad
Paso
Comparación de palabras dobles:
OR igual
Comparación de palabras dobles:
OR distinto
Comparación de palabras dobles:
OR mayor
Comparación de palabras dobles:
OR mayor o igual
Comparación de palabras dobles:
OR menor
Comparación de palabras dobles:
OR menor o igual
ORD =
ORD <>
ORD >
ORD >=
ORD <
ORD <=
9
Todos los
9
FP0s/FP--Ms
9
Series C24,
C40, C56 y
9
C72 del FP1
9
(CPU 2.7
o posterior)
9
Concepto
Realiza la operación OR comparando dos datos de 32 bits. El contacto
pasa a ON/OFF dependiendo del resultado de la operación. Los
contactos están conectados en paralelo. 16
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
0
Y0
X0
0
1
ST
1
X
0
ORD> =
0
DT
S2
OT
10
ST
ST
X-WX
X-WX
0
WRT
OR
D
D
>
F
=
C
ENT
0
ENT
DT/Ld
1
0
0
WRT
OT
AN
L-WL
Y-WY
0
WRT
R-WR
DT
D> =, DT 0, DT100
S1
Programación con
consola de mano FP
Programmer II
Instrucción
100
Y
0
NOT
DT/Ld
NOT
S1
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
S2
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato para la comparación.
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Compara el contenido de los registros de datos (DT1, DT0) con (DT101, DT100). Cuando X0 pasa
a ON o si (DT1, DT0) >= (DT101, DT100), la salida externa Y0 pasa a ON.
Si (DT1, DT0) < (DT101, DT100) y X0 está en OFF, la salida externa Y0 pasa a OFF.
Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Se pone a ON durante un instante, cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
3 -- 96
Instrucciones básicas
FP0/FP1/FPM
3.3 Descripción de instrucciones básicas
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior.
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
S Para más detalles consultar en “7.5 Relés internos especiales”.
Descripción
--Compara la palabra doble de datos formada por S1 y S1+1 con la formada por
S2 y S2+1.
--La salida externa pasa a ON/OFF según el resultado de la operación. Los
contactos están conectados en paralelo.
--Los resultados de las comparaciones serían los siguientes:
(S1+1, S1) < (S1+1, S1) = (S1+1, S1) >
Condición (S2+1, S2)
(S2+1, S2)
(S2+1, S2)
ORD = ON
OFF
ORD <> ON
OFF
ORD > ON
OFF
ON
ORD >= OFF
ORD < ON
OFF
ORD <= ON
OFF
--Al definir el área de datos de 16 bits más baja (S1,S2), los 16 bits más altos se
asignan automáticamente (S1+1, S2+1).
Se trabaja con el área de datos
especificada y con la siguiente,
como si se tratara de un área de
S1+1
S1
datos única de 32--bits.
Comparación
S2+1
S2
. Notas
D Las instrucciones de comparación OR (ORD =, ORD <>,
ORD >, ORD >=, ORD <, y ORD <= ) se programan como
comienzo de línea.
D Se pueden programar varias intrucciones OR de comparación
(ORD =, ORD <>, ORD >,ORD >=, ORD <, y ORD <=)
consecutivamente.
D Si se tienen otros tipos de datos mezclados con el código
BCD, el valor se considerará negativo cuando el bit más
significativo sea 1 y la operación de comparación no se
realiza correctamente. En estos casos, se debe emplear la
instrucción F81 u otra similar para pasar todos los datos a
código binario antes de realizar la comparación.
3 -- 97
FP0/FP1/FPM
Instrucciones básicas
3.3 Descripción de instrucciones básicas
3 -- 98
Capítulo 4
Instrucciones de alto nivel
4.1
Descripción de las instrucciones de alto nivel 4 -- 3
4.1.1
Descripción . . . . . . . . . . . . . . . . . . . . . . 4 -- 3
4.1.2
Números y programación de las
instrucciones de alto nivel . . . . . . . . . 4 -- 4
4.1.3
Instrucciones de alto nivel y
contactos de entrada . . . . . . . . . . . . . 4 -- 5
4.1.4
Tipos de instrucciones de alto nivel . 4 -- 6
4.2
Tablas de instrucciones de alto nivel . . . . . . . 4 -- 11
4.3
Descripción de las instrucciones de alto nivel 4 -- 23
Instrucciones de alto nivel
4 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Instrucciones de alto nivel
4.1 Descripción de las instrucciones de alto nivel
4.1
4.1.1
Descripción de las instrucciones de alto nivel
Descripción
Cada instrucción de alto nivel se compone de : una “F”, que nos indica que la instrucción
es de alto nivel, número de instrucción, abreviatura nemotécnica y operandos.
Ejemplo: instrucción F0 (MV)
Se copia K0 en DT0
Condición de ejecución
Operandos
Dirección
X0
0
F0 MV , K0
S
,
DT 0
D
Abreviatura nemotécnica
F instrución de alto nivel nº: “0”
D Número de instrucción:
Al introducir las instrucciones de alto nivel se añade un
número que determina la instrucción de alto nivel a ejecutar.
D Abreviatura nemotécnica:
Indica el proceso a ejecutar por cada instrucción.
D Operando:
Los operandos se emplean para definir características de la
ejecución de la instrucción o como área de memoria para los
datos que van a ser procesados por la instrucción. Se
dividen en tres tipos: S (fuente), D (destino) y n (número que
especifica el método de control utilizado).
El número de operandos varía según la instrucción.
Tipos de operandos
S (Fuente): Datos que son procesados o configuran el método de procesamiento.
D (Destino): Área donde se almacenan los resultados.
(Constante aritmética):Número para ser procesado o que indica el método de procesan miento.
Los operandos se declaran empleando constantes o áreas de memoria (registros)
explicadas en el punto 2.2.
Cada instrucción emplea unas áreas de memoria (registros) determinadas, para más
información consultar en la explicación de cada instrucción.
4 -- 3
Instrucciones de alto nivel
FP0/FP1/FPM
4.1 Descripción de las instrucciones de alto nivel
4.1.2
Número y programación de las instrucciones de alto nivel
Se asigna un número a cada instrucción de alto nivel. Por ejemplo, a la instrucción MV
(transferencia de 16 bits) se la asigna F0.
Para programar una instrucción de este tipo se escribe una “F” y después el número
de instrucción de alto nivel.
Ejemplo: instrucción F0 (MV)
X0
F
0
4 -- 4
F0 MV , K 0 ,
DT 0
FP0/FP1/FPM
Instrucciones de alto nivel
4.1 Descripción de las instrucciones de alto nivel
4.1.3
Instrucciones de alto nivel y contactos de entrada
Las instrucciones de alto nivel se deben usar siempre con una condición de ejecución.
Se ejecutan cuando su condición de ejecución está en ON.
Ejemplo: La instrucción F0 (MV) se ejecuta cuando la entrada X0
está en ON, transfiriendo K0 a DT0.
X0
F0 MV, K0, DT0
Condición de ejecución
Ejecución de las instrucciones de alto nivel
Las instrucciones de alto nivel se ejecutan una vez cada ciclo de scan, mientras su entrada esté en ON.
ON
Entrada (X0) OFF
F--instrucción
de alto nivel
[ej. F0 (MV)]
1 scan
Si se programan dos instrucciones de alto nivel consecutivamente con la misma
condición de entrada, sólo es necesario programar ésta una vez, siendo válida para
todas las instrucciones programadas consecutivamente.
Ejemplo:
X0
F81 BIN, WX3, DT3
X0
F60 CMP, DT3, K50
No es necesario programar la condición de ejecución.
X0
F81 BIN, WX3, DT3
F60 CMP, DT3, K50
4 -- 5
Instrucciones de alto nivel
FP0/FP1/FPM
4.1 Descripción de las instrucciones de alto nivel
4.1.4
Tipos de instrucciones de alto nivel
Insrucciones de transferancia de datos
Estas instrucciones transfieren datos al área de memoria especificada.
<Ejemplo>
D Transferencia de 16 bits: [F0 (MV)]
D Transferencia de 32 bits: [F1 (DMV)]
D Transferencia de dígitos: [F6 (DGT)]
D Transferencia de bloques: [F10 (BKMV)]
<Programa ejemplo>
X0
F0 MV, K50, DT1
El ejemplo transfiere K50 a DT1. Por lo tanto el valor de DT1 será K50.
Instrucciones aritméticas en binario
Estas instrucciones suman, restan, multiplican o dividen datos.
<Ejemplo>
D Suma de 16 bits con destino especificado: [F22 (+)]
D Resta de 16 bits con destino especificado: [F27 (--)]
D Multiplicación de 16 bits con destino especificado: [F30 (*)]
D División de 16 bits con destino especififcado: [F32 (%)]
<Programa ejemplo>
X0
F22 +, DT0, DT10, DT20
El ejemplo suma los contenidos de los registros DT0 y DT10.
El resultado se almacena en DT20.
Si DT0 es igual a K12 y DT10 igual a K13, entonces DT20 es
igual K25.
4 -- 6
FP0/FP1/FPM
Instrucciones de alto nivel
4.1 Descripción de las instrucciones de alto nivel
Instrucciones aritméticas en BCD
Estas instrucciones suman, restan, multiplican y dividen datos en BCD.
<Ejemplo>
D Suma de 4 dígitos con destino especificado: [F42 (B+)]
D Resta de 4 dígitos con destino especificado: [F47 (B--)]
D Multiplicación de 4 dígitos con destino especificado: [F50
(B*)]
D División de 4 dígitos con destino especificado: [F52 (B%)]
<Programa ejemplo>
X0
F42 B+, DT0, DT10, DT20
El ejemplo suma los contenidos de DT0 y DT10 en BCD.
El resultado se almacena en DT20.
Cuando DT0 es igual a H12 y DT10 es igual H23, entonces DT20
será igual a H35.
Instrucciones de comparación
Estas instrucciones comparan dos datos.
<Ejemplo>
D Comparación de 16 bits: [F60 (CMP)]
D Comparación de 32 bits: [F61 (DCMP)]
<Programa ejemplo>
X0
F60 CMP, DT0, K100
X0 R900B
R0
Este programa compara el valor de DT0 y K100, y si coinciden R0 pasa
a ON.
R900B es una bandera que pasa a ON durante un instante cuando el
resultado de la comparación es “igual” (=).
4 -- 7
Instrucciones de alto nivel
FP0/FP1/FPM
4.1 Descripción de las instrucciones de alto nivel
Instrucciones de operaciones lógicas
Estas instrucciones realizan operaciones lógicas (AND, OR, OR exclusiva, NOR
exclusiva).
<Ejemplo>
D Operación AND: [F65 (WAN)]
D Operación OR: [F66 (WOR)]
D Operación OR exclusiva: [F67 (XOR)]
D Operación NOR exclusiva: [F68 (XNR)]
<Programa ejemplo>
X0
F65 WAN, H1, H3, DT20
H1 : 0 ··· 0 0 0 1
Operación lógica (1 cuando ambos son 1)
H3 : 0 ··· 0 0 1 1
DT20 : 0 ··· 0 0 0 1
(Resultado de la operación)
Instrucciones de conversión de datos
Estas instrucciones convierten datos de un código a otro.
<Ejemplo>
D Hexadecimal a ASCII hexadecimal: [F71 (HEXA)]
D ASCII hexadecimal a hexadecimal: [F72 (AHEX)]
D Binario a ASCII decimal: [F75 (BINA)]
D Inversión de datos de 16 bits: [F84 (INV)]
<Programa ejemplo>
X0
F75 BINA, DT0, H4, DT10
DT0 :
1
K--110
Datos de 16 bits
-(símbolo menos)
DT10 : H31
DT11 : H20
0
4 -- 8
2D
31
conversión
Código ASCII
1
FP0/FP1/FPM
Instrucciones de alto nivel
4.1 Descripción de las instrucciones de alto nivel
Instrucciones de desplazamiento
Estas instrucciones desplazan datos que pueden ser palabras o dígitos
hexadecimales. ( un dígito está formado por 4 bits que representan una cifra
decimal).
<Ejemplo>
D Desplaza n bits a la derecha en datos de 16 bits: [F100
(SHR)]
D Desplaza un dígito hexadecimal a la derecha : [F105 (BSR)]
<Programa ejemplo>
Se desplazan 4 bits
X0
F100 SHR, DT0, K4
El ejemplo desplaza el contenido de DT0 cuatro bits a la derecha
(hacia el bit de menor peso).
DT0: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
DT0:
0 0 0 0 1 1 1 1
R9009 (Bandera de acarreo) :
0 0 0 0 1 1 1 1
0
Instrucciones de rotación de datos
Estas instrucciones rotan datos, siempre dentro del rango de área de memoria especificada.
<Ejemplo>
D Rotación a la derecha: [F120 (ROR)]
D Rotación a la izquierda: [F121 (ROL)]
<Programa ejemplo>
X0
F120 ROR, DT0, K4
El ejemplo rota el contenido de DT0 hacia la derecha (hacia el bit
de menor peso) cuatro bits.
DT0: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
DT0: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
4 -- 9
Instrucciones de alto nivel
FP0/FP1/FPM
4.1 Descripción de las instrucciones de alto nivel
Instrucciones de manipulación de bits
Estas instrucciones trabajan a nivel de bit con datos de 16 bits, como es el caso de los
registros de datos.
<Ejemplo>
D Pone a ON el bit especificado: [F130 (BTS)]
D Invierte el bit especificado: [F132 (BTI)]
D Cueta el número de 1’s en datos de 16 bits: [F135 (BCU)]
<Programa ejemplo>
X0
F130 BTS, DT0, K15
El ejemplo pone a 1 el bit que está en la posición 15 del
registro DT0.
15
DT0:
15
DT0:
12 11
8 7
4 3
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12 11
4 3
0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
El bit en la posición 15 pasa a ON (1).
Instrucciones especiales
La función principal de este tipo de instrucciones es efectuar el control del contador de
alta velocidad.
<Ejemplo>
D Pone a ON la salida externa especificada cuando el valor
actual del contador de alta velocidad (C.A.V.) alcanza el valor
de preselección: [F166 (HC1S)]
D Envía un tren de pulsos por la salida especificada: [F169
(PLS)]
<Programa ejemplo>
X0
F166, FC1S, K1, K10000, Y5
En el ejemplo, la salida externa Y5 pasa a ON cuando el
valor actual del canal interno número 0 del contador de alta
velocidad alcanza el valor de preselección (K10000).
Valor del
DT0
Valor
actual
Y6
4 -- 10
ON
OFF
Tiempo
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
4.2
Nº
Tablas de instrucciones de alto nivel
Nombre
Abrev.
N
e
m
o
t
é
c
n
i
c
a
O
Disponibilidad
p
FP0
e
--
r
C14 C24
C16 C40
n
F1
F2
C56
C72
FP--M
d
o
Instrucciones de transferencia de datos
(D)
F0 Transferencia de MV
S, D (S)
16 bits
Transferencia de DMV
32 bits
Transferencia de MV/
16 bits
complementados
Todos
FP1
Descripción
a
--
Nº
S, D
(S+1, S)
S, D
(S)
(D+1, D)
(D)
P
a
s
o
Pag.
s
--
2.7k
5k
A
A
A
5
4--24
A
A
A
7
4--26
A
A
A
5
4--28
A
A
A
7
4--30
F3
Transferencia de DMV/
32 bits
complementados
S, D
(S+1, S)
F5
Transferencia de BTM
bits
Transferencia de DGT
dígitos
S, n,
D
S, n,
D
Transfiere un bit de S a D.
A
A
A
7
4--32
Transfiere los dígitos
especificados del registro
S a D.
A
A
A
7
4--34
Se transfieren los datos
comprendidos entre S1 y
S2 al área que comienza
en D.
Los datos del registro S se
transfieren al área situada
entre D1 y D2.
A
A
A
7
4--37
A
A
A
7
4--39
(D1)
(D1)
A
A
A
5
4--41
(D1+1, D1)
(D2+1, D2)
(D2+1, D2)
(D1+1, D1)
Se intercambian el byte
superior e inferior del
registro D.
A
A
A
5
4--43
A
A
A
3
F6
F10 Transferencia de BKMV S1,
bloques
S2,
D
F11 Copia de bloques COPY S,
D1,
D2
F15 Intercambio de
16 bits
F16 Intercambio de
32 bits
F17 Intercambio de
bits menor /
mayor peso
XCH
D1,
D2
DXCH D1,
D2
SWAP D
(D+1, D)
(D2), (D2)
Instrucciones aritméticas en binario
F20 Suma de 16 bits
+
S, D
(D) + (S)
F21 Suma de 32 bits
D+
F22 Suma de 16 bits con
+
S, D
S1,
destino especificado
S2, D
-- A: disponible N:no disponible
(D)
(D+1, D) + (S+1, S)
(D+1, D)
(S1) + (S2)
(D)
4--45
A
A
A
5
4--47
A
A
A
7
4--49
A
A
A
7
4--51
4 -- 11
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
Abrev.
N
e
m
o
t
é
c
n
i
c
a
O
Disponibilidad
p
FP0
--
e
r
a
--
Nº
Todos
a
FP1
Descripción
C14 C24
C16 C40
n
d
C56
C72
Pag.
s
o
s
FP--M
o
P
--
2.7k
5k
D+
S1
(S1+1, S1) + (S2+1, S2)
S2, D
(D+1, D)
A
A
A
11
4--53
F25 Resta de 16 bits
--
S, D
(D) -- (S)
A
A
A
5
4--55
F26 Resta de 32 bits
D--
S, D
A
A
A
7
4--57
F27 Resta de 16 bits con
--
S1,
S2, D
(D+1, D) -- (S+1, S)
(D+1, D)
(S1) -- (S2)
(D)
A
A
A
7
4--59
D--
S1,
(S1+1, S1) -- (S2+1, S2)
S2, D
(D+1, D)
A
A
11
4--61
*
S1,
(S1) (S2)
S2, D
A
A
A
7
4--63
D*
S1,
(S1+1, S1) (S2+1, S2)
S2, D
(D+3, D+2, D+1, D)
N
A
A
11
4--65
%
S1,
(S1) ▐ (S2)
S2, D Cociente (D)
Resto (DT9015)
A
A
A
7
4--67
D%
S1,
(S1+1,S1)▐(S2+1,S2)
S2, D Cociente (D+1, D)
Resto (DT9016,DT9015)
N
A
A
11
4--69
+1
D
A
A
A
3
4--71
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
F23 Suma de 32 bits con
destino especificado
destino especificado
F28 Resta de 32 bits con
destino especificado
F30 Multiplicación de 16
bits con destino
especificado
F31 Multiplicación de 32
bits con destino
especificado
F32 División de 16 bits
con destino
especificado
F33 División de 32 bits
con destino
especificado
F35 Incremento en 1 en
(D) + 1
(D)
(D+1, D)
(D)
A
registros de 16 bits
F36
Incremento en 1 en
registros de 32 bits
D+1 D
(D+1, D) +1
F37
Decremento en 1 en
registros de 16 bits
--1
(D) -- 1
F38
Decremento en 1 en
registros de 32 bits
D--1 D
D
(D+1, D)
(D)
(D+1, D)--1
(D+1, D)
3
3
3
4--73
4--75
4--77
Instrucciones aritméticas en BCD
F40 Suma de 4 dígitos
F41
B+
S, D
Suma de 8 dígitos
DB+ S, D
Suma de 4 dígitos
B+
F42 con destino
especificado
4 -- 12
(D) + (S)
(D)
(D+1,D)+(S+1,S)
D)
S1,
(S1) + (S2)
S2, D
(D+1,
(D)
5
7
4--79
4--81
7
4--84
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
Disponibilidad
Nº
Nombre
Suma de 8 dígitos
O
p
Abrev.
N
e
o
t
é
c
n
i
c
a
DB+
F43 con destino
especificado
FP0
--
e
r
a
n
d
C14
C16
A
A
A
A
A
A
5
4--89
A
A
A
7
4--91
A
A
A
S1,
(S1+1, S1) -- (S2+1, S2)
S2, D
(D+1, D)
A
A
A
S1,
(S1) S2, D
A
A
A
S1,
(S1+1, S1) (S2+1, S2)
S2, D
(D+3, D+2, D+1, D)
N
A
A
S1,
(S1)▐(S2) Cociente D
S2, D Resto (DT9015)
A
A
A
N
A
A
A
A
A
A
A
A
S, D
(D+1, D) -- (S+1, S)
(D+1, D)
B--
S1,
(S1) -- (S2)
S2, D
especificado
Multiplicación de 4
B*
F50 dígitos con destino
especificado
Multiplicación de 8
DB*
F51 dígitos con destino
especificado
División de 4 dígitos B%
F52 con destino
especificado
(D)
(S2)
D
(D) + 1
(D)
4--86
7
4--94
11
(D+1, D)
División de 8 dígitos DB% S1,
(S1+1, S1) ▐ (S2+1, S2)
Cociente (D+1, D)
S2, D
especificado
Resto (DT9015,DT9016)
B+1
11
(D)
F53 con destino
F55 Incremento en 1 en
s
S1,
(S1+1, S1) + (S2+1, S2)
S2, D
(D+1, D)
DB--
DB--
o
5k
F46 Resta de 8 dígitos
Resta de 8 dígitos
Pag
s
2.7k
(D) -- (S)
F48 con destino
C56
C72
--
S, D
especificado
C24
C40
P
a
FP--M
o
B--
Resta de 4 dígitos
Todos
FP1
Descripción
F45 Resta de 4 dígitos
F47 con destino
--
Nº
4--97
7
4--100
11
4--102
7
4--104
11
4--106
3
4--109
A
3
4 -- 111
A
A
3 4 -- 113
A
A
A
3 4 -- 115
A
A
A
registros de 4 dígitos
BCD
Incremento en 1 en
F56 registros de 8
DB+1
D
(D+1, D) + 1
(D+1, D)
dígitos BCD
Decremento en 1 en
B--1
D
(D) -- 1
(D)
F57 registros de 4
dígitos BCD
Decremento en 1 en DB--1
D
(D+1, D) -- 1
(D+1, D)
F58 registros de 8
dígitos BCD
Instrucciones de comparación
Comparación de 16
F60 bits
CMP
S1,
S2
(S1) >(S2)
(S1) =(S2)
(S1) <(S2)
R900A:ON
R900B:ON
R900C:ON
5
4--117
4 -- 13
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
F61 Comparación de
32 bits
F62 Compara 16 bits
Abrev.
N
e
m
o
t
é
c
n
i
c
a
de datos
FP0
e
--
r
C14
C16
n
d
WIN
(S1) > (S3)
R900A:ON
(S2)
(S1)
(S3)
R900B:ON
(S1) < (S2)
R900C:ON
(S1+1, S1) > (S3+1, S3)
R900A:ON
(S2+1, S2)
(S1+1, S1)
(S3+1, S3)
R900B:ON
(S1+1, S1) < (S2+1, S2)
R900C:ON
DWIN
S1,
S2,
S3
BCMP S1,
S2,
S3
Todos
C24
C40
Compara los bloques de
datos que comienzan en
S2 y S3, comprobando si
son iguales.
Nº
P
a
C56
C72
Pag
s
o
FP--M
o
S1,
S2,
S3
-FP1
Descripción
a
(S1+1, S1) > (S2+1, S2)
R900A:ON
(S1+1, S1) = (S2+1, S2)
R900B:ON
(S1+1, S1) < (S2+1, S2)
R900C:ON
con un bloque de
registros
F64 Compara bloques
Disponibilidad
p
DCMP S1,
S2
con un bloque de
registros
F63 Compara 32 bits
O
--
2.7k
5k
A
A
A
s
9 4 -- 121
7 4 -- 125
A
A
A
13 4 -- 127
A
A
A
7 4 -- 129
N
A
A
Instrucciones de operaciones lógicas
F65 AND de datos de
16 bits
F66 OR de datos de
16 bits
F67 OR exclusiva de
datos de 16-bits
NOR exclusiva de
F68
datos de 16 bits
WAN
WOR
XOR
XNR
S1,
S2, D
S1,
S2, D
S1,
S2, D
S1,
S2, D
(S1)
(S2)
(D)
A
A
A
7 4 -- 132
(S1)
(S2)
(D)
A
A
A
7 4 -- 134
A
A
A
7 4 -- 136
A
A
A
{(S1)
{(S1)
{(S1)
{(S1)
(S2)}
(S2)}
(S2)}
(S2)}
(D)
(D)
7 4 -- 138
Intrucciones de conversión de datos
F70
Chequeo de
códigos por
bloques
4 -- 14
BCC
S1,
S2,
S3, D
Crea el código para el
chequeo de los datos
definidos por S2 y S3 y lo
guarda en D. El método
de operación lo
especifica S1.
9 4 -- 140
N
A
A
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
Hexadecimal a
ASCII
Abrev.
N
e
m
o
t
é
c
n
i
c
a
HEXA
F71
ASCII a
hexadecimal
AHEX
F72
BCD a ASCII
BCDA
F73
ASCII a BCD
ABCD
F74
F75 Binario a ASCII
(16 bits)
BINA
O
Disponibilidad
p
FP0
--
e
r
a
C14
C16
d
o
S1,
Convierte los datos
S2, D hexadecimales,
especificados por S1 y S2,
en código ASCII y lo
guarda en D.
Ejemplo:
HABCD
H 42 41 44 43
B A D C
S1,
Convierte los datos en
S2, D código ASCII,
especificados por S1 y S2,
en código hexadecimal y lo
guarda en D. Ejemplo:
H 44 43 42 41
HCDAB
D C B A
S1,
Convierte los cuatro dígitos
S2, D del código BCD, definidos
por S1 y S2, en código
ASCII y lo guarda en D.
Ejemplo:
H1234
H 32 31 34 33
2 1 4 3
S1,
Convierte los datos
S2, D codificados en código
ASCII, definidos por S1 y
S2, en BCD y los
almacena en D.
Ejemplo:
H 34 33 32 31
H3412
4 3 2 1
S1,
Convierte los 16 bits, del
S2, D dato definido por S1 y S2,
en código ASCII y lo
almacena en D. Ejemplo:
K--100
H 30 30 31 2D
20 20
0 0 1 --
Todos P
a
FP1
Descripción
n
--
Nº
C24
C40
C56
C72
2.7k
Pag.
o
s
FP--M
--
s
5k
7 4 -- 143
N
A
A
7 4 -- 146
N
A
A
7 4 -- 149
N
A
A
9 4 -- 153
N
A
A
7 4 -- 157
N
A
A
4 -- 15
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
F76 ASCII a
Abrev.
N
e
m
o
t
é
c
n
i
c
a
ABIN
binario (16 bits)
F77 Binario a ASCII DBIA
(32 bits)
F78 ASCII a binario DABI
(32 bits)
F80 16 bits (binario) BCD
O
Disponibilidad
p
FP0
r
a
BIN
C14
C16
d
--
DBIN
Convierte 32 bits (binario) de
(S1+1, S1) en código ASCII y
se almacena en (D+1, D).
N
A
A
S1,
S2,
D
Convierte el código ASCII,
definido por S1 y S2, en 32
bits (binario) y se almacena en
(D+1, D).
S, D
Convierte los 16 bits (binario),
especificados por S, en los 4
dígitos del código BCD y se
almacena en D.
Ejemplo: K100
H100
F84 Inversión de
INV
S,
D
D
datos de 16
bits
F85 Complemento
a 2 de 16 bits
4 -- 16
NEG
D
Convierte los 8 dígitos del
dato en BCD, especificados
por (S+1, S), en 32 bits
(binario) y se almacena en
(D+1, D).
Invierte los bits del dato
contenido en D.
Invierte los bits del dato
guardado en D y añade un 1
(se invierte el signo)
o
7 4 -- 160
S1,
S2,
D
Convierte los 32 bits (binario),
especificados por (S+1, S), en
8 dígitos en código BCD y se
almacena en (D+1, D).
Pag.
5k
A
D
a 32 bits
binario
2.7k
s
s
A
F82 32 bits (binario) DBCD S,
F83 8 dígitos BCD
C56
C72
N
Convierte los 4 dígitos del
dato en BCD, definido por S, y
se almacena en D.
Ejemplo: H100
K100
a 8 dígitos
BCD
C24
C40
P
a
Convierte los datos en código
ASCII, definidos por S1 y S2,
en binario (16 bits) y se
almacena en D. Ejemplo:
H 30 30 31 2D 20 20
K--100
0 0 1 --
S,
D
a 16 bits
(binario )
Todos
FP--M
o
S1,
S2,
D
-FP1
Descripción
n
a 4 dígitos en
BCD
F81 4 dígitos BCD
--
e
Nº
11 4 -- 163
11 4 -- 166
N
A
A
5 4 -- 170
A
A
A
5 4 -- 172
A
A
A
7 4 -- 174
A
A
A
7 4 -- 176
A
A
A
A
A
A
A
A
A
3 4 -- 178
3 4 -- 179
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
F86 Complemento a 2
Abrev.
N
e
m
o
t
é
c
n
i
c
a
O
Disponibilidad
p
FP0
r
a
ABS
D
DABS
D
datos de 32 bits
F89 Extensión de
EXT
D
código
F90 Decodificación
DECO S,
n, D
F91 Decodificación a 7 SEGT
segmentos
F92 Codificación
F93 Combinación de
F94 Distribución de
F95
A
A
A
Obtiene el valor absoluto
del dato almacenado en
(D+1,D).
A
A
A
Decodifica la parte del
dato (S), especificada
por n, y el resultado se
guarda en D.
ASC
Se distribuyen n dígitos
de S y se guarda cada
dato distribuido en los 4
bits de menor peso del
registro especificado por
D a D+n--1.
S, D Se convierte la constante
tipo carácter (12
caracteres) especificada
por S,en ASCII. Se
guarda en los registros D
a D+5.
o
3 4 -- 181
Obtiene el valor absoluto
del dato almacenado en
D.
Convierte el dato de 16
bits almacenado en D a
32 bits y se almacenan
en (D+1, D).
Pag.
5k
A
Se guarda en orden en D
el dígito de menor peso
de cada una de las
palabras del área
especificada.
S,
n, D
2.7k
s
s
A
UNIT
DIST
C56
C72
A
S, D Convierte el dato S para
emplearlo en un display
de 7 segmentos y se
almacena en (D+1, D).
S,
n, D
C24
C40
P
a
Invierte los bits del dato
almacenado en (D+1, D)
y añade un 1(se invierte
el signo).
Codifica la parte del dato
(D), especificada por n, y
el resultado se almacena
en D.
datos de 16 bits
Coversión de
caracteres a
código ASCII
--
ENCO S,
n, D
datos de 16 bits
Todos
FP--M
o
datos de 16 bits
F88 Valor absoluto de
C14
C16
d
DNEG D
-FP1
Descripción
n
de 32 bits
F87 Valor absoluto de
--
e
Nº
A
A
A
A
A
A
A
A
A
A
A
A
3
4 -- 183
3
4 -- 185
3
4 -- 187
7
4 -- 189
5
4 -- 193
7
4 -- 195
7
4 -- 198
7
4 -- 200
A
A
A
A
A
A
15 4 -- 202
N
A
A
4 -- 17
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
Abrev.
N
e
m
o
t
é
c
n
i
c
a
Búsqueda de
SRC
datos en tablas
F96
O
Disponibilidad
p
FP0
--
e
r
a
C14
C16
d
C24
C40
-Busca el dato S1 de 16 bits,
en la tabla definida por S2 y
S3. Los resultados se
almacenan en DT9037 y
DT9038.
A
2.7k
A
P
a
C56
C72
s
Pag
o
s
FP--M
o
S1,
S2,
S3
Todos
FP1
Descripción
n
--
Nº
5k
7
4 -- 204
5
4 -- 207
5
4 -- 209
3
4 -- 211
3
4 -- 213
5
4 -- 215
5
4 -- 217
5
4 -- 219
5
4 -- 221
5
4 -- 223
A
Instrucciones de desplazamiento
Desplazam. de SHR
n bits a la dcha
F100 en los datos de
16 bits
D, n
Desplazam. de
n bits a la
F101 izquierda en
datos de 16
bits
SHL
D, n
Desplazam. de
BSR
Desplaza el dato
almacenado en D n bits a la
derecha.
Desplaza el dato
almacenado en D n bits a la
izquierda.
A
A
A
A
A
A
Desplaza el dato
almacenado en D un dígito
a la derecha.
A
A
A
Desplaza el dato
almacenado en D un dígito
a la izquierda.
A
A
A
Desplaza el registro
especificado por D1 y D2
una palabra a la derecha.
A
A
A
WSHL D1,
D2
Desplaza el registro
especificado por D1 y D2
una palabra a la izquierda.
A
A
A
Desplazam. de
1 dígito en un
F112 bloques de
palabras a la
derecha
WBSR D1,
D2
Desplaza el área de datos
de D1 a D2 un dígito a la
derecha.
Desplazam. de
1 dígito en un
F113 bloque de
palabras a la
izquierda
WBSL D1,
D2
D
F105 1 dígito a la
derecha
Desplazam. de
BSL
D
F106 1 dígito a la
izquierda
Desplazam. de
F110 1 palabra a la
WSH
R
D1,
D2
derecha
Desplazam. de
F111 1 palabra a la
izquierda
Desplaza el áreas de datos
de D1 a D2 un dígito a la
izquierda.
A
A
A
A
A
A
Instrucciones de contador SUMA/RESTA y desplazamiento izquierda/derecha
F118
4 -- 18
Contador
SUMA/RESTA
UDC
S, D
Cuenta o descuenta desde
el valor de preselección (S)
y almacena el valor actual
en D.
A
A
A
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
Registro de
F119 desplaz.
izq/dcha
Abrev.
N
e
m
o
t
é
c
n
i
c
a
LRSR
O
Disponibilidad
p
FP0
--
e
r
C14
C16
n
d
a
C24
C40
C56
C72
-Desplaza un bit a la derecha o
a la izquierda el área
comprendida entre D1 y D2.
2.7k
s
Pag
o
s
FP--M
o
D1,
D2
Todos P
FP1
Descripción
a
--
Nº
5k
5 4 -- 227
A
A
A
Rotación de n bits a la
derecha del dato almacenado
en D.
A
A
A
Rotación de n bits a la
izquierda del dato almacenado
en D.
A
A
A
Se rota a la derecha n bits, un
dato especificado por
D.(Incluyendo la bandera CY).
A
A
A
Se rota a la izquierda n bits,
un dato definido por D.
(Incluyendo la bandera CY).
A
A
A
A
A
A
A
A
A
A
A
A
Instrucciones de rotación de datos
Rotación a
ROR
D, n
F120 la derecha
Rotación a
ROL
D, n
F121 la izquierda
Rotación a
RCR
D, n
F122 la derecha
con acarreo
Rotación a
RCL
D, n
F123 la izquierda
con acarreo
5 4 -- 231
5 4 -- 233
5 4 -- 235
5 4 -- 237
Instrucciones de manipulación de bits
Pone a ON
BTS
D, n
5 4 -- 239
Pone a 1 el bit n de D.
F130 el bit
especificado
Pone a OFF
BTR
D, n
5 4 -- 241
Pone a 0 el bit n de D.
F131 el bit
especificado
D, n
Invierte el bit n de D.
Chequea el BTT
estado del
F133
bit
especificado
D, n
Comprueba el valor del bit n
de D y el resultado se guarda
en R900B.
Cuenta el
número de
F135
1’s en datos
de 16 bits
S, D
F132
Invierte el bit BTI
especificado
BCU
Almacena el número de 1’s de
S en D.
5 4 -- 243
5 4 -- 245
A
A
A
5 4 -- 247
A
A
A
4 -- 19
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
F136 Cuenta el número
Abrev.
N
e
m
o
t
é
c
n
i
c
a
DBCU
de 1’s en datos de
32 bits
O
Disponibilidad
p
FP0
--
e
r
a
C14
C16
d
C24
C40
Almacena el número de
1’s de (S+1, S) en D.
--
2.7k
A
A
N
N(1)
P
a
C56
C72
s
Pag
o
s
FP--M
o
S,
D
Todos
FP1
Descripción
n
--
Nº
5k
A
7
4--249
Instruccciones de temporización auxiliares
Temporizador
auxiliar de 16 bits
STMR
Temporizador
auxiliar de 32 bits
F183
(*1)
DSTM
F137
S,
D
Pasan a ON la salida
especificada y R900D
después de 0.1 seg. valor de preselección.
S,
D
Pasan a ON la salida
especificada y R900D
después de 0.01 seg. valor de preselección.
⎯
⎯
Convierte horas, minutos
y segundos a segundos
⎯
⎯
⎯
⎯
⎯
⎯
5 4 -- 251
A
5 4 -- 254
N
N
A(1)
N
A
A(2)
Convierte segundos a
horas, minutos y seg.
N
A
A(2)
5
Pone a ON el bit de
acarreo(R9009).
N
A
A
1 4 -- 261
Pone a OFF el bit de
acarreo (R9009).
N
A
A
1 4 -- 262
Instrucciones especiales
Conversión de
HMSS
F138 hora, min., seg. a
segundos
Conversión de
F139 segundos a horas,
SHMS
min., seg.
F140 Carry set
ST
F141 Carry reset
CLC
Refresco parcial
de entradas/
salidas
IORF
F143
Transmisión de
F144 datos vía serie
RS232C
TRNS
D1, Actualiza las salidas /
D2 entradas cuyo número
está comprendido entre
los especificados por D1
y D2. Con esta
instrucción sólo es
posible actualizar de X0
a XF y de Y0 a YF.
S,
D
Transmisión de palabras
de un área de datos vía
serie RS232C.
5
4--257
4--259
5 4 -- 263
N
A
A
N
A(3)
A(3)
5
4--264
(*1): Para programar la instrucción F183 (DSTM), se necisita NPST--GR versión 4 o posterior,
FPSOFT versión 1 o posterior o FP Programmer II versión 2 (AFP1114V2).
A(1): Sólo disponible en el FP0.
N(1): No disponible para el FP1, pero si para el FP--M.
A(2): Sólo disponible en el FP--M y FP1.
A(3): Sólo disponible para FP1 (C24C, C40C, C56C, C72C), en el FP--M (versión C) y en el FP0
(versión C) . Versión C: autómata con puerto adicional RS232C.
4 -- 20
FP0/FP1/FPM
Instrucciones de alto nivel
4.2 Tablas de instrucciones de alto nivel
Nº
Nombre
Abrev.
N
e
m
o
t
é
c
n
i
c
a
F147 Envía datos a PR
O
ERR
de errores
F149 Visualiza
MSG
r
a
C56
C72
FP--M
--
P
a
C14 C24
C16 C40
o
n:
K100
a
K299
S
Nº
Todos
FP1
Descripción
d
S, D
--
s
Pag
o
s
2.7k
5k
A(1)
5
4 -- 270
4 -- 273
Prepara el código ASCII,
que comienza en S para
imprimirlo, enviandolo a una
salida externa (WY).
Almacena el número del
error n en DT9000, R9000 y
ERROR/ ALARM LED
pasan a ON.
Visualiza la constante tipo
carácter de S en la
herramienta de
programación empleada.
N
A(1)
N
A
A
3
N
A
A
13 4 -- 275
CADD
S1,
S2, D
(S1+2,S1+1,S1)+(S2+1,S2)
(D+2, D+1, D)
N
A
A(2)
9
4--276
CSUB
S1,
S2, D
(S1+2,S1+1,S1)--(S2+1,S2)
(D+2, D+1, D)
N
A
A(2)
9
4--278
5
4 -- 282
tiempo
F158 Resta de
--
n
mensajes
F157 Suma de
FP0
e
una
impresora
F148 Tratamiento
Disponibilidad
p
tiempo
Instrucciones especiales (instrucciones del contador de alta velocidad)
F0
F1
Transferencia MV
de 16 bits
para el
contador de
alta velocidad
S, DT
9052
Transferencia DMV
de 32 bits
para cambiar
o leer el valor
actual del
contador de
alta velocidad
S, DT
9044
(*1)
Pone a ON
HCOS
una salida del
F162 C.A.V.
Realiza el control del
contador de alta velocidad
(C.A.V.), de acuerdo al
código de control
especificado en S. El
código de control se
almacena en DT9052.
Transfiere (S+1, S) al área
de valor actual del C.A.V..
DT
Transfiere el valor actual
9044, del C.A.V. a (S+1,S).
S (*1)
S,
Yn
Pone a ON la salida
especificada cuando el
valor actual del C.A.V.
coincide con el valor
preseleccionado
A
A
A
7 4 -- 286
A
A
A
7 4 -- 286
A
A
A
4--289
A
A
A(2)
7
(*1): Declara uno de los siguientes valores como valor actual dependiendo del canal empleado:
ch0...DT9044, ch1...DT9048, ch2...DT9104, ch3...DT9108
A(1): Disponible para FP1 (C24, C40, C56, C72) y FP--M con salida a transistor y FP0s.
A(2): Disponible para FP1 y FP--M .
4 -- 21
Instrucciones de alto nivel
FP0/FP1/FPM
4.2 Tablas de instrucciones de alto nivel
Nº
F163
F164
Nombre
Abrev.
N
e
m
o
t
é
c
n
i
c
a
Pone a OFF una salida
del C.A.V.
HCOR
Control de salida de
pulsos
SPDO
O
Disponibilidad
p
FP0
e
r
a
--
C14
C16
o
Pone a OFF la salida
especificada cuando el valor
actual del C.A.V. coincide con
el valor preseleccionado
S
Control de salida patrón
F165
Cam control
CAMO
S
ON: Coincidencia con el
valor de preselección
(con especificación del
canal)
HC1S
F166
n,
S,
Yn
HC1R
F167
OFF: Coincidencia con el
valor de preselección
(con especificación de
canal)
Control de
posicionamiento
(control trapezoidal /
vuelta al origen: con
especificación de canal)
F169
C24
C40
Pone Yn a ON cuando el valor
actual del C.A.V. programado
alcanza el valor de (S+1,S).
P
a
C56
C72
FP--M
d
S,
Yn
Todos
FP1
Descripción
n
--
Nº
s
Pag
o
s
--
2.7k
5k
A
A
A(1)
A(3)
A(3)
A(3)
A
A
A(1)
A
A
N
7
4--292
7
4--295
A(1)
7
4--309
N
A(2)
11
4--318
N
N
A(2)
N
N
A(2)
11 4 -- 322
n,
S,
Yn
Pone Yn a OFF cuando el valor
actual del C.A.V. programado
alcanza el valor de (S+1,S).
SPD1
n,
S,
Yn
Envía un tren pulsos para
control de posiciomiento por
Y0 o Y1, según el contenido
de la tabla de datos que
comienza en S.
Salida de pulsos
(Operación JOG: con
especificación de canal)
PLS
S, n
Envía un tren pulsos por Y0 o
Y1, para control de
posicionamiento.
N
N
A(2)
Salida de pulsos
modulados en anchura
(PWM) (con
especificación de canal)
PWM
S, n
F170
Proporciona una salida PWM
por Y0 o Y1, según el
contenido de la tabla de datos
que comienza en S.
N
N
A(2)
F335
PID con autoajuste
PID
S
Realiza un control PID
continuo
N
N
A(4)
4--330
F12
Lectura de memoria
ICRD
S1
S1_M
S2. D
Lee datos de la memoria
EEPROM
N
N
A(4)
4--333
P13
Escritura de memoria
ICWT
S1
S2 ,D
D_M
Escribe datos en la memoria
EEPROM
N
N
A(4)
4--333
F309
a
F338
Funciones en coma
flotante
Trabajan con números reales
N
N
A(4)
4--335
F168
5
4 -- 324
5
4 -- 328
5
4 -- 330
Para programar las instrucciones comprendidas entre F166 y F170, se necesita NPST--GR versión. 4 o posterior, FPSOFT versión 1 o posterior o FP Programmer II versión 2 (AFP1114V2).
A(1): Disponible para FP1 y FP--M .
A(2): Disponible para el FP0 .
A(3): Disponible para el FP--M y FP1 con salida a transistor .
A(4): Disponible para el FP0 versión 2.0 o superior .
4 -- 22
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
4.3
Descripción de las instrucciones de alto nivel
J Diagrama explicativo de las instrucciones
Número de instrucción
Número de pasos por
instrucción
Tipo de autómata disponible
Lógica
programable
Diagrama en
escalera
empleando
software de
programación
Operadores
válidos para la
instrucción
Explicación
del programa
ejemplo,
detalles de la
instrucción, y
codiciones de
bandera
4 -- 23
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F0 (MV)
Concepto
Transferencia de 16 bits
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Copia datos de 16 bits del área de datos especificada (S) a otro área o
registro,(D).
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 0
(MV)
DT
0
DT
1
X0
F0 MV , DT 0 ,
10
DT 1
S
Instrucción
X
0
D
S
16 bits (constante o registro) con la informacion a procesar (fuente)
D
16 bits empleados como registro de destino (destino)
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se copia el contenido del registro DT0 en el registro DT1 cuando X0 está en ON.
Descripción
S El dato o la constante de 16 bits de S se copian en D cuando la condición de
ejecución está en ON.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 24
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de aplicación
Ejemplo 1: Se transfiere K30 al área de valor de preselección del temporizador 0 (SV0) cuando
X1 está en ON. X1
F0 MV, K 30, SV 0
Ejemplo 2: Se transfiere el valor actual del temporizador 0 (EV0) al registro de datos DT0
cuando X2 está en ON.
X2
F0 MV, EV 0, DT 0
4 -- 25
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F1 (DMV)
Concepto
Transferencia de 32 bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Copia datos de 32 bits de un registro especificado a otro.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F
X0
F1 DMV , DT 0 , DT100
10
S
X
0
1 (DMV)
DT
0
DT
100
D
S
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato fuente.
D
16 bits de menor peso del área de destino de 32 bits (destino)
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se copian los contenidos de los registro de datos DT1 y DT0 en DT101 y DT100 cuando la entrada
X0 está en ON.
16 bits de
mayor peso
16 bits de
menor peso
.... Se trabaja con los registros DT0 y DT1 como si se tratara
de un área única de 32 bits.
Contenidos
de DT1
Contenidos
de DT0
.... El dato de 32 bits se separa en dos áreas, los 16 bit de mayor
peso y los de menor peso, y se almacenan en DT101 y DT100.
a DT101
4 -- 26
a DT100
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se copia el contenido especificado por S en el área de 32 bits de destino D
cuando la entrada X0 está en ON.
S Cuando se procesan datos de 32 bits, los 16 bits de mayor peso (S+1, D+1)
quedan definidos automáticamente al declarar los 16 bit de menor peso
(S, D).
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 27
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Transferencia de 16 bits
complementados
F2 (MV/)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Invierte y copia los 16 bits de un registro especificado a otro.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 2
(MV/)
DT
1
DT
0
X0
F2 MV/ , DT 1 ,
10
Instrucción
DT 0
X
0
D
S
S
16 bits (constante o registro) con la informacion a procesar (fuente)
D
16 bits empleados como el registro de destino (destino)
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
S
D
A
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
N/A A
A
A
A
A
A
A
A
A
N/A N/A
A
A
A:Disponible
N/A:No disponible
Descripción
S Se invierten los 16 bits del dato o de la constante especificado por S. y se
transfiere el resultado al área especificada por D cuando la entrada X0 está
en ON.
S 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
D 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1
4 -- 28
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Cuando la entrada está en ON, se invierten los bits del registro de datos DT1 y se transfieren al
registro de datos DT0.
DT1
0
1
2
H
DT0
3F
H 5555
S
H 1234
X0: ON
0
1
2
H
1111
H
23A
D
Fuente [S]: H5555
H FFFF
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Ejecución “F2 (MV/)”
X0: ON
DT1
0
1
2
H
Inversión y
transferencia
3F
H 5555
H 1234
S
0
1
2
Destino [D]: HAAAA
DT0
H AAAA
Pos del bit 15
D
DT0
· · 1211 · · 8 7 · · 4 3 · · 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
H 23A
H FFFF
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 29
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
Transferencia de 32 bits
complementados
F3 (DMV/)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Invierte y copia 32 bits del registro especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 3
(DMV/)
DT
100
DT
0
X0
10
Instrucción
F3 DMV/ , DT100 , DT 0
X
0
D
S
S
Constante de 32 bits o 16 bits de menor peso del área de 32 bits empleados
como dato fuente.
D
16 bits de menor peso del área de destino de 32 bits (destino)
J Operandos
Operando
Contacto
WX WY WR
S
D
A
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
N/A
A
A
N/A A
A
A
A
A
A
N/A N/A N/A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se invierten los bits de los registros de datos DT101 y DT100 y se transfieren a los registros de
datos DT1 y DT0 cuando la entrada X0 está en ON.
Fuente [S]: H75BCD15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1
DT101
16 bits de mayor peso
Destino [D]: HF8A432EA
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0
DT1
16 bits de mayor peso
.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1
DT100
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0
DT0
16 bits de menor peso
Nota
Cuando se procesan datos de 32 bits, los 16 bits de mayor peso
(S+1, D+1) quedan definidos automáticamente al declarar los 16 bit de
menor peso (S, D).
ej,
4 -- 30
S+1 (16 bits de mayor peso) = DT101, S (16 bits de menor peso) = DT100
D+1 (16 bits de mayor peso) = DT1, D (16 bits de menor peso) = DT0
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se invierten los 32 bits de la constante o del dato especificado por S y se
transfieren al área de destino de 32 bits especificada por D cuando la
condición de ejecución está en ON.
S
S+1
D
D+1
1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1
0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1
0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0
1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 31
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F5 (BTM)
Concepto
Transferencia de bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Copia un bit de un registro en otro
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 5
X0
10
Instrucción
H
n
0
(BTM)
DT
F5 BTM , DT 1 , H C04 , DT 0
S
X
D
1
C04
DT
S
16 bits (constante o registro) con la informacion a procesar (fuente)
n
16 bits (constante o registro) que especifican la posición del bit fuente y la
posición del bit de destino
D
16 bits empleados como el registro de destino (destino)
0
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
n
A
A
A
A
A
A
A
A
A
A
A
N/A A
A
A
A
A
A
A
D
N/A N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se copia el bit que está en la posición 4 del registro DT1 en la posición 12 del registro de datos
DT0, cuando la entrada X0 está en ON.
Fuente [S]
n:H C 0 4
Posición del
bit fuente
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1
DT1
Destino [D]
Posición en el Pos del bit 15
· · 1211 · · 8 7 · · 4 3 · · 0
registro de
0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
DT0
destino
Destino [D]
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0
DT0
4 -- 32
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se copia en un bit del registro
D un bit de la constante o registro de 16 bits especificado por D, la posición
en la fuente y en el destino viene especificada por n. Si se declara una
constante como fuente, ésta se convierte internamente a código binario.
J Como declarar n
S n especifica las posiciones del bit fuente y del bit destino empleando datos
hexadecimales, como se explica a continuación:
n:H j 0 j
1
2
Posición del bit fuente
(rango: H0 a HF)
Posición del bit destino
(rango: H0 a HF)
n
Pos del bit
H0
H1
H2
H3
H4
H5
H6
H7
H8
H9
HA
HB
HC
HD
HE
HF
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 33
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F6 (DGT)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Transferencia de dígitos
Copia un número de digitos hexadecimales del registro fuente en la
posición deseada del registro de destino.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 6
(DGT)
DT
100
F6 DGT , DT 100 , H 0 , WY 0
S
n
Instrucción
D
X
0
H
0
WY
0
S
16 bits (constante o registro) con la informacion a procesar (fuente)
n
16 bits (constante o registro) que especifican la posición del dígito fuente y la
posición del dígito de destino así como el número de dígitos a copiar
D
16 bits empleados como registro de destino (destino)
J Operandos
Contacto
Operando
Temporizador/
Registro
Contador
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
A
A
A
A
n
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se copia el dígito hexadecimal 0 del registro de datos DT100 en el dígito hexadecimal 0 de WY0
cuando la entrada X0 está en ON.
Fuente [S]: H149
Pos del dígito
hexadecimal
3
2
1
0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1
X0: ON
Destino [D]: H8A9
Pos del dígito
hexadecimal
3
2
1
0
Bit position 15 · · 1211 · · 8 7 · · 4 3 · · 0
WY0
0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1
En este ejemplo, los 12 bits de mayor peso no cambian.
4 -- 34
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se copia un número de los
dígitos hexadecimales de S en D, la posición de los dígitos en S y en D y el
número de dígitos lo especifica n.
J Dígitos
S Son unidades de 4 bits empleados en el manejo de datos.
S Con esta instrucción , los datos de 16 bits se separan en 4 dígitos. Empezando desde los cuatro
bits de menor peso, se tendrían el dígito 0, el dígito 1, el dígito 2 y el dígito 3.
Dato de 16 bits
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1
Dígito hexadecimal 3
Dígito hexadecimal 1
Dígito hexaDígito hexadecimal 2
decimal 0
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
J Como declarar n
S n especifica la posición del dígito hexadecimal fuente, el número de dígitos y la posición del dígito
hexadecimal de destino, empleando datos hexadecimales.
n:H j j j
1
2
3
Fuente: Posición del primer dígito hexadecimal (H0 a H3)
H0: Dígito hexadecimal 0
H1: Dígito hexadecimal 1
H2: Dígito hexadecimal 2
H3: Dígito hexadecimal 3
Número de dígitos hexadecimales a copiar (H0 a H3)
H0: Copia 1 dígito hexadecimal (4 bits)
H1: Copia 2 dígitos hexadecimales (8 bits)
H2: Copia 3 dígitos hexadecimales (12 bits)
H3: Copia 4 dígitos hexadecimales (16 bits)
Destino: Posición del primer dígito hexadecimal (H0 a H3)
H0: Dígito hexadecimal 0
H1: Dígito hexadecimal 1
H2: Dígito hexadecimal 2
H3: Dígito hexadecimal 3
4 -- 35
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de copia de dígitos hexadecimales
S Se pueden realizar las siguientes transferencias de dígitos configurando n como se explica a
continuación.
(1) Copia del dígito hexadecimal 1 de la fuente en el dígito
hexadecimal 1 del destino:
n: H 1 0 1
dígito
3
2
1
0
dígito
3
2
1
0
dígito
3
2
1
0
dígito 3
2
1
0
dígito 3
2
1
0
dígito 3
2
1
0
dígito 3
2
1
0
dígito 3
2
1
0
dígito 3
2
1
0
2
1
0
S
Fuente: primer dígito hexadecimal : 1
Copia 1 dígito hexadecimal (4 bits)
Destino: primer dígito hexadecimal: 1
(2) Copia del dígito hexadecimal 3 de la fuente en el dígito
hexadecimal del destino:
n: H 0 0 3 (Forma abreviada H3)
D
S
Fuente: primer dígito hexadecimal: 3
Copia 1 dígito hexadecimal (4 bits)
Destino: primer dígito hexadecimal: 0
(3) Copia de varios dígitos hexadecimales, dígitos hexadecimales
2 y 3, de la fuente en los dígitos de destino 2 y 3:
D
S
n: H 2 1 2
Fuente: primer dígito hexadecimal: 2
Copia 2 dígitos hexadecimales (8 bits)
D
Destino: primer dígito hexadecimal: 2
(4) Copia de varios dígitos hexadecimales, dígitos hexadecimales
0 y 1, de la fuente en los dígitos de destino 2 y 3:
S
n: H 2 1 0
Fuente: primer dígito hexadecimal: 0
Copia 2 dígitos hexadecimales (8 bits)
D
Destino: primer dígito hexadecimal: 2
(5) Copia de 4 dígitos hexadecimales (del dígito 0 al 3) de la
fuente en los cuatro dígitos (dígitos del 0 al 3) de destino:
S
n: H 1 3 0
Fuente: primer dígito hexadecimal: 0
Copia 4 dígitos hexadecimales (16 bits)
Destino: primer dígito hexadecimal: 1
4 -- 36
D
dígito 3
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F10 (BKMV)
Concepto
Transferencia de bloques
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Copia un bloque de datos en un área especificada a partir del registro
especificado. 4
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 10
(BKMV)
DT
0
X0
10
F10 BKMV , DT 0 , DT 3 , DT 11
S1
S2
Instrucción
D
X
0
DT
3
DT
11
S1
16 bits iniciales de la zona de almacenamiento de la información fuente
S2
16 bits finales de la zona de almacenamiento de la información fuente
D
16 bits iniciales de la zona de almacenamiento de destino
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A N/A N/A N/A
A
S2
A
A
A
A
A
A
N/A N/A N/A N/A
A
N/A A
A
A
A
A
N/A N/A N/A N/A
A
D
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Copia el bloque de información comprendido entre los registros de datos DT0 y DT3 en el área
comprendida entre DT11 y DT14, comenzando por el registro DT11 cuando la entrada X0 está en
ON.
DT
[S1] 0
1
2
[S2] 3
4
DT
K
10
K
11
K
12
K
K
13
14
X0: ON
10
Bloque de 11
inormación 12
(fuente)
13
14
K
0
K
0
K
0
K
K
0
0
Ejecución de F10
DT
[S1] 0
1
2
[S2] 3
4
DT
K
10
K
11
K
K
12
13
K
14
10
11
12
13
14
K
0
K
10
K
K
11
12
K
13
[D]
4 -- 37
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se copia el bloque de información comprendido entre S1 y S2 en el bloque
que comienza con los 16 bits especificados por D, cuando la condición de
ejecución está en ON.
J Condiciones de bandera
S Bandera de error (R9007): Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite.
-- S1 > S2
-- el bloque de información fuente es mayor que el área de destino donde se
quiere copiar.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- S1 > S2
-- el bloque de información fuente es mayor que el área de destino donde se
quiere copiar.
-- La dirección del error se guarda en DT9018.
. Notas
D Las áreas S1 y S2 deben cumplir las siguiente condiciones:
-- ser el mismo tipo de operando.
-- se tiene que cumplir la relación S1
S2. Si S1 > S2, se produce un
error.
D Si se especifica el mismo tipo de operando como fuente y destino:
-- no se ejecuta la instrucción si la dirección de S1 coincide con la de D.
-- si S1 < D
S2, se escribe encima del bloque de información fuente.
-- si S1 < D, los datos fuente se copian desde el final al inicio del destino
D (DT4
DT3
DT2
DT1).
DT
[S1] 0
1
2
[S2] 3
4
DT
K
10
K
11
K
K
12
13
K
14
0
1
2
3
4
4
3
2
1
K
10
K
10
K
K
11
12
K
13
[D]
-- si S1 > D, los datos fuente se copian desde el comienzo al final del
destino D (DT0
DT1
DT2).
DT
0
1
[S1] 2
3
[S2] 4
4 -- 38
DT
K
10
K
11
K
12
K
K
13
14
1
2
3
0
1
2
3
4
K
12
K
13
K
14
K
K
13
14
[D]
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F11 (COPY)
Concepto
Copia de bloques
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Copia 16 bits en el área de datos especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 11
X0
10
F11 COPY , DT 1 , DT10 , DT14
D1
S
Instrucción
D2
X
0
(COPY)
DT
1
DT
10
DT
14
S
16 bits (constante o registro) con la informacion a procesar (fuente)
D1
16 bits iniciales de la zona de almacenamiento de destino
D2
16 bits finales de la zona de almacenamiento de destino
J Operandos
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
D1
N/A A
A
A
A
A
N/A N/A N/A N/A
A
D2
N/A A
A
A
A
A
N/A N/A N/A N/A
A
S
A
Temporizador/
Registro
Contador
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S El contenido del registro de datos DT1 se copia repetidamente en el bloque de registros
comprendido entre los registros DT10 y DT14 cuando la entrada X0 está en ON.
DT
0
[S] 1
2
3
4
DT
K
K
10
11
K
K
12
13
K
14
X0: ON
10
11
12
13
14
K
K
0
0
K
K
0
0
K
0
[D2]
ejecución de F11
DT
0
[S] 1
2
3
4
[D1]
DT
K
K
10
11
K
K
12
13
K
14
10
11
12
13
14
K
K
11
11
K
K
11
11
K
11
[D1]
[D2]
4 -- 39
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Los 16 bits de la fuente (S) se copian repetidamente en las diferentes áreas
de 16 bits comprendidas entre D1 y D2 cuando la condición de ejcución está
en ON.
J Condiciones de bandera
S Bandera de error (R9007): Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite.
-- D1 > D2
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- D1 > D2
-- La dirección del error se guarda en DT9018.
. Notas
D Las áreas D1 y D2 deben cumplir las siguiente condiciones:
-- ser el mismo tipo de operando.
-- se tiene que cumplir la relación D1
se produce un error.
D2. Si D1 > D2,
D Cuando D1=D2, los 16 bits de la fuente se copian en los 16
bits especificados por destino.
4 -- 40
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F15
Concepto
(XCH)
Intercambio de 16 bits
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Intercambia áreas de 16 bits
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 15
X0
10
Instrucción
F15 XCH , DT 0 , DT 12
X
0
(XCH)
DT
0
DT
12
D2
D1
D1
16 bits a intercambiar
D2
16 bits a intercambiar
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
D1
N/A
A
A
A
A
A
A
A
N/A
N/A
A
D2
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se intercambian los contenidos de los registros DT0 y DT12 cuando la entrada X0 está en ON.
DT
[D1] 0
1
2
3
4
DT
K
10
K
K
K
11
12
13
K
14
X0: ON
10
11
12
13
14
K
20
K
K
K
21
22
23
K
24
ejecución F15
DT
[D1] 0
1
2
3
4
[D2]
DT
K
K
K
K
22
11
12
13
K
14
10
11
12
13
14
K
K
K
K
20
21
10
23
K
24
[D2]
4 -- 41
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se intercambian los contenidos de las áreas de 16 bits especificadas por D1
y D2 cuando la condición de ejecución está en ON.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 42
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F16 (DXCH)
Concepto
Intercambio de 32 bits
5
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Intercambia áreas de 32 bits
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 16
R0
F16 DXCH , DT 0 , DT12
10
D1
R
0
(DXCH)
DT
0
DT
12
D2
D1
16 bits de menor peso de los 32 bits del dato a intercambiar
D2
16 bits de menor peso de los 32 bits del dato a intercambiar
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
D1
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
D2
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se intercambia el contenido de los registros DT1 y DT0 por el contenido de los registros de datos
DT13 y DT12 cuando R0 está en ON.
DT
[D1] 0
[D1+1] 1
2
3
4
DT
K
10
K
K
K
11
12
13
K
14
R0: ON
10
11
12
13
14
K
20
K
K
K
21
22
23
K
24
Ejecución F16
DT
[D1] 0
[D1+1] 1
2
3
4
[D2]
[D2+1]
DT
K
K
K
K
22
23
12
13
K
14
10
11
12
13
14
K
K
K
K
20
21
10
11
K
24
[D2]
[D2+1]
4 -- 43
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
. Nota
Cuando se procesan datos de 32 bits, los 16 bits de mayor peso
(D1+1, D2+1) se declaran automáticamente, al especificar los 16
bits de menor peso (D1, D2).
Descripción
S Las áreas de 32 bits declaradas por D1 y D2 se intercambian cuando la
condición de ejecución está en ON.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 44
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F17(SWAP)
Concepto
Intercambio de bytes de
mayor/menor peso
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Intercambia bytes de mayor peso con bytes de menor peso en el
registro especificado de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 17 (SWAP)
DT
R0
10
R
0
0
F17 SWAP , DT 0
D
D
Área de 16 bits cuyos bytes se intercambian
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
EV
DT
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se intercambian los bytes de mayor y menor peso del registro de datos DT0 cuando la entrada R0
está en ON.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
DT0
Hexadecimal
0
4
D
2
Byte de mayor peso (8-bit)
Byte de menor peso (8-bit)
R0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0
DT0
Hexadecimal
D
2
0
4
Descripción
S Cuando la condición de ejecución está en ON, se intercambian el byte de
mayor peso (8 bits de mayor peso) y el byte de menor peso (8 bits de menor
peso) del área de 16 bits especificada por D.
4 -- 45
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 46
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Suma de datos de 16 bits
[D + S → D]
F20 (+)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Suma dos datos de 16 bits y almacena el resultado en el registro
donde estaba el primer sumando.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
ST
11
F 20
F20 +, DT 0 , DT 2
10
S
Instrucción
X
0
(+ )
DT
0
DT
2
D
S
16 bits (constante o registro) con el segundo sumando
D
16 bits que contienen el primer sumando y después de la ejecución almacena
el resultado de la suma
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se suman los registro de datos DT2 y DT0 cuando la entrada X0 está en ON. El resultado de la
suma se almacena en DT2.
Primer sumando[D]: K8
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT2
Segundo sumando [S]: K4
+
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
DT0
X0: ON
Resultado [D]: K12
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
Descripción
S Se suman los datos de 16 bits almacenados en S y D. El resultado se
almacena en D.
Primer sumando
(D)
Segundo sumando
+
(S)
La condición de
ejecución está en ON
Resultado
(D)
4 -- 47
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S = flag (R900B):
Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow o underflow).El rango para que no ocurrra
desbordamiento es: K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D Si se produce desbordamiento en el resultado calculado, se
activará el relé interno especial R9009. Para evitarlo se puede
emplear la instrucción F21 (D+) (suma de 32 bits). Al emplear
esta intrucción en lugar de F20 (+), se deben convertir los
sumandos de 16 bits a 32 bits empleando la instrucción F89
(EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé interno especial R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
D Si se desea evitar la destrucción del primer sumando cuando
se almacena el resultado de la suma en el registro que lo
contiene se debe emplear la instrucción F22 (+).
4 -- 48
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F21(D+)
Concepto
Paso
Suma de 32 bits
[(D+1, D) + (S+1, S) → (D+1, D)]
7
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Suma dos datos de 32 bits y almacena el resultado en el registro
donde estaba el primer sumando.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 21
X0
F21 D+ , DT 0 ,
10
DT 2
S
Instrucción
X
0
(D+)
DT
0
DT
2
D
S
Constante de 32 bits o 16 bits de menor peso del área de 32 bits, empleados
como segundo sumando
D
16 bits de menor peso del área de 32 bits empleados para almacenar el primer
sumando y después de la ejecución de la instrucción almacena el resultado de
la suma
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, se suman los registros DT3 y DT2 con DT1 y DT0. El resultado
de la suma se almacena en los registros de datos DT3 y DT2.
Primer sumando [D+1, D]: K1312896
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
DT3
16 bits de mayor peso
Segundo sumando [S+1, S]: K558144
+
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
16 bits de mayor peso
Resultado [D+1, D]: K1871040
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT3
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
DT2
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
16 bits de menor peso
4 -- 49
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se suman las áreas de datos de 32
bits especificadas por S y por D. El resultado de la suma se almacena en D+1
y D.
Primer sumando
Segundo sumando
Condición de ejecución
en ON
S:
16 bits de menor peso
D:
16 bits de menor peso
+
S+1: 16 bits de mayor peso
D+1: 16 bits de mayor peso
Resultado
D:
16 bits de menor peso
D+1: 16 bits de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S = flag (R900B):
Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow o underflow).El rango para que no ocurrra
desbordamiento es: K--2147483648 a K2147483647 (H80000000 a
H7FFFFFFF).
. Notas
D Cuando se procesan datos de 32 bits, los 16 bits de mayor
peso (S+1, D+1) se declaran automáticamente, al especificar
los 16 bits de menor peso (S, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
D Si se desea evitar la destrucción del primer sumando cuando
se almacena el resultado de la suma en el registro que lo
contiene se debe emplear la instrucción F23 (D+).
4 -- 50
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
Suma de 16 bits con destino
especificado [S1 + S2 → D]
F22 (+)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Suma dos datos de 16 bits y almacena el resultado en el registro
especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 22
X0
10
F22+, DT 0 ,
DT
DT 1 , DT 100
S1
S2
Instrucción
D
S1
16 bits (constante o registro) con el primer sumando
S2
16 bits (constante o registro) con el segundo sumando
D
16 bits donde se almacena el resultado
X
0
(+ )
0
DT
1
DT
100
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON se suman los contenidos de los registros de datos DT0 y DT1. El
resultado de la suma se almacena en el registro de datos DT100.
Primer sumando [S1]: K8
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
Segundo sumando [S2]: K4
+
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Resultado [D]: K12
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
4 -- 51
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se suman los datos de 16 bits almacenados en S1 y S2 cuando la condicón
de ejecución está en ON. El resultado de la suma se almacena en D.
Primer sumando
S1
Segundo sumando
+
S2
Condición de
ejecución en ON
Resultado
D
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S = flag (R900B):
Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow o underflow). El rango para que no ocurrra
desbordamiento es: K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si en la operación se produce desbordamiento (overflow o
underflow), se debe recomienda emplear la instrucción F23
(D+) (suma de 32 bits).
D Al emplear la intrucción F23 (D+) en lugar de F22 (+), se deben
convertir los sumandos de 16 bits a 32 bits empleando la
instrucción F89 (EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 52
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F23
Suma de 32 bits con destino especificado
[(S1+1, S1) + (S2+1, S2)
(D+) → (D+1, D)]
Concepto
Paso
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
11
Suma dos datos de 32 bits y almacena el resultado en el registro
especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 23
X0
F23 D+ , DT 0 , DT 100 , DT 200
10
S2
S1
Instrucción
D
X
0
(D+)
DT
0
DT
100
DT
200
S1
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits
empleados como primer sumando
S2
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits
empleados como segundo sumando
D
16 bits de menor peso del área de 32 bits donde se almacena el resultado
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
S1
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
N/A
S2
A
A
A
A
A
A
A
N/A
D
N/A
A
A
A
A
A
A
N/A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se suman los contenidos de los registros de datos DT1 y DT0 con los de los registros DT101 y
DT100 cuando la entrada X0 está en ON. El resultado de la suma se almacena en los registros de
datos DT201 y DT200.
Primer sumando [S1+1, S1]: K1312896
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
16 bits de mayor peso
Segundo sumando [S2+1, S2]: K558144
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
+
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT101
16 bits de mayor peso
16 bit de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
DT100
X0: ON
16 bit de menor peso
Resultado [D+1, D]: K1871040
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT201
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT200
1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0
16 bit de menor peso
4 -- 53
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando lla condición de ejecución está en ON, se suman los dos datos de 32
bits almacenados en S y S2. El resultado de la suma se almacena en D+1 y
D.
Primer sumando
Segundo sumando
Condición de ejecución
en ON
S2: 16 bits de menor peso
S1: 16 bits de menor peso
+
S2+1: 16 bits de mayor peso
S1+1: 16 bits de mayor peso
Resultado
D:
16 bits de menor peso
D+1: 16 bits de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S = flag (R900B):
Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow o underflow). El rango para que no ocurrra
desbordamiento es: K--2147483648 a K2147483647 (H80000000 a
H7FFFFFFF).
. Notas
D Cuando se procesan datos de 32 bits, los 16 bits de mayor
peso (S1+1, S2+2, D+1) se declaran automáticamente, al
especificar los 16 bits de menor peso (S1, S2, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 54
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Disponibilidad
Paso
5
Resta de 16 bits
[D -- S → D]
F25 (--)
Concepto
Todos FP0s /
FP--Ms y FP1s
5
Resta datos de 16 bits y almacena el resultado de la resta en el área
del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 25
X0
F25 --, DT 0 , DT 2
10
X
0
(-- )
DT
0
DT
2
D
S
S
16 bits (constante o registro) para almacenar el sustraendo
D
16 bits para almacenar el minuendo y después de la operación almacena el
resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON se resta el contenido del registro de datos DT0 del contenido de DT2.
El resultado de la resta se almacena en el registro de datos DT2.
S Ejemplo 1: K16 -- K4
D:
DT2
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
S Ejemplo 2: K3 -- K5
K16
D:
DT2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
-S:
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
K4
-S:
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
=
D:
DT2
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
K12
K3
K5
=
D:
DT2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
K--2
4 -- 55
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se resta el dato de 16 bits
almacenado en S al dato que contiene D. El resultado de la resta se
almacena en D.
Sustraendo
Minuendo
(D)
--
(S)
Condición de ejecución Resultado
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la resta
supera los 16 bits (overflow o underflow).El rango para que no ocurrra
desbordamiento es: K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado calculado, se
activará el relé interno especial R9009. Para evitarlo se puede
emplear la instrucción F26 (D--) (resta de 32 bits). Al emplear
esta intrucción en lugar de F25 (--), se deben convertir los
operandos de 16 bits a 32 bits empleando la instrucción F89
(EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
D Si se quiere evitar la destrucción del dato que actúa como
minuendo, cuando se almacena el resultado de la resta, se
debe emplear la instrucción F27(--).
4 -- 56
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Resta de 32 bits
[(D+1, D) -- (S+1, S) → (D+1, D)]
F26 (D--)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Resta datos de 32 bits y almacena el resultado de la resta en el área
del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 26
X0
F26 D-- , DT 0 ,
10
S
Instrucción
DT 2
X
0
(D--)
DT
0
DT
2
D
S
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits empleada
como sustraendo
D
16 bits de menor peso del área de 32 bits donde se almacena el minuendo y
después de la operación el almacena el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se resta el contenido de los registros de datos DT1 y DT0 al contenido de los registros de datos
DT3 y DT2 cuando la entrada X0 está en ON. El resultado de la resta se almacena en los registros
de datos DT3 y DT2.
Minuendo [D+1, D]: K16778109
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
DT3
16 bits de mayor peso
Sustraendo [S+1, S]: K524740
DT1
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
16 bits de mayor peso
Resultado [D+1, D]: K16253369
DT3
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0
16 bits de mayor peso
DT2
--
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1
16 bits de menor peso
DT0
X0: ON
DT2
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0
16 bits de menor peso
15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1
16 bits de menor peso
4 -- 57
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Se resta el dato de 32 bits especificado por S al dato especificado por D
cuando la condición de ejecución está en ON. El resultado de la resta se
almacena en D+1 y D.
Minuendo
Sustraendo
Condición de ejecución
en ON
S:
16 bits de menor peso
D:
16 bits de menor peso
+
S+1: 16 bits de mayor peso
D+1: 16 bits de mayor peso
Resultado
D:
16 bits de menor peso
D+1: 16 bits de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la resta
supera los 16 bits (overflow o underflow). El rango para que no ocurrra
desbordamiento es: K--2147483648 a K2147483647 (H80000000 a
H7FFFFFFF).
. Notas
D Cuando se procesan datos de 32 bits, los 16 bits de mayor
peso (S+1, D+1) se declaran automáticamente, al especificar
los 16 bits de menor peso (S, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
D Si se quiere evitar la destrucción del dato que actúa como
minuendo, cuando se almacena el resultado de la resta, se
debe emplear la instrucción F28(D--)
4 -- 58
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F27 (--)
Concepto
Paso
Resta de 16 bits con destino
especificado
[S1 -- S2 → D]
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Resta datos de 16 bits y almacena el resultado en el área especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 27
F27 --, DT 0 , DT 1 , DT 100
S1
S2
Instrucción
D
X
0
(--)
DT
0
DT
1
DT
100
S1
16 bits (constante o registro) empleados como minuendo
S2
16 bits (constante o registro) empleados como sustraendo
D
16 bits empleados como área de almacenamiento del resultado
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se resta el contenido del registro de datos DT1 del contenido de DT0 cuando la entrada X0 está en
ON. El resultado de la resta se almacena en el registro de datos DT100.
<Ejemplo 1>
<Ejemplo 2>
Minuendo [S1]: K16
Minuendo [S1]: K3
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Sustraendo [S2]: K4
--
Sustraendo [S2]: K5
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Resultado [D]: K12
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
Resultado [D]: K--2
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
4 -- 59
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Resta el dato de 16 bits especificado por S2 al dato de 16 bits especificado
por S1 cuando la condición de ejecución está en ON. El resultado de la resta
se almacena en D.
Minuendo
(S1)
Sustraendo
--
(S2)
Condición de ejecución Resultado
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la resta
supera los 16 bits (overflow o underflow). El rango para que no ocurrra
desbordamiento es: K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si en la operación se produce desbordamiento (overflow o
underflow), se debe recomienda emplear la instrucción F28
(D--) (suma de 32 bits).
D Al emplear la intrucción F28 (D--) en lugar de F27 (--), se deben
convertir los sumandos de 16 bits a 32 bits empleando la
instrucción F89 (EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 60
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F28
Resta de 32 bits con destino especificado Paso
[(S1+1, S1) -- (S2+1, S2)
11
(D--) → (D+1, D)]
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Se restan datos de 32 bits y el resultado de la resta se almacena en el
destino especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 28
(D--)
DT
100
DT
200
DT
0
X0
F28 D-- , DT 100 , DT 200 , DT 0
10
S1
S2
Instrucción
D
X
0
S1
Constante de 32 bits o los 16 bits de menor peso del dato de 32 bits
empleados como minuendo
S2
Constante de 32 bits o los 16 bits de menor peso del dato de 32 bits empleados
como sustraendo
D
16 bits de menor peso del área de 32 bits empleada para el almacenamiento
del resultado
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se restan los contenidos de los registros de datos DT201 y DT200 al dato almacenado en los
registros DT101 y DT100 cuando la entrada X0 está en ON. El resultado de la resta se almacena
en los registros de datos DT1 y DT0.
Minuendo [S1+1, S1]: K16809984
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
16 bits de mayor peso
Sustraendo [S2+1, S2]: K525312
16 bits de menor peso
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT201
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
16 bits de mayor peso
Resultado [D+1, D]: K16284672
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT200
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
16 bits de menor peso
4 -- 61
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se restan los 32 bits
especificados por S2 a los 32 bits especificados por S1. El resultado de la
resta se almacena en D+1 y D.
Minuendo
Sustraendo
Condición de ejecución
en ON
S2: 16 bits de menor peso
S1: 16 bits de menor peso
+
S2+1: 16 bits de mayor peso
S1+1: 16 bits de mayor peso
Resultado
D:
16 bits de menor peso
D+1: 16 bits de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Error flag (R9008):
Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre
un error de operación, en este caso cuando el modificador de índice excede
el límite. La dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la resta
supera los 16 bits (overflow o underflow).El rango para que no ocurrra
desbordamiento es: K--2147483648 a K2147483647 (H80000000 a
H7FFFFFFF).
. Notas
D Cuando se procesan datos de 32 bits, los 16 bits de mayor
peso (S1+1, S2+2, D+1) se declaran automáticamente, al
especificar los 16 bits de menor peso (S1, S2, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 62
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Multiplicación de 16 bits con
destino especificado
[S1 S2 → (D+1, D)]
F30 (*)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Multiplica datos de 16 bits y almacena el resultado en el área
especificada de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F
X0
10
F30 *, DT 0 , K 2 ,
30
0
K
D
0
(*)
DT
DT 100
S2
S1
X
2
DT
100
S1
16 bits (registro o constante) empleados como multiplicando
S2
16 bits (registro o constante) empleados como multiplicador
D
16 bits de menor peso del área de 32 bits empleada para almacenar el
resultado de la multiplicación
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la multiplicación del contenido del registro de datos DT0 por la constante decimal K2
cuando la entrada X0 está en ON.
Multiplicando [S1]: K8
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
Multiplicador [S2]: K2
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
K2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Resultado [D+1, D]: K16
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 bits de mayor peso
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
16 bits de meno peso
S Se almacenan los 16 bits de mayor peso del resultado en el área de memoria especificada
(DT100), y los 16 bits de mayor peso se almacenan en el área de memoria siguiente (DT101).
4 -- 63
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se multiplica el dato de 16 bits
especificado por S1 por el dato de 16 bits especificado por S2. El resultado
de la operación se almacena en D+1 y D (área de 32 bits).
Multiplicando
(S1)
MultiplicadorLa condición de ejecución Resultado
en ON
(S2)
D:16 bits de menor peso
D+1:16 bits de mayor peso
S El resultado de la operación se almacena en un área de 32 bits.
S Los 16 bits de mayor peso (D+1) se definen automáticamente una vez que se
especifican los de 16 bits de menor peso (D).
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 64
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F31(D*)
Concepto
Multiplicación de 32 bits con destino
especificado [(S1+1, S1)¢
(S2+1, S2) → (D+3, D+2, D+1, D)]
Paso
Disponibilidad
11
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
Multiplica datos de 32 bits y almacena el resultado en el área
especificada de 64 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 31
X0
10
F31 D* , DT 0 , DT 100 , DT 200
S2
S1
Instrucción
D
X
0
(D*)
DT
0
DT
100
DT
200
S1
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits empleados
como multiplicando
S2
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits
empleados como multiplicador
D
Los 16 bits de menor peso del área de 64 bits empleada para almacenar el
resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la multiplicación los contenidos de los registros DT1 y DT0 por los contenidos de los
registros de datos DT101 y DT100 cuando la entrada X0 está en ON.
S El resultado de la multiplicación se almacena en un área de memoria de 64 bits. El resultado se
almacena en los registros de datos de DT200 a DT203 comenzando por los 16 bits de menor peso.
Multiplicando [S1+1, S1]: K1638411
DT1
DT0
16 bits de mayor peso 16 bits de menor peso
Multiplicador [S2+1, S2]: K458761
DT101
DT100
16 bits de mayor peso 16 bits de menor peso
Resultado [D+3, D+2, D+1, D]: K751639068771
DT203
DT202
DT201
X0: ON
DT200
4 -- 65
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Multiplica el dato de 32 bits especificado por S1 por el dato de 32 bits de S2
cuando la condición de ejecución está en ON.
El resultado de la operación se almacena en D+3, D+2, D+1 y D (área de 64
bits).
Multiplicador
Multiplicando
S1:16 bits de menor peso
S1+1: 16 bits de mayor peso
S2: 16 bits de menor peso
S2+1:16 bits de mayor peso
La condición de ejecución
en ON
Resultado (64-bits)
D
D+1
D+2
D+3
S El resultado de la operación se almacena en un área de 64 bits.
S Cuando se procesan datos de 32 bits, los 16 bits de mayor peso (S1+1, D+1)
se declaran automáticamente, al especificar los 16 bits de menor peso (S1,
D).
Las áreas (D+3, D+2, D+1) se declaran automáticamente al especificar los 16
bits de menor peso (D).
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 66
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F32 (%)
Concepto
Paso
División de 16 bits con destino
especificado
[S1/S2 → D… (DT9015)]
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Realiza la división de datos de 16 bits y almacena el cociente en el
área especififcada y el resto en el registro especial de datos DT9015.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 32
(% )
DT
100
X0
10
F32 % , DT 100 , K 4 , DT 0
S2
S1
Instrucción
D
X
0
K
4
DT
0
S1
16 bits (constante o registro) empleados como dividendo
S2
16 bits (constante o registro) empleados como divisor
D
16 bits donde se almacena el cociente, (el resto se almacena en el registro
especial de datos DT9015)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Divide el contenido del registro de datos DT100 entre la constante decimal K4 cuando X0 está en
ON. El cociente se almacena en el registro de datos DT0 y el resto en el registro especial de datos
DT9015.
Dividendo [S1]: K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
DT100
Divisor [S2]: K4
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
K4
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Cociente [D]: K3
X0: ON
Resto: K3
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 . . . DT9015
4 -- 67
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Realiza la división del dato de 16 bits especificado por S1 entre el dato de 16
bits definido por S2 cuando la condición de ejecución está en ON.
El cociente se almacena en D y el resto se almacena en el registro especial
de datos DT9015.
Divisor
Dividendo
(S1)
▐
(S2)
La condición de ejecución Cociente
en ON
(D). . . .
Resto
(DT9015)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el valor negativo mínimo
K-32768 (H8000) se divide entre K-1 (HFFFF).
. Notas
D Si se produce desbordamiento en el resultado calculado, se
activará el relé interno especial R9009. Para evitarlo se puede
emplear la instrucción F33 (D%) (división de 32 bits). Al
emplear esta intrucción en lugar de F32 (%), se deben
convertir los operandos de 16 bits a 32 bits empleando la
instrucción F89 (EXT).
4 -- 68
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F33
Concepto
División de 32 bits con destino especificado
[(S1+1, S1)/(S2+1, S2) →
(D%) (D+1, D)…(DT9016, DT9015)]
Paso
Disponibilidad
11
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
Realiza la división de datos de 32 bits y almacena el cociente en el
área especificada y el resto en los registros especiales de datos
DT9016 y DT9015.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
10
ST
11
F 33
X0
F33 D% , DT 200 , DT 100 , DT 0
S1
S2
Instrucción
D
X
0
(D%)
DT
200
DT
100
DT
0
S1
Constante de 32 bits o los 16 bits de menor peso del dato de 32 bits
empleados como dividendo
S2
Constante de 32 bits o los 16 bits de menor peso del dato de 32 bits empleados
como divisor
D
16 bits de menor peso del área de 32 bits empleados para almacenar el
cociente (el resto se almacena en los registros de datos especiales DT9016 y
DT9015)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Divide el contenido de los registros de datos DT201 y DT200 entre el contenido de los registros de
datos DT101 y DT100 cuando la entrada X0 está en ON. El cociente se almacena en los registros
de datos DT1 y DT0 y el resto se almacena en los registros de datos especiales DT9016 y
DT9015.
4 -- 69
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Dividendo [S1+1, S1]: K16908416
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT201
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT200
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
16 bits de mayor peso
16 bits de menor peso
Divisor [S2+1, S2]: K589828
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
16 bits de mayor peso
X0: ON
Cociente [D+1, D]: K28
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Resto: K393232
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0
16 bits de mayor peso
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT9016
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT9015
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
16 bits de mayor peso
16 bits de menor peso
Descripción
S Cuando la condición de ejecución está en ON, el dato de 32 bits especificado
por S1 se divide entre el dato de 32 bits especificado por S2. El cociente se
almacena en D+1 y D y el resto en se guarda en en los registros de datos
especiales DT9016 y DT9015.
Divisor
Dividendo
S1:16 bits de menor peso
S1+1:16 bits de mayor peso
Cociente
D:16 bits de mayor peso
D+1:16 bits de mayor peso
▐
Condición de
S2:16 bits de menor peso
ejecución en ON
S2+1:16 bits de mayor peso
Resto
DT9015
DT9016
S Cuando se procesan datos de 32 bits, los 16 bits de mayor peso (S1+1,
S2+1, D+1) se declaran automáticamente, al especificar los 16 bits de menor
peso (S1, S2, D).
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el valor negativo mínimo
K-2147483648 (H80000000) se divide entre K-1 (HFFFFFFFF).
4 -- 70
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Incremento en 1 en registros
de 16 bits [D + 1 → D]
F35 (+1)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Añade 1 a datos de 16 bits y almacena el resultado en el mismo área.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 35
X
DT
X0
10
0
(+1)
0
F35 +1 , DT 0
D
D
Dato de 16 bits a incrementar en 1
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Suma 1 al contenido del registro de datos DT0 cuando la entrada X0 está en ON. El resultado se
almacena en el mismo registro de datos.
Dato inicial [D]: K9
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
X0: ON (+1)
Resultado [D]: K10
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
Descripción
S Suma 1 al dato de 16 bits especificado por D cuando la condición de
ejecución está en ON. El resultado se almacena en D.
Dato inicial
(D)
+
1
Condición de ejecución
en ON
Resultado
(D)
4 -- 71
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow).El rango para que no ocurrra desbordamiento
es: K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se activará el
relé interno especial R9009. Para evitarlo se puede emplear la
instrucción F36 (D+1) (incremento en 1 en registros de 32
bits). Al emplear esta intrucción en lugar de F35 (+1), se debe
convertir el dato de 16 bits a 32 bits empleando la instrucción
F89 (EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 72
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F36
Concepto
Incremento en 1 en registros de
32 bits
(D+1)
[(D + 1, D) + 1 → (D + 1, D)]
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Añade 1 a datos de 32 bits y almacena el resultado en el mismo área.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 36
X
0
(D+1)
DT
X0
10
0
F36 D+1 , DT 0
D
D
16 bits de menor peso del dato de 32 bits a incrementar en 1
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Incrementa en 1 el contenido de los registros de datos DT1 y DT0 cuando la entrada X0 está en
ON. El resultado se almacena en los mismos registros de datos DT1 y DT0.
Dato inicial [D+1, D]: K131081
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT1
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
DT0
X0: ON (+1)
16 bits de menor peso
Resultado [D+1, D]: K131082
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT1
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
DT0
16 bits de menor peso
4 -- 73
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Incrementa en 1 el dato de 32 bits especcificado por D cuando la condición
de ejecución está en ON. El resultado se almacena en D+1 y D.
Dato inicial
(D+1, D)
+
1
Condición de ejecución
en ON
Resultado
(D+1, D)
S Cuando se procesan datos de 32 bits, los 16 bits de mayor peso (D1+1) se
declaran automáticamente, al especificar los 16 bits de menor peso (D).
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado de la suma
supera los 16 bits (overflow). El rango para que no ocurrra desbordamiento
es: K--2147483648 a K2147483647 (H80000000 a H7FFFFFFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 74
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
Decremento en 1 en registros
de 16 bits
[D -- 1 → D]
F37 (--1)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
3
Decrementa en 1 datos de 16 bits y almacena el resultado en el área
donde estaba almacenado el minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
Instrucción
10
ST
11
F 37
X
0
(--1 )
DT
X0
0
F37 --1 , DT 0
D
D
Dato de 16 bits a decrementar en 1
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Decrementa en 1 el contenido del registro de datos DT0 cuando la entrada X0 está en ON. El
resultado se almacena en el registro de datos donde estaba el minuendo (DT0).
Dato inicial [D]: K10
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
X0: ON (--1)
Resultado [D]: K9
Bit position 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
Descripción
S Decremento en 1 del dato de 16 bits especificado por D cuando la condición
de ejecución está en ON. El resultado se almacena en D.
Dato inicial
(D)
--
1
Condición de ejecución
en ON
Resultado
(D)
4 -- 75
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado del
decremento excede el rango de los 16 bits (underflow).El rango de 16 bits es:
K--32768 a K32768 (H8000 a H7FFF).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se activará el
relé interno especial R9009. Para evitarlo se puede emplear la
instrucción F38 (D--1) (decremento en 1 en registros de 32
bits). Al emplear esta intrucción en lugar de F37 (--1), se debe
convertir el dato de 16 bits a 32 bits empleando la instrucción
F89 (EXT).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 76
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F38 (D--1)
Concepto
Paso
Decremento en 1 en
registros de 32 bits
[(D+1, D) -- 1 → (D+1, D)]
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
3
Decrementa en 1 datos de 32 bits y almacena el resultado en el área
donde estaba almacenado el minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 38
X
DT
X0
0
(D--1)
0
F38 D--1 , DT 0
10
D
D
16 bits de menor peso del dato de 32 bits a decrementar en 1
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Decrementa en 1 el dato almacenado en los registros de datos DT1 y DT0 cuando la entrada X0
está en ON. El resultado se almacena en los registros de datos DT1 y DT0.
Dato inicial [D+1, D]: K131081
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
X0: ON (--1)
16 bits de menor peso
Resultado [D+1, D]: K131080
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT1
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
16 bits de menor peso
4 -- 77
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Decrementa en 1 el dato de 32 bits especificado por D cuando la condición
de ejecución está en ON. El resultado se almacena en D+1 y D.
Dato inicial
(D+1, D)
--
1
Condición de ejecución
en ON
Resultado
(D+1, D)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el resultado del
decremento excede el rango de los 16 bits (underflow). El rango para que no
ocurrra desbordamiento es: K--2147483648 a K2147483647 (H80000000 a
H7FFFFFFF).
. Notas
D Cuando se procesan datos de 32 bits, los 16 bits de mayor
peso (D+1) se declaran automáticamente, al especificar los 16
bits de menor peso (D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 78
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Suma de 4 dígitos
[D + S → D]
F40 (B+)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Suma datos en BCD de 4 dígitos ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área del primer sumando.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 40
X0
10
Instrucción
F40 B+, DT 10 , DT 2
X
0
(B+ )
DT
0
DT
2
D
S
S
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
segundo sumando
D
16 bits empleados para almacenar los 4 dígitos BCD del primer sumando y
después de la operación almacena el resultado de la suma
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se suman los contenidos de los registros de datos DT2 y DT0 cuando la entrada está en ON. El
resultado se almacena en el registro de datos DT2.
Primer sumando [D]: H8 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
BCD Hex
0
0
0
8
+
Segundo sumando [S]: H4 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
BCD Hex
0
0
0
4
Resultado [D]: H12 (BCD)
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
DT2
BCD Hex
0
0
1
2
4 -- 79
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se suman los 4 dígitos BCD
(16 bits) especificados por S con los 4 dígitos BCD especificados por D. El
resultado se almacena en
D.
Condición de ejecución
Resultado
Primer sumando Segundo sumando
(D)
+
(S)
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se activará el
relé interno especial R9009. Para evitarlo se puede emplear la
instrucción F41 (DB+) (suma de 8 dígitos en BCD).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
D Si no se desea sobreescribir el dato del primer sumando al
almacenar el resultada de la suma, se debe emplear la
instrucción F42 (B+).
4 -- 80
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
Suma de 8 dígitos
[(D+1, D) + (S+1, S) → (D+1, D)]
F41(DB+)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Suma datos en BCD de 8 dígitos ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área del primer sumando.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 41
X0
10
F41 DB+ , DT 0 , DT 2
S
Instrucción
X
0
(DB+)
DT
0
DT
2
D
S
8 dígitos en BCD empleados como segundo sumando, se epecifican los 16 bits
de menor peso (constante o registro) de los 32 bits que forman los 8 dígitos.
D
16 bits de menor peso del área de 32 bits (8 dígitos), empleados como primer
sumando y después de la operación almacenan el resultado.
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
4 -- 81
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Se suma el contenido de los registros de datos DT3 y DT2 al contenido de los registros DT1 y DT0
cuando la entrada X0 está en ON. El resultado de la suma se almacena en los registros de datos
DT3 y DT2.
Primer sumando [D+1, D]: H410008 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT3
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1
0
0
4
1
BCD Hex
16 bits de mayor peso
Segundo nivel [S+1, S]: H940004 (BCD)
+
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0
DT1
0
0
9
4
BCD Hex
16 bits de mayor peso
Result [D+1, D]: H1350012 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1
DT3
BCD Hex
0
1
3
5
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0
0
0
8
BCD Hex
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
DT0
0
0
0
4
BCD Hex
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
BCD Hex
0
0
1
2
16 bits de menor peso
Descripción
S Cuando la condición de ejecución está en ON, se suman los 8 dígitos BCD
(32 bits) especificados por S con los 8 dígitos BCD especificados por D.
El resultado se almacena en D+1 y D.
Primer sumando
Segundo sumando
Condición de ejecución
D: 4 dígitos de menor peso
ON
S:
4
dígitos
de
menor
peso
+
D+1: 4 dígitos de mayor peso
S+1: 4 dígitos de mayor peso
Resultado
(se puede emplear una constante)
D: 4 dígitos de menor peso
D+1: 4 dígitos de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
4 -- 82
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Cuando se procesan datos de 8 dígitos BCD, los 16 bits de
mayor peso de los 8 dígitos BCD (S+1, D) quedan definidos
automáticamente cuando se especifican los 16 bits de menor
peso (S, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si no se desea sobreescribir el primer sumando al almacenar
el resultada de la suma, se debe emplear la instrucción F43
(DB+).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 83
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Suma de 4 dígitos con destino
especificado [S1 + S2 → D]
F42 (B+)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Suma datos en BCD de 4 dígitos ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 42
X0
10
F42 B+, DT 0 , DT 1 , DT100
S1
S2
Instrucción
D
X
0
(B+)
DT
0
DT
1
DT
100
S1
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
primer sumando
S2
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
segundo sumando
D
4 dígitos BCD formados por 16 bits donde se almacena el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se suman los contenidos de los registros de datos DT0 y DT1 cuando la entrada X0 está en ON.
El resultado de la suma se amacena en en el registro de datos DT100.
Primer sumando [S1]: H8 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
BCD Hex
0
0
0
8
+
Segundo sumando [S2]: H4 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
BCD Hex
0
0
0
4
Resultado [D]: H12 (BCD)
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
BCD Hex
0
0
1
2
4 -- 84
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se suman los 4 dígitos BCD
(16 bits) especificados por S1 con los 4 dígitos BCD especificados por S2.
El resultado se almacena en D.
Segundo sumando Condición de ejecución Resultado
Primer sumando
(S1)
+
(S2)
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se puede
emplear la instrucción F43 (DB+) (suma de 8 dígitos destino
especificado).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 85
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Suma de 8 dígitos con destino
especificado [(S1+1, S1) +
(S2+1, S2) → (D+1, D)]
F43 (DB+)
Concepto
Paso
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
11
Suma datos en BCD de 8 dígitos ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
ST
11
F 43
F43 DB+ , DT 0 , DT 2 , DT100
10
S1
S2
Instrucción
D
X
0
(DB+)
DT
0
DT
2
DT
100
S1
8 dígitos en BCD empleados como primer sumando, se epecifican los 16 bits de
menor peso (constante o registro) de los 32 bits que forman los 8 dígitos.
S2
8 dígitos en BCD empleados como segundo sumando, se epecifican los 16 bits
de menor peso (constante o registro) de los 32 bits que forman los 8 dígitos.
D
16 bits de menor peso de 8-dígitos BCD donde se almacena el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
4 -- 86
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Se suma el contenido de los registros de datos DT1 y DT0 con el contenido de los registros DT3 y
DT2 cuando la entrada X0 está en ON. El resultado de la suma se almacena en los registros de
datos DT101 y DT100.
Primer sumando [S1+1, S1]: H40008 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
DT1
0
0
0
4
BCD Hex
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
BCD Hex
0
0
0
8
+
16 bits de mayor peso
Segundo sumando [S2+1, S2]: H140094 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
DT3
0
0
1
4
BCD Hex
16 bits de mayor peso
Resultado [D+1, D]: H180102 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
0
0
1
8
BCD Hex
16 bits de mayor peso
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0
DT2
0
0
9
4
BCD Hex
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0
BCD Hex
0
1
0
2
16 bits de menor peso
Descripción
S Cuando la condición de ejecución está en ON, se suman los 8 dígitos BCD
(32 bits) especificados por S1 con los 8 dígitos BCD especificados por S2.
El resultado se almacena en D+1 y D.
Primer sumando
Segundo sumando
Condición de ejecución
en ON
S1: 4 dígitos de menor peso
S2: 4 dígitos de menor peso
+
S1+1: 4 dígitos de mayor peso
S2+1: 4 dígitos de mayor peso
(se puede emplear una constante)
Resultado
D: 4 dígitos de menor peso
D+1: 4 dígitos de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1,S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
4 -- 87
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Cuando se procesan datos de 8 dígitos BCD, los 16 bits de
mayor peso de los 8 dígitos BCD (S1+1, S2+1, D) quedan
definidos automáticamente cuando se especifican los 16 bits
de menor peso (S1, S2, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 88
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Resta de 4 dígitos
[D -- S → D]
F45 (B--)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Resta datos de 4 dígitos BCD ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 45
F45 B--, DT 0 , DT 2
S
Instrucción
X
0
(B--)
DT
0
DT
2
D
S
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
sustraendo
D
16 bits empleados para almacenar los 4 dígitos BCD del minuendo y después
de la operación almacena el resultado de la resta
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Se resta el contenido del registro de datos DT0 al contenido de DT2 cuando la entrada X0 está en
ON. El resultado se almacena en el registro de datos DT2..
Minuendo [D]: H16 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
BCD Hex
0
0
1
6
Sustraendo [S]: H4 (BCD)
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
BCD Hex
0
0
0
4
Resultado [D]: H12 (BCD)
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
DT2
BCD Hex
0
0
1
2
4 -- 89
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se restan los 4 dígitos BCD
(16 bits) especificados por S a los 4 dígitos BCD especificados por D. El
resultado se almacena en D.
Sustraendo
Minuendo
Condición de ejecución Resultado
(D)
--
(S)
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se puede
emplear la instrucción F46 (DB--) (resta de 8 dígitos en BCD).
D Si no se desea sobreescribir el minuendo al almacenar el
resultada de la resta, se debe emplear la instrucción F47 (B--).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 90
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Resta de 8 dígitos
[(D+1, D) -- (S+1, S) → (D+1, D)]
F46 (DB--)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Resta datos de 8 dígitos BCD ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 46
X0
10
F46 DB-- , DT 0 ,
Instrucción
DT 2
X
0
(DB--)
DT
0
DT
2
D
S
S
8 dígitos en BCD empleados como sustraendo, se epecifican los 16 bits de menor
peso (constante o registro) de los 32 bits que forman los 8 dígitos.
D
16 bits de menor peso del área de 32 bits que forman los 8 dígitos, empleados
como minuendo y después de la operación, para almacenar el resultado.
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
4 -- 91
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Se resta al contenido de los registros de datos DT3 y DT2 el contenido de los registros DT1 y DT0
cuando la entrada X0 está en ON. El resultado de la resta se almacena en los registros de datos
DT3 y DT2.
Minuendo [D+1, D]: H140094 (BCD)
Pos del bit 15 · · 1211 · · 8
· 7· 4 3 · · 0
DT3
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
BCD Hex
0
0
1
4
16 bits de mayor peso
Sustraendo [S+1, S]: H40008 (BCD)
16 bits de menor peso
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
DT1
BCD Hex
0
0
0
4
16 bits de mayor peso
Resultado [D+1, D]: H100086 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
DT3
BCD Hex
0
0
1
0
16 bits de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0
BCD Hex
0
0
9
4
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
BCD Hex
0
0
0
8
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0
DT2
BCD Hex
0
0
8
6
16 bits de menor peso
Descripción
S Cuando la condición de ejecución está en ON, se restan los 8 dígitos BCD
(32 bits) especificados por S a los 8 dígitos BCD especificados por D.
El resultado se almacena en D+1 y D.
Sustraendo
Minuendo
Condición de ejecución
en ON
D: 4 dígitos de menor peso
S:
4
dígitos
de
menor
peso
+
D+1: 4 dígitos de mayor peso
S+1: 4 dígitos de mayor peso
Resultado
(se puede emplear una constante)
D: 4 dígitos de menor peso
D+1: 4 dígitos de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflow), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
4 -- 92
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Cuando se procesan datos de 8 dígitos BCD, los 16 bits de
mayor peso de los 8 dígitos BCD (S+1, D) quedan definidos
automáticamente cuando se especifican los dígitos de menor
peso (S, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D Si no se desea sobreescribir el minuendo al almacenar el
resultada de la resta, se debe emplear la instrucción F48
(DB--).
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 93
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
Resta de 4 dígitos con destino
especificado [S1 -- S2 → D]
F47 (B--)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Resta datos de 4 dígitos BCD (un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 47
F47 B--, DT 0 , DT 2 , DT100
S2
S1
Instrucción
D
X
0
(B--)
DT
0
DT
2
DT
100
S1
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
minuendo
S2
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
sustraendo
D
4 dígitos BCD formados por 16 bits donde se almacena el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
4 -- 94
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Se resta el contenido del registro de datos DT2 al contenido de DT0 cuando la entrada X0 está en
ON. El resultado de la resta se amacena en en el registro de datos DT100.
Minuendo [S1]: H16 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0
BCD Hex
0
0
1
6
Sustraendo [S2]: H4 (BCD)
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
BCD Hex
0
0
0
4
X0: ON
Resultado [D]: H12 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
BCD Hex
0
0
1
2
Descripción
S Cuando la condición de ejecución está en ON, se resta a los 4 dígitos BCD
(16 bits) especificados por S1 los 4 dígitos BCD especificados por S2.
El resultado se almacena en D.
Condición de ejecución Resultado
Minuendo
Sustraendo
(S1)
--
(S2)
en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
4 -- 95
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se puede
emplear la instrucción F48 (DB--) (resta de 8 dígitos destino
especificado).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 96
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F48
Resta de 8 dígitos con destino especificado
[(S1+1, S1) -- (S2+1, S2) →
(DB--) (D+1, D)]
Concepto
Paso
Disponibilidad
11
Todos FP0s /
FP--Ms y FP1s
Resta datos en BCD de 8 dígitos ( un dígito en BCD está formado por 4
bits que representan un dígito decimal) y almacena el resultado en el
área especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 48
F48 DB-- , DT 0 , DT 2 , DT100
S1
S2
Instrucción
D
X
0
(DB--)
DT
0
DT
2
DT
100
S1
8 dígitos en BCD empleados como minuendo, se especifican los 16 bits de
menor peso (constante o registro) de los 32 bits que forman los 8 dígitos.
S2
8 dígitos en BCD empleados como sustraendo, se especifican los 16 bits de
menor peso (constante o registro) de los 32 bits que forman los 8 dígitos.
D
16 bits de menor peso de los 8-dígitos BCD donde se almacena el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
4 -- 97
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Se resta al contenido de los registros de datos DT1 y DT0 el contenido de los registros DT3 y DT2
cuando la entrada X0 está en ON. El resultado de la resta se almacena en los registros de datos
DT101 y DT100.
Minuendo [S1+1, S1]: H340026
(BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
0
0
3
4
BCD Hex
16 bits de mayor paso
Sustraendo [S2+1, S2]: H240014 (BCD)
DT0
BCD Hex
16 bits de menor peso
--
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT3
0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0
BCD Hex
0
0
2
4
Resultado [D+1, D]: H100012 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
BCD Hex
0
0
1
0
0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0
0
0
2
6
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT2
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
BCD Hex
0
0
1
4
X0: ON
16 bits de menor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT100
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
BCD Hex
0
0
1
2
16 bits de menor peso
Descripción
S Cuando la condición de ejecució está en ON, se restan a los 8 dígitos BCD
(32 bits) especificados por S1 los 8 dígitos BCD especificados por S2. El
resultado se almacena en D+1 y D.
Minuendo
Sustraendo
Condición de ejecución
en ON
S1: 4 dígitos de menor peso
S2: 4 dígitos de menor peso
+
S1+1: 4 dígitos de mayor peso
S2+1: 4 dígitos de mayor peso
Resultado
D: 4 dígitos de menor peso
D+1: 4 dígitos de mayor peso
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1,S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflows), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
4 -- 98
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Cuando se procesan datos de 8 dígitos BCD, los 16 bits de
mayor peso de los 8 dígitos BCD (S1+1, S2+1, D) quedan
definidos automáticamente cuando se especifican los dígitos
de menor peso (S1, S2, D).
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 99
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Multiplicación de 4 dígitos con
destino especificado
[S1 S2 → (D+1, D)]
F50 (B*)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Multiplicación de datos en BCD de 4 dígitos ( un dígito en BCD está
formado por 4 bits que representan un dígito decimal) y almacena el
resultado en el área de 32 bits especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 50
X0
F50 B*, DT 0 , DT 2, DT 100
10
S1
S2
Instrucción
D
X
0
(B*)
DT
0
DT
2
DT
100
S1
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
multiplicando
S2
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
multiplicador
D
16 bits de menor peso del área de 32 bits (8 dígitos BCD) donde se almacena
el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
4 -- 100
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Multiplica los contenidos de los registros de datos DT0 y DT1 cuando la entrada X0 está en ON. El
resultado se almacena en los registros de datos DT101 y DT100 .
Multiplicando [S1]: H8 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
BCD Hex
0
0
0
8
Multiplicador [S2]: H2 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT2
0
0
0
2
BCD Hex
X10: ON
Resultado [D+1, D]: H16 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DT101
BCD Hex
0
0
0
0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0
DT100
BCD Hex
0
0
1
6
4 dígitos de mayor peso
4 dígitos de menor peso
Descripción
S Cuando la condición de ejecución está en ON, se multiplican los 4 dígitos
BCD (16 bits) especificados por S1 por los 4 dígitos BCD especificados por
S2. El resultado de la multiplicación se almacena en D+1 y D (área de 32
bits).
Multiplicando
(S1)
Multiplicador
(S2)
Condición de
ejecución en ON
Resultado
(D+1, D)
S El resultado de la multiplicación se almacena en un área de memoria de 8
dígitos (32 bits).
S Los 16 bits de mayor peso (D+1) se determinan automáticamente una vez
que se han definido los 16 bits de menor peso (D).
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 101
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Multiplicación de 8 dígitos con destino especificado
[(S1+1, S1) ¢ (S2+1, S2)
(DB*)→ (D+3, D+2, D+1, D)]
F51
Concepto
Paso
Disponibilidad
11
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Multiplicación de datos en BCD de 8 dígitos (un dígito en BCD está
formado por 4 bits que representan un dígito decimal) y almacena el
resultado en el área de 64 bits especificada.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 51
F51 DB* , DT 0 , DT 2 , DT 100
S1
S2
Instrucción
D
X
0
(DB*)
DT
0
DT
2
DT
100
S1
8 dígitos en BCD, formados por 32 bits (constante o registro) empleados como
multiplicando
S2
8 dígitos en BCD, formados por 32 bits (constante o registro) empleados como
multiplicador
D
16 bits de menor peso del área de 64 bits (16 dígitos BCD) donde se almacena
el resultado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Multiplica el contenido de los registros de datos DT1 y DT0 por el contenido de los registros de
datos DT3 y DT2 cuando la entrada X0 está en ON. El resultado de la operación se almacena en
los registros de datos DT103, DT102, DT101 y DT100.
Multiplicando [S1+1, S1]: H60008 (BCD)
DT0
⎧
⎢
⎨
⎢
⎩
⎧
⎢
⎨
⎢
⎩
DT1
16 bits de mayor peso 16 bits de menor peso
Multiplicador [S2+1, S2]: H40002 (BCD)
DT2
⎧
⎢
⎨
⎢
⎩
⎧
⎢
⎨
⎢
⎩
DT3
16 bits de mayor peso 16 bits de menor peso
Resultado [D+3, D+2, D+1, D]: H2400440016
X0: ON
(BCD)
4 -- 102
DT102
DT101
DT100
⎧
⎢
⎢
⎨
⎢
⎢
⎩
DT103
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se multiplican los 8 dígitos
BCD (32 bits) especificados por S1 y los 8 dígitos BCD especificados por S2.
El resultado de la multiplicación se almacena en D+3, D+2, D+1 y D (área de
64 bits).
Multiplicador
S1:4 dígitos de menor peso
S1+1:4 dígitos de mayor peso
Multiplicador
S2:4 dígitos de menor peso
S2+1:4 dígitos de mayor peso
Condición de
ejecución en ON
Resultado
(64-bit)
D
D+1
D+2
D+3
S El resultado de la operación se almacena en un área de 64 bits.
S Cuando se emplean datos de 8 dígitos BCD, los 16 bits de mayor peso
(S1+1, S2+1) se definen automáticamente al especificar los 16 bits de menor
peso (S1, S2). Igualmente ocurre cuando se definen los 16 bits de menor
peso de destino (D), las áreas de mayor peso (D+3, D+2, D+1) se declaran
automáticamente al definir la primera.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 103
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
División de 4 dígitos con destino especificado
[S1/S2 → D… (DT9015)
(B%)
(DT90015)]
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
F52
Concepto
División de datos BCD de 4 dígitos (un dígito en BCD está formado por
4 bits que representan un dígito decimal), el cociente se almacena en
el área especificada y el resto en registro especial de datos DT9015.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 52
X0
10
F52 B% , DT 0 , DT 2 , DT 100
S1
S2
Instrucción
D
X
0
(B%)
DT
0
DT
2
DT
100
S1
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
dividendo
S2
4 dígitos en BCD, formados por 16 bits (constante o registro) empleados como
divisor
D
Área de 16 bits para el almacenar el cociente en código BCD
(El resto se almacena en el registro especial de datos DT9015 o DT90015.)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Contador
Registro
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
4 -- 104
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Divide el contenido del registro de datos DT0 entre el dato almacenado en DT2 cuando la entrada
X0 está en ON. El cociente se almacena en el registro de datos DT100 y el resto en el registro
especial de datos DT9015.
Dividiendo [S1]: H15 (BCD)
Pos del bit 15 ·
DT0
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
BCD Hex
0
0
1
5
Divisor [S2]: H4 (BCD)
Pos del bit 15 ·
DT2
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
BCD Hex
0
0
0
4
X0: ON
Cociente [D]: H3 (BCD)
Pos del bit 15 ·
DT100
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
BCD Hex
0
0
0
3
Resto: H3 (BCD)
Pos del bit 15 ·
DT9015
BCD Hex
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0
0
0
3
Descripción
S Cuando la condición de ejecución está en ON, se divide el dato de 4 dígitos
BCD (16 bits) especificado por S1 entre los 4 dígitos BCD especificados por
S2. El cociente se almacena en el área especificada por D y el resto se
almacena en el registro de datos especiales DT9015.
Condición de
Cociente
Resto
Dividendo
Divisor
▐
(S2)
ejecución en ON
(D)
....
(S1)
(DT9015)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
-- el dato especificado como divisor (S2) es 0.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
-- el dato especificado como divisor (S2) es 0.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 105
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
División de 8 dígitos con destino especificado
[(S1+1, S1)/(S2+1, S2) →
(DB%) (D+1, D)… (DT9016, DT9015)]
F53
Concepto
Paso
Disponibilidad
Todos FP0s / FP--Ms C24,
C40, C56 y C72 y FP1s
11
División de datos BCD de 8 dígitos ( un dígito en BCD está formado por
4 bits que representan un dígito decimal), el cociente se almacena en
el área especificada y el resto en los registros especiales de datos
DT9015 y DT9016.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 53
X0
10
F53 DB% , DT 0 , DT 2 , DT100
S1
S2
Instrucción
D
X
0
(DB%)
DT
0
DT
2
DT
100
S1
8 dígitos en BCD, formados por 32 bits (constante o registro) empleados como
dividendo
S2
8 dígitos en BCD, formados por 32 bits (constante o registro) empleados como
divisor
D
16 bits de menor peso de los 8 dígitos BCD dode se almacena el cociente
(El resto se almacena en los registros especiales de datos DT9016 y DT9015)
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
N/A
S2
A
A
A
A
A
A
A
N/A
D
N/A
A
A
A
A
A
A
N/A
4 -- 106
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Divide el contenido de los registros de datos DT1 y DT0 entre el contenido de los registros de
datos DT3 y DT2 cuando la entrada X0 está en ON. El cociente se almacena en los registros de
datos DT101 y DT100 y el resto en los registros especiales de datos DT9016 y DT9015.
Dividiendo [S1+1, S1]: H1130015 (BCD)
Bit position 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1
DT1
0
1
1
3
BCD Hex
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
0
0
1
5
BCD Hex
4 dígitos de mayor peso
4 bits de menor peso
Divisor [S2+1, S2]: H10004 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
DT3
BCD Hex
0
0
0
1
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
DT2
BCD Hex
0
0
0
4
4 dígitos de mayor peso
4 bits de menor peso
Cociente [D+1, D]: H112 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT101
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BCD Hex
0
0
0
0
X0: del
ON bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Pos
0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0
DT100
BCD Hex
0
1
1
2
4 dígitos de mayor peso
4 bits de menor peso
Resto: H9567 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DT9016
BCD Hex
0
0
0
0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT9015 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1
9
5
6
7
BCD Hex
4 bits de menor peso
4 dígitos de mayor peso
Descripción
S Cuando la condición de ejecución está en ON, se divide el dato de 8 dígitos
BCD (32 bits) especificado por S1 entre los 8 dígitos BCD especificados por
S2. El cociente se almacena en el área especificada por D+1 y D y el resto se
almacena en los registros de datos especiales DT9016 y DT9015.
Divisor
Dividendo
S1:4 dígitos de menor peso
S1+1:4 dígitos de mayor peso
Cociente
D: 4 dígitos de menor peso
D+1: 4 dígitos de mayor peso
▐
Condición de
ejecución está
S2: 4 dígitos de menor peso
en ON
S2+1: 4 dígitos de mayor peso
Resto
DT9015
DT9016
S Cuando se emplean datos de 8 dígitos BCD, los 16 bits de mayor peso
(S1+1, S2+1, D+1) se definen automáticamente al especificar los 16 bits de
menor peso (S1, S2, D).
4 -- 107
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
-- el dato especificado como divisor (S2) es 0.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
-- el dato especificado como divisor (S2) es 0.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
4 -- 108
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Incremento en 1 en registros
de 4 dígitos
[D + 1 → D]
F55 (B+1)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Incremento en 1 en registros de datos de 4 dígitos BCD (un dígito en
BCD está formado por 4 bits que representan un dígito decimal) y se
almacena el resultado en el área donde estaba el dato inicial.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 55
X
DT
X0
0
(B+1)
0
F55 B+1 , DT 0
10
D
D
16 bits (4 dígitos BCD) donde se almacena el dato a incrementar y después del
incremento almacena el resultado
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Incrementa en 1 el contenido del registro de datos DT0 cuando la entrada X0 está en ON. El
resultado se almacena en el mismo registro de datos DT0.
Dato inicial [D]: H9 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
DT0
BCD Hex
0
0
0
9
X0: ON (+1)
Resultado [D]: H10 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
DT0
BCD Hex
0
0
1
0
Descripción
S Cuando la condición de ejecución está en ON, se incrementa en 1 el dato de
4 dígitos BCD especificado por D.
El resultado se amacena en D.
Condición de
Resultado
Dato inicial
(D)
+
1
ejecución en ON
(D)
4 -- 109
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tienen en S1, S2 o D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se puede
emplear la instrucción F56 (DB+1) (incremento en 1 en
registros de 8 dígitos en BCD).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 110
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F56 (DB+1)
Concepto
Incremento en 1 en registros
de 8 dígitos
[(D+1, D) + 1 → (D+1, D)]
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Incremento en 1 en registros de datos de 8 dígitos BCD (un dígito en
BCD está formado por 4 bits que representan un dígito decimal) y se
almacena el resultado en el área donde estaba el dato inicial.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 56
X
0
(DB+1)
DT
X0
10
0
F56 DB+1 , DT 0
D
D
16 bits de menor peso de los 8 dígitos BCD a incrementar en 1, después de
realizar el incremento se almacena en resultado en este área
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Incrementa en 1 el contenido de los registros de datos DT1 y DT0 cuando la entrada X0 está en
ON. El resultado se almacena en los mismos registros de datos DT1 y DT0.
Dato inicial [D+1, D]: H10009 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
BCD Hex
0
0
0
1
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
BCD Hex
0
0
0
9
4 dígitos de mayor peso
4 dígitos de menor peso
X0: ON (+1)
Resultado [D+1, D]: H10010 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
DT1
0
0
0
1
BCD Hex
4 dígitos de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
DT0
BCD Hex
0
0
1
0
4 dígitos de menor peso
4 -- 111
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se incrementa en 1 el dato de
8 dígitos BCD especificado por D.
El resultado se lamacena en D+1 y D.
Condición de
Resultado
Dato inicial
(D+1, D)
+
1
ejecución en ON
(D+1, D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tiene D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tiene en D datos en BCD
-- la dirección del error se almacena en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (overflows), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 112
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Decremento en 1 en registros
de 4 dígitos
[D -- 1 → D]
F57 (B--1)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Decremento en 1 en registros de datos de 4 dígitos BCD ( un dígito en
BCD está formado por 4 bits que representan un dígito decimal) y se
almacena el resultado en el área del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 57
X
0
(B--1)
DT
X0
10
0
F57 B--1 , DT 0
D
D
16 bits (4 dígitos BCD) donde se almacena el dato a decrementar y después
del incremento almacena el resultado
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Decrementa en 1 el contenido del registro de datos DT0 cuando la entrada X0 está en ON. El
resultado se almacena en el mismo registro de datos DT0.
Dato inicial [D]: H10 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
BCD Hex
0
0
1
0
X0: ON (--1)
Resultado [D]: H9 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
BCD Hex
0
0
0
9
4 -- 113
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se decrementa en 1 el dato de
4 dígitos BCD especificado por D. El resultado se almacena en D.
Condición de
Resultado
Dato inicial
(D)
--
1
ejecución en ON
(D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tiene en D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tiene en D datos en BCD
-- la dirección del error se almacena en DT9018
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflows), es decir el resultado excede de los 4
dígitos BCD. El rango de 4 dígitos en BCD es: H0 a H9999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento en el resultado, se puede
emplear la instrucción F58 (DB--1) (decremento en 1 en
registros de 8 dígitos en BCD).
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 114
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F58 (DB--1)
Concepto
Paso
Decremento en 1 en registros
de 8 dígitos
[(D+1, D) -- 1 → (D+1, D)]
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
3
Decremento en 1 en registros de datos de 8 dígitos BCD ( un dígito en
BCD está formado por 4 bits que representan un dígito decimal) y se
almacena el resultado en el área del minuendo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 58
X
0
(DB--1)
DT
X0
10
0
F58 DB--1 , DT 0
D
D
16 bits de menor peso de los 8 dígitos BCD a incrementar en 1, después de
realizar el incremento se almacena en resultado en este área
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Decrementa en 1 el contenido de los registros de datos DT1 y DT0 cuando la entrada X0 está en
ON. El resultado se almacena en los mismos registros de datos DT1 y DT0.
Dato inicial [D+1, D]: H20009 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT1
BCD Hex
0
0
0
2
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
DT0
BCD Hex
0
0
0
9
4 dígitos de mayor peso
4 dígitos de menor peso
X0: ON (--1)
Resultado [D+1, D]: H20008 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT1
BCD Hex
0
0
0
2
4 dígitos de mayor peso
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
DT0
BCD Hex
0
0
0
8
4 dígitos de menor peso
4 -- 115
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Cuando la condición de ejecución está en ON, se decrementa en 1 el dato de
8 dígitos BCD especificado por D. El resultado se almacena en D+1 y D.
Condición de
Resultado
Dato inicial
(D+1, D)
--
1
ejecución en ON
(D+1, D)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- no se tiene en D datos en BCD
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- no se tiene en D datos en BCD
-- la dirección del error se almacena en DT9018
S Bandera = (R900B): Pasa a ON durante un instante cuando el resultado de una operación es “0.”
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando al calcular el resultado se
produce desbordamiento (underflows), es decir el resultado excede de los 8
dígitos BCD. El rango de 8 dígitos en BCD es: H0 a H99999999 (BCD).
. Notas
D Se producirá desbordamiento (overflow o underflow), si el
resultado de una instrucción aritmética supera el rango
especificado para su almacenamiento.
D En condiciones normales, la operación no sería correcta si se
produce desbordamiento.
D Si se produce desbordamiento (overflow o underflow), la
bandera de acarreo (relé especial interno R9009) pasará a ON.
D Para más detalles, consultar en “2.4.2 Desbordamiento.”
4 -- 116
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F60 (CMP)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
Comparación de 16 bits
Compara datos de 16 bits y el resultado de la comparación se refleja
en los relés internos especiales R900A, R900B y R900C.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
40
ST
41
F 60
X
S1
0
K
S2
X0
F60 CMP , DT 0 , K 100
X0 R900A
Y0
46
X0 R900B
Y1
X0 R900C
Y2
49
52
0
(CMP)
DT
Condición de ejecución
40
Instrucción
100
46
ST
X
47
AN
R 900A
48
OT
Y
0
49
ST
X
0
50
AN
R 900B
51
OT
Y
1
52
ST
X
0
53
AN
R 900C
54
OT
Y
S1
Dato de 16 bits (constante o registro) a comparar
S2
Dato de 16 bits (constante o registro) a comparar
0
2
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Compara la constante decimal K100 con el contenido del registro de datos DT0 cuando la entrada
X0 está en ON.
El resultado de la operación se almacena en los relés internos especiales R900A, R900B, y
R900C.
Cuando DT0 > K100, pasan a ON R900A y la salida externa Y0.
Cuando DT0 = K100, pasan a ON R900B y la salida externa Y1.
Cuando DT0 < K100, pasan a ON R900C y la salida externa Y2.
4 -- 117
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
Compara el dato de 16 bits especificado por S1 con el especificado por S2
cuando la entrada X0 está en ON. El resultado de la operación se almacena
en los relés internos especiales R9009, R900A, R900B y R900C.
La siguiente tabla muestra los diferentes estados de la bandera de acarreo
(R9009), bandera > (R900A), bandera= (R900B), y bandera < (R900C),
según los valores de S1 y S2.
Comparación entre
S1 y S2
Bandera
R900A R900B R900C
>
=
<
S1 < S2
OFF
OFF
ON
S1 = S2
OFF
ON
OFF
S1 > S2
ON
OFF
OFF
R9009
OFF
“ ”: pasa a OFF o a ON según las condiciones que se cumplan en la comparación
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
J Condición de ejecución
S En el programa ejemplo, la comparación sólo se efectuará cuando la entrada X0 esté en ON.
S La condición de ejecución que activa los relés internos especiales debe ser la misma que la de la
instrucción F60. Ésto evita que otras intrucciones puedan modificar el valor de las salidas Y0, Y1 e
Y2, si el relé se emplea en otra parte del programa
S Si se emplea como condición de ejecución de la
instrucción F60 (CMP) el relé interno especial
R9010 (relé de siempre a ON), podemos eliminar
la condición de ejecución que activa los relés
internos especiales.
R9010
R9010
F60 CMP, DT 0, K 100
R900A
Y0
R9010
R900B
Y1
R9010
R900C
Y2
En este caso R9010 puede eliminarse.
S También es válido para programar la instrucción
F60 (CMP), emplear las instrucciones PSHS,
RDS, y POPS como muestra la figura.
4 -- 118
X0
PSHS
F60 CMP, DT 0, K 100
R900A
Y0
RDS
R900B
Y1
POPS
R900C
Y2
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Puntos a tener en cuenta cuando se emplean dos o más instrucciones de
comparación
S Las banderas R900A, R900B y R900C se actualizan en cada ejecución de una instrucción de
comparación.
S Al emplear dos o más instrucciones de comparación en un mismo programa, se debe utilizar las
banderas inmediatamente después de la instrucción de comparación.
Programa ejemplo: Al estar la entrada X0 en ON, se compara el contenido de DT0 con la
constante en base decimal K100; y al estar la entrada X1 en ON, se efectúa
la comparación entre el contenido de DT1 y la constante K200.
X0
1
X0
F60 CMP, DT 0, K 100
R900A
Y0
X0
R900B
Y1
X0
R900C
Y2
X1
F60 CMP, DT 1, K 200
R900A
Y3
X1
R900B
Y4
X1
R900C
Y5
2
X1
3
5
El resultado de la comparción 1 se almacena en las salidas externas (Y0, Y1, and Y2) declaradas
en la parte del programa 2 .
El resultado de la comparación 3 se almacena en las salidas externas (Y3, Y4, and Y5)
declaradas en la parte dael programa 4 .
4 -- 119
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Puntos importantes cuando se comparan datos BCD o datos externos.
S Cuando se comparen datos especiales, como en código BCD o binario sin signo, se debe emplear
la instrucción F60 como se muestra en el ejemplo, utilizando los relés internos especiales R900B y
R9009.
Programa ejemplo: Compara los datos en código BCD almacenados en DT0 y DT1.
X1
X1
F60 CMP, DT 0, DT 1
R9009
R0
X1
R900B
R1
X1
R900B R9009
R2
1
....Si DT0 < DT1, el relé interno R0 pasa a ON
2
....Si DT0 = DT1, el relé interno R1 pasa a ON
3
....Si DT0 > DT1, el relé interno R2 pasa a ON
S Diferentes estados de las banderas R9009, R900A, R900B y R900C, cuando se comparan datos
en BCD o datos de 16 en código binario sin signo (0 a FFFF)
Flag
Comparación entre
S1 y S2
R900A R900B R900C
>
=
<
S1 < S2
OFF
S1 = S2
OFF
ON
S1 > S2
OFF
R9009
ON
OFF
OFF
OFF
“ ”: pasa a ON o a OFF según las condiciones que se cumplan en la comparación
S Referencia
Por ejemplo, si S1 = H8000 y S2 = H1000, R900A pasará a OFF, ya que toma S1 como si fuera un
número negativo, y R900C pasará a ON. Por o tanto si empleamos R900A y R900C el resultado de
la comparación no será el correcto.
1 0 0
8
0 0 0
1
4 -- 120
0 0 0 0 0 0 0 0 0 0 0 0 0
0
0
0
1 0 0 0 0 0 0 0 0 0 0 0 0
0
0
0
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F61(DCMP)
Concepto
Comparación de 32 bits
Paso
Disponibilidad
9
Todos FP0s /
FP--Ms y FP1s
Compara datos de 32 bits y el resultado de la comparación se refleja
en los relés internos especiales R900A, R900B y R900C.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
50
ST
51
F 61(DCMP)
X
0
DT
Condición de ejecución
S1
0
DT
S2
X0
F61 DCMP , DT 0 , DT 100
X0 R900A
50
Instrucción
Y0
56
X0 R900B
Y1
X0 R900C
Y2
59
62
100
56
ST
X
57
AN
R 900A
58
OT
Y
0
59
ST
X
0
60
AN
R 900B
61
OT
Y
1
62
ST
X
0
63
AN
R 900C
64
OT
Y
S1
Constante de 32 bits o 16 bits de menor peso del área a comparar
S2
Constante de 32 bits o 16 bits de menor peso del área a comparar
0
2
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, compara el contenido de los registros de datos DT101 y DT100
con el contenido de los registros de datos DT1 y DT0.
El resultado de la comparación se almacena en los relés internos especiales R900A, R900B, y
R900C.
Si (DT1 y DT0) > (DT101 y DT100), R900A y la salida externa Y0 pasan a ON.
Si (DT1 y DT0) = (DT101 y DT100), R900B y la salida externa Y1 pasan a ON.
Si (DT1 y DT0) < (DT101 y DT100), R900C y la salida externa Y2 pasan a ON.
4 -- 121
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
Compara los datos de 32 bits especificados por S1 y S2 cuando la condición
de ejecución está en ON. El rsultado de la comparación se almacena en los
relés internos especiales R9009, R900A, R900B y R900C.
En la siguiente tabla se muestran los diferentes estados de la bandera de
acarreo (R9009), bandera > (R900A), bandera = (R900B), y la bandera <
(R900C), según el resultado de la comparación entre (S1+1, S1) y (S2+1,
S2).
Comparación entre
(S1+1, S1) y (S2+1, S2)
Flag
R900A R900B R900C
>
=
<
(S1+1, S1) < (S2+1, S2)
OFF
OFF
ON
(S1+1, S1) = (S2+1, S2)
OFF
ON
OFF
R9009
OFF
(S1+1, S1) > (S2+1, S2)
ON
OFF
OFF
“ ”: pasa a ON o a OFF según el resultado de la compación
Cuando se procesan datos de 32 bits, los 16 bits de mayor peso (S1+1, S2+1)
se definen automáticamente al declarar los 16 bits de menor peso (S1, S2).
La condición de ejecución que activa los relés internos especiales debe ser la
misma que la de la instrucción F61. Ésto evita que otras intrucciones puedan
modificar el valor de las salidas empleadas por esta instrucción, si el relé se
emplea en otra parte del programa
Si se emplea como condición de ejecución de la instrucción F61 (DCMP) el relé
interno especial R9010 (relé de siempre a ON), se puede eliminar la
condición de ejecución que activan los relés internos especiales.
Como ocurre en la instrucción F60, se pueden emplear las instrucciones PSHS,
RDS, y POPS con la instrucción F61, evitando tener que programar la
condición de ejecución para cada relé interno especial, que debe ser la
misma que la empleada por la instrucción F61.
X0
PSHS
F61 DCMP, DT 0, K 100
R900A
Y0
RDS
R900B
Y1
POPS
R900C
Y2
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 122
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Puntos a tener en cuenta cuando se emplean dos o más instrucciones de
comparación
S Las banderas R900A, R900B y R900C se actualizan en cada ejecución de una instrucción de
comparación.
S Al emplear dos o más instrucciones de comparación en un mismo programa, se debe utilizar las
banderas inmediatamente después de la instrucción de comparación.
Programa ejemplo: Compara el contenido de DT1 y DT0 con el contenido de DT101 y DT100
cuando la entrada X0 está en ON; y compara el contenido de DT3 y DT2
X0
conel contenido de DT201 y DT200 cuando X1 está en ON.
1
X0
F61 DCMP, DT 0, DT 100
R900A
Y0
X0
R900B
Y1
X0
R900C
Y2
2
X1
3
X1
F61 DCMP, DT 2, DT 200
R900A
Y3
X1
R900B
Y4
X1
R900C
Y5
4
El resultado de la comparción 1 se almacena en las salidas externas (Y0, Y1, and Y2) declaradas
en la parte del programa 2 .
El resultado de la comparación 3 se almacena en las salidas externas (Y3, Y4, and Y5)
declaradas en la parte del programa 4 .
4 -- 123
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Puntos importantes cuando se comparan datos BCD o datos externos.
S Cuando se comparen datos especiales, como datos en código BCD o binario sin signo, se debe
emplear la instrucción F60 como se muestra en el ejemplo, utilizando los relés internos especiales
R900B y R9009. Los diferentes estados que toman los relés de datos especiales, bandera de
acarreo R9009, bandera > R900B, bandera = R900B y bandera < R900C, se muestran en la tabla
mostrada en esta página.
Programa ejemplo: Compara los datos BCD contenidos en (DT1, DT0) con los almacenados
en (DT3, DT2).
X1
X1
F61 DCMP, DT 0, DT 2
R9009
R0
X1
R900B
R1
X1
R900B R9009
R2
....Si (DT1, DT0) < (DT3, DT2), el relé interno
R0 pasa ON
2 ....Si (DT1, DT0) = (DT3, DT2), el relé interno
R1 pasa a ON
3 ....Si (DT1, DT0) > (DT3, DT2), el relé interno
R2 pasa a ON
1
S Diferentes estados de las banderas R9009, R900A, R900B y R900C, cuando se comparan datos
en BCD o datos de 32 bit en código binario sin signo (0 a FFFFFFFF)
Comparación entre
(S1+1, S1) y (S2+1, S2)
Flag
R900A R900B R900C
>
=
<
(S1+1, S1) < (S2+1, S2)
(S1+1, S1) = (S2+1, S2)
(S1+1, S1) > (S2+1, S2)
OFF
OFF
ON
R9009
ON
OFF
OFF
OFF
OFF
“ ”: Pasa a ON o a OFF según el resultado de la comparación
S Referencia
Por ejemplo, si se ejecuta la instrucción F61 siendo S1 = H80000000 (K--2,147,483,648) y S2 =
H10000001 (K+1), si se comparan S1<S2., entonces R900A pasará a OFF y R900C pasará a ON.
Por lo tanto si se emplean R900A y R900C con la instrucción F61, no se obtendrá un resultado
correcto.
4 -- 124
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F62 (WIN)
Concepto
Comparación de 16 bits con un
bloque de registros
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Comprueba que el valor de un dato de 16 bits está comprendido entre
dos valores.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
50
ST
51
F 62
Condición de ejecución
S1
S2
S3
X10
50
F62 WIN , DT 0 , DT 2 , DT 3
X0
R900A
Y0
58
X0
R900B
Y1
X0
R900C
Y2
61
64
Instrucción
X
10
(WIN)
DT
0
DT
2
DT
3
58
ST
X
59
AN
R 900A
60
OT
Y
0
61
ST
X
0
62
AN
R 900B
63
OT
Y
1
64
ST
X
0
65
AN
R 900C
66
OT
Y
S1
Dato de 16 bits (constante o registro) a comparar
S2
16 bits que indican el límite inferior
S3
16 bits que indican el límite superior
0
2
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
S3
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, comprueba que el valor del registro de datos DT0 está
comprendido entre DT2 (límite inferior del bloque de datos) y DT3 (límite superior del bloque de
datos).
El resultado la comparación se almacena en los relés internos especiales R900A, R900B, y
R900C.
4 -- 125
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
R900A : ON
Límite superior
DT3: K500
R900B : ON
R900C : ON
Límite inferior
DT2: K--500
Si DT0 es K--680, R900C y la salida externa Y2 pasan a ON.
Si DT0 es K--500, R900B y la salida externa Y1 pasan a ON.
Si DT0 es K256, R900B y la salida externa Y1 pasan a ON.
Si DT0 es K680, R900A y la salida externa Y2 pasan a ON.
Descripción
Cuando la condición de ejecución está en ON, comprueba que el valor del dato
de 16 bits especificado por S1 está comprendido entre S2 y S3. Esta
instrucción comprueba que el valor de S1 está comprendido entre el valor de
S2 (límite inferior) y S3 (límite superior), es decir, si es mayor que S3 o menor
que S2. El resultado de la comparación se almacena en los relés internos
especiales R900A, R900B, and R900C.
La condición de ejecuciónque activa los relés internos especiales debe ser la
misma que la de la instrucción F62. Ésto evita que otras intrucciones puedan
modificar el valor de las salidas utilizadas por esta instrucción, si el relé se
emplea en otra parte del programa
Si se emplea como condición de ejecución de la instrucción F62 (WIN) el relé
interno especial R9010 (relé de siempre a ON), se puede eliminar la que
activa los relés internos.
La siguiente tabla muestra los estados de R900A, R900B y R900C, según el
resultado de la operación.
Comparación entre
S1, S2 y S3
S1 < S2
S2
S1
S3
S3 < S1
Flag
R900A R900B R900C
>
=
<
OFF
OFF
ON
OFF
ON
OFF
ON
OFF
OFF
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice
excede el límite.
-- S2 > S3.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice
excede el límite.
-- S2 > S3.
-- La dirección del error se guarda en DT9018.
. Nota
Asegurese de que S2
S3 ya que S2 es el límite inferior del
bloque a comparar y S3 el límite superior del bloque a comparar.
4 -- 126
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F63 (DWIN)
Concepto
Comparación de 32 bits con un
bloque de registros
Paso
Disponibilidad
13
Todos FP0s /
FP--Ms y FP1s
Comprueba que el valor de un dato de 32 bits está comprendido entre
dos valores.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
50
ST
51
F 63
Condición de ejecución
S1
S2
S3
X0
50
F63 DWIN , DT 0 , DT 2 , DT 4
X0
R900A
Y0
64
X0
R900B
Y1
X0
R900C
Y2
67
70
Instrucción
X
0
(DWIN)
DT
0
DT
2
DT
4
64
ST
X
65
AN
R 900A
66
OT
Y
0
67
ST
X
0
68
AN
R 900B
69
OT
Y
1
70
ST
X
0
71
AN
R 900C
72
OT
Y
S1
Constante de 32 bits o 16 bits de menor peso del área a comparar
S2
Constante de 32 bits o 16 bits de menor peso del límite inferior
S3
Constante de 32 bits o 16 bits de menor peso del límite superior
0
2
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
S3
A
A
A
A
A
A
A
N/A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, comprueba que el valor de los registros de datos DT0 y DT1
está comprendido entre DT3 y DT2 (límite inferior del bloque de datos) y DT5 y DT4 (límite superior
del bloque de datos). El resultado de la comparación se almacena en los registros internos
especiales R900A, R900B, y R900C.
4 -- 127
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
R900A : ON
Límite superior
(DT3, DT4): K50000
R900B : ON
R900C : ON
Límite inferior
(DT3, DT2): K--50000
Si (DT1, DT0) es K--68000, R900C y la salida externa Y2 pasan a ON.
Si (DT1, DT0) es K--50000, R900B y la salida externa Y1 pasan a ON.
Si (DT1, DT0) es K25600, R900B y la salida externa Y1 pasan a ON.
Si (DT1, DT0) es K68000, R900C y la salida externa Y2 pasan a ON..
Descripción
Cuando la entrada está en ON, comprueba que el valor del dato de 32 bits especificado por S1 está
comprendido entre S2 y S3. Esta instrucción comprueba que el valor de S1 está comprendido
entre el valor de S2 (límite inferior) y S3 (límite superior), es decir, si es mayor que S3 o menor que
S2. El resultado de la comparación se almacena en los relés internos especiales R900A, R900B,
and R900C.
Cuando se procesan datos de 32 bits, los 16 bits de mayor peso quedan automáticamente definidos
al declarar los 16 bits de menor peso.
La condición de ejecución que activa los relés internos especiales debe ser la misma que la de la
instrucción F63. Ésto evita que otras intrucciones puedan modificar el valor de las salidas utilizadas
por esta instrucción, si el relé se emplea en otra parte del programa
Si se emplea como condición de ejecución de la instrucción F63 (DWIN) el relé interno especial
R9010 (relé de siempre a ON), se puede eliminar la condición de ejecución que activan los relés
internos.
La siguiente tabla muestra los estados de R900A, R900B y R900C, según el resultado de la
operación.
Comparación entre
(S1+1, S1), (S2+1, S2)
y (S3+1, S3)
Bandera
R900A R900B R900C
>
=
<
(S1+1, S1) < (S2+1, S2)
(S2+1, S2) (S1+1, S1)
(S3+1, S3)
OFF
OFF
ON
OFF
ON
OFF
(S3+1, S3) < (S1+1, S1)
ON
OFF
OFF
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice excede el límite.
-- (S2+1, S2) > (S3+1, S3).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice excede el límite.
-- (S2+1, S2) > (S3+1, S3).
-- La dirección del error se guarda en DT9018.
. Nota
Asegurese de que (S2 + 1, S2)
(S3 + 1, S3) ya que (S2 + 1, S2)
es el límite inferior del bloque a comparar y(S3 + 1, S3) el límite
superior del bloque a comparar.
4 -- 128
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F64 (BCMP)
Concepto
Comparación de bloques de
datos
Paso
Disponibilidad
7
Todos FP0s/FP--Ms y C24,
C40, C56 y C72 del FP1s
Compara bloques de datos en unidades básicas de un byte.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
S1
S2
S3
10
ST
11
F 64
X0
10
F64 BCMP , DT 0 , DT 10 , DT 20
X0
R900B
R0
18
Instruction
X
0
(BCMP)
DT
0
DT
10
DT
20
18
ST
X
19
AN
R 900B
0
20
OT
R
0
S1
16 bits (constante o registro) que especifica la posición del byte desde donde
comienza la operación y el número de bytes a comparar
S2
16 bits iniciales del bloque a comparar
S3
16 bits iniciales del bloque a comparar
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S3
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, y según las condiciones de comparación especificadas por DT0, se
compara el bloque de registros de datos que comienza en DT10 (4 bytes comenzando por el byte
de menor peso de DT10) con el bloque de datos que comienza con DT20 (4 bytes comenzando
por el byte de mayor peso de DT20). Cuando el contenido de los dos bloques de datos es el
mismo, el relé interno R0 pasa a ON.
4 -- 129
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Byte de
Byte de
mayor peso
menor peso
·
⎧
⎨
⎩
DT0 = H 1 0 0 4
Compara 4 bytes
(32 bits)
Bolque de datos
especificado
El bloque de datos es- por S2
pecificado por S2
comienza en el byte de
menor peso
Bloque de datos
El bloque da datos
especificado por
especificado por S3
S3
comienza por el byte
de mayor peso
DT10
2
1
DT11
4
3
Comparación
DT20
DT21
DT22
1
3
2
4
Descripción
Cuando la condición de ejecución está en ON, compara el contenido del bloque
de datos especificado por S2 con el contenido del bloque de datos
especificado por S3, según las condiciones definidas por S1.
Si S2 = S3, el relé interno especial R900B pasa a ON.
J Como declarar S1
S S1 especifica la posición del byte de inicio y el número de bytes a comparar, para éllo se utilizan 4
dígitos BCD, como se explica a continuación:
⎧
⎨
⎩
S1 = H j j j j
Número de bytes a comparar
rango: H01 a H99 (BCD)
Posición del byte de inicio del bloque de datos definido por S2
1: Comienza desde el byte de mayor peso
0: Comienza desde el byte de menor peso
Posición del byte de inicio del bloque de datos definido por S3
1: Comienza desde el byte de mayor peso
0: Comienza desde el byte de menor peso
[Configuración del ejemplo]
S Con la configuración del ejemplo mostrada en la parte superior de esta página (S1: H1004),
definimos el primer bloque de comparación que comienza en el byte de menor peso del registro
DT10 , el segundo bloque a comparar que comienza en el bye de mayor peso del registro DT20 y
el número de bytes a comparar que son 4 bytes.
4 -- 130
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice
excede el límite.
-- el dato especificado por S1 no es un dato en BCD.
-- se especifica un bloque de datos que excede el límite.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice
excede el límite.
-- el dato especificado por S1 no es un dato en BCD.
-- se especifica un bloque de datos que excede el límite.
-- La dirección del error se guarda en DT9018.
S Bandera = (R900B): pasa ON durante un instante si S2 es igual que S3.
. Notas
D Al emplear la bandera R900B con diferentes instrucciones de
comparación, se inicializa con cada ejecución de una
instrucción de este tipo.
Según ésto
-- Se debe guardar el resultado de la operación en una
salida externa o en un relé interno.
-- La bandera R900B se debe programar justo después
de la instrucción F64 (BCMP).
Ejemplo:
X0
F64 BCMP,
X0
DT 0,
DT 1,
Y0
R900B
Guarda el
resultado
de F64
X1
F60 CMP,
X1
WR 5
R900B
DT 2,
K 100
R0
Guarda el resultado de F60
D Se debe emplear la misma condición de ejecución con la
instrucción de comparación (X1 o X0) y antes de la bandera
R900B. Si empleamos R9010 (relé de siempre a ON), no es
necesario poner la condición de ejecución antes de R900B.
4 -- 131
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F65 (WAN)
Concepto
AND de datos de 16 bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Realiza la operación AND entre dos datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 65
X0
10
F65 WAN , DT 0 , DT 2 , DT 1
S1
S2
D
S1
Constante o registro de 16 bits
S2
Constante o registro de 16 bits
D
16 bits donde se almacena el resultado de la operación AND
X
0
(WAN)
DT
0
DT
2
DT
1
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
S1
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la operación AND de cada bit de los registros de datos DT0 y DT2 cuando la entrada X0
está en ON.
El resultado de la operación AND se almacena en el registro de datos DT1.
Pos del bit 15 ·
[S1]
DT0
DT2
· 8 7
·
· 4 3 ·
· 0
0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1
Pos del bit 15 ·
[S2]
· 12 11 ·
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
X0: ON
Pos del bit 15 ·
[D]
4 -- 132
DT1
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
Realiza la operación AND entre datos de 16 bits especificados por S1 y S2
cuando la condición de ejecución está en ON. El resultado se almacena en el
área de 16 bits especificada por D.
(S1)
(S2)
(D)
Se puede emplear esta instrucción para poner a OFF ciertos bits de datos de
16 bits.
J Operación AND
S La operación AND se muestra a continuación.
Tabla de operación de la operación AND
S1
S2
D
0
0
0
0
1
0
1
0
0
1
1
1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite.La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
S Bandera = (R900B): pasa ON durante un instante si el resultado de la operación es 0.
4 -- 133
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F66 (WOR)
Concepto
OR de datos de 16 bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Realiza la operación OR entre dos datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 66
X0
10
F66 WOR , DT 0 , DT 2 , DT 1
S1
S2
D
S1
Constante o registro de 16 bits
S2
Constante o registro de 16 bits
D
16 bits donde se almacena el resultado de la operación OR
X
0
(WOR)
DT
0
DT
2
DT
1
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la operación OR de cada bit de los registros de datos DT0 y DT2 cuando la entrada X0
está en ON.
El resultado de la operación OR se almacena en el registro de datos DT1.
Pos del bit 15 ·
[S1]
DT0
DT2
· 8 7
·
· 4 3
·
· 0
0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1
Pos del bit 15 ·
[S2]
· 12 11 ·
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
X0: ON
Pos del bit 15 ·
[D]
4 -- 134
DT1
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
Realiza la operación OR entre datos de 16 bits especificados por S1 y S2
cuando la condición de ejecución está en ON. El resultado se almacena en el
área de 16 bits especificada por D.
(S1)
(S2)
(D)
Se puede emplear esta instrucción para poner a OFF ciertos bits de datos de
16 bits.
J Operación OR
S La operación OR se muestra a continuación.
Tabla de operación de la operación OR
S1
S2
D
0
0
0
0
1
1
1
0
1
1
1
1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite.La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
S Bandera = (R900B): pasa ON durante un instante si el resultado es 0.
4 -- 135
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F67 (XOR)
Concepto
OR exclusiva de datos de 16 bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Realiza la operación OR exclusiva entre dos datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 67
X0
10
F67 XOR , DT 0 , DT 2 , DT 1
S1
S2
Instrucción
D
X
0
(XOR)
DT
0
DT
2
DT
1
S1
Constante o registro de 16 bits
S2
Constante o registro de 16 bits
D
16 bits donde se almacena el resultado de la operación OR exclusiva
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la operación OR exclusiva de cada bit de los registros de datos DT0 y DT2 cuando la
entrada X0 está en ON.
El resultado de la operación OR exclusiva se almacena en el registro de datos DT1.
Pos del bit 15 ·
[S1]
DT0
DT2
· 8 7
·
· 4 3
·
· 0
0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1
Pos del bit 15 ·
[S2]
· 12 11 ·
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
X0: ON
Pos del bit 15 ·
[D]
4 -- 136
DT1
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
Realiza la operación OR exclusiva entre datos de 16 bits especificados por S1
y S2 cuando la condición de ejecución está en ON. El resultado se almacena
en el área de 16 bits especificada por D.
(S1)
(S2)
(S1)
(S2)
(D)
Detecta los de S1 y S2 cuyo estado no coincide.
Si el contenido de los registros [S1] y [S2] es el mismo, todos los bits del
resultado almacenado en [D] son 0.
J Operación OR Exclusiva
S La operación OR exclusiva se muestra a continuación.
Tabla de operación de la operación OR exclusiva
S1
S2
D
0
0
0
0
1
1
1
0
1
1
1
0
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite.La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
S Bandera = (R900B): pasa ON durante un instante si el resultado es 0.
4 -- 137
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
F68 (XNR)
Concepto
NOR exclusiva de datos de 16 bits
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
7
Realiza la operación NOR exclusiva entre dos datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 68
X0
10
F68 XNR , DT 0 , DT 2 , DT 1
S1
S2
Instrucción
D
X
0
(XNR)
DT
0
DT
2
DT
1
S1
Constante o registro de 16 bits
S2
Constante o registro de 16 bits
D
16 bits donde se almacena el resultado de la operación NOR exclusiva
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza la operación NOR exclusiva de cada bit de los registros de datos DT0 y DT2 cuando la
entrada X0 está en ON.
El resultado de la operación NOR exclusiva se almacena en el registro de datos DT1.
Pos del bit 15 ·
[S1]
DT0
[S2]
· 8 7
·
· 4 3
·
· 0
0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1
Pos del bit 15 ·
DT2
· 12 11 ·
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
X0: ON
Pos del bit 15 ·
[D]
4 -- 138
DT1
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
Realiza la operación NOR exclusiva entre datos de 16 bits especificados por
S1 y S2 cuando la condición de ejecución está en ON. El resultado se
almacena en el área de 16 bits especificada por D.
(S1)
(S2)
(S1)
(S2)
(D)
Detecta los de S1 y S2 cuyo estado coincide.
Si el contenido de los registros [S1] y [S2] es el mismo, todos los bits del
resultado almacenado en [D] son 1.
J Operación NOR Exclusiva
S La operación NOR exclusiva se muestra a continuación.
Tabla de operación de la operación NOR exclusiva
S1
S2
D
0
0
1
0
1
0
1
0
0
1
1
1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite.La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando ocurre un error de operación,
en este caso cuando el modificador de índice excede el límite. La dirección
del error se guarda en DT9018.
S Bandera = (R900B): pasa ON durante un instante si el resultado es 0.
4 -- 139
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Chequeo de códigos por
bloques
F70 (BCC)
Concepto
Paso
Disponibilidad
9
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Calcula el código de chequeo de bloques (BCC).
Esté código (BCC) se emplea para detectar errores en información
transmitida.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 70
X0
10
F70 BCC , K 2 , DT 0 , K 12 , DT 6
S2
S1
S3
Instrucción
0
(BCC)
K
2
DT
0
K
D
X
DT
12
6
S1
16 bits (constante o registro) que especifican el método de cálculo del BCC
S2
16 bits iniciales del área datos de la que se va a calcular el BCC
S3
16 bits (constante o registro) que espcifican el número de bytes del bloque de
datos a transmitir
D
16 bits para almacenar el BCC
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S3
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, calcula el código de chequeo de bloques (BCC) de un dato de 12
bytes en código ASCII comenzando con los 16 bits especificados por DT0 y empleando la
operación OR exclusiva. El BCC se almacena en el registro de datos DT6, primero se almacenará
en el byte de menor peso y si el código es mayor de ocho bits se empleará el byte de mayor peso.
4 -- 140
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
SCuando la condición de ejecución está en ON, calcula el BCC de S3 bytes de
datos en código ASCII comenzando por los 16 bits especificados por S2,
siguiendo el método de codificación especificado por S1. El BCC se
almacena en el área de 16 bits especificados por D,comenzando por el byte
de menor peso.
J Como declarar S1
S S1 especifica el método de cálculo del bloque de chequeo de bloques (BCC) empleando
constantes en base decimal como se detalla a continuación:
-- K0: Suma
-- K1: Resta
-- K2: OR exclusiva
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- ocurre un error de operación, en este caso cuando el modificador de índice
excede el límite.
-- el número de bytes del BCC excede el límite del área asignada a su a
almacenamiento
-- .La dirección del error se almacena en DT9017 y se mantiene.
S Error flag (R9008):
Se pone a ON durante un instante cuando:
-- ocurre un error de operación, en este caso cuando el modificador de
índice excede el límite.
-- el número de bytes del BCC excede el límite del área asignada a su a
almacenamiento
-- La dirección del error se guarda en DT9018.
J Aplicación práctica
S Cálcula el BCC del mensaje en código ASCII “%01#RCSX0000” empleando la operación OR
exclusiva. El dato de 12 bytes se almacena en los registros del DT0 al DT5. Al pasar la entrada X0
a ON, el BCC se almacena en el byte de menor peso del registro de datos DT6.
X0
10
F70 BCC, K 2 , DT 0 , K 12 , DT 6
Reg de datos
ASCII HEX
caracteres ASCII
DT6
-----------
DT5
DT4
DT3
DT2
DT1
DT0
3 0 3 0 3 0 3 0 5 8 5 3 4 3 5 2 2 3 3 1 3 0 2 5
0
0
0
0
X
S
C
R
#
1
0
%
12 bytes
Código de chequeo de paridad (BCC)
En este ejemplo, sólo varía el byte de menor peso de DT6.
4 -- 141
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Como calcular el código de chequeo de bloques (BCC)
S El BCC se calcula empleando la OR exclusiva con cada cáracter en código ASCII.
%
0
1
#
R
C
S
X
0
0
0
0
2
5
0
0
1
0
0
1
0 1
ASCII BINARIO
ASCII HEX
OR exclusiva
OR exclusiva
S1
3
ASCII HEX
0
0 0 1 1 0 0 0 0
ASCII BINARIO
3
1
ASCII BIN code 0 0 1 1 0 0 0 1
ASCII HEX
2
ASCII HEX
0 0 1 0 0 0 1 1
ASCII HEX
5
2
0 1 0 1 0 0 1 0
ASCII BINARIO
4
ASCII HEX
OR exclusiva
3
ASCII BINARIO
OR exclusiva
S1
S2
D
0
0
1
1
0
1
0
1
0
1
1
0
OR exclusiva
3
OR exclusiva
0 1 0 0 0 0 1 1
ASCII BINARIO
D
S2
OR exclusiva
5
3
0
1
0
1
0
0
1 1
ASCII BINARIO
ASCII HEX
5
ASCII HEX
8
ASCII BINARIO
0 1 0 1 1 0 0 0
ASCII HEX
3
0
0 0 1 1 0 0 0 0
ASCII BINARIO
3
ASCII HEX
0 0 1 1 0 0 0 0
ASCII HEX
3
0
0 0 1 1 0 0 0 0
3
ASCII HEX
ASCII BINARIO
OR exclusiva
OR exclusiva
0
ASCII BINARIO
ASCII BINARIO
OR exclusiva
OR exclusiva
OR exclusiva
0
0 0 1 1 0 0 0 0
cálculo
Código de chequeo de bloques (BCC)
ASCII HEX
1
D
ASCII BINARIO 0 0 0 1 1 1 0 1
El resultado (H1D) se almacena en
el byte de menor peso de DT6.
DT6
DT5
DT4
DT3
DT2
DT1
DT0
—— 1 D 3 0 3 0 3 0 3 0 5 8 5 3 4 3 5 2 2 3 3 1 3 0 2 5
0
0
0
X
S
C
R
#
1
0
%
Caracteres ASCII —— G S 0
Resultado Reg. de datos
ASCII HEX
Código de chequeo de bloques (BCC)
4 -- 142
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F71 (HEXA)
Concepto
Paso
Disponibilidad
7
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Hexadecimal a ASCII
Convierte datos de 16 bits a código ASCII.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 71
X0
10
F71 HEXA , DT 0 , K 2 , DT 10
S2
S1
Instrucción
D
X
0
(HEXA)
DT
0
K
2
DT
10
S1
16 bits iniciales donde está almacenado el dato en hexadecimal
S2
16 bits (constante o registro) que especifican el número de bytes del dato a
convertir
D
16 bits iniciales donde sa almacena el código ASCII
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, se convierten los dos bytes almacenados en DT0 en código
hexadecimal a código ASCII. El dato en código ASCII se almacena en los registros de datos DT11
y DT10.
S El dato en código ASCII necesita en lugar de un registro dos para su almacenamiento, es decir
ocupa el doble de espacio.
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1
Hexadecimal
A
B
C
D
X0: ON
DT11
ASCII HEX
ASCII caracteres
4
2
B
DT10
4
1
A
4
4
D
4
3
C
4 -- 143
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
Scuando la condición de ejecución está en ON, convierte el dato en
hexadecimal ,que comienza en los 16 bits especificados por S1 y de longitud
S2 en bytes, a código ASCII.
El dato en código ASCII se almacena a partir del área de 16 bits especificada
por D.
SEn código ASCII para expresar un cáracter se emplean 8 bits ( un byte),por lo
tanto la longitud del dato en este código será el doble que en hexadecimal.
SS2 especifica el número de bytes a convertir.
SLos caracteres que estaban almacenados en un mismo byte son
intercambiados cuando se almacenan en código ASCII.
SSe trata como una unidad los dos bytes donde se almacena un carácter
ASCII.
Dato en hexadecimal
Dato en ASCII
4
2
B
A
B
C
D
4
1
4
4
A
4
D
C
D
D+1
S1
1 2
3 4
S1+1
5 6
7 8
Dato en hexadecimal
2
1
4
5
8
D+3
6
3
3
D+2
7
Dato en ASCII
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- el dato convertido excede el área disponible para D.
-- el dato especificado por S2 es “0”..
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- el dato convertido excede el área disponible para D.
-- el dato especificado por S2 es “0”.
-- La dirección del error se guarda en DT9018.
4 -- 144
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de conversión
Se muestra la conversión de un dato de código hexadecimal a código ASCII.
[Conversión de un dato de 4 bytes (S2 = K4)]
[S1+1]
Dato hexadecimal
EF
[S1]
12
AB
CD
4 bytes
Dato en ASCII
[D+3]
Condición de
ejecución: ON
[D+1]
[D+2]
[D]
46
45
32
31
42
41
44
43
F
E
2
1
B
A
D
C
Resultado del dato
contenido en S1 + 1
Resultado del dato
contenido en S1
[Conversión de un dato de tres bytes (S2 = K3)]
S Se puede convertir sólo el byte de menor peso de una palabra ya que se toma como unidad el
byte.
Dato hexadecimal
[S1+1]
12
[S1]
AB
CD
3 bytes
Condicióon de
ejecución: ON
Dato en ASCII
[D+2]
[D+1]
[D]
32
31
42
41
44
43
2
1
B
A
D
C
J Código ASCII hexadecimal
Número
Hexadecimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Código
ASCII
hexadecimal
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
H41
H42
H43
H44
H45
H46
4 -- 145
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
ASCII a hexadecimal
F72 (AHEX)
Concepto
Paso
Disponibilidad
7
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Convierte código ASCII a código hexadecimal.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 72
X0
10
F72 AHEX , DT 0 , K 4 , DT 40
S1
S2
D
X
0
(AHEX)
DT
0
K
4
DT
40
S1
16 bits iniciales donde está almacenado el dato en código ASCII hexadecimal
S2
16 bits (constante o registro) que especifican el número de bytes del dato a
convertir
D
16 bits iniciales donde sa almacena el código hexadecimal
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte el dato de 4 bytes en código ASCII almacenado en DT0 y
DT1 a código hexadecimal. El resultado se almacena en el registro de datos DT40.
S El número de caracteres en código ASCII a convertir se especifica con S2.
S La longitud del dato convertido es la mitad.
DT1
ASCII HEX
Caracteres ASCII
4
4
D
DT0
4
3
C
4
2
B
4
1
A
X0: ON
DT40
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1
Hexadecimal
C
D
A
B
Descripción
SCuando la condición de ejecución está en ON, convierte el dato en ASCII, que comienza en los 16 bits
especificados por S1 y de longitud S2 en bytes, a código hexadecimal.
El dato en código hexadecimal se almacena a partir del área de 16 bits especificada por D.
4 -- 146
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
SEl código ASCII de dos caracteres que ocupa dos palabras, después de la conversión van a ocupar una
sola palabra. El código hexadecimal de estos caracteres se va a almacenar en una palabra situandose
el código que estaba en una posición de memoria mas alta en el byte de menor peso y el caracter que
estaba en un posición inferior en el byte de mayor peso.
SCuatro caracteres se convierten en una sola unidad de datos, al ser almacenados en el mismo registro.
Código ASCII
4
4
Código hexadecimal
4
3
4
2
C
D
A
B
4
1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado por S1.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- si en el área de código hexadecimal no hay datos en hexadecimal.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado por S1.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- si en el área de código hexadecimal no hay datos en hexadecimal.
-- La dirección del error se guarda en DT9018.
J Ejemplo de conversión
S Se muestra la conversión de un dato en código ASCII a código hexadecimal.
[Conversión de ocho caracteres (S2 = K8)]
Código ASCII
[S1+3]
32
31
2
1
[S1+2]
[S1+1]
[S1]
46
45
44
43
42
41
F
E
D
C
B
A
8 caracteres (8 bytes)
[D+1]
Código hexadecimal
12
EF
Resultado del dato
contenido en S1 + 2
y S1 + 3
Condición de
ejecución: ON
[D]
CD
AB
Resultado del dato
contenido en S1 + 1 y
S1
4 -- 147
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
[Conversión de siete caracteres (S2 = K7)]
Código ASCII hexadicimal
[S1+3]
[S1+2]
[S1+1]
[S1]
31
46
45
44
43
42
41
1
F
E
D
C
B
A
7 caracteres (7 bytes)
Se rellena la posición
con “0”.
Código hexadecimal
[D+1]
10
EF
Condición de
ejecución: ON
[D]
CD
AB
S El dato convertido se almacena tomando como unidad el byte.
Si el dato a convertir es un número impar de caracteres, se rellenará con “0” los bits de 0 a 3 del
último byte a convertir.
Código ASCII hexadecimal
44
n
Código
hexadecimal
n
n--1
0
n--2
n--1 n--2
Esta posición se
rellena con “0”.
n = Nº. de caracteres (S2, número impar)
J Código ASCII hexadecimal/caracteres hexadecimales
ASCII
hexadecimal
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
H41
H42
H43
H44
H45
H46
4 -- 148
Caracteres
hexadecimales
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F73 (BCDA)
Concepto
BCD a ASCII
Paso
Disponibilidad
7
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Convierte código BCD a código ASCII .
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 73
X0
10
F73 BCDA , DT 0 , DT100 , DT 10
S1
S2
D
X
0
(BCDA)
DT
0
DT
100
DT
10
S1
16 bits iniciales donde está almacenado el dato en código BCD
S2
16 bits (constante o registro) que especifican el número de bytes del dato a
convertir y el modo de convertirlo
D
16 bits iniciales donde sa almacena el código ASCII decimal
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte el dato BCD formado por 4 dígitos BCD hexadecimal,
almacenado en el registro de datos DT0 a código ASCII. El resultado de la conversión de se
almacena en los registros de datos DT10 y DT11.
S Cuando DT100 = H2 (conversión de 2 bytes en dirección normal)
DT0
BCD
Hex
1
2
3
1 byte
4
1 byte
Entrada X0:
ON
1 byte
1 byte
1 byte
DT11
ASCII
HEX
Caract.
ASCII
3
2
2
1 byte
DT10
3
1
1
3
4
4
3
3
3
4 -- 149
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Si DT100 = H1002 (conversión de 2 bytes en dirección inversa)
DT0
Dato
BCD
1
2
3
1 byte
4
1 byte
Entrada X0: ON
1 byte
1 byte
1 byte
DT11
ASCII
HEX
3
Caract.
ASCII
4
4
1 byte
DT10
3
3
3
3
2
3
2
1
1
Descripción
SAl estar la condición de ejecución en ON, convierte el dato BCD que comienza
en los 16 bits especificados por S1 a código ASCII decimal según las
condiciones definidas por S2. El dato en ASCII se almacena en el área que
comienza con los 16 bits especificados por D.
SSólo se pueden convertir un máximo de 4 bytes (8 caracteres) por cada
instrucción.
SS2 especifica el número de bytes a convertir y la dirección (directa / inversa).
SLa longitud del dato en ASCII es el doble que en BCD.
J Como declarar S2
S2 = H j 0 0 j
1
2
Número de bytes del dato en BCD a convertir:
H1: 1 byte en BCD contiene 2 dígitos decimales
H2: 2 bytes en BCD contiene 4 dígitos decimales
H3: 3 bytes en BCD contiene 6 dígitos decimales
H4: 4 bytes en BCD contiene 8 dígitos decimales
Dirección de conversión
H0: dirección normal
H1: dirección inversa
SAl tratarse la información en unidades de bytes, se puede convertir sólo el byte
de menor peso de S1 a código ASCII.
4 -- 150
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
SAl almacenar los dos caracteres que provienen del mismo byte se
intercambian las posiciones.
SD+1 y D se tratan como una unidad de datos.
Dirección normal
Dirección inversa
S1
S1
1 2
3 4
1
4
2
D+1
3
D
1 2
3 4
3
2
4
D+1
1
D
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- el dato especificado por S1 no es un dato en BCD.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes especificado por S2 es mayor que 4.
La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- el dato especificado por S1 no es un dato en BCD.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- El número de bytes especificado por S2 es mayor que 4.
-- La dirección del error se guarda en DT9018.
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de datos en BCD a código ASCII decimal
S Conversión de 4 bytes en dirección normal
4 -- 151
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Dato en BCD
[S1+1]
BCD Hex
12
[S1]
34
56
78
4 bytes
Resultado
ASCII
hexadecimal
ASCII
caracteres
[D+3]
Condición de
ejecución: ON
[D+1]
[D]
[D+2]
32
31
34
33
36
35
38
37
2
1
4
3
6
5
8
7
Resultado del dato
contenido en S1 + 1
Resultado del dato
contenido en S1
S Coversión de 4 bytes en dirección inversa
Dato BCD
[S1+1]
BCD Hex
12
[S1]
34
56
78
4 bytes
Resultado
ASCII
hexadecimal
ASCII
caracteres
[D+3]
[D+2]
Condición de
ejecución: ON
[D+1]
[D]
38
37
36
35
34
33
32
31
8
7
6
5
4
3
2
1
Resultado del dato
contenido en S1
Resultado del dato
contenido en S1 + 1
J Correspondencia entre el código ASCII hexadecimal y los caracteres BCD
Carácter BCD
0
1
2
3
4
5
6
7
8
9
4 -- 152
ASCII
hexadecimal
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F74 (ABCD)
Concepto
Paso
Disponibilidad
9
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
ASCII a BCD
Convierte código ASCII a código BCD.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 74
X0
10
F74 ABCD , DT 0 , DT100 , DT 40
S2
S1
D
X
0
(ABCD)
DT
0
DT
100
DT
40
S1
16 bits iniciales donde está almacenado el dato en código ASCII
S2
16 bits (constante o registro) que especifican el número de bytes del dato a
convertir y el modo de convertirlo
D
16 bits iniciales donde sa almacena el código BCD
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte el dato en ASCII almacenado en los registros de datos DT1
y DT0 a código BCD. El resultado de la conversión de se almacena en el registro de datos DT40.
S Si DT100 = H4 (conversión de 4 bytes en dirección normal):
DT1
X0
10
F74 ABCD , DT 0 , H 4 , DT 40
S1
S2
D
ASCII
HEX
Caract.
ASCII
3
4
DT0
3
3
3
2
3
1
4
3
2
1
1 byte
1 byte
1 byte
1 byte
Entrada X0:
ON
1 byte
1 byte
DT40
BCD
Hex
3
4
1
2
4 -- 153
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Si DT100 = H1004 (conversión de 4 bytes en diressión inversa):
DT1
X0
10
ASCII
HEX
F74 ABCD , DT 0, H 1004 , DT 40
S1
S2
Caract.
ASCII
D
3
4
DT0
3
3
3
2
3
1
4
3
2
1
1 byte
1 byte
1 byte
1 byte
Entrada X0:
ON
1 byte
1 byte
DT40
BCD
Hex
1
2
3
4
Descripción
SAl estar la condición de ejecución en ON, convierte el dato en ASCII decimal
que comienza en los 16 bits especificados por S1 a código BCD según las
condiciones definidas por S2. El dato en BCD se almacena en el área que
comienza en los 16 bits especificados por D.
SPor cada instrucción, se pueden convertir como máximo 8 caracteres.
SS2 especifica el número de bytes a convertir y la dirección (directa / inversa).
SLa longitud del dato en código BCD es la mitad que en ASCII.
J Como declarar S2
S2 = H j 0 0 j
1
2
4 -- 154
Número de bytes por caracter ASCII
H1: 1 byte (1 carácter ASCII)
H2: 2 bytes (2 caracteres ASCII)
H3: 3 bytes (3 caracteres ASCII)
H4: 4 bytes (4 caracteres ASCII)
H5: 5 bytes (5 caracteres ASCII)
H6: 6 bytes (6 caracteres ASCII)
H7: 7 bytes (7 caracteres ASCII)
H8: 8 bytes (8 caracteres ASCII)
Dirección de conversión
H0: dirección normal
H1: dirección inversa
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Dos caracteres ASCII se convierten en dos dígitos BCD que
ocupan un byte. Cuando se almacenan, se intercambia la
posición de los caracteres de mayor y menor peso.
D Se trata como unidad de datos los 4 caracteres convertidos a
código BCD.
D La unidad de almacenamiento es el byte.
Si se convierte un número impar de caracteres, se rellenará
con “0” del bit 0 al bit 3 del último byte del dato en BCD si la
conversión se hace en la dirección normal, si se hace en la
dirección inversa se rellenarán con “0” del bit 4 al 7.
Dirección normal
2
1
4
3 4
1 2
Dirección inversa
3
Código
ASCII
Dato BCD
4
3
2
1 2
3 4
1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- si el código especificado por S1 no se corresponde con un código ASCII
decimal, dígitos comprendidos entre 0 y 9.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes especificado por S2 es mayor que 8.
--.La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el dato especificado
por S1.
-- si el código especificado por S1 no se corresponde con un código ASCII
decimal, dígitos comprendidos entre 0 y 9.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes especificado por S2 es mayor que 8.
-- La dirección del error se guarda en DT9018.
4 -- 155
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de código ASCII a código BCD.
S Conversión de 8 caracteres ASCII (S2=H0008)
Código ASCII
[S1+3]
ASCII hexadecimal
Caracteres
ASCII
38
37
8
7
[S1+2]
[S1+1]
[S1]
36
35
34
33
32
31
6
5
4
3
2
1
8 caracteres ASCII (8 bytes)
Resultado
Condición de
ejecución: ON
[D]
[D+1]
78
BCD Hex
56
34
12
S Conversión de 7 caracteres ASCII (S2=H1007)
Código ASCII
[S1+3]
ASCII
hexadecimal
Caracteres
ASCII
37
7
[S1+2]
36
6
35
5
[S1+1]
34
4
BCD Hex
32
2
31
1
7 caracteres ASCII (7 bytes)
Esta posición se
rellena con “0”.
Resultado
33
3
[S1]
Condición de
ejecución: ON
[D]
[D+1]
01
23
45
67
J Correspondencia entre el código ASCII hexadecimal y los caracteres BCD
ASCII
hexadecimal
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
4 -- 156
Caracteres
BCD
0
1
2
3
4
5
6
7
8
9
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F75 (BINA)
Concepto
Binario a ASCII (16 bits)
Paso
Disponibilidad
7
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Convierte datos de 16 bits a código ASCII.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 75
X0
10
F75 BINA , DT 0 , K 6 , DT 50
S2
S1
D
X
0
(BINA)
DT
0
K
6
DT
50
S1
16 bits donde está almacenado el dato a convertir
S2
16 bits (constante o registro) que especifican el número de bytes del área de
destino donde se va a almacenar el dato convertido
D
16 bits iniciales donde sa almacena el código ASCII
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte el dato de 16 bits almacenado en el registro de datos DT0
a código ASCII. El dato en código ASCII se almacena en los registros de datos DT52, DT51 y
DT50.
Fuente
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
K--100
Dato decimal
X0: ON
Destino
ASCII HEX code
ASCII character
DT52
3
0
0
DT51
3
0
0
3
1
DT50
2
1
D
2
0
2
0
--
6 bytes
ESPACIO
Descripción
SAl estar la condición de ejecución en ON, convierte los 16 bits especificados
por S1 a código ASCII. El dato en ASCII se almacena a partir de los 16 bits
especificados por D según las condiciones especificados por S2.
SS2 especifica el número de bytes del destino con una constante decimal.
4 -- 157
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por D.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes del dato en ASCII es mayor que el especificado por
S2.
--.La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por D.
-- el dato convertido excede el área especificada por D.
-- el dato especificado por S2 es “0”.
-- La dirección del error se guarda en DT9018.
. Notas
D Al convertir números positivos a código ASCII, el signo “+” no
se convierte.
D Al convertir números negativos, el signo “--” se convierte a
código ASCII (“--” en ASCII hexadecimal: H2D).
D Si el área especificada por S2 para destino es mayor que la
empleada por el dato en código ASCII, en los bytes que restan
se rellena con el carácter ASCII de “ESPACIO” (”ESPACIO” en
ASCII hexadecimal: H20).
D La disposición del código ASCII en el área de destino depende
de la longitud de la misma.
S Si S2=K8 (8 bytes)
[D1+3]
[D1+2]
30
30
31
0
0
1
2D
[D+1]
20
20
[D]
20
20
-- (Espacio) (Espacio) (Espacio) (Espacio)
Código ASCII
Bytes libres
8 bytes
D Si la longitud del dato, incluendo el caracter del signo “--” en
números negativos, supera el número de bytes epecificados
por S2, se producirá un error de operación. El signo menos
debe tenerse en cuenta al declarar el parámetro S2.
4 -- 158
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de un dato de 16 bits a código ASCII.
S Conversión de un número negativo:
[S1]
Dato de 16 bits
FF
9C
K--100
Dato decimal
Condición de
ejecución: ON
Resultado
[D+2]
[D+1]
[D]
30
30
31
2D
20
0
0
1
--
(Espacio)
Código ASCII
20
(Espacio)
Bytes libres
Área de 6 bytes especificada por S2
S Conversión de un número positivo:
[S1]
Dato de 16 bits
04
D2
K1234
Condición de
ejecución: ON
Resultado
[D+2]
[D+1]
34
33
32
21
4
3
2
1
Código ASCII
[D]
20
20
(Espacio) (Espacio)
Bytes libres
Área de 6 bytes especificada por S2
J Correspondencia entre el código ASCII hexadecimal y los caracteres decimales:
Caracteres
decimales
ESPACIO
-0
1
2
3
4
5
6
7
8
9
ASCII
hexadecimal
H20
H2D
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
4 -- 159
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Disponibilidad
Paso
F76 (ABIN)
Concepto
ASCII a binario (16 bits)
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
7
Convierte código ASCII a datos binarios de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
Instrucción
10
ST
11
F 76
F76 ABIN , DT 0 , K 6 , DT 50
S1
S2
D
X
0
(ABIN)
DT
0
K
6
DT
50
S1
16 bits iniciales donde está almacenado el dato a convertir
S2
16 bits (constante o registro) que especifican el número de bytes a convertir
D
16 bits donde se almacena el destino
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
S1
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
N/A
N/A
S2
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Convierte los 6 bytes especificados por S2 del código ASCII almacenado en los registros de datos
DT2, DT1 y DT0 a código binario (16 bits), cuando la entrada X0 está en ON. El resultado se
almacena en el registro de datos DT50.
Fuente
ASCII HEX
Caracter ASCII
DT2
3
0
0
DT1
3
0
0
3
1
DT0
2
1
D
--
6 bytes
X0: ON
Destino
DT50
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Dato decimal
En este ejemplo, estas
posiciones se rellenaríancon “ESPACIO” o “0”.
K--100
Descripción
SAl estar la condición de ejecución en ON, convierte el código ASCII decimal
,que comienza en los 16 bits especificados por S1, en un dato binario de 16
bits, según las condiciones especificadas por S2. El resultado se almacena
en el área especificada por D.
SS2 especifica el número de bytes a convertir empleando una constante
decimal.
4 -- 160
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por S1.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes del dato en ASCII es mayor que el especificado por
S2.
-- si el dato a convertir no es ASCII o al aparecer los caracteres (+,--,. y
ESPACIO).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por S1.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- si el dato a convertir no es ASCII o al aparecer los caracteres (+,--,. y
ESPACIO).
-- La dirección del error se guarda en DT9018.
. Notas
D El código ASCII debe estar almacenado a partir de la última dirección
especificada por S1 y S2, rellenando con ceros las direcciones de memoria
menores si quedan bytes libres.
D Si el área especificada por S1 y S2 es mayor que la que ocupa el dato a
convertir, se rellenan con “0” (código ASCII hexadecimal: H30) o con
“ESPACIO” (código ASCII hexadecimal: H20) los bytes libres.
D Se convierten los caracteres +, -- ( H2B y H2D respectivamente en ASCII
hexadecimal), aunque el signo + puede omitirse.
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de código ASCII a código binario (16 bits).
S [Ejemplo de conversión de un número negativo]
Código ASCII
[S1+2]
[S1+1]
[S1]
30
30
31
2D
30
30
0
0
1
--
(0)
(0)
Código ASCII
Bytes libres
Área especificada por S2
Condición de
ejecución: ON
[D]
Resultado
FF
9C
K--100
4 -- 161
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S [Ejemplo de conversión de un número positivo]
Ejemplo 1:
Código ASCII
[S1+2]
[S1+1]
30
30
31
2B
0
0
1
+
Código ASCII
[S1]
20
20
(Espacio) (Espacio)
Bytes libres
Área especificada por S2
Ejemplo 2:
Código ASCII
[S1+2]
[S1+1]
30
30
31
0
0
1
[S1]
20
20
20
(Espacio) (Espacio) (Espacio)
Código ASCII
Bytes libres
Área especificada por S2
Condición de
ejecución: ON
Resultado del
ejemplo 1 o 2
[D]
00
64
K100
J Correspondencia entre el código ASCII hexadecimal y los caracteres decimales
ASCII
hexadecimal
H20
H2B
H2D
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
4 -- 162
Caracteres
decimales
ESPACIO
+
-0
1
2
3
4
5
6
7
8
9
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F77 (DBIA)
Concepto
Binario a ASCII (32 bits)
Paso
Disponibilidad
11
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Convierte datos binarios de 32 bits a código ASCII.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F
X0
10
S2
0
77 (DBIA)
DT
F77 DBIA , DT 0 , K 10 , DT 50
S1
X
D
0
K
10
DT
50
S1
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits donde se
almacena el dato a convertir
S2
16 bits (registro o constante) que especifican el número de bytes del destino en
código ASCII
D
16 bits iniciales para almacenar el código ASCII
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S1
A
A
A
A
A
A
A
N/A
A
A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 a ON, convierte el dato de 32 bits, almacenado en los registros de datos DT1
y DT0, a código ASCII. El dato en código ASCII se almacena en los registros de datos
comprendidos entre DT54 y DT50 (10 bytes).
Fuente
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
Decimal
K12345678
X0: ON
Destino
ASCII HEX
Caracter ASCII
DT54
3
8
8
DT53
3
7
7
3
6
6
DT51
2
3
DT52
3
5
5
3
4
4
3
3
3
3
2
DT50
1
2
0
2
0
1
Números de bytes especificados por S2 (10 bytes)
ESPACIO
Descripción
SAl estar la entrada X0 en ON, convierte los 32 bits especificados por S1 a
código ASCII decimal. El dato en ASCII se almacena a partir de los 16 bits
especificados por D según las condiciones especificadas por S2.
SS2 especifica el número de bytes del destino con una constante decimal.
4 -- 163
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por D.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes del dato en ASCII es mayor que el especificado por
S2.
-- Número de bytes especificados por S2 < número de bytes especificados
por S1
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por D.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- Número de bytes especificados por S2 < número de bytes especificados
por S1
-- La dirección del error se guarda en DT9018.
. Notas
D El signo “+” de los números positivos no se convierte.
D El signo “--” de los números positivos se convierte a código
ASCII (”--” código ASCII hexadecimal: H2D).
D Si el área especificada por S2 para destino es mayor que la
empleada por el dato en código ASCII, los bytes que restan se
rellenan con el carácter ASCII de “ESPACIO” (”ESPACIO” en
ASCII hexadecimal: H20).
D La disposición del código ASCII en el área de destino depende
de la longitud del dato en código ASCII y de la longitud
reservada para el área de destino, comenzando el
almazanemiento por la posición de memoria superior,
especificada por S2 y D.
D Si la longitud del dato, incluendo el caracter del signo “--” en
números negativos, supera el número de bytes epecificados
por S2, se producirá un error de operación. El signo menos
debe tenerse en cuenta al declarar el parámetro S2.
4 -- 164
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de un dato de 32 bits a código ASCII.
S [Ejemplo de conversión de un número negativo]
[S1+1]
Dato de 32 bits
FF
[S1]
43
9E
B2
K--12345678
Condición de
ejecución: ON
Resultado
[D+3]
[D+4]
[D+2]
[D+1]
[D]
38
37
36
35
34
33
32
31
2D
20
8
7
6
5
4
3
2
1
--
(Space)
Código ASCII
Byte libre
Área especificada por S2 (10 bytes)
S [Ejemplo de conversión de un número positivo]
[S1+1]
Dato de 32 bits
00
BC
[S1]
61
4E
K12345678
Condición
ejecución: ON
Resultado
[D+3]
[D+2]
[D+1]
[D]
38
37
36
35
34
33
32
31
8
7
6
5
4
3
2
1
Código ASCII
Área especificada por S2 (8 bytes)
J Correspondencia entre el código ASCII hexadecimal y los caracteres decimales
Caracteres
decimales
ESPACIO
+
-0
1
2
3
4
5
6
7
8
9
ASCII
hexadecimal
H20
H2B
H2D
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
4 -- 165
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F78 (DABI)
Concepto
ASCII a binario (32-bit)
Paso
Disponibilidad
11
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1s
Convierte código ASCII a código binario de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X0
10
10
ST
11
F 78 (DABI)
S2
X
0
DT
F78 DABI , DT 0 , K 10 , DT 50
S1
Instrucción
D
0
K
10
DT
50
S1
16 bits iniciales donde se almacena el dato a convertir
S2
16 bits (constante o registro) que especifican el número de bytes a convertir
D
16 bytes de menor peso del área de 32 bits donde se almacena el dato
convertido
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S1
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S2
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Convierte los 10 bytes especificados por S2 del código ASCII, almacenado en los registros de
datos comprendidos entre DT4 y DT0, a código binario (32 bits), cuando la entrada X0 está en ON.
El resultado se almacena en los registros de datos DT51 y DT50..
Fuente
ASCII HEX
Carácter ASCII
DT4
3
8
DT3
3
8
7
7
3
6
6
DT1
DT2
3
5
5
3
4
4
3
3
3
3
2
2
DT0
3
1
2
0
2
0
1
Número de bytes especificados por S2: 10
ESPACIO
X0: ON
Destino
DT51
DT50
Pos del bit 15 · · 12 11 · · 8 7 · · 4 3 · · 0 15 · · 12 11 · · 8 7 · · 4 3 · · 0
Decimal
K12345678
Descripción
SAl estar la condición de ejecución en ON, convierte el código ASCII decimal
,que comienza en los 16 bits especificados por S1, en un dato binario de 32
bits, según las condiciones especificadas por S2. El resultado se almacena
en el área especificada por D.
SS2 especifica el número de bytes a convertir empleando una constante
decimal.
4 -- 166
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por S1.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- el número de bytes del dato en ASCII es mayor que el especificado por
S2.
-- si el dato a convertir no es ASCII o al aparecer los caracteres (+,--,. y
ESPACIO).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- el número de bytes especificados por S2 es mayor que el área especificada
por S1.
-- el dato convertido excede el área de 16 bits especificada por D.
-- el dato especificado por S2 es “0”.
-- si el dato a convertir no es ASCIIl o al aparecer los caracteres (+,--,. y
ESPACIO).
-- La dirección del error se guarda en DT9018.
Notas para el FP--M / FP1
S Los registros de datos especiales DT9017 y DT9018 están disponibles en todos los FP--Ms y en
los FP1s con CPU versión 2.7 o posterior. (Esta función la tienen todos los FP1 con el sufijo “B” en su
número de serie.)
S Cuando se emplee el relé interno especial R9008 como bandera de esta instrucción, se debe
programar la bandera inmediatamente después de la instrucción.
. Notas
D El código ASCII debe estar almacenado a partiendo de la
última dirección especificada por S1 y S2, rellenando con
ceros las direcciones de memoria menores si quedan bytes
libres.
D Si el área especificada por S1 y S2 es mayor que la que ocupa
el dato a convertir, se rellenan con “0” (código ASCII
hexadecimal: H30) o con “ESPACIO” (código ASCII
hexadecimal: H20) los bytes libres.
D Se convierten los caracteres +, -- ( H2B y H2D respectivamente
en ASCII hexadecimal), aunque el signo + puede omitirse.
4 -- 167
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de conversión
A continuación se muestra un ejemplo de conversión de un dato código ASCII a código binario de 32
bits.
S [Conversión del código ASCII de un número negativo]
Código ASCII
[S1+4]
[S1+3]
[S1+2]
[S1+1]
[S1]
38
37
36
35
34
33
32
31
2D
20
8
7
6
5
4
3
2
1
--
(Space)
Código ASCII
Byte libre
Área especificada por S2 (10 bytes)
Condición de
ejecución: ON
[D+1]
Resultado
FF
[D]
43
9E
B2
K--12345678
S [Conversión del código ASCII de un número positivo]
Ejemplo 1:
Código ASCII
[S1+3]
[S1+2]
[S1+1]
[S1]
38
37
36
35
34
33
32
31
7
8
6
5
4
3
2
1
Código ASCII
Área especificado por S2 (8 bytes)
Ejemplo 2:
Código ASCII
[S1+4]
[S1+3]
[S1+2]
[S1+1]
[S1]
38
37
36
35
34
33
32
31
2B
20
8
7
6
5
4
3
2
1
+
(Space)
Código ASCII
Byte libre
Área especificada por S2 (10 bytes)
Condición de
ejecución: ON
Resultado del ejemplo
1ó2
[D+1]
00
BC
[D]
61
K12345678
4 -- 168
4E
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Correspondencia entre el código ASCII hexadecimal y los caracteres decimales
ASCII
hexadecimal
H20
H2B
H2D
H30
H31
H32
H33
H34
H35
H36
H37
H38
H39
Caracteres
decimales
ESPACIO
+
-0
1
2
3
4
5
6
7
8
9
4 -- 169
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
F80 (BCD)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
16 bits binaro a 4 dígitos BCD
Convierte un dato de 16 bits binario a código BCD decimal de 4 dígitos
( un dígito en BCD está formado por 4 bits que representan un dígito
decimal)
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 80
X0
10
F80 BCD , EV 0 , WY 0
S
Instrucción
X
0
(BCD)
EV
0
WY
0
D
S
16 bits (constante o registro) para almacenar el dato a convertir
D
16 bits donde se almacenan los 4 dígitos BCD
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, convierte el valor actual EV0 de codigo binario a código BCD
decimal. El dato en BCD se almacena en la palabra de salidas externas WY0.
Fuente [S]: K16
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
EV0
K16
Decimal
X0: ON
Destino [D]: H16 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0
WY0
0
0
1
6
BCD Hex
4 -- 170
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, convierte 16 bits especificados por
S en código BCD decimal de 4 dígitos. El dato en BCD se almacena en D.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- se convierte un dato de 16 bits que está fuera del rango: K0 (H0) a K9999
(H270F).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- se convierte un dato de 16 bits que está fuera del rango: K0 (H0) a K9999
(H270F).
-- La dirección del error se guarda en DT9018.
. Notas
D El rango de conversión del dato binario de 16 bits a código
BCD es de K0 (H0) a K9999 (H270F).
D Para más información, consultar en “5.2 Manejo de datos en
BCD.”
4 -- 171
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F81 (BIN)
Concepto
4 dígitos BCD a 16 bits binario
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Convierte un dato en código BCD decimal de 4 dígitos ( un dígito en
BCD está formado por 4 bits que representan un dígito decimal) a
código binario de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 81
X0
10
F81 BIN , WX 0 , DT 0
S
Instrucción
X
0
(BIN)
WX
0
DT
0
D
S
16 bits (constante o registro) para almacenar los 4 dígitos del dato en BCD
D
16 bits donde se almacena el dato en binario
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicacón del ejemplo
S Cuando la entrada X0 está en ON, convierte el valor actual de la palabra de entradas externa WX0
a codigo binario de 16 bits. El dato en binario se almacena en el registro de datos DT0.
Fuente [S]: H15 (BCD)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
WX0
0
1
5
0
BCD Hex
X0: ON
Destino [D]: K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
DT0
K15
Decimal
4 -- 172
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, convierte el dato en BCD decimal
de 4 dígitos especificado por S en código binario de 16 bits. el dato en binario
se almacena en D.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD.
-- La dirección del error se guarda en DT9018.
. Nota
Para más información, consultar en “5.2 Manejo de datos en
BCD.”
4 -- 173
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F82 (DBCD)
Concepto
32 bits binario a 8 dígitos BCD
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Convierte un dato de 32 bits binario a código BCD decimal de 8 dígitos
( un dígito en BCD está formado por 4 bits que representan un dígito
decimal)
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 82
R20
10
F82 DBCD, DT 0 , DT 2
S
Instrucción
R
20
(DBCD)
DT
0
DT
2
D
S
32 bits (constante o registro) para almacenar el dato a convertir
D
16 bits de menor peso donde se almacenan los 8 dígitos BCD
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, convierte contenido de los registros DT1 a DT0 de código
binario a código BCD decimal de 8 dígitos. El dato en BCD se almacena en los registros de datos
DT3 y DT2.
Fuente [S+1, S]: K72811730
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
K72811730
Decimal
16 bits de mayor peso
Destino [D+1, D]: H72811730 (BCD)
DT3
16 bits de menor peso
R20: ON
DT2
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
BCD
0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0
1
7
3
0
2
8
1
BCD Hex
7
16 bits de mayor peso
4 -- 174
16 bits de menor peso
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Notas
D El rango de conversión del dato binario de 16 bits a código
BCD es de K0 (H0) a K99,999,999 (H5F5E0FF).
D Cuando se procesan datos de 32 bits o de 8 dígitos BCD, los
16 bits de mayor peso se determinan automáticamente al
definir los 16 bits de menor peso.
D Para más información, consultar en “5.2 Manejo de datos en
BCD.”
Descripción
S Al estar la condición de ejecución en ON, convierte 32 bits especificados por
S en código BCD decimal de 8 dígitos. El dato en BCD se almacena en D+1 y
D.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- se convierte un dato de 16 bits que está fuera del rango: K0 (H0) a
K99999999 (H5F5E0FF).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- se convierte un dato de 16 bits que está fuera del rango: K0 (H0) a a
K99999999 (H5F5E0FF).
-- La dirección del error se guarda en DT9018.
4 -- 175
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F83 (DBIN)
Concepto
8 dígitos BCD a 32 bits binario
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Convierte un dato en código BCD decimal de 8 dígitos ( un dígito en
BCD está formado por 4 bits que representan un dígito decimal) a
código binario de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 83
R10
10
F83 DBIN, DT 0 , DT 2
S
Instrucción
R
10
(DBIN)
DT
0
DT
2
D
S
Constante de 8 dígitos en BCD o 16 bits de menor peso del área de 32 bits
donde se almacena el dato en código
D
16 bits de menor peso del área de 32 bits donde se almacena el dato en binario
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X0 está en ON, convierte los 8 dígitos, almacenados en los registros de datos
DT1 y DT0, de código BCD decimal a binario de 32 bits. El dato en binario se almacena en los
registros de datos DT3 y DT2.
Fuente [S+1, S]: H72811730 (BCD)
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
BCD
0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0
1
7
3
0
2
8
1
BCD Hex
7
16 bits de mayor peso
Destino [D+1, D]: K72811730
DT3
16 bits de menor peso
R10: ON
DT2
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
K72811730
Decimal
16 bits de mayor peso
4 -- 176
16 bits de menor peso
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
. Nota
Cuando se procesan datos de 32 bits o de 8 dígitos BCD, los 16
bits de mayor peso se determinan automáticamente al definir los
16 bits de menor peso.
Para más información, consultar en “5.2 Manejo de datos en
BCD.”
Descripción
S Al estar la condición de ejecución en ON, convierte el dato en BCD decimal
de 8 dígitos especificado por S en código binario de 32 bits. el dato en binario
se almacena en D+1 y D.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD.
-- La dirección del error se guarda en DT9018.
4 -- 177
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F84 (INV)
Inversión de datos de 16 bits
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
3
Concepto Invierte los 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 84
R
20
(INV)
DT
R20
10
0
F84 INV , DT 0
D
D
Area de 16 bits a invertir
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Invierte los bits del dato almacenado en el registro de datos DT0 cuando la entrada R20 está en
ON. El dato invertido se almacena en el registro de datos DT0.
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1
DT0
R20: ON
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0
Descripción
S Al estar la condición de ejecución en ON, se invierten los 16 bits del dato
especificado por D. El dato invertido se almacena e el área de 16 bits
especificada por D.
S Esta instrucción es muy útil si se emplean dispositivos externos que utilizan
lógica negativa.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando el modificador de índice
excede el límite. La dirección del error se almacena en DT9017 y se
mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando el modificador de índice excede
el límite. La dirección del error se guarda en DT9018.
4 -- 178
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Complemento a dos de datos
de 16 bits
F85 (NEG)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Realiza el complemento a dos de datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 85
R
20
(NEG)
DT
R20
10
0
F85 NEG , DT 0
D
D
16 bits donde se almacena el dato a complementar y después de efectuar la
operación se almacena el resultado
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza el complemento a dos del dato almacenado en el registro de datos DT0 cuando la entrada
R20 está en ON. El dato complementado se almacena en el registro de datos DT0.
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
DT0
Decimal
Destino
K3
R20: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
DT0
Decimal
K--3
Descripción
S Al estar la condición de ejecución en ON, realiza el complemento a dos del
dato de 16 especificado por D. El complemento a dos del dato inicial se
almacena en D.
S El complemento a dos se realiza invirtiendo todos los bits y sumando 1 al
dato invertido.
S Esta instrucción es útil para cambiar de signo un dato de 16 bits.
4 -- 179
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando el modificador de índice
excede el límite. La dirección del error se almacena en DT9017 y se
mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando el modificador de índice excede
el límite. La dirección del error se guarda en DT9018.
4 -- 180
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F86 (DNEG)
Concepto
Complemento a dos de datos
de 32 bits
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
3
Realiza el complemento a dos de datos de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Address
Condición de ejecución
Instrucción
10
ST
11
F 86
R20
DT
R
20
(DNEG)
0
F86 DNEG , DT 0
10
D
D
16 bits de menor peso del área de 32 bits donde se amacena el dato a
complementar y después de realizar la operación almacena su complemento a
dos
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Realiza el complemento a dos del dato almacenado en los registros de datos DT1 y DT0 cuando la
entrada R20 está en ON. El dato complementado se almacena en los registros de datos DT1 y
DT0.
Destino
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
K--3
Decimal
16 bits de mayor peso
16 bits de menor peso
R20: ON
Destino
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
Binario
Decimal
K3
16 bits de mayor peso
16 bits de menor peso
4 -- 181
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, realiza el complemento a dos del
dato de 32 especificado por D. El complemento a dos del dato inicial se
almacena en D+1 y D.
S El complemento a dos se realiza invirtiendo todos los bits y sumando 1 al
dato invertido.
S Esta instrucción es útil para cambiar de signo un dato de 32 bits
S Cuando se procesan datos de 32 bits o de 8 dígitos BCD, los 16 bits de
mayor peso se determinan automáticamente al definir los 16 bits de menor
peso.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando el modificador de índice
excede el límite. La dirección del error se almacena en DT9017 y se
mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando el modificador de índice excede
el límite. La dirección del error se guarda en DT9018.
4 -- 182
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Paso
F87 (ABS)
Concepto
Valor absoluto de datos de 16
bits
3
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Obtiene el valor absoluto de datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 87
DT
R20
R
20
(ABS)
0
F87 ABS , DT 0
10
D
D
16 bits donde se almacena el dato inicial y después de ejecutar la instrucción
almacena su valor absoluto
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada R20 está en ON, obtiene el valor absoluto del dato almacenado en el registro de
datos DT0. El valor absoluto obtenido se almacena en el registro de datos DT0.
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
DT0
Decimal
Destino
K--3
R20: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
DT0
Decimal
K3
Descripción
S Al estar la condición de ejecución en ON, obtiene el valor absoluto del dato de
16 bits especificado por D. El valor absoluto obtenido se amacena en D.
S Esta instrucción es útil cuando se procesan datos que cambian de signo.
4 -- 183
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el dato de 16 bits es K-32768 (H8000).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- el dato de 16 bits es K-32768 (H8000).
-- La dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante si el valor del dato de 16 bis está
comprendido entre K-1 a K-32767 (HFFFF a H8001).
4 -- 184
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Valor absoluto de datos de 32
bits
F88 (DABS)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Obtiene el valor absoluto de datos de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F 88
R20
DT
R
20
(DABS)
0
F88 DABS , DT 0
10
D
D
16 bits de menor peso del área de 32 bits donde se almacena el dato a
complementar y después de realizar la operación almacena su complemento a
dos
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
WX WY WR
D
N/A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada R20 está en ON, obtiene el valor absoluto del dato almacenado en los registros
de datos DT1 y DT0. El valor absoluto obtenido se almacena en los registros de datos DT1 y DT0.
Destino
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1
Binario
K--843458245
Decimal
16 bit de mayor peso
16 bit de menor peso
R20: ON
Destino
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1
Binario
Decimal
K843458245
16 bit de mayor peso
16 bits de menor peso
4 -- 185
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, obtiene el valor absoluto del dato de
32 bits especificado por D. El valor absoluto obtenido se almacena en D+1 y
D.
S Esta instrucción es útil cuando se procesan datos que cambian de signo.
S Cuando se procesan datos de 32 bits o de 8 dígitos BCD, los 16 bits de
mayor peso se determinan automáticamente al definir los 16 bits de menor
peso.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el dato de 32 bits es K-2147483648 (H80000000).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- el dato de 32 bits es K-32768 K-2147483648 (H80000000).
-- La dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante si el valor del dato de 16 bis está
comprendido entre K-1 a K-2147483647 (HFFFFFFFF a H80000001).
4 -- 186
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F89 (EXT)
Concepto
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Extensión de código
Copia el bit de signo del dato de 16 bits en cada uno de los bits del
área de 16 bits contigua y superior al área donde está almacenado el
dato.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instruction
10
ST
11
F 89
R20
R
20
(EXT)
DT
10
0
F89 EXT , DT 0
D
D
16 bits donde se almacena el dato inicial
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada R20 está en ON, copia el bit de signo del dato almacenado en el registro de
datos DT0 en cada uno de los bits de DT1. El dato extendido, almacenado en DT1 y DT0 ,se
maneja como un dato de 32 bits.
Bit de signo (0: positivo, 1: negativo)
Destino
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Decimal
K--2
R20: ON
Destino
DT1
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Binario
Decimal
K--2
16 bits de mayor peso
(área extendida de 16 bits)
16 bits de menor peso
4 -- 187
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Con esta instrucción se convierten datos de 16 bits a datos de 32 bits.
S Al estar la condición de ejecución en ON, se copia el bit de signo del dato
especificado por D en cada bit de D+1. El resultado extendido se almacena
en D+1 y D, como un dato de 32 bits.
S Después de aplicar esta instrucción a un dato de 16 bits, el resultado se
puede utilizar como operando de instrucciones que manejan datos de 32 bits.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando el modificador de índice
excede el límite. La dirección del error se almacena en DT9017 y se
mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando el modificador de índice excede
el límite. La dirección del error se guarda en DT9018.
4 -- 188
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F90 (DECO)
Concepto
Decodificación
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Decodifica el dato especificado
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 90
R20
10
F90 DECO, WX 0, DT 0, WR 0
S
n
Instrucción
D
R
20
(DECO)
WX
0
DT
0
WR
0
S
16 bits (registro o constante) donde se almacena el dato a decodificar
n
16 bits (constante o registro) que indican el bit inicial y el número de bits a
decodificar
D
16 bits iniciales donde se almacena el dato decodificado
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
n
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada R20 está en ON, decodifica la palabra de entradas externas WX0 según las
condiciones especificadas por el contenido de DT0. El dato decodificado se almacena en la
palabra de relés internos WR0.
S DT0: H404
Nº de bits a decodificar: 4 bits
Posición del primer bit a decodifcar: bit 4
Bit 4
Fuente
[S]
Se decodifican 4 bits, desde el bit 4 al bit 7
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
de la palabra WX0.
0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1
WX0
[Binario: 0111 (decimal: K7)]
4 bits
Destino
[D]
R20: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 Al estar la entrada R20 en ON, se pone a “1
(ON)” el bit cuya posición se corresponde con
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
WR0
el dato decodificado, poniendose a 0 el resto de
los bits de WR0
4 -- 189
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se decodifica el dato de 16 bits
especificado por S siguiendo las condiciones definidas por n. El resultado se
almacena en el área de 16 bits especificada por D.
S La longitud del área de destino dependerá de la longitud del dato a
decodificar.
J Como declarar n
S n especifica la posición el bit a partir del cual se comienza la decodificación y el número de bits a
decodificar. Para declarar n se emplean datos hexadecimales.
dato de 16 bits
Pos del bit 15 ·
n
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
Dígito
Dígito
Dígito
Dígito
hexadecimal 3 hexadecimal 2 hexadecimal 1 hexadecimal 0
n: H : j : j
1
2
Bit inicial del dato a
decodificar
(rango: H0 to HF)
Valor
programado
Posición del
bit inicial
H0
0
H1
1
H2
2
H3
3
H4
4
H5
5
H6
6
H7
7
H8
8
H9
9
HA
10
HB
11
HC
12
HD
13
HE
14
HF
15
Número de bits a decodificar
(rango: H0 to H8)
Valor
programado
Posición del
bit inicial
H0
0
H1
1
H2
2
H3
3
H4
4
H5
5
H6
6
H7
7
H8
8
. Nota
Los dígitos hexadecimales 1 y 3 no se utilizan.
4 -- 190
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
S Relación entre el número de bits a decodificar y la longitud del área donde se almacena el dato
decodificado
Número de bits a decodificar
Longitud del área de destino
Bit utilizados en el área de
destino
1
1-palabra
2-bit*
2
1-palabra
4-bit*
3
1-palabra
4
1-palabra
16-bit
5
2-palabras
32-bit
6
4-palabras
64-bit
7
8-palabras
128-bit
8
16-palabras
256-bit
8-bit*
*Los bit que no se utilizan en el área de destino se ponen a “0”.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el número de bits a decodificar no está comprendido entre 1 y 8.
-- la suma del número de bits a decodificar y la posición del bit inicial es
mayor que 16.
-- si el área para almacenar el resultado es mayor de 16 palabras.
-- la dirección del error se almacena en DT9017 y se mantiene..
S Bandera de error (R9008):Pasa a ON durante un instante cuando
-- el modificador de índice excede el límite
-- el número de bits a decodificar no está comprendido entre 1 y 8.
-- la suma del número de bits a decodificar y la posición del bit inicial es
mayor que 16.
-- si el área para almacenar el resultado es mayor de 16 palabras.
-- la dirección del error se guarda en DT9018.
4 -- 191
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo
S Decodificación de datos de 4 bits en áreas de destino de 16 bits.
Condiciones para la decodificación (n)
Bit inicial:
H0 (bit 0)
Número de bits a decodificar:
H4 (4 bits)
Dato a decodificar
[Binario (decimal)]
0000 (K0)
0001 (K1)
0010 (K2)
0011 (K3)
0100 (K4)
0101 (K5)
0110 (K6)
0111 (K7)
1000 (K8)
1001 (K9)
1010 (K10)
1011 (K11)
1100 (K12)
1101 (K13)
1110 (K14)
1111 (K15)
4 -- 192
Dato decodificado
15 S
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
S 12
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
11 S
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
S
8
7
S
S
4
3
S
S
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F91(SEGT)
Concepto
Decodificación a 7 segmentos
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Convierte un dato de 16 bits en otro de 4 dígitos para controlar un
display de 7 segmentos.
Programa ejemplo
Lógica
Diagrama en escalera
Address
Condición de ejecución
10
ST
11
F 91
X0
10
Instrucción
F91 SEGT , DT 0 , WR 0
X
0
(SEGT)
DT
0
WR
0
D
S
S
16 bits (constante o registro) a decodificar
D
16 bits iniciales donde se almacena el dato decodificado para controlar el
display de 7 segmentos
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante IModific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte el contenido del registro de datos DT0 a 4 dígitos que
aparecerán el el display de 7 segmentos. El resultado de la conversión se almacena en las
palabras de relés internos WR1 y WR0.
Fuente
Pos del bit 15 · · 12 11 · · 8 7 · · 4 3 · · 0
1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1
DT0
Hexadecimal
A
B
C
D
R20:
ON
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
WR1
0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0
Display 7
A
b
segmentos
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
WR0
0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0
Display 7
C
d
segmentos
4 -- 193
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, convierte el dato de 16 bits
especificado por S a 4 dígitos que aparecerán en un display de 7 segmentos.
El dato convertido se almacena en el área que comienza en los 16 bits
especificados por D.
S Tabla de conversión
Dato a convertir
Datos de 8 bits para display
de 7 segmentos
Hexadecimal
Binario
g
f
e
d
c
b
H0
0 0 0 0
0 0 1 1
1 1 1 1
H1
0 0 0 1
0 0 0 0
0 1 1 0
H2
0 0 1 0
0 1 0 1
0 0 1 1
H3
0 0 1 1
0 1 0 0
1 1 1 1
H4
0 1 0 0
0 1 1 0
0 1 1 0
H5
0 1 0 1
0 1 1 0
1 1 0 1
H6
0 1 1 0
0 1 1 1
1 1 0 1
H7
0 1 1 1
0 0 1 0
0 1 1 1
H8
1 0 0 0
0 1 1 1
1 1 1 1
H9
1 0 0 1
0 1 1 0
1 1 1 1
HA
1 0 1 0
0 1 1 1
0 1 1 1
HB
1 0 1 1
0 1 1 1
1 1 0 0
HC
1 1 0 0
0 0 1 1
1 0 0 0
HD
1 1 0 1
0 1 0 1
1 1 1 0
HE
1 1 1 0
0 1 1 1
1 0 0 1
HF
1 1 1 1
0 1 1 1
0 0 0 1
a
Display de Organización
7
del display de 7
segmentos
segmentos
a
f
e
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
S Error flag (R9008):
4 -- 194
g
-- el modificador de índice excede el límite
-- La longitud del dato cinvertido es mayor que la permitida para su
almacenamiento.
-- La dirección del error se almacena en DT9017 y se mantiene.
Turns ON for an instant when:
-- el modificador de índice excede el límite
-- La longitud del dato cinvertido es mayor que la permitida para su
almacenamiento.
-- La dirección del error se guarda en DT9018.
b
c
d
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F92 (ENCO)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Codificación
Codifica el dato especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 92
X0
10
F92 ENCO, WR 0, DT 0 , DT 1
S
n
Instrucción
D
X
0
(ENCO)
WR
0
DT
0
DT
1
S
16 bits iniciales del área donde está almacenado el dato a codificar
n
16 bits (constante o registro) que indican el bit inicial donde se comienza el
almacenamiento del dato codificado y el número de bits a codificar
D
16 bits donde se almacena el dato codificado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, codifica el contenido de la palabras de relés externos WR1 y WR0
según las condiciones que imponga el contenido de DT0. El dato codificado se almacena en el
registro de datos DT1, comenzando por la posición 0.
S DT0: H0005
Número de bits a codificar: 25 = 32 bits (WR1 y WR0)
Bit inicial del donde se almacena el dato codificado: bit 0
Fuente
32 bits especificados por DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
WR1
[S]
El 8º bit está a “1”
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
WR0
Bit inicial
X0: ON
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT1
[D]
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 El dato codificado K8
Decimal
K8
(decimal) se almacena en
DT1.
Los bits del 8 al 15 se Dato codificado:K8
rellenan con 0.
4 -- 195
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se codifica el dato especificado por
S siguiendo las condiciones definidas por n. El resultado se almacena en el
área de 16 bits especificada por D, comenzando el almacenamiento por el bit
especificado.
S Si más de un bit está a 1 en el dato a codificar se toma como válido el bit de
mayor peso.
S Los bits no utilizados en el área de destino se ponen a 0.
J Como declarar n
S n especifica la posición del bit a partir del cual se comienza a almacenar el dato codificado y el
número de bits a codificar. Para declarar n se emplean datos hexadecimales.
Dato de 16 bits
Pos del bit 15 ·
· 12 11 ·
n
· 8 7
·
· 4 3 ·
0 0 0 0
Dígito
Dígito
hexadecimal 3 hexadecimal 2
· 0
0 1 0 1
Dígito
Dígito
hexadecimal 1 hexadecimal 0
S Los dígitos hexadecimales 1 y 3 no se utilizan.
n: H : j : j
1
2
Bit inicial
(rango: H0 a HF)
Valor
programado
4 -- 196
Bit inicial
Número de bits a codificar
(rango: H1 a H8)
Valor
programado
Número de
bits
H1
2
H2
4
H0
0
H3
8 (1 byte)
H1
1
H4
16 (1 palabra)
H2
2
H5
32 (2 palabras)
H3
3
H6
64 (4 palabras)
H4
4
H7
128 (8 palabras)
H5
5
H8
256 (16 palabras)
H6
6
H7
7
H8
8
H9
9
HA
10
HB
11
HC
12
HD
13
HE
14
HF
15
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el número de bits a codificar no está comprendido entre 1 y 8.
-- la suma del número de bits a codificar y la posición del bit inicial es mayor
que 16.
-- el dato a codificar es 0.
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando
-- el modificador de índice excede el límite
-- el número de bits a codificar no está comprendido entre 1 y 8.
-- la suma del número de bits a codificar y la posición del bit inicial es mayor
que 16.
-- el dato a codificar es 0.
-- la dirección del error se guarda en DT9018.
J Ejemplo
S Condiciones de la codificación (n)
-- posicion del bit de destino donde se comienza a almacenar el dato codificado: H0 (bit 0)
-- número de bits a codificar: H4 (24 = 16 bits)
S En la tabla siguiente se muestra el resultado de la codificación de datos de 16 bits:
Dato a codificar
15 S
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
S 12
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
11 S
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
S
8
7
S
S
4
3
S
S
0
Dato codificado
[Binario (decimal)]
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
(K0)
(K1)
(K2)
(K3)
(K4)
(K5)
(K6)
(K7)
(K8)
(K9)
(K10)
(K11)
(K12)
(K13)
(K14)
(K15)
4 -- 197
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F93 (UNIT)
Concepto
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Combinación de datos de 16 bits
Toma los 4 bits de menor peso de cada una de las áreas de 16 bits
especificadas y los combina en una sola palabra. El resultado se
almacena en el un área de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 93
X0
10
F93 UNIT, DT 0, K 3 , DT 100
S
n
Instrucción
0
(UNIT)
DT
0
K
3
DT
D
X
100
S
Primera zona de 16 bits de donde se toman los 4 bits primeros
n
16 bits (constante o registro) que especifica el número de áreas de 16 bits
D
16 bits donde se almacena el dato combinado
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, toma los 4 bits de menor peso de los registros DT2, DT1 y DT0, los
combina en una palabra que almacena en el registro de datos DT100.
Fuente
Pos del bit 15 ·
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
DT2
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
X0: ON
Destino
Pos del bit 15 ·
DT100
· 12 11 ·
· 8 7
·
· 4 3
los bits del 12 al 15 se rellenan con 0.
4 -- 198
·
· 0
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Toma los 4 bits de menor peso (bits del 0 al 3) de las áreas especificadas,
comenzando por la definida por S y combina los bits extraídos de las
diferentes áreas de 16 bits en una sola palabra. Al estar la condición de
ejecución en ON, el dato combinado se almanacena en el área de 16 bits
especificada por D.
S n especifica el número de áreas de datos de las que se van a extraer los 4
bits de menor peso
(rango de n: K0 a K4)
S Si n es K0, la instrucción no se ejecuta.
S Si n < K4, se rellenan con “0” las posiciones de destino que restan después
de extraer los 4 bits de menor peso de cada una de las áreas especificadas.
Fuente
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Dígito 1
S
Dígito 2
Dígito 3
Dígito 4
S+1
n: número
de datos
combinados
S+2
S+3
Los bit del 4 al 15 no se
utlizan
Destino
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Dígito 4 Dígito 3 Dígito 2 Dígito 1
D
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el número de áreas a combinar es mayor es mayor que 5.
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- el número de áreas a combinar es mayor es mayor que 5.
-- la dirección del error se guarda en DT9018.
4 -- 199
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F94 (DIST)
Concepto
Distribución de datos de 16 bits
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Divide el dato de 16 bits especificado en unidades de 4 bits, que
almacena en los 4 bits de menor peso de diferentes áreas de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F
X0
10
n
X
94
DT
F94 DIST, DT100, K 4 , DT 0
S
Instrucción
D
0
(DIST)
100
K
4
DT
0
S
16 bits (constante o registro) a dividir
n
16 bits (constante o registro) que especifican el el número de unidades de 4 bits
D
Primer área de 16 bits donde se empiezan a almacenar las unidades de 4 bits
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
A
A
A
A
A
A
A
A
A
A
A
n
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, divide el dato de 16 bits del registro DT100 en unidades de 4 bits y
las almacena los 4 bits de menor peso ( bits del 0 a 3) de los registros de datos del DT0 al DT3.
Fuente
Pos del bit 15 ·
DT100
n: 4
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0
X0: ON
Destino
Pos del bit 15 ·
4 -- 200
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
DT0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DT1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
DT2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
DT3
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Divide el área de 16 bits especificada por S en unidades de 4 bits (del bit 0 al
3), y se distribuyen en los 4 bits de menor peso de las áreas de 16 bits que
comienzan en el área especificada por D
S n especifica el número de unidades de 4 bits a distribuir. (rango de n: K0 a
K4)
S Si n es igual a K0, la instrucción no se ejecuta.
Fuente
Pos del bit 15 ·
S
n: 1 a 4
· 12 11 ·
Dígito 4
· 8 7
Dígito 3
·
· 4 3
Dígito 2
·
· 0
Dígito 1
Condición de
ejecución: ON
Destino
Pos del bit 15 ·
· 12 11 ·
· 8 7
·
· 4 3
·
· 0
D
0 0 0 0 0 0 0 0 0 0 0 0
Dígito 1
D+1
0 0 0 0 0 0 0 0 0 0 0 0
Dígito 2
D+2
0 0 0 0 0 0 0 0 0 0 0 0
Dígito 3
D+3
0 0 0 0 0 0 0 0 0 0 0 0
Dígito 4
Los bits del 4 a 15 se rellenan con 0.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite.
-- n es mayor que 5.
-- La longitud del dato convertido es mayor que la permitida para su
almacenamiento.
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite.
-- n es mayor que 5.
-- La longitud del dato convertido es mayor que la permitida para su
almacenamiento.
-- la dirección del error se guarda en DT9018.
4 -- 201
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F95 (ASC)
Concepto
Paso
Disponibilidad
15
Todos FP0s/ FP--Ms y series
C24, C40C56 y C72 del FP1
Conversión de caracteres a
código ASCII
Convierte una constante de caracteres a código ASCII.
3
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Constante de caracteres
10
ST
11
F
95
20
(ASC)
DT
F95 ASC, M ABC1230 DEF, DT 2
S
R
M ABC1230 DEF
R20
10
Instrucción
2
D
S
Constante de caracteres (máximo 12 caracteres)
D
Área de 16 bits donde se comienzan a allmacenar las 6 palabras en código
ASCII
J Operandos
Operando
Temporizador/
Registro
Registro
Contador
de índice
Contacto
WX WY WR
SV
EV
DT
S
N/A N/A N/A
N/A
N/A
N/A
D
N/A
A
A
A
A
A
IX
Constante
IY
K
H
M
N/A N/A N/A N/A
Modific.
de índice
A
N/A
N/A N/A N/A N/A N/A
A:Disponible
N/A:No disponible
N/A
J Explicación del ejemplo
S Cuando la entrada R20 está en ON, convierte la constante de caracteres “ABC1230 DEF” a
código ASCII. El código ASCII se almacena en los registros de datos del DT2 al DT7.
Indicador de constante tipo caracter
Fuente
[S]
Constante de caracteres
M ABC1230 DEF
máximo 12 letras
R20: ON
6 palabras (seis áreas de 16 bits)
Destino
Reg. de datos
[D]
DT7
DT6
DT3
DT4
DT2
2 0 4 6 4 5 4 4 2 0 3 0 3 3 3 2 3 1 4 3 4 2 4 1
ASCII HEX
Caracteres ASCII
F
ESPACIO
4 -- 202
DT5
E
D
0
3
2
1
C
B
A
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, convierte la constante de
caracteres especificada por S a código ASCII. El código ASCII se almacena
en 6 palabras (6 áreas de 16 bits) que comienzan por la especificada por D.
S Si el número de caracteres especificado por S es menor que 12, el área de
destino que no se completa se rellena con el carácter ESPACIO (código
ASCII H20).
. Nota
La constante de caracteres M se introducen con los diferentes
softwares (NPST--GR, FPSOFT y NAIS Control).
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando el código ASCII ocupa
más espacio que el destinado para su almacenamiento (6 palabras: 6 áreas
de 16 bits). La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando el código ASCII ocupa más
espacio que el destinado para su almacenamiento (6 palabras: 6 áreas de 16
bits). La dirección del error se guarda en DT9018.
b7
b6
b5
b7
0
0
0
0
1
1
1
1
b6
0
0
1
1
0
0
1
1
b5
0
1
0
1
0
1
0
1
6
7
ASCII
b1 hexadecimal
b4
b3
b2
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
Dígito de mayor peso
0
1
3
4
5
NUL DLE
SPACE
0
@
P
1
SOH DC1
!
1
A
Q
a
q
0
2
STX DC2
”
2
B
R
b
r
1
1
3
ETX DC3
#
3
C
S
c
s
1
0
0
4
EOT DC4
$
4
D
T
d
t
0
1
0
1
5
ENQ NAK
%
5
E
U
e
u
0
1
1
0
6
ACK SYN
&
6
F
V
f
v
0
1
1
1
7
BEL ETB
’
7
G
W
g
w
1
0
0
0
8
BS CAN
(
8
H
X
h
x
1
0
0
1
9
HT
EM
)
9
I
Y
i
y
1
0
1
0
A
LF SUB
*
:
J
Z
j
z
1
0
1
1
B
VT ESC
+
;
K
[
k
{
1
1
0
0
C
FF
FS
,
<
L
\
l
1
1
0
1
D
CR
GS
--
=
M
]
m
}
1
1
1
0
E
SO
RS
.
>
N
^
n
~
1
1
1
1
F
SI
US
/
?
O
_
o
DEL
Dígito de menor peso
2
p
4 -- 203
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F96 (SRC)
Concepto
Búsqueda de datos en tablas
Paso
Disponibilidad
7
Todos FP0s /
FP--Ms y FP1s
Busca un valor en una tabla formada por datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X10
10
10
ST
11
F 96
F96 SRC , DT100 , DT 0 , DT 20
S1
S2
Instrucción
S3
X
10
(SRC)
DT
100
DT
0
DT
20
S1
16 bits (constante o registro) donde está almacenado el valor buscado
S2
16 bits iniciales del bloque
S3
16 bits finales del bloque
J Operandos
Contacto
Operando
WX WY WR
S1
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A
A
A
A
A
A
S2
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
S3
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
4 -- 204
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Al estar la entrada X10 en ON, se comienza la búsqueda del valor almacenado en el registro de
datos DT100, en el bloque de registros comprendido entre DT0 y DT20.
Cuando finaliza la búsqueda, el resultado se almacena como se explica a continuación.
S El número de datos que coinciden con el valor de DT100 se almacena en el registro especial de
datos DT9037.
S La posición del primer registro cuyo valor coincide con el dato buscado, se almacena en el registro
especial de datos DT9038.
Valor buscado
DT100:
1 2 3 4
[S1]
Bloque de áreas de 16 bits
posición
DT0: 1 2 1 1 0 [S2]
DT1: 1 2 F F 1
*DT2: 1 2 3 4 2*
DT3: 7 F F F 3
Búsqueda
*DT19: 1 2 3 4 19
*DT20: 1 2 3 4 20 [S3]
S Número de datos que coinciden con el valor de DT100: 3 registros de datos
Pos del bit 15 ·
DT9037
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 K3
Posición del primer registro cuyo valor coincide
co el de DT100, contando desde DT0: posición 2
Pos del bit 15 ·
DT9038
· 12 11 ·
· 8 7
·
· 4 3 ·
· 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 K2
Descripción
S Al estar la condición de ejecución en ON, busca los valores que coinciden
con S1 en el bloque de áreas de 16 bits definido por S2 y S3 (área inicial y
final respectivamente).
Cuando se finaliza la operación de búsqueda, el resultado se almacena como
se explica a continuación:
-- El número de registros cuyo valor coincide con el especificado por S1 se
almacena en el registro especial de datos DT9037.
-- La posición,contando desde S2, del primer registro cuyo valor coincide con
el de S1 se almacena en el registro especial de datos DT9038 .
S Las áreas de 16 bits inicial y final, S2 y S3 deberían:
-- ser el mismo tipo de operando.
-- S2
S3.
S El dato se busca partiendo de S2.
4 -- 205
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- S2 > S3.
-- la dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando
-- el modificador de índice excede el límite
-- S2 > S3.
-- la dirección del error se guarda en DT9018.
4 -- 206
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F100(SHR)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Desplazamiento de n bits a la
derecha en datos de 16 bits
Desplaza un número n de bits hacia la derecha.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F100
X0
10
F100 SHR , DT 0 , K 4
D
Instrucción
X
0
(SHR)
DT
0
K
4
n
D
Dato de 16 bits a desplazar a la derecha
n
16 bits (constante o registro) que especifican el número de bits a desplazar
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza 4 bits a la derecha el contenido del registro de datos DT0.
Al desplazarse los 4 bits a la derecha:
-- el bit 3 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- los 4 bits de mayor peso (del bit 12 al 15) de DT0 se rellenan con 0.
n: 4
[D]
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1
DT0
X0: ON
[D]
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0· 0 1 0 1 0 0 1 1 0 1 1 0 0
DT0
Se transfiere el bit 3 a
R9009 (bandera de
acarreo).
En este caso, los 4 bits de mayor
peso de DT0 se rellenen con 0.
4 -- 207
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza n bits a la derecha el dato
de 16 bits especificado por D.
S Al desplazar los n bits a la derecha:
-- los n bits de mayor peso del dato de 16 bits especificado por D se rellenan
con 0.
-- el bit n se transfiere al relé interno especial R9009 (bandera de acarreo).
n
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
Condición de
ejecución: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0
D
El bit n se
transfiere a
R9009 (bandera
de acarreo).
Los n bits de mayor peso
de D se rellenan con 0.
S Se pueden realizar desplazamientos de 1 a 255 bits, por lo tanto sólo se
utilizan los 8 bits de menor peso del parámetro [n], los necesarios para
codificar el número 255.
15 · · 1211 · · 8 7 · · 4 3 · · 0
[n ]
0 0 0 00 0 0 0
Los 8 bits de mayor K0 K255
peso no se utilizan (H00 HFF)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el bit transferido es un 1.
4 -- 208
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Desplazamiento de n bits a la
izquierda en datos de 16 bits
F101(SHL)
Concepto
Paso
Desplaza un número n de bits hacia la izquierda.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F101
X0
10
F101 SHL , DT 0 ,
Instrucción
K4
X
0
(SHL)
DT
0
K
4
n
D
D
Dato de 16 bits a desplazar a la izquierda
n
16 bits (constante o registro) que especifican el número de bits a desplazar
Rango n: K0 a K255 (H0 a HFF)
J Operandos
Contacto
Operando
WX WY WR
emporizador/
Contador
Registro
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza 4 bits a la izquierda el contenido del registro de datos DT0.
Al desplazarse los 4 bits a la izquierda:
-- el bit 12 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- los 4 bits de menor peso (del bit 0 al 3) de DT0 se rellenan con 0.
n: 4
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1
El bit 12 se transfiere a
R9009 (bandera de
acarreo).
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 1 1· 0 1 1 0 0 1 0 1 1 0 0 0 0
En este caso, los 4 bits de menor
peso de DT0 se relllenan con 0.
4 -- 209
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza n bits a la izquierda el
dato de 16 bits especificado por D.
S Al desplazar los n bits a la izquierda:
-- los n bits de menor peso del dato de 16 bits especificado por D se rellenan
con 0.
-- el bit en la posición 16--n se transfiere al relé interno especial R9009
(bandera de acarreo).
n
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
Condición
de ejecución: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0
D
El bit 16--n se tranfiere a
R9009 (bandera de
acarreo).
n bits comenzando desde la
posición 0 se rellenan con 0.
S Se pueden realizar desplazamientos de 1 a 255 bits, por lo tanto sólo se
utilizan los 8 bits de menor peso del parámetro [n], los necesarios para
codificar el número 255.
15 · · 1211 · · 8 7 · · 4 3 · · 0
[n ]
0 0 0 00 0 0 0
los 8 bits de mayor
paso no se utilizan
K0 K255
(H00 HFF)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Se pone a ON durante un instante cuando el bit transferido es un 1.
4 -- 210
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F105 (BSR)
Concepto
Desplazamiento de1 dígito a la
derecha
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Desplazamiento hacia la derecha de un dígito hexadecimal (4 bits) en
datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F105
DT
X0
10
X
0
(BSR)
0
F105 BSR , DT 0
D
D
Dato de 16 bits a desplazar a la derecha
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza un dígito hexadecimal (4 bits) a la derecha el contenido del
registro de datos DT0.
S Al desplazar el dígito hexadecimal (4 bits) a la derecha:
-- el dígito 1 (del bit 0 al 3) se transfiere al dígito de menor peso (del bit 0 al 3) del registro especial
de datos DT9014.
-- el dígito hexadecimal de mayor peso (del bit 12 al 15) de DT0 se rellena con 0.
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
9
9
9
9
Hexadecimal
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1
Binario
DT0
Hexadecimal
9
0
9
9
Este dígito hexadecimal se pone a 0.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
Binario
DT9014
0
0
0
9
Hexadecimal
4 -- 211
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza 1 dígito hexadecimal (4
bits) a la derecha el dato de 16 bits especificado por D.
S Al desplazar el dígito hexadecimal (4 bits) a la derecha:
-- El dígito 1 (del bit 0 al 3) del dato especificado por D se transfiere al dígito
de menor peso (del bit 0 al 3) del registro especial de datos DT9014.
-- El dígito hexadecimal 4 (del bit 12 al 15) del dato de 16 bits especificado
por D se rellena con 0.
D
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Hexadecimal Dígito 4 Dígito 3 Dígito 2 Dígito 1
Condición de
ejecución: ON
D
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0
Dígito 4 Dígito 3 Dígito 2
Hexadecimal
Este dígito se rellena con 0.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT9014 Hexadecimal
0
0
0
Dígito 1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 212
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F106 (BSL)
Concepto
Desplazamiento de 1 dígito a
la izquierda
Paso
Disponibilidad
3
Todos FP0s /
FP--Ms y FP1s
Desplazamiento hacia la izquierda de un dígito hexadecimal (4 bits) en
datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F106
X
0
(BSL)
DT
X0
10
0
F106 BSL, DT 0
D
D
Dato de 16 bits a desplazar a la izquierda
J Operandos
Operando
Contacto
WX WY WR
D
N/A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza un dígito hexadecimal (4 bits) a la izquierda el contenido
del registro de datos DT0.
Al desplazar el dígito hexadecimal (4 bits) a la izquierda:
-- el dígito 4 (del bit 12 al 15) se transfiere al dígito de menor peso (del bit 0 al 3) del registro
especial de datos DT9014.
-- el dígito hexadecimal de menor peso (del bit 0 al 3) de DT0 se rellena con 0.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
DT0
Hexadecimal
8
1
0
0
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Binario
DT0
Hexadecimal
0
1
0
0
Este dígito hexadecimal
se pone a 0.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
Binario
DT9014
Hexadecimal
0
0
0
8
4 -- 213
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza 1 dígito hexadecimal (4
bits) a la izquierda el dato de 16 bits especificado por D.
S Al desplazar el dígito hexadecimal (4 bits) a la izquierda:
-- El dígito 4 (del bit 12 al 15) del dato especificado por D se transfiere al
dígito de menor peso (del bit 0 al 3) del registro especial de datos DT9014.
-- El dígito hexadecimal 1 (del bit 0 al 3) del dato de 16 bits especificado por D
se rellena con 0.
D
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Hexadecimal Dígito 4 Dígito 3 Dígit 2 Dígito 1
Condición de
ejecución: ON
D
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0
Hexadecimal Dígito 3 Dígito 2 Dígit 1
Este dígito hexadecimal
pasa a 0.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT9014 Hexadecimal
0
0
0
Dígito 4
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 214
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F110(WSHR)
Disponibilidad
Todos FP0s /
Desplazamiento de 1 palabra a la 5
FP--Ms y FP1s
derecha
Desplazamiento de una palabra (16 bits) hacia la derecha en un bloque
de datos de 16 bits.
Concepto
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
X
11
F110
(WSHR)
X0
10
F110 WSHR , DT 0 , DT 2
D1
Instrucción
0
DT
0
DT
2
D2
D1
16 bits iniciales del bloque
D2
16 bits finales del bloque
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
D2
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza una palabra (16 bits) hacia la derecha el bloque de
registros del DT0 al DT2.
Al desplazar la palabra (16 bits) a la derecha:
-- el contenido de DT0 se pierde.
-- el registro de datos DT2 se rellena con 0.
Bloque de registros especificado (3 palabras)
[D2]
Reg. de datos
Hexadecimal
DT2
0 2 1 2
[D1]
DT1
0 0 3 0
DT0
0 2 3 2
El contenido de
DT0 se pierde.
X0: ON
Reg. de datos
Hexadecimal
DT2
0 0 0 0
DT1
0 2 1 2
DT0
0 0 3 0
DT2 se rellena con
0.
4 -- 215
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza una palabra (16 bits)
hacia la derecha todo el bloque de datos especificado por D1 (16 bits
iniciales) y D2 (16 bits finales).
S Al desplazar la palabra (16 bits) hacia la derecha:
-- el contenido de D1 (palabra inicial) se pierde.
-- D2 (palabra final) se rellena con 0.
Bloque de datos especificado
D2
D2-1
D1-1
D1
Condición
de ejecución: ON
D2
0
D2-1
D1-1
D1
El contenido
de la palabra
inicial se
pierde.
La palabra final se rellena
con 0.
S Se debe cumplir que:
-- D1 y D2 sean el mismo tipo de operando.
-- D1
D2.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se guarda en DT9018.
4 -- 216
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F111 (WSHL)
Concepto
Desplazamiento de 1 palabra a
la izquierda
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Desplazamiento de una palabra (16 bits) hacia la izquierda en un
bloque de datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F111
X0
10
F111 WSHL , DT 0 , DT 2
D1
Instrucción
X
0
(WSHL)
DT
0
DT
2
D2
D1
16 bits iniciales del bloque
D2
16 bits finales del bloque
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
D2
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza una palabra (16 bits) hacia la izquierda el bloque de
registros del DT0 al DT2.
Al desplazar la palabra (16 bits) a la izquierda:
-- el contenido de DT2 se pierde.
-- el registro de datos DT0 se rellena con 0.
Bloque de registros especificado (3 palabras)
[D2]
Reg. de datos
Hexadecimal
DT2
0 2 1 2
[D1]
DT1
0 0 3 0
DT0
0 2 3 2
El contenido de
DT2 se pierde.
Reg. de datos
Hexadecimal
X0: ON
DT2
DT1
DT0
0 0 3 0
0 2 3 2
0 0 0 0
DT0 se rellena con
0.
4 -- 217
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza una palabra (16 bits)
hacia la izquierda todo el bloque de datos especificado por D1 (16 bits
iniciales) y D2 (16 bits finales) .
S Al desplazar la palabra (16 bits) hacia la izquierda:
-- el contenido de D2 (palabra final) se pierde.
-- D1 (palabra inicial) se rellena con 0.
Bloque de datos especificado
D2
D2-1
D1+1
D1
D2 se pierde.
Condición de
ejecución: ON
D2
D2-1
D1+1
D1
0
D1 se rellena con 0.
S Se debe cumplir que:
-- D1 y D2 sean el mismo tipo de operando.
-- D1
D2.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se guarda en DT9018.
4 -- 218
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F112 (WBSR)
Concepto
Desplazamiento de un dígito en un
bloque de palabras a la derecha
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Desplazamiento de un dígito hexadecimal (4 bits) hacia la derecha en
un bloque de datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
X
11
F112
(WBSR)
X0
10
Instrucción
F112 WBSR , DT 0 , DT 9
0
DT
0
DT
9
D2
D1
D1
16 bits iniciales del bloque
D2
16 bits finales del bloque
J Operandos
Operando
Contacto
WX WY WR
Temporizador/ Registr
Contador
o
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
D2
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza un dígito hexadecimal (4 bits) hacia la derecha el bloque de
registros de datos del DT0 al DT9. Al desplazar un dígito hexadecimal (4 bits) hacia la derecha:
-- el dígito hexadecimal de menor peso (del bit 0 al 3) de DT0 se pierde.
-- el dígio hexadecimal de mayor peso (del bit 12 al 15) del registro de datos DT9 se rellena con 0.
Bloque de datos especificado (40 dígitos)
DT9
DT0
15 · ·1211 · · 8 7 · · 4 3 · · 0 15 · · · · 0 15 · ·1211 · · 8 7 · · 4 3 · · 0
0
2
1
2
0
0
2
3
2
X0: ON
DT9
DT0
15 · ·1211 · · 8 7 · · 4 3 · · 0 15 · · · · 0 15 · ·1211 · · 8 7 · · 4 3 · · 0
0
0
2
1
2
0
0
2
3
El contenido del
dígito de menor peso
del registro DT0 (del
bit 0 al 3) se pierde.
El dígito de mayor peso (del bit 12
al 15) del registro DT9 se rellena
con 0.
4 -- 219
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza un dígito hexadecimal (4
bits) hacia la derecha el bloque de datos especificado por D1 (16 bits
iniciales) y D2 (16 bits finales).
S Al desplazar el dígito hexadecimal (4 bits) hacia la derecha:
-- el contenido del dígito hexadecimal de menor peso (del bit 0 al 3) del dato
de 16 bits especificado por D1 se pierde.
-- el dígito de mayor peso (del bit 12 al 15) del dato de 16 bits especificado
por D2 se rellena con 0.
Bloque de datos especificado
D2
D1
15· ·1211 · · 8 7 · · 4 3 · · 0 15· · · · 0 15· ·1211 · · 8 7 · · 4 3 · · 0
Condición de
ejecución: ON
D2
D1
15· ·1211 · · 8 7 · · 4 3 · · 0 15· · · · 0 15· ·1211 · · 8 7 · · 4 3 · · 0
0
El contenido del
dígito de menor
peso (del bit 0 al
3) de D1 se pierde
El dígito de mayor peso (del bit
12 al 15) se rellena con 0.
S Se debe cumplir que:
-- D1 y D2 sean el mismo tipo de operando.
-- D1
D2.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se guarda en DT9018.
4 -- 220
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
de un dígito en un
F113 (WBSL) Desplazamiento
bloque de palabras a la izquierda
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Desplazamiento de un dígito hexadecimal (4 bits) hacia la izquierda en
un bloque de datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F113
X0
10
F113 WBSL , DT 0 , DT 9
D1
X
0
(WBSL)
DT
0
DT
9
D2
D1
16 bits iniciales del bloque
D2
16 bits finales del bloque
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
D2
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, desplaza un dígito hexadecimal (4 bits) hacia la izquierda el bloque
de registros de datos del DT0 al DT9. Al desplazar un dígito hexadecimal (4 bits) hacia la izquierda:
-- el dígito hexadecimal de mayor peso (del bit 12 al 15) de DT9 se pierde.
-- el dígio hexadecimal de menor peso (del bit 0 al 3) del registro de datos DT0 se rellena con 0.
Bloque de datos especificado (40 dígitos)
DT9
DT0
15 · ·1211 · · 8 7 · · 4 3 · · 0 15 · · · · 0 15 · ·1211 · · 8 7 · · 4 3 · · 0
0
2
1
2
1
0
2
3
2
El contenido del dígito
de mayor peso (del bit
12 al 15) se pierde.
X0: ON
DT9
DT0
15 · ·1211 · · 8 7 · · 4 3 · · 0 15 · · · · 0 15 · 1211 · · 8 7 · · 4 3 · · 0
1
2
2
1
0
2
3
2
0
El contenido del dígito de
menor peso (del bit 0 al 3) se
rellena con 0.
4 -- 221
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, desplaza un dígito hexadecimal (4
bits) hacia la izquierda el bloque de datos especificado por D1 (16 bits
iniciales) y D2 (16 bits finales).
Al desplazar el dígito hexadecimal (4 bits) hacia la izquierda:
-- el contenido del dígito hexadecimal de mayor peso (del bit 12 al 15) del
dato de 16 bits especificado por D2 se pierde.
-- el dígito de menor peso (del bit 0 al 3) del dato de 16 bits especificado por
D1 se rellena con 0.
Bloque de datos especificado
D1
D2
15· ·1211 · · 8 7 · · 4 3 · · 0 15· · · · 0 15· ·1211 · · 8 7 · · 4 3 · · 0
Se pierde el
D2
D1
contenido del dígito
de mayor peso (del 15· ·1211 · · 8 7 · · 4 3 · · 0 15· · · · 0 15· ·1211 · · 8 7 · · 4 3 ·0· 0
bit 12 al 15) de D2.
Condición de
ejecución: ON
El dígito de menor peso
(del bit 0 al 3) se rellena con 0.
S Se debe cumplir que:
-- D1 y D2 sean el mismo tipo de operando.
-- D1
D2.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando:
-- el modificador de índice excede el límite.
-- D1 > D2.
-- La dirección del error se guarda en DT9018.
4 -- 222
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F118(UDC)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
Contador SUMA/RESTA
Programa un contador SUMA/RESTA. 17
Programa ejemplo
Lógica
Diagrama en escalera
X0
50
Entrada de
SUMA/RESTA
Entrada de
contaje
X1
51
52
Dirección
F118 UDC
WR 0
S
50
ST
X
0
51
ST
X
1
52
ST
X
53
F118
DT
R9010
58
ST
60
F60
F60 CMP , K 0 , DT 0
R900B
0
DT
0
R50
64
2
(UDC)
WR
X2 Entrada de reset
D
58
Instrucción
0
R
9010
(CMP)
K
0
DT
0
64
ST
R 900B
65
OT
R
S
16 bits (constante o registro) que contiene el valor de
preselección
D
16 bits que contienen el valor actual
50
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
D1
A
A
A
A
A
A
A
A
A
A
N/A
D2
N/A
A
A
A
A
A
A
A
N/A
N/A
N/A
A:Disponible
N/A:No disponible
4 -- 223
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S El ejemplo muestra un programa que configura los diferentes valores del contador, poniendo a ON
R50 cuando el valor de preselección llega a 0.
S Al producirse un flanco de subida en la entradade reset X2, se transfiere un 0 al registro de datos
DT0. Cuando se produce el flanco de bajada en X2 se tranfiere el contenido de la palabra de relés
internos WR0 a DT0.
S Mientras la entrada de SUMA/RESTA (X0) esté a ON (cuenta hacia arriba), el valor de DT0 se
incrementa en 1 cada vez que se detecta un flanco de bajada en la entrada X1.
S Mientras la entrada de SUMA/RESTA (X0) esté a OFF (cuenta hacia abajo), el valor de DT0 se
decrementa en 1 cada vez que se detecta un flanco de subida en la entrada X1.
S Se utiliza la instrucción F60 (CMP) para comparar el contenido de DT0 con K0.
S Si DT0 = K0, el relé interno especial R900B (bandera = ) pasa a ON y entonces también pasa a ON
el relé interno R50.
J Diagrama de tiempos
X2
ON
OFF
X0
ON
OFF
X1
ON
OFF
R50
ON
OFF
Valor
de DT0
Tiempo
Transferencia de
Reset preselección
4 -- 224
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S El contador cuenta hacia arriba o hacia abajo según sea el estado de la
entrada de SUMA/RESTA. Cuenta hacia arriba si la entrada está a ON y
hacia abajo si está a OFF.
S Si la entrada SUMA/RESTA está a ON, se cuenta hacia arriba (+1), y si está a
OFF, cuenta hacia abajo (--1). El valor actual se almacena en D.
S Estando la entrada de reset a OFF, al pasar la entrada de contaje de OFF a
ON, se inicializa el valor almacenado en [D] y se comienza a contar.
S El valor de preselección, almacenado en S, se tranfiere a D cuando se
detecta el flanco de bajada de la entrada de reset.
S El rango del valor de preselección es de K-32,768 a K32,767 (H8000 a
H7FFF)
S El área de valor actual, D, se pone a 0 cuando se detecta un flanco de subida
en la entrada de reset.
S Se puede controlar el estado de la cuenta, comparando valor actual del
contador, D, con un valor especifico, usando las instrucciones de
comparación.
S Si empleamos una instrucción de comparación, se debe programar
inmediatamente después de la ejecución de la instrucción F118.
J Condiciones de bandera
S Bandera = (R900B): Pasa a ON un instante cuando el valor actual es 0.
S Bandera de acarreo (R9009):Pasa a ON un instante cuando el valor, D, actual excede el rango de
16 bits (K--32,768 a K--1).
. Notas
D Si el registro D (valor transcurrido) ha sido especificado en un
área de retención, dicho valor se mantendrá ante fallo de
alimentación.
D El valor de preselección no se transfiere automáticamente al
área de valor actual. Para que ésto ocurra la entrada de reset
debe pasar de ON a OFF.
D Si se emplea la instrucción F118 con las instrucciones ANS y
PSHS, se debe tener especial cuidado con la sintaxis.
D La cuenta comenzará cuando se detecte el primer paso de
OFF a ON de la entrada de contaje.
D Sólo se incrementa o decrementa el contador cuando se
producen los flancos de subida o de bajada, según el modo en
el que se esté trabajando.
D Si al comenzar a ejecutarse el programa la entrada de contaje
estaba a ON la cuenta no comienza en el primer ciclo de
scan,es necesario un flanco de subida o de bajada según el
modo de trabajo.
D Si se detectan a la vez el flanco de bajada de la entrada de
reset y el flanco de subida de la entrada de contaje, tiene
prioridad la de reset.
4 -- 225
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
RUN
(Alimentación: ON)
Entrada de
contaje
Operación
No contando
Contando
D Cuando se utilicen combinaciones de instrucciones que
cambian el orden de ejecución del programa (como las que se
muestran a continuación) la forma de operar de la instrucción
puede cambiar.
-- Instrucciones MC ~ MCE (ver página 3 -- 50.)
-- Instrucciones JP ~ LBL (ver página 3 -- 53.)
-- Instrucciones LOOP ~ LBL (ver página 3 -- 56.)
-- Instrucción CNDE (ver página 3--60.)
-- Instrucciones paso a paso (ver página 3 -- 62.)
-- Instrucciones de subrutina (ver página 3 -- 72.)
D Para más detalles, consultar “5.5 Instrucción diferencial en
flanco de subida.”
4 -- 226
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F119 (LRSR)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Registro de desplazamiento
izquierda/derecha
Desplaza un bit ,a la derecha o a la izquierda, un bloque de datos de
16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
X0
50
51
52
Entrada
izquierda/derecha
Dirección
F119 LRSR
X1 Entrada de datosD1
DT 0
Entrada de
X2 desplazamiento
D2
DT
X3
53
9
Instrucción
50
ST
X
0
51
ST
X
1
52
ST
X
2
53
ST
X
3
54
F119 . . . (LRSR)
Entrada de reset
D1
16 bits iniciales del bloque
D2
16 bits finales del bloque
DT
0
DT
9
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
N/A
D2
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando se detecta el flanco de subida en la entrada de desplazamiento X2, se desplaza un bit a la
izquierda todo el bloque de datos comprendido entre DT0 y DT9, si la entrada X0 ,
(derecha/izquierda), está a ON.
S Cuando se detecta el flanco de subida en la entrada de desplazamiento X2, se desplaza un bit a la
derecha todo el bloque de datos comprendido entre DT0 y DT9, si la entrada , X0,
(derecha/izquierda) está a OFF.
S Se introducirá un 1” en el bit de menor peso o de mayor peso si X1 está a ON, o un “0” si X1 está a
OFF.
S El bit que se pierde en el desplazamiento se transfiere al relé interno especial R9009 (bandera de
acarreo).
S Si se detecta un flanco de subida en la entrada de reset X3, se ponen a 0 todo los bits del registro
DT0 al DT9.
4 -- 227
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Desplazamiento a la izquierda
LSB
MSB
DT9
Pos del bit 15 . . 12 11 . . 8 7 . . 4 3 . . 0
Dato
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Desplazamiento
de un bit a la
izquierda.
El bit que se pierde se
transfiere a R9009 (bandera
de acarreo).
Pos del bit 15 . . 1211 . . 8 7 . . 4 3 . . 0
Dato
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
DT0
15 . . 1211 . . 8 7 . . 4 3 . . 0
1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0
Desplazamiento
de un bit a la
izquierda.
X0: ON
X2: OFF → ON
15 . . 1211 . . 8 7 . . 4 3 . . 0
0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0
DT9
DT0
Si X1 pasa a ON, se introduce un “1” en el LSB.
Si X1 pasa a OFF, se introduce un “0” en el LSB.
S Desplazamiento a a derecha
LSB
MSB
DT9
Pos del bit 15 . . 12 11 . . 8 7 . . 4 3 . . 0
Dato
0001 0001 0001 0001
Desplaza un
bit a la
derecha.
Pos del bit 15 . . 12 11 . . 8 7 . . 4 3 . . 0
1000 1000 1000 1000
Dato
DT0
15 . . 12 11 . . 8 7 . . 4 3 . . 0
1000 1000 1000 1100
X0: OFF
X2: OFF → ON
15 . . 12 11 . . 8 7 . . 4 3 . . 0
0100 0100 0100 0110
DT9
Si X1 pasa a ON, se introduce un “1” en el MSB.
Si X1 pasa a OFF, se introduce un “0” en el MSB.
4 -- 228
Desplaza un
bit a la
derecha.
DT0
El bit que se pierde se
transfiere a R9009
(bandera de acarreo).
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Descripción
S La dirección del desplazamiento depende del estado de la entrada
izquierda/derecha.
S Se realiza un desplazamiento a la derecha cuando la entrada
izquierda/derecha está a OFF, y a la izquierda cuando está a ON.
S Cuando la entrada de desplazamiento pasa de OFF a ON, estando la entrada
de reset a OFF, se desplaza el bloque de datos definido por [D1] y [D2] un bit
a la derecha o a la izquierda.
S Si en la entrada de datos tenemos un 1, este será el valor que se introduzca
en el bit de mayor o menor peso, según se realice el desplazamiento hacia la
derecha o hacia la izquierda, si en la entrada de datos tenemos un 0 se
introducirá un 0. El bit que se pierde en el desplazamiento (el bit de mayor
peso si el desplazamiento es hacia la izquierda o el bit de menor peso si el
desplazamiento es hacia la derecha) se transfiere al relé interno especial
R9009 (bandera de acarreo).
Si la entrada de reset está a ON, el contenido del bloque de datos se pone a
0.
S Todos los bits del bloque de datos definido por D1 y D2 se ponen a 0 al pasar
la entrada de reset a ON.
S Se debe cumplir que D1 y D2 sean el mismo tipo de operando y la dirección
de D1 sea menor o igual que la de D2.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando la dirección de D1
es mayor que D2. La dirección del error se almacena en DT9017 y se
mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando la dirección de D1 es mayor
que D2. La dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante si el dato que se pierde en el
desplazamiento es un “1”.
. Notas
D El desplazamiento se produce cuando la entrada de
desplazamiento pasa de OFF a ON.
D Sólo se produce un desplazamiento cuando se detecta el
flanco de subida de la entrada de desplazamiento.
D Si al comenzar a ejecutarse el programa la entrada de contaje
estaba a ON la cuenta no comienza en el primer ciclo de scan,
es necesario que se produzca un flanco de subida.
RUN
(Alimentación: ON)
Entrada de
desplazamiento
Operación
No se efectúa desplazamiento Despalzamiento
4 -- 229
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
D Cuando se uticen combinaciones de instrucciones que
cambian el orden de ejecución del programa (como las que se
muestran a continuación) la forma de operar de la instrucción
puede cambiar.
-- Instrucciones MC ~ MCE (ver página 3 -- 50.)
-- Instrucciones JP ~ LBL (ver página 3 -- 53.)
-- Instrucciones LOOP ~ LBL (ver página 3 -- 56.)
-- Instrucción CNDE (ver página 3--60.)
-- Instrucciones paso a paso (ver página 3 -- 62.)
-- Instrucciones de subrutina (ver página 3 -- 72.)
D Para más detalles, consultar “5.5 Instrucción diferencial en
flanco de subida.”
D Si se emplea la instrucción F119 con las instrucciones ANS y
PSHS, se debe tener especial cuidado con la sintaxis. Para
más detalles, consultar en “5.6 Precauciones en la
programación.”
D Si se quiere resetear esta instrucción en el primer ciclo de
scan, después de encender la alimentación, se emplea el relé
interno especial R9013 (relé de ON inicial).
4 -- 230
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F120 (ROR)
Concepto
Todos FP0s /
FP--Ms y FP1s
5
Rotación a la derecha
Disponibilidad
Rota un dato de 16-bits hacia la derecha un número determinado de
bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F120
X0
10
F120 ROR , DT 0 , K 4
D
Instrucción
X
0
(ROR)
DT
0
K
4
n
D
Dato de 16 bits
n
16 bits (constante o registro) que indica el número de bits a rotar.
Rango de n: K0 a K255 (H0 a HFF)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, rota 4 bits hacia la derecha el contenido del registro de datos DT0.
S Al rotar 4 bits hacia la derecha,
-- el bit en la posición 3 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- los 4 bits de menor peso ( bit del 0 al 3) se introducen en los 4 bits de mayor peso del registro
DT0 (del bit 12 al 15).
n: 4 bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1
Relé interno especial R9009
(bandera de acarreo)
0
Bit 3
4 -- 231
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se rota n bits hacia la derecha el dato de 16 bits especificado
por D.
S Al rotar n bits hacia la derecha,
-- se transfiere el bit de la posición n--1 al relé interno especial R9009 (bandera de acarreo).
-- los n bits de menor peso vuelven a introducirse en los n bits de mayor peso del dato de 16 bits
especificado por D.
Bit en la posición n-1
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n bits
Condición de
ejecución: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n bits
Relé interno especial R9009
(bandera de acarreo)
Bit en la posición n-1
S Sólo se utilizan los 8 bits de menor peso del área de 16 bits especificada para n.
15
[n]
0
0 0 0 00 0 0 0
No se utilizan los 8 bits K0 K255
de mayor peso
(H00 HFF)
. Nota
Si el número especificado por n es mayor que 16 el resultado de la operación sería
igual que si el número especificado por n fuera n--16i, siendo i un número entero y
positivo que hace que el resultado de la resta sea un número comprendido entre 0
y 15.
ej., n = K16: igual que n = K0
n = K17: igual que n = K1
:
:
n = K32: igual que n = K0
n = K33: igual que n = K1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el bit en la posición n-1 es un
1.
4 -- 232
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F121(ROL)
Concepto
Todos FP0s /
FP--Ms y FP1s
5
Rotación a la izquierda
Disponibilidad
Rota un dato de 16-bits hacia la izquierda un número determinado de
bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F121
X0
10
F121 ROL , DT 0 , K 4
D
Instrucción
X
0
(ROL)
DT
0
K
4
n
D
Dato de 16 bits
n
16 bits (constante o registro) que indica el número de bits a rotar
Rango de n: K0 a K255 (H0 a HFF)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, rota 4 bits hacia la izquierda el contenido del registro de datos DT0.
S Al rotar 4 bits hacia la izquierda,
-- el bit en la posición 12 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- los 4 bits de mayor peso ( bit del 12 al 15) se introducen en los 4 bits de menor peso del registro
DT0 (del bit 0 al 3).
n: 4 bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1
Relé interno especial R9009
(bandera de acarreo)
1
Bit 12
4 -- 233
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se rota n bits hacia la izquierda el dato de 16 bits especificado
por D.
S Al rotar n bits hacia la izquierda,
-- se transfiere el bit de la posición 16--n al relé interno especial R9009 (bandera de acarreo).
-- los n bits de mayor peso vuelven a introducirse en los n bits de menor peso del dato de 16 bits
especificado por D.
Bit en la posición 16-n
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n bits
n bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
Condición
de
ejecución:
ON
Relé interno especial R9009
(bandera de acarreo)
Bit en la posición 16-n
S Sólo se utilizan los 8 bits de menor peso del área de 16 bits especificada para n.
15
[n]
0
0 0 0 00 0 0 0
No se utilizan los 8 K0 K255
bits de mayor peso (H00 HFF)
. Nota
Si el número especificado por n es mayor que 16 el resultado de la operación
sería igual que si el número especificado por n fuera n--16i, siendo i un número
entero y positivo que hace que el resultado de la resta sea un número
comprendido entre 0 y 15.
ej., n = K16: igual que n = K0
n = K17: igual que n = K1
:
:
n = K32: igual que n = K0
n = K33: igual que n = K1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el bit en la posición 16--n es
un 1.
4 -- 234
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Rotación a la derecha con
acarreo
F122(RCR)
Concepto
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Rota un dato de 16-bits hacia la derecha un número determinado de
bits con bandera de acarreo
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F122
X0
10
F122 RCR , DT 0 , K 4
D
Instrucción
X
0
(RCR)
DT
0
K
4
n
D
Dato de 16 bits
n
16 bits (constante o registro) que indica el número de bits a rotar
Rango de n: K0 a K255 (H0 a HFF)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, rota 4 bits hacia la derecha el contenido del registro de datos DT0
junto con el bit contenido en la bandera de acarreo.
S Al rotar 4 bits hacia la derecha con acarreo,
-- el bit en la posición 3 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- de los 4 bits de menor peso del registro DT0 se introducen en los 3 bits de mayor peso del
registro los bits que estaban situados en las posiciones 0,1 y 2. El bit 3 pasa a la bandera de
acarreo y en la posición 12 se introduce el bit que estaba anteriormente en la bandera de
acarreo.
n: 4 bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
DT0
X0: ON
n-1: 3 bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1
DT0
Bit de acarreo
Relé interno especial R9009
(bandera de acarreo)
0
Bit 3
4 -- 235
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, rota n bits hacia la derecha el dato de 16 bits, especificado por
D, junto con el bit contenido en la bandera de acarreo.
S Al rotar n bits hacia la derecha con acarreo,
--de los n bits de menor peso del dato de 16 bits se introducen en los n--1 bits de mayor peso del
registro los bits que estaban situados desde la posición 0 a la n--2. El bit n--1 pasa a la bandera de
acarreo y en la posición 16--n se introduce el bit que estaba anteriormente en la bandera de acarreo.
-- el bit en la posición n--1 se transfiere al relé interno especial R9009 (bandera de acarreo).
Bit en la posición n-1
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n
Condición de
ejecución: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n-1 bits
Bit de acarreo
Relé interno especial R9009
(bandera de acarreo)
Bit en la posición n-1
S Sólo se utilizan los 8 bits de menor peso del área de 16 bits especificada para n.
15
[n]
0
0 0 0 00 0 0 0
No se utilizan los 8 K0 K255
bits de mayor peso (H00 HFF)
. Nota
Si el número especificado por n es mayor que 17 el resultado de la
operación sería igual que si el número especificado por n fuera n--17i,
siendo i un número entero y positivo que hace que el resutado de la
resta sea un número comprendido entre 0 y 16.
ej., n = K17: igual que n = K0
n = K18: igual que n = K1
:
:
n = K33: igual que n = K0
n = K34: igual que n = K1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el bit en la posición n--1 es un
1.
4 -- 236
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
Rotación a la izquierda con
acarreo
F123(RCL)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
Rota un dato de 16-bits hacia la izquierda un número determinado de
bits con bandera de acarreo
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F123
X0
10
F123 RCL , DT 0 , K 4
D
Instrucción
X
0
(RCL)
DT
0
K
4
n
D
Dato de 16 bits
n
16 bits (constante o registro) que indica el número de bits a rotar
Rango de n: K0 a K255 (H0 a HFF)
J Operandos
Contacto
Operando
WX WY WR
Temporizador/ Registr
Contador
o
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, rota 4 bits hacia la izquierda el contenido del registro de datos DT0
junto con el bit contenido en la bandera de acarreo.
S Al rotar 4 bits hacia la izquierda con acarreo,
-- el bit en la posición 12 se transfiere al relé interno especial R9009 (bandera de acarreo).
-- de los 4 bits de mayor peso del registro DT0 se introducen en los 3 bits de menor peso del
registro los bits que estaban situados en las posiciones 15,14 y 13. El bit 12 pasa a la bandera de
acarreo y en la posición 3 se introduce el bit que estaba anteriormente en la bandera de acarreo.
n: 4 bits
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
DT0
n-1: 3 bits
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0
Bit de acarreo
Relé interno especial R9009
(bandera de acarreo)
1
Bit 12
4 -- 237
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, rota n bits hacia la izquierda el dato de 16 bits, especificado
por D, junto con el bit contenido en la bandera de acarreo.
S Al rotar n bits hacia la izquierda con acarreo,
-- el bit en la posición 16--n se transfiere al relé interno especial R9009 (bandera de acarreo).
-- de los n bits de mayor peso del dato de 16 bits se introducen en los n--1 bits de menor peso del
registro, los bits que estaban situados desde la posición 15 a la 16--n+1. El bit 16--n pasa a la
bandera de acarreo y en la posición n--1 se introduce el bit que estaba anteriormente en la bandera
de acarreo.
Bit en la posición 16-n
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
n
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
D
Bit de acarreo
Condición
de
ejecución:
ON
n-1 bits
Relé interno especial R9009
(bandera de acarreo)
Bit en la posición 16-n
S Sólo se utilizan los 8 bits de menor peso del área de 16 bits especificada para n.
15
0
[n]
0 0 0 00 0 0 0
No se utilizan los 8
bits de mayor peso
K0 K255
(H00 HFF)
. Nota
Si el número especificado por n es mayor que 17 el resultado de la operación
sería igual que si el número especificado por n fuera n--17i, siendo i un número
entero y positivo que hace que el resultado de la resta sea un número
comprendido entre 0 y 16.
ej., n = K17: igual que n = K0
n = K18: igual que n = K1
:
:
n = K33: igual que n = K0
n = K34: igual que n = K1
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera de acarreo (R9009):Pasa a ON durante un instante cuando el bit en la posición 16--n es
un 1.
4 -- 238
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
F130(BTS)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
Bit set
Pone a ON el bit especificado en datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F130
X0
10
F130 BTS , DT 0 , DT 2
D
Instrucción
X
0
(BTS)
DT
0
DT
2
n
D
Dato de 16 bits
n
16 bits (constante o registro) que especifican la posición del bit
Rango de n: K0 a K15
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, se pone a ON el bit de DT0 especificado por DT2.
Bit 7
[n] DT2: K7
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
[D]
DT0
0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1
X0: ON
[D]
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
DT0
0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1
El bit 7 se pone a ON.
(El resto de bits no cambia.)
4 -- 239
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, el bit n de D se pone a ON.
S El resto de bits no cambia.
S La posición del bit que pasa a ON se especifica con un dato decimal.
Rango de n: K0 a K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
n
Se ignora el contenido del bit
4 al 15
Rango de n: K0 a K15
(H0 a HF)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 240
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F131(BTR)
Concepto
Bit reset
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Pone a OFF el bit especificado en datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F131
X0
10
F131 BTR , DT 0 , DT 2
D
Instrucción
X
0
(BTR)
DT
0
DT
2
n
D
Dato de 16 bits
n
16 bits (constante o registro) que especifican la posición del bit
Rango de n: K0 a K15
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, se pone a OFF el bit de DT0 especificado por DT2.
[n] DT2: K7
Bit 7
Pos del bit 15
· · 1211 · · 8 7 · · 4 3 · · 0
DT0
[D]
1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0
X0: ON
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
[D]
1 1 0· 1 1 1 0 0 0 0 1 1 1 0 1 0
DT0
El bit 7 se pone a OFF.
(El resto de los bits no cambian)
4 -- 241
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, el bit n de D se pone a OFF.
S El resto de bits no cambia.
S La posición del bit que pasa a ON se especifica con un dato decimal.Rango
de n: K0 a K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
n
Se ignora el contenido del bit
4 al 15
Rango de n: K0 a K15
(H0 a HF)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 242
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F132 (BTI)
Concepto
Inversión de un bit
Paso
Disponibilidad
5
Todos FP0s /
FP--Ms y FP1s
Invierte el bit especificado en datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F132
X0
10
F132 BTI , DT 0 , WR 0
D
Instrucción
X
0
(BTI)
DT
0
WR
0
n
D
Dato de 16 bits
n
16 bits (constante o registro) que especifican la posición del bit
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, se invierte el bit de DT0 especificado por WR0.
[n] WR0: K7
[D]
Bit 7
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
·
0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0
DT0
X0: ON
[D]
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0
DT0
Se invierte el bit 7
[0 (OFF) → 1 (ON)].
4 -- 243
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
S Al estar la condición de ejecución en ON, se invierte el bit n [1 → 0 (ON →
OFF) o 0 → 1 (OFF → ON)] del dato de 16 bits especificado por D.
S El resto de los bits no cambian
S La posición del bit que pasa a ON se especifica con un dato decimal.
Rango de n: K0 a K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
n
Se ignora el contenido del bit
Range of n: K0 to K15
4 al 15
(H0 to HF)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 244
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Paso
Chequea el estado del
bit especificado
F133 (BTT)
Concepto
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
5
Chequea el estado [ON (1) o OFF (0)] del bit especificado en datos de
16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
n
D
10
ST
11
F133
R10
R900B
16
0
(BTT)
0
DT
F133 BTT , DT 0 , DT 2
X0
X
DT
X0
10
Instrucción
2
16
ST
X
17
AN
R 900B
18
OT
R
D
Dato de 16 bits
n
16 bits (constante o registro) que especifican el bit a chequear
0
10
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
n
A
A
A
A
A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, se chequea el estado del bit [ON (1) or OFF (0)] especificado por
DT2 en el registro DT0. Si el bit chequeado está a 1 el relé interno especial R900B permanece a
OFF, y si el estado del bit es 0, R900B pasa a ON y por lo tanto también pasa a este estado el relé
interno R10.
Se chequea el bit 7
[n] DT2:K7
[D]
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1
DT0
X0: ON
Relé interno especial
R900B (bandera = )
0
Pasa a ON R900B así como el relé interno R10.
4 -- 245
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
SAl estar la condición de ejecución en ON, se chequea el estado del bit [ON (1)
o OFF (0)] n en el dato de 16 bits especificado por D.
SEl estado del bit se comprueba con el relé interno especial R900B.
-- Si el bit n está a OFF (0), el relé interno especial R900B (bandera = )
pasa a ON.
-- Si el bit n está a ON (1), el relé interno especial R900B (bandera = )
pasa a OFF.
SLa posición del bit a chequear se especifica con un dato decimal.Rango de n:
K0 a K15
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
n
Se ignora el contenido del bit
4 al 15
Rango de n: K0 a K15
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
S Bandera = (R900B): Pasa a ON durante un instante cuando el bit n está a OFF (0).
. Notas
D El estado de R900B se actualiza cada vez que se ejecuta una
instrucción de comparación o se realiza alguna operación
lógica.
Si la bandera se emplea más de una vez en el programa, se
debe programar inmediatamente después de la instrucción
que se quiere evaluar.
Para almacenar el estado de R900B después da la ejecución
de las instrucciones que la afectan, se debe programar una
salida o un relé interno después de la bandera, almacenando
esté el estado de R900B en ese momento.
4 -- 246
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F135 (BCU)
Concepto
Cuenta el número de 1’s en datos
de 16 bits
5
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Cuenta el número de bits que están a ON (1) en datos de 16 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F135
X0
10
Instrucción
F135 BCU , WX 3 , DT 0
X
0
(BCU)
WX
3
DT
0
D
S
S
16 bits (constante o registro)
D
16-bits donde se almacena el número de bits que están a ON.
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
A
A
A
A
D
N/A
A
A
A
A
A
A
A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, cuenta el número de bits a ON (1) en la palabra de entradas externas
WX3. El número de bits a ON se almacena en el registro de datos DT0.
WX3
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1
X0: ON
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
Binario
Decimal
K5
Número de bits a 1
4 -- 247
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
SAl estar la condición de ejecución en ON, cuenta el número de bits que están
a ON (1), en el dato de 16 bits especificado por S. El número de bits que
están a ON se almacena en el área de 16 bits especificada por D.
SEl resultado se almacena en base decimal.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 248
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
Cuenta el número de 1’s en
datos de 32 bits
F136 (DBCU)
Concepto
7
Disponibilidad
Todos FP0s /
FP--Ms y FP1s
Cuenta el número de bits que están a ON (1) en datos de 32 bits.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F136
X0
10
F136 DBCU , WX 3 , DT 0
X
0
(DBCU)
WX
3
DT
0
D
S
S
32 bits (constante o registro)
D
16-bits donde se almacena el número de bits que están a ON.
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, cuenta el número de bits a ON (1) en las palabras de entradas
externas WX3 y WX4. El número de bits a ON se almacena en el registro de datos DT0.
WX4
WX3
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0
16 bits de mayor peso
16 bits de menor peso
X0: ON
DT0
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Binario
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
K9
Decimal
Número de bits a ON (1)
4 -- 249
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Descripción
SAl estar la condición de ejecución en ON, cuenta el número de bits que están
a ON (1), en el dato de 32 bits especificado por S. El número de bits que
están a ON se almacena en el área de 16 bits especificada por D.
SEl resultado se almacena en base decimal.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 250
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Paso
Temporizador auxiliar de
16 bits
F137(STMR)
Concepto
5
Disponibilidad
Todos FP0s / FP--Ms y FP1
C56 y C72 (CPU versión 2.7 o
posterior)
Pone a ON la salida especificada y R900D transcurridos 0,1xSV
segundos
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F137
(STMR)
WR
1
R5
X0
10
F137 STMR , WR 1 , DT 5
DT
D
S
X
16
OT
0
5
R
5
S
16 bits (constante o registro) donde se almacena el valor de preselección del
temporizador
D
16 bits donde se almacena el valor actual de temporizador
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
n
A
A
A
A
A
A
A
A
A
A
N/A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Su función es como el de un temporizador a la conexión con escala de 0,01 segundos. Mientras la
entrada está a ON, se va descontando del valor de preselección (S) transferido a D, y cuando el
valor actual alcanza el valor 0 se pone a ON el relé o contacto programado como salida.
Descripción
SMientras la condición de ejecución está a OFF, el valor actual es 0, y los relés
o contactos usados como salidas permanecen a OFF.
SAl llegar el valor actual a 0 el relé interno especial R900D pasa a ON.
R900D puede utilizarse como contacto del temporizador. (Este relé
permanece a OFF mientras la condición de ejecución esté a OFF o se esté
ejecutando la temporización.)
X0
F137 STMR, WR1, DT5
R900D
R5
SLa operación que realiza el programa mostrado arriba es la misma que la del
programa ejemplo.
4 -- 251
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Valor de preselección del temporizador
(1) La fórmula para calcular el tiempo de preselección del temporizador : 0.01 x (valor de
preselección).
(2) Para la configuración del temporizador se debe emplear una constante decimal desde K1 a
K32767.
El tiempo de preselección de esta instrucción va desde 0.01 a 327.67 segundos, en unidades de
0.01 segundos.
Ejemplo) Si el valor de preselección es K500, el tiempo de preselección será 0.01 x 500 = 5
segundos.
J Como trabaja el temporizador auxiliar
1
Cuando la condición de ejecución pasa a ON, el valor especificado por S (valor de preselección)
se transpasa al área especificada por D (área de valor áctual).
R5
X0
F137 STMR, K500, DT5
K500
1
R900D
F0 MV, DT50, WR50
2
Se transfiere a D
DT5
K500
Si la condición de ejecución está a ON, el valor actual, almacenado en D, empieza a
decrementarse.
R5
X0
F137 STMR, K500, DT5
DT5
K500
2 Decremento
499
498
497
R900D
F0 MV, DT50, WR50
3
S
Al llegar el valor actual a 0, el relé o contacto empleado como salida pasa a ON, al igual que el
relé interno especial R900D.
R5
X0
F137 STMR, K500, DT5
DT5
0
R900D
F0 MV, DT50, WR50
3
Fin de la temporización
. Notas
D Se debe almacenar el valor de preselección y el valor actual
en áreas de memoria que no se superpongan sobre otras que
son utilizadas por contadores, temporizadores o por otras
instrucciones.
4 -- 252
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
D Como la resta del valor actual se produce cada ciclo de scan,
la programación de funciones que alteren dicho ciclo de scan
(saltos, subrutinas, etc . . .) pueden afectar al resultado de
este temporizador.
D Se pueden programar consecutivamente varias salidas.
D Precauciones al emplear el relé interno especial R900D
-- Si se programa varias veces, en el mismo programa,
R900D se debe programar inmediatamente después
después de la instrucción del temporizador auxiliar.
X0
F137 STMR, WR1, DT5
R900D
Y0
Par
X1
F137 STMR, WR10, DT10
R900D
Y1
Par
-- Cuando el temporizador (a) finaliza la temporización
Y0 pasa a ON. Cuando el temporizador (b) finaliza su
temporización Y1 pasa a ON.
D El programa mostrado a continuación no opera de manera
correcta.
X0
F137 STMR, WR1, DT5
X1
F137 STMR, WR10, DT10
R900D
Y0
R900D
Y1
4 -- 253
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F183 (DSTM)
Concepto
Temporizador auxiliar de 32 bits
7
Disponibilidad
Todos lo FF0s
Pone a ON la salida especificada y R900D transcurridos 0,1xSV
segundos
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F183
(DSTM)
WR
1
R5
X0
10
F183 DSTM , WR 1 , DT 5
DT
D
S
X
16
OT
0
5
R
S
Constante de 32 bits o los 16 bits de menor peso del área de 32 bits
empleados para almacenar el valor de preselección del temporizador
D
16 bits donde se almacena el valor actual del temporizador
5
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
n
A
A
A
A
A
A
A
N/A
A
A
N/A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Su función es como el de un temporizador a la conexión con escala de 0,01 segundos.
Mientras la entrada está a ON, comienza la cuenta desde cero, y se empieza a incrementar en
0,01 seg cada ciclo de scan y cuando el valor actual alcanza el valor de preselección se pone a
ON el relé o contacto programado como salida.
Descripción
SMientras la entrada está a OFF, el valor actual es 0, y los relés o contactos
usados como salidas permanecen a OFF.
SAl llegar el valor actual al de preselección el relé interno especial R900D pasa
a ON.
R900D puede utilizarse como contacto del temporizador. (Este relé
permanece a OFF mientras la condición de ejecución esté a OFF o se esté
ejecutando la temporización.)
X0
F183 DSTM, WR1, DT5
R900D
R5
SLa operación que realiza el programa mostrado arriba es la misma que la del
programa ejemplo.
4 -- 254
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Valor de preselección del temporizador
(1) La fórmula para calcular el tiempo de preselección del temporizador : 0.01 x (valor de
preselección).
(2) Para la configuración del temporizador se debe emplear una constante decimal desde K1 a
K21,474,836.47.
El tiempo de preselección de esta instrucción va desde 0.01 a 21,474,836.47 segundos, en
unidades de 0.01 segundos.
Ejemplo) Si el valor de preselección es K500, el tiempo de preselección será 0.01 x 500 = 5
segundos.
J Como trabaja el temporizador auxiliar
1
Cuando la condición de ejecución pasa a ON, el valor 0 se transpasa al área especificada por D
(área de valor actual). [D, D + 1].
R5
X0
F183 DSTM, K500, DT5
0
1
R900D
F0 MV, DT50, WR50
2
DT5, DT6
0
Si la entrada está a ON, el valor actual, almacenado en D y D+1, empieza a incrementarse.
R5
X0
F183 DSTM, K500, DT5
DT5, DT6
K500
2
Incremento
0
1
2
R900D
F0 MV, DT50, WR50
3
Se envía a [D, D + 1]
Al llegar el valor actual [D, D + 1] al valor de preselección [S, S + 1, el relé o contacto empleado
como salida pasa a ON, al igual que el relé interno especial R900D.
R5
X0
F183 DSTM, K500, DT5
DT5
K500
R900D
F0 MV, DT50, WR50
3
Fin de la temporización
Valor actual
(D+1, D)
Valor de
preselección
(S+1, S)
X0
ON
OFF
R5
ON
(R900D) OFF
4 -- 255
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
. Notas
D Se debe almacenar el valor de preselección y el valor actual
en áreas de memoria que no se superpongan sobre otras que
son utilizadas por contadores, temporizadores o por otras
instrucciones.
D Como la resta del valor actual se produce cada ciclo de scan,
la programación de funciones que alteren dicho ciclo de scan
(saltos, subrutinas, etc . . .) pueden afectar al resultado de
este temporizador.
D Se pueden programar consecutivamente varias salidas.
D Preacauciones al emplear el relé interno especial R900D
-- Si se programa varias veces, en el mismo programa,
R900D se debe programar inmediatamente después
después de la instrucción del temporizador auxiliar.
X0
F183 DSTM, WR1, DT5
R900D
Y0
Par
X1
F183 DSTM, WR10, DT10
R900D
Y1
Par
-- Cuando el temporizador (a) finaliza la temporización
Y0 pasa a ON. Cuando el temporizador (b) finaliza su
temporización Y1 pasa a ON.
4 -- 256
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F138 (HMSS)
Concepto
Conversión de horas, minutos,
segundos a segundos
Disponibilidad
FPM’s y C24, C40, C56 y
C72 del FP1
5
Convierte horas, minutos y segundos a segundos.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F138
X0
10
F138 HMSS ,
DT0 , DT10
X
0
(HMSS)
DT
0
DT
10
D
S
S
16 bits iniciales donde está almacenado el dato en horas, minutos y segundos
D
16 bits iniciales donde se almacena el dato convertido a segundos
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
n
WX WY WR
A
A
A
D
N/A
A
A
SV
A
EV
A
DT
A
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A N/A N/A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte las horas, minutos, segundos almacenado en los registros
DT1 y DT0 a segundos. El dato en segundos se almacena en DT11 y DT10.
7:45’30’’
Dato BCD
DT1
0
0
DT0
0
7
4
Horas
5
3
0
Segundos
Minutos
X0: ON
27930’’
Dato BCD
DT11
0
0
DT10
0
2
7
9
3
0
Segundos
Descripción
SAl estar la condición de ejecución en ON, convierte las horas, minutos y
segundos almacenados en el área de 32 bits especificada por S+1 y S a
segundos. El dato convertido se almacena en el área de 32 bits especificada
por D+1 y D.
4 -- 257
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Declaración de S+1 y S
SEl dato expresado en horas, minutos y segundos ocupa dos palabras y se
expresa en código BCD.
SEl dato en BCD hexadecimal se declara como se explica a continuación.
H
8 dígitosBCD(2 palabas) ·
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
J Declaración de D+1 y D
SEl dato expresado en segundos ocupa dos palabras y se expresa en código
BCD.
SEl dato en BCD hexadecimal se declara como se explica a continuación.
H
8 dígitosBCD(2 palabas) ·
Segundos (S+1, S) : H00000000 a H99999999 (BCD)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD o excede el
rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD o excede el
rango.
-- La dirección del error se guarda en DT9018.
4 -- 258
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F139 (SHMS)
Concepto
Conversión de segundos a
horas, minutos segundos
Disponibilidad
FPM’s y C24, C40, C56 y
C72 del FP1
5
Convierte segundos a horas, minutos y segundos.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F139
X0
10
F139 SHMS ,
DT0 ,
DT10
D
S
X
0
(SHMS)
DT
0
DT
!0
16
S
16 bits iniciales donde está almacenado el dato en segundos
D
16 bits iniciales donde se almacena el dato convertido a horas, minutos y
segundos
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
n
WX WY WR
A
A
A
D
N/A
A
A
SV
A
EV
A
DT
A
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A N/A N/A
A
A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, convierte los segundos almacenados en los registros DT1 y DT0 a
horas, minutos y segundos. El dato en horas, minutos y segundos se almacena en DT11 y DT10.
4000’’
Dato BCD
DT1
0
0
DT0
0
7
4
5
3
0
Segundos
X0: ON
1: 6’ 40’’
DT11
Dato BCD
0
0
DT10
0
Horas
2
7
9
Minutos
3
0
Segundos
Descripción
SAl estar la condición de ejecución en ON, convierte los segundos
almacenados en el área de 32 bits especificada por S+1 y S a horas, minutos
y segundos. El dato convertido se almacena en el área de 32 bits
especificada por D+1 y D.
4 -- 259
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Declaración de S+1 y S
SEl dato expresado en segundos ocupa dos palabras y se expresa en código
BCD.
SEl dato en BCD hexadecimal se declara como se explica a continuación.
H
8 dígitosBCD(2 palabas) ·
Segundos (S+1, S) : H00000000 a H99999999 (BCD)
J Declaración de D+1 y D
SEl dato expresado en horas, minutos y segundos ocupa dos palabras y se
expresa en código BCD.
SEl dato en BCD hexadecimal se declara como se explica a continuación.
H
8 dígitosBCD(2 palabas) ·
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD o excede el
rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, no es un dato en código BCD o excede el
rango.
-- La dirección del error se guarda en DT9018.
4 -- 260
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F140 (STC)
Concepto
Pone a ON el bit de acarreo
Disponibilidad
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
1
Pone a ON el relé interno especial (bandera de acarreo).
Programa ejemplo
Diagrama en escalera
Condición de ejecución
Lógica
Dirección
Instrucción
10
ST
11
F140
X
0
(STC)
X0
10
F140 STC
J Explicacion del ejemplo
S Al estar la entrada X0 en ON, el relé interno especial R9009 ( bandera de acarreo) pasa a ON.
Descripción
SEl relé interno especial R9009 pasa a ON cuando la condición de ejecución
está en ON.
SEsta instrucción se puede utilizar para controlar datos que empleen la bandera
de acarreo. [ej. F122 (RCR) y F123 (RCL)].
J Condiciones de bandera
S Bandera de acarreo (R9009):Pasa a ON cuando se ejecuta esta instrucción.
4 -- 261
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
Paso
F141(CLC)
Concepto
Pone a OFF el bit de acarreo
Disponibilidad
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
1
Pone a OFF el relé interno especial (bandera de acarreo).
Programa ejemplo
Diagrama en escalera
Condición de ejecución
Lógica
Dirección
Instrucción
10
ST
11
F141
X
0
(CLC)
X0
10
F141 CLC
J Explicacion del ejemplo
S Al estar la entrada X0 en ON, el relé interno especial R9009 ( bandera de acarreo) pasa a OFF.
Descripción
SEl relé interno especial R9009 pasa a OFF cuando la condición de ejecución
está en ON.
SEsta instrucción se puede utilizar para controlar datos que empleen la bandera
de acarreo. [ej. F122 (RCR) y F123 (RCL)].
J Condiciones de bandera
S Bandera de acarreo (R9009):Pasa a OFF cuando se ejecuta esta instrucción.
4 -- 262
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F143 (IORF)
Refresco parcial de entradas
/salidas
Disponibilidad
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
1
Concepto
Actualiza las palabras de salidas externas o de entradas externas
especificadas.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
<Refresco de entradas>
Condición de ejecución
D1
D2
10
ST
11
F143
(IORF)
WX
0
WX
0
R10
F143 IORF , WX 0 , WX 0
10
<Refresco de salidas>
R20
F143 IORF , WY 0 , WY 0
20
D1
Palabra inicial a refrescar
D2
Palabra final a refrescar
R
R
10
20
ST
21
F143
(IORF)
WY
0
WY
0
D2
D1
Instrucción
20
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
D1
A
A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
A
D2
A
A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada R10 en ON, se actualiza la palabra de entradas externas WX0 (X0 a XF) y Al
estar la entrada R20 en ON, se actualiza la palabra de salidas externas WY0 (Y0 a YF).
Descripción
SAl estar la condición de ejecución en ON, se actualizan las entradas y salidas especificadas
por D1 y D2.
SPara refrescar una sola palabra de entrada, se escribe el mismo dato en D1 y D2.
SPara refrescar una sola palabra de salida, se escribe el mismo dato en D1 y D2.
SD1 y D2 deben ser el mismo tipo de operando y D1 <= D2
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando ocurre un error de
operación, en este caso cuando el modificador de índice excede el límite. La
dirección del error se guarda en DT9018.
4 -- 263
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F144
(TRNS)
Comunicación vía serie
Disponibilidad
FP0’s / FPM’s y C24C, C40C,
C56C y C72C del FP1
5
Concepto Se comunica con un periférico utilizando el puerto serie RS232C.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F144
X0
10
F144 TRNS , DT100 ,
DT
K4
X
0
(TRNS)
100
K
D
S
Instrucción
4
1
S
16 bits iniciales donde están almacenados los datos a enviar
D
16 bits (constante o registro) que especifican el número de bytes a enviar
J Operandos
Contacto
Operando
S
D
WX WY WR
N/A N/A N/A
A
A
A
Temporizador/
Registro
Contador
SV
N/A
EV
N/A
DT
A
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A N/A N/A
A
A
A
A
A
A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
Envio de información
SAl estar la condición de ejecución en ON, se envían a través del puerto adicional RS232C los caracteres
A, B, C, D almacenados en DT100.
Periférico (ordenador, impresora, pantalla, visualizador de datos, etc . . .)
Diagrama de tiempos
Autómata
R9039
Puerto RS232C
Reg. de sistema 412=K2
X0
Datos a enviar (4 bytes)
Reg. de datos
ASCII Hex
Constante de
caracteres
4 -- 264
DT102
DT101
44
43
42
41
D
C
B
A
DT100
ON
OFF
ON
OFF
Envia datos por el
puerto RS232C.
(Mientras R9039
está en OFF no
se puede ejecutar
otra instrucción
F144.)
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Recepción de información
SLa operación de recepción es posible siempre que R9038 esté a OFF. R9038 pasa a OFF cuando F144
(TRNS) es ejecutada.
SLos datos recibidos se almacenan en los registros especificados por los registros especiales de sistema
417 y 418. La operación de recepción termina cuando se recibe el final de trama en el registro 413.
Cuando se recibe el final de trama R9038 pasa a ON.
Autómata
Periférico
Diagrama de tiempos
Lector del código
de barras
Recepción
de
información
ON
R9038 OFF
Puerto RS232C
Reg. de sistema 412 = K2
Reg. de sistema 417 = K200
Reg. de sistema 418 = K4
Se ejecuta la
instrucción
F144 (TRNS)
Recepción de final
de trama
Datos recibidos (4 bytes)
Reg. de datos
ASCII Hex
Constante de
caracteres
DT202
DT201
44
43
42
41
D
C
B
A
DT200
Monitoriza el nº de
bytes recibidos
Descripción
SEsta instrucción se utiliza para la comunicación entre el autómata y periféricos via serie
RS232C
SAl estar la condición de ejecución en ON, la instrucción F144 permite enviar los datos
especificados por S y n.
SPermite recibir datos poniendo a OFF R9038.
SLos parámetros de la comunicación se configuran en los registros especiales de sistema
412, 413, 414, 417 y 418.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, excede el rango de registros disponibles.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S, excede el rango de registros disponibles.
-- La dirección del error se guarda en DT9018.
S Bandera de error (R9037):Pasa a ON cuando ocurre un error en la comnunicaión a través del
puerto RS232C.
S Bandera de error (R9038):Pasa a ON y mantiene ese estado cuando se recibe el final de trama. No
se pueden recibir datos si esta bandera está a ON. Para resetear R9038 se
tiene que ejecutar la instrucción F144.
S Bandera de error (R9039):Pasa a ON cuando no se están enviando datos por el puerto RS232C.
Pasa a OFF cuando se están enviando datos desde el autómata. La
instrucción F144 no se puede utilizar mientras R9039 esté a OFF.
4 -- 265
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Configuración de los registros de sistema
S Los registros de sistema 412,413, 414, 417 y 418 se utilizan para determinar los parámetros de la
comunicación, como el modo de trabajo y el formato.
S 1 Modo de comunicación a través del puerto RS232C: Se utiliza el registro de sistema 412
(Valor por defecto K0 (no se utiliza el puerto RS232C). Para utilizarel puerto RS232C en modo general
(F144 TRANS) seleccionar K2.)
S 2 Formato de los datos transmitidos a través del puerto RS232C: Se utiliza el registro de
sistema 413 (valor por defecto H3). El formato dependerá del periférico con el que se va a comunicar el
autómata. El final de trama se añade automáticamente.
Pos de bit
15 · · 1211 · · 8 7 · · 4 3 · · 0
·
Cabecera (Bit 6)
0: sin STX
1: con STX
Final de trama ( bit 4 y 5)
00: CR
01: CR+LF
10: CR
11: EXT
Bit de detencición (bit 3)
0: 1 bit.
1: 2 bits
Paridad (bit 2 y 1)
00: ninguna
01: impar
10: ninguna
11: par
Carcteres (bit 0)
0: 7 bits
1: 8 bits
S 3 Configuración de la velocidad de transmisión (baudios): Registro de sistema 414 ( valor por
defecto K1. Se configura de acuerdo con las características del periférico.
Valor
preseleccionado
Baudios
K0
19200
K1
9600
K2
4800
K3
2400
K4
1200
K5
600
K6
300
4 -- 266
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
S 4 Configuración para la recepción a través del puerto RS232C: Registro de sistema 417 (
valor por defecto K0) y 418 (valor por defecto K1660).
-- Registro de sistema 417 especifica la dirección de comienzo del primer registro de datos donde
se almacenarán los datos recibidos por el puerto RS232C. Rango:
FP0 C10C, C14C, C16C, FP--M 2.7 k y FP1 C24C y C40C: K0 a K1660
FP0C32, FP--M 5 k, FP1 C56C y C72C: K0 a K6144
FP0 T32C: K0 a K16384.
-- Registro de sistema 418 especifica el número de palabras utilizadas para almacenar los datos
recibidos.Rango:
FP0 C10C, C14C, C16C, FP--M 2.7 k, FP1 C24C y C40C: K0 a K1660
FP0 C32, FP--M 5 k, FP1 C56C y C72C: K0 a K6144
FP0 T32C: K0 a K16384
Envio de información
S Utilizando la instrucción F0 se escribe el dato a transmitir en el área que comienza en S+1 (S está
reservado para el número de bytes a transmitir). Para transmitir los datos al periférico se ejecuta la
instrucción F144.
S El número de bytes a transmitir se monitoriza en S.
Byte de
Byte de
mayor peso menor peso
S
S+1
·
Número de bytes
a enviar
Datos a enviar
S+n/2
. Nota
D No es necesario añadir ni la cabecera ni el final de trama en
las cadenas de datos a enviar, se añaden automáticamente
configurando en el registro de sistema 413.
D Se debe evitar el solapamiento del área donde están
almacenados los datos a enviar y el área donde se almacenan
los datos recibidos (registros de sistema 417 y 418).
4 -- 267
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Recepción de información
S El dato recibido en el autómata se almacena a partir de la segunda palabra del área que actúa
como buffer de recepción, especificada por los registros de sistema 417 y 418.
S El número de bytes recibidos se almacena en S.
Byte de
Byte de
mayor peso menor peso
·
Número de bytes recibidos
[16 bits iniciales de la zona
de almacenamiento especificados en el registro de sistema 417]
Datos recibidos
[(tamaño especificado en el registro de sistema 418--1)*2 bytes]
Datos recibidos
[(tamaño especificado en el regis
tro de sistema 418--1)*2 bytes]
S Cuando se recibe el final de trama, R9038 pasa a ON, y la recepción se da por finalizada. Para
recibir más datos se debe ejecutar otra vez la instrucción F144 pasando R9038 a OFF.
. Nota
D La cabecera y el final de trama recibidos no se almacenan en
el buffer de recepción.
D Se debe evitar el solapamiento del área donde están
almacenados los datos a enviar y el área donde se almacenan
los datos recibidos (registros de sistema 417 y 418).
J Ejemplos de aplicación
Ejemplo 1
S Transmisión de los siguientes 8 caracteres (8 bytes): A (H41), B (H42), C (H43, D (H44), E (H45), F
(H46), G (H47), H (48).
Byte de
Byte de
mayor peso menor peso
R0
F1 DMV,
F1 DMV,
H44434241, DT 101
H48474645,
DT103
X0
4 -- 268
B (H42)
A (H41)
D (H44)
C (H43)
DT103
F (H46)
E (H45)
DT104
H (H48)
G (H47)
DT101
DT102
F144 TRNS,
DT100,
Número de bytes a
enviar
DT100
K8
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Ejemplo 2
S Recepción de los siguientes 8 caracteres (8 bytes): A (H41), B (H42), C (H43, D (H44), E (H45),
(H46), G (H47), H (48).
Buffer de recepción: registros de datos: DT200 a DT204
registro de sisitema 417 = K200
registro de sistema 418 = K4
Byte de
Byte de
mayor peso menor peso
X0
F144 TRNS,
DT100,
K0
B (H42)
A (H41)
D (H44)
C (H43)
DT203
F (H46)
E (H45)
DT204
H (H48)
G (H47)
DT201
Para poner al autómata en
espera de recibir datos n
debe ser igual a 0
Número de bytes a
recibir
DT200
DT202
Nota para el FP0
-- Si no se quiere enviar final de trama, comunicación en
código binario en lugar de ASCII,se especifica un número
negativo en n.
-- Se puede cambiar de modo de comunicaciones entre
Computer link y General, ejecutando la instrucción F144
con n=16#8000, de esta manera se actúa sobre el
registro especial de sistema 412. R9032 está a ON
cuando se trabaja en modo General.
4 -- 269
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
Paso
F147 (PR)
Concepto
5
Envío de datos a impresora
Disponibilidad
Todos FP0s / FP--Ms y C24, C40,
C56 y C72 del FP1, con salida a
transistor
Envía caracteres ASCII a una impresora paralelo.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X10
10
12
F147 PR , DT 0 , WY 0
(DF)
R9033
10
ST
11
DF
12
OR
14
F147
D
S
Instrucción
Bandera de impresora
activada
X
10
R
9003
(PR)
DT
0
WY
0
S
16 bits a partir de los que se almacenan los 12 bytes (seis palabras) de código
ASCII
D
Palabra de salidas externas por la que se envía el código ASCII a la impresora
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
N/A
N/A
N/A
N/A
N/A
D
N/A
A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X10 en ON, el código ASCII almacenado en los registros de datos
comprendidos entre el DT0 y el DT5 se envía a través de la palabra de salidas externas WY0.
S: Código ASCII de 12 caracteres A, B, C, D, E, F, G, H, I y J
Reg de datos
ASCII HEX
Carácter ASCII
DT5
DT4
0D 0A 4A 49
CR LF J
I
DT3
48 47
H G
Datos de control para la impresora
X10: ON
DT2
46 45
F
E
DT1
44 43
D
C
DT0
42 41
B
A
Código ASCII
D
YF YE YD YCYB YA Y9 Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
WY0
Y0 a Y7: señales de código ASCII para la impresora
(que se corresponden con DATO1 al DATO8 de la impresora)
Y8: señal de habilitación
Y9 a YF: no se utilizan
4 -- 270
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Diagrama de tiempos
Código ASCII HEX (Y0 a Y7)
A
B
C
D
E
CR
LF
H41
H42
H43
H44
H45
H0D
H0A
Señal de habilitación (Y8) ON
OFF
ON
OFF
R9033
Ciclos de scan
Ejecución de la instrucción F147 (PR)
0 1 2 3 4 5 6 7 8 9 1011 12131415 1617
32333435 3637
J Ejemplo de conexión
FP0--C32T
FP--M/FP1 (transistor)
...
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
COM
Impresora
(puerto centronics)
DATO1
DATO2
DATO3
DATO4
DATO5
DATO6
DATO7
DATO8
STROBE
GND
Descripción
SAl estar la condición de ejecución en ON, el código ASCII almacenado en los
registros de datos especificados por S se envía a través de la palabra de
salidas externas especificada por D.
SAl conectar la impresora a la salida especificada por D, se imprimirá el carácter
correspondiente al código ASCII que en ese momento se ha enviado a la
salida
SSólo se emplean los 9 bits de menor peso de la salida especificada por D.
Destino
Pos del bit
0
1
2
3
4
5
6
7
8
9 to 15
Condición
Señales de datos para
la impresora:
Bits del 0 al 7
que se corresponden
con DATO1 al DATO8
de la impresora.
Señal de habilitación
No se utillizan
SSe envían los cáracteres comenzando por los que estan almacenados en los
bytes de menor peso.
SLos datos de control para la impresora (LF y CR) se deben enviar en la última
palabra.
SPara enviar un carácter a la salida especificada se requieren 3 ciclos de scan
por lo tanto para enviar 12 caracteres se necesitan 37 ciclos de scan.
4 -- 271
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
. Notas
D No se pueden ejecutar al mismo tiempo varias instrucciones F147. Si
se emplea esta instrucción varias veces en el mismo programa, se
debe habilitar la instrucción deseada a través de la bandera R9033.
D Para convertir una constante de caracteres (M) a código ASCII se
puede emplear la instrucción F95.
D Las constantes de caracteres se pueden programar con los
siguientes softwares: NPST--GR, FPSOFT y NAIS Control.
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado, cuando
-- El área para almacenar el código ASCII excede el límite.
-- Cuando se activan más de una entrada de diferentes intrucciones F147
(PR).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante, cuando:
-- El área para almacenar el código ASCII excede el límite.
-- Cuando se activan más de una entrada de diferentes intrucciones F147
(PR).
-- La dirección del error se guarda en DT9018.
S Bandera de impresora activada (R9033):Pasa a ON y parmanece en ese estado mientras se esta
ejecutando la instrucción F147 (PR).
J Conexionado/programación cuando se emplean sólo 8 bits de la palabra de salida
S Al utilizar sólo 8 bits, las conexiones tienen que ser las mostradas abajo. Se debe programar de tal
manera que la señal de habilitación (STROBE) sea el bit 7.
Conexión
FP0--C16T/C32T
FP--M/FP1 (transistor)
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
COM
Impresora
(puerto centronics)
DATO1
DATO2
DATO3
DATO4
DATO5
DATO6
DATO7
DATO8
STROBE
GND
Programa ejemplo
X0
F147 PR, DT0, WY0
R9033
Y8
Y7
La señal de habilitación pasa a ser la Y7.
4 -- 272
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F148 (ERR)
Concepto
Tratamiento de errores
Paso
Disponibilidad
3
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
Convierte la condición especificada en un error de autodiagnóstico.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
<Preselección del error de autodiagnóstico>
Condición de ejecución
n
R0
F148 ERR , K 100
10
Instrucción
10
ST
11
F148
R
0
(ERR)
K
<Borrado del error de autodiagnóstico>
R1
F148 ERR , K 0
20
20
ST
21
F148
100
R
1
(ERR)
K
0
n
n
Número del código del error de autodiagnóstico:
Rango: 0 y 100 a 299
J Operandos
n
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A N/A N/A
N/A
N/A
N/A
N/A
Contacto
Operando
N/A
A
A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada R0 en ON, el autómata actúa como si se hubiera producido un error de
autodiagnóstico. Se activa el relé interno especial R9000 y el LED DE ERROR/ALARMA pasa a
ON, y el código del error de autodiagnóstico K100 pasa al registro DT9000. Se detiene la ejecución
del programa.
S En el FP0, cuando la entrada R1 está a ON, se desactivan los errores de autodiagnóstico de
código superior a 43.
Descripción
SEsta instrucción se emplea para programar una condición especifica como
error de autodiagnóstico. Se almacena el código del error [n] en el registro
especial de datos DT9000, la bandera de error de autodiagnóstico (R9000)
pasa a ON. El LED ERROR/ALARMA del autómata parpadea.
SOtra función de esta instrucción es desactivar lo errores de autodiagnóstico:
-- en el FP0, se desactivan los errores de código igual o superior a 43.
--en el FP--M/FP1, se desactivan el E45, E50 y del E200 al E299.
4 -- 273
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Cuando n = K100 a K299
S El valor de n será el que determine si después de que ocurra el error el autómata sigue la
ejecución del programa o la detiene.
S [n]
Indica que hacer cuando ocurre un error
K100 -- 199 Se detiene la ejecución del programa
K200 -- 299 Continúa la ejecución del programa
S Se sigue el siguiente proceso:
(1)El LED ERROR/ALARMA: Se enciende
(2) R9000, R9005, R9006, R9007, R9008: Pasan a ON
(3) se transfiere el código del error al DT9000.
J Cuando n = K200 a K299
S Si [n] está comprendido entre K200 y K299, al procesarse varios errores a la vez se reciben los
códigos de errores comenzando desde el que tenga menor número de código.
S Se sigue el siguiente proceso:
(1)El LED ERROR/ALARMA : Se enciende
(2) R9000, R9005, R9006, R9007, R9008: Pasan a ON
(3) se transfiere el código del error al DT9000.
S El comando ERR puede ser utilizado, para activar el mismo error, varias veces en el mismo
programa.
J Si n = 0
S Al pasar a ON lacondición de ejcución de la instrucción F148 (ERR), se desactivan los errores de
autodiagnóstico:
-- en el FP0, se desactivan los errores de código igual o superior a 43.
--en el FP--M/FP1, se desactivan el E45, E50 y del E200 al E299.
-- El LED ERROR/ALARMA pasa a OFF.
-- Los relés internos especiales R9000, R9005, R9006, R9007, y R9008 pasan a OFF.
-- Los registros de datos especiales DT9000, DT9017 y DT9018 se ponen a 0.
. Notas
D Se pueden programar más de dos instrucciones F148 (ERR)
con el mismo código de error usando diferentes entradas.
D Comprobación de los errores de autodiagnóstico
(ver en “7.7 Códigos de error”)
J Condiciones de bandera
S Bandera de error(R9007):Se pone a ON y se mantiene en ese estado cuando n es 0 o está
comprendida entre K100 y 299. La dirección del error se almacena en
DT9017 y se mantiene.
S Bandera de error (R9008): Se pone a ON durante un instante cuando n es 0 o está comprendida
entre K100 y 299. La dirección del error se guarda en DT9018.
S Bandera de error (R9000): Pasa a ON cuando ocurre un error de autodiagnóstico. El código del
error pasa al registro de datos DT9000. Pasa a OFF cuando se ejecuta la
instrucción F148 siendo n igual a 0.
S Banderas de error (R9005 y R9006): Pasan a OFF cuando se ejecuta la instrucción F148 siendo n
igual a 0.
4 -- 274
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F149 (MSG)
Concepto
Visualización de mensajes
13
Disponibilidad
Todos FP0s / FP--Ms y C24,
C40, C56 y C72 del FP1
Visualiza una constante de caracteres en la consola de programación
FP programmer II.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F149
X0
10
Instrucción
X
0
(MSG)
M TEST PROGRAM
F149 MSG , M TEST PROGRAM
S
S
Constante de caracteres a visualizar
J Operandos
S
Temporizador/
Registro de
Registro
Contador
índice
Contacto
Operando
Constante
WX WY WR
SV
EV
DT
IX
IY
K
H
M
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
A
Modific.
de índice
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al estar la entrada X0 en ON, visualiza el mensaje “TEST PROGRAM” en la pantalla de la consola
de progamación FP programmer II.
Descripción
SEsta instrucción se emplea para visualizar mensajes en la pantalla de la
consola de programación FP programmer II. Trás ejecutarse la instrucción
F149 (MSG) se puede ver el mensaje programado en S en la pantalla de FP
programmer II.
SLa constante de caracteres (M) se programa con los diferentes softwares
(NPST--GR, FPSOFT o NAIS Control). No se pueden programar constantes
de caracteres a través de la consola FP programmer II.
SAl ejecutarse la instrucción F149 (MSG), el mensaje de S se copia en los
registros de datos especiales DT9030 a DT9035.
SUna vez que el mensaje se ha copiado en en los registros de datos especiales
no puede modificarse, incluso aunque se ejecute de nuevo la instrucción
F149 (MSG). Para borrar el mensaje se emplea la siguiente secuencia de
(--)
1
1
1
ENT SHIFT WRT .
teclas de la consola: ACLR OP
SC
SPara visualizar el mensaje en la consola se debe inicializar la consola
presionando la tecla ACLR.
J Condiciones de bandera
S Bandera de mensaje (R9026):Pasa a ON y permanece en ese estado cuando se ha copiado un
mensaje, al ejecutarse la instrucción F149 ,en los registros de datos
especiales DT9030, DT9031, DT9032, DT9033, DT9034, y DT9035.
4 -- 275
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F157
Concepto
Paso
Suma de tiempos
[(S1+2,S1+1,S1)+(S2+1,S2)
(CADD) => (D+2,D+1,D)]
Disponibilidad
FPM’s y C24, C40, C56 y
C72 del FP1
7
Suma datos temporales expresados de diferentes maneras (periodo de
tiempo (horas,minutos y segundos) a fecha/hora (años,meses, días,
horas, minutos y segundos)).
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F157
X0
10
F157 CADD,DT9054,DT10 ,DT 30
S
n
Instrucción
D
X
0
(CADD)
DT
9054
DT
10
DT
30
16 bits iniciales del área donde está almacenado la fecha y la hora (ocupa 3
palabras en código BCD.)
S
n
16 bits iniciales del área donde está almacenado un periodo de tiempo (ocupa
2 palabras en código BCD.)
16 bits donde se almacena el resultado de la suma (ocupa 3 palabras en
código BCD.)
D
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
n
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
. Nota
-- Los registros especiales de datos DT9054, DT9055 y
DT9056 no se pueden utilizar como destino.
-- Los registros especiales de datos DT9054, DT9055 y
DT9056 sólo están disponibles en:
--FP1 C24C, C40C, C56C y C72C.
--FP--M de la serie C.
4 -- 276
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Al estar la entrada X0 en ON, suma el periodo de tiempo almacenado en los registros DT10 y DT11
a la fecha/hora almacenada en los registos especiales de datos del DT9054 al DT9056. El
resultado se almacena en los registross DT 30, DT31, DT 32.
25 de Abril ,1994
10: 30’ 24’’
BCD Hex
DT9056
9
4
4
0
Año
DT9055
5
1
2
Mes
Día
DT9054
0
3
Hora
0
2
Minuto
4
Segundos
+
20: 45’ 30’’
BCD Hex
DT11
0
0
DT10
2
0
4
5
3
0
X0: ON
26 de Abril, 1994
7: 15’ 54’’
BCD Hex
DT32
9
4
Año
0
4
Mes
2
DT31
6
0
Día
DT30
7
Hora
1
5
Minuto
5
4
Segundos
Descripción
SAl estar la condición de ejecución en ON, suma el periodo de tiempo
almacenado en S1,S1+1 con la fecha/hora almacenada en los registos
especiales de datos del DT9054 al DT9056. El resultado se almacena en los
registross D+2, D+1, D. La instrucción F157 trabaja únicamente con datos en
código BCD.
4 -- 277
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Declaración de S1 y D
S1+2
D+2
S1+1
D+1
S1
D
·
12 dígitosBCD (3 palabas)
H
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
Día: H0000 a H9999 (BCD)
Mes: H01 a H12 (BCD)
Año: H00 a H99 (BCD)
J Declaración de S2
·
S2+1
S2
H
8 dígitosBCD(2 palabas)
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S1 y/o S2, no es un dato en código BCD o excede
el rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S1 y/o S2, no es un dato en código BCD o excede
el rango.
-- La dirección del error se guarda en DT9018.
4 -- 278
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F158 (CSUB)
Concepto
Paso
Resta de tiempos
[(S1+2,S1+1,S1)--(S2+1,S2)
=> (D+2,D+1,D)]
Disponibilidad
FPM’s y C24, C40, C56 y
C72 del FP1
7
Resta datos temporales expresados de diferentes maneras (periodo de
tiempo (horas,minutos y segundos) a fecha/hora (años,meses, días,
horas, minutos y segundos)).
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F 158
X0
10
F158 CSUB,DT9054,DT10 ,DT 30
S
n
Instrucción
D
X
0
(CSUB)
DT
9054
DT
10
DT
30
16 bits iniciales del área donde está almacenado la fecha y la hora (ocupa 3
palabras en código BCD.)
S
n
16 bits iniciales del área donde está almacenado un periodo de tiempo (ocupa
2 palabras en código BCD.)
16 bits donde se almacena el resultado de la resta (ocupa 3 palabras en código
BCD.)
D
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
n
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
N/A
N/A
N/A
N/A
A
A:Disponible
N/A:No disponible
. Nota
-- Los registros especiales de datos DT9054, DT9055 y
DT9056 no se pueden utilizar como destino.
-- Los registros especiales de datos DT9054, DT9055 y
DT9056 sólo están disponibles en:
--FP1 C24C, C40C, C56C y C72C.
--FP--M de la serie C.
4 -- 279
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Al estar la entrada X0 en ON, resta el periodo de tiempo almacenado en los registros DT10 y DT11
a la fecha/hora almacenada en los registos especiales de datos del DT9054 al DT9056. El
resultado se almacena en los registros DT 30, DT31, DT 32.
25 de Abril ,1994
10: 30’ 24’’
BCD Hex
DT9056
9
4
4
0
Año
DT9055
5
1
2
Mes
Día
DT9054
0
3
Hora
0
2
Minuto
4
Segundos
-20: 45’ 30’’
BCD Hex
DT11
0
0
DT10
2
0
4
5
3
0
X0: ON
24 de Abril, 1994
13: 44’ 54’’
BCD Hex
DT32
9
4
Año
0
4
Mes
2
DT31
4
1
Día
DT30
3
Hora
4
4
Minuto
5
4
Segundos
Descripción
SAl estar la condición de ejecución en ON, resta el periodo de tiempo
almacenado en S1,S1+1 con la fecha/hora almacenada en los registos
especiales de datos del DT9054 al DT9056. El resultado se almacena en los
registross D+2, D+1, D. La instrucción F158 trabaja únicamente con datos en
código BCD.
4 -- 280
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Declaración de S1 y D
S1+2
D+2
S1+1
D+1
S1
D
·
12 dígitosBCD (3 palabas)
H
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
Día: H0000 a H9999 (BCD)
Mes: H01 a H12 (BCD)
Año: H00 a H99 (BCD)
J Declaración de S2
·
S2+1
S2
H
8 dígitosBCD(2 palabas)
Segundos: H0 a H59 (BCD)
Minutos: H0 a H59 (BCD)
Horas: H0000 a H9999 (BCD)
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S1 y/o S2, no es un dato en código BCD o excede
el rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S1 y/o S2, no es un dato en código BCD o excede
el rango.
-- La dirección del error se guarda en DT9018.
4 -- 281
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Control del contador de alta
velocidad
F0 (MV)
Concepto
Paso
Disponibilidad
5
Todos los FP0’s/
FP--M’s y FP1’s
Controla la desactivación del contador de alta velocidad, el reset por
software y detiene la salida de pulsos.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X3
10
DF
10
ST
11
DF
12
F0
1
F0 MV , H 1111 , DT9052
1
Instrucción
X
3
(MV)
H
1111
DT
9052
D Registro de control del
contador de alta velocidad
S
16 bits (constante o registro) que especifican la operación del CAV
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
WX WY WR
S
A
A
A
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
A
A
A
A
A:Disponible
N/A:No disponible
Descripción
SControla el contador de alta velocidad de acuerdo con el código de control
especificado en S.
SEsta instrucción controla las siguientes funciones del contador de alta
velocidad.
Función
1 Reset por software.
2 Deshabilitación del contador.
3 Deshabilitación temporal del reset por hardware mediante las entradas
externas X2 y X5.
4 Detención de la salida de pulsos.
5 Desactivación de las instrucciones del contador de alta velocidad F166,
F167, F168, F169, y F170.
6 Preselección de la entrada de proximidad al origen en la operación de
vuelta al origen para disminuir la velocidad de acercamiento al origen.
SEl código de control cargado en el registro de control del C.A.V. (DT9052) no
se modifica hasta que se carge otro valor.
4 -- 282
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Registro de control del contador de alta velocidad (DT9052)
Registro de control en el FP0
S El código de control almacenado en DT9052 se divide en cuatro partes, asignando 4 bits para el
control de cada uno de los canales disponibles.
S El código de control se guarda en el registro especial de datos DT9052.
ch3
15
ch2
12 11
ch1
8 7
ch0
4 3
0
DT9052 :
<Código de control>
Rango: H0 a HF.
S Para más detalles sobre cómo utilizar la preselección de modos de funcionamiento consultar el
capítulo 6.
Registro de control del FP--M/FP1
S El código de control almacenado en DT9052 se especifica de la siguiente manera:
Modo de trabajo del contador
de alta velocidad especificado en el registro de sistema
400
15
12 11
8 7
ch0
4 3
0
DT9052 :
<Código de control>
Rango: H0 a HF.
S El FP--M/FP1 sólo tiene un canal para el contador de alta velocidad.
S Para más detalles sobre cómo utilizar la preselección de modos de funcionamiento consultar el
capítulo 6.
J Especificación del código de control “S”
S El código de control se especifica con 4 bits y los convierte a notación hexadecimal.
S = HVVVV (binario)
<Desactiva el contador>
0: Activado
1: Desactivado (la salida de pulsos se
deitene durante el control de salida de
pulsos
<Reset por hardware>)
0: Activado
1: Desactivado (la entrada de proximidad
al origen es efectiva durante el control de
pulsos de salida
<Reset por software>
0: Deshabilitado el reset por software
1: Habilitado el reset por software
<Cuenta>
0: Activa
1: Inactiva
4 -- 283
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Ejemplos:
S Realiza un reset por software . . . . . . . . . . . . . . . . . . . . .
H1(0001)
El valor actual se incrementa mientras el bit 0 esté a OFF, si el bit 0 pasa a ON el valor actual del contador se
pone a 0.
S Cuenta inactiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
H2(0010)
La cuenta continua mientras el bit 1 esté a OFF, si el bit 1 pasa a ON el valor actual se mantiene, aunque se
reciban pulsos de entrada, y no vuelve a incrementarse hasta que el bit1 pase de nuevo a OFF.
S Desactiva el CAV y detiene la salida de pulsos . . . . . .
H8(1000)
Mientras el bit 3 está a OFF, se ejecutan las instrucciones F166, F167, F168 , F169 y F170 en el FP0, F162,
F163, F164 y F165 en el FP--M/FP1. Si el bit 3 pasa a ON se detiene la ejecución de estás instrucciones y las
salidas correspondientes a cada una de ellas se ponen a OFF.
Nota FP--M/FP1
-- R903A y R903B están a OFF mientras el bit 3 de DT9052 esté a ON
S Habilitación de una entrada de reset por hardware. . . . . . . . . H4(0100)
La entrada de reset se habilita poniendo un 0 en el bit 2. En el FP0 se debe especificar en el registro de sistema
400 la entrada de reset que se quiere utilizar. En el FP--M/FP1 sólo se puede utilizar la entrada externa X2.
S Desactiva el CAV, detiene la salida de pulsos y resetea a 0 el valor actual H9(1001)
S En el FP0 se debe tener en cuenta el canal que se quiere controlar e incluir dicho canal en el
registro DT9052.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- La dirección del error se guarda en DT9018.
4 -- 284
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de programación
<Ejemplo 1> Reset por software del contador de alta velocidad CH0.
R0
DF
F0 MV, H1, DT9052
F0 MV, H0, DT9052
<Ejemplo 2> Activa la entrada de proximidad al origen durante el control de pulsos
de salida, desacelerando el movimiento de aproximación al origen
(Sólo FP0).
X3
DF
F0 MV, H4, DT9052
F0 MV, H0, DT9052
. Notas
D La desactivación del reset por hardware es efectiva solamente
si las entradas de reset son X2 y X5 en el FP0 y X2 en el
FP--M/FP1.
D En el FP0, si se desactiva la cuenta o se activa el reset por
software durante la operación de vuelta al origen, la entrada
de proximidad al origen no es efectiva.
D Para activar la entrada de proximidad al origen, es necesario
introducir un 1 en el bit correspondiente cada vez que se
efectue una operación de vuelta al origen.
4 -- 285
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Preselección y lectura del valor
actual del contador de alta
velocidad
F1 (DMV)
Concepto
Paso
Disponibilidad
7
Todos los FP0’s/
FP--M’s y FP1’s
Preselecciona o lee el valor actual del contador de alta velocidad.
Programa ejemplo
Lógica
Diagrama en escalera
Preselección
Dirección
Condición de ejecución
R0
10
D
Condición de ejecución
Lectura
ST
11
F1
(DMV)
12
K
3000
DT
9044
20
ST
21
F1
F1 DMV , DT9044 , DT 6
DF
R
10
Área del valor
actual del
contador de
alta velocidad
R10
20
10
F1 DMV , K 3000 , DT9044
DF
Instrucción
R
10
(DMV)
DT
9044
DT
6
Área del valor actual D
del contador de alta
velocidad
S
Constante de 32 bits o los 16 bits de menor peso del dato de 32 bits donde se
almacena el nuevo valor actual del contador de alta velocidad
D
16 bits de menor peso del dato de 32 bits donde se almacena el valor actual del
contador de alta velocidad
J Operandos
Contacto
Operando
WX WY WR
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
SV
EV
DT
S
A
A
A
A
A
A
A
N/A
A
A
A
D
N/A
A
A
A
A
A
A
N/A
N/A
N/A
A
4 -- 286
A:Disponible
N/A:No disponible
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Preselección del valor actual
S Escribe el dato de 32 bits especificado por S en el área de valor actual del contador.
Explicación del ejemplo
S Cuando la entrada R0 está en ON, se escribe K3000 en el área de valor actual del contador de alta
velocidad DT9044 y DT9045.
S El rango del valor actual es el siguiente:
Rango permitido: K--8,388,608 a K8,388,607 (H FF800000 a H 007FFFFF)
S La preselección del valor actual sólo es posible con la instrucción F1 (DMV). No se puede
preseleccionar el valor actual con ninguna otra instrucción.
S S y D son datos de 32 bits. Para declarar datos de 32 bits se especifican los 16 bits de menor
peso, declarándose automáticamente los 16 bits de mayor peso.
S Para más detalles sobre la preselección del contador de alta velocidad consultar el capítulo 6.
J Lectura del valor actual
S El valor actual del contador de alta velocidad se lee de los registros de datos especiales
especificados en la tabla que aparece en la página siguiente y se copia en D, D+1.
<Ejemplo> Explicación del ejemplo
S Cuando la entrada R10 está en ON, el valor actual se transfiere a los registros de datos DT6 y
DT7.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- La dirección del error se guarda en DT9018.
4 -- 287
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Ejemplo de aplicación
Ejemplo 1:
S Al estar la entrada R0 en ON, se copia el contenido de los registros de datos DT4 y DT5 en el área
de valor actual.
R0
DF
F1 DMV, DT4, DT9044
Entrada de
decremento X0
R0
Valor en DT4
Tiempo
0
Preselección del valor actual
Ejemplo 2:
S Al estar la entrada R1 en ON, se almacena el valor actual del contador de alta velocidad en los
registros de datos DT100 y DT101.
R1
DF
F1 DMV, DT9044, DT100
Ejemplo 3:
S El relé interno R0 pasa a ON si el valor actual del contador excede el valor K10000.
R9010
F1
DT9044, DT0
F61 DCMP, DT0, K10000
R900A
R0
J Tabla de correspondencial entre el canal y las áreas de valor actual
Número del canal del contador
de alta velocidad
Área de valor actual
ch0 (FP0/FP--M/FP1)
DT9044 a DT9045
ch1 (FP0)
DT9048 a DT9049
ch2 (FP0)
DT9104 a DT9105
ch3 (FP0)
DT9108 a DT9109
4 -- 288
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Paso
5
F162 (HCOS)
Concepto
Salida del contador de alta
velocidad a ON
7
Disponibilidad
Todos FP--Ms y FP1’s
Especifica la salida que va a utilizar el contador de alta velocidad. La
salida externa especificada pasa a ON cuando el valor actual alcanza
el valor de preselección.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X3
10
12
(DF)
10
ST
11
DF
12
F162
14
K
1000
Y
5
F162 HCOS , K1000, Y5
1
Instrucción
X
10
(HCOS)
D
S
S
32 bits (constante o registro) donde se almacena el valor de preselección.
D
Salida externa que se activa cuando el valor actual coincide con el valor de
preselección (Yn n: 0 a 7)
J Operandos
Contacto
Operando
WX WY WR
S
A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
A
A
A
4 -- 289
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Al pasar la entrada X3 a ON, se preselecciona K1000 como valor de preselección del contador de
alta velocidad. Cuando el valor actual alcanza el valor de preselección la salida externa Y5 pasa a
ON.
Valor de
preselección
1000
0
Valor actual
X3
Y5
Y5 pasa a ON cuando el valor actual
coincide con el valor de preselección
R903A
No se puede ejecutar otra instrucción
relacionada con el contador de alta velocidad mientras la bandera R903A esté a ON
Descripción
SAl estar la condición de ejecución en ON se configura el valor de preselección
especificado por S. Cuando el valor actual coincide con el valor de
preselección la salida externa especificada por D pasa a ON.
SEl valor de preselección se almacena en los registros especiales de datos
DT9047 y DT9046 cuando se ejecuta la instrucción F162. El valor de
preselección se resetea cuando el valor actual coincide con el valor de
preselección.
SEl relé interno especial R903A permanece a ON mientras se está ejecutando
la instrucción F162 y pasa a OFF cuando el valor actual coincide con el valor
de preselección.
. Nota
-- Aunque se ejecute un reset en el contador de alta
velocidad mientras se está ejecutando la instrucción
F162, el valor de preselección no se resetea hasta que
el valor actual alcanza el valor de preselección.
-- Para resetear la salida externa después de ejecutar
está instrucción se utilizan las instucciones : F163 y
RST.
-- Se puede utilizar la misma salida que emplea la
instrucción F162 en otra parte del programa, no se
considera salida duplicada.
-- Mientras R903A está a ON no se pueden ejecutar las
instrucciones F162, F163, F164 y F165.
4 -- 290
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- rango del valor de preselección: K--8388608 a K 8388607 (HFF800000.a
H007FFFFF).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
--.rango del valor de preselección: K--8388608 a K 8388607 (HFF800000.a
H007FFFFF).
-- La dirección del error se guarda en DT9018.
S Bandera de control del contador de alta velocidad (R903A): Pasa ON cuando se están ejecutando
alguna de las siguientes instrucciones: F162, F163, F165 y F165.
4 -- 291
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Paso
5
Salida del contador de alta
velocidad a OFF
F163 (HCOR)
Concepto
7
Disponibilidad
Todos FP--Ms y FP1’s
Especifica la salida que va a utilizar el contador de alta velocidad. La
salida externa especificada pasa a OFF cuando el valor actual alcanza
el valor de preselección.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X3
10
12
(DF)
10
ST
11
DF
12
F162
14
K
500
Y
0
F163 HCOS , K1000, Y0
1
10
(HCOR)
S
32 bits (constante o registro) donde se almacena el valor de preselección.
D
Salida externa que se activa cuando el valor actual coincide con el valor de
preselección (Yn n: 0 a 7)
J Operandos
Contacto
Operando
WX WY WR
4 -- 292
X
D
S
S
Instrucción
A
A
A
Temporizador/
Registro
Contador
SV
EV
DT
A
A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
A
N/A
A
A
A
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
S Al estar la entrada X3 en ON, se preselecciona K500 como valor de preselección del contador de
alta velocidad. Cuando el valor actual alcanza el valor de preselección la salida externa Y0 pasa a
OFF.
Valor de
preselección
500
0
X3
Y0
Valor actual
Y0 pasa a OFF cuando el valor
actual coincide con el valor de
preselección
R903A
No se puede ejecutar otra instrucción
relacionada con el contador de alta velocidad mientras la bandera R903A esté a ON
Descripción
SAl estar la condición de ejecución en ON se configura el valor de preselección
especificado por S. Cuando el valor actual coincide con el valor de
preselección la salida externa especificada por D pasa a OFF.
SEl valor de preselección se almacena en los registros especiales de datos
DT9047 y DT9046 cuando se ejecuta la instrucción F163. El valor de
preselección se resetea cuando el valor actual coincide con el valor de
preselección.
SEl relé interno especial R903A permanece a ON mientras se está ejecutando
la instrucción F163 y pasa a OFF cuando el valor actual coincide con el valor
de preselección.
. Nota
-- Aunque se ejecute un reset en el contador de alta
velocidad mientras se está ejecutando la instrucción
F163, el valor de preselección no se resetea hasta que
el valor actual alcanza el valor de preselección.
-- Para poner a ON la salida externa después de ejecutar
está instrucción se utilizan las instucciones : F162 y
ST.
-- Se puede utilizar la misma salida que emplea la
instrucción F163 en otra parte del programa, no se
considera salida duplicada.
-- Mientras R903A está a ON no se pueden ejecutar las
instrucciones F162, F163, F164 y F165.
4 -- 293
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
-- rango del valor de preselección: K--8388608 a K 8388607 (HFF800000.a
H007FFFFF).
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
--.el dato especificado por S excede el rango.
--.rango del valor de preselección: K--8388608 a K 8388607 (HFF800000.a
H007FFFFF).
-- La dirección del error se guarda en DT9018.
S Bandera de control del contador de alta velocidad (R903A): Pasa ON cuando se están ejecutando
alguna de las siguientes instrucciones: F162, F163, F165 y F165.
4 -- 294
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F164
5
Concepto
Paso
Control de salida de pulsos
Control de salida patrón
(SPDO)
3
3
Disponibilidad
FP--M/FP1 con salida a transistor
FP--Ms y FP1’s
Controla las condiciones de la salida del contador de alta velocidad según el
valor actual. Hay dos tipos de control:
Control de salida de pulsos: controla la frecuencia de oscilación de la salida de
acuerdo con el valor actual del contador de alta velocidad.
Control de salida patrón: Controla los patrones de salida de acuerdo con el
valor actual del contador de alta velocidad.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X3
10
ST
11
F 164 (SPDO)
DT
F164 SPD0 , DT100
10
Instrucción
X
0
100
S
S
16 bits iniciales donde se almacenan los datos de control
J Operandos
Contacto
Operando
S
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
N/A N/A N/A
N/A
N/A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A
N/A
N/A
N/A
A
J Explicación del ejemplo
S Se elige el tipo de control según el valor del registro.
S Ejemplo de control de salida de pulsos
Al estar la entrada X3 en ON, la salida externa Y7 comienza a proporcionar una salida de pulsos
de una frecuencia de 500 Hz. Cuando el valor actual del contador de alta velocidad alcanza el
valor de preselección (K3000) se detiene la salida de pulsos.
Registro Valor de
de datos preselección
Contenido
DT100 H0000
Modo de control de pulsos. Rango de frecuencia: 0. Salida de pulsos desde
Y7.
DT101 K70
Velocidad inicial: especifica la frecuencia de salida en el primer momento.
La frecuencia especificada en la velocidad inicial es válida hasta que el valor actual alcanza el valor de preselección 1. K70 en el rango 0 es 500 Hz
DT102 K3000
Valor de preselección 1: Cuando el valor actual del contador de alta velocidad alcanza el valor de preselección 1 (K3000), la frecuencia de salida
cambia a una frecuencia de 0 Hz
DT103
DT104 K0
Dato de velocidad 1: La frecuencia especificada en el dato de velocidad 1
es efectivo después de que el valor actual coincide con el valor de preselección 1. Cuando se especifica K0, se detiene la salida de pulsos y la operación de salida de pulsos finaliza.
4 -- 295
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Diagrama temporal
Datos de velocidad
(Frecuencia de salida de pulsos)
K70
Valor de preselección 1
(500 Hz)
Valor actual
X3
R903A
S Ejemplo de control de salida patrón
Al estar la entrada X3 en ON, se preselecciona el patrón de salida (Y0:ON e Y1:OFF). Cuando el
valor actual coincide con el valor de preselección 1 (K1000) la salida Y0 pasa a OFF e Y1 a ON
(patrón 1). Cuando el valor actual del contador de alta velocidad coincide con el valor de
preselección 2 (K2000) Y0 pasa a OFF e Y1 pasa a ON (patrón 2) y finaliza la función de salida de
pulsos.
Registro Valor de
de datos preselección
Contenido
DT100 H22
Modo de control de salida patrón. Número de valores de preselección: 2.
Salidas empleadas: Y0 e Y1.
DT101 K1
Patrón de salida inicial: es efectivo hasta que el valor inicial coincide con el
valor de preselección 1. H1 especifica Y0 a ON e Y1 a OFF.
DT102 K1000
Valor de preselección 1: Cuando el valor actual del contador de alta velocidad alcanza el valor de preselección 1 (K1000), el patrón de salida cambia
al patrón 1 (Y0 a OFF e Y1 a ON)
DT103
DT104 H2
Salida patrón 1: Se preselecciona cuando el valor actual coincide con el
valor de preselección 1. H2 especifica: Y0:OFF y Y1:ON.
DT105 K2000
Valor de preselección 2: Cuando el valor actual del contador de alta velocidad alcanza el valor de preselección 2 (K2000), el patrón de salida cambia
al patrón 2 (Y0 a ON e Y1 a OFF)
DT106
DT107 H1
4 -- 296
Salida patrón 2: Se preselecciona cuando el valor actual coincide con el
valor de preselección 2. H1 especifica: Y0:ON y Y1:OFF.
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
S Diagrama temporal
Valor actual
Valor de
preselcción 2
K2000
Valor de
preselcción 1
K1000
Valor actual
Tiempo
X3
R903A
Y0
Y1
Patrón 1
Patrón 2
Patrón 3
Descripción
SEsta instrucción proporciona dos tipos de señales de control (control de salida de pulsos y control de
salida patrón) según el valor actual del contador del contador de alta velocidad.
SEsta instrucción se puede utilizar para: para el control de posicionamiento de un motor con el control de
salida de pulsos, o para controlar un variador de velocidad utilizando el control de salida patrón.
SSe debe configurar la entrada del contador de alta velocidad en el registro especial de sistema 400.
SNo se pueden ejecutar dos instrucciones de control del contador de alta velocidad simultaneamente.
Mientras se está ejecutando alguna de las instrucciones R903A está a ON.
SPara detener la salida de pulsos se puede utilizar la instrucción F0.
Procedimiento del control de pulsos de salida
SEl modo de control de salida de pulsos se preselecciona en S. El rango de frecuencia y la salida externa
se especifican en S. La frecuencia de pulsos inicial es la especificada por S+1.
SCuando el valor actual coincide con el valor de preselección 1 (S+3 y S+2), la frecuencia cambia del valor
inicial al valor de frecuencia especificdado por S+4 (dato de velocidad 4).
SCuando el dato de velocidad es K0 significa que es el útimo dato de velocidad, y por lo tanto el valor de
preselección almacenado justamente antes, es el último y la operación de salida de pulsos finaliza.
4 -- 297
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Como especificar S
SLos datos de control se almacenan a partir de S de la siguiente manera.
Área
Byte de mayor peso
S
Modo control de salida de
pulsos
S+1
S+2
H0
Byte de menor peso
H0
Valor de preseleección
H0
H0
Dato inicial de velocidad
1
S+3
S+4
Dato de velocidad 1
S+5
Valor de preselección 2
S+6
S+7
Dato de velocidad 2
S+(n--2)
Último valor de preselección
S+(n--1)
S+n
Último dato de velocidad (K0)
·
S: H
0 0
Selección de la salida
H0: Y7 (disponible para FP--M salida transistor y FP1)
H1: Y6 (disponible para FP--M salida transistor y C56 y C72 del FP1)
Rango de frecuencia
H0: 360 a 5000 Hz
H1: 180 a 5000 Hz
H2: 90 a 5000 Hz
H3: 45 a 5000 Hz
4 -- 298
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
S Los datos de velocidad especifican las diferentes frecuencias de salida.
S Rango de los datos de velocidad: K000 a K255.
S Los datos de velocidad se pueden especificar utilizando el siguiente método:
--Rango de frecuencia 0: Dato de velocidad=257--93458/ frecuencia preseleccionada
--Rango de frecuencia 1: Dato de velocidad=257--46948/ frecuencia preseleccionada
--Rango de frecuencia 0: Dato de velocidad=257--23419/ frecuencia preseleccionada
--Rango de frecuencia 0: Dato de velocidad=257--11723/ frecuencia preseleccionada
--Se pueden utilizar las tablas que aparecen al final de esta instrucción.
Nota: El límite superior de frecuencia superior es 5Khz. Hay un error de + 5 % entre el dato de velocidad
y la frecuencia de salida especificada.
S Cuando el valor actual coincide con el valor de preselección, se proporciona en la salida la
frecuencia especificada. El valor de preselección ocupa 2 palabras. Rango de preselección: K--8388608
a K 8388607.
S Detención de la salida de pulsos: se detiene la operación cuando el dato de velocidad leído es K0.
Nota:
D Si en modo de control de salida de pulsos, el valor del dato de
velocidad o el valor de preselección 1 está fuera del rango , se
producirá un error de cálculo.
D Si alguno de los valores de preselección ( valor de preselección 2 o posterior) excede el rango se detiene la salida de pulsos y R903A pasa a OFF.
4 -- 299
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Procedimiento del control salida patrón
SEl modo de control de salida patrón se preselecciona en S. El número de valores de preselección y las
salidas externas utilizadas se especifican en S. El patrón es el especificado por S+1, activandose
cuando la condición de ejecución de la instrucción está en ON.
SCuando el valor actual coincide con el valor de preselección 1 (S+3 y S+2), la frecuencia cambia del
patrón inicial al patrón 1 especificificado en S+4.
SCuando el valor actual coincide con el valor de preselección especificado en S+(n--1) y S+(n--2), las
salidas cambian al último patrón especificado en S+n. La salida patrón se detiene.
Como especificar S
SLos datos de control se almacenan a partir de S de la siguiente manera.
Área
Byte de mayor peso
Byte de menor peso
S
H0
H0
S+1
H0
H0
S+2
Valor de preseleección
Modo control de salida
patrón
Dato inicial de velocidad
1
S+3
S+4
Salida patrón 1
S+5
Valor de preselección 2
S+6
S+7
Salida patrón 2
S+(n--2)
Último valor de preselección
S+(n--1)
S+n
Última salida patrón
·
S: H
Ejemplo: H32
Rango: de H1 a HF (1 a 15)
0 0
S: H
3
2
Número de salidas utilizadas:
Rango: de H1 a H8 (1 a 8)
Dos salidas:
Y0 e Y1
Número de valores de preselección
Rango: de H1 a HF (1 a 15)
Nota: Las salidas se utilizan a partir de la Y0.
4 -- 300
Tres valores de
preselección
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
SPreselección de la salida patrón: Al ejecutarse la salida patrón utilizando las salidas externas de la Y0 a
la Y7, el patrón de salida se especifica con una constante hexadecimal; ( cada bit corresponde a una de
las salidas.)
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Y7
Y0
Yn
Ejemplo: salida patrón “HA”
Y1 e Y3: ON
Y0, Y2, Y4 a Y7: OFF
1: ON
0: OFF
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Y0
Y7
Yn
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
Patrón
Hex
0
0
0
A
S Cuando el valor actual coincide con el valor de preselección, se proporciona en las salidas (Y0 a
Y7) el patrón especificado. El valor de preselección ocupa 2 palabras. Rango de preselección:
K--8388608 a K8388607.
Nota:
D Si en modo de control de salida patrón, el valor de preselección 1 está fuera del rango , se producirá un error de cálculo.
D Si alguno de los valores de preselección ( valor de preselección 2 o posterior) excede el rango se detiene la salida de pulsos y R903A pasa a OFF.
D Se debe emplear la instrucción RST para poner a OFF los
contactos de salida después del último patrón.
4 -- 301
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Condiciones de bandera
Control de salida de pulsos
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el rango de frecuencia, la salida de pulsos, la frecuencia de salida de
pulsos o el valor de preselección 1 exceden los siguientes rangos:
Rango de frecuencia: H0 a H3.
Rango de salidas externas: H0 a H1
Rango de los datos de velocidad (frecuencia de salida de pulsos): K0 a K255
Rango del valor de preselección 1:K--8388608 a K8388607
-- si al almacenar los dastos se excede el área de DT’s disponibles para su
almacenamiento
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- el rango de frecuencia, la salida de pulsos, la frecuencia de salida de
pulsos o el valor de preselección 1 exceden los siguientes rangos:
Rango de frecuencia: H0 a H3.
Rango de salidas externas: H0 a H1
Rango de los datos de velocidad (frecuencia de salida de pulsos): K0 a K255
Rango del valor de preselección 1:K--8388608 a K8388607
-- si al almacenar los dastos se excede el área de DT’s disponibles para su
almacenamiento
-- La dirección del error se guarda en DT9018.
S Bandera de control de contador de alta velocidad R903A: está bandera pasa a ON cuando la
condición de ejecución de está instrucción está en ON. Cuando el valor
actual coincide con el valor de preselección, la operación de salida de pulsos
se detiene y R903A pasa a OFF.
4 -- 302
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Control de salida patrón
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- el número de patrón, la salida de pulsos o el valor de preselección 1
exceden los siguientes rangos:
Rango de salidas externas: H0 a H8
Rango de lsalidas patrón: H0 a HF
Rango del valor de preselección 1: K--8388608 a K8388607
-- si el patrón hace referencia a una salida que no es efectiva.
-- si al almacenar los datos se excede el área de DT’s disponibles para su
almacenamiento
-- La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- el número de patrón, la salida de pulsos o el valor de preselección 1
exceden los siguientes rangos:
Rango de salidas externas: H0 a H8
Rango de lsalidas patrón: H0 a HF
Rango del valor de preselección 1: K--8388608 a K8388607
-- si el patrón hace referencia a una salida que no es efecctiva.
-- si al almacenar los datos se excede el área de DT’s disponibles para su
almacenamiento
-- La dirección del error se guarda en DT9018.
S Bandera de control de contador de alta velocidad R903A: está bandera pasa a ON cuando la
entrada de está instrucción pasa a ON. Cuando el valor actual coincide con
el valor de preselección, la operación de salida patrón se detiene y R903A
pasa a OFF.
4 -- 303
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Aplicaciones
Control de salida de pulsos
S Para realizar el siguiente tipo de control de salida de pulsos:
·
Conexionado
Salida de pulsos
Controlador
del motor
Y7
Motor
FP--M / FP1 (CPU)
X0
Entrada del contador
de alta valocidad
S Diagrama temporal
Datos de velocidad
(Frecuencia de salida de pulsos)
Dato de velocidad
inicial 1 K193
(1460 Hz)
Dato de velocidad
inicial 2 K152 ( 890
Hz)
Valor actual
Valor de preselección 1
Valor de preselección 2 Valor de preselección 3
(Último valor de preselección)
X3
R903A
S Programa
R9013
F0 MV, H
0, DT100
F0 MV, K
152, DT101
F1 DMV, K
1000, DT102
F0 MV, K
193, DT104
F1 DMV, H
3000, DT105
F0 MV, K
F1 DMV, K
X3
152, DT107
4000, DT108
F0 MV, K
F164 SPD0, DT100
S
4 -- 304
0, DT110
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Control de salida patrón
S Para realizar el siguiente control de un variador de velocidad utilizando la salida patrón:
·
Conexionado
Salidas de
control
Variador
Y0
Y1
Y2
FP--M / FP1 (CPU)
X0
X1
Entradas
del C.A.V.
Encoder
Motor
AC
S Diagrama temporal
Velocidad
Valor de preselección 1
Valor de preselección 2
Valor de preselección 3
Valor actual
X3
R903A
Y0
Y1
Y2
Patrón inicial de salida
(Velocidad rápida)
Patrón de
salida 1
(Velocidad
media)
Patrón de
salida 1
(Velocidad
lenta)
Patrón de
salida 3
Nota:
D Las velocidades (rápida, media o lenta) dependen del variador
utilizado.
4 -- 305
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Programa
R9013
F0 MV, H
33, DT100
F0 MV, K
3, DT101
F1 DMV, K
10000, DT102
F0 MV, H
F1 DMV, K
2, DT104
20000, DT105
F0 MV, H
F1 DMV, K
X3
1, DT107
30000, DT108
F0 MV, H
F164 SPD0, DT100
S
4 -- 306
4, DT110
Frecuencia de salida de pulsos (Hz)
Velocidad
Rango 0
(360 Hz
a 5kHz)
Rango 1
(180 Hz
a 5kHz)
Rango 2
(90 Hz
a 5kHz)
Rango 3
(45 Hz
a 5kHz)
255
254
253
252
251
250
249
248
247
246
245
244
243
242
241
240
239
238
237
236
235
234
233
232
231
230
229
228
227
226
225
224
223
222
221
220
219
218
217
216
215
214
213
212
211
210
46700
31200
23400
18700
15600
13400
11680
10380
9350
8500
7790
7190
6680
6230
5840
5500
5190
4920
4670
4450
4250
4060
3890
3740
3590
3460
3340
3220
3120
3010
2920
2830
2750
2670
2600
2530
2460
2400
2340
2280
2230
2170
2120
2080
2030
1990
23500
15600
11700
9390
7820
6710
5870
5220
4690
4270
3910
3610
3350
3130
2930
2760
2610
2470
2350
2240
2130
2040
1960
1880
1810
1740
1680
1620
1560
1510
1470
1420
1380
1340
1300
1270
1240
1200
1180
1150
1120
1090
1070
1040
1021
999
11700
7810
5850
4680
3900
3350
2930
2600
2340
2130
1950
1800
1670
1560
1460
1380
1300
1230
1170
1120
1060
1020
976
937
901
867
836
808
781
755
732
710
689
669
651
633
616
600
585
571
558
545
532
520
509
498
5860
3910
2930
2340
1950
1670
1470
1300
1170
1070
977
902
837
782
733
690
651
617
586
558
533
510
488
469
451
434
419
404
391
378
366
355
345
335
326
317
309
301
293
286
279
273
266
261
255
249
Frecuencia de salida de pulsos (Hz)
Frecuencia de salida de pulsos (Hz)
Ciclo
Velo- Rango 0 Rango 1 Rango 2 Rango 3
de
(45 Hz
cidad (360 Hz (180 Hz (90 Hz
a 5kHz) a 5kHz) a 5kHz) a 5kHz)
trabajo
(%)
Ciclo
Velo- Rango 0 Rango 1 Rango 2 Rango 3
de
(45 Hz
cidad (360 Hz (180 Hz (90 Hz
a 5kHz) a 5kHz) a 5kHz) a 5kHz)
trabajo
(%)
0
33
25
40
33
43
38
44
40
45
42
46
43
47
44
47
44
47
45
48
45
48
46
48
46
48
46
48
47
48
47
48
47
49
47
49
47
49
48
49
48
49
48
49
48
49
209
208
207
206
205
204
203
202
201
200
199
198
197
196
195
194
193
192
191
190
189
188
187
186
185
184
183
182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
1950
1910
1870
1830
1800
1760
1730
1700
1670
1640
1610
1580
1560
1530
1510
1480
1460
1440
1420
1390
1370
1350
1340
1320
1300
1280
1260
1250
1230
1210
1200
1180
1170
1150
1140
1130
1110
1100
1090
1070
1060
1050
1040
1030
1020
1000
978
958
939
921
903
886
869
854
838
824
809
796
782
770
757
745
734
722
711
701
690
680
671
661
652
643
634
626
618
610
602
594
587
580
573
566
559
552
546
540
534
528
522
516
510
505
488
478
468
459
450
442
434
426
418
411
404
397
390
384
378
372
366
360
355
350
344
339
335
330
325
321
316
312
308
304
300
296
293
289
286
282
279
276
272
269
266
263
260
257
255
252
244
239
234
230
225
221
217
213
209
206
202
199
195
192
189
186
183
180
178
175
172
170
167
165
163
161
158
156
154
152
150
148
147
145
143
141
140
138
136
135
133
132
130
129
127
126
48
49
48
49
48
49
48
49
48
49
48
49
48
49
48
49
48
49
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
994
984
974
963
954
944
935
925
916
907
899
890
882
873
865
857
850
842
834
827
820
813
806
799
792
785
779
772
766
760
754
748
742
736
730
724
719
713
708
703
697
692
687
682
677
672
499
494
489
484
479
474
469
465
460
456
451
447
443
439
435
431
427
423
419
415
412
408
405
401
398
395
391
388
385
382
379
376
373
370
367
364
361
358
356
353
350
348
345
343
340
338
249
247
244
241
239
237
234
232
230
227
225
223
221
219
217
215
213
211
209
207
205
204
202
200
198
197
195
194
192
190
189
187
186
184
183
182
180
179
177
176
175
173
172
171
170
168
125
123
122
121
120
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99.4
98.5
97.7
96.9
96.1
95.3
94.5
93.8
93.0
92.3
91.6
90.9
90.2
89.5
88.8
88.1
87.5
86.8
86.2
85.6
85.0
84.3
Ciclo
de
trabajo
(%)
49
49
49
49
49
49
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
Frecuencia de salida de pulsos (Hz)
Velocidad
Rango 0
(360 Hz
a 5kHz)
Rango 1
(180 Hz
a 5kHz)
Rango 2
(90 Hz
a 5kHz)
Rango 3
(45 Hz
a 5kHz)
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
668
663
658
654
649
645
640
636
631
627
623
619
615
611
607
603
599
595
592
588
584
580
577
573
570
566
563
560
556
553
550
547
543
540
537
534
531
528
525
522
335
333
331
328
326
324
322
319
317
315
313
311
309
307
305
303
301
299
297
295
293
292
290
288
286
285
283
281
279
278
276
275
273
271
270
268
267
265
264
262
167
166
165
164
163
162
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
145
144
143
142
141
140
139
139
138
137
136
135
135
134
133
132
132
131
83.7
83.1
82.6
82.0
81.4
80.9
80.3
79.8
79.2
78.7
78.2
77.6
77.1
76.6
76.1
75.6
75.1
74.7
74.2
73.7
73.3
72.8
72.4
71.9
71.5
71.1
70.6
70.2
69.8
69.4
69.0
68.6
68.2
67.8
67.4
67.0
66.6
66.2
65.9
65.5
Frecuencia de salida de pulsos (Hz)
Frecuencia de salida de pulsos (Hz)
Ciclo
Velo- Rango 0 Rango 1 Rango 2 Rango 3
de
(45 Hz
cidad (360 Hz (180 Hz (90 Hz
a 5kHz) a 5kHz) a 5kHz) a 5kHz)
trabajo
(%)
Ciclo
Velo- Rango 0 Rango 1 Rango 2 Rango 3
de
(45 Hz
cidad (360 Hz (180 Hz (90 Hz
a 5kHz) a 5kHz) a 5kHz) a 5kHz)
trabajo
(%)
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
519
516
514
511
508
505
502
500
497
494
492
489
487
484
482
479
477
474
472
470
467
465
463
460
458
456
454
451
449
447
445
443
441
439
437
435
433
431
429
427
261
259
258
257
255
254
252
251
250
248
247
246
245
243
242
241
240
238
237
236
235
234
232
231
230
229
228
227
226
225
224
223
221
220
219
218
217
216
215
214
130
129
129
128
127
127
126
125
125
124
123
123
122
121
121
120
119
119
118
118
117
117
116
115
115
114
114
113
113
112
112
111
110
110
109
109
108
108
107
107
65.1
64.8
64.4
64.1
63.7
63.4
63.0
62.7
62.4
62.0
61.7
61.4
61.1
60.7
60.4
60.1
59.8
59.5
59.2
58.9
58.6
58.3
58.0
57.8
57.5
57.2
56.9
56.6
56.4
56.1
55.8
55.6
55.3
55.0
54.8
54.5
54.3
54.0
53.8
53.5
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
425
423
421
419
417
415
414
412
410
408
406
405
403
401
399
398
396
394
393
391
389
388
386
385
383
381
380
378
377
375
374
372
371
369
368
367
365
213
212
211
211
210
209
208
207
206
205
204
203
202
201
201
200
199
198
197
196
196
195
194
193
192
192
191
190
189
189
188
187
186
186
185
184
183
106
106
105
105
105
104
104
103
103
102
102
101
101
101
100
99.7
99.2
98.8
98.4
98.0
97.6
97.2
96.8
96.4
96.0
95.6
95.2
94.8
94.4
94.1
93.7
93.3
92.9
92.6
92.2
91.8
91.5
53.3
53.0
52.8
52.6
52.3
52.1
51.9
51.6
51.4
51.2
51.0
50.8
50.5
50.3
50.1
49.9
49.7
49.5
49.3
49.1
48.8
48.6
48.4
48.2
48.0
47.9
47.7
47.5
47.3
47.1
46.9
46.7
46.5
46.3
46.2
46.0
45.8
Ciclo
de
trabajo
(%)
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
F165
Paso
5
(CAM0)
Concepto
Disponibilidad
Control Cam
FP--Ms y FP1’s
3
Controla los patrones de salida en cada una de las salidas externas según el
valor actual del contador de alta velocidad.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X3
10
ST
11
F 165 (CAM0)
DT
F165 CAM0 , DT100
10
Instrucción
X
0
100
S
S
16 bits iniciales donde se almacenan los datos de control
J Operandos
Operando
S
Contacto
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
N/A N/A N/A
N/A
N/A
A
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A
N/A
N/A
N/A
A
J Explicación del ejemplo
S Al estar la entrada X3 en ON, se preselecciona el patrón inicial en Y0 e Y1 y comienza el control
cam.
S Movimiento de Y0
Al estar la entrada X3 en ON, la salida externa Y0 pasa a ON. Y0 pasa a OFF cuando el valor
actual del contador de alta velocidad coincide con el valor de preselección de puesta a OFF para
Y0 (K1000) y pasa a ON cuando el valor actual coincide con el valor de preselección de puesta a
ON para Y0 (K4000).
S Movimiento de Y1
Al estar la entrada X3 en ON, la salida externa Y1 pasa a OFF. Y1 pasa a ON cuando el valor
actual del contador de alta velocidad coincide con el valor de preselección de puesta a ON para Y1
(K2000) y pasa a OFF cuando el valor actual coincide con el valor de preselección de puesta a
OFF para Y1 (K3000).
S Cuando el valor actual alcanza el máximo valor de preselección (K5000) el contador se resetea y
se vuelve a repetir la misma operación.
4 -- 311
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Registros de datos utilizados por el control cam.
Registros
de datos
Valor de
Contenido
preselección
DT100
H1003
Preselección del modo de control cam
(Preselección del valor máximo de preselección: preseleccionar en la
tabla; salidas utilizadas: Y0 e Y1)
DT101
H1
Salida patrón cam inicial
El patrón inicial de salida se activa cuando la entrada de la instrucción
pasa a ON. El estado de cada salida externa cambia según el valor actual y los valores de preselección de paso a ON/OFF del contador de alta
velocidad.
H1: Y0: ON, Y1: OFF
DT102
H4000
Y0 pasa a ON cuando el valor actual coincide con el valor de preselección K4000
DT103
DT104
K1000
DT106
HFFFF
DT107
HFFFF
DT108
K2000
K3000
Valor de preselección de paso a ON para Y1
Valor de preselección de paso a OFF para Y1
Y1 pasa a OFF cuando el valor actual coincide con el valor de preselección K3000
DT111
DT112
HFFFF
DT113
HFFFF
DT114
K5000
4 -- 312
Código final de salida patrón para Y0
Y1 pasa a ON cuando el valor actual coincide con el valor de preselección K2000
DT109
DT115
Valor de preselección de paso a OFF para Y0
Y0 pasa a OFF cuando el valor actual coincide con el valor de preselección K1000
DT105
DT110
Valor de preselección de paso a ON para Y0
Código final de salida patrón para Y1
Máximo valor de preselección para la operación de control cam
El valor actual del contador de alta velocidad se resetea cuando coincide
con el máximo valor de preselección (K5000) y se vueve a repetir el control cam.
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Diagrama de tiempos
Valor actual
K5000
K4000
K3000
K2000
K1000
0
X3
R903A
R903B
Y0
Y1
Patrón inicial de salida
Más de 1 ms
Descripción
SEsta instrucción permite utilizar el FP--M/FP1 como un conmutador programable cam a partir de
señales de encoders que se aplican a la entrada del contador de alta velocidad.
SNo se puede utilizar en el control CAM un modo de C.A.V. que use entradas de resta.
SEl número máximo de salidas con las que se puede realizar un control cam son 8, de la Y0 a la
Y7.
SEl número máximo de patrones es:
-- FP1 C14 y C16: 16 valores de preselección de paso a ON y 16 de paso a OFF.
-- FP1 C24, C40, C56, y C72 y todos los FP--M’s: 32 valores de preselección de paso a ON y 32
de paso a OFF
SSe debe resetear el valor actual del contador de alta velocidad (registros especiales de datos
DT9045 y DT9044) utilizando la instrucción F1.
SEl control cam comienza inmediatamente después de que la entrada de la instrucción F165 pasa
a ON y se repite ciclicamente. Para detener la operación de control cam , se utiliza la instrucción
F0 y y el registro de datos especiales DT9052.
Nota:
D Por cada valor de preselección de puesta a ON debe haber un valor de
preselección de puesta a OFF.
D Durante la operación de control cam los relés R903A y R903B pasan a ON
y no se puede ejecutar ninguna otra instrucción relacionada con el contador de contador de alta velocidad (F162, F163, F164 y F165).
D Cuando se resetea el contador de alta velocidad con la instrucción F0 o
con un reset por hardware a través de la entrada X2, el siguiente control
cam que se ejecuta comenzará por el patrón que tenía justo antes de
resetearlo.
D El rago de cuenta del contador de alta velocidad es desde K0 a K8388607,
si no se especifica el máximo valor de preselección se toma K8388607.
D El tiempo entre dos valores de puesta a ON o a OFF debe ser mayor que 1
msg.
4 -- 313
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Tabla de datos para control cam
SEl modo de control para cam se preselecciona en S. El número de valores de preselección de paso a
ON/OFF de cada salida, etc...se realiza de la siguiente manera.
Área
S
Byte de mayor peso
Byte de menor peso
H0
H0
Modo control
cam
S+1
Patrón inicial de salida
S+2
Valor de preseleección de puesta a ON para Y0
S+3
S+4
Valor de preseleección de puesta a OFF para Y0
S+5
S+6
Valor de preseleección de puesta a ON para Y0
S+7
S+8
Valor de preseleección de puesta a OFF para Y0
S+9
S+10
Código de final de patrónes de salida para Y0 :HFFFF
S+11
Código de final de patrónes de salida para Y0 :HFFFF
S+12
Valor de preseleección de puesta a ON para Y1
S+13
S+14
Valor de preseleección de puesta a OFF para Y1
S+15
S+16
Código de final de patrónes de salida para Y1 :HFFFF
S+17
Código de final de patrónes de salida para Y1 :HFFFF
:.
:
:
S+(n--7)
:
:
:
Valor de preseleección de puesta a ON para Ym
S+(n--6)
S+(n--5)
Valor de preseleección de puesta a OFF para Ym
S+(n--4)
S+(n--3)
Código de final de patrónes de salida para Ym :HFFFF
S+(n--2)
Código de final de patrónes de salida para Ym :HFFFF
S+(n--1)
Máximo valor de preselección
S+n
4 -- 314
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
SEn S se preselecciona el modo de control cam como se explica a continuación:
·
S: H
0 0
Número de salidas utilizadas:
Rango: de H1 a H8 (1 a 8)
H0: El valor máximo de preselección no
se preselecciona en la tabla. El valor por
defecto es K8388607.
H1: Máximo valor de preselección se
preselecciona en la tabla
Nota: Si se utiliza la entrada X2
para resetear el control cam se
recomienda utilizar como valor
máximo de preselección el valor
por defecto K8388607
SPatrón inicial de salida (S+1): este patrón es el que aparece en las salidas cuando la condición de
ejecución de la instrucción F165 pasa a ON. Cada bit se corresponde con una de las salidas.
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Y7
Y0
Yn
Ejemplo: patrón inicial “HA”
Y1 e Y3: ON
Y0, Y2, Y4 a Y7: OFF
1: ON
0: OFF
Pos del bit 15 · · 1211 · · 8 7 · · 4 3 · · 0
Y0
Y7
Yn
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
Patrón
Hex
0
0
0
A
SValores de preselección de paso a ON/OFF:
-- Por cada valor de preselección de paso a ON tiene que haber uno de paso a OFF, es decir van en
parejas .
-- Cada valor de preselección ocupa 32 bits. Rango:
de K1 a K8388607 cuando no se preselecciona en la tabla.
de K1 al máximo valor de preselección preseleccionado en la tabla
-- FP1 C14 y C16: 16 valores de preselección de paso a ON y 16 de paso a OFF.
-- FP1 C24, C40, C56, y C72 y todos los FP--M’s: 32 valores de preselección de paso a ON y 32 de
paso a OFF
Nota:
D Por cada valor de preselección de puesta a ON debe haber un valor de
preselección de puesta a OFF.
D Las salidas comienzan a partir de la salida externa Y0.
D Se debe incluir el código HFFFFFFFF después de la finalización de la
preselección de los diferentes valoresde preselección para cada una de
las salidas.
4 -- 315
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
SValor máximo de preselección:
-- Para preseleccionar el valor de preselección máximo en la tabla el bit 3 de S debe estar a 1.
-- Cuando el valor actual llega al valor máximo de preselección se resetea el valor actual del contador y
se repite el mismo control cam.
-- Rango del valor máximo de preselección de K1 a K8388607.
J Condiciones de bandera
S Bandera de error(R9007):Pasa a ON y permanece en ese estado cuando:
-- el modificador de índice excede el límite
-- los valores de preselección de paso a ON/OFF no están dentro del rango
K1 a K8388607.
-- cuando uno de los valores de preselección de puesta a ON/OFF es mayor
que el valor máximo de preselcción
-- cuando no hay un valor de preselección de puesta a ON por cada uno de
puesta a OFF.
-- el número de valores de preselección de puesta a ON/OFF no están
dentro de los siguientes rangos:
-- FP1 C14 y C16: 16 valores de preselección de paso a ON y 16 de paso a
OFF.
-- FP1 C24, C40, C56, y C72 y todos los FP--M’s: 32 valores de preselección
de paso a ON y 32 de paso a OFF
-- si el número de salidas excede el siguiente rango:
Rango de salidas externas: H1 a H8
-- si el patrón hace referencia a una salida que no es efectiva.
---- si al almacenar los datos se excede el área de DT’s disponibles para su
almacenamiento
La dirección del error se almacena en DT9017 y se mantiene.
S Bandera de error (R9008):Pasa a ON durante un instante cuando:
-- el modificador de índice excede el límite
-- los valores de preselección de paso a ON/OFF no están dentro del rango
K1 a K8388607.
-- cuando uno de los valores de preselección de puesta a ON/OFF es mayor
que el valor máximo de preselcción
-- cuando no hay un valor de preselección de puesta a ON por cada uno de
puesta a OFF.
-- el número de valores de preselección de puesta a ON/OFF no están
dentro de los siguientes rangos:
-- FP1 C14 y C16: 16 valores de preselección de paso a ON y 16 de paso a
OFF.
-- FP1 C24, C40, C56, y C72 y todos los FP--M’s: 32 valores de preselección
de paso a ON y 32 de paso a OFF
-- si el número de salidas excede el siguiente rango:
Rango de salidas externas: H0 a H8
-- si el patrón hace referencia a una salida que no es efectiva.
---- si al almacenar los datos se excede el área de DT’s disponibles para su
almacenamiento
-- La dirección del error se guarda en DT9018.
S Bandera de control de contador de alta velocidad R903A y bandera de control cam R903B: estás
banderas pasan a ON cuando la entrada de está instrucción pasa a ON.
Cuando se resetea el valor actual con la instrucción F0 estás banderas
pasan a OFF.
4 -- 316
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Ejemplo de aplicación
S Realizar el siguiente control cam:
-- Salidas cam : 4 (de la Y0 a la Y3)
-- Máximo valor de preselección: K14000
-- Patrón inicial de salida: Y0 e Y3: ON y el resto a OFF
-- Valores de preselección de puesta a ON/OFF:
Yn
Estado
Valor de preselección
Y0
ON
K12000
OFF
K4000
ON
K2000, K8000
OFF
K6000, K12000
ON
K4000
OFF
K10000
ON
K12000
OFF
K2000
Y1
Y2
Y3
4 -- 317
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Valor actual
K14000
K12000
K10000
K8000
K6000
K4000
K2000
0
X3
R903A
R903B
Y0
Y1
Y2
Y3
4 -- 318
Tiempo
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
S Programa:
Tabla de datos de control cam
X3
DF
F0 MV, H
1004, DT100
F0 MV, H
9, DT101
F1 DMV, K
12000, DT102
F1 DMV, H
4000, DT104
Modo de operación de control cam
Patrón inicial cam de salida
Valor de preselección de puesta a ON para Y0
Valor de preselección de puesta a OFF para Y0
F1 DMV, H FFFFFFFF, DT106
Código de final da patrones de salida para Y0
F1 DMV, K
2000, DT108
Valor de preselección de puesta a ON para Y1
F1 DMV, K
6000, DT110
Valor de preselección de puesta a OFF para Y1
F1 DMV, K
8000, DT112
Valor de preselección de puesta a ON para Y1
F1 DMV, K
12000, DT114
Valor de preselección de puesta a OFF para Y1
F1 DMV, H FFFFFFFF, DT116
Código de final de patrones de salida para Y1
F1 DMV, K
4000, DT118
Valor de preselección de puesta a ON para Y2
F1 DMV, K
10000, DT120
Valor de preselección de puesta a OFF para Y2
F1 DMV, H FFFFFFFF, DT122
Código de final de patrones de salida para Y2
F1 DMV, K
12000, DT124
Valor de preselección de puesta a ON para Y3
F1 DMV, K
2000, DT126
Valor de preselección de puesta a OFF para Y3
F1 DMV, H FFFFFFFF, DT128
Código de final de patrones de salida para Y3
F1 DMV, H
14000, DT130
Máximo valor de preselección
F1 DMV, H
0, DT9044
F165 CAM0, DT100
Reseteo del contador del valor actual
Ejecución de la instrucción F165 (CAM0)
4 -- 319
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
ON: Instrucción de coincidencia
con el valor de preselección
(con especificación de canal)
F166(HC1S)
Concepto
Paso
11
Disponibilidad
Todos los FP0’s
Pone a ON la salida especificada, cuando el valor actual de C.A.V. del
canal especificado (HSC0 a HSC3) coincide con el valor de
preselección.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
10
ST
11
F166
R0
10
F166 HC1S , K 0 , K10000 , Y0
S
n
Instrucción
R
0
(HC1S)
K
0
K
10000
Y
0
D
n
Número del canal del contador de alta velocidad (n: K0 to K3).
S
32 bits (constante o registro) donde se almacena el valor de preselección.
D
Salida externa que se activa cuando el valor actual coincide con el valor de
preselección (Yn n: 0 a 7)
J Operandos
n
S
D
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
A
A
A
A
A
A
A
N/A
A
A
A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Contacto
Operando
A
A
A
N/A N/A N/A
A:Disponible
N/A:No disponible
Descripción
SEl valor de preselección lo especifica el operando S. La salida especificada
pasa a ON cuando el valor actual coincide con el valor de preselección (la
ejcución se realiza como un proceso de interrupción).
SCuando coinciden el valor de preselección y el valor actual, la instrucción F166
está completada y queda disponible para otra ejecución.
SEl rango del valor de preselección es el siguiente:
K--8,388,608 a K8,388,607 (H FF800000 a H 007FFFFF)
SCuando se ejecuta la instrucción se almacena el contenido de S en el área de
valor de preselección. Para más detalles consultar en el capítulo 6.2.
SLa salida externa especificada puede ser desde la Y0 a la Y7.
4 -- 320
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
Valor de
preselección
10000
0
R0
R903A
Valor actual
Ejecución de la instrucción F166 completada
(puesta a cero)
Y0
Pasa a ON cuando el valor de preselección
coincide con el valor actual
. Notas
D La bandera correspondiente al canal utilizado por la
instrucción está a ON desde que la condición de ejecución de
la instrucción se activa hasta que el valor actual y el de
preselección coinciden.
D Si la bandera de control del contador de alta velocidad para
un canal especificado está a ON, no se puede ejecutar
ejecutar otra instrucción del contador de alta velocidad (F160
a la F170) que emplee el mismo canal.
D Durante la ejecución de la instrucción no se puede resetear ni
el valor de preselección ni el número de salida especificada,
incluso aunque se realice un reset por hardware. El valor
actual si se puede resetear.
D No se comprueba si la salida especificada por la intrucción
F166 está duplicada con otra instrucción OT, KP u otra
instrucción de alto nivel.
D Para poner a OFF la salida especificada se ejecuta un reset
con la instrucción F0 o se utiliza la instrucción F167 (HC1R).
D Para ejecutar esta instrucción es necesario configurar el
contador de alta velocidad. Para más detalles, consultar en
“6.3 Funciones del contador de alta velocidad.”
4 -- 321
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
F167(HC1R)
Concepto
OFF: Instrucción de coincidencia
con el valor de preselección
(con especificación de canal)
Paso
Disponibilidad
11
Todos los FP0’s
Pone a OFF la salida especificada, cuando el valor actual de C.A.V. del
canal especificado (HSC0 a HSC3) coincide con el valor de
preselección
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
Instrucción
10
ST
11
F167
R
0
(HC1R)
K
R0
10
K
F167 HC1R , K 0 , K --200 , Y0
0
--
200
Y
S
n
0
D
n
Número del canal del contador de alta velocidad (n: K0 to K3).
S
32 bits (constante o registro) donde se almacena el valor de preselección.
D
Salida externa que se activa cuando el valor actual coincide con el valor de
preselección (Yn n: 0 a 7)
J Operandos
n
S
D
Temporizador/
Registro
Contador
WX WY WR
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
A
A
A
A
A
A
A
N/A
A
A
A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Contacto
Operando
A
A
A
N/A N/A N/A
A:Disponible
N/A:No disponible
Descripción
SEl valor de preselección lo especifica el operando S. La salida especificada
pasa a OFF cuando el valor actual coincide con el valor de preselección (la
ejcución se realiza como un proceso de interrupción).
SCuando coinciden el valor de preselección y el valor actual, la instrucción F167
está completada y queda disponible para otra ejecución.
SEl rango del valor de preselección es el siguiente:
K--8,388,608 a K8,388,607 (H FF800000 a H 007FFFFF)
SCuando se ejecuta la instrucción se almacena el contenido de S en el área de
valor de preselección. Para más detalles consultar en el capítulo 6.2.
SLa salida externa especificada puede ser desde la Y0 a la Y7.
4 -- 322
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Explicación del ejemplo
Valor actual
0
Valor de
preselección
--200
R0
R903A
Ejecución de la instrucción F167 completada
(puesta a cero)
Y0
Pasa a OFF cuando el valor de preselección
coincide con el valor actual
. Notas
D La bandera correspondiente al canal utilizado por la
instrucción está a ON desde que la conjdición de ejecución de
la instrucción se activa hasta que el valor actual y el de
preselección coinciden.
D Si la bandera de control del contador de alta velocidad para
un canal especificado está a ON, no se puede ejecutar
ejecutar otra instrucción del contador de alta velocidad (F160
a la F170) que emplee el mismo canal.
D Durante la ejecución de la instrucción no se puede resetear ni
el valor de preselección ni el número de salida especificada,
incluso aunque se realice un reset por hardware. El valor
actual si se puede resetear.
D No se comprueba si la salida especificada por la intrucción
F166 está duplicada con otra instrucción OT, KP u otra
instrucción de alto nivel.
D Para poner a ON la salida especificada se ejecuta un reset con
la instrucción F0 o se utiliza la instrucción F166 (HC1S).
D Para ejecutar esta instrucción es necesario configurar el
contador de alta velocidad. Para más detalles, consultar en
“6.3 Funciones del contador de alta velocidad.”
4 -- 323
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F168
Concepto
Control de posicionamiento (control
trapezoidal /vuelta al origen: con
(SPD1) especificación de canal)
Disponibilidad
Todos los FP0’s con
salida a transistor
Paso
5
Proporciona un tren de pulsos por la salidda especificada (Y0 o Y1) de
acuerdo con el parámetro especificado.
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X10
10
Instrucción
10
ST
11
F168
X
0
(SPD1)
DT
F168 SPD1 , DT100 , K 0
100
K
0
n
S
S
Dirección de inicio del área que contiene la tabla de datos.
n
Salida externa que será la salida de pulsos (n: K0 o K1).
J Operandos
Operando
Contacto
Temporizador/
Registro
Contador
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
WX WY WR
SV
EV
DT
S
N/A N/A N/A
N/A
N/A
A
N/A
N/A
N/A
N/A
A
n
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
A
A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al pasar la entrada X10 a ON, estando la bandera del canal utilizado a OFF, un tren de pulsos sale
por la salida especificada, en el ejemplo Y0.
S El código de control , velocidad inicial, velocidad máxima, tiempo de aceleración/deceleración y el
valor de preselección, son especificados por el programa del usuario con una tabla de datos como
la que se muestra en la tabla de la página siguiente.
S La frecuencia varía en función del tiempo de aceleración/deceleración y la velocidad inicial y la
máxima.
S Áreas empleadas por el contador al utilizar esta instrucción.
Número Bandera
de
del canal
control
Área de valor
actual
Área de valor
de
preselección
Salida
del tren
de
pulsos
Salida
Proximidad
direccional
al origen
Entrada
de origen
ch0
R903A
DT9044, 9045
DT9046, 9047
Y0
Y2
DT9052 bit2
X0
ch1
R903B
DT9048, 9049
DT9050, 9051
Y1
Y3
DT9052 bit6
X1
S Si se modifican en modo RUN los datos de alguna de las áreas mostradas en la tabla, puede
ocurrir que el número de pulsos de salida sea mayor que el establecido.
4 -- 324
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Descripción del modo de operación
S Incremental <control de valor relativo>
Proporciona el número de pulsos especificado.
Código de control H02 (incremental; hacia delante: OFF; hacia atrás: ON). Si el valor de
preselección es positivo, la salida direccional pasa a OFF y el valor actual del contador de alta
velocidad se incrementa. Si el valor de preselección es negativo, la salida direccional se pone a a
ON y el valor actual del contador de alta velocidad se decrementa.
Código de control H03 (incremental; hacia delante: ON; hacia atrás: OFF). Igual que el caso
anterior, activandose la salida direccional al contrario de lo explicado arriba.
S Absoluto <Control de valor absoluto>
Proporciona el número de pulsos resultantes de la diferencia entre el valor actual y el valor de
preselección.
Código de control H12 (absoluto; hacia delante: OFF; hacia atrás: ON). Si el valor actual es menor
que el valor de preselección, la salida direccional pasa a OFF y el valor actual del contador de alta
velocidad se incrementa. Si el valor actual es mayor que el valor de preselección, la salida
direccional pasa a ON y el valor actual del contador de alta velocidad se decrementa.
Código de control H13 (absoluto; hacia delante: ON; hacia atrás: OFF). Igual que el caso anterior,
activandose la salida direccional al contrario de lo explicado arriba.
S Vuelta al origen
Proporciona un tren de pulsos continuo hasta que se activa la entrada de origen (X0 o X1). Para
decelerar el movimiento al a proximarse al origen, se debe poner a 1 el bit correspondiente de
DT9052 OFF
ON
OFF
, activando, de este modo, la entrada de proximidad al origen
En las operaciones de vuelta al origen se debe controlar los siguientes parámetros: código de
control, velocidad inicial, velocidad máxima y tiempo de aceleración y deceleración, mostrados en
la tabla de abajo.
J Tabla de datos [S] a [S + 6]
S
Código de control
S+1
*1
Velocidad inicial Fmin
K40 to K5000 (Hz)
(Hz)
S+2
Velocidad máxima
(Hz)
K40 to K9500 (Hz) *2
S+3
Tiempo de
aceleración /
deceleración (mS)
K30 to K32767 (ms)
S+4
S+5
S+6
Valor de preselección K--8,388,608 to K+8,388,607
(número de pulsos)
K0
“K0” Final de la tabla de datos
f
Fmax
Fmin
Número de
pulsos de
salida
t
Tiempo de
aceleración
t
t
Tiempo de
deceleración
4 -- 325
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
*1: El código de control se especifica modificando la constante H.
Hjjj
Especificación del ancho de pulso
0: Ciclo de trabajo 50%
1: Ancho de pulso fijo (aprox. 80 µs)
Modos de operación y estados de la salida direccional
00: No usa la salida direccional en modo “incremental“
02: “Incremental” hacia delante OFF/ hacia atrás ON
03: “Incremental” hacia delante ON/ hacia atrás OFF
10: No usa la salida direccional en modo “absoluto”
12: “Absoluto” hacia delante OFF, hacia atrás ON
13: “Absoluto” hacia delante ON, hacia atrás OFF
20: No hay salida direccional en modo vuelta al origen
22: Salida direccional en “vuelta al origen” a OFF
23: Salida direccional en “vuelta al origen” a ON
*2: Cuando el ciclo de trabajo es del 50%, la frecuencia máxima es de 6 kHz. Cuando el ancho
de pulso es fijo a 80 µs, la frecuencia máxima es de 9.5 kHz.
S Para resolver problemas cuando no se obtiene un tren de pulsos cuando se ejecuta la instrucción
F168 consultar en la página 6 -- 32.
J Ejemplo de aplicación
R0
F0 MV, H 2, DT 0
F0 MV, K1000, DT 1
F0 MV, K7000, DT 2
F0 MV, K300, DT 3
F1 DMV, K100000, DT 4
F0 MV, K 0, DT 6
R1
F168 SPD1, DT 0, K 0
DT 0
0
DT 1
K
1000
DT 2
K
7000
DT 3
K
300
DT 4
K100000
DT 5
DT 6
4 -- 326
0
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
7kHz
Número de pulsos de
salida
100,000
1kHz
300ms
300ms
f
t
f = (7000 -- 1000) ▐ 30 pasos = 200 (Hz)
t = 300 mS ▐ 30 pasos = 10 mS
4 -- 327
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F169(PLS)
Concepto
Disponibilidad
Paso
Instrucción de salida de pulsos
(Operación JOG: con
especificación de canal)
Todos los FP0’s con
salida a transistor
5
Proporciona los pulsos especificados por el parámetro “S” por la salida
especificada (Y0 o Y1).
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X10
10
Instrucción
10
ST
11
F169
X
10
(PLS)
DT
F169 PLS , DT10 , K 0
10
K
0
n
S
S
Dirección de inicio del área que contiene la tabla de datos
n
Salida externa que será la salida de pulsos (n: K0 o K1).
J Operandos
Temporizador/
Registro
Contador
Contacto
Operando
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
WX WY WR
SV
EV
DT
S
N/A N/A N/A
N/A
N/A
A
N/A
N/A
N/A
N/A
A
n
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
A
A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Al pasa la entrada a ON, estando la bandera de control del canal utilizado a OFF, un tren de pulsos
sale del canal especificado. El tren de pulsos sale mientras la entrada está a ON.
S Esta instrucción se puede utilizar para operaciones de tipo JOG, empleando el modo de operación
de cuenta incremental o decremental, programando como código de control H12 (incremental,
salida direccional a OFF) y H22 (decremental, salida direccional a ON).
S La frecuencia y el ciclo de trabajo se pueden cambiar en cada ciclo de scan. (El cambio se hace
efectivo en el siguiente ciclo de scan, no en el mismo en el que se han efectuado los cambios).
S Áreas empleadas por el contador al utilizar esta instrucción.
Canal
Bandera de
control
Registro de datos para el valor
actual
ch0
R903A
DT9044, 9045
ch1
R903B
DT9048, 9049
S Cuando se utiliza el modo de cuenta incremental, el tren de pulsos se detiene cuando el valor
actual pasa de H7FFFFF.
S Cuando se utiliza el modo de cuenta decremental,el tren de pulsos se detiene cuando el valor
actual pasa de HFF800000.
S La salida de pulsos se detiene cuando se realiza una modificación en modo RUN de los datos de
alguna de las áreas mostradas en la tabla.
4 -- 328
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Tabla de datos
S
Código de control
*1
S+1
Frecuencia (Hz)
K40 a K10,000 (Hz)
*1: El código de control se especifica modificando la constante H.
Hjjj
Especificación del ancho de pulso
1 a 9: Ciclo de trabajo aproximado del 10 al 90%
(incrementos del 10%)
Modos de operación estados de la salida direccional
00: No se uiliza el modo de cuenta
10: Modo de cuenta incremental sin salida direccional
12: Modo de cuenta incremental con la salida direccional a OFF
13: Modo de cuenta incremental con la salida direccional a ON.
20: Modo de cuenta decremental sin salida direccional
22: Modo de cuenta decremental con la salida direccional a ON.
23: Modo de cuenta decremental con la salida direccional a OFF
4 -- 329
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
Instrucción de salida de pulsos
modulados en anchura (PWM)
(con especificación de canal)
F170(PWM)
Concepto
Paso
5
Disponibilidad
Todos los FP0’s con
salida a transistors
Produce un tren de pulsos modulado en anchura por la salida
especificada (Y0 o Y1).
Programa ejemplo
Lógica
Diagrama en escalera
Dirección
Condición de ejecución
X10
10
Instrucción
10
ST
11
F170
X
10
(PWM)
DT
F170 PWM , DT20 , K 0
K
20
0
n
S
S
Dirección de inicio del área que contiene la tabla de datos
n
Salida externa que será la salida de pulsos modulados en anchura PWM (n:
K0 o K1).
J Operandos
Operando
Temporizador/
Registro
Contador
Contacto
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
WX WY WR
SV
EV
DT
S
N/A N/A N/A
N/A
N/A
A
N/A
N/A
N/A
N/A
A
n
N/A N/A N/A
N/A
N/A
N/A
N/A
N/A
A
A
N/A
A:Disponible
N/A:No disponible
J Explicación del ejemplo
S Cuando la entrada X10 está en ON, estando la bandera de control de canal utilizado a OFF, un tren
de pulsos modulado en anchura (PWM) salen del canal especificado. El tren de pulsos no se
detiene hasta que la entrada pasa a OFF.
S La frecuencia y el ciclo de trabajo se especifican con la tabla de datos creada por el usuario.
S La salida se retarda cerca de los niveles máximo o mínimo de frecuencia, el ciclo de trabajo
preseleccionado variará.
S El ciclo de trabajo se puede cambiar en cada ciclo de scan (el cambio es efectivo en el siguiente
ciclo de scan). Los ajustes de frecuencia son efectivos solamentte al inicio de la ejecución de la
instrucción.
S La salida de pulsos se detiene cuando se realiza una modificación en modo RUN de los datos de
alguna de las áreas mostradas en la tabla.
S Áreas empleadas por el contador al utilizar esta instrucción.
4 -- 330
Canal
Bandera de control
ch0
R903A
ch1
R903B
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
J Tabla de datos
S
S+1
Código de control
Ciclo de trabajo
(%)
K0 to K8 (*1)
K1 to K999 (0.1% to 99.9%)
*1: Contenidos en código de control (ajustes de frecuencia)
0: Frecuencia 38 Hz (Ciclo 26 mS)
1: Frecuencia 19 Hz (Ciclo 52 mS)
2: Frecuencia 9.5 Hz (Ciclo 105 mS)
3: Frecuencia 4.8 Hz (Ciclo 210 mS)
4: Frecuencia 2.4 Hz (Ciclo 420 mS)
5: Frecuencia 1.2 Hz (Ciclo 840 mS)
6: Frecuencia 0.6 Hz (Ciclo 1.6 S)
7: Frecuencia 0.3 Hz (Ciclo 3.4 S)
8: Frecuencia 0.15 Hz (Ciclo 6.7 S)
9: Frecuencia 1000 Hz (Ciclo 1.0 mS)
10: Frecuencia 714 Hz (Ciclo 1.4 mS)
11: Frecuencia 500 Hz (Ciclo 2.0 mS)
12: Frecuencia 400 Hz (Ciclo 2.5 mS)
13: Frecuencia 200 Hz (Ciclo 5.0 mS)
14: Frecuencia 100 Hz (Ciclo 10 mS)
. Nota
-- Las frecuencias de la 9 a la 14 sólo están disponibles
a partir de la versión 2.0.
4 -- 331
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
5
F355(PID)
Concepto
Disponibilidad
Todos los FP0’s versión
2.0 o superior
PID con autoajuste
Realiza un control PID continuo.
Programa ejemplo
Lógica
Sistema de control
Dirección
Condición de ejecución
X10
10
F355 PID ,
Instrucción
10
ST
11
F355
(PID)
DT
100
DT100
X
10
S
S
Dirección de inicio del área que contiene la tabla de datos
J Operandos
Operando
Contacto
WX WY WR
Temporizador/
Registro
Contador
SV
EV
DT
Registro
Constante Modific.
de índice
de índice
IX
IY
K
H
S
J Explicación del ejemplo
S La variable a controlar la seleciona el usuario (por ejemplo: la temperatura de una habitación).
S La tabla de datos se almacena a partir del registro DT100.
S La entrada de consigna, se preselecciona en el valor de preselección (SV).
S El valor medido (PV) es el valor real de la variable a controlar.
S La instrucción F355 calcula la diferencia en tre SV -- PV y con parámetros propios de la instrucción
(constante proporcional Kp, constante integral Ti y constante derivativa Td) obtiene el valor de
salida (MV).
S El valor se salida (MV) se convierte a valor analógico actuando sobre la variable a controlar.
. Nota
-- La instrucción F355 utiliza las instrucciones que
manejan números en coma flotante.
-- La tabla de datos utiliza variables de tipo entero.
4 -- 332
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
Tabla de datos del PID
Registro
Dato
S
Tipo de control
S+1
Valor de preselección (SV)
S+2
Valor medido (PV)
S+3
Valor de salida (MV)
S+4
Mínimo valor de salida
S+5
Máximo valor de salida
S+6
Constante proporciona (Kp)
S+7
Constante integral ( Ti )
S+8
Contante derivativa ( Ts )
S+9
Ciclo de control (Ts)
S+10
Progreso de autoajuste
S+11 a S+29
Área de trabajo del PID
Tipo de control
PID: Operación inversa (calentamiento): 0000H
PID: Operación directa (enfriamiento): 0001H
I--PD: Operación inversa (calentamiento): 0002H
I--PD: Operación directa (enfriamiento): 0003H
PID: Operación inversa con autoajuste (calentamiento): 8000H
PID: Operación directa con autoajuste (enfriamiento): 8001H
I--PD: Operación inversa con autoajuste (calentamiento): 8002H
I--PD: Operación directa con autoajuste (enfriamiento): 8003H
. Nota
-- Cuando se realiza el autoajuste ( el bit de ,mayor peso
de esta palabra está a 1) el autómata invierte un
tiempo en calcular las constantes del controlador. Una
vez hecho ésto, dicho bit se pone a 0 y se trabaja con
los valores calculados.
4 -- 333
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
S Su valor determina el comportamiento del controlador.
S Valor de preselección SV (S+1): Valor entero donde se guarda el valor deseado para la variable
controlada. Debe ser del mismo rango que el valor medido (ej. una entrada de una expansión
analógica el rango sería de 0 a 4000).
S Valor medido PV (S+2): Valor entero que guarda el valor de la variable a controlar, se está leyendo
constantemente. Es el estado del sistema (ej. una entrada de una expansión analógica el rango
sería de 0 a 4000).
S Valor de salida MV (S+3): Valor entero que que proporciona el autómata. Es el que controla el
sistema. Si se utiliza una salida de una expansión analógica el rango sería de 0 a 4000 o de --2000
a 2000. Si se utiliza la instrucción PWM el rango debe ser de 1 a 999, rango ajustable con el valor
mínimo y el máximo.
S Mínimo valor de salida (S+4): Mínimo valor (entero) que puede tomar MV.
S Máximo valor de salida (S+5): Máximo valor (entero) que puede tomar MV.
S Constante proporcional Kp (S+6): Guarda el valor entero de Kp cuando se hace un autoajuste.
Si se calculan las constantes manualmente, aquí es donde hay que colocar su valor. El rango es
de 1 a 9999 (0.1 a 999.9 en incrementos de 0.1).
S Constante integral Ti (S+7): Guarda el valor entero de Ti cuando se hace un autoajuste. Si se
calculan las constantes manualmente, aquí es donde hay que colocar su valor. El rango es de 1 a
30000 (0.1 a 3000segundos en incrementos de 0.1 segundos).
S Constante derivativa Td (S+8): Guarda el valor entero de Td cuando se hace un autoajuste. Si se
calculan las constantes manualmente, aquí es donde hay que colocar su valor. El rango es de 1 a
10000 que debe multiplicarse por 0.1 (0.1 a 1000segundos en incrementos de 0.1 segundos).
S Ciclo de control Ts (S+9): Establece el tiempo del ciclo de ejecución del PID. El rango es de 1 a
6000 (0.1 a 600 segundos en incrementos de 0.01 segundos).
S Progreso de autoajuste (S+10): Durante el proceso de autoajuste indica con un valor entre K1 y
K5 el progreso de este estado.
S Área de trabajo del PID (S+11 a S+29): Área de memoria usada por el sistema para cálculos
internos.
4 -- 334
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
F12
P13
Concepto
Disponibilidad
(ICRD)
Lectura de memoria
(ICWT)
Escritura en memoria
Todos los FP0’s versión 2.0 o superior
F12: Lee datos de la memoria EEPROM.
P13: escribe datos en la memoria EEPROM.
Descripción
Instrucción Operando
s1*
s1_M
F12
P13
Bloque inicial (64 palabras) de la memoria EEPROM
Separación entre los diferentes bloques que va a ser leídos de la memoria
EEPROM, para calcular la dirección del nuevo bloque de memoria a leer se
suma a s1* el valor almacenado en s1_M
s2
Número de bloques a leer
d
DT a partir del cual se almacenan los datos leídos
s1*
DT inicial del bloque de datos que se quiere guardar en memoria
s2
Número de bloques a escribir
d*
Bloque inicial (64 palabras) de la memoria EEPROM
d_M
Separación entre los diferentes bloques de la memoria EEPROM donde se
va a escribir, para calcular la dirección del nuevo bloque de memoria donde
se va a escribir se suma a d* el valor almacenado en d_M
Descripción
S La instrucción P13 se puede emplear ,por ejemplo, para almacenar en memoria las
configuraciones del PID, de temporizadores, contadores o de controles de posicionamiento en la
memoria EEPROM.
S La memoria EEPROM no es lo mismo que el área de retención. El área de retención almacena los
nuevos valores de los registros que forman parte de élla cuando se modifica algun registro
durante la ejecución de un programa. La memoria EEPROM sólo se modifica cuando se ejecuta
la instrucción P13.
S El número máximo de escrituras en memoria es limitado (Ver tabla). No se debe ejecutar la
instrucción P13 más veces que el número que aparece en la tabla. Por ejemplo si se utiliza la
instrucción P13 con R901A (relé de pulso de reloj de 0,1 segundo), , la memoria dejará de ser
operativa después de 100000*0,1 segundo, 10000 segundos (2,8 horas) en un (FP0 C10/C14/
C16).
S La instrucción P13 es muy útil para almacenar parámetros que normalmente no son modificados.
S Al efectuar una lectura, con la instrucción F12, de una zona de memoria se debe comprobar que
en la dirección que se va a leer están los datos requeridos, si no los datos que se obtienen no
tendrán ningún sentido.
FP0
C10/C14/C16
C32
Tamaño del bloque
64 palabras
64 palabras
Número de bloques disponibles
10 bloques (del 0 al 9)
96 (del 0 al 95)
Número de bloques a leer / escribir en cada
ejecución
De 1 a 2
De 1 a 8
Tiempo de escritura (adicional al ciclo de scan)
20 ms cada bloque
Tiempo de lectura (adicional al ciclo de scan)
5 ms cada bloque
Menos de 1 ms cada bloque
Máximo número de escrituras
100000
10000
Máximo número de lecturas
No hay límite
No hay límite
4 -- 335
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
J Explicación de un ejemplo
S Al pasar la entrada de escritura de OFF a ON, la instrucción P13 escribirá en memoria el número
de bloques especificados, por ejemplo 1 (64 palabras), comenzando desde la dirección
especificada por s1, que puede ser el primer elemento de un arrary o un DT ( desde el área de
entrada [0] al área de entrada [63] o desde DTn a DTn+63). La dirección de memoria inicial
donde se escribirá n los datos es la especificada por d* = 0, si escribieramos más de un bloque de
memoria, la dirección del segundo bloque sería d*+ d_M, la del tercero d*+ 2 d_M, y así
sucesivamente.
S Al pasar la entrada de lectura de OFF a ON, la instrucción leerá de memoria el número de bloques
especificados, por ejemplo 1 (64 palabras), comenzando en el bloque s1*= 0, si se leyeran más
bloques, la dirección del segundo sería s1*+ s1_M, la del tercero s1*+ 2 s1_M, y así
sucesivamente. Los datos leídos se almacenarán comenzando en la dirección especificada por d,
que puede ser el primer elemento de un array o un DT (desde el área de salida [0] al área de salida
[63] o desde DTn a DTn + 63).
. Notas
-- Antes de ejcutar la instrucción P13 se deben realizar
las modificaciones deseadas en el área de entrada, en
caso contrario se escribiría 64 veces el valor 0.
-- Si se quiere almacenar en memoria valores de
diferentes variables, se deben declarar como
variables globales y almacenar la variable en una
dirección de memoria que esté dentro del bloque al
que se hace referencia en la instrucción P13.
4 -- 336
FP0/FP1/FPM
Instrucciones de alto nivel
4.3 Descripción de las instrucciones de alto nivel
5
Disponibilidad
Funciones en coma flotante
Concepto
Todos los FP0’s versión
2.0 o superior
Funciones que trabajan con números reales.
Descripción
S El rango de los números reales es de --1175494E--38 a 1175494E38 (32 bits).
S Las funciones en coma flotante son las que se muestran en la tabla adjunta.
S Estas funciones permiten un número máximo de 7 cifras significativas.
Instrucción
Instrucción del IEC
de Matsushita
Con entrada de
habilitación
Descripción
Con entrada de
habilitación
Sin entrada de
habilitación
F309 (FMV)
E_MOVE
MOVE
Transferencia de datos reales
F310 (FADD)
E_ADD
ADD
Suma
F311 (FSUB)
E_SUB
SUB
Resta
F312 (FMUL)
E_MUL
MUL
Multiplicación
F313 (FDIV)
E_DIV
DIV
División
F314 (SIN)
E_SIN
SIN
Seno
F315 (COS)
E_COS
COS
Coseno
F316 (TAN)
E_TAN
TAN
Tangente
F317 (ASIN)
E_ASIN
ASIN
Arco seno
F318 (ACOS)
E_ACOS
ACOS
Arco coseno
F319 (ATAN)
E_ATAN
ATAN
Arco tangente
F320 (LN)
E_LN
LN
Logaritmo neperiano
F321 (EXP)
E_EXP
EXP
Exponencial
F322 (LOG)
E_LOG
LOG
Logaritmo decimal
F323 (PWR)
E_EXPT
EXPT
F324 (FSQR)
E_SQRT
SQRT
Raíz cuadrada
F325 (FTL)
E_INT_TO_REAL
INT_TO_REAL
Entero de 16 bits a real
F326 (DFTL)
E_DINT_TO_REAL
DINT_TO_REAL
Entero de 32 bits a real
F327 (INT)
No tiene equivalente
No tiene equivalente
Real a entero de 16 bits (el número
real debe ser menor que el mayor entero codificable con 16 bits)
F328 (DINT)
No tiene equivalente
No tiene equivalente
Real a entero de 32 bits (el número real
debe ser menor que el mayor entero codificable con 32 bits)
F329 (FIX)
E_TRUNC_TO_INT
TRUNC_TO_INT
Real a entero de 16 bits, se trunca el
número real
F330 (DFIX)
E_TRUNC_TO DINT
TRUNC_TO DINT Real a entero de 32 bits, se trunca el
número real
4 -- 337
Instrucciones de alto nivel
FP0/FP1/FPM
4.3 Descripción de las instrucciones de alto nivel
Instrucción
Instrucción del IEC
de Matsushita
Con entrada de
habilitación
Descripción
Con entrada de
habilitación
Sin entrada de
habilitación
F331 (ROFF)
E_REAL_TO_INT
REAL_TO_INT
Real a entero de 16 bits, se redondea el
número real
F332 (DROFF)
E_REAL TO DINT
REAL TO DINT
Real a entero de 32 bits, se redondea el
número real
F333 (FINT)
No tiene equivalente
No tiene equivalente
Redondea el primer último decimal a
cero
F334 (FRINT)
No tiene equivalente
No tiene equivalente
Elimina el último decimal
F335 (FSING)
No tiene equivalente
No tiene equivalente
Cambio de signo
F336 (FABS)
E_ABS
ABS
Valor absoluto
F337 (RAD)
No tiene equivalente
No tiene equivalente
Grados a radianes
F 338 (DEG)
No tiene equivalente
No tiene equivalente
Radianes a grados
. Notas
-- Este tipo de instrucciones solo estan disponibles en
el software de programación NAiS Control 1131.
-- Algunas de las instrucciones mostradas en la tabla
(F309, F310, . . .) no están disponibles en el NAiS
Control 1131, se deben utilizar las instrucciones
equivalentes del IEC.
-- No se puede trabajar con datos de diferente tipo se
deben convertir los datos al mismo tipo.
4 -- 338
Capítulo 5
Consejos para la programación
5.1
5.2
5.3
5.4
5.5
5.6
Uso duplicado de salidas . . . . . . . . . . . . . . . . . 5 -- 3
5.1.1
Salidas duplicadas . . . . . . . . . . . . . . . 5 -- 3
5.1.2
Salidas duplicadas con las
instrucciones OT, KP, SET, o RST . 5 -- 4
Manejo de datos en código BCD . . . . . . . . . . . 5 -- 5
5.2.1
Datos en código BCD . . . . . . . . . . . . . 5 -- 5
5.2.2
Manejo de datos en código BCD
en el autómata . . . . . . . . . . . . . . . . . . . 5 -- 5
Manejo de los registros de índice . . . . . . . . . . 5 -- 7
5.3.1
Registros de índice . . . . . . . . . . . . . . . 5 -- 7
5.3.2
Áreas de memoria modificables
por los registros de índice . . . . . . . . . 5 -- 7
5.3.3
Como utilizar un registro de índice.
Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 8
Errores de operación . . . . . . . . . . . . . . . . . . . . 5 -- 10
5.4.1
Errores de operación . . . . . . . . . . . . 5 -- 10
5.4.2
Modo de operación del autómata
al producirse un error de
operación en modo RUN . . . . . . . . 5 -- 10
5.4.3
Tratamiento de los errores de
operación . . . . . . . . . . . . . . . . . . . . . . 5 -- 11
5.4.4
Partes del programa a comprobar . 5 -- 12
Instrucciones de detección de flanco de
subida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 13
5.5.1
Detección del flanco de subida . . . . 5 -- 13
5.5.2
Modo de operación y precauciones
a tener en cuenta en el primer
ciclo de scan . . . . . . . . . . . . . . . . . . . . 5 -- 14
5.5.3
Precauciones en el uso de
instrucciones de control . . . . . . . . . 5 -- 15
Precauciones en la programación . . . . . . . . . 5 -- 17
Consejos para la programación
5.7
5.8
5.9
5 -- 2
FP0 / FP1 / FPM
Modificación de una función en modo RUN . 5 -- 18
5.7.1
Modo de operación al modificar
una función en modo RUN . . . . . . . 5 -- 18
5.7.2
Modificaciones no posibles en
modo RUN . . . . . . . . . . . . . . . . . . . . . 5 -- 19
5.7.3
Procedimiento y modo de operación de
una modificación en modo RUN . . 5 -- 20
5.7.4
Como cambiar de modo con la consola
de programación
FP Programmer II Ver.2 . . . . . . . . . 5 -- 22
Modificación de un valor preseleccionado en
modo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -- 23
5.8.1
Como modificar una constante con
la consola de programación
FP Programmer II Ver.2 . . . . . . . . . 5 -- 23
5.8.2
Como modificar el valor en un área
de preselección . . . . . . . . . . . . . . . . 5 -- 24
Proceso interno al forzar entradas y salidas 5 -- 27
FP0 / FP1 / FPM
Consejos para la programación
5.1 Uso duplicado de salidas
5.1
5.1.1
Uso duplicado de salidas
Salidas duplicadas
D Se entiende por salida duplicada aquella salida que se utiliza repetidamente en
un programa.
D No se permite el uso de salidas duplicadas con las instrucciones KP y OT.
Si se emplea la misma salida con diferentes instrucciones como las instrucciones
SET o RST, o instrucciones de transferencia de datos, no se consideran salidas
duplicadas.
D Si se ejecuta un programa en el que existe el uso duplicado de salidas, se
producirá un error: el LED ERROR/ALARMA se iluminará y el relé interno
especial R9000 (bandera de autodiagnóstico) pasará a ON.
Como comprobar que se han utilizado salidas duplicadas
Para comprobar si en un programa hay salidas duplicadas, se emplean las siguientes
herramientas de programación: consola de programación FP Programmer II Ver.2,
NPST-GR o FPSOFT, de la siguiente forma:
D FP Programmer II Ver.2:
Se utiliza la función OP “OP--9 TOTAL CHECK”.
(Teclas de operación:
(--)
OP
9
ENT
READ
)
Si existen salidas duplicadas, aparecerá el mensaje de error (DUP USE)
y las direcciones donde están las salidas duplicadas.
D NPST-GR:
Seleccionar la opción “PROGRAM CHECK” en el menu NPST
FUNCTION.
Si existen salidas duplicadas, aparecerá el mensaje de error
DUPLICATE USE ERROR y las direcciones donde están las salidas
duplicadas. Si se ejecuta la orden <SRCH ERROR ADRS>, se mostrará
el mensaje de error, y la dirección donde aparece la primera salida
duplicada.
D FPSOFT:
Para más detalles dobre el uso de salidas duplicadas consultar en “9.1
Totally Checking the Program on FPSOFT Manual.”
Habilitación del uso duplicado de salidas
Si es necesario el uso repetido de una misma salida en un programa, se pueden
habilitar salidas para que este permitido el uso duplicado de las mismas.
Para poder utilizar repetidamente una salida, se debe modificar el registro especial de
sistema nº20 poniendolo a 1.
De esta manera el uso duplicado de salidas no producirá un error al ejecutar el
programa.
5 -- 3
Consejos para la programación
FP0 / FP1 / FPM
5.1 Uso duplicado de salidas
5.1.2
Salidas duplicadas con las instrucciones OT, KP, SET, o RST
Estados de los relés internos y de las salidas durante la ejecución del programa
Al utilizar instrucciones de transferencia de datos o las instrucciones OT, KP, SET y
RST,que emplean como salidas relés internos y/o salidas externas, las salidas se
reescriben en cada paso de programa.
Ejemplo
Se ejecuta el programa suponiendo que X0, X1 X2 están a ON).
X0
R0
S
R0
X1
Esta parte del programa se
ejecuta como si R0 estuviera a
ON.
R0
R
Esta parte del programa se
ejecuta como si R0 estuviera a
OFF.
X2
R0
Esta parte del programa se
ejecuta como si R0 estuviera a
ON.
Estado de la salida en un ciclo de scan
Si la misma salida es utilizada por varias instrucciones (las instrucciones de
transferencia de datos o las instrucciones OT, KP, SET o RST) en el mismo programa,
después del refresco de entradas/salidas, la salida mantendrá el estado que tenía justo
antes de finalizar el anterior ciclo de scan.
Ejemplo:
Utilización de la misma salida externa Y0 con las instrucciones OT, SET y RST.
X0
Y0
Y0:ON
X1
X2
Y0
S
Y0:ON
Y10
R
Y0:OFF
Si X0, X1 y X2 estan a OFF, el estado de Y0 en el refresco de entradas / salidas
dependerá del estado de X2 en el ciclo anterior.
Si fuese necesario obtener un resultado mientras se está ejecutando el programa, se
debe utilizar la instrucción F143, refresco parcial de entradas / salidas.
5 -- 4
FP0 / FP1 / FPM
Consejos para la programación
5.2 Manejo de datos en código BCD
5.2
Manejo de datos en código BCD
5.2.1
Datos en código BCD
BCD son las siglas de binario--código decimal, y codifica cada uno de los dígitos de un
número decimal en binario.
Ejemplo
Codificación de un número decimal en BCD:
Decimal
Se pasa cada dígito a
binario.
BCD
0110
(Binario--código decimal)
5.2.2
0100
0101
Manejo de datos en código BCD en el autómata
Cuando se introducen datos al autómata desde un conmutador externo digital o
cuando se proporciona salida a un display de 7 segmentos (con decodificador) desde
el autómata, los datos deben estar en código BCD. En estos casos se emplean
instrucciones de conversión de datos, como se muestra en el ejemplo de abajo.
Las instrucciones que realizan operaciones aritméticas con datos en BCD son de la
F40 a la F55, sin embargo, normalmente, es conveniente utilizar las instrucciones que
trabajan con datos en binario, ya que el autómata trabaja normalmente en este código
( las instrucciones que manejan datos en binario son de la F20 a la F35).
Entrada de datos desde un conmutador digital
Empleo de la instrucción de conversión de datos F51 (de BCD a Binario).
Conmutador
digital
FP0 /
FP--M /
FP1
1
9
9
2
1
El dato se carga en el
autómata en código
BCD
9
9
2
0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0
BCD
(Instrucción F51 )
Binario
Dato en binario,
código con el que
normalmente trabaja
el autómata
0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0
1992 convertido a binario.
5 -- 5
Consejos para la programación
FP0 / FP1 / FPM
5.2 Manejo de datos en código BCD
Salida a un display de 7 segmentos (con decodificador)
Empleo de la instrucción de conversión de datos F50 (de Binario a BCD).
FP0 /
FP--M /
FP1
Display de 7
segmentos
5 -- 6
BIN
(F50 instruction)
Dato en binario,
código con el que
normalmente trabaja
el autómata
0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0
BCD
El dato se carga en el
autómata en código
BCD
0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0
1
9
9
2
FP0 / FP1 / FPM
Consejos para la programación
5.3 Manejo de los registros de índice
5.3
5.3.1
Manejo de los registros de índice
Registros de índice
Existen dos tipos de registros de índice de 16 bits, IX e IY, de lectura y escritura.
Cuando se utiliza un registro de índice se está haciendo referencia indirectamente a
un área de memoria específica. (Esta forma de trabajar con los registros a través de
los registros de índice se denomina modificación indexada.)
Ejemplo
Transferencia del contenido del registro de datos DT100 al área de memoria
especificada por el registro de índice.
X0
F0 MV, DT100, IXDT0
Área de memoria base
En el ejemplo, el registro donde se almacenará el contenido de DT100 varía
dependiendo del contenido de IX, que tiene como dirección base el registro de datos
DT0. Por ejemplo, si IX contiene el dato K10 el registro de destino será DT10, y si el
contenido de IX es K20, el registro de destino será DT20.
Con los registros de índice se puede hacer referencia a varias áreas de memoria con
una sola instrucción, por lo tanto son muy útiles para manejar grandes cantidades de
datos.
5.3.2
Áreas de memoria modificables por los registros de índice
Los registros de índice pueden modificar otras áreas de memoria a parte de los
registros de datos (DT).
Ejemplo: IXWX0, IXWY1, IXWR0, IXSV0, IXEV2, IXDT100
También se pueden modificar constantes.
Ejemplo: IXK10, IXH1001
Un registro de índice no puede modificar otro registro de índice.
Ejemplo: IXIX, IXIY
Al utilizar instrucciones que manejan datos de 32 bits, IX e IY se manejan juntos como
si se tratara de un área de 32 bits.
16 bits de mayor peso
Contenido de IY
16 bits de menor peso
Contenido de IX
5 -- 7
Consejos para la programación
FP0 / FP1 / FPM
5.3 Manejo de los registros de índice
5.3.3
Como utilizar un registro de índice. Ejemplo.
Almacenamiento de datos en el mismo orden en el que son recibidos
Ejemplo
Escritura del contenido de la palabra de entradas externas WX3 en registros de datos
consecutivos comenzando por DT0.
X0
F0 MV, K0, IX
1
F0 MV, WX3, IXDT0
2
F35 +1, IX
3
X1
DF
1
Al pasar la entrada X0 a ON, se escribe K0 en el registro de
índice IX.
2
Al pasar X1 a ON, el contenido de WX3 de transfiere al
registro de datos especificado por IXDT0.
3
Añade 1 al contenido de IX.
El contenido de IX cambia sucesivamente, cambiando, de
este modo, el área de memoria al que hace referencia.
Puestas ON de X1
Contenido de IX
Registro de datos especificado
1ª
2ª
3ª
0→1
1→2
2→3
DT0
DT1
DT2
5 -- 8
FP0 / FP1 / FPM
Consejos para la programación
5.3 Manejo de los registro de índice
Entrada y salida de datos especificados desde una entrada externa
Ejemplo 1
Preselección de un temporizador a través de un conmutador digital
R0
DF
Unidad de control
FP0 / FP--M / FP1
Número del
temporizador
F51 BIN, WX1, IX
1
F51 BIN, WX0, IXSV0
2
Convierte el número del temporizador,
almacenado en WX1, de código BCD a
Valor de
preselección binario y lo transfiere al registro de
índice IX
del
1
2
0
WX1
7
9
4
WX0
temporizador
2
Conmutadores
digitales
Convierte el valor de preselección del
temporizador, almacenado en WX0, de
código BCD a binario y se almacena en
el área especificada por IX y SV0.
Ejemplo 2
Almacenamiento del valor actual de temporizador especificado por un conmutador
digital en una palabra de salidas externas .
WY0
R1
DF
Valor actual del
temporizador
Display de 7
segmentos
1
WX1
Conmutador
digital
1
F50 BCD, IXEV0, WY0
2
1
Convierte el número del
temporizador, almacenado en WX1,
de código BCD a binario y lo
almacena en el registro de índice IX.
2
Convierte el valor actual del
temporizador especificado por IX, de
binario a código BCD y lo transfiere
a la palabra de salidas externas
WY0.
FP0 control unit
Número del
temporizador
F51 BIN, WX1, IX
5 -- 9
Consejos para la programación
FP0 / FP1 / FPM
5.4 Errores de operación
5.4
5.4.1
Errores de operación
Errores de operación
Se produce un error de operación cuando es imposible ejecutar una instrucción de alto
nivel con las condiciones especificadas.
Cuando se produce un error de operación el LED ERROR/ALARMA parpadea y las
banderas de error de operación (R9007 y R9005) pasan a ON.
El código de error [K45 (H2D)] se almacena en el registro especial de datos, DT9000.
La dirección del error se almacena en los registros especiales de datos DT9017 y
DT9015.
Tipos de errores de operación:
D Error de dirección
El área de memoria especificada por los registros de índice está fuera del
área que se puede utilizar.
D Error en datos BCD
Se produce este error cuando se emplean instrucciones que operan con
datos en código BCD con datos en otro código diferente, o cuando al
efectuar una conversión a código BCD, el dato a convertir excede el
rango.
D Error de parámetros
Se produce cuando un dato de control excede el rango posible.
D Error Over area error
Los datos manipulados por instrucciones de manejo de bloques excede el
rango de memoria disponible.
5.4.2
Modo de operación del autómata al producirse un error de
operación en modo RUN
El autómata ,normalmente, detiene la ejecución del programa cuando se produce un
error de operación. Sin embargo, si se preselecciona un 1 en el registro especial de
sistema nº 26, se continúa la ejecución del programa aunque se haya producido un
error de este tipo.
Para más detalles sobre la modificación del valor de los registros especiales de
sistema, consultar en “7.4 Tabla de registros especiales de sistema”.
5 -- 10
FP0 / FP1 / FPM
Consejos para la programación
5.4 Errores de operación
5.4.3
Tratamiento de los errores de operación
Procedimiento:
1.
Localizar la dirección del error.
Se comprueba el contenido de los registros de datos especiales DT9017 y
DT9015 ,donde se almacena la dirección del error.
2.
Borrar el error.
Para borrar el error se debe utilizar algunas de las herramientas de
programación disponibles. (Si el automata se encuentra en RUN, el
autómata reanudará la ejecución del programa después de borrar el error.)
En el NPST-GR status display menu, presionar <F3> .
En la consola de programación FP Programmer II Ver.2, presionar la
siguientes teclas.
ACLR
(--)
OP
1
1
2
ENT
SHIFT (DELT)
SC
INST
Se puede borrar un error apagando y encendiendo el autómata en modo
PROG, sin embargo la memoria donde se almacenan los resultados del
programa que se estaba ejecutando también se borrará, a no ser que sea
un área de memoria de retención.
Los errores también se pueden borrar ejecutando la instrucción F148,
tratamiento de errores.
5 -- 11
Consejos para la programación
FP0 / FP1 / FPM
5.4 Errores de operación
5.4.4
Partes del programa a comprobar
D Comprobar si se ha almacenado un valor negativo o
excesivamente grande en el registro de índice IX.
Ejemplo
Modificación de un registro de datos utilizando un registro de índice
X0
F0 MV, DT0, IXDT0
En el ejemplo, se modifica la dirección de DT0. Si el contenido de IX es
mayor que la dirección del último registro de datos se producirá un error.
También se producirá un error de operación si el contenido de IX es
negativo.
D Comprobar si se está ejecutando una instrucción que
opera con datos en código BCD con datos que están
en otro código.
Ejemplo
Conversión de código BCD a código binario.
X0
F51 BIN, DT0, DT100
En el ejemplo, si en DT0 hubiera un dato hexadecimal con algún dígito
comprendido entre A y F, como por ejemplo 12A4, la conversión sería
imposible y se produciría un error.
Ejemplo
Conversión de código binario a código BCD
X0
F50 BCD, DT1, DT101
En el ejemplo, si DT1 contiene un valor negativo o mayor que K9999, se
producirá un error de operación.
D Comprobar si el divisor de alguna operación es K0.
Ejemplo
X0
F32 %, DT0, DT100, DT200
En el ejemplo, si el contenido DT100 es K0, se producirá un error de
operación.
5 -- 12
FP0 / FP1 / FPM
Consejos para la programación
5.5 Instrucción de detección de flanco de subida
5.5
5.5.1
Instrucción de detección de flanco de subida
Instrucción de detección de flanco de subida
Instrucciones que emplean la detección de flanco de subida diferencial:
-- Instrucciones DF
-- Entrada de contaje en la instrucción CT
-- Entrada de contaje en la instrucción F115 (UDC)
-- Entrada de desplazamiento en la instrucción SR
-- Entrada de desplazamiento en la instrucción F119 (LRSR)
-- Instrucciones paso a paso
Modo de operación de las instrucciones diferenciales de flanco de subida
Este tipo de instrucciones sólo se ejecutan en los ciclos de scan en los que en su
entrada se detecta un flanco de subida (paso de OFF a ON). Estas instrucciones se
ejecutan comparando el estado de la entrada en el ciclo de scan actual con el estado
de la entrada en el ciclo anterior.
-- Modo de operación normal
-- Modo de operación diferenciall de flanco de subida
ON
OFF
X0
Ejecución de
la instrucción
Ejecución en cada ciclo de scan
X0
Ejecución de
la instrucción
ON
OFF
Ejecutada sólo cuando
se detecta el flanco de
subida en X0 (OFF →
ON)
Método de detección del flanco de subida
Se compara el estado de la entrada en el ciclo de scan actual con el estado de la
entrada en el ciclo anterior, y se ejecuta solamente si la entrada estaba a OFF en el ciclo
anterior y en el actual está a ON. En cualquier otra situación la instrucción no se ejecuta.
Consideraciones en el empleo de instrucciones de detección de flanco de subida
Cuando se empieza a ejecutar un programa en modo RUN, por ejemplo cuando se
enciende alimentación, si la entrada está a ON inicialmente no se detecta un flanco de
subida y por lo tanto la instrucción no se ejecuta. La instrucción actua como se explica
en el punto .5.5.2.
5 -- 13
Consejos para la programación
FP0 / FP1 / FPM
5.5 Instrucción de detección de flanco de subida
Cuando se emplean las instrucciones de flanco de subida con instrucciones que
alteran el orden de ejecución normal del programa, mostradas abajo, el orden de
ejecución dependerá de la sincronización entre las diferentes entradas de las
instrucciones. Se debe tener especial cuidado con este punto.
-- Instrucciones MC y MCE
-- Instrucciones JP y LBL
-- Instrucciones LOOP y LBL
-- Instrucción CNDE
-- Instrucciones paso a paso
-- Subrutinas
5.5.2
Modo de operación y precauciones a tener en cuenta en el
primer ciclo de scan
Modo de operación en el primer ciclo de scan
Las instrucciones de detección de flanco de subida se ejecutan dependiendo del
resultado de la comparación del estado de la entrada en el ciclo de scan anterior y en
el actual. En el primer ciclo de scan en modo RUN, se deben comprobar los siguientes
puntos.
Alimentación ON
(Modo RUN)
Entrada
Operación
Detenido
Ejecutando
Si es necesario ejecutar una instrucción de este tipo al pasar a modo RUN estando la
entrada inicialmente a ON, se utilizaría R9014 (relé de OFF inicial, permanece a OFF
durante el primer ciclo de scan, el resto del tiempo está a ON).
5 -- 14
FP0 / FP1 / FPM
Consejos para la programación
5.5 Instrucción de detección de flanco de subida
Ejemplo 1
Instrucción DF (diferencial flanco subida)
X0
Y0
DF
X0
Se añade
R9014
X0
R9014
Alimentación ON
(Modo RUN)
Y0
Y0
DF
Incluso si la entrada X0 está
inicialmente a ON, al añadir
R9014 la instrucción DF
detectará señal en el segundo
ciclo se scan, activandose la
salida
Ejemplo 2
Instrucción CT (contador)
X0
CT
100
X1
Alimentación ON
(Modo RUN)
X0
Se añade
R9014
X0
X1
5.5.3
R9014
CT
100
CT100
Operación
de cuenta
Incluso si la entrada X0 está
inicialmente a ON, al añadir
R9014 la instrucción CT
detectará señal en el segundo
ciclo se scan, incrementandose
el contador en 1
Precauciones en el uso de instrucciones de control
Al utilizar instrucciones de detección de flanco de subida, se compara el estado de la
entrada en el ciclo de scan actual con el estado de la entrada en el ciclo anterior, y se
ejecuta solamente si la entrada estaba a OFF en ciclo anterior y en el actual está a ON.
En cualquier otra situación la instrucción no se ejecuta.
Cuando se emplea las instrucciones de flanco de subida con instrucciones que alteran
el orden de ejecución del normal de programa (instrucciones de control), MC, MCE, JP
o LBL, el orden de ejecución dependerá de la sincronización entre las diferentes
entradas de las instrucciones. Se debe tener especial cuidado con este punto.
5 -- 15
Consejos para la programación
FP0 / FP1 / FPM
5.5 Instrucción de detección de flanco de subida
Ejemplo 1
Uso de la instrucción DF entre las insrucciones MC y MCE
X0
MC
0
X1
Y0
DF
MCE 0
Diagrama de tiempos 1
Diagrama de tiempos 2
X0
X0
X1
X1
Y0
Y0
Ejecución
previa de la
instrucción DF
El estado de la entrada
X1 de la instrución DF no
ha cambiado estando
activa la instrucción de
control, por lo tanto no se
obtiene salida
Ejecución
previa de la
instrucción DF
El estado de la entrada
X1 de la instrución DF ha
cambiado estando activa
la instrucción de control,
por lo tanto se obtiene
salida
Ejemplo 2
-- Uso de la instrucción CT entre las insrucciones JP y LBL
R0
JP
1
X0
CT
X1
100
LBL
Diagrama de tiempos
1
Diagrama de tiempos
R0
R0
X0
X0
Operación
de cuenta
Operación
de cuenta
Ejecución
previa de la
instrucción CT
5 -- 16
La entrada de contador X0
no ha cambiado, estando
activa la instrucción de
control, por lo tanto no se
incrementa la cuenta
Ejecución
La entrada de contador X0
previa de la
ha cambiado estando activa
instrucción CT la instrucción de control, por
lo tanto se incrementa la
cuenta
FP0 / FP1 / FPM
Consejos para la programación
5.6 Precauciones en la programación
5.6
Precauciones en la programación
Ejecución incorrecta del programa
Si alguna de las instrucciones se escriben como a continuación se muestra, no se
ejecutarán correctamente.
Ejemplo 1
ANS
X0
X1
Y0
DF
X2
Ejemplo 2
X0
X1
TMX
5
30
Y0
X2
Ejemplo 3
X0
X1
Y0
X2
Y1
DF
X3
Cuando se programa una combinación de contactos empleando la instrucción DF o
algún temporizador, no se deben utilizar las instrucciones ANS, RDS o POPS.
Ejemplos corregidos
Programa del ejemplo 1 corregido
X0
X1
Y0
DF
X0
X2
5 -- 17
Consejos para la programación
FP0 / FP1 / FPM
5.7 Modificación de una función en modo RUN
5.7
5.7.1
Modificación de una función en modo RUN
Modo de operación al modificar una función en modo RUN
Como realizar una modificación en modo RUN
En el FP0 se puede modificar un programa en modo RUN. Cuando se realiza una
modificación en modo RUN, el ciclo de scan aumenta en varios cientos de mseg.
Modo de operación durante la modificación del programa
Se mantiene el estado de las salidas externas (Y)
Se ignoran las entradas externas (X)
El temporizador (T) detiene el reloj
Se ignoran los flancos de subida o bajada en las entradas de las instrucciones
diferanciales DF, de contadores (CT), y de desplazamiento izquierda/derecha
[F119 (LRSR)].
Las interrupciones se detienen.
Los relés de pulsos de reloj (reles internos especiales) se detienen.
La salida de pulsos se detiene.
Valores de preselección para instrucciones de temporizadores y contadores
Todos los valores de preselección de temporizadores y contadores se especifican con
constantes decimales (K) y se transfieren a las áreas de preselección (SV). (Los
valores actuales no cambian (EV))
5 -- 18
FP0 / FP1 / FPM
Consejos para la programación
5.7 Modificación de una función en modo RUN
5.7.2
Modificaciones no posibles en modo RUN
Instrucciones no modificables en modo RUN
Instrucciones paso a paso (SSTP/STPE)
Subrutinas (SUB/RET)
Interrupciones (INT/IRET)
Instrucciones de control (ED/LBL)
(Se puede insertar la instrucción LBL pero no se puede borrar.)
Instrucciones que no permiten su modificación en subprogramas
Las siguientes instrucciones no se pueden modificar cuando se está ejecutando una
subrutina o un programa interrupción.
Instrucciones salto/etiqueta (JP/LBL)
Instrucciones lazo/etiqueta (LOOP/LBL)
Instrucciones relé maestro de control/final relé maestro de control (MC/MCE)
Casos en los que no se pueden realizar modificaciones en modo RUN
Cuando se produce un error de sintaxis
Cuando alguna salida o entrada están forzadas
Restricciones en las interrupciones
No se deben realizar modificaciones en modo RUN cuando se están utilizando
interrupciones, salidas de pulsos, contador de alta velocidad o la salida PWM.
Si se realiza alguna modificación en modo RUN en los casos anteriores, aparecerán
los siguientes problemas.
Se deshabilitarán las interrupciones. Para habilitarlas de nuevo se tiene que
ejecutar la instrucción ICTL.
El contador de alta velocidad continua contando.
Con una frecuencia de 2.5 kHz o superior trabajando con una fase y un canal,
o con 1.25 Hz o superior trabajando con una fase y utilizando dos canales, no
cuenta todos los pulsos.
Las instrucciónes de coincidencia con el valor de preselección (F166/F167)
continuan ejecutandose.
Se detienen la salida de pulsos y la salida PWM. La instrucción F168 (control de
posicionamiento) continua ejecutandose.
Sin embargo, si la máxima frecuencia de salida es mayor que 2.5 kHz
trabajando con una fase y con un canal, o mayor que 1.25 Hz trabajando con
una fase y dos canales, el valor de pulsos de salida diferirá del valor
preseleccionado.
5 -- 19
Consejos para la programación
FP0 / FP1 / FPM
5.7 Modificación de una función en modo RUN
5.7.3
Procedimiento y modo de operación de una modificación en
modo RUN
Item
Modificación
NPST-GR/FPSOFT
NPST-GR/FPSOFT FP Programmer II
(Diagrama en escalera)
(Lógica)
Ver.2
Máximo 125 pasos.
Se realizan las modificaciones paso a paso.
Los cambios se realizan
Se debe tener precaución ya que la
por bloques.
modificación se realiza al mismo tiempo que
Cuando se realiza una
se escribe en la herramienta de
conversión PG en online, el programación. Cuando se utiliza la consola
programa se reescribe .
FP Programmer II Ver.2, se debe cambiar de
modo el autómata.(Ver en la página 5 -- 22.)
Block a
Block b
OT/KP
Si en el bloque b se borra
una instrucción que estaba
en el bloque a, el estado de
la salida afectada por estas
instrucciones mantiene su
estado después de borrar
la instrucción.
Si en el bloque b se borra una instrucción
que estaba en el bloque a, el estado de la
salida afectada por estas instrucciones
mantiene su estado después de borrar la
instrucción.
TM/CT
Si en el bloque b se borra
una instrucción que estaba
en el bloque a, el estado de
la salida afectada por estas
instrucciones mantiene su
estado después de borrar
la instrucción.
Los valores de
preselección se
preseleccionan en las
áreas de valor de
preselección de
temporizadores y
contadores (TM/CT) . (El
valor actual no cambia)
Si en el bloque b se borra una instrucción
que estaba en el bloque a, el estado de la
salida afectada por estas instrucciones
mantiene su estado después de borrar la
instrucción.Los valores de preselección se
preseleccionan en las áreas de valor de
preselección de temporizadores y
contadores (TM/CT) . (El valor actual no
cambia). Usando FP Programmer II Ver.2, se
pueden modificar valores preseleccionados
sin que afecten a la operación del
temporizador (Ver en la página 5 -- 24).
Modo de
operación
de cada
instrucción
Si en el bloque b se borra
Si se borra alguna instrucción el estado de
una instrucción que estaba las salidas externas se mantiene.
en el bloque a, el estado de
Instruc.de
la salida afectada por estas
alto nivel
instrucciones mantiene su
estado después de borrar
la instrucción.
MC/MCE
5 -- 20
Se deben programar las
No se puede borrar una sola instrucción en
dos instrucciones por pares modo RUN. Para borrar o escribir una
MC/MCE
instrucción se debe utilizar la programación
en diagrama en escalera con NPST-GR/
FPSOFT.
FP0 / FP1 / FPM
Consejos para la programación
5.7 Modificación de una función en modo RUN
Item
NPST-GR/FPSOFT NPST-GR/FPSOFT FP Programmer II
Diagrama en escalera
(Lógica)
Ver.2
CALL/
SUB/RET
Una subrutina es un
subprograma
comprendido entre las
instrucciones SUBn y
RET. Las subrutinas se
deben escribir después
de la instrucción ED.
Se deben escribir en el siguiente orden: RET,
SUB, CALL
Se deben borrar en el siguiente orden: CALL,
SUB, RET
Se deben escribir en el siguiente orden:
IRET, INT
Se deben borrar en el siguiente orden:
INT, IRET
INT/IRET
Un programa
interrupción es un
subprograma
comprendido entre las
instrucciones INTn y
IRET. Los progamas
interrupción se deben
escribir después de la
instrucción ED.
No se pueden programar
dos procesos con el
mismo número.
La instrucción SSTP no
se puede escribir en un
subprograma.
Borrar o escribir una instrucción es posible en
programas que tengan áreas de paso a paso.
Para borrar o escribir con NPST-GR/
FPSOFT las dos instrucciones
simultaneamente, se debe utilizar la
programación en diagrama en escalera.
Se puede borrar o escribir una sóla
instrucción SSTP.
Se debe programar la
instrucción que indica el
número de veces que se
realiza el salto antes de
las instrucciones
LBL-LOOP.
Se debn escribir en el siguiente orden:
JP-LBL o LOOP-LBL.
Se deben borrar en el siguiente orden: LBL-JP
o LBL-LOOP.
Modo de
operación
de cada
instrucción
SSTP/
STPE
JP/LOOP/
LBL
5 -- 21
Consejos para la programación
FP0 / FP1 / FPM
5.7 Modificación de una función en modo RUN
5.7.4
Como cambiar de modo con la consola de programación FP
Programmer II Ver.2
Como cambiar los modos de programa
La consola de programación FP Programmer II Ver.2 está normalmente en modo
PROG--EDIT, modo que no permite la modificación del programa en modo RUN. Para
modificar un programa en modo RUN se debe cambiar a modo RUN--EDIT.
Para cambiar de modo se deben presionar las siguientes teclas. Después de realizar
la modificación se debe cambiar a modo PROG--EDIT para evitar modificaciones
accidentales.
Como cambiar a modo RUN--EDIT
ACLR
(--)
OP
1
4
ENT
1
WRT
0
WRT
Como cambiar a modo PROG--EDIT
ACLR
(--)
OP
1
4
ENT
Para cambiar los valores de preselección de un temporizador o de un contador se debe
seguir el siguiente procedimiento.
Ejemplo: Como cambiar el valor de preselección de K30 a K50.
Valor de preselección
del temporizador
X0
TXK
5
T5
Este método reescribe el
valor en el programa.
30
Y10
1.
Lee la dirección donde está la instrucción del
temporizador.
SHIFT
SC
2.
TM
T-SV
ST
X-WX
5
SRC
READ
READ
Borra la constante (K30).
(HELP)
CLR
3.
Introduce la nueva constante (K50).
(BIN)
K/H
5
0
WRT
Modo de operación y precauciones después del cambio
Después del cambio, se sigue ejecutando la temporización o la cuenta que se estaba
realizando. El nuevo valor de preselección no será efectivo hasta que la entrada del
contador o del temporizador pasen de nuevo a ON.
De esta forma se modifica el programa, y al pasar de RUN a PROG o apagado la
alimentación, el nuevo valor será preseleccionado.
5 -- 22
FP0 / FP1 / FPM
Consejos para la programación
5.8 Modificación de un valor de preselección en modo RUN
5.8
Modificación de un valor de preselección en modo RUN
5.8.1
Como modificar una constante con la consola de programación
FP Programmer II Ver.2
Valor de preselección del
temporizador
X0
TXK
5
T5
Este método reescribe el
valor en el programa.
30
Y0
Procedimiento de modificación usando la consola FP Programmer II Ver.2
Procedimiento:
Ejemplo de cambio del valor de preselección del temporizador 5 de K30 a K50
1.
Lee la dirección donde está la instrucción del
temporizador.
SHIFT
SC
2.
TM
T-SV
ST
X-WX
5
SRC
READ
READ
Borra la constante (K30).
(HELP)
CLR
3.
Introduce la nueva constante (K50).
(BIN)
K/H
5
0
WRT
Modo de operación y precauciones después del cambio
Después del cambio, se sigue ejecutando la temporización o la cuenta que se estaba
realizando. El nuevo valor de preselección no será efectivo hasta que la entrada del
contador o del temporizador pasen de nuevo a ON.
De esta forma se modifica el programa,y al pasar de RUN a PROG o apagado la
alimentación, el nuevo valor será preseleccionado.
De este modo el tiempo del ciclo de scan no varia.
5 -- 23
Consejos para la programación
FP0 / FP1 / FPM
5.8 Modificación de un valor de preselección en modo RUN
5.8.2
Como modificar el valor en un área de preselección
Se transfiere al área de valor de preselección
cuando se cambia a modo RUN.
Valor de preselección del
temporizador
X0
T5
TXK
5
SV5
30
30
Y0
Este procedimieto sobreescribe
el valor de preselección. El
programa no se modifica.
Como cambiar el contenido del área de preselección SV
El valor del área de preselección SV se puede modificar con las siguientes
herramientas:
Utilizando los diferentes softwares.
Utilizando la consola de programación FP Programmer II Ver.2.
Con instrucciones de alto nivel.
Modo de operación y precauciones después del cambio
Después del cambio, se sigue ejecutando la temporización o la cuenta que se estaba
realizando. El nuevo valor de preselección no será efectivo hasta que la entrada del
contador o del temporizador pasen de nuevo a ON.
Siguiendo los procedimientos que se explicarán a continuación se modifica el
contenido del área de valor de preselección SV; el programa no cambia. Cuando se
efectua el cambio RUN--PROG--RUN o se vuelve a encender la alimentación, el
autómata opera de la siguienta forma:
-- Cuando un valor de preselección se especifca como una constante K, la
constante se transfiere al área de valor de preselección. El valor anterior ya no
es efectivo.
-- Cuando un valor de preselección se especifica como un número almacenado
en un área de preselección
Si el temporizador o contador es de no retención se preselecciona un 0 en el
área de valor de preselección SV. Si el temporizador es de retención se preselecciona en el área de valor de preselección el valor especificado, como se
muestra en la siguiente página.
5 -- 24
FP0 / FP1 / FPM
Consejos para la programación
5.8 Modificación de un valor de preselección en modo RUN
Método 1: Utilizando NPST-GR
Se selecciona en el menú ONLINE la opción ”Data monitor change”, se lee el contenido
del área de preselección, y se modifica.
Procedimiento:
1.
Mover el cursor hasta la posición del programa
donde está el dato a modificar
2.
Presionar la tecla <F6>.
3.
Presionar la tecla <F6> e introducir el número del
temporizador.
4.
Presionar la tecla <Esc> para hacer efectiva la orden.
5.
Mover el curso hasta la posición del programa donde
esté el dato a modificar
6.
Presionar la tecla <F4>.
7.
Presionar la tecla <F7> e introducir l número.
Método 2: Utilizando la consola de programación FP Programmer II Ver.2
Se utiliza la función de monitorización de palabras de datos para leer el contenido del
área de valor de preselección del temporizador o del contador a modificar, y a
continuación se sobreescribe.
Ejemplo: Cambio de SV0 de K30 a K50.
Procedimiento:
1.
Se ejecuta la función OP8. monitorización y cambio
de palabras.
(--)
OP
2.
ENT
Se lee SV0.
TM
T-SV
3.
8
0
READ
Se borra SV0.
(HELP)
CLR
4.
Se escribe el nuevo valor.
(BIN)
K/H
5
0
WRT
5 -- 25
Consejos para la programación
FP0 / FP1 / FPM
5.8 Modificación de un valor de preselección en modo RUN
Método 3: Utilizando una instrucción de alto nivel
Para modificar el valor de preselección de un temporizador o contador empleando una
instrucción de alto nivel, se debe ejecutar el siguiente programa:
Ejemplo: Preselección de K20 como valor de preselección cuando la entrada X0 pasa
a ON.
X0
F0 MV, K20, SV3
X1
T3
5 -- 26
TXK
3
50
Y0
Cuando la entrada X0 pasa a ON, el
valor de preselección del temporizador
pasa de 5 segundos a 2 segundos.
FP0 / FP1 / FPM
Consejos para la programación
5.9 Proceso interno al forzar entradas y salidas
5.9
Proceso interno al forzar entradas y salidas
Proceso interno de forzado de entradas/salidas en modo RUN
Reseteo de las entradas forzadas /
reseteo
Refresco de entradas / salidas
Especificación de las E/S a forzar /
reseteo
Operación
Especificación de las E/S a forzar /
reseteo
Servico periférico
Proceso para la entradas externas (X)
Al forzar una entrada a ON o a OFF, el estado indicado tiene preferencia al estado físico
que tiene el contacto. Cuando se fuerza una entrada el led correspondiente a esa
entrada no se enciende, se modifica el área de memoria de la entrada forzada pero no
entra corriente por la entrada física.
El estado de las entradas que no están forzadas es el establecido externamente,
estarán a ON o a OFF según se proporcione o no tensión a la entrada.
Proceso para las salidas externas (Y)
Al forzar una salida a ON o a OFF, el estado indicado tiene preferencia ante el estado
resultante de la ejecución del programa. Se modifica el área de memoria de la salida
forzada, modificandose el estado de la salida externa siguiendo el proceso indicado
arriba.
Las salidas no forzadas proporcionan la salida resultante de la ejecución del programa.
Temporizadores (T) y contadores (C)
Al forzar la entrada de un contador o temporizador a ON o a OFF, el estado indicado
de la entrada forzada tiene preferencia ante el estado resutante de la ejecución del
programa. . Se modifica el área de memoria del contacto del temporizador o contador.
Durante el proceso de control no se realiza temporización o cuenta.
El resto de los temporizadores y contadores operan de modo normal.
5 -- 27
Consejos para la programación
5.9 Proceso interno al forzar entradas y salidas
5 -- 28
FP0 / FP1 / FPM
Capítulo 6
Contador de alta valocidad/Salida de
pulsos/Salida PWM
6.1
6.2
6.3
6.4
6.5
Introducción a las funciones . . . . . . . . . . . . . . . 6 -- 3
6.1.1
Tres funciones que utilizan el contador de
alta velocidad . . . . . . . . . . . . . . . . . . . . 6 -- 3
6.1.2
Estructura del contador de alta
velocidad . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 4
Especificaciones y restricciones . . . . . . . . . . . . 6 -- 5
6.2.1
Especificaciones . . . . . . . . . . . . . . . . . 6 -- 5
6.2.2
Funciones y restricciones en el FP0 6 -- 7
Función de contador de alta velocidad . . . . . . 6 -- 9
6.3.1
Introducción a la función de contador de
alta velocidad . . . . . . . . . . . . . . . . . . . . 6 -- 9
6.3.2
Dos modos de entrada . . . . . . . . . . . . 6 -- 9
6.3.3
Configuración de entradas/salidas . 6 -- 11
6.3.4
Instrucciones utilizadas con la función de
contador de alta velocidad . . . . . . . . 6 -- 12
6.3.5
Programa ejemplo para el FP0 . . . 6 -- 14
Función de salida de pulsos . . . . . . . . . . . . . . 6 -- 18
6.4.1
Introducción al función de salida de
pulsos . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 18
6.4.2
Modos de control en el FP0 . . . . . . 6 -- 19
6.4.3
Configuración de entradas/salidas
y cableado en el FP0 . . . . . . . . . . . . 6 -- 20
6.4.4
Instrucciones utilizadas con la función de
salida se pulsos en el FP0 . . . . . . . . 6 -- 22
6.4.5
Ejemplo de control de
posicionamiento en el FP0 . . . . . . . 6 -- 25
6.4.6
Aplicaciones en el FP1/FP--M. . . . . . 6 -- 34
Función de salida PWM . . . . . . . . . . . . . . . . . 6 -- 36
6.5.1
Introducción a la función de salida
PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 6 -- 36
6.5.2
Instrucciones utilizadas con la función de
salida se PWM . . . . . . . . . . . . . . . . . . 6 -- 36
Contador de alta velocidad / Salida de pulsos / Salida PWM
6 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.1 Introducción a las funciones
6.1
6.1.1
Introducción a las funciones
Tres funciones que utilizan el contador de alta velocidad
Funciones que utilizan el contador de alta velociddad
Existen tres funciones para utilizar el contador de alta velocidad.
D Función de contador de alta velocidad
Esta función cuenta los pulsos recibidos de periféricos conectados al autómata, normalmente sensores o encoders. La función de contador de alta velocidad pone a ON/OFF la salida especificada cuando la cuenta alcanza el valor
de preselección.
Cutter
Rodillo
Cable
Motor
Encoder
Señal de Variador
ARRANQUE/
PARADA
Se lleva la salida del
encoder a la entrada
del contador de alta
velocidad
Autómata
Señal de control
de la cuchilla
del cutter
D Función de salida de pulsos
Esta función junto con un motor permite realizar un control de posicionamiento. Utilizando diferentes instrucciones se puede realizar un control trapezoidal,
vuelta al origen o la operación JOG.
Autómata
Salida de pulsos
Y0
Y2
CW/CCW
Motor 1
Controlador
del motor 1
Salida de pulsos
Y1
CW/CCW
Y3
Controlador
del motor 2
Motor 2
6 -- 3
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.1 Introducción a las funciones
D Función de salida PWM (sólo para el FP0)
Utilizando la instrucción adecuada, la salida PWM permite obtener un tren de
pulsos con la anchura deseada.
Si la anchura de pulsos aumenta...
Si la anchura de pulsos
disminuye...
la temperatura
aumenta
la temperatura
disminuye
6.1.2
Estructura del contador de alta velocidad
Número del canal
D En el FP1/FP--M sólo hay un canal para el contador de alta
velocidad.
D En el FP0 hay cuatro canales para el contador de alta
velocidad.
D El número del canal, en el FP0, utilizado por el contador de
alta velocidad dependerá de la función que se utilice.
Rango de cuenta
D K--8388608 a K8388607
(HFF8000 a H7FFFFF)
(Código de 24 bits en binario)
6 -- 4
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.2 Especificaciones y restricciones
6.2
Especificaciones y restricciones
6.2.1
Especificaciones
Tabla de las especificaciones de la función de contador de alta velocidad
FP0
Número de entrada/salida externa
a utilizar
Salida
externa
De la
Y0 a la
Y7
De la
Y0 a la
Y7
Modo de
cuenta
Entrada
incremental
Entrada
decremental
Entrada de 2
fases
Entrada
incremental/
decremental
Entrada
direccional
Entrada
externa
(entre
paréntesis
la entrada
de reset)
Área de memoria utilizada
Número
del
Bandera Área de
canal
de
EV
control
X0
(X2)
CH0
X1
(X2)
CH1
R903B
X3
(X5)
CH2
R903C
R903A
X4
(X5)
CH3
R903D
X0
X1
(X2)
CH0
R903A
X3
X4
(X5)
CH2
R903C
DT9044
a
DT9045
Área
de SV
Características
Instrucciones
Anchura Maxima relacionadas
mínima velocidad
de pulso
DT9046
a
DT9047
50 s
DT9048 DT9050 <10 kHz>
La suma
a
a
máxima
DT9049 DT9051
de 4
DT9104 DT9106
canales
a
a
es 10 kHz
DT9105 DT9107 100 s
DT9108 DT9110 <5 kHz>
a
a
DT9109 DT9111
F0(MV)
F1(DMV)
F166(HC1S)
F167(HC1R)
DT9044 DT9046
50 s
La suma
a
a
<10 kHz>
máxima
DT9045 DT9047
de 2
DT9104 DT9106
canales
100 s
a
a
<5 kHz> 2 kHz
DT9105 DT9107
. Nota
Se puede utilizar la entrada de reset X2 para el canal 0 o para el
1. Se puede utilizar la entrada de reset X5 para el canal 2 o para
el 3.
FP1 / FP--M
Número de entrada/salida externa a utilizar
Salida
externa
Modo de
cuenta
Entrada
incremental
De la
Y0 a la
Y7
Entrada
decremental
Entrada externa
(entre paréntesis la
entrada de reset)
Bandera Área de
de
EV
control
Área
de SV
(X2)
X0 y X1 (X2)
Características
Anchura mínima de
pulso
50 s
<10 kHz>
X0 o X1
Entrada
incremental
/decremental
Entrada de 2
fases
Área de memoria utilizada
R903A
DT9044
a
DT9045
DT9046
a
DT9047
Instrucciones
relacionadas
F0(MV)
F1(DMV)
FP1:
100 s <5 kHz>
FP--M:
50 s <10 kHz>
F162(HCOS)
F163(HCOR)
6 -- 5
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.2 Especificaciones y restricciones
Tabla de las especificaciones de la función de salida de pulsos
FP0
Número de entrada/salida externa a utilizar
Número
del canal
Salida
Entrada Entrada de
Salida
de
de
proximidad
direccional
pulsos
origen
al origen
Número Bandera Área de
de
del canal
EV
control
Área de memoria utilizada
Y0
Y2
X0
DT9052
<bit2>
CH0
R903A
Y1
Y3
X1
DT9052
<bit6>
CH1
R903B
Área
de SV
Maxima
velocidad
Instrucciones
relacionadas
Maxima
velocidad
Instrucciones
relacionadas
DT9044 DT9046 10 kHz
a
a
máximo para
DT9045 DT9047 un canal
DT9048 DT9050 5kHz
máximo para
a
a
DT9049 DT9051 dos canales
F0(MV)
F1(DMV)
F168(SPD1)
F169(PLS)
. Nota
La velocidad máxima de salida para un sólo canal utilizado con la
instrucción F168 (SPD1) es 9.5 kHz.
FP1 / FP--M
Número de entrada/salida externa a
utilizar
Instruc.
Salida
externa
Área de memoria utilizada
Entrada externa
Bandera Área de
(entre paréntesis
de
EV
la entrada de
control
reset)
Y7 (salida
de pulsos)
F164
(SPDO)
Y0 a la Y7
X0 o X1 (X2)
R903A
DT9044
a
DT9045
Área
de SV
Anchura mínima
de pulso
DT9046
a
DT9047
(salida
patrón)
F165
(HCOR)
De la Y0 a la
Y7
Características
Instrucciones
relacionadas
F0(MV)
F1(DMV)
X0 y X1 (X2)
R903A
R903B
DT9044
a
DT9045
DT9046
a
DT9047
50 s <10 kHz>
F164(HSPDO)
F165(HCOR)
Tabla de las especificaciones de la función de salida PWM (sólo para el FP0)
Área de memoria
utilizada
Número de salida externa a
utilizar
Número del
canal.
Y0
CH0
R903A
Y1
CH1
R903B
6 -- 6
Maxima velocidad
Bandera de control
Frecuencia:
0.15 Hz a 38 Hz
Ciclo de trabajo:
0.1 % to 99.9 %
Instrucciones
relacionadas
F0(MV)
F1(DMV)
F170(PWM)
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.2 Especificaciones y restricciones
6.2.2
Funciones y restricciones en el FP0
Canal
Cada canal sólo puede ser utilizado por una sola instrucción.
<Ejemplo no permitido>
No se puede emplear el canal 0 con la función de contador de alta velocidad
y la de salida de pulsos.
Número de entradas / salidas externas
D Las entradas/salidas utilizadas por el contador de alta
velocidad no pueden utilizarse como entradas normales.
<Ejemplo no permitido>
-- No se pueden utilizar las entradas X0 y X1 cuando se
utiliza el canal 0 con entrada de dos fases con la función
del contador de alta velocidad.
-- Si se utiliza la salida Y0 coma salida de pulsos, no se
puede utilizar X0 (entrada de origen ) como entrada
normal.
-- Si se utiliza Y0 como salida de pulsos (estando la salida
direccional operativa ), no se puede utilizar la salida Y2
como una salida normal.
D Cuando se utilice el contador de alta velocidad en un modo
de operación que no necesite entradas de reset, las
entradas entre paréntesis se pueden utilizar como entradas
normales.
<Ejemplo permitido>
Cuando se utiliza el contador de alta velocidad sin entrada de reset y entrada
en dos fases, la entrada X2 puede utilizarse como entrada normal.
Restricciones en la ejecución de las instrucciones de la F166 a la F170
D Cuando se está ejecutando alguna de las instrucciones
relacionadas con el contador de alta velocidad (F166 a F170)
la bandera de control correspondiente al canal utilizado pasa
a ON (relé interno especial: R903A a R903D).
D Cuando la bandera de un canal está a ON no se puede
ejecutar otra instrucción que utilice ese canal
<Ejemplo no permitido>
-- Mientras se está ejecutando la instrucción F166 la
bandera R903A correspondiente al canal 0 está a ON, por
lo tanto la instrucción F167 no se puede ejecutar
utilizando el mismo canal.
6 -- 7
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.2 Especificaciones y restricciones
Restricciones en la frecuencia máxima de cuenta y de salida de pulsos
D La velocidad de cuenta cuando se utiliza la función de
contador de alta velocidad depende del modo de cuenta
empleado, como se muestra en la tabla.
<Ejemplo 1>
-- Si se emplea el modo de entrada incremental usando dos
canales: canal 0 (CH0) y canal 1 (CH1), si el CH0 utiliza 8
kHz el CH1 sólo puede utilizar 2 kHz.
<Ejemplo 2>
-- Si se emplea el modo de entrada de 2 fases dos canales:
canal 0 (CH0) y canal 2 (CH2), si el CH0 utiliza 1kHz el
CH1 sólo puede utilizar 1 kHz.
D La frecuencia máxima de salida cuando se utiliza la función
de salida de pulsos dependerá de la salida externa
empleada como se muestra en la tabla.
<Ejemplo 1>
-- Cuando se utiliza sólo Y0 o Y1 ,la frecuencia máxima de
salida es 10kHz.
<Ejemplo 2>
-- Cuando se utiliza Y0 e Y1 ,la frecuencia máxima de salida
es 5 kHz.
D Cuando se utiliza la función del contador de alta velocidad y
la de salida de pulsos, las especificaciones dependerán de
los modos utilizados, de los canales empleados, etc....
<Ejemplo>
-- Si se utiliza una salida de pulsos con una frecuencia
máxima de 5 kHz, la velocidad máxima que se puede
utilizar simultaneamente con la función de contador de
alta velocidad en modo incremental es de 5 kHz y de 1
kHz con el modo de dos fases.
6 -- 8
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
6.3
6.3.1
Función de contador de alta velocidad
Introducción a la función de contador de alta velocidad
Función de contador de alta velocidad
D La función de contador de alta velocidad cuenta pulsos de
entrada, y cuando el valor actual del contador se iguala al
valor de preselección pone a ON o a OFF la salida
especificada.
D La función de contador de alta velocidad puede contar
pulsos de una frecuencia máxima de 10 kHz.
D Para poner a ON o a OFF la salida deseada cuando el valor
actual se iguala al valor de preselección se utilizan las
instrucciones F166 o la F167, en el FP0, y F162 y F163, en
el FP1/FP--M.
D Para poner una salida a ON o a OFF se utilizan las
instrucciones SET/RET.
Configuración de los registros de sistema
Cuando se utiliza la función de contador de alta velocidad se deben configurar los
registros especiales de sistema Nº. 400 y Nº. 401. Para configurar estos registros
especiales de sistema se debe consultar en “7.4 Tabla de registros especiales de
sistema.”
6.3.2
Dos modos de entrada
D Modo de entrada incremental
ON
OFF
X0
Cuenta 0
1
2
3
4
n--3
n--2
n--1
n
D Modo de entrada decremental
ON
OFF
X0
Cuenta n
n--1
n--2
n--3
n--4
3
2
1
0
6 -- 9
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.3 Función de contador de alta velocidad
D Modo de entrada en 2 fases
(Entrada incremental: CW)
ON
OFF
X0
ON
OFF
X1
0
Cuenta
1
2
n--1
n
(Entrada decremental: CCW)
X0
ON
OFF
X1
ON
OFF
Cuenta
n
n--1
n--2
n--3
2
1
D Modo de entrada incremental/decremental (modo de entrada
separada)
X0
ON
OFF
X1
ON
OFF
Cuenta
0
1
2
3
Incremento
4
3
2
1
2
Decremento
3
4
Incremento
3
Decremento
D Modo direccional (sólo en el FP0)
X0
ON
OFF
X1
ON
OFF
Cuenta
0
1
2
3
Incremento
6 -- 10
4
3
2
1
Decremento
0
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
6.3.3
Configuración de entradas/salidas
D El número de entrada externa a utilizar dependerá del canal
utilizado como se puede observar en la tabla de la sección
6.2.1.
D El número de salida que se pone a ON/OFF puede ser de la
Y0 a la Y7, especificandose con la instrucción F166 o F167
en el FP0, y F162 o F163 en el FP1/FP--M.
Ejemplo en el FP0
<Utilizando el canal 0 con entrada incremental y entrada de reset>
Entrada de contaje
Entrada de reset
X0
X2
Yn
* Salida ON/OFF
* La salida que pasa a ON o a OFF cuando el valor actual coincide con el valor
de preselección puede ser de la Y0 a la Y7.
<Utilizando el canal 0 con entrada en dos fases y entrada de reset>
Entrada de fase A
Entrada de fase B
Entrada de reset
X0
X1
X2
Yn
* Salida ON/OFF
* La salida que pasa a ON o a OFF cuando el valor actual coincide con el valor
de preselección puede ser de la Y0 a la Y7.
6 -- 11
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.3 Función de contador de alta velocidad
6.3.4
Instrucciones utilizadas con la función de contador de alta velocidad
Instrucción de control de contador de alta velocidad (F0)
D Esta instrucción se utiliza para realizar operaciones como
reseteados por software o deshabitaciones de cuenta.
D Esta instrucción modifica el registro de control del contador
de alta velocidad (DT9052).
D La configuración del registro especial de datos DT9052 no
varia hasta que se ejecuta de nuevo esta instrucción.
Operaciones que se puede realizar con esta instrucción
D Reset de contador por software
D Habilitación/deshabilitación de la cuenta
D Habilitación/deshabilitación del reset
D Borrar parámetros de control de las instrucciones del
contador de alta velocidad de la F166 a F170 en el FP0 y de
la F162 a la F165 en el FP1/FP--M.
D Reset de la interrupción ccuando se alcanza el valor de
preselección.
<Ejemplo> Reset por software
X7
DF
F0 MV, H 1 , DT9052
⋅⋅⋅⋅⋅⋅⋅
1
F0 MV, H 0 , DT9052
⋅⋅⋅⋅⋅⋅⋅
2
En el programa de arriba, se realiza un reset en el paso 1 y se introduce un
cero en el registro de control en el paso 2 . El contador está listo para comenzar a contar. Si sólo se resetea el contadr y no se pone a cero el registro
DT9052 la cuenta no se puede realizar.
Como cambiar o leer el valor actual con la instucción F1
D Esta instrucción modifica o lee el valor actual del contador de
alta velocidad.
D Esta instucción se debe utilizar junto con el registro especial
de datos que contiene el valor actual.
D El valor actual del contador se guarda en un área de 32 bits,
en los registros especiales de datos DT9044 y DT9045
(CH0), DT9048 y DT9049 (CH1), DT9104 y DT9105 (CH2),
DT9108 y DT9109 (CH3).
D La instrucción F1 (DMV) puede preseleccionar el valor
actual.
<Ejemplo 1>
--Preseleeción del valor inicial K3000 en el contador de alta velocidad
(ejemplo de cambio del valor actual en el CH0).
X7
DF
6 -- 12
F1 DMV, K3000, DT9044
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
<Ejemplo 2>
Lee el valor actual del contador de alta velocidad y lo copia en el registro de datos
DT100.
X7
DF
F1 DMV, DT9044, DT100
<Referencia>
Cada vez que se ejecuta la instrucción ED, el valor actual se transfiere automáticamente del área de valor
actual a los registros especiales de datos DT9044 y DT9045.
Sólo FP0
Instrucción F166: ON: coincidencia con el valor de preselección.
XA
DF
F166 HC1S, K0, K10000, Y7
Cuando el valor actual, almacenado en DT9044 y DT9045 para el canal 0, alcanza el valor K10000, la salida
externa Y7 pasa a ON.
XB
DF
F166 HC1S, K2, K20000, Y6
Cuando el valor actual, almacenado en DT9104 y DT9105 para el canal 2, alcanza el valor K20000, la salida
externa Y6 pasa a ON.
Instrucción F167: OFF: coincidencia con el valor de preselección.
XC
DF
F167 HC1R, K1, K30000, Y4
Cuando el valor actual, almacenado en DT9048 y DT9049 para el canal 1, alcanza el valor K30000, la salida
externa Y4 pasa a OFF.
XD
DF
F167 HC1R, K3, K40000, Y5
Cuando el valor actual, almacenado en DT9108 y DT9109 para el canal 3, alcanza el valor K40000, la salida
externa Y5 pasa a OFF.
Sólo FP1/FP--M
Instrucción F162: salida del contador de alta velocidad a ON.
X3
DF
F162 HCOS, K1000, Y5
Cuando el valor actual, almacenado en DT9044 y DT9045 alcanza el valor K1000, la salida externa Y5 pasa
a OFF.
Instrucción F163: salida del contador de alta velocidad a OFF.
X3
DF
F163 HCOR, K500, Y0
Cuando el valor actual, almacenado en DT9044 y DT9045 alcanza el valor K500, la salida externa Y0 pasa
a ON.
6 -- 13
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
6.3.5
Programa ejemplo para el FP0
Ejemplo de conexionado
FP0
Terminal de entrada
Comienzo de
operación
X0
X5
COM
Entrada del
encoder
Encoder
Terminal de salida
Variador
Marcha / paro
Y0
+
Operación
--
COM
Velocidad
0
5,000
Número de pulsos
Y0
6 -- 14
Motor
FP0/FP1/FPM
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
Operación de posicionamiento con un inverter de una sola velocidad
Cuando X5 pasa a ON, Y0 pasa a ON y la cinta tansportadora empieza a moverse ON.
Cuando el valor actual, almacenado en DT9044 y DT9045, alcanza al valor K5000, Y0
pasa a OFF y la cinta transportadora se detiene.
R903A
X5
R102
R100
Operaciones de posicionamiento
DF
R100
R101
R100
DF
Comienzo de la operación de
posicionamiento
R101
F1 DMV,
K 0,
F167 HC1R,
DT 9044
K 0, K 5000,
Y0
R101
Y0
S
R100
R903A
R102
T0
Finalización de la salida de pulsos
(0.5 segundos)
DF/
R102
Señal de comienzo para el inverter
TMX
0
K
5
6 -- 15
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
Ejemplo de conexionado para el FP0
FP0
Terminal de entrada
Entrada del
encoder
Operación de
comienzo
X0
X5
COM
Encoder
Motor
Terminal de salida
Inverter
Conmutador al
contador de
alta velocidad
Y0
Y1
ARRANQUE /PARADA
RÁPIDO/LENTO
+
--
COM
Velocidad
0
4,500
Número de pulsos
Y0
Y1
6 -- 16
5,000
FP0/FP1/FPM
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.3 Función de contador de alta velocidad
Operación de posicionamiento con un inverter de dos velocidadades
Cuando X5 pasa a ON, Y0 e Y1 pasan a ON y la cinta transportadora empieza a
moverse. Cuando el valor actual ,almacenado en DT9044 y DT9045 alcanza el valor
K4500, Y1 pasa a OFF y la cinta transportadora empieza a decelerar. Cuando el valor
actual alcanza el valor K5000, Y0 pasa a OFF y la cinta transportadora se detiene.
X5
R903A
R103
R100
Operaciones de posicionamiento
DF
R100
R101
R100
Comienzo de las operaciones de
posicionamiento
DF
R101
F1 DMV,
K 0,
F167 HC1R,
DT 9044
K 0, K 5000,
Y0
R101
Y0
S
Y1
S
R100
F61 DCMP,
R100
K 4500,
Señal de comienzo para el inverter
Señal del contador de alta velocidad para el invertir
DT 9044
R900C
R102
LLegada al punto de deceleración
R102
Y1
R
DF
R903A
R100
T0
R103
DF
R103
TMX
0
Deceleración
Finalización de la salida de pulsos
(0.5 segundos)
K
5
6 -- 17
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
6.4
6.4.1
Función de salida de pulsos
Introducción al función de salida de pulsos
Instrucciones utilizadas y configuración de registros de sistema
D La función de salida de pulsos permite realizar un control de
posicionamiento utilizando con está función un controlador
de motor con entrada de pulsos.
D En el FP0 se puede realizar un control trapezoidal, con la
instrucción F168 obteniendose una salida de pulsos,
especificando la velocidad inicial, la velocidad máxima, el
tiempo de aceleración / deceleración y el valor de
preselección.
D En el FP0, la instrucción F168 permite realizar
automáticamente la operación de vuelta al origen.
D En el FP0, la instrucción F169 permite realizar la operación
JOG que proporciona un tren de pulsos mientras una
entrada específica está en ON.
D En el FP1/FP--M, la instrucción F164 controla las condiciones
de la salida del contador de alta velocidad según el valor actual. Hay dos tipos de control:
Control de salida de pulsos: controla la frecuencia de oscilación de la salida de acuerdo con el valor actual del contador
de alta velocidad.
Control de salida patrón: Controla los patrones de salida de
acuerdo con el valor actual del contador de alta velocidad.
D En el FP1/FP--M, la instrucción F165 controla los patrones
de salida en cada una de las salidas externas según el valor
actual del contador de alta velocidad.
Configuración de los registros de sistema
Cuando se utilice la función de salida de pulsos, se deben configurar los canales
correspondientes en los registros especiales de sistema Nº. 400 y Nº 401 como “No
utilización del contador de alta velocidad. Para configurar estos registros especiales de
sistema se debe consultar en “7.4 Tabla de registros especiales de sistema.”
6 -- 18
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
6.4.2
Modos de control en el FP0
Incremental <control de valor relativo>
D Proporciona el número de pulsos especificado por el valor de
preselección.
D Si el código de control es H02 (incremental; hacia delante:
OFF; hacia atrás: ON). Si el valor de preselección es positivo, la salida direccional pasa a OFF y el valor actual del
contador de alta velocidad se incrementa. Si el valor de preselección es negativo, la salida direccional se pone a ON y el
valor actual del contador de alta velocidad se decrementa.
Si el código de control es H03 (incremental; hacia delante:
ON; hacia atrás: OFF). Igual que el caso anterior, activandose la salida direccional al contrario de lo anteriormente explicado.
Para más información, consultar en la instrucción F168
(SPD1) y el página 6 -- 26.”
Absoluto <Control de valor absoluto>
D Proporciona el número de pulsos resultantes de la diferencia
entre el valor actual y el valor de preselección.
D Si el código de control es H12 (absoluto; hacia delante: OFF;
hacia atrás: ON). Si el valor actual es menor que el valor de
preselección, la salida direccional pasa a OFF y el valor actual del contador de alta velocidad se incrementa. Si el valor
actual es mayor que el valor de preselección, la salida direccional pasa a ON y el valor actual del contador de alta velocidad se decrementa.
Si el código de control es H13 (absoluto; hacia delante: ON;
hacia atrás: OFF). Igual que el caso anterior, activandose la
salida direccional al contrario de lo anteriormente explicado.
Para más información, consultar en la instrucción F168
(SPD1) y el página 6--28.”
Vuelta al origen
D Proporciona un tren de pulsos continuo hasta que se activa
la entrada de origen (X0 o X1).
D Para decelerar el movimiento al a proximarse al origen, se
debe poner a 1 el bit correspondiente de DT9052 OFF
ON
OFF
, activando, de este modo, la entrada de proximidad al origen.
Para más información, consultar en la instrucción F0 (MV)a y
en las páginas 6 -- 29 y 6--30.”
Operación JOG
D Se obtiene un tren de pulsos por la salida especificada
mientras la entrada de la instrucción F169 esté a ON.
D Con la instrucción F169 también se especifica la frecuencia
de salida y la salida direccional.
Para más información, consultar en la instrucción F169
(PLS) y en la página 6 -- 31.”
6 -- 19
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
6.4.3
Configuración de entradas /salidas y cableado en el FP0
Controlador con entrada de pulsos y entrada de dirección
D Una salida se utiliza como salida de pulsos y la otra como
salida direccional.
D La configuración de las entradas y salidas utilizadas para las
distintas funciones dependerán del canal empleado.
(Consultar en la página 6--6.)
D La entrada de proximidad al origen, Xn, se especifica
haciendo pasar el bit n del registro especial de datos DT9052
de OFF a ON y de nuevo a OFF (Consultar en la página
6--6.)
<Cuando se utiliza el canal 0>
FP0
Entrada de
origen
X0
X2
*
Entrada de
proximidad al
origen
Controlador
Salida de pulsos
Y0
Y2
Salida direccional
* Se puede elegir la entrada deseada para que realide la función de entrada de
proximidad al origen como se ha descrito arriba, en este caso se ha elegido X2.
<Cuando se utiliza el canal1>
FP0
Entrada de
origen
X1
X3
Entrada de
proximidad al
origen
*
Controlador
Y1
Y3
Salida de pulsos
Salida direccional
* Se puede elegir la entrada deseada para que realice la función de entrada de
proximidad al origen como se ha descrito arriba, en este caso se ha elegido X3.
6 -- 20
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
Controlador con dos entradas de pulsos (Entrada de pulsos hacia la derecha CW
y entrada de pulsos hacia la izquierda CCW)
D El conmutador para las dos entradas del controlador se
realiza con un contacto externo.
D Una salida externa se utiliza como salida de pulsos y otra
como conmutador para las dos entradas del controlador.
D La configuración de las entradas/salidas que realizan la
función de de salida de pulsos y entrada de origen depende
del canal utilizado. (Consultar en la página 6--6)
D Para preseleccionar un modo de operación sin salida
direccional se debe configurar el código de control con la
instrucción F168. (Consultar la instrucción F168.)
<Si se utiliza el canal 0>
FP0
Entrada de origen
X0
X2
*
Entrada de
proximidad al
origen
Salida de
pulsos
Y0
Y4
**
Entrada Controlador
CW
Entrada
CCW
* En este caso se utiliza la entrada X2 como entrada de proximidad al origen ,
pero se puede utilizar cualquier otra entrada externa.
** En este caso se utiliza la salida externa Y4 conmutador entre las dos
entradas del controlador pero se puede elegir cualquier otra salida externa .
Precauciones a tomar cuando se utiliza un controlador con dos entradas
D No se pueden conectar dos salidas de pulsos del FP0, Y0 e
Y1, directamente con las entradas CW y CCW del
controlador.
FP0
Y0
Controlador
Entrada CW
Entrada CCW
Y1
6 -- 21
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
6.4.4
Instrucciones utilizadas con la función de contador de alta velocidad en el FP0
Instrucción de control de posicionamiento (F168)
D Realiza un control trapezoidal de acuerdo con la tabla de
datos especificada.
X3
DF
F0 MV, H102, DT100
F0 MV, K500, DT101
F0 MV, K5000, DT102
F0 MV, K200, DT103
F1 DMV, K10000, DT104
F0 MV, K0, DT106
F168 SPD1, DT100, H0
se preselecciona la salida Y0 como salida de pulsos . Se
genera un tren de pulsos de velocidad inicial 500 Hz,
velocidad máxima 5000 Hz,
tiempo de aceleración/deceleración 200 ms, y 10000 pulsos.
5000 Hz
10000 pulsos
500 Hz
0 Hz
200 ms
200 ms
El valor actual del contador (DT9044 y DT9045) de alta
velocidad se incrementa.
. Notas
D La velocidad inicial en el control trapezoidal debe ser menor o
igual a 5000 Hz.
D Para más detalles sobre como resolver problemas cuando no
se obtienen pulsos de salida al ejecutar la instrucción F168,
consultar en la página 6 -- 32.
6 -- 22
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
Instrucción de salida de pulsos (F169)
D Esta instrucción se utiliza para ejecutar el modo de
operación JOG, para obtener un tren de pulsos en la salida
deseada cuando la entrada especificada pasa a ON.
X2
F0 MV, H112, DT200
F0 MV, K300, DT201
F169 PLS, DT200, H0
Mientra la entrada X2 está a ON, se obtiene en la salida Y0
un tren de pulsos de 300 Hz con un ciclo de trabajo del 10%.
En este ejemplo, la salida direccional Y2 está a OFF y por lo
tanto el valor actual del contador de alta velocidad (CH0:
DT9044 y DT9045) se incrementa.
X6
F0 MV, H112, DT200
F0 MV, K700, DT201
F169 PLS, DT200, H1
Mientra la entrada X6 está a ON, se obtiene en la salida Y1
un tren de pulsos de 700 Hz con un ciclo de trabajo del 10%.
En este ejemplo, la salida direccional Y3 está a OFF y por lo
tanto el valor actual del contador de alta velocidad (CH0:
DT9048 y DT9049) se decrementa.
Control del contador de alta velocidad (F0)
D Esta instrucción se utiliza para resetear el contador de alta
velocidad, detener la salida de pulsos, y preseleccionar y
resetear la entrada de proximidad al origen.
D Esta instrucción se utiliza con el registro especial de datos
DT9052.
D El valor del registro de control DT9052 no varia hasta que se
ejecuta otra vez la instrucción F0.
Operaciones que pueden realizar con la instrucción F0
D Borra los datos de control del contador de alta velocidad
especificados por las instrucciones F166 a F170.
D Operaciones de proximidad y vuelta al origen.
6 -- 23
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
<Ejemplo 1> Activa la entrada de proximidad al origen durante el control de pulsos
de salida, desacelerando el movimiento de aproximación al origen.
X3
DF
F0 MV, H 4 , DT9052
.....
1
F0 MV, H 0 , DT9052
.....
2
En el programa mostrado, en el paso 1 se habilita la entrada de proximidad, en
el paso 2 se introduce un 0 en el registro de control DT 9052, para resetear las
operaciones anteriores.
<Ejemplo 2> Detención de una salida de pulsos.
X7
DF
F0 MV, H 8 , DT9052
F0 MV, H 0 , DT9052
Preselección y lectura del valor actual del contador de alta velocidad (F1)
D Esta instrucción modifica o lee el valor actual del contador de
alta velocidad.
D Esta instucción se debe utilizar junto con el registro especial
de datos que contiene el valor actual.
D El valor actual del contador se guarda en un área de 32 bits,
en los registros especiales de datos DT9044 y DT9045
(CH0), DT9048 y DT9049 (CH1), DT9104 y DT9105 (CH2),
DT9108 y DT9109 (CH3).
D La instrucción F1 (DMV) puede preseleccionar el valor
actual.
<Ejemplo 1> Preselección del valor K3000 en el contador de alta velocidad
(ejemplo de cambio del valor actual).
X7
DF
F1 DMV, K3000, DT9044
<Ejemplo 2> Lectura del valor actual del contador de alta velocidad y copia en el
registro de datos DT100.
X7
DF
F1 DMV, DT9044, DT100
<Referencia>
Cada vez que se ejecuta la instrucción ED el valor actual se transfiere
automáticamente a los registros especiales de datos DT9044 y DT9045.
6 -- 24
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
6.4.5
Ejemplo de control de posicionamiento en el FP0
Ejemplo de conexionado
FP0
Terminal de entrada
Sensor de origen
X0
Comienzo de
posicionamiento
X1
Comienzo de
posicionamiento
X2
Comienzo de vuelta
al origen
X3
Sensor de proximidad
al origen
X4
Comienzo de JOG
directa
X5
Comienzo de JOG
inversa
X6
contacto a
contacto b contacto a
Mesa deslizante
Motor paso a paso
(--)
X7
Overrun
contacto b
(+)
COM
Control del motro paso a paso
Terminal de salida
Salida de pulsos
Y0
COM
Entrada de
pulsos
COM
Salida direccional
Y2
Entrada
direccional
+
Ver
nota.
-Fuente de
alimentación
de 24 V DC
. Nota
Si la entrada del controlador del motor paso a paso es un
fotoacoplador de 5 V, se debe conectar una resitencia de 2 KΩ y
de 1/4 W de potencia.
6 -- 25
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
Operación de posicionamiento de valor relativo (dirección positiva)
Cuando la entrada X1 pasa a ON, se obtiene un tren de pulsos en la salida Y0. En este
momento, la salida direccional Y2 permanece a OFF.
X1
R903A
R10
R12
DF
Se ejecuta la operación de
posicionamiento
R10
R11
R10
DF
R11
F0 MV,
H 102,
DT 100
F0 MV,
K 500,
DT 101
F0 MV,
K5000,
DT 102
F0 MV,
K 200,
DT 103
Comienzo de la operación
de posicionamiento
Código de control: H102
DT100 [consultar la instrucción
F168 (SPD1)”]
DT101 Velocidad inicial:500Hz
DT102 Velocidad máx:5000Hz
DT103
F1 DMV,
F0 MV,
K10000,
K 0,
F168 SPD1,
R903A
DT 104
DT104
Nº de pulsos: 10000
DT105
DT 106
DT 100,
R10
Tiempo de aceleración /
deceleración: 200 ms
H0
DT106
R12
T0
DF/
R12
TMX
0
(dirección -- )
(dirección + )
10
Detención de la salida de
pulsos
Finalización del control de
posicionamiento (1 s)
5000 Hz
Motor
10000 pulsos
10000
pulsos
500 Hz
0 Hz
200 ms
6 -- 26
200 ms
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
Operación de posicionamiento de valor relativo (dirección negativa)
Cuando la entrada X2 pasa a ON, se obtiene un tren de pulsos en la salida Y0. En este
momento la salida direccional Y2 pasa a ON.
X2
R903A
R20
R22
DF
Se ejecuta la operación de
posicionamiento
R20
R21
R20
DF
R21
F0 MV,
H 102,
DT 100
F0 MV,
K1000,
DT 101
F0 MV,
K6000,
DT 102
F0 MV,
K 300,
DT 103
Comienzo de la operación
de posicionamiento
Código de control: H102
DT100 [consultar la instrucción
F168 (SPD1)”]
DT101 Velocidad inicial:1000Hz
DT102 Velocidad máx:6000Hz
DT103
F1 DMV,
F0 MV,
K--8000,
K 0,
F168 SPD1,
DT 100,
H0
DT106
T1
R22
DF/
TMX
1
R22
10
Detenciónde salida de
pulsos
Finalización del control de
posicionamiento (1 s)
6000 Hz
(Dirección + )
(Dirección --)
Motor
Tiempo de aceleración /
deceleración:300ms
DT104
Nº de pulsos: --8000
DT105
DT 106
R20
R903A
DT 104
8000 pulsos
8000
pulsos
1000 Hz
0 Hz
300 ms
300 ms
6 -- 27
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
Operación de posicionamiento de valor absoluto
X1
R903A
R30
R32
DF
Se ejecuta la operación de
posicionamiento
R30
R31
R30
Comienzo de la operación
de posicionamiento
Código de control: H112
DT100 [consultar la instrucción
F168 (SPD1)”]
DF
R31
F0 MV,
H 112,
DT 100
F0 MV,
K 200,
DT 101
F0 MV,
K4000,
DT 102
F0 MV,
K 250,
DT 103
DT101 Velocidad inicial:200Hz
F1 DMV,
F0 MV,
K22000,
K 0,
F168 SPD1,
R903A
DT 104
DT 106
DT 100,
R30
DT102
Velocidad máxima:
4000 Hz
DT103
Tiempo de aceleración /
deceleración: 250ms
DT104 Valor de preselección:
DT105 22000
H0
DT106
R32
T2
DF/
TMX
2
R32
Finalización del control de
posicionamiento (1 s)
10
(Dirección -- )
Detención de la salida de
pulsos
(Dirección +)
Motor
(10,000)
22,000
(30,000)
4000 Hz
El movimiento es siempre hacia la posición
“22,000”, sin tener en cuenta el valor actual.
200 Hz
0 Hz
250 ms
6 -- 28
250 ms
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
Operación de vuelta al origen (dirección negativa)
Cuando X3 pasa a ON, se proporciona un tren de pulsos en la salida Y0 y comienza
la operación de vuelta al origen. En ese momento la salida direccional Y2 pasa a ON.
A continuación, cuando X4 pasa a ON, se comienza a decelerar el movimiento , y al
pasar X0 a ON, se completa la operación de vuelta al origen. (Cuando se completa la
operación de vuelta al origen, el valor actual (DT9044 y DT9045) se pone a 0.)
X3
R903A
R42
R40
Se ejecuta la operación de vuelta al
origen
DF
R40
R41
R40
Comienzo de la operación de
vuelta al origen
DF
R41
F0 MV,
H 123,
DT 200
F0 MV,
K 100,
DT 201
F0 MV,
K2000,
DT 202
F0 MV,
K 150,
DT 203
Código de control: H123
DT200 [consultar la instrucción
F168 (SPD1)”]
DT201 Velocidad inicial 100Hz
DT202 Velocidad máx:2000Hz
DT203
F168 SPD1,
DT 200,
R40
R903A
H0
Tiempo de aceleración /
deceleración: 150ms
R42
T3
Finalización de la operación de
vuelta al origen
DF/
TMX
3
R42
10
X4
DF
F0 MV,
H 4,
DT9052
F0 MV,
H 0,
DT9052
(Dirección --)
Motor
(Dirección + )
Comienzo de la deceleración del
movimiento
X3: ON
Sensor de
proximidad al
origen
X4: ON
Sensor de
origen
X0: ON
2000 Hz
X4
X0
Sensor Sensor de
proximidad
de
al origen
origen
100 Hz
0 Hz
150 ms
150 ms
6 -- 29
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
Operación de vuelta al origen (dirección positiva)
Cuando X3 pasa a ON, se proporciona un tren de pulsos en la salida Y0 y comienza
la operación de vuelta al origen. En ese momento la salida direccional Y2 no pasa a
ON. A continuación, cuando X4 pasa a ON, se comienza a decelerar el movimiento ,
y al pasar X0 a ON, se completa la operación de vuelta al origen. (Cuando se completa
la operación de vuelta al origen, el valor actual (DT9044 y DT9045) se pone a 0.)
X3
R903A
R52
R50
Se ejecuta la operación de vuelta
al origen
DF
R50
R51
R50
Comienzo de la operación de
vuelta al origen
Código de control: H12
DT200 [consultar la instrucción
F168 (SPD1)”]
DF
R51
F0 MV,
H 122,
DT 200
F0 MV,
K 120,
DT 201
F0 MV,
K2500,
DT 202
F0 MV,
K 100,
DT 203
DT201 Velocidad inicial: 120 Hz
DT202 Velocidad máx: 2500 Hz
DT203
F168 SPD1,
R903A
DT 200,
R50
H0
Tiempo aceleración /
deceleración: 100 ms
R52
T4
Finalización de la operación de
vuelta al origen
DF/
TMX
4
R52
10
X4
DF
(Dirección --)
F0 MV,
H 4,
DT9052
F0 MV,
H 0,
DT9052
(Dirección +)
Motor
X3: ON
Sensor de
proximidad al
origen
X4: ON
2500 Hz
X4
X0
Sensor de Sensor
entrada de
de
proximidad origen
6 -- 30
Comienzo de la deceleración del
movimiento
120 Hz
0 Hz
100 ms
100 ms
Sensor de
origen
X0: ON
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
Operación JOG (dirección positiva)
Cuando X5 está a ON, se obiene un tren de pulsos en la salida Y0. En este momento,
la salida direccional Y2 no pasa ON.
X5
F0 MV,
H 112,
DT 300
F0 MV,
K 300,
DT 301
F169 PLS,
DT 300,
Código de control: H112
DT300 [consultar la instrucción
F169 (PLS)”]
H0
(Dirección-- )
DT301 Velocidad: 300 Hz
X5
(Dirección + )
Motor
ON
OFF
300 Hz
Y0 (Salida
de pulsos) 0 Hz
Operación JOG (dirección positiva)
Cuando X6 está a ON, se obiene un tren de pulsos en la salida Y0. En este momento,
la salida direccional Y2 pasa ON.
X6
F0 MV,
H 122,
DT 310
F0 MV,
K 300,
DT 311
F169 PLS,
DT 310,
Código de control: H122
DT310 [consultar en la instrucción
F169 (PLS)”]
H0
(Dirección -- )
DT311 Velocidad: 300 Hz
(Dirección + )
Motor
X6
ON
OFF
300 Hz
Y0 (Salida
de pulsos) 0 Hz
Parada de emergencia (por encima de límite)
Si X7 pasa a OFF mientras se está obteniendo un tren de pulsos en Y0, la salida de
pulsos se detiene.
X7
DF/
F0 MV,
H 8,
DT9052
F0 MV,
H 0,
DT9052
Se borra el control del contador
6 -- 31
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
Diagrama a seguir si al ejecutar la instrucción F168 (SPD1) no se produce una
salida de pulsos
Ocurre un error
Si
No
[F168 SPD1, j, Kj]
Solucionar
el problema
Si
Relé interno
especial R903A o R903B
está a ON..
Si
No
La primera
palabra de la tabla de
datos que indica el modo de Si
operación no es (incremental),
1 (absoluto) o 2 (de
vuelta al
origen)
Bandera de borrado
del registro de control
DT9052 está a ON.
No
Solucionar
el problema
Si
Si
La
segunda palabra de
No
la tabla de datos cumple 40
velocidad inicial
velocidad
.máxima
.
El valor actual
supera el valor
H7FFFFF.
Si
Solucionar
el problema
Si
No
Modificación
del valor
actual.
Solucionar
el problema
No
El contador
de alta velocidad (CH0 y
CH1) se configura en
el registro
No. 400.
No
Modificación
del valor
actual.
Solucionar
el problema
No es K0 o K1.
No
Solucionar
el problema
Si
La 5ª
palabra de la tabla de
datos debe está comprendida
entre HFF800000 valor
de preselección
H7FFFFF.
El valor actual
es menor que
HFF80000.
No
Solucionar
el problema
Si
No
Pongase en contacto con su proveedor.
Preselección
del modo de vuelta al
origen
Si
La
entrada de
vuelta al origen ha sido
utilizada por alguna interrrupción
o por otra función del
contador de alta
velocidad
No
Si
Solucionar
el problema
No
Preselección del
modo absoluto
Si
No
Pongase en contacto con su proveedor.
Pongase en contacto con su proveedor.
La
configuración en el
en el modo absoluto es valor
de preselección =valor
actual
Si
No
Pongase en contacto con su proveedor.
6 -- 32
Solucionar
el problema
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.5 Función de salida PWM
6.4.6
Aplicaciones en el FP1/FP--M
F164 modo de control de salida de pulsos
S
Realiza el siguiente tipo de control de salida de pulsos:
·
Conexionado
Salida de pulsos
Controlador del motor
Motor
Y7
FP--M / FP1 (CPU)
X0
Entrada del contador de alta valocidad
Diagrama temporal
Datos de velocidad
(Frecuencia de salida de pulsos)
Dato de velocidad
inicial 1 K193
(1460 Hz)
Dato de velocidad
inicial 2 K152 ( 890
Hz)
Valor de preselección 1
Valor actual
Valor de preselección 2 Valor de preselección 3
(Último valor de preselección)
X3
R903A
S FP1 C14, C16, C24 y C40 (salida a transistor): salida de pulsos Y7:
-- Configuración: registro especial de sistema 400 = H3 o H4
-- Conexionado: el esquema mostrado anteriormente.
S FP--M y FP1 C56 y C72 (salida a transistor): salida de pulsos Y7
-- Configuración: registro especial de sistema 400=H103 o 104
-- Conexionado: el esquema mostrado anteriormente. En este caso la
conexión entre X0 e Y7 puede hacerse internamente
. Nota
D En el NPST--GR el registro especial de sistema 400 se
configura de la siguiente manera.
-- Modo de tabajo del contador de alta velocidad: 3 o 4
-- Realimentación de la salida de pulsos: SI
6 -- 33
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.4 Función de salida de pulsos
S FP--M y FP1 C56 y C72 (salida a transistor): salidas de pulsos Y6 e Y7:
-- Configuración: registro especial de sistema 400 = H107 o H108
-- H107 : Salida de pulsos Y7 y entrada incremental X0
(No se utiliza la entrada de reset externa X2)
-- H108 Salida de pulsos Y7 y entrada decremental X1
(Se utiliza la entrada de reset externa X2)
-- Conexionado: el esquema mostrado anteriormente añadiendo la salida Y6
y la entrada X1. No es necesario conectar Y6 con X1 e Y7 con X0 ya que se
puede realizar internamente.
. Nota
D En el NPST--GR el registro especial de sistema 400 se
configura de la siguiente manera.
-- Modo de tabajo del contador de alta velocidad: 7 o 8
-- Realimentación de la salida de pulsos: SI
F164 modo de control de salida patrón
S El modo de control de salida patrón actúa sobre el estado de diferentes salidas externas según el
valor actual del contador de alta velocidad.
Valor actual
Valor de
preselcción 2
K2000
Valor de
preselcción 1
K1000
Valor actual
Tiempo
X3
R903A
Y0
Y1
Patrón 1
6 -- 34
Patrón 2
Patrón 3
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.4 Función de salida de pulsos
F165 Control CAM
S
Controla los patrones de salida en cada una de las salidas externas según el valor actual del
contador de alta velocidad
Valor actual
K5000
K4000
K3000
K2000
K1000
0
X3
R903A
R903B
Y0
Y1
Patrón inicial de salida
Más de 1 ms
S El número máximo de salidas con las que se puede realizar un control cam son 8, comenzando desde la
Y0.
S El número máximo de patrones es:
-- FP1 C14 y C16: 16 valores de preselección de paso a ON y 16 de paso a OFF.
-- FPM C24, C40, C56, y C72: 32 valores de preselección de paso a ON y 32 de paso a OFF
Ejecución de un programa interrupción (INT0) utilizando las instrucciones F162,
F163, F164 y F165
S
Se ejecuta el programa interrupción 0 cada vez que el valor actual coincide con el valor de
preselección especificado por cada una de las instrucciones.
Valor de
preselección
Valor actual
K800
K300
Tiempo
INT0
Ejecución
Ejecución
6 -- 35
Contador de alta velocidad / Salida de pulsos / Salida PWM
FP0/FP1/FPM
6.5 Función de salida PWM
6.5
6.5.1
Función de salida PWM
Introducción a la función de salida PWM
Función de salida PWM
D Con la instrucción F170, se especifica el ciclo de trabajo y la
modulación del pulsos deseada.
D Función aplicable a controles analógicos como controles de
temperatura o de luz.
Configuración de los registros especiales de sistema
Cuando se utiliza esta función, se debe configurar los registros especiales Nº. 400 y
No. 401 para no utilizar el contador de alta velocidad.Para más información de como
configurar estos registros consultar en “7.4 Tabla de registros especiales de sistema.”
6.5.2
Instrucciones utilizadas con la función de salida PWM
Instrucción de salida PWM (F170)
D Si X6 está a ON, se obtiene un tren de pulsos en la salida Y0
con un ciclo de trabajo del 50% y una anchura de pulso de
840 ms.
X6
F0 MV, H5, DT100
F0 MV, K500, DT101
F170 PWM, DT100, K0
D Si X7 está a ON, se obtiene un tren de pulsos en la salida Y1
con un ciclo de trabajo del 30% y una anchura de pulso de
1.6 ms.
X7
F0 MV, H6, DT100
F0 MV, K300, DT101
F170 PWM, DT100, K1
6 -- 36
FP0/FP1/FPM
Contador de alta velocidad / Salida de pulsos / Salida PWM
6.5 Función de salida PWM
6 -- 37
Capítulo 7
Apéndice
7.1
Especificaciones . . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 3
7.2
Tabla de configuración de E/S . . . . . . . . . . . . . 7 -- 6
7.3
7.2.1
Unidades de control . . . . . . . . . . . . . . 7 -- 6
7.2.2
Expansiones . . . . . . . . . . . . . . . . . . . . . 7 -- 6
Contactos, áreas de memoria y constantes . 7 -- 10
7.3.1
7.4
Número de contactos . . . . . . . . . . . . 7 -- 12
Tabla de registros especiales de sistema . . . 7 -- 14
7.4.1
Registros especiales de sistema . . 7 -- 14
7.4.2
Configuración de los registros
especiales de sistema . . . . . . . . . . . 7 -- 16
7.4.3
Tabla de registros especiales
de sistema . . . . . . . . . . . . . . . . . . . . . 7 -- 18
7.5
Relés internos especiales . . . . . . . . . . . . . . . . 7 -- 27
7.6
Registros de datos especiales . . . . . . . . . . . . 7 -- 30
7.7
Códigos de error . . . . . . . . . . . . . . . . . . . . . . . . 7 -- 38
7.8
7.7.1
Cuando se enciende el
LED ERROR/ALARMA . . . . . . . . . . . 7 -- 38
7.7.2
Códigos de error de sintaxis . . . . . . 7 -- 40
7.7.3
Códigos de error de
autodiagnóstico . . . . . . . . . . . . . . . . 7 -- 41
Tabla de expresiones binarias/hexadecimales/
BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 -- 42
Apéndice
7 -- 2
FP0/FP1/FPM
FP0/FP1/FPM
Apéndice
7.1 Especificaciones
7.1
Especificaciones
FP0
Concepto
C10R
C14
FP--M
C16
C32
Método de
programación/control
Unidad de control
Memoria de
programa
Capacidad de
programa (pasos)
FP1
Tipo
5k
C14 /
C16
C24/
C40
C56 /
C72
Simbología de relés/cíclico (scan)
Total: 10 Total: 14 Total: 16 Total: 32
E:6
E:8
E:16
E:8
S: 4
S:8
S:16
S:8
EEPROM (sin bateria)
2,720
Instrucciones
Básicas
C14
E: 8 S: 6
C24
C56
E: 16 S: 8 E:32S:24
C16
E: 8 S: 8
C40
E:24S:16
C72
E:40S:32
EEPROM / EPRON adicional /RAM (bateria de litio)
5,000
2,720
83
Instrucciones de alto
nivel
Velociddad de
operación
Tipo
2.7 k
5,000
81
900
2,720
41
80
85
111
0.9 s/paso ( instrucciones
básicas)
1.6 s/paso
5,000
81
111
(instrucciones básicas)
Entradas externas
(X)
208 puntos (X0 a X12F)
Este número se corresponde con el número de E/S de la unidad de control.
Salidas externas (Y)
208 puntos (Y0 a Y12F)
Este número se corresponde con el número de E/S de la unidad de control.
Relés internos (R)
1,008 puntos (R0 a R62F)
256
puntos
Relés internos
especiales (R)
64 puntos (R9000 a R903F)
Temporizador /
Contador (T/C)
Registros de datos
(DT)
1,008 puntos (R0 a
R62F)
144 puntos (1*)
1,660 palabras
(DT0 a DT1659)
6,144 palabras
(DT0 a DT6143)
128
144 puntos (1*)
puntos
(2*)
256 pa- 1,660
6,144
1,660
6,144
labras
palabras
palabras
palabras palabras
Registros de datos
especiales (DT)
112 palabras (DT9000 a DT9111)
Registros de índice
(IX, IY)
2 palabras
D (*1): Configuración inicial: 100 temporizadores, T0 a T99 / 44 contadores, C100 a C143.
Rangos de temporización: 1 ms, 10 ms, 100 ms, 1 s; depende de la
instrucción utilizada. El número de temporizadores / contadores se
modifica en el registro especial de sistema No.5.
D (*2): Configuración inicial: 100 temporizadores, T0 a T99 / 44 contadores, C100 a C127.
7 -- 3
Apéndice
FP0/FP1/FPM
7.1 Especificaciones
FP0
Concepto
C10
C14
FP--M
C16
C32
Puntos diferenciales (DF, DF/)
Tipo
2.7 k
FP1
Tipo
5k
C14 / C16
C24/
C56 /
C40
C72
Número ilimitado de puntos
Puntos MCR
32 puntos
16 puntos
32 puntos
Saltos (JMP, LOOP)
64 puntos
32 puntos
64 puntos
128
64
128
16
8
16
____
9
Total: 4
puntos
(X0 a X3)
Total: 8
puntos (X0 a
X7)
Número de paso a paso
(secuencias)
Número de subrutinas
Número de programas de
interrupción
Funcio
nes
especia
les
Entrada por captura
de pulso
7
Total: 6 puntos (X0 a X5)
Total: 8 puntos
(X0 a X7)
Interrupciones
Interrupciones
periódicas
_______
Intervalos de 0.5 ms a 30 s
Scan constante
Autodiagnóstico
Retención en
memoria
C
O
N
T
A
D
O
R
9
Entrada incremental /
entrada decremental
(1 fase)
Intervalos de 10
ms a 30 s
______
Intervalos de
10 ms a 30 s
Disponible
Temporizador “watchdog”,
chequeo del programa
EEPROM
4 canales : CH0, CH1,
CH2, CH3.
Utilizando un sólo canal:
CH0 y CH1 = 10 KHz
CH2 y CH3 = 5 KHz
Utilizando más de un canal:
Máximo 10 kHz la suma de
todas las frecuencias.
Temporizador “watchdog”, chequeo del
programa y detección de batería
RAM baterizada
EEPROM
RAM
baterizada
1 canal
Máx velocidad 10 kHz
D
E
A
L
T
A
V
E
L
O
C
I
D
A
D
7 -- 4
Entrada en doble fase
2 canales : CH0, CH2.
Utilizando un único canal:
CH0 = 10 KHz
CH2 = 5 KHz
Utilizando ambos canales:
Máximo 2 KHz la suma de
ambas frecuencias.
1 canal
Máx velocidad 10 kHz
FP0/FP1/FPM
Apéndice
7.1 Especificaciones
FP0
Concepto
C10
Función Contador Contactos
especia l de alta
de
velocidad entrada
usados
Entrada
de ancho
de pulso
mínimo
X0:
X1:
X2:
X3:
X4:
X5:
C14
(ch 0)
(ch 1)
reset
(ch 2)
(ch 3)
reset
X0, X1
<10kHz>
X3, X4
<5kHz>
FP--M
C16
X0:
X1:
X2:
X3:
X4:
X5:
C32
(ch 0)
(ch 0)
reset
(ch 2)
(ch 2)
reset
50 s,
Tipo
2.7 k
FP1
Tipo
5k
C24/
C56 /
C16
C40
C72
X0 y X1 : entradas de contaje
X2: entrada de reset
50 s, <10kHz> con una fase
100 s, <5kHz> con dos fases
100 s,
Salida de
pulsos
(Sólo
modelos
con salida
a
transistor)
Nº de
puntos de
salida
Dos puntos (Y0 2 puntos Y6, Y7
e Y1)
Frec. de
salida
40 Hz a 10 kHz
(Y0/Y1: un punto
de salida)
40 Hz a 5 kHz
(Y0/Y1: dos
puntos de
salida)
Salida
PWM
Nº de
puntos de
salida
Frec. de
salida
C14 /
Dos puntos
(Y0 e Y1)
Frecuencia:0.15
Hz a 38 Hz,
Ciclo de trabajo:
0.1% to 99.9%
1 punto Y7
2
puntos
Y6, Y7
45 Hz a 5 KHz
(Ver tablas pag )
_____________________
_____________________
. Notas
D Las combinaciones de 1 fase 2 canales y 2 fases posibles en el contador de alta velocidad.
1 canal son
D La máxima velocidad de cuenta (10 kHz) es para una tensión de
trabajo de 24 V DC y una temperatura ambiente de 25 °C. La
velocidad de cuenta (frecuencia) disminuirá dependiendo de la
temperatura y de la tensión.
D Para más información sobre el contador de alta velocidad, salida de
pulsos y salida PWM consultar en el Capítulo 6 “Contador de alta
velocidad, salida de pulsos y salida PWM.”
7 -- 5
Apéndice
FP0/FP1/FPM
7.2 Tabla de configuración de E/S
7.2
Tabla de configuración de E/S
7.2.1
Unidades de control
La configuración de E/S en la unidad de control es fija.
Tipo de unidad de control
FP0
FP--M
FP1
Número de entrada
Número de salida
C10 6E/ 4S
X0 a X5
Y0 a Y3
C14 8E/ 6S
X0 a X7
Y0 a Y5
C16 8E/ 8S
X0 a X7
Y0 a Y7
C32 16E/ 16S
X0 a XF
Y0 a YF
C20 12E/ 8S
X0 a XB
Y0 a Y7
C32 16E/ 16S
X0 a XF
Y0 a YF
C14 8E/ 6S
X0 a X7
Y0 a Y4, Y7
C16 8E/ 8S
X0 a X7
Y0 a Y7
C24 16E/ 8S
X0 a XF
Y0 a Y7
C40 24E/ 16S
X0 a XF / X10 a X17
Y0 a YF
C56 32E/ 24S
X0 a XF / X10 a X1F
Y0 a YF / Y10 a Y17
C72 40E/ 32S
X0 a XF / X10 a X17 / X20 a X27
Y0 a YF / Y10 a Y1F
7.2.2
Expansiones
La configuración de las E/S en las expansiones depende del orden de conexión.
FP0
Número de E/S
Tipo de expansión
E8R
E16R/E16T/E16P
E32T/E32P
A21
Primera expansión
Segunda expansión Tercera expansión
Entrada:4 puntos
X20 a X23
X40 a X43
X60 a X63
Salida 4 puntos
Y20 a Y23
Y40 a Y43
Y60 a Y63
Entrada:8 puntos
X20 a X27
X40 a X47
X60 a X67
Salida:8 puntos
Y20 a Y27
Y40 a Y47
Y60 a Y67
Entrada:16 puntos
X20 a X2F
X40 a X4F
X60 a X6F
Salida:16 puntos
Y20 a Y2F
Y40 a Y4F
Y60 a Y6F
Entrada del
16 puntos
canal
0:
X20 a X2F
X40 a X4F
X60 a X6F
Entrada del
16 puntos
canal
1:
X30 a X3F
X50 a X5F
X70 a X7F
Y20 a Y2F
Y40 a Y4F
Y60 a Y6F
Salida: 16 puntos
Entradas externas (X), Salidas externas (Y) y Relés internos (R)
Debido a que las entradas externas, salidas externas y relés internos se manejan en
unidades de 16 puntos, su numeración se expresa como una combinación de
numeración decimal y hexadecimal tal como se muestra debajo.
<Ejemplo> Salida externa ”X”
X
Decimal
1, 2, 3,...
Hexadecimal
0, 1, 2, 3,...,A, B, ..., F
7 -- 6
X 0, X 1 . . . . . . . . . . . . . . . . . . . . .X F
X 10, X 11 . . . . . . . . . . . . . . . . . . . . .X 1F
X 20, X 21 . . . . . . . . . . . . . . . . . . . . .X 2F
FP0/FP1/FPM
Apéndice
7.3 Contactos, áreas de memoria y constantes
FP--M
Tipo de expansión
Tarjeta de
E/S Salida
a transistor
Tarjeta de
Entadas
Tarjeta de
Salidas
Tarjeta de
E/S Salida
a relé
Tarjeta
FP--M de
enlace
Configuración de las E/S
Nº de E/S
1ª Expansión
2ª Expansión
3ª Expansión
4ª Expansión
Entrada:24 puntos
X30 a X3F
X40 a X47
X50 a X5F
X60 a X67
X70 a 7F
X80 a X87
X90 a X9F
X100 a X107
Salida:16 puntos
Y30 a Y3F
Y50 a Y5F
Y70 a Y7F
Y90 a Y9F
Entrada:24 puntosCon SW1
X30 a X3F
X40 a X47
X50 a X5F
X60 a X67
X70 a 7F
X80 a X87
X90 a X9F
X100 a X107
Entrada:12 puntos
Con SW2
X30 a X3B
X50 a X5B
X70 a X7B
X90 a X9B
Salida:32 puntos
Con SW1
Y30 a Y3F
Y50 a Y5F
Y70 a Y7F
Y90 a Y9F
Salida:16 puntos
Con SW2
Y30 a Y3F
Y50 a Y5F
Y70 a Y7F
Y90 a Y9F
Entrada:12 puntos
X30 a X3B
X50 a X5B
X70 a X7B
X90 a X9B
Salida:8 puntos
Y30 a Y37
Y50 a Y57
Y70 a Y77
Y90 a Y97
Entrada: 32 puntos
X110 a X11F
X120 a X12F
------------------
------------------
--------------------
Salida: 32 puntos
Y110 a Y11F
Y120 a Y12F
------------------
--------------------
--------------------
FP--M
Tipo de expansión
Analógica
Nº de
expansión
Entradas/Salidas
Nº de canal
Registro especial de
datos
0
Entrada analógica
CH0
DT9080
CH1
DT9081
CH2
DT9082
CH3
DT9083
Salida analógica
CH0
DT9096
Entrada analógica
CH0
DT9084
CH1
DT9085
CH2
DT9086
CH3
DT9087
Salida analógica
CH0
DT9098
Entrada analógica
CH0
DT9088
CH1
DT9089
CH2
DT9090
CH3
DT9091
Salida analógica
CH0
DT9100
Entrada analógica
CH0
DT9192
CH1
DT9093
CH2
DT9094
CH3
DT9095
CH0
DT9102
1
2
3
Salida analógica
7 -- 7
Apéndice
FP0/FP1/FPM
7.3 Contactos, áreas de memoria y constantes
FP--M
Tipo de expansión
Conversor A/D
Nº de
expansión
Entradas/Salidas
Nº de canal
Registro especial de
datos
0
Entrada analógica
CH0
DT9080
CH1
DT9081
CH2
DT9082
CH3
DT9083
CH0
DT9084
CH1
DT9085
CH2
DT9086
CH3
DT9087
CH0
DT9088
CH1
DT9089
CH2
DT9090
CH3
DT9091
CH0
DT9192
CH1
DT9093
CH2
DT9094
CH3
DT9095
CH0
DT9096
CH1
DT9097
CH0
DT9098
CH1
DT9099
CH0
DT9100
CH1
DT9101
CH0
DT9102
CH1
DT9103
1
Entrada analógica
2
Entrada analógica
3
Conversor D/A
Entrada analógica
0
Salida analógica
1
Salida analógica
2
Salida analógica
3
Salida analógica
FP--M
Tipo de expansión
Contador de alta
velocidad
Nº de canal
Tipo de datos
Registro especial de
datos
Canal 0
Valor de preselección 0
DT9104 y DT9105
Valor de preselección 1
DT9106 y DT9107
Valor actual
DT9108 y DT9109
Canal 1
Canal 0 y 1
7 -- 8
Valor de captura
DT9110 y DT9111
Valor de preselección 0
DT9112 y DT9113
Valor de preselección 1
DT9114 y DT9115
Valor actual
DT9116 y DT9117
Valor de captura
DT9118 y DT9119
Área de control del contador
de alta velocidad
DT9120
Registro de monitorización
DT9121
FP0/FP1/FPM
Apéndice
7.3 Contactos, áreas de memoria y constantes
FP--1
Tipo de expansión
E8
Primera
expansión
Segunda
expansión
Entradas
Salidas
Entradas
X30 a X37
________
Entradas / Salidas
X30 a X33
Y30 a Y33
Salidas
__________
Y30 a Y37
Entradas
X30 a X3F
________
Entradas / Salidas
X30 a X37
Y30 a Y37
Salidas
________
Y30 a Y3F
E24
Entradas / Salidas
X30 a X3F
Y30 a Y3F
E40
Entradas / Salidas
X30 a X3F
X40 a X47
Y30 a Y3F
Entradas
X50 a X57
________
E8
Entradas / Salidas
X50 a X53
Y50 a Y53
E16
Salidas
__________
Y50 a Y57
Entradas
X50 a X5F
________
E16
Entradas / Salidas
X50 a X57
Y50 a Y57
Salidas
________
Y50 a Y5F
E24
Entradas / Salidas
X50 a X5F
Y50 a Y5F
E40
Entradas / Salidas
X50 a X5F
X60 a X67
Y50 a Y5F
X70 a X7F
X80 a X8F
Y70 a X7F
Y80 a Y8F
Canal 0
X90 a X9F
------------------
Canal 1
X100 a X10F
------------------
Canal 2
X110 a X11F
------------------
Canal 3
X120 a X12F
------------------
Canal 0
----------------------
Y90 a Y9F
Canal 1
----------------------
Y100 a Y10F
Canal 0
----------------------
Y110 a Y11F
Canal 1
----------------------
Y120 a Y12F
Unidad de enlace
Conversor A/D
Conversor
D/A
Conversor
D/A
Unidad 0
Unidad 1
. Notas
D El máximo número de expansiones que se pueden conectar son:
FP1 C14 y C16: 1 expansión
FP1 C24, C40, C56 y C72: 2 expansiones.
D Número máximo de expansiones:
Link unit : 1 expansión
Conversor A/D: 1 expansión
Conversor D/A: 2 unidades
D Asegurarse de configurar con numeros diferentes los conversores
D/A si se utilizan 2 expansiones.
7 -- 9
Apéndice
FP0/FP1/FPM
7.3 Contactos, áreas de memoria y constantes
7.3
Contactos, áreas de memoria y constantes
Numeración
Elemento
FP0
C10 /
C14/C16
C32
Entradas
externas
X
Salidas
externas
Y
Relés
C
o internos
R (*2)
n
t
a
c Tempor.
T (*2)
t
o
s
Contad.
C (*2)
Tipo
2.7 k
d
e
Función
C14/
C16
208 puntos (X0 a X12F)
Conmutan a ON/OFF
dependiendo de entradas
externas
208 puntos (Y0 a Y12F)
Conmutan a ON/OFF salidas
externas
256
puntos
(R0 a
R15F)
128
puntos
(*1)
(T0 a
T99/
C100 a
C127)
1,660
palabras
(DT0 a
DT1659)
6,144
palabras
(DT0 a
DT6143)
13 palabras
(WY0 a WY12)
La palabra de las salidas
externas ”WY” trata grupos de
16 salidas externas como una
palabra (palabra =16 bits )
1,660
palabras
(DT0 a
DT1659)
6,144
palabras
(DT0 a
DT6143)
1,660
palabras
(DT0 a
DT1659)
144 palabras
(EV0 a EV143)
6,144
palabras
(DT0 a
DT6143)
16
palabras
(WR0 a
WR15)
256
palabras
(DT0 a
DT255)
128
palabras
(SV0 a
SV127)
128
palabras
(EV0 a
EV127 )
2 palabras (IX, IY)
(DT9000 a DT9111)
Cuando una instrucción TM
finaliza, el contacto con el
mismo número conmuta a
ON.
Cuando una instrucción CT ha
terminado la cuenta, el
contacto con el mismo
número conmuta a ON.
Relé que conmuta a ON/OFF
dependiendo de condiciones
específicas y que se emplea
como bandera (ver 7.5)
La palabra de entradas
externas ”WX” trata grupos de
16 entradas externas como
una palabra (palabra=16 bits)
144 palabras
(SV0 a SV143)
112 palabras
Conmutan a ON/OFF sólo
dentro del programa
13 palabras
(WX0 a WX12)
63 palabras
(WR0 a WR62)
Valor de
m presel.
e
de
m tempor./
o contad.
r SV (*1)
i
Valor
a
actual de
tempor./
contad.
EV (*1)
Regist.
de índice
IX / IY
7 -- 10
C56/
C72
64 puntos(R9000 to R903F)
Relés
internos
WR
Regist.
de
datos
espec.
DT
C24/
C40
144 puntos (*1)
(T0 a T99/C100 a C143)
Salidas
externas
WY
Regis.
de
datos DT
(*2)
Tipo
5k
1,008 puntos (R0 to R62F)
Relés
internos
especial.
R
Entradas
externas
WX
Á
r
e
a
s
FP1
FP--M
112 palabras
(DT9000 a DT9069)
y
(DT9080 a
DT9121)
112 palabras
(DT9000 a DT9069)
El formato de palabra de los
relés internos ”WR” trata
grupos de 16 relés como una
palabra (palabra = 16 bits)
El registro de datos es un
área de memoria de lectura /
escritura para datos y cada
registro consiste en una
palabra (palabra = 16 bits)
Área de memoria para
almacenar el valor de
preselección de un
temporizador/contador. Su
número corresponde al de su
temporizador/contador
Área de memoria para
almacenar el valor de
preselección de un
temporizador/contador. Su
número corresponde al de su
temporizador/contador
Se pueden emplear para
almacenar una dirección de
área de memoria y como un
modificador de constantes
Área de memoria para
almacenar datos específicos.
Diversos códigos de
configuración y de error se
almacenan en ellas. (ver 7.6)
FP0/FP1/FPM
Apéndice
7.3 Contactos, áreas de memoria y constantes
Numeración
FP0
Elemento
C
o
n
s
t
.
C10R
/C14R
C16
Const.
decim.
K
Const.
hexad.
H
FP--M
C32T/
C32P
Tipo
2.7 k
FP1
Tipo
5k
C24/
C40
Función
C56/
C72
C14/
C16
K--32768 a K32767 (para operar con 16-bits)
K--2147483648 a K2147483647 (para operar con 32-bits)
H0 a HFFFF (para operar con 16-bits)
H0 a HFFFFFFFF (para operar con 32-bits)
. Notas
D (*1): La numeración para contadores y temporizadores pueden cambiarse configurando el
D
registro especial de sistema nº 5. La numeración que se muestra en la tabla es la que
corresponde a la configuración por defecto del registro especial nº. 5. Para obtener más detalles,
lea el punto 7.4 ”Tabla de Registros del Sistema”.
(*2): Existen dos tipos: el tipo de retención que almacena las condiciones que existen justo
antes de apagar el equipo o cambiar de modo RUN a PROG, y el tipo de no retención que los
resetea. Para el FP0, esta división es fija y se han asignado los valores mostrados debajo.
Item
FP0
C10R/C14R/C16
Contadores
Tipo sin
retención
Tipo con
retención
Tipo sin
retención
Tipo con
retención
Tipo sin
retención
Tipo con
retención
Relés
internos
Registros de
datos
Item
Cont. /
temporiz.
De retención
(*1)
De no retención
Sin retención
Relés
internos
(*2)
De no
retención
Registros de datos (*3)
(Todos de retención)
C32
Todos los puntos son sin retención
Temporizadores
Desde el primer contador hasta el
C139
Desde el primer contador hasta el C127
4 puntos (valores actuales)
(C140 hasta C143)
16 puntos (valores actuales)
(C128 hasta C143)
976 puntos (R0 hasta R60F)
61 palabras (WR0 hasta WR60)
880 puntos (R0 hasta R54F)
55 palabras (WR0 hasta WR54)
32 puntos (R610 hasta R62F)
2 palabras (WR61 hasta WR62)
128 puntos (R550 hasta R62F)
8 palabras (WR55 hasta WR62)
1652 palabras
(DT0 hasta DT1651)
6112 palabras
(DT0 hasta DT6111)
8 palabras
(DT1652 hasta DT1659)
32 palabras
(DT6112 hasta DT6143)
FP--M
Tipo 2.7 k
FP1
Tipo 5 k
C56/C72
C24/C40
Desde el contador 100 hasta 143
C14/C16
Desde el contador 100
al 127
Desde el primer temporizador hasta el 99
160 puntos (R0 hasta R9F)
10 palabras (WR0 hasta WR9)
1008 puntos (R100 hasta R15F)
63 palabras (WR10 hasta WR62)
1660 palabras
(DT0 hasta
DT1659)
6144 palabras
(DT0 hasta DT6143)
1660 palabras
(DT0 hasta
DT1659)
R160 puntos (0 hasta
R9F) 10 palabras
(WR0 hasta WR9)
96 puntos (R610 hasta R62F) 6 palabras
(WR10 hasta WR15)
256 palabras
(DT0 hasta DT255)
Tanto el área de temporizadores/contadores como el de relés internos y registros de datos podemos configurarlas
como de retención o de no retención (la configuración de la tabla es la configuración por defecto):
(*1):configurando el registro especial 6. (*2):configurando el registro especial 7. (*3):configurando el registro especial 8.
7 -- 11
Apéndice
FP0/FP1/FPM
7.3 Contactos, áreas de memoria y constantes
7.3.1
Numeración de contactos
Entradas externas (X), Salidas externas (Y) y Relés internos (R)
Debido a que las entradas externas, salidas externas y relés internos se manejan en
unidades de 16 puntos, su numeración se expresa como una combinación de
numeración decimal y hexadecimal tal como se muestra debajo.
<Ejemplo> Salida externa ”X”
X
X 0, X 1 . . . . . . . . . . . . . . . . . . . . .X F
X 10, X 11 . . . . . . . . . . . . . . . . . . . . .X 1F
X 20, X 21 . . . . . . . . . . . . . . . . . . . . .X 2F
Decimal
1, 2, 3,...
Hexadecimal
0, 1, 2, 3,...,A, B, ..., F
Temporizadores (T) y Contadores (C)
Las direcciones para temporizadores y contadores se expresan mediante numeración
decimal como se muestra a continuación.
<Ejemplo> Contacto de temporizador
T
Decimal
0, 1, 2, ..., 99
T0, T1 . . . . . . . . . . . . . . . . . . . . . . . . . . .T 99
C100, C101 . . . . . . . . . . . . . . . . . . . . . . .C143
. Nota
Debido a que las direcciones para temporizadores (T) y contadores (C)
corresponden a los números de las instrucciones TM y CT, si el número
de contadores y temporizadores se modifica en el registro especial de
sistema nº 5, las direcciones de los temporizadores/contadores también
lo hacen.
Entradas externas (X) y Salidas externas (Y)
Sólo las entradas cuyo número aparece en las entradas físicas pueden utilizarse como
entradas externas.
Sólo las salidas cuyo número aparece en las salidas físicas pueden utilizarse como
salidas externas.
La configuración de entradas/salidas depende de la combinación de unidades
empleadas (configuración hardware). Para más detalles consulte la sección ”7.2 Tabla
de configuración de E/S”
7 -- 12
FP0/FP1/FPM
Apéndice
7.3 Contactos, áreas de memoria y constantes
Temporizadores/Contadores
El número de temporizadores y contadores se puede modificar en el registro especial
de sistema nº 5. El número total de contadores/temporizadores no se puede variar, sólo
su distribución.
Puede consultar la sección ”7.4 Configuración de los registros del sistema” para
obtener más información.
Relación entre WX, WY y WR con X, Y y R
WX, WY y WR corresponden respectivamente a grupos de 16 entradas externas (X),
16 salidas externas (Y) y 16 relés internos (R).
<Ejemplo> Palabra de entrada externa (WX)
Cada palabra de entrada externa se compone de 16 entradas externas (X) tal como
se muestra debajo.
XFXE XDXCXB XA X9 X8 X7 X6 X5 X4 X3 X2 X1 X0
WX0
X1F X1E
X11 X10
WX1
Al cambiar el estado de una entrada externa (X), el contenido de WX también lo hace.
7 -- 13
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
7.4
7.4.1
Tabla de registros especiales de sistema
Registros especiales de sistema
Zona de memoria de los registros especiales de sistema
Los registros especiales de sistema configuran el sistema y las funciones especiales.
Sólo es necesario configurar los registros especiales de sistema que influyan en el
programa a utilizar.
Tipos de registros especiales de sistema
D Configuración de temporizadores y contadores (Registro
especial de sistema No.5)
El número de contadores y temporizadores se configura
especificando el número del primer contador.
D Asignación de operaciones cuando ocurre un error
(Registros especiales de sistema No.20, 23 y 26)
Utilizados para configurar el modo de operación cuando se
produce un error de operación, de verificación de E/S o
aparece una salida duplicada en el programa.
D Asignación de tiempos de proceso (Registros especiales
de sistema No.31 y 34)
Fijan el tiempo de scan y el tiempo de espera en una
comunicación de enlace a ordenador.
D Asignación de modos de entrada (Registros especiales
de sistema No.400 a 403)
Permite fijar las entradas, tal como las del contador de alta
velocidad, capturas de pulsos e interrupcciones u otras
entradas especiales.
D Configuración del puerto de pogramación (Registros
especiales de sistema No.410, 411 y 414)
Configuran los parámetros del puerto cuando se utiliza el
modo “enlace a ordenador”.
D Configuración del puerto RS232C (Registros especiales
de sistema No.412 a 418)
Sólo sonefectivos en aquellos autómatas con puerto
RS232C adicional.
D Configuración de la conexión a módem (Registros
especiales de sistema No.411)
Se debe configurar conexión a módem cuando el puerto de
programación se utilice para una comunicación vía módem.
7 -- 14
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Comprobación y modificación de las configuraciones de los registros
especiales de sistema
Los valores de los registros de sistema pueden configurarse con constantes decimales
(K) o hexadecimales (H).
No es necesario configurar de nuevo el registro de sistema si al leer el registro especial
de sistema aparece el valor que se desea configurar.
Si se utiliza el software NPST-GR Ver. 4
Procedimiento:
1.
Poner la unidad de control en modo PROG.
2.
En el menú de PLC CONFIGURATION seleccionar “1.
SYSTEM REGISTER”.
3.
Elegir la función que se va a configurar en “1.
SYSTEM REGISTER” en la pantalla de “PLC
CONFIGURATION”. Aparecerá el valor configurado
en el registro especial de sistema seleccionado.
4.
Para cambiar el valor de un registro especial de
sistema se debe escribir el nuevo valor en el registro
como se indica en la tabla de registros especiales de
sistema.
5.
Después de configurar el registro, presionar <F1> y
teclear <Y> key para grabar las configuraciones en la
unidad de control.
Si se utiliza el FPSOFT
Consultar en el “13.2 PLC Configuration” en el manual del FPSOFT.
Si se utiliza la consola de programación FP programmer II Ver.2
Procedimiento:
1.
Poner la unidad de control en modo PROG..
2.
Presionar las teclas de la consola FP programmer II
Ver.2, que aparecen a continuación.
ACLR
3.
(--)
OP
5
Especificar el número del registro especial de
sistema (ej. No.20) que se desea leer.
Se mostrará el valor del registro especial de sistema
seleccionado.
2
4.
0
0
ENT
READ
Para cambiar el valor de un registro especial de
sistema, presionar <CLR (clear)> y escribir el nuevo
valor como se indica en la tabla de registros
especiales de sistema.
7 -- 15
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
. Notas
D Los nuevos valores de los registros especiales de sistema
son efectivos desde el momento en el que se configuran,
excepto los que hacen referencia a la configuración de
entradas, al puerto de programación, al puerto RS232C y al
módem; en estos casos el valor de los registros especiales de
sistema se hace efectivo cuando se pasa se PROG. a RUN o
cuando se enciende el autómata. Cuando se configura la
conexión a módem,al encender alimentación o pasar el
autómata de PROG. a RUN el autómata envía un comando al
módem para habilitar la recepción.
D Cuando se inicializa el autómata, se inicializan los registros
de sistema.
7.4.2
Configuración de los registros de sistema
Configuraci ón de los temporizadores y contadores (registro especial de
sistema No. 5)
Indicando el número del primer contador, los temporizadores y contadores se dividen
en dos áreas. El número total de temporizadores y contadores es de 144 puntos salvo
los FP1 C14 y C16 que es 128. El valor por defecto de la división es 100. La numeración
por defecto de temporizadores y contadores sería la siguiente.
FP1
FP0
FP--M
Temporizadores
C14, C16
100 puntos (No. 0 a No. 99)
Contadores
44 puntos (No. 100 a No. 143)
28 puntos (No. 100 a No. 127)
MIN (0): Todos contadores
0
Temporizador
Valor
preseleccionado: n
Valor preseleccionado < n
Aumenta el valor de contadores
Valor por defecto n = 100
Contador
144
7 -- 16
C24, C40, C56, C72
Valor preseleccionado > n
Aumenta el número de
temporizadores
MAX (144): Todos temporizadores
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Áreas de retención y de no retención
Item
FP0
C10R/C14R/C16
Contadores
Tipo sin
retención
Tipo con
retención
Tipo sin
retención
Tipo con
retención
Tipo sin
retención
Tipo con
retención
Relés
internos
Registros de
datos
Item
Cont. /
temporiz.
De retención
(*1)
De no retención
Sin retención
Relés
internos
(*2)
De no
retención
Registros de datos (*3)
(todos de retención)
C32
Todos los puntos son sin retención
Temporizadores
Desde el primer contador hasta el
C139
Desde el primer contador hasta el C127
4 puntos (valores actuales)
(C140 hasta C143)
16 puntos (valores actuales)
(C128 hasta C143)
976 puntos (R0 hasta R60F)
61 palabras (WR0 hasta WR60)
880 puntos (R0 hasta R54F)
55 palabras (WR0 hasta WR54)
32 puntos (R610 hasta R62F)
2 palabras (WR61 hasta WR62)
128 puntos (R550 hasta R62F)
8 palabras (WR55 hasta WR62)
1652 palabras
(DT0 hasta DT1651)
6112 palabras
(DT0 hasta DT6111)
8 palabras
(DT1652 hasta DT1659)
32 palabras
(DT6112 hasta DT6143)
FP--M
Tipo 2.7 k
FP1
Tipo 5 k
C56/C72
C24/C40
Desde el contador 100 hasta 143
C14/C16
Desde el contador 100
al 127
Desde el primer temporizador hasta el 99
160 puntos (R0 hasta R9F)
10 palabras (WR0 hasta WR9)
1008 puntos (R100 hasta R15F)
63 palabras (WR10 hasta WR62)
1660 palabras
(DT0 hasta
DT1659)
6144 palabras
(DT0 hasta DT6143)
1660 palabras
(DT0 hasta
DT1659)
R160 puntos (0 hasta
R9F) 10 palabras
(WR0 hasta WR9)
96 puntos (R610 hasta R62F) 6 palabras
(WR10 hasta WR15)
256 palabras
(DT0 hasta DT255)
Tanto el área de temporizadores/contadores como el de relés internos y registros de
datos podemos configurarlas como de retención o de no retención (la configuración de
la tabla es la configuración por defecto):
(*1):configurando el registro especial 6.
(*2):configurando el registro especial 7.
(*3):configurando el registro especial 8.
7 -- 17
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
7.4.3
Tabla de registros especiales de sistema
Dirección
Nombre
Valor por
defecto
Descripción
Tamaño de
memoria
0
Capacidad de
programa
K1:900 pasos La capacidad del programa se determina automáticamente
K3:2720 pasos de acuerdo al tipo de autómata programable. El valor de
K5:5000 pasos este registro es fijo.
Retención
ON/OFF
5
Dirección de
comienzo de los
contadores
K100
Especifica el número de comienzo de las instrucciones de
contador.
Ver página 7 -- 16.
6
Comienzo de las
áreas de
retención en
contadores y
temporizadores
K100
Especifica el número de comienzo del área de retención
de temporizadores y temporizadores.
7
Comienzo de
relés internos
de retención
K10
Especifica el número de comienzo del área de retención
de relés internos.
Ver página 7 -- 15.
8
Comienzo de los
de registros de
datos de
retención
K0
Especifica el número de comienzo del área de retención
de los registros de datos. (Sólo FP1 / FP--M).
14
Retención
ON/OFF en las
áreas paso a
paso
K1
Retención ON/OFF en las áreas paso a paso.
No afecta al FP0.
K0: retención
K1: no retención
20
Actuación ante
el uso duplicado
de una salida
K0
K0: deshabilitado (se producirá un error de sintaxis)
K1: habilitado (no se producirá un error de sintaxis)
23
Actuación ante
un error de
verificación de
E/S
K0
K0: FP0 detiene la ejecución si se produce este error
K1: FP0 continúa la ejecución si se produce este error
(Ver nota)
No afecta al FP--M / FP1
26
Actuación ante
un error de
operación
K0
K0: FP0 detiene la ejecución si se produce este error
K1: FP0 continúa la ejecución si se produce este error
(Ver nota)
No afecta al FP--M / FP1
4(1)
Operación sin
batería de
mantenimiento
Ver página 7 -- 15.
Ver página 7 -- 15.
Actuación
ante un
error
K0
En el FP--M / FP1, advierte si la batería tiene
un nivel bajo de tensión o está desconectada.
En el FP0 el valor de este registro no influye.
K0: el nivel bajo de tensión se considera error
K1: el nivel bajo de tensión no se considera
error
(1) Disponible para :
FP0, FP1 C24, C40, C56 y C72 versión 2.7 o posterior (Todos los FP1 C24, C40, C56 y C72 con
el sufijo B en su número de serie y todos los FP--M’s
. Nota
Para configurar el registro especial de sistema 23 se debe
utiliizar NPST--GR Ver.4 o posterior o FPSOFT Ver.1 o NAiS
Control.
7 -- 19
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Dirección
Time out
31
Nombre
Valor de tiempo de espera
para comunicaciones
multicuadro
Valor por
defecto
Descripción
K2600 K4 a K32760: 10 ms a 81.9 s
(6500 ms) La fórmula para calcular el tiempo de espera
es:
valor de preselección 2.5 ms
Con el software de
programación, se debe
introducir el tiempo (un
número divisble entre 2.5).
Con FP Programmer II Ver.2,
se debe introducir el valor de
preselección (Igual al tiempo
dividido entre 2.5).
34
Valor de la constante de
tiempo de scan
K0
K1 a K64 (2.5 ms a 160 ms): Se realiza un
scan cada intervalo de tiempo.
K0: Scan normal
La formula para calcular el tiempo de scan es:
valor de preselección 2.5 ms
Con el software de
programación, se debe
introducir el tiempo (un
número divisble entre 2.5).
Con FP Programmer II Ver.2,
se debe introducir el valor de
preselección (Igual al tiempo
dividido entre 2.5).
7 -- 20
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
Configu
ración de
entradas
400
400 (1)
Nombre
Valor del modo
contador de
alta velocidad
(X0 a X2)
Valor del modo
contador de
alta velocidad
Valor por
defecto
Descripción
CH0
(FP0)
H0: La entrada X0 no se configura como entrada del contador de alta
velocidad
H1: entrada en dos fases (X0, X1)
H2: entrada en dos fases (X0, X1),
Entrada de reset (X2)
H3: Entrada incremental (X0)
H4: Entrada incremental (X0),
entrada de reset (X2)
H5: Entrada decremental (X0)
H6: Entrada decremental (X0),
Entrada de reset (X2)
H7: Entrada individual (X0, X1)
H8: Entrada individual (X0, X1),
Entrada de reset (X2)
H9: Modo direccional (X0, X1)
HA: Modo direccional (X0, X1),
Entrada de reset (X2)
CH1
(FP0)
H0: La entrada X1 no se configura como entrada del contador de alta
velocidad
H3: Entrada incremental (X1)
H4: Entrada incrementa(X1),
entrada de reset (X2)
H5: Entrada decremental(X1)
H6: Entrada decremental (X1),
Entrada de reset (X2)
H0
(FP1 /
FP--M)
H0: La entrada X0 no se configura como entrada del
contador de alta velocidad
H1: entrada en dos fases (X0, X1)
H2: entrada en dos fases (X0, X1), entrada de reset
(X2)
H3: entrada incremental (X0)
H4: entrada incremental (X0), entrada de reset (X2)
H5: entrada decremental (X1)
H6: entrada decremental (X1), entrada de reset (X2)
H7: entrada incremental decremental (X0 incremental,
X1 decremental)
H8: entrada individual (X0, X1), entrada de reset (X2)
H0: No se conectan internamente la entrada Xn con la
salida Yn
H1: Se conectan internamente la entrada Xn con la
salida Yn
H
0
0
Si se utiliza un FP--M o FP1 C56 o C72 con salida a transistor, la
salidas de pulsos Y6 e Y7 pueden conectase internamente con X
y X1
La conexión interna sólo es posible en el FP--M y en el FP1 C5
y C72
Si X0 y X1 se utilizan como entradas de pulsos no se puede
utilizar para otros funciones
Valor
de
preselección
H107
H108
Modo de operación
Y7 internamente conectada a X0 (entrada
decremental)
Y6 internamente conectada a X1 (entrada
decremental)
X2 no se usa como entrada del contador de
alta velocidad
Y7 internamente conectada a X0 (entrada
decremental)
Y6 internamente conectada a X1 (entrada
decremental)
X2 entrada de reset
La prioridad de los registros 400, 402, 403 y 404 coincide con orden el que han sido
enunciados.
7 -- 21
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
Nombre
400
(FP0)
Valor del modo contador de
alta velocidad (X0 a X2)
Valor por
defecto
CH0/
CH1
(FP0)
Descripción
H 0
0
H0: La entrada X0 no se
configura como
entrada del contador
de alta velocidad
H1: entrada en dos fases
(X0, X1)
H2: entrada en dos fases
(X0, X1),
Entrada de reset (X2)
H3: entrada incremental
(X0)
H4: Entrada incremental
(X0), entrada de reset
(X2)
H5: entrada decremental
(X0)
H6: Entrada decremental
(X0), entrada de reset
(X2)
H7: entrada individual
(X0, X1)
H8: entrada individual
(X0, X1), entrada de
reset (X2)
H9: modo direccional
(X0, X1)
HA: Modo direccional
(X0, X1), entrada de
reset (X2)
H0: La entrada X1 no se
configura como
entrada del contador
de alta velocidad
H3: entrada incremntal
(X1)
H4: entrada incremental
(X1), entrada de reset
(X2)
H5: entrada decremental
(X1)
H6: entrada decremental
(X1), entrada de reset
(X2)
. Nota
Para configurar el registro especial de sistema 400 se debe
utilizar NPST--GR Ver.4 o posterior, FPSOFT o NAiS Control.
7 -- 22
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
Nombre
401
Valor del modo contador de
alta velocidad (X3 a X5)
Valor por
defecto
Descripción
CH2
(FP0)
H0: La entrada X1 no se configura como
entrada del contador de alta velocidad
H1: entrada en dos fases (X3, X4)
H2: entrada en dos fases (X3, X4),
Entrada de reset (X5)
H3: Entrada incremental (X3)
H4: Entrada incremental (X3),
entrada de reset (X5)
H5: Entrada decremental (X3)
H6: Entrada decremental (X3),
Entrada de reset (X5)
H7: Entrada individual (X3, X4)
H8: Entrada individual (X3, X4),
Entrada de reset (X5)
H9: Modo direccional (X3, X4)
HA: Modo direccional (X3, X4),
Entrada de reset (X5)
CH3
(FP0)
H0: La entrada X4 no se configura como
entrada del contador de alta velocidad
H3: Entrada incremental (X4)
H4: Entrada incrementa(X4),
Entrada de reset (X5)
H5: Entrada decremental(X4)
H6: Entrada decremental (X4),
Entrada de reset (X5)
. Nota
Para configurar el registro especial de sistema 401 se debe
utilizar NPST--GR Ver.4 o posterior, FPSOFT o NAiS Control.
7 -- 23
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
Nombre
401
Valor del modo contador de
alta velocidad (X3 a X5)
Valor por
defecto
CH2/
CH3
Descripción
H 0
0
H0: La entrada X3 no se
configura como
entrada del contador
de alta velocidad
H1: entrada en dos fases
(X3, X4)
H2: entrada en dos fases
(X3, X4),
Entrada de reset (X5)
H3: entrada incremental
(X3)
H4: Entrada incremental
(X3), entrada de reset
(X5)
H5: entrada decremental
(X3)
H6: Entrada decremental
(X3), entrada de reset
(X5)
H7: entrada individual
(X3, X4)
H8: entrada individual
(X3, X4), entrada de
reset (X5)
H9: modo direccional
(X3, X4)
HA: Modo direccional
(X3, X4), entrada de
reset (X5)
H0: La entrada X4 no se
configura como
entrada del contador
de alta velocidad
H3: entrada incremntal
(X4)
H4: entrada incremental
(X4), entrada de reset
(X5)
H5: entrada decremental
(X4)
H6: entrada decremental
(X4), entrada de reset
(X5)
. Nota
Para configurar el registro especial de sistema 401 se debe
utilizar NPST--GR Ver.4 o posterior, FPSOFT o NAiS Control.
7 -- 24
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
402
Nombre
Captura de
pulsos
Valor por
defecto
H0
Descripción
X5 X4 X3 X2 X1 X0 0: Modo normal de entrada
0 0 0 0 0 0 1: Modo de captura de pulso
Con la consola de programación FP Programmer II Ver.2,
se deben introducir los valores en hexadecimal.
<Ejemplo >
Si se utilizan las entradas X3 y X4 en modo de captura de
pulsos: 15
0
00011000
No.402:
X7 X6 X5 X4 X3 X2 X1 X0
H1
H8
Entrada H18
FP0: X6 y X7 no se utilizan.
FP1 C14/C16: se utilizan 4 entradas de X0 a y X3 (H0 a HF
FP--M y FP1 C24 / C40 / C56 y C72: se utilizan 8 entradas
de X0 a X7 (H0 a HFF)
403
Interrupciones
H0
Utilizando un software de programación
X5 X4 X3 X2 X1 X0 Especificar las entradas de
interrupción en el byte de menor
peso
Especificar el flanco que activa la
XDXC XB XAX9 X8
interrupción en el byte de mayor
peso (Sólo en el FP0)
Utilizando la consola FP Programmer II
FP0: seis entradas de X0 a X5.
FP1 C14/C16: No disponibles
FP--M y FP1 C24 / C40 / C56 y C72: se utilizan 8 entradas
de X0 a X7 (H0 a HFF)
<Ejemplo>
Configurar las entradas X0 y X1 como entradas de
interrupción de ON--a--OFF
15
0
No.403:
000011
000011
X5 X4 X3 X2 X1 X0
H0
H3
X5 X4 X3 X2 X1 X0
H0
H3
H303
7 -- 25
FP0/FP1/FPM
Apéndice
7.4 Tabla de registros especiales de sistema
Dirección
Configu
ración de
entradas
404
Nombre
Configuración
de los retardos
de entrada (X0
a X1F) No
válido para el
FP0
Valor por
defecto
H1111
406
407
Existen 8 retardos diferentes:
H1: 2 ms
H2: 4 ms
H4: 16 ms H5: 32 ms
H6: 64 ms
todas 2 ms H0: 1 ms
H3: 8 ms
H7: 128 ms
Configuración de los registros especiales de sistema nº
404, 405, 406 y 407:
Nº 404
Sólo FP1
/ FP--M
405
Descripción
Configuración
H1111
de los retardos
de entrada (X20 todas 2 ms
a X3F) No
válido para el
FP0
Nº 405
Configuración
H1111
de los retardos
de entrada (X40 todas 2 ms
a X5F) No
válido para el
FP0
Nº 406
X0 a X7
X8 a XF
X0 a X7
X18 a X1F
Unidad de
control del
FP--M / FP1
1
X20 a X27
Fijo
X30 a X37
X38 a X3F
1º expansión
de FP1
1
X40 a X47
Fijo
X50 a X57
X58 a X5F
Configuración
H0011
de los retardos
de entrada (X60 todas 2 ms
Nº 407
a X6F) No
válido para el
00 1
FP0
2º expansión
de FP1
X60 a X67
Puerto de
programa
ción
410
Valor del
número de
estación para el
puerto de
programación
K1
411
Valor del formato
de comunicación y
módem (1) para el
puerto de
programación
H0
412
Modo de
comunicación
del puerto
RS232C
15
6
0
Comunicaión por módem
0: deshabilitada
1:habilitada
Formato de comunicación (bits por carácter)
0: 8 bits
1: 7 bits
Cuando se conecte a un módem, se debe configurar un 1
en el registro especial de sistema No. 410.
Valor por defecto
Comunicación
por módem:
deshabilitado
Formato de
comunicación
(Bits por
carácter): 8 bits
Configura
ción del
puerto
RS232C
K1 a K32 (Unidad No. 1 a 32)
K0
K0: El puerto RS232C no se utiliza
K1: el puerto RS232Cse utiliza en
modo enlace a ordenador
K2 el puerto RS232C se utiliza en
modo general
(1) Disponible para :FP0, FP1 C24, C40, C56 y C72 versión 2.7 o posterior (Todos los FP1 C24,
C40, C56 y C72 con el sufijo B en su número de serie y todos los FP--M’s
7 -- 26
Apéndice
FP0/FP1/FPM
7.4 Tabla de registros especiales de sistema
Dirección
Configura
ción del
puerto
RS232C
413
Nombre
Formato de los datos a
transmitir por el puerto
RS232C
Valor por
defecto
H3
Descripción
Cabecera (Bit 6)
0: sin STX
1: con STX
Final de trama ( bit 4 y 5)
00: CR
01: CR+LF
10: CR
11: EXT
Bit de parada (bit 3)
0: 1 bit.
1: 2 bits
Paridad (bit 2 y 1)
00: ninguna
01: impar
10: ninguna
11: par
Caracteres (bit 0)
0: 7 bits
1: 8 bits
Configura
ción del
puerto
RS232C
414
Velocidad de transmisión
K1
415
Valor del número de estación
para el puerto RS232C
K1
416
Comunicación vía módem a
través del puerto RS232C (1)
H0
417
Dirección de inicio de los
datos recibidos por el puerto
RS232C
K0
K0: 19.200 bps K1: 9.600 bps K2: 4.800
bps
K3: 2.400 bps K4: 1.200 bps K5: 600 bps
K6: 300 bps
K1 a K32 (Unidad No. 1 a 32)
Comunicación por módem
H0000: deshabilitada
H8000:habilitada
Este registro indica la dirección de
comienzo del buffer de entrada donde
se almacenarán los datos recibidos
por el puerto RS232C
Configuración:
FP--M versión C 2.7k
C24C/C40C: K0 a K1660
y
FP1
FP--M versión C 5k y FP1 C56C /
C72C: K0 a K6144
418
Capacidad del buffer de
recepción
K1660
Este registro indica el número de
palabras a utilizar como buffer de
entrada
Configuración:
FP--M versión C 2.7k
C24C/C40C: K0 a K1660
y
FP1
FP--M versión C 5k y FP1 C56C /
C72C: K0 a K6144
(1) Disponible en: FP0 versión C, FP1 C24C, C40C, C56C y C72C versión 2.7 o posterior y
todos los FP--M’s vesión C.
7 -- 27
FP0/FP1/FPM
Apéndice
7.5 Relés internos especiales
7.5
Relés internos especiales
Los relés internos especiales pasan a ON o a OFF cuando se cumplen ciertas condiciones. No
son salidas externas. No es posible modificarlos con nigún software ni con ninguna instrucción.
Disponibilidad
Dirección
Nombre
Descripción
R9000
Bandera de
error de
autodiagnóstico
Se pone a ON cuando sucede un error de
autodiagnóstico. El código de error de
autodiagnóstico se almacena en el DT9000. Ver en
7.7 los códigos de error.
R9004
Bandera de
error de
verificación de
E/S
Se pone a ON cuando sucede un error de
verificación de E/S. El número de la E/S donde se
produce el error se almacena.
FP1
FP0
C14
C16
C24
C40
C56
C72
A
A
N
R9005
Bandera de error Pasa a ON durante un instante cuando ocurre un
error de batería
de batería
N
A
R9006
Bandera de error Pasa a ON durante un instante y mantiene ese estado
de batería (de re- cuando ocurre un error de batería
tención)
N
A
R9007
R9008
R9009
R900A
R900B
R900C
R900D
Bandera de
error de
operación
(retención)
Se pone a ON, y se mantiene este estado, cuando
ocurre un error de operación. La dirección de error
se almacena en DT9017 (almacena el primer error
de operación que ocurre).
A
Bandera de
error de
operación ( De
no retención)
Se pone a ON durante un instante cuando ocurre un
error de operación. La dirección de error se
almacena en DT9018. El contenido cambia cada vez
que se produce un nuevo error.
A
Bandera de
acarreo
Se pone a ON durante un instante, cuando:
-- se genera desbordamiento.
-- una instrucción de desplazamiento lo pone a “1”.
A
Bandera >
Se pone a ON, durante un instante, cuando, en el
resultado de una comparación es mayor que.
Instrucciones (F60 a F63).
A
Se pone a ON, durante un instante, cuando el
resultado de una comparación es igual.
Instrucciones (F60 a F63).
Pasa a ON durane un instante, cuando el resultado
de instrucción de alto nivel es 0.
A
Se pone a ON, durante un instante, cuando, en el
resultado de una comparación es menor que.
Instrucciones (F60 a F63).
A
Bandera =
Bandera <
Instrucción de
temporizador
auxiliar (F137)
Se pone a ON cuando el valor actual, al ejecutar las
instrucciones F137 o F183, llega a 0. El relé pasa a
A
OFF cuando la entrada de la instrucción pasa a
OFF.
R900E
Bandera de
error del RS422
Se pone a ON cuando sucede un error durante la
comunicación en el puerto RS422.
R900F
Bandera de
Se pone a ON cuando el ciclo scan excede el
error de ciclo de tiempo preseleccionado (registro especial de
scan constante
sistema 34).
A
R9010
Relé de siempre
a ON
Siempre a ON.
A
R9011
Relé de siempre
a OFF
Siempre a OFF.
A :disponible
FP--M
N
A
A
A
N: no disponible
7 -- 28
Apéndice
FP0/FP1/FPM
7.5 Relés internos especiales
Disponibilidad
Dirección
Nombre
Descripción
FP1
FP0
C14
C16
C24
C40
R9012
Relé de pulso de Alterna ON / OFF en cada ciclo de scan.
scan
A
R9013
Relé de ON
inicial
Permanece a ON durante el primer cilco de scan, el
resto de tiempo está a OFF.
A
R9014
Relé de OFF
inicial
Permanece a ON durante el primer cilco de scan, el
resto de tiempo está a OFF.
A
R9015
Relé de ON
Se pone a ON durante un instante en el primer ciclo
inicial en los
de scan en el que se ejecuta el proceso paso a
procesos paso a paso.
paso
A
R9018
Relé de pulso de Alterna ON/OFF en ciclos de 0.01 s.
reloj 0.01 s
(ON : OFF = 0.005 s : 0.005 s)
A
R9019
Relé de pulso de Alterna ON/OFF en ciclos de 0.02 s.
reloj 0.02 s
(ON : OFF = 0.01 s : 0.01 s)
A
R901A
Relé de pulso de Alterna ON/OFF en ciclos 0.1 s.
reloj 0.1 s
(ON : OFF = 0.05 s : 0.05 s)
A
R901B
Relé de pulso de Alterna ON/OFF en ciclos 0.2 s.
reloj 0.2 s
(ON : OFF = 0.1 s : 0.1 s)
A
R901C
Relé de pulso de Alterna ON/OFF en ciclos de 1 s.
reloj 1 s
(ON : OFF = 0.5 s : 0.5 s)
A
R901D
Relé de pulso de Alterna ON/OFF en ciclos 2 s.
reloj 2 s
(ON : OFF = 1 s : 1 s)
A
R901D
Relé de pulso de Alterna ON/OFF en ciclos 1 min.
reloj 1 min
(ON : OFF = 30 s : 30 s)
A
R9020
Bandera de
modo RUN
Permanece aON mientras el autómata está en RUN.
A
R9026
Bandera de
mensaje
Permanece a ON mientras se ejecuta la instrucción
F149 (MSG) .
R9027
Bandera de
modo remoto
Permanece a ON cuando se trabaja en modo
remoto, pudiendo conmutar entre RUN y PROG a
través de las diferentes herramientas de
programación.
A
R9029
Bandera de
forzado
Permanece a ON cuando está forzada alguna
entrada o salida
A
R902A
Bandera de
interrupción
Permanece a ON mientras la interrupciones
externas están habilitadas.
Cosultar en la instrucción ICTL .
R902B
Bandera de error Pasa a ON cuando ocurre un error de interrupción.
de interrupción
(1) Sólo versión C.
7 -- 29
A
N
C56
C72
A
A
N
A
A(1)
N
A(1)
FP--M
FP0/FP1/FPM
Apéndice
7.5 Relés internos especiales
Disponibilidad
Dirección
R9032
R9033
R9036
R9037
R9038
R9039
R903A
R903B
R903C
R903D
Nombre
Descripción
Bandera
de
selcción
del
puerto RS232C
Permanece a ON mientras el puerto RS232 está
trabajando en modo general.
Bandera de
envío a
impresora
activada
OFF: No activada
ON: Activada
Bandera de
error
de
enlace de E/S
Se pone a ON cuando ocurre un error de enlace de
E/S
FP1
FP0
C14
C16
A
N
A
A
N
A
C24
C40
N
FP--M
C56
C72
A
Bandera de error Se pone a ON cuando ocurre un error en el puerto
del puerto
RS232C
A
RS232C
N
A
Bandera de recepción del
puerto RS232C
(F144)
Pasa a ON cuando se recibe el final de trama al utilizar
la instucción F144
N
A
Bandera de envio del puerto
RS232C (F144)
Permanece a OFF cuando se está enviando información mediate la instrucción F144, a través del puertoA(1)
RS232C
N
A(1)
Bandera de
control del
contador de alta
velocidad ch0
Permanece a ON cuando se está ejecutando
algunas de las instrucciones comprendidas entre la
“F166 (HC1S) y F170 (PWM)” en el FP0 y entre la
“F162 (HC0S) y F165 (CAM0)” en el FP1 / FP--M.
Bandera de
control del
contador de alta
velocidad ch1
(en el FP0) /
Bandera de
control Cam (en
el FP1 / FP--M)
Permanece a ON cuando se está ejecutando
algunas de las instrucciones comprendidas entre la
“F166 (HC1S) y F170 (PWM)” en el FP0.
Bandera de
control del
contador de alta
velocidad ch2
Permanece a ON cuando se está ejecutando
algunas de las instrucciones comprendidas entre la
“F166 (HC1S) y F170 (PWM)” .
Bandera de
control del
contador de alta
velocidad ch3
Permanece a ON cuando se está ejecutando
algunas de las instrucciones comprendidas entre la
“F166 (HC1S) y F170 (PWM)” .
A
A
A
En el FP1 / FP--M Permanece a ON cuando se está
ejecutando la instrucción F165 (CAM0).
A
N
A
N
(1) Sólo versión C.
7 -- 30
Apéndice
FP0/FP1/FPM
7.6 Registros de datos especiales
7.6
Registros de datos especiales
Los registros de datos especiales son una palabra de área de memoria (16-bits) que almacenan datos
específicos. Sólo se pueden escribir los registros de datos especiales que se indican en la columna de
Descripción.
Disponibilidad
Dirección
DT9000
Nombre
Descripción
FP1
FP0
C14
C16
C24
C40
Registro de código de
error de auto
diagnóstico
El código de error de auto--diagnóstico se
almacena en DT9000 cuando ocurre un error
de este tipo. Consultar en “7.7 Tabla de
códigos de error” para la explicación de los
códigos de error de auto--diagnóstico.
DT9010
Unidad de error de E/S
Se almacena en los bits del 0 al 3 la posición
A
de la E/S en la que ha ocurrido el error.
DT9014
Registro auxiliar
El dígito hexadecimal que se pierde al
producirse un desplazamiento, instrucciones
F105 (BSR) o F106 (BSL), se
almacena en el dígito 0 ( bit del 0 al 3) del
registro DT9014.
A
Cuando se ejecutan las intrucciones F32
(%) o F52 (B%) el resto de la división se
almacenan en DT9015. Si las instrucciones
ejecutadas son F33 (D%) o F53
(DB%), de guarda los 16 bits menos
significativos del resto de la división.
A
Al ejecutar las instrucciones F33 (D%) o
F53 (DB%), de guarda los 16 bits más
significativos del resto de la división.
A
Registro de dirección
de error de operación
(retención)
La dirección del error de operación se
almacena en el registro DT9017 y se
mantiene cuando se detecta un error de este
tipo.
Comprobar el error en el DT9000.
A
Registro de dirección
de error de operación
(no retención)
La dirección del error de operación se
almacena en el registro DT9018 cuando se
detecta un error de este tipo.
Al inicio de cada ciclo de scan se pone a 0.
A
Registro de contador
2,5 ms
El registro de datos DT9019 se incrementa
en 1 cada 2.5 ms.
Se utiliza para determinar tiempos
transcurridos entre dos eventos: (valor
absoluto) 2.5 ms = Valor actual entre dos
puntos.
A
En este registro se almacena el tiempo
actual de scan.
Tiempo de scan (ms) = valor almacenado 0.1 (ms)
<Ejemplo> K50 indica 5 ms.
A
Este registro almacena el tiempo mínimo de
scan. El tiempo de scan se calcula utilizando
la fórmula:
Tiempo de scan (ms) = valor almacenado 0.1 (ms)
<Ejemplo> K50 indica 5 ms.
A
DT9015
DT9016
DT9017
DT9018
DT9019
DT9022
DT9023
Registro auxiliar
Registro auxiliar
Registro de tiempo de
scan (valor actual)
Registro de tiempo de
scan ( valor mínimo)
A :disponible
7 -- 31
N: no disponible
C56
C72
A
N
FP--M
FP0/FP1/FPM
Apéndice
7.6 Registros de datos especiales
Disponibilidad
Dirección
DT9024
DT9025
Nombre
Registro de tiempo de
scan (valor máximo)
Descripción
FP1
FP0
C14
C16
Este registro almacena el tiempo máximo
de scan.
El tiempo de scan se calcula utilizando la
fórmula:
Tiempo de scan (ms) = valor almacenado
0.1 (ms)
<Ejemplo>
K125 indica 12.5 ms.
C24
C40
C56
C72
A
Registro de estado de
habilitación de
interrupción
(INT 0 a 5)
Almacena la configuración de la máscara
de interrupciones hecha con la instrucción
ICTL. Se puede monitorizar la máscara de
interrupción. Se evalúa según el estado de
cada bit :
0: interrupción no habilitada
1: interrupción habilitada.
A
N
A
Registro de tiempo de
intervalo de
interrupción
(INT 24)
El intervalo del tiempo de interrupción se
almacena en DT9027.
A
K0: No usadda.
K1 a K3000: 10 ms a 30 ms (Si la unidad de
configuración es 10ms)
N
A
DT9030
Registro de mensaje 0
N
A
Registro de mensaje 1
El mensaje especificado se almacena en
los registros cuando se ejecuta la
instrucción F149 (MSG).
A
DT9031
A
N
A
DT9032
Registro de mensaje 2
A
N
A
DT9033
Registro de mensaje 3
A
N
A
DT9034
Registro de mensaje 4
A
N
A
DT9035
Registro de mensaje 5
A
N
A
DT9037
Registro de trabajo 1
Almacena el número de datos encontrados
(para la instrucción F96) cuando se ejecuta la instrucción F96
(SRC).
A
Registro de trabajo 2
Almacena la posición del primer dato
(para la instrucción F96) encontrado (contando desde la primera
posición de 16 bits) cuando se ejecuta la
instrucción F96 (SRC).
La dirección almacenada se cuenta desde
la dirección de comienzo del registro
almacenado en S2.
A
DT9027
DT9038
DT9040
Valores de los potenciómetros (V0, V1, V2
y V3), se almacenan como sigue:
FP1 C24 y FP--M: V0 en DT9040
FP1 C40 C56 y C72: V0 en DT9040
V1 en DT9041
DT9043
V2 en DT9042
V3 en DT9043
DT9046
DT9047
A
N
N
A
N
N
A
A
N
N
N
A
A
N
V1 en DT9041
DT9042
DT9045
N
FP1 C14 y C16: V0 en DT9040
DT9041
DT9044
FP--M
Valor
actual del
(C.A.V.)
Valor de
preselección
del C.A.V.
ch0
ch0
Los 16 bits más bajos del valor actual del
contador de alta velocidad se almacenan en el
DT9044. Los 16 bits de mayor peso se
almacenan en el DT9045. El valor se puede
escribir ejecutando la instrucción DMV (F1) .
Los 16 bits de mayor peso del valor de
preselección del contador de alta velocidadse
almacenan en el DT9046. Los 16 bits de mayor
peso se almacenan en el DT9047.
A
A
A
A
7 -- 32
Apéndice
FP0/FP1/FPM
7.6 Registros de datos especiales
Disponibilidad
Dirección
DT9048
DT9049
DT9050
DT9051
DT9052
Nombre
FP1
Descripción
Valor actual
del contador
de alta
velocidad
(C.A.V.)
ch1
Valor de
preselección
del C.A.V.
ch1
FP0
Los 16 bits más bajos del valor actual del
contador de alta velocidad se almacenan en
el DT9048. Los 16 bits de mayor peso se
almacenan en el DT9049.El valor se puede
escribir ejecutando la instrucción DMV (F1) .
C14
C16
C24
C40
A
N
A
N
Los 16 bits de mayor peso del valor de
preselección del contador de alta velocidadse A
almacenan en el DT9050. Lo s 16 bits de
mayor peso se almacenan en el DT9051.
A
N
N
Registro de control del Mediante la instrucción MV (F0), se puede
contador de alta
escribir un valor que resetea el contador de
velocidad
alta velocidad, deshabilita el conteo, detiene
las instrucciones de contador de alta
velocidad (F166 a F170), y borra el
contenido de dicho contador.
Configuración del código de control:
Bit 0: Reset por software
0: Si / 1: No
Bit 1: Contador
0: Habilitado / 1: Deshabilitado
Bit 2: Reset por hardware
0: Habilitado / 1: Deshabilitado
Bit 3: Contador de alta velocidad
0: Continuar / 1: Borrar
<Ejemplo>
Reset por software: H1 (0001)
Deshabilitación del contador: H2 (0010)
Parada de la salida de pulsos (borrado de
la instrucción): H8 (1000)
Parada de la salida de pulsos y reseteo
del valor actual:
H9 (1001)
Los 16 bits del registro DT9052 se
agrupan en4 grupos de 4 bits para los 4
canales del contador de alta velocidad.
(Sólo FP0)
DT9052
bit 15
12 11
para ch3
8 7
4 3
para ch2 para ch1 para ch0
Un reset por hardware sólo es efectivo
cuando se utilizan las entradas de reset
(X2 y X5). En cualquier otro caso se
ignora.
Cuando se utiliza la salida de pulsos, una
entrada de reset por hardware es
equivalente a una entrada de proximidad
al origen.
7 -- 33
0
C56
C72
A
FP--M
FP0/FP1/FPM
Apéndice
7.6 Registros de datos especiales
Dirección
DT9053
(FP1/FP--M)
DT90053
(FP0)
Nombre
Descripción
Disponibilidad
FP0
FP1
FP--M
Registro de monitorización Las horas y minutos del calendario / reloj se almadel calendario/reloj
cenan en esta registro. Este registro se utiliza para
monitorizar.Los datos se almacenan en BCD:
A(1)
8 bits de mayor peso: horas (H00 a H23)
8 bits de menor peso : minutos (H00 a H 59)
DT9054
(FP1/FP--M)
DT90054
(FP0)
Registro de monitorización
y onfiguración del calendario/reloj (minutos/segundos)
DT9055
(FP1/FP--M)
DT90055
(FP0)
Registro de monitorización Para configurar el calendario / reloj se ujtiliza l
y configuración del calen- instrucción F0 (MV)
dario/reloj (días/horas)
Los datos se expresan en código BCD.
DT9056
(FP1/FP--M)
DT90056
(FP0)
Bit 8 al bit 15
Bit 0 al bit 7
Registro de monitorización
y configuración del calen- DT9054 Minutos H00 a H59 Segundos H00 a H59
dario/reloj (año/mes)
DT9055 Días H00 a H59 Horas H00 a H23
DT9057
(FP1/FP--M)
DT90057
(FP0)
DT9056 Año H00 a H99
Mes H01 a H12
Registro de monitorización
Día de la semana H00 a H06
y configuración del calen- DT9057
dario/reloj (día de la semana)
DT9058
(FP1/FP--M)
DT90058
(FP0)
Los datos del calendario / reloj se almacenan en e
DT9054, DT 9055, DT 9056 y DT 9057.
Estos registros se utilizan para monitorizar y confi
gurar el calendario / reloj.
A(1)
Registro de monitorización El calendario/reloj se ajusta cuando el bit menos
del calendario/reloj
significativo de DT9058 pasa a 1.
-- los segundos se ponen a 0 si en el momento del
ajuste el segundero está comprendido entre 0 y 29.
--los segundos se ponen a 0 y se incrementa en 1
los minutos si en el momento del ajuste los segundos están comprendisos entre 30 y 59.
A(1)
Para realizar el ajuste el bit de mayor peso de este
registro se debe poner a 1.
DT9059
Registro de código de error El código de error del puerto RS232C se almacena
de comunicaciones.
en los 8 bits de mayor peso.
El código de error del puerto de programación se almacena en los 8 bits de menor peso.
--
N
A(1)
(1) Sólo FP0 vesión C, FP--M’s versión C y FP1’s C24C,C40C, C56C y C72C.
7 -- 34
Apéndice
FP0/FP1/FPM
7.6 Registros de datos especiales
Dirección
DT9060
DT9061
DT9062
Descripción
Monitorización Nº de
de los
proceso:
procesos paso 0 a 15
a paso
Nº de
proceso:
16 a 31
Indica el estado de la condición de activación de
cada proceso. Cuando un proceso se ejecuta , el
número de bit correspondiente al proceso que se
ejecuta pasa a ON.
Nº de
proceso:
32 a 47
DT9063
Nº de
proceso:
48 a 63
DT9064
Nº de
proceso:
64 a 79
DT9065
Nº de
proceso:
80 a 95
DT9066
Nº de
proceso:
96 a 111
DT9067
Nº de
proceso:
112 a 127
DT9080
DT9082
Valor digital de Canal 0
las entradas de
la placa de con- Canal 1
trol analógica
nº0
Canal 2
DT9083
Canal 3
DT9084
DT9086
Valor digital de Canal 0
las entradas de
la placa de con- Canal 1
trol analógica
nº1
Canal 2
DT9087
Canal 3
DT9088
DT9090
Valor digital de Canal 0
las entradas de
la placa de con- Canal 1
trol analógica
nº2
Canal 2
DT9091
Canal 3
DT9092
DT9094
Valor digital de Canal 0
las entradas de
la placa de con- Canal 1
trol analógica
nº3
Canal 2
DT9095
Canal 3
DT9081
DT9085
DT9089
DT9093
7 -- 35
Disponibilidad
Nombre
<Ejemplo>
FP0
15
11
7
DT9060
0 (Bit No.)
3
15
11
7
3
0: Parada
1: Arranque
FP1
FP--M
0 (Nº de
proceso)
Se puede utilizar una herramienta de programación para escribir los DT’s comprendidos
entre el DT9060 y el DT9067
A
Estos registros almacenan el valor digital resultante
de la conversión de las entradas analógicas de las
placas de control analógicas del FP--M.
El rango del valor digital convertido depende del tip
de placa empleada, como se explica a continua
ción:
Cuando se instala una placa A/D:
K0 a K999 : 0 a 20 mA/ 0 a 5 V / 0 a 10 V.
La resolución del valor digital es de 10 bits.
Nota:
Si el valor de las entradas analógicas superan e
valor máximo (20 mA, 5 V o 10 V), el valor digita
puede tomar un valor de hasta K1023. Sin embargo
se debe comprobar que la tensión o la corriente
presentes en el sistema están dentro del rango per N
mitido.
Cuando se instala una placa analógica de E/S :
K0 a K255 : 0 a 5 V / 0 a 10 V.
La resolución del valor digital es de 8 bits.
Nota:
Si el valor de las entradas analógicas superan e
valor máximo), la salida digital no puede tomar u
valor que esté fuera del rango de 0 a 255. Se debe
comprobar que la tensión o la corriente presentes
en el sistema están dentro del rango permitido.
Para transferir datos a los registros de datos espe
ciales se utiliza la instrucción F0.
N
A
FP0/FP1/FPM
Apéndice
7.6 Registros de datos especiales
Dirección
DT9096
Nombre
Descripción
Valor digital de las
salidas de la placa
de control analógica nº0
Estos registros proporcionan el valor a las salidas analógica
de las placas de control analógicas del FP--M (placas D/A o d
E/S)
DT9097
Disponibilidad
FP0
FP1
FP--M
N
A
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
El rango de la salida depende del tipo de placa empleada, com
se explica a continuación:
Cuando se instala una placa D/A:
K0 a K999 : 0 a 20 mA/ 0 a 5 V / 0 a 10 V.
DT9098
DT9099
DT9100
DT9101
La resolución del valor digital es de 10 bits.
Valor digital de las
salidas de la placa Nota:
de control analógi- El valor especificado para la salida debe estar dentro del rang
ca nº1
(K0 a K999).
Si el valor especificado está comprendidoentre K999 y K1023
la salida proporcionará unos valores analógicos un poco may
N
res que los máximos (20 mA, 5 V o 10 V).
Valor digital de las Si el valor especificado excede K1023, los bits del 10 al 15 s
salidas de la placa ignoran.
de control analógiCuando se instala una placa analógica de E/S :
ca nº2
K0 a K255 : 0 a 5 V / 0 a 10 V.
La resolución del valor digital es de 8 bits.
DT9102
DT9103
Nota:
Valor digital de las
El valor especificado para la salida debe estar dentro del rang
salidas de la placa
(K0 a K999).
de control analógiSi el valor especificado excede K255, los bits del 8 al 15 se igno
ca nº3
ran.
Para transferir datos a los registros de datos especiales se util
za la instrucción F0.
DT9104
DT9105
DT9106
DT9107
DT9108
DT9109
DT9110
DT9111
Valor actual ch2
del
contador de
alta
velocidad
(C.A.V.)
Los 16 bits más bajos del valor actual del contador de alta
velocidad se almacenan en el DT9104. Los 16 bits de mayor A
peso se almacenan en el DT9105.El valor se puede escribir
ejecutando la instrucción DMV (F1) .
A
Valor de
preselecció
n del C.A.V.
Los 16 bits de mayor peso del valor de preselección del
A
contador de alta velocidad se almacenan en el DT9106. Lo s
A
16 bits de mayor peso se almacenan en el DT9107.
ch2
Valor actual ch3
del
contador de
alta
velocidad
(C.A.V.)
Los 16 bits más bajos del valor actual del contador de alta
velocidad se almacenan en el DT9108. Los 16 bits de mayor A
peso se almacenan en el DT9109. El valor se puede escribir
ejecutando la instrucción DMV (F1) .
A
Valor de
preselecció
n del C.A.V.
Los 16 bits de mayor peso del valor de preselección del
A
contador de alta velocidad se almacenan en el DT9110. Lo s
A
16 bits de mayor peso se almacenan en el DT9111.
ch3
7 -- 36
Apéndice
FP0/FP1/FPM
7.6 Registros de datos especiales
Dirección
DT9104
DT9105
DT9106
DT9107
Nombre
Contador
de
alta velocidad
CH0
Área del valor
de
preselección 0
Área del valor
de
preselección 1
DT9108
DT9109
Área de
valor actual
DT9110
DT9111
Área de
valor
capturado
DT9112
DT9113
DT9114
DT9115
Contador
de
alta velocidad
CH1
Estos registros almacenan los datos del contador de alta
velocidad de la tarjeta de alta velocidad del FP--M.
Los valores de preselección 0 y 1, el valor actual y el valor
capturado se procesan en binario en un rango de K--8388608 a
K8388607.
Nota:
Para transferir datos a los registros de datos especiales se utiliza
la instrucción F1.
Cuando se modifiquen estos registros el rango debe estar
comprendido entre K--8388608 a K8388607.
Si se excede el rango al especificar un valor los bit del 24 al 31
se ignoran.
Área del valor
de
preselección 0
Área de
valor actual
DT9118
DT9119
Área de
valor
capturado
Área de control del
contador de alta velocidad de la tarjeta del
contador de alta velocidad del FP--M
Este registro de utiliza para realizar el control del contador de alta
velocidad con la instrucción F0.
Bit 0: Modo de salida para el valor de preselección 1 (CH0) (1)
Bit 1: Modo de salida para el valor de preselección 1 (CH0) (1)
Bit 2: Bit de control de reset interno (CH0) (1:reset)
Bit 3: Bit de control de reset externo (CH0) (1: deshabilitado)
Bit 4: Bit de control de salida (Valor de preselección = valor actual)
(1 deshabilitado)
Bit 5:Bit de configuración del valor de preselección (0 a 1: configuración) (2)
Bit 8: Bit de selección del sistema numérico. Se recomienda poner
a 1 este bit, ésto indica sistema binario.
Bit 9: Modo de salida para el valor de preselección 1 (CH1) (1)
Bit 10: Modo de salida para el valor de preselección 1 (CH1) (1)
Bit 11: Bit de control de reset interno (CH1) (1:reset)
Bit 12: Bit de control de reset externo (CH1) (1: deshabilitado)
Bit 13: Bit de configuración del valor de preselección (0 a 1: configuración) (2)
Bit 14: Bit de configuración del valor de preselección (0 a 1: configuración) (2)
(1) Modo de salida: La salida pasa de ON a OFF cuando el valor actual coincide con el de preselección. Estos bits especifican la transi
ción que se produce cuando el valor actual coincide con el de prese
lección. Si se cambia el modo de salida, se debe volver a preseleccionar el valor de preselección.
BIT 0: OFF a ON
BIT 1: ON a OFF
(2) Configuración del valor de preselección: Para preseleccionar el
valor de preselección del contador de alta velocidad, primero se
debe transferir el valor de preselección al registro especial donde
se almacena. Para preseleccionar el valor se pasa el bit correspondiente de 0 a 1. El valor de preselección se revisa en el flanco de
subida, por lo tanto si este bit está ya a 1 se debe poner a 0 y volverlo
a poner a 1 para que se produzca un nuevo flanco de subida.
(3)Selección del sistema numérico: Este bit se utiliza para elegir el
sistema numérico con el que trabaja la placa de control. Si está a
0 se trabaja con código BCD y si se pone a 1 se trabaja en binario,
que es el modo recomendado.
7 -- 37
Disponibilidad
FP0
FP1
FP--M
N
N
A
N
N
A
Área del valor
de
preselección 1
DT9116
DT9117
DT9120
Descripción
FP0/FP1/FPM
Apéndice
7.6 Registros de datos especiales
Dirección
DT9121
Nombre
Descripción
Área de monitorización
del contador de alta velocidad de la tarjeta del
contador de alta velocidad del FP--M
Este registro se utiliza para mionitorizar las condiciones
de la tarjeta de alta velocidad del FP--M.
Bit 0: CH0. Bandera del bit de entrada de habilitación de reset (1)
ON: reset deshabilitado.
Bit 1: CH0. Bandera del bit de entrada de deshabilitación de
salida (2).
ON:Salida deshabilitada
OFF:Salida habilitada
Bit 2:CH1. Bandera del bit de entrada de habilitación de reset (1)
ON: reset habilitado.
Bit 3:CH1.Bandera del bit de entrada de deshabilitación de
salida (2).
ON:Salida deshabilitada
OFF:Salida habilitada
Bit 4:CH0. Bandera que pasa a ON cuando el valor de
preselección 0 = valor actual.
Bit 5: CH0. Bandera que pasa a ON cuando el valor de
preselección 1 = valor actual.
Bit 6:CH1. Bandera que pasa a ON cuando el valor de
preselección 0 = valor actual.
Bit 7:CH1. Bandera que pasa a ON cuando el valor de
preselección 1 = valor actual.
Bit 8, 9, 10 y 11: Código de error (3)
Bit 12: Bandera de error, se pone a ON cuando ocurre un error.
Bit 13: 0
Bit 14: 0
Bit 15: 0
(1) Habilitación de la entrada de reset:
Este bit habilita la entrada de reset externa incluso
aunque la entrada de reset esté deshabilitada en el
registro de control del contador de alta velocidad.
Mientras está habilitado el reset las entradas externas
son validas. Si se proporciona un pulso como señal de
habilitación sólo es valida la primera señal de reset
externa, el resto se ignoran.
(2) Entrada de deshabilitación de salida: Este bit
deshabilita la salida externa del contador de alta
velocidad aunque en el registro DT9120 esté habilitada.
Mientras este bit esté a 1, la salida del contador de alta
velocidad no varía incluso aunque el valor actual coincida
con el valor de preselección.
(3) Códigos de error:
Los errores de código BCD sólo se detectan si el
autómata está trabajando con este código (Ver DT9120).
Para ver el tipo de error producido se utiliza la instrucción
F0 y el bit 7 del DT9120
Bit 11 al bit 8:
0001: Error BCD
0010: Desbordamiento en el canal 0.
0100: Desbordamiento en el canal 1.
1000: Error de temporización wactchdog
Disponibilidad
FP0
FP1
FP--M
N
N
A
7 -- 38
Apéndice
FP0/FP1/FPM
7.7 Códigos de error
7.7
7.7.1
Códigos de error
Cuando se enciende el led de ERROR/ALARMA
Si el led de ERROR/ALARMA, situado en el panel frontal de la unidad de control, está
encendido es que se ha producido un error de autodiagnóstico o de verificación de
sintaxis. Cuando ocurre un error se debe consultar el código del error y seguir los pasos
convenientes.
Procedimiento de confirmación de error
Procedimiento:
1.
Si utiliza una herramienta de programación para
averiguar el código de error.
[NPST-GR]
Se ejecuta la orden de “Status display”, a continuación se muestran el
código del error y los contenidos del código del error.
[FP programmer II Ver.2]
Con el “Syntax check error,” el error aparece en la pantalla .
Con el “Self--diagnostic error,” se deben presionar las siguientes teclas.
ACLR
(--)
OP
1
1
0
ENT
READ
Entonces el código de error de autodiagnóstico aparecerá en pantalla.
2.
Comprobar el contenido de los errores en “Error
code list” utilizando el código de error.
Verificación de un error de sintaxis
Este es un tipo de error detectado por la función de chequeo total de la unidad cuando
ocurre un error de sintaxis o se realiza una configuración incorrecta en el programa.
Cuando la unidad pasa a modo RUN, la unción de chequeo total se activa
automáticamente, eliminando la posibilidad de un error de sintaxis.
D Cuando se detecta un error de sintaxis
-- El led de ERROR/ALARMA empieza a parpadear.
-- El programa no se ejecuta incluso aunque se pase a
modo RUN.
-- No se puede cambiar en modo remoto a RUN.
D Borrado de un error de sintaxis
-- Cambiando a modo PROG, el error se borrará y el led de
ERROR/ALARMA se pondrá a OFF.
7 -- 39
FP0/FP1/FPM
Apéndice
7.7 Códigos de error
D Pasos a seguir cuando se produce un error de sintaxis
-- Cambiar a modo PROG, y ejecutar la función de chequeo
total estando en on--line. Entonces se consulta el código
de error y la dirección donde ha ocurrido.
-- Corregir el programa de acuerdo a la información dada en
el código de error.
Error de auto--diagnóstico
Este tipo de error ocurre cuando la función de detección de errores de autodiagnóstico
encuentra alguna irregularidad en el sistema. La función de detección de errores de
autodiagnóstico muestra en qué parte de memoria, E/S o dispositivo se ha producido
la irregularidad.
D Cuando se produce un error de autodiagnóstico
-- El led de ERROR/ALARMA empieza a parpadear.
-- El autómata detendrá la ejecución del programa
dependiendo del tipo de error o de la configuración de los
registros especiales de sistema.
-- El código del error se almacena en el DT9000.
-- En el caso de un error de operación la dirección del error
se almacenará en DT9017 DT9018.
D Borrando un error de auto--diagnóstico
-- Utilizando NPST-GR
En el “Status Menu,” presionar la tecla “Error Clear” (F3). Los errores con
código de error igual o superior a 43 se borrarán. (Se necesita la versión 3
o superior del NPST-GR Ver. 3.1.)
-- Utilizando la consola de programación FP programmer II
Ver.2
Presionar las teclas mostradas a continuación. Los errores con código de
error 43 o superior se borrarán.
ACLR
(--)
OP
1
1
2
ENT
SHIFT
SC
WRT
Estos errores se pueden borrar apagando la alimentación estando en
modo PROG. Pero de este modo, el contenido de la memoria también se
borrará a no ser que sea de retención.
El error puede borrarse dependiendo de la configuración de la instrucción
F148 (ERR).
D Pasos a tomar cuando se produce un error de
auto--diagnóstico
Los pasos a tomar dependerán del error producido. Para más detalles,
consultar el código de error obtenido como se explica arriba, y consultar la
lista de errores de auto--diagnóstico en la página 7--36.
7 -- 40
Apéndice
FP0/FP1/FPM
7.7 Códigos de error
7.7.2
Código
de
error
Códigos de error de chequeo de sintaxis
Nombre del
error
Estado de
la CPU
E1
Error de sintaxis
(SINTAX)
Se para
La instrucción programada tiene un error de sintaxis.
Cambiar a modo PROG. y corregir el error.
E2
Error de salida
duplicada (DUP
USE)
Se para
Se programan dos o más instrucciones OT o KP usando el mismo
contacto.
Para eliminar el error se corrige el programa eliminando las salidas
duplicadas o se habilita la posibilidad de salidas duplicadas en el
registro especial de sistema nº20.
E3
Eror de no
“pareado”
(PAIR)
Se para
Falta una de las instrucciones que deben ir pareadas como por ejemplo
los saltos (JP y LBL), falta una de las instrucciones o está en una
posición incorrecta.
Cambiar a modo PROG. y escribir la instrucción que falta en la posición
correcta.
E4
Error de
parámetros de
registro de
sistema
(MISMATCH)
Se para
Cuando se programa una instrucción de forma que no coincida con las
características configuradas en los registos especiales de sistema. Por
ejemplo, el rango especificado en el programa para temporizadores y
contadores no coincide con el configuradodo en los registros
especiales de sistema.
Cuando ocurre un error de este tipo se cambia a modo PROG., se
comprueban los registros de sistema, y se cambia la configuración de
los mismos si no es la adecuada.
E5
Error de área de
programación
(PRG AREA)
Se para
Instrucciones situadas en una posición incorrecta dentro del programa
(por ejemplo, una subrutina SUB / RET situada antes de la instrucción
ED).
Cambiar a modo PROG. y colocar la instrucción en la posición
correcta.
E8
Error de
operando
(OPR COMBI)
Se para
Se ha introducido un operando incorrecto en una instrucción (por
ejemplo, instrucciones en las que los operandos tengan que ser de
cierto tipo).
Se debe introducir el tipo adecuado de operandos.
7 -- 41
Descripción y pasos a seguir
FP0/FP1/FPM
Apéndice
7.7 Códigos de error
7.7.3
Código
de
error
E26
Códigos de error de auto--diagnóstico
Nombre del
error
Error de ROM
Estado de la
Descripción y pasos a seguir
CPU
Se para
En FP1 C14 y C16: probablemente se haya producido un error en la
EEPROM. Contactar con su proveedor.
En FP1 C24, C40, C56 y C72 y FP--M: Probablemente se haya
producido un error en Memory Unit o en Master Memory Unit.
Se debe programar Memory Unit o en Master Memory Unit de nuevo e
intentar ejecutar el programa. Si se produce el mismo error probar con
otra Memory Unit o en Master Memory Unit.
E28
Error de
registros
especiales de
sistema
Se para
Probablemente un error en algún registro especial de sistema.
Inicializar el registro especial de sistema donde se haya producido el
error. (Sólo en el FP--M /FP1)
E31
Error de
interrupción 1
Se para
La interrupción se produce sin una llamada a la misma.
Se detecta una irregularidad provocada por un problema de hardware
o de ruido.
Apagar alimentación y comprobar las condiciones externas de ruido.
E32
Error de
interrupción 2
Se para
La interrupción se produce sin una llamada a la misma.
Se detecta una irregularidad provocada por un problema de hardware
o de ruido.
Apagar alimentación y comprobar las condiciones externas de ruido.
No existe un programa interrupción para la interrupción requerida.
Comprobar el número de interrupción y el número de programa
interrupción.
E45
Error de
operación
E50
Error de batería
Continua
Los terminales de la batería están desconectados o la tensión en la batería es baja. Reemplazar la batería. La operación sin batería de backup
se especifica en el registro especial de sistema nº4.
E100 a
E199
Error de
autodiagnóstico
F148 (ERR)
Se para
Se produce un error configurado con la instrucción F148.
E200 a
E299
Configurable Se ejecuta una operación no posible con una instrucción de alto nivel.
La causa del error depende de la instrucción. Consultar en el capítulo
”5.4 Errores de operación”, y en la explicación de cada instrucción.
En el registro especial de sistema nº26, seleccionar ”1: Continúa la
operation” or ”2. Stop”.
Continua
7 -- 42
Apéndice
FP0/FP1/FPM
7.8 Tabla de expresiones binarias/hexadecimales/BCD
7.8
Tabla de expresiones binarias/hexadecimales/BCD
Decimal
Hexadecimal
Binario
Código BCD
0
0000
00000000
00000000
0000 0000
0000 0000
1
0001
00000000
00000001
0000 0000
0000 0001
2
0002
00000000
00000010
0000 0000
0000 0010
3
0003
00000000
00000011
0000 0000
0000 0011
4
0004
00000000
00000100
0000 0000
0000 0100
5
0005
00000000
00000101
0000 0000
0000 0101
6
0006
00000000
00000110
0000 0000
0000 0110
7
0007
00000000
00000111
0000 0000
0000
8
0008
00000000
00001000
0000 0000
0000 1000
9
0009
00000000
00001001
0000 0000
0000 1001
10
000A
00000000
00001010
0000 0000
0001 0000
0111
11
000B
00000000
00001011
0000 0000
0001 0001
12
000C
00000000
00001100
0000 0000
0001 0010
13
000D
00000000
00001101
0000 0000
0001 0011
14
000E
00000000
00001110
0000 0000
0001 0100
15
000F
00000000
00001111
0000 0000
0001 0101
16
0010
00000000
00010000
0000 0000
0001 0110
17
0011
00000000
00010001
0000 0000
0001
18
0012
00000000
00010010
0000 0000
0001 1000
19
0013
00000000
00010011
0000 0000
0001 1001
20
0014
00000000
00010100
0000 0000
0010 0000
21
0015
00000000
00010101
0000 0000
0010 0001
22
0016
00000000
00010110
0000 0000
0010 0010
23
0017
00000000
00010111
0000 0000
0010 0011
24
0018
00000000
00011000
0000 0000
0010 0100
25
0019
00000000
00011001
0000 0000
0010 0101
26
001A
00000000
00011010
0000 0000
0010 0110
27
001B
00000000
00011011
0000 0000
0010
28
001C
00000000
00011100
0000 0000
0010 1000
29
001D
00000000
00011101
0000 0000
0010 1001
30
001E
00000000
00011110
0000 0000
0011 0000
31
001F
00000000
00011111
0000 0000
0011 0001
63
003F
00000000
00111111
0000 0000
0110 0011
255
00FF
00000000
11111111
0000 0010
0101 0101
9999
270F
00100111
00001111
1001 1001
1001 1001
7 -- 43
0111
0111
FP0/FP1/FPM
Memoria de cambios
Memoria de cambios
Código
Fecha
FP000--1
JUL.1999
Modificaciones
Primera edición
8 -- 1
Red Global Panasonic
1RUWHDPpULFD
3DQDVRQLF
(OHFWULF:RUNV
&RUSRUDWLRQRI$PHULFD
(XURSD
3DQDVRQLF
(OHFWULF:RUNV
(XURSH$*
$VLD3DFLILFD
3DQDVRQLF
(OHFWULF:RUNV
$VLD3DFLILF3WH/WG
&KLQD
3DQDVRQLF
(OHFWULF:RUNV
&KLQD&R/WG
-DSyQ
0DWVXVKLWD
(OHFWULF:RUNV/WG
*OREDO+HDGTXDUWHUV
3DQDVRQLF(OHFWULF:RUNV(VSDxD6$
&HQWUDO3DUTXH(PSUHVDULDO%DUDMDV&6DQ6HYHUR0$'5,'
7HO)D[, HPDLOPHZH#HXURGHPHZFRP
'HO&DWDOXxD(GLILFLROD3ODQD&3DX&ODULVž\6WD3HUSqWXDGH0RJRdD%$5&(/21$
7HO)D[HPDLOULEHV#HXURGHPHZFRP
'HO/HYDQWH$YGD%ODVFR,EixH]3DWHUQD9$/(1&,$
7HO)D[HPDLODQGUHV#HXURGHPHZFRP
'HO1RUWH(GLILFLR&HUYDQWHV$YGD&HUYDQWHV3LVR0yGXOR%DVDXUL%,=.$,$
7HO)D[HPDLOJRPH]J#HXURGHPHZFRP
'HO3RUWXJDO$Y$GHOLQR$PDURGD&RVWD5&-&DVFDLV±32578*$/
7HO±)D[HPDLODUPDGD#HXURGHPHZFRP
&23<5,*+7
5HVHUYDGRVWRGRVORVGHUHFKRV
""""ң"ҢҢ""""ңҠ"ң"ҡ""
/DVHVSHFLILFDFLRQHVSXHGHQVXIULUPRGLILFDFLRQHVVLQSUHYLRDYLVR,PSUHVRHQ(VSDxD
Descargar