estándar librería de bloques - schneider-electric.com · comportamiento de las funciones en los...
TRANSCRIPT
33002522 05/2010
3300
2522
.09
www.schneider-electric.com
Unity ProEstándarLibrería de bloques
05/2010
La información que se ofrece en esta documentación contiene descripciones de carácter general y/o características técnicas sobre el rendimiento de los productos incluidos en ella. La presente documentación no tiene como objetivo sustituir ni debe emplearse para determinar la idoneidad o fiabilidad de dichos productos para aplicaciones de usuario específicas. Los usuarios o integradores tienen la responsabilidad de llevar a cabo un análisis de riesgos adecuado y exhaustivo, así como la evaluación y pruebas de los productos en relación con la aplicación o uso en cuestión de dichos productos. Ni Schneider Electric ni ninguna de sus filiales o asociados asumirán responsabilidad alguna por el uso inapropiado de la información contenida en este documento. Si tiene sugerencias para mejoras o modificaciones o ha hallado errores en esta publicación, le rogamos que nos lo notifique.
No se podrá reproducir este documento de ninguna forma, ni en su totalidad ni en parte, ya sea por medios electrónicos o mecánicos, incluida la fotocopia, sin el permiso expreso y por escrito de Schneider Electric.
Al instalar y utilizar este producto es necesario tener en cuenta todos los sistemas de seguridad relacionados, ya sean regionales, locales o estatales. Por razones de seguridad y para garantizar que se siguen los consejos de la documentación del sistema, las reparaciones sólo podrá realizarlas el fabricante.
Cuando se utilicen dispositivos para aplicaciones con requisitos técnicos de seguridad, siga las instrucciones pertinentes.
Si no se utiliza el software de Schneider Electric o un software compatible con nuestros productos de hardware pueden producirse daños, lesiones o un funciona-miento inadecuado del equipo.
Si no se tiene en cuenta esta información se pueden causar daños personales o en el equipo.
© 2010 Schneider Electric. Reservados todos los derechos.
2 33002522 05/2010
Tabla de materias
Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 13Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Parte I Generalidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Capítulo 1 Tipos de bloques y utilización. . . . . . . . . . . . . . . . . . . . . 19
Tipos de bloques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Estructura de FFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22EN y ENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Capítulo 2 Disponibilidad de los bloques en diferentes plataformas de hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Disponibilidad del bloque en varias plataformas de hardware . . . . . . . . . 29
Parte II Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Capítulo 3 ADD_***_***: Adición de un número a elementos de una
matriz o adición de dos matrices . . . . . . . . . . . . . . . . . . 41Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Capítulo 4 AND_***_***: Y lógico entre matrices y variables . . . . . 45Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Capítulo 5 COPY_•••••_•••••: Copia en matrices . . . . . . . . . . . . . . . . 49Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Capítulo 6 DIV_***_***: División de matrices . . . . . . . . . . . . . . . . . . 53Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Capítulo 7 EQUAL_***: Comparación de dos matrices . . . . . . . . . . 57Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Capítulo 8 FIND_EQ_***: Primer elemento de una matriz igual a un valor determinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Capítulo 9 FIND_EQP_***: Primer elemento de una matriz igual a un valor comenzando por un rango determinado . . . . 63Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Capítulo 10 FIND_GT_***: Primer elemento de una matriz mayor que un valor determinado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
33002522 05/2010 3
Capítulo 11 FIND_LT_***: Primer elemento de una matriz menor que un valor determinado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Capítulo 12 LENGTH_***: Longitud de una matriz . . . . . . . . . . . . . . . 75Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Capítulo 13 MAX_***: Valor máximo de los elementos de la matriz . 79Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Capítulo 14 MIN_***: Valor mínimo de los elementos de la matriz . . 81Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Capítulo 15 MOD_***_***: Resto de la división de matrices . . . . . . . . 83Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Capítulo 16 MOVE_***_***: Asignación a matrices . . . . . . . . . . . . . . . 87Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Capítulo 17 MOVE_***_***: Conversión de matrices . . . . . . . . . . . . . . 89Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Capítulo 18 MUL_***_***: Multiplicación de matrices . . . . . . . . . . . . . 91Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Capítulo 19 NOT_***: Negación lógica de matrices . . . . . . . . . . . . . . 95Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Capítulo 20 OCCUR_***: Aparición de un valor en una matriz . . . . . 97Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Capítulo 21 OR_***_***: O lógico entre matrices y variables . . . . . . . 99Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Capítulo 22 ROL_***: Desplazamiento hacia la izquierda. . . . . . . . . . 103Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Capítulo 23 ROR_***: Desplazamiento hacia la derecha . . . . . . . . . . 105Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Capítulo 24 SORT_***: Orden ascendente o descendente . . . . . . . . . 107Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Capítulo 25 SUB_***_***: Resta de matrices . . . . . . . . . . . . . . . . . . . . 109Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Capítulo 26 SUM_***: Suma de los elementos de la matriz . . . . . . . . 113Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Capítulo 27 SWAP_***: Permutación de los bytes de una matriz . . . 115Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Capítulo 28 XOR_***_***: O exclusivo entre matrices. . . . . . . . . . . . . 117Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4 33002522 05/2010
Parte III CLC_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Capítulo 29 Introducción a las funciones de regulación de enteros 123
Presentación general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Principio del bucle de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Metodología de desarrollo de una aplicación de control de proceso . . . . 126Programación de una función de regulación. . . . . . . . . . . . . . . . . . . . . . . 127Comportamiento de las funciones en los modos de funcionamiento . . . . 128
Capítulo 30 PID_INT: Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . 129Descripción de la función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Descripción de datos derivados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Capítulo 31 PWM_INT: Modulación del ancho de pulsos de un valor numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Capítulo 32 SERVO_INT: Función de variador. . . . . . . . . . . . . . . . . . 141Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Parte IV Comparación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Capítulo 33 EQ: Igual a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Capítulo 34 GE: Mayor o igual a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Capítulo 35 GT: Mayor que. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Capítulo 36 LE: Inferior o igual a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Capítulo 37 LT: Menor que . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Capítulo 38 NE: Distinto a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Parte V Fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Capítulo 39 ADD_***_TIME: Adición de una duración a una fecha . 163Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Capítulo 40 DIVTIME: División . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Capítulo 41 MULTIME: Multiplicación . . . . . . . . . . . . . . . . . . . . . . . . . 169Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Capítulo 42 SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Capítulo 43 SUB_***_TIME: Resta de una duración de una fecha . . 173Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
33002522 05/2010 5
Parte VI $/$Extract (Extracción) . . . . . . . . . . . . . . . . . . . . . . . 177Capítulo 44 EXTRACT: Copia de parte de una variable en otra
variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Capítulo 45 SIZEOF: Tamaño de una variable en bytes . . . . . . . . . . . 183Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Parte VII Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Capítulo 46 AND: Función AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187Capítulo 47 F_TRIG: Detección de flanco descendente . . . . . . . . . . . 189
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Capítulo 48 FE: Detección de flanco descendente . . . . . . . . . . . . . . . 191
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Capítulo 49 NOT: Negación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Capítulo 50 OR: Función O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Capítulo 51 R_TRIG: Detección de flanco ascendente. . . . . . . . . . . . 197
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Capítulo 52 RE: Detección de flanco ascendente . . . . . . . . . . . . . . . . 199
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Capítulo 53 RESET: Ajuste del bit a 0 . . . . . . . . . . . . . . . . . . . . . . . . . 201
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Capítulo 54 ROL: Rotación a la izquierda . . . . . . . . . . . . . . . . . . . . . . 203
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Capítulo 55 ROR: Rotación a la derecha . . . . . . . . . . . . . . . . . . . . . . . 205
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Capítulo 56 RS: Bloque de funciones biestables, restablecer
dominante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Capítulo 57 SET: Ajuste del bit a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Capítulo 58 SHL: Desplazamiento a la izquierda . . . . . . . . . . . . . . . . 211Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Capítulo 59 SHR: Desplazamiento a la derecha . . . . . . . . . . . . . . . . . 213Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Capítulo 60 SR: Bloque de funciones biestables, establecer dominante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Capítulo 61 TRIGGER: Detección de todos los flancos . . . . . . . . . . . 217Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6 33002522 05/2010
Capítulo 62 XOR: Función O exclusivo. . . . . . . . . . . . . . . . . . . . . . . . 219Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Parte VIII Matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Capítulo 63 ABS: Cálculo de valores absolutos . . . . . . . . . . . . . . . . 223
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Capítulo 64 ACOS: Arco coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Capítulo 65 ADD: Adición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Capítulo 66 ADD_TIME: Adición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Capítulo 67 ASIN: Arco seno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Capítulo 68 ATAN: Arco tangente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Capítulo 69 COS: Coseno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Capítulo 70 DEC: Reducción de una variable . . . . . . . . . . . . . . . . . . 237
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Capítulo 71 DIV: División . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Capítulo 72 DIVMOD: División y módulo . . . . . . . . . . . . . . . . . . . . . . 241
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Capítulo 73 EXP: Exponente natural . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Capítulo 74 EXPT_REAL_***: Exponenciación de un valor por otro
valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Capítulo 75 INC: Incremento de una variable. . . . . . . . . . . . . . . . . . . 247Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Capítulo 76 LN: Logaritmo natural . . . . . . . . . . . . . . . . . . . . . . . . . . . 249Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Capítulo 77 LOG: Logaritmo en base 10. . . . . . . . . . . . . . . . . . . . . . . 251Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Capítulo 78 MOD: Módulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Capítulo 79 MOVE: Asignación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Capítulo 80 MUL: Multiplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
33002522 05/2010 7
Capítulo 81 NEG: Negación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Capítulo 82 SIGN: Evaluación de signos . . . . . . . . . . . . . . . . . . . . . . . 261Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Capítulo 83 SIN: Seno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Capítulo 84 SUB: Sustracción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Capítulo 85 SUB_TIME: Sustracción . . . . . . . . . . . . . . . . . . . . . . . . . . 267Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Capítulo 86 SQRT_***: Raíz cuadrada . . . . . . . . . . . . . . . . . . . . . . . . . 269Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Capítulo 87 TAN: Tangente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Parte IX Estadística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Capítulo 88 AVE: Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Capítulo 89 LIMIT: Límite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Capítulo 90 LIMIT_IND: Indicador de límite de ancho. . . . . . . . . . . . . 281
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Capítulo 91 MAX: Función de valor máximo . . . . . . . . . . . . . . . . . . . . 285
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Capítulo 92 MIN: Función de valor mínimo . . . . . . . . . . . . . . . . . . . . . 287
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Capítulo 93 MUX: Multiplexador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Capítulo 94 SEL: Selección binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Parte X Cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . 295Capítulo 95 CONCAT_STR: Concatenación de dos cadenas de
caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Capítulo 96 DELETE_INT: Eliminación de una subcadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Capítulo 97 EQUAL_STR: Comparación de dos cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Capítulo 98 FIND_INT: Búsqueda de una subcadena de caracteres. 303Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
8 33002522 05/2010
Capítulo 99 INSERT_INT: Inserción de una subcadena de caracteres 305Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Capítulo 100 LEFT_INT: Extracción de caracteres a la izquierda . . . 309Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Capítulo 101 LEN_INT: Longitud de una cadena de caracteres . . . . . 311Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Capítulo 102 MID_INT: Extracción de una subcadena de caracteres 313Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Capítulo 103 REPLACE_INT: Sustitución de una subcadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Capítulo 104 RIGHT_INT: Extracción de una cadena de caracteres a la derecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Parte XI Temporizadores y contadores . . . . . . . . . . . . . . . . . 321Capítulo 105 CTD, CTD_***: Contador regresivo . . . . . . . . . . . . . . . . . 323
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Capítulo 106 CTU, CTU_***: Contador progresivo . . . . . . . . . . . . . . . . 327
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Capítulo 107 CTUD, CTUD_***: Contador progresivo/regresivo. . . . . 331
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331Capítulo 108 TOF: Retardo Des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Capítulo 109 TON: Retardo Con . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Capítulo 110 TP: Pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Parte XII Conversión de tipos. . . . . . . . . . . . . . . . . . . . . . . . . . 341Capítulo 111 ARINT_TO_DATE: Conversión de matriz de enteros con
fecha en una variable DATE . . . . . . . . . . . . . . . . . . . . . . 345Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Capítulo 112 ARINT_TO_DT: Conversión de matriz de enteros con fecha y hora en una variable DT . . . . . . . . . . . . . . . . . . . 347Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Capítulo 113 ARINT_TO_TOD: Conversión de matriz de enteros con hora del día en una variable TOD . . . . . . . . . . . . . . . . . . 349Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Capítulo 114 ASCII_TO_STRING: Conversión de tipos. . . . . . . . . . . . 351Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Capítulo 115 ASCII_TO_STRING_INV: Conversión de tipos. . . . . . . . 355Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
33002522 05/2010 9
Capítulo 116 BCD_TO_INT: Conversión de un entero BCD en binario puro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Capítulo 117 BIT_TO_BYTE: Conversión de tipos . . . . . . . . . . . . . . . . 361Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Capítulo 118 BIT_TO_WORD: Conversión de tipos . . . . . . . . . . . . . . . 363Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Capítulo 119 BOOL_TO_***: Conversión de tipos. . . . . . . . . . . . . . . . . 365Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Capítulo 120 BYTE_AS_WORD: Conversión de tipos . . . . . . . . . . . . . 367Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Capítulo 121 BYTE_TO_BIT: Conversión de tipos . . . . . . . . . . . . . . . . 369Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Capítulo 122 BYTE_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . . 371Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Capítulo 123 DATE_TO_ARINT: Conversión de variable DATE en matriz de enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Capítulo 124 DATE_TO_STRING: Conversión de una variable en formato DATE a una cadena de caracteres. . . . . . . . . . . 377Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Capítulo 125 DBCD_TO_***: Conversión de un entero BCD doble en binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Capítulo 126 DEG_TO_RAD: Conversión de grados a radianes . . . . . 381Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Capítulo 127 DINT_AS_WORD: Conversión de tipos . . . . . . . . . . . . . . 383Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Capítulo 128 DINT_TO_***: Conversión de tipos. . . . . . . . . . . . . . . . . . 385Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Capítulo 129 DINT_TO_DBCD: Conversión de un entero doble en código binario a un entero decimal doble con codificación binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Capítulo 130 DT_TO_ARINT: Conversión de variable DT en matriz de enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Capítulo 131 DT_TO_STRING: Conversión de una variable en formato DT a una cadena de caracteres . . . . . . . . . . . . . 393Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
10 33002522 05/2010
Capítulo 132 DWORD_TO_***: Conversión de tipos . . . . . . . . . . . . . . 395Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Capítulo 133 GRAY_TO_INT: Conversión de un entero en código Gray en un entero con codificación binaria. . . . . . . . . . 397Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Capítulo 134 INT_AS_DINT: Concatenación de dos enteros para formar un entero doble . . . . . . . . . . . . . . . . . . . . . . . . . . 399Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Capítulo 135 INT_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . . . 401Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Capítulo 136 INT_TO_BCD: Conversión de un entero en código binario a un entero decimal con codificación binaria. . 405Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Capítulo 137 INT_TO_DBCD: Conversión de un entero en código binario a un entero decimal doble con codificación binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Capítulo 138 RAD_TO_DEG: Conversión de radianes a grados . . . . 409Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Capítulo 139 REAL_AS_WORD: Conversión de tipos. . . . . . . . . . . . . 411Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Capítulo 140 REAL_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . 413Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Capítulo 141 REAL_TRUNC_***: Conversión de tipos . . . . . . . . . . . . 417Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Capítulo 142 STRING_TO_ASCII: Conversión de tipos. . . . . . . . . . . . 421Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Capítulo 143 STRING_TO_ASCII_INV: Conversión de tipos. . . . . . . . 425Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Capítulo 144 STRING_TO_***: Conversión de una cadena de caracteres a un número de tipo INT, DINT o REAL . . . . 429Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Capítulo 145 TIME_AS_WORD: Conversión de tipos . . . . . . . . . . . . . 431Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Capítulo 146 TIME_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . . 433Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Capítulo 147 TIME_TO_STRING: Conversión de una variable en formato TIME a una cadena de caracteres. . . . . . . . . . . 435Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
33002522 05/2010 11
Capítulo 148 TOD_TO_ARINT: Conversión de variable TOD en matriz de enteros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Capítulo 149 TOD_TO_STRING: Conversión de una variable en formato TOD a una cadena de caracteres . . . . . . . . . . . . 439Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Capítulo 150 UDINT_AS_WORD: Conversión de tipos. . . . . . . . . . . . . 441Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Capítulo 151 UDINT_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . 443Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Capítulo 152 UINT_TO_***: Conversión de tipos. . . . . . . . . . . . . . . . . . 447Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Capítulo 153 WORD_AS_BYTE: Conversión de tipos . . . . . . . . . . . . . 451Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Capítulo 154 WORD_AS_DINT: Conversión de tipos . . . . . . . . . . . . . . 453Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Capítulo 155 WORD_AS_REAL: Conversión de tipos . . . . . . . . . . . . . 455Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Capítulo 156 WORD_AS_TIME: Conversión de tipos . . . . . . . . . . . . . . 457Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Capítulo 157 WORD_AS_UDINT: Conversión de tipos. . . . . . . . . . . . . 459Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Capítulo 158 WORD_TO_BIT: Conversión de tipos . . . . . . . . . . . . . . . 461Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Capítulo 159 WORD_TO_***: Conversión de tipos . . . . . . . . . . . . . . . . 463Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Capítulo 160 ***_TO_STRING: Conversión de una variable a una cadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Apéndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467Apéndice A Códigos y valores de error de EFB . . . . . . . . . . . . . . . . . 469
Tabla de códigos de error de la librería base . . . . . . . . . . . . . . . . . . . . . 470Errores comunes de coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Apéndice B Objetos de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Introducción de bits de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474Descripción de los bits de sistema %S9 a %S13 . . . . . . . . . . . . . . . . . . 475Descripción de los bits de sistema de %S15 a %S21 . . . . . . . . . . . . . . . 477Descripción de las palabras de sistema %SW12 a %SW29 . . . . . . . . . . 480Descripción de las palabras de sistema %SW48 a %SW59 . . . . . . . . . . 486
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
12 33002522 05/2010
§
Información de seguridadInformación importante
AVISO
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con el dispositivo antes de instalarlo, utilizarlo o realizar su mantenimiento. Los mensajes especiales que se ofrecen a continuación pueden aparecer a lo largo de la documentación o en el equipo para advertir de peligros potenciales o para ofrecer información que aclara o simplifica los distintos procedimientos.
33002522 05/2010 13
TENGA EN CUENTA
La instalación, manejo, puesta en servicio y mantenimiento de equipos eléctricos deberán ser realizados sólo por personal cualificado. Schneider Electric no se hace responsable de ninguna de las consecuencias del uso de este material.
Una persona cualificada es aquella que cuenta con capacidad y conocimientos relativos a la construcción, el funcionamiento y la instalación de equipos eléctricos y que ha sido formada en materia de seguridad para reconocer y evitar los riesgos que conllevan tales equipos.
14 33002522 05/2010
Acerca de este libro
Presentación
Objeto
En este documento se describen las funciones y los bloques de funciones de la librería estándar.
Campo de aplicación
Este documento es válido para Unity Pro a partir de la versión 5.0.
Comentarios del usuario
Envíe sus comentarios a la dirección electrónica [email protected].
33002522 05/2010 15
16 33002522 05/2010
33002522 05/2010
I
Generalidades
33002522 05/2010
Generalidades
Vista general
Esta sección contiene información general sobre la biblioteca estándar.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
1 Tipos de bloques y utilización 19
2 Disponibilidad de los bloques en diferentes plataformas de hardware
29
17
Generalidades
18 33002522 05/2010
33002522 05/2010
1
Tipos de bloques y utilización
33002522 05/2010
Tipos de bloques y utilización
Vista general
Este capítulo describe los distintos tipos de bloques y su utilización.
Contenido de este capítulo
Este capítulo contiene los siguiente apartados:
Apartado Página
Tipos de bloques 20
Estructura de FFB 22
EN y ENO 25
19
Tipos de bloques y utilización
Tipos de bloques
Tipos de bloques
En Unity Pro se utilizan distintos tipos de bloques. El término general que abarca los tipos de bloques es FFB.
Debemos distinguir los siguientes tipos de bloques:Función elemental (EF)Bloques de funciones elementales (EFB)Bloque de funciones derivado (DFB)Procedimiento
NOTA: Los bloques de funciones de movimiento no están disponibles en la plataforma Quantum.
Función elemental
Las funciones elementales (EF) no disponen de estado interno y solo cuentan con una salida. Si en las entradas aparecen los mismos valores, el valor de la salida será el mismo cuando se ejecute la función; por ejemplo, siempre que se ejecuta la suma de dos valores, el resultado es el mismo.
En los lenguajes gráficos (FBD y LD), una función elemental se representa como un bloque de datos con entradas y una salida. En él, las entradas aparecen a la izquierda y las salidas a la derecha. El nombre de la función, es decir, el tipo de función, aparece centrado dentro del bloque de datos.
El número de entradas puede aumentarse con algunas funciones elementales.
NOTA: La desactivación de una EF (EN=0) ocasiona el reinicio de los enlaces conectados a su entrada/salida. No utilice un enlace para transferir el estado de la señal. Una variable debe conectarse a la salida de la EF y utilizarse para conectar la entrada del elemento.
ATENCIÓNCOMPORTAMIENTO INESPERADO DEL EQUIPO
No utilice enlaces para conectar salidas de bloques de funciones cuando la aplicación dependa de los datos de salida persistentes de una EF.
Si no se siguen estas instrucciones pueden producirse lesiones personales o daños en el equipo.
20 33002522 05/2010
Tipos de bloques y utilización
Bloques de funciones elementales
Los bloques de funciones elementales (EF) tienen estados internos. Si las entradas disponen del mismo valor, el valor de la salida puede variar cada vez que se ejecuten los bloques de funciones. Por ejemplo, con un contador aumenta el valor de la salida.
En los lenguajes gráficos (FBD y LD), un bloque de funciones elementales se representa como un bloque de datos con entradas y salidas. En él, las entradas aparecen a la izquierda y las salidas a la derecha. El nombre del bloque de funciones, es decir, el tipo de bloque de funciones, aparece centrado dentro del bloque de datos El nombre de la instancia aparece encima del bloque de datos.
Bloques de funciones derivados
Los bloques de funciones derivados (DFB) presentan las mismas propiedades que los bloques de funciones elementales. Sin embargo, el usuario los crea en los lenguajes de programación FBD, LD, IL o ST.
Procedimiento
Los procedimientos son funciones con distintas salidas. No disponen de estado interno.
La única diferencia con las funciones elementales es que los procedimientos pueden tener más de una salida y admiten variables del tipo de datos VAR_IN_OUT.
Los procedimientos no devuelven ningún valor.
Los procedimientos son una ampliación de la norma CEI 61131-3 y se deben habilitar de forma explícita.
Los procedimientos no se distinguen visualmente de las funciones elementales.
33002522 05/2010 21
Tipos de bloques y utilización
Estructura de FFB
Estructura
Cada FFB está compuesto por una operación (nombre del FFB), los operandos necesarios para la operación (parámetros formales y reales) y, en el caso de los bloques de funciones elementales o derivados, un nombre de instancia.
Para llamar a un bloque de funciones en el lenguaje de programación FBD:
Para llamar formalmente a un bloque de funciones en el lenguaje de programación ST:
ATENCIÓNCOMPORTAMIENTO INESPERADO DE LA APLICACIÓN
No llame varias veces la misma instancia de bloques dentro del ciclo de un PLC
Si no se siguen estas instrucciones pueden producirse lesiones personales o daños en el equipo.
22 33002522 05/2010
Tipos de bloques y utilización
Operación
La operación establece la función que debe ejecutar el FFB, por ejemplo, registro de desplazamientos u operaciones de conversión.
Operando
El operando especifica con qué se debe ejecutar la operación. En el caso de los FFB, se trata de parámetros formales y reales.
Parámetros formales y parámetros reales
Las entradas y salidas se necesitan para transferir valores desde y hasta un FFB. Se conocen como parámetros formales.
A los parámetros formales se les vinculan objetos que contienen los estados actuales del proceso. Se conocen como parámetros reales.
Los valores del proceso se transfieren al FFB a través de los parámetros actuales durante el tiempo de ejecución del programa y se vuelven a emitir después del procesamiento.
El tipo de datos del parámetro actual debe ser el mismo que el de la entrada o salida (parámetros formales). Las únicas excepciones son las entradas y salidas genéricas, cuyo tipo de datos se determina mediante el parámetro real. Si los parámetros reales constan de literales, se selecciona un tipo de dato apropiado para el bloque de funciones.
Llamada de un FFB en IL/ST
En los lenguajes de texto IL y ST, los FFB pueden llamarse en formato formal e informal. Si desea más información, consulte el Manual de referencia.
Ejemplo de una llamada de función formal:
out:=LIMIT (MN:=0, IN:=var1, MX:=5);
Ejemplo de una llamada de función informal:
out:=LIMIT (0, var1, 5);
NOTA: La utilización de EN y ENO sólo es posible para las llamadas formales.
33002522 05/2010 23
Tipos de bloques y utilización
Variable VAR_IN_OUT
A menudo, los FFB se utilizan para leer una variable en la entrada (variables de entrada), procesarla y devolver los valores modificados de esta variable (variables de salida).
Este caso específico de variable de entrada/salida también se denomina variable VAR_IN_OUT.
La correspondencia de las variables de entrada y salida aparece representada con una línea en los lenguajes gráficos (FBD y LD).
Bloque de funciones con variable VAR_IN_OUT en FBD:
Bloque de funciones con variable VAR_IN_OUT en ST:
MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT, OUT1=>Output1, OUT2=>Output2);
Tenga en cuenta las siguientes particularidades al utilizar FFB con variables VAR_IN_OUT:
Hay que asignar obligatoriamente una variable a las entradas VAR_IN_OUT.No es posible asignar literales o constantes a las entradas/salidas VAR_IN_OUT.
Además, en el caso de los lenguajes gráficos (FBD y LD) también se aplican las siguientes restricciones:
Las conexiones gráficas sólo permiten conectar salidas VAR_IN_OUT a entradas VAR_IN_OUT. Sólo es posible enlazar una conexión gráfica a una salida/entrada VAR_IN_OUT.Es posible vincular a la entrada VAR_IN_OUT y a la salida VAR_IN_OUT distintas variables o componentes de variables. En tal caso, el valor de la variable o de su componente en la entrada se copiará en la variable o componente de variable en la salida. No se puede utilizar ninguna negación en las entradas/salidas VAR_IN_OUT.En el caso de las salidas VAR_IN_OUT no es posible combinar una variable/dirección con conexiones gráficas.
24 33002522 05/2010
Tipos de bloques y utilización
EN y ENO
Descripción
Se puede configurar una entrada EN y una salida ENO para los FFB.
Si el valor de EN es "0", al llamar el FFB no se ejecutarán los algoritmos definidos por dicho FFB, y ENO se ajustará a "0".
Si el valor de EN es "1", al llamar el FFB se ejecutarán los algoritmos definidos por dicho FFB. Una vez que se han ejecutado los algoritmos correctamente, el valor de ENO pasa a "1". Si se detectan determinadas condiciones de error al ejecutar estos algoritmos, ENO pasa a "0".
Si el pin EN no tiene un valor asignado, cuando se llama a FFB, se ejecuta el algoritmo definido por el FFB (del mismo modo que cuando EN es igual a "1"). Consulte Mantener conexiones de salida en EF desactivadas (véase Unity Pro, Modalidades de funcionamiento, ).
Si se ejecutan los algoritmos correctamente, el valor de ENO pasa a "1". De lo contrario, el valor de ENO pasa a "0".
Si ENO pasa a "0" (porque EN = 0 o bien porque existe una condición de error detectado durante la ejecución o una ejecución incorrecta del algoritmo):
Bloques de funcionesManipulación de EN/ENO con bloques de funciones que (sólo) tienen un enlace como parámetro de salida:
Si EN de FunctionBlock_1 se define como "0", la conexión de salida OUT de FunctionBlock_1 conserva el estado que tenía en el último ciclo ejecutado correctamente. Manipulación de EN/ENO con bloques de funciones que tienen una variable y un enlace como parámetros de salida:
Si EN de FunctionBlock_1 se define como "0", la conexión de salida OUT de FunctionBlock_1 conserva el estado que tenía en el último ciclo ejecutado correctamente. La variable OUT1 del mismo pin conserva su estado anterior o se puede modificar de forma externa sin influir en la conexión. La variable y el enlace se guardan de forma independiente entre sí.
33002522 05/2010 25
Tipos de bloques y utilización
Funciones/procedimientosComo se define en IEC61131-3, no se han definido las salidas de las funciones desactivadas (entrada EN definida como "0"). (Esto es aplicable a los procedimientos.) A continuación se explican los estados de salida en este caso:
Manipulación de EN/ENO con funciones/procedimientos que (sólo) tienen un enlace como parámetro de salida:
Si EN de Function/Procedure_1 se establece en "0", la conexión de salida OUT de Function/Procedure_1 también se establece en "0". Manipulación de EN/ENO con bloques de funciones que tienen una variable y un enlace como parámetros de salida:
Si EN de Function/Procedure_1 se establece en "0", la conexión de salida OUT de Function/Procedure_1 también se establece en "0". La variable OUT1 del mismo pin conserva su estado anterior o se puede modificar de forma externa sin influir en la conexión. La variable y el enlace se guardan de forma independiente entre sí.
El comportamiento del FFB no depende de si los FFB se llaman sin EN/ENO o con EN=1.
26 33002522 05/2010
Tipos de bloques y utilización
Llamada de FFB condicional/incondicional
Las llamadas "incondicionales" o "condicionales" son posibles con cada FFB. La condición se lleva a cabo vinculando previamente la entrada EN.
EN conectadollamadas condicionales (el FFB sólo se procesa si EN = 1)EN mostrado, ocultado y marcado como TRUE, o mostrado y no ocupadollamadas incondicionales (FFB se procesa de manera independiente de EN)
NOTA: Para bloques de funciones deshabilitados (EN = 0) con una función de tiempo interna (por ejemplo, DELAY), el tiempo sigue avanzando, ya que se calcula con la ayuda de un reloj del sistema, y por tanto es independiente del ciclo de programa y de la apertura del bloque.
Nota para IL y ST
El uso de EN y ENO sólo es posible en los lenguajes de texto para una llamada FFB formal, por ejemplo,
MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2, ENO=>error, OUT1=>result1, OUT2=>result2);
La asignación de variables a ENO se debe llevar a cabo con el operador =>.
Con una llamada no formal, EN y ENO no se pueden utilizar.
ATENCIÓNEQUIPO DE APLICACIÓN INESPERADO
No deshabilite los bloques de funciones con una función de tiempo interna durante el funcionamiento.
Si no se siguen estas instrucciones pueden producirse lesiones personales o daños en el equipo.
33002522 05/2010 27
Tipos de bloques y utilización
28 33002522 05/2010
33002522 05/2010
2
Disponibilidad del bloque
33002522 05/2010
Disponibilidad de los bloques en diferentes plataformas de hardware
Disponibilidad del bloque en varias plataformas de hardware
Introducción
No todos los bloques están disponibles para todas las plataformas de hardware. Los bloques disponibles para su plataforma de hardware se encuentran en las tablas siguientes.
Matrices
Disponibilidad de los bloques:
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
ADD_***_*** EF - + + +
AND_***_*** EF - + + +
COPY_***_*** EF - + + +
DIV_***_*** EF - + + +
EQUAL_*** EF - + + +
FIND_EQ_*** EF - + + +
FIND_EQP_*** EF - + + +
FIND_GT_*** EF - + + +
FIND_LT_*** EF - + + +
LENGHT_*** EF - + + +
MAX_*** EF - + + +
MIN_*** EF - + + +
MOD_***_*** EF - + + +
MOVE_***_*** (asignación directa)
Procedimiento - + + +
MOVE_***_*** (conversión)
Procedimiento - + + +
29
Disponibilidad del bloque
CLC_INT
Disponibilidad de los bloques:
MUL_***_*** EF - + + +
NOT_*** EF - + + +
OCCUR_*** EF - + + +
OR_***_*** EF - + + +
ROL_*** Procedimiento - + + +
ROR_*** Procedimiento - + + +
SORT_*** Procedimiento - + + +
SUB_***_*** EF - + + +
SUM_*** EF - + + +
SWAP_*** Procedimiento - + + +
XOR_***_*** EF - + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
PID_INT Procedimiento - + + +
PWM_INT Procedimiento - + + +
SERVO_INT Procedimiento - + + +
Leyenda:
+ Sí
- No
30 33002522 05/2010
Disponibilidad del bloque
Comparación
Disponibilidad de los bloques:
Fecha y hora
Disponibilidad de los bloques:
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
EQ EF + + + +
GE EF + + + +
GT EF + + + +
LE EF + + + +
LT EF + + + +
NE EF + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
ADD_***_TIME EF + + + +
DIVTIME EF + + + +
MULTIME EF + + + +
SUB_***_*** EF + + + +
SUB_***_TIME EF + + + +
Leyenda:
+ Sí
- No
33002522 05/2010 31
Disponibilidad del bloque
Lógica
Disponibilidad de los bloques:
Matemáticas
Disponibilidad de los bloques:
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
AND EF + + + +
F_TRIG EFB + + + +
FE EF - + + +
NOT EF + + + +
OR EF + + + +
R_TRIG EFB + + + +
RE EF - + + +
RESET Procedimiento
- + + +
ROL EF + + + +
ROR EF + + + +
RS EFB + + + +
SET Procedimiento
- + + +
SHL EF + + + +
SHR EF + + + +
SR EFB + + + +
TRIGGER EFB - + + +
XOR EF + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque Definido en la IEC 61131-3
M340 Premium Quantum
ABS EF + + + +
ACOS EF + + + +
ADD EF + + + +
ADD_TIME EF + + + +
32 33002522 05/2010
Disponibilidad del bloque
ASIN EF + + + +
ATAN EF + + + +
COS EF + + + +
DEC Procedimiento - + + +
DIV EF + + + +
DIVMOD Procedimiento - + + +
EXP EF + + + +
EXPT_REAL EF + + + +
INC Procedimiento - + + +
LN EF + + + +
LOG EF + + + +
MOD EF + + + +
MOVE EF + + + +
MUL EF + + + +
NEG EF - + + +
SIGN EF - + + +
SIN EF + + + +
SQRT EF DINT: -INT: -REAL: +
+ + +
SUB EF + + + +
SUB_TIME EF + + + +
TAN EF + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque Definido en la IEC 61131-3
M340 Premium Quantum
33002522 05/2010 33
Disponibilidad del bloque
Estadística
Disponibilidad de los bloques:
Cadena de caracteres
Disponibilidad de los bloques:
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
AVE EF - + + +
LIMIT EF + + + +
LIMIT_IND Procedimiento
- + + +
MAX EF + + + +
MIN EF + + + +
MUX EF + + + +
SEL EF + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
CONCAT_STR EF - + + +
DELETE_INT EF + + + +
EQUAL_STR EF + + + +
FIND_INT EF + + + +
INSERT_INT EF + + + +
LEFT_INT EF + + + +
LEN_INT EF + + + +
MID_INT EF + + + +
REPLACE_INT EF + + + +
RIGHT_INT EF + + + +
Leyenda:
+ Sí
- No
34 33002522 05/2010
Disponibilidad del bloque
Temporizadores y contadores
Disponibilidad de los bloques:
Tipo a tipo
Disponibilidad de los bloques:
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
CTD EFB + + + +
CTD_*** EFB - + + +
CTU EFB + + + +
CTU_*** EFB - + + +
CTUD EFB + + + +
CTUD_*** EFB - + + +
TOF EFB + + + +
TON EFB + + + +
TP EFB + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
ARINT_TO_DATE EF - + + +
ARINT_TO_DT EF - + + +
ARINT_TO_TOD EF - + + +
ASCII_TO_STRING EF - + + +
ASCII_TO_STRING_INV EF - + + +
BCD_TO_INT EF + + + +
BIT_TO_BYTE EF - + + +
BIT_TO_WORD EF - + + +
BOOL_TO_*** EF + + + +
BYTE_AS_WORD EF - + + +
BYTE_TO_BIT Procedimiento - + + +
BYTE_TO_*** EF + + + +
DATE_TO_ARINT EF + + + +
33002522 05/2010 35
Disponibilidad del bloque
DATE_TO_STRING EF + + + +
DBCD_TO_*** EF - + + +
DEG_TO_RAD EF - + + +
DINT_AS_WORD Procedimiento - + + +
DINT_TO_*** EF + + + +
DINT_TO_DBCD EF - + + +
DINT_TO_STRING EF + + + +
DT_TO_ARINT EF + + + +
DT_TO_STRING EF + + + +
DWORD_TO_*** EF + + + +
GRAY_TO_INT EF - + + +
INT_AS_DINT EF - + + +
INT_TO_*** EF + + + +
INT_TO_BCD EF - + + +
INT_TO_DBCD EF - + + +
INT_TO_STRING EF + + + +
RAD_TO_DEG EF - + + +
REAL_AS_WORD Procedimiento - + + +
REAL_TO_*** EF + + + +
REAL_TO_STRING EF + + + +
REAL_TRUNC_*** EF + + + +
STRING_TO_ASCII EF - + + +
STRING_TO_ASCII_INV EF - + + +
STRING_TO_*** EF + + + +
TIME_AS_WORD Procedimiento - + + +
TIME_TO_*** EF + + + +
TIME_TO_STRING EF + + + +
TOD_TO_ARINT EF + + + +
TOD_TO_STRING EF + + + +
UDINT_AS_WORD Procedimiento - + + +
UDINT_TO_*** EF + + + +
UINT_TO_*** EF + + + +
WORD_AS_BYTE Procedimiento - + + +
WORD_AS_DINT EF - + + +
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
36 33002522 05/2010
Disponibilidad del bloque
WORD_AS_REAL EF - + + +
WORD_AS_TIME EF - + + +
WORD_AS_UDINT EF - + + +
WORD_TO_BIT Procedimiento - + + +
WORD_TO_*** EF + + + +
Leyenda:
+ Sí
- No
Nombre del bloque Tipo de bloque
Definido en la IEC 61131-3
M340 Premium Quantum
33002522 05/2010 37
Disponibilidad del bloque
38 33002522 05/2010
33002522 05/2010
II
Tablas
33002522 05/2010
Tablas
Vista general
En esta parte se describen las funciones y blqoues de función elementales de la familia Tablas.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
3 ADD_***_***: Adición de un número a elementos de una matriz o adición de dos matrices
41
4 AND_***_***: Y lógico entre matrices y variables 45
5 COPY_•••••_•••••: Copia en matrices 49
6 DIV_***_***: División de matrices 53
7 EQUAL_***: Comparación de dos matrices 57
8 FIND_EQ_***: Primer elemento de una matriz igual a un valor determinado
59
9 FIND_EQP_***: Primer elemento de una matriz igual a un valor comenzando por un rango determinado
63
10 FIND_GT_***: Primer elemento de una matriz mayor que un valor determinado
67
11 FIND_LT_***: Primer elemento de una matriz menor que un valor determinado
71
12 LENGTH_***: Longitud de una matriz 75
13 MAX_***: Valor máximo de los elementos de la matriz 79
14 MIN_***: Valor mínimo de los elementos de la matriz 81
15 MOD_***_***: Resto de la división de matrices 83
16 MOVE_***_***: Asignación a matrices 87
17 MOVE_***_***: Conversión de matrices 89
18 MUL_***_***: Multiplicación de matrices 91
39
Tablas
19 NOT_***: Negación lógica de matrices 95
20 OCCUR_***: Aparición de un valor en una matriz 97
21 OR_***_***: O lógico entre matrices y variables 99
22 ROL_***: Desplazamiento hacia la izquierda 103
23 ROR_***: Desplazamiento hacia la derecha 105
24 SORT_***: Orden ascendente o descendente 107
25 SUB_***_***: Resta de matrices 109
26 SUM_***: Suma de los elementos de la matriz 113
27 SWAP_***: Permutación de los bytes de una matriz 115
28 XOR_***_***: O exclusivo entre matrices 117
Capítulo Nombre del capítulo Página
40 33002522 05/2010
33002522 05/2010
3
ADD_***_***
33002522 05/2010
ADD_***_***: Adición de un número a elementos de una matriz o adición de dos matrices
Descripción
Descripción de la función
La función ADD_***_*** añade un número a los elementos de una matriz o une dos matrices.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles para añadir un número a los elementos de una matriz son las siguientes:
ADD_ARINT_INT (adición de cada elemento de una matriz de INT a un INT)ADD_ARDINT_DINT (adición de cada elemento de una matriz de DINT a un DINT)
Las funciones disponibles para añadir los elementos de una matriz a los de otra son las siguientes:
ADD_ARINT (suma de los respectivos elementos de ambas matrices INT)ADD_ARDINT (suma de los respectivos elementos de ambas matrices DINT)
Representación en FBD
Representación aplicada a la suma de un entero y una matriz de enteros:
41
ADD_***_***
Representación en LD
Representación aplicada a la suma de un entero y una matriz de enteros:
Representación en IL
Representación aplicada a la suma de un entero y una matriz de enteros:
LD Input_IN1
ADD_ARINT_INT Input_IN2
ST Array1
Representación en ST
Representación aplicada a la suma de un entero y una matriz de enteros:
Array1 := ADD_ARINT_INT(Input_IN1,Input_IN2);
42 33002522 05/2010
ADD_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
La gestión del bit de sistema %S18 (véase página 477) es igual a la de las operaciones en palabras o palabras dobles.
Si una operación entre dos elementos define el bit %S18 (véase página 477) (desborde o división por cero), el resultado de dicha operación no es correcto, pero la operación se efectúa de forma correcta sobre los siguientes elementos.
Parámetro Tipo Comentario
Input_ IN1 ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
Input_IN1 puede ser un entero simple o do-ble, o bien una matriz de enteros simples o do-bles; n y m son enteros positivos, negativos o nulos.
Input_IN2 INT, DINT,ARRAY [n..m] OF INT,ARRAY [n..m] OF DINT
Input_ IN2 puede ser un entero simple o do-ble, o bien una matriz de enteros simples o do-bles; n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINT
Según el tipo de Input_ IN1 e Input_IN2, cada elemento de Array1 es la suma de:
un entero simple o doble y el elemento correspondiente de la matriz, olos elementos correspondientes de dos matrices.
33002522 05/2010 43
ADD_***_***
44 33002522 05/2010
33002522 05/2010
4
AND_***_***
33002522 05/2010
AND_***_***: Y lógico entre matrices y variables
Descripción
Descripción de la función
La función AND_***_*** lleva a cabo un Y lógico (bit a bit) entre:
los elementos de dos matrices,una variable de tipo único y los elementos de una matriz, olos elementos de una matriz y una variable de tipo único.
NOTA: El resultado es siempre una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles en la biblioteca general son:
AND_AREBOOL (Y lógico de dos matrices EBOOL)AND_ARWORD (Y lógico de dos matrices WORD)AND_ARWORD_WORD (Y lógico de cada elemento de una matriz WORD con un WORD)AND_ARWORD_WORD (Y lógico de cada elemento de una matriz DWORD con un DWORD)AND_ARDWORD (Y lógico de dos matrices DWORD).
Las funciones disponibles en la biblioteca obsoleta son:
AND_ARINT_INT (Y lógico de cada elemento de una matriz INT con un INT)AND_ARDINT_DINT (Y lógico de cada elemento de una matriz DINT con un DINT)AND_ARINT (Y lógico de cada elemento de una matriz INT con cada elemento correspondiente a otra matriz INT)AND_ARDINT (Y lógico de cada elemento de una matriz INT con cada elemento correspondiente a otra matriz DINT)
45
AND_***_***
Representación en FBD
Representación aplicada a una cadena de 16 bits y una matriz de cadenas de 16 bits:
Representación en LD
Representación aplicada a una cadena de 16 bits y una matriz de cadenas de 16 bits:
Representación en IL
Representación aplicada a una cadena de 16 bits y una matriz de cadenas de 16 bits:
LD Input_IN1
AND_ARWORD_WORD Input_IN2
ST Array1
Representación en ST
Representación aplicada a una cadena de 16 bits y una matriz de cadenas de 16 bits:
Array1:= AND_ARWORD_WORD(Input_IN1,Input_IN2);
46 33002522 05/2010
AND_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Input_IN1 ARRAY [n..m] OF EBOOL WORDARRAY [n..m] OF WORD DWORDARRAY [n..m] OF DWORD INTARRAY [n..m] OF INT DINTARRAY [n..m] OF DINT
n y m son los límites máximo y mínimo.
Input_IN2 ARRAY [n..m] OF EBOOL WORDARRAY [n..m] OF WORD DWORDARRAY [n..m] OF DWORD INTARRAY [n..m] OF INT DINTARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF EBOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
Los elementos de Array1 son el resultado del Y lógico (bit a bit) entre Input_IN1 e Input_IN2, que pueden ser, respectivamente:
una matriz y una variable única, odos matrices.
33002522 05/2010 47
AND_***_***
48 33002522 05/2010
33002522 05/2010
5
COPY_•••••_•••••
33002522 05/2010
COPY_•••••_•••••: Copia en matrices
Descripción
Descripción de la función
La función COPY_•••••_••••• copia una serie de elementos contiguos de una matriz a otra. Las matrices son de tipos diferentes o idénticos, y el área de destino se establece mediante los parámetros de la función.
Pueden configurarse los parámetros adicionales EN y ENO.
NOTA: La función COPY_•••••_••••• puede provocar valores de datos inesperados. Por ejemplo, copiar valores de entrada en valores de salida puede provocar daños en los datos y un comportamiento inesperado de la aplicación.
Funciones disponibles
Las funciones disponibles son las siguientes:COPY_AREBOOL_ARINTCOPY_AREBOOL_AREBOOLCOPY_AREBOOL_ARDINTCOPY_ARINT_AREBOOLCOPY_ARDINT_AREBOOL
ADVERTENCIACOMPORTAMIENTO INESPERADO DE LA APLICACIÓN
Compruebe que los datos que se escriben en la matriz de destino son válidos cuando utilice la función COPY_•••••_•••••.
Si no se siguen estas instrucciones pueden producirse lesiones personales graves o mortales o daños en el equipo.
49
COPY_•••••_•••••
Representación de FBD
Representación aplicada a la asignación del área de una matriz de enteros al área de una matriz de bits:
Representación de LD
Representación aplicada a la asignación del área de una matriz de enteros al área de una matriz de bits:
Representación de IL
Representación aplicada a la asignación del área de una matriz de enteros al área de una matriz de bits:
LD Array1
COPY_ARINT_AREBOOL Begin_Row, Element_Number, Destination_Row
ST Result_Array
Representación de ST
Representación aplicada a la asignación del área de una matriz de enteros al área de una matriz de bits:
Result_Array:= COPY_ARINT_AREBOOL(Array1, Begin_Row, Element_Number, Destination_Row);
50 33002522 05/2010
COPY_•••••_•••••
Descripción de parámetros
La tabla siguiente describe los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
NOTA: Si el número de elementos que se va a extraer es mayor que el tamaño restante, comenzando por el rango Begin_Row, la función extrae todos los elementos de Begin_Row hasta el último elemento de la matriz.
Si el número de elementos que se va a extraer es mayor que el espacio disponible, comenzando por el rango Destination_Row, la función de copia se ejecuta hasta el último elemento de la matriz.
Un valor negativo de Begin_Row, Element_Number y Destination_Row se interpretará como nulo.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF EBOOL, ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Begin_Row INT Rango del primer elemento que se va a copiar de la matriz Array1.Nota: el primer elemento de la matriz tiene el rango 0.
Element_Number INT Número de elementos que se van a copiar de la matriz Array1.
Destination_Row INT Rango de destino de la matriz Result_Array.
Parámetro Tipo Comentario
Result_Array ARRAY [n..m] OF EBOOL, ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.Matriz de destino que contiene los elementos seleccionados de Array1.
33002522 05/2010 51
COPY_•••••_•••••
52 33002522 05/2010
33002522 05/2010
6
DIV_***_***
33002522 05/2010
DIV_***_***: División de matrices
Descripción
Descripción de la función
La función DIV_***_*** lleva a cabo la división de:
un número entre los elementos de una matriz,los elementos de una matriz entre un número, o
los elementos de una matriz entre los elementos correspondientes de otra matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles para dividir un número entre los elementos de una matriz son las siguientes:
DIV_INT_ARINTDIV_DINT_ARDINT
Las funciones disponibles para dividir los elementos de una matriz entre un número son las siguientes:
DIV_ARINT_INTDIV_ARDINT_DINT
Las funciones disponibles para dividir los elementos de una matriz entre los elementos correspondientes de otra matriz son las siguientes:
DIV_ARINTDIV_ARDINT
53
DIV_***_***
Representación en FBD
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Representación en LD
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Representación en IL
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
LD Input_IN1
DIV_INT_ARINT Input_IN2
ST Array1
Representación en ST
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Array1:= DIV_INT_ARINT(Input_IN1,Input_IN2);
54 33002522 05/2010
DIV_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
La gestión del bit de sistema %S18 (véase página 477) es igual a la de las operaciones en palabras o palabras dobles. En caso de división por cero, el valor del resultado es igual al valor del numerador.
Si una operación entre dos elementos define el bit %S18 (véase página 477) (desborde o división por cero), el resultado de dicha operación no es correcto, pero la operación se efectúa de forma correcta sobre los siguientes elementos.
Parámetro Tipo Comentario
Input_IN1 INT,DINT,ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
Input_IN1 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Input_IN2 INT, DINT,ARRAY [n..m] OF INT,ARRAY [n..m] OF DINT
Input_ IN2 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINT
Según el tipo de Input_IN1 e Input_IN2, cada elemento de Array1 es la división de:
un entero simple o doble Input_IN1 entre el elemento correspondiente de la matriz Input_IN2,los elementos de la matriz Input_IN1 entre enteros simples o dobles Input_IN2, olos elementos de la matriz Input_IN1 entre los elementos correspondientes de la matriz Input_ IN2.
33002522 05/2010 55
DIV_***_***
56 33002522 05/2010
33002522 05/2010
7
EQUAL_****
33002522 05/2010
EQUAL_***: Comparación de dos matrices
Descripción
Descripción de la función
La función EQUAL_*** compara dos matrices, elemento a elemento.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:EQUAL_ARWORDEQUAL_ARDWORDEQUAL_ARINTEQUAL_ARDINTEQUAL_ARREAL
Representación en FBD
Representación aplicada a matrices de enteros:
Representación en LD
Representación aplicada a matrices de enteros:
57
EQUAL_****
Representación en IL
Representación aplicada a matrices de enteros:
LD Array1
EQUAL_ARINT Array2, Position
ST Equal1
Representación en ST
Representación aplicada a matrices de enteros:
Equal1:= EQUAL_ARINT(Array1, Array2, Position);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, el resultado de la función contiene -2, y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Array2 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Posición INT Rango del primer elemento desde el que se inicia la búsqueda.
Parámetro Tipo Comentario
Equal1 INT Rango de los primeros elementos distintos. Si las dos primeras matrices son equivalentes, Equal1 = -1.
58 33002522 05/2010
33002522 05/2010
8
FIND_EQ_***
33002522 05/2010
FIND_EQ_***: Primer elemento de una matriz igual a un valor determinado
Descripción
Descripción de la función
La función FIND_EQ_*** busca el primer elemento de una matriz igual a un valor determinado.
NOTA: Antes de comenzar la búsqueda, el bloque escribe de forma inmediata -1 en el OUT de salida para indicar que no se ha encontrado el valor vinculado a IN2. A continuación, el bloque comienza la búsqueda y actualiza el OUT de salida con el valor de rangos del primer elemento que cumple los criterios de búsqueda.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son las siguientes:FIND_EQ_ARWORD,FIND_EQ_ARDWORD,FIND_EQ_ARINT,FIND_EQ_ARDINT yFIND_EQ_ARREAL.
Representación en FBD
Representación aplicada a una matriz de enteros:
59
FIND_EQ_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
FIND_EQ_ARINT Value1
ST Row_Value1
Representación en ST
Representación aplicada a una matriz de enteros:
Row_Value1:= FIND_EQ_ARINT(Array1, Value1);
60 33002522 05/2010
FIND_EQ_***
Descripción de parámetros
En la tabla siguiente se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de tiempo de ejecución
Cuando la matriz contiene un valor no válido, o si Value1 es un valor no válido, el resultado de la función contiene -2, y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Value1 INT, DINT, WORD , DWORD, REAL.
Valor cuyo rango se busca en Array1. Es del mismo tipo que los elementos de la matriz Array 1.
Parámetro Tipo Comentario
Row_Value1 INT Rango del primer elemento de Array1 igual a Value1. Si ninguno de los elementos de la matriz es igual a Value1, entonces Row_Value1 = -1
33002522 05/2010 61
FIND_EQ_***
62 33002522 05/2010
33002522 05/2010
9
FIND_EQP_***
33002522 05/2010
FIND_EQP_***: Primer elemento de una matriz igual a un valor comenzando por un rango determinado
Descripción
Descripción de la función
La función FIND_EQP_*** busca el primer elemento de una matriz igual a un valor comenzando por un rango determinado.
NOTA: Antes de comenzar la búsqueda, el bloque escribe de forma inmediata -1 en el OUT de salida para indicar que no se ha encontrado el valor vinculado a IN2. A continuación, el bloque comienza la búsqueda y actualiza el OUT de salida con el valor de rangos del primer elemento que cumple los criterios de búsqueda.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:FIND_EQP_ARWORDFIND_EQP_ARDWORDFIND_EQP_ARINTFIND_EQP_ARDINTFIND_EQP_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
63
FIND_EQP_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
FIND_EQP_ARINT Value1, Begin1
ST Row_Value1
Representación en ST
Representación aplicada a una matriz de enteros:
Row_Value1:= FIND_EQP_ARINT(Array1, Value1, Begin1);
64 33002522 05/2010
FIND_EQP_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, o si Value1 es un valor no válido, el resultado de la función contiene -2, y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Value1 WORD, DWORD, INT, DINT, REAL.
Valor cuyo rango se busca en Array1.Es del mismo tipo que los elementos de la matriz Array 1.
Begin1 INT Rango desde el que comienza la búsqueda.
Parámetro Tipo Comentario
Row_Value1 INT Rango del primer elemento de Array1 igual a Value1. Si ninguno de los elementos de la matriz es igual a Value1, entonces Row_Value1 = -1Nota: Row_Value1 indica el rango con respecto al inicio de la matriz.
33002522 05/2010 65
FIND_EQP_***
66 33002522 05/2010
33002522 05/2010
10
FIND_GT_***
33002522 05/2010
FIND_GT_***: Primer elemento de una matriz mayor que un valor determinado
Descripción
Descripción de la función
La función FIND_GT_*** busca el primer elemento de una matriz mayor que un valor determinado.
NOTA: Antes de comenzar la búsqueda, el bloque escribe de forma inmediata -1 en el OUT de salida para indicar que no se ha encontrado el valor vinculado a IN2. A continuación, el bloque comienza la búsqueda y actualiza el OUT de salida con el valor de rangos del primer elemento que cumple los criterios de búsqueda.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:FIND_GT_ARWORDFIND_GT_ARDWORDFIND_GT_ARINTFIND_GT_ARDINTFIND_GT_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
67
FIND_GT_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
FIND_GT_ARINT Value1
ST Row_Value1
Representación en ST
Representación aplicada a una matriz de enteros:
Row_Value1:= FIND_GT_ARINT(Array1, Value1);
68 33002522 05/2010
FIND_GT_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, o si Value1 es un valor no válido, el resultado de la función contiene -2, y el bit %S18 (véase página 477) = 1.
Entrada Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Value1 WORD, DWORD, INT , DINT, REAL
Valor para el que se busca el rango del primer valor mayor en Array1.Es del mismo tipo que los elementos de la matriz Array 1.
Salida Tipo Comentario
Row_Value1 INT Rango del primer elemento de Array1 > Value1. Si ninguno de los elementos de la matriz es mayor que Value1, entonces Row_Value1 = -1
33002522 05/2010 69
FIND_GT_***
70 33002522 05/2010
33002522 05/2010
11
FIND_LT_***
33002522 05/2010
FIND_LT_***: Primer elemento de una matriz menor que un valor determinado
Descripción
Descripción de la función
La función FIND_LT_*** busca el primer elemento de una matriz menor que un valor determinado.
NOTA: Antes de comenzar la búsqueda, el bloque escribe de forma inmediata -1 en el OUT de salida para indicar que no se ha encontrado el valor vinculado a IN2. A continuación, el bloque comienza la búsqueda y actualiza el OUT de salida con el valor de rangos del primer elemento que cumple los criterios de búsqueda.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:FIND_LT_ARWORDFIND_LT_ARDWORDFIND_LT_ARINTFIND_LT_ARDINTFIND_LT_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
71
FIND_LT_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
FIND_LT_ARINT Value1
ST Row_Value1
Representación en ST
Representación aplicada a una matriz de enteros:
Row_Value1:= FIND_LT_ARINT(Array1, Value1);
72 33002522 05/2010
FIND_LT_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, o si Value1 es un valor no válido, el resultado de la función contiene -2, y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Value1 WORD , DWORD , INT , DINT, REAL
Valor para el que se busca el rango del primer valor menor en Array1.Es del mismo tipo que los elementos de la matriz Array 1.
Parámetro Tipo Comentario
Row_Value1 INT Rango del primer elemento de Array1 < Value1. Si ninguno de los elementos de la matriz es menor que Value1, entonces Row_Value1 = -1
33002522 05/2010 73
FIND_LT_***
74 33002522 05/2010
33002522 05/2010
12
LENGTH_***
33002522 05/2010
LENGTH_***: Longitud de una matriz
Descripción
Descripción de la función
La función LENGTH_*** calcula la longitud de una matriz. Se usa principalmente con los DFB, cuando las matrices no se declaran de forma explícita.
Se pueden configurar los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:LENGTH_AREBOOLLENGTH_ARWORDLENGTH_ARDWORDLENGTH_ARINTLENGTH_ARDINTLENGTH_ARREALLENGTH_ARBOOLLENGTH_ARBYTELENGTH_ARDATELENGTH_ARDTLENGTH_ARSTRINGLENGTH_ARTIMELENGTH_ARTODLENGTH_ARUINTLENGTH_ARUDINT
Representación en FBD
Representación aplicada a una matriz de enteros:
75
LENGTH_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
LENGTH_ARINT
ST Length_Array1
Representación en ST
Representación:
Length_Array1:= LENGTH_ARINT(Array1);
76 33002522 05/2010
LENGTH_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF EBOOLARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REALARRAY [n..m] OF BOOLARRAY [n..m] OF BYTEARRAY [n..m] OF DATEARRAY [n..m] OF DTARRAY [n..m] OF STRINGARRAY [n..m] OF TIMEARRAY [n..m] OF TODARRAY [n..m] OF UINTARRAY [n..m] OF UDINT
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Length_Array1 INT Longitud de la matriz (número de elementos de la matriz).
33002522 05/2010 77
LENGTH_***
78 33002522 05/2010
33002522 05/2010
13
MAX_***
33002522 05/2010
MAX_***: Valor máximo de los elementos de la matriz
Descripción
Descripción de la función
La función MAX_*** busca el valor máximo de los elementos de una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:MAX_ARWORDMAX_ARDWORDMAX_ARINTMAX_ARDINTMAX_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
79
MAX_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
MAX_ARINT
ST Max1
Representación en ST
Representación aplicada a una matriz de enteros:
Max1:= MAX_ARINT(Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, el resultado de la función contiene -1.#INF y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Max1 WORD, DWORD, INT , DINT, REAL
Valor máximo contenido en la matriz. Este resultado es del mismo tipo que los elementos de la matriz.
80 33002522 05/2010
33002522 05/2010
14
MIN_***
33002522 05/2010
MIN_***: Valor mínimo de los elementos de la matriz
Descripción
Descripción de la función
La función MIN_*** busca el valor mínimo de los elementos de una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:MIN_ARWORDMIN_ARDWORDMIN_ARINTMIN_ARDINTMIN_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
81
MIN_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
MIN_ARINT
ST Min1
Representación en ST
Representación aplicada a una matriz de enteros:
Min1:= MIN_ARINT(Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, el resultado de la función contiene 1.#INF y el bit %S18 (véase página 477) = 1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORDARRAY [n..m] OF DWORDARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Min1 WORD , DWORD, DINT, INT, REAL
Valor mínimo contenido en la matriz. Este resultado es del mismo tipo que los elementos de la matriz.
82 33002522 05/2010
33002522 05/2010
15
MOD_***_***
33002522 05/2010
MOD_***_***: Resto de la división de matrices
Descripción
Descripción de la función
La función MOD_***_*** calcula el resto de una división de:
un número entre los elementos de una matriz,los elementos de una matriz entre un número, o
los elementos de una matriz entre los elementos correspondientes de otra matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles para calcular el resto de la división de un número entre los elementos de una matriz son las siguientes:
MOD_INT_ARINTMOD_DINT_ARDINT
Las funciones disponibles para calcular el resto de la división de los elementos de una matriz entre un número son las siguientes:
MOD_ARINT_INTMOD_ARDINT_DINT
Las funciones disponibles para calcular el resto de la división de los elementos de una matriz entre los elementos respectivos de otra matriz son las siguientes:
MOD_ARINTMOD_ARDINT
83
MOD_***_***
Representación en FBD
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Representación en LD
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Representación en IL
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
LD Input_IN1
MOD_INT_ARINT Input_IN2
ST Array1
Representación en ST
Representación aplicada a la división de un entero entre los elementos de una matriz de enteros:
Array1:= MOD_INT_ARINT(Input_IN1,Input_IN2);
84 33002522 05/2010
MOD_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
La gestión del bit de sistema %S18 (véase página 477) es igual a la de las operaciones en palabras o palabras dobles. El resto de una división por cero es cero, y el bit de sistema se define como 1.
Si una operación entre dos elementos define el bit %S18 (véase página 477) (desborde o división por cero), el resultado de dicha operación no es correcto, pero la operación se efectúa de forma correcta sobre los siguientes elementos.
Parámetro Tipo Comentario
Input_ IN1 INT,DINT,ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
Input_IN1 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Input_IN2 INT,DINT,ARRAY [n..m] OF INT,ARRAY [n..m] OF DINT
Input_IN2 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINT
Según el tipo de Input_IN1 e Input_IN2, cada elemento de Array1 es el resto de la división de:
un entero simple o doble Input_IN1 entre el elemento correspondiente de la matriz Input_IN2,los elementos de la matriz Input_IN1 entre un entero simple o doble Input_IN2, olos elementos de la matriz Input_IN1 entre los elementos correspondientes de la matriz Input_IN2.
33002522 05/2010 85
MOD_***_***
86 33002522 05/2010
33002522 05/2010
16
MOVE_***_***
33002522 05/2010
MOVE_***_***: Asignación a matrices
Descripción
Descripción de la función
Una de las acciones de la función MOVE_***_*** es la asignación de un valor idéntico a cada elemento de una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:
MOVE_BOOL_AREBOOLMOVE_WORD_ARWORDMOVE_DWORD_ARDWORDMOVE_INT_ARINTMOVE_DINT_ARDINTMOVE_REAL_ARREAL
Representación en FBD
Representación aplicada a la asignación de un entero a una matriz de enteros:
Representación en LD
Representación aplicada a la asignación de un entero a una matriz de enteros:
87
MOVE_***_***
Representación en IL
Representación aplicada a la asignación de un entero a una matriz de enteros:
LD Val1
MOVE_INT_ARINT Array1
Representación en ST
Representación aplicada a la asignación de un entero a una matriz de enteros:
MOVE_INT_ARINT(Val1, Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Val1 BOOLWORDDWORDINTDINTREAL
Val1 contiene el valor que se va a asignar a cada elemento de la matriz Array1.Es del mismo tipo que los elementos de la matriz Array1.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF EBOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT ARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.Array1 es una matriz cuyos elementos tienen todos el valor Val1.
88 33002522 05/2010
33002522 05/2010
17
MOVE_***_***
33002522 05/2010
MOVE_***_***: Conversión de matrices
Descripción
Descripción de la función
Una de las acciones de la función MOVE_***_*** es la conversión de una matriz en un valor o de un valor en una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:
MOVE_AREBOOL_INT (conversión de una matriz EBOOL en un INT)MOVE_AREBOOL_DINT (conversión de una matriz EBOOL en un DINT)MOVE_INT_AREBOOL (conversión de un INT en una matriz EBOOL)MOVE_DINT_AREBOOL (conversión de un DINT en una matriz EBOOL)
Representación en FBD
Representación aplicada a la conversión de una matriz EBOOL en un entero:
Representación en LD
Representación aplicada a la conversión de una matriz EBOOL en un entero:
89
MOVE_***_***
Representación en IL
Representación aplicada a la conversión de una matriz EBOOL en un entero:
LD IN1
MOVE_AREBOOL_INT OUT1
Representación en ST
Representación aplicada a la conversión de una matriz EBOOL en un entero:
MOVE_AREBOOL_INT(IN1, OUT1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
IN1 INT DINTARRAY [n..m] OF EBOOL
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
OUT1 INTDINTARRAY [n..m] OF EBOOL
Si IN1 es una matriz EBOOL, entonces OUT1 es un INT o un DINT que contiene los elementos de IN1.Si IN1 no es una matriz, entonces OUT1 es un entero simple o doble, convertido a partir de una matriz booleana.
90 33002522 05/2010
33002522 05/2010
18
MUL_***_***
33002522 05/2010
MUL_***_***: Multiplicación de matrices
Descripción
Descripción de la función
La función MUL_***_*** lleva a cabo la multiplicación de:
los elementos de una matriz por un número, o
los elementos de una matriz por los elementos correspondientes de otra matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles para multiplicar los elementos de una matriz por un número son las siguientes:
MUL_ARINT_INTMUL_ARDINT_DINT
Las funciones disponibles para multiplicar los elementos de una matriz por los elementos correspondientes de otra matriz son las siguientes:
MUL_ARINTMUL_ARDINT
Representación en FBD
Representación aplicada a la multiplicación de los elementos de una matriz de enteros por un entero:
91
MUL_***_***
Representación en LD
Representación aplicada a la multiplicación de los elementos de una matriz de enteros por un entero:
Representación en IL
Representación aplicada a la multiplicación de los elementos de una matriz de enteros por un entero:
LD Input_IN1
MUL_ARINT_INT Input_IN2
ST Array1
Representación en ST
Representación aplicada a la multiplicación de un entero por los elementos de una matriz de enteros:
Array1:= MUL_ARINT_INT(Input_IN1,Input_IN2);
92 33002522 05/2010
MUL_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
La gestión del bit de sistema %S18 (véase página 477) es igual a la de las operaciones en palabras o palabras dobles.
Si una operación entre dos elementos define el bit %S18 (véase página 477) (desborde o división por cero), el resultado de dicha operación no es correcto, pero la operación se efectúa de forma correcta sobre los siguientes elementos.
Parámetro Tipo Comentario
Input_IN1 INT,DINT,ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
Input_IN1 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Input_IN2 INT, DINT, ARRAY [n..m] OF INT,ARRAY [n..m] OF DINT
Input_IN2 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINT
Según el tipo de Input_IN1 e Input_IN2, cada elemento de Array1 es la multiplicación de:
un entero simple o doble Input_IN1 por el elemento correspondiente de la matriz Input_IN2,los elementos de la matriz Input_IN1 por enteros simples o dobles Input_IN2, olos elementos de la matriz Input_IN1 por los elementos correspondientes de la matriz Input_IN2.
33002522 05/2010 93
MUL_***_***
94 33002522 05/2010
33002522 05/2010
19
NOT_***
33002522 05/2010
NOT_***: Negación lógica de matrices
Descripción
Descripción de la función
La función NOT_*** lleva a cabo una negación lógica (bit a bit) de los elementos de una matriz.
NOTA: El resultado es siempre una matriz.
Se pueden configurar los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:NOT_AREBOOLNOT_ARWORDNOT_ARDWORD
Las funciones disponibles en la biblioteca obsoleta son:
NOT_ARINT (negación lógica de cada elemento de una matriz INT).NOT_ARDINT (negación lógica de cada elemento de una matriz DINT).
Por ejemplo: %M11:3 := NOT_AREBOOL (%M1:3);
si %M1 es 1, %M2 es 0 y %M3 es 1, entonces, %M11 será 0, %M12 será 1 y %M13 será 0.
Representación en FBD
Representación aplicada a una cadena de 16 bits:
95
NOT_***
Representación en LD
Representación aplicada a una cadena de 16 bits:
Representación en IL
Representación aplicada a una cadena de 16 bits:
LD Array1
NOT_ARWORD
ST Result_Array
Representación en ST
Representación aplicada a una cadena de 16 bits:
Result_Array:= NOT_ARWORD(Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF EBOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Result_Array ARRAY [n..m] OF EBOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD
Los elementos de Result_Array son el resultado de la negación lógica (bit a bit) en Array1.Es del mismo tipo que los elementos de la matriz Array 1.
96 33002522 05/2010
33002522 05/2010
20
OCCUR_***
33002522 05/2010
OCCUR_***: Aparición de un valor en una matriz
Descripción
Descripción de la función
La función OCCUR_*** ofrece el número de elementos de una matriz iguales a un valor determinado.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:OCCUR_ARWORDOCCUR_ARDWORDOCCUR_ARINTOCCUR_ARDINTOCCUR_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
97
OCCUR_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
OCCUR_ARINT Value1
ST Occur_Number
Representación en ST
Representación aplicada a una matriz de enteros:
Occur_Number:= OCCUR_ARINT(Array1,Value1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
n y m son enteros positivos, negativos o nulos.
Value1 WORDDWORDINT DINT REAL
Valor cuyo número de apariciones se desea conocer en la matrizArray1.Es del mismo tipo que los elementos de la matriz Array 1.
Parámetro Tipo Comentario
Occur_Number INT Número de apariciones de Value1 en la matriz Array1.
98 33002522 05/2010
33002522 05/2010
21
OR_***_***
33002522 05/2010
OR_***_***: O lógico entre matrices y variables
Descripción
Descripción de la función
La función OR_***_*** lleva a cabo un O lógico (bit a bit) entre:
los elementos de dos matrices,una variable de tipo único y los elementos de una matriz, olos elementos de una matriz y una variable de tipo único.
NOTA: El resultado es siempre una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles en la biblioteca general son:
OR_AREBOOL (O lógico de dos matrices BOOL)OR_ARWORD (O lógico de dos matrices WORD)OR_ARWORD_WORD (O lógico de cada elemento de una matriz WORD con un WORD)OR_ARDWORD_DWORD (O lógico de cada elemento de una matriz DWORD con un DWORD)OR_ARDWORD (O lógico de dos matrices DWORD)
Las funciones disponibles en la biblioteca obsoleta son:
OR_ARINT_INT (O lógico de cada elemento de una matriz INT con un INT)OR_ARDINT_DINT (O lógico de cada elemento de una matriz DINT con un DINT)OR_ARINT (O lógico de cada elemento de una matriz INT con cada elemento correspondiente a otra matriz INT)OR_ARDINT (O lógico de cada elemento de una matriz DINT con cada elemento correspondiente a otra matriz DINT)
99
OR_***_***
Representación en FBD
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
Representación en LD
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
Representación en IL
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
LD IN1
OR_ARWORD_WORD Input_IN2
ST Array1
Representación en ST
Representación aplicada a una cadena de 16 bits y una matriz de cadenas de 16 bits:
Array1:= OR_ARWORD_WORD(Input_IN1,Input_IN2);
100 33002522 05/2010
OR_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Input_IN1 ARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Input_IN2 WORDDWORDINTDINTARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
Los elementos de Array1 son el resultado del O lógico (bit a bit) entre Input_IN1 e Input_IN2, que pueden ser, respectivamente:
una matriz y una variable única, odos matrices.
33002522 05/2010 101
OR_***_***
102 33002522 05/2010
33002522 05/2010
22
ROL_***
33002522 05/2010
ROL_***: Desplazamiento hacia la izquierda
Descripción
Descripción de la función
La función ROL_*** lleva a cabo un desplazamiento circular de los elementos de una matriz en sentido ascendente de los índices.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles en la biblioteca general son:
ROL_ARWORDROL_ARDWORDROL_ARINTROL_ARDINTROL_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
103
ROL_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Positions
ROL_ARINT Array1
Representación en ST
Representación aplicada a una matriz de enteros:
ROL_ARINT(Positions, Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de entrada y salida:
Parámetro Tipo Comentario
Positions INT Desplaza el valor según los índices ascendentes de la matriz.Ejemplo: Positions = 2.Nota: Si el valor de Positions es negativo o nulo, no se realiza ningún desplazamiento.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
Los elementos de Array1 se desplazan un número de posiciones igual a Positions. El desplazamiento se realiza según los índices ascendentes.Ejemplo: Con un registro de desplazamiento de 2, el elemento situado inicialmente en pri-mera posición se desplaza a la tercera (1+2), el segundo a la cuarta (2+2), ..., el penúltimo se desplaza a la primera posición y el último a la segunda.
104 33002522 05/2010
33002522 05/2010
23
ROR_***
33002522 05/2010
ROR_***: Desplazamiento hacia la derecha
Descripción
Descripción de la función
La función ROR_*** lleva a cabo un desplazamiento circular de los elementos de una matriz en sentido descendente de los índices.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles en la biblioteca general son:
ROR_ARWORDROR_ARDWORDROR_ARINTROR_ARDINTROR_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
105
ROR_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Positions
ROR_ARINT Array1
Representación en ST
Representación aplicada a una matriz de enteros:
ROR_ARINT(Positions, Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de entrada y salida:
Parámetro Tipo Comentario
Positions INT Desplaza el valor según los índices descendentes de la matriz.Ejemplo: Positions = 2.Nota: Si el valor de Positions es negativo o nulo, no se realiza ningún desplazamiento.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
Los elementos de Array1 se desplazan un número de posiciones igual a Positions. El desplazamiento se realiza según los indica-dores descendentes.Ejemplo: Con un registro de desplazamiento de 2, el elemento situado inicialmente en pri-mera posición se desplaza a la penúltima po-sición, el segundo a la última, el tercero a la primera (3-2), el cuarto a la segunda (4-2), etc.
106 33002522 05/2010
33002522 05/2010
24
SORT_***
33002522 05/2010
SORT_***: Orden ascendente o descendente
Descripción
Descripción de la función
La función SORT_*** ordena una matriz en orden ascendente o descendente y organiza los elementos ordenados en dicha matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:SORT_ARWORDSORT_ARDWORDSORT_ARINTSORT_ARDINTSORT_ARREAL
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
107
SORT_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Direction
SORT_ARINT Array1
Representación en ST
Representación aplicada a una matriz de enteros:
SORT_ARINT(Direction, Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de entrada y salida:
Parámetro Tipo Comentario
Direction INT Dirección del ordenamiento que se va a realizar:
Direction ≥ 0: orden ascendenteDirection < 0: orden descendente
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF WORD, ARRAY [n..m] OF DWORD ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
Matriz ordenada en la forma especificada en Direction; n y m son enteros positivos, negativos o nulos.
108 33002522 05/2010
33002522 05/2010
25
SUB_***_***
33002522 05/2010
SUB_***_***: Resta de matrices
Descripción
Descripción de la función
La función SUB_***_*** lleva a cabo la resta de:
los elementos de una matriz y un número,un número y los elementos de una matriz, o
los elementos de una matriz y los elementos correspondientes de otra matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles para restar los elementos de una matriz a un número o un número a los elementos de una matriz son las siguientes:
SUB_INT_ARINT (resta de cada elemento de una matriz de INT a un INT).SUB_DINT_ARDINT (resta de cada elemento de una matriz de DINT a un DINT).
SUB_ARINT_INT (resta de un INT a los elementos de una matriz de INT).SUB_ARDINT_DINT (resta de un DINT a los elementos de una matriz de DINT).
Las funciones disponibles para restar los elementos de una matriz a los elementos correspondientes de otra matriz son las siguientes:
SUB_ARINT (resta de los respectivos elementos de ambas matrices de INT)SUB_ARDINT (resta de los respectivos elementos de ambas matrices de DINT)
Representación en FBD
Representación aplicada a la resta de los elementos de una matriz de enteros y un entero:
109
SUB_***_***
Representación en LD
Representación aplicada a la resta de los elementos de una matriz de enteros y un entero:
Representación en IL
Representación aplicada a la resta de los elementos de una matriz de enteros y un entero:
LD Input_IN1
SUB_INT_ARINT Input_IN2
ST Array1
Representación en ST
Representación aplicada a la resta de los elementos de una matriz de enteros y un entero:
Array1:= SUB_INT_ARINT(Input_IN1,Input_IN2);
110 33002522 05/2010
SUB_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
La gestión del bit de sistema %S18 (véase página 477) es igual a la de las operaciones en palabras o palabras dobles.
Si una operación entre dos elementos define el bit %S18 (véase página 477) (desborde o división por cero), el resultado de dicha operación no es correcto, pero la operación se efectúa de forma correcta sobre los siguientes elementos.
Parámetro Tipo Comentario
Input_IN1 INT,DINT,ARRAY [n..m] OF INT, ARRAY [n..m] OF DINT
Input_IN1 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Input_IN2 INT, DINT, ARRAY [n..m] OF INT,ARRAY [n..m] OF DINT
Input_ IN2 puede ser un entero simple o doble, o bien una matriz de enteros simples o dobles; n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINT
Según el tipo de Input_IN1 e Input_IN2, cada elemento de Array1 es la resta de:
un entero simple o doble Input_IN1 y el elemento correspondiente de la matriz Input_IN2,los elementos de la matriz Input_IN1 y un entero simple o doble Input_IN2, olos elementos de la matriz Input_IN1 y los elementos correspondientes de la matriz Input_IN2.
33002522 05/2010 111
SUB_***_***
112 33002522 05/2010
33002522 05/2010
26
SUM_***
33002522 05/2010
SUM_***: Suma de los elementos de la matriz
Descripción
Descripción de la función
La función SUM_*** calcula la suma de los elementos de una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:SUM_ARINTSUM_ARDINTSUM_ARREAL
Fórmula
La fórmula es la siguiente:
Descripción:
Representación en FBD
Representación aplicada a una matriz de enteros:
Elemento Significado
Array1 Matriz declarada de la manera siguiente: ARRAY [n..m] OF ...
113
SUM_***
Representación en LD
Representación aplicada a una matriz de enteros:
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
SUM_ARINT
ST Sum1
Representación en ST
Representación aplicada a una matriz de enteros:
Sum1:= SUM_ARINT(Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Cuando la matriz contiene un valor no válido, la suma de sus elementos es 0.0 y el bit %S18 (véase página 477) = 1.
Cuando la suma de elementos supera el valor máximo autorizado, el valor se convierte en 1.#INF y el bit %S18 = 1
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF DINTARRAY [n..m] OF REAL
Matrices de enteros dobles o simples o matrices de reales; n y m son enteros negativos, positivos o nulos.
Parámetro Tipo Comentario
Sum1 INT, DINT, REAL Suma de elementos de matriz asignados a la entrada. La suma es del mismo tipo que los elementos de la matriz.
114 33002522 05/2010
33002522 05/2010
27
SWAP_***
33002522 05/2010
SWAP_***: Permutación de los bytes de una matriz
Descripción
Descripción de la función
La función SWAP_*** lleva a cabo una permutación de los bytes de menor valor y los bytes de mayor valor de los elementos de una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:SWAP_ARINTSWAP_ARWORD
Representación en FBD
Representación aplicada a una matriz de enteros:
Representación en LD
Representación aplicada a una matriz de enteros:
115
SWAP_***
Representación en IL
Representación aplicada a una matriz de enteros:
LD Array1
SWAP_ARINT
Representación en ST
Representación aplicada a una matriz de enteros:
SWAP_ARINT(Array1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada y salida:
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF INTARRAY [n..m] OF WORD
n y m son enteros positivos, negativos o nulos. En la salida, se han permutado los bytes de Array1.
116 33002522 05/2010
33002522 05/2010
28
XOR_***_***
33002522 05/2010
XOR_***_***: O exclusivo entre matrices
Descripción
Descripción de la función
La función XOR_***_*** lleva a cabo un O lógico exclusivo (bit a bit) entre:
los elementos de dos matrices,una variable de tipo único y los elementos de una matriz, olos elementos de una matriz y una variable de tipo único.
NOTA: El resultado es siempre una matriz.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles en la biblioteca general son:
XOR_AREBOOL (O lógico exclusivo de dos matrices BOOL)XOR_ARWORD (O lógico exclusivo de dos matrices WORD)XOR_ARWORD_WORD (O lógico exclusivo de cada elemento de una matriz WORD con un WORD)XOR_ARDWORD_DWORD (O lógico exclusivo de cada elemento de una matriz DWORD con un DWORD)XOR_ARDWORD (O lógico exclusivo de dos matrices DWORD)
Las funciones disponibles en la biblioteca obsoleta son:
XOR_ARINT_INT (O lógico exclusivo de cada elemento de una matriz INT con un INT)XOR_ARDINT_DINT (O lógico exclusivo de cada elemento de una matriz DINT con un DINT)XOR_ARINT (O lógico exclusivo de cada elemento de una matriz INT con cada elemento correspondiente a otra matriz INT)XOR_ARDINT (O lógico exclusivo de cada elemento de una matriz DINT con cada elemento correspondiente a otra matriz DINT)
117
XOR_***_***
Representación en FBD
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
Representación en LD
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
Representación en IL
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
LD Input_IN1
XOR_ARWORD_WORD Input_IN2
ST Array1
Representación en ST
Representación aplicada a una matriz de cadenas de 16 bits y una cadena de 16 bits:
Array1:= XOR_ARWORD_WORD(Input_IN1,Input_IN2);
118 33002522 05/2010
XOR_***_***
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
Input_IN1 ARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Input_IN2 WORDDWORDINTDINTARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
n y m son enteros positivos, negativos o nulos.
Parámetro Tipo Comentario
Array1 ARRAY [n..m] OF BOOL ARRAY [n..m] OF WORD ARRAY [n..m] OF DWORD ARRAY [n..m] OF INT ARRAY [n..m] OF DINT
Los elementos de Array1 son el resultado del O lógico exclusivo (bit a bit) entre Input_ IN1 e Input_IN2, que pueden ser, respectivamente:
una matriz y una variable única,una variable única y una matriz, odos matrices.
33002522 05/2010 119
XOR_***_***
120 33002522 05/2010
33002522 05/2010
III
CLC_INT
33002522 05/2010
CLC_INT
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia CLC_INT.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
29 Introducción a las funciones de regulación de enteros 123
30 PID_INT: Controlador PID 129
31 PWM_INT: Modulación del ancho de pulsos de un valor numérico 137
32 SERVO_INT: Función de variador 141
121
CLC_INT
122 33002522 05/2010
33002522 05/2010
29
Introducción a los EF de regulación
33002522 05/2010
Introducción a las funciones de regulación de enteros
Objeto
En este capítulo, se ofrece la información básica necesaria para el uso y la implantación de las funciones de regulación de enteros siguientes:
PID_INTPWM_INTSERVO_INT
Contenido de este capítulo
Este capítulo contiene los siguiente apartados:
Apartado Página
Presentación general 124
Principio del bucle de control 125
Metodología de desarrollo de una aplicación de control de proceso 126
Programación de una función de regulación 127
Comportamiento de las funciones en los modos de funcionamiento 128
123
Introducción a los EF de regulación
Presentación general
Generalidades
Las funciones de regulación son elementos básicos del lenguaje.
Permiten programar bucles de control.
Estas funciones están especialmente adaptadas para:
Responder a las necesidades del proceso secuencial que precise funciones de regulación auxiliar (ejemplos: máquinas de embalaje de film de plástico, máquinas de tratamiento de superficie, presas...),responder a las necesidades de los procesos de regulación simple (ejemplos: hornos de tratamiento de metales, hornos para cerámica, pequeños grupos frigoríficos...) yresponder a las situaciones particulares de control o de regulación mecánica cuyo tiempo de muestreo es crítico (ejemplos: regulación de pareja, regulación de velocidad).
NOTA: No existen limitaciones del número de funciones PID_INT en una aplicación. En la práctica, es el número máximo de módulos de entradas y de salidas que acepta el autómata y que limita el número de bucles.
Funciones disponibles
Las funciones de regulación básicas son las siguientes:
Función PID_INT para realizar una corrección de tipo PID_INT mixto (serie - paralelo),función PWM_INT para realizar las adaptaciones de modulación con duración en las salidas TON yfunción SERVO_INT para realizar las adaptaciones de comando de motor.
124 33002522 05/2010
Introducción a los EF de regulación
Principio del bucle de control
Presentación
El funcionamiento de un bucle de control comprende tres fases distintas:
La adquisición de datos:medida(s) proveniente(s) de los captadores del proceso (analógicos, codificadores),valor(es) proveniente(s), generalmente, de variables internas del autómata o de datos procedentes del terminal de operador.
la ejecución del algoritmo de regulación PID yel envío de los comandos adaptados a las características de los accionadores que se van a controlar a través de las salidas TON o analógicas.
El algoritmo PID elabora la señal de comando a partir de:
La medida muestreada por el módulo de entrada,el valor teórico fijado bien por el operador o bien por el programa ylos valores de diferentes parámetros del corrector.
La señal procedente del corrector se trata bien directamente mediante una tarjeta de salida analógica del autómata conectado al accionador, o bien a través de las adaptaciones PWM o SERVO en función de los tipos de accionador que se van a controlar en una tarjeta de salida TON del autómata.
Ilustración
La siguiente ilustración esquematiza el principio de un bucle de control.
33002522 05/2010 125
Introducción a los EF de regulación
Metodología de desarrollo de una aplicación de control de proceso
Esquema de principio
El siguiente esquema describe el encadenamiento de las tareas que se van a llevar a cabo durante la creación y la depuración de una aplicación de control de proceso (el orden establecido se proporciona a título informativo).
126 33002522 05/2010
Introducción a los EF de regulación
Programación de una función de regulación
Reglas de programación
Los parámetros de las funciones de regulación deben estar obligatoriamente definidos. Las funciones utilizan tres tipos de parámetros:
Parámetros de sólo lectura, que se tienen en cuenta al comienzo de la ejecución de la función,parámetros de sólo escritura, posicionados tras la ejecución de la función yparámetros de lectura y de escritura, cuyos contenidos se tienen en cuenta al comienzo de la ejecución de la función y que, a continuación, se vuelven a actualizar por los resultados de la función.
NOTA: Las funciones de regulación deben programarse en una tarea periódica (MAST periódica o FAST). No deben estar condicionadas.
Ajuste
Los parámetros de entrada de tipo palabra son variables analógicas expresadas en la escala [0, +10000] y se pueden conectar directamente a los captadores de medida a través de las palabras %IWr.m.c de las entradas analógicas.
Los parámetros de salida de tipo bit permiten dirigir los accionadores de tipo TON y se pueden conectar directamente a variables de tipo %Qr.m.c.
Del mismo modo, los parámetros de salida de tipo palabra permiten dirigir los accionadores de tipo analógico en la escala [0, +10000] y se pueden asignar directamente a variables de tipo %QWr.m.c.
Los parámetros de tipo tablas de enteros ARRAY [0..n] OF INT o %MWi:L reagrupan parámetros de usuarios y los datos necesarios para el funcionamiento interne de la función.
Si la longitud de una tabla es insuficiente, la función no se ejecuta.
NOTA: Para conservar los parámetros de ajuste de las funciones de regulación tras el arranque a frío, es necesario suprimir la opción de puesta a cero de %MWi (en la pantalla de configuración del procesador).
33002522 05/2010 127
Introducción a los EF de regulación
Comportamiento de las funciones en los modos de funcionamiento
Introducción
Este párrafo describe el comportamiento de las funciones en los diferentes casos de arranque:
Arranque en frío (nueva aplicación, cambio de tarjeta…),rearranque en caliente (retorno de red, sin cambio de contexto de aplicación) yprimera ejecución tras añadir una función por modificación en modo conectado.
Arranque en frío
Este tipo de arranque interviene para una nueva aplicación, un cambio de tarjeta
En el arranque en frío, el autómata puede arrancar automáticamente en RUN (según la configuración de la aplicación). Las funciones de correctores tienen un comportamiento de seguridad: modo manual, salidas a 0. Además, esto permite pasar el autómata a RUN sin efectuar el ajuste del PID y depurarlo después mediante el terminal de operador (el ajuste sólo se puede llevar a cabo en RUN).
Rearranque en caliente
Este tipo de rearranque interviene para un retorno de red, sin cambio de contexto de la aplicación.
En un retorno de red tras un corte (independientemente de su duración) y si el contexto de aplicación no se ha perdido o modificado, las funciones vuelven a ponerse en marcha en el estado antes del corte. Si el usuario desea otro comporta-miento, es de su responsabilidad comprobar el bit de sistema %S1 y asociar el tratamiento deseado (forzado en modo manual…).
NOTA: El reloj-calendario del autómata permite conocer la duración del último corte.
Agregación en modo conectado de una nueva llamada
Tras la agregación de una nueva llamada de función de regulación en modo conectado, se efectúa una inicialización igual al caso del rearranque en frío.
NOTA: para poder verla como una nueva función, ésta debe utilizar una nueva tabla de parámetros. Por ello, la eliminación de una función PID_INT, seguida de la agregación de una función PID_INT utilizando la misma tabla de parámetros, no se considera como una agregación de un nuevo PID. En este caso, el PID se ejecuta en el estado y con los parámetros del PID anterior.
128 33002522 05/2010
33002522 05/2010
30
PID_INT
33002522 05/2010
PID_INT: Controlador PID
Objeto
En este capítulo, se describe la función PID_INT.
Contenido de este capítulo
Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción de la función 130
Descripción de datos derivados 134
129
PID_INT
Descripción de la función
Descripción de la función
La función PID_INT lleva a cabo una regulación de tipo PID en entradas y salidas de tipo INT.
La medida y el valor teórico son datos analógicos con formato [0-10000] y proporcionan un comando analógico con un formato idéntico.
El EF PID_INT contiene las funciones siguientes:Algoritmo PID serie/paralelo,acción directa/inversa (según el signo de la ganancia KP),acción derivada en la medida o en la desviación,limitación alta y baja del valor teórico a [0 -10000],limitación alta y baja de la salida en modo automático,antisaturación de la acción integral,modos de funcionamiento Manual/Automático sin colisión tras cambio,control del acceso PID mediante el diálogo de operador yfuncionamiento en integrador para (KP = TD = 0).
NOTA:
Los parámetros de visualización empleados por el terminal de operador se expresan en unidades físicas.Para un funcionamiento correcto del PID, se debe respetar la escala completa; [0-1000] para la medida y el valor teórico.La introducción de una función PID se puede realizar en cualquier tarea periódica (MAST o FAST). La función no se debe condicionar.
Los parámetros adicionales EN y ENO se pueden configurar.
130 33002522 05/2010
PID_INT
Sinopsis de funcionamiento
La ilustración siguiente representa la sinopsis de funcionamiento de la función PID.
Representación en FBD
Representación:
33002522 05/2010 131
PID_INT
Representación en LD
Representación:
Representación en IL
Representación:
LD Input_Tag
PID_INT Input_Unit, Input_PV, In_Out_Auto, In_Out_Para, PID_Out
Representación en ST
Representación:
PID_INT(Input_Tag, Input_Unit, Input_PV, In_Out_Auto, In_Out_Para, PID_Out);
132 33002522 05/2010
PID_INT
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de entrada/salida:
En la tabla siguiente se describen los parámetros de salida:
Parámetro Tipo Comentario
Input_Tag STRING Nombre del PID utilizado por el terminal.Cadena de ocho caracteres.
Input_ Unit STRING Unidad de medida utilizada por el terminal.Cadena de seis caracteres.
Input_PV INT Entrada que representa la medida.Formato de la medida [0..10000].
Parámetro Tipo Comentario
In_Out_Auto EBOOL Bit de entrada/salida que indica y gestiona los modos de funcionamiento del PID y del terminal:
0: manual.1: automático.
In_Out_Para ARRAY [n..m] OF INT
n y m son enteros positivos, negativos o nulos. Tabla de entrada/salida de ajuste del PID. Los 16 primeros valores se describen a-continua-ción; los valores restante se utilizan para un tra-tamiento interno.Tabla de 43 enteros.
Parámetro Tipo Comentario
PID_Out INT Salida analógica del PID; si Ti=0, se agrega un offset de 5000 a la salida OUT en modo automático.Salida con formato [0;+10000].
33002522 05/2010 133
PID_INT
Descripción de datos derivados
Descripción de la tabla PARA
La tabla siguiente muestra los distintos parámetros de la tabla PARA:
Parámetro Rango Función
SP PARA[0] Consigna interna en formato 0–10.000.
OUT_MAN PARA[1] Valor de la salida manual de PID (entre 0 y 10.000).
KP PARA[2] Ganancia proporcional de PID (x100), con signo sin unidad (-10.000<KP<+10.000). El signo Kp determina la dirección de la acción de PID (negativo: directa, positivo: inverso).
TI PARA[3] El tiempo de integración de PID (entre 0 y 20.000) aparece en 0,1 segundos.
TD PARA[4] El tiempo diferencial de PID (entre 0 y 10.000) aparece en 0,1 segundos.
TS PARA[5] El periodo de muestreo de PID (entre 1 y 32.000) aparece en 0,01 segundos. El periodo de muestreo real será el múltiplo del periodo de la tarea en la que se presente el PID más cercano a TS.
OUT_MAX PARA[6] Límite superior de la salida de PID en modalidad automática (entre 0 y 10.000).
OUT_MIN PARA[7] Límite inferior de la salida de PID en modalidad automática (entre 0 y 10.000).
PV_DEV PARA[8].0 Elección de acción derivada 0 = variable en proceso, 1 = en desviación.
NO_BUMP PARA[8].4 Modalidad bumpless o no bumpless.0 = no bumpless, 1 = bumpless.
134 33002522 05/2010
PID_INT
NOTA:
La aplicación nunca debe modificar los demás parámetros que utiliza la gestión interna de PID.Los valores utilizados por el terminal se multiplican por 100 para admitir una visualización con dos figuras después de la coma decimal en el terminal (el terminal no utiliza el formato de coma flotante, pero admite un formato de punto fijo).
DEVAL_MMI PARA[8].8 = 1: inhibe la confirmación de PID por parte de la interfase hombre–máquina. = 0: el PID está operativo mediante la interfase hombre–máquina.Este bit posibilita evitar que el terminal no realice conversiones de escala en los PID no operativos y permite seleccionar los PID operativos, especialmente cuando hay más de nueve PID en la aplicación.
PV_SUP* PARA[9] Límite superior del rango de escala de medidas en una unidad física (x100) (entre -9.999.999 y +9.999.999).
PV_INF* PARA[11]PARA[12]
Estos dos enteros son, respectivamente, el de mayor valor y el de menor valor de un entero doble, que es el límite inferior del rango de la escala de medidas en una unidad física (x100) (entre -9.999.999 y + 9.999.999).
PV_MMI* PARA[13]PARA[14]
Estos dos enteros son, respectivamente, el de mayor valor y el de menor valor de un entero doble, que es la imagen de la medición en una unidad física (x100).
SP_MMI* PARA[15]PARA[16]
Estos dos enteros son, respectivamente, el de mayor valor y el de menor valor de un entero doble, que es la consigna del operador y la imagen de la consigna en una unidad física (x100).
* Valor utilizado por el terminal del operador.
Parámetro Rango Función
33002522 05/2010 135
PID_INT
Reglas
No hay ninguna alineación de consigna interna en la medición en modalidad manual.
La configuración de la escala sólo se produce al modificar una de las consignas (SP o DOP_SP).
El algoritmo sin la acción integral (TI = 0) implica la siguiente operación:
El algoritmo con la acción integral (TI <0) implica la siguiente operación:
En un arranque en frío, el PID vuelve a iniciarse en modalidad manual, con la salida en 0. Para imponer la modalidad automática o una salida manual que no esté en 0 tras un arranque en frío, deberá programar la secuencia de inicialización tras la llamada de PID.
Para La salida Con
OUT = KP [ t+ Dt] / 100 + 5.000 Dt = acción derivada
Para La salida Con
OUT = KP [ t+(TS/10.TI). t+ Dt]/100 OUT
= OUT + OUT
Dt = acción derivada
136 33002522 05/2010
33002522 05/2010
31
PWM_INT
33002522 05/2010
PWM_INT: Modulación del ancho de pulsos de un valor numérico
Descripción
Descripción de la función
La función PWM_INT lleva a cabo una regulación por anchura de impulso en una salida Todo o Nada. Se trata de una función que formula la salida del PID.
La anchura de los impulsos depende de la salida del PID (entrada INP de la función PWM) y del período de modulación.
NOTA: la introducción de una función PWM_INT puede realizarse en cualquier tarea periódica (MAST o FAST). La función no se debe condicionar.
Los parámetros adicionales EN y ENO se pueden configurar.
Sinopsis de funcionamiento
El siguiente esquema presenta el principio de funcionamiento de la función PWM:
Representación en FBD
Representación:
137
PWM_INT
Representación en LD
Representación:
Representación en IL
Representación:
LD Input_INP
PWM_INT In_Out_Para, PW_O_Out
Representación en ST
Representación:
PWM_INT(Input_INP, In_Out_Para, PW_O_Out);
138 33002522 05/2010
PWM_INT
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de entrada/salida:
En la tabla siguiente se describen los parámetros de salida:
Parámetro Tipo Comentario
Input_INP INT Valor analógico para modular la anchura de impulso (formato [0 - 10000])
Parámetro Tipo Comentario
In_Out_Para ARRAY [n..m] OF INT
n y m son enteros positivos, negativos o nulos.Tabla de entrada/salida de ajuste de la función. La primera palabra corresponde al parámetro T_MOD.Período de modulación expresado en 1/100e de segundo (entre 0 y 32767). T_MOD debe ser superior o igual al período de la tarea actual y debe ajustarse mediante el sistema para convertirse en un múltiplo entero de ésta.Los enteros siguientes se emplean en modo interno por la función y la aplicación nunca debe modificarlos.Tabla de 5 enteros.
Parámetro Tipo Comentario
PW_O _Out EBOOL Salida analógica del PID; si Ti=0, se agrega un offset de 5000 a la salida OUT en modo automático.
33002522 05/2010 139
PWM_INT
Anchura de impulso
En cada Top del período de modulación T_MOD, la duración de la activación en 10-
3 segundos de la salida PW_O_Out (PW_O) se calcula siguiendo la fórmula siguiente:
Estado 1 del período (expresado en 10-2 segundos) = INP * T_MOD / 1000
El cronograma siguiente muestra dicha fórmula:
Reglas prácticas
T_MOD = TS (donde TS es el período de muestreo del PID superior).
El período de la tarea actual (expresada en 10-3 segundos) es igual a:
(Resolución deseada)* 10 * T_MOD.
El PID se encuentra en la tarea MAST; el período de la MAST es de 50*10-3 s,,
TS = 500*10-2 s y la resolución deseada es de 1/50 (una duración de T_MOD debe contener al menos 50 períodos de la tarea actual).
Se toma T_MOD = TS = 500.
El período de la tarea actual donde se instala el PWM debe ser inferior a
500 * 10 / 50 =100 10-3 s.
La función PWM se puede, por lo tanto, programar en la tarea MAST.
La resolución será de 1/100.
140 33002522 05/2010
33002522 05/2010
32
SERVO_INT
33002522 05/2010
SERVO_INT: Función de variador
Descripción
Descripción de la función
La función SERVO_INT lleva a cabo un control de proceso con un accionador de tipo motor controlado por dos salidas Todo o Nada (UP y DOWN).
NOTA:
La introducción de una función SERVO_INT puede realizarse en cualquier tarea periódica (MAST o FAST). La función no se debe condicionar.Se debe conectar en cascada con la salida analógica de un PID. No se puede utilizar sola.
Cuando existe una posición de copiado, se efectúa un control de la posición de la válvula, a partir de las entradas Input_Inp (valor teórico) e Input_Pot (medida de posición).
Cuando el copiado no existe físicamente, el algoritmo deja de utilizar la salida absoluta del PID y emplea la variación de salida. La salida Out_Up (o Out_Down, según el signo de la variación) se pone a 1 durante un tiempo proporcional al tiempo de apertura del accionador y al valor de la variación. Además, se introduce la noción de tiempo mínimo de pulsos.
Los parámetros adicionales EN y ENO pueden configurarse.
Representación en FBD
Representación:
141
SERVO_INT
Representación en LD
Representación:
Representación en IL
Representación:
LD Input_Inp
SERVO_INT Input_Pot, In_Out_Pid, In_Out_Para, Out_Up, Out_Down
Representación en ST
Representación:
SERVO_INT(Input_Inp, Input_Pot, In_Out_Pid, In_Out_Para, Out_Up, Out_Down);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
Parámetro Tipo Comentario
Input_Inp INT Valor teórico de posición (formato [0 -10000]) que se conecta obligatoriamente a la salida del PID.
Input_Pot INT Copiado de posición (formato [0 -10000])0: válvula cerrada; 10000: válvula abierta. Si el copiado no existe, debe iniciarse Input_ POT a -10000. Este valor específico significa "sin copiado".
142 33002522 05/2010
SERVO_INT
En la siguiente tabla se describen los parámetros de entrada/salida:
En la siguiente tabla se describen los parámetros de salida:
Principio de funcionamiento con copiado de posición
La función SERVO_INT efectúa un control de la posición del motor en función de un valor teórico de posición Input_Inp (INP) procedente de la salida de un PID con formato [0 - 10000] y de una medida de posición Input_Pot (POT).
El algoritmo de control es un relé con histéresis.
Parámetro Tipo Comentario
In_Out_Pid ARRAY [n..m] OF INT . n y m son números enteros positivos, negativos o nulos.Tabla de parámetros del PID superior (véase página 134), utilizado si no existen palabras de copiado para la sincronización con el PID superior.Matriz de 43 enteros.
In_Out_Para ARRAY [n..m] OF INT . n y m son números enteros positivos, negativos o nulos.Los tres primeros parámetros se utilizan si el copiado no existe (Input_POT = -10000):
In_Out_PARA[0], llamado también T_MOTOR, es el tiempo de apertura de la
válvula expresado en 10-2 s.In_Out_ PARA[1], llamado también, T_MINI es el tiempo mínimo de pulsos
expresado en 10-2 s.In_Out_PARA[2] , llamado también, HYST es el valor de la histéresis con formato [0-10000].
Nota: la aplicación no debe modificar nunca los parámetros restantes utilizados para la gestión interna de la función. Todos los parámetros son obligatorios, independientemente del modo de funcionamiento. Matriz de 10 enteros.
Parámetro Tipo Comentario
Out_Up EBOOL Señal de salida para el sentido de funcionamientoOut_Up del motor.
Out_Down EBOOL Señal de salida para el sentido de funcionamientoOut_Down del motor.
33002522 05/2010 143
SERVO_INT
En ese caso, los parámetros PID, T_MOTOR y T_MINI no se utilizan.
Principio de funcionamiento sin copiado de posición (POT= -10000)
En ese caso, la función SERVO_INT se sincroniza con el PID superior mediante la desviación de la matriz de parámetros del PID, pasada a parámetro en la función SERVO_INT.
El algoritmo recibe en entrada la variación de salida del PID y la convierte en duración de pulso, según la fórmula:
T_IMP (expresado en 10-3 s) = OUT x T_MOTOR / 1000
La duración obtenida se añade a la duración restante de los ciclos anteriores. De este modo, lo que no se ha "consumido" en un ciclo se memoriza para los ciclos siguientes. Esto asegura un buen funcionamiento, sobre todo en caso de variación brusca del comando (por ejemplo, grado de valor teórico del PID) y en modo manual.
Ejemplo
El ejemplo propuesto a continuación se realiza en lenguaje de contactos (Ladder):
144 33002522 05/2010
SERVO_INT
Nota 1: la función SERVO_INT no gestiona límites de posición y esta gestión debe llevarla a cabo la aplicación. En caso de detección de un límite, es necesario forzar la salida correspondiente a 0 (UP para el límite superior, DOWN para el límite inferior).
Ejemplo: realizado en lenguaje de contactos (Ladder)
Nota 2: es posible pasar del modo de funcionamiento con copiado al modo sin copiado (por ejemplo, tras un fallo de copiado, paso al modo sin copiado).
Dirección Descripción
1 La variación de la salida del PID es de +20 % (el pulso T_MOTOR = 25 s para una variación de 100 %); en ese caso, el pulso afecta a la salida UP durante 5 s.
2 La variación del PID es de +2 %, lo que correspondería a un pulso de 0,5 s. Este pulso es inferior a T_MINI (=1 s) y no concierne a las salidas.
3 Aparece una segunda variación de +2 %, la función acumula esta variación con la anterior (que corresponde a una variación inferior al valor mínimo) para su cálculo, lo que corresponde a una variación positiva global de +4 %, y, por lo tanto, a un pulso de 1 s en la salida UP.
4 Aparece una variación de -24 %; el pulso que se inicia es de 6 s en la salida DOWN.
5 Antes de que transcurra un segundo más, otra variación del +22 % lleva al sistema a una variación global del 2% % < a la variación de T_MINI (4 %). La función termina de efectuar el pulso mínimo de 1 s.
33002522 05/2010 145
SERVO_INT
146 33002522 05/2010
33002522 05/2010
IV
Comparación
33002522 05/2010
Comparación
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Comparación.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
33 EQ: Igual a 149
34 GE: Mayor o igual a 151
35 GT: Mayor que 153
36 LE: Inferior o igual a 155
37 LT: Menor que 157
38 NE: Distinto a 159
147
Comparación
148 33002522 05/2010
33002522 05/2010
33
EQ
33002522 05/2010
EQ: Igual a
Descripción
Descripción de la función
La función comprueba si las entradas son iguales, es decir, la entrada se convierte en "1" cuando en todas las entradas hay igualdad; de otra manera la salida permanece en "0".
Los tipos de datos de todos los valores de entrada deben ser iguales.
Se puede aumentar el número de entradas como máximo a 31.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando (IN1 = IN2) & (IN2 = IN3) & .. & (IN (n-1) = IN n)
Representación en FBD
Representación:
Representación en LD
Representación:
149
EQ
Representación en IL
Representación:
LD Value1EQ Value2ST Result
Representación en ST
Representación:
Result := EQ (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Entrada
Valuen BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
Entrada nn = max 31
Parámetro Tipo de datos Significado
Result BOOL Salida
150 33002522 05/2010
33002522 05/2010
34
GE
33002522 05/2010
GE: Mayor o igual a
Descripción
Descripción de la función
La función comprueba si los valores de entradas sucesivas siguen una secuencia descendente o son iguales.
Los tipos de datos de todos los valores de entrada deben ser iguales.
Se puede aumentar el número de entradas como máximo a 31.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí.
Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el alfabeto se encuentre un valor, más alta será su expresión.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando (IN1 ≥ IN2) & (IN2 ≥ IN3) & .. & (IN (n-1) ≥ IN n)
Representación en FBD
Representación:
151
GE
Representación en LD
Representación:
Representación en IL
Representación:
LD Value1GE Value2ST Result
Representación en ST
Representación:
Result := GE (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Entrada
Valuen BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
Entrada nn = max 31
Parámetro Tipo de datos Significado
Result BOOL Salida
152 33002522 05/2010
33002522 05/2010
35
GT
33002522 05/2010
GT: Mayor que
Descripción
Descripción de la función
La función comprueba los valores de entradas sucesivas respecto a una secuencia descendente.
Los tipos de datos de todos los valores de entrada deben ser iguales.
Se puede aumentar el número de entradas como máximo a 31.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí.
Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el alfabeto se encuentre un valor, más alta será su expresión.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando (IN1 > IN2) & (IN2 > IN3) & .. (IN (n-1) > IN n)
Representación en FBD
Representación:
153
GT
Representación en LD
Representación:
Representación en IL
Representación:
LD Value1GT Value2ST Result
Representación en ST
Representación:
Result := GT (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Entrada
Valuen BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
Entrada nn = max 31
Parámetro Tipo de datos Significado
Result BOOL Salida
154 33002522 05/2010
33002522 05/2010
36
LE
33002522 05/2010
LE: Inferior o igual a
Descripción
Descripción de la función
La función comprueba los valores de entradas sucesivas respecto a una secuencia ascendente o a la igualdad.
Los tipos de datos de todos los valores de entrada deben ser iguales.
Se puede aumentar el número de entradas como máximo a 31.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí.
Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el alfabeto se encuentre un valor, más alta será su expresión.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando (IN1 ≤ IN2) & (IN2 ≤ IN3) & .. & (IN (n-1) ≤ IN n)
Representación en FBD
Representación:
155
LE
Representación en LD
Representación:
Representación en IL
Representación:
LD Value1LE Value2ST Result
Representación en ST
Representación:
Result := LE (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Entrada
Valuen BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
Entrada nn = max 31
Parámetro Tipo de datos Significado
Result BOOL Salida
156 33002522 05/2010
33002522 05/2010
37
LT
33002522 05/2010
LT: Menor que
Descripción
Descripción de la función
La función comprueba los valores de entradas sucesivas respecto a una secuencia ascendente.
Los tipos de datos de todos los valores de entrada deben ser iguales.
Se puede aumentar el número de entradas como máximo a 31.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí.
Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el alfabeto se encuentre un valor, más alta será su expresión.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando (IN1 < IN2) & (IN2 < IN3) & .. & (IN (n-1) < IN n)
Representación en FBD
Representación:
157
LT
Representación en LD
Representación:
Representación en IL
Representación:
LD Value1LT Value2ST Result
Representación en ST
Representación:
Result := LT (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Valor de entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Valor de entrada
Valuen BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
Valor de entrada nn = max 31
Parámetro Tipo de datos Significado
Result BOOL Valor de salida
158 33002522 05/2010
33002522 05/2010
38
NE
33002522 05/2010
NE: Distinto a
Descripción
Descripción de la función
La función comprueba los valores de entrada respecto a la desigualdad.
Los tipos de datos de los valores de entrada deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = 1, cuando IN1 < > IN2
Representación en FBD
Representación:
Representación en LD
Representación:
159
NE
Representación en IL
Representación:
LD Value1NE Value2ST Result
Representación en ST
Representación:
Result := NE (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
Si para un parámetro de entrada del tipo de datos REAL se genera un número de coma flotante inadmisible, el bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
1. Entrada
Value2 BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT, TOD
2. Entrada
Parámetro Tipo de datos Significado
Result BOOL Salida
160 33002522 05/2010
33002522 05/2010
V
Fecha y hora
33002522 05/2010
Fecha y hora
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Fecha y hora.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
39 ADD_***_TIME: Adición de una duración a una fecha 163
40 DIVTIME: División 167
41 MULTIME: Multiplicación 169
42 SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas
171
43 SUB_***_TIME: Resta de una duración de una fecha 173
161
Fecha y hora
162 33002522 05/2010
33002522 05/2010
39
ADD_***_TIME
33002522 05/2010
ADD_***_TIME: Adición de una duración a una fecha
Descripción
Descripción de la función
La función ADD_***_TIME agrega una duración a una fecha o a una hora.
Los parámetros adicionales EN y ENO pueden configurarse.
Funciones disponibles
Las funciones disponibles son las siguientes:ADD_DT_TIME,ADD_TOD_TIME.
Representación en FBD
Representación aplicada a una hora del día:
Representación en LD
Representación aplicada a una hora del día:
163
ADD_***_TIME
Representación en IL
Representación aplicada a una hora del día:
LD Source_Value
ADD_TOD_TIME Time_to_Add
ST Result_Value
Representación en ST
Representación aplicada a una hora del día:
Result_Value:= ADD_TOD_TIME(Source_Value, Time_to_Add);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
NOTA: la aplicación debe prever la gestión de los años bisiestos.
Parámetro Tipo Comentario
Source_Value DT, TOD Fecha u hora.
Time_to_Add TIME Duración que se va a agregar a Source_Value
Nota: este tiempo se expresa en formato TIME con una precisión de décimas de segundos. Como los tipos DT y TOD se expresan en el siguiente segundo, Time_to_Add se hace un redondeo por segundo.
Parámetro Tipo Comentario
Result_Value DT, TOD Result_Value es del mismo tipo que Source_Value.
164 33002522 05/2010
ADD_***_TIME
Errores de ejecución
Para el tipo TOD, se produce un cambio de día si Result_Value está fuera de los valores autorizados. En este caso, el bit de sistema %S18 (véase página 477) se pone a 1 y el valor de Result_Value sólo es significativo con un módulo de 24:00:00.
Para el tipo DT, si Result_Value está fuera del intervalo de los valores autorizados, el bit de sistema %S18 (véase página 477) se pone a 1 y el valor de Result_Value es igual al borne máximo.
Si uno de los parámetros de entrada no se puede interpretar y no es coherente con el formato de la función, el bit de sistema %S18 (véase página 477) se pone a 1 y Result_Value equivale a:
00:00:00 para el tipo TOD.00001-01-01-00:00:00 para el tipo DT.
33002522 05/2010 165
ADD_***_TIME
166 33002522 05/2010
33002522 05/2010
40
DIVTIME
33002522 05/2010
DIVTIME: División
Descripción
Descripción de funciones
La función divide el valor de la entrada TIME_variable (tipo de datos TIME) entre el valor de la entrada Divisor y emite el resultado en la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Representación en FBD
Representación:
Representación en LD
Representación:
167
DIVTIME
Representación en IL
Representación:
LD TIME_variableDIVTIME DivisorST Quotient
Representación en ST
Representación:
Quotient := DIVTIME (TIME_variable, Divisor) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se ejecuta una división entre 0 inadmisible (todos los tipos de datos disponibles)O biense dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
NOTA: Para obtener una lista con todos los códigos y los valores de error y del bloque, consulte Fecha y hora, página 470.
Parámetro Tipo de datos Significado
TIME_variable TIME Dividendo
Divisor INT, DINT, UINT, UDINT, REAL Divisor
Parámetro Tipo de datos Significado
Cociente TIME Cociente
168 33002522 05/2010
33002522 05/2010
41
MULTIME
33002522 05/2010
MULTIME: Multiplicación
Descripción
Descripción de funciones
La función multiplica los valores de entrada y emite el resultado en la salida.
El tipo de datos del primer valor de entrada (TIME_variable) debe ser TIME.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = IN1 x IN2
Representación en FBD
Representación:
Representación en LD
Representación:
169
MULTIME
Representación en IL
Representación:
LD TIME_variableMULTIME FactorST Product
Representación en ST
Representación:
Product := MULTIME (TIME_variable, Factor) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se trata de un desbordamiento del margen de valores en la salida (todos los tipos de datos disponibles)O biense dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
NOTA: Para obtener una lista con todos los códigos y los valores de error y del bloque, consulte Fecha y hora, página 470.
Parámetro Tipo de datos Significado
TIME_variable TIME Multiplicando (factor)
Factor INT, DINT, UINT, UDINT, REAL Multiplicador (factor)
Parámetro Tipo de datos Significado
Product TIME Producto
170 33002522 05/2010
33002522 05/2010
42
SUB_***_***
33002522 05/2010
SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas
Descripción
Descripción de la función
La función SUB_***_*** calcula la desviación de tiempo entre dos fechas u horas.
Los parámetros adicionales EN y ENO pueden configurarse.
Funciones disponibles
Las funciones disponibles son las siguientes:SUB_DATE_DATE,SUB_DT_DT,SUB_TOD_TOD.
Representación en FBD
Representación aplicada a una hora del día:
Representación en LD
Representación aplicada a una hora del día:
171
SUB_***_***
Representación en IL
Representación aplicada a una hora del día:
LD Input_IN1
SUB_TOD_TOD Input_IN2
ST Delay1
Representación en ST
Representación aplicada a una hora del día:
Delay1:= =SUB_TOD_TOD(Input_IN1, Input_IN2);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
NOTA: Input_IN1 e Input_IN2 deben ser del mismo tipo.
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Si Delay1 sobrepasa el valor máximo admitido por un formato TIME, se produce un desborde, por tanto Delay1 = 0 y el bit de sistema %S18 (véase página 477) se pone a 1.
Si uno de los parámetros de entrada no puede interpretarse y no es coherente con el formato de la función, entonces Delay1 = 0 y el bit de sistema %S18 (véase página 477) se pone a 1.
Parámetro Tipo Comentario
Input_ IN1 DATE, DT, TOD
Fecha u hora de la que se desea calcular la desviación con Input_IN2.
Input_IN2 DATE, DT, TOD
Fecha u hora de la que se desea calcular la desviación con Input_IN1.Del mismo tipo que los elementos de la matriz Input_IN1.
Parámetro Tipo Comentario
Delay1 TIME Delay1 contiene el tiempo en valor absoluto transcurrido entre las dos entradas Input_IN1 e Input_ IN2.
172 33002522 05/2010
33002522 05/2010
43
SUB_***_TIME
33002522 05/2010
SUB_***_TIME: Resta de una duración de una fecha
Descripción
Descripción de la función
La función SUB_***_TIME aumenta una duración de una fecha o de una hora.
Los parámetros adicionales EN y ENO pueden configurarse.
Funciones disponibles
Las funciones disponibles son las siguientes:SUB_DT_TIME,SUB_TOD_TIME.
Representación en FBD
Representación aplicada a una hora del día:
Representación en LD
Representación aplicada a una hora del día:
173
SUB_***_TIME
Representación en IL
Representación aplicada a una hora del día:
LD Source_Value
SUB_TOD_TIME Time_to_Sub
ST Result_Value
Representación en ST
Representación aplicada a una hora del día:
Result_Value:= SUB_TOD_TIME(Source_Value, Time_to_Sub);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
NOTA: la aplicación debe prever la gestión de los años bisiestos.
Parámetro Tipo Comentario
Source_Value DT, TOD Fecha u hora.
Time_to_Sub TIME Duración que se va a restar a Source_Value
Nota: esta duración se expresa en formato TIME (con precisión de décimas de segundos). Como los tipos DT y TOD se expresan en el siguiente segundo, Time_to_Sub se hace un redondeo por segundo.
Parámetro Tipo Comentario
Result_Value DT, TOD Result_Value es del mismo tipo que Source_Value.
174 33002522 05/2010
SUB_***_TIME
Errores de ejecución
Para el tipo TOD, se produce un cambio de día si Result_Value está fuera del intervalo de los valores autorizados. En este caso, el bit de sistema %S18 (véase página 477) se pone a 1 y el valor de Result_Value sólo es significativo con un módulo 24:00:00.
Para el tipo DT, si Result_Value está fuera del intervalo de los valores autorizados, el bit de sistema %S18 (véase página 477) se pone a 1 y el valor de Result_Value es igual al borne mínimo.
Si uno de los parámetros de entrada no se puede interpretar y no es coherente con el formato de la función, el bit de sistema %S18 (véase página 477) se pone a 1 y Result_Value equivale a:
00:00:00 para el tipo TOD.00001-01-01-00:00:00 para el tipo DT.
33002522 05/2010 175
SUB_***_TIME
176 33002522 05/2010
33002522 05/2010
VI
$/$Extract (Extracción)
33002522 05/2010
$/$Extract (Extracción)
Descripción
En esta sección se describen las funciones y los módulos de función elementales de la familia $/$Extract (Extracción).
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
44 EXTRACT: Copia de parte de una variable en otra variable 179
45 SIZEOF: Tamaño de una variable en bytes 183
177
$/$Extract (Extracción)
178 33002522 05/2010
33002522 05/2010
44
EXTRACT
33002522 05/2010
EXTRACT: Copia de parte de una variable en otra variable
Descripción
Descripción de la función
La función EXTRACT copia una parte definida de una variable de origen (SRC) en una variable de destino (DST).
NOTA: Parte de las matrices de EBOOL e IODDT no se pueden copiar porque SRC y DST pertenecen al tipo de datos ANY.
Los tipos de datos de variables de origen y destino pueden ser diferentes.
Debido a que SRC y DST pertenecen al tipo de datos ANY y que puede copiar parte de una variable a cualquier otra variable, no se tendrá que realizar ninguna comprobación de validez para la operación de copia.
El tamaño de memoria de la variable de origen (SRC) se identifica internamente mediante el bloque de funciones (en bytes).
Según la alineación de las diferentes plataformas del PLC, el tamaño de la memoria puede variar de una plataforma a otra.
SRC_NELEM define el número de partes de la variable de origen. El tamaño de memoria de la variable de origen (en bytes) se divide en SRC_NELEM; de esta forma, se define el tamaño de cada parte.
ADVERTENCIAFUNCIONAMIENTO INESPERADO DEL EQUIPO
Compruebe el resultado de todas las variables modificadas antes de reiniciar su aplicación del proceso.
Si no se siguen estas instrucciones pueden producirse lesiones personales graves o mortales o daños en el equipo.
179
EXTRACT
Ejemplo
El valor de SRC_NELEM debe permitir dividir el tamaño de memoria de la variable de origen sin resto.
El número de elementos que se copiará (CPY_NELEM) de la variable de origen empieza desde una posición definida (SRC_POS) y se copia a una posición definida en la variable de destino (DST_POS).
NOTA: SRC_POS y DST_POS definen la posición de las partes que se copiarán basándose en 0 como n.
Ejemplo con SRC_NELEM = 10
Los parámetros adicionales EN y ENO se pueden configurar.
Puede utilizar la función (véase página 183) SIZEOF para establecer el valor de la entrada SRC_NELEM en el número de bytes de la variable de origen.
Representación en FBD
Representación:
Variable SRC_NELEM Tamaño de la parte
ARRAY[0..9] OF WORD 5 DWORD (4 bytes)
10 WORD (2 bytes)
20 BYTE
Variable SRC_POS Posición en ARRAY
ARRAY[0..9] OF WORD 2 2
ARRAY[5..14] OF WORD 2 7
180 33002522 05/2010
EXTRACT
Representación en LD
Representación:
Representación en IL
Representación:
LD Array1_10_of_DDT
EXTRACT Source_Num_Ele, Source_Pos, Dest_Pos, Copy_Num_Ele, Array_1_20_of_DDT, Copy_Status
Representación en ST
Representación:
EXTRACT(Array1_10_of_DDT, Source_Num_Ele, Source_Pos, Dest_Pos, Copy_Num_Ele, Array1_20_of_DDT, Copy_Status);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
Parámetro Tipo Comentario
Array1_10_of_DDT ANY La variable de origen desde la que se copia un número definido de partes (Copy_Num_Ele) a la variable de destino (Array_1_20_of_DDT).
Source_Num_Ele UDINT Número de partes de la variable de origenEl tamaño de memoria de la variable de origen (en bytes) se divide en Source_Num_Ele; de esta forma, se define el tamaño de cada parte.
Source_Pos UDINT Posición de la primera parte que se copiará desde la variable de origenLa posición está basada en 0 como n.
33002522 05/2010 181
EXTRACT
En la tabla siguiente se describen los parámetros de salida:
Errores detectados en tiempo de ejecución
Valores de ERR
Dest_Pos UDINT Posición de la primera parte que se copiará a la variable de destinoLa posición está basada en 0 como n.
Copy_Num_Ele UDINT Número de partes de la variable de origen que se copia a la variable de destino
Parámetro Tipo Comentario
Array_1_20_of_DDT
ANY La variable de destino a la que se copia un número definido de partes (Copy_Num_Ele) desde la variable de origen (Array_1_10_of_DDT).
ERR INT errores de tiempo de ejecuciónPara obtener los valores, consulte la tabla siguiente.
Parámetro Tipo Comentario
Valor Descripción
0 La acción de copia se ha realizado correctamente.
<0 Parámetros no válidosNo se ha realizado la acción de copia.
>0 Los parámetros son sospechosos, pero válidos.La acción de copia se ha realizado.
-1 No se ha definido el número de partes de origen (SRC_NELEM).
-2 El número de partes no coincide con el tamaño de la variable de origen.El tamaño de memoria de la variable de origen no es divisible sin el resto.
-3 SRC_POS está fuera de los límites de la variable de origen.
-4 DST_POS está fuera de los límites de la variable de destino.
1 CPY_NELEM = 0, no se copiará ninguna parteEl parámetro es sospechoso, pero válido.
2 No se pudieron copiar todas las partes a la variable de destino por falta de espacio. Se han abreviado las partes que se copiarán.
182 33002522 05/2010
33002522 05/2010
45
SIZEOF
33002522 05/2010
SIZEOF: Tamaño de una variable en bytes
Descripción
Descripción de la función
La función SIZEOF proporciona el tamaño de memoria de una variable en bytes.
Según la alineación de las diferentes plataformas del PLC, el tamaño de la memoria puede variar de una plataforma a otra.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
183
SIZEOF
Representación en IL
Representación:
LD Array1_10_of_DDT
SIZEOF
ST Size_Struct
Representación en ST
Representación:
Size_Struct:= SIZEOF(Array1_10_of_DDT);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describe el parámetro de salida
Parámetro Tipo Comentario
Array1_10_of_DDT ANY variable cuyo tamaño de memoria en bytes se debe detectar
Parámetro Tipo Comentario
Size_Struct UDINT número de bytes detectado para la variable conectada al pin IN
184 33002522 05/2010
33002522 05/2010
VII
Lógica
33002522 05/2010
Lógica
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Lógica.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
46 AND: Función AND 187
47 F_TRIG: Detección de flanco descendente 189
48 FE: Detección de flanco descendente 191
49 NOT: Negación 193
50 OR: Función O 195
51 R_TRIG: Detección de flanco ascendente 197
52 RE: Detección de flanco ascendente 199
53 RESET: Ajuste del bit a 0 201
54 ROL: Rotación a la izquierda 203
55 ROR: Rotación a la derecha 205
56 RS: Bloque de funciones biestables, restablecer dominante 207
57 SET: Ajuste del bit a 1 209
58 SHL: Desplazamiento a la izquierda 211
59 SHR: Desplazamiento a la derecha 213
60 SR: Bloque de funciones biestables, establecer dominante 215
61 TRIGGER: Detección de todos los flancos 217
62 XOR: Función O exclusivo 219
185
Lógica
186 33002522 05/2010
33002522 05/2010
46
AND
33002522 05/2010
AND: Función AND
Descripción
Descripción de funciones
La función para un enlace AND bit a bit del bit realiza las secuencias en las entradas y asigna el resultado a la salida.
Los tipos de datos para todos los valores de entrada y de salida deben ser idénticos.
El número de entradas puede aumentarse hasta un máximo de 32.
EN y ENO pueden configurarse como parámetros adicionales.
Otras funciones disponibles
Al utilizar un PLC Premiun, las siguientes funciones también están disponibles en la librería obsoleta:
AND_DINTAND_INT
La funcionalidad de estas funciones es idéntica a la de AND.
Fórmula
OUT = IN1 & IN2 & ... & INn
Representación en FBD
Representación:
187
AND
Representación en LD
Representación:
Representación en IL
Representación:
LD Value_1AND Value_2ST Result
Representación en ST
Representación:
Result := AND (Value_1, Value_2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción del parámetro de salida:
Parámetro Tipo de datos Significado
Value_1 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_2 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_n BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada (n = 32 máx.)
Parámetro Tipo de datos Significado
Resultado BOOL, BYTE, WORD, DWORD
Secuencia de bits de salida
188 33002522 05/2010
33002522 05/2010
47
F_TRIG
33002522 05/2010
F_TRIG: Detección de flanco descendente
Descripción
Descripción de la función
El bloque de función se utiliza para de detección de flancos descendentes 1 -> 0.
La salida Q se convierte en "1" cuando se realiza un traspaso de "1" a "0" en la entrada CLK. La salida permanece en "1" desde una ejecución del bloque de función hasta la siguiente ejecución; a continuación la salida vuelve a "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
189
F_TRIG
Representación en IL
Representación:
CAL F_TRIG_Instance (CLK:=ClockInput, Q=>Output)
Representación en ST
Representación:
F_TRIG_Instance (CLK:=ClockInput, Q=>Output) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CLK BOOL Entrada de ciclo
Parámetro Tipo de datos Significado
Q BOOL Salida
190 33002522 05/2010
33002522 05/2010
48
FE
33002522 05/2010
FE: Detección de flanco descendente
Descripción
Descripción de la función
La función FE detecta el paso de 1 a 0 (flanco (véase Unity Pro, Lenguajes y estructura del programa, Manual de referencia ) descendente) del bit que tiene asociado.
Se pueden configurar los parámetros adicionales EN y ENO.
NOTA: De manera alternativa, también puede utilizar para EBOOL R_TRIG, F_TRIG y TRIGGER, que trabajan independientemente del bit del historial de tipo EBOOL.
Representación FBD
Representación:
Representación LD
La función FE no puede utilizarse en LD. Debe utilizar funciones LD equivalentes.
Representación:
191
FE
Representación IL
Representación:
LD Start_Button
FE
ST Start_Pulse
Representación ST
Representación:
Start_Pulse:= FE (Start_Button);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
La variable EBOOL debe escribirse una vez en cada exploración de la CPU. En los demás casos, se puede producir un error. Solo pueden utilizarse sin restricciones las entradas binarias, ya que se escriben desde la gestión de E/S de la CPU.
Diagrama de tendencias
Cronograma:
T T es igual a un tiempo de ciclo de PLC para una entrada y es el retardo entre dos asignaciones para una salida binaria o un bit interno.
Parámetro Tipo Comentario
Start_Button EBOOL Entrada o salida binaria o bit interno cuyo flanco descendente queremos detectar.
Parámetro Tipo Comentario
Start_Pulse BOOL Salida o bit interno que representa el flanco descendente.
192 33002522 05/2010
33002522 05/2010
49
NOT
33002522 05/2010
NOT: Negación
Descripción
Descripción de la función
La función va negando por bits la secuencia de bits de entrada y emite el resultado en la salida.
Los tipos de datos del valor de entrada y salida deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
En la biblioteca obsoleta también puede acceder a las siguientes funciones adicionales:
NOT_DINTNOT_INT
El modo de operar de estas funciones es idéntico al de la función NOT.
Fórmula
OUT = NOT IN
Representación en FBD
Representación:
193
NOT
Representación en LD
Representación:
Representación en IL
Representación:
LD ValueNOTST NegValue
Representación en ST
Representación:
NegValue := NOT (Value) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
Value BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Parámetro Tipo de datos Significado
NegValue BOOL, BYTE, WORD, DWORD
Secuencia de bits negada
194 33002522 05/2010
33002522 05/2010
50
OR
33002522 05/2010
OR: Función O
Descripción
Descripción de la función
La función realiza una vinculación O por bits de la secuencia de bits a las entradas y emite el resultado en la salida.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Se puede aumentar el número de entradas como máximo a 32.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
Al utilizar un Premium PLC dispone además de las siguientes funciones en la biblioteca obsoleta:
OR_DINTOR_INT
El modo de operar de estas funciones es idéntico al de la función OR.
Fórmula
OUT = IN1 OR IN2 OR ... OR INn
Representación en FBD
Representación:
195
OR
Representación en LD
Representación:
Representación en IL
Representación:
LD Value_1OR Value_2ST Result
Representación en ST
Representación:
Result := OR (Value_1, Value_2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
Value_1 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_2 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_n BOOL, BYTE, WORD, DWORD
Secuencia de bits de entradan = max. 32
Parámetro Tipo de datos Significado
Result BOOL, BYTE, WORD, DWORD
Secuencia de bits de salida
196 33002522 05/2010
33002522 05/2010
51
R_TRIG
33002522 05/2010
R_TRIG: Detección de flanco ascendente
Descripción
Descripción de la función
El bloque de función se utiliza para de detección de flancos ascendentes 0 -> 1.
La salida Q se convierte en "1" cuando se realiza un traspaso de "0" a "1" en la entrada CLK. La salida permanece desde una ejecución del bloque de función hasta la siguiente ejecución en "1" (un ciclo); a continuación la salida vuelve a "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
197
R_TRIG
Representación en IL
Representación:
CAL R_TRIG_Instance (CLK:=ClockInput, Q=>Output)
Representación en ST
Representación:
R_TRIG_Instance (CLK:=ClockInput, Q=>Output) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CLK BOOL Entrada de ciclo
Parámetro Tipo de datos Significado
Q BOOL Salida
198 33002522 05/2010
33002522 05/2010
52
RE
33002522 05/2010
RE: Detección de flanco ascendente
Descripción
Descripción de la función
La función RE detecta el paso de 0 a 1 (Flanco (véase Unity Pro, Lenguajes y estructura del programa, Manual de referencia ) ascendente) del bit que tiene asociado.
Se pueden configurar los parámetros adicionales EN y ENO.
NOTA: De manera alternativa, también puede utilizar para EBOOL R_TRIG, F_TRIG y TRIGGER, que trabajan independientemente del bit del historial de tipo EBOOL.
Representación FBD
Representación:
Representación LD
La función RE no puede utilizarse en LD. Debe utilizar funciones LD equivalentes.
Representación:
199
RE
Representación IL
Representación:
LD Start_Button
RE
ST Start_Pulse
Representación ST
Representación:
Start_Pulse := RE (Start_Button);
Descripción de parámetros
En la tabla siguiente, se describen los parámetros de entrada:
En la tabla siguiente, se describen los parámetros de salida:
La variable EBOOL debe escribirse una vez en cada exploración de la CPU. En los demás casos, se puede producir un error. Solo pueden utilizarse sin restricciones las entradas binarias, ya que se escriben desde la gestión de E/S de la CPU.
Gráfico de tendencias
Cronograma:
T T es igual a un tiempo de ciclo de PLC para una entrada y es el retardo entre dos asignaciones para una salida binaria o un bit interno.
Parámetro Tipo Comentario
Start_Button EBOOL Entrada o salida binaria, bit interno cuyo flanco ascendente queremos detectar.
Parámetro Tipo Comentario
Start_Pulse BOOL Salida o bit interno que representa el flanco ascendente.
200 33002522 05/2010
33002522 05/2010
53
RESET
33002522 05/2010
RESET: Ajuste del bit a 0
Descripción
Descripción de la función
La función RESET realiza la puesta a 0 del bit asociado.
Representación en FBD
Representación:
Representación en LD
Representación:
201
RESET
Representación en IL
Representación:
CAL RESET(Bit_to_Reset)
Representación en ST
Representación:
RESET (Bit_to_Reset);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
Bit_to_Reset BOOL Entrada o salida TON o bit interno que se desea poner a 0.
202 33002522 05/2010
33002522 05/2010
54
ROL
33002522 05/2010
ROL: Rotación a la izquierda
Descripción
Descripción de la función
La función gira la muestra de bits en la entrada IN en n bits (el valor de la entrada Number) hacia la izquierda en forma de círculo.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también es operativa con el tipo de datos BOOL. Sin embargo, esto no tiene ninguna relevancia en la práctica.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
Al utilizar un Premium PLC dispone además de las siguientes funciones en la biblioteca obsoleta:
ROL_DINTROL_INT
El modo de operar de estas funciones es idéntico al de la función ROL.
Representación en FBD
Representación:
203
ROL
Representación en LD
Representación:
Representación en IL
Representación:
LD InputPatternROL NumberST OutputPattern
Representación en ST
Representación:
OutputPattern := ROL (InputPattern, Number) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
InputPattern En ROL: BOOL, BYTE, WORD, DWORDEn ROL_INT: INTEn ROL_DINT: DINT
Muestra de bit que hay que rotar
Number En ROL: UINTEnROL_INT, ROL_DINT: INT
Número de los puntos, alrededor de los cuales se debe rotar
Parámetro Tipo de datos Significado
OutputPattern En ROL: BOOL, BYTE, WORD, DWORDEn ROL_INT: INTEn ROL_DINT: DINT
Muestra de bit rotada
204 33002522 05/2010
33002522 05/2010
55
ROR
33002522 05/2010
ROR: Rotación a la derecha
Descripción
Descripción de la función
La función gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la derecha en forma de círculo.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también es operativa con el tipo de datos BOOL. Sin embargo, esto no tiene ninguna relevancia en la práctica.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
Al utilizar un Premium PLC dispone además de las siguientes funciones en la biblioteca obsoleta:
ROR_DINTROR_INT
El modo de operar de estas funciones es idéntico al de la función ROR.
Representación en FBD
Representación:
205
ROR
Representación en LD
Representación:
Representación en IL
Representación:
LD InputPatternROR NumberST OutputPattern
Representación en ST
Representación:
OutputPattern := ROR (InputPattern, Number) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
InputPattern En ROR: BOOL, BYTE, WORD, DWORDEn ROR_INT: INTEn ROR_DINT: DINT
Muestra de bit que hay que rotar
Number En ROR: UINTEnROR_INT, ROR_DINT: INT
Número de los puntos, alrededor de los cuales se debe rotar
Parámetro Tipo de datos Significado
OutputPattern En ROR: BOOL, BYTE, WORD, DWORDEn ROR_INT: INTEn ROR_DINT: DINT
Muestra de bit rotada
206 33002522 05/2010
33002522 05/2010
56
RS
33002522 05/2010
RS: Bloque de funciones biestables, restablecer dominante
Descripción
Descripción de la función
El bloque de función se utiliza como memoria RS con la característica "Restablecer dominante".
La salida Q1 se convierte en "1" cuando la entrada S se convierte en "1". Este estado incluso se mantiene cuando la entrada S vuelve a ser "0". La salida Q1 sólo se convierte en "0", cuando la entrada R1 se convierte en "1". Si las entradas S y R1 son "1" a la vez, la entrada dominante R1 ubica la entrada Q1 en "0".
El estado inicial de Q1 durante la primera llamada del bloque de función es "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
207
RS
Representación en IL
Representación:
CAL RS_Instance (S:=Set, R1:=Reset, Q1=>Output)
Representación en ST
Representación:
RS_Instance (S:=Set, R1:=Reset, Q1=>Output) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
S BOOL Ubicar
R1 BOOL Restablecer (dominante)
Parámetro Tipo de datos Significado
Q1 BOOL Salida
208 33002522 05/2010
33002522 05/2010
57
SET
33002522 05/2010
SET: Ajuste del bit a 1
Descripción
Descripción de la función
La función SET realiza la puesta a 1 del bit asociado.
Representación en FBD
Representación:
Representación en LD
Representación:
209
SET
Representación en IL
Representación:
CAL SET(Bit_to_Set)
Representación en ST
Representación:
SET (Bit_to_Set);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
Bit_to_Set BOOL Entrada o salida TON o bit interno que se quiere poner a 1.
210 33002522 05/2010
33002522 05/2010
58
SHL
33002522 05/2010
SHL: Desplazamiento a la izquierda
Descripción
Descripción de la función
La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la izquierda.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí.
Desde la derecha se rellena con ceros.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también es operativa con el tipo de datos BOOL. Sin embargo, esto no tiene ninguna relevancia en la práctica.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
En la biblioteca obsoleta también puede acceder a las siguientes funciones:SHL_DINTSHL_INT
El modo de operar de estas funciones es idéntico al de la función SHL.
Representación en FBD
Representación:
211
SHL
Representación en LD
Representación:
Representación en IL
Representación:
LD IntputPatternSHL NumberST ShiftedPattern
Representación en ST
Representación:
ShiftedPattern := SHL (IntputPattern, Number) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
IntputPattern En SHL: BOOL, BYTE, WORD, DWORDEn SHL_INT: INTEn SHL_DINT: DINT
Muestra de bit que hay que desplazarEjemplo: IntputPattern = 2#0100000011110001.
Number En SHL: UINTEnSHL_INT, SHL_DINT: INT
Número de los puntos, alrededor de los cuales se debe desplazarEjemplo: Number = 4.
Parámetro Tipo de datos Significado
ShiftedPattern En SHL: BOOL, BYTE, WORD, DWORDEn SHL_INT: INTEn SHL_DINT: DINT
Muestra de bit desplazadaEjemplo: con los datos de la tabla anterior el resultado es: ShiftedPattern = 2#0000111100010000
212 33002522 05/2010
33002522 05/2010
59
SHR
33002522 05/2010
SHR: Desplazamiento a la derecha
Descripción
Descripción de la función
La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la derecha.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí.
Desde la izquierda se rellena con ceros.
Caso especial: Si en el diálogo Herramientas → Ajustes del proyecto → Extensiones de lenguaje está activada la opción permitir INT/DINT en lugar de ANY_BIT y se utilizan en la entrada IN los tipos de datos INT o DINT, se rellenará con ceros desde la izquierda , donde el bit 0 será el de mayor valor. Si el bit de mayor valor es 1, se rellenará con unos. El bit de mayor valor contiene el bit de signo en los tipos de datos INT y DINT. Mediante este funcionamiento se asegura que el signo no se pierda durante el desplazamiento. Si no se tiene en cuenta el signo y se rellena siempre con ceros, se puede utilizar en los controles de Premium la función SHRZ_*** de la biblioteca obsoleta.
Los tipos de datos de la entrada In y de la salida OUT deben ser iguales.
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también es operativa con el tipo de datos BOOL. Sin embargo, esto no tiene ninguna relevancia en la práctica.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
213
SHR
Representación en LD
Representación:
Representación en IL
Representación:
LD IntputPatternSHR NumberST ShiftedPattern
Representación en ST
Representación:
ShiftedPattern := SHR (IntputPattern, Number) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
IntputPattern BOOL, BYTE, WORD, DWORD
Muestra de bit que hay que desplazarEjemplo: IntputPattern = 2#0100000011110001.
Number UINT Número de los puntos, alrededor de los cuales se debe desplazarEjemplo: Number = 4.
Parámetro Tipo de datos Significado
ShiftedPattern BOOL, BYTE, WORD, DWORD
Muestra de bit desplazadaEjemplo: con los datos de la tabla anterior el resultado es: ShiftedPattern = 2#0000010000001111
214 33002522 05/2010
33002522 05/2010
60
SR
33002522 05/2010
SR: Bloque de funciones biestables, establecer dominante
Descripción
Descripción de la función
El bloque de función se utiliza como memoria SR con la característica "Ubicar dominante".
La salida Q1 se convierte en "1" cuando la entrada S1 se convierte en "1". Este estado incluso se mantiene cuando la entrada S1 vuelve a ser "0". La salida Q1 no se convertirá en "0" hasta que la entrada R se convierta en "1". Si las entradas S1 y R son "1" a la vez, la entrada dominante S1 ubica la salida Q1 en "1".
El estado inicial de Q1 durante la primera llamada del bloque de función es "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
215
SR
Representación en IL
Representación:
CAL SR_Instance (S1:=Set, R:=Reset, Q1=>Output)
Representación en ST
Representación:
SR_Instance (S1:=Set, R:=Reset, Q1=>Output) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
S1 BOOL Ubicar (dominante)
R BOOL Restablecer
Parámetro Tipo de datos Significado
Q1 BOOL Salida
216 33002522 05/2010
33002522 05/2010
61
TRIGGER
33002522 05/2010
TRIGGER: Detección de todos los flancos
Descripción
Descripción de la función
El bloque de función reconoce cualquier flanco (1 -> 0 y 0 -> 1) en la entrada CLK.
En un flanco ascendente se realiza un traspaso de "0" a "1" en la entrada CLK ; en un flanco descendente se realiza un traspaso de "1" a "0" en la entrada CLK.
En un flanco cualquiera, la salida EDGE será "1".
En un flanco ascendente, además de EDGE,la salida RISE será "1".
En un flanco descendente, además de EDGE,la salida FALL será "1". Si no hay flancos todas las salidas serán "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
217
TRIGGER
Representación en LD
Representación:
Representación en IL
Representación:
CAL TRIGGER_Instance (CLK:=ClockInput, RISE=>RisingEdge, EDGE=>AnyEdge, FALL=>FallingEdge)
Representación en ST
Representación:
TRIGGER_Instance (CLK:=ClockInput, RISE=>RisingEdge, EDGE=>AnyEdge, FALL=>FallingEdge) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CLK BOOL Entrada de ciclo
Parámetro Tipo de datos Significado
RISE BOOL Visualización de un flanco ascendente
EDGE BOOL Visualización de cualquier flanco
FALL BOOL Visualización de un flanco descendente
218 33002522 05/2010
33002522 05/2010
62
XOR
33002522 05/2010
XOR: Función O exclusivo
Descripción
Descripción de la función
La función realiza una vinculación XOR por bits de la secuencia de bits a las entradas y emite el resultado en la salida.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Se puede aumentar el número de entradas como máximo a 32.
Como parámetros adicionales se pueden configurar EN y ENO.
Otras funciones disponibles
Al utilizar un Premium PLC dispone además de las siguientes funciones en la biblioteca obsoleta:
XOR_DINTXOR_INT
El modo de operar de estas funciones es idéntico al de la función XOR.
Fórmula
OUT = IN1 XOR IN2 XOR .. XOR INn
Representación en FBD
Representación:
219
XOR
Representación en LD
Representación:
Representación en IL
Representación:
LD Value_1XOR Value_2ST Result
Representación en ST
Representación:
Result := XOR (Value_1, Value_2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
Value_1 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_2 BOOL, BYTE, WORD, DWORD
Secuencia de bits de entrada
Value_n BOOL, BYTE, WORD, DWORD
Secuencia de bits de entradan = max 32
Parámetro Tipo de datos Significado
Result BOOL, BYTE, WORD, DWORD
Secuencia de bits de salida
220 33002522 05/2010
33002522 05/2010
VIII
Matemática
33002522 05/2010
Matemática
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Matemática.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
63 ABS: Cálculo de valores absolutos 223
64 ACOS: Arco coseno 225
65 ADD: Adición 227
66 ADD_TIME: Adición 229
67 ASIN: Arco seno 231
68 ATAN: Arco tangente 233
69 COS: Coseno 235
70 DEC: Reducción de una variable 237
71 DIV: División 239
72 DIVMOD: División y módulo 241
73 EXP: Exponente natural 243
74 EXPT_REAL_***: Exponenciación de un valor por otro valor 245
75 INC: Incremento de una variable 247
76 LN: Logaritmo natural 249
77 LOG: Logaritmo en base 10 251
78 MOD: Módulo 253
79 MOVE: Asignación 255
80 MUL: Multiplicación 257
81 NEG: Negación 259
82 SIGN: Evaluación de signos 261
221
Matemática
83 SIN: Seno 263
84 SUB: Sustracción 265
85 SUB_TIME: Sustracción 267
86 SQRT_***: Raíz cuadrada 269
87 TAN: Tangente 271
Capítulo Nombre del capítulo Página
222 33002522 05/2010
33002522 05/2010
63
ABS
33002522 05/2010
ABS: Cálculo de valores absolutos
Descripción
Descripción de la función
La función forma el valor absoluto del valor de entrada y emite el mismo en la salida.
Los tipos de datos del valor de entrada y salida deben ser iguales.
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también es posible con los tipos de datos UINT y UDINT. Sin embargo, esto no tiene ninguna relevancia en la práctica.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Representación en FBD
Representación:
Representación en LD
Representación:
223
ABS
Representación en IL
Representación:
LD ValueABSST Result
Representación en ST
Representación:
Result := ABS (Value) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
no se alcanza el valor límite (tipos de datos INT y DINT)o
se dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value INT, DINT, UINT, UDINT, REAL Valor de entrada
Parámetro Tipo de datos Significado
Result INT, DINT, UINT, UDINT, REAL Valor de salida
224 33002522 05/2010
33002522 05/2010
64
ACOS
33002522 05/2010
ACOS: Arco coseno
Descripción
Descripción de la función
La función ACOS calcula el arco coseno principal de un valor real. El resultado viene dado en forma de ángulo en radianes.
Del mismo modo, la solicitud de la función se realiza mediante ACOS_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
225
ACOS
Representación en IL
Representación:
LD Cos_Value
ACOS_REAL
ST Angle
Representación en ST
Representación:
Angle := ACOS_REAL(Cos_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando el valor absoluto de Cos_Value es superior a 1, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Cos_Value REAL Coseno del ángulo calculado a la salida del bloque.-1 ≤ Cos_Value ≤ 1
Parámetro Tipo Comentario
Ángulo REAL Ángulo expresado en radianes, en el que el coseno equivale a Cos_Value. 0 ≤ Angle ≤ π
226 33002522 05/2010
33002522 05/2010
65
ADD
33002522 05/2010
ADD: Adición
Descripción
Descripción de funciones
Esta función añade los valores de entrada y asigna el resultado a la salida.
Los tipos de datos para todos los valores de entrada y de salida deben ser idénticos.
El número de entradas puede aumentarse hasta un máximo de 32 para todas las funciones.
Para añadir valores del tipo de datosTIME, existe un bloque denominado ADD_TIME (véase página 229)
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
INT, DINT, UINT, UDINT, REAL:
OUT = IN1 + IN2 + ... + INn
Representación en FBD
Representación:
Representación en LD
Representación:
227
ADD
Representación en IL
Representación:
LD Value1ADD Value2ST Sum
Representación en ST
Representación:
Sum := ADD (Value1, Value2);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción del parámetro de salida:
Error de ejecución
El bit de sistema %S18 (véase página 477) pasa a 1 si:
Se supera el rango de valores en la salida (todos los tipos de datos disponibles)o
Un número de coma flotante no autorizado se establece en un parámetro de entrada de tipo de datos REAL. Es este caso, el estado también se sitúa en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 INT, DINT, UINT, UDINT, REAL Sumando
Value2 INT, DINT, UINT, UDINT, REAL Sumando
Valuen INT, DINT, UINT, UDINT, REAL Sumandonº = 32 (máx.)
Parámetro Tipo de datos Significado
Sum INT, DINT, UINT, UDINT, REAL Suma
228 33002522 05/2010
33002522 05/2010
66
ADD_TIME
33002522 05/2010
ADD_TIME: Adición
Descripción
Descripción de la función
La función suma 2 valores de entrada del tipo de datos TIME y emite el resultado en la salida (también tipo de datos TIME).
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = IN1 + IN2
Representación en FBD
Representación:
Representación en LD
Representación:
229
ADD_TIME
Representación en IL
Representación:
LD TimeValue1ADD_TIME TimeValue2ST Sum
Representación en ST
Representación:
Sum := ADD_TIME (TimeValue1, TimeValue2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 si se sobrepasa el margen de valores en la salida.
Parámetro Tipo de datos Significado
TimeValue1 TIME Sumando
TimeValue2 TIME Sumando
Parámetro Tipo de datos Significado
Sum TIME Suma
230 33002522 05/2010
33002522 05/2010
67
ASIN
33002522 05/2010
ASIN: Arco seno
Descripción
Descripción de la función
La función ASIN calcula el arco seno principal de un valor real. El resultado viene dado en forma de ángulo en radianes.
Del mismo modo, la solicitud de la función se realiza mediante ASIN_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
231
ASIN
Representación en IL
Representación:
LD Sin_Value
ASIN_REAL
ST Angle
Representación en ST
Representación:
Angle := ASIN_REAL(Sin_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando el valor absoluto de Sin_Value es superior a 1, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Sin_Value REAL Seno del ángulo calculado a la salida del bloque.-1 ≤ Sin_Value ≤ 1
Parámetro Tipo Comentario
Ángulo REAL Ángulo expresado en radianes, en el que el seno equivale a Sin_Value. - π/2 ≤ Angle ≤ + π/2
232 33002522 05/2010
33002522 05/2010
68
ATAN
33002522 05/2010
ATAN: Arco tangente
Descripción
Descripción de la función
La función ATAN calcula el arco tangente principal de un valor real. El resultado viene dado en forma de ángulo en radianes.
Del mismo modo, la solicitud de la función se realiza mediante ATAN_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
233
ATAN
Representación en IL
Representación:
LD Tan_Value
ATAN_REAL
ST Angle
Representación en ST
Representación:
Angle := ATAN_REAL(Tan_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando el valor absoluto de Tan_Value es superior a 1, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Tan_Value REAL Tangente del ángulo calculado a la salida del bloque.-1.#INF < Tan_Value < +1.#INF
Parámetro Tipo Comentario
Ángulo REAL Ángulo expresado en radianes, en el que la tangente equivale a Tan_Value. - π/2 < Angle < +π/2
234 33002522 05/2010
33002522 05/2010
69
COS
33002522 05/2010
COS: Coseno
Descripción
Descripción de la función
La función COS calcula el coseno de un ángulo.
La llamada de función también puede realizarse mediante COS_REAL.
Pueden configurarse los parámetros adicionales EN y ENO.
Fórmula
La fórmula es la siguiente:
Cos_Valor = Cos(Ángulo)
Representación en FBD
Representación:
Representación en LD
Representación:
235
COS
Representación en IL
Representación:
LD ÁnguloCOS_REALST Cos_Valor
Representación en ST
Representación:
Cos_Valor:= COS_REAL(Ángulo);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores en el tiempo de ejecución
Cuando el valor absoluto del Ángulo es mayor de 2 63, el bit del sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Ángulo REAL Ángulo expresado en radianes.
-2 63 < Ángulo < +2 63
Parámetro Tipo Comentario
Cos_Valor REAL Coseno del Ángulo expresado en radianes. -1 ≤ Cos_Valor ≤ 1
236 33002522 05/2010
33002522 05/2010
70
DEC
33002522 05/2010
DEC: Reducción de una variable
Descripción
Descripción de la función
La función DEC reduce en 1 una variable.
El parámetro de esta función puede definirse de tipo ANY_INT.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación aplicada a un entero:
Representación en LD
Representación aplicada a un entero:
237
DEC
Representación en IL
Representación aplicada a un entero:
CAL DEC(Value1)
Representación en ST
Representación aplicada a un entero:
DEC(Value1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada/salida:
Errores de ejecución
En caso de rebasamiento, el bit de sistema %S18 (véase página 477) se posiciona en 1 y el valor reducido pasa a ser positivo (por ejemplo, 32767 para un entero).
Parámetro Tipo Comentario
Value1 INT, DINT, UINT, UDINT.
A cada paso del programa de esta EF, la variable Value1 se reduce una unidad.
238 33002522 05/2010
33002522 05/2010
71
DIV
33002522 05/2010
DIV: División
Descripción
Descripción de la función
La función divide el valor de la entrada Dividendo entre el valor de la entrada Divisor y emite el resultado en la salida.
Los tipos de datos de los valores de entrada y el del valor de salida deben ser iguales.
Para la división con valores del tipo de datos TIME existe el bloque DIVTIME (véase página 167).
Si se dividen valores de los tipos INT, DINT, UINT y UDINT, en el resultado se cortarán los valores detrás de la coma que pudiera haber en sentido cero, por ejemplo
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Representación en FBD
Representación:
239
DIV
Representación en LD
Representación:
Representación en IL
Representación:
LD DividendDIV DivisorST Quotient
Representación en ST
Representación:
Quotient := DIV (Dividend, Divisor) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se ejecuta una división entre 0 inadmisible (todos los tipos de datos disponibles)ose dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Dividendo INT, DINT, UINT, UDINT, REAL Dividendo
Divisor INT, DINT, UINT, UDINT, REAL Divisor
Parámetro Tipo de datos Significado
Cociente INT, DINT, UINT, UDINT, REAL Cociente
240 33002522 05/2010
33002522 05/2010
72
DIVMOD
33002522 05/2010
DIVMOD: División y módulo
Descripción
Descripción de la función
Este procedimiento divide el valor de la entrada Dividendo por el valor de la entrada Divisor. El resultado de la división se entrega a la salida Cociente. El resto se entrega a la salida Módulo.
En el caso de la división, se segmenta un dígito existente después de coma en el sentido cero durante el resultado de la división.
Los tipos de datos de todos los valores de entrada y de salida deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
DV = IN1 / IN2
MD = IN1 mod IN2
Representación en FBD
Representación:
241
DIVMOD
Representación en LD
Representación:
Representación en IL
Representación:
LD DividendDIVMOD Divisor, Quotient, Modulo
Representación en ST
Representación:
DIVMOD (Dividend, Divisor, Quotient, Modulo);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se ejecute una división entre 0 inadmisible.
Parámetro Tipo de datos Significado
Dividendo INT, DINT, UINT, UDINT Dividendo
Divisor INT, DINT, UINT, UDINT Divisor
Parámetro Tipo de datos Significado
Cociente INT, DINT, UINT, UDINT Cociente
Módulo INT, DINT, UINT, UDINT Módulo
242 33002522 05/2010
33002522 05/2010
73
EXP
33002522 05/2010
EXP: Exponente natural
Descripción
Descripción de la función
La función EXP calcula el valor exponencial natural de un valor real.
Del mismo modo, la solicitud de la función se realiza mediante EXP_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
243
EXP
Representación en IL
Representación:
LD Real_Value
EXP_REAL
ST Exp_Real_Value
Representación en ST
Representación:
Exp_Real_Value := EXP_REAL(Real_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Real_Value se encuentra fuera del intervalo ]-87.33654, 88.72283[, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Real_Value REAL Valor real del cual se puede obtener el valor exponencial natural-87.33654 < Real_Value < 88.72283
Parámetro Tipo Comentario
Exp_Real_Value REAL Exponencial natural de Real_Value 0 < Exp_Real_Value < 1.#INF
244 33002522 05/2010
33002522 05/2010
74
EXPT_REAL_***
33002522 05/2010
EXPT_REAL_***: Exponenciación de un valor por otro valor
Descripción
Descripción de la función
La función EXPT_REAL_*** calcula la potencia de un valor por otro valor.
Los parámetros adicionales EN y ENO se pueden configurar.
Funciones disponibles
Las funciones disponibles son las siguientes:EXPT_REAL_INTEXPT_REAL_DINTEXPT_REAL_UINTEXPT_REAL_UDINTEXPT_REAL_REAL
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación aplicada a un valor real:
245
EXPT_REAL_***
Representación en LD
Representación aplicada a un valor real:
Representación en IL
Representación aplicada a un valor real:
LD Value1
EXPT_REAL_REAL Exponent
ST Expt_Real_Value
Representación en ST
Representación aplicada a un valor real:
Expt_Real_Value:= EXPT_REAL_REAL(Value1, Exponent);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Value1 es negativo o cuando tiene lugar un desborde Expt_Real_Value, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Value1 REAL Valor del que se puede obtener el valor exponencial mediante Exponent0 ≤ Value1 < INF
Exponent INTUINTDINTUDINTREAL
Exponente de la potencia-INF < Exponent < +INF
Parámetro Tipo Comentario
Expt_Real__Value REAL Potencia natural de Value1 -1 < Expt_Real_Value < +INF
246 33002522 05/2010
33002522 05/2010
75
INC
33002522 05/2010
INC: Incremento de una variable
Descripción
Descripción de la función
La función INC incrementa en 1 una variable.
El parámetro de esta función puede definirse de tipo ANY_INT.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación aplicada a un entero:
Representación en LD
Representación aplicada a un entero:
247
INC
Representación en IL
Representación aplicada a un entero:
CAL INC(Value1)
Representación en ST
Representación aplicada a un entero:
INC(Value1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada/salida:
Errores de ejecución
En caso de rebasamiento, el bit de sistema %S18 (véase página 477) se posiciona en 1 y el valor incrementado pasa a ser negativo (por ejemplo, -32768 para un entero).
Parámetro Tipo Comentario
Value1 INT, DINT, UINT, UDINT.
A cada paso del programa de esta EF, la variable Value1 se incrementa una unidad.
248 33002522 05/2010
33002522 05/2010
76
LN
33002522 05/2010
LN: Logaritmo natural
Descripción
Descripción de la función
La función LN calcula el logaritmo neperiano de un valor real.
Del mismo modo, la solicitud de la función se realiza mediante LN_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
249
LN
Representación en IL
Representación:
LD Real_Value
LN_REAL
ST Ln_Real_Value
Representación en ST
Representación:
Ln_Real_Value:= LN_REAL(Real_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Real_Value es negativo, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Real_Value REAL Valor real del cual se puede obtener el logaritmo neperiano.0 < Real_Value < +INF
Parámetro Tipo Comentario
Ln_Real_Value REAL Logaritmo neperiano de Real_Value -INF < Ln_Real_Value < +INF
250 33002522 05/2010
33002522 05/2010
77
LOG
33002522 05/2010
LOG: Logaritmo en base 10
Descripción
Descripción de la función
La función LOG calcula el logaritmo decimal de un valor real.
Del mismo modo, la solicitud de la función se realiza mediante LOG_REAL.
Los parámetros adicionales EN y ENO se pueden configurar.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
251
LOG
Representación en IL
Representación:
LD Real_Value
LOG_REAL
ST Log_Real_Value
Representación en ST
Representación:
Log_Real_Value := LOG_REAL(Real_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Real_Value es negativo, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Real_Value REAL Valor real del cual se puede obtener el logaritmo neperiano.0 < Real_Value < 1.#INF
Parámetro Tipo Comentario
Log_Real_Value REAL Logaritmo neperiano de Real_Value -1.#INF < Log_Real_Value < +1.#INF
252 33002522 05/2010
33002522 05/2010
78
MOD
33002522 05/2010
MOD: Módulo
Descripción
Descripción de la función
La función divide el valor de la entrada Dividendo entre el valor de la entrada Divisor y entrega el resto de la división (módulo) a la salida.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = IN1 mod IN2
Representación en FBD
Representación:
Representación en LD
Representación:
253
MOD
Representación en IL
Representación:
LD DividendMOD DivisorST Rest
Representación en ST
Representación:
Rest := MOD (Dividend, Divisor) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se ejecute una división entre 0 inadmisible.
Parámetro Tipo de datos Significado
Dividendo INT, DINT, UINT, UDINT Dividendo
Divisor INT, DINT, UINT, UDINT Divisor
Parámetro Tipo de datos Significado
Rest INT, DINT, UINT, UDINT Módulo
254 33002522 05/2010
33002522 05/2010
79
MOVE
33002522 05/2010
MOVE: Asignación
Descripción
Descripción de la función
Esta función asigna el valor de entrada a la salida.
Esta es una función genérica, es decir, el tipo de datos que se procesarán estará determinado por la variable que se asignó a la función en primer lugar.
Si se debe asignar la dirección directa de una variable o viceversa, asigne siempre la variable a la función en primer lugar. No está autorizada una dirección directa en la entrada y en la salida de la función, ya que esto no permite una definición clara del tipo de datos. El solapamiento de direcciones de variables no es compatible con esta función y sólo se aplica a las CPU de herencia de Quantum y al simulador del PLC.
Los tipos de datos del valor de entrada y salida deben ser iguales.
NOTA: No es posible copiar una matriz de los elementos EBOOL mediante la función MOVE, ya que MOVE no actualizará el historial de asignaciones de los elementos de matriz. Para copiar una matriz de elementos EBOOL, utilice la función COPY_AREBOOL_AREBOOL (véase página 49).
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = IN
Representación en FBD
Representación:
255
MOVE
Representación en LD
Esta función no se puede utilizar en el lenguaje de programación LD (Ladder Diagram; Diagrama de contactos) con el tipo de datos BOOL, ya que en ese punto se puede conseguir la misma funcionalidad con contactos y bobinas.
Representación:
Representación en IL
Representación:
LD Input MOVE ST Output
Representación en ST
Representación:
Output := MOVE (Input) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
Input ANY Valor de entrada
Parámetro Tipo de datos Significado
Output ANY Valor de salida
256 33002522 05/2010
33002522 05/2010
80
MUL
33002522 05/2010
MUL: Multiplicación
Descripción
Descripción de la función
La función multiplica los valores de entrada y emite el resultado en la salida.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Se puede aumentar el número de entradas como máximo a 32.
Para la división con valores del tipo de datos TIME existe el bloque MULTIME (véase página 169).
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
OUT = IN1 x IN2 x .. x IN n
Representación en FBD
Representación:
Representación en LD
Representación:
257
MUL
Representación en IL
Representación:
LD Factor1MUL Factor2ST Product
Representación en ST
Representación:
Product := MUL (Factor1, Factor2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se trata de un desbordamiento del margen de valores en la salida (todos los tipos de datos disponibles)ose dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Factor1 INT, DINT, UINT, UDINT, REAL
Multiplicando (factor)
Factor2 INT, DINT, UINT, UDINT, REAL
Multiplicador (factor)
Factorn INT, DINT, UINT, UDINT, REAL
Multiplicador (factor)n = max 32
Parámetro Tipo de datos Significado
Product INT, DINT, UINT, UDINT, REAL
Producto
258 33002522 05/2010
33002522 05/2010
81
NEG
33002522 05/2010
NEG: Negación
Descripción
Descripción de la función
La función niega el valor de entrada y emite el resultado en la salida NegatedOutput.
En la negación tiene lugar una inversión con signos, por ejemplo:
6 -> -6
-4 -> 4
NOTA: Al procesar los tipos de datos INT y DINT los valores negativos muy largos no se pueden convertir en positivos. Sin embargo, con este error, la salida ENO no se restablece en 0.
NOTA: Al procesar los tipos de datos UINT y UDINT siempre aparece un aviso de error.
Los tipos de datos del valor de entrada y salida deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
259
NEG
Representación en LD
Representación:
Representación en IL
Representación:
LD InputNEGST NegatedOutput
Representación en ST
Representación:
NegatedOutput := NEG (Input) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se dañe el margen de valores al ejecutar la función en la entrada (tipos de datos INT y DINT)o
se deba cambiar un valor de entrada del tipo de datos UDINT o UINT.
Parámetro Tipo de datos Significado
Input INT, DINT, UINT, UDINT, REAL Entrada
Parámetro Tipo de datos Significado
NegatedOutput INT, DINT, UINT, UDINT, REAL Salida denegada
260 33002522 05/2010
33002522 05/2010
82
SIGN:
33002522 05/2010
SIGN: Evaluación de signos
Descripción
Descripción de la función
La función se utiliza para identificar signos negativos.
Si el valor de la entrada es ≥ 0, la salida será "0". Si el valor de la entrada es < 0, la salida será "1".
NOTA: Por cuestiones de conformidad con CEI 61131-3, esta función también funciona con los tipos de datos UINT y UDINT. Sin embargo, esto no es relevante en la práctica, ya que estas funciones siempre tienen como resultado 0.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
OUT = 1, si IN < 0
OUT = 0, si IN ≥ 0
NOTA: Por medio de un procesamiento distinto de los valores REAL e INT, se da el siguiente comportamiento en el 0 con signo (+/-0):
-0.0 -> SIGN_REAL -> 1+0.0 -> SIGN_REAL -> 0-0 -> SIGN_INT/DINT -> 0+0 -> SIGN_INT/DINT -> 0
Representación en FBD
Representación:
261
SIGN:
Representación en LD
Representación:
Representación en IL
Representación
LD ValueSIGNST Negativ
Representación en ST
Representación
Negativ := SIGN (Value) ;
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 se establecerá en 1 y ENO en 0 cuandoexiste un valor de entrada del tipo de datos UINT o UDINT.
Parámetro Tipo de datos Significado
Value INT, DINT, REAL Entrada con signos
Parámetro Tipo de datos Significado
Negativ BOOL Evaluación de signos
262 33002522 05/2010
33002522 05/2010
83
SIN
33002522 05/2010
SIN: Seno
Descripción
Descripción de la función
La función SIN calcula el seno de un ángulo.
La llamada de función también puede realizarse mediante SIN_REAL.
Pueden configurarse los parámetros adicionales EN y ENO.
Fórmula
La fórmula es la siguiente:
Sin_Valor = Sin(Ángulo)
Representación en FBD
Representación:
Representación en LD
Representación:
263
SIN
Representación en IL
Representación:
LD ÁnguloSIN_REALST Sin_Valor
Representación en ST
Representation:
Sin_Valor:= SIN_REAL(Ángulo);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores en el tiempo de ejecución
Cuando el valor absoluto del Ángulo es mayor de 2 63, el bit del sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Ángulo REAL Ángulo expresado en radianes.
-2 63 < Ángulo < +2 63
Parámetro Tipo Comentario
Sin_Valor REAL Seno del Ángulo. -1 ≤ Sin_Value ≤ 1
264 33002522 05/2010
33002522 05/2010
84
SUB
33002522 05/2010
SUB: Sustracción
Descripción
Descripción de la función
La función resta el valor de la entrada Value2 del valor de la entrada Value1 y emite el resultado en la salida.
Los tipos de datos de los valores de entrada y el del valor de salida deben ser iguales.
Para la sustracción con valores del tipo de datos TIME existe el bloque SUB_TIME (véase página 267).
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Difference = Value1 - Value2
Representación en FBD
Representación:
Representación en LD
Representación:
265
SUB
Representación en IL
Representación:
LD Value1SUB Value2ST Difference
Representación en ST
Representación:
Difference := SUB (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se trata de un desbordamiento del margen de valores en la salida (todos los tipos de datos disponibles)o
se dispone de un número de coma flotante inadmisible para un parámetro de entrada del tipo de datos REAL. En este caso, se ubicará además el estado en %SW17 (véase página 480).
Parámetro Tipo de datos Significado
Value1 INT, DINT, UINT, UDINT, REAL Minuendo
Value2 INT, DINT, UINT, UDINT, REAL Sustraendo
Parámetro Tipo de datos Significado
Difference INT, DINT, UINT, UDINT, REAL Diferencia
266 33002522 05/2010
33002522 05/2010
85
SUB_TIME
33002522 05/2010
SUB_TIME: Sustracción
Descripción
Descripción de la función
La función resta el valor de la entrada TimeValue2 del valor de la entrada TimeValue1 y emite el resultado en la salida.
Los tipos de datos de los valores de entrada y el del valor de salida deben ser del tipo de datos TIME.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Difference = TimeValue1 - TimeValue2
Representación en FBD
Representación:
Representación en LD
Representación:
267
SUB_TIME
Representación en IL
Representación:
LD TimeValue1SUB TimeValue2ST Difference
Representación en ST
Representación:
Difference := SUB (TimeValue1, TimeValue2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se trata de un desbordamiento del margen de valores en la entrada
Parámetro Tipo de datos Significado
TimeValue1 TIME Minuendo
TimeValue2 TIME Sustraendo
Parámetro Tipo de datos Significado
Difference TIME Diferencia
268 33002522 05/2010
33002522 05/2010
86
SQRT_***
33002522 05/2010
SQRT_***: Raíz cuadrada
Descripción
Descripción de la función
La función SQRT_*** calcula la raíz cuadrada de una variable. Puede llamarse a esta función mediante su nombre genérico o mediante uno de los nombres descritos más adelante.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son:SQRT_INTSQRT_DINTSQRT_REAL
Representación en FBD
Representación aplicada a un integer:
Representación en LD
Representación aplicada a un integer:
269
SQRT_***
Representación en IL
Representación aplicada a un integer:
LD Valor1
SQRT_REAL
ST Sqrt_Valor1
Representación en ST
Representación aplicada a un integer:
Sqrt_Valor1:= SQRT_REAL(Valor1)
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores en el tiempo de ejecución
Si Valor1 es de tipo REAL y negativo, el resultado de la función contiene -1.#NAN y el bit %S18 (véase página 477) = 1.
Si Valor1 es de tipo INT oDINT y negativo, el resultado de la función contiene el valor negativo Value1 y el bit %S18 (véase página 477) = 1.
En caso de que %S18 (véase página 477) = 1, la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Valor1 INT, DINT, REAL. Variable cuya raíz cuadrada se desea calcular.0 ≤ Valor1
Parámetro Tipo Comentario
Sqrt_Valor1 INT, DINT, REAL. Sqrt_Valor1 contiene la raíz cuadrada de Valor1. Sqrt_Valor1 es del mismo tipo que Valor1.Si el tipo es INT, Sqrt_Valor1 se redondea a la baja al menor valor; para Valor1 = 15, Sqrt_Valor1 = 3.
270 33002522 05/2010
33002522 05/2010
87
TAN
33002522 05/2010
TAN: Tangente
Descripción
Descripción de la función
La función TAN calcula la tangente de un ángulo.
La llamada de función también puede realizarse mediante TAN_REAL.
Pueden configurarse los parámetros adicionales EN y ENO.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
271
TAN
Representación en IL
Representación:
LD Angle
TAN_REAL
ST Tan_Value
Representación en ST
Representación:
Tan_Value:= TAN_REAL(Angle);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de ejecución
Cuando el valor absoluto de Angle es mayor de 2 63, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Angle REAL Ángulo expresado en radianes
-2 63 < Angle < +2 63
Parámetro Tipo Comentario
Tan_Value REAL Tangente de Angle -1.#INF < Tan_Value < +1.#INF
272 33002522 05/2010
33002522 05/2010
IX
Statistik
33002522 05/2010
Estadística
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Estadística.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
88 AVE: Media 275
89 LIMIT: Límite 279
90 LIMIT_IND: Indicador de límite de ancho 281
91 MAX: Función de valor máximo 285
92 MIN: Función de valor mínimo 287
93 MUX: Multiplexador 289
94 SEL: Selección binaria 293
273
Statistik
274 33002522 05/2010
33002522 05/2010
88
AVE
33002522 05/2010
AVE: Media
Descripción
Descripción de la función
El procedimiento calcula el promedio de los valores de entrada ponderados y proporciona un resultado en la salida.
Dos entradas sucesivas (K_Xn) representan un par de valores. La primera entrada K_Xn corresponde a K1, la siguiente a X1, la siguiente a ésta a K2, etc.
El número de entradas K_Xn puede aumentarse hasta 32 modificando verticalmente el tamaño del marco del bloque. Esto corresponde a un máximo de 16 pares de valores.
El número de entradas ha de ser par; de lo contrario, AVE genera un error de sistema y ajusta ENO como FALSE.
Los tipos de datos de los valores de entrada y de salida han de ser idénticos.
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
Fórmula de bloque:
Representación en FBD
Representación:
275
AVE
Representación en LD
Representación:
Representación en IL
Representación:
LD FactorFirstValueAVE FirstValue, FactorSecondValue, SecondValueST Result
Representación en ST
Representación:
Result := AVE (FactorFirstValue, FirstValue, FactorSecondValue, SecondValue) ;
276 33002522 05/2010
AVE
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores en el tiempo de ejecución
El bit de sistema %S18 (véase página 477) se fija en 1, si:
se sobrepasa el rango de valor de la salida (todos los tipos de datos disponibles);o biense ejecuta una división por cero no válida (todos los tipos de datos disponibles);o biense fija un número de coma flotante no autorizado en un parámetro de entrada de tipo de datos REAL. En este caso, el estado también se sitúa en %SW17 (véase página 480).Nota: El flag %SW17.1 (operando/resultado no normalizado aceptable) no se gestiona en el procedimiento AVE.
NOTA: Para ver una lista de todos los códigos y valores de error de bloque, consulte Estadística, página 471.
Parámetro Tipo de datos Significado
FactorFirstValue INT, DINT, UINT, UDINT, REAL
Factor (K1) para el primer valor
FirstValue INT, DINT, UINT, UDINT, REAL
Primer valor (X1)
FactorSecondValue INT, DINT, UINT, UDINT, REAL
Factor (K2) para el segundo valor
FactorSecondValue INT, DINT, UINT, UDINT, REAL
Segundo valor (X2)
:
FactorHalfnValue INT, DINT, UINT, UDINT, REAL Factor para el valor de (K_X(n-1))
HalfnValue INT, DINT, UINT, UDINT, REAL Valor de (K_X(n)
n = 32 máximo
Parámetro Tipo de datos Significado
Resultado INT, DINT, UINT, UDINT, REAL
Valor promedio
33002522 05/2010 277
AVE
278 33002522 05/2010
33002522 05/2010
89
LIMIT
33002522 05/2010
LIMIT: Límite
Descripción
Descripción de la función
La función transfiere el valor de entrada no modificado (Input) a la salida si el valor de entrada no es menor que el valor mínimo (LowerLimit) y no supera el valor máximo (UpperLimit). Si el valor de entrada (Input) es menor que el valor mínimo (LowerLimit), el valor mínimo se transferirá a la salida. Si el valor de entrada (Input) supera el valor máximo (UpperLimit), el valor máximo se transferirá a la salida.
Los tipos de datos de todos los valores de entrada y de salida deben ser idénticos.
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
= , si (≥ MN) y (IN ≤ MX)
OUT = MN, si (IN < MN)
OUT = MX, si (IN > MX)
Representación en FBD
Representación:
279
LIMIT
Representación en LD
Representación:
Representación en IL
Representación:
LD LowerLimitLIMIT Input, UpperLimitST Output
Representación en ST
Representación:
Output := LIMIT (LowerLimit, Input, UpperLimit) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción del parámetro de salida:
Error de ejecución
Si se encuentra un número de coma flotante no autorizado en la entrada, se devuelve un mensaje de error.
Parámetro Tipos de datos Significado
MN BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Límite inferior
IN BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Entrada
MX BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Límite superior
Parámetro Tipos de datos Significado
OUT BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Salida
280 33002522 05/2010
33002522 05/2010
90
LIMIT_IND
33002522 05/2010
LIMIT_IND: Indicador de límite de ancho
Descripción
Descripción de la función
El procedimiento entrega el valor de entrada sin modificar (Input) en la salida (Output), cuando no queda por debajo del valor mínimo (LimitMinimum) ni por encima del valor máximo (LimitMaximum). En caso de que el valor de entrada (Input) quede por debajo del valor mínimo (LimitMinimum), se entrega el valor mínimo a la salida. En caso de que el valor de entrada (Input) quede por encima del valor máximo (LimitMaximum), se entrega el valor máximo a la salida.
Además, aparece una indicación en caso de desbordamiento del valor mínimo o del valor máximo. En caso de que el valor de la entrada Input no alcance el valor de la entrada (LimitMinimum), la salida (MinimumViolation) será "1". En caso de que el valor de la entrada (Input) sobrepase el valor de la entrada (LimitMinimum), la salida (MinimumViolation) será "1".
Los tipos de datos de los valores de entrada (LimitMinimum, Input, LimitMaximum) y del valor de salida (Output) deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
OUT = IN, cuando (IN ≤ MX) & IN ≥ MN
OUT = MN, cuando (IN < MN)
OUT = MX, cuando (IN > MX)
MN_IND = 0, cuando IN ≥ MN
MN_IND = 1, cuando IN < MN
MX_IND = 0, cuando IN ≤ MX
MX_IND = 1, cuando IN > MX
281
LIMIT_IND
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD LimitMinimumLIMIT_IND Input, LimitMaximum, MinimumViolation, Output, MaximumViolation
Representación en ST
Representación:
LIMIT_IND (LimitMinimum, Input, LimitMaximum, MinimumViolation, Output, MaximumViolation);
282 33002522 05/2010
LIMIT_IND
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
LimitMinimum BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Límite del valor mínimo
Input BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Entrada
LimitMaximum BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Límite del valor máximo
Parámetro Tipo de datos Significado
MinimumViolation BOOL Visualización del no llegar al valor mínimo
Output BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Salida
MaximumViolation BOOL Visualización del desbordamiento del valor máximo
33002522 05/2010 283
LIMIT_IND
284 33002522 05/2010
33002522 05/2010
91
MAX
33002522 05/2010
MAX: Función de valor máximo
Descripción
Descripción de funciones
Esta función asigna el valor de entrada máximo a la salida.
Los tipos de datos para todos los valores de entrada y de salida deben ser idénticos.
El número de entradas puede aumentarse.
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
OUT = MAX {IN1, IN2, ..., INn}
Representación en FBD
Representación:
Representación en LD
Representación:
285
MAX
Representación en IL
Representación:
LD Value1MAX Value2ST Maximum
Representación en ST
Representación:
Maximum := MAX (Value1, Value2);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de ejecución
Si se crea un número de coma flotante no autorizado para un parámetro de entrada de tipo de datos REAL, el bit de sistema %S18 (véase página 477) pasa a 1 y el estado se sitúa en el %SW17 (véase página 480).
NOTA: Para obtener una lista de todos los mensajes de error de los bloques, consulte Errores comunes de coma flotante, página 472.
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
1. Valor de entrada
Value2 BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
2. Valor de entrada
Valuen BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
n. Valor de entradan = 32 (máx.)
Parámetro Tipo de datos Significado
Máxima BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor máximo
286 33002522 05/2010
33002522 05/2010
92
MIN
33002522 05/2010
MIN: Función de valor mínimo
Descripción
Descripción de funciones
Esta función asigna el valor de entrada mínimo a la salida.
Los tipos de datos para todos los valores de entrada y de salida deben ser idénticos.
El número de entradas puede aumentarse.
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
OUT = MIN {IN1, IN2, ..., INn}
Representación en FBD
Representación:
Representación en LD
Representación:
287
MIN
Representación en IL
Representación:
LD Value1MIN Value2ST Minimum
Representación en ST
Representación:
Mínimo:= MIN (Value1, Value2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de ejecución
Si se crea un número de coma flotante no autorizado para un parámetro de entrada de tipo de datos REAL, el bit de sistema %S18 (véase página 477) pasa a 1 y el estado se sitúa en el %SW17 (véase página 480).
NOTA: Para obtener una lista de todos los mensajes de error de los bloques, consulte Errores comunes de coma flotante, página 472.
Parámetro Tipo de datos Significado
Value1 BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
1. Valor de entrada
Value2 BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
2. Valor de entrada
Valuen BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
n. Valor de entradan = 32 (máx.)
Parámetro Tipo de datos Significado
Mínimo BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor mínimo
288 33002522 05/2010
33002522 05/2010
93
MUX
33002522 05/2010
MUX: Multiplexador
Descripción
Descripción de funciones
La función traspasa la entrada correspondiente a la salida según el valor en la entrada K.
Se puede aumentar el número de entradas.
Como parámetros adicionales se pueden configurar EN y ENO.
Ejemplo
K = 0: La entrada IN0 se entrega a la salida
K = 1: La entrada IN1 se entrega a la salida
K = 5: La entrada IN5 se entrega a la salida
K = n: La entrada INn se entrega a la salida
Tipos de datos
Los tipos de datos de las entradas Input0 a Inputn y el tipo de la salida deben ser iguales.
Representación en FBD
Representación:
289
MUX
Representación en LD
Representación:
Representación en IL
Representación:
LD SelectionMUX Input0, Input1ST Output
Representación en ST
Representación:
Output := MUX (Selection, Input0, Input1) ;
290 33002522 05/2010
MUX
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
Aparecerá un mensaje de error si se sobrepasa el rango de valores de la entrada K (selector).
NOTA: Para obtener una lista de todos los códigos y los valores de error del módulo, consulte Estadística, página 471.
Parámetro Tipo de datos Significado
K INT, DINT, UINT, UDINT
Entrada de selecciónK = 0...30
IN0 ANY Entrada 1
IN1 ANY Entrada 2
IN2 ANY Entrada 3
INn ANY n+Entrada 1, n = max 30
Parámetro Tipo de datos Significado
OUT ANY Salida
33002522 05/2010 291
MUX
292 33002522 05/2010
33002522 05/2010
94
SEL
33002522 05/2010
SEL: Selección binaria
Descripción
Descripción de la función
La función se utiliza para la selección binaria entre dos valores de entrada.
En función del estado de la entrada Selection se emite la entrada Input0 o Input1 en la salida Output.
Selection = 0 -> Output = Input0
Selection = 1 -> Output = Input1
Los tipos de datos de los valores de entrada Input0 y Input1 y del valor de salida Output deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
293
SEL
Representación en IL
Representación:
LD SelectionSEL Input0, Input1ST Output
Representación en ST
Representación:
Output := SEL (Selection, Input0, Input1) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
Selection BOOL Entrada de selección
Input0 ANY Entrada 0
Input1 ANY Entrada 1
Parámetro Tipo de datos Significado
Output ANY Salida
294 33002522 05/2010
33002522 05/2010
X
Cadenas de caracteres
33002522 05/2010
Cadenas de caracteres
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Cadenas de caracteres.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
95 CONCAT_STR: Concatenación de dos cadenas de caracteres
297
96 DELETE_INT: Eliminación de una subcadena de caracteres 299
97 EQUAL_STR: Comparación de dos cadenas de caracteres 301
98 FIND_INT: Búsqueda de una subcadena de caracteres 303
99 INSERT_INT: Inserción de una subcadena de caracteres 305
100 LEFT_INT: Extracción de caracteres a la izquierda 309
101 LEN_INT: Longitud de una cadena de caracteres 311
102 MID_INT: Extracción de una subcadena de caracteres 313
103 REPLACE_INT: Sustitución de una subcadena de caracteres 315
104 RIGHT_INT: Extracción de una cadena de caracteres a la derecha
319
295
Cadenas de caracteres
296 33002522 05/2010
33002522 05/2010
95
CONCAT_STR
33002522 05/2010
CONCAT_STR: Concatenación de dos cadenas de caracteres
Descripción
Descripción de la función
La función CONCAT_STR concatena dos cadenas de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
297
CONCAT_STR
Representación en IL
Representación:
LD String1
CONCAT_STR String2
ST Result_String
Representación en ST
Representación:
Result_String:= CONCAT_STR(String1, String2);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de tiempo de ejecución
El bit de sistema %S15 (véase página 477) se establece en 1 en los casos siguientes:
Si Result_String es demasiado corta para contener el resultado, este queda truncado. En caso contrario, la cadena Result_String se completa con caracteres NUL (16#00).Si Result_String se utiliza como valor de entrada en IN2.
Parámetro Tipo Comentario
String1 STRING Primera cadena de caracteres que se va a concatenar.Ejemplo: String1 contiene ‘SWITCH TO’
String2 STRING Segunda cadena de caracteres que se va a concatenar.Ejemplo: String2 contiene ‘RUN’
Parámetro Tipo Comentario
Result_String STRING Cadena resultante idéntica al contenido de las dos cadenas String1 y String2.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘SWITCH TO RUN’
298 33002522 05/2010
33002522 05/2010
96
DELETE_INT
33002522 05/2010
DELETE_INT: Eliminación de una subcadena de caracteres
Descripción
Descripción de la función
La función DELETE_INT elimina un número determinado de caracteres a partir de un rango específico. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
NOTA: El comportamiento de esta función ha cambiado a partir de la versión 2.2 de Unity Pro. Si la cadena Result_String de esta función se encuentra en %MW, esta cadena no se completa con caracteres NUL (16#00). Se recomienda borrar el contenido de Result_String antes de utilizar esta función.
Representación en FBD
Representación:
Representación en LD
Representación:
299
DELETE_INT
Representación en IL
Representación:
LD String1
DELETE_INT Length_Str, Position
ST Result_String
Representación en ST
Representación:
Result_String:= DELETE_INT(String1, Length_Str, Position);
Descripción de los parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres de origen de la que se desea eliminar elementos.Ejemplo: String1 contiene "SWITCH TO STOP"
Length_Str INT Longitud de la cadena que se va a suprimir.Ejemplo: Length_Str =10
Position INT Rango del primer carácter de la cadena que se va a eliminar.Ejemplo: Position =1
Parámetro Tipo Comentario
Result_String STRING Cadena resultante igual al contenido de String1 de la que se han suprimido Length_Str caracteres a partir del rango Position.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘STOP’ (se eliminan 10 caracteres desde la posición 1).
300 33002522 05/2010
33002522 05/2010
97
EQUAL_STR
33002522 05/2010
EQUAL_STR: Comparación de dos cadenas de caracteres
Descripción
Descripción de la función
La función EQUAL_STR compara dos cadenas de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
301
EQUAL_STR
Representación en IL
Representación:
LD String1
EQUAL_STR String2
ST Position
Representación en ST
Representación:
Position := EQUAL_STR(String1, String2);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Primera cadena de caracteres que se va a comparar.Ejemplo: String1 contiene ‘PUESTA EN STOP’
String2 STRING Segunda cadena de caracteres que se va a comparar.Ejemplo: String2 contiene ‘PUESTA EN RUN’
Parámetro Tipo Comentario
Position INT Posición del primer carácter distinto en las dos cadenas String1 y String2. Cuando las dos cadenas son idénticas, Position = -1.Ejemplo: con los valores de ejemplo indicados en la tabla anterior, Position = 9Nota: los caracteres en mayúsculas son diferentes a los caracteres en minúsculas.
302 33002522 05/2010
33002522 05/2010
98
FIND_INT
33002522 05/2010
FIND_INT: Búsqueda de una subcadena de caracteres
Descripción
Descripción de la función
La función FIND_INT busca la aparición de una cadena de caracteres en otra cadena.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
303
FIND_INT
Representación en IL
Representación:
LD String1
FIND_INT String2
ST Position
Representación en ST
Representación:
Position := FIND_INT(String1, String2);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres en la que se lleva a cabo la búsqueda.Ejemplo: String1 contiene ‘PUESTA EN STOP’
String2 STRING Cadena de caracteres que contiene el texto que se va a buscarEjemplo: String2 contiene ‘STOP’
Parámetro Tipo Comentario
Position INT Si String2 está incluida en String1, Position contiene el rango del primer carácter de String2 que se encuentra en String1. Cuando String2 no esté incluida en String1, Position = -1.Ejemplo: con los valores de ejemplo indicados en la tabla anterior, Position = 9
304 33002522 05/2010
33002522 05/2010
99
INSERT_INT
33002522 05/2010
INSERT_INT: Inserción de una subcadena de caracteres
Descripción
Descripción de la función
La función INSERT_INT inserta una cadena de caracteres en otra cadena de caracteres a partir de un rango determinado. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
305
INSERT_INT
Representación en IL
Representación:
LD String1
INSERT_INT String2, Position
ST Result_String
Representación en ST
Representación:
Result_String:= INSERT_INT(String1, String2, Position);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres de origen a la que se agrega otra cadena de caracteres desde una posición determinada.Ejemplo: String1 contiene ‘START CYCLE’
String2 STRING Cadena de caracteres que se va a insertar en String1.Ejemplo: String2 contiene ‘AUTO’
Position INT Rango del carácter después del que se inserta String2.Ejemplo: Position =5
Parámetro Tipo Comentario
Result_String STRING La cadena String2 se ha insertado en la cadena String1 después de la posición Position para formar Result_String.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘START AUTO CYCLE’.Nota: resulta imposible realizar una inserción al principio de la cadena con esta función (es necesario utilizar la funciónCONCAT_STR (véase página 297)).
306 33002522 05/2010
INSERT_INT
Errores de tiempo de ejecución
El bit %S15 (véase página 477) se establece en 1 en los casos siguientes:
Position ≤ 0, por lo que Result_String se completa con caracteres de fin de cadena (16#00).El tamaño máximo de la cadena Result_String es demasiado pequeño para insertar String2. Result_String queda truncada.Si Result_String se utiliza como valor de entrada en IN1 o IN2.
33002522 05/2010 307
INSERT_INT
308 33002522 05/2010
33002522 05/2010
100
LEFT_INT
33002522 05/2010
LEFT_INT: Extracción de caracteres a la izquierda
Descripción
Descripción de la función
La función LEFT_INT extrae un número determinado de caracteres situados en el extremo izquierdo de una cadena. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
NOTA: El comportamiento de esta función ha cambiado a partir de la versión 2.2 de Unity Pro. Si la cadena Result_String de esta función se encuentra en %MW, esta cadena no se completa con caracteres NUL (16#00). Se recomienda borrar el contenido de Result_String antes de utilizar esta función.
Representación en FBD
Representación:
Representación en LD
Representación:
309
LEFT_INT
Representación en IL
Representación:
LD String1
LEFT_INT Length_Str
ST Result_String
Representación en ST
Representación:
Result_String:= LEFT_INT(String1, Length_Str);
Descripción de los parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
El bit %S15 (véase página 475) se configura en 1 en los casos siguientes:
Length_Str ≤ 0, por lo que Result_String se completa con caracteres de fin de cadena (16#00).El tamaño máximo de la cadena Result_String es inferior a Length_Str; Result_String queda truncada.
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres de la que se desea extraer los Length_Str caracteres ubicados en el extremo izquierdo.Ejemplo: String1 contiene "SWITCH TO STOP"
Length_Str INT Número de caracteres que se va a extraer.Ejemplo: Length_Str =10.
Parámetro Tipo Comentario
Result_String STRING Cadena que contiene los Length_Str caracteres ubicados en el extremo izquierdo de String1.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘SWITCH TO’ (9 caracteres situados en el extremo izquierdo de String1).
310 33002522 05/2010
33002522 05/2010
101
LEN_INT
33002522 05/2010
LEN_INT: Longitud de una cadena de caracteres
Descripción
Descripción de la función
La función LEN_INT calcula el número de caracteres de una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
311
LEN_INT
Representación en IL
Representación:
LD String1
LEN_INT
ST Length_Str
Representación en ST
Representación:
Length_Str := LEN_INT(String1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres en la que se busca la longitud.Ejemplo: String1 contiene ‘PUESTA EN STOP’
Parámetro Tipo Comentario
Length_Str INT Length_Str contiene la longitud de la cadena de caracteres String1.Ejemplo: con los valores de ejemplo indicados en la tabla anterior, Length_Str = 12
312 33002522 05/2010
33002522 05/2010
102
MID_INT
33002522 05/2010
MID_INT: Extracción de una subcadena de caracteres
Descripción
Descripción de la función
La función MID_INT extrae una subcadena de caracteres a partir de un rango determinado. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
313
MID_INT
Representación en IL
Representación:
LD String1
MID_INT Length_Str, Position
ST Result_String
Representación en ST
Representación:
Result_String := MID_INT(String1, Length_Str, Position);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena de origen que contiene la subcadena que se va a extraer.Ejemplo: String1 contiene ‘PUESTA EN STOP’
Length_Str INT Longitud de la subcadena que se va a extraer.Ejemplo: Length_Str =4
Position INT Rango del primer carácter de la subcadena que se va a extraer.Ejemplo: Position =9
Parámetro Tipo Comentario
Result_String STRING Subcadena de String1 a partir del rango Position en una longitud de Length_Str.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘STOP’.
314 33002522 05/2010
33002522 05/2010
103
REPLACE_INT
33002522 05/2010
REPLACE_INT: Sustitución de una subcadena de caracteres
Descripción
Descripción de la función
La función REPLACE_INT sustituye una cadena de caracteres en otra cadena de caracteres, comenzando por un rango determinado y durante una cierta longitud. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
NOTA: El comportamiento de esta función ha cambiado a partir de la versión 2.2 de Unity Pro. Si Result_String de esta función se encuentra en %MW, Result_String no se completa con caracteres NUL (16#00). Se recomienda borrar el contenido de Result_String antes de utilizar esta función.
Representación en FBD
Representación:
Representación en LD
Representación:
315
REPLACE_INT
Representación en IL
Representación:
LD String1
REPLACE_INT String2, Length_Str, Position
ST Result_String
Representación en ST
Representación:
Result_String:= REPLACE_INT(String1, String2, Length_Str, Position);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Parámetro Tipo Comentario
String1 STRING Cadena original de caracteres en la que se inserta una subcadena de caracteres, comenzando por Position y durante una longitud de Length_Str.Ejemplo: String1 contiene "SWITCH TO RUN"Nota: La longitud Length_Str indica la longitud del texto que se debe reemplazar y no la longitud de la cadena String2. Puede ocurrir que la cadena de sustitución tenga una longitud diferente de la cadena que se sustituye.
String2 STRING Cadena de caracteres que se debe insertar en String1 para sustituir los caracteres existentes.Ejemplo: String2 contiene ‘STOP’
Length_Str INT Número de caracteres que se debe reemplazar en String1 por el contenido de String2Ejemplo: Length_Str =3
Position INT Rango del primer carácter de la subcadena que se debe reemplazar.Ejemplo: Position =11
Parámetro Tipo Comentario
Result_String STRING La cadena String2 ha sustituido Length_Str caracteres, comenzando por el rango Position en la cadena String1 para formar Result_String.Ejemplo: para los valores del ejemplo de la tabla anterior, Result_String contiene ‘SWITCH TO STOP’.
316 33002522 05/2010
REPLACE_INT
Errores de tiempo de ejecución
El bit %S15 (véase página 477) se establece en 1 en los casos siguientes:
Position ≤ 0, por lo que Result_String se completa con caracteres de fin de cadena (16#00).El tamaño máximo de la cadena Result_String es demasiado pequeño para insertar String2. Result_String queda truncada.Position es mayor que la longitud de String1. En este caso, Result_String es igual a String1.Si Result_String se utiliza como valor de entrada en IN2.
33002522 05/2010 317
REPLACE_INT
318 33002522 05/2010
33002522 05/2010
104
RIGHT_INT
33002522 05/2010
RIGHT_INT: Extracción de una cadena de caracteres a la derecha
Descripción
Descripción de la función
La función RIGHT_INT extrae un número determinado de caracteres situados en el extremo derecho de una cadena. El resultado es una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD String1
RIGHT_INT Length_Str
ST Result_String
319
RIGHT_INT
Representación en ST
Representación:
Result_String := RIGHT_INT(String1, Length_Str);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
El bit %S15 (véase página 475) se posiciona en 1 en los casos siguientes:
Length_Str ≤ 0, por lo que Result_String se llena de caracteres de fin de cadena (16#00).El tamaño máximo de la cadena Result_String es inferior a Length_Str. Result_String queda truncada.
Parámetro Tipo Comentario
String1 STRING Cadena de caracteres de la que se desea extraer los Length_Str caracteres ubicados en el extremo derecho.Ejemplo: String1 contiene ‘PUESTA EN STOP’
Length_Str INT Número de caracteres que se va a extraer.Ejemplo: Length_Str =4
Parámetro Tipo Comentario
Result_String STRING Cadena que contiene los Length_Str caracteres ubicados en el extremo derecho de String1.Ejemplo: para los valores de ejemplo de la tabla anterior, Result_String contiene ‘STOP’ (4 caracteres situados en el extremo derecho de String1).
320 33002522 05/2010
33002522 05/2010
XI
Temporizadores y contadores
33002522 05/2010
Temporizadores y contadores
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Temporizadores y contadores.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
105 CTD, CTD_***: Contador regresivo 323
106 CTU, CTU_***: Contador progresivo 327
107 CTUD, CTUD_***: Contador progresivo/regresivo 331
108 TOF: Retardo Des 335
109 TON: Retardo Con 337
110 TP: Pulso 339
321
Temporizadores y contadores
322 33002522 05/2010
33002522 05/2010
105
CTD, CTD_***
33002522 05/2010
CTD, CTD_***: Contador regresivo
Descripción
Descripción de la función
Los bloques de función se utilizan para el conteo regresivo.
En caso de señal "1" en la entrada LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0" a "1" en la entrada CD se reduce el valor de CV en 1.
Si CV ≤ 0, la salida Q se convierte en "1".
NOTA: El contador sólo funciona hasta alcanzar los valores mínimos del tipo de datos utilizado. No se produce ningún desborde.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Este bloque de función existe en dos expresiones distintas:CTDEsta expresión del bloque de función está definida en CEI 61131-3 y sólo funciona con el tipo de datos INT.CTD_***Esta expresión del bloque de función es una extensión conforme a IEC 61131-3 para cubrir otros tipos de datos. Están disponibles los siguientes bloques:
CTD_INTCTD_DINTCTD_UINTCTD_UDINT
323
CTD, CTD_***
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL CTD_Instance (CD:=Trigger, LD:=Load, PV:=PresetValue, Q=>Output, CV=>CountValue)
Representación en ST
Representación:
CTD_Instance (CD:=Trigger, LD:=Load, PV:=PresetValue, Q=>Output, CV=>CountValue) ;
324 33002522 05/2010
CTD, CTD_***
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CD BOOL Entrada Trigger
LD BOOL Carga de datos
PV En CTD: INTEn CTD_***: INT, DINT, UINT, UDINT
Valor preestablecido
Parámetro Tipo de datos Significado
Q BOOL Salida
CV En CTD: INTEn CTD_***: INT, DINT, UINT, UDINT
Valor de cómputo (valor real)
33002522 05/2010 325
CTD, CTD_***
326 33002522 05/2010
33002522 05/2010
106
CTU, CTU_***
33002522 05/2010
CTU, CTU_***: Contador progresivo
Descripción
Descripción de la función
Los bloques de función se utilizan para el conteo progresivo.
En caso de señal "1" en la entrada R se asigna el valor "0" a la salida CV. Con cada paso de "0" a "1" en la entrada CU, el valor de CV aumenta en 1. Si CV ≥ PV, la salida Q se convierte en "1".
NOTA: El contador sólo funciona hasta alcanzar los valores máximos del tipo de datos utilizado. No se produce ningún desborde.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Este bloque de función existe en dos expresiones distintas:CTUEsta expresión del bloque de función está definida en CEI 61131-3 y sólo funciona con el tipo de datos INT.CTU_***Esta expresión del bloque de función es una extensión conforme a IEC 61131-3 para cubrir otros tipos de datos. Están disponibles los siguientes bloques
CTU_INTCTU_DINTCTU_UINTCTU_UDINT
327
CTU, CTU_***
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL CTU_Instance (CU:=Trigger, R:=Reset, PV:=PresetValue, Q=>Output, CV=>CountValue)
Representación en ST
Representación:
CTU_Instance (CU:=Trigger, R:=Reset, PV:=PresetValue, Q=>Output, CV=>CountValue) ;
328 33002522 05/2010
CTU, CTU_***
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CU BOOL Entrada Trigger
R BOOL Reset
PV En CTU: INTEn CTU_***: INT, DINT, UINT, UDINT
Valor preestablecido
Parámetro Tipo de datos Significado
Q BOOL Salida
CV En CTU: INTEn CTD_***: INT, DINT, UINT, UDINT
Valor de cómputo (valor real)
33002522 05/2010 329
CTU, CTU_***
330 33002522 05/2010
33002522 05/2010
107
CTUD, CTUD_***
33002522 05/2010
CTUD, CTUD_***: Contador progresivo/regresivo
Descripción
Descripción de la función
Los bloques de función se utilizan para el conteo progresivo y regresivo.
En caso de señal "1" en la entrada R se asigna el valor "0" a la salida CV. En caso de señal "1" en la entrada LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0" a "1" en la entrada CU, el valor de CV aumenta en 1. Con cada paso de "0" a "1" en la entrada CD se reduce el valor de CV en 1.
En caso de señal simultánea "1" en la entrada R y LD, la entrada R resulta ser dominante.
Si CV ≥ PV, la salida QU se establece en "1".
Si CV ≤ 0, la salida QD se convierte en "1".
NOTA: El contador sólo funciona hasta alcanzar los valores mínimos (contador regresivo) o los valores máximos (contador progresivo) del tipo de datos utilizado. No se produce ningún desborde.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Este bloque de función existe en dos expresiones distintas:CTUDEsta expresión del bloque de función está definida en CEI 61131-3 y sólo funciona con el tipo de datos INT.CTUD_***Esta expresión del bloque de función es una extensión conforme a IEC 61131-3 para cubrir otros tipos de datos. Están disponibles los siguientes bloques
CTUD_INTCTUD_DINTCTUD_UINTCTUD_UDINT
331
CTUD, CTUD_***
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL CTUD_Instance (CU:=UpTrigger, CD:=DownTrigger, R:=Reset, LD:=Load, PV:=PresetValue, QU=>UpDisplay, QD=>DownDisplay, CV=>CountValue)
Representación en ST
Representación:
CTUD_Instance (CU:=UpTrigger, CD:=DownTrigger, R:=Reset, LD:=Load, PV:=PresetValue, QU=>UpDisplay, QD=>DownDisplay, CV=>CountValue) ;
332 33002522 05/2010
CTUD, CTUD_***
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
CU BOOL Entrada de disparador de contador ascendente
CD BOOL Entrada de disparador de contador descendente
R BOOL Reset
LD BOOL Carga de datos
PV En CTUD: INT, En CTUD_***: INT, DINT, UINT, UDINT
Valor preestablecido
Parámetro Tipo de datos Significado
QU BOOL Indicador ascendente
QD BOOL Indicador descendente
CV En CTUD: INTEn CTUD_***: INT, DINT, UINT, UDINT
Valor de cómputo (valor real)
33002522 05/2010 333
CTUD, CTUD_***
334 33002522 05/2010
33002522 05/2010
108
TOF
33002522 05/2010
TOF: Retardo Des
Descripción
Descripción de la función
El bloque de función se utiliza como retardo de desconexión.
El estado inicial de ET durante la primera llamada del bloque de función es "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL TOF_Instance (IN:=StartDelay, PT:=PresetDelayTime, Q=>Output, ET=>InternalTime)
335
TOF
Representación en ST
Representación:
TOF_Instance (IN:=StartDelay, PT:=PresetDelayTime, Q=>Output, ET=>InternalTime) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Diagrama de ciclo
Representación del retardo de desconexión TOF:
(1) Si IN se convierte en "1", Q se convierte en "1".(2) Si IN se convierte en "0", se inicia el tiempo interno (ET).(3) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0".(4) Si IN se convierte en "1", se convierte Q en "1" y se detiene/restablece el tiempo interno.(5) Si IN se convierte en "1" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "0".
Parámetro Tipo de datos Significado
IN BOOL Iniciar retardo
PT TIME Ajuste previo del tiempo de retardo
Parámetro Tipo de datos Significado
Q BOOL Salida
ET TIME Tiempo interno
336 33002522 05/2010
33002522 05/2010
109
TON
33002522 05/2010
TON: Retardo Con
Descripción
Descripción de la función
El bloque de función se utiliza como retardo de conexión.
El estado inicial de ET durante la primera llamada del bloque de función es "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL TON_Instance (IN:=StartDelay, PT:=PresetDelayTime, Q=>Output, ET=>InternalTime)
337
TON
Representación en ST
Representación:
TON_Instance (IN:=StartDelay, PT:=PresetDelayTime, Q=>Output, ET=>InternalTime) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Diagrama de ciclo
Representación del retardo de conexión TON:
(1) Si IN se convierte en "1", se inicia el tiempo interno (ET).(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "1".(3) Si IN se convierte en "0", Q se convierte en "0" y se detiene/restablece el tiempo interno.(4) Si IN se convierte en "0" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "1".
Parámetro Tipo de datos Significado
IN BOOL Iniciar retardo
PT TIME Ajuste previo del tiempo de retardo
Parámetro Tipo de datos Significado
Q BOOL Salida
ET TIME Tiempo interno
338 33002522 05/2010
33002522 05/2010
110
TP
33002522 05/2010
TP: Pulso
Descripción
Descripción de la función
El bloque de función se utiliza para la generación de un impulso con una duración definida.
El estado inicial de ET durante la primera llamada del bloque de función es "0".
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
CAL TP_Instance (IN:=TriggerPulse, PT:=PulseDuration, Q=>Output, ET=>InternalTime)
339
TP
Representación en ST
Representación:
TP_Instance (IN:=TriggerPulse, PT:=PulseDuration, Q=>Output, ET=>InternalTime) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Diagrama de ciclo
Representación del impulso TP:
(1) Si IN se convierte en "1", Q se convierte en "1" y se inicia el tiempo interno (ET).(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0" (independientemente de
IN).(3) El tiempo interno se detiene/restablece, si IN se convierte en "0".(4) Si el tiempo interno aún no ha alcanzado el valor de PT, un ciclo en IN no tendrá influencia
sobre el tiempo interno.(5) Si el tiempo interno ha alcanzado el valor de PT y si IN es "0", se detiene/restablece el
tiempo interno y Q se convierte en "0".
Parámetro Tipo de datos Significado
IN BOOL Activar impulso
PT TIME Ajuste previo de la duración de impulso
Parámetro Tipo de datos Significado
Q BOOL Salida
ET TIME Tiempo interno
340 33002522 05/2010
33002522 05/2010
XII
Conversión de tipos
33002522 05/2010
Conversión de tipos
Vista general
En esta parte se describen las funciones y bloques de función elementales de la familia Conversión de tipos.
Contenido de esta parte
Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
111 ARINT_TO_DATE: Conversión de matriz de enteros con fecha en una variable DATE
345
112 ARINT_TO_DT: Conversión de matriz de enteros con fecha y hora en una variable DT
347
113 ARINT_TO_TOD: Conversión de matriz de enteros con hora del día en una variable TOD
349
114 ASCII_TO_STRING: Conversión de tipos 351
115 ASCII_TO_STRING_INV: Conversión de tipos 355
116 BCD_TO_INT: Conversión de un entero BCD en binario puro 359
117 BIT_TO_BYTE: Conversión de tipos 361
118 BIT_TO_WORD: Conversión de tipos 363
119 BOOL_TO_***: Conversión de tipos 365
120 BYTE_AS_WORD: Conversión de tipos 367
121 BYTE_TO_BIT: Conversión de tipos 369
122 BYTE_TO_***: Conversión de tipos 371
123 DATE_TO_ARINT: Conversión de variable DATE en matriz de enteros
375
124 DATE_TO_STRING: Conversión de una variable en formato DATE a una cadena de caracteres
377
125 DBCD_TO_***: Conversión de un entero BCD doble en binario 379
126 DEG_TO_RAD: Conversión de grados a radianes 381
341
Conversión de tipos
127 DINT_AS_WORD: Conversión de tipos 383
128 DINT_TO_***: Conversión de tipos 385
129 DINT_TO_DBCD: Conversión de un entero doble en código binario a un entero decimal doble con codificación binaria
389
130 DT_TO_ARINT: Conversión de variable DT en matriz de enteros
391
131 DT_TO_STRING: Conversión de una variable en formato DT a una cadena de caracteres
393
132 DWORD_TO_***: Conversión de tipos 395
133 GRAY_TO_INT: Conversión de un entero en código Gray en un entero con codificación binaria
397
134 INT_AS_DINT: Concatenación de dos enteros para formar un entero doble
399
135 INT_TO_***: Conversión de tipos 401
136 INT_TO_BCD: Conversión de un entero en código binario a un entero decimal con codificación binaria
405
137 INT_TO_DBCD: Conversión de un entero en código binario a un entero decimal doble con codificación binaria
407
138 RAD_TO_DEG: Conversión de radianes a grados 409
139 REAL_AS_WORD: Conversión de tipos 411
140 REAL_TO_***: Conversión de tipos 413
141 REAL_TRUNC_***: Conversión de tipos 417
142 STRING_TO_ASCII: Conversión de tipos 421
143 STRING_TO_ASCII_INV: Conversión de tipos 425
144 STRING_TO_***: Conversión de una cadena de caracteres a un número de tipo INT, DINT o REAL
429
145 TIME_AS_WORD: Conversión de tipos 431
146 TIME_TO_***: Conversión de tipos 433
147 TIME_TO_STRING: Conversión de una variable en formato TIME a una cadena de caracteres
435
148 TOD_TO_ARINT: Conversión de variable TOD en matriz de enteros
437
149 TOD_TO_STRING: Conversión de una variable en formato TOD a una cadena de caracteres
439
150 UDINT_AS_WORD: Conversión de tipos 441
151 UDINT_TO_***: Conversión de tipos 443
152 UINT_TO_***: Conversión de tipos 447
Capítulo Nombre del capítulo Página
342 33002522 05/2010
Conversión de tipos
153 WORD_AS_BYTE: Conversión de tipos 451
154 WORD_AS_DINT: Conversión de tipos 453
155 WORD_AS_REAL: Conversión de tipos 455
156 WORD_AS_TIME: Conversión de tipos 457
157 WORD_AS_UDINT: Conversión de tipos 459
158 WORD_TO_BIT: Conversión de tipos 461
159 WORD_TO_***: Conversión de tipos 463
160 ***_TO_STRING: Conversión de una variable a una cadena de caracteres
465
Capítulo Nombre del capítulo Página
33002522 05/2010 343
Conversión de tipos
344 33002522 05/2010
33002522 05/2010
111
ARINT_TO_DATE
33002522 05/2010
ARINT_TO_DATE: Conversión de matriz de enteros con fecha en una variable DATE
Descripción
Descripción de la función
La función convierte una matriz de enteros con la fecha en formato BCD en una variable DATE (d#).
Tiene dos opciones para la entrada:Si desea asignar la fecha del sistema, asigne %SW52 a la entrada.En este caso, se asigna el contenido de %SW52 (véase página 486) y %SW53 (véase página 486).Si desea asignar una fecha diferente, cree una matriz de enteros de dos elementos e introduzca la fecha en formato BCD.
Ejemplo:
Si la entrada es:Date_ARRAY[1] = 16#0511Date_ARRAY[2] = 16#2006
Entonces, la salida es:DATE_Variable = d#2006-05-11
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
345
ARINT_TO_DATE
Representación en LD
Representación en IL
LD Date_ARRAY ARINT_TO_DATE ST DATE_Variable
Representación en ST
DATE_Variable := ARINT_TO_DATE (Date_ARRAY) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si la entrada Date_ARRAY no es válida, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
Date_ARRAY ARRAY [n..m] OF INT Matriz de enteros de dos elementos con la fecha en formato BCD:
Mes y día (16#mmdd),corresponde a %SW52 (véase página 486).Año (16#aaaa),corresponde a %SW53 (véase página 486).
Parámetro Tipo de datos Significado
DATE_Variable DATE La fecha asignada a la entrada como variable DATE (d#) (si la entrada es válida).
346 33002522 05/2010
33002522 05/2010
112
ARINT_TO_DT
33002522 05/2010
ARINT_TO_DT: Conversión de matriz de enteros con fecha y hora en una variable DT
Descripción
Descripción de la función
La función convierte una matriz de enteros con fecha y hora en formato BCD en una variable DATE_AND_TIME (dt#).
Tiene dos opciones para la entrada:Si desea asignar la hora del sistema, asigne %SW50 a la entrada.En este caso, se asigna el contenido de %SW50 (véase página 486) a %SW53 (véase página 486).Si desea asignar una hora diferente, cree una matriz de enteros de cuatro elementos e introduzca la fecha y hora en formato BCD.
Ejemplo:
Si la entrada es:DateAndTime_ARRAY[1] = 16#1600DateAndTime_ARRAY[2] = 16#1046DateAndTime_ARRAY[3] = 16#0511DateAndTime_ARRAY[4] = 16#2006
Entonces, la salida es:DT_Variable = dt#2006-05-11-10:46:16
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
347
ARINT_TO_DT
Representación en LD
Representación en IL
LD DateAndTime_ARRAY ARINT_TO_DT ST DT_Variable
Representación en ST
DT_Variable := ARINT_TO_DT (DateAndTime_ARRAY) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si la entrada DateAndTime_ARRAY no es válida, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
DateAndTime_ARRAY ARRAY [n..m] OF INT Matriz de enteros de cuatro elementos con la fecha y la hora en formato BCD:
Segundos,-- (16#ss,--), corresponde a %SW50 (véase página 486).Horas y minutos (16#hhmm),corresponde a %SW51 (véase página 486).Mes y día (16#mmdd),corresponde a %SW52 (véase página 486).Año (16#aaaa),corresponde a %SW53 (véase página 486).
Parámetro Tipo de datos Significado
DT_Variable DT La fecha y hora asignadas a la entrada como variable DATE_AND_TIME (dt#) (si la entrada es válida).
348 33002522 05/2010
33002522 05/2010
113
ARINT_TO_TOD
33002522 05/2010
ARINT_TO_TOD: Conversión de matriz de enteros con hora del día en una variable TOD
Descripción
Descripción de la función
La función convierte una matriz de enteros con la hora del día en formato BCD en una variable TIME_OF_DAY (tod#).
Tiene dos opciones para la entrada:Si desea asignar la hora del sistema, asigne %SW50 a la entrada.En este caso, se asigna el contenido de %SW50 (véase página 486) y %SW51 (véase página 486).Si desea asignar una hora diferente, cree una matriz de enteros de dos elementos e introduzca la hora del día en formato BCD.
Ejemplo:
Si la entrada es:Time_ARRAY[1] = 16#1600Time_ARRAY[2] = 16#1046
Entonces, la salida es:TOD_Variable = tod#10:46:16
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
349
ARINT_TO_TOD
Representación en LD
Representación en IL
LD Time_ARRAY ARINT_TO_TOD ST TOD_Variable
Representación en ST
TOD_Variable := ARINT_TO_TOD (Time_ARRAY) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si la entrada Time_ARRAY no es válida, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
Time_ARRAY ARRAY [n..m] OF INT Matriz de enteros de dos elementos con la fecha y la hora en formato BCD:
Segundos,-- (16#ss,--), corresponde a %SW50 (véase página 486).Horas y minutos (16#hhmm),corresponde a %SW51 (véase página 486).
Parámetro Tipo de datos Significado
TOD_Variable DT La hora del día asignada a la entrada como variable TIME_OF_DAY (tod#) (si la entrada es válida).
350 33002522 05/2010
33002522 05/2010
114
ASCII_TO_STRING
33002522 05/2010
ASCII_TO_STRING: Conversión de tipos
Descripción
Descripción de funciones
La función copia el contenido (valores ASCII) de la matriz INT de la entrada (sin conversión) a la salida del tipo de datos STRING.
Esta función se utiliza para transferir cualquier valor ASCII (de 16#01 a 16#FF). La única excepción es 16#00 (valor 0). Se emplea para finalizar la operación de copia.
Cada valor ASCII requiere 1 byte, por lo que es posible transferir dos valores ASCII a la salida por elemento entero de la matriz de entrada. Por lo tanto, la secuencia de transferencia es la siguiente: byte alto, byte bajo.
En caso de transferir un número impar de valores ASCII a la salida, en teoría sólo se requiere el byte alto del último elemento. No obstante, siempre se transfiere el elemento completo, por lo que, en este caso, es necesario introducir el valor 0 en el byte bajo; consulte Ejemplo 2, página 353.
La operación de copia finaliza en las situaciones siguientes:Se alcanza el final de la matriz de entrada.Se transfiere el valor 0 (16#00).Se alcanza el final de la cadena de caracteres de salida.
EN y ENO se proyectan como parámetros adicionales.
351
ASCII_TO_STRING
Representación en FBD
Representación:
Representación en LD
Apariencia:
Representación en IL
Apariencia:
LD AsciiValueArrayASCII_TO_STRING ST StringOutput
Representación en ST
Apariencia:
StringOutput := ASCII_TO_STRING (AsciiValueArray) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Descripción
AsciiValueArray ARRAY[n..m] OF INT Matriz de enteros con valores ASCII
Parámetro Tipo de datos Descripción
StringOutput STRING Cadena de caracteres ASCII
352 33002522 05/2010
ASCII_TO_STRING
Error de ejecución
Si el tamaño de las variables de cadena de caracteres en la salida no es suficiente para representar todos los valores ASCII de la matriz de entrada, ENO se establece en 0 y el bit de sistema %S15 (véase página 477) se establece en 1.
Ejemplo 1
En el ejemplo, se van a transferir cuatro valores ASCII a una cadena de cuatro caracteres. Esto requiere una matriz de enteros con dos 2 elementos.
Ejemplo 2
En el ejemplo, se van a transferir tres valores ASCII a una cadena de cuatro caracteres. Esto requiere una matriz de enteros con dos elementos; no se requiere el byte bajo del segundo elemento y, por lo tanto, debe contener el valor 0.
Ejemplo 3
En el ejemplo, se van a transferir cuatro valores ASCII a una cadena de ocho caracteres. Esto requiere una matriz de enteros con dos 2 elementos. En este caso, los cuatros caracteres no necesarios de la salida permanecen vacíos.
33002522 05/2010 353
ASCII_TO_STRING
Ejemplo 4
En el ejemplo, se van a transferir los cuatro primeros valores ASCII de una matriz de enteros con ocho elementos a una cadena de cuatro caracteres. Esto requiere que el byte alto del tercer elemento de la matriz de enteros contenga el valor 0 para marcar el final de los caracteres que deben transferirse. Todos los valores ASCII restantes dejan de tenerse en cuenta.
Ejemplo 5
En el ejemplo, se van a transferir 16 valores ASCII a una cadena de cuatro caracteres. La cadena de caracteres de salida es demasiado pequeña para ello, por lo que ENO se establece en 0 y el bit de sistema %S15 se establece en 1.
354 33002522 05/2010
33002522 05/2010
115
ASCII_TO_STRING_INV
33002522 05/2010
ASCII_TO_STRING_INV: Conversión de tipos
Descripción
Descripción de funciones
La función copia el contenido (valores ASCII) de la matriz INT de la entrada (sin conversión) a la salida del tipo de datos STRING.
Esta función se utiliza para transferir cualquier valor ASCII (de 16#01 a 16#FF). La única excepción es 16#00 (valor 0). Se emplea para finalizar la operación de copia.
Cada valor ASCII requiere 1 byte, por lo que es posible transferir dos valores ASCII a la salida por elemento entero de la matriz de entrada. Por lo tanto, la secuencia de transferencia es la siguiente: byte bajo, byte alto.
En caso de transferir un número impar de valores ASCII a la salida, en teoría sólo se requiere el byte bajo del último elemento. No obstante, siempre se transfiere el elemento completo, por lo que, en este caso, es necesario introducir el valor 0 en el byte alto; consulte Ejemplo 2, página 357.
La operación de copia finaliza en las situaciones siguientes:Se alcanza el final de la matriz de entrada.Se transfiere el valor 0 (16#00).Se alcanza el final de la cadena de caracteres de salida.
EN y ENO se proyectan como parámetros adicionales.
355
ASCII_TO_STRING_INV
Representación en FBD
Representación:
Representación en LD
Apariencia:
Representación en IL
Apariencia:
LD AsciiValueArrayASCII_TO_STRING_INV ST StringOutput
Representación en ST
Apariencia:
StringOutput := ASCII_TO_STRING_INV (AsciiValueArray) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Descripción
AsciiValueArray ARRAY[n..m] OF INT Matriz de enteros con valores ASCII
Parámetro Tipo de datos Descripción
StringOutput STRING Cadena de caracteres ASCII
356 33002522 05/2010
ASCII_TO_STRING_INV
Error de ejecución
Si el tamaño de las variables de cadena de caracteres en la salida no es suficiente para representar todos los valores ASCII de la matriz de entrada, ENO se establece en 0 y el bit de sistema %S15 (véase página 477) se establece en 1.
Ejemplo 1
En el ejemplo, se van a transferir cuatro valores ASCII a una cadena de cuatro caracteres. Esto requiere una matriz de enteros con dos 2 elementos.
Ejemplo 2
En el ejemplo, se van a transferir tres valores ASCII a una cadena de cuatro caracteres. Esto requiere una matriz de enteros con dos elementos; no se requiere el byte bajo del segundo elemento y, por lo tanto, debe contener el valor 0.
Ejemplo 3
En el ejemplo, se van a transferir cuatro valores ASCII a una cadena de ocho caracteres. Esto requiere una matriz de enteros con dos 2 elementos. En este caso, los cuatros caracteres no necesarios de la salida permanecen vacíos.
33002522 05/2010 357
ASCII_TO_STRING_INV
Ejemplo 4
En el ejemplo, se van a transferir los cuatro primeros valores ASCII de una matriz de enteros con ocho elementos a una cadena de cuatro caracteres. Esto requiere que el byte alto del tercer elemento de la matriz de enteros contenga el valor 0 para marcar el final de los caracteres que deben transferirse. Todos los valores ASCII restantes dejan de tenerse en cuenta.
Ejemplo 5
En el ejemplo, se van a transferir 16 valores ASCII a una cadena de cuatro caracteres. La cadena de caracteres de salida es demasiado pequeña para ello, por lo que ENO se establece en 0 y el bit de sistema %S15 se establece en 1.
358 33002522 05/2010
33002522 05/2010
116
BCD_TO_INT
33002522 05/2010
BCD_TO_INT: Conversión de un entero BCD en binario puro
Descripción
Descripción de la función
La función BCD_TO_INT realiza la conversión de un entero con formato Binario Codificado Decimal (BCD) en un entero codificado binario.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD BCD_Int
BCD_TO_INT
ST Result_Int
359
BCD_TO_INT
Representación en ST
Representación:
Result_Int := BCD_TO_INT(BCD_Int);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona a 1 cuando el valor que se va a convertir no es un valor codificado en BCD. De este modo, el resultado de la función devuelve el valor del parámetro de entrada.
Parámetro Tipo Comentario
BCD_Int INT Entero con formato BCD.
Ejemplo: BCD_Int = 16#99
Parámetro Tipo Comentario
Result_Int INT Result_Int es un entero codificado en binario.
Ejemplo: con el valor de ejemplo de la tabla anterior, Result_Int = 99
360 33002522 05/2010
33002522 05/2010
117
BIT_TO_BYTE:
33002522 05/2010
BIT_TO_BYTE: Conversión de tipos
Descripción
Descripción de la función
La función convierte 8 valores de entrada del tipo de datos BOOL en un valor de salida de tipo BYTE.
Los valores de entrada se asocian a cada uno de los bits de los bytes en la salida según el nombre de la entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
361
BIT_TO_BYTE:
Representación en LD
Representación:
Representación en IL
Representación:
LD InputBit0BIT_TO_BYTE InputBit1, InputBit2, InputBit3, InputBit4, InputBit5, InputBit6, InputBit7ST OutputByte
Representación en ST
Representación:
OutputByte := BIT_TO_BYTE (InputBit0, InputBit1, InputBit2, InputBit3, InputBit4, InputBit5, InputBit6, InputBit7) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
InputBit0 BOOL Bit de entrada 0
InputBit1 BOOL Bit de entrada 1
: : :
InputBit7 BOOL Bit de entrada 7
Parámetro Tipo de datos Significado
OutputByte BYTE Valor de salida
362 33002522 05/2010
33002522 05/2010
118
BIT_TO_WORD
33002522 05/2010
BIT_TO_WORD: Conversión de tipos
Descripción
Descripción de la función
La función convierte 16 valores de entrada del tipo de datos BOOL en un valor de salida de tipo WORD.
Los valores de entrada se asocian a cada uno de los bits de las palabras en la salida según el nombre de entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
363
BIT_TO_WORD
Representación en LD
Representación:
Representación en IL
Representación:
LD InputBit0BIT_TO_WORD InputBit1, InputBit2, InputBit3, InputBit4, InputBit5, InputBit6, InputBit7,InputBit8, InputBit9, InputBit10, InputBit11, InputBit12, InputBit13, InputBit14, InputBit15ST WORD_Output
Representación en ST
Representación:
WORD_Output := BIT_TO_WORD (InputBit0, InputBit1, InputBit2, InputBit3, InputBit4, InputBit5, InputBit6, InputBit7, InputBit8, InputBit9, InputBit10, InputBit11, InputBit12, InputBit13, InputBit14, InputBit15) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
InputBit0 BOOL Bit de entrada 0
: : :
InputBit15 BOOL Bit de entrada 15
Parámetro Tipo de datos Significado
WORD_Output WORD Valor de salida
364 33002522 05/2010
33002522 05/2010
119
BOOL_TO_***
33002522 05/2010
BOOL_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos BOOL en uno de los siguientes tipos: BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL o TIME.
El valor de entrada se escribe en el bit con menor valor de salida. Todos los demás bits de salida se ubican en cero.
Como parámetros adicionales se pueden configurar EN y ENO.
(La salida ENOno se utiliza enBOOL_TO_REAL ; ésta siempre tiene el valor "1".)
Funciones disponibles
Lista de las funciones disponibles:BOOL_TO_BYTEBOOL_TO_WORDBOOL_TO_DWORDBOOL_TO_INTBOOL_TO_DINTBOOL_TO_UINTBOOL_TO_UDINTBOOL_TO_REALBOOL_TO_TIME
Representación en FBD
Ejemplo de aplicación con enteros:
365
BOOL_TO_***
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD BOOL_variableBOOL_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := BOOL_TO_INT (BOOL_variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
BOOL_variable BOOL Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor de salida
366 33002522 05/2010
33002522 05/2010
120
BYTE_AS_WORD
33002522 05/2010
BYTE_AS_WORD: Conversión de tipos
Descripción
Descripción de la función
La función convierte 2 valores de entrada del tipo de datos BYTE en un valor de salida de tipo WORD.
Los valores de entrada se asocian a la palabra en la salida según el nombre de la entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
Representación en LD
Representación:
367
BYTE_AS_WORD
Representación en IL
Representación:
LD BYTE_variable1BYTE_AS_WORD BYTE_variable2ST WORD_Output
Representación en ST
Representación:
WORD_Output := BYTE_AS_WORD (BYTE_variable1, BYTE_variable2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
BYTE_variable1 BYTE Byte de orden inferior
BYTE_variable2 BYTE Byte de orden superior
Parámetro Tipo de datos Significado
WORD_Output WORD Valor de salida
368 33002522 05/2010
33002522 05/2010
121
BYTE_TO_BIT
33002522 05/2010
BYTE_TO_BIT: Conversión de tipos
Descripción
Descripción de la función
El procedimiento convierte un valor de entrada del tipo de datos BYTE en 8 valores de salida de tipo BOOL.
Cada uno de los bits de los bytes en la entrada se asocia a las salidas según el nombre de la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
369
BYTE_TO_BIT
Representación en LD
Representación:
Representación en IL
Representación:
LD BYTE_variableBYTE_TO_BIT BOOL_variable1, BOOL_variable2, BOOL_variable3, BOOL_variable4, BOOL_variable5, BOOL_variable6, BOOL_variable7, BOOL_variable8
Representación en ST
Representación:
BYTE_TO_BIT (BYTE_variable, BOOL_variable1, BOOL_variable2, BOOL_variable3, BOOL_variable4, BOOL_variable5, BOOL_variable6, BOOL_variable7, BOOL_variable8);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
BYTE_variable BYTE Entrada
Parámetro Tipo de datos Significado
BOOL_variable1 BOOL Bit de salida 0
BOOL_variable2 BOOL Bit de salida 1
: : :
BOOL_variable8 BOOL Bit de salida 7
370 33002522 05/2010
33002522 05/2010
122
BYTE_TO_***
33002522 05/2010
BYTE_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos BYTE en uno de los siguientes tipos: BOOL, WORD, DWORD, INT, DINT, UINT, UDINT, REAL o TIME.
Durante la conversión del tipo de datosBYTE al tipo de datos WORD, DWORD, INT, DINT, UINT, UDINT, REAL o TIME, se transmite la muestra de bit de la entrada al bit de menor valor de la salida. Los bits de mayor valor de la salida se ubican en cero.
Durante la conversión del tipo de datos BYTE en el tipo de datos BOOL se transmite el bit de menor valor del valor de entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
(La salida ENOno se utiliza enBYTE_TO_REAL; ésta siempre tiene el valor "1").
Funciones disponibles
Lista de las funciones disponibles:BYTE_TO_BOOLBYTE_TO_WORDBYTE_TO_DWORDBYTE_TO_INTBYTE_TO_DINTBYTE_TO_UINTBYTE_TO_UDINTBYTE_TO_REALBYTE_TO_TIME
371
BYTE_TO_***
Representación en FBD
Ejemplo de aplicación con enteros:
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD BYTE_variableBYTE_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := BYTE_TO_INT (BYTE_variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
BYTE_variable BYTE Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor de salida
372 33002522 05/2010
BYTE_TO_***
Error de ejecución
El tratamiento de los errores depende de la función:BYTE_TO_REALEl bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480) cuando durante la conversión se genere un número de coma flotante inadmisible.El resto de las funcionesEl bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan.
33002522 05/2010 373
BYTE_TO_***
374 33002522 05/2010
33002522 05/2010
123
DATE_TO_ARINT
33002522 05/2010
DATE_TO_ARINT: Conversión de variable DATE en matriz de enteros
Descripción
Descripción de la función
La función convierte una variable DATE (d#) en una matriz de enteros de dos elementos con fecha en formato BCD.
Ejemplo:
Si la entrada es:DATE_Variable = d#2006-05-11
Entonces, la salida es:Date_ARRAY[3] = 16#0511Date_ARRAY[4] = 16#2006
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
Representación en LD
Representación en IL
LD DATE_Variable DATE_TO_ARINT ST Date_ARRAY
375
DATE_TO_ARINT
Representación en ST
Date_ARRAY := DATE_TO_ARINT (DATE_Variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si el tamaño de la salida Date_ARRAY es demasiado pequeño, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
DATE_Variable DATE La fecha como la variable DATE (dt#).
Parámetro Tipo de datos Significado
Date_ARRAY ARRAY [n..m] OF INT Matriz de enteros de dos elementos con la fecha en formato BCD:
Mes y día (16#mmdd)corresponde a %SW52 (véase página 486).Año (16#aaaa)corresponde a %SW53 (véase página 486).
376 33002522 05/2010
33002522 05/2010
124
DATE_TO_STRING
33002522 05/2010
DATE_TO_STRING: Conversión de una variable en formato DATE a una cadena de caracteres
Descripción
Descripción de la función
La función DATE_TO_STRING realiza la conversión de una variable con formato DATE en una cadena de caracteres.
Los parámetros adicionales EN y ENO pueden configurarse.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD Date1
DATE_TO_STRING
ST Result_Str
377
DATE_TO_STRING
Representación en ST
Representación:
Result_Str:= DATE_TO_STRING(Date1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Si la cadena Result_Str es demasiado corta para contener la fecha (longitud inferior a 10 caracteres), la fecha queda truncada y el bit %S15 (véase página 475) se pone a 1.
Si Date1 no se puede interpretar y no es coherente con el formato DATE, el bit de sistema %S18 (véase página 477) se pone a 1 y Result_Str =’****-**-**’.
Parámetro Tipo Comentario
Date1 DATE Fecha que se va a convertir al formato de cadena de caracteres.
Parámetro Tipo Comentario
Result_Str STRING Result_Str es una cadena de 10 caracteres que contiene una fecha (sin la hora) de la manera que se muestra a continuación: YYYY-MM-DD.Ejemplo: ‘2000-12-27’Nota: si el tamaño máximo de la cadena Result_Str es superior a 10, Result_Str se completa con caracteres de fin de cadena (16#00).
378 33002522 05/2010
33002522 05/2010
125
DBCD_TO_***
33002522 05/2010
DBCD_TO_***: Conversión de un entero BCD doble en binario
Descripción
Descripción de la función
La función DBCD_TO_*** realiza la conversión de un entero doble con formato Binario Codificado Decimal (DBCD) en un entero o un entero doble codificado binario.
Los parámetros adicionales EN y ENO se pueden configurar.
Funciones disponibles
Las funciones disponibles son las siguientes:DBCD_TO_INT yDBCD_TO_DINT.
Representación en FBD
Representación aplicada a un entero:
Representación en LD
Representación aplicada a un entero:
379
DBCD_TO_***
Representación en IL
Representación aplicada a un entero:
LD DBCD_Value
DBCD_TO_INT
ST Result_Value
Representación en ST
Representación aplicada a un entero:
Result_Value := DBCD_TO_INT(DBCD_Value);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona en 1 cuando:
El valor que se va a convertir no es un valor codificado en BCD. De este modo, el resultado de la función devuelve el valor del primer cuarteto que falla.Para la función DBCD_TO_INT, el valor que se va a convertir es superior en BCD a 32767. Entonces, el resultado de la función es -1.
Parámetro Tipo Comentario
DBCD_Value DINT Entero doble codificado con formato BCD.Ejemplo: DBCD_Value = 16#32767
Parámetro Tipo Comentario
Result_Value INT, DINT Result_Value es un entero o entero doble codificado en binario.Ejemplo: con el valor de ejemplo de la tabla anterior, Result_Value = 32767
380 33002522 05/2010
33002522 05/2010
126
DEG_TO_RAD
33002522 05/2010
DEG_TO_RAD: Conversión de grados a radianes
Descripción
Descripción de la función
La función DEG_TO_RAD convierte un ángulo expresado en grados en radianes.
Los parámetros adicionales EN y ENO pueden configurarse.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
381
DEG_TO_RAD
Representación en IL
Representación:
LD Angle_in_Degree
DEG_TO_RAD
ST Angle_in_Radian
Representación en ST
Representación:
Angle_in_Radian:= DEG_TO_RAD(Angle_in_Degree);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Angle_in_Degree se encuentra fuera del intervalo ]-737280.0, +73780.0[, el bit de sistema %S18 (véase página 477) pasa a 1, la palabra del sistema %SW17 (véase página 480) indica el tipo de fallo y el resultado mostrado es 1.#NAN.
Parámetro Tipo Comentario
Angle_in_Degree REAL Ángulo expresado en grados.-737280.0 < Angle_in_Degree < +737280.0.
Parámetro Tipo Comentario
Angle_in_Radian REAL Valor del ángulo expresado en radianes. -π ≤ Angle_in_Radian ≤ +π.
382 33002522 05/2010
33002522 05/2010
127
DINT_AS_WORD
33002522 05/2010
DINT_AS_WORD: Conversión de tipos
Descripción
Descripción de la función
El procedimiento convierte un valor de entrada del tipo de datos DINT en 2 valores de salida de tipo WORD.
Cada una de las palabras de la entrada DINT se asocia a las salidas según el nombre de la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
383
DINT_AS_WORD
Representación en IL
Representación:
LD DINT_variableDINT_AS_WORD LowWord, HighWord
Representación en ST
Representación:
DINT_AS_WORD (DINT_variable, LowWord, HighWord);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
DINT_variable DINT Entrada
Parámetro Tipo de datos Significado
LowWord WORD Palabra de orden inferior
HighWord WORD Palabra de orden superior
384 33002522 05/2010
33002522 05/2010
128
DINT_TO_***
33002522 05/2010
DINT_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos DINT en un valor de salida de tipo BOOL, BYTE, WORD, DWORD, INT, UINT UDINT, REAL o TIME .
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. DINT_TO_BOOL.
Durante la conversión del tipo de datos DINT al tipo de datos BOOL, BYTE, WORD, INT o UINT, se transmiten los bits de menor valor del valor de entrada a la salida.
Los valores de entrada negativos no se pueden convertir en los tipos de datos UINT, UDINT o TIME.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:DINT_TO_BOOLDINT_TO_BYTEDINT_TO_WORDDINT_TO_DWORDDINT_TO_INTDINT_TO_UINTDINT_TO_UDINTDINT_TO_REALDINT_TO_TIME
385
DINT_TO_***
Representación en FBD
Ejemplo de aplicación con enteros:
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD DINT_variableDINT_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := DINT_TO_INT (DINT_variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
DINT_variable DINT Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, DWORD, INT, UINT, UDINT, REAL, TIME
Valor de salida
386 33002522 05/2010
DINT_TO_***
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se sobrepasa el margen de valores de la salida (tipos de datos numéricos)se debe convertir un valor de entrada negativo en un valor de salida UDINT, UINT o TIME.durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible. En este caso, se ubicará el estado en %SW17 (véase página 480).
El bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan en caso de conversión a los tipos de datos:
BOOLBYTEWORDDWORD
33002522 05/2010 387
DINT_TO_***
388 33002522 05/2010
33002522 05/2010
129
DINT_TO_DBCD
33002522 05/2010
DINT_TO_DBCD: Conversión de un entero doble en código binario a un entero decimal doble con codificación binaria
Descripción
Descripción de la función
La función DINT_TO_DBCD lleva a cabo la conversión de un entero doble codificado binario en un entero con formato Binario Codificado Doble Decimal (DBCD).
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD D_Integer_1
DINT_TO_BCD
ST DBCD_Result
389
DINT_TO_DBCD
Representación en ST
Representación:
DBCD_Result := DINT_TO_BCD(D_Integer_1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona a 1 cuando el valor que se va a convertir no es un valor comprendido entre 0 y 99999999. De este modo, el resultado de la función devuelve el valor del parámetro de entrada.
Parámetro Tipo Comentario
D_Integer_1 DINT Entero doble codificado binario comprendido entre 0 y 99999999.Ejemplo: D_Integer_1 = 888888
Parámetro Tipo Comentario
DBCD_Result DINT DBCD_Result es un entero doble codificado BCD.Ejemplo: con el valor de ejemplo de la tabla anterior, DBCD_Result = 16#00888888
390 33002522 05/2010
33002522 05/2010
130
DT_TO_ARINT
33002522 05/2010
DT_TO_ARINT: Conversión de variable DT en matriz de enteros
Descripción
Descripción de la función
La función convierte una variable DATE_AND_TIME (dt#) en una matriz de enteros de cuatro elementos con fecha y hora en formato BCD.
Ejemplo:
Si la entrada es:DT_Variable = dt#2006-05-11-10:46:16
Entonces, la salida es:DateAndTime_ARRAY[1] = 16#1600DateAndTime_ARRAY[2] = 16#1046DateAndTime_ARRAY[3] = 16#0511DateAndTime_ARRAY[4] = 16#2006
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
Representación en LD
391
DT_TO_ARINT
Representación en IL
LD DT_Variable DT_TO_ARINT ST DateAndTime_ARRAY
Representación en ST
DateAndTime_ARRAY := DT_TO_ARINT (DT_Variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si el tamaño de la salida DateAndTime_ARRAY es demasiado pequeño, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
DT_Variable DT La fecha y hora como una variable DATE_AND_TIME (dt#).
Parámetro Tipo de datos Significado
DateAndTime_ARRAY ARRAY [n..m] OF INT Matriz de enteros de cuatro elementos con la fecha y la hora en formato BCD:
Segundos,-- (16#ss,--) corresponde a %SW50 (véase página 486).Horas y minutos (16#hhmm)corresponde a %SW51 (véase página 486).Mes y día (16#mmdd)corresponde a %SW52 (véase página 486).Año (16#aaaa)corresponde a %SW53 (véase página 486).
392 33002522 05/2010
33002522 05/2010
131
DT_TO_STRING
33002522 05/2010
DT_TO_STRING: Conversión de una variable en formato DT a una cadena de caracteres
Descripción
Descripción de la función
La función DT_TO_STRING realiza la conversión de una variable con formato DT en una cadena de caracteres.
Los parámetros adicionales EN y ENO pueden configurarse.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD Date1
DT_TO_STRING
ST Result_Str
393
DT_TO_STRING
Representación en ST
Representación:
Result_Str:= DT_TO_STRING(Date1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Si la cadena Result_Str es demasiado corta para contener la fecha (longitud inferior a 19 caracteres), la fecha queda truncada y el bit %S15 (véase página 475) se pone a 1.
Si Date1 no se puede interpretar y no es coherente en formato DT, el bit de sistema %S18 (véase página 477) se pone a 1 y Result_Str =’****-**-**-**:**:**’.
Parámetro Tipo Comentario
Date1 DT Fecha que se va a convertir al formato de cadena de caracteres.
Parámetro Tipo Comentario
Result_Str STRING Result_Str es una cadena de 19 caracteres que contiene una fecha (con la hora) en el formato que se muestra a continuación: YYYY-MM-DD-HH:MM.Ejemplo: ‘2000-12-27-23:15’Nota: si el tamaño máximo de la cadena Result_Str es superior a 19, Result_Str se completa con caracteres de fin de cadena (16#00).
394 33002522 05/2010
33002522 05/2010
132
DWORD_TO_***
33002522 05/2010
DWORD_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos DWORD en uno de los siguientes tipos: BOOL, BYTE, WORD, INT, DINT, UINT, UDINT, REAL o TIME.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej.DWORD_TO_BOOL.
Durante la conversión del tipo de datos DWORD al tipo de datos BOOL, BYTE, WORD, INT o UINT, se transmiten los bits de menor valor del valor de entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
(La salida ENOno se utiliza enDWORD_TO_REAL ; ésta siempre tiene el valor "1".)
Funciones disponibles
Lista de las funciones disponibles:DWORD_TO_BOOLDWORD_TO_BYTEDWORD_TO_WORDDWORD_TO_INTDWORD_TO_DINTDWORD_TO_UINTDWORD_TO_UDINTDWORD_TO_REALDWORD_TO_TIME
Representación en FBD
Ejemplo de aplicación con enteros:
395
DWORD_TO_***
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD DWORD_variableDWORD_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := DWORD_TO_INT (DWORD_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El tratamiento de los errores depende de la función:DWORD_TO_REALEl bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480) cuando durante la conversión se genere un número de coma flotante inadmisible.El resto de las funcionesEl bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan.
Parámetro Tipo de datos Significado
DWORD_variable DWORD Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor de salida
396 33002522 05/2010
33002522 05/2010
133
BCD_TO_INT
33002522 05/2010
GRAY_TO_INT: Conversión de un entero en código Gray en un entero con codificación binaria
Descripción
Descripción de la función
La función GRAY_TO_INT realiza la conversión de un entero expresado en código GRAY en un entero codificado binario.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
397
BCD_TO_INT
Representación en IL
Representación:
LD GRAY_Int
GRAY_TO_INT
ST Result_Int
Representación en ST
Representación:
Result_Int := GRAY_TO_INT(GRAY_Int);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
GRAY_Int INT Entero expresado en código GRAY.
Parámetro Tipo Comentario
Result_Int INT Result_Int es un entero codificado en binario.
398 33002522 05/2010
33002522 05/2010
134
INT_AS_DINT
33002522 05/2010
INT_AS_DINT: Concatenación de dos enteros para formar un entero doble
Descripción
Descripción de la función
La función INT_AS_DINT concatena dos enteros para formar un entero doble.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
399
INT_AS_DINT
Representación en IL
Representación:
LD Low_Word
INT_AS_DINT High_Word
ST Double_Word
Representación en ST
Representación:
Double_Word := INT_AS_DINT(Low_Word, High_Word);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Parámetro Tipo Comentario
Low_Word INT Entero que debe convertirse en el byte menos significativo del entero doble Double_Word.Ejemplo: Low_Word contiene 16#5678.
High_Word INT Entero que debe convertirse en el byte más significativo del entero doble Double_Word.Ejemplo: High_Word contiene 16#1234.
Parámetro Tipo Comentario
Double_Word DINT Entero doble compuesto por dos enteros Low_Word para el byte menos significativo y High_Word para el byte más significativo.Ejemplo: para los valores de ejemplo de la tabla anterior, Double_Word contiene 16#12345678.
400 33002522 05/2010
33002522 05/2010
135
INT_TO_***
33002522 05/2010
INT_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos INT en un valor de salida de tipo BOOL, BYTE, WORD, DWORD, DINT, UINT, UDINT, REAL o TIME.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. INT_TO_BOOL.
Los valores de entrada negativos no se pueden convertir en los tipos de datos UINT, UDINT o TIME.
En la conversión de un valor de entrada del tipo de datos INT al tipo de datos WORD, la muestra de bits de la entrada se transmite sin cambios a la salida.
Durante la conversión de un valor de entrada del tipo de datos INT a los tipos de datos BOOL o BYTE se transmiten los bits de menor valor de la entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:INT_TO_BOOLINT_TO_BYTEINT_TO_WORDINT_TO_DWORDINT_TO_DINTINT_TO_UINTINT_TO_UDINTINT_TO_REALINT_TO_TIME
401
INT_TO_***
Representación en FBD
Ejemplo de aplicación con enteros dobles:
Representación en LD
Ejemplo de aplicación con enteros dobles:
Representación en IL
Ejemplo de aplicación con enteros dobles:
LD INT_variableINT_TO_DINTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros dobles:
ConvertedVariable := INT_TO_DINT (INT_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
INT_variable INT Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, DWORD, WORD, DINT, UINT, UDINT, REAL, TIME
Valor de salida
402 33002522 05/2010
INT_TO_***
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se sobrepasa el margen de valores de la salida (tipos de datos numéricos)se debe convertir un valor de entrada negativo en un valor de salida UDINT, UINT o TIME.durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible. En este caso, se ubicará el estado en %SW17 (véase página 480).
El bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan en caso de conversión a los tipos de datos:
BOOLBYTEWORDDWORD
33002522 05/2010 403
INT_TO_***
404 33002522 05/2010
33002522 05/2010
136
INT_TO_BCD
33002522 05/2010
INT_TO_BCD: Conversión de un entero en código binario a un entero decimal con codificación binaria
Descripción
Descripción de la función
La función INT_TO_BCD lleva a cabo la conversión de un entero codificado binario en un entero con formato Binario Codificado Decimal (BCD).
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
405
INT_TO_BCD
Representación en IL
Representación:
LD Integer_1
INT_TO_BCD
ST BCD_Result
Representación en ST
Representación:
BCD_Result := INT_TO_BCD(Integer_1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona a 1 cuando el valor que se va a convertir no es un valor comprendido entre 0 y 9999. De este modo, el resultado de la función devuelve el valor del parámetro de entrada.
Parámetro Tipo Comentario
Integer_1 INT Entero codificado binario comprendido entre 0 y 9999.Ejemplo: Integer_1 = 99
Parámetro Tipo Comentario
BCD_Result INT BCD_Result es un entero codificado BCD.Ejemplo: con el valor de ejemplo de la tabla anterior, BCD_Result = 16#99
406 33002522 05/2010
33002522 05/2010
137
INT_TO_DBCD
33002522 05/2010
INT_TO_DBCD: Conversión de un entero en código binario a un entero decimal doble con codificación binaria
Descripción
Descripción de la función
La función INT_TO_DBCD lleva a cabo la conversión de un entero codificado binario en un entero con formato Binario Codificado Doble Decimal (DBCD). Esta función resulta útil para convertir nombres cuya codificación BCD es superior a 32768.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
407
INT_TO_DBCD
Representación en IL
Representación:
LD Integer_1
INT_TO_BCD
ST DBCD_Result
Representación en ST
Representación:
DBCD_Result := INT_TO_BCD(Integer_1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona en 1 cuando el valor que se va a convertir no es un valor comprendido entre 0 y 99999999 o cuando dicho valor es negativo. De este modo, el resultado de la función devuelve el valor del parámetro de entrada.
Parámetro Tipo Comentario
Integer_1 INT Entero codificado binario comprendido entre 0 y 32768.Ejemplo: Integer_1 = 30000
Parámetro Tipo Comentario
DBCD_Result DINT DBCD_Result es un entero doble codificado BCD.Ejemplo: con el valor de ejemplo de la tabla anterior, DBCD_Result = 16#0030000
408 33002522 05/2010
33002522 05/2010
138
RAD_TO_DEG
33002522 05/2010
RAD_TO_DEG: Conversión de radianes a grados
Descripción
Descripción de la función
La función RAD_TO_DEG convierte un ángulo expresado en radianes en grados.
Los parámetros adicionales EN y ENO pueden configurarse.
Fórmula
La fórmula es la siguiente:
Representación en FBD
Representación:
Representación en LD
Representación:
409
RAD_TO_DEG
Representación en IL
Representación:
LD Angle_in_Radian
RAD_TO_DEG
ST Angle_in_Degree
Representación en ST
Representación:
Angle_in_Degree:= RAD_TO_DEG(Angle_in_Radian);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Cuando Angle_in_Degree se encuentra fuera del intervalo ]-4096 π, 4096 π[, el bit de sistema %S18 (véase página 477) pasa a 1 y la palabra de sistema %SW17 (véase página 480) indica el tipo de fallo.
Parámetro Tipo Comentario
Angle_in_Radian REAL Valor del ángulo expresado en radianes. -4096π ≤ Angle_in_Radian ≤ +4096π
Parámetro Tipo Comentario
Angle_in_Degree REAL Ángulo expresado en grados.-360 < Angle_in_Degree < +360
410 33002522 05/2010
33002522 05/2010
139
REAL_AS_WORD
33002522 05/2010
REAL_AS_WORD: Conversión de tipos
Descripción
Descripción de la función
Este procedimiento convierte un valor de entrada del tipo de datos REAL en 2 valores de salida del tipo de datos WORD.
Las palabras individuales de la entrada REAL se asignan a las salidas en función de los nombres de salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
411
REAL_AS_WORD
Representación en IL
Representación
LD REAL_variableREAL_AS_WORD LowWord, HighWord
Representación en ST
Representación
REAL_AS_WORD (REAL_variable, LowWord, HighWord);
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 (véase página 477) se establece en 1, si en la entrada se encuentra un número de coma flotante no permitido.
Parámetro Tipo de datos Significado
REAL_variable REAL Entrada
Parámetro Tipo de datos Significado
LowWord WORD palabra de menor valor
HighWord WORD palabra de mayor valor
412 33002522 05/2010
33002522 05/2010
140
REAL_TO_***
33002522 05/2010
REAL_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos REAL en otro de tipo BOOL, BYTE, WORD , DWORD, INT, DINT, UINT, UDINT o TIME.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. REAL_TO_BOOL.
En la conversión a BOOL, BYTE, WORD se transmiten los bits de menor valor del valor de entrada a la salida. No se produce ningún aviso de error de tiempo de ejecución y ENO permanece en 1.
Al realizar la conversión a INT, DINT, UINT, UDINT y TIME, se redondea según las convenciones de CEI 559.
Como parámetros adicionales se pueden configurar EN y ENO.
(La salida ENOno se utiliza enREAL_TO_BOOL, REAL_TO_BYTE, REAL_TO_WORD y REAL_TO_DWORD; ésta siempre tiene el valor "1").
Funciones disponibles
Lista de las funciones disponibles:REAL_TO_BOOLREAL_TO_BYTEREAL_TO_WORDREAL_TO_DWORDREAL_TO_INTREAL_TO_DINTREAL_TO_UINTREAL_TO_UDINTREAL_TO_TIME
413
REAL_TO_***
Ejemplo
El siguiente ejemplo muestra cómo se redondea según la CEI 559.
1,4 -> 1
1,5 -> 2
2,5 -> 2
3,5 -> 4
4,5 -> 4
4,6 -> 5
Valores de entrada negativos
Los valores de entrada negativos no se pueden convertir en los tipos de datos UINT, UDINT o TIME.
Representación en FBD
Ejemplo de aplicación con enteros:
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD REAL_variableREAL_TO_INTST ConvertedVariable
414 33002522 05/2010
REAL_TO_***
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := REAL_TO_INT (REAL_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando en la entrada hay un número de coma flotante inadmisible,se sobrepasa el margen de valores de la salida (tipos de datos numéricos)se debe convertir un valor de entrada negativo en un valor de salida UDINT, UINT o TIME.durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible. En este caso, se ubicará el estado en %SW17 (véase página 480).
El bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan en caso de conversión a los tipos de datos:
BOOLBYTEWORDDWORD
Parámetro Tipo de datos Significado
REAL_variable REAL Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, TIME
Valor de salida
33002522 05/2010 415
REAL_TO_***
416 33002522 05/2010
33002522 05/2010
141
REAL_TRUNC_***
33002522 05/2010
REAL_TRUNC_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte (con corte en sentido cero) un valor de entrada del tipo de datos REAL en un valor de tipo INT, DINT, UINT o UDINT .
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:REAL_TRUNC_INTREAL_TRUNC_DINTREAL_TRUNC_UINTREAL_TRUNC_UDINT
Ejemplo
El siguiente ejemplo muestra cómo se realiza la conversión.
1,6 -> 1
-1,6 -> -1
1,4 -> 1
-1,4 -> -1
Tipo de datos
Los valores de entrada negativos no se pueden convertir en los tipos de datos UDINT o UINT.
417
REAL_TRUNC_***
Representación en FBD
Ejemplo de aplicación con enteros:
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD REAL_variableREAL_TRUNC_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := REAL_TRUNC_INT (REAL_variable) ;
418 33002522 05/2010
REAL_TRUNC_***
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480) cuando
se debe convertir un valor de entrada negativo en un valor de salida UDINTo UINT.oen la entrada hay un número de coma flotante inadmisible.
Parámetro Tipo de datos Significado
REAL_variable REAL Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable INT, DINT, UINT, UDINT Valor de salida
33002522 05/2010 419
REAL_TRUNC_***
420 33002522 05/2010
33002522 05/2010
142
STRING_TO_ASCII
33002522 05/2010
STRING_TO_ASCII: Conversión de tipos
Descripción
Descripción de funciones
La función copia la cadena de caracteres del tipo de datos STRING de la entrada (sin conversión) como valores ASCII a la matriz INT de la salida.
Esta función se utiliza para transferir distintos caracteres (todos se corresponden con los valores ASCII 16#01 a 16#FF). La única excepción es 16#00 (valor 0). Se emplea para rellenar bits vacíos (no utilizados).
Cada carácter ASCII sólo requiere 1 byte, por lo que es posible transferir dos caracteres ASCII por elemento entero de la matriz de salida. Por lo tanto, la secuencia de transferencia es la siguiente: byte alto, byte bajo.
Cuando los caracteres ASCII de la cadena de caracteres de entrada no son suficientes para rellenar completamente la matriz de enteros con valores ASCII, los elementos restantes se rellenan con el valor 0; consulte Ejemplo 3, página 423.
La operación de copia finaliza en las situaciones siguientes:Se alcanza el final de la cadena de caracteres de entrada.Se alcanza el final de la matriz de salida.
EN y ENO se proyectan como parámetros adicionales.
421
STRING_TO_ASCII
Representación en FBD
Representación:
Representación en LD
Apariencia:
Representación en IL
Apariencia:
LD StringInputSTRING_TO_ASCII ST AsciiValueArray
Representación en ST
Apariencia:
AsciiValueArray := STRING_TO_ASCII (StringInput) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Descripción
StringInput ARRAY[n..m] OF INTSTRING
Cadena de caracteres ASCII
Parámetro Tipo de datos Descripción
AsciiValueArray ARRAY[n..m] OF INT Matriz de enteros con valores ASCII
422 33002522 05/2010
STRING_TO_ASCII
Error de ejecución
Si el tamaño de las variables de matriz en la salida no es suficiente para representar todos los caracteres ASCII de la cadena de caracteres de entrada, ENO se establece en 0 y el bit de sistema %S15 (véase página 477) se establece en 1.
Ejemplo 1
En el ejemplo, se va a transferir una cadena de cuatro caracteres ASCII a una matriz de enteros. Esto requiere una matriz de enteros con dos elementos.
Ejemplo 2
En el ejemplo, se va a transferir una cadena de cuatro caracteres ASCII a una matriz de enteros. Esto requiere una matriz de enteros con dos elementos; no se requiere el byte bajo del segundo elemento y, por lo tanto, contiene el valor 0.
Ejemplo 3
Cuando los caracteres ASCII de la cadena de caracteres de entrada no son suficientes para rellenar completamente la matriz de enteros con valores ASCII, los elementos restantes se rellenan con el valor 0.
33002522 05/2010 423
STRING_TO_ASCII
Ejemplo 4
Cuando se transfiere una cadena de caracteres vacía, los elementos de una matriz de enteros se rellenan con el valor 0.
Ejemplo 5
En el ejemplo, se van a transferir ocho caracteres ASCII. La matriz de salida es demasiado pequeña para ello, por lo que ENO se establece en 0 y el bit de sistema %S15 se establece en 1.
424 33002522 05/2010
33002522 05/2010
143
STRING_TO_ASCII_INV
33002522 05/2010
STRING_TO_ASCII_INV: Conversión de tipos
Descripción
Descripción de funciones
La función copia la cadena de caracteres del tipo de datos STRING de la entrada (sin conversión) como valores ASCII a la matriz INT de la salida.
Esta función se utiliza para transferir distintos caracteres (todos se corresponden con los valores ASCII 16#01 a 16#FF). La única excepción es 16#00 (valor 0). Se emplea para rellenar bits vacíos (no utilizados).
Cada carácter ASCII sólo requiere 1 byte, por lo que es posible transferir dos caracteres ASCII por elemento entero de la matriz de salida. Por lo tanto, la secuencia de transferencia es la siguiente: byte bajo, byte alto.
Cuando los caracteres ASCII de la cadena de caracteres de entrada no son suficientes para rellenar completamente la matriz de enteros con valores ASCII, los elementos restantes se rellenan con el valor 0; consulte Ejemplo 3, página 428.
La operación de copia finaliza en las situaciones siguientes:Se alcanza el final de la cadena de caracteres de entrada.Se alcanza el final de la matriz de salida.
EN y ENO se proyectan como parámetros adicionales.
425
STRING_TO_ASCII_INV
Representación en FBD
Representación:
Representación en LD
Apariencia:
Representación en IL
Apariencia:
LD StringInputSTRING_TO_ASCII_INV ST AsciiValueArray
Representación en ST
Apariencia:
AsciiValueArray := STRING_TO_ASCII_INV (StringInput) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Descripción
StringInput ARRAY[n..m] OF INTSTRING
Cadena de caracteres ASCII
Parámetro Tipo de datos Descripción
AsciiValueArray ARRAY[n..m] OF INT Matriz de enteros con valores ASCII
426 33002522 05/2010
STRING_TO_ASCII_INV
Error de ejecución
Si el tamaño de las variables de matriz en la salida no es suficiente para representar todos los caracteres ASCII de la cadena de caracteres de entrada, ENO se establece en 0 y el bit de sistema %S15 (véase página 477) se establece en 1.
Ejemplo 1
En el ejemplo, se va a transferir una cadena de cuatro caracteres ASCII a una matriz de enteros. Esto requiere una matriz de enteros con dos 2 elementos.
Ejemplo 2
En el ejemplo, se va a transferir una cadena de cuatro caracteres ASCII a una matriz de enteros. Esto requiere una matriz de enteros con dos elementos; no se requiere el byte alto del segundo elemento y, por lo tanto, contiene el valor 0.
33002522 05/2010 427
STRING_TO_ASCII_INV
Ejemplo 3
Cuando los caracteres ASCII de la cadena de caracteres de entrada no son suficientes para rellenar completamente la matriz de enteros con valores ASCII, los elementos restantes se rellenan con el valor 0.
Ejemplo 4
Cuando se transfiere una cadena de caracteres vacía, los elementos de una matriz de enteros se rellenan con el valor 0.
Ejemplo 5
En el ejemplo, se van a transferir ocho caracteres ASCII. La matriz de salida es demasiado pequeña para ello, por lo que ENO se establece en 0 y el bit de sistema %S15 se establece en 1.
428 33002522 05/2010
33002522 05/2010
144
STRING_TO_***
33002522 05/2010
STRING_TO_***: Conversión de una cadena de caracteres a un número de tipo INT, DINT o REAL
Descripción
Descripción de la función
La función STRING_TO_*** lleva a cabo la conversión de una cadena de caracteres a un entero sencillo o doble, o a un número real.
Esta función es IEC 1131.
Los parámetros adicionales EN y ENO se pueden configurar.
Funciones disponibles
Las funciones disponibles son las siguientes:STRING_TO_INT,STRING_TO_DINT,STRING_TO_REAL.
Representación en FBD
Representación aplicada a un valor entero:
Representación en LD
Representación aplicada a un valor entero:
429
STRING_TO_***
Representación en IL
Representación aplicada a un valor entero:
LD String_1
STRING_TO_INT
ST Result_Value
Representación en ST
Representación aplicada a un entero:
Result_Value:= STRING_TO_INT(String_1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la tabla siguiente se describen los parámetros de salida:
Errores de ejecución
El bit %S18 (véase página 477) se posiciona en 1 cuando el contenido de la cadena que se va a convertir está situado fuera de los bornes del tipo elegido (INT, DINT o REAL) o cuando uno de los caracteres de la cadena es erróneo.
Parámetro Tipo Comentario
String_1 STRING Cadena de caracteres.Ejemplo: String_1 = ‘-32500’
Parámetro Tipo Comentario
Result_Value INT, DINT, REAL
Result_Value es un entero, doble o uno real, dependiendo de la función utilizada. Este resultado es la conversión de la cadena de caracteres String_1 según las recomendaciones de la norma IEC 1131. Ejemplo: con el valor de ejemplo de la tabla anterior, Result_Value = -32500.
430 33002522 05/2010
33002522 05/2010
145
TIME_AS_WORD
33002522 05/2010
TIME_AS_WORD: Conversión de tipos
Descripción
Descripción de la función
Este procedimiento convierte un valor de entrada del tipo de datos TIME en 2 valores de salida del tipo de datos WORD.
Las palabras individuales de la entrada TIME se asignan a las salidas en función de los nombres de salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
431
TIME_AS_WORD
Representación en IL
Representación
LD TIME_variableTIME_AS_WORD LowWord, HighWord
Representación en ST
Representación
TIME_AS_WORD (REAL_variable, LowWord, HighWord);
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
TIME_variable TIME Entrada
Parámetro Tipo de datos Significado
LowWord WORD palabra de menor valor
HighWord WORD palabra de mayor valor
432 33002522 05/2010
33002522 05/2010
146
TIME_TO_***
33002522 05/2010
TIME_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos TIME en uno de los siguientes tipos: BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT o REAL.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. TIME_TO_BOOL.
Durante la conversión del valor de entrada del tipo de datos TIME en un valor de salida de tipo BOOL, BYTE, WORD, INT o UINT se transmiten siempre los bits de menor valor de la entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:TIME_TO_BOOLTIME_TO_BYTETIME_TO_WORDTIME_TO_DWORDTIME_TO_INTTIME_TO_DINTTIME_TO_UINTTIME_TO_UDINTTIME_TO_REAL
Representación en FBD
Ejemplo de aplicación con enteros:
433
TIME_TO_***
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD TIME_variableTIME_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := TIME_TO_INT (TIME_variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de tiempo de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando
se produce un desbordamiento del margen de valores en la salida durante la ejecución de la función.
Parámetro Tipo de datos Significado
TIME_variable TIME Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL
Valor de salida
434 33002522 05/2010
33002522 05/2010
147
TIME_TO_STRING
33002522 05/2010
TIME_TO_STRING: Conversión de una variable en formato TIME a una cadena de caracteres
Descripción
Descripción de la función
La función TIME_TO_STRING realiza la conversión de una variable con formato TIME en una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD Time1
TIME_TO_STRING
ST Result_Str
435
TIME_TO_STRING
Representación en ST
Representación:
Result_Str := TIME_TO_STRING(Time1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Si la cadena Result_Str es demasiado corta para contener el valor convertido (longitud inferior a 15 caracteres), éste queda truncado y el bit %S15 (véase página 475) se posiciona en 1.
Parámetro Tipo Comentario
Time1 TIME Duración que se va a convertir en formato de cadena de caracteres.
Parámetro Tipo Comentario
Result_Str STRING Result_Str es una cadena de 15 caracteres que contiene una duración que se presenta de la siguiente manera: HHHHHH:MM:SS.D.Ejemplo: ‘119304:38:49.5’Nota: si el tamaño máximo de la cadena Result_Str es superior a 15, Result_Str se completa con caracteres de fin de cadena (16#00).
436 33002522 05/2010
33002522 05/2010
148
TOD_TO_ARINT
33002522 05/2010
TOD_TO_ARINT: Conversión de variable TOD en matriz de enteros
Descripción
Descripción de la función
La función convierte una variable TIME_OF_DAY (tod#) en una matriz de enteros de dos elementos con la hora del día en formato BCD.
Ejemplo:
Si la entrada es:TOD_Variable = tod#10:46:16
Entonces, la salida es:Time_ARRAY[1] = 16#1600Time_ARRAY[2] = 16#1046
EN y ENO se pueden configurar como parámetros adicionales.
Representación en FBD
Representación en LD
Representación en IL
LD TOD_Variable TOD_TO_ARINT ST Time_ARRAY
437
TOD_TO_ARINT
Representación en ST
Time_ARRAY := TOD_TO_ARINT (TOD_Variable) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Errores de tiempo de ejecución
Si el tamaño de la salida Time_ARRAY es demasiado pequeño, ENO = 0 y OUT no se modifica.
Parámetro Tipo de datos Significado
TOD_Variable TIME_OF_DAY La hora del día se define como una variable TIME_OF_DAY (tod#).
Parámetro Tipo de datos Significado
Time_ARRAY ARRAY [n..m] OF INT Matriz de enteros de dos elementos con la fecha y la hora en formato BCD:
Segundos,-- (16#ss,--),corresponde a %SW50 (véase página 486).Horas y minutos (16#hhmm)corresponde a %SW51 (véase página 486).
438 33002522 05/2010
33002522 05/2010
149
TOD_TO_STRING
33002522 05/2010
TOD_TO_STRING: Conversión de una variable en formato TOD a una cadena de caracteres
Descripción
Descripción de la función
La función TOD_TO_STRING realiza la conversión de una variable con formato TOD en una cadena de caracteres.
Los parámetros adicionales EN y ENO se pueden configurar.
Representación en FBD
Representación:
Representación en LD
Representación:
Representación en IL
Representación:
LD Time1
TOD_TO_STRING
ST Result_Str
439
TOD_TO_STRING
Representación en ST
Representación:
Result_Str := =TOD_TO_STRING(Time1);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
En la siguiente tabla se describen los parámetros de salida:
Errores de ejecución
Si la cadena Result_Str es demasiado corta para contener el valor convertido (longitud inferior a 8 caracteres), éste queda truncado y el bit %S15 (véase página 475) se posiciona en 1.
Parámetro Tipo Comentario
Time1 TOD Hora del día que se va a convertir en formato de cadena de caracteres.
Parámetro Tipo Comentario
Result_Str STRING Result_Str es una cadena de 8 caracteres que contiene una hora del día que se presenta de la siguiente manera: HH:MM:SS.Ejemplo: ‘04:38:49’Nota: si el tamaño máximo de la cadena Result_Str es superior a 8, Result_Str se completa con caracteres de fin de cadena (16#00).
440 33002522 05/2010
33002522 05/2010
150
UDINT_AS_WORD
33002522 05/2010
UDINT_AS_WORD: Conversión de tipos
Descripción
Descripción de la función
Este procedimiento convierte un valor de entrada del tipo de datos UDINT en 2 valores de salida del tipo de datos WORD.
Las palabras individuales de la entrada UDINT se asignan a las salidas en función de los nombres de salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
441
UDINT_AS_WORD
Representación en IL
Representación
LD UDINT_variableUDINT_AS_WORD LowWord, HighWord
Representación en ST
Representación
UDINT_AS_WORD (UDINT_variable, LowWord, HighWord);
Descripción de parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
UDINT_variable UDINT Entrada
Parámetro Tipo de datos Significado
LowWord WORD palabra de menor valor
HighWord WORD palabra de mayor valor
442 33002522 05/2010
33002522 05/2010
151
UDINT_TO_***
33002522 05/2010
UDINT_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos UDINT en un valor de salida de tipo BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, REAL o TIME.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. UDINT_TO_BOOL.
Durante la conversión del tipo de datos UDINT al tipo de datos BOOL, BYTE, WORD, INT o UINT, se transmiten los bits de menor valor del valor de entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:UDINT_TO_BOOLUDINT_TO_BYTEUDINT_TO_WORDUDINT_TO_DWORDUDINT_TO_INTUDINT_TO_DINTUDINT_TO_UINTUDINT_TO_REALUDINT_TO_DINT
Representación en FBD
Ejemplo de aplicación con enteros:
443
UDINT_TO_***
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD UDINT_variableUDINT_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := UDINT_TO_INT (UDINT_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
UDINT_variable UDINT Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, REAL, TIME
Valor de salida
444 33002522 05/2010
UDINT_TO_***
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se sobrepasa el margen de valores de la salida (tipos de datos numéricos)se debe convertir un valor de entrada negativo en un valor de salida UDINT, UINT o TIME.durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible. En este caso, se ubicará el estado en %SW17 (véase página 480).
El bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan en caso de conversión a los tipos de datos:
BOOLBYTEWORDDWORD
33002522 05/2010 445
UDINT_TO_***
446 33002522 05/2010
33002522 05/2010
152
UINT_TO_***
33002522 05/2010
UINT_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos UINT en un valor de salida de tipo BOOL, BYTE, WORD, DWORD, INT, DINT, UDINT, REAL o TIME.
NOTA: La función convierte estrictamente según las reglas CEI. Como esta función ha sido realizada como función genérica, también se han producido algunas transformaciones ilógicas, p. ej. UINT_TO_BOOL.
En la conversión de un valor de entrada del tipo de datos UINT al tipo de datos WORD, la muestra de bits de la entrada se transmite sin cambios a la salida.
Durante la conversión de un valor de entrada del tipo de datos UINT a los tipos de datos BOOL o BYTE se transmiten los bits de menor valor de la entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Funciones disponibles
Lista de las funciones disponibles:UINT_TO_BOOLUINT_TO_BYTEUINT_TO_WORDUINT_TO_DWORDUINT_TO_INTUINT_TO_DINTUINT_TO_UDINTUINT_TO_REALUINT_TO_TIME
447
UINT_TO_***
Representación en FBD
Ejemplo de aplicación con enteros:
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD UINT_variableUINT_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := UINT_TO_INT (UINT_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
UINT_variable UINT Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, WORD, DWORD, INT, DINT, UDINT, REAL, TIME
Valor de salida
448 33002522 05/2010
UINT_TO_***
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 cuando se sobrepasa el margen de valores de la salida (tipos de datos numéricos)se debe convertir un valor de entrada negativo en un valor de salida UDINT, UINT o TIME.durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible. En este caso, se ubicará el estado en %SW17 (véase página 480).
El bit de sistema %S18 (véase página 477) y la palabra de sistema %SW17 (véase página 480) no se utilizan en caso de conversión a los tipos de datos:
BOOLBYTEWORDDWORD
33002522 05/2010 449
UINT_TO_***
450 33002522 05/2010
33002522 05/2010
153
WORD_AS_BYTE
33002522 05/2010
WORD_AS_BYTE: Conversión de tipos
Descripción
Descripción de la función
Este procedimiento convierte un valor de entrada del tipo de datos WORD en 2 valores de salida de tipo BYTE.
Cada uno de los bytes de la palabra en la entrada se asocia a las salidas según el nombre de la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
Representación en LD
Representación:
451
WORD_AS_BYTE
Representación en IL
Representación:
LD WORD_variableWORD_AS_BYTE LowByte, HighByte
Representación en ST
Representación:
WORD_AS_BYTE (WORD_variable, LowByte, HighByte);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
WORD_variable WORD Entrada
Parámetro Tipo de datos Significado
LowByte BYTE Byte de orden inferior
HighByte BYTE Byte de orden superior
452 33002522 05/2010
33002522 05/2010
154
WORD_AS_DINT
33002522 05/2010
WORD_AS_DINT: Conversión de tipos
Descripción
Descripción de la función
La función convierte 2 valores de entrada del tipo de datos WORD en un valor de salida de tipo DINT.
Los valores de entrada se asocian a la palabra en la salida según el nombre de la entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
Representación en LD
Representación:
453
WORD_AS_DINT
Representación en IL
Representación:
LD WORD_variable1WORD_AS_DINT WORD_variable2ST DINT_variable
Representación en ST
Representación:
DINT_variable := WORD_AS_DINT (WORD_variable1, WORD_variable2) ;
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
WORD_variable1 WORD Palabra de orden inferior
WORD_variable2 WORD Palabra de orden superior
Parámetro Tipo de datos Significado
DINT_variable DINT Valor de salida
454 33002522 05/2010
33002522 05/2010
155
WORD_AS_REAL
33002522 05/2010
WORD_AS_REAL: Conversión de tipos
Descripción
Descripción de la función
Esta función convierte un valor de entrada de los dos tipos de datos WORD en valores de salida del tipo de datos REAL.
Los valores de entrada se asignan a la palabra en la salida de acuerdo con los nombres de entrada.
EN y ENO pueden configurarse como parámetros adicionales.
Fórmula
Fórmula de bloque:
Representación en FBD
Representación:
Representación en LD
Representación:
455
WORD_AS_REAL
Representación en IL
Representación:
LD WORD_variable1WORD_AS_REAL WORD_variable2ST REAL_Output
Representación en ST
Representación:
REAL_Output := WORD_AS_REAL (WORD_variable1, WORD_variable2);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Error de ejecución
El bit de sistema %S18 (véase página 477) se define como 1, si se define un número de coma flotante no autorizado en la entradase crea un número de coma flotante no autorizado durante la conversión en el tipo de datos REAL. En este caso, el estado también se coloca en %SW17 (véase página 480).
Parámetro Tipos de datos Significado
WORD_variable1 WORD Byte menos importante
WORD_variable2 WORD Byte más importante
Parámetro Tipos de datos Significado
REAL_Output REAL Valor de salida
456 33002522 05/2010
33002522 05/2010
156
WORD_AS_TIME
33002522 05/2010
WORD_AS_TIME: Conversión de tipos
Descripción
Descripción de la función
La función convierte 2 valores de entrada del tipo de datos WORD en un valor de salida del tipo de datos TIME.
Los valores de entrada se asignan a la palabra en la salida en función de los nombres de entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
Representación en LD
Representación:
457
WORD_AS_TIME
Representación en IL
Representación
LD WORD_variable1WORD_AS_TIME WORD_variable2ST TIME_Output
Representación en ST
Representación
TIME_Output := WORD_AS_TIME (WORD_variable1, WORD_variable2) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
WORD_variable1 WORD byte de menor valor
WORD_variable2 WORD byte de mayor valor
Parámetro Tipo de datos Significado
TIME_Output TIME Valor de salida
458 33002522 05/2010
33002522 05/2010
157
WORD_AS_UDINT
33002522 05/2010
WORD_AS_UDINT: Conversión de tipos
Descripción
Descripción de la función
La función convierte 2 valores de entrada del tipo de datos WORD en un valor de salida del tipo de datos UDINT.
Los valores de entrada se asignan a la palabra en la salida en función de los nombres de entrada.
Como parámetros adicionales se pueden configurar EN y ENO.
Fórmula
Fórmula del bloque:
Representación en FBD
Representación:
Representación en LD
Representación:
459
WORD_AS_UDINT
Representación en IL
Representación:
LD WORD_variable1WORD_AS_UDINT WORD_variable2ST UDINT_Output
Representación en ST
Representación:
UDINT_Output := WORD_AS_UDINT (WORD_variable1, WORD_variable2) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Parámetro Tipo de datos Significado
WORD_variable1 WORD byte de menor valor
WORD_variable2 WORD byte de mayor valor
Parámetro Tipo de datos Significado
UDINT_Output UDINT Valor de salida
460 33002522 05/2010
33002522 05/2010
158
WORD_TO_BIT
33002522 05/2010
WORD_TO_BIT: Conversión de tipos
Descripción
Descripción de la función
Este procedimiento convierte un valor de entrada del tipo de datos WORD en 16 valores de salida de tipo BOOL.
Cada uno de los bits de la palabra en la entrada se asocia a las salidas según el nombre de la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
Representación en FBD
Representación:
461
WORD_TO_BIT
Representación en LD
Representación:
Representación en IL
Representación:
LD WORD_variableWORD_TO_BIT BOOL_variable1, BOOL_variable2, BOOL_variable3, BOOL_variable4, BOOL_variable5, BOOL_variable6, BOOL_variable7, BOOL_variable8, BOOL_variable9, BOOL_variable10, BOOL_variable11, BOOL_variable12, BOOL_variable13, BOOL_variable14, BOOL_variable15, BOOL_variable16
Representación en ST
Representación:
WORD_TO_BIT (WORD_variable, BOOL_variable1 BOOL_variable2, BOOL_variable3, BOOL_variable4, BOOL_variable5, BOOL_variable6, BOOL_variable7, BOOL_variable8, BOOL_variable9, BOOL_variable10, BOOL_variable11, BOOL_variable12, BOOL_variable13, BOOL_variable14, BOOL_variable15, BOOL_variable16);
Descripción de parámetros
Descripción de los parámetros de entrada:
Descripción de los parámetros de salida:
Parámetro Tipo de datos Significado
WORD_variable WORD Entrada
Parámetro Tipo de datos Significado
BOOL_variable1 BOOL Salida BIT0
: : :
BOOL_variable16 BOOL Salida BIT15
462 33002522 05/2010
33002522 05/2010
159
WORD_TO_***
33002522 05/2010
WORD_TO_***: Conversión de tipos
Descripción
Descripción de la función
La función convierte un valor de entrada del tipo de datos WORD en uno de los siguientes tipos BOOL, BYTE, DWORD, INT, DINT, UINT, UDINT, REAL o TIME.
Durante la conversión del tipo de datos WORD al tipo de datos DWORD, DINT, UDINT, REAL o TIME se transmite la muestra de bit de la entrada al bit de menor valor de la salida. Los bits de mayor valor de la salida se ubican en cero.
Durante la conversión del tipo de datos WORD al tipo de datos BOOL o BYTE, se transmiten los bits de menor valor del valor de entrada a la salida.
Como parámetros adicionales se pueden configurar EN y ENO.
(La salida ENOno se utiliza enWORD_TO_REAL; ésta siempre tiene el valor "1").
Funciones disponibles
Lista de las funciones disponibles:WORD_TO_BOOLWORD_TO_BYTEWORD_TO_DWORDWORD_TO_INTWORD_TO_DINTWORD_TO_UINTWORD_TO_UDINTWORD_TO_REALWORD_TO_TIME
Representación en FBD
Ejemplo de aplicación con enteros:
463
WORD_TO_***
Representación en LD
Ejemplo de aplicación con enteros:
Representación en IL
Ejemplo de aplicación con enteros:
LD WORD_variableWORD_TO_INTST ConvertedVariable
Representación en ST
Ejemplo de aplicación con enteros:
ConvertedVariable := WORD_TO_INT (WORD_variable) ;
Descripción de los parámetros
Descripción de los parámetros de entrada
Descripción de los parámetros de salida
Error de ejecución
El bit de sistema %S18 (véase página 477) se establecerá en 1 y el estado se ubicará en %SW17 (véase página 480) cuando
durante la conversión al tipo de datos REAL se genera un número de coma flotante inadmisible.
Parámetro Tipo de datos Significado
WORD_variable WORD Valor de entrada
Parámetro Tipo de datos Significado
ConvertedVariable BOOL, BYTE, DWORD, INT, DINT, UINT, UDINT, REAL, TIME
Valor de salida
464 33002522 05/2010
33002522 05/2010
160
***_TO_STRING
33002522 05/2010
***_TO_STRING: Conversión de una variable a una cadena de caracteres
Descripción
Descripción de la función
La función ***_TO_STRING convierte una variable INT, DINT o REAL en una cadena de caracteres.
Pueden configurarse los parámetros adicionales EN y ENO.
Funciones disponibles
Las funciones disponibles son las siguientes:INT_TO_STRING,DINT_TO_STRING,REAL_TO_STRING.
Representación en FBD
Representación aplicada a un real:
Representación en LD
Representación aplicada a un real:
465
***_TO_STRING
Representación en IL
Representación aplicada a un real:
LD Value1
REAL_TO_STRING
ST Result_Str
Representación en ST
Representación aplicada a un real:
Result_Str:= REAL_TO_STRING(Value1);
Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:
En la siguiente tabla, se describen los parámetros de salida:
Errores de ejecución
Si durante la conversión de un valor de tipo REAL, Value1 no se encuentra entre -3.402824e+38 y -1.175494e-38 o +1.175494e-38 y +3.402824e+38, el bit %S18 (véase página 477) se define como 1 y el contenido de la cadena Result_Str no tendrá ningún significado.
Parámetro Tipo Comentario
Value1 INT , DINT, REAL
Variable por convertir en formato de cadena de caracteres.
Parámetro Tipo Comentario
Result_Str STRING Result_Str es una cadena de caracteres cuya longitud depende del tipo de Value1:
5 cifras más el signo, que forman 6 caracteres para un INT (por ejemplo: ‘-00045’),10 cifras más el signo, que forman 11 caracteres para un DINT (por ejemplo: ‘-0000678911’),Nota: En PL7, el resultado son 11 cifras más el signo, que forman 12 caracteres para un DINT (por ejemplo: ‘-00006789110’).14 caracteres para un REAL (por ejemplo: ‘-3.1234560e+25’).
466 33002522 05/2010
33002522 05/2010
Apéndices
Visión general
Esta sección contiene los anexos.
Contenido de este anexo
Este anexo contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
A Códigos y valores de error de EFB 469
B Objetos de sistema 473
33002522 05/2010 467
468 33002522 05/2010
33002522 05/2010
A
Códigos y valores de error de EFB
33002522 05/2010
Códigos y valores de error de EFB
Introducción
En las siguientes tablas, se muestran los códigos y valores de error creados para los EFB de la biblioteca base.
Contenido de este capítulo
Este capítulo contiene los siguiente apartados:
Apartado Página
Tabla de códigos de error de la librería base 470
Errores comunes de coma flotante 472
469
Códigos y valores de error de EFB
Tabla de códigos de error de la librería base
Introducción
En las siguientes tablas se muestran los códigos y valores de error creados para los EFB de la librería base.
Fecha y hora
Tabla de códigos y valores de error creados para los EFB de la familia Fecha y hora.
Nombre de EFB
Código de error Estado de ENO en caso de error
Valor de error en Dec
Valor de error en Hex
Descripción del error
DIVTIME E_DIVIDE_BY_ZERO F -30.176 16#8A20 División por cero.
DIVTIME E_NEGATIVE_INPUT_FOR_TIME_OPERATION
F -30.177 16#8A1F Un valor negativo no se puede convertir en un tipo de dato TIME.
DIVTIME E_ARITHMETIC_ERROR F -30.170 16#8A26 Error aritmético.
DIVTIME E_ERR_ARITHMETIC F -30.003 16#8ACD Desborde aritmético (%S18 establecido).
DIVTIME FP_ERROR F - - Véase la tabla Errores comunes de coma flotante, página 472.
MULTIME E_ERR_ARITHMETIC F -30.003 16#8ACD Desborde aritmético (%S18 establecido).
MULTIME E_ARITHMETIC_ERROR_MUL_OV
F -30.172 16#8A24 Error aritmético / Desborde de multiplicación.
MULTIME E_ARITHMETIC_ERROR_ADD_OV
F -30.173 16#8A23 Error aritmético / Desborde de adición.
MULTIME E_ARITHMETIC_ERROR_BIG_PAR
F -30171 16#8A25 Error aritmético / Los parámetros exceden el rango.
MULTIME E_NEGATIVE_INPUT_FOR_TIME_OPERATION
F -30.177 16#8A1F Un valor negativo no se puede convertir en un tipo de dato TIME.
MULTIME FP_ERROR F - - Véase la tabla Errores comunes de coma flotante, página 472.
470 33002522 05/2010
Códigos y valores de error de EFB
Estadística
Tabla de códigos y valores de error creados para los EFB de la familia Estadística.
Nombre de EFB Código de error Estado de ENO en caso de error
Valor de error en Dec
Valor de error en Hex
Descripción del error
AVE E_INPUT_VALUE_OUT_OF_RANGE
F -30.183 16#8A19 Valor de entrada fuera de rango.
AVE E_DIVIDE_BY_ZERO F -30.176 16#8A20 División por cero.
AVE FP_ERROR F - - Véase la tabla Errores comunes de coma flotante, página 472.
AVE E_ARITHMETIC_ERROR F -30.170 16#8A26 Error aritmético
AVE E_FP_STATUS_FAILED F -30.150 16#8A3A Operación de coma flotante no permitida
AVE E_ARITHMETIC_ERROR_MUL_OV
F -30.172 16#8A24 Error aritmético / Desborde de multiplicación
AVE E_ARITHMETIC_ERROR_ADD_OV
F -30.173 16#8A23 Error aritmético / Desborde de adición
AVE E_ARITHMETIC_ERROR_BIG_PAR
F -30.171 16#8A25 Error aritmético / Los parámetros exceden el rango
AVE E_ARITHMETIC_ERROR_UNSIGN_OV
F -30.174 16#8A22 Error aritmético / Desborde sin signo
MAX FP_ERROR F - - Véase la tabla Errores comunes de coma flotante, página 472.
MIN FP_ERROR F - - Véase la tabla Errores comunes de coma flotante, página 472.
MUX E_SELECTOR_OUT_OF_RANGE
F -30.175 16#8A21 El selector está fuera de rango.
33002522 05/2010 471
Códigos y valores de error de EFB
Errores comunes de coma flotante
Introducción
En la tabla siguiente se muestran los códigos y valores de error comunes creados para los errores de coma flotante.
Errores comunes de coma flotante
Tabla de errores comunes de coma flotante
Códigos de error Valor de error en Dec
Valor de error en Hex
Descripción del error
FP_ERROR -30150 16#8A3A Valor de base (no aparece como valor de error)
E_FP_STATUS_FAILED_IE -30151 16#8A39 Operación de coma flotante ilegal
E_FP_STATUS_FAILED_IE -30152 16#8A38 El operando no está normalizado, no es un número REAL válido
E_FP_STATUS_FAILED_ZE -30154 16#8A36 División por cero ilegal
E_FP_STATUS_FAILED_ZE_IE -30155 16#8A35 Operación de coma flotante ilegal / División por cero
E_FP_STATUS_FAILED_OE -30158 16#8A32 Rebasamiento de coma flotante
E_FP_STATUS_FAILED_OE_IE -30159 16#8A31 Operación de coma flotante ilegal / Rebasamiento
E_FP_STATUS_FAILED_OE_ZE -30162 16#8A2E Rebasamiento de coma flotante / División por cero
E_FP_STATUS_FAILED_OE_ZE_IE -30163 16#8A2D Operación de coma flotante ilegal / Rebasamiento / División por cero
E_FP_NOT_COMPARABLE -30166 16#8A2A Error interno
472 33002522 05/2010
33002522 05/2010
B
Objetos de sistema
33002522 05/2010
Objetos de sistema
Objeto
Este capítulo describe los bits y las palabras de sistema del lenguaje Unity Pro.
Nota: los símbolos asociados a cada objeto de bit o de palabra del sistema a los que se hace referencia en las tablas descriptivas de dichos objetos no están incluidos de serie en el programa, se pueden introducir a través del editor de datos.
Se proponen para homogeneizar su denominación en las diferentes aplicaciones.
Contenido de este capítulo
Este capítulo contiene los siguiente apartados:
Apartado Página
Introducción de bits de sistema 474
Descripción de los bits de sistema %S9 a %S13 475
Descripción de los bits de sistema de %S15 a %S21 477
Descripción de las palabras de sistema %SW12 a %SW29 480
Descripción de las palabras de sistema %SW48 a %SW59 486
473
Objetos de sistema
Introducción de bits de sistema
General
Los autómatas Modicon M340, Premium, Atrium y Quantum utilizan bits de sistema %Si que indican los estados del autómata o que permiten controlar el funciona-miento de éste.
Dichos bits pueden probarse en el programa del usuario con el fin de detectar cualquier evolución de funcionamiento que conlleve un procedimiento de procesamiento establecido.
Algunos de estos bits deben volver a su estado inicial o normal por programa. No obstante, los bits de sistema que vuelven a su estado inicial o normal a través del sistema, no deben hacerlo a través del programa ni del terminal
474 33002522 05/2010
Objetos de sistema
Descripción de los bits de sistema %S9 a %S13
Descripción detallada
Descripción de los bits de sistema %S9 a %S13:
BitSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%S9OUTDIS
Sitúa en posición de retorno las salidas de todos los buses.
Normalmente está en estado 0, y el programa o el terminal establecen este bit en 1:
Establecido en 1: establece el bit a 0 o mantiene el valor actual según la configuración elegida (bus X, Fipio, AS-i, etc.).Establecido en 0: las salidas se actualizan normalmente.
Nota: el bit de sistema actúa directamente en las salidas físicas y no en los bits de imagen de las salidas.Nota: en Modicon M340, el explorador de E/S Ethernet y los datos globales se ven afectados por el bit %S9.(1) Nota: en Modicon M340, las entra-das/salidas distribuidas mediante el bus CANopen no se ven afectadas por el bit %S9.En Modicon M340, después de una moda-lidad de funcionamiento, las salidas están en el estado del modo de seguridad igual a 0 mientras se establece el bit.
0 SÍ (1) SÍ NO
%S10IOERR
Fallo de entra-da/salida
Normalmente en estado 1. Este bit se esta-blece en 0 cuando se detecta un fallo en un módulo en bastidor o en un dispositivo en Fipio (configuración no correcta, fallo de in-tercambio, fallo de hardware, etc.). El siste-ma vuelve a establecer el bit %S10 en 1 en el momento en que desaparece el fallo.
1 SÍ SÍ SÍ
33002522 05/2010 475
Objetos de sistema
ATENCIÓNCOMPORTAMIENTO INESPERADO DE LA APLICACIÓN - COMPORTAMIEN-TO ESPECÍFICO DE LA VARIABLE
En Quantum, los errores de comunicación de la red con dispositivos remotos detectados por los módulos de comunicación (NOM, NOE, NWM, CRA, CRP) y los módulos de movimiento (MMS) no se notifican en los bits %S10, %S16 ni %S119.
Si no se siguen estas instrucciones pueden producirse lesiones personales o daños en el equipo.
BitSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%S11WDG
Desborde de watchdog
Normalmente está en estado 0, y el sistema establece este bit en 1 tan pronto como el tiempo de ejecución de la tarea sobrepasa el tiempo de ejecución máximo (es decir, el wat-chdog) establecido en las propieda-des de tarea.
0 SÍ SÍ SÍ
%S12PLCRUNNING
PLC en modalidad RUN
El sistema establece este bit en 1 cuando el PLC está en modalidad RUN.El sistema lo establece en 0 tan pron-to como el PLC no está en modalidad RUN (STOP, INIT, etc.).
0 SÍ SÍ SÍ
%S131RSTSCANRUN
Primer ciclo después de la puesta en RUN
La conmutación del PLC de la moda-lidad STOP a RUN (incluso después de un arranque en frío con arranque automático en ejecución) se indica al establecer el bit de sistema %S13 en 1. Este bit vuelve a ponerse a 0 al final del primer ciclo de la tarea MAST en la modalidad de ejecución.
- SÍ SÍ SÍ
476 33002522 05/2010
Objetos de sistema
Descripción de los bits de sistema de %S15 a %S21
Descripción detallada
Descripción de los bits de sistema de %S15 a %S21:
BitSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%S15STRINGERROR
Fallo de lectura de cadena
Normalmente en estado 0, este bit pasa al estado 1 cuando el área de destino de una transferencia de cadena de caracteres no tiene el tamaño suficiente (incluido el número de caracteres y el carácter de fin de cadena de caracteres) para recibirla.La aplicación se detiene debido a un error si el bit %S78 se ha puesto a 1.La aplicación debe resetear el bit a 0.Este bit no está disponible en PLC de seguridad Quantum.
0 SÍ SÍ SÍ(excepto para PLC de seguridad)
%S16IOERRTSK
Fallo de salidas/entradas de tarea
Normalmente en estado 1, el sistema vuelve a establecerlo en 0 cuando se detecta un fallo en un módulo en bas-tidor o en un dispositivo en Fipio (por ejemplo, una configuración incompati-ble o fallos de intercambio o de hard-ware, etc.).El usuario debe resetear el bit en 1.
1 SÍ SÍ SÍ
ATENCIÓNCOMPORTAMIENTO INESPERADO DE LA APLICACIÓN - COMPORTAMIEN-TO ESPECÍFICO DE LA VARIABLE
En Quantum, los errores de comunicación de la red con dispositivos remotos detectados por los módulos de comunicación (NOM, NOE, NWM, CRA, CRP) y los módulos de movimiento (MMS) no se notifican en los bits %S10, %S16 ni %S119.
Si no se siguen estas instrucciones pueden producirse lesiones personales o daños en el equipo.
33002522 05/2010 477
Objetos de sistema
BitSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%S17CARRY
Salida de desplazamiento circular
Normalmente está en estado 0.Durante una operación de desplazamiento circular, este bit adopta el estado del bit saliente.
0 SÍ SÍ SÍ
%S18OVERFLOW
Desborde o error aritmético
Normalmente en estado 0, este bit pasa a 1 en caso de desborde de la capacidad si:
El resultado es superior a +32.767 o inferior a -32.768, en longitud simple.El resultado es superior a +65.535, en un número entero sin signo.El resultado es superior a + 2.147.483.647 o inferior a - 2.147.483.648, en longitud doble.El resultado es superior a +4.294.967.296, en longitud doble o número entero sin signo.los valores reales sobrepasan los límites;hay una división entre 0;hay una raíz de un número negativo;se fuerza un paso inexistente en un programador cíclico;hay un apilamiento de un registro completo, vaciado de un registro vacío.
Sólo hay un caso en el que los PLC Modicon M340 no aumentan el bit %S18 cuando los valores reales supe-ran los límites. Esto sólo sucede si se utilizan operandos no normalizados o algunas operaciones que generan re-sultados no normalizados (transgre-sión por debajo de rango gradual).Debe comprobarse mediante el programa del usuario después de cada operación en la que exista riesgo de desborde; si se produce, el usuario debe resetear a 0.Cuando el bit %S18 pasa a 1, la apli-cación se detiene debido a un error si el bit %S78 se ha establecido en 1.
0 SÍ SÍ SÍ
478 33002522 05/2010
Objetos de sistema
%S19OVERRUN
Desborde del período de tarea (explora-ción perió-dica)
Normalmente en estado 0, el sistema pone este bit en estado 1 en caso de desborde del período de ejecución (tiempo de ejecución de tarea superior al período definido por el usuario en la configuración o programado en la pa-labra %SW asociada a la tarea). El usuario debe resetear el bit en 0. Cada tarea gestiona su propio bit %S19.
0 SÍ SÍ SÍ
%S20INDEXOVF
Desborde del índice
Normalmente en estado 0, este bit pasa a estado 1 cuando la dirección del objeto de índice sea menor que 0 o supere el número de objetos declarados en la configuración.En este caso, ocurre lo mismo que si el índice fuera igual a 0.Debe comprobarse mediante el pro-grama del usuario después de cada operación en la que exista riesgo de desborde; si esto sucede, se debe re-setear a 0. Cuando el bit %S20 pasa a 1, la aplicación se detiene debido a un error si el bit %S78 se ha establecido en 1.Este bit no está disponible en PLC de seguridad Quantum.
0 SÍ SÍ SÍ(excepto para PLC de seguridad)
%S211RSTTASKRUN
Primer ciclo de tarea
El bit %S21, que se comprueba en una tarea (Mast, Fast, Aux0, Aux1, Aux2 o Aux3), indica el primer ciclo de dicha tarea, incluso después de un ini-cio en frío con inicio automático de la ejecución y un inicio en caliente. %S21 se pone a 1 al comienzo del ci-clo y se resetea a 0 al final del ciclo.Nota: El bit %S21 no tiene el mismo significado en PL7 y en Unity Pro.
0 SÍ SÍ SÍ
BitSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
33002522 05/2010 479
Objetos de sistema
Descripción de las palabras de sistema %SW12 a %SW29
Descripción detallada
Descripción de las palabras de sistema %SW12 a %SW29:
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%SW12UTWPORTADDR
Dirección del puerto serie del procesador
Para Premium: dirección Uni-Telway del puerto de terminal (en modalidad de esclavo) defi-nida en la configuración y car-gada en esta palabra en un arranque en frío. El sistema no tiene en cuenta la modificación del valor de esta palabra.Para Modicon M340: proporciona la dirección del esclavo de Modbus del puerto serie de la CPU. No se tiene en cuenta la modificación. Es 0, si la CPU no dispone de una conexión de puerto serie.
- SÍ SÍ NO(consulte %SW12 a continuación)
%SW12APMODE
Modalidad del procesador de la aplicación
Únicamente para PLC de seguridad Quantum, esta palabra indica la modalidad de servicio del procesador de la aplicación del módulo CPU.
16#A501 = modalidad de mantenimiento16#5AFE = modalidad segura
Cualquier otro valor se interpreta como un error.Nota: En un sistema de seguri-dad Hot Standby, esta palabra se intercambia desde el PLC primario hasta el PLC Standby para informar al PLC Standby de la modalidad segura o de mantenimiento.
16#A501 NO NO SÍSólo en PLC de seguridad
480 33002522 05/2010
Objetos de sistema
%SW13XWAYNETWADDR
Dirección principal de la estación
Esta palabra indica lo siguiente para la red principal (Fipway o Ethway):
el número de la estación (byte de menor valor) de 0 a 127,el número de la red (byte de mayor valor) de 0 a 63,
(valor de los microinterruptores de la tarjeta PCMCIA).
254(16#00FE)
NO SÍ NO(consulte %SW13 a continuación)
%SW13INTELMODE
Modalidad del procesador Intel
Únicamente para PLC de seguridad Quantum, esta palabra indica la modalidad de servicio del procesador Intel Pentium del módulo CPU.
16#501A = modalidad de mantenimiento16#5AFE = modalidad segura
Cualquier otro valor se interpreta como un error.Nota: En un sistema de seguri-dad Hot Standby, esta palabra se intercambia desde el PLC primario hasta el PLC Standby para informar al PLC Standby de la modalidad segura o de mantenimiento.
- NO NO SÍSólo en PLC de seguridad
%SW14OSCOMMVERS
Versión comercial del procesador del PLC
Esta palabra contiene la versión de sistema operativo (SO) del procesador del PLC.Ejemplo: 16#0135Versión: 01Número de emisión: 35
- SÍ SÍ SÍ
%SW15OSCOMMPATCH
Versión del parche del procesador del PLC
Esta palabra contiene la versión comercial del parche para el procesador del PLC.La codificación se lleva a cabo en el byte de menor valor de la palabra.Codificación: 0 = sin parche, 1 = A, 2 = B...Ejemplo: 16#0003 corresponde al parche C.
- SÍ SÍ SÍ
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
33002522 05/2010 481
Objetos de sistema
%SW16OSINTVERS
Número de versión del firmware
Esta palabra contiene el número de versión en formato hexadecimal del firmware del procesador del PLC.Ejemplo: 16#0011Versión: 2.1N.º de versión: 17
- SÍ SÍ SÍ
%SW17FLOATSTAT
Estado de fallo en operación flotante
Cuando se detecta un fallo en una operación aritmética flotante, el bit %S18 pasa a 1 y el estado de error de %SW17 se actualiza según la codificación siguiente:
%SW17.0 = operación inválida / el resultado no es un número;%SW17.1 =operando no normalizado / el resultado es aceptable (indicador no gestionado por Modicon M340 o PLC de seguridad Quantum);%SW17.2 = división entre 0 / el resultado es infinito;%SW17.3 = desborde / el resultado es infinito;%SW17.4 = transgresión por debajo de rango / el resultado es 0;De %SW17.5 a 15 = no se utiliza.
El sistema, así como el progra-ma a fin de reutilizarla, vuelve a poner esta palabra a 0 en el arranque en frío.Esta palabra no está disponible en PLC de seguridad Quantum.
0 SÍ SÍ SÍSólo en PLC de seguridad
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
482 33002522 05/2010
Objetos de sistema
%SD18:%SW18 y%SW19100MSCOUNTER
Contador de tiempo absoluto
%SW18 representa los bytes de menor valor y %SW19 los bytes de mayor valor de la palabra doble %SD18, que el sistema incrementa cada décima de se-gundo. La aplicación puede leer o escribir estas palabras para realizar cálculos de dura-ción.%SD18 se incrementa sistemá-ticamente, incluso en la moda-lidad STOP y estados equivalentes. Sin embargo, no se tienen en cuenta las veces que el PLC está apagado, puesto que la función no está vinculada al administrador de tiempo real, sino sólo al reloj en tiempo real.Para PLC de seguridad Quan-tum, sabiendo que los dos pro-cesadores deben procesar exactamente los mismos da-tos, el valor de %SD18 se ac-tualiza al comienzo de la tarea MAST y, a continuación, se congela durante la ejecución de la aplicación.
0 SÍ SÍ SÍ
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
33002522 05/2010 483
Objetos de sistema
%SD20:%SW20 y%SW21MSCOUNTER
Contador de tiempo absoluto
Para PLC Quantum y M340, el sistema incrementa %SD20 cada milésima de segundo (in-cluso cuando el PLC está en STOP, %SD20 deja de incre-mentarse si el PLC está apaga-do). %SD20 puede leerse mediante el programa de usua-rio o el terminal.%SD20 se restablece en los arranques en frío.%SD20 no se restablece en los arranques en caliente.Para los PLC Premium TSX P57 1•4M/2•4M/3•4M/C024M/024M y TSX PCI57 204M/354M, el sis-tema incrementa %SD20 5 ve-ces cada 5 milésimas de segundo. Para el resto de PLC Premium, %SD20 se establece según el contador de tiempo a 1 ms, como los PLC Quantum y M340. Para PLC de seguridad Quan-tum, sabiendo que los dos pro-cesadores deben procesar exactamente los mismos da-tos, el valor de %SD18 se ac-tualiza al comienzo de la tarea MAST y, a continuación, se congela durante la ejecución de la aplicación.
0 SÍ SÍ SÍ
%SW23 Valor del conmutador rotativo
El byte de menor valor contie-ne el conmutador rotativo del procesador Ethernet.Puede leerse mediante el pro-grama de usuario o el terminal.
- SÍ NO NO
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
484 33002522 05/2010
Objetos de sistema
%SW26 Número de solicitudes procesadas
Esta palabra de sistema permi-te verificar en el lado del servi-dor el número de solicitudes procesadas por PLC por ciclo.
- SÍ SÍ SÍ
%SW27%SW28%SW29
Duración de la administración del sistema
%SW27 es la última duración de la administración del sistema.%SW28 contiene la duración máxima de la administración del sistema.%SW29 contiene la duración mínima de la administración del sistema.
La duración de la administra-ción del sistema depende de la configuración (número de E/S...) y de las peticiones de ci-clo actuales (comunicación, diagnósticos).Duración de la administración del sistema = duración del ciclo Mast – duración de ejecución del código de usuario.Pueden leerse y escribirse me-diante el programa de usuario o el terminal.
- SÍ NO NO
PalabraSímbolo
Funcionamiento Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
33002522 05/2010 485
Objetos de sistema
Descripción de las palabras de sistema %SW48 a %SW59
Descripción detallada
Descripción de las palabras de sistema de %SW48 a %SW59.
PalabraSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
%SW48IOEVTNB
Número de eventos
Esta palabra indica el número de eventos procesados desde el último arranque en frío (en ms). El programa o el terminal pueden escribir esta palabra.Esta palabra no está disponible en PLC de seguridad Quantum.
0 SÍ SÍ SÍ(excepto para PLC de seguridad)
%SW49DAYOFWEEK%SW50SEC%SW51HOURMIN%SW52MONTHDAY%SW53YEAR
Función del reloj de tiempo real
Palabras del sistema que contienen la fecha y hora actuales (en BCD):
%SW49: día de la semana:1 = lunes2 = martes3 = miércoles4 = jueves5 = viernes6 = sábado7 = domingo
%SW50: segundos (16#SS00),%SW51: horas y minutos (16#HHMM),%SW52: mes y día (16#MMDD),%SW53: año (16#AAAA).
El sistema gestiona estas palabras cuando el bit %S50 se define en 0.El usuario del programa o el terminal pue-den escribir estas palabras cuando el bit %S50 se define en 1.
- SÍ SÍ SÍ
486 33002522 05/2010
Objetos de sistema
%SW54STOPSEC%SW55STOPHM%SW56STOPMD%SW57STOPYEAR%SW58STOPDAY
Función del reloj de tiempo real en la última parada
Las palabras del sistema contienen la fecha y la hora del último fallo de alimentación o detención del PLC (en formato decimal codi-ficado en binario):
%SW54: segundos (00SS),%SW55: horas y minutos (HHMM),%SW56: mes y día (MMDD),%SW57: año (AAAA),%SW58: el byte más significativo contiene el día de la semana (de 1 para lunes a 7 para domingo) y el byte menos significativo contiene el código de la última detención:
1 = cambio de RUN a STOP por el terminal o la entrada exclusiva2 = detención por el watchdog (tarea del PLC o desborde del SFC)4 = corte de alimentación u operación de bloqueo de la tarjeta de memoria5 = detención por fallo de hardware6 = detención por fallo de software. Los detalles del tipo de fallo de software se guardan en %SW125.
- SÍ SÍ SÍ
%SW59ADJDATETIME
Ajuste de la fecha actual
Contiene dos series de 8 bits para ajustar la fecha actual.La acción se ejecuta siempre en el flanco ascendente del bit.Esta palabra se activa por el bit %S59=1.En la ilustración siguiente, los bits de la columna de la izquierda aumentan el valor y los bits de la columna de la derecha reducen el valor:
0 SÍ SÍ SÍ
PalabraSímbolo
Función Descripción Estado inicial
Modicon M340
Premium Atrium
Quantum
33002522 05/2010 487
Objetos de sistema
488 33002522 05/2010
Glosario
33002522 05/2010
Glosario
0-9
%ISegún la norma IEC, %I indica un objeto de lenguaje de entrada binaria.
%IWSegún la norma IEC, %IW indica un objeto de lenguaje de entrada analógica.
%KWSegún la norma IEC, %KW indica un objeto de lenguaje de palabra constante.
%MSegún la norma IEC, %M indica un objeto de lenguaje de bit de memoria.
%MWSegún la norma IEC, %MW indica un objeto de lenguaje de palabra de memoria.
%QSegún la norma IEC, %Q indica un objeto de lenguaje de salida binaria.
%QWSegún la norma IEC, %QW indica un objeto de lenguaje de salida analógica.
33002522 05/2010 489
Glosario
A
ADDM_TYPEEste tipo predefinido se utiliza como salida de la función ADDM. Se trata de ARRAY[0..8] OF Int. Lo encontrará en la biblioteca, en la misma familia que las EF que lo utilizan.
ADDR_TYPEEste tipo predefinido se utiliza como salida de la función ADDR. Se trata de ARRAY[0..5] OF Int. Lo encontrará en la biblioteca, en la misma familia que las EF que lo utilizan.
ANL_INANL_IN es la forma abreviada del tipo de datos de entrada analógica. Se utiliza cuando se procesan valores analógicos. Las direcciones %IW del módulo de entrada analógica configurado, que se especifican en la lista de componentes de E/S, se asignan automáticamente a los tipos de datos y, en consecuencia, deben estar ocupadas únicamente por variables que no se hayan asignado.
ANL_OUTANL_OUT es la forma abreviada del tipo de datos de salida analógica. Se utiliza cuando se procesan valores analógicos. Las direcciones %MW del módulo de entrada analógica configurado, que se especifican en la lista de componentes de E/S, se asignan automáticamente a los tipos de datos y, en consecuencia, deben estar ocupadas únicamente por variables que no se hayan asignado.
ANYExiste una jerarquía entre los distintos tipos de datos. En los DFB, a veces es posible declarar las variables que puedan contener varios tipos de valores. Se utilizan los tipos ANY_xxx.
490 33002522 05/2010
Glosario
En la siguiente figura se describe esta estructura jerarquizada:
ARRAYUna ARRAY es una tabla que contiene elementos del mismo tipo.
La sintaxis es la siguiente: ARRAY [<límites>] OF <Tipo>
Ejemplo:
ARRAY [1..2] OF BOOL es una tabla de una dimensión compuesta por dos elementos de tipo BOOL.
ARRAY [1..10, 1..20] OF INT es una tabla de dos dimensiones compuesta por 10 x 20 elementos de tipo INT.
33002522 05/2010 491
Glosario
B
BCDBCD es la forma abreviada del formato «Binary Coded Decimal» (decimal codificado en binario).
BCD permite representar los números decimales comprendidos entre 0 y 9 mediante un grupo de cuatro bits (medio byte).
En este formato, los cuatro bits utilizados para codificar los números decimales disponen de un rango de combinaciones que no se utilizan.
Ejemplo de la codificación BCD: El número 2.450 se codifica así: 0010 0100 0101 0000
BOOLBOOL es la forma abreviada del tipo booleano. Se trata del tipo de datos básico en informática. Una variable de tipo BOOL posee uno de estos valores: 0 (FALSE) o 1 (TRUE).
Un bit extraído de una palabra es de tipo BOOL, por ejemplo: %MW10.4.
BYTECuando se reagrupan ocho bits, se habla de un BYTE (byte). La introducción de un BYTE se realiza en modalidad binaria o en base 8.
El tipo BYTE está codificado en un formato de 8 bits que, en el formato hexadecimal, va de 16#00 a 16#FF.
C
CadenaEtapa activa de un SFC.
Cadena únicaModalidad de servicio de un diagrama SFC en la que sólo puede haber un paso activo en un momento determinado.
492 33002522 05/2010
Glosario
Convenciones de designación (identificador)Un identificador es un conjunto de letras, cifras y signos de subrayado que comienza por una letra o un signo de subrayado (por ejemplo, el nombre de un tipo de bloque de funciones, de una instancia, de una variable o de una sección). Pueden utilizarse letras acentuadas de grupos de caracteres nacionales (como ö, ü, é y õ), excepto en los nombres de proyectos y DFB. Los signos de subrayado son significativos en los identificadores. Por ejemplo, A_BCD y AB_CD se interpretan como identificadores distintos. El uso de varios signos de subrayado consecutivos o al principio de un identificador es incorrecto.
Los identificadores no pueden contener espacios. No se distingue entre mayúsculas y minúsculas. Por ejemplo, ABCD y abcd se interpretan como un mismo identificador.
Según la norma IEC 61131-3, no se permite utilizar cifras antepuestas en los identificadores. Sin embargo, puede utilizarlos si, en el cuadro de diálogo Herramientas → Ajustes del proyecto, ficha Extensiones de lenguaje, activa la casilla de verificación Permitir cifras antepuestas.
Los identificadores no pueden ser palabras clave.
D
DATEEl tipo DATE codificado en BCD en un formato de 32 bits contiene la información siguiente:
el año codificado en un campo de 16 bits,el mes codificado en un campo de 8 bits,el día codificado en un campo de 8 bits.
El tipo DATE debe introducirse de la manera siguiente: D# <Año> - <Mes> - <Día>
Esta tabla muestra los límites inferior y superior de cada campo:
Campo Límites Comentario
Año [1990,2099] Año
Mes [01,12] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Día [01,31] Para los meses 01/03/05/07/08/10/12
[01,30] Para los meses 04/06/09/11
[01,29] Para el mes 02 (años bisiestos)
[01,28] Para el mes 02 (años no bisiestos)
33002522 05/2010 493
Glosario
DATE_AND_TIMEConsulte DT.
Datos globalesLos datos globales permiten el intercambio automático de variables de datos para la coordinación de las aplicaciones del PLC.
DBCDRepresentación de un entero doble con formato doble BCD.
El formato BCD (“Binary Coded Decimal”) se utiliza para representar los números decimales comprendidos entre 0 y 9 mediante un grupo de cuatro bits.
En este formato, los cuatro bits utilizados para codificar los números decimales disponen de un rango de combinaciones que no se utilizan.
Ejemplo de la codificación DBCD: El número 78.993.016se codifica así: 0111 1000 1001 1001 0011 0000 0001 0110
DDTDDT es la forma abreviada de «Derived Data Type» (tipo de datos derivados).
Un tipo de datos derivados es un conjunto de elementos del mismo tipo (ARRAY) o de distintos tipos (estructura).
DFBDFB es la forma abreviada de «Derived Function Block» (bloque de funciones derivado).
Los tipos DFB son bloques de funciones programables por el usuario en lenguaje ST, IL, LD o FBD.
El uso de estos tipos DFB en una aplicación permite:
simplificar la concepción y la entrada del programa;aumentar la legibilidad del programa;facilitar su depuración yreducir el volumen de código generado.
Diagrama de bloques de funcionesVéase FBD.
494 33002522 05/2010
Glosario
DINTDINT es la forma abreviada de «Double INTeger» (entero doble) (codificado en 32 bits).
Los límites inferior y superior figuran a continuación: de -(2 elevado a 31) a (2 elevado a 31) - 1.
Ejemplo:
-2.147.483.648, 2.147.483.647, 16#FFFFFFFF.
DTDT es la forma abreviada de «Date and Time» (fecha y hora).
El tipo DT, codificado en BCD en un formato de 64 bits, contiene esta información:
el año codificado en un campo de 16 bits,el mes codificado en un campo de 8 bits,el día codificado en un campo de 8 bits,la hora codificada en un campo de 8 bits,los minutos codificados en un campo de 8 bits,los segundos codificados en un campo de 8 bits.
NOTA: No se utilizan los 8 bits menos significativos.
El tipo DT debe introducirse así:
DT# <Año> - <Mes> - <Día> - <Hora> : <Minutos> : <Segundos>
En esta tabla se muestran los límites inferior y superior de cada campo:
Campo Límites Comentario
Año [1990,2099] Año
Mes [01,12] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Día [01,31] Para los meses 01/03/05/07/08/10/12
[01,30] Para los meses 04/06/09/11
[01,29] Para el mes 02 (años bisiestos)
[01,28] Para el mes 02 (años no bisiestos)
Hora [00,23] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Minuto [00,59] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Segundo [00,59] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
33002522 05/2010 495
Glosario
DWORDDWORD es la forma abreviada de «Double Word» (palabra doble).
El tipo DWORD se codifica en un formato de 32 bits.
Esta tabla establece los límites inferior y superior de las bases que pueden utilizarse:
Ejemplos de representación:
E
EBOOLEBOOL es la versión abreviada de «Extended BOOLean» (booleano extendido). Una variable de tipo EBOOL posee el valor 0 (FALSE) o 1 (TRUE), además de flancos ascendentes o descendentes y funciones de forzado.
Una variable de tipo EBOOL ocupa un byte de memoria.
El byte se compone de los siguientes elementos:
un bit del valor,un bit del historial (cada vez que cambia el objeto de estado, el valor se copia en el bit del historial),un bit del forzado (igual a 0 si el objeto no se fuerza, igual a 1 si el bit se fuerza).
El valor predeterminado de cada bit es 0 (FALSE).
Base Límite inferior Límite superior
Hexadecimal 16#0 16#FFFFFFFF
Octal 8#0 8#37777777777
Binario 2#0 2#11111111111111111111111111111111
Datos Representación en una de las bases
00000000000010101101110011011110 16#ADCDE
00000000000000010000000000000000 8#200000
00000000000010101011110011011110 2#10101011110011011110
496 33002522 05/2010
Glosario
EFEF es la forma abreviada de «Elementary Function» (función elemental).
Se trata de un bloque, utilizado en un programa, que realiza una función de software predefinida.
Una función no dispone de información sobre el estado interno. Varias llamadas de la misma función con los mismos parámetros de entrada mostrarán los mismos valores de salida. Encontrará información sobre la forma gráfica de la llamada de la función en el «[bloque funcional (instancia)]». Al contrario que las llamadas de bloques de funciones, las llamadas de función constan únicamente de una salida a la que no se ha asignado un nombre y cuyo nombre coincide con el de la función. En FBD, cada llamada se indica mediante un [número] único a través del bloque gráfico. Este número se genera automáticamente y no puede modificarse.
Coloque y configure estas funciones en el programa para ejecutar su aplicación.
También puede desarrollar otras funciones mediante el kit de desarrollo de SDKC.
EFBEFB es la forma abreviada de «Elementary Function Block» (bloque de funciones elementales).
Se trata de un bloque, utilizado en un programa, que realiza una función lógica predefinida.
Los EFB cuentan con estados y parámetros internos. Aunque las entradas sean idénticas, los valores de las salidas pueden ser diferentes. Por ejemplo, un contador dispone de una salida que indica que se ha alcanzado el valor de preselección. Esta salida se establece en 1 cuando el valor actual coincide con el valor de preselección.
ENEN significa «ENable» (habilitar); se trata de una entrada de bloque opcional. Cuando la entrada EN está habilitada, se establece automáticamente una salida ENO.
Si EN = 0, el bloque no está habilitado, su programa interno no se ejecuta y ENO se establece en 0.
Si EN = 1, se ejecuta el programa interno del bloque y ENO se establece en 1. Si se produce un error, ENO se establece en 0.
Si la entrada EN no está conectada, se establece automáticamente en 1.
33002522 05/2010 497
Glosario
ENOENO significa «Error NOtification» (notificación de error); se trata de la salida asociada a la entrada opcional EN.
Si ENO se establece en 0 (porque EN = 0 o en caso de que se produzca un error de ejecución):
el estado de las salidas de bloques de funciones permanece idéntico a aquél en el que estaban durante el último ciclo de exploración ejecutado correctamente;la(s) salida(s) de funciones, así como los procedimientos, se establecen en 0.
Exploración de E/SLa exploración de E/S realiza un sondeo continuo de los módulos de E/S para recopilar información de diagnóstico, bits de datos, estados y errores. En este proceso se supervisan las entradas y salidas de control.
F
FBDFBD es la forma abreviada de «Function Block Diagram» (lenguaje en bloques funcionales).
FBD es un lenguaje de programación gráfica que funciona como un diagrama. Cada función o bloque de funciones del programa se representa mediante esta forma gráfica con la adición de bloques lógicos simples (Y, O, etc.). En cada bloque, las entradas se sitúan a la izquierda y las salidas, a la derecha. Las salidas de los bloques pueden estar vinculadas a las entradas de otros bloques para formar expresiones complejas.
FFBTérmino colectivo para EF (función elemental), EFB (bloque de funciones elemental) y DFB (bloque de funciones derivado).
FTP«File Transfer Protocol» (protocolo de transferencia de archivos).
FunciónConsulte EF.
Función elementalVéase EF.
498 33002522 05/2010
Glosario
G
GRAYEl código Gray o «binario reflejado» permite codificar un valor numérico desarrollado en una cadena de configuraciones binarias que puede diferenciarse mediante el cambio de estado de un solo bit.
Este código puede utilizarse, por ejemplo, para evitar este suceso aleatorio: en binario puro, el cambio del valor 0111 en 1000 puede producir un rango de números comprendido entre 0 y 1.000, puesto que todos los bits no cambian de valor simultáneamente.
Equivalencia entre decimal, BCD y Gray:
H
HTTP«Hypertext Transfer Protocol» (protocolo de transferencia de hipertexto)
I
IEC 61131-3Norma internacional: comandos de lógica programables
Parte 3: lenguajes de programación
ILIL es la forma abreviada de «Instruction List» (lista de instrucciones).
Este lenguaje es un conjunto de instrucciones básicas.
Se acerca mucho al lenguaje de ensamblaje utilizado para programar los procesadores.
Cada instrucción consta de un código de instrucción y un operando.
33002522 05/2010 499
Glosario
INFSe utiliza para indicar que un número sobrepasa los límites permitidos.
En el caso de un número entero, los rangos de valores (indicados en color gris) son los siguientes:
Cuando un resultado:
es inferior a -3,402824e+38, aparece el símbolo -INF (de -infinito);es superior a +3,402824e+38, aparece el símbolo INF (de +infinito);
INTINT es la forma abreviada de «single INTeger» (entero simple) (codificado en 16 bits).
Los límites inferior y superior figuran a continuación: de -(2 elevado a 15) a (2 elevado a 15) - 1.
Ejemplo:
-32.768, 32.767, 2#1111110001001001, 16#9FA4.
IODDTIODDT es la forma abreviada de «Input/Output Derived Data Type» (tipo de datos derivados de E/S).
El término IODDT designa un tipo de datos estructurado que representa un módulo o un canal de un módulo del PLC. Cada módulo experto posee sus propios IODDT.
L
LDLD es la forma abreviada de «Ladder Diagram» (diagrama de contactos).
LD es un lenguaje de programación que representa las instrucciones que deben ejecutarse en forma de esquemas gráficos muy parecidos a un esquema eléctrico (contactos, bobinas, etc.).
500 33002522 05/2010
Glosario
M
MulticadenaModalidad de servicio de un SFC. En modalidad multicadena, el SFC puede contar con varias etapas activas simultáneamente.
N
NANSe utiliza para indicar que el resultado de una operación no es numérico (NAN = «Not A Number», no numérico).
Ejemplo: el cálculo de la raíz cuadrada de un número negativo.
NOTA: La norma IEC 559 define dos clases de NAN: NAN silencioso (QNAN) y NAN de señalización (SNAN). QNAN es un NAN con el bit de fracción más significativo, mientras que SNAN es un NAN sin el bit de fracción más significativo (número de bit 22). Los QNAN pueden propagarse por la mayoría de las operaciones aritméticas sin que se indique ninguna excepción. En cambio, los SNAN generalmente señalan una operación no válida cuando se utilizan como operandos en operaciones aritméticas (consulte %SW17 y %S18).
P
Palabra claveUna palabra clave es una combinación única de caracteres que se utiliza como elemento de sintaxis en un lenguaje de programación (consulte la definición que aparece en el apéndice B de la norma IEC 61131-3. Todas las palabras clave utilizadas en Unity Pro e incluidas en la norma IEC 61131-3 aparecen en el apéndice C de dicha norma. Las palabras clave no pueden servir de identificadores [nombres de variables, secciones, tipos de DFB, etc.] en el programa).
Peer copEl servicio Peer Cop es un mecanismo para el intercambio automático entre estaciones conectadas a un mismo segmento de Modbus Plus.
33002522 05/2010 501
Glosario
ProcedimientoDesde un punto de vista técnico, los procedimientos son vistas funcionales. La única diferencia con las funciones elementales es que los procedimientos pueden tener más de una salida y admiten el tipo de datos VAR_IN_OUT. Los procedimientos no se diferencian visualmente de las funciones elementales.
Los procedimientos son una extensión de la norma IEC 61131-3.
R
REALEl tipo REAL (real) se codifica en formato de 32 bits.
Los rangos de valores posibles se muestran en la figura siguiente:
Cuando un resultado:
está comprendido entre -1,175494e-38 y 1,175494e-38, se le considera como DEN;es inferior a -3,402824e+38, aparece el símbolo -INF (de -infinito);es superior a +3,402824e+38, aparece el símbolo INF (de +infinito);es indefinido (raíz cuadrada de un número negativo), aparece el símbolo NAN.
NOTA: La norma IEC 559 define dos clases de NAN: NAN silencioso (QNAN) y NAN de señalización (SNAN). QNAN es un NAN con el bit de fracción más significativo, mientras que SNAN es un NAN sin el bit de fracción más significativo (número de bit 22). Los QNAN pueden propagarse por la mayoría de las operaciones aritméticas sin que se indique ninguna excepción. En cambio, los SNAN generalmente señalan una operación no válida al utilizarse como operandos en operaciones aritméticas (consulte %SW17 y %S18).
NOTA: Cuando DEN (número no normalizado) se utiliza como operando, el resultado no es significativo.
502 33002522 05/2010
Glosario
RedHay dos significados del término «red».
En LD: una red es un conjunto de elementos gráficos interconectados. El campo de aplicación de una red es local, en relación con la unidad (sección) de organización del programa en el que se encuentra la red.Con módulos de comunicación expertos: una red es un grupo de estaciones que se intercomunican. El término «red» se utiliza también para definir un grupo de elementos gráficos interconectados. Dicho grupo constituye una parte de un programa que puede componerse de un grupo de redes.
S
SFCSFC es la forma abreviada de «Sequential Function Chart» (gráfica de función secuencial).
El SFC permite representar gráficamente y de forma estructurada el funcionamiento de un PLC secuencial. Esta descripción gráfica del comportamiento secuencial del PLC y de las distintas situaciones en desarrollo se realiza mediante símbolos gráficos simples.
SILNivel de integridad de seguridad («Safety Integrity Level»)
Las funciones de seguridad se ejecutan para obtener y mantener el estado de seguridad de un sistema. El estándar IEC 61508 especifica cuatro niveles de rendimiento de seguridad para una función de seguridad. Éstos se denominan niveles de integridad de seguridad (SIL), y van desde 1 (el más bajo) hasta 4 (el más alto). El PLC de seguridad Quantum está certificado para su uso en aplicaciones SIL2, en las que el estado sin energía es el estado seguro, por ejemplo, en un sistema de parada de emergencia (ESD).
Puede utilizar los productos de seguridad de Schneider para la creación de una solución Hot Standby (HSBY) si necesita una gran disponibilidad para un sistema de seguridad.
33002522 05/2010 503
Glosario
SNMP«Simple Network Management Protocol» (protocolo de gestión de red simple).
STST es la forma abreviada de «Structured Text» (texto estructurado).
El lenguaje literal estructurado es un lenguaje elaborado similar a los lenguajes informáticos de programación. Permite estructurar series de instrucciones.
STRINGUna variable de tipo STRING es una cadena de caracteres ASCII. La longitud máxima de una cadena de caracteres es de 65.534 caracteres.
T
TIMEEl tipo TIME expresa la duración en milisegundos. Codificado en 32 bits, este tipo
permite obtener duraciones de 0 a 2 32-1 milisegundos.
Las unidades de tipo TIME son las siguientes: días (d), horas (h), minutos (m), segundos (s) y milisegundos (ms). Un valor literal de tipo TIME se representa mediante una combinación de los tipos anteriores precedidos por el prefijo T#, t#, TIME# o time#.
Ejemplos: T#25h15m, t#14,7S, TIME#5d10h23m45s3ms
504 33002522 05/2010
Glosario
TIME_OF_DAYConsulte TOD.
TODTOD es la forma abreviada de «Time Of Day» (hora del día).
El tipo TOD, codificado en BCD en un formato de 32 bits, contiene esta información:
la hora codificada en un campo de 8 bits,los minutos codificados en un campo de 8 bits,los segundos codificados en un campo de 8 bits.
NOTA: No se utilizan los 8 bits menos significativos.
El tipo TOD debe introducirse de la manera siguiente: TOD# <Hora> : <Minutos> : <Segundos>
En esta tabla se muestran los límites inferior y superior de cada campo:
Ejemplo: TOD#23:59:45.
TOPO_ADDR_TYPEEste tipo predefinido se utiliza como salida de la función READ_TOPO_ADDR. Se trata de ARRAY[0..4] OF Int. Lo encontrará en la biblioteca, en la misma familia que las EF que lo utilizan.
U
UDINTUDINT es la forma abreviada de «Unsigned Double INTeger» (entero doble sin signo) (codificado en 32 bits). Los límites inferior y superior figuran a continuación: de 0 a (2 elevado a 32) - 1.
Ejemplo:
0, 4.294.967.295, 2#11111111111111111111111111111111, 8#37777777777, 16#FFFFFFFF.
Campo Límites Comentario
Hora [00,23] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Minuto [00,59] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
Segundo [00,59] Se muestra el cero a la izquierda; puede omitirse en la entrada de datos.
33002522 05/2010 505
Glosario
UDPUser Datagram Protocol (Protocolo de datagramas de usuario). UDP es un protocolo de comunicaciones de Internet sin conexión definido por la norma IETF RFC 768. Este protocolo facilita la transmisión directa de datagramas en redes IP. Los mensajes UDP/IP no necesitan una respuesta y, por lo tanto, son perfectos para aplicaciones en las que los paquetes cerrados no requieren retransmisión (como redes y vídeos que necesitan rendimiento en tiempo real).
UINTUINT es la forma abreviada del formato «Unsigned INTeger» (entero sin signo) (codificado en 16 bits). Los límites inferior y superior figuran a continuación: de 0 a (2 elevado a 16) - 1.
Ejemplo:
0, 65.535, 2#1111111111111111, 8#177777, 16#FFFF.
V
Valor literal de base 10Un valor literal de base 10 se utiliza para representar un valor entero decimal. Dicho valor puede ir precedido de los signos «+» y «-». Si el carácter «_» se utiliza en el valor literal, no es significativo.
Ejemplo:
-12, 0, 123_456, +986
Valor literal de base 16Un valor literal de base 16 se utiliza para representar un entero hexadecimal. La base está determinada por el número «16» y el signo «#». Los signos «+» y «-» están prohibidos. Para facilitar la lectura, puede utilizar el signo «_» entre los bits.
Ejemplo:
16#F_F o 16#FF (255 en formato decimal)
16#E_0 ó 16#E0 (224 en formato decimal)
506 33002522 05/2010
Glosario
Valor literal de base 2Un valor literal de base 2 se utiliza para representar un entero binario. La base está determinada por el número «2» y el signo «#». Los signos «+» y «-» están prohibidos. Para facilitar la lectura, puede utilizar el signo «_» entre los bits.
Ejemplo:
2#1111_1111 ó 2#11111111 (255 en formato decimal)
2#1110_0000 ó 2#11100000 (224 en formato decimal)
Valor literal de base 8Un valor literal de base 8 se utiliza para representar un entero octal. La base está determinada por el número «8» y el signo «#». Los signos «+» y «-» están prohibidos. Para facilitar la lectura, puede utilizar el signo «_» entre los bits.
Ejemplo:
8#3_77 ó 8#377 (255 en formato decimal)
8#34_0 ó 8#340 (224 en formato decimal)
Valor literal de enteroUn valor literal de entero se utiliza para introducir valores enteros en el sistema decimal. Les valores pueden ir precedidos de los signos + y -. Los signos de subrayado (_) separan números no significativos.
Ejemplo:
-12, 0, 123_456, +986
Valor literal de tiempoLas unidades de tipo TIME son las siguientes: días (d), horas (h), minutos (m), segundos (s) y milisegundos (ms). Un valor literal de tipo TIME se representa mediante una combinación de los tipos anteriores precedidos por el prefijo T#, t#, TIME# o time#.
Ejemplos: T#25h15m, t#14,7S, TIME#5d10h23m45s3ms
Valor literal realUn valor literal real es un número expresado con uno o varios decimales.
Ejemplo:
-12,0, 0,0, +0,456, 3,14159_26
33002522 05/2010 507
Glosario
Valor literal real con exponenteNúmero que puede expresarse mediante una notación científica estándar. La representación es como se indica a continuación: mantisa + exponente.
Ejemplo:
-1,34E-12 ó -1,34e-12
1,0E+6 ó 1,0e+6
1,234E6 ó 1,234e6
VariableEntidad de memoria del tipo BOOL, WORD, DWORD, etc. cuyo contenido puede modificarse mediante el programa que está ejecutándose.
Variables asignadasVariable cuya posición en la memoria del PLC puede conocerse. Por ejemplo, la variable Water_pressure se asocia a %MW102. Se dice por tanto que Water_pressure está asignada.
Variables no asignadasVariable cuya posición en la memoria del PLC no puede conocerse. Una variable a la que no está asociada ninguna dirección se denomina no asignada.
508 33002522 05/2010
Glosario
W
WORDEl tipo WORD se codifica en un formato de 16 bits y se utiliza para procesar cadenas de bits.
En esta tabla se establecen los límites inferior y superior de las bases que pueden utilizarse:
Ejemplos de representación
Base Límite inferior Límite superior
Hexadecimal 16#0 16#FFFF
Octal 8#0 8#177777
Binario 2#0 2#1111111111111111
Datos Representación en una de las bases
0000000011010011 16#D3
1010101010101010 8#125252
0000000011010011 2#11010011
33002522 05/2010 509
Glosario
510 33002522 05/2010
Índice
33002522 05/2010
CBA
ÍndiceAABS, 223ACOS, 225ACOS_REAL, 225ADD, 227ADD_***_***, 41ADD_***_TIME, 163ADD_TIME, 229AND, 187AND_***_***, 45ARINT_TO_DATE, 345ARINT_TO_DT, 347ARINT_TO_TOD, 349ASCII_TO_STRING, 351ASCII_TO_STRING_INV, 355ASIN, 231ASIN_REAL, 231ATAN, 233ATAN_REAL, 233AVE, 275AVE_DINT, 275AVE_INT, 275AVE_REAL, 275AVE_UDINT, 275AVE_UINT, 275
BBCD_TO_INT, 359BIT_TO_BYTE, 361BIT_TO_WORD, 363BOOL_TO_***, 365
33002522 05/2010
BYTE_AS_WORD, 367BYTE_TO_***, 371BYTE_TO_BIT, 369
Ccadenas, gestión - instrucciones
STRING_TO_***, 429ASCII_TO_STRING, 351ASCII_TO_STRING_INV, 355CONCAT_STR, 297DATE_TO_STRING, 377DELETE_INT, 299DINT_TO_STRING, 465EQUAL_STR, 301FIND_INT, 303INSERT_INT, 305INT_TO_STRING, 465LEFT_INT, 309LEN_INT, 311MID_INT, 313REAL_TO_STRING, 465REPLACE_INT, 315RIGHT_INT, 319STRING_TO_ASCII, 421STRING_TO_ASCII_INV, 425TOD_TO_STRING, 439
cadenas. gestión - instruccionesTIME_TO_STRING, 435
511
Index
comparación - instruccionesEQ, 149EQUAL_***, 57EQUAL_STR, 301FIND_EQ_***, 59FIND_EQP_***, 63FIND_GT_***, 67FIND_LT_***, 71GE, 151GT, 153LE, 155LT, 157NE, 159OCCUR_***, 97
CONCAT_STR, 297contador - instrucciones
CTD, 323CTD_***, 323CTU, 327CTU_***, 327CTUD, 331CTUD_***, 331
controlador - instruccionesinformación general, 123PID_INT, 129PWM_INT, 137SERVO_INT, 141
512
conversión - instrucciones DEG_TO_RAD, 381ARINT_TO_DATE, 345ARINT_TO_DT, 347ARINT_TO_TOD, 349ASCII_TO_STRING, 351ASCII_TO_STRING_INV, 355BCD_TO_INT, 359BIT_TO_BYTE, 361BIT_TO_WORD, 363BOOL_TO_***, 365BYTE_AS_WORD, 367BYTE_TO_***, 371BYTE_TO_BIT, 369DATE_TO_ARINT, 375DATE_TO_STRING, 377DBCD_TO_***, 379DINT_AS_WORD, 383DINT_TO_***, 385DINT_TO_DBCD, 389DINT_TO_STRING, 465DT_TO_ARINT, 391DT_TO_STRING, 393DWORD_TO_***, 395GRAY_TO_INT, 397INT_AS_DINT, 399INT_TO_***, 401INT_TO_BCD, 405INT_TO_DBCD, 407INT_TO_STRING, 465MOVE_***_***, 89RAD_TO_DEG, 409REAL_AS_WORD, 411REAL_TO_***, 413REAL_TO_STRING, 465REAL_TRUNC_***, 417STRING_TO_***, 429STRING_TO_ASCII, 421STRING_TO_ASCII_INV, 425TIME_AS_WORD, 431TIME_TO_***, 433TIME_TO_STRING, 435TOD_TO_ARINT, 437TOD_TO_STRING, 439UDINT_AS_WORD, 441
33002522 05/2010
Index
UDINT_TO_***, 443UINT_TO_***, 447WORD_AS_BYTE, 451WORD_AS_DINT, 453WORD_AS_REAL, 455WORD_AS_TIME, 457WORD_AS_UDINT, 459WORD_TO_***, 463WORD_TO_BIT, 461
COPY_•••••_•••••, 49COS, 235COS_REAL, 235CTD, 323CTD_***, 323CTU, 327CTU_***, 327CTUD, 331CTUD_***, 331
DDATE_TO_ARINT, 375DATE_TO_STRING, 377DBCD_TO_***, 379DEC, 237DEG_TO_RAD, 381DELETE_INT, 299DINT_AS_WORD, 383DINT_TO_***, 385DINT_TO_DBCD, 389DINT_TO_STRING, 465disponibilidad de las instrucciones, 29DIV, 239DIV_***_***, 53DIVMOD, 241DIVTIME, 167DT_TO_ARINT, 391DT_TO_STRING, 393DWORD_TO_***, 395
EEQ, 149EQUAL_***, 57EQUAL_STR, 301
33002522 05/2010
error, códigos, 469EXP, 243EXP_REAL, 243EXPT_REAL_***, 245extracción, instrucciones
EXTRACT, 179SIZEOF, 183
EXTRACT, 179
FF_TRIG, 189FE, 191FIND_EQ_***, 59FIND_EQP_***, 63FIND_GT_***, 67FIND_INT, 303FIND_LT_***, 71
GGE, 151GRAY_TO_INT, 397GT, 153
IINC, 247INSERT_INT, 305instrucciones
disponibilidad, 29INT_AS_DINT, 399INT_TO_***, 401INT_TO_BCD, 405INT_TO_DBCD, 407INT_TO_STRING, 465
LLE, 155LEFT_INT, 309LEN_INT, 311LENGTH_***, 75LIMIT, 279LIMIT_IND, 281
513
Index
LN, 249LN_REAL, 249LOG, 251LOG_REAL, 251lógica - instrucciones
AND, 187AND_***_***, 45F_TRIG, 189FE, 191NOT, 193NOT_***, 95OR, 195OR_***_***, 99R_TRIG, 197RE, 199RESET, 201ROL, 203ROL_***, 103ROR, 205ROR_***, 105RS, 207SET, 209SHL, 211SHR, 213SR, 215TRIGGER, 217XOR, 219XOR_***_***, 117
LT, 157
514
Mmatemáticas - instrucciones
ABS, 223ACOS, 225ACOS_REAL, 225ADD, 227ADD_***_***, 41ADD_***_TIME, 163ADD_TIME, 229asignación a matrices, 87ASIN, 231ASIN_REAL, 231ATAN, 233ATAN_REAL, 233COS, 235COS_REAL, 235DEC, 237DIV, 239DIV_***_***, 53DIVMOD, 241DIVTIME, 167EXP, 243EXP_REAL, 243EXPT_REAL_***, 245INC, 247LENGTH_***, 75LIMIT, 279LIMIT_IND, 281LN, 249LN_REAL, 249LOG, 251LOG_REAL, 251MAX, 285MAX_***, 79MIN, 287MIN_***, 81MOD, 253MOD_***_***, 83MOVE, 255MUL, 257MUL_***_***, 91MULTIME, 169MUX, 289NEG, 259SEL, 293
33002522 05/2010
Index
SIGN, 261SIN, 263SIN_REAL, 263SQRT_***, 269SUB, 265SUB_***_***, 109, 171SUB_***_TIME, 173SUB_TIME, 267SUM_ARINT, 113TAN, 271TAN_REAL, 271
matemáticas, instruccionesAVE, 275
matriz - instruccionesADD_***_***, 41AND_***_***, 45ARINT_TO_DATE, 345ARINT_TO_DT, 347ARINT_TO_TOD, 349DATE_TO_ARINT, 375DIV_***_***, 53DT_TO_ARINT, 391EQUAL_***, 57FIND_EQ_***, 59FIND_EQP_***, 63FIND_GT_***, 67FIND_LT_***, 71LENGTH_***, 75MAX_***, 79MIN_***, 81MOD_***_***, 83MOVE_***_***, 87, 89MUL_***_***, 91NOT_***, 95OCCUR_***, 97OR_***_***, 99ROL_***, 103ROR_***, 105SORT_***, 107SUB_***_***, 109SUM_***, 113SWAP_***, 115TOD_TO_ARINT, 437XOR_***_***, 117
33002522 05/2010
matriz, instruccionesCOPY_•••••_•••••, 49
MAX, 285MAX_***, 79MID_INT, 313MIN, 287MIN_***, 81MOD, 253MOD_***_***, 83MOVE, 255MOVE_***_***, 87, 89MUL, 257MUL_***_***, 91MULTIME, 169MUX, 289
NNE, 159NEG, 259NOT, 193NOT_***, 95
OOCCUR_***, 97OR, 195OR_***_***, 99
PPID_INT, 129PWM_INT, 137
RR_TRIG, 197RAD_TO_DEG, 409RE, 199REAL_AS_WORD, 411REAL_TO_***, 413REAL_TO_STRING, 465REAL_TRUNC_***, 417REPLACE_INT, 315RESET, 201
515
Index
RIGHT_INT, 319ROL, 203ROL_***, 103ROR, 205ROR_***, 105RS, 207
Ssalidas, procesamiento - instrucciones
PWM_INT, 137SERVO_INT, 141
SEL, 293SERVO_INT, 141SET, 209SHL, 211SHR, 213SIGN, 261SIN, 263SIN_REAL, 263SIZEOF, 183SORT_***, 107SQRT_***, 269SR, 215STRING_TO_***, 429STRING_TO_ASCII, 421STRING_TO_ASCII_INV, 425SUB, 265SUB_***_***, 109, 171SUB_***_TIME, 173SUB_TIME, 267SUM_***, 113SWAP_***, 115
TTAN, 271TAN_REAL, 271temporizador - instrucciones
TOF, 335TON, 337TP, 339
TIME_AS_WORD, 431TIME_TO_***, 433TIME_TO_STRING, 435
516
TOD_TO_ARINT, 437TOD_TO_STRING, 439TOF, 335TON, 337TP, 339TRIGGER, 217
UUDINT_AS_WORD, 441UDINT_TO_***, 443UINT_TO_***, 447
WWORD_AS_BYTE, 451WORD_AS_DINT, 453WORD_AS_REAL, 455WORD_AS_TIME, 457WORD_AS_UDINT, 459WORD_TO_***, 463WORD_TO_BIT, 461
XXOR, 219XOR_***_***, 117
33002522 05/2010