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