Unity v50 - Libreria Estandar.pdf

516
33002522.09 www.schneider-electric.com 33002522 05/2010 Unity Pro Estándar Librería de bloques 05/2010

Transcript of Unity v50 - Libreria Estandar.pdf

Page 1: Unity v50 - Libreria Estandar.pdf

33002522 05/2010

3300

2522

.09

www.schneider-electric.com

Unity ProEstándarLibrería de bloques

05/2010

Page 2: Unity v50 - Libreria Estandar.pdf

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

Page 3: Unity v50 - Libreria Estandar.pdf

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

Page 4: Unity v50 - Libreria Estandar.pdf

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

Page 5: Unity v50 - Libreria Estandar.pdf

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

Page 6: Unity v50 - Libreria Estandar.pdf

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

Page 7: Unity v50 - Libreria Estandar.pdf

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

Page 8: Unity v50 - Libreria Estandar.pdf

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

Page 9: Unity v50 - Libreria Estandar.pdf

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

Page 10: Unity v50 - Libreria Estandar.pdf

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

Page 11: Unity v50 - Libreria Estandar.pdf

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

Page 12: Unity v50 - Libreria Estandar.pdf

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

Page 13: Unity v50 - Libreria Estandar.pdf

§

Información de seguridad

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

Page 14: Unity v50 - Libreria Estandar.pdf

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

Page 15: Unity v50 - Libreria Estandar.pdf

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

Page 16: Unity v50 - Libreria Estandar.pdf

16 33002522 05/2010

Page 17: Unity v50 - Libreria Estandar.pdf

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

Page 18: Unity v50 - Libreria Estandar.pdf

Generalidades

18 33002522 05/2010

Page 19: Unity v50 - Libreria Estandar.pdf

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

Page 20: Unity v50 - Libreria Estandar.pdf

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

Page 21: Unity v50 - Libreria Estandar.pdf

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

Page 22: Unity v50 - Libreria Estandar.pdf

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

Page 23: Unity v50 - Libreria Estandar.pdf

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

Page 24: Unity v50 - Libreria Estandar.pdf

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

Page 25: Unity v50 - Libreria Estandar.pdf

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

Page 26: Unity v50 - Libreria Estandar.pdf

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

Page 27: Unity v50 - Libreria Estandar.pdf

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

Page 28: Unity v50 - Libreria Estandar.pdf

Tipos de bloques y utilización

28 33002522 05/2010

Page 29: Unity v50 - Libreria Estandar.pdf

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

Page 30: Unity v50 - Libreria Estandar.pdf

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

Page 31: Unity v50 - Libreria Estandar.pdf

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

Page 32: Unity v50 - Libreria Estandar.pdf

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

Page 33: Unity v50 - Libreria Estandar.pdf

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

Page 34: Unity v50 - Libreria Estandar.pdf

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

Page 35: Unity v50 - Libreria Estandar.pdf

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

Page 36: Unity v50 - Libreria Estandar.pdf

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

Page 37: Unity v50 - Libreria Estandar.pdf

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

Page 38: Unity v50 - Libreria Estandar.pdf

Disponibilidad del bloque

38 33002522 05/2010

Page 39: Unity v50 - Libreria Estandar.pdf

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

Page 40: Unity v50 - Libreria Estandar.pdf

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

Page 41: Unity v50 - Libreria Estandar.pdf

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

Page 42: Unity v50 - Libreria Estandar.pdf

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

Page 43: Unity v50 - Libreria Estandar.pdf

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

Page 44: Unity v50 - Libreria Estandar.pdf

ADD_***_***

44 33002522 05/2010

Page 45: Unity v50 - Libreria Estandar.pdf

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

Page 46: Unity v50 - Libreria Estandar.pdf

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

Page 47: Unity v50 - Libreria Estandar.pdf

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

Page 48: Unity v50 - Libreria Estandar.pdf

AND_***_***

48 33002522 05/2010

Page 49: Unity v50 - Libreria Estandar.pdf

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

Page 50: Unity v50 - Libreria Estandar.pdf

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

Page 51: Unity v50 - Libreria Estandar.pdf

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

Page 52: Unity v50 - Libreria Estandar.pdf

COPY_•••••_•••••

52 33002522 05/2010

Page 53: Unity v50 - Libreria Estandar.pdf

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

Page 54: Unity v50 - Libreria Estandar.pdf

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

Page 55: Unity v50 - Libreria Estandar.pdf

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

Page 56: Unity v50 - Libreria Estandar.pdf

DIV_***_***

56 33002522 05/2010

Page 57: Unity v50 - Libreria Estandar.pdf

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

Page 58: Unity v50 - Libreria Estandar.pdf

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

Page 59: Unity v50 - Libreria Estandar.pdf

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

Page 60: Unity v50 - Libreria Estandar.pdf

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

Page 61: Unity v50 - Libreria Estandar.pdf

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

Page 62: Unity v50 - Libreria Estandar.pdf

FIND_EQ_***

62 33002522 05/2010

Page 63: Unity v50 - Libreria Estandar.pdf

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

Page 64: Unity v50 - Libreria Estandar.pdf

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

Page 65: Unity v50 - Libreria Estandar.pdf

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

Page 66: Unity v50 - Libreria Estandar.pdf

FIND_EQP_***

66 33002522 05/2010

Page 67: Unity v50 - Libreria Estandar.pdf

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

Page 68: Unity v50 - Libreria Estandar.pdf

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

Page 69: Unity v50 - Libreria Estandar.pdf

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

Page 70: Unity v50 - Libreria Estandar.pdf

FIND_GT_***

70 33002522 05/2010

Page 71: Unity v50 - Libreria Estandar.pdf

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

Page 72: Unity v50 - Libreria Estandar.pdf

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

Page 73: Unity v50 - Libreria Estandar.pdf

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

Page 74: Unity v50 - Libreria Estandar.pdf

FIND_LT_***

74 33002522 05/2010

Page 75: Unity v50 - Libreria Estandar.pdf

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

Page 76: Unity v50 - Libreria Estandar.pdf

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

Page 77: Unity v50 - Libreria Estandar.pdf

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

Page 78: Unity v50 - Libreria Estandar.pdf

LENGTH_***

78 33002522 05/2010

Page 79: Unity v50 - Libreria Estandar.pdf

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

Page 80: Unity v50 - Libreria Estandar.pdf

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

Page 81: Unity v50 - Libreria Estandar.pdf

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

Page 82: Unity v50 - Libreria Estandar.pdf

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

Page 83: Unity v50 - Libreria Estandar.pdf

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

Page 84: Unity v50 - Libreria Estandar.pdf

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

Page 85: Unity v50 - Libreria Estandar.pdf

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

Page 86: Unity v50 - Libreria Estandar.pdf

MOD_***_***

86 33002522 05/2010

Page 87: Unity v50 - Libreria Estandar.pdf

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

Page 88: Unity v50 - Libreria Estandar.pdf

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

Page 89: Unity v50 - Libreria Estandar.pdf

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

Page 90: Unity v50 - Libreria Estandar.pdf

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

Page 91: Unity v50 - Libreria Estandar.pdf

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

Page 92: Unity v50 - Libreria Estandar.pdf

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

Page 93: Unity v50 - Libreria Estandar.pdf

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

Page 94: Unity v50 - Libreria Estandar.pdf

MUL_***_***

94 33002522 05/2010

Page 95: Unity v50 - Libreria Estandar.pdf

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

Page 96: Unity v50 - Libreria Estandar.pdf

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

Page 97: Unity v50 - Libreria Estandar.pdf

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

Page 98: Unity v50 - Libreria Estandar.pdf

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

Page 99: Unity v50 - Libreria Estandar.pdf

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

Page 100: Unity v50 - Libreria Estandar.pdf

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

Page 101: Unity v50 - Libreria Estandar.pdf

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

Page 102: Unity v50 - Libreria Estandar.pdf

OR_***_***

102 33002522 05/2010

Page 103: Unity v50 - Libreria Estandar.pdf

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

Page 104: Unity v50 - Libreria Estandar.pdf

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

Page 105: Unity v50 - Libreria Estandar.pdf

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

Page 106: Unity v50 - Libreria Estandar.pdf

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

Page 107: Unity v50 - Libreria Estandar.pdf

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

Page 108: Unity v50 - Libreria Estandar.pdf

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

Page 109: Unity v50 - Libreria Estandar.pdf

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

Page 110: Unity v50 - Libreria Estandar.pdf

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

Page 111: Unity v50 - Libreria Estandar.pdf

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

Page 112: Unity v50 - Libreria Estandar.pdf

SUB_***_***

112 33002522 05/2010

Page 113: Unity v50 - Libreria Estandar.pdf

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

Page 114: Unity v50 - Libreria Estandar.pdf

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

Page 115: Unity v50 - Libreria Estandar.pdf

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

Page 116: Unity v50 - Libreria Estandar.pdf

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

Page 117: Unity v50 - Libreria Estandar.pdf

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

Page 118: Unity v50 - Libreria Estandar.pdf

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

Page 119: Unity v50 - Libreria Estandar.pdf

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

Page 120: Unity v50 - Libreria Estandar.pdf

XOR_***_***

120 33002522 05/2010

Page 121: Unity v50 - Libreria Estandar.pdf

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

Page 122: Unity v50 - Libreria Estandar.pdf

CLC_INT

122 33002522 05/2010

Page 123: Unity v50 - Libreria Estandar.pdf

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

Page 124: Unity v50 - Libreria Estandar.pdf

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

Page 125: Unity v50 - Libreria Estandar.pdf

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

Page 126: Unity v50 - Libreria Estandar.pdf

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

Page 127: Unity v50 - Libreria Estandar.pdf

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

Page 128: Unity v50 - Libreria Estandar.pdf

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

Page 129: Unity v50 - Libreria Estandar.pdf

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

Page 130: Unity v50 - Libreria Estandar.pdf

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

Page 131: Unity v50 - Libreria Estandar.pdf

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

Page 132: Unity v50 - Libreria Estandar.pdf

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

Page 133: Unity v50 - Libreria Estandar.pdf

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

Page 134: Unity v50 - Libreria Estandar.pdf

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

Page 135: Unity v50 - Libreria Estandar.pdf

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

Page 136: Unity v50 - Libreria Estandar.pdf

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

Page 137: Unity v50 - Libreria Estandar.pdf

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

Page 138: Unity v50 - Libreria Estandar.pdf

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

Page 139: Unity v50 - Libreria Estandar.pdf

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

Page 140: Unity v50 - Libreria Estandar.pdf

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

Page 141: Unity v50 - Libreria Estandar.pdf

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

Page 142: Unity v50 - Libreria Estandar.pdf

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

Page 143: Unity v50 - Libreria Estandar.pdf

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

Page 144: Unity v50 - Libreria Estandar.pdf

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

Page 145: Unity v50 - Libreria Estandar.pdf

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

Page 146: Unity v50 - Libreria Estandar.pdf

SERVO_INT

146 33002522 05/2010

Page 147: Unity v50 - Libreria Estandar.pdf

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

Page 148: Unity v50 - Libreria Estandar.pdf

Comparación

148 33002522 05/2010

Page 149: Unity v50 - Libreria Estandar.pdf

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

Page 150: Unity v50 - Libreria Estandar.pdf

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

Page 151: Unity v50 - Libreria Estandar.pdf

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

Page 152: Unity v50 - Libreria Estandar.pdf

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

Page 153: Unity v50 - Libreria Estandar.pdf

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

Page 154: Unity v50 - Libreria Estandar.pdf

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

Page 155: Unity v50 - Libreria Estandar.pdf

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

Page 156: Unity v50 - Libreria Estandar.pdf

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

Page 157: Unity v50 - Libreria Estandar.pdf

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

Page 158: Unity v50 - Libreria Estandar.pdf

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

Page 159: Unity v50 - Libreria Estandar.pdf

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

Page 160: Unity v50 - Libreria Estandar.pdf

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

Page 161: Unity v50 - Libreria Estandar.pdf

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

Page 162: Unity v50 - Libreria Estandar.pdf

Fecha y hora

162 33002522 05/2010

Page 163: Unity v50 - Libreria Estandar.pdf

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

Page 164: Unity v50 - Libreria Estandar.pdf

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

Page 165: Unity v50 - Libreria Estandar.pdf

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

Page 166: Unity v50 - Libreria Estandar.pdf

ADD_***_TIME

166 33002522 05/2010

Page 167: Unity v50 - Libreria Estandar.pdf

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

Page 168: Unity v50 - Libreria Estandar.pdf

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

Page 169: Unity v50 - Libreria Estandar.pdf

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

Page 170: Unity v50 - Libreria Estandar.pdf

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

Page 171: Unity v50 - Libreria Estandar.pdf

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

Page 172: Unity v50 - Libreria Estandar.pdf

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

Page 173: Unity v50 - Libreria Estandar.pdf

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

Page 174: Unity v50 - Libreria Estandar.pdf

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

Page 175: Unity v50 - Libreria Estandar.pdf

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

Page 176: Unity v50 - Libreria Estandar.pdf

SUB_***_TIME

176 33002522 05/2010

Page 177: Unity v50 - Libreria Estandar.pdf

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

Page 178: Unity v50 - Libreria Estandar.pdf

$/$Extract (Extracción)

178 33002522 05/2010

Page 179: Unity v50 - Libreria Estandar.pdf

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

Page 180: Unity v50 - Libreria Estandar.pdf

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

Page 181: Unity v50 - Libreria Estandar.pdf

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

Page 182: Unity v50 - Libreria Estandar.pdf

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

Page 183: Unity v50 - Libreria Estandar.pdf

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

Page 184: Unity v50 - Libreria Estandar.pdf

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

Page 185: Unity v50 - Libreria Estandar.pdf

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

Page 186: Unity v50 - Libreria Estandar.pdf

Lógica

186 33002522 05/2010

Page 187: Unity v50 - Libreria Estandar.pdf

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

Page 188: Unity v50 - Libreria Estandar.pdf

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

Page 189: Unity v50 - Libreria Estandar.pdf

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

Page 190: Unity v50 - Libreria Estandar.pdf

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

Page 191: Unity v50 - Libreria Estandar.pdf

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

Page 192: Unity v50 - Libreria Estandar.pdf

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

Page 193: Unity v50 - Libreria Estandar.pdf

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

Page 194: Unity v50 - Libreria Estandar.pdf

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

Page 195: Unity v50 - Libreria Estandar.pdf

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

Page 196: Unity v50 - Libreria Estandar.pdf

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

Page 197: Unity v50 - Libreria Estandar.pdf

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

Page 198: Unity v50 - Libreria Estandar.pdf

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

Page 199: Unity v50 - Libreria Estandar.pdf

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

Page 200: Unity v50 - Libreria Estandar.pdf

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

Page 201: Unity v50 - Libreria Estandar.pdf

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

Page 202: Unity v50 - Libreria Estandar.pdf

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

Page 203: Unity v50 - Libreria Estandar.pdf

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

Page 204: Unity v50 - Libreria Estandar.pdf

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

Page 205: Unity v50 - Libreria Estandar.pdf

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

Page 206: Unity v50 - Libreria Estandar.pdf

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

Page 207: Unity v50 - Libreria Estandar.pdf

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

Page 208: Unity v50 - Libreria Estandar.pdf

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

Page 209: Unity v50 - Libreria Estandar.pdf

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

Page 210: Unity v50 - Libreria Estandar.pdf

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

Page 211: Unity v50 - Libreria Estandar.pdf

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

Page 212: Unity v50 - Libreria Estandar.pdf

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

Page 213: Unity v50 - Libreria Estandar.pdf

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

Page 214: Unity v50 - Libreria Estandar.pdf

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

Page 215: Unity v50 - Libreria Estandar.pdf

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

Page 216: Unity v50 - Libreria Estandar.pdf

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

Page 217: Unity v50 - Libreria Estandar.pdf

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

Page 218: Unity v50 - Libreria Estandar.pdf

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

Page 219: Unity v50 - Libreria Estandar.pdf

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

Page 220: Unity v50 - Libreria Estandar.pdf

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

Page 221: Unity v50 - Libreria Estandar.pdf

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

Page 222: Unity v50 - Libreria Estandar.pdf

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

Page 223: Unity v50 - Libreria Estandar.pdf

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

Page 224: Unity v50 - Libreria Estandar.pdf

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

Page 225: Unity v50 - Libreria Estandar.pdf

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

Page 226: Unity v50 - Libreria Estandar.pdf

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

Page 227: Unity v50 - Libreria Estandar.pdf

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

Page 228: Unity v50 - Libreria Estandar.pdf

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

Page 229: Unity v50 - Libreria Estandar.pdf

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

Page 230: Unity v50 - Libreria Estandar.pdf

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

Page 231: Unity v50 - Libreria Estandar.pdf

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

Page 232: Unity v50 - Libreria Estandar.pdf

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

Page 233: Unity v50 - Libreria Estandar.pdf

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

Page 234: Unity v50 - Libreria Estandar.pdf

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

Page 235: Unity v50 - Libreria Estandar.pdf

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

Page 236: Unity v50 - Libreria Estandar.pdf

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

Page 237: Unity v50 - Libreria Estandar.pdf

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

Page 238: Unity v50 - Libreria Estandar.pdf

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

Page 239: Unity v50 - Libreria Estandar.pdf

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

Page 240: Unity v50 - Libreria Estandar.pdf

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

Page 241: Unity v50 - Libreria Estandar.pdf

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

Page 242: Unity v50 - Libreria Estandar.pdf

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

Page 243: Unity v50 - Libreria Estandar.pdf

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

Page 244: Unity v50 - Libreria Estandar.pdf

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

Page 245: Unity v50 - Libreria Estandar.pdf

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

Page 246: Unity v50 - Libreria Estandar.pdf

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

Page 247: Unity v50 - Libreria Estandar.pdf

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

Page 248: Unity v50 - Libreria Estandar.pdf

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

Page 249: Unity v50 - Libreria Estandar.pdf

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

Page 250: Unity v50 - Libreria Estandar.pdf

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

Page 251: Unity v50 - Libreria Estandar.pdf

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

Page 252: Unity v50 - Libreria Estandar.pdf

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

Page 253: Unity v50 - Libreria Estandar.pdf

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

Page 254: Unity v50 - Libreria Estandar.pdf

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

Page 255: Unity v50 - Libreria Estandar.pdf

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

Page 256: Unity v50 - Libreria Estandar.pdf

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

Page 257: Unity v50 - Libreria Estandar.pdf

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

Page 258: Unity v50 - Libreria Estandar.pdf

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

Page 259: Unity v50 - Libreria Estandar.pdf

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

Page 260: Unity v50 - Libreria Estandar.pdf

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

Page 261: Unity v50 - Libreria Estandar.pdf

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

Page 262: Unity v50 - Libreria Estandar.pdf

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

Page 263: Unity v50 - Libreria Estandar.pdf

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

Page 264: Unity v50 - Libreria Estandar.pdf

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

Page 265: Unity v50 - Libreria Estandar.pdf

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

Page 266: Unity v50 - Libreria Estandar.pdf

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

Page 267: Unity v50 - Libreria Estandar.pdf

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

Page 268: Unity v50 - Libreria Estandar.pdf

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

Page 269: Unity v50 - Libreria Estandar.pdf

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

Page 270: Unity v50 - Libreria Estandar.pdf

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

Page 271: Unity v50 - Libreria Estandar.pdf

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

Page 272: Unity v50 - Libreria Estandar.pdf

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

Page 273: Unity v50 - Libreria Estandar.pdf

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

Page 274: Unity v50 - Libreria Estandar.pdf

Statistik

274 33002522 05/2010

Page 275: Unity v50 - Libreria Estandar.pdf

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

Page 276: Unity v50 - Libreria Estandar.pdf

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

Page 277: Unity v50 - Libreria Estandar.pdf

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

Page 278: Unity v50 - Libreria Estandar.pdf

AVE

278 33002522 05/2010

Page 279: Unity v50 - Libreria Estandar.pdf

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

Page 280: Unity v50 - Libreria Estandar.pdf

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

Page 281: Unity v50 - Libreria Estandar.pdf

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

Page 282: Unity v50 - Libreria Estandar.pdf

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

Page 283: Unity v50 - Libreria Estandar.pdf

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

Page 284: Unity v50 - Libreria Estandar.pdf

LIMIT_IND

284 33002522 05/2010

Page 285: Unity v50 - Libreria Estandar.pdf

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

Page 286: Unity v50 - Libreria Estandar.pdf

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

Page 287: Unity v50 - Libreria Estandar.pdf

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

Page 288: Unity v50 - Libreria Estandar.pdf

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

Page 289: Unity v50 - Libreria Estandar.pdf

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

Page 290: Unity v50 - Libreria Estandar.pdf

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

Page 291: Unity v50 - Libreria Estandar.pdf

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

Page 292: Unity v50 - Libreria Estandar.pdf

MUX

292 33002522 05/2010

Page 293: Unity v50 - Libreria Estandar.pdf

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

Page 294: Unity v50 - Libreria Estandar.pdf

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

Page 295: Unity v50 - Libreria Estandar.pdf

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

Page 296: Unity v50 - Libreria Estandar.pdf

Cadenas de caracteres

296 33002522 05/2010

Page 297: Unity v50 - Libreria Estandar.pdf

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

Page 298: Unity v50 - Libreria Estandar.pdf

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

Page 299: Unity v50 - Libreria Estandar.pdf

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

Page 300: Unity v50 - Libreria Estandar.pdf

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

Page 301: Unity v50 - Libreria Estandar.pdf

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

Page 302: Unity v50 - Libreria Estandar.pdf

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

Page 303: Unity v50 - Libreria Estandar.pdf

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

Page 304: Unity v50 - Libreria Estandar.pdf

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

Page 305: Unity v50 - Libreria Estandar.pdf

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

Page 306: Unity v50 - Libreria Estandar.pdf

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

Page 307: Unity v50 - Libreria Estandar.pdf

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

Page 308: Unity v50 - Libreria Estandar.pdf

INSERT_INT

308 33002522 05/2010

Page 309: Unity v50 - Libreria Estandar.pdf

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

Page 310: Unity v50 - Libreria Estandar.pdf

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

Page 311: Unity v50 - Libreria Estandar.pdf

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

Page 312: Unity v50 - Libreria Estandar.pdf

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

Page 313: Unity v50 - Libreria Estandar.pdf

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

Page 314: Unity v50 - Libreria Estandar.pdf

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

Page 315: Unity v50 - Libreria Estandar.pdf

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

Page 316: Unity v50 - Libreria Estandar.pdf

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

Page 317: Unity v50 - Libreria Estandar.pdf

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

Page 318: Unity v50 - Libreria Estandar.pdf

REPLACE_INT

318 33002522 05/2010

Page 319: Unity v50 - Libreria Estandar.pdf

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

Page 320: Unity v50 - Libreria Estandar.pdf

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

Page 321: Unity v50 - Libreria Estandar.pdf

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

Page 322: Unity v50 - Libreria Estandar.pdf

Temporizadores y contadores

322 33002522 05/2010

Page 323: Unity v50 - Libreria Estandar.pdf

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

Page 324: Unity v50 - Libreria Estandar.pdf

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

Page 325: Unity v50 - Libreria Estandar.pdf

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

Page 326: Unity v50 - Libreria Estandar.pdf

CTD, CTD_***

326 33002522 05/2010

Page 327: Unity v50 - Libreria Estandar.pdf

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

Page 328: Unity v50 - Libreria Estandar.pdf

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

Page 329: Unity v50 - Libreria Estandar.pdf

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

Page 330: Unity v50 - Libreria Estandar.pdf

CTU, CTU_***

330 33002522 05/2010

Page 331: Unity v50 - Libreria Estandar.pdf

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

Page 332: Unity v50 - Libreria Estandar.pdf

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

Page 333: Unity v50 - Libreria Estandar.pdf

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

Page 334: Unity v50 - Libreria Estandar.pdf

CTUD, CTUD_***

334 33002522 05/2010

Page 335: Unity v50 - Libreria Estandar.pdf

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

Page 336: Unity v50 - Libreria Estandar.pdf

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

Page 337: Unity v50 - Libreria Estandar.pdf

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

Page 338: Unity v50 - Libreria Estandar.pdf

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

Page 339: Unity v50 - Libreria Estandar.pdf

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

Page 340: Unity v50 - Libreria Estandar.pdf

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

Page 341: Unity v50 - Libreria Estandar.pdf

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

Page 342: Unity v50 - Libreria Estandar.pdf

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

Page 343: Unity v50 - Libreria Estandar.pdf

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

Page 344: Unity v50 - Libreria Estandar.pdf

Conversión de tipos

344 33002522 05/2010

Page 345: Unity v50 - Libreria Estandar.pdf

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

Page 346: Unity v50 - Libreria Estandar.pdf

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

Page 347: Unity v50 - Libreria Estandar.pdf

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

Page 348: Unity v50 - Libreria Estandar.pdf

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

Page 349: Unity v50 - Libreria Estandar.pdf

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

Page 350: Unity v50 - Libreria Estandar.pdf

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

Page 351: Unity v50 - Libreria Estandar.pdf

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

Page 352: Unity v50 - Libreria Estandar.pdf

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

Page 353: Unity v50 - Libreria Estandar.pdf

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

Page 354: Unity v50 - Libreria Estandar.pdf

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

Page 355: Unity v50 - Libreria Estandar.pdf

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

Page 356: Unity v50 - Libreria Estandar.pdf

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

Page 357: Unity v50 - Libreria Estandar.pdf

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

Page 358: Unity v50 - Libreria Estandar.pdf

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

Page 359: Unity v50 - Libreria Estandar.pdf

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

Page 360: Unity v50 - Libreria Estandar.pdf

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

Page 361: Unity v50 - Libreria Estandar.pdf

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

Page 362: Unity v50 - Libreria Estandar.pdf

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

Page 363: Unity v50 - Libreria Estandar.pdf

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

Page 364: Unity v50 - Libreria Estandar.pdf

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

Page 365: Unity v50 - Libreria Estandar.pdf

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

Page 366: Unity v50 - Libreria Estandar.pdf

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

Page 367: Unity v50 - Libreria Estandar.pdf

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

Page 368: Unity v50 - Libreria Estandar.pdf

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

Page 369: Unity v50 - Libreria Estandar.pdf

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

Page 370: Unity v50 - Libreria Estandar.pdf

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

Page 371: Unity v50 - Libreria Estandar.pdf

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

Page 372: Unity v50 - Libreria Estandar.pdf

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

Page 373: Unity v50 - Libreria Estandar.pdf

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

Page 374: Unity v50 - Libreria Estandar.pdf

BYTE_TO_***

374 33002522 05/2010

Page 375: Unity v50 - Libreria Estandar.pdf

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

Page 376: Unity v50 - Libreria Estandar.pdf

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

Page 377: Unity v50 - Libreria Estandar.pdf

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

Page 378: Unity v50 - Libreria Estandar.pdf

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

Page 379: Unity v50 - Libreria Estandar.pdf

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

Page 380: Unity v50 - Libreria Estandar.pdf

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

Page 381: Unity v50 - Libreria Estandar.pdf

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

Page 382: Unity v50 - Libreria Estandar.pdf

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

Page 383: Unity v50 - Libreria Estandar.pdf

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

Page 384: Unity v50 - Libreria Estandar.pdf

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

Page 385: Unity v50 - Libreria Estandar.pdf

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

Page 386: Unity v50 - Libreria Estandar.pdf

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

Page 387: Unity v50 - Libreria Estandar.pdf

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

Page 388: Unity v50 - Libreria Estandar.pdf

DINT_TO_***

388 33002522 05/2010

Page 389: Unity v50 - Libreria Estandar.pdf

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

Page 390: Unity v50 - Libreria Estandar.pdf

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

Page 391: Unity v50 - Libreria Estandar.pdf

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

Page 392: Unity v50 - Libreria Estandar.pdf

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

Page 393: Unity v50 - Libreria Estandar.pdf

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

Page 394: Unity v50 - Libreria Estandar.pdf

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

Page 395: Unity v50 - Libreria Estandar.pdf

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

Page 396: Unity v50 - Libreria Estandar.pdf

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

Page 397: Unity v50 - Libreria Estandar.pdf

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

Page 398: Unity v50 - Libreria Estandar.pdf

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

Page 399: Unity v50 - Libreria Estandar.pdf

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

Page 400: Unity v50 - Libreria Estandar.pdf

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

Page 401: Unity v50 - Libreria Estandar.pdf

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

Page 402: Unity v50 - Libreria Estandar.pdf

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

Page 403: Unity v50 - Libreria Estandar.pdf

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

Page 404: Unity v50 - Libreria Estandar.pdf

INT_TO_***

404 33002522 05/2010

Page 405: Unity v50 - Libreria Estandar.pdf

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

Page 406: Unity v50 - Libreria Estandar.pdf

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

Page 407: Unity v50 - Libreria Estandar.pdf

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

Page 408: Unity v50 - Libreria Estandar.pdf

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

Page 409: Unity v50 - Libreria Estandar.pdf

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

Page 410: Unity v50 - Libreria Estandar.pdf

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

Page 411: Unity v50 - Libreria Estandar.pdf

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

Page 412: Unity v50 - Libreria Estandar.pdf

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

Page 413: Unity v50 - Libreria Estandar.pdf

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

Page 414: Unity v50 - Libreria Estandar.pdf

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

Page 415: Unity v50 - Libreria Estandar.pdf

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

Page 416: Unity v50 - Libreria Estandar.pdf

REAL_TO_***

416 33002522 05/2010

Page 417: Unity v50 - Libreria Estandar.pdf

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

Page 418: Unity v50 - Libreria Estandar.pdf

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

Page 419: Unity v50 - Libreria Estandar.pdf

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

Page 420: Unity v50 - Libreria Estandar.pdf

REAL_TRUNC_***

420 33002522 05/2010

Page 421: Unity v50 - Libreria Estandar.pdf

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

Page 422: Unity v50 - Libreria Estandar.pdf

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

Page 423: Unity v50 - Libreria Estandar.pdf

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

Page 424: Unity v50 - Libreria Estandar.pdf

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

Page 425: Unity v50 - Libreria Estandar.pdf

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

Page 426: Unity v50 - Libreria Estandar.pdf

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

Page 427: Unity v50 - Libreria Estandar.pdf

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

Page 428: Unity v50 - Libreria Estandar.pdf

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

Page 429: Unity v50 - Libreria Estandar.pdf

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

Page 430: Unity v50 - Libreria Estandar.pdf

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

Page 431: Unity v50 - Libreria Estandar.pdf

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

Page 432: Unity v50 - Libreria Estandar.pdf

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

Page 433: Unity v50 - Libreria Estandar.pdf

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

Page 434: Unity v50 - Libreria Estandar.pdf

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

Page 435: Unity v50 - Libreria Estandar.pdf

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

Page 436: Unity v50 - Libreria Estandar.pdf

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

Page 437: Unity v50 - Libreria Estandar.pdf

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

Page 438: Unity v50 - Libreria Estandar.pdf

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

Page 439: Unity v50 - Libreria Estandar.pdf

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

Page 440: Unity v50 - Libreria Estandar.pdf

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

Page 441: Unity v50 - Libreria Estandar.pdf

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

Page 442: Unity v50 - Libreria Estandar.pdf

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

Page 443: Unity v50 - Libreria Estandar.pdf

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

Page 444: Unity v50 - Libreria Estandar.pdf

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

Page 445: Unity v50 - Libreria Estandar.pdf

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

Page 446: Unity v50 - Libreria Estandar.pdf

UDINT_TO_***

446 33002522 05/2010

Page 447: Unity v50 - Libreria Estandar.pdf

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

Page 448: Unity v50 - Libreria Estandar.pdf

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

Page 449: Unity v50 - Libreria Estandar.pdf

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

Page 450: Unity v50 - Libreria Estandar.pdf

UINT_TO_***

450 33002522 05/2010

Page 451: Unity v50 - Libreria Estandar.pdf

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

Page 452: Unity v50 - Libreria Estandar.pdf

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

Page 453: Unity v50 - Libreria Estandar.pdf

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

Page 454: Unity v50 - Libreria Estandar.pdf

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

Page 455: Unity v50 - Libreria Estandar.pdf

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

Page 456: Unity v50 - Libreria Estandar.pdf

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

Page 457: Unity v50 - Libreria Estandar.pdf

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

Page 458: Unity v50 - Libreria Estandar.pdf

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

Page 459: Unity v50 - Libreria Estandar.pdf

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

Page 460: Unity v50 - Libreria Estandar.pdf

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

Page 461: Unity v50 - Libreria Estandar.pdf

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

Page 462: Unity v50 - Libreria Estandar.pdf

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

Page 463: Unity v50 - Libreria Estandar.pdf

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

Page 464: Unity v50 - Libreria Estandar.pdf

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

Page 465: Unity v50 - Libreria Estandar.pdf

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

Page 466: Unity v50 - Libreria Estandar.pdf

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

Page 467: Unity v50 - Libreria Estandar.pdf

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

Page 468: Unity v50 - Libreria Estandar.pdf

468 33002522 05/2010

Page 469: Unity v50 - Libreria Estandar.pdf

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

Page 470: Unity v50 - Libreria Estandar.pdf

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

Page 471: Unity v50 - Libreria Estandar.pdf

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

Page 472: Unity v50 - Libreria Estandar.pdf

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

Page 473: Unity v50 - Libreria Estandar.pdf

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

Page 474: Unity v50 - Libreria Estandar.pdf

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

Page 475: Unity v50 - Libreria Estandar.pdf

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

Page 476: Unity v50 - Libreria Estandar.pdf

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

Page 477: Unity v50 - Libreria Estandar.pdf

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

Page 478: Unity v50 - Libreria Estandar.pdf

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

Page 479: Unity v50 - Libreria Estandar.pdf

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

Page 480: Unity v50 - Libreria Estandar.pdf

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

Page 481: Unity v50 - Libreria Estandar.pdf

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

Page 482: Unity v50 - Libreria Estandar.pdf

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

Page 483: Unity v50 - Libreria Estandar.pdf

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

Page 484: Unity v50 - Libreria Estandar.pdf

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

Page 485: Unity v50 - Libreria Estandar.pdf

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

Page 486: Unity v50 - Libreria Estandar.pdf

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

Page 487: Unity v50 - Libreria Estandar.pdf

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

Page 488: Unity v50 - Libreria Estandar.pdf

Objetos de sistema

488 33002522 05/2010

Page 489: Unity v50 - Libreria Estandar.pdf

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

Page 490: Unity v50 - Libreria Estandar.pdf

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

Page 491: Unity v50 - Libreria Estandar.pdf

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

Page 492: Unity v50 - Libreria Estandar.pdf

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

Page 493: Unity v50 - Libreria Estandar.pdf

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

Page 494: Unity v50 - Libreria Estandar.pdf

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

Page 495: Unity v50 - Libreria Estandar.pdf

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

Page 496: Unity v50 - Libreria Estandar.pdf

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

Page 497: Unity v50 - Libreria Estandar.pdf

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

Page 498: Unity v50 - Libreria Estandar.pdf

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

Page 499: Unity v50 - Libreria Estandar.pdf

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

Page 500: Unity v50 - Libreria Estandar.pdf

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

Page 501: Unity v50 - Libreria Estandar.pdf

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

Page 502: Unity v50 - Libreria Estandar.pdf

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

Page 503: Unity v50 - Libreria Estandar.pdf

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

Page 504: Unity v50 - Libreria Estandar.pdf

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

Page 505: Unity v50 - Libreria Estandar.pdf

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

Page 506: Unity v50 - Libreria Estandar.pdf

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

Page 507: Unity v50 - Libreria Estandar.pdf

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

Page 508: Unity v50 - Libreria Estandar.pdf

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

Page 509: Unity v50 - Libreria Estandar.pdf

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

Page 510: Unity v50 - Libreria Estandar.pdf

Glosario

510 33002522 05/2010

Page 511: Unity v50 - Libreria Estandar.pdf

Índice

33002522 05/2010

CBA

Índice

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

Page 512: Unity v50 - Libreria Estandar.pdf

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

Page 513: Unity v50 - Libreria Estandar.pdf

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

Page 514: Unity v50 - Libreria Estandar.pdf

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

Page 515: Unity v50 - Libreria Estandar.pdf

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

Page 516: Unity v50 - Libreria Estandar.pdf

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