0% encontró este documento útil (0 votos)
220 vistas935 páginas

Guía de Programación SoMachine 2016

Este documento proporciona una guía de programación para SoMachine Logic Builder. Explica los conceptos básicos de la interfaz de usuario, cómo configurar y gestionar dispositivos, y cómo crear programas mediante componentes como unidades de organización de programa.

Cargado por

dasd
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
220 vistas935 páginas

Guía de Programación SoMachine 2016

Este documento proporciona una guía de programación para SoMachine Logic Builder. Explica los conceptos básicos de la interfaz de usuario, cómo configurar y gestionar dispositivos, y cómo crear programas mediante componentes como unidades de organización de programa.

Cargado por

dasd
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SoMachine

EIO0000000071 11/2016

SoMachine
Guía de programación
11/2016
EIO0000000071.13

www.schneider-electric.com
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 objeto sustituir dichos productos para aplicaciones de usuario
específicas, ni debe emplearse para determinar su idoneidad o fiabilidad. Los usuarios o
integradores tienen la responsabilidad de llevar a cabo un análisis de riesgos adecuado y
completo, así como la evaluación y las pruebas de los productos en relación con la aplicación o el
uso de dichos productos en cuestión. 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 de 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 todas las regulaciones sobre
seguridad correspondientes, 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 solo
podrá realizarlas el fabricante.
Cuando se utilicen dispositivos para aplicaciones con requisitos técnicos de seguridad, siga las
instrucciones pertinentes.
Si con nuestros productos de hardware no se utiliza el software de Schneider Electric u otro
software aprobado, pueden producirse lesiones, daños o un funcionamiento incorrecto del equipo.
Si no se tiene en cuenta esta información, se pueden causar daños personales o en el equipo.
© 2016 Schneider Electric. Reservados todos los derechos.

2 EIO0000000071 11/2016
Tabla de materias

Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 17
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Parte I Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Capítulo 1 Introducción general a SoMachine Logic Builder . . . . . . 27
¿Qué es SoMachine Logic Builder? . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Tareas que realiza SoMachine Logic Builder . . . . . . . . . . . . . . . . . . . 29
Capítulo 2 Interfaz de usuario de SoMachine Logic Builder . . . . . . 31
Elementos de la pantalla de SoMachine Logic Builder . . . . . . . . . . . . 32
Navegadores de varias fichas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
La vista de varias fichas Catálogo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Personalización de la interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . 47
Interfaz de usuario en modalidad online . . . . . . . . . . . . . . . . . . . . . . . 52
Menús y comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Capítulo 3 Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Introducción y conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Parte II Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Capítulo 4 Instalación de dispositivos . . . . . . . . . . . . . . . . . . . . . . . 59
Integración de dispositivos Sercos de otros fabricantes . . . . . . . . . . . 59
Capítulo 5 Gestión de dispositivos. . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1 Adición de dispositivos mediante el método de arrastrar y soltar . . . . 62
Adición de dispositivos mediante el método de arrastrar y soltar . . . . 62
5.2 Adición de dispositivos mediante menú contextual o signo más. . . . . 65
Adición de un controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Adición de dispositivos de ampliación . . . . . . . . . . . . . . . . . . . . . . . . . 67
Adición de administradores de comunicación . . . . . . . . . . . . . . . . . . . 69
Adición de dispositivos a un administrador de comunicación . . . . . . . 71
Adición de dispositivos a partir de plantillas . . . . . . . . . . . . . . . . . . . . 73
5.3 Actualización de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Actualización de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4 Conversión de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Conversión de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.5 Conversión de proyectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Conversión de proyectos de SoMachine Basic y Twido . . . . . . . . . . . 80

EIO0000000071 11/2016 3
Capítulo 6 Cuadros de diálogo del editor de dispositivos común . . . 99
6.1 Configuración del dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Información general sobre editores de dispositivos . . . . . . . . . . . . . . . 101
Selección de controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Configuración de comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Ajustes PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Distribución de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.2 Asignación de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Asignación de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Trabajo con el cuadro de diálogo Asignación de E/S . . . . . . . . . . . . . 149
Asignación de E/S en modalidad online. . . . . . . . . . . . . . . . . . . . . . . . 153
Variables implícitas para forzar E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Parte III Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Capítulo 7 Componentes de programa . . . . . . . . . . . . . . . . . . . . . . . 157
7.1 Unidad de organización de programa (POU). . . . . . . . . . . . . . . . . . . . 158
POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Adición y llamadas a POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Propiedad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Propiedad de interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Función, bloque de funciones y método externos . . . . . . . . . . . . . . . . 184
POUs para comprobaciones implícitas . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2 Bloque de funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Información general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Instancia de bloque de funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Llamada a un bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Extensión de un bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . 194

4 EIO0000000071 11/2016
Implementación de interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Invocación de métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Puntero SUPER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Puntero THIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.3 Objetos de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Tipo de datos (DUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Lista de variables globales - GVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Lista de variables globales de red - GNVL . . . . . . . . . . . . . . . . . . . . . 211
Variables persistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Archivo externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Lista de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Colección de imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
7.4 Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Capítulo 8 Configuración de tareas . . . . . . . . . . . . . . . . . . . . . . . . . 235
Configuración de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Adición de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Capítulo 9 Gestión de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.1 Información general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.2 Compilación y descarga de aplicaciones . . . . . . . . . . . . . . . . . . . . . . 240
Compilar aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Inicio de sesión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Proceso de generación en aplicaciones cambiadas . . . . . . . . . . . . . . 245
Descarga de una aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
9.3 Ejecución de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Ejecución de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
9.4 Mantenimiento de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Supervisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Depuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Parte IV Editores de lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Capítulo 10 Editor FBD/LD/IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
10.1 Información sobre el editor FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . 266
Editor FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Lenguaje de diagrama de bloques de funciones (FBD) . . . . . . . . . . . 268
Lenguaje del diagrama de contactos (LD). . . . . . . . . . . . . . . . . . . . . . 269
Lenguaje de la lista de instrucciones (IL) . . . . . . . . . . . . . . . . . . . . . . 270
Modificadores y operadores en IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

EIO0000000071 11/2016 5
Trabajo en el editor FBD y LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Trabajo en el editor IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Posiciones de cursor en FBD, LD e IL . . . . . . . . . . . . . . . . . . . . . . . . . 285
Menú IL, FBD, LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Editor FBD/LD/IL en modalidad online. . . . . . . . . . . . . . . . . . . . . . . . . 290
10.2 Elementos FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Herramientas FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Red en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Asignación en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Salto en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Etiqueta en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Módulos en FBD/LD/IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Instrucción RETURN en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Bifurcación/Bobina en paralelo en FBD/LD/IL . . . . . . . . . . . . . . . . . . . 304
Bifurcación simultánea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Set/Reset en FBD/LD/IL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Bobina Set/Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
10.3 Elementos LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Bobina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Capítulo 11 Editor de diagrama de función continua (CFC) . . . . . . . . 315
Lenguaje de diagrama de función continua (CFC) . . . . . . . . . . . . . . . 316
Editor CFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Posiciones de cursor en CFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Elementos CFC/Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Trabajo en el editor CFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Editor CFC en modalidad online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Editor CFC orientado a la página. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Capítulo 12 Editor de diagrama funcional secuencial (SFC) . . . . . . . . 335
Editor SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
SFC - Lenguaje de diagrama funcional secuencial . . . . . . . . . . . . . . . 338
Posiciones de cursor en SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Trabajo en el editor SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Propiedades del elemento SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Elementos SFC / Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

6 EIO0000000071 11/2016
Calificador para las acciones en SFC . . . . . . . . . . . . . . . . . . . . . . . . . 357
Variables implícitas - Indicadores SFC . . . . . . . . . . . . . . . . . . . . . . . . 358
Secuencia de procesamiento en SFC . . . . . . . . . . . . . . . . . . . . . . . . . 364
Editor SFC en modalidad online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Capítulo 13 Editor de texto estructurado (ST) . . . . . . . . . . . . . . . . . . 369
13.1 Información sobre el editor ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Editor ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Editor ST en modalidad online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2 Lenguaje de texto estructurado (ST)/texto estructurado extendido
(ExST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Texto estructurado (ST)/texto estructurado extendido (ExST) . . . . . . 377
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Parte V Editores de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Capítulo 14 Editores de declaraciones . . . . . . . . . . . . . . . . . . . . . . . 393
Editor de declaraciones de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Editor de declaraciones tabular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Editor de declaraciones en modalidad online . . . . . . . . . . . . . . . . . . . 399
Capítulo 15 Editor de gestor de tipos de dispositivo (DTM). . . . . . . . 401
Editor DTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Capítulo 16 Editor de tipo de datos (DUT) . . . . . . . . . . . . . . . . . . . . . 403
Editor de tipo de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Capítulo 17 Editor de lista de variables globales (GVL). . . . . . . . . . . 405
Editor GVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Capítulo 18 Editor de lista de variables de red (NVL) . . . . . . . . . . . . 407
18.1 Información sobre el editor NVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Editor de lista de variables de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
18.2 Información general sobre las variables de red. . . . . . . . . . . . . . . . . . 409
Introducción a lista de variables de red (NVL). . . . . . . . . . . . . . . . . . . 410
Configuración del intercambio de variables de red . . . . . . . . . . . . . . . 414
Normas de la lista de variables de red (NVL) . . . . . . . . . . . . . . . . . . . 419
Estado de funcionamiento del emisor y del receptor. . . . . . . . . . . . . . 421
Ejemplo de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Compatibilidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

EIO0000000071 11/2016 7
Capítulo 19 Editor de tarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Información sobre la configuración de tareas . . . . . . . . . . . . . . . . . . . 434
Ficha Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Ficha Supervisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Configuración de una tarea específica. . . . . . . . . . . . . . . . . . . . . . . . . 438
Procesamiento de tareas en modalidad online . . . . . . . . . . . . . . . . . . 442
Capítulo 20 Editor de lista de supervisión . . . . . . . . . . . . . . . . . . . . . . 443
Editor de vista de supervisión/lista de supervisión. . . . . . . . . . . . . . . . 444
Creación de una lista de supervisión . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Lista de supervisión en modalidad online . . . . . . . . . . . . . . . . . . . . . . 447
Capítulo 21 Herramientas en los editores de lógica . . . . . . . . . . . . . . 449
Buscador de funciones y bloques de funciones. . . . . . . . . . . . . . . . . . 450
Accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Parte VI Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Capítulo 22 Registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Introducción al registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Capítulo 23 Gestor de fórmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Gestor de fórmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Definición de fórmula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Comandos RecipeMan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Capítulo 24 Editor de traza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
24.1 Objeto de traza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Información básica sobre trazas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Creación de un objeto de traza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
24.2 Configuración traza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Configuración de variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Configuración de registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Configuraciones de traza avanzadas. . . . . . . . . . . . . . . . . . . . . . . . . . 494
Modificar configuración de pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Representación eje Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
24.3 Editor de traza en modalidad online. . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Editor de traza en modalidad online . . . . . . . . . . . . . . . . . . . . . . . . . . 502
24.4 Operaciones de teclado para diagramas de traza . . . . . . . . . . . . . . . . 503
Métodos abreviados de teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Capítulo 25 Editor de configuración de símbolos . . . . . . . . . . . . . . . . 505
Editor de configuración de símbolos . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Configuración de símbolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Adición de una configuración de símbolos. . . . . . . . . . . . . . . . . . . . . . 510

8 EIO0000000071 11/2016
Capítulo 26 Intercambio de datos entre el controlador SoMachine y
HMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Definición de variable simple de SoMachine . . . . . . . . . . . . . . . . . . . . 514
Publicación de variables en la parte del controlador . . . . . . . . . . . . . . 518
Selección de variables en la parte HMI . . . . . . . . . . . . . . . . . . . . . . . . 520
Publicación de variables en la parte HMI . . . . . . . . . . . . . . . . . . . . . . 521
Parametrización de los medios mecánicos . . . . . . . . . . . . . . . . . . . . . 523
Parte VII Referencia de programación . . . . . . . . . . . . . . . . . . 525
Capítulo 27 Declaración de variables . . . . . . . . . . . . . . . . . . . . . . . . 527
27.1 Declaración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Información general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Recomendaciones sobre la nomenclatura de identificadores . . . . . . . 532
Inicialización de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Declaración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Modalidad de acceso directo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Declaración AT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Palabras clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
27.2 Tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Palabras clave de atributo para los tipos de variables . . . . . . . . . . . . 550
Configuración de variables - VAR_CONFIG . . . . . . . . . . . . . . . . . . . . . 554
27.3 Tipos de métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Métodos FB_init y FB_reinit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Método FB_exit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
27.4 Instrucciones Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Instrucciones Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Pragmas del mensaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Pragmas condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
27.5 Atributo Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Pragmas de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Atributos definidos por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Attribute call_after_init. . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Attribute displaymode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Attribute ExpandFully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Attribute global_init_slot. . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Attribute hide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Attribute hide_all_locals. . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Attribute initialize_on_call . . . . . . . . . . . . . . . . . . . . . . . . 585

EIO0000000071 11/2016 9
Attribute init_namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Attribute init_On_Onlchange . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Attribute instance-path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Attribute linkalways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Attribute monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Attribute namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Attribute no_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Attribute no_copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Attribute no-exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
Attribute no_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
Attribute no_virtual_actions. . . . . . . . . . . . . . . . . . . . . . . . . 599
Attribute obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
Attribute pack_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Attribute qualified_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Attribute reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Attribute subsequent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
Attribute symbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
Attribute warning disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
27.6 Funcionalidad Smart Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Smart Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Capítulo 28 Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
28.1 Información general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
28.2 Tipos de datos estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Tipos de datos estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
28.3 Ampliaciones a IEC estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
UNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
LTIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
WSTRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
BIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
Punteros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
28.4 Tipos de datos definidos por el usuario . . . . . . . . . . . . . . . . . . . . . . . . 625
Tipos de datos definidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Enumeraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Tipos de subárea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634

10 EIO0000000071 11/2016
Capítulo 29 Directrices de programación. . . . . . . . . . . . . . . . . . . . . . 637
29.1 Convención sobre nombres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
Información general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
29.2 Prefijos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Partes de prefijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Orden de los prefijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Prefijo de ámbito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Prefijo de tipo de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Prefijo de propiedad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
Prefijo de POU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Prefijo de espacio de nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Capítulo 30 Operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
30.1 Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
MUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
DIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
SIZEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
30.2 Operadores de cadenas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
30.3 Operadores de desplazamiento de bits . . . . . . . . . . . . . . . . . . . . . . . . 669
SHL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
SHR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
ROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
ROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
30.4 Operadores de selección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
SEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
LIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682

EIO0000000071 11/2016 11
30.5 Operadores de comparación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
GT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
LT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
LE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
GE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
EQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
NE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
30.6 Operadores de dirección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
ADR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Operador de contenido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
BITADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
30.7 Operador de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
CAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
30.8 Operadores de conversión de tipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
Funciones de conversiones de tipo . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
Conversiones BOOL_TO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
Conversiones TO_BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
Conversión entre tipos de números enteros . . . . . . . . . . . . . . . . . . . . 701
Conversiones REAL_TO/LREAL_TO. . . . . . . . . . . . . . . . . . . . . . . . . . 702
Conversiones TIME_TO/TIME_OF_DAY . . . . . . . . . . . . . . . . . . . . . . . 704
Conversiones DATE_TO/DT_TO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
Conversiones STRING_TO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
TRUNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
TRUNC_INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Conversiones ANY_..._TO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
30.9 Funciones numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
ABS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
SQRT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
LN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
LOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
EXP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
SIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
COS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
TAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
ASIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
ACOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
ATAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
EXPT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724

12 EIO0000000071 11/2016
30.10 Operadores de ampliación de IEC . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Operadores de ampliación de IEC . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
__DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
__ISVALIDREF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
__NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
__QUERYINTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
__QUERYPOINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Operadores de ámbito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
30.11 Operador de inicialización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Operador INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Capítulo 31 Operandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
31.1 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
Constantes BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
Constantes TIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
Constantes DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Constantes DATE_AND_TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Constantes TIME_OF_DAY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Constantes de número . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
Constantes REAL/LREAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
Constantes STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Constantes con tipo / Literales tipados . . . . . . . . . . . . . . . . . . . . . . . . 751
31.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Direccionamiento de bits en variables . . . . . . . . . . . . . . . . . . . . . . . . . 754
31.3 Direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Dirección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
31.4 Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Parte VIII Plantillas de SoMachine . . . . . . . . . . . . . . . . . . . . . . 761
Capítulo 32 Información general sobre las plantillas de SoMachine . 763
32.1 Plantillas de SoMachine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Información general sobre las plantillas de SoMachine . . . . . . . . . . . 765
Administración de plantillas de SoMachine . . . . . . . . . . . . . . . . . . . . . 768

EIO0000000071 11/2016 13
Capítulo 33 Administración de plantillas de dispositivos . . . . . . . . . . . 777
33.1 Administración de plantillas de dispositivos . . . . . . . . . . . . . . . . . . . . . 778
Información acerca de las plantillas de dispositivos . . . . . . . . . . . . . . 779
Adición de dispositivos a partir de plantillas. . . . . . . . . . . . . . . . . . . . . 780
Creación de una plantilla de dispositivos basada en dispositivos de
campo o módulos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Visualizaciones apropiadas para la creación de plantillas de
dispositivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
Información adicional acerca de la integración de la lógica de control
en plantillas de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Pasos para crear una plantilla de dispositivos . . . . . . . . . . . . . . . . . . . 788
Capítulo 34 Administración de plantillas de funciones. . . . . . . . . . . . . 793
34.1 Administración de plantillas de funciones . . . . . . . . . . . . . . . . . . . . . . 794
Información acerca de las plantillas de funciones . . . . . . . . . . . . . . . . 795
Adición de funciones a partir de plantillas . . . . . . . . . . . . . . . . . . . . . . 796
Funciones de aplicaciones como base para plantillas de funciones . . 802
Pasos para crear una plantilla de funciones . . . . . . . . . . . . . . . . . . . . 805
Parte IX Solución de problemas y FAQ . . . . . . . . . . . . . . . . . 811
Capítulo 35 Genérico - Solución de problemas y FAQ . . . . . . . . . . . . 813
35.1 Preguntas frecuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
¿Cómo puedo habilitar y configurar las entradas analógicas en
CANopen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
¿Por qué a veces la velocidad de arranque de SoMachine es más
lenta? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
¿Cómo puedo gestionar accesos directos y menús? . . . . . . . . . . . . . 817
¿Cómo puedo aumentar el límite de memoria disponible para
SoMachine en sistemas operativos de 32 bits?. . . . . . . . . . . . . . . . . . 819
¿Cómo puedo reducir el consumo de memoria de SoMachine? . . . . . 820
¿Cómo puedo aumentar el rendimiento en tiempo de compilación de
SoMachine? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
¿Qué puedo hacer en caso de tener problemas con Modbus
IOScanner en una línea serie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
¿Qué puedo hacer si la comunicación de mi lista de variables de red
(NVL) se ha suspendido?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
¿Qué puedo hacer si una descarga múltiple no funciona
correctamente en un HMI Controller? . . . . . . . . . . . . . . . . . . . . . . . . . 823
Capítulo 36 Acceso a controladores - Resolución de problemas y
preguntas frecuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
36.1 Resolución de problemas: Acceso a nuevos controladores . . . . . . . . 826
Acceso a nuevos controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Conexión a través de una dirección IP e información de dirección . . . 829

14 EIO0000000071 11/2016
36.2 Preguntas frecuentes: ¿Qué puedo hacer en caso de que haya
problemas de conexión con el controlador? . . . . . . . . . . . . . . . . . . . . 831
Preguntas frecuentes - ¿Por qué no se puede establecer una conexión
con el controlador? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
Preguntas frecuentes - ¿Por qué se ha interrumpido la comunicación
entre el PC y el controlador? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
Apéndices ......................................... 837
Apéndice A Comunicación de red . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
Topología de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
Direccionamiento y enrutamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Estructura de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
Apéndice B Uso del servidor OPC 3 . . . . . . . . . . . . . . . . . . . . . . . . . 847
Información general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
Declaración de una variable que se usará con OPC. . . . . . . . . . . . . . 850
Configuración del servidor OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Uso del servidor OPC CoDeSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
Apéndice C Lenguaje de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
C.1 Información general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
Ejecución de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Mejores prácticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
Lectura de documentación de API .NET . . . . . . . . . . . . . . . . . . . . . . . 872
Puntos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
C.2 Ejemplos de Schneider Electric Script Engine . . . . . . . . . . . . . . . . . . 875
Parámetros de dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
Versión del compilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
Perfil de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
Actualización de bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
Limpieza y compilación de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . 881
Configuración de comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
Restablecimiento de mensajes de diagnóstico . . . . . . . . . . . . . . . . . . 882
Reinicio del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
Convertir dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
Comparación de proyectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
Funciones avanzadas de administración de bibliotecas . . . . . . . . . . . 888
Acceso a POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889

EIO0000000071 11/2016 15
C.3 Ejemplos de CoDeSys Script Engine. . . . . . . . . . . . . . . . . . . . . . . . . . 890
Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
Aplicaciones online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
Objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
Sistema/Interfaz de usuario (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
Valores de lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
Valores de lectura de la fórmula y envío de un correo electrónico . . . 905
Determinación del árbol Dispositivos del proyecto abierto . . . . . . . . . 907
Ejemplo de script 4: Importación de un dispositivo
a PLCOpenXML desde Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
Apéndice D Administración de usuarios para Soft PLC. . . . . . . . . . . . 911
Información general sobre la administración de usuarios para Soft PLC 912
Usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
Derechos de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
Apéndice E Conjuntos de características de controlador para la
migración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
Conjuntos de características de controlador para la migración . . . . . . 923
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931

16 EIO0000000071 11/2016
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, revisarlo 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.

EIO0000000071 11/2016 17
TENGA EN CUENTA LO SIGUIENTE:
La instalación, el manejo, las revisiones y el 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.

18 EIO0000000071 11/2016
Acerca de este libro

Presentación

Objeto
En este documento se describe la interfaz gráfica de usuario del software SoMachine y las
funciones que ofrece. Para obtener más información, consulte los documentos independientes
que se ofrecen en la ayuda online de SoMachine.

Campo de aplicación
Este documento se ha actualizado para la publicación de SoMachine V4.2.

Documentos relacionados

Título de la documentación Número de referencia


Introducción a SoMachine EIO0000000734 (ING);
EIO0000000787 (FRA);
EIO0000000788 (ALE);
EIO0000000790 (ESP);
EIO0000000789 (ITA);
EIO0000000791 (CHI)
SoMachine - Comandos de menú - Ayuda online EIO0000001854 (ING);
EIO0000001855 (FRA);
EIO0000001856 (ALE);
EIO0000001858 (ESP);
EIO0000001857 (ITA);
EIO0000001859 (CHI)
SoMachine Central - Guía del usuario EIO0000001659 (ING);
EIO0000001660 (FRA);
EIO0000001661 (ALE);
EIO0000001663 (ESP);
EIO0000001662 (ITA);
EIO0000001664 (CHI)
SoMachine - Compatibilidad y migración - Guía del usuario EIO0000001684 (ING);
EIO0000001685 (FRA);
EIO0000001686 (ALE);
EIO0000001688 (ESP);
EIO0000001687 (ITA);
EIO0000001689 (CHI)

EIO0000000071 11/2016 19
Título de la documentación Número de referencia
SoMachine Funciones y bibliotecas - Guía del usuario EIO0000000735 (ING);
EIO0000000792 (FRA);
EIO0000000793 (ALE);
EIO0000000795 (ESP);
EIO0000000794 (ITA);
EIO0000000796 (CHI)
Guía del usuario del Asistente del controlador de SoMachine EIO0000001671 (ING);
EIO0000001672 (FRA);
EIO0000001673 (ALE);
EIO0000001675 (ESP);
EIO0000001674 (ITA);
EIO0000001676 (CHI)
Modicon M238 Logic Controller - Guía de programación EIO0000000384 (ING);
EIO0000000385 (FRA);
EIO0000000386 (ALE);
EIO0000000388 (ESP);
EIO0000000387 (ITA);
EIO0000000389 (CHI)
SoMachine - Device Type Manager (DTM) - Guía de programación EIO0000000673 (ING);
EIO0000000674 (FRA);
EIO0000000675 (ALE);
EIO0000000676 (ESP);
EIO0000000677 (ITA);
EIO0000000678 (CHI)
TwidoEmulationSupport - Guía de la biblioteca EIO0000001692 (ING);
EIO0000001693 (FRA);
EIO0000001694 (ALE);
EIO0000001696 (ESP);
EIO0000001695 (ITA);
EIO0000001697 (CHI)
SoMachine - Configuración de variables de red - Guía de la biblioteca EIO0000001151 (ING);
SE_NetVarUdp EIO0000001152 (FRA);
EIO0000001153 (ALE);
EIO0000001155 (ESP);
EIO0000001154 (ITA);
EIO0000001156 (CHI)

Puede descargar estas publicaciones técnicas y otra información técnica de nuestro sitio
webhttp://download.schneider-electric.com

20 EIO0000000071 11/2016
Información relativa al producto

ADVERTENCIA
PÉRDIDA DE CONTROL
 El diseñador del esquema de control debe tener en cuenta las posibles modalidades de fallo
de rutas de control y, para ciertas funciones de control críticas, proporcionar los medios para
lograr un estado seguro durante y después de un fallo de ruta. Funciones de control críticas
son, por ejemplo, una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentación y un reinicio.
 Para las funciones de control críticas deben proporcionarse rutas de control separadas o
redundantes.
 Las rutas de control del sistema pueden incluir enlaces de comunicación. Deben tenerse en
cuenta las implicaciones de retardos de transmisión imprevistos o fallos del enlace.
 Tenga en cuenta todas las reglamentaciones para la prevención de accidentes y las
directrices de seguridad locales.1
 Cada instalación de este equipo debe probarse de forma individual y exhaustiva antes de
entrar en servicio.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

1 Para obtener información adicional, consulte NEMA ICS 1.1 (última edición), "Safety Guidelines
for the Application, Installation, and Maintenance of Solid State Control" (Directrices de seguridad
para la aplicación, la instalación y el mantenimiento del control de estado estático) y NEMA ICS
7.1 (última edición), "Safety Standards for Construction and Guide for Selection, Installation and
Operation of Adjustable-Speed Drive Systems" (Estándares de seguridad para la construcción y
guía para la selección, instalación y utilización de sistemas de unidades de velocidad ajustable) o
su equivalente aplicable a la ubicación específica.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Utilice solo software aprobado por Schneider Electric para este equipo.
 Actualice el programa de aplicación siempre que cambie la configuración de hardware física.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

EIO0000000071 11/2016 21
Terminología derivada de los estándares
Los términos técnicos, símbolos y las descripciones correspondientes del presente manual o que
aparecen en la parte interior o exterior de los propios productos se derivan, por lo general, de los
términos y las definiciones de estándares internacionales.
En el área de los sistemas de seguridad funcional, unidades y automatización general se incluyen,
pero sin limitarse a ellos, términos como seguridad, función de seguridad, estado de seguridad,
fallo, reinicio tras fallo, avería, funcionamiento incorrecto, error, mensaje de error, peligroso, etc.
Estos estándares incluyen, entre otros:

Estándar Descripción
EN 61131-2:2007 Controladores programables, parte 2: Requisitos y ensayos de los equipos.
ISO 13849-1:2008 Seguridad de la maquinaria: partes de seguridad de los sistemas de control.
Principios generales del diseño.
EN 61496-1:2013 Seguridad de la maquinaria: equipo de protección electrosensible.
Parte 1: Requisitos y ensayos generales.
ISO 12100:2010 Seguridad de las máquinas. Principios generales para el diseño. Evaluación del
riesgo y reducción del riesgo
EN 60204-1:2006 Seguridad de las máquinas. Equipo eléctrico de las máquinas. Parte 1:
Requisitos generales
EN 1088:2008 Seguridad de la maquinaria. Dispositivos de bloqueo asociados con
ISO 14119:2013 protecciones: principios de diseño y selección
ISO 13850:2006 Seguridad de la maquinaria. Parada de emergencia: principios de diseño
EN/IEC 62061:2005 Seguridad de la maquinaria. Seguridad funcional de los sistemas de control
programable de seguridad eléctrica y electrónica
IEC 61508-1:2010 Seguridad funcional de sistemas de seguridad programable eléctricos y
electrónicos: requisitos generales.
IEC 61508-2:2010 Seguridad funcional de los sistemas de seguridad electrónicos programables
eléctricos y electrónicos: requisitos de los sistemas de seguridad electrónicos
programables eléctricos y electrónicos.
IEC 61508-3:2010 Seguridad funcional de los sistemas de seguridad electrónicos programables
eléctricos y electrónicos: requisitos de software.
IEC 61784-3:2008 Comunicación digital de datos para la medición y control: buses de campo de
seguridad funcional.
2006/42/EC Directiva de maquinaria
2014/30/EU Directiva de compatibilidad electromagnética
2014/35/EU Directiva de baja tensión

22 EIO0000000071 11/2016
Además, los términos utilizados en este documento se pueden usar de manera tangencial porque
se obtienen de otros estándares como:

Estándar Descripción
Serie IEC 60034 Máquinas eléctricas giratorias
Serie IEC 61800 Accionamientos eléctricos de potencia de velocidad variable
Serie IEC 61158 Comunicación digital de datos para la medición y control - Bus de campo para
su uso en Sistemas de control

Por último, el término zona de funcionamiento se puede utilizar junto con la descripción de peligros
específicos, y se define como tal para una zona de peligro o zona peligrosa en la Directiva de
maquinaria (2006/42/EC) y ISO 12100:2010.
NOTA: Los estándares mencionados anteriormente podrían o no aplicarse a los productos
específicos citados en la presente documentación. Para obtener más información en relación con
los diferentes estándares aplicables a los productos descritos en este documento, consulte las
tablas de características de las referencias de dichos productos.

EIO0000000071 11/2016 23
24 EIO0000000071 11/2016
SoMachine
Introducción
EIO0000000071 11/2016

Parte I
Introducción

Introducción

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
1 Introducción general a SoMachine Logic Builder 27
2 Interfaz de usuario de SoMachine Logic Builder 31
3 Conceptos básicos 55

EIO0000000071 11/2016 25
Introducción

26 EIO0000000071 11/2016
SoMachine
Introducción general a SoMachine Logic Builder
EIO0000000071 11/2016

Capítulo 1
Introducción general a SoMachine Logic Builder

Introducción general a SoMachine Logic Builder

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
¿Qué es SoMachine Logic Builder? 28
Tareas que realiza SoMachine Logic Builder 29

EIO0000000071 11/2016 27
Introducción general a SoMachine Logic Builder

¿Qué es SoMachine Logic Builder?

Descripción general
Logic Builder proporciona el entorno de configuración y programación para los proyectos de
SoMachine que cree con SoMachine Central.
Muestra los diferentes elementos de un proyecto en vistas separadas que se pueden organizar en
la interfaz de usuario de SoMachine y en el escritorio, en función de las necesidades individuales.
Esta estructura de vistas permite añadir elementos de hardware y software al proyecto mediante
el método de arrastrar y soltar. Los principales cuadros de diálogo de configuración que permiten
crear contenido para el proyecto se proporcionan en el centro de la pantalla de Logic Builder.
Además de una sencilla configuración y programación, Logic Builder también proporciona
potentes funciones de diagnóstico y mantenimiento.

28 EIO0000000071 11/2016
Introducción general a SoMachine Logic Builder

Tareas que realiza SoMachine Logic Builder

Configuración y programación de proyectos


Logic Builder permite programar la lógica y añadir dispositivos a los proyectos de SoMachine que
cree con SoMachine Central.
Para ayudarle a realizar estas tareas, ofrece las funciones siguientes:
 Las vistas independientes del catálogo de hardware Controlador, HMI & iPC, Field Devices &
Modules y Varios permiten añadir dispositivos de hardware al proyecto sólo con arrastrar y
soltar. También le permite utilizar plantillas de dispositivos y de funciones.
 Las vistas independientes del catálogo de software para Variables, Activos, Macros,
Herramientas, Bibliotecas permiten añadir diferentes tipos de elementos de software sólo con
arrastrar y soltar. La vista Activos, por ejemplo, permite crear y gestionar bloques de funciones
y POU.
Para visualizar sólo las vistas relevantes para la tarea que se está llevando a cabo, SoMachine
ofrece perspectivas (véase página 50) individuales para la configuración de hardware y de
software y la modalidad online. Podrá adaptar esas perspectivas predeterminadas a sus
necesidades específicas y también podrá crear sus propias perspectivas con las vistas que utiliza
con más frecuencia.

Compilación de proyectos
Logic Builder ofrece diferentes métodos (como Compilar, Generar todo o Limpiar todo) para
compilar un proyecto de SoMachine.

Comunicación con el controlador


Logic Builder ofrece funciones de exploración para detectar los controladores disponibles en la red
Ethernet. Admite diferentes protocolos para la comunicación con el controlador.
Una vez establecida la comunicación, las aplicaciones podrán descargarse o cargarse desde el
controlador. Las aplicaciones pueden iniciarse y detenerse en el controlador.

Características y supervisión online


Las características de Logic Builder de supervisión online permiten realizar las tareas siguientes:
 Supervisar online los valores del código del programa y de las vistas Supervisar
 Realizar cambios online
 Configurar trazas online
 Supervisar trazas online
 Interactuar con la máquina mediante visualizaciones integradas en modalidad online para
realizar diagnósticos y pruebas
 Leer el estado de controladores y dispositivos
 Detectar errores potenciales de lógica de programación mediante la función de depuración

EIO0000000071 11/2016 29
Introducción general a SoMachine Logic Builder

30 EIO0000000071 11/2016
SoMachine
Interfaz de usuario de SoMachine Logic Builder
EIO0000000071 11/2016

Capítulo 2
Interfaz de usuario de SoMachine Logic Builder

Interfaz de usuario de SoMachine Logic Builder

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Elementos de la pantalla de SoMachine Logic Builder 32
Navegadores de varias fichas 38
La vista de varias fichas Catálogo 45
Personalización de la interfaz de usuario 47
Interfaz de usuario en modalidad online 52
Menús y comandos 54

EIO0000000071 11/2016 31
Interfaz de usuario de SoMachine Logic Builder

Elementos de la pantalla de SoMachine Logic Builder

Descripción general
Logic Builder consta de los siguientes elementos:
 Menús y barras herramientas
 vistas del Navegador
 vistas del Catálogo
 Panel del editor principal

Cuando abre Logic Builder, se ofrece un diseño de pantalla predeterminado. En este documento
se describen las posiciones predeterminadas.
Puede adaptar los elementos en función de los requisitos individuales según se describen en el
capítulo Personalización de la interfaz de usuario (véase página 47). Puede ver y modificar la
configuración actual en el cuadro de diálogo Personalizar. Está disponible de forma predeter-
minada en el menú Herramientas.
También puede organizar las vistas y las ventanas en cualquier momento desplazándolas,
acoplando/desacoplando las vistas, cambiando el tamaño de las ventanas o bien cerrándolas. Las
posiciones se guardan con el proyecto. Cuando vuelve a abrir un proyecto, los elementos están
colocados en las posiciones en las que se dejaron cuando se guardó el proyecto. Las posiciones
de las vistas se guardan por separado en perspectivas (véase página 50).

32 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Pantalla de Logic Builder predeterminada


Posiciones predeterminadas de menús, barras y vistas en la pantalla de Logic Builder

1 Barra de menús
2 Barra de herramientas
3 Navegadores de varias fichas: árboles de Dispositivos, Herramientas, Aplicaciones
4 Vista Mensajes
5 Barra de estado e información
6 Vista de catálogo de varias fichas: catálogo de hardware: Controlador, HMI & iPC, Devices & Modules,
Varios; catálogo de software: Variables, Activos, Macros, Herramientas, Bibliotecas
7 Vista del editor de varias fichas

EIO0000000071 11/2016 33
Interfaz de usuario de SoMachine Logic Builder

Componentes estándar
En la pantalla de Logic Builder se incluyen los siguientes componentes que están visibles de forma
predeterminada:

Componente Descripción
Barra de menús Proporciona menús en los que se incluyen los comandos disponibles según se definen en el
cuadro de diálogo Herramientas → Personalizar.
Barra de herramientas Incluye botones para ejecutar las herramientas disponibles según se definen en el cuadro de
diálogo Herramientas → Personalizar.
Navegadores de Los siguientes navegadores están disponibles como fichas donde los distintos objetos de un
varias fichas proyecto están organizados en forma de estructura de árbol:
 Árbol Dispositivos
 Árbol Aplicaciones
 Árbol Herramientas

Para obtener más información, consulte el capítulo Navegadores de varias fichas


(véase página 38).
Vista Mensajes Proporciona mensajes en las operaciones de precompilación, compilación y descarga. Para
obtener más información, consulte la descripción de los comandos de la vista
(véase SoMachine, Comandos de menú, Ayuda en línea) Mensajes.
Barra de estado e Proporciona la información siguiente:
información  Información sobre el usuario actual.
 Información sobre la modalidad de edición y la posición actual si hay un editor abierto.

Para obtener más información, consulte la sección Barra de estado e información en este
capítulo.
Vista Catálogo de La vista Catálogo consta de diferentes fichas en las que se enumeran los objetos de hardware
varias fichas y software disponibles:
 Catálogo de hardware
 Controlador
 HMI & iPC
 Devices & Modules
 Varios

 Catálogo de software
 Variables
 Activos
 Macros
 Herramientas
 Bibliotecas

Para obtener más información, consulte el capítulo Vistas de catálogo de varias fichas
(véase página 45).

34 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Componente Descripción
Ventana del editor de Se usa para crear el objeto específico en el editor respectivo.
varias fichas En el caso de los editores de lenguaje (por ejemplo, el editor ST o el editor CFC),
normalmente la ventana combina el editor de lenguaje en la parte inferior y el editor de
declaraciones en la parte superior.
En el caso de otros editores, puede proporcionar cuadros de diálogo (como por ejemplo el
editor de tarea o el editor de dispositivos). El nombre de la POU o el objeto de recurso se
muestran en la barra de título de esta vista. Puede abrir los objetos en la ventana del editor
en modalidad offline u online ejecutando el comando Modificar objeto.

Barra de estado e información


La barra situada en el borde inferior de la pantalla de Logic Builderofrece 3 tipos de información:
 Información sobre el usuario conectado.
 Si está trabajando en una ventana del editor: la posición del cursor y el estado de la modalidad
de edición.
 En modalidad online: el estado actual del programa.

Información sobre el usuario conectado


En cada proyecto se incluye una gestión de usuarios y accesos (véase página 132). El nombre del
usuario conectado actualmente se muestra en la barra de estado.
Posiciones de cursor en las ventanas del editor
La posición del cursor se cuenta desde el margen izquierdo o superior de la ventana del editor.

Abreviatura Descripción
Ln Línea en la que está situado el cursor.
Col Columna en la que está situado el cursor.
(Una columna incluye exactamente 1 espacio, carácter o dígito).
Ch Número de caracteres.
(En este contexto, un carácter puede ser un solo carácter o dígito, o bien una
tabla que incluya, por ejemplo, 4 columnas).

Haga doble clic en uno de los campos para abrir el cuadro de diálogo Ir a la línea. Aquí puede
introducir una posición distinta en la que se sitúa el cursor.
El estado de la modalidad de edición se indica con las abreviaturas siguientes:

Abreviatura Descripción
INS Modalidad de inserción
OVR Modalidad de sobrescritura

Haga doble clic en este campo para cambiar el ajuste.

EIO0000000071 11/2016 35
Interfaz de usuario de SoMachine Logic Builder

Se indica el siguiente estado del programa:

Texto Descripción
Programa cargado Programa cargado en el dispositivo.
Programa inalterado El programa en el dispositivo coincide con el del sistema de programación.
Programa modificado El programa en el dispositivo es distinto al del sistema de programación; se necesita
(modificación en línea) cambio en línea.
Programa modificado El programa en el dispositivo es distinto al del sistema de programación; se necesita
(descarga completa) descarga completa.

Información de la modalidad online


Estado de la aplicación en el dispositivo:

Texto Color de fondo Descripción


RUN Verde Programa en ejecución.
STOP Rojo Programa detenido.
PARAR EN PI Rojo Programa detenido en un punto de interrupción.
El siguiente campo de estado sólo está disponible si el controlador, en función de un ajuste en la descripción del
dispositivo, admite una supervisión que es independiente del ciclo.
EN EL CICLO Blanco Indica que los valores de las expresiones supervisadas se leen en
un ciclo.
FUERA DEL CICLO Rojo Indica que la recuperación de los valores de las variables
supervisadas no se puede realizar en un ciclo.

Ventanas de supervisión y vistas online de editores


En las ventanas de supervisión y en las vistas online de editor se muestra una vista de supervisión
de una POU o una lista definida por el usuario de expresiones de supervisión.

Ventanas, vistas y ventanas de editor


Hay 2 tipos de ventanas distintas en Logic Builder:
 Algunas se pueden acoplar a cualquier margen de la ventana de SoMachine o se pueden situar
en la pantalla como ventanas desacopladas separadas de la ventana de SoMachine.
Asimismo, se pueden ocultar representándolas como una ficha en el marco de ventana de
SoMachine (consulte el capítulo Personalización de la interfaz de usuario (véase página 47)).
Estas ventanas muestran información que no depende de un único objeto del proyecto (por
ejemplo la vista Mensajes o el árbol Dispositivos). Puede acceder a ellas en el menú
(véase SoMachine, Comandos de menú, Ayuda en línea) Ver. En la mayoría de las vistas se
incluye una barra de herramientas no configurable con botones para ordenar, ver y buscar en
la ventana.
 Otras ventanas se abren cuando ve o edita un objeto de proyecto específico en el editor
respectivo. Se muestran en la ventana del editor de varias fichas. No puede ocultarlas ni
desacoplarlas de la ventana de SoMachine. Puede acceder a ellas en el menú Ventana.

36 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Cambio de ventanas
SoMachine permite cambiar entre vistas y editores abiertos. Para cambiar entre vistas y editores
abiertos, pulse las teclas CTRL y TAB simultáneamente. Se abre una vista en las que se
enumeran las vistas y los editores que están abiertos. Si se mantiene pulsada la tecla CTRL, la
ventana permanece abierta. Utilice la tecla TAB o las teclas de FLECHA simultáneamente para
seleccionar una vista o un editor específicos.

EIO0000000071 11/2016 37
Interfaz de usuario de SoMachine Logic Builder

Navegadores de varias fichas

Descripción general
Los navegadores de varias fichas son componentes estándar de la pantalla de Logic Builder.
De forma predeterminada, están disponibles los navegadores siguientes:
 Árbol Dispositivos: Le permite gestionar los dispositivos en los que se debe ejecutar la
aplicación.
 Árbol Aplicaciones: Le permite gestionar POU específicas del proyecto y globales, además de
tareas en una única vista.
 Árbol Herramientas: Le permite gestionar bibliotecas específicas del proyecto y globales, así
como otros elementos, en una única vista.
Puede acceder a las vistas mediante el menú Ver.

Adición de elementos a los navegadores


El nodo raíz de un navegador representa un dispositivo programable. Puede insertar otros
elementos debajo de este nodo raíz.
Para añadir elementos a un nodo de un navegador, seleccione un dispositivo u objeto en el
catálogo de hardware o software de la parte derecha de la pantalla de Logic Builder y arrástrelo al
navegador (por ejemplo, árbol Dispositivos). El nodo o los nodos con los que se corresponda el
dispositivo u objeto seleccionado se expandirán automáticamente y se mostrarán en negrita. Los
demás nodos en los que no pueda insertarse el dispositivo o el objeto se mostrarán en gris. Suelte
el dispositivo u objeto en el nodo adecuado y se insertará automáticamente. Si se requieren
elementos adicionales para el dispositivo o el objeto, como administradores de comunicación, se
insertarán automáticamente.
Como alternativa, puede seleccionar un nodo del árbol. Es posible añadir un objeto al dispositivo
u objeto seleccionado: se muestra un signo más de color verde. Haga clic en ese signo más para
abrir un menú que proporciona los elementos disponibles para la inserción.
También es posible añadir un objeto o un dispositivo haciendo clic con el botón derecho en un
nodo de un navegador y ejecutando el comando Agregar objeto o Agregar dispositivo. El tipo de
dispositivo que puede insertarse depende del objeto seleccionado actualmente en el navegador.
Por ejemplo, los módulos para un esclavo PROFIBUS DP no pueden insertarse sin haber
insertado antes un dispositivo esclavo adecuado. Tenga en cuenta que sólo estarán disponibles
para la inserción los dispositivos instalados correctamente en el sistema local y que coincidan con
la posición actual en el árbol.

Recolocación de objetos
Para recolocar objetos, utilice los comandos estándar del portapapeles (Cortar, Copiar, Pegar,
Eliminar) del menú Editar. Como alternativa, puede arrastrar el objeto seleccionado pulsando el
botón del ratón (más la tecla CTRL para copiarlo). Cuando añade dispositivos utilizando la función
de copiar y pegar, el nuevo dispositivo recibe el mismo nombre seguido de un número correlativo.

38 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Actualización de la versión de un dispositivo


Un dispositivo que ya se ha insertado en los navegadores puede actualizarse a otra versión o
convertirse en otro dispositivo.
Consulte la descripción de los diferentes comandos:
 Comando Actualizar dispositivo (véase página 74)
 Comando Convertir dispositivo (véase página 76)

Descripción del árbol Dispositivos


Cada objeto de dispositivo del árbol Dispositivos representa un objeto de hardware (de destino)
específico.
Ejemplos: controlador, nodo de bus de campo, acoplador de bus, accionamiento, módulo de E/S
Los dispositivos y subdispositivos se gestionan en el árbol Dispositivos. Los demás objetos
necesarios para ejecutar una aplicación en un controlador se agrupan en los otros navegadores.

 El nodo raíz del árbol es una entrada de nodo simbólica: <nombre de proyecto>
 La configuración del controlador se define mediante la organización topológica de los
dispositivos en el árbol Dispositivos. La configuración de los parámetros del dispositivo o tarea
concretos se realiza en los diálogos del editor correspondiente. Consulte también el capítulo
Configuración de tareas (véase página 236).
De este modo, la estructura de hardware se asignará y representará en el árbol Dispositivos
mediante la correspondiente organización de los objetos de dispositivo, lo que le permite
configurar un sistema complejo y heterogéneo de controladores conectados y buses de campo
subyacentes.
 Para añadir a su proyecto dispositivos configurados con gestores de tipos de dispositivo (DTM),
seleccione la casilla Utilizar conexión de DTM en la parte inferior del árbol Dispositivos. Esto
tendrá como efecto la adición del nodo FdtConnections debajo del nodo raíz del árbol. Debajo
del nodo FdtConnections se insertará automáticamente un nodo de administrador de
comunicación. Puede añadir el dispositivo DTM apropiado a este nodo. Para obtener más
información, consulte la publicación SoMachine - Device Type Manager (DTM) - Guía del
usuario (véase SoMachine, Device Type Manager (DTM), Guía del usuario).
 Tenga en cuenta las recomendaciones para la adición de elementos a los navegadores de este
capítulo.

EIO0000000071 11/2016 39
Interfaz de usuario de SoMachine Logic Builder

Ejemplo de árbol Dispositivos:

1 Nodo raíz
2 Dispositivo programable (con aplicaciones)
3 Nombre de dispositivo simbólico
4 Nombre de dispositivo definido en el archivo de descripción de dispositivo

 Cada entrada del árbol Dispositivos muestra el símbolo, el nombre simbólico (editable) y el tipo
de dispositivo (el nombre del dispositivo según se especifica en la descripción del dispositivo).
 Un dispositivo es programable o configurable. El tipo de dispositivo determina la posible
posición en el árbol y también los recursos adicionales que pueden insertarse debajo del
dispositivo.
 En un proyecto, puede configurar uno o varios dispositivos programables, con independencia
del fabricante o el tipo (multirecurso, multidispositivo, conexión en red).
 Configure la comunicación, los parámetros y la asignación de E/S de un dispositivo en el
diálogo de dispositivo (editor de dispositivos). Para abrir el editor de dispositivos, haga doble
clic en el nodo de dispositivo del árbol Dispositivos (consulte la descripción del editor de
dispositivos (véase página 101)).
 En modalidad online, el estado de un dispositivo se indica mediante un icono delante de la
entrada del dispositivo:
 El controlador está conectado; la aplicación se está ejecutando; el dispositivo está
operativo; se intercambian datos. La opción Actualizar E/S en parada de la vista Ajustes PLC
del editor de dispositivos (véase página 130) puede activarse o desactivarse.

 El controlador está conectado y detenido (STOP). La opción Actualizar E/S en parada


de la vista Ajustes PLC del editor de dispositivos (véase página 130) está desactivada.

40 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

 El controlador está conectado; la aplicación activa está en ejecución; hay disponible


información de diagnóstico.
 El dispositivo no intercambia datos; no se ha configurado, está en modo de simulación
o se ha detectado un error de bus (consulte la descripción del comando Simulación).
 El dispositivo se ejecuta en modo de demostración durante 30 minutos. Después de este
tiempo finaliza el modo de demostración y el bus de campo deja de intercambiar datos.

 El dispositivo está configurado pero no está completamente operativo. No se


intercambian datos. Por ejemplo, los dispositivos CANopen están iniciándose y en estado
preoperativo.
 Modo de redundancia activo: El maestro de bus de campo no envía datos actualmente
debido a que hay otro maestro en modo activo.
 No se ha encontrado la descripción del dispositivo en el repositorio de dispositivos. Para
obtener más información sobre la instalación y desinstalación de dispositivos en el cuadro
de diálogo Repositorio de dispositivos, consulte la descripción del repositorio de dispositivos
(véase SoMachine, Comandos de menú, Ayuda en línea).
 Los nombres de todos los dispositivos y aplicaciones conectados actualmente se muestran
sombreados en verde.
 Los nombres de los dispositivos que se ejecutan en modo de simulación (consulte la
descripción del comando Simulación) se muestran en cursiva.
 Se proporciona información adicional de diagnóstico en la vista Estado del editor de
dispositivos (véase página 144).
También puede ejecutar la aplicación activa en un dispositivo de simulación que esté disponible
automáticamente de forma predeterminada en el sistema de programación. Por tanto, no es
necesario ningún dispositivo de destino real para probar el comportamiento online de una
aplicación (al menos, que no dependa de recursos de hardware para la ejecución). Al pasar al
modo de simulación (véase SoMachine, Comandos de menú, Ayuda en línea), la entrada del árbol
Dispositivos se muestra en cursiva y puede iniciar sesión en la aplicación.
También puede conectarse al controlador en modo de configuración en línea (consulte el capítulo
Modo de configuración en línea (véase SoMachine, Comandos de menú, Ayuda en línea)) sin
tener que cargar primero una aplicación real en el controlador. Esto resulta muy útil para la puesta
en marcha inicial de un sistema de E/S porque puede acceder a las E/S y probarlas en la
configuración del controlador antes de compilar y cargar un programa de aplicación real.
Para obtener información sobre la conversión de referencias de dispositivo al abrir proyectos,
consulte la publicación SoMachine - Compatibilidad y migración - Guía del usuario.

EIO0000000071 11/2016 41
Interfaz de usuario de SoMachine Logic Builder

Organización y configuración de objetos en el árbol Dispositivos


Adición de dispositivos/objetos:
Para añadir dispositivos u objetos al árbol Dispositivos, simplemente seleccione un dispositivo u
objeto en el catálogo de hardware, en la parte derecha de la pantalla de Logic Builder, y arrástrelo
al árbol Dispositivos. El nodo o los nodos con los que se corresponda el dispositivo u objeto
seleccionado se expandirán y se mostrarán en negrita. Los demás nodos en los que no pueda
insertarse el dispositivo o el objeto se mostrarán en gris. Suelte el dispositivo u objeto en el nodo
adecuado y se insertará automáticamente.
Como alternativa, puede seleccionar un nodo del árbol. Es posible añadir un objeto al dispositivo
u objeto seleccionado: se muestra un signo más de color verde. Haga clic en el signo más para
abrir un menú que proporciona los elementos disponibles para la inserción.
Como alternativa, puede añadir un objeto o un dispositivo haciendo clic con el botón derecho en
un nodo del árbol Dispositivos y ejecutando el comando Agregar objeto o Agregar dispositivo. El
tipo de dispositivo que puede insertarse depende del objeto seleccionado actualmente en el árbol
Dispositivos. Por ejemplo, los módulos para un esclavo PROFIBUS DP no pueden insertarse sin
haber insertado antes un dispositivo esclavo adecuado. No pueden insertarse aplicaciones debajo
de dispositivos no programables.
Tenga en cuenta que sólo estarán disponibles para la inserción los dispositivos instalados
correctamente en el sistema local y que coincidan con la posición actual en el árbol.
Recolocación de objetos:
Para recolocar objetos, utilice los comandos estándar del portapapeles (Cortar, Copiar, Pegar,
Eliminar) del menú Editar. Como alternativa, puede arrastrar el objeto seleccionado pulsando el
botón del ratón (más la tecla CTRL para copiarlo). Observación para el comando Pegar: En caso
de que el objeto que se pegará pueda insertarse debajo o encima de la entrada seleccionada
actualmente, se abrirá el cuadro de diálogo Seleccionar la posición de inserción. Le permitirá
definir la posición de inserción. Cuando añade dispositivos utilizando la función de copiar y pegar,
el nuevo dispositivo recibe el mismo nombre seguido de un número correlativo.
Actualización de la versión de un dispositivo:
Un dispositivo que ya se ha insertado en el árbol Dispositivos puede sustituirse por otra versión
del mismo tipo de dispositivo o por un dispositivo de otro tipo (actualización de dispositivo). Al
hacerlo, se conservará un árbol de configuración con sangría debajo del dispositivo respectivo el
mayor tiempo posible.
Adición de dispositivos al nodo raíz:
Sólo pueden colocarse dispositivos en el nivel directamente inferior al nodo raíz <nombre de
proyecto>. Si elige otro tipo de objeto en el cuadro de diálogo Agregar objeto, como el objeto Lista
de texto, se añade al nodo Global del árbol Aplicaciones.

42 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Subnodos:
Un dispositivo se inserta como un nodo en el árbol. Si se define en el archivo de descripción de
dispositivo, los subnodos se insertan automáticamente. Un subnodo puede ser de nuevo un
dispositivo programable.
Inserción de dispositivos debajo de un objeto de dispositivo:
Puede insertar otros dispositivos debajo de un objeto de dispositivo. Si se instalan en el sistema
local, estarán disponibles en el catálogo de hardware o en el cuadro de diálogo Agregar objeto o
Agregar dispositivo. Los objetos de dispositivo se clasifican en el árbol de arriba abajo. En un
determinado nivel del árbol, primero se organizan los dispositivos programables, seguidos de los
demás dispositivos, ordenados alfabéticamente.

Descripción del árbol Aplicaciones


Los objetos, la configuración de tareas y los objetos de tareas de la aplicación se gestionan en el
árbol Aplicaciones.
Los objetos necesarios para programar el dispositivo (aplicaciones, listas de texto, etc.) se
gestionan en el árbol Aplicaciones. Los dispositivos que no son programables (sólo configuración)
no pueden asignarse como objetos de programación. Puede editar los valores de los parámetros
del dispositivo en el diálogo de parámetros del editor de dispositivos.
Los objetos de programación, como determinadas POU o listas de variables globales, pueden
gestionarse de dos maneras en el árbol Aplicaciones en función de su declaración:
 Cuando se declaran como subnodo del nodo Global, todos los dispositivos pueden acceder a
estos objetos.
 Cuando se declaran como subnodo del nodo Aplicaciones, sólo los dispositivos correspon-
dientes, declarados en el nodo Aplicaciones, pueden acceder a estos objetos.
Un objeto de Aplicación sólo puede insertarse en el árbol Aplicaciones.
Debajo de cada aplicación, puede insertar objetos de programación adicionales, como DUT, GVL
u objetos de visualización. Inserte una configuración de tareas debajo de una aplicación. En esta
configuración de tareas, deben definirse las llamadas de programa respectivas (instancias de
POU del nodo Global del árbol Aplicaciones o POU específicas de dispositivo). Tenga en cuenta
que la aplicación se define en la vista Asignación E/S del editor de dispositivos respectivo
(véase página 146).

EIO0000000071 11/2016 43
Interfaz de usuario de SoMachine Logic Builder

Descripción del árbol Herramientas


Las bibliotecas se gestionan en el árbol Herramientas. No pueden asignarse dispositivos
configurables puros como objetos de programación. Puede editar los valores de los parámetros
del dispositivo en el diálogo de parámetros del editor de dispositivos.
Los objetos de programación, como el Administrador de bibliotecas, pueden gestionarse de dos
formas diferentes en el árbol Herramientas, en función de su declaración:
 Cuando se declaran como subnodo del nodo Global, todos los dispositivos pueden acceder a
estos objetos.
 Cuando se declaran como subnodo del nodo Aplicaciones, sólo los dispositivos correspon-
dientes, declarados en el nodo Aplicaciones, pueden acceder a estos objetos.

44 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

La vista de varias fichas Catálogo

Descripción general
La vista de varias fichas Catálogo de hardware es un componente estándar de la pantalla de Logic
Builder.
Contiene las fichas siguientes:
 Controlador: Contiene los controladores Logic, HMI, Drive y Motion que pueden insertarse en
el proyecto de SoMachine.
 Devices & Modules: Contiene los módulos de E/S y los dispositivos de comunicación, control
de motores, seguridad y gestión de energía que pueden insertarse en su proyecto de
SoMachine. También permite insertar dispositivos mediante una plantilla de dispositivos.
 HMI & iPC: Contiene los dispositivos HMI e iPC que pueden insertarse en su proyecto de
SoMachine.
 Varios: Contiene dispositivos de terceros que pueden insertarse en su proyecto de SoMachine.

El contenido de las diferentes fichas depende del proyecto. Si los controladores integrados en el
proyecto de SoMachine no admiten, por ejemplo, CANopen, los dispositivos CANopen no se
mostrarán en los catálogos.
Puede ampliar esta vista mediante las fichas de Catálogo de software (Variables, Activos, Macros,
Herramientas, Bibliotecas) a través del menú Visualizar → Catálogo de software.

Los botones Catálogo de hardware y Catálogo de software de la barra de herramientas


le permiten mostrar u ocultar las vistas de catálogo.
Puede añadir los elementos de los catálogos al proyecto simplemente arrastrándolos y
soltándolos, como se describe en el capítulo Adición de dispositivos mediante el método de
arrastrar y soltar (véase página 62).

Búsqueda en catálogos
Cada ficha de la lista de catálogo contiene un cuadro de búsqueda. Se busca en las sublistas de
la ficha la cadena que especifica en el cuadro de búsqueda. En las sublistas abiertas, las entradas
encontradas se muestran en amarillo. Cualquier otro elemento de la lista que no corresponda a la
cadena de búsqueda quedará oculto. El número de elementos encontrados en sublistas cerradas
se muestra en negrita en la barra de título de cada sublista.
De forma predeterminada, la búsqueda se ejecuta en los nombres de los elementos de las listas.
No obstante, SoMachine también da soporte al mecanismo de etiquetado. Esto le permite asignar
cadenas de búsqueda de su elección a cualquier elemento incluido en la vista Catálogo.

EIO0000000071 11/2016 45
Interfaz de usuario de SoMachine Logic Builder

Lista Favoritos
Cada ficha de la lista de catálogo contiene una lista Favoritos. Para proporcionar un acceso rápido,
puede añadir elementos utilizados con frecuencia a esta lista Favoritos mediante el método de
arrastrar y soltar.

Adición de dispositivos a partir de plantillas de dispositivos en la ficha Devices & Modules


La ficha Devices & Modules contiene la opción Plantilla de dispositivos en la parte inferior. Active
esta opción para mostrar las plantillas disponibles de dispositivos de campo en las listas de la ficha
Devices & Modules. Añádalas al árbol Dispositivos como se describe en el capítulo Adición de
dispositivos a partir de plantillas (véase página 780).

46 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Personalización de la interfaz de usuario

Descripción general
El aspecto de la interfaz de usuario, en cuanto a organización y configuración de los componentes
específicos, depende de lo siguiente:
 Preajustes estándar para menús, funciones de teclado y barras de herramientas. Puede
sobrescribir la configuración predeterminada de SoMachine en el cuadro de diálogo
(véase SoMachine, Comandos de menú, Ayuda en línea) Personalizar (disponible de forma
predeterminada en el menú Herramientas). La configuración actual se guarda en el sistema
local. Hay una función de restablecimiento para restaurar los valores predeterminados en
cualquier momento.
 Las propiedades de un editor según se definen en el cuadro de diálogo (véase SoMachine,
Comandos de menú, Ayuda en línea) Herramientas → Opciones respectivo. También puede
sobrescribir esta configuración. La configuración actual se guarda en el sistema local.
 La forma en la que organiza las vistas o las ventanas del editor en el proyecto. Las posiciones
actuales se guardan con el proyecto (consulte más abajo).
 La perspectiva seleccionada. De forma predeterminada, la Configuración lógica está
seleccionada. Para obtener más información, consulte el párrafo Perspectivas de este capítulo
(véase página 50).

Organización de barras de menús y barras de herramientas


La barra de menús se sitúa en la parte superior de la interfaz de usuario, entre la barra del título
de ventana y las ventanas de vista. Puede situar una barra de herramientas en la misma área
como una barra de menú (fija) o como una ventana independiente en cualquier lugar de la
pantalla.
En las ventanas de vista, como por ejemplo el árbol Dispositivos, hay disponible una barra de
herramientas especial. Proporciona elementos para ordenar, ver y buscar en la ventana. No puede
configurar esta barra de herramientas.

Organización de ventanas y vistas


Al cerrar una vista o una ventana del editor: haga clic en el botón de cruz situado en la esquina
superior derecha.
Apertura de una vista cerrada: de forma predeterminada puede volver abrir las vistas de
componentes estándar en el menú Ver. Para abrir una ventana del editor, ejecute el comando
Proyecto → Editar objeto o haga doble clic en la entrada respectiva del árbol Dispositivos,
Aplicaciones o Herramientas.
Cambio del tamaño de una vista o ventana en la ventana de marco: mueva las líneas de separador
entre las vistas vecinas. Puede cambiar el tamaño de las ventanas de vistas independientes en el
escritorio moviendo los bordes de la ventana.

EIO0000000071 11/2016 47
Interfaz de usuario de SoMachine Logic Builder

Desplazamiento de una vista a otra posición del escritorio o dentro de la ventana de marco: haga
clic en la barra de título o bien, en el caso de las vistas con fichas, en la ficha de la vista, y mueva
la vista al lugar que desee. El símbolo de flecha se visualizará con cada posición de destino
posible. Mantenga el ratón pulsado y elija la posición deseada moviendo el cursor en el símbolo
de flecha respectivo. La posición de destino se indica mediante un área sombreada de color azul.
Símbolos de flecha que indican una posición nueva

Símbolo de flecha Descripción


La vista se sitúa encima.

La vista se sitúa debajo.

La vista se sitúa a la derecha.

La vista se sitúa a la izquierda.

La vista se sitúa aquí: la vista situada actualmente en esta posición y la vista


nueva se organizan como iconos.

48 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Ejemplo de navegación con los símbolos de flecha

Cuando suelta el botón del ratón, la vista se sitúa en la nueva posición.


Las vistas con un botón Ocultar se pueden situar como ventanas independientes (flotantes) en
cualquier lugar de la pantalla; para ello, muévalas sin arrastrarlas en uno de los símbolos de
flecha. En este caso, la vista pierde el botón Ocultar. Como alternativa, ejecute los comandos
Acoplar y Flotante desde el menú Ventana.
Ocultación de vista: puede ocultar vistas con los botones Ocultar en el borde de la ventana de
SoMachine. Haga clic en el botón Ocultar hacia abajo situado en la esquina superior derecha de
la vista. La vista se mostrará en forma de ficha en el borde más cercano de la ventana de marco.
El contenido de la vista sólo es visible siempre y cuando el cursor se mueva en esta ficha. La ficha
muestra el icono y el nombre de la vista. Este estado de la vista se indica con el botón de
acoplamiento cambiado a Ocultar hacia la izquierda.
Visualización de vistas ocultas: para mostrar una vista oculta, haga clic en el botón Ocultar hacia
la izquierda.
El comando Ocultar, que está disponible de forma predeterminada en el menú Ventana,
proporciona una manera alternativa de ocultar una vista y volverla a mostrar.
No se puede volver a colocar la barra de estado e información en el borde inferior de la interfaz de
usuario (véase página 33).

EIO0000000071 11/2016 49
Interfaz de usuario de SoMachine Logic Builder

Perspectivas
Las perspectivas se utilizan para guardar el diseño de las vistas de SoMachine. Guarda si las
vistas Mensajes y Supervisar están abiertas y en qué posición se sitúan las ventanas de vista
(acopladas o independientes).
De forma predeterminada, SoMachine proporciona 4 perspectivas para los siguientes casos de
uso en el menú Ventana → Cambiar perspectiva o en la tabla de perspectiva de la barra de
herramientas.

Nombre de Caso de uso Navegadores (en el Vistas de catálogo (en Vistas en la parte
perspectiva lado izquierdo) el lado derecho) inferior de la pantalla
Configuración del Para  Árbol Dispositivos Catálogo de hardware Mensajes (en
dispositivo añadir/configurar  Árbol Aplicaciones  Controlador modalidad Ocultar)
dispositivos.  Árbol Herramientas  Devices & Modules
 HMI & iPC
 Varios

Configuración lógica Para añadir/crear  Árbol Dispositivos Catálogo de software Mensajes (en
lógica.  Árbol Aplicaciones  Variables modalidad Ocultar)
 Árbol Herramientas  Activos
 Macros
 Herramientas
 Bibliotecas

CODESYS Classic Vistas estándar de  Dispositivos Catálogo de hardware Mensajes (en


CoDeSys  POU  Controlador modalidad Ocultar)
 Devices & Modules
 HMI & iPC
 Varios

En línea Para modalidad  Árbol Dispositivos Catálogo de hardware  Mensajes (en


online.  Árbol Aplicaciones  Controlador modalidad Ocultar)
 Árbol Herramientas  Devices & Modules  Supervisar 1
 HMI & iPC
 Varios

La perspectiva En línea se selecciona de forma automática cuando la aplicación cambia a


modalidad online.
Creación de perspectiva propia:
Además de estas perspectivas estándar, puede crear su propio diseño de vista y guardarlo en
perspectivas distintas en función de sus requisitos individuales.

50 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

Para crear su propia perspectiva, haga lo siguiente:

Paso Acción
1 Cambie el tamaño de las vistas, ábralas o ciérrelas en función de sus necesidades individuales.
2 Ejecute el comando Guarda la disposición de la vista actual como perspectiva en el menú
Ventana para guardar las modificaciones en una perspectiva nueva.
3 En el cuadro de diálogo Guarda la disposición de la vista actual como perspectiva, introduzca
un Nombre para la perspectiva.
Resultado: Se guarda el diseño de la vista actual. La perspectiva nueva está disponible en el
menú Ventana → Cambiar perspectiva y en la tabla de perspectiva de la barra de herramientas.

Restablecimiento de una perspectiva a su estado inicial:


Para restablecer una perspectiva modificada a su estado inicial, ejecute el comando Restablecer
perspectiva actual en el menú Ventana.
Importación/exportación de perspectivas:
Para poder intercambiar perspectivas entre instalaciones de SoMachine diferentes o entre
diferentes usuarios, el cuadro de diálogo (véase SoMachine, Comandos de menú, Ayuda en línea)
Herramientas → Opciones → Perspectivas le permite exportar perspectivas a un archivo XML e
importar los archivos XML de perspectiva ya disponibles.

Zoom

Cada ventana del editor proporciona una función de zoom. Haga clic en el botón de zoom en
la esquina inferior derecha para abrir una lista. Permite elegir uno de los niveles de porcentaje de
zoom (25, 50, 100, 150, 200 y 400) o introducir el factor de zoom que prefiera. Una impresión
siempre hace referencia a una vista del 100%.
La interfaz de usuario se puede personalizar en modalidad offline y online.

EIO0000000071 11/2016 51
Interfaz de usuario de SoMachine Logic Builder

Interfaz de usuario en modalidad online

Descripción general
En cuanto inicia sesión con el proyecto, los objetos que ya se han abierto en modalidad offline se
muestran automáticamente en modalidad online. La perspectiva cambia automáticamente a la
perspectiva (véase página 50) En línea, lo que significa que la vista Supervisar se abre de forma
predeterminada.
En modalidad online, para abrir un objeto que todavía no se haya abierto, haga doble clic en el
nodo del árbol Aplicaciones o ejecute el comando Proyecto → Modificar objeto. El objeto se abrirá
en modalidad online.
Si hay varias instancias del objeto seleccionado (como bloques de funciones) contenidas en el
proyecto, aparecerá un cuadro de diálogo denominado Seleccionar el estado en línea <nombre
de objeto>. Este permite elegir si debe visualizarse una instancia o la implementación básica del
objeto, y si el objeto debe mostrarse en modalidad online u offline.
Cuadro de diálogo Seleccionar el estado en línea

52 EIO0000000071 11/2016
Interfaz de usuario de SoMachine Logic Builder

El campo Dispositivo/aplicación contiene el dispositivo y la aplicación a los que está asociado el


objeto correspondiente.
Para abrir la vista online del objeto, active la modalidad online y haga clic en Aceptar. Para ver la
vista offline, active la modalidad offline.
Si el objeto es un bloque de funciones, el campo Instancia de bloque de funciones contendrá una
lista de las instancias utilizadas actualmente en la aplicación.
En tal caso, las opciones disponibles son:
 Seleccione una de las instancias y active la modalidad online o la modalidad offline.
 O bien seleccione la opción Implementación, que, independientemente de la instancia
seleccionada, abrirá la vista de implementación básica del bloque de funciones. La opción
Implementación no tiene ningún efecto en los objetos no instanciados.
Para obtener más información sobre las vistas online de cada editor, consulte la descripción del
editor correspondiente.
La barra de estado (véase página 33) proporciona información sobre el estado actual de la
aplicación.

EIO0000000071 11/2016 53
Interfaz de usuario de SoMachine Logic Builder

Menús y comandos

Descripción general
En la siguiente figura se muestra la barra de menús predeterminada:

Algunos comandos no están visibles en la vista predeterminada. Para añadir un comando a un


menú, insértelo en el menú que desee utilizando el cuadro de diálogo (véase SoMachine,
Comandos de menú, Ayuda en línea) Herramientas → Personalizar.
Normalmente hay comandos específicos, para un editor concreto, por ejemplo, en un menú
correspondiente. Estos comandos sólo están visibles cuando el editor está abierto. Por ejemplo:
cuando edita un objeto en el editor SFC, el menú SFC se añade a la barra de menús.
Para reorganizar las estructuras de menú, utilice el cuadro de diálogo Herramientas →
Personalizar.
Varios comandos del menú Archivo no están disponibles porque se llevan a cabo estas tareas en
SoMachine Central. Para obtener más información, consulte SoMachine Central - Guía del
usuario (véase SoMachine Central, Manual del usuario).
Para obtener una descripción de los menús y comandos, consulte el apartado SoMachine
Comandos de menú - Ayuda en línea (véase SoMachine, Comandos de menú, Ayuda en línea).

54 EIO0000000071 11/2016
SoMachine
Conceptos básicos
EIO0000000071 11/2016

Capítulo 3
Conceptos básicos

Conceptos básicos

Introducción y conceptos básicos

Descripción general
SoMachine es un sistema de programación de controladores independiente del dispositivo.
De acuerdo con la norma IEC 61131-3, admite todos los lenguajes de programación estándar.
Además, permite incluir rutinas C. Permite programar múltiples dispositivos de controlador en un
mismo proyecto.
Para obtener más información, consulte el capítulo Crear archivos del sistema de tiempo de
ejecución (véase SoMachine, Comandos de menú, Ayuda en línea).

Orientación a objetos
La esencia de la orientación a objetos queda patente no sólo en la disponibilidad de elementos y
funciones de programación adecuados, sino también en la gestión de estructuras y versiones de
SoMachine y en la organización del proyecto. La utilización multidispositivo de un proyecto de
SoMachine se basa en el uso conjunto de unidades de programación instanciadas. Puede clonar
aplicaciones, así como combinar dispositivos de controlador configurables y programables en un
solo proyecto.

Tratamiento de la versión
Puede realizarse la instalación simultánea de diversas versiones de componentes de SoMachine
y trabajar con la combinación de versiones que se desee. Esto también es aplicable al uso de
distintas versiones de compilador específicas del dispositivo. Se pueden añadir funciones
individuales sin tener que actualizar toda la versión.
Para obtener información más detallada, consulte SoMachine - Compatibilidad y migración - Guía
del usuario.

EIO0000000071 11/2016 55
Conceptos básicos

Organización del proyecto


La organización del proyecto también se basa en la orientación a objetos. Un proyecto de
SoMachine contiene un programa de controlador compuesto por diversos objetos de
programación, e incluye definiciones de los recursos necesarios para ejecutar instancias del
programa (aplicación) en sistemas de destino (dispositivos, controladores) específicos.
Así, hay dos tipos principales de objetos en un proyecto:

Tipo de objeto Descripción


Objetos de programación (POU) Se trata de programas, funciones, bloques de funciones, métodos, interfaces,
(véase página 159) acciones, tipo de datos, definiciones, etc.
Los objetos de programación que se pueden instanciar en todo el proyecto, es
decir, para todas las aplicaciones definidas en el proyecto, se deben gestionar
en el nodo Global del árbol Aplicaciones. La instanciación se realiza llamando
a una POU de programa mediante una tarea asignada por la aplicación.
Los objetos de programación que sólo se gestionan en el árbol Aplicaciones,
es decir, que se asignan directamente a una aplicación, no se pueden
instanciar únicamente mediante otra aplicación insertada debajo.
Objetos de recurso (Dispositivos) Los objetos de dispositivo sólo se gestionan en Dispositivos. Cuando inserte
objetos en Dispositivos, tenga en cuenta las recomendaciones incluidas en la
sección Adición de elementos a los navegadores (véase página 42).

Generación de código
La generación de código mediante compiladores integrados y el posterior uso del código de
máquina resultante ofrecen un tiempo de ejecución breve.

Transferencia de datos al dispositivo controlador


La transferencia de datos entre SoMachine y el dispositivo se realiza mediante una puerta de
enlace (componente) y un sistema de tiempo de ejecución. Se proporciona una funcionalidad
online completa para controlar un programa en el dispositivo.

Lenguajes de programación compatibles


Se admiten los lenguajes de programación indicados en el estándar IEC IEC 61131 mediante
editores adaptados específicamente:
 FBD/LD/IL editor (véase página 265) para diagrama de bloques de funciones (FBD), diagrama
de contactos (LD) y lista de instrucciones (IL)
 Editor SFC (véase página 335) para diagrama funcional secuencial
 Editor ST (véase página 369) para texto estructurado

Además, SoMachine proporciona un editor para programación en CFC que no forma parte del
estándar IEC:
 Editor CFC (véase página 315) para diagrama de función continua

CFC es una extensión de los lenguajes de programación del estándar IEC.

56 EIO0000000071 11/2016
SoMachine
Configuración
EIO0000000071 11/2016

Parte II
Configuración

Configuración

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
4 Instalación de dispositivos 59
5 Gestión de dispositivos 61
6 Cuadros de diálogo del editor de dispositivos común 99

EIO0000000071 11/2016 57
Configuración

58 EIO0000000071 11/2016
SoMachine
Instalación de dispositivos
EIO0000000071 11/2016

Capítulo 4
Instalación de dispositivos

Instalación de dispositivos

Integración de dispositivos Sercos de otros fabricantes

Introducción
El cuadro de diálogo Repositorio de dispositivos (véase SoMachine, Comandos de menú, Ayuda
en línea)permite integrar dispositivos Sercos con perfiles de E/S genéricos en el sistema de
programación.
Para instalar este dispositivo Sercos necesitará el archivo SDDML (Sercos Device Description
Markup Language) (archivo de descripción de dispositivos Sercos) proporcionado por el fabricante
del dispositivo. El archivo SDDML es un archivo de descripción de dispositivos Sercos.
Existen dos tipos de dispositivos Sercos con perfiles de E/S genéricos:
 Dispositivos de E/S de bloque
Un dispositivo de E/S de bloque es un bloque preinstalado formado por una interfaz de bus y
un módulo de E/S.
 Dispositivos de E/S modulares
Los dispositivos de E/S modulares son módulos de E/S que pueden conectarse a una interfaz
de bus.

Integración en SoMachine
Para integrar dispositivos Sercos de otros fabricantes en el sistema de programación, proceda de
la siguiente manera:

Paso Acción
1 Seleccione Herramientas → Repositorio de dispositivos... en la barra de menús.
Resultado: Se abre el cuadro de diálogo Repositorio de dispositivos.
2 Haga clic en el botón Instalar... del cuadro de diálogo Repositorio de dispositivos.
Resultado: Se abre el cuadro de diálogo Instalar descripción de dispositivo.
3 Seleccione el tipo de archivo Descripciones de dispositivos de E/S SERCOS III (*.xml) y
desplácese por el sistema de archivos hasta abrir el archivo SDDML.
4 Seleccione el archivo SDDML y haga clic en Abrir.
Resultado: El archivo SDDML se convierte e importa en un formato de archivo compatible con
SoMachine.

NOTA: Si el archivo SDDML seleccionado no es compatible o si el dispositivo Sercos de otro


fabricante no utiliza un tipo FSP (Function Specific Profile, perfil específico de función) compatible,
se mostrará el mensaje de diagnóstico correspondiente en la vista Mensajes (véase SoMachine,
Comandos de menú, Ayuda en línea).

EIO0000000071 11/2016 59
Instalación de dispositivos

Comprobación de la integración
Para comprobar si un dispositivo Sercos con perfil de E/S genérico se ha integrado en el sistema
de programación, proceda de la siguiente manera:

Paso Acción
1 Seleccione Herramientas → Repositorio de dispositivos... en la barra de menús.
Resultado: Se abre el cuadro de diálogo Repositorio de dispositivos.
2 En la estructura de árbol Descripciones de dispositivos instaladas, expanda el nodo Buses de
campo → Sercos.
3 Expanda el subnodo Esclavo para comprobar que las interfaces de bus Sercos integradas
aparecen en la lista.
4 Expanda el subnodo Módulo para comprobar que los módulos de E/S Sercos integrados
aparecen en la lista.

Para obtener más información, consulte la descripción del cuadro de diálogo Repositorio de
dispositivos (véase SoMachine, Comandos de menú, Ayuda en línea).

60 EIO0000000071 11/2016
SoMachine
Gestión de dispositivos
EIO0000000071 11/2016

Capítulo 5
Gestión de dispositivos

Gestión de dispositivos

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
5.1 Adición de dispositivos mediante el método de arrastrar y soltar 62
5.2 Adición de dispositivos mediante menú contextual o signo más 65
5.3 Actualización de dispositivos 74
5.4 Conversión de dispositivos 76
5.5 Conversión de proyectos 80

EIO0000000071 11/2016 61
Gestión de dispositivos

Sección 5.1
Adición de dispositivos mediante el método de arrastrar y soltar

Adición de dispositivos mediante el método de arrastrar y


soltar

Adición de dispositivos mediante el método de arrastrar y soltar

Descripción general
SoMachine V4.0 y sus versiones posteriores proporcionan una vista de catálogo con varias fichas
a la derecha de SoMachine Logic Builder.
Están disponibles 2 tipos diferentes de vistas de catálogo:
 el Catálogo de hardware
 el Catálogo de software

Para añadir un dispositivo al árbol Dispositivos, seleccione la entrada respectiva en Catálogo de


hardware, arrástrela al árbol Dispositivos y suéltela en un nodo adecuado. Se añadirá automáti-
camente a su proyecto.

Adición de controladores mediante el método de arrastrar y soltar


Para añadir un controlador al proyecto, haga lo siguiente:

Paso Acción
1
Para abrir el Catálogo de hardware, haga clic en el botón Catálogo de hardware de la barra
de herramientas de SoMachine Logic Builder si todavía no está abierto.
2 Seleccione la ficha Controlador en el Catálogo de hardware.
Resultado: Los controladores adecuados para el proyecto de SoMachine se muestran en el
Catálogo de hardware.
3 Seleccione una entrada de controlador en la ficha Controlador, arrástrela al árbol Dispositivos
y suéltela en un nodo adecuado. Puede soltar el controlador en un espacio vacío dentro del
árbol Dispositivos.
Resultado: El controlador se añade al árbol Dispositivos como nuevo nodo con diferentes
subnodos en función del tipo de controlador.

62 EIO0000000071 11/2016
Gestión de dispositivos

Adición de dispositivos de ampliación mediante el método de arrastrar y soltar


Para añadir un dispositivo de ampliación a un controlador, haga lo siguiente:

Paso Acción
1
Para abrir el Catálogo de hardware, haga clic en el botón Catálogo de hardware de la barra
de herramientas de SoMachine Logic Builder si todavía no está abierto.
2 Seleccione la ficha Devices & Modules en el Catálogo de hardware.
Resultado: Los dispositivos de ampliación adecuados para el proyecto de SoMachine se
muestran en el Catálogo de hardware.
3 Seleccione el dispositivo de ampliación, arrástrelo al árbol Dispositivos y suéltelo en el subnodo
adecuado de un controlador.
NOTA: SoMachine expande y resalta los subnodos adecuados.
Resultado: El dispositivo de ampliación se añade al árbol Dispositivos, debajo del subnodo del
controlador.
4 Si el dispositivo de ampliación requiere un administrador de comunicación, este nodo se añade
automáticamente al árbol Dispositivos.
Si hay disponibles varios administradores de comunicación para ese dispositivo de ampliación,
se muestra un cuadro de diálogo que permite seleccionar el administrador de comunicación
adecuado.

Adición de dispositivos y módulos mediante el método de arrastrar y soltar


Para añadir un dispositivo de campo a un controlador, haga lo siguiente:

Paso Acción
1
Para abrir el Catálogo de hardware, haga clic en el botón Catálogo de hardware de la barra
de herramientas de SoMachine Logic Builder si todavía no está abierto.
2 Seleccione la ficha Devices & Modules en el Catálogo de hardware.
Resultado: Los dispositivos de campo adecuados para el proyecto de SoMachine se muestran
en el Catálogo de hardware.
3 Seleccione una entrada de dispositivo de campo en la vista de catálogo Devices & Modules,
arrástrela al árbol Dispositivos y suéltela en el subnodo adecuado de un controlador.
NOTA: SoMachine expande y resalta los subnodos adecuados.
Resultado: El dispositivo de campo se añade al árbol Dispositivos, debajo del subnodo del
controlador.
4 Si el dispositivo de campo requiere un administrador de comunicación, este nodo se añade
automáticamente al árbol Dispositivos.
Si hay disponibles varios administradores de comunicación para ese dispositivo de campo, se
muestra un cuadro de diálogo que permite seleccionar el administrador de comunicación
adecuado.

EIO0000000071 11/2016 63
Gestión de dispositivos

Adición de dispositivos a partir de plantillas de dispositivos mediante el método de arrastrar y soltar


Para añadir un dispositivo a partir de una plantilla de dispositivos, haga lo siguiente:

Paso Acción
1
Para abrir el Catálogo de hardware, haga clic en el botón Catálogo de hardware de la barra
de herramientas de SoMachine Logic Builder si todavía no está abierto.
2 Seleccione la ficha Devices & Modules en el Catálogo de hardware.
3 Seleccione la opción Plantilla de dispositivos en la parte inferior de la ficha Devices & Modules.
Resultado: Las plantillas de dispositivos adecuadas para el proyecto de SoMachine se
muestran en la ficha Devices & Modules.
4 Añádalas al árbol Dispositivos como se describe en el capítulo Adición de dispositivos a partir
de plantillas (véase página 780).

Adición de dispositivos a partir de plantillas de funciones mediante el método de arrastrar y soltar


Para añadir un dispositivo a partir de una plantilla de funciones, haga lo siguiente:

Paso Acción
1
Para abrir el Catálogo de software, haga clic en el botón de la barra de herramientas de
SoMachine Logic Buildersi todavía no está abierto.
2 Seleccione la ficha Macro en el Catálogo de software.
Resultado: Las plantillas de funciones disponibles en SoMachine se muestran en el Catálogo
de software.
3 Seleccione una entrada de plantilla de funciones en la vista Macro, arrástrela al árbol
Dispositivos y suéltela en el subnodo adecuado de un controlador.
NOTA: SoMachine expande y resalta los subnodos adecuados.
Resultado: El dispositivo basado en la plantilla de funciones se añade al árbol Dispositivos.

64 EIO0000000071 11/2016
Gestión de dispositivos

Sección 5.2
Adición de dispositivos mediante menú contextual o signo más

Adición de dispositivos mediante menú contextual o signo más

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Adición de un controlador 66
Adición de dispositivos de ampliación 67
Adición de administradores de comunicación 69
Adición de dispositivos a un administrador de comunicación 71
Adición de dispositivos a partir de plantillas 73

EIO0000000071 11/2016 65
Gestión de dispositivos

Adición de un controlador

Introducción
Como alternativa al método de arrastrar y soltar los dispositivos en el árbol Dispositivos, haga clic
en el signo más de color verde que se muestra en el nodo pertinente del árbol. Otra alternativa es
hacer clic con el botón derecho en un nodo del árbol para añadir un dispositivo adecuado mediante
el menú contextual. Se abrirá el cuadro de diálogo Agregar dispositivo, que le permite determinar
si el dispositivo se adjuntará, insertará o conectará al nodo seleccionado (véase SoMachine,
Comandos de menú, Ayuda en línea).
Cuando se agrega un controlador a su proyecto, automáticamente se agregan muchos nodos al
árbol Dispositivos. Estos subnodos son específicos de cada controlador, dependiendo de las
funciones que proporcione el controlador.
El siguiente párrafo describe el procedimiento general para añadir un controlador. Para obtener
más información acerca de un controlador en concreto, consulte el manual de programación de
ese controlador.

Adición de un controlador
Para añadir un dispositivo al proyecto de SoMachine, haga lo siguiente:

Paso Acción
1 Seleccione un nodo de proyecto y haga clic en el signo más de color verde del nodo, o haga clic
con el botón derecho en el nodo del proyecto y seleccione el comando Agregar dispositivo... en el
menú contextual.
Resultado: Se abre el cuadro de diálogo Agregar dispositivo.
2 En el cuadro de diálogo Agregar dispositivo, seleccione Schneider Electric en el cuadro de lista
Fabricante.
3 Seleccione el controlador que desea insertar en el proyecto.
4 Para cambiar el nombre del dispositivo, escríbalo en el cuadro de texto Nombre.
NOTA: Elija un nombre que cumpla con el estándar IEC. No use caracteres especiales, cifras
antepuestas ni espacios en el nombre. El nombre no debe tener más de 32 caracteres. Si no
cambia el nombre del dispositivo, se le asignará uno predeterminado.
Asignar un nombre significativo al dispositivo puede facilitar la organización del proyecto.
5 Haga clic en el botón Agregar dispositivo.
Resultado: El controlador seleccionado se añade al proyecto y aparece como un nodo nuevo en el
árbol Dispositivos. El cuadro de diálogo Agregar dispositivo permanece abierto. Puede hacer lo
siguiente:
 Para añadir otro controlador, vuelva al paso 3.
 O bien haga clic en el botón Cerrar para cerrar el cuadro de diálogo Agregar dispositivo.

66 EIO0000000071 11/2016
Gestión de dispositivos

Adición de dispositivos de ampliación

Dispositivos de ampliación disponibles


Para obtener una lista de los dispositivos de ampliación disponibles para los diferentes
controladores, consulte el capítulo sobre dispositivos admitidos del documento de introducción a
SoMachine.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Utilice solo software aprobado por Schneider Electric para este equipo.
 Actualice el programa de aplicación siempre que cambie la configuración de hardware física.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Adición de dispositivos de ampliación


Para añadir dispositivos de ampliación al dispositivo, haga lo siguiente:

Paso Acción
1 Seleccione un nodo de controlador y haga clic en el signo más de color verde del nodo, o haga clic con
el botón derecho del ratón en el nodo de controlador y seleccione el comando Agregar dispositivo... en
el menú contextual.
Resultado: Se abre el cuadro de diálogo Agregar dispositivo.
2 En el cuadro de diálogo Agregar dispositivo, seleccione Schneider Electric en la lista Fabricante.
3 Elija el dispositivo de ampliación que desee añadir al controlador en la lista Dispositivo que aparece a
continuación.
4 Para cambiar el nombre del dispositivo de ampliación, escríbalo en el cuadro de texto Nombre.
NOTA: El nombre no puede contener espacios. Si no cambia el nombre del dispositivo de ampliación,
se le asignará uno de forma predeterminada.
Asignar un nombre significativo al dispositivo de ampliación puede facilitar la organización del proyecto.
5 Haga clic en el botón Agregar dispositivo.
Resultado: El dispositivo de ampliación seleccionado se añade al proyecto y se muestra en el árbol
Dispositivos como un nuevo subnodo del controlador.
El cuadro de diálogo Agregar dispositivo permanece abierto. Puede hacer lo siguiente:
 Puede añadir otro dispositivo de ampliación volviendo al paso 3 de esta descripción.
 También puede hacer clic en el botón Cerrar.

EIO0000000071 11/2016 67
Gestión de dispositivos

NOTA: Cuando se añade un objeto de TWDNOI10M3 (AS-Interface Master Module) se insertará


automáticamente el correspondiente administrador del bus de campo Virtual AS interface bus.
Para obtener más información sobre la configuración de AS Interface, consulte el capítulo
correspondiente en Modicon M238 Logic Controller - Guía de programación (véase Modicon M238
Logic Controller, Guía de programación).

Configuración de dispositivos de ampliación


Para obtener más información sobre la configuración, consulte la Guía de programación del
dispositivo de ampliación.

68 EIO0000000071 11/2016
Gestión de dispositivos

Adición de administradores de comunicación

Descripción general
Los administradores de comunicación son necesarios para activar y configurar cualquier interfaz
de bus de hardware, como por ejemplo CANopen o línea serie.
Existen 2 tipos de administradores de comunicación:
 Los administradores de buses de campo, que permiten configurar dispositivos de bus de campo
(por ejemplo, esclavos CANopen o esclavos Modbus).
 Los administradores de comunicación generales.

A continuación, se enumeran los administradores de comunicación disponibles en SoMachine:

Nombre Tipo de Descripción


interfaz
Gestor ASCII Línea serie Se utiliza para transmitir o recibir datos con un dispositivo
simple.
Administrador de red de  Línea serie Debe utilizarlo si desea conectar un XBTGT, XBTGK,
SoMachine (máx. 1) XBTGH o SCU HMI a través del protocolo de SoMachine
 Ethernet para ofrecer un intercambio transparente de datos y
(máx. 3) capacidad de descarga múltiple (descarga de controlador
y aplicaciones HMI a través de 1 única conexión del
controlador al PC o de HMI al PC).
Hay disponibles 4 conexiones como máximo: 1 para
SoMachine (incluso si se utiliza una conexión USB) y 3
para Ethernet.
Modbus IOScanner Línea serie Administrador de protocolo Modbus RTU o ASCII utilizado
para definir intercambios implícitos (exploración de E/S)
con dispositivos esclavos de Modbus.
Administrador de Modbus Línea serie Se utiliza para el protocolo Modbus RTU o ASCII en modo
maestro o esclavo.
CANopen optimizado CAN Administrador de CANopen para controladores
optimizados (M238, M241, XBTGC, XBTGT, XBTGK,
SCU HMI, ATV IMC).
Rendimiento de CANopen CAN Administrador de CANopen para controladores de
rendimiento (M251, M258, LMC058 y LMC078).
CANmotion CAN Administrador de CANmotion únicamente para el puerto
CAN1 de Motion Controller LMC058 y LMC078.
Dispositivo esclavo de Ethernet Administrador de Modbus TCP para controladores con
Modbus TCP puerto Ethernet.
EtherNet/IP Ethernet Administrador de EtherNet/IP para controladores con
puerto Ethernet (M251, M258, LMC058 y LMC078).

EIO0000000071 11/2016 69
Gestión de dispositivos

Adición del administrador de comunicación


Los administradores de comunicación se añaden de forma automática con el dispositivo
respectivo.
Para añadir un administrador de comunicación aparte, haga lo siguiente:

Paso Acción
1 En el árbol Dispositivos, seleccione la interfaz de bus (Línea serie, CAN0, CAN1, Ethernet) y
haga clic en el signo más de color verde del nodo o haga clic con el botón derecho en el nodo
de interfaz de bus y ejecute el comando Agregar dispositivo en el menú contextual.
Resultado: Se abre el cuadro de diálogo Agregar dispositivo.
2 En el cuadro de diálogo Agregar dispositivo, seleccione Schneider Electric en el cuadro de lista
Fabricante.
Nota: Puede ordenar los dispositivos por marca haciendo clic en el cuadro de lista Fabricante.
3 Seleccione el Communication manager en la lista siguiente.
4 Cambie el nombre del dispositivo escribiéndolo en el cuadro de texto Nombre.
Nota: No utilice espacios en el nombre. Si no cambia el nombre del dispositivo, se le asignará
uno predeterminado.
Asignar un nombre significativo al dispositivo puede facilitar la organización del proyecto.
5 Haga clic en el botón Agregar dispositivo.
6 Haga clic en el botón Cerrar para cerrar el cuadro de diálogo Agregar dispositivo.
7 Configure el administrador de comunicación.

70 EIO0000000071 11/2016
Gestión de dispositivos

Adición de dispositivos a un administrador de comunicación

Descripción general
Se pueden añadir dispositivos de campo al administrador de comunicación seleccionando el nodo
del administrador de dispositivos de campo (por ejemplo, administrador de CANopen o de
Modbus) en el árbol de Dispositivos y haciendo clic en el signo más de color verde. Como
alternativa, puede hacer clic con el botón derecho en el nodo del administrador de dispositivos de
campo en el árbol Dispositivos y ejecutar el comando Agregar dispositivo.
Un requisito previo es que el dispositivo debe estar disponible en el cuadro de diálogo
(véase SoMachine, Comandos de menú, Ayuda en línea) Repositorio de dispositivos.

Adición de dispositivos

Paso Acción
1 Seleccione el nodo del administrador de dispositivos de campo (administrador
de CANopen o de Modbus) en el árbol Dispositivos y haga clic en el signo más
de color verde, o bien haga clic con el botón derecho en el nodo del
administrador de dispositivos de campo y seleccione el comando Agregar
dispositivo... en el menú contextual.
Resultado: Se abre el cuadro de diálogo Agregar dispositivo.
2 En el cuadro de diálogo Agregar dispositivo, seleccione Schneider Electric en el
cuadro de lista Fabricante.
Nota: Puede ordenar los dispositivos por marca haciendo clic en el cuadro de
lista Fabricante.
3 Seleccione el dispositivo que desee en la lista siguiente.
4 Cambie el nombre del dispositivo escribiéndolo en el cuadro de texto Nombre.
Nota: No utilice espacios en el nombre. Si no cambia el nombre del dispositivo,
se le asignará uno predeterminado.
Asignar un nombre significativo al dispositivo puede facilitar la organización del
proyecto.
5 Haga clic en el botón Agregar dispositivo.
Resultado: Se añadirá el dispositivo de campo al administrador de dispositivos
de campo.
NOTA: El cuadro de diálogo Agregar dispositivo permanece abierto.
Puede hacer lo siguiente:
 Para añadir otro dispositivo, vuelva al paso 2.
 Puede hacer clic en el botón Cerrar.

Acceso a la información de diagnóstico


Para obtener información de diagnóstico de dispositivos en CANopen utilice CAA_CiA405.library.

EIO0000000071 11/2016 71
Gestión de dispositivos

Acceso al diagnóstico de configuración (para usuarios avanzados)


Puede usar las opciones Cancelar en caso de error y En caso de error saltar a línea en la ficha
Service Data Object del configurador de CANopen para gestionar posibles incoherencias de
configuración.
Para optimizar el rendimiento del maestro CAN, los diagnósticos de CAN son externos al
maestro CAN del controlador. La estructura de diagnóstico CAN se define en la biblioteca
CanConfig Extern, disponible en el Administrador de bibliotecas.
La estructura g_aNetDiagnosis contiene la información de diagnóstico más reciente de los
esclavos. La estructura se actualiza cada vez que se configura un esclavo, por cualquier motivo.
Esta estructura se puede utilizar dentro del programa para hacer lo siguiente:
 Supervisar la respuesta de los esclavos configurados por mensajes SDO.
 Supervisar el maestro para ver si hay mensajes de cancelación de los esclavos antes de
permitir un arranque de máquina/aplicación.
Esta estructura debe estar instalada y activa dentro de la aplicación de usuario al realizar pruebas,
depurar y poner en marcha la aplicación. Cuando la máquina y su aplicación de control ya se han
puesto en marcha y validado, entonces sería posible deshabilitar este código de la ejecución para
reducir el tráfico en la red CANopen.
Sin embargo, si durante el ciclo vital de una aplicación (y de la máquina o proceso que ésta
controla), se añaden o sustituyen esclavos en el sistema operativo, la estructura de diagnóstico
debería continuar activa en la aplicación.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Utilice la estructura de datos g_aNetDiagnosis para supervisar las respuestas del esclavo
CAN a los comandos de configuración.
 Compruebe que la aplicación no se inicie ni ponga la máquina o el proceso en un estado
operativo, en caso de recibir mensajes de cancelación de SDO de cualquiera de los
esclavos CAN.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Tras añadir la biblioteca CanConfig Extern a su aplicación, utilice la definición Net Diagnostic de
su aplicación para probar los mensajes de cancelación de SDO desde los esclavos CAN.

72 EIO0000000071 11/2016
Gestión de dispositivos

El ejemplo de código siguiente ilustra el uso de la estructura de datos de diagnóstico de CAN:


IF g_aNetDiagnosis[CAN_Net_Number].ctSDOErrorCounter = 0 THEN
(* No se detecta ningún error en la configuración*)
ELSE
(* Se ha detectado un error durante la configuración. Obtener la
información más reciente.*)
// ID de nodo del esclavo que envía el código de anulación
ReadLastErrorNodeID := g_aNetDiagnosis[CAN_Net_Number].usiNodeID;
// índice usado en el SDO cancelado
ReadLastErrorIndex := g_aNetDiagnosis[CAN_Net_Number].wIndex;
// subíndice usado en el SDO cancelado
ReadLastErrorSubIndex := g_aNetDiagnosis[CAN_Net_Number].bySubIndex
;
//Código de cancelación de SDO
ReadLastErrorSdoAbortCode := g_aNetDiagnosis [CAN_Net_Number].udiAb
ortCode;
(* No permitir el inicio de otra operación de la máquina o proceso *)
END_IF
NOTA: En este ejemplo, CAN_Net_Number sería 0 para el puerto CAN0 y, si el controlador está
equipado de esa manera, 1 para CAN1port.
Adición de dispositivos a partir de plantillas

Descripción general
También es posible añadir un dispositivo nuevo con una plantilla de dispositivos. Para obtener una
descripción de este procedimiento, consulte la sección Administración de plantillas de dispositivos
(véase página 780).

EIO0000000071 11/2016 73
Gestión de dispositivos

Sección 5.3
Actualización de dispositivos

Actualización de dispositivos

Actualización de dispositivos

Introducción
La función de actualizar dispositivos le permite reemplazar un dispositivo seleccionado en el árbol
Dispositivos
 por otra versión del mismo dispositivo o
 por un tipo de dispositivo diferente.

Actualización de dispositivos
Para reemplazar un dispositivo de su proyecto de SoMachine por otra versión o por un dispositivo
diferente, proceda de la siguiente manera:

Paso Acción
1 Seleccione el dispositivo que desea reemplazar en el árbol Dispositivos y ejecute el comando Actualizar
dispositivo... en el menú Proyecto.
O
Haga clic con el botón derecho en el dispositivo que desea reemplazar en el árbol Dispositivos y
seleccione el comando Actualizar dispositivo... en el menú contextual.
Resultado: Se abre el cuadro de diálogo Actualizar dispositivo.
O
Haga clic con el botón derecho en el dispositivo que desea reemplazar en el árbol Dispositivos y
seleccione el comando Agregar dispositivo... en el menú contextual. En el cuadro de diálogo Agregar
dispositivo, seleccione Acción: Actualizar el dispositivo.
Resultado: El cuadro de diálogo Agregar dispositivo se convierte en el cuadro de diálogo Actualizar
dispositivo.
2 Desde la lista Dispositivo:, elija el dispositivo que debe reemplazar al dispositivo actual.
Para seleccionar una versión específica del dispositivo, seleccione las opciones Mostrar todas las
versiones (sólo para expertos) y/o Mostrar versiones antiguas.
3 Si es necesario distinguir los dispositivos, cambie el nombre de su dispositivo escribiendo el nuevo
nombre en el cuadro de texto Nombre. De lo contrario, se utilizará el mismo nombre para el dispositivo
actualizado.
Si el dispositivo se actualiza por un tipo de dispositivo diferente, entonces la descripción del tipo de
dispositivo (entre paréntesis después del nombre del dispositivo) se adaptará automáticamente.
Asignar un nombre significativo al dispositivo puede facilitar la organización del proyecto.
4 Haga clic en el botón Actualizar dispositivo.
Resultado: El dispositivo que se ha seleccionado en el árbol Dispositivos se reemplaza por el nuevo tipo
de dispositivo o la nueva versión. El nuevo tipo de dispositivo o la nueva versión se muestra ahora en el
nodo seleccionado en el árbol Dispositivos.

74 EIO0000000071 11/2016
Gestión de dispositivos

Efectos después de la actualización de un dispositivo


Los subdispositivos que se encuentran en el árbol Dispositivos por debajo del dispositivo
actualizado se actualizan también automáticamente.
Los ajustes de configuración del dispositivo no se modifican si el tipo de dispositivo no se ha
cambiado.
Si el procedimiento de actualización causa cualquier discrepancia en la configuración existente,
esto se detecta en la siguiente ejecución de Compilación de la aplicación. Las discrepancias
detectadas se indican mediante los mensajes correspondientes. Esto se refiere también a las
bibliotecas añadidas de forma implícita, que no se eliminan de forma automática ni de manera
apropiada al actualizar un dispositivo.

EIO0000000071 11/2016 75
Gestión de dispositivos

Sección 5.4
Conversión de dispositivos

Conversión de dispositivos

Conversión de dispositivos

Introducción
SoMachine 4.0 y versiones posteriores permiten convertir un dispositivo que se ha configurado en
su proyecto en un dispositivo distinto pero compatible. SoMachine convierte de forma automática
el dispositivo configurado actualmente en el dispositivo seleccionado y muestra los cambios
realizados en la vista Mensajes.
El comando Convertir dispositivo puede añadir o eliminar módulos automáticamente. Estos
cambios de hardware influyen, igualmente, en el direccionamiento y las bibliotecas.
Para evitar un comportamiento imprevisto tras la conversión de un dispositivo:
 Asegúrese de que el nuevo dispositivo admita todas las funciones y los puertos de
comunicación necesarios en el proyecto.
 Evite el uso de direcciones directas en la aplicación.
 Haga una copia de seguridad del proyecto en el disco duro del PC antes de convertir un
dispositivo.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Compruebe que las direcciones directas utilizadas en la aplicación (por ejemplo, %IB5) se
hayan convertido correctamente tras la conversión de dispositivo.
 Verifique que el proyecto modificado contenga las configuraciones previstas y proporcione la
funcionalidad prevista después de convertir el dispositivo.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

AVISO
PÉRDIDA DE DATOS
Haga una copia de seguridad del proyecto en el disco duro del PC antes de convertir un
dispositivo.
El incumplimiento de estas instrucciones puede causar daño al equipo.

76 EIO0000000071 11/2016
Gestión de dispositivos

Conversión de un dispositivo
Para convertir un dispositivo en un dispositivo compatible, siga estos pasos:

Paso Acción
1 Haga una copia de seguridad del proyecto en el disco duro del PC ejecutando el comando Archivo →
Guardar proyecto como... antes de convertir un dispositivo.
2 Haga clic con el botón derecho en un dispositivo que desee convertir del árbol Dispositivos.
3 Seleccione el comando Convertir dispositivo en el menú contextual.
Resultado: Se muestra el cuadro de diálogo Convertir dispositivo. Enumera aquellos dispositivos que son
compatibles con el dispositivo que ha seleccionado y ofrece más información sobre el dispositivo
seleccionado:

EIO0000000071 11/2016 77
Gestión de dispositivos

Paso Acción
4 Seleccione el dispositivo de la lista al que desee convertir el dispositivo actualmente configurado.
Para ver las versiones disponibles de un dispositivo, seleccione la opción Mostrar todas las versiones
(sólo para expertos).
5 Si todavía no ha realizado una copia de seguridad del proyecto, haga clic en Cancelar para detener el
proceso sin los cambios y realice una copia de seguridad antes de reiniciar el proceso.
Para iniciar la conversión, haga clic en Aceptar.
Resultado: El dispositivo configurado se convierte en el dispositivo seleccionado en la lista. Se mantiene
la información que ha introducido si los módulos relacionados siguen disponibles. Las modificaciones o
configuraciones que no se han podido convertir se indican en la vista Mensajes.
6 Compruebe si el proyecto convertido aún contiene las configuraciones deseadas y proporciona las
funciones previstas. Si no es el caso, adapte la configuración o restaure la copia de seguridad del archivo
de proyecto sin modificar.

Información de conversión en la vista Mensajes


En la vista Mensajes se muestra la siguiente información del proceso de conversión:
 Dispositivos de origen y dispositivos de destino en los que se han convertido.
 Parámetros que no se han transferido al destino.
 Dispositivos que no se han convertido.

Para guardar la información mostrada en la vista Mensajes, puede copiarla en el portapapeles


(pulse CTRL + C) y pegarla en un archivo de datos pulse CTRL + V).

Caso especial: Conversión de un dispositivo HMI en otro dispositivo HMI con una resolución de pantalla
más alta
Al igual que los demás dispositivos, también puede convertir un dispositivo HMI en otro dispositivo
HMI. En este caso, el cuadro de diálogo Convertir dispositivo incorpora una opción adicional para
dispositivos HMI que permite la adaptación automática a una resolución de pantalla más alta.

78 EIO0000000071 11/2016
Gestión de dispositivos

Cuadro de diálogo Convertir dispositivo para dispositivos HMI

Si el dispositivo HMI nuevo dispone de una pantalla más grande y, por consiguiente, mayor
resolución, la opción Ajustar a una mayor resolución de pantalla estará habilitada de forma
predeterminada. Adapta automáticamente los contenidos de los paneles HMI y las ventanas
emergentes, así como las fuentes de los paneles HMI, al aumento de la resolución de pantalla del
nuevo dispositivo HMI.
NOTA: Este proceso no se puede deshacer automáticamente. Compruebe y, si es necesario,
adapte manualmente los contenidos de los paneles después de la conversión.

EIO0000000071 11/2016 79
Gestión de dispositivos

Sección 5.5
Conversión de proyectos

Conversión de proyectos

Conversión de proyectos de SoMachine Basic y Twido

Introducción
Con SoMachine, puede convertir un proyecto de SoMachine Basic o TwidoSoft/TwidoSuite y el
controlador configurado en una lógica de SoMachine seleccionable o un controlador HMI
(véase página 923). El controlador y la lógica correspondiente se convierten e integran en el
proyecto de SoMachine.
SoMachine ofrece diferentes maneras de ejecutar este proceso de conversión:
 En·SoMachine Central,·ejecute·el·comando·Convertir... → Convertir proyecto de
Twido... o Convertir... → Convertir proyecto de SoMachine Basic... en el menú principal
(véase SoMachine Central, Manual del usuario). Se abre el cuadro de diálogo Convertir
proyecto de SoMachine Basic o Convertir proyecto de Twido.
 En SoMachine Logic Builder, ejecute el comando Archivo → Convertir proyecto de SoMachine
Basic o Archivo → Convertir proyecto de Twido. Se abre el cuadro de diálogo Convertir
proyecto de SoMachine Basic o Convertir proyecto de Twido. Si los comandos no están
disponibles, puede insertarlos en un menú de su elección mediante el cuadro de diálogo
(véase SoMachine, Comandos de menú, Ayuda en línea) Herramientas → Personalizar.
 En SoMachine Central, abra un proyecto SoMachine Basic o Twido. Para ello, haga clic en el
botón Abrir un proyecto existente o bien haga clic en Abrir proyecto en la pantalla Empezar para
que se abra el cuadro de diálogo Abrir proyecto. Seleccione la opción Archivos de proyecto
Twido (*.xpr, *.twd, *.xar) o Archivos de proyecto de SoMachine Basic (*.smbp) en la lista de
Todos los archivos soportados y busque el proyecto de SoMachine Basic o Twido. Haga clic en
el botón Abrir para abrir el cuadro de diálogo Convertir proyecto de SoMachine Basic o
Convertir proyecto de Twido.
En las notas de la versión de SoMachinese enumeran las versiones de SoMachine Basic
compatibles con este mecanismo de conversión. Si convierte un proyecto de SoMachine Basic
creado con una versión de SoMachine Basic más reciente que la versión compatible más reciente,
se mostrará un mensaje para informar de tal circunstancia en la vista (véase SoMachine,
Comandos de menú, Ayuda en línea) Mensajes. Puede elegir entre continuar la conversión o
cancelarla. Si continúa, la aplicación se convertirá pero es posible que se detecten errores que
necesiten corregirse. En tal caso, revise y verifique la ventana de mensajes y la aplicación antes
de intentar ponerla en marcha.
NOTA: Verifique que el proyecto de SoMachine Basic o Twido sea válido antes de convertirlo a
SoMachine.
Para ayudar a evitar un comportamiento no deseado después de convertir un proyecto, verifique
que el controlador de destino admita las funciones y los puertos de comunicación que requiera su
proyecto.

80 EIO0000000071 11/2016
Gestión de dispositivos

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Verifique que el programa del controlador de destino contenga las configuraciones esperadas
y que proporcione las funciones previstas después de convertir el proyecto.
 Depure, verifique y valide por completo la funcionalidad del programa convertido antes de
ponerlo en servicio.
 Antes de convertir un programa, verifique que el programa de origen sea válido, es decir, que
pueda descargarse en el controlador de origen.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

NOTA: Para obtener más información, consejos e información importante de seguridad sobre la
importación de proyectos en SoMachine, consulte SoMachine - Compatibilidad y migración - Guía
del usuario (véase SoMachine - Compatibilidad y migración, Guía del usuario).

EIO0000000071 11/2016 81
Gestión de dispositivos

Conversión de un proyecto de SoMachine Basic o Twido


Para convertir en un proyecto de SoMachine Basic o Twido, proceda del modo siguiente:

Paso Acción
1 Para iniciar el proceso de conversión, ejecute una de las tres acciones en SoMachine Central o
SoMachine Logic Builder (las acciones se describen en el apartado Introducción de este capítulo
(véase página 80)).
Resultado: se abre el cuadro de diálogo Convertir proyecto de SoMachine Basic o Convertir proyecto de
Twido:

2 Introduzca un nombre para el controlador en el campo Nombre de dispositivo.

82 EIO0000000071 11/2016
Gestión de dispositivos

Paso Acción
3 Especifique la ruta de acceso al archivo del proyecto de SoMachine Basic o Twido en el cuadro Archivo
de proyecto, o haga clic en el botón ... para buscar el archivo.
NOTA: Si ya buscó el proyecto de SoMachine Basic o Twido en el cuadro de diálogo Abrir proyecto, la
ruta se introducirá automáticamente en el campo Archivo de proyecto y no podrá editarlo.
4 Seleccione el lenguaje de programación al que se convertirá la lógica en la lista Lenguaje de
implementación.
Se admiten los siguientes lenguajes de programación:
 Diagrama de contactos (LD)
 Diagrama de bloques de funciones (FBD)
 Lista de instrucciones (IL)
 Diagrama de función continua (CFC)

5 En la lista Dispositivos seleccione el controlador de destino al que desea convertir su controlador de


SoMachine Basic o Twido. Se mostrará información adicional sobre el dispositivo seleccionado en el
área Información del cuadro de diálogo.
6 Haga clic en Convertir para iniciar la conversión.
Resultado: El proyecto de SoMachine Basic o Twido se convierte y se integra en el proyecto de
SoMachine abierto. Las modificaciones o configuraciones que no se han podido convertir se indican en
la ventana (véase SoMachine, Comandos de menú, Ayuda en línea) Mensajes.
7 Consulte la categoría Conversión de proyecto de la ventana Mensajes y verifique los errores y alertas
detectados y enumerados.
8 Compruebe si el proyecto convertido contiene las configuraciones deseadas y proporciona las funciones
previstas. Si no es así, adapte la configuración.

Compatibilidad de los nombres de objetos y variables con IEC


Los nombres de objetos y variables en los proyectos de SoMachine deben cumplir con las
convenciones de nomenclatura definidas en el estándar IEC. El convertidor adaptará automáti-
camente a las convenciones de IEC los nombres del proyecto de SoMachine Basic o Twido que
no cumplan con este estándar.
Si desea conservar los nombres que no sean compatibles con IEC en el proyecto de SoMachine
convertido, active la opción Permitir caracteres unicode para identificadores en el cuadro de
diálogo (véase SoMachine, Comandos de menú, Ayuda en línea) Configuración del proyecto →
Opciones de compilación.

Biblioteca de TwidoEmulationSupport
La biblioteca (véase Biblioteca Twido Emulation Support, Guía de la biblioteca) de TwidoEmula-
tionSupport contiene funciones y bloques de funciones que proporcionan funcionalidad de
SoMachine Basic y TwidoSoft/TwidoSuite en una aplicación de SoMachine. La biblioteca de
TwidoEmulationSupport se integra automáticamente en el proyecto de SoMachine con el
controlador convertido.

EIO0000000071 11/2016 83
Gestión de dispositivos

Conversión del programa de aplicación


En el proyecto de SoMachine de destino se crearán diferentes programas para cada POU de
SoMachine Basic y POU libre, así como para cada subrutina y sección de programa de Twido. El
lenguaje de programación empleado para estos programas viene determinado por el Lenguaje de
implementación seleccionado en el cuadro de diálogo Convertir proyecto de SoMachine
Basic/Convertir proyecto de Twido. Una excepción la constituyen las POU programadas en el
lenguaje Grafcet gráfico, las cuales se convierten a un programa SFC. Para obtener más
información, consulte la sección sobre Grafcet de este capítulo (véase página 91).
Por cada objeto de lenguaje (como objetos de memoria o bloques de funciones) que utilice el
programa de aplicación, se creará una variable global. Se crearán listas de variables globales
(véase página 209) distintas para cada categoría de objeto (una para bits de memoria, otra para
palabras de memoria, etc.).
Para la conversión de programas de aplicación en relación con la estructura del programa se
aplican las restricciones siguientes:
 En SoMachine, no es posible saltar a una etiqueta (véase página 301) de otro programa.
 No es posible definir pasos de Grafcet en un subprograma.
 No es posible activar o desactivar pasos de Grafcet (según la instrucción # y D#) en un
subprograma.

Conversión de objetos de memoria


Las áreas proporcionadas para objetos de memoria en SoMachine Basic y Twido difieren respecto
a SoMachine.
En SoMachine Basic y Twido existen tres áreas diferenciadas de objetos de memoria:

Área Objetos de memoria incluidos


área de bits de memoria bits de memoria (%M)
área de palabras de memoria  palabras de memoria (%MW)
 palabras dobles (%MD)
 valores de coma flotante (%MF)

área de constantes  palabras constantes (%KW)


 palabras dobles (%KD)
 valores de coma flotante (%KF)

En SoMachine, sólo existe el área de palabras de memoria para los objetos de memoria:

Área Objetos de memoria incluidos


área de palabras de memoria  palabras de memoria (%MW)
 palabras dobles (%MD)
 valores de coma flotante
No existe un formato de direccionamiento específico para valores
de coma flotante. Las variables de coma flotante pueden
asignarse a una dirección %MD.

84 EIO0000000071 11/2016
Gestión de dispositivos

En el gráfico se proporciona una descripción general de las diferentes disposiciones de las


direcciones %MD y %MF en SoMachine Basic/Twido y SoMachine.

1 Direcciones de memoria en SoMachine Basic/Twido


2 Direcciones de memoria en SoMachine

Los objetos de memoria se convierten del modo siguiente:

Objetos de memoria de origen Objetos de memoria de destino Información adicional


%MW Se asignan a la misma dirección Por cada objeto %MW se crea una variable global
%MW de tipo INT.
Ejemplo
%MW2 se asigna a %MW2.
%MD y %MF con direcciones Se asignan de modo que se Por cada objeto %MD se crea una variable global
pares ubiquen en la misma dirección %MW de tipo DINT.
que antes. Por cada objeto %MF utilizado se crea una
Ejemplo variable global de tipo REAL.
%MD4/%MF4 se asignan a %MD2.
%MD y %MF con direcciones No pueden asignarse porque una Se crea una variable para ayudar a garantizar
impares variable DINT no puede ubicarse que puede compilarse la aplicación convertida.
en una dirección de palabra impar. Sin embargo, debe examinar el efecto que la
creación de una variable como esta tendrá en la
funcionalidad general del programa.

EIO0000000071 11/2016 85
Gestión de dispositivos

Objetos de memoria de origen Objetos de memoria de destino Información adicional


%M Se asigna como campo de bits Por cada objeto %M se crea una variable global
empaquetado a una ubicación fija de tipo BOOL.
del área %MW.
%KW Se asigna a direcciones Por cada objeto %KW utilizado se crea una
consecutivas del área %MW. variable global de tipo INT.

La relación entre objetos %KW, %KD y %KF es la misma que para objetos %MW, %MD y %MF. Por
ejemplo, %KD4/%KF4 se asignan a la misma ubicación que %KW4. Las direcciones %KD/%KF
impares no pueden asignarse.
Acceso remoto
Los dispositivos remotos pueden acceder a los objetos de memoria (%MW, %MD, %MF y %M)
mediante servicios Modbus:
 Si un dispositivo remoto accede a objetos %MW, %MD o %MF en la aplicación de origen, este
acceso seguirá estando disponible en la aplicación de SoMachine.
 Si un dispositivo remoto accede a objetos %M en la aplicación de origen, este acceso ya no
estará disponible en la aplicación de SoMachine.

Conversión de bloques de funciones


La biblioteca TwidoEmulationSupport proporciona bloques de funciones con funciones
compatibles para los siguientes bloques de funciones en SoMachine Basic/Twido:

Bloque de funciones de SoMachine Basic/Twido Bloque de funciones de la biblioteca de


TwidoEmulationSupport
Temporizadores %TM FB_Timer

Contadores %C FB_Counter

Registro %R FB_FiFo/FB_LiFo
Drum %DR FB_Drum

Registro de bits de desplazamiento %SBR FB_ShiftBitRegister

Contador de pasos %SC FB_StepCounter

Fechador %SCH FB_ScheduleBlock

PID FB_PID
Intercambio/mensaje %MSG FB_EXCH

86 EIO0000000071 11/2016
Gestión de dispositivos

Bloque de funciones de SoMachine Basic/Twido Bloque de funciones de la biblioteca de


TwidoEmulationSupport
Contador de alta velocidad %HSC/%VFC Se convierten de la manera descrita en la sección
Conversión de contadores rápidos, contadores de alta
Contador rápido %FC
velocidad (Twido: contadores muy rápidos) y
Generador de pulsos PLS %PLS generadores de pulsos (véase página 89) de este
capítulo.
Generador de pulsos PWM %PWM
Bloques de funciones PTO %PTO, %MC_xxx
Generador de frecuencias %FREQGEN
Bloques de funciones de comunicación FB_ReadVar, FB_WriteVar, FB_WriteReadVa
READ_VAR, WRITE_VAR, WRITE_READ_VAR y r y FB_SendRecvMsg
SEND_RECV_MSG
Bloque de funciones SMS SEND_RECV_SMS No se convierten.
MC_MotionTask_PTO

Para la conversión de bloques de funciones, tenga en cuenta lo siguiente:


 La biblioteca de TwidoEmulationSupport no proporciona bloques de funciones para funciones
relacionadas con el hardware, como contadores de alta velocidad, contadores rápidos y
generadores de pulsos. Deben controlarse mediante bloques de funciones proporcionados por
las bibliotecas HSC y PTO_PWM específicas de la plataforma. Estos bloques de funciones no
son compatibles con los bloques de funciones de origen. En resumen, una conversión completa
no es posible si el programa de origen contiene funciones basadas en recursos de hardware
del controlador. Para obtener más información, consulte la descripción Conversión de
contadores rápidos, contadores de alta velocidad (Twido: contadores muy rápidos) y
generadores de pulsos (véase página 89).
 En SoMachine Basic/Twido, la función de mensajería se proporciona mediante la instrucción
EXCHx y el bloque de funciones %MSGx. En la aplicación SoMachine, esta función se realiza
mediante un bloque de funciones FB_EXCH único.
 En SoMachine Basic/Twido, ciertos bloques de funciones pueden configurarse utilizando
cuadros de diálogo de configuración especiales. Estos datos de configuración se proporcionan
a los bloques de funciones de la biblioteca de TwidoEmulationSupport mediante parámetros
dedicados.

EIO0000000071 11/2016 87
Gestión de dispositivos

Conversión de variables del sistema


Se convierten los bits y palabras del sistema siguientes:

Bit/palabra del sistema Información adicional


%S0 Se establece en 1 en el primer ciclo tras un arranque en frío.
NOTA: No es posible desencadenar un arranque en frío escribiendo en
este bit del sistema.
%S1 Se establece en 1 en el primer ciclo tras un arranque en caliente.
NOTA: No es posible desencadenar un arranque en caliente
escribiendo en este bit del sistema.
%S4 Pulso con una referencia de tiempo de 10 ms.
%S5 Pulso con una referencia de tiempo de 100 ms.
%S6 Pulso con una referencia de tiempo de 1 s.
%S7 Pulso con una referencia de tiempo de 1 min.
%S13 Se establece en 1 en el primer ciclo una vez iniciado el controlador.
%S18 Se establece en 1 si se produce un desborde aritmético.
NOTA: La biblioteca de TwidoEmulationSupport proporciona este
indicador y sólo se establece mediante las funciones proporcionadas
por esta biblioteca.
%S21 , %S22 Sólo se escriben. Estas variables no admiten la lectura.
%SW63...65 Código de error de los bloques MSG 1...3.
%SW114 Habilitar indicadores para los fechadores.

La conversión no admite otras variables del sistema. Si el programa de aplicación de origen utiliza
una variable del sistema no admitida, se genera un mensaje en la categoría Conversión de
proyecto de la vista (véase SoMachine, Comandos de menú, Ayuda en línea) Mensajes.

Conversión del comportamiento de retención


Las variables y los bloques de funciones de SoMachine Basic/Twido son variables Retain. Esto
significa que conservan sus valores y estados incluso después de un apagado imprevisto del
controlador así como después de apagar y volver a encender con normalidad el controlador.
Este comportamiento de retención no se conserva durante la conversión. En SoMachine, las
variables y los bloques de funciones convertidos son normales, lo que significa que se inicializan
durante un apagado imprevisto del controlador o durante el apagado y encendido de este. Si
necesita variables Retain en su aplicación de SoMachine, debe declarar manualmente esta
palabra clave de atributo (véase página 550).

88 EIO0000000071 11/2016
Gestión de dispositivos

Conversión de tablas de animación


La gestión de tablas de animación difiere en las aplicaciones de origen y de destino:
 SoMachine Basic/Twido le permiten definir varias listas de animación identificadas por el
nombre. Cada lista de animación puede contener varias entradas para objetos que deban
animarse. Puede seleccionar la opción Traza para cada variable.
 En SoMachine hay 4 listas de supervisión (véase página 444) predefinidas
(Supervisar 1...Supervisar 4). Cada lista de supervisión puede contener varias variables que
deben animarse. Una lista de supervisión puede contener variables de diferentes
controladores.
Para aquellas variables que tienen la opción Traza seleccionada en SoMachine Basic/Twido,
SoMachine crea un objeto de traza. Estas variables pueden consultarse en el editor de traza
(véase página 479).
Durante el proceso de conversión, las entradas de las tablas de animación de origen se añaden
al final de la lista de supervisión Supervisar 1.

Conversión de símbolos
Los símbolos definidos en un proyecto de SoMachine Basic/Twido se transfieren automáti-
camente al proyecto de SoMachine.
Se aplican las siguientes restricciones a la denominación de símbolos:

Si... Entonces...
un nombre de símbolo no cumple las reglas de se modifica el nombre del símbolo.
denominación de SoMachine,
un nombre de símbolo coincide con una palabra se modifica el nombre del símbolo.
clave de SoMachine,
no se crea ninguna variable para un objeto de se descarta el nombre del símbolo.
lenguaje,
un símbolo no se utiliza en ningún lugar del programa puede descartarse el nombre del símbolo.
de aplicación,

Para ver la lista completa de modificaciones de símbolos que han sido necesarias, consulte la
vista Mensajes.

Conversión de contadores rápidos, contadores de alta velocidad (Twido: contadores muy rápidos) y
generadores de pulsos
Los bloques de funciones que proporciona SoMachine difieren respecto a los bloques de
funciones que proporciona SoMachine Basic/Twido. Sin embargo, la configuración de los
contadores rápidos, contadores de alta velocidad y generadores de pulsos se convierte en la
medida de lo posible. En las secciones siguientes se proporciona una descripción general de las
restricciones que se aplican.

EIO0000000071 11/2016 89
Gestión de dispositivos

Restricciones generales
Se aplican las siguientes restricciones generales:

Restricción Solución
Las entradas y salidas que utilizan los contadores de alta velocidad y Tenga esto en cuenta durante el cableado
generadores de pulsos convertidos pueden diferir respecto a las del controlador convertido.
entradas y salidas utilizadas de la aplicación de origen. La reasignación de entradas y salidas se
notifica en la vista Mensajes
(véase SoMachine, Comandos de menú,
Ayuda en línea).
SoMachine Basic admite un máximo de cuatro contadores de alta Tiene que adaptar su aplicación
velocidad y un máximo de cuatro generadores de pulsos. La función de manualmente.
conversión únicamente convierte el número de contadores y
generadores de pulsos que admite el controlador de destino.

Restricciones que se aplican a %FC, %HSC/%VFC, %PLS y %PWM


Por cada bloque de funciones %FC, %HSC/%VFC, %PLS y %PWM que se utiliza en la aplicación
SoMachine Basic/Twido se crea un programa individual en SoMachine. Puede mejorar esta
implementación básica de acuerdo con las necesidades de su aplicación.
Se aplican las siguientes restricciones:

Restricción Solución
Algunas combinaciones de contadores de %HSC/%VFC y %FC no se Tiene que adaptar su aplicación
pueden convertir debido a que el controlador de destino no las admite. manualmente.
Por ejemplo, en SoMachine Basic es posible tener 2 bloques de
funciones %HSC y 4 bloques de funciones %FC en paralelo. La función de
conversión únicamente convierte el número de bloques de funciones que
admite el controlador de destino.
El acceso a los parámetros de los bloques de funciones se realiza de Si la aplicación de origen accede a
forma diferente en SoMachine Basic y SoMachine. parámetros del bloque de funciones, debe
En SoMachine Basic, el programa de aplicación puede acceder extender la aplicación convertida
directamente a los parámetros de un bloque de funciones, por ejemplo, correspondientemente.
%VFC.P = 100.
En SoMachine, debe utilizarse un bloque de funciones específico del
controlador (por ejemplo, EXPERTSetParam) para acceder a un
parámetro.

90 EIO0000000071 11/2016
Gestión de dispositivos

Restricción Solución
El comportamiento de los contadores difiere en SoMachine respecto a Tiene que adaptar su aplicación
Twido cuando se establece el valor preestablecido. manualmente.
En Twido:
 El contador de retroceso sigue contando cuando se alcanza cero.
 El contador en avance sigue contando cuando se alcanza el valor
preestablecido.
En SoMachine:
 El contador de retroceso detiene el recuento cuando se alcanza cero.
 El contador en avance empieza a contar desde el principio cuando se
alcanza el valor preestablecido.

Restricciones que se aplican a los bloques de funciones PTO %PTO, %MC_xxxx


Para M241:
Los bloques de funciones PTO proporcionados por SoMachine para los controladores M241 son
compatibles con los bloques de funciones PTO proporcionados por SoMachine Basic. Los
bloques de funciones PTO se convierten sin restricción alguna. La única excepción la constituye
el bloque de funciones MC_MotionTask_PTO. MC_MotionTask_PTO no se convierte.
Para HMI SCU:
Los bloques de funciones PTO proporcionados por SoMachine para los controladores HMI SCU
no son compatibles con los bloques de funciones PTO proporcionados por SoMachine Basic. Los
bloques de funciones PTO no se convierten.
Restricciones que se aplican al bloque de funciones del generador de frecuencias %FREQGEN
El bloque de funciones del generador de frecuencias %FREQGEN se convierte sin restricciones
tanto para los controladores M241 como para los controladores HMI SCU.

Conversión de un programa de Grafcet


Es posible escribir un programa de Grafcet de manera textual o gráfica.

Tipo de Grafcet Descripción Compatible con


Textual Para la definición, activación y  TwidoSoft/TwidoSuite
desactivación de estados de Grafcet hay  SoMachine Basic
disponibles diversos elementos de
programación IL y LD.
Gráfico Permite trazar de manera gráfica el diseño Sólo para SoMachine Basic 1.4 y
de los pasos, transiciones y derivaciones. versiones posteriores.

EIO0000000071 11/2016 91
Gestión de dispositivos

Conversión de Grafcet textual


Los lenguajes de programación de SoMachine no admiten la programación con Grafcet.
Por este motivo, una aplicación Grafcet convertida contiene elementos de lenguaje adicionales
que implementan la gestión de Grafcet.

Elemento adicional Descripción


carpeta Grafcet Esta carpeta contiene los elementos de lenguaje siguientes
utilizados para la gestión de la máquina de estado Grafcet.
estructura de datos GRAFCET_STATES Esta estructura de datos contiene un elemento de bit por cada
estado Grafcet permitido.
Si se trata de un estado inicial, el elemento se inicializará como
TRUE; en caso contrario, será FALSE.
lista de variables globales Esta lista de variables globales contiene las variables siguientes:
GrafcetVariables  1 variable STATES que contiene 1 bit por cada estado de
Grafcet. Cada bit representa el valor actual del estado de
Grafcet correspondiente (objeto %Xi).
 1 variable ACTIVATE_STATES que contiene 1 bit por cada
estado de Grafcet. Si el bit es TRUE, el estado Grafcet se activa
en el siguiente ciclo.
 1 variable DEACTIVATE_STATES que contiene 1 bit por cada
estado de Grafcet. Si el bit es TRUE, el estado Grafcet se
desactiva en el siguiente ciclo.
programa Grafcet Este programa implementa la máquina de estado de Grafcet.
Contiene la lógica para la activación y desactivación de los pasos
de Grafcet.
El programa contiene las siguientes acciones:
 Init inicializa los pasos de Grafcet a sus estados iniciales. Se
ejecuta cuando el programa de aplicación establece el bit de
sistema %S21.
 Reset restablece los pasos de Grafcet a FALSE. Se ejecuta
cuando el programa de aplicación establece el bit de sistema
%S22.

Las instrucciones de Grafcet del programa de aplicación se convierten del modo siguiente:
 El principio de cada paso de Grafcet se marca mediante una etiqueta con el nombre del paso.
La primera instrucción del paso de Grafcet comprueba si el paso está activo. Si no es así, salta
a la etiqueta del siguiente paso de Grafcet.
 El acceso a %Xi se convierte en un acceso a la variable STATES.Xi.
 Una instrucción de activación de Grafcet de #i se convierte en la definición del bit de activación
del estado i y el bit de desactivación del estado actual.
 Una instrucción de desactivación Grafcet de #Di se convierte en la definición del bit de
desactivación del estado i y el bit de desactivación del estado actual.
Puede extender el programa Grafcet convertido si tiene en cuenta la información proporcionada
en esta sección.

92 EIO0000000071 11/2016
Gestión de dispositivos

Conversión de Grafcet gráfico


Grafcet gráfico es similar al lenguaje de programación SFC que proporciona SoMachine. Por ello,
las POU de Grafcet gráfico se convierten en un programa SFC en la medida de lo posible.
Existen no obstante las siguientes diferencias entre Grafcet gráfico y SFC:

Grafcet gráfico SFC Información adicional


Puede tener un número arbitrario Debe tener un único paso inicial. Si la POU de Grafcet gráfico
de pasos iniciales. contiene diversos pasos iniciales,
el convertidor creará varios pasos
iniciales en SFC. Como
consecuencia, la aplicación
convertida no podrá compilarse sin
que se detecten errores.
Adapte con cuidado el programa
convertido.
Se permite la activación de varios Únicamente puede activarse un Compruebe detenidamente que el
pasos de una derivación paso de una derivación alternativa. programa convertido funciona del
alternativa. modo esperado.
Las transiciones de salida de un Las transiciones del Compruebe detenidamente que el
paso se evalúan justo después de programa SFC se evalúan una vez programa convertido funciona del
ejecutarse el paso en cuestión. que se han ejecutado todos los modo esperado.
pasos activos.
El diseño y la disposición de los El diseño y la disposición de los El diseño gráfico se convierte a
pasos, las transiciones y las pasos, las transiciones y las SFC en la medida de lo posible.
derivaciones son relativamente derivaciones presentan mayores Las incompatibilidades detectadas
libres. restricciones. durante la conversión se notifican
en la vista Mensajes.
Las acciones de pasos y secciones
de transición se convierten
totalmente.
Complete el programa SFC creado
según sea necesario.

Las POU de Grafcet gráfico pueden inicializarse estableciendo el bit de sistema %S21. Si este bit
se establece en el proyecto de SoMachine Basic, el convertidor activará la variable implícita
SFCInit y la utilizará para inicializar el programa SFC.

EIO0000000071 11/2016 93
Gestión de dispositivos

Conversión de módulos de ampliación TM2 a módulos de ampliación TM3


Los controladores Twido utilizan solamente módulos de ampliación TM2. Si bien los controladores
lógicos M221 y M241 pueden gestionar módulos TM2 así como TM3, se recomienda utilizar
módulos TM3. Para convertir los módulos TM2 utilizados en el proyecto de Twido en módulos TM3
para el proyecto de SoMachine se encuentra seleccionada de forma predeterminada la opción
Actualizar módulos TM2 a TM3.
Los módulos de ampliación TM2 se convierten en módulos de ampliación TM3 tal como se indica
en la tabla:

Módulo de ampliación TM2 Módulo de ampliación Información adicional


de origen TM3 de destino
TM2DDI8DT TM3DI8 –
TM2DAI8DT TM3DI8A –
TM2DDO8UT TM3DQ8U –
TM2DDO8TT TM3DQ8T –
TM2DRA8RT TM3DQ8R –
TM2DDI16DT TM3DI16 –
TM2DDI16DK TM3DI16K –
TM2DRA16RT TM3DQ16R –
TM2DDO16UK TM3DQ16UK –
TM2DDO16TK TM3DQ16TK –
TM2DDI32DK TM3DI32K –
TM2DDO32UK TM3DQ32UK –
TM2DDO32TK TM3DQ32TK –
TM2DMM8DRT TM3DM8R –
TM2DMM24DRF TM3DM24R –
TM2AMI2HT TM3AI2H –
TM2AMI4LT TM3TI4 Es posible que el comportamiento del módulo de
temperatura convertido difiera del comportamiento del
módulo original. Compruebe detenidamente el módulo
convertido.
TM2AMI8HT TM3AI8 –
TM2ARI8HT – Los módulos TM2 TM2ARI8HT, TM2ARI8LRJ y
TM2ARI8LT no se convierten porque no existe ningún
módulo de ampliación TM3 correspondiente. Puede
sustituir este módulo por dos módulos TM3TI4.
TM2AMO1HT TM3AQ2 El módulo de ampliación TM3 de destino contiene más
canales de E/S que el módulo TM2 de origen.
TM2AVO2HT –

94 EIO0000000071 11/2016
Gestión de dispositivos

Módulo de ampliación TM2 Módulo de ampliación Información adicional


de origen TM3 de destino
TM2AMM3HT TM3TM3 –
TM2ALM3LT Es posible que el comportamiento del módulo de
temperatura convertido difiera del comportamiento del
módulo original. Compruebe detenidamente el módulo
convertido.
TM2AMI2LT TM3TI4 El módulo de ampliación TM3 de destino contiene más
canales de E/S que el módulo TM2 de origen.
Es posible que el comportamiento del módulo de
temperatura convertido difiera del comportamiento del
módulo original. Compruebe detenidamente el módulo
convertido.
TM2AMM6HT TM3AM6 –
TM2ARI8LRJ – Los módulos TM2 TM2ARI8HT, TM2ARI8LRJ y
TM2ARI8LT no se convierten porque no existe ningún
módulo de ampliación TM3 correspondiente. Puede
sustituir este módulo por dos módulos TM3TI4.
TM2ARI8LT – Los módulos TM2 TM2ARI8HT, TM2ARI8LRJ y
TM2ARI8LT no se convierten porque no existe ningún
módulo de ampliación TM3 correspondiente. Puede
sustituir este módulo por dos módulos TM3TI4.

NOTA: Si utiliza módulos de ampliación TM2 y TM3 en el proyecto de SoMachine, anote su


posición en la estructura de árbol: si los nodos TM3 se encuentran debajo de los nodos TM2 en
dicha estructura, se notificará como un error de Compilar detectado en la vista Mensajes.

EIO0000000071 11/2016 95
Gestión de dispositivos

Acceso inmediato de E/S


Las instrucciones READ_IMM_IN y WRITE_IMM_OUT de SoMachine Basic para el acceso
inmediato a los canales de E/S locales digitales no se convierten.
No existe ninguna función equivalente para los controladores HMI SCU.
Para los controladores M241, puede utilizar las funciones GetImmediateFastInput y
PhysicalWriteFastOutputs que proporciona la biblioteca PLCSystem, aunque debe tener en
cuenta las siguientes diferencias:

Instrucciones READ_IMM_IN y WRITE_IMM_OUT Funciones GetImmediateFastInput y


(controladores M221) PhysicalWriteFastOutputs (controladores M241)
Acceso a todas las entradas y salidas locales. Acceso únicamente a las entradas y salidas rápidas.
WRITE_IMM_OUT escribe un único bit (de manera PhysicalWriteFastOutputs escribe salidas rápidas al
similar a la función de lectura). mismo tiempo.
WRITE_IMM_OUT devuelve un código de error. PhysicalWriteFastOutputs únicamente devuelve la
información sobre las salidas que se han escrito.
Los códigos de error de READ_IMM_IN y GetImmediateFastInput difieren entre sí.
READ_IMM_IN actualiza el objeto de entrada GetImmediateFastInput únicamente devuelve el valor de
(%I0.x). lectura pero no actualiza el canal de entrada.

Funciones de comunicación de Twido


Las siguientes funciones de comunicación de Twido no se convierten:
 AS Interface
 CANopen
 conexión remota

Si utiliza estas funciones de comunicación en su aplicación Twido, debe adaptar la aplicación


SoMachine manualmente.
Durante la conversión, se crea una variable para cada objeto de E/S relacionado con el fin de
permitir que la aplicación SoMachine se compile correctamente. Estas variables se recopilan en
listas de variables globales separadas. Esto le ayuda a identificar las variables que deben
sustituirse.

96 EIO0000000071 11/2016
Gestión de dispositivos

Errores y alertas detectados indicados en la vista Mensajes


Si se detectan errores o alertas durante el proceso de conversión, se muestra un cuadro de
mensaje que indica el número de errores y alertas detectados. Para obtener más información,
consulte la categoría Conversión de proyecto de la vista (véase SoMachine, Comandos de menú,
Ayuda en línea) Mensajes. Verifique detenidamente cada entrada para comprobar si debe adaptar
su aplicación.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Verifique que el programa del controlador de destino contenga las configuraciones esperadas
y que proporcione las funciones previstas después de convertir el proyecto.
 Depure, verifique y valide por completo la funcionalidad del programa convertido antes de
ponerlo en servicio.
 Antes de convertir un programa, verifique que el programa de origen sea válido, es decir, que
pueda descargarse en el controlador de origen.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

 Un mensaje de advertencia indica que el proceso de conversión ha realizado ciertos ajustes


que, con toda probabilidad, no tendrán ningún impacto en las funciones de su aplicación.
 Un mensaje de error indica que ciertas partes de la aplicación no se han podido convertir por
completo. En este caso, debe adaptar la aplicación manualmente para mantener la misma
funcionalidad en la aplicación de destino.
 Si el programa de aplicación utiliza una funcionalidad que no se puede convertir por completo,
el convertidor crea variables para los objetos de lenguaje no admitidos. Esto le permite compilar
correctamente la aplicación. Sin embargo, debe verificar esta funcionalidad no admitida tras la
conversión.
Para guardar la información mostrada en la vista Mensajes, puede copiarla en el portapapeles
(pulse CTRL + C) y pegarla en un archivo de datos (pulse CTRL + V).

EIO0000000071 11/2016 97
Gestión de dispositivos

98 EIO0000000071 11/2016
SoMachine
Cuadros de diálogo del editor de dispositivos común
EIO0000000071 11/2016

Capítulo 6
Cuadros de diálogo del editor de dispositivos común

Cuadros de diálogo del editor de dispositivos común

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
6.1 Configuración del dispositivo 100
6.2 Asignación de E/S 145

EIO0000000071 11/2016 99
Cuadros de diálogo del editor de dispositivos común

Sección 6.1
Configuración del dispositivo

Configuración del dispositivo

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Información general sobre editores de dispositivos 101
Selección de controlador 103
Configuración de comunicación 120
Configuración 124
Aplicaciones 125
Archivos 127
Registro 128
Ajustes PLC 130
Usuarios y grupos 132
Distribución de tareas 143
Estado 144
Información 144

100 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Información general sobre editores de dispositivos

Descripción general
El editor de dispositivos proporciona parámetros para la configuración de un dispositivo, que se
gestiona en el árbol Dispositivos.
Para abrir el editor de dispositivos para un dispositivo específico, haga lo siguiente:
 Haga doble clic en el nodo del dispositivo en el árbol Dispositivos o
 Seleccione el dispositivo en el árbol Dispositivos y ejecute el comando Modificar objeto a través
del menú contextual o del menú Proyecto.
El cuadro de diálogo Herramientas → Opciones → Editor de dispositivo le permite crear las vistas
genéricas de configuración de dispositivos invisibles (véase página 124).
En este capítulo se describen los principales cuadros de diálogo del editor de dispositivos. Los
cuadros de diálogo de configuración específicos de bus se describen por separado.

Cuadros de diálogo del editor de dispositivos principal


El título del cuadro de diálogo principal contiene el nombre del dispositivo, por ejemplo, MYPlc.
En función del tipo de dispositivo, el editor de dispositivos puede ofrecer las siguientes fichas:

Ficha Descripción
Selección de controlador Configuración de la conexión entre el sistema de programación y un dispositivo
(véase página 103) programable (controlador).
Esta es la ficha predeterminada para SoMachine V4.0 y versiones posteriores.
SoMachine V3.1 y versiones anteriores utilizan la ficha Configuración de
comunicación de forma predeterminada.
Configuración de comunicación Configuración de la conexión entre el sistema de programación y un dispositivo
(véase página 120) programable (controlador).
Esta es la ficha predeterminada para SoMachine V3.1 y versiones anteriores.
SoMachine V4.0 y versiones posteriores utilizan la ficha Selección de
controlador de forma predeterminada.
Configuración (véase página 124) Visualización o configuración de los parámetros del dispositivo.
Aplicaciones (véase página 125) Lista de aplicaciones que están en ejecución en el controlador. Consulte la
descripción en el capítulo (véase página 155) Programa.
Archivos (véase página 127) Configuración de una transferencia de archivos entre el host y el controlador.
Registro (véase página 128) Visualización del archivo de registro del controlador.
Ajustes PLC (véase página 130) Configuración de:
 aplicación asignada para el manejo de E/S
 comportamiento de E/S en estado de detención
 opciones de ciclo de bus

Usuarios y grupos Administración de usuarios en relación con el acceso al dispositivo en tiempo de


(véase página 914) ejecución.

EIO0000000071 11/2016 101


Cuadros de diálogo del editor de dispositivos común

Ficha Descripción
Derechos de acceso Configuración de los derechos de acceso a los archivos y objetos de ejecución
(véase página 918) para cada grupo de usuarios.
Distribución de tareas Visualización de las entradas y salidas asignadas a la tarea definida; se utiliza
(véase página 143) para la resolución de problemas.
Estado (véase página 144) Estado específico del dispositivo y mensajes de diagnóstico.
Información (véase página 144) Información general sobre el dispositivo (por ejemplo: nombre, fabricante,
versión).
Asignación E/S Asignación de los canales de entrada y salida de un dispositivo de E/S en
(véase página 145) variables de proyecto (aplicación).

102 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Selección de controlador

Descripción general
La vista Selección de controlador del editor de dispositivos proporciona acceso al servicio Network
Device Identification. Esta vista permite buscar en la red Ethernet dispositivos disponibles (como
controladores o dispositivos HMI) y visualizarlos en una lista. En esta vista, puede configurar los
parámetros para la comunicación entre los dispositivos (denominados controladores en este
capítulo) y el sistema de programación.
La lista de controladores contiene aquellos controladores de la red que han enviado una respuesta
a la petición de SoMachine. Puede que el controlador elegido no esté incluido en esta lista. Esto
puede deberse a varios motivos. Para ver las posibles causas y las soluciones correspondientes,
consulte el capítulo Acceso a controladores - Resolución de problemas y preguntas frecuentes
(véase página 825).
La vista Selección de controlador sólo se muestra si la comunicación entre el controlador y el
sistema de programación se establece mediante la dirección IP. Este es el ajuste predeterminado
para SoMachine V4.0 y versiones posteriores. Puede seleccionar entre un establecimiento de
comunicación mediante una dirección IP o mediante una ruta activa en el cuadro de diálogo
Configuración del proyecto → Configuración de comunicación. Si se selecciona la opción Marque
mediante "dirección IP", se muestra la vista Selección de controlador en el editor de dispositivos.
De lo contrario, se muestra la vista Configuración de comunicación.
Vista Selección de controlador del editor de dispositivos

EIO0000000071 11/2016 103


Cuadros de diálogo del editor de dispositivos común

La vista Selección de controlador contiene los siguientes elementos:


 botones de la barra de herramientas
 lista con información sobre los controladores disponibles
 opción, lista y cuadro de texto en la parte inferior de la vista

Descripción de los botones de la barra de herramientas


Los botones siguientes están disponibles en la barra de herramientas:

Botón Descripción
Óptica Haga clic en este botón para que el controlador seleccionado indique una señal óptica:
parpadea rápidamente un LED de control. Esto puede resultar útil para identificar el controlador
respectivo si se usan muchos controladores.
La función se detiene al hacer clic por segunda vez o de forma automática tras unos
30 segundos.
NOTA: La señal óptica solo la emiten los controladores que admiten esta función.
Óptica y acústica Haga clic en este botón para que el controlador seleccionado indique una señal óptica y
acústica: empieza haciendo un pitido y parpadea rápidamente un LED de control. Esto puede
resultar útil para identificar el controlador respectivo si se usan muchos controladores.
La función se detiene al hacer clic por segunda vez o de forma automática tras unos
30 segundos.
NOTA: Las señales óptica y acústica solo las emiten los controladores que admiten esta
función.
Actualización Haga clic en este botón para actualizar la lista de controladores. Se envía una petición a los
controladores de la red. Los controladores que responden a la petición se incluyen en una lista
con los valores actuales.
Las entradas de controladores existentes se actualizan con cada nueva petición.
Los controladores ya incluidos en la lista pero que no responden a una nueva petición no se
suprimen. Quedan marcados como inactivos mediante una cruz roja que se añade al icono del
controlador.
El botón Actualizar corresponde al comando Actualizar lista que se proporciona en el menú
contextual si se hace clic con el botón derecho del ratón en un controlador de la lista.
Para actualizar la información de un controlador seleccionado, el menú contextual proporciona
el comando Actualizar este controlador. Este comando solicita información más detallada del
controlador seleccionado.
NOTA: El comando Actualizar este controlador también puede actualizar la información de
otros controladores.

104 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Botón Descripción
Eliminar Los controladores que no responden a una exploración de red se marcan como inactivos en la
controladores lista. Se indica mediante una cruz roja que se añade al icono del controlador. Haga clic en este
inactivos de la lista. botón para eliminar de forma simultánea todos los controladores marcados como controladores
inactivos de la lista.
NOTA: Puede que un controlador se marque como inactivo aunque en realidad no lo esté.
El menú contextual que se abre al hacer clic con el botón derecho del ratón sobre un
controlador de la lista ofrece 2 comandos adicionales para eliminar controladores:
 El comando Eliminar el controlador seleccionado de la lista permite eliminar solamente los
controladores seleccionados de la lista.
 El comando Remove all controllers from list permite eliminar de forma simultánea todos los
controladores de la lista.
Nuevo favorito... y Puede utilizar la opción Favoritos para ajustar la selección de controladores a sus requisitos
Favorite 0 personales. Esto puede ayudarle a realizar el seguimiento de muchos controladores de la red.
Un Favorito describe una colección de controladores reconocidos por un identificador único.
Haga clic en un botón de favorito (como Favorite 0) para seleccionarlo o cancelar su selección.
Si no ha seleccionado ningún favorito, estarán visibles todos los controladores detectados.
También es posible acceder a la opción Favoritos a través del menú contextual. Para abrirla,
basta con hacer clic con el botón derecho del ratón sobre un controlador de la lista.
Si se mueve el cursor por encima del botón Favorito de la barra de herramientas, se verán los
controladores asociados en el formato de información sobre herramientas.

Lista de controladores
La lista de controladores de la parte central de la vista Selección de controlador del editor de
dispositivo muestra los controladores que han enviado una respuesta a la exploración de la red.
Proporcionar información sobre cada controlador en diversas·columnas. Es posible adaptar las
columnas que aparecen en la lista de controladores según sus requisitos personales.

EIO0000000071 11/2016 105


Cuadros de diálogo del editor de dispositivos común

Para ello, haga clic con el botón derecho del ratón en el encabezado de una columna para abrir el
cuadro de diálogo Procesar columnas.

Puede crear su propio diseño para la tabla. Haga clic en Nuevo e introduzca un nombre para el
diseño. Para cambiar columnas de la lista de Posibles columnas a la lista de Columnas actuales
y viceversa, haga clic en los botones con flechas horizontales. Para cambiar el orden de las
columnas en la lista Columnas actuales, haga clic en los botones de flecha arriba y flecha abajo.

106 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Configuración de comunicación
Para establecer los parámetros de comunicación entre el sistema de programación y un
controlador, haga lo siguiente:

Paso Acción
1 Seleccione el controlador de la lista de controladores.
2 Haga clic con el botón derecho en la entrada de controlador y ejecute el comando Procesar
configuración de la comunicación... en el menú contextual.
Resultado: Se abre el cuadro de diálogo Procesar configuración de la comunicación... con los ajustes
actuales del controlador.

NOTA: La mayoría de los controladores proporcionan un parámetro (como RemoteAccess) que


ayuda a evitar que se realicen cambios en los parámetros de comunicación del controlador.

EIO0000000071 11/2016 107


Cuadros de diálogo del editor de dispositivos común

Paso Acción
3 Configure los parámetros de comunicación:
 Modalidad de inicio
 FIXED: Se utiliza una dirección IP fija según los valores especificados más abajo (Dirección IP,
Máscara de subred, Puerta de enlace).
 BOOTP: La dirección IP se recibe de forma dinámica mediante BOOTP (protocolo Bootstrap).
Los valores de más abajo se ignorarán.
 DHCP: La dirección IP se recibe de forma dinámica mediante DHCP (protocolo de configuración
dinámica de host). Los valores de más abajo se ignorarán.
NOTA: No todos los dispositivos admiten BOOTP o DHCP.
 Dirección IP
Al configurar direcciones IP, consulte el mensaje de peligro mostrado más abajo.
Este cuadro de texto contiene la dirección IP del controlador. Se trata de una dirección exclusiva
formada por 4 números comprendidos entre 0 y 255 y separados por puntos. La dirección IP debe
ser exclusiva en esta (sub)red.
 Máscara de subred
La máscara de subred especifica el segmento de red al que pertenece el controlador. Se trata de
una dirección formada por 4 números comprendidos entre 0 y 255 y separados por puntos.
Generalmente, sólo se utilizan los valores 0 y 255 para los números estándar de máscara de
subred. No obstante, pueden utilizarse otros valores numéricos. El valor de la máscara de subred
suele ser el mismo para todos los controladores de la red.
 Puerta de enlace
La dirección de puerta de enlace es la dirección de un enrutador IP local que se encuentra en la
misma red que el controlador. El enrutador IP transfiere los datos a destinos fuera de la red local.
Se trata de una dirección formada por 4 números comprendidos entre 0 y 255 y separados por
puntos. El valor de la puerta de enlace suele ser el mismo para todos los controladores de la red.
 Para guardar los ajustes de comunicación en el controlador aunque se reinicie dicho controlador,
active la opción Guardar la configuración permanentemente.
4 Haga clic en Aceptar para transferir la configuración al controlador.

Al gestionar las direcciones IP, recuerde que cada dispositivo de la red requiere una dirección
exclusiva. Si existen varios dispositivos con la misma dirección IP, puede producirse un funciona-
miento imprevisto en la red y el equipo asociado.

108 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Asegúrese de que todos los dispositivos tengan direcciones exclusivas.
 Solicite su dirección IP al administrador del sistema.
 Confirme que la dirección IP del dispositivo es única antes de poner el sistema en
funcionamiento.
 No asigne la misma dirección IP a ningún otro equipo de la red.
 Actualice la dirección IP después de clonar cualquier aplicación que incluya comunicaciones
Ethernet a una dirección exclusiva.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Gestión de Favoritos
Para gestionar los favoritos de la lista de controladores, realice los pasos siguientes:

Paso Acción
1 Seleccione el controlador de la lista de controladores.
2 Haga clic con el botón derecho del ratón sobre el controlador y seleccione uno de los
comandos:
 Nuevo favorito para crear un grupo de favoritos nuevo.
 Favorite n para
 añadir el controlador seleccionado a la lista de favoritos
 eliminar el controlador seleccionado de la lista de favoritos
 eliminar todos los controladores de la lista de favoritos
 seleccionar un favorito
 cambiar el nombre de un favorito
 eliminar un favorito

Opción Modalidad online segura


Con la opción Modalidad online segura, SoMachine muestra un mensaje que solicita confirmación
cuando se selecciona uno de los siguientes comandos: Forzar valores, Inicio de sesión, Descarga
múltiple, Desactivar la lista de forzado, Ciclo individual, Inicio, Parada, Escribir valores. Para
desactivar la modalidad online segura y, por consiguiente, hacer que no se muestre este mensaje,
desmarque esta opción.

EIO0000000071 11/2016 109


Cuadros de diálogo del editor de dispositivos común

Especificación de nombres de dispositivo exclusivos (Nodename)


El término Nodename se utiliza como sinónimo del término "nombre de dispositivo". Dado que los
nodenames también se utilizan para identificar los controladores tras una exploración de red, debe
gestionarlos con precaución como direcciones IP y verificar que cada nodename sea exclusivo en
la red. Si hay varios dispositivos con el mismo Nodename, puede producirse un funcionamiento
imprevisible de la red y el equipo asociado.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Asegúrese de que todos los dispositivos tengan nodenames exclusivos.
 Confirme que el nodename del dispositivo sea exclusivo antes de poner el sistema en
funcionamiento.
 No asigne el mismo nodename a ningún otro equipo de la red.
 Actualice el nodename tras clonar cualquier aplicación que incluya comunicaciones Ethernet
a un nodename exclusivo.
 Cree un nodename exclusivo para cada dispositivo que no lo cree automáticamente, como los
controladores HMI XBT.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

En función del tipo de controlador, el procedimiento de creación automática del NodeName


(nombre de dispositivo) puede variar. Para crear un nombre exclusivo, algunos controladores
integran la dirección IP, y otros utilizan la dirección MAC del adaptador Ethernet. En este caso, no
es necesario cambiar el nombre.
Otros dispositivos, como los controladores HMI XBT, no crean automáticamente ningún nombre
de dispositivo exclusivo. En tal caso, asigne un nombre de dispositivo exclusivo (NodeName)
como se indica a continuación:

Paso Acción
1 Haga clic con el botón derecho en el controlador de la lista y ejecute el comando Cambiar el
nombre del dispositivo... en el menú contextual.
Resultado: Se abre el cuadro de diálogo Cambiar el nombre del dispositivo.
2 En el cuadro de diálogo Cambiar el nombre del dispositivo, especifique un nombre de
dispositivo exclusivo en el cuadro de texto Nuevo.
3 Haga clic en el botón Aceptar para confirmar.
Resultado: El nombre de dispositivo especificado se asigna al controlador y aparece en la
columna NodeName de la lista.
NOTA: Nombre de dispositivo y Nodename son sinónimos.

110 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Especificación de la Modalidad de conexión


La lista Modalidad de conexión de la parte inferior izquierda de la vista Selección de controlador
permite seleccionar un formato para la dirección de conexión que debe especificar en el campo
Dirección.
Se admiten los siguientes formatos:
 Automático (véase página 111)
 Nodename (véase página 112)
 Dirección IP (véase página 112)
 Nodename a través de NAT (TCP remoto) (véase página 113) (NAT = traducción de
direcciones de red)
 Dirección IP a través de NAT (TCP remoto) (véase página 114)
 Nodename a través de pasarela (véase página 115)
 Dirección IP a través de pasarela (véase página 117)
 Nodename a través de MODEM (véase página 119)

NOTA: Después de cambiar la Modalidad de conexión, puede que sea necesario realizar dos
veces el procedimiento de inicio de sesión para obtener acceso al controlador seleccionado.

Modalidad de conexión: Automático


Si selecciona la opción Automático en la lista Modalidad de conexión, puede especificar el
Nodename, la dirección IP o el URL (localizador uniforme de recursos) de conexión para
especificar la Dirección.
NOTA: No utilice espacios al principio o al final de la Dirección.
Si ha seleccionado otra Modalidad de conexión y ha especificado una Dirección para esta
modalidad, la dirección especificada seguirá estando disponible en el cuadro de texto Dirección si
cambia a Modalidad de conexión: → Automático.
Ejemplo:
Modalidad de conexión → Nodename a través de NAT (TCP remoto) seleccionado y dirección y
Nodename especificados

Si cambia a Modalidad de conexión → Automático, la información se convierte en un URL, que


empieza con el prefijo enodename3://

EIO0000000071 11/2016 111


Cuadros de diálogo del editor de dispositivos común

Si se ha especificado una dirección IP para la modalidad de conexión (por ejemplo, cuando se ha


seleccionado Modalidad de conexión → Dirección IP), la información se convierte en un URL que
empieza con el prefijo etcp3://. Ejemplo: etcp3://<IpAddress>.
Si se ha especificado un Nodename para la modalidad de conexión (por ejemplo, se ha
seleccionado Modalidad de conexión → Nodename), la información se convierte en un URL que
empieza con el prefijo enodename3://. Ejemplo: enodename3://<Nodename>.

Modalidad de conexión → Nodename


Si selecciona la opción Nodename en la lista Modalidad de conexión, puede especificar el
Nodename de un controlador para indicar la Dirección. El cuadro de texto se rellena automáti-
camente si hace doble clic en un controlador de la lista de controladores.
Ejemplo: Nodename: MyM238 (10.128.158.106)
Si el controlador seleccionado no proporciona un Nodename, Modalidad de conexión cambia
automáticamente a Dirección IP, y la dirección IP de la lista aparece en el cuadro de texto
Dirección.
NOTA: No utilice espacios al principio o al final de la Dirección.
No utilice comas (,) en el cuadro de texto Dirección.

Modalidad de conexión → Dirección IP


Si selecciona la opción Dirección IP en la lista Modalidad de conexión, puede especificar la
dirección IP de un controlador para indicar la Dirección. El cuadro de texto se rellena automáti-
camente si hace doble clic en un controlador de la lista de controladores.
Ejemplo: Dirección IP: 190.201.100.100
Si el controlador seleccionado no proporciona una dirección IP, la Modalidad de conexión cambia
automáticamente a Nodename, y el Nodename de la lista aparece en el cuadro de texto Dirección.
NOTA: Especifique la dirección IP con el formato <Number>.<Number>.<Number>.<Number>

112 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Modalidad de conexión → Nodename a través de NAT (TCP remoto)


Si selecciona la opción Nodename a través de NAT (TCP remoto) en la lista Modalidad de
conexión, puede especificar la dirección de un controlador que reside después de un
enrutador NAT en la red. Introduzca el Nodename del controlador, así como la dirección IP o
nombre de host y puerto del enrutador NAT.

1 PC/HMI
2 enrutador NAT
3 dispositivo de destino

Ejemplo: Dirección/Puerto NAT: 10.128.158.106/1105Nodename de destino:


MyM238 (10.128.158.106)
NOTA: Especifique una dirección IP válida (formato
<Number>.<Number>.<Number>.<Number>) o un nombre de host válido para la Dirección
NAT.
Especifique el puerto del enrutador NAT que se debe utilizar. De lo contrario, se utiliza el puerto
predeterminado 1105.
No utilice espacios al principio o al final ni utilice comas en el cuadro de texto Nodename de
destino.
La información que especifique se interpreta como un URL que crea un puente TCP remoto
(utilizando un controlador de bloque TCP) y a continuación se conecta buscando un controlador
con el Nodename especificado en la puerta de enlace local.
NOTA: El enrutador NAT puede estar ubicado en el propio controlador de destino. Puede utilizarlo
para crear un puente TCP a un controlador.

EIO0000000071 11/2016 113


Cuadros de diálogo del editor de dispositivos común

Modalidad de conexión → Dirección IP a través de NAT (TCP remoto)


Si selecciona la opción Dirección IP a través de NAT (TCP remoto) (NAT = traducción de
direcciones de red) en la lista Modalidad de conexión, puede especificar la dirección de un
controlador que reside después de un enrutador NAT en la red. Introduzca la dirección IP del
controlador, así como la dirección IP o nombre de host y puerto del enrutador NAT.

1 PC/HMI
2 enrutador NAT
3 dispositivo de destino

Ejemplo: Dirección/Puerto NAT: 10.128.154.206/1217Dirección IP de destino:


192.168.1.55
NOTA: Especifique una dirección IP válida (formato
<Number>.<Number>.<Number>.<Number>) o un nombre de host válido para la Dirección
NAT.
Especifique el puerto del enrutador NAT que se debe utilizar. De lo contrario, se utiliza el puerto
de puerta de enlace predeterminado 1217 de SoMachine.
Especifique una dirección IP válida (formato <Number>.<Number>.<Number>.<Number>)
para la Dirección IP de destino.
La información que especifique se interpreta como un URL que crea un puente TCP remoto
(utilizando un controlador de bloque TCP) y a continuación se conecta buscando un controlador
con el Nodename especificado en la puerta de enlace local. La dirección IP se busca en el
Nodename (como MyController (10.128.154.207)) o llamando a un servicio en cada
dispositivo explorado de la puerta de enlace.
NOTA: El enrutador NAT puede estar ubicado en el propio controlador de destino. Puede utilizarlo
para crear un puente TCP a un controlador.

114 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Modalidad de conexión → Nodename a través de pasarela


Si selecciona la opción Nodename a través de pasarela en la lista Modalidad de conexión, puede
especificar la dirección de un controlador que reside después o cerca de un enrutador de puerta
de enlace SoMachine en la red. Especifique el Nodename del controlador, así como la dirección IP
o nombre de host y puerto del enrutador de puerta de enlace SoMachine.

1 PC/HMI
2 PC/HMI/dispositivos con puerta de enlace SoMachine instalada
3 dispositivo de destino

Ejemplo: Dirección/puerto de pas.: 10.128.156.28/1217Nodename de destino: MyM238


NOTA: Especifique una dirección IP válida (formato
<Number>.<Number>.<Number>.<Number>) o un nombre de host válido para
Dirección/puerto de pas.
Especifique el puerto del enrutador de puerta de enlace que se debe utilizar. De lo contrario, se
utiliza el puerto de puerta de enlace predeterminado 1217 de SoMachine.
No utilice espacios al principio o al final ni utilice comas en el cuadro de texto Nodename de
destino.
La información que especifica se interpreta como URL. Se busca en la puerta de enlace un
dispositivo con el Nodename especificado que esté conectado directamente a esta puerta de
enlace. En la topología de puerta de enlace SoMachine, "conectado directamente" significa que
se trata del nodo raíz o de un nodo hijo del nodo raíz.
NOTA: La puerta de enlace SoMachine puede encontrarse en el controlador de destino, el PC de
destino o el propio PC local, lo que permite conectarse a un dispositivo que no tiene un nodename
exclusivo pero que reside en una subred tras una red SoMachine.

EIO0000000071 11/2016 115


Cuadros de diálogo del editor de dispositivos común

En el gráfico se muestra un ejemplo que permite una conexión desde la PCI/HMI al controlador 3
de destino (elemento 4 del gráfico) mediante la dirección de salto PC2 (elemento 5 del gráfico),
que debe tener una puerta de enlace SoMachine instalada.

1 PC 1 de salto
2 controlador de destino 1: MyNotUniqueNodename
3 controlador de destino 2: MyNotUniqueNodename
4 controlador de destino 3: MyNotUniqueNodename
5 PC 2 de salto
6 PC/HMI
7 enrutador
8 Ethernet

116 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Modalidad de conexión → Dirección IP a través de pasarela


Si selecciona la opción Dirección IP a través de pasarela en la lista Modalidad de conexión, puede
especificar la dirección de un controlador que reside después o cerca de un enrutador de puerta
de enlace SoMachine en la red. Introduzca la dirección IP del controlador, así como la dirección IP
o nombre de host y puerto del enrutador de puerta de enlace SoMachine.

1 PC/HMI
2 PC/HMI/dispositivos con puerta de enlace SoMachine instalada
3 dispositivo de destino

Ejemplo: Dirección/puerto de pas.: 10.128.156.28/1217Dirección IP de destino:


10.128.156.222
NOTA: Especifique una dirección IP válida (formato
<Number>.<Number>.<Number>.<Number>) o un nombre de host válido para
Dirección/puerto de pas.
Especifique el puerto del enrutador de puerta de enlace que se debe utilizar. De lo contrario, se
utiliza el puerto de puerta de enlace predeterminado 1217 de SoMachine.
Especifique una dirección IP válida (formato <Number>.<Number>.<Number>.<Number>)
para la Dirección IP de destino.
La información que especifica se interpreta como URL. Se busca en la puerta de enlace un
dispositivo con la dirección IP especificada. La dirección IP se busca en el Nodename (como
MyController (10.128.154.207)) o llamando a un servicio en cada dispositivo explorado
de la puerta de enlace.
NOTA: La puerta de enlace SoMachine puede estar ubicada en el controlador de destino, el PC
de destino o en el propio PC local. Por tanto, se puede conectar a un dispositivo que no tenga un
Nodename exclusivo pero que resida en una subred después de una red SoMachine.

EIO0000000071 11/2016 117


Cuadros de diálogo del editor de dispositivos común

En el gráfico se muestra un ejemplo que permite la conexión desde el PC2 de salto (elemento 5
del gráfico), que debe tener una puerta de enlace SoMachine instalada en el controlador 3 de
destino (elemento 4 del gráfico).

1 PC 1 de salto
2 controlador de destino 1: 10.128.156.20
3 controlador de destino 2: 10.128.156.20
4 controlador de destino 3: 10.128.156.20
5 PC 2 de salto
6 PC/HMI
7 enrutador
8 Ethernet

118 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Modalidad de conexión → Nodename a través de MODEM


Si selecciona la opción Nodename a través de MODEM en la lista Modalidad de conexión, puede
especificar un controlador que resida después de una línea de módem.

1 PC/HMI
2 PC/HMI/MODEM
3 módem de destino
4 dispositivo de destino
5 línea telefónica

Para establecer una conexión con el módem, haga clic en el botón MODEM → Conectar. En el
cuadro de diálogo Modem Configuration, especifique el número de teléfono (Número de teléfono)
del módem de destino y configure los ajustes de comunicación. Haga clic en Aceptar para
confirmar y establecer una conexión con el módem.
Si se detiene la puerta de enlace SoMachine y se vuelve a iniciar, finalizarán las conexiones de la
puerta de enlace local. SoMachine muestra un mensaje que requiere confirmación antes de que
empiece el proceso de reinicio.
Una vez establecida correctamente la conexión con el módem, el botón MODEM cambia de
Conectar a Desconectar. La lista de controladores se borra y se actualiza explorando la conexión
de módem para buscar los controladores conectados. Puede hacer doble clic en un elemento de
la lista de controladores o especificar un Nodename en el cuadro de texto Nodename de destino:
para conectar a un controlador específico.
Haga clic en el botón MODEM → Desconectar para finalizar la conexión de módem y detener y
reiniciar la puerta de enlace SoMachine. La lista de controladores se borra y se actualiza
explorando la red Ethernet.

EIO0000000071 11/2016 119


Cuadros de diálogo del editor de dispositivos común

Configuración de comunicación

Descripción general
La vista Configuración de comunicación del editor de dispositivos se utiliza para configurar los
parámetros para la comunicación entre el dispositivo y el sistema de programación.
Sólo es visible si la comunicación entre el dispositivo y el sistema de programación se establece
mediante la ruta activa. Este es el ajuste predeterminado para SoMachine V3.1 y versiones
anteriores. Puede seleccionar entre un establecimiento de comunicación mediante una ruta activa
y una dirección IP en el cuadro de diálogo Configuración del proyecto → Configuración de
comunicación. Si la opción Marque mediante "dirección IP" está seleccionada, la vista Selección
de controlador se muestra en el editor de dispositivos en lugar de en la vista Configuración de
comunicación. Este es el ajuste predeterminado para SoMachine V4.0 y versiones posteriores.
Vista Configuración de comunicación del editor de dispositivos

Esta vista está dividida en 2 partes:


 En la parte izquierda se muestran los canales de puerta de enlace configurados actualmente
en una estructura de árbol.
 En la parte derecha se muestra la información y los datos correspondientes.

120 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Descripción de la estructura de árbol


Cuando crea el primer proyecto en su sistema local, la Puerta de enlace local ya está disponible
como nodo en el árbol. Esta puerta de enlace se inicia automáticamente al arrancar el sistema.
La configuración de la puerta de enlace se muestra en la parte derecha de la ventana:
Ejemplo:
Nombre de nodo: Gateway-1
Puerto: 1217
Dirección IP: 127.0.0.1
Controlador: TCP/IP
Cuando la puerta de enlace está en ejecución, se muestra una viñeta verde delante del nodo
Puerta de enlace; de lo contrario, se muestra una viñeta roja. La viñeta es gris si aún no se ha
producido contacto con la puerta de enlace (en función de algunos protocolos de comunicación,
no se permite sondear la puerta de enlace, por lo que no se puede mostrar el estado).
Con sangría debajo del nodo Puerta de enlace (se abre o cierra por medio del signo +/-), verá las
entradas de todos los dispositivos a los que se puede obtener acceso mediante esta puerta de
enlace. Las entradas de dispositivo vienen precedidas por un símbolo . Las entradas que
cuentan con un ID de destino diferente al del dispositivo actualmente configurado en el proyecto
se muestran en una fuente de color gris. Para obtener una lista actualizada de los dispositivos
actualmente disponibles, use el botón Examinar red.

Los nodos de dispositivo constan de un símbolo seguido de un nombre de nodo y la dirección del
nodo. En la parte derecha de la ventana, se muestran las opciones respectivas: ID del sistema de
destino, Nombre del sistema de destino, Tipo de sistema destino, Fabricante del sistema de
destino y Versión del sistema de destino.
En el campo Seleccionar la ruta de red para el control, se especifica automáticamente el canal de
puerta de enlace seleccionando el canal en la estructura del árbol.

Función de filtro y ordenación


Puede filtrar y ordenar los nodos de puerta de enlace y dispositivo mostrados en el árbol por medio
de los cuadros de selección situados en la parte derecha de la vista:
 Filtro: le permite reducir las entradas de la estructura de árbol a aquellos dispositivos con un ID
de destino que coincida con el del dispositivo configurado en el proyecto.
 Orden de clasificación: le permite ordenar las entradas de la estructura de árbol según los
campos Nombre o Dirección de nodo en orden alfabético o ascendente.

EIO0000000071 11/2016 121


Cuadros de diálogo del editor de dispositivos común

Descripción de los botones/comandos


Para cambiar la configuración de comunicación, existen los siguientes botones o comandos en el
menú contextual:

Botón/comando Descripción
Establecer una ruta activa Este comando establece el canal de comunicación seleccionado como la ruta
activa al controlador. Consulte la descripción del comando Establecer una
ruta activa. Al hacer clic en el nodo en la estructura de árbol se obtiene el
mismo efecto.
Agregar puerta de enlace... El comando Puerta de enlace abre el cuadro de diálogo Puerta de enlace,
donde puede definir una puerta de enlace para que se añada a la
configuración actual.
Consulte la descripción del comando Agregar puerta de enlace.
Agregar dispositivo... Este comando abre el cuadro de diálogo Agregar dispositivo en el que puede
definir manualmente un dispositivo que se añadirá a la entrada de puerta de
enlace seleccionada (tenga en cuenta la funcionalidad Examinar red).
Consulte la descripción del comando Agregar dispositivo...
Modificar puerta de enlace... Este comando abre el cuadro de diálogo Puerta de enlace para editar la
configuración de la puerta de enlace seleccionada.
Consulte la descripción del comando Modificar puerta de enlace...
Eliminar el dispositivo seleccionado Este comando elimina el dispositivo seleccionado del árbol de configuración.
Consulte la descripción del comando Eliminar el dispositivo seleccionado.
Búsqueda del dispositivo por la Este comando busca dispositivos en la red que contengan la dirección
dirección especificada aquí en el árbol de configuración. Aquellos que se encuentren se
representarán a continuación en la puerta de enlace con la dirección de nodo
especificada junto con su nombre. La búsqueda hace referencia a los
dispositivos que hay debajo de la puerta de enlace en cuyo árbol hay una
entrada seleccionada.
Consulte la descripción del comando Búsqueda del dispositivo por la
dirección.
Búsqueda del dispositivo por nombre Este comando busca dispositivos en la red que contengan los nombres
especificados aquí en el árbol de configuración (la búsqueda distingue entre
mayúsculas y minúsculas). Aquellos que se encuentren se representarán a
continuación en la puerta de enlace con el nombre especificado junto con su
dirección de nodo exclusiva. La búsqueda hace referencia a los dispositivos
que hay debajo de la puerta de enlace en cuyo árbol hay una entrada
seleccionada.
Consulte la descripción del comando Búsqueda del dispositivo por nombre.
Búsqueda del dispositivo por la Este comando busca dispositivos en la red que contengan la dirección IP
dirección IP especificada aquí en el árbol de configuración. Aquellos que se encuentren se
representarán a continuación en la puerta de enlace con la dirección de nodo
especificada junto con su nombre. La búsqueda hace referencia a los
dispositivos que hay debajo de la puerta de enlace en cuyo árbol hay una
entrada seleccionada.
Consulte la descripción del comando Búsqueda del dispositivo por la
dirección IP.

122 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Botón/comando Descripción
Conexión a la puerta de enlace local Este comando abre un cuadro de diálogo para la configuración de una puerta
de enlace local y, por tanto, ofrece una alternativa a la edición manual del
archivo Gateway.cfg.
Consulte la descripción del comando Conexión a la puerta de enlace local…
Examinar red Este comando inicia una búsqueda de todos los dispositivos disponibles en la
red local. El árbol de configuración de la puerta de enlace afectada se
actualizará consecuentemente.
Consulte la descripción del comando Examinar red.

Descripción de las opciones


Hay 2 opciones disponibles debajo de la estructura de árbol:

Opción Descripción
No guardar la ruta de red en el Active esta opción si la definición de ruta de red actual no se debe almacenar
proyecto en el proyecto, sino en la configuración de opciones local del ordenador. Por
consiguiente, el ajuste de ruta se restaura si el proyecto se vuelve a abrir en
el mismo ordenador. Se deberá volver a definir si el proyecto se usa en otro
sistema.
Modalidad online segura Active esta opción si, por motivos de seguridad, se debe solicitar confirmación
al usuario cuando seleccione uno de los comandos online siguientes: Forzar
valores, Descarga múltiple, Desactivar la lista de forzado, Ciclo individual,
Inicio, Parada, Escribir valores.

EIO0000000071 11/2016 123


Cuadros de diálogo del editor de dispositivos común

Configuración

Descripción general
La vista Configuración sólo está disponible en el editor de dispositivos si la opción Mostrar los
editores genéricos de configuración del cuadro de diálogo Herramientas → Opciones → Editor de
dispositivos está activada. La vista Configuración muestra los parámetros específicos del
dispositivo y, si lo permite la descripción del dispositivo, ofrece la posibilidad de editar los valores
de los parámetros.
Vista Configuración del editor de dispositivos

La vista contiene los siguientes elementos:

Elemento Descripción
Parámetro Nombre del parámetro, no editable.
Tipo Tipo de datos del parámetro, no editable.
Valor Principalmente, el valor predeterminado del parámetro se muestra directamente o mediante
un nombre simbólico. Si el parámetro se puede modificar (esto depende de la descripción del
dispositivo, los parámetros no editables se muestran de color gris), haga clic en la celda de
la tabla para abrir un cuadro de edición o una lista de selección para cambiar el valor. Si el
valor es una especificación de archivo, el cuadro de diálogo estándar para abrir un archivo
se abre haciendo doble clic en la celda. Esto le permite seleccionar otro archivo.
Valor predeterminado Valor de parámetro predeterminado, no editable.
Unidad Unidad del valor del parámetro (por ejemplo: ms para milisegundos), no editable.
Descripción Breve descripción del parámetro, no editable.

124 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Aplicaciones

Descripción general
La vista Aplicaciones del editor de dispositivos sirve para explorar y eliminar aplicaciones en el
controlador. Puede haber disponible información sobre el contenido de la aplicación así como
algunos detalles de las propiedades de la aplicación.
Vista Aplicaciones del editor de dispositivos

Descripción de los elementos


La vista Aplicaciones proporciona los elementos siguientes:

Elemento Descripción
Aplicaciones En este cuadro de texto se muestran los nombres de las aplicaciones encontradas en el controlador
en el PLC durante la última exploración (haciendo clic en Actualizar).
Si todavía no se ha ejecutado ninguna exploración o si no se puede llevar a cabo la exploración
porque no hay ninguna puerta de enlace configurada (véase página 120) para una conexión, se
muestra un mensaje.
Eliminar Haga clic en estos botones para eliminar del controlador la aplicación seleccionada de la lista o todas
Eliminar todo las aplicaciones.
Detalles Haga clic en este botón para abrir un cuadro de diálogo que muestra la información que se ha
definido en la ficha Información del cuadro de diálogo Propiedades del objeto de aplicación.
Contenido Si en Visualizar → Propiedades → Opciones de creación de aplicaciones la opción Descarga
Aplicación Info está activada para el objeto de aplicación (véase SoMachine, Comandos de menú,
Ayuda en línea), se carga información adicional sobre el contenido de la aplicación en el controlador.
Haga clic en el botón Contenido para ver las distintas POU en una vista de comparación. Tras varias
descargas, esta información permite comparar el código de la nueva aplicación con el que ya estaba
disponible en el controlador. Esto proporciona una información más detallada para decidir cómo
iniciar sesión. Para obtener más información, consulte la descripción del comando Inicio de sesión.
Actualizar lista Haga clic en este botón para ver qué aplicaciones hay en el controlador. La lista se actualizará en
consecuencia.

EIO0000000071 11/2016 125


Cuadros de diálogo del editor de dispositivos común

Verificaciones antes de cargar una aplicación en el controlador


Antes de que una aplicación se cargue en el controlador se llevan a cabo las siguientes
verificaciones:
 Se compara la lista de aplicaciones del controlador con las disponibles en el proyecto. Si se
detectan discrepancias, se muestran los cuadros de diálogo correspondientes para cargar las
aplicaciones todavía no disponibles en el controlador o para eliminar otras aplicaciones del
controlador.
 Se verifican las POU implementadas de forma externa en la aplicación que se van a cargar para
comprobar si también están disponibles en el controlador. Si no están disponibles en el
controlador, se generará el mensaje correspondiente (Referencia sin resolver) en un cuadro de
mensaje, así como en la vista Mensajes, si la opción Descargar está seleccionada.
 Se comparan los parámetros (variables) de las POU de la aplicación que se van a cargar con
los de las POU con el mismo nombre de la aplicación ya disponibles en el controlador
(validación de firmas). Si se detectan discrepancias, se generará el mensaje correspondiente
(Conflicto de firmas) en un cuadro de mensaje, así como en la vista Mensajes si la opción
Descargar está seleccionada.
 Si en Visualizar → Propiedades → Opciones de creación de aplicaciones la opción Descarga
Aplicación Info está activada, se cargará información adicional sobre el contenido de la
aplicación en el controlador. Consulte la descripción del botón Contenido en la tabla anterior.

126 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Archivos

Descripción general
La vista Archivos del editor de dispositivos sirve para transferir archivos entre el host y el
controlador. Esto significa que puede elegir cualquier archivo de un directorio de la red local para
copiarlo en el directorio de archivos del sistema de tiempo de ejecución que esté conectado en
ese momento o viceversa.
Vista Archivos del editor de dispositivos

Esta vista está dividida en 2 partes:


 En la parte izquierda se muestran los archivos del Host.
 En la parte derecha se muestran los archivos del sistema de Tiempo de ejecución.

Descripción de los elementos


La vista Archivos proporciona los elementos siguientes:

Elemento Descripción
Actualiza la lista Tiempo de ejecución.

Crea una nueva carpeta en la que puede copiar los archivos.

Elimina los archivos o carpetas seleccionados de la lista.

Ubicación Especifica la carpeta del sistema de archivos respectivo que se puede utilizar para la transferencia de
archivos.
Selecciona una entrada de la lista o se busca en el árbol del sistema de archivos.
<< >> Seleccione los archivos que se copiarán en el árbol del sistema de archivos. Puede seleccionar varios
archivos simultáneamente o puede seleccionar una carpeta para copiar todos los archivos que contiene.
Para copiar los archivos seleccionados en Host al directorio Tiempo de ejecución, haga clic en >>.
Para copiar los archivos seleccionados en Tiempo de ejecución al directorio Host, haga clic en <<.
Si no hay ningún archivo disponible aún en el directorio de destino, se creará allí.
Si ya hay un archivo con el nombre especificado y no está protegido contra escritura, se sobrescribirá.
Si está protegido contra escritura, se generará el mensaje oportuno.

EIO0000000071 11/2016 127


Cuadros de diálogo del editor de dispositivos común

Registro

Descripción general
La vista Registro del editor de dispositivos sirve para mostrar los eventos que se han registrado
en el sistema de tiempo de ejecución del controlador.
Incluye:
 eventos al arrancar o apagar el sistema (componentes cargados y sus versiones)
 descarga de aplicación y descarga de proyecto de arranque
 entradas específicas del cliente
 entradas de registro de controladores de E/S
 entradas de registro del servidor de datos

Vista Registro del editor de dispositivos

128 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Descripción de los elementos


La vista Registro proporciona los elementos siguientes:

Elemento Descripción
Ponderación Los eventos del registro se agrupan en cuatro categorías:
 advertencia
 error
 excepción
 información

Los botones de la barra encima de la lista indican la cifra actual de registros en la


categoría respectiva. Haga clic en los botones para activar o desactivar la visualización
de las entradas de cada categoría.
Marca de hora fecha y hora
por ejemplo, 12.01.2007 09:48
Descripción descripción del evento
por ejemplo, Error en la función de importación de <CmpFileTransfer>
Componente Aquí puede seleccionar un componente concreto para que se muestren sólo las
entradas de registro relacionadas con ese componente. La configuración
predeterminada es <Todos los componentes>.
Registro La lista de selección ofrece las anotaciones disponibles. La configuración
predeterminada es <Registrador predeterminado>, definida por el sistema de tiempo de
ejecución.
Actualiza la lista.

Exporta la lista a un archivo XML. Se abre el cuadro de diálogo estándar para guardar
un archivo. El filtro del archivo se establece en archivos xml (*.xml). El archivo del
registro se guarda con el nombre de archivo especificado y con la extensión .XML en
el directorio seleccionado.
Muestra las entradas del registro guardadas en un archivo XML que se han podido
exportar como se describe más arriba. Se abre el cuadro de diálogo estándar para
examinar un archivo. El filtro se establece en archivos xml (*.xml). Seleccione el archivo
de registro que desee. Las entradas de este archivo se muestran en una ventana
aparte.
Borra la tabla de registro actual, es decir, elimina todas las entradas que se muestran.

Registro sin conexión Esta opción no se utiliza en SoMachine.


Tiempo UTC Active esta opción para ver la marca de hora del sistema de tiempo de ejecución. Si se
desactiva, se muestra la marca de la hora local del ordenador (según la zona horaria
del sistema operativo).

EIO0000000071 11/2016 129


Cuadros de diálogo del editor de dispositivos común

Ajustes PLC

Descripción general
La vista Ajustes PLC del editor de dispositivos sirve para configurar ciertos valores generales del
controlador.
Vista Ajustes PLC del editor de dispositivos

Descripción de los elementos


La vista Ajustes PLC proporciona los elementos siguientes:

Elemento Descripción
Aplicación para manejo E/S: Defina aquí la aplicación asignada al dispositivo en el árbol Dispositivos que
se supervisará para la asignación de E/S. Para SoMachine sólo hay una
aplicación disponible.
Área Ajustes PLC
Actualizar E/S en parada Si esta opción está activada (valor predeterminado), los valores de los
canales de entrada y salida también se actualizarán cuando se detenga el
controlador. Si se agota el tiempo del watchdog, se asignarán a las salidas los
valores predeterminados definidos.
Comportamiento de las salidas en En la lista de selección, elija una de las siguientes opciones para definir cómo
parada se deben gestionar los valores de los canales de salida si se detiene el
controlador:
 Mantener los valores
no se modificarán los valores actuales.
 Establecer todas las salidas a los valores predeterminados
se asignarán los valores predeterminados resultantes de la asignación.
 Ejecutar programa
Puede determinar el comportamiento de las salidas mediante un programa
disponible en el proyecto. Especifique el nombre de este programa aquí y
se ejecutará cuando el controlador se detenga. Haga clic en botón ... para
utilizar Accesibilidad para este fin.

130 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Elemento Descripción
Actualizar todas las variables en Si esta opción está activada, se actualizarán las variables de E/S de los
todos los dispositivos dispositivos de la configuración de controlador actual en cada ciclo de la tarea
de ciclo de bus. Esto corresponde a la opción Actualizar siempre las variables.
Puede definirlo por separado para cada dispositivo en la vista Asignación de
E/S (véase página 149).
Área Opciones de ciclo de bus
Tarea de ciclo de bus La lista de selección ofrece todas las tareas definidas actualmente en la
Configuración de tareas de la aplicación activa (por ejemplo, MAST). El valor
predeterminado MAST se especifica automáticamente.
<Sin especificar> significa que la tarea se selecciona de acuerdo con valores
internos del controlador, que dependen del controlador. Esta puede ser la
tarea con el tiempo de ciclo más corto, pero también podría ser la que tuviera
el tiempo de ciclo más largo.

NOTA: Establecer la tarea de ciclo de bus como <Sin especificar> puede provocar un comporta-
miento imprevisto de la aplicación. Consulte la guía de programación específica de su controlador.

ATENCIÓN
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Si no está seguro de los ajustes de tareas de ciclo de bus, no establezca Tarea de ciclo de bus
en <<Sin especificar>, sino que seleccione una tarea dedicada de la lista.
El incumplimiento de estas instrucciones puede causar lesiones o daño al equipo.

Configuración adicional
El valor Variables de forzado para la asignación E/S: sólo está disponible si lo admite el
dispositivo. Si la opción está activada, por cada canal de E/S que se asigne a una variable en el
cuadro de diálogo Asignación de E/S, se crearán 2 variables globales en cuanto se genere la
aplicación. Estas variables pueden utilizarse en una visualización de HMI para forzar el valor de
E/S. Para obtener más información, consulte el capítulo Asignación de E/S (véase página 145).

EIO0000000071 11/2016 131


Cuadros de diálogo del editor de dispositivos común

Usuarios y grupos

Descripción general
La administración de usuarios y grupos de derechos de acceso difiere según el controlador que
utilice. Para la mayoría de los dispositivos que admiten la administración de usuarios online (como
los controladores M258, M241, M251 y LMC••8), la vista Usuarios y grupos descrita en este
capítulo sirve para gestionar cuentas de usuario y grupos de acceso de usuarios, así como sus
derechos de acceso asociados. Esto le permite controlar el acceso en proyectos y dispositivos de
SoMachine en modalidad online.
Para administrar los derechos de usuario, debe iniciar sesión como usuario Administrator.

ATENCIÓN
SIN AUTENTICACIÓN, ACCESO NO AUTORIZADO
 Evite la exposición de los controladores y redes de controladores a las redes públicas e
Internet en la medida de lo posible.
 Utilice capas de seguridad adicionales, como VPN para el acceso remoto, e instale
mecanismos cortafuegos.
 Permita el acceso únicamente a las personas autorizadas.
 Cambie las contraseñas predeterminadas en el inicio y modifíquelas con frecuencia.
 Valide la efectividad de estas medidas periódica y frecuentemente.
El incumplimiento de estas instrucciones puede causar lesiones o daño al equipo.

NOTA: La función Usuarios y grupos no está destinada a proteger el proyecto de SoMachine


contra accesos malintencionados, sino más bien a ayudar a evitar errores de usuarios de
confianza.
Si desea proteger todo el proyecto, active la opción Activar el cifrado del archivo de proyecto en
el cuadro de diálogo (véase SoMachine, Comandos de menú, Ayuda en línea) Configuración del
proyecto → Seguridad.
Si desea proteger sólo una parte del código del proyecto, ponga este código dentro de una
biblioteca compilada (véase SoMachine, Comandos de menú, Ayuda en línea).
NOTA: Puede utilizar los comandos relacionados con la seguridad (véase SoMachine, Comandos
de menú, Ayuda en línea), que proporcionan un método para añadir, editar y eliminar a un usuario
en la administración de usuarios online del dispositivo de destino en el cual se ha iniciado la
sesión.
NOTA: Debe establecer derechos de acceso utilizando el software SoMachine. Si ha clonado una
aplicación de un controlador a otro, deberá habilitar y establecer derechos de acceso de usuario
en el controlador de destino.

132 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

NOTA: La única manera de obtener acceso a un controlador que tenga derechos de acceso de
usuario habilitados y para los que no tiene las contraseñas es realizando una operación Actualizar
firmware mediante una tarjeta SD o un lápiz de memoria USB (consulte la Guía del usuario del
Asistente del controlador de SoMachine para obtener más información), en función del soporte de
su controlador en concreto, o ejecutando un script (véase página 863). De este modo se eliminará
de forma efectiva la aplicación existente de la memoria del controlador, pero se restaurará la
posibilidad de acceder al controlador.
Para controladores Soft PLC, en el editor de dispositivos se muestran una vista de Usuarios y
grupos específica y una vista Derechos de acceso aparte. Estas vistas específicas se describen
en el capítulo Administración de usuarios para Soft PLC (véase página 911).
Si desea que determinadas funciones de un controlador sólo las puedan ejecutar usuarios
autorizados, la vista Usuarios y grupos le permite definir usuarios, asignar derechos de acceso y
requerir autenticación de usuario al iniciar sesión.
Para realizar estas acciones, puede crear usuarios y configurar sus derechos de acceso a datos,
herramientas de ingeniería y archivos utilizando los botones del área Acciones del usuario. Puede
crear grupos de derechos de acceso de usuarios y configurar cada permiso individualmente
utilizando los botones del área Acciones de grupos.

Vista Usuarios y grupos


La vista Usuarios y grupos le permite gestionar el acceso de usuarios a proyectos y dispositivos.
Los usuarios y los derechos correspondientes son válidos para todos los dispositivos de un
proyecto.
Vista Usuarios y grupos del editor de dispositivos:

NOTA: Cuando aplique la configuración de derechos de usuario a un destino, es posible que la


nueva configuración no se tenga en cuenta para las conexiones que ya están abiertas. Para
ayudar a garantizar que se aplique la configuración, cierre las conexiones a este destino
reiniciándolo o bien desconectando los cables (Ethernet y línea serie) durante 1 minuto como
mínimo.

EIO0000000071 11/2016 133


Cuadros de diálogo del editor de dispositivos común

Área Protección de acceso


El área Protección de acceso de la vista Usuarios y grupos contiene la casilla Habilitar
administración de usuarios. Esta casilla está inhabilitada de forma predeterminada, lo que significa
que la administración de usuarios no está activa. Se proporciona acceso libre a proyectos y
dispositivos. Para poder gestionar cuentas de usuario y grupos de derechos de acceso de
usuarios y asignar derechos de acceso, active la casilla Habilitar administración de usuarios. Para
cambiar los valores de administración de usuarios, debe iniciar sesión como Administrador o tener
derechos de usuario Administrate para su inicio de sesión. Durante el primer inicio de sesión como
administrador, se le solicitará que cambie la contraseña predeterminada.
Debajo de la casilla Habilitar administración de usuarios, se proporciona una lista de usuarios
definidos (en la columna Usuario) y los grupos de derechos de acceso que se les conceden (en
las columnas Protección de acceso ordenadas por tipo).
La lista contiene cinco usuario de forma predeterminada. Dispone de acceso limitado en estos
usuarios predeterminados según se lista en la tabla:

Usuario Descripción Puede Puede Pueden Contraseña


predeterminado eliminarse cambiarse el cambiarse predeterminada
nombre los permisos (puede cambiarse)
Administrator El usuario Administrator no tiene No No No Administrator
restricciones de acceso; se utiliza Debe cambiarse
para configurar derechos de con el primer inicio
usuario. de sesión.
Everyone El usuario Everyone se utiliza No No Sí No se asigna
cuando no ha iniciado sesión. contraseña.
Si suprime permisos, debe iniciar
sesión con un usuario que tenga
permisos.
USER El servidor web utiliza el usuario No Sí Sí USER
USER para acceder al controlador.
HMI La HMI utiliza el usuario HMI para No Sí Sí HMI
conectarse al controlador.
Developer Al usuario Developer se le otorgan Sí Sí Sí Developer
permisos adecuados para diseñar
un proyecto.

Los derechos de acceso de usuarios están contenidos en grupos y se clasifican en tres áreas, o
tipos de acceso, bajo Protección de acceso:
 Acceso a datos: incluye el acceso a aplicaciones que intentan leer/escribir datos del dispositivo,
como HMI u OPC.
 Herramientas de ingeniería: incluye acceso a herramientas de programación, como SoMachine
y Controller Assistant.
 Acceso a archivo: incluye el acceso al sistema de archivos interno o externo, como soportes
externos, protocolo SoMachine, FTP o web.

134 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Si hace clic en el cuadro desplegable de un usuario definido en alguna de las columnas de tipo de
acceso, se presentará una lista de los grupos de derechos de acceso de usuarios que puede elegir
para un determinado usuario y tipo de acceso. Para obtener más información sobre grupos de
derechos de acceso, consulte Administración de grupos de derechos de acceso
(véase página 138).

Área Acciones de usuario


Los botones sólo están disponibles si la opción Habilitar administración de usuarios está activada.
Al hacer clic en un botón se abre un cuadro de diálogo que le solicita que inicie sesión como
usuario Administrador, porque es el único usuario que tiene derechos para la administración de
usuarios.
Los botones de Acciones del usuario se utilizan para realizar funciones de administración estándar
en los usuarios:

Botón Descripción
Agregar usuario... Haga clic en este botón para añadir un nuevo usuario a la lista.
Se abre el cuadro de diálogo Agregar usuario.
Introduzca un Nombre de usuario, un Nombre completo, una Descripción y una Contraseña:.
Repita la contraseña en el campo Confirmar contraseña.
Para que el nuevo usuario esté disponible para su uso, active la opción Activado.
Borrar usuario... Haga clic en este botón para eliminar el usuario de la lista del área Protección de acceso.
Editar usuario... Haga clic en este botón para modificar el usuario seleccionado en la lista del área Protección de
acceso. Se abre el cuadro de diálogo Editar usuario. Corresponde al cuadro de diálogo Agregar
usuario (véase arriba), que contiene la configuración del usuario definido actualmente.
Para que el usuario esté disponible para su uso, active la opción Activado.

Cambie las contraseñas predeterminadas para todos los usuarios predeterminados (USER, HMI,
Developer). Además, analice detenidamente las implicaciones de otorgar derechos de acceso al
usuario predeterminado Everyone. Por una parte, otorgar derechos de acceso al usuario
Everyone le permitirá ejecutar scripts desde el puerto USB o SD (en función de la referencia de
su controlador), que, a su vez, concederá a cualquier persona los derechos de acceso que otorgue
sin tener que iniciar sesión antes.

EIO0000000071 11/2016 135


Cuadros de diálogo del editor de dispositivos común

ADVERTENCIA
ACCESO NO AUTORIZADO A DATOS
 Cambie inmediatamente todas las contraseñas predeterminadas por nuevas contraseñas
seguras.
 No distribuya las contraseñas a personal no autorizado.
 Limite los derechos de acceso del usuario Everyone a únicamente aquellos que sean
esenciales para sus necesidades de aplicación.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

NOTA: Una contraseña segura es aquella que no se ha compartido ni distribuido a ninguna


persona no autorizada y que no contiene ninguna información personal u obvia. Además, una
combinación de mayúsculas, minúsculas y números ofrece mayor seguridad. Debería elegir una
contraseña con una longitud de al menos siete caracteres.

Área Acciones de grupos


Los botones sólo están disponibles si la opción Habilitar administración de usuarios está activada.
Al hacer clic en un botón se abre un cuadro de diálogo que le solicita que inicie sesión como
usuario Administrador, porque es el único usuario que tiene derechos para la administración de
usuarios.
Los botones se utilizan para realizar funciones de administración de derechos de acceso en
grupos:

Botón Descripción
Agregar grupo Haga clic en este botón para crear un nuevo grupo. Se abre el cuadro de
diálogo Grupos personalizados.
Editar grupo Haga clic en este botón para modificar un grupo. Se abre el cuadro de
diálogo Grupos personalizados. En la lista Grupo para editar, seleccione el
grupo que desea editar. La configuración definida para el grupo
seleccionado se muestra en las tablas siguientes.
Eliminar grupo... Haga clic en este botón para eliminar el grupo seleccionado en la lista del
área Protección de acceso.
Nota: Algunos grupos predeterminados no pueden eliminarse
(véase página 132).

136 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Grupos de derechos de acceso para tipos de protección de acceso


De forma predeterminada, hay predefinido un número de grupos de derechos de acceso, que
están disponibles en las listas desplegables bajo los diferentes tipos de Protección de acceso para
cada usuario definido.
La tabla contiene los grupos de derechos de acceso predeterminados disponibles para cada tipo
de protección de acceso:

Tipo de protección de acceso Grupos de derechos de acceso Descripción


predeterminados
Acceso a datos Ninguno Acceso denegado.
Lectura  Acceso a sitio web del
dispositivo.
 Lectura de datos no protegidos.

Lectura-Escritura  Acceso a sitio web del


dispositivo.
 Lectura/escritura de datos no
protegidos.
Herramientas de ingeniería Ninguno Inicio de sesión denegado.
Supervisar  Inicio de sesión
 Cargar origen
 Variables de sólo lectura

Operate  Inicio de sesión


 Cargar origen
 Forzar/escribir variables

Programa Sin restricciones, salvo que no se


permite la configuración de
derechos de usuario.
Administrate Sin restricciones, se permite
incluso la configuración de
derechos de usuario.
Acceso a archivo Ninguno Acceso denegado.
Lectura Leer archivos no protegidos.
Lectura-Escritura Leer/escribir archivos no
protegidos.
Lectura/Escritura/Eliminación Leer/escribir/eliminar archivos no
protegidos.

EIO0000000071 11/2016 137


Cuadros de diálogo del editor de dispositivos común

Administración de grupos de derechos de acceso


Además de los grupos de derechos de acceso predeterminados, puede crear sus propios grupos
personalizados. Puede configurar derechos de acceso para herramientas o comandos específicos
agrupados bajo cada tipo de protección de acceso (Acceso a datos, Herramientas de ingeniería,
Acceso a archivo). Para llevar esto a cabo, haga clic en Agregar grupo o Editar grupo en el área
Acciones de grupos. Se abre el cuadro de diálogo Grupos personalizados.

Parámetro Descripción
Nombre Escriba un Nombre para el grupo utilizando un máximo de 32 caracteres.
Se permiten los caracteres a–z, A–Z, 0–9 y el carácter de subrayado.
Tipo de acceso Seleccione uno de los tipos de acceso disponibles para el grupo:
 Acceso a datos
 Herramientas de ingeniería
 Acceso a archivo

Las acciones y los permisos disponibles para el tipo de acceso seleccionado se


enumeran en la parte izquierda.
Restablecer en Para copiar los derechos de acceso de usuarios de un grupo a otro, seleccione el grupo
de la lista Restablecer en. De este modo se restablecen las acciones y los permisos a los
valores del grupo que ha seleccionado.

138 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Parámetro Descripción
Lista Acciones / Permisos Esta lista muestra las acciones y los permisos disponibles para el tipo de acceso
seleccionado. Consulte abajo la lista de acciones y permisos para cada tipo de acceso.
Lista TargetName / Los TargetName de esta lista son exactamente los que encuentra en el árbol Dispositivos
Permisos de su proyecto para el dispositivo que ha seleccionado.
Puede configurar los permisos para cada dispositivo de destino individualmente. Para
ello, seleccione el dispositivo en la lista y seleccione la opción adecuada
(Predeterminado, Prohibir, Sólo lectura, Se puede modificar, Completo) en la lista
Permisos.
El valor Predeterminado corresponde a los permisos del usuario Everyone.

La tabla lista las acciones y los permisos disponibles que puede asignar para el tipo de acceso →
Acceso a datos:

Acciones disponibles Permisos


Servidor OPC  Prohibir
Permite al usuario conectarse a un dispositivo en el  Lectura
servidor OPC utilizando parámetros de inicio de  Lectura/Escritura
sesión/contraseña.
HMI  Prohibir
Permite al usuario acceder a Vijeo-Designer  Lectura
utilizando los parámetros de inicio de  Lectura/Escritura
sesión/contraseña.
Servidor web  Prohibir
Permite al usuario acceder al servidor web utilizando El usuario no puede acceder al servidor web.
los parámetros de inicio de sesión/contraseña.  Lectura
El usuario puede acceder al servidor web y leer variables.
 Lectura/Escritura
El usuario puede acceder al servidor web y leer y escribir
variables.

EIO0000000071 11/2016 139


Cuadros de diálogo del editor de dispositivos común

La tabla enumera las acciones y los permisos disponibles que puede asignar para el tipo de
acceso → Herramientas de ingeniería:

Acciones disponibles Permisos


Inicio de sesión  Predeterminado
Permite al usuario conectarse al dispositivo y  Prohibir
acceder a la aplicación.  Permitir
Este permiso es un requisito previo para poder
otorgar cualquier otro permiso online.
Restablecer  Predeterminado
Los mismos permisos que el usuario Everyone.
 Prohibir
El usuario no puede ejecutar un restablecimiento
del dispositivo.
 Frío
El usuario puede ejecutar un reinicio en frío del
dispositivo.
 Caliente/Frío
El usuario puede ejecutar un reinicio en caliente y
en frío del dispositivo.
Ejecutar/Detener  Predeterminado
Los mismos permisos que el usuario Everyone.
 Prohibir
El usuario no puede ejecutar/detener la
aplicación.
 Permitir
El usuario puede ejecutar/detener la aplicación.
Registro  Predeterminado
Permite al usuario acceder a la vista Registro del Los mismos permisos que el usuario Everyone.
editor de dispositivos.  Prohibir
 Permitir

Variables  Predeterminado
Los mismos permisos que el usuario Everyone.
 Prohibir
El usuario no puede leer/escribir variables.
 Lectura
El usuario puede leer las variables de la
aplicación.
 Lectura/Escritura
El usuario puede leer, escribir y forzar variables
no protegidas.
Traza  Predeterminado
Permite al usuario acceder al dispositivo de traza. Los mismos permisos que el usuario Everyone.
 Prohibir
 Permitir

140 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Acciones disponibles Permisos


Configuración del proyecto  Predeterminado
Permite al usuario modificar (leer y escribir) la Los mismos permisos que el usuario Everyone.
información y los parámetros del proyecto.  Prohibir
 Permitir

Ajustes PLC  Predeterminado


Permite al usuario acceder a la vista Ajustes PLC del Los mismos permisos que el usuario Everyone.
editor de dispositivos.  Prohibir
 Permitir

Descargar  Predeterminado
Permite al usuario descargar todas las aplicaciones Los mismos permisos que el usuario Everyone.
o la aplicación activa actualmente en el dispositivo.  Prohibir
 Permitir

Cambio en línea  Predeterminado


Permite al usuario ejecutar el comando Cambio en Los mismos permisos que el usuario Everyone.
línea.  Prohibir
 Permitir

Descarga de imágenes  Predeterminado


Permite al usuario descargar imágenes. Los mismos permisos que el usuario Everyone.
 Prohibir
 Permitir

Cargar origen  Predeterminado


Permite al usuario ejecutar el comando Carga de Los mismos permisos que el usuario Everyone.
código de origen.  Prohibir
 Cambiar

Carga de imágenes  Predeterminado


Permite al usuario cargar imágenes. Los mismos permisos que el usuario Everyone.
 Prohibir
 Cambiar

Actualizar dispositivo  Predeterminado


Permite al usuario ejecutar el comando Actualizar  Prohibir
dispositivo.  Cambiar

Compilación del proyecto  Predeterminado


Permite al usuario ejecutar el comando Compilar y Los mismos permisos que el usuario Everyone.
Generar todo.  Prohibir
 Cambiar

Administración de dispositivos  Predeterminado


Permite al usuario agregar, editar, eliminar, Los mismos permisos que el usuario Everyone.
actualizar y renovar un dispositivo.  Prohibir
 Cambiar

EIO0000000071 11/2016 141


Cuadros de diálogo del editor de dispositivos común

Acciones disponibles Permisos


Crear objetos  Predeterminado
Permite al usuario crear objetos en un proyecto. Los mismos permisos que el usuario Everyone.
 Prohibir
 Cambiar

Herramientas de desarrollo  Predeterminado


Permite al usuario modificar aplicaciones, POU y Los mismos permisos que el usuario Everyone.
dispositivos.  Prohibir
 Cambiar

Herramientas de visualización  Predeterminado


Permite al usuario añadir y editar una visualización Los mismos permisos que el usuario Everyone.
web y crear visualizaciones en el proyecto actual.  Prohibir
 Cambiar

Administración de bibliotecas  Predeterminado


Permite al usuario realizar la administración de Los mismos permisos que el usuario Everyone.
bibliotecas, excepto acceder a la lista de bibliotecas  Prohibir
de un proyecto y mostrar sus propiedades.  Cambiar

Fórmula  Predeterminado
Permite al usuario crear, editar, enviar, cargar y Los mismos permisos que el usuario Everyone.
reproducir una fórmula y cargar datos del programa  Prohibir
actual en una fórmula.  Cambiar

Herramientas de depuración  Predeterminado


Permite al usuario ejecutar comandos de Los mismos permisos que el usuario Everyone.
depuración, incluidos los puntos de interrupción.  Prohibir
 Cambiar

Herramientas SoftMotion  Predeterminado


Permite al usuario ejecutar comandos CAM y CNC. Los mismos permisos que el usuario Everyone.
 Prohibir
 Cambiar

Administración de DTM  Predeterminado


Permite al usuario ejecutar comandos de la Los mismos permisos que el usuario Everyone.
herramienta de dispositivo de campo (FDT).  Prohibir
 Cambiar

La tabla indica las acciones y los permisos disponibles que puede asignar para el tipo de acceso
→ Acceso a archivo:

Acciones disponibles Permisos


Sistema de archivos  Prohibir
FTP  Lectura
Removable media  Lectura/Escritura
Permite al usuario acceder al archivo mediante FTP,  Lectura/Escritura/Eliminación
SoMachine o web.

142 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Distribución de tareas

Descripción general
En la vista Distribución de tareas del editor de dispositivos se muestra una tabla con entradas y
salidas y su asignación a las tareas definidas. Para que la información se pueda mostrar, el
proyecto tiene que estar compilado y el código tiene que estar generado. Esta información resulta
de utilidad en la resolución de problemas en el caso de que la misma entrada/salida se actualice
en tareas diferentes con prioridades distintas.
Distribución de tareas del editor de dispositivos

En la tabla se muestran las tareas ordenadas por prioridad. Haga clic en los encabezados de
columna (nombre de tarea) para mostrar solamente las variables asignadas a esta tarea. Para
mostrar todas las variables de nuevo, haga clic en la primera columna (Canales E/S).
Para abrir la tabla de asignaciones de E/S de un canal, haga doble clic en la entrada o salida.
Una flecha azul indica la tarea del ciclo de bus.
En el ejemplo anterior, la variable usiBK5120Out AT %QB0 se utiliza en 2 tareas diferentes. En
ese caso, la salida, establecida por una sola tarea, la puede sobrescribir la otra tarea; esto puede
provocar que haya un valor no definido. En general, no es recomendable escribir referencias de
salida en más de una tarea, ya que provoca que el programa sea difícil de depurar y, con
frecuencia, produce resultados imprevistos en el funcionamiento de la máquina o del proceso.

EIO0000000071 11/2016 143


Cuadros de diálogo del editor de dispositivos común

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No escriba en una variable de salida en más de una tarea.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Estado

Descripción general
La vista Estado del editor de dispositivos muestra la información de estado (por ejemplo, En
ejecución, Stopped) y mensajes específicos de diagnóstico del dispositivo correspondiente, así
como de la tarjeta usada y del sistema de bus interno.
Información

Descripción general
La vista Información del editor de dispositivos muestra información general del dispositivo
seleccionado en el árbol Dispositivos: Nombre, Fabricante, Tipo, Número de versión, Número de
modelo, Descripción, Imagen.

144 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Sección 6.2
Asignación de E/S

Asignación de E/S

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Asignación de E/S 146
Trabajo con el cuadro de diálogo Asignación de E/S 149
Asignación de E/S en modalidad online 153
Variables implícitas para forzar E/S 153

EIO0000000071 11/2016 145


Cuadros de diálogo del editor de dispositivos común

Asignación de E/S

Descripción general
La vista Asignación de E/S del editor de dispositivos se llama Asignación de E/S de <tipo de
dispositivo> (por ejemplo, Asignación de E/S de PROFIBUS DP). Sirve para configurar una
asignación de E/S del controlador. Esto significa que las variables de proyecto utilizadas por la
aplicación se asignan a las direcciones de entrada, salida y memoria del controlador.
Defina la aplicación que debe gestionar las E/S en la vista (véase página 130) Ajustes PLC.
NOTA: Si el dispositivo lo admite, puede utilizar la modalidad de configuración online para acceder
a las E/S del hardware sin tener que cargar primero una aplicación. Para obtener más información,
consulte la descripción del Modo de configuración en línea (véase SoMachine, Comandos de
menú, Ayuda en línea).
Consulte los siguientes capítulos:
 Trabajo con el cuadro de diálogo Asignación de E/S (véase página 149)
 Asignación de E/S en modalidad online (véase página 153)
 Variables implícitas para forzar E/S (véase página 153)

Información general sobre la asignación de E/S en variables


La posibilidad de configurar una asignación de E/S para el dispositivo actual depende del
dispositivo. Puede que la vista sólo se utilice para visualizar la instancia de dispositivo creada de
forma implícita. Consulte la descripción de los Objetos IEC (véase página 152).
Tenga en cuenta lo siguiente para la asignación de E/S a variables:
 No se puede escribir en las variables que requieren introducción de datos.
 Una variable existente sólo se puede asignar a 1 entrada.
 En lugar de utilizar la vista Asignación de E/S, también puede asignar una dirección a una
variable mediante la declaración AT (véase página 540).
No obstante, tenga presente lo siguiente:
 Puede utilizar declaraciones AT sólo con variables locales o globales, no con variables de
entrada y salida de las POU.
 La posibilidad de generar variables de forzado para E/S (consulte Variables implícitas para
forzar E/S (véase página 153)) no está disponible para declaraciones AT.
 Si se utilizan declaraciones AT con miembros de bloque de funciones o estructura, todas las
instancias accederán a la misma ubicación de memoria. Esta ubicación de memoria
corresponde a variables estáticas en los lenguajes de programación clásicos, como C.
 La disposición en memoria de las estructuras viene determinada por el dispositivo de destino.
 Para cada variable que se asigna a un canal de E/S en la vista Asignación de E/S, se pueden
crear variables de forzado durante una ejecución de compilación de la aplicación
(véase SoMachine, Comandos de menú, Ayuda en línea). Puede utilizarlas para forzar el valor
de entrada o salida durante la puesta en marcha de una máquina, por ejemplo, mediante una
visualización (HMI). Consulte el capítulo Variables implícitas para forzar E/S
(véase página 153).

146 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Asignación automática de E/S


La versión 4.0 y posteriores deSoMachine proporcionan una función de asignación automática de
E/S. Esta función crea automáticamente variables IEC en cuanto se añade un dispositivo o
módulo con módulos de E/S al árbol Dispositivos y las asigna en cada entrada o salida. De forma
predeterminada, esta función está activada.
Puede desactivar y configurar la función en el cuadro de diálogo Proyecto → Configuración del
proyecto → Asignación automática de E/S.

El cuadro de diálogo proporciona los siguientes elementos:

Elemento Descripción
Crear variable en asignación de E/S Seleccione o deseleccione esta opción para activar o desactivar la función de
asignación automática de E/S.
Área Asignación
A nivel de bit Seleccione esta opción para crear variables para cada bit.
A nivel de módulo Seleccione esta opción para crear una variable para cada módulo, no para los
bits a nivel individual.
Área Regla de denominación

EIO0000000071 11/2016 147


Cuadros de diálogo del editor de dispositivos común

Elemento Descripción
Cuadro de texto Escriba los siguientes caracteres precedidos por un símbolo # para
especificar de qué partes constará el nombre de variable:
 Escriba #X para integrar una i para las entradas y una q para las salidas
en el nombre de variable.
 Escriba #T para integrar el código de prefijo para el tipo de datos
correspondiente de la variable en el nombre de variable. Los prefijos
utilizados para los distintos tipos de datos se indican en el capítulo
(véase página 532) Recomendaciones sobre la denominación de
identificadores.
 Escriba #D para integrar el nombre del dispositivo en el nombre de
variable.
 Escriba #C para integrar el nombre según se ha definido en la columna
Canal en el nombre de variable.

148 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Trabajo con el cuadro de diálogo Asignación de E/S

Descripción general
A continuación, se muestra una ilustración de la ficha Asignación E/S del editor de dispositivos.

Descripción de los elementos del área de canales


La ficha Asignación E/S ofrece los siguientes elementos del área de Canales si los proporciona el
dispositivo:

Elemento Descripción
Canal Nombre simbólico del canal de entrada o salida del dispositivo.
Dirección Dirección del canal, por ejemplo: %IW0.
Tipo Tipo de datos del canal de entrada o salida, por ejemplo: BOOL.
Si el tipo de datos no es estándar, sino una estructura o un campo de bits definidos en la descripción
del dispositivo, aparecerá en la lista sólo si está incluido en la norma IEC. Se indica como tipo IEC en
la descripción del dispositivo. De lo contrario, la entrada de la tabla estará vacía.
Unidad Unidad del valor del parámetro, por ejemplo: ms para milisegundos.
Descripción Breve descripción del parámetro.
Valor actual Valor actual del parámetro, se muestra en modalidad online.

EIO0000000071 11/2016 149


Cuadros de diálogo del editor de dispositivos común

Modificación y fijación de las direcciones


Puede modificar y fijar la dirección que se muestra actualmente de una salida o entrada aquí, en
esta ficha. Utilice esta opción para adaptar el direccionamiento a una configuración de hardware
determinada o para mantener el valor de la dirección incluso si se cambia el orden de los módulos.
De forma predeterminada, esto causaría una adaptación automática de los valores de la dirección.
Tenga en cuenta que en función de la descripción del dispositivo, sólo se puede modificar la
dirección de toda la entrada o salida, pero no la de sus subelementos (canales de bits). Por lo
tanto, si una entrada o salida está representada en la tabla de asignación con cualquier subárbol,
sólo puede editar el campo de dirección de la entrada superior (vea la siguiente figura: sólo se
puede abrir el campo de dirección en la primera línea).
Para fijar el valor de la dirección, seleccione la entrada en la columna Dirección y pulse la barra
espaciadora para abrir el campo de edición. Modifique el valor o déjelo sin modificar y cierre el
campo de edición por medio de la tecla RETORNO. El campo de dirección está marcado con un
símbolo M que indica que se fija el valor actual.
Si el valor se ha modificado, las sucesivas direcciones (hasta la siguiente dirección fija) se
adaptarán correspondientemente:

Si desea eliminar la fijación del valor, vuelva a abrir el campo de edición de la dirección, elimine la
entrada de dirección y cierre con INTRO. La dirección y las direcciones sucesivas identificadas se
establecerán de nuevo a los valores que tenían antes de la modificación manual. El símbolo M se
eliminará.

Configuración de la asignación de E/S


Realice la asignación de E/S asignando las variables del proyecto apropiadas a los canales de
entrada y salida del dispositivo, cada uno en la columna Variable.
 El tipo de canal ya está indicado en la columna Variable por un símbolo: para la entrada y
para la salida. En esta línea, escriba el nombre o la ruta de la variable a la que se debe
asignar el canal. Puede asignar una variable de proyecto existente o definir una nueva variable,
que luego será automáticamente declarada como una variable global.
 Cuando se asignan variables estructuradas, el editor evitará la introducción de la variable de
estructura (por ejemplo, en %QB0) conjuntamente con la introducción de los elementos de
estructura específicos, en este caso en %QB0.1 y QB0.2 ).
Esto significa: cuando hay una entrada principal con un subárbol de entradas de canales de bits
en la tabla de asignación (como se muestra en la figura siguiente), entonces se puede introducir
una variable en la línea de la entrada principal, o en las de los subelementos (canales de bits),
pero nunca en ambas.

150 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

 Para la asignación en una variable existente, especifique la ruta completa. Por ejemplo:
<nombre de aplicación>.<ruta de POU>.<nombre de variable>';
Ejemplo: app1.plc_prg.ivar
Para este propósito, puede ser útil abrir el asistente Accesibilidad por medio del botón ... En la
columna Asignación, se mostrará el símbolo y el valor de la dirección aparecerá tachado.
Esto no significa que esta dirección de memoria ya no exista más. Sin embargo, no se utiliza
directamente porque el valor de la variable existente se gestiona en otra ubicación de la
memoria y, especialmente en el caso de salidas, ninguna otra variable existente se debe
guardar en esta dirección (%Qxx en la asignación de E/S) con el fin de evitar ambigüedades
durante la escritura de los valores.
Observe en el siguiente ejemplo una asignación de salida de la variable existente xBool_4:

 Si desea definir una nueva variable, escriba el nombre de la variable deseada.


Ejemplo: bVar1

En este caso, el símbolo se insertará en la columna Asignación y la variable se declarará


internamente como una variable global. A partir de este momento, la variable estará disponible
globalmente dentro de la aplicación. El cuadro de diálogo de asignación es otro lugar para la
declaración de variables globales.
NOTA: Alternativamente, una dirección también se puede leer o escribir dentro de un código
de programa, como en ST (texto estructurado).
 Teniendo en cuenta la posibilidad de realizar cambios en la configuración del dispositivo, se
recomienda hacer las asignaciones dentro del cuadro de diálogo de configuración de
dispositivo.
NOTA: Si una UNIÓN está representada por canales de E/S en el cuadro de diálogo de
asignación, depende del dispositivo el que el elemento raíz sea asignable o no.
Si una variable declarada de un tipo de datos determinado es mayor que aquella a la que se está
asignando, el valor de la variable que se está asignando se truncará al tamaño de la variable de
destino asignada.
Por ejemplo, si la variable se declara como un tipo de datos WORD y se asigna a un BYTE, sólo
8 bits de la palabra se asignarán al byte.

EIO0000000071 11/2016 151


Cuadros de diálogo del editor de dispositivos común

Esto implica que, para la supervisión del valor en el cuadro de diálogo de asignación, el valor que
se muestra en el elemento raíz de la dirección será el valor de la variable declarada, ya que es
actualmente válida en el proyecto. En los subelementos debajo de la raíz, se supervisarán los
valores de los elementos específicos de la variable asignada. Sin embargo, sólo una parte del
valor declarado puede aparecer entre los subelementos.
Existe otra implicación cuando se asigna una variable declarada a las salidas físicas. Igual que en
el caso anterior, si asigna un tipo de datos mayor que el tipo de datos de salida, el tipo de datos
de salida puede recibir un valor truncado tal que pueda afectar a su aplicación en formas
imprevistas.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Compruebe que el tipo de datos declarado que se está asignando a la E/S física es compatible
con el funcionamiento previsto de su máquina.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Elemento Descripción
Restablecer asignación Haga clic en este botón para restablecer los ajustes de asignación a los valores
predeterminados definidos por el archivo de descripción del dispositivo.
Actualizar siempre las variables Si esta opción está activada, las variables se actualizarán en cada ciclo de la
tarea de ciclo de bus (véase página 130), sin importar que se utilicen o se
asignan a una entrada o salida.

Objetos IEC
Esta parte de la ficha sólo está disponible si se ha creado implícitamente una instancia del objeto
de dispositivo, a la que se puede acceder mediante la aplicación (por ejemplo, con el fin de
reiniciar un bus o para consultar información). La disponibilidad y utilización de una instancia de
este tipo depende del controlador y se describe en su guía de programación.

Opciones de ciclo de bus


Esta opción de configuración estará disponible para dispositivos con llamadas cíclicas antes y
después de la lectura de las entradas o salidas. Esto le permite establecer una tarea de ciclo de
bus (véase página 130) específica del dispositivo.
De forma predeterminada, será válida la configuración del ciclo de bus de orden superior (Emplear
configuración de ciclo del bus de orden superior). Esto significa que se buscará en el árbol
Dispositivos la próxima definición válida de la tarea de ciclo de bus.
Para asignar una tarea específica de ciclo de bus, seleccione la que desee en la lista de selección.
En la lista se detallan las tareas definidas actualmente en la configuración de la tarea de la
aplicación.

152 EIO0000000071 11/2016


Cuadros de diálogo del editor de dispositivos común

Asignación de E/S en modalidad online

Asignación de E/S en modalidad online


Si una variable de estructura se asigna al elemento raíz de la dirección (el que ocupa la posición
más alta en el árbol de la dirección respectiva del cuadro de diálogo de asignación), en la
modalidad online no se mostrará ningún valor en esta línea. Sin embargo, si, por ejemplo, se
asigna una variable DWORD a esta dirección, los valores respectivos se supervisarán en la línea
raíz así como en las líneas del canal de bits con sangría debajo. Básicamente, el campo de la línea
raíz permanece vacío si el valor está formado por varios subelementos.
Variables implícitas para forzar E/S

Descripción general
Durante la puesta en marcha de una planta o una máquina, puede ser necesario forzar E/S; por
ejemplo, mediante una visualización de HMI. Para este fin, puede generar variables de forzado
especiales para cada canal de E/S que se asigna en una variable en la ficha Asignación E/S del
editor de dispositivos.
Como condición previa, el valor Variables de forzado para la asignación E/S debe estar activado
en la ficha Ajustes PLC. A continuación, con cada ejecución compilada de la aplicación se
generarán 2 variables por cada canal de E/S asignado de acuerdo con la sintaxis siguiente. Los
espacios vacíos en el nombre del canal se sustituirán por caracteres de subrayado.
<nombre de dispositivo>_<nombre de canal>_<dirección IEC>_Force de tipo BOOL, para activar
y desactivar el forzado
<nombre de dispositivo>_<nombre de canal>_<dirección IEC>_Value de tipo de datos del canal,
para definir el valor que debe forzarse en el canal
Estas variables están disponibles en el asistente Accesibilidad en la categoría Variables →
IoConfig_Globals_Force_Variables. Pueden utilizarse en objetos de programación, en visualiza-
ciones, configuración de símbolos, etc., dentro del sistema de programación.
Un flanco ascendente en la variable de forzado activa el forzado de la E/S respectiva con el valor
definido por la variable del valor. Un flanco descendente desactiva el forzado. Es necesario
desactivar esto volviendo a establecer la variable de forzado como falsa antes de poder forzar un
nuevo valor.
Tenga en cuenta las restricciones siguientes.

EIO0000000071 11/2016 153


Cuadros de diálogo del editor de dispositivos común

Ejemplo
Si la asignación se completa como se muestra en la figura, en la ficha Asignación E/S del editor
de dispositivos (véase página 149), y se compila (F11) la aplicación, se generarán las siguientes
variables, que estarán disponibles en el asistente Accesibilidad:
 Digitax_ST_Control_word_QW0_Force : BOOL;
 Digitax_ST_Control_word_QW0_Value : UINT;
 Digitax_ST_Target_position_QD1_Force : BOOL;
 Digitax_ST_Target_position_QD1_Value : DINT;
 Digitax_ST_Status_word_IW0_Force : BOOL;
 Digitax_ST_Status_word_IW0_Value : UINT;
 Digitax_ST_Position_actual_value_ID1_Force : BOOL;
 Digitax_ST_Position_actual_value ID1_Value : DINT;

Restricciones
 Sólo los canales asignados en una variable en la ficha Asignación E/S (es decir, debe definirse
una variable en la columna Variable independientemente de si es nueva o existente) pueden
forzarse mediante las variables implícitas descritas anteriormente.
 Las entradas/salidas sin usar, así como aquellas asignadas mediante una declaración AT en
un programa de aplicación, no pueden forzarse.
 Los canales de E/S respectivos tienen que estar en uso por lo menos en una tarea.
 Las E/S forzadas no se indican en la supervisión (vista de supervisión, cuadro de diálogo
Asignación de E/S). El valor sólo se utiliza implícitamente en el controlador de E/S para escribir
en el dispositivo.
 Las entradas forzadas se visualizan correctamente mediante el símbolo rojo de forzado (F); no
así, en cambio, para entradas/salidas forzadas.

154 EIO0000000071 11/2016


SoMachine
Programa
EIO0000000071 11/2016

Parte III
Programa

Programa

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
7 Componentes de programa 157
8 Configuración de tareas 235
9 Gestión de aplicaciones 237

EIO0000000071 11/2016 155


Programa

156 EIO0000000071 11/2016


SoMachine
Componentes de programa
EIO0000000071 11/2016

Capítulo 7
Componentes de programa

Componentes de programa

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
7.1 Unidad de organización de programa (POU) 158
7.2 Bloque de funciones 186
7.3 Objetos de aplicación 206
7.4 Aplicación 233

EIO0000000071 11/2016 157


Componentes de programa

Sección 7.1
Unidad de organización de programa (POU)

Unidad de organización de programa (POU)

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
POU 159
Adición y llamadas a POU 160
Programa 164
Función 167
Método 170
Propiedad 173
Interfaz 175
Propiedad de interfaz 179
Acción 182
Función, bloque de funciones y método externos 184
POUs para comprobaciones implícitas 185

158 EIO0000000071 11/2016


Componentes de programa

POU

Descripción general
El término 'unidad de organización de programa' (POU) se utiliza para todos los objetos de
programación (programas, bloques de funciones, funciones, etc.) que se utilizan para crear una
aplicación de controlador.

Gestión de POU
Las POU que se gestionan en el nodo Global del árbol Aplicaciones no son específicas del
dispositivo, pero se pueden instanciar para su uso en un dispositivo (aplicación). Para ello, las
POU de programa deben invocarse mediante una tarea de la aplicación respectiva.
Las POU que se insertan en el árbol Aplicaciones explícitamente debajo de una aplicación sólo
las pueden instanciar aplicaciones con sangría debajo de esa aplicación (aplicación secundaria).
Para obtener más información, consulte las descripciones del árbol Dispositivos
(véase página 39) y del objeto (véase página 233) Aplicación.
Pero POU también es el nombre de una subcategoría determinada de esos objetos en el menú
Agregar objeto. En ese caso, sólo incluye programas, bloques de funciones y funciones.
Por tanto, en general, un objeto POU es una unidad de programación. Es un objeto que se
gestiona de forma independiente del dispositivo en el nodo Global del árbol Aplicaciones o
directamente debajo de una aplicación en el árbol Aplicaciones. Puede visualizarse y editarse en
una vista de editor. Un objeto POU puede ser un programa, una función o un bloque de funciones.
Se pueden configurar determinadas Propiedades (como condiciones de compilación, etc.) para
cada objeto POU concreto.
Puede consultar una descripción sobre cómo crear una POU en la sección Adición de POU a una
aplicación (véase página 161). Las POU que haya creado se añaden a la vista Activos del
Catálogo de software.
Hay dos maneras de añadir una POU disponible en la vista Activos al proyecto:
 Seleccione una POU en la vista Activos y arrástrela al nodo pertinente del árbol Aplicaciones.
 Seleccione una POU en la vista Activos y arrástrela a la vista del editor de lógica
(véase página 263).
Además de los objetos POU, hay objetos de dispositivo que se utilizan para ejecutar el programa
en el sistema de destino (Recurso, Aplicación, Configuración de tareas, etc.). Se gestionan en el
árbol Aplicaciones.

EIO0000000071 11/2016 159


Componentes de programa

Adición y llamadas a POU

Introducción
Puede agregar unidades de organización de programa (POU) a su aplicación en Catálogo de
software → Activos o en el árbol Aplicaciones.
Estos son los distintos tipos de POU:
 Programa: devuelve uno o varios valores durante el funcionamiento. Se conservan todos los
valores desde la última vez en que se ejecutó el programa hasta la siguiente. La puede llamar
otra POU.
 Bloque de funciones: proporciona uno o varios valores durante el procesamiento de un
programa. A diferencia de una función, los valores de las variables de salida y las variables
internas necesarias pueden persistir de una ejecución del bloque de funciones a la siguiente.
Por lo tanto, la invocación de un bloque de funciones con los mismos argumentos (parámetros
de entrada) no siempre tiene por qué producir los mismos valores de salida.
 Función: produce exactamente un elemento de datos (que puede estar formado por varios
elementos, como campos o estructuras) cuando se procesa. La llamada en lenguajes textuales
puede representarse como un operador en las expresiones.

160 EIO0000000071 11/2016


Componentes de programa

Adición de POU a una aplicación


Para añadir una POU a la aplicación del controlador, haga lo siguiente:

Paso Acción
1 En la sección Catálogo de software → Activos → POU, seleccione un nodo de Aplicación, haga clic en el
signo más de color verde y ejecute el comando POU... Como alternativa, puede hacer clic con el botón
derecho en el nodo Aplicación del controlador y seleccionar Agregar objeto → POU.
Los 2 métodos también están disponibles en Aplicaciones
Resultado: Se abre el cuadro de diálogo Añadir POU.

2 En el cuadro de diálogo Añadir POU, asigne un nombre a su POU escribiendo un nombre en el campo de
texto Nombre.
NOTA: El nombre no puede contener espacios. Si no introduce ningún nombre, se le asignará uno
predeterminado.
Asignar un nombre significativo a una POU puede facilitar la organización del proyecto.

EIO0000000071 11/2016 161


Componentes de programa

Paso Acción
3 Seleccione el tipo de POU que desee:
 Programa
 Bloque de funciones:
a. Seleccione Extendido y haga clic en el navegador para seleccionar la función de bloque que desee
en Accesibilidad.
b. Haga clic en el botón Aceptar.
c. Seleccione Implementado y haga clic en el navegador para seleccionar la interfaz que desee en
Accesibilidad.
d. Haga clic en el botón Aceptar.
e. En el cuadro de lista Lenguaje de implementación de método, seleccione el lenguaje de programación
que desee para editar el bloque de funciones.
 Función:
a. Haga clic en el botón del navegador para seleccionar el tipo de retorno que desee en Accesibilidad.
b. Haga clic en el botón Aceptar.
4 En el cuadro de lista Lenguaje de implementación, seleccione el lenguaje de programación que desee para
editar el programa.
5 Haga clic en el botón Abrir.

Las POU que ya están definidas se muestran en la sección Catálogo de software → Activos →
POU. Puede añadirlas a su aplicación arrastrándolas a Aplicaciones y soltándolas en un nodo
Aplicación. También puede soltar una POU en la vista del editor de lógica.

Asignación de POU a una tarea


Como mínimo se debe asignar 1 POU a una tarea. Para añadir una POU a una tarea, haga lo
siguiente:

Paso Acción
1 En el nodo Configuración de tareas del controlador, haga doble clic en la tarea a la que desee
añadir la POU. En la ficha Configuración, haga clic en Agregar llamada.
Como alternativa, en Aplicaciones , seleccione el nodo de una tarea en la que desee declarar la
POU y haga clic en el signo más de color verde. Ejecute el comando POU... de la lista. Haga clic
en el botón ....
Resultado: Aparecerá el cuadro de diálogo Accesibilidad.
2 En la ficha Categorías del cuadro de diálogo Accesibilidad, seleccione Programas (proyecto).
3 Haga clic para desactivar la casilla Vista estructurada.
4 En el panel Elementos, seleccione la POU que desee.
5 Haga clic en el botón Aceptar.

162 EIO0000000071 11/2016


Componentes de programa

Llamada a las POU


Las POU pueden llamar a otras POU. Sin embargo, no se permite la recursión (una POU que se
llame a sí misma).
Cuando una POU asignada a una aplicación llame a otra POU simplemente por su nombre (sin
ningún espacio de nombres (véase página 738) añadido), tenga en cuenta el orden siguiente de
examen del proyecto para la POU a la que se llamará:

1. aplicación actual
2. Administrador de bibliotecas de la aplicación actual en Herramientas
3. Nodo Global de Aplicaciones
4. Administrador de bibliotecas del nodo Global de Herramientas

Si una POU con el nombre especificado en la llamada está disponible en una biblioteca del
Administrador de bibliotecas de la aplicación y también en un objeto del nodo Global de
Aplicaciones, no hay ninguna sintaxis para llamar explícitamente a la POU en el nodo Global de
Aplicaciones utilizando únicamente su nombre. En este caso, mueva la biblioteca correspondiente
del Administrador de bibliotecas de la aplicación al Administrador de bibliotecas del nodo Global
de Aplicaciones. Luego, puede llamar a la POU del nodo Global de Aplicaciones sólo por su
nombre (y, si es necesario, a la de la biblioteca añadiéndole delante el espacio de nombres de la
biblioteca).
Consulte también el capítulo POU para comprobaciones implícitas (véase página 185).

EIO0000000071 11/2016 163


Componentes de programa

Programa

Descripción general
Un programa es una POU que devuelve varios valores durante la operación. Se conservan todos
los valores desde la última vez en que se ejecutó el programa hasta la siguiente.

Adición de un programa
Para asignar un programa a una aplicación existente, seleccione el nodo de la aplicación en el
árbol Aplicaciones, haga clic en el signo más de color verde y ejecute el comando POU... Como
alternativa, haga clic con el botón derecho del ratón en el nodo Aplicación y ejecute el comando
Agregar objeto → POU en el menú contextual. Para añadir una POU independiente de la
aplicación, seleccione el nodo Global del árbol Aplicaciones y ejecute los mismos comandos.
En el cuadro de diálogo Añadir POU, seleccione la opción Programa, especifique un nombre para
el programa y seleccione el lenguaje de implementación. Haga clic en Abrir para confirmar. La
vista de editor del nuevo programa se abrirá y podrá empezar a editar el programa.

Declaración de un programa
Sintaxis:
PROGRAM <nombre de programa>
Va seguido de las declaraciones de variables de entrada (véase página 546), salida
(véase página 547) y las variables de programa. Las variables de acceso están también
disponibles como opciones.
Ejemplo de un programa

164 EIO0000000071 11/2016


Componentes de programa

Llamada a un programa
Otra POU puede llamar a un programa. Sin embargo, no se permite una llamada de programa en
una función (véase página 167). No hay instancias de programas.
Si una POU ha llamado a un programa y los valores del programa se han modificado, estos
cambios se conservarán hasta que se vuelva a llamar a un programa. Esto se aplica aunque se
llame desde otra POU. Tenga en cuenta que esto es diferente de la llamada a un bloque de
funciones. Cuando se llama a un bloque de funciones, sólo se cambian los valores en la instancia
en cuestión del bloque de funciones. Los cambios sólo entran en vigor cuando se vuelve a llamar
a la instancia.
Con el fin de establecer parámetros de entrada o salida en el transcurso de una llamada de
programa, en los editores de texto de lenguaje (por ejemplo, ST), asigne valores a los parámetros
después del nombre de programa entre paréntesis. Para los parámetros de entrada, utilice :=
para esta asignación, como con la inicialización de variables (véase página 537) en la posición de
declaración. Para los parámetros de salida, utilice =>. Consulte el ejemplo siguiente.
Si el programa se inserta mediante Accesibilidad utilizando la opción Insertar con argumentos en
la vista de implementación de un editor de lenguaje de texto, se visualizará automáticamente
según esta sintaxis con todos los parámetros, aunque no es necesario que asigne estos
parámetros.

Ejemplo para llamadas de programa


Programa en IL:
CAL PRGexample (
in_var:= 33 )
LD PRGexample.out_var
ST erg
Ejemplo con asignación de parámetros (Accesibilidad utilizando la opción Insertar con
argumentos):
Programa en IL con argumentos:
CAL PRGexample (
in_var:= 33 ,
out_var=> erg )
Ejemplo en ST
PRGexample(in_var:= 33);
erg := PRGexample.out_var;
Ejemplo con asignación de parámetros (Accesibilidad utilizando la opción Insertar con
argumentos, como se ha descrito anteriormente):
PRGexample (in_var:=33, out_var=>erg );

EIO0000000071 11/2016 165


Componentes de programa

Ejemplo en FBD
Programa en FBD:

166 EIO0000000071 11/2016


Componentes de programa

Función

Descripción general
Una función es una POU que produce exactamente un elemento de datos (que puede estar
formado por varios elementos, como campos o estructuras) cuando se procesa. La llamada en
lenguajes textuales puede ocurrir como un operador en expresiones.

Adición de una función


Para asignar la función a una aplicación existente, seleccione el nodo de la aplicación en el árbol
Aplicaciones, haga clic en el signo más de color verde y ejecute el comando POU... Como
alternativa, haga clic con el botón derecho del ratón en el nodo Aplicación y ejecute el comando
Agregar objeto → POU en el menú contextual. Para añadir una POU independiente de la
aplicación, seleccione el nodo Global del árbol Aplicaciones y ejecute los mismos comandos.
En el cuadro de diálogo Añadir POU, seleccione la opción Función. Especifique un Nombre
(<nombre de la función:>) y un Tipo de retorno (<tipo de datos>) para la nueva función y
seleccione el lenguaje de implementación deseado. Para elegir el tipo de datos de retorno, haga
clic en ... para abrir el cuadro de diálogo Accesibilidad. Haga clic en Abrir para confirmar. Se abre
la vista de editor para la nueva función y puede empezar la edición.

Declaración de una función


Sintaxis:
FUNCTION <nombre de función> : <tipo de datos>
Va seguido de las declaraciones de variables de entrada y las variables de programa.
Asigne un resultado a una función. Esto significa que el nombre de la función se utiliza como
variable de salida.
No declare variables locales como RETAIN o PERSISTENT en una función porque no tendrá
efecto.
El compilador genera los mensajes apropiados si se detectan variables locales declaradas como
RETAIN o PERSISTENT.

EIO0000000071 11/2016 167


Componentes de programa

Ejemplo de una función en ST: esta función toma 3 variables de entrada y devuelve el producto
de las 2 últimas añadidas a la primera.

Llamada a una función


La llamada de una función en ST puede aparecer como un operando en expresiones.
En IL, puede colocar una llamada de función sólo dentro de acciones de un paso o en una
transición.
Las funciones (a diferencia de un programa o un bloque de funciones) no contienen información
interna de estado; es decir, la invocación de una función con los mismos argumentos (parámetros
de entrada) siempre produce los mismos valores (salida). Por este motivo, las funciones no
pueden contener variables globales y direcciones.

Ejemplo de llamadas a funciones en IL


Llamadas a funciones en IL;
LD 5
Fct 3 ,
22
ST result

Ejemplo de llamadas a funciones en ST


result := fct1(5,3,22);

168 EIO0000000071 11/2016


Componentes de programa

Ejemplo de llamadas a funciones en FBD


Llamadas a funciones en FBD:

Ejemplo:
fun(formal1 := actual1, actual2); // -> error message
fun(formal2 := actual2, formal1 := actual1); // same semantics as the f
ollowing:
fun(formal1 := actual1, formal2 := actual2);
De acuerdo con el estándar IEC 61131-3, las funciones pueden tener salidas adicionales. Deben
asignarse en la llamada de la función. En ST, por ejemplo, de acuerdo con la sintaxis siguiente:
out1 => <variable salida 1> | out2 => <variable salida 2> | ...otras variables de salida

Ejemplo
La función fun se define con 2 variables de entrada, in1 e in2. El valor de retorno de fun se
graba en las variables de salida (véase página 547) definidas localmente (VAR_OUTPUT) loc1 y
loc2.
fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);

EIO0000000071 11/2016 169


Componentes de programa

Método

Descripción general
La funcionalidad Método sólo está disponible si se selecciona en el conjunto de características
usado actualmente (Opciones → Características → Conjunto predefinido de características).
Puede utilizar métodos para describir una secuencia de instrucciones ya que son compatibles con
la programación orientada a objetos. A diferencia de una función, un método no es una POU
independiente, sino que se debe asignar a un bloque de funciones (véase página 186). Se puede
considerar una función que contiene una instancia del bloque de funciones respectivo. Como tal,
tiene un valor de retorno, una parte de declaración propia para variables temporales y parámetros.
También, como medio de programación orientada a objetos, puede utilizar interfaces
(véase página 175) para organizar los métodos disponibles en un proyecto. Una interfaz es una
colección de prototipos de métodos. Esto significa que un método asignado a una interfaz sólo
contiene una parte de declaración, pero sin implementación. Además, en la declaración no se
permiten variables locales y estáticas, sino variables de entrada, salida y entrada/salida. La
implementación del método se debe realizar en el bloque de funciones que implementa la interfaz
(véase página 197) y utiliza el método.
NOTA: Al copiar o desplazar un método o una propiedad de un POU a una interfaz, las implemen-
taciones contenidas se eliminan de forma automática. Al copiar o desplazar de una interfaz a un
POU, se solicita especificar el lenguaje de implementación deseado.

Inserción de un método
Para asignar un método a un bloque de funciones o a una interfaz, seleccione el nodo de bloque
de funciones o de interfaz adecuado en Aplicaciones , haga clic en el signo más de color verde y
ejecute el comando Método. Como alternativa, puede hacer clic con el botón derecho del ratón en
el nodo del bloque de funciones o de la interfaz y ejecutar el comando Agregar objeto → Método
en el menú contextual.
En el cuadro de diálogo Añadir método, introduzca un Nombre, el Tipo de retorno deseado, el
Lenguaje de implementación: y el Modificador de acceso (véase a continuación). Para elegir el
tipo de retorno, haga clic en el botón ... para abrir el cuadro de diálogo Accesibilidad...
Modificador de acceso: por motivos de compatibilidad, los modificadores de acceso son
opcionales. El modificador PUBLIC está presente como equivalente a no establecer ningún
modificador.
Como alternativa, seleccione una de las opciones de la lista de selección:
 PRIVADO: el acceso en el método se restringe al bloque de funciones.
 PROTEGIDO: el acceso en el método se restringe al bloque de funciones y su derivación.
 INTERNO: el acceso en el método se restringe al espacio de nombres (biblioteca) actual.
 FINAL: no es posible el acceso de sobrescritura en el método. Permite la generación de código
optimizado.

170 EIO0000000071 11/2016


Componentes de programa

NOTA: Los modificadores de acceso son válidos a partir de la versión del compilador 3.4.4.0 y,
por lo tanto, se pueden utilizar como modificadores en versiones anteriores. Para obtener más
información, consulte la tabla de asignación de versiones del compilador SoMachine/CoDeSys en
SoMachineCompatibilidad y migración - Guía del usuario (véase SoMachine - Compatibilidad y
migración, Guía del usuario).
Haga clic en Abrir para confirmar. Se abrirá la vista del editor de métodos.

Declaración de un método
Sintaxis:
METHOD <modificador acceso> <nombre método> : <tipo datos retorno>VAR_INPUT
... END_VAR
Para obtener una descripción sobre cómo declarar métodos de manejo de interfaces, consulte el
capítulo Interfaz (véase página 175).

Llamada a un método
Las llamadas a métodos también se conocen como llamadas a funciones virtuales. Para obtener
información adicional, consulte el capítulo Invocación de métodos (véase página 199).
Para llamar a un método, tenga en cuenta lo siguiente:
 Los datos de un método son temporales y sólo son válidos durante la ejecución del método
(variables de pila). Esto significa que las variables y los bloques de funciones declarados en un
método se reinicializan en cada llamada al método.
 En el cuerpo de un método, se permite el acceso a las variables de instancia del bloque de
funciones.
 Si es necesario, utilice el puntero THIS (véase página 203), que siempre apunta a la instancia
actual.
 No se puede acceder a las variables VAR_IN_OUT o VAR_TEMP del bloque de funciones en un
método.
 Sólo se permite que los métodos definidos en una interfaz (véase página 175) tengan variables
de entrada, salida y entrada/salida, pero no cuerpo (parte de la implementación).
 Los métodos como las funciones pueden tener salidas adicionales. Se deben asignar durante
la invocación al método (véase página 199).

EIO0000000071 11/2016 171


Componentes de programa

Métodos especiales para un bloque de funciones

Método Descripción
Init Un método denominado FB_init se declara implícitamente de forma predeterminada, pero
también se puede declarar explícitamente. Contiene código de inicialización para el bloque de
funciones tal como se ha declarado en la parte de declaración del bloque de funciones. Consulte
el método FB_init (véase página 557).
Reinit Si se declara un método denominado FB_reinit para una instancia de bloque de funciones, se
llama después de que se haya copiado la instancia (como durante el Cambio en línea) y se
reinicializará el módulo de la nueva instancia. Consulte los métodos FB_init, FB_reinit
(véase página 557).
Exit Si se desea un método de salida denominado FB_exit, se debe declarar explícitamente. No hay
declaración implícita. Se llama al método Exit para cada instancia del bloque de funciones
antes de una nueva descarga, un reinicio o durante el cambio en línea para todas las instancias
movidas o eliminadas. Consulte el método FB_exit (véase página 560).

Las propiedades (véase página 173) y las propiedades de interfaz (véase página 179) constan de
un método de acceso Set o Get.

Llamada al método también cuando la aplicación está detenida


En el archivo de descripción del dispositivo, se puede definir que siempre se llame a un
determinado método con una tarea cíclica por una determinada instancia de bloque de funciones
(de un módulo de biblioteca). Si este método tiene los siguientes parámetros de entrada, también
se procesa cuando la aplicación activa no se está ejecutando.
Ejemplo
VAR_INPUT
pTaskInfo : POINTER TO DWORD;
pApplicationInfo: POINTER TO _IMPLICIT_APPLICATION_INFO;
END_VAR
El programador puede comprobar el estado de la aplicación mediante pApplicationInfo y
definir qué debe suceder.
IF pApplicationInfo^.state = RUNNING THEN <instructions> END_IF

172 EIO0000000071 11/2016


Componentes de programa

Propiedad

Descripción general
La funcionalidad Propiedad sólo está disponible si se selecciona en el conjunto de características
usado actualmente (Opciones → Características → Conjunto predefinido de características).
Está disponible una propiedad en extensión al estándar IEC 61131-3 como método de
programación orientada a objetos. Se compone de un par de métodos de acceso (Get, Set). Se
llaman automáticamente en el acceso de lectura o escritura al bloque de funciones que tenga la
propiedad.
Para insertar una propiedad como objeto debajo de un programa (véase página 164) o un nodo
del bloque de funciones (véase página 186), seleccione el nodo en el árbol Aplicaciones, haga clic
en el signo más de color verde y ejecute el comando Propiedad. Como alternativa, haga clic con
el botón derecho en el nodo y ejecute el comando Agregar objeto → Propiedad en el menú
contextual.
En el cuadro de diálogo Add Property, especifique el Nombre, Tipo de retorno, Lenguaje de
implementación deseado y, opcionalmente, un Modificador de acceso.
Están disponibles los mismos modificadores de acceso que para los métodos (véase página 170):
 PUBLIC
 PRIVATE
 PROTECTED
 INTERNAL
 FINAL

NOTA: Las propiedades también se pueden utilizar dentro de las interfaces.

Descriptores de acceso Get y Set de una propiedad


Se insertan automáticamente 2 métodos (véase página 170) especiales, denominados
descriptores de acceso, en el árbol Aplicaciones, debajo del objeto de propiedad. Puede eliminar
uno de ellos si la propiedad sólo se debe utilizar para la escritura o sólo para la lectura. Un
descriptor de acceso, al igual que una propiedad (véase el párrafo anterior), puede tener asignado
un modificador de acceso en la parte de declaración, o a través del cuadro de diálogo Añadir POU,
cuando se añade explícitamente el descriptor de acceso.
 Se llama al descriptor de acceso Set cuando se escribe la propiedad, es decir, el nombre de
la propiedad se utiliza como entrada.
 Se llama al descriptor de acceso Get cuando se lee la propiedad, es decir, el nombre de la
propiedad se utiliza como salida.

EIO0000000071 11/2016 173


Componentes de programa

Ejemplo:
El bloque de funciones FB1 utiliza una variable local milli. Esta variable está determinada por
las propiedades Get y Set:
Ejemplo de Get
seconds := milli / 1000;
Ejemplo de Set
milli := seconds * 1000;
Puede escribir la propiedad del bloque de funciones (método Set); por ejemplo, con
fbinst.seconds := 22;
(fbinst es la instancia de FB1).
Puede leer la propiedad del bloque de funciones (método Get); por ejemplo, con
testvar := fbinst.seconds;
En el siguiente ejemplo, la propiedad Prop1 se asigna al bloque de funciones fb:

Una propiedad puede tener variables locales adicionales pero ninguna entrada adicional y, a
diferencia de una función (véase página 167) o un método (véase página 170), ninguna salida
adicional.
NOTA: Al copiar o desplazar un método o una propiedad de un POU a una interfaz, las implemen-
taciones contenidas se eliminan de forma automática. Al copiar o desplazar de una interfaz a un
POU, se solicita especificar el lenguaje de implementación deseado.

Supervisión de una propiedad


Una propiedad se puede supervisar en la modalidad online con ayuda de la supervisión en línea
(véase página 372) o de una lista de supervisión (véase página 444). La condición previa para la
supervisión de una propiedad es la adición del pragma {attribute
'monitoring:=variable'} (consulte el capítulo Attribute Monitoring (véase página 590)) en
la parte superior de su definición.

174 EIO0000000071 11/2016


Componentes de programa

Interfaz

Descripción general
La funcionalidad Interfaz sólo está disponible si se selecciona en el conjunto de características
usado actualmente (Opciones → Características → Conjunto predefinido de características).
El uso de interfaces es un medio de programación orientada a objetos. Una POU con interfaces
describe un conjunto de métodos (véase página 170) y prototipos de propiedad
(véase página 173). Prototipo significa que sólo contiene declaraciones, pero que no contiene
implementaciones. La interfaz podría describirse como la cáscara vacía de un bloque de funciones
(véase página 186). Debe implementarse (véase página 197) en la declaración del bloque de
funciones para que se realice en las instancias del bloque de funciones. Hasta que no forme parte
de una definición del bloque de funciones, puede completarse con el código de programación
específico del bloque de funciones. Un bloque de funciones puede implementar una o varias
interfaces.
Mediante el uso de bloques de funciones diferentes, puede ejecutarse el mismo método con
parámetros idénticos pero con código de implementación diferente. Por tanto, se puede
utilizar/llamar a una interfaz en cualquier POU sin la necesidad de que la POU identifique el bloque
de funciones concreto que está relacionado.

Ejemplo de definición y uso de interfaz en un bloque de funciones


Una interfaz IFT se inserta debajo de una aplicación. Contiene 2 métodos: Method1 y Method2.
Ni la interfaz ni los métodos contienen ningún código de implementación. Sólo la parte de
declaración de los métodos se completará con las declaraciones de variables que se desee:
Interfaz con 2 métodos:

Ahora pueden insertarse 1 o varios bloques de funciones, que implementan la interfaz ITF
definida más arriba.

EIO0000000071 11/2016 175


Componentes de programa

Creación de un bloque de funciones que implementa una interfaz

Cuando el bloque de funciones POU se añade al árbol Aplicaciones, los métodos Method1 y
Method2 se insertan automáticamente debajo, conforme se ha definido mediante ITF. Aquí
pueden completarse con código de implementación específico del bloque de funciones.
Uso de la interfaz en la definición del bloque de funciones

Una interfaz puede extender otras interfaces mediante EXTENDS (consulte el ejemplo siguiente,
Ejemplo para extender una interfaz (véase página 178)) en la definición de la interfaz. También se
pueden extender los bloques de funciones.

176 EIO0000000071 11/2016


Componentes de programa

Propiedades de interfaz
Una interfaz también puede definir una propiedad de interfaz, que consta de los métodos de
descriptor de acceso Get y Set. Para obtener más información sobre las propiedades, consulte
los capítulos Propiedad (véase página 173) y Propiedad de interfaz (véase página 179). Una
propiedad en una interfaz, como los métodos que puede incluir, sólo es un prototipo, lo que
significa que no contiene código de implementación. Al igual que los métodos, se añade automáti-
camente al bloque de funciones, que implementa la interfaz. En el bloque de funciones podrá
completarse con código de programación específico.

Consideraciones
Tenga en cuenta lo siguiente:
 No se permite declarar variables en la interfaz. La interfaz no tiene cuerpo (parte de implemen-
tación) ni acciones. En la interfaz sólo se define una colección de métodos y esos métodos sólo
se permite que tengan variables de entrada, variables de salida y variables de entrada/salida.
 Las variables declaradas con el tipo de una interfaz se tratan como referencias.
 Un bloque de funciones que implementa una interfaz debe tener asignados métodos y
propiedades con exactamente el mismo nombre que tienen en la interfaz. Deben contener
entradas, salidas y entradas/salidas también con el mismo nombre.
NOTA: Al copiar o desplazar un método o una propiedad de un POU a una interfaz, las implemen-
taciones contenidas se eliminan de forma automática. Al copiar o desplazar de una interfaz a un
POU, se solicita especificar el lenguaje de implementación deseado.

Inserción de una interfaz


Para añadir una interfaz en una aplicación, seleccione el nodo Aplicación en el árbol Aplicaciones,
o en Catálogo de software → Activos haga clic en el signo más de color verde y seleccione Añadir
otros objetos... → Interfaz. Como alternativa, ejecute el comando Agregar objeto → Interfaz. Si
selecciona el nodo Global antes de ejecutar el comando, la nueva interfaz estará disponible para
todas las aplicaciones.
En el cuadro de diálogo Add Interface, escriba un nombre para la nueva interfaz (<nombre de
interfaz>). Como alternativa, puede activar la opción Extendido: si desea que la interfaz actual sea
una extensión (véase página 194) de otra interfaz.

EIO0000000071 11/2016 177


Componentes de programa

Ejemplo para extender una interfaz


Si ITF1 extiende ITF_base, todos los métodos que describe ITF_base estarán automáti-
camente disponibles en ITF1.
Extensión de una interfaz

Haga clic en Agregar para confirmar la configuración. Se abrirá la vista del editor de la nueva
interfaz.

Declaración de una interfaz


Sintaxis
INTERFACE <nombre de interfaz>
Para una interfaz que extiende a otra:
INTERFACE <nombre de interfaz> EXTENDS <nombre de interfaz base>
Ejemplo
INTERFACE interface1 EXTENDS interface_base

Adición de una colección de métodos


Para completar la definición de la interfaz, añada la colección de métodos que desee. Para este
fin, seleccione el nodo de la interfaz en el árbol Aplicaciones o en Catálogo de software → Activos
y ejecute el comando Método de interfaces... Se abrirá el cuadro de diálogo Add Interface Method
para definir un método que formará parte de la interfaz. Como alternativa, seleccione el nodo de
la interfaz en el árbol Aplicaciones, haga clic en el signo más de color verde y seleccione Método
de interfaces. Añada tantos métodos como desee y recuerde que sólo se permite que esos
métodos tengan variables de entrada, variables de salida y variables de entrada/salida, pero no
cuerpo (parte de implementación).

178 EIO0000000071 11/2016


Componentes de programa

Propiedad de interfaz

Descripción general
Además de los métodos y programas, también puede utilizarse una propiedad, disponible como
un medio de programación orientada a objetos, en la definición de una interfaz
(véase página 175). En este caso, se denomina propiedad de interfaz. Para agregarla a la interfaz
seleccionada en el árbol Aplicaciones, haga clic en el signo más de color verde y ejecute el
comando Propiedad de interfaz... Como alternativa, haga clic con el botón derecho del ratón en el
nodo de interfaz y ejecute el comando Agregar objeto → Propiedad de interfaz en el menú
contextual.
Para obtener más información sobre una propiedad y sus métodos, consulte Propiedad
(véase página 173)
Una propiedad de interfaz amplía la descripción de una interfaz. Al igual que la interfaz, sólo define
que los métodos de descriptor de acceso Get o Set (puede utilizar ambos o sólo uno de ellos)
pertenecen a la interfaz; sin embargo, no se proporciona código de implementación para ellos.
Cuando se amplía un bloque de funciones con una interfaz que contiene propiedades, estas
propiedades y sus descriptores de acceso Get o Set se insertan automáticamente en el árbol
Dispositivos debajo del objeto del bloque de funciones. Pueden editarse para añadir el código de
implementación deseado.

Ejemplo
En la figura siguiente, la interfaz NamedItem tiene una propiedad Name con un método de
descriptor de acceso Get y Set. El descriptor de acceso Get de este ejemplo está destinado para
su uso en la lectura del nombre de cualquier elemento de un bloque de funciones que implementa
la interfaz. El descriptor de acceso Set puede utilizarse para escribir un nombre en este bloque
de funciones. Ambos métodos pueden editarse en la definición de interfaz, pero posteriormente
en el bloque de funciones.
El bloque de funciones FB_Name_xy1 se ha añadido al árbol Dispositivos, de forma que se
implementa la interfaz (FUNCTION_BLOCK FB_Name_xy1 IMPLEMENTS NamedItem). Por
tanto, la propiedad Name con los métodos Get y Set se ha insertado automáticamente debajo de
FB_Name_xy1. Aquí puede editar los métodos de descriptor de acceso; por ejemplo, en el modo
en que la variable name_of_xy1 se lee y, por tanto, se got el nombre de un elemento. En otro
bloque de funciones que también implementa la misma interfaz, el método Get puede rellenarse
con otro código. Este código puede proporcionar el nombre de cualquier otro elemento. El método
Set del ejemplo se utiliza para escribir un nombre, definido por el programa PLC_PRG ('abc'),
en el bloque de funciones FB_Name_xy2.

EIO0000000071 11/2016 179


Componentes de programa

Interfaz NamedItem implementada en 2 bloques de funciones

2 bloques de funciones que implementan la interfaz NamedItem


Bloque de funciones FB_Name_xy1
FUNCTION_BLOCK FB_Name_xy1 IMPLEMENTS NamedItem
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
name_of_xy1: STRING:='xy1';
END_VAR
Bloque de funciones FB_Name_xy2
FUNCTION_BLOCK FB_Name_xy2 IMPLEMENTS NamedItem
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
name_of_xy2: STRING:='xy2';
name_got_from_PLC_PRG: STRING;
END_VAR

180 EIO0000000071 11/2016


Componentes de programa

Implementación de código en los métodos de descriptor de acceso Get y Set debajo de los 2 bloques de
funciones
FB_Name_xy1.Get
VAR
END_VAR
name := name_of_xy1;
FB_Name_xy2.Get
VAR
END_VAR
name := name_of_xy2;
FB_Name_xy2.Set
VAR
END_VAR
name_got_from_PLC_PRG:=name;

Acceso a los bloques de funciones mediante el programa PLC_PRG


PROGRAM PLC_PRG
VAR
FBxy1_inst: FB_Name_xy1;
FBxy2_inst: FB_Name_xy2;
namexy1: STRING;
namexy2: STRING;
END_VAR
//get name out of fb
namexy1:=FBxy1_inst.Name;
namexy2:=FBxy2_inst.Name;
//write name to fb
FBxy2_inst.Name:='abc';

EIO0000000071 11/2016 181


Componentes de programa

Acción

Descripción general
Puede definir acciones y asignarlas a bloques de funciones (véase página 186) y programas
(véase página 164). Una acción es una implementación adicional. Se puede crear en un lenguaje
diferente al de la implementación básica. A cada acción se le da un nombre.
Las acciones trabajan con los datos del bloque de funciones o programa al cual pertenecen. Las
acciones utilizan variables de entrada/salida y variables locales definidas y no contienen sus
propias declaraciones.

Ejemplo de una acción de un bloque de funciones


En la ilustración siguiente se muestra una acción en FB:

En este ejemplo, cada llamada del bloque de funciones FB1 incrementa o reduce la variable de
salida out, en función del valor de la variable de entrada in. Si se invoca la acción Reset del
bloque de funciones, la variable de salida out se establece en 0. En ambos casos se escribe la
misma variable out.

Inserción de una acción


Para añadir una acción, seleccione el nodo correspondiente del programa o bloque de funciones
en el árbol Aplicaciones o en el nodo Global del árbol Aplicaciones, haga clic en el signo más de
color verde y ejecute el comando Acción... Como alternativa, haga clic con el botón derecho en el
nodo del programa o bloque de funciones y ejecute el comando Agregar objeto → Acción. En el
cuadro de diálogo Agregar acción, defina el Nombre de la acción y el Lenguaje de implementación
deseado.

182 EIO0000000071 11/2016


Componentes de programa

Llamada a una acción


Sintaxis
<Program_name>.<Action_name>
o
<Instance_name>.<Action_name>
Tenga en cuenta la notación en FBD (consulte el ejemplo siguiente).
Si es necesario llamar a la acción desde su propio bloque, que es el programa o el bloque de
funciones al cual pertenece, es suficiente utilizar el nombre de la acción.

Ejemplos
En esta sección se ofrecen ejemplos para llamar a la acción que se describe más arriba desde
otra POU.
Declaración para todos los ejemplos:
PROGRAM PLC_PRG
VAR
Inst : Counter;
END_VAR
Llamada de la acción Reset en otra POU, que está programada en IL:
CAL Inst.Reset(In := FALSE)
LD Inst.out
ST ERG
Llamada de la acción Reset en otra POU, que está programada en ST:
Inst.Reset(In := FALSE);
Erg := Inst.out;
Llamada de la acción Reset en otra POU, que está programada en FBD:
Acción en FBD

NOTA: El estándar IEC sólo reconoce las acciones del diagrama funcional secuencial (SFC).
Estas acciones son una parte esencial que contiene las instrucciones que se procesarán en pasos
concretos del diagrama.

EIO0000000071 11/2016 183


Componentes de programa

Función, bloque de funciones y método externos

Descripción general
El sistema de programación no generará ningún código para una función, bloque de funciones o
método externo.
Realice los siguientes pasos para crear una POU externa:

Paso Acción
1 Añada el objeto POU que desee al nodo Global del árbol Aplicaciones de su proyecto como
cualquier objeto interno y defina las respectivas variables de entrada y salida.
NOTA: Defina las variables locales en los bloques de funciones externos. No las defina en
funciones o métodos externos. Las variables VAR_STAT no se pueden utilizar en el sistema de
tiempo de ejecución.
2 Defina la POU como externa:
Para ello, haga clic con el botón derecho en el objeto POU del nodo Global del árbol Aplicaciones
y ejecute el comando Propiedades en el menú contextual. Abra la ficha Compilar y active la
opción External Implementation (Late link in the runtime system).

En el sistema de tiempo de ejecución, se tiene que implementar una función, bloque de funciones
o método equivalente. En una descarga de programa, el equivalente para cada POU externa se
busca en el sistema de tiempo de ejecución. Si se encuentra el equivalente, se vincula.

184 EIO0000000071 11/2016


Componentes de programa

POUs para comprobaciones implícitas

Descripción general
Bajo una aplicación puede añadir POU especiales. Tienen que estar disponibles si durante el
tiempo de ejecución se debe utilizar la funcionalidad de comprobación proporcionada
implícitamente para los límites de matriz y rango, las divisiones entre cero y los punteros. Puede
desactivar esta funcionalidad en el caso de los dispositivos cuyas funciones de comprobación las
proporciona una biblioteca implícita especial.
Para esta finalidad, el cuadro de diálogo Agregar objeto → POUs para comprobaciones implícitas
proporciona las funciones siguientes:
 CheckBounds (véase página 627)
 CheckDivInt (véase página 657)
 CheckDivLInt (véase página 657)
 CheckDivReal (véase página 657)
 CheckDivLreal (véase página 657)
 CheckRange (véase página 634)
 CheckRangeUnsigned (véase página 634)
 CheckPointer (véase página 617)

Tras haber insertado una POU de comprobación, se abre en el editor correspondiente al lenguaje
de implementación seleccionado. En el editor ST hay disponible una implementación predeter-
minada que puede adaptar a sus necesidades.
Tras haber insertado una POU de comprobación determinada, la opción dejará de estar disponible
en el cuadro de diálogo, lo que impedirá una doble inserción. Si ya se han añadido todos los tipos
de POU de comprobación bajo la aplicación, en el cuadro de diálogo Agregar objeto ya no se
proporciona la opción POUs para comprobaciones implícitas.

ATENCIÓN
FUNCIONALIDAD DE COMPROBACIONES IMPLÍCITAS INCORRECTAS
No modifique la parte de declaración de una función de comprobación implícita, a fin de
conservar su integridad funcional.
El incumplimiento de estas instrucciones puede causar lesiones o daño al equipo.

NOTA: A partir de SoMachine V4.0, después de eliminar la función de comprobación implícita


(como CheckBounds) de la aplicación, no se puede utilizar Cambio en línea; solamente se puede
realizar una descarga. Aparecerá el mensaje correspondiente.

EIO0000000071 11/2016 185


Componentes de programa

Sección 7.2
Bloque de funciones

Bloque de funciones

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Información general 187
Instancia de bloque de funciones 190
Llamada a un bloque de funciones 191
Extensión de un bloque de funciones 194
Implementación de interfaces 197
Invocación de métodos 199
Puntero SUPER 201
Puntero THIS 203

186 EIO0000000071 11/2016


Componentes de programa

Información general

Descripción general
Un bloque de funciones es una POU (véase página 159) que proporciona 1 o más valores durante
el proceso de un programa de controlador. A diferencia de una función, los valores de las variables
de salida y las variables internas necesarias pueden persistir de una ejecución del bloque de
funciones a la siguiente. Por lo tanto, la invocación de un bloque de funciones con los mismos
argumentos (parámetros de entrada) no siempre tiene por qué producir los mismos valores de
salida.
Además de la funcionalidad descrita por el estándar IEC11631-3, se admite la programación
orientada a objetos, y pueden definirse bloques de funciones como extensiones
(véase página 194) de otros bloques de funciones. Pueden incluir definiciones de interfaz
(véase página 197) relativas a la Invocación de métodos (véase página 199). Por consiguiente,
puede utilizarse la herencia al programar con bloques de funciones.
Para llamar a un bloque de funciones siempre se utiliza una instancia (véase página 190), que es
una reproducción (copia) del bloque de funciones.

Adición de un bloque de funciones


Para añadir un bloque de funciones a una aplicación existente, seleccione el nodo correspon-
diente en Catálogo de software → Activos o en el árbol Aplicaciones, haga clic en el signo más de
color verde y seleccione POU... Como alternativa, puede hacer clic con el botón derecho en el
nodo y ejecutar el comando Agregar objeto → POU. Para crear un bloque de funciones
independiente de una aplicación, seleccione el nodo Global del árbol Aplicaciones o de Activos.
En el cuadro de diálogo Agregar objeto, seleccione la opción Bloque de funciones, especifique un
Nombre (<identificador>) de bloque de funciones y seleccione el Lenguaje de implementación que
desee.

EIO0000000071 11/2016 187


Componentes de programa

Además, puede especificar las siguientes opciones:

Opción Descripción
Extendido Indique el nombre de otro bloque de funciones disponible en el proyecto que debe ser
la base para el actual. Para obtener información detallada, consulte Ampliación de un
bloque de funciones (véase página 194).
Implementado Escriba los nombres de las interfaces (véase página 175) disponibles en el proyecto
que deben implementarse en el bloque de funciones actual. Puede especificar
diversas interfaces separadas por comas. Para obtener información detallada,
consulte Implementación de interfaces (véase página 197).
Modificador de acceso Por motivos de compatibilidad, los modificadores de acceso son opcionales. El
modificador PUBLIC está disponible como equivalente a no establecer ningún
modificador.
Como alternativa, seleccione una de las opciones de la lista de selección:
 INTERNO: el acceso en el bloque de funciones está restringido al espacio de
nombres (biblioteca) actual.
 FINAL: no se puede derivar el acceso, es decir, el bloque de funciones no puede
ampliarse con otro bloque. Permite la generación de código optimizado.
NOTA: Los modificadores de acceso son válidos a partir de la versión del
compilador 3.4.4.0 y, por lo tanto, se pueden utilizar como modificadores en
versiones anteriores.
Para obtener más información, consulte la tabla de asignación de versiones del
compilador SoMachine/CoDeSys en SoMachineCompatibilidad y migración - Guía
del usuario (véase SoMachine - Compatibilidad y migración, Guía del usuario).
Lenguaje de implementación Seleccione el lenguaje de programación que desee para todos los objetos de método
de método creados mediante la implementación de la interfaz, independientemente del
establecido para el bloque de funciones en cuestión.

Haga clic en Agregar para confirmar la configuración. Se abre la vista de editor para el nuevo
bloque de funciones y puede empezar la edición.

Declaración de un bloque de funciones


Sintaxis
FUNCTION_BLOCK <modificador de acceso> <nombre del bloque de funciones> | EXTENDS
<nombre del bloque de funciones> | IMPLEMENTS <lista de nombres de interfaz separados por
comas>
A esto le sigue la declaración de las variables.

188 EIO0000000071 11/2016


Componentes de programa

Ejemplo
El ejemplo FBexample de la siguiente figura tiene 2 variables de entrada y 2 variables de salida,
out1 y out2.
out1 es la suma de las 2 entradas, y out2 es el resultado de una comparación de igualdad.
Ejemplo de un bloque de funciones en ST

EIO0000000071 11/2016 189


Componentes de programa

Instancia de bloque de funciones

Descripción general
Los bloques de funciones se llaman (véase página 191) mediante una instancia que es una
reproducción (copia) de un bloque de funciones (véase página 187).
Cada instancia tiene su propio identificador (el nombre de la instancia) y una estructura de datos
que contiene sus entradas, salidas y variables internas.
Las instancias, como las variables, se declaran local o globalmente. El nombre del bloque de
funciones se indica como el tipo de datos de un identificador.

Sintaxis para declarar una instancia de bloque de funciones


<identificador>:<nombre del bloque de funciones>;

Ejemplo
Declaración (por ejemplo, en la parte de declaración de un programa) de la instancia INSTANCE
del bloque de funciones FUB:
INSTANCE: FUB;
Las partes de la declaración de bloques de funciones y programas pueden contener declaraciones
de instancias. Sin embargo, las declaraciones de instancias no se permiten en las funciones.

190 EIO0000000071 11/2016


Componentes de programa

Llamada a un bloque de funciones

Descripción general
Los bloques de funciones (véase página 187) se llaman a través de una instancia de bloque de
funciones. Por ello, una instancia de bloque de funciones debe declararse local o globalmente.
Consulte el capítulo Instancia de bloque de funciones (véase página 190) para obtener
información sobre cómo realizar la declaración.
A continuación, puede accederse a la variable de bloque de funciones deseada utilizando la
sintaxis siguiente.

Sintaxis
<nombre de instancia>.<nombre de variable>

Consideraciones
 Sólo puede accederse a las variables de entrada y salida de un bloque de funciones desde
fuera de una instancia de bloque de funciones, pero no a sus variables internas.
 El acceso a una instancia de bloque de funciones está limitado a la POU (véase página 159)
en la que se ha declarado, a menos que se haya declarado globalmente.
 Al llamar a la instancia, pueden asignarse los valores deseados a los parámetros de bloque de
funciones. Consulte el párrafo siguiente, Asignación de parámetros durante la llamada.
 Las variables de entrada/salida (VAR_IN_OUT) de un bloque de funciones se proporcionan
como punteros.
 En SFC, las llamadas de bloque de funciones sólo pueden tener lugar en pasos.
 El nombre de la instancia del bloque de funciones puede utilizarse como parámetro de entrada
para una función u otro bloque de funciones.
 Todos los valores de un bloque de funciones se conservan hasta el siguiente procesamiento
del bloque de funciones. Por tanto, las llamadas de bloque de funciones no siempre devuelven
los mismos valores de salida, aunque se realicen con argumentos idénticos.
NOTA: Si al menos 1 de las variables del bloque de funciones es una variable remanente, la
instancia total se almacena en el área de datos Retain.

EIO0000000071 11/2016 191


Componentes de programa

Ejemplos de acceso a variables de bloque de funciones


Supongamos que el bloque de funciones fb tiene una variable de entrada in1 de tipo INT. Aquí
se puede ver la llamada de esta variable desde dentro del programa prog. Observe la declaración
e implementación en ST:
PROGRAM prog
VAR
inst1:fb;
END_VAR
inst1.in1:=22; (* fb is called and input variable in1 gets assigned v
alue 22 *)
inst1(); (* fb is called, this is needed for the following access on th
e output variable *)
res:=inst1.outl; (* output variable of fb is read *)
Ejemplo de una llamada de bloque de funciones en FBD:

Asignación de parámetros durante la llamada


En los lenguajes de texto IL y ST, puede establecer parámetros de entrada o salida
inmediatamente al llamar al bloque de funciones. Los valores pueden asignarse a los parámetros
entre paréntesis después del nombre de instancia del bloque de funciones. Para los parámetros
de entrada, esta asignación tiene lugar utilizando :=, al igual que en la inicialización de variables
(véase página 537) en la posición de declaración. Para los parámetros de salida, debe utilizarse
=>.

Ejemplo de llamada con asignaciones


En este ejemplo, se llama a un bloque de funciones de temporizador (instancia CMD_TMR) con
asignaciones para los parámetros INy PT. A continuación, la variable resultante Q se asigna a la
variable A. La variable resultante consta del nombre de la instancia del bloque de funciones, un
punto seguido y el nombre de la variable:
CMD_TMR(IN := %IX5, PT := 300);
A:=CMD_TMR.Q

192 EIO0000000071 11/2016


Componentes de programa

Ejemplo de inserción con argumentos mediante el asistente Accesibilidad


Si la instancia se inserta mediante Accesibilidad con la opción Insertar con argumentos en la vista
de implementación de una POU ST o IL, se muestra automáticamente de acuerdo con la sintaxis
que se muestra en el ejemplo siguiente con todos sus parámetros, aunque no es obligatorio
asignar estos parámetros.
En el ejemplo anteriormente mencionado, la llamada se mostraría del modo siguiente.
CMD_TMR(in:=, pt:=, q=>)
-> fill in, e.g.:
CMD_TMR(in:=bvar, pt:=t#200ms, q=>bres);

EIO0000000071 11/2016 193


Componentes de programa

Extensión de un bloque de funciones

Descripción general
Al admitir la programación orientada a objetos, un bloque de funciones se puede derivar de otro
bloque de funciones. Esto significa que un bloque de funciones puede ser la extensión de otro,
con lo que obtiene automáticamente las propiedades del bloque de funciones base además de las
suyas propias.
La extensión se efectúa con la palabra clave EXTENDS en la declaración de un bloque de
funciones. Puede seleccionar la opción EXTENDS ya durante la adición de un bloque de funciones
al proyecto mediante el cuadro de diálogo Agregar objeto.

Sintaxis
FUNCTION_BLOCK <nombre bloque funciones> EXTENDS <nombre bloque funciones>
A esto le sigue la declaración de las variables.

Ejemplo
Definición del bloque de funciones fbA
FUNCTION_BLOCK fbA
VAR_INPUT
x:int;
END_VAR
...
Definición del bloque de funciones fbB
FUNCTION_BLOCK fbB EXTENDS fbA
VAR_INPUT
ivar: INT := 0;
END_VAR
...

194 EIO0000000071 11/2016


Componentes de programa

Extensión mediante EXTENDS


La extensión mediante EXTENDS significa:
 fbB contiene todos los datos y métodos definidos por fbA. Ahora se puede utilizar una
instancia de fbB en cualquier contexto en el que se espere un bloque de funciones de tipo fbA.
 fbB puede sobrescribir los métodos definidos en fbA. Esto significa que fbB puede declarar
un método con el mismo nombre y la misma entrada y salida que el declarado por A.
 fbB no puede utilizar variables de bloque de funciones con el mismo nombre que las utilizadas
en fbA. En este caso, el compilador generará un mensaje de error.
 Se puede acceder a las variables y los métodos de fbA directamente desde un ámbito de fbB
mediante el puntero SUPER (véase página 201) (SUPER^.<method>).
NOTA: La herencia múltiple no está permitida.

Ejemplo
FUNCTION_BLOCK FB_Base
VAR_INPUT
END_VAR
VAR_OUTPUT
iCnt : INT;
END_VAR
VAR
END_VAR
THIS^.METH_DoIt();
THIS^.METH_DoAlso();

METHOD METH_DoIt : BOOL


VAR
END_VAR
iCnt := -1;
METH_DoIt := TRUE;

METHOD METH_DoAlso : BOOL


VAR
END_VAR
METH_DoAlso := TRUE;
FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt();

EIO0000000071 11/2016 195


Componentes de programa

THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt();
SUPER^.METH_DoAlso();
METHOD METH_DoIt : BOOL
VAR
END_VAR
iCnt := 1111;
METH_DoIt := TRUE;
PROGRAM PLC_PRG
VAR
Myfb_1: FB_1;
iFB: INT;
iBase: INT;
END_VAR
Myfb_1();
iBase := Myfb_1.iCnt_Base;
iFB := Myfb_1.iCnt_THIS;

196 EIO0000000071 11/2016


Componentes de programa

Implementación de interfaces

Descripción general
Para admitir la programación orientada a objetos, un bloque de funciones puede implementar
varias interfaces (véase página 175) que permiten utilizar métodos (véase página 170).

Sintaxis
FUNCTION_BLOCK <nombre de bloque de funciones> IMPLEMENTS <nombre de
interfaz_1>|,<nombre de interfaz_2>, ..., <nombre de interfaz_n>
Un bloque de funciones que implementa una interfaz debe contener todos los métodos y
propiedades (propiedad de interfaz (véase página 179)) definidas por esa interfaz. Se incluyen el
nombre, las entradas y la salida del método o propiedad concretos, que deben ser exactamente
los mismos.
Por este motivo, al crear un nuevo bloque de funciones que implemente una interfaz, todos los
métodos y propiedades definidos en esa interfaz se insertarán automáticamente debajo del nuevo
bloque de funciones en el árbol Aplicaciones.
NOTA: Si después se añaden métodos a la definición de interfaz, no se añadirán automáticamente
a los bloques de funciones correspondientes. Ejecute el comando Implementar interfaces...
(véase SoMachine, Comandos de menú, Ayuda en línea) para realizar esta actualización
explícitamente.

Ejemplo
INTERFACE I1 incluye el método GetName:
METHOD GetName : STRING
Cada bloque de funciones A y B implementa la interfaz I1:
FUNCTION_BLOCK A IMPLEMENTS I1
FUNCTION_BLOCK B IMPLEMENTS I1
Así, en los dos bloques de funciones, el método GetName debe estar disponible y se insertará
automáticamente debajo de cada uno cuando los bloques de funciones se inserten en el árbol
Aplicaciones.
Tenga en cuenta esta declaración de una variable de tipo I1:
FUNCTION DeliverName : STRING
VAR_INPUT
l_i : I1;
END_VAR

EIO0000000071 11/2016 197


Componentes de programa

Esta entrada puede recibir todos los bloques de funciones que implementan la interfaz I1.
Ejemplo de llamadas a funciones:
DeliverName(l_i := A_instance); // call with instance of type A
DeliverName(l_i := B_instance); // call with instance of type B
NOTA: Para poder llamar a un método, debe asignarse una instancia de un bloque de funciones
a una variable de tipo interfaz. Una variable de tipo interfaz siempre es una referencia a la instancia
de bloque de funciones asignada.
De este modo, una llamada al método de interfaz produce una llamada a la implementación del
bloque de funciones. En cuanto se asigna la referencia, la dirección correspondiente se supervisa
en modalidad online. En caso contrario, si todavía no se ha asignado ninguna referencia, se
mostrará el valor 0 en la supervisión en modalidad online.
Para este ejemplo, consulte la parte de implementación de la función DeliverName:
DeliverName := l_i.GetName(); // in this case it depends on the "real"
type of l_i whether A.GetName or B.GetName is called
NOTA: Consulte también la posibilidad de extender un bloque de funciones (véase página 194)
utilizando la palabra clave EXTENDS en la declaración.

198 EIO0000000071 11/2016


Componentes de programa

Invocación de métodos

Descripción general
La programación orientada a objetos con bloques de funciones, aparte de ofrecer extensión
(véase página 194) mediante EXTENDS, admite el posible uso de interfaces (véase página 197) y
herencias. Esto requiere invocaciones de métodos con resolución dinámica, también
denominadas llamadas de función virtuales.
Las llamadas de función virtuales necesitan algo más de tiempo que las llamadas de función
normales, y se utilizan en los siguientes casos:
 cuando se realiza una llamada mediante un puntero a un bloque de funciones (pfub^.method)
 Cuando se llama a un método de una variable de interfaz (interface1.method).
 Cuando un método llama a otro método del mismo bloque de funciones.
 Cuando se realiza una llamada mediante una referencia a un bloque de funciones.
 Cuando a VAR_IN_OUT de un tipo de bloque de funciones básico se le puede asignar una
instancia de un tipo de bloque de funciones derivado.
Las llamadas de función virtuales permiten que la misma llamada en un código fuente de
programa invoque diferentes métodos durante el tiempo de ejecución.
Para obtener información más detallada, consulte:
 Método (véase página 170) para obtener más información sobre métodos.
 Puntero THIS (véase página 203) para obtener más información sobre el uso del puntero THIS.
 Puntero SUPER (véase página 201) para obtener más información sobre el puntero SUPER.

Métodos de llamada
Según el estándar IEC 61131-3 , los métodos como las funciones (véase página 167) normales
pueden tener salidas adicionales. Deben asignarse a la llamada de método según la sintaxis
siguiente:
<método>(in1:=<valor> |, más asignaciones de entrada, out1 => <variable de salida 1> | out2 =>
<variable de salida 2> | ...más asignaciones de salida)
Como resultado, la salida del método se escribe en las variables de salida declaradas localmente
tal como se especifica en la llamada.

EIO0000000071 11/2016 199


Componentes de programa

Ejemplo
Supongamos que los bloques de funciones fub1 y fub2 extienden (EXTEND) el bloque de
funciones fubbase e implementan (IMPLEMENT) interface1. Se incluye el método method1.
Posible uso de las interfaces y llamadas de método:
PROGRAM PLC_PRG
VAR_INPUT
b : BOOL;
END_VAR
VAR
pInst : POINTER TO fubbase;
instBase : fubbase;
inst1 : fub1;
inst2 : fub2;
instRef : REFERENCE to fubbase;
END_VAR
IF b THEN
instRef REF= inst1; (* Reference to fub1 *)
pInst := ADR(instBase);
ELSE
instRef REF= inst2; (* Reference to fub2 *)
pInst := ADR(inst1);
END_IF
pInst^.method1(); (* If b is true, fubbase.method1 is c
alled, else fub1.method1 is called *)
instRef.method1(); (* If b is true, fub1.method1 is call
ed, else fub2.method1 is called *)
Supongamos que fubbase del ejemplo anterior contiene 2 métodos, method1 y method2. fub1
anula method2, pero no method1.
Se llama a method1 como se muestra en el ejemplo anterior.
pInst^.method1(); (* If b is true fubbase.method1 is called, else fub1.
method1 is called *)
Para realizar la llamada mediante el puntero THIS, consulte Puntero THIS (véase página 203).

200 EIO0000000071 11/2016


Componentes de programa

Puntero SUPER

Descripción general
Para cada bloque de funciones está disponible automáticamente un puntero con el nombre
SUPER. Apunta a las instancias del bloque de funciones básico, de las que se crea el bloque de
funciones con la herencia del bloque de funciones básico.
Esto proporciona una solución eficaz para el problema siguiente:
 SUPER ofrece acceso a los métodos de implementación de la clase base. Con la palabra clave
SUPER se puede llamar a un método válido en la instancia de clase base (objeto padre). Por lo
tanto, no se lleva a cabo ningún enlace de nombre dinámico.
SUPER sólo se puede utilizar en métodos y en la implementación del bloque de funciones
asociado.
Debido a que SUPER es un puntero al bloque de funciones básico, tiene que quitarle la referencia
para obtener la dirección del bloque de funciones: SUPER^.METH_DoIt.

Llamada de SUPER en distintos lenguajes de implementación

Lenguaje de implementación Ejemplo


ST SUPER^.METH_DoIt();
FBD/CFC/LD

NOTA: La funcionalidad de SUPER todavía no está implementada para la lista de instrucciones.

EIO0000000071 11/2016 201


Componentes de programa

Ejemplo
La variable local iVarB sobrecarga la variable de bloque de funciones iVarB.
FUNCTION_BLOCK FB_Base
VAR_OUTPUT
iCnt : INT;
END_VAR
METHOD METH_DoIt : BOOL
iCnt := -1;

METHOD METH_DoAlso : BOOL


METH_DoAlso := TRUE;

FUNCTION_BLOCK FB_1 EXTENDS FB_Base


VAR_OUTPUT
iBase: INT;
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt();
THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt();
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;

METHOD METH_DoIt : BOOL


iCnt := 1111;
METH_DoIt := TRUE;

END_VAR
ROGRAM PLC_PRG
VAR
myBase: FB_Base;
myFB_1: FB_1;
iTHIS: INT;
iBase: INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;

202 EIO0000000071 11/2016


Componentes de programa

Puntero THIS

Descripción general
Para cada bloque de funciones está disponible automáticamente un puntero con el nombre THIS.
Apunta a su propia instancia de bloque de funciones.
Esto proporciona una solución eficaz para los problemas siguientes:
 Si una variable declarada a nivel local en el método oculta una variable de bloque de funciones.
 Si desea referenciar un puntero a su propia instancia de bloque de funciones para el uso en
una función.
THIS sólo se puede utilizar en métodos y en la implementación del bloque de funciones asociado.
THIS se debe escribir en mayúsculas. No se aceptan otras redacciones.
Debido a que THIS es un puntero al bloque de funciones que hereda, tiene que quitarle la
referencia para obtener la dirección de este bloque de funciones principal: THIS^.METHDoIt.

Llamada de THIS en distintos lenguajes de implementación

Lenguaje de implementación Ejemplo


ST THIS^.METH_DoIt();
FBD/CFC/LD

NOTA: La funcionalidad de THIS todavía no está implementada para la lista de instrucciones.

EIO0000000071 11/2016 203


Componentes de programa

Ejemplo 1
La variable local iVarB deja en segundo plano la variable de bloque de funciones iVarB.
FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
iVarA := 1;

FUNCTION_BLOCK fbB EXTENDS fbA


VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;

METHOD DoIt : BOOL


VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22; // Here the local iVarB is set.
THIS^.iVarB := 222; // Here the function block variable iVarB is se
t, although iVarB is overloaded.

PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR

MyfbB(iVarA:=0 , iVarB:= 0);


MyfbB.DoIt();

204 EIO0000000071 11/2016


Componentes de programa

Ejemplo 2
Llamada de función que necesita una referencia a su propia instancia.
FUNCTION funA
VAR_INPUT
pFB: fbA;
END_VAR
...;

FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
...;

FUNCTION_BLOCK fbB EXTENDS fbA


VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;

METHOD DoIt : BOOL


VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22; //Here the local iVarB is set.
funA(pFB := THIS^); //Here funA is called with THIS^.

PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR
MyfbB(iVarA:=0 , iVarB:= 0);
MyfbB.DoIt();

EIO0000000071 11/2016 205


Componentes de programa

Sección 7.3
Objetos de aplicación

Objetos de aplicación

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Tipo de datos (DUT) 207
Lista de variables globales - GVL 209
Lista de variables globales de red - GNVL 211
Variables persistentes 219
Archivo externo 221
Lista de texto 223
Colección de imágenes 230

206 EIO0000000071 11/2016


Componentes de programa

Tipo de datos (DUT)

Descripción general
Aparte de los tipos de datos estándar, puede definir sus propios tipos de datos. Puede crear
estructuras (véase página 630), tipos de enumeración (véase página 632) y referencias
(véase página 620) como tipos de datos (DUT) en un editor DUT (véase página 403).
Para obtener una descripción del estándar concreto y los tipos de datos definidos por el usuario,
consulte la descripción de los tipos de datos (véase página 612).

Adición de un objeto DUT


Para añadir un objeto DUT a una aplicación existente, seleccione el nodo de aplicación en
Catálogo de software → Activos o en el árbol Aplicaciones, haga clic en el signo más de color
verde y seleccione DUT... O bien haga clic con el botón derecho en el nodo pertinente y ejecute
el comando Agregar objeto → DUT. Para crear un objeto DUT independiente de aplicación,
seleccione el nodo Global en Activos o el árbol Aplicaciones. En el cuadro de diálogo Add DUT,
introduzca un Nombre para el nuevo tipo de datos y elija el tipo deseado de Estructura,
Enumeración, Alias o Unión.
En el caso del tipo Estructura, puede utilizar el principio de herencia, que admite la programación
orientada a objetos. Opcionalmente, puede indicar que el DUT sea una extensión de otro DUT que
ya esté definido en el proyecto. Esto significa que las definiciones del DUT extendido serán
automáticamente válidas dentro del proyecto actual. Para este fin, active la opción Extendido: e
introduzca el nombre del otro DUT.
Haga clic en Agregar para confirmar la configuración. Se abre la vista del editor para el nuevo DUT
y puede empezar la edición.

Declaración de un objeto DUT


Sintaxis
TYPE <identificador>: <declaración componente DUT>END_TYPE
La declaración de componente DUT depende del tipo de DUT, como por ejemplo una estructura
(véase página 630) o una enumeración (véase página 632).

EIO0000000071 11/2016 207


Componentes de programa

Ejemplo
El ejemplo siguiente contiene 2 DUT, que definen las estructuras struct1 y struct2; struct2
extiende struct1, lo que significa que puede utilizar struct2.a en su implementación para
acceder a la variable a.
TYPE struct1 :
STRUCT
a:INT;
b:BOOL;
END_STRUCT
END_TYPE
TYPE struct2 EXTENDS struct1 :
STRUCT
c:DWORD;
d:STRING;
END_STRUCT
END_TYPE

208 EIO0000000071 11/2016


Componentes de programa

Lista de variables globales - GVL

Descripción general
La lista de variables globales (GVL) sirve para declarar variables globales (véase página 548). Si
se especifica una GVL en el nodo Global de Catálogo de software → Activos → POU o del árbol
Aplicaciones, las variables estarán disponibles para todo el proyecto. Si se asigna una GVL a una
aplicación específica, las variables serán válidas en esta aplicación.
Para añadir una GVL a una aplicación existente, seleccione el nodo de aplicación correspondiente
en Catálogo de software → Activos → POU o en el árbol Aplicaciones, haga clic en el signo más
de color verde y seleccione Lista de variables globales... Como alternativa, puede hacer clic con
el botón derecho en el nodo y ejecutar el comando Agregar objeto → Agregar lista de variables
globales... Si selecciona el nodo Global en estas vistas, el nuevo objeto de GVL será
independiente de la aplicación.
Utilice el editor GVL (véase página 405) para editar una lista de variables globales.
Las variables contenidas en una GVL se pueden definir para que estén disponibles como variables
de red (véase página 839) para un intercambio de datos de difusión con otros dispositivos de la
red. Para ello, configure las propiedades de red adecuadas (de forma predeterminada en el menú
Visualizar → Propiedades → Variables de red) para la GVL.
NOTA: El tamaño máximo de una variable de red es de 255 bytes. Puede haber un número
ilimitado de variables de red.
NOTA: Las variables declaradas en la GVL se inicializan antes que las variables locales de las
POU.

GVL para constantes configurables (lista de parámetros) en bibliotecas


El valor de una constante global proporcionado mediante una biblioteca se puede sustituir por un
valor definido por la aplicación. Para ello, la constante se debe declarar en una lista de parámetros
de la biblioteca. A continuación, cuando se incluye la biblioteca en la aplicación, su valor se puede
editar en la ficha Lista de parámetros del Administrador de bibliotecas de la aplicación. Consulte
el ejemplo siguiente para ver una descripción paso a paso.

Gestión de las listas de parámetros


La biblioteca lib1.library proporciona una variable de matriz g_Array. El tamaño de la
variable de matriz se define mediante la constante global g_c_Arraysize. La biblioteca está
incluida en diversas aplicaciones, y cada una necesita un tamaño de matriz diferente. Por lo tanto,
desea sobrescribir la constante global de la biblioteca con un valor específico de la aplicación.
Haga lo siguiente: al crear lib1.library, defina la constante global g_c_Arraysize en un tipo
especial de lista de variables globales (GVL), denominada lista de parámetros. Para ello, ejecute
el comando Agregar objeto y añada un objeto de lista de parámetros, que en este ejemplo se llama
Param. En el editor de este objeto, que es igual que el de una GVL estándar, inserte la declaración
de la variable g_c_Arraysize.

EIO0000000071 11/2016 209


Componentes de programa

Lista de parámetros Param en la biblioteca Lib1.library

Editar parámetro g_c_Arraysize en el Administrador de bibliotecas de un proyecto

Seleccione la biblioteca en la parte superior del Administrador de bibliotecas para obtener el árbol
de módulos. Seleccione Param para abrir la ficha Parámetros de biblioteca que muestra las
declaraciones. Seleccione la celda de la columna Valor (editable) y utilice el espacio vacío para
abrir un campo de edición. Introduzca el nuevo valor que desee para g_c_Arraysize. Este valor
se aplicará al ámbito local actual de la biblioteca tras haber cerrado el campo de edición.

210 EIO0000000071 11/2016


Componentes de programa

Lista de variables globales de red - GNVL

Descripción general
La funcionalidad GNVL sólo está disponible si se selecciona en el conjunto de características
usado actualmente (Opciones → Características → Conjunto predefinido de características).
Una lista de variables globales de red (GNVL) se utiliza en la vista Catálogo de software →
Variables → Variables globales y en el árbol Aplicaciones . Esta lista define variables, que se
especifican como variables de red en otro dispositivo de la red.
NOTA: El tamaño máximo de una variable de red es de 255 bytes. Puede haber un número
ilimitado de variables de red.
Por lo tanto, puede añadir un objeto GNVL a una aplicación si una GVL (véase página 209) con
propiedades de red especiales (lista de variables de red) está disponible en uno de los otros
dispositivos de red. Esto es independiente de si se ha definido en el mismo proyecto o en
proyectos diferentes. Si se encuentran varias GVL apropiadas en el proyecto actual para la red
actual, seleccione la GVL que desee de una lista de selección Remitente al añadir una GNVL por
medio del cuadro de diálogo Agregar objeto → Agregar lista de variables globales de red. Las GVL
de otros proyectos se deben importar tal como se describe en este capítulo.
Esto significa que cada GNVL del dispositivo actual (receptor) corresponde exactamente a una
GVL en otro dispositivo (emisor).
Cuadro de diálogo Agregar lista de variables globales de red

EIO0000000071 11/2016 211


Componentes de programa

Descripción de los elementos


Al añadir la GNVL, además de un Nombre, defina también una Tarea, responsable de la gestión
de las variables de red.
Como alternativa a seleccionar directamente una GVL en Remitente de otro dispositivo, puede
especificar un archivo de exportación de GVL *.GVL con la opción Importado del archivo. Este
archivo GVL se ha generado anteriormente a partir de esa GVL de Remitente por medio del
cuadro de diálogo (véase SoMachine, Comandos de menú, Ayuda en línea) Ver → Propiedades
→ Vínculo con archivo. En cualquier caso, esto es necesario si la GVL deseada se define dentro
de otro proyecto. Con este fin, seleccione la opción Importado del archivo en la lista de selección
Remitente y especifique la ruta del archivo en el campo de texto Importado del archivo (o haga clic
en el botón ... para utilizar el cuadro de diálogo estándar para la navegación por el sistema de
archivos).
Puede modificar la configuración más tarde por medio del cuadro de diálogo (véase SoMachine,
Comandos de menú, Ayuda en línea) Ver → Propiedades → Configuración de red.
El editor NVL (véase página 408) muestra una GNVL, pero no se puede modificar. Muestra el
contenido actual de la GVL correspondiente. Si cambia la GVL básica, la GNVL se actualizará en
consecuencia.
Se añade un comentario automáticamente en la parte superior de la parte de la declaración de
una GNVL, que proporciona información sobre el emisor (ruta del dispositivo), el nombre de la
GVL y el tipo de protocolo.

Ejemplo de lista de variables globales de red


Lista de variables globales de red

NOTA: Sólo se transfieren a la aplicación remota las matrices cuyos límites están definidos por un
literal o una constante. En este caso las expresiones constantes no están permitidas para la
definición de límites. Ejemplo: arrVar : ARRAY[0..g_iArraySize-1] OF INT ; no se
transfiere arrVar : ARRAY[0..10] OF INT ; se transfiere.
Para obtener más información, consulte el capítulo Comunicación de red (véase página 839).

212 EIO0000000071 11/2016


Componentes de programa

Ejemplo de intercambio de variables de red simples


En el ejemplo siguiente, se establece un intercambio de variables de red simples. Se crea una lista
de variables globales (GVL) en el controlador de emisor. Se crea la lista de variables globales de
red (GNVL) correspondiente en el controlador de receptor.
Lleve a cabo las preparaciones siguientes en un proyecto estándar, en el que estén disponibles
un controlador de emisor Dev_Sender y un controlador de receptor Dev_Receiver en el árbol
Dispositivos:
 Cree una POU (programa) prog_sender debajo del nodo Aplicación de Dev_Sender.
 Debajo del nodo Configuración de tareas de esta aplicación, añada la tarea Task_S que llama
a prog_sender.
 Cree una POU (programa) prog_rec debajo del nodo Aplicación de Dev_Receiver.
 Debajo del nodo Configuración de tareas de esta aplicación, añada la tarea Task_R que llama
a prog_rec.
NOTA: Se deben configurar los 2 controladores en la misma subred de la red Ethernet.

Definición de la GVL del emisor


Paso 1: Defina una lista de variables globales en el controlador de emisor:

Paso Acción Comentario


1 En Catálogo de software → Assets View → POU, Aparecerá el cuadro de diálogo Agregar lista de
seleccione el nodo Aplicación del controlador variables globales.
Dev_Sender y haga clic en el signo más de color
verde. Seleccione el comando Lista de variables
globales...
2 Introduzca el Nombre GVL_Sender y haga clic en El nodo GVL_Sender aparece debajo del nodo
Agregar para crear una nueva lista de variables Aplicación en el árbol Aplicaciones y el editor se
globales. abre en medio de la pantalla de SoMachine.

EIO0000000071 11/2016 213


Componentes de programa

Paso Acción Comentario


3 En el editor, introduzca las definiciones de variable –
siguientes:
VAR_GLOBAL
iglobvar:INT;
bglobvar:BOOL;
strglobvar:STRING;
END_VAR

214 EIO0000000071 11/2016


Componentes de programa

Paso 2: Defina las propiedades de la red de la GVL de emisor:

Paso Acción Comentario


1 En el árbol Aplicaciones , seleccione el nodo Aparecerá el cuadro de diálogo Propiedades -
GVL_Sender, haga clic en el signo más de color GVL_Sender.
verde y ejecute el comando Propiedades...
2 Abra la ficha Variables de red y configure los –
parámetros, tal como se muestran en el gráfico:

3 Haga clic en Aceptar. Se cerrará el cuadro de diálogo y se establecerán


las propiedades de la red de la GVL.

EIO0000000071 11/2016 215


Componentes de programa

Definición de la GNVL del receptor


Paso 1: Defina una lista de variables globales de red en el controlador de receptor:

Paso Acción Comentario


1 En el árbol Aplicaciones , seleccione el nodo Aparecerá el cuadro de diálogo Agregar lista de
Aplicación del controlador Dev_Receiver, haga clic variables globales de red.
en el signo más de color verde y ejecute el
comando Lista de variables globales de red...
2 Configure los parámetros tal como se muestran en Esta lista de variables globales de red es la
el gráfico. homóloga de la GVL definida para el controlador de
emisor.

216 EIO0000000071 11/2016


Componentes de programa

Paso Acción Comentario


3 Haga clic en Abrir. Se cerrará el cuadro de diálogo y aparecerá
GNVL_Receiver debajo del nodo Aplicación del
controlador Dev_Receiver:

Esta GNVL contiene automáticamente las mismas


declaraciones de variables que GVL_Sender.

Paso 2: Compruebe o modifique la configuración de red de la GNVL:

Paso Acción Comentario


1 En el árbol Dispositivos, haga clic con el botón Aparecerá el cuadro de diálogo Propiedades -
derecho en el nodo GNVL_Receiver y seleccione el GNVL_Receiver.
comando Propiedades...
2 Abra la ficha Configuración de red. –

EIO0000000071 11/2016 217


Componentes de programa

Paso 3: Pruebe el intercambio de las variables de red en modalidad online:

Paso Acción Comentario


1 Debajo del nodo Aplicación del controlador Se abrirá el editor para prog_sender en la parte de
Dev_Sender, haga doble clic en la POU la derecha.
prog_sender.
2 Introduzca el código siguiente para la variable –
iglobvar:

3 Debajo del nodo Aplicación del controlador Se abrirá el editor para prog_rec en la parte de la
Dev_Receiver, haga doble clic en la POU prog_rec. derecha.
4 Introduzca el código siguiente para la variable –
ivar_local:

5 Inicie sesión con las aplicaciones de emisor y de La variable ivar_local del receptor obtiene los
receptor de la misma red e inícielas. valores de iglobvar tal como se muestra
actualmente en el emisor.

218 EIO0000000071 11/2016


Componentes de programa

Variables persistentes

Descripción general
Este objeto es una lista de variables globales que sólo contiene las variables persistentes de una
aplicación. Por lo tanto, debe asignarse a una aplicación. Para ello, debe insertarse en el árbol
Aplicaciones seleccionando el nodo correspondiente, haciendo clic en el signo más de color verde
y seleccionando Añadir otros objetos → Variables persistentes...
Edite una lista de variables persistentes en el editor GVL (véase página 405).
VAR_GLOBAL PERSISTENT RETAIN ya está predefinido en la primera línea.
Lista de variables persistentes

Las variables persistentes sólo se reinicializan con Reset (origen) <aplicación>. Para obtener más
información, consulte la descripción de las variables remanentes (véase página 550).
También puede consultar la descripción de los comandos especiales para gestionar variables
persistentes (véase SoMachine, Comandos de menú, Ayuda en línea).

Adición y declaración de variables remanentes


Al añadir variables a una aplicación, puede declarar algunas de estas como variables remanentes.
Las variables remanentes pueden conservar sus valores en caso de cortes de alimentación,
reinicios, restablecimientos y descargas de programas de aplicación. Existen varios tipos de
variables remanentes, declaradas individualmente como de tipo "retain" o "persistent", o en
combinación como "retain-persistent".
Para obtener información sobre el tamaño de memoria reservado para las variables Retain y
Persistent en los diferentes controladores, consulte la Guía de programación del controlador que
esté utilizando.

EIO0000000071 11/2016 219


Componentes de programa

Para añadir una lista de variables globales denominada Variables persistentes a una aplicación,
haga lo siguiente:

Paso Acción
1 Seleccione el nodo de aplicación correspondiente en el árbol Aplicaciones, haga clic en el signo más de color
verde y seleccione Añadir otros objetos → Variables persistentes...
Como alternativa, puede hacer clic con el botón derecho en el nodo de aplicación y ejecutar el comando
Agregar objeto → Variables persistentes...
2 En el cuadro de diálogo Agregar variables persistentes, escriba un nombre para esta lista en el cuadro de
texto Nombre.
3 Haga clic en Agregar.
Resultado: Se crea un nodo de variables persistentes en el árbol Aplicaciones. Para ver un ejemplo, consulte
el apartado Descripción general en este capítulo.

220 EIO0000000071 11/2016


Componentes de programa

Archivo externo

Descripción general
La funcionalidad Archivo externo sólo está disponible si se selecciona en el conjunto de
características usado actualmente (Opciones → Características → Conjunto predefinido de
características).
Para agregar un archivo externo al nodo Global del árbol Aplicaciones o del árbol Herramientas,
seleccione el nodo Global, haga clic en el signo más de color verde y ejecute los comandos Añadir
otros objetos → Archivo externo...
Haga clic en el botón ... para abrir el cuadro de diálogo y examinar un archivo. La ruta de este
archivo se especifica en el cuadro de texto Ruta de archivo. En el cuadro de texto Nombre, el
nombre del archivo elegido se especifica automáticamente sin extensión. Puede editar este
campo para definir otro nombre para el archivo con el cual debe gestionarse en el proyecto.
Cuadro de diálogo Añadir archivo externo:

EIO0000000071 11/2016 221


Componentes de programa

Descripción de la sección ¿Qué desea hacer con el archivo externo? del cuadro de diálogo
Seleccione una de las opciones siguientes:

Opción Descripción
Guardar el vínculo. El archivo estará disponible en el proyecto sólo si está disponible en la
ruta de enlace definida.
Guardar el vínculo e incrustarlo en Se guardará una copia del archivo internamente en el proyecto, pero
el proyecto. también se recuperará el vínculo al archivo externo. Mientras el archivo
externo esté disponible según se ha definido, las opciones de
actualización definidas se implementarán en consonancia. En caso
contrario, sólo estará disponible la versión del archivo almacenada en
el proyecto.
Incrustar en el proyecto. Sólo se almacenará una copia del archivo en el proyecto. No habrá
otras conexiones con el archivo externo.

Descripción de la sección Cuando el archivo externo cambia del cuadro de diálogo


Si el archivo externo está vinculado al proyecto, puede seleccionar además una de las opciones:

Opción Descripción
Cargar de nuevo el archivo El archivo se actualiza en el proyecto en cuanto se modifica
automáticamente. externamente.
Preguntar si el archivo debe Aparece un cuadro de diálogo en cuanto el archivo se modifica
cargarse de nuevo. externamente. Puede decidir si el archivo se actualizará también en el
proyecto.
No hacer nada. El archivo permanece sin cambios en el proyecto, aunque se modifique
externamente.

Descripción de los botones

Botón Descripción
Mostrar las propiedades de Este botón abre el cuadro de diálogo estándar de propiedades de un
archivo... archivo. Este cuadro de diálogo también aparece al seleccionar el
objeto de archivo en el árbol Aplicaciones o el árbol Herramientas y
ejecutar el comando Propiedades. En la ficha Archivo externo de este
cuadro de diálogo, puede ver y modificar las propiedades.
Abrir Después de completar la configuración, haga clic en el botón Abrir para
añadir el archivo al nodo Global del árbol Aplicaciones o del árbol
Herramientas. Se abre en una herramienta definida de forma
predeterminada para el formato del archivo en cuestión.

222 EIO0000000071 11/2016


Componentes de programa

Lista de texto

Descripción general
La funcionalidad Lista de texto sólo está disponible si se selecciona en el conjunto de
características usado actualmente (Opciones → Características → Conjunto predefinido de
características).
Una lista de texto es un objeto gestionado globalmente en el nodo Global del árbol Aplicaciones
o asignado a una aplicación en el árbol Aplicaciones.
Sirve para lo siguiente:
 soporte en varios idiomas para textos estáticos (véase página 224) y dinámicos
(véase página 225), e información sobre herramientas en visualizaciones y en la gestión de
alarmas
 intercambio de texto dinámico

Las listas de texto pueden exportarse y (re)importarse (véase página 228). La exportación es
necesaria si debe proporcionarse un archivo de idioma en formato XML para una visualización de
destino, pero también puede ser útil para traducciones.
Posibles formatos de listas de texto:
 texto
 XML

Puede activar el soporte de Unicode (véase página 228).


Cada lista de texto se define de forma exclusiva mediante su espacio de nombre. Contiene
cadenas de texto referenciadas de forma exclusiva en la lista mediante un identificador (ID,
compuesto de una secuencia de caracteres) y un identificador de idioma. La lista de texto que
debe utilizarse se especifica al configurar el texto de un elemento de visualización.
En función del idioma definido en la visualización, se mostrará en modalidad online la cadena de
texto correspondiente. El idioma empleado en una visualización se cambia mediante la entrada
Cambio de idioma. Esto se lleva a cabo mediante una acción de ratón que ha configurado en el
elemento de visualización en cuestión. Cada lista de texto debe contener al menos un idioma
predeterminado y, opcionalmente, otros idiomas que desee definir. Si no se encuentra ninguna
entrada que coincida con el idioma establecido actualmente en SoMachine, se utilizará el idioma
predeterminado de la lista de texto. Cada texto puede contener definiciones de formato
(véase página 228).
Estructura básica de una lista de texto

Identificador (Índice) Predeterminado <Idioma 1> <Idioma 2> .... <Idioma n>
<cadena exclusiva de <texto abc en el idioma <texto abc en el <texto abc en el ...
caracteres> predeterminado> idioma 1> idioma 2>
<cadena exclusiva de <texto xyz en el idioma <texto xyz en el <texto xyz en el ...
caracteres> predeterminado> idioma 1> idioma 2>

EIO0000000071 11/2016 223


Componentes de programa

Tipos de lista de texto


Hay dos tipos de texto que se pueden utilizar en elementos de visualización y, por consiguiente,
hay dos tipos de listas:
 GlobalTextList para textos estáticos
 lista de texto para textos dinámicos

GlobalTextList para textos estáticos


GlobalTextList es una lista de texto especial en la que los identificadores de las diferentes
entradas de texto se gestionan implícitamente y no son editables. Asimismo, la lista no puede
eliminarse. Sin embargo, puede exportar la lista, editarla externamente y, a continuación, volver a
importarla.
El texto estático en una visualización, a diferencia del texto dinámico, no puede intercambiarse por
una variable en modalidad online. La única opción para cambiar el idioma de un elemento de
visualización es mediante la entrada Cambio de idioma. Un texto estático se asigna a un elemento
de visualización mediante la propiedad Texto o Información sobre herramientas en la categoría
Textos. Cuando se define el primer texto estático en un proyecto, se añade un objeto de lista de
texto denominado GlobalTextList al nodo Global del árbol Aplicaciones. Contiene la cadena de
texto definida que se encuentra en la columna Predeterminado, y se asigna automáticamente un
número entero como identificador de texto. Por cada texto estático creado posteriormente, el
número de identificador se incrementa y se asigna al elemento de visualización.
Si se inserta un texto estático en un elemento de visualización (por ejemplo, si en un rectángulo
de la categoría de propiedad Textos, se especifica la cadena Text Example), se buscará ese texto
en GlobalTextList.
 Si se encuentra el texto (por ejemplo, ID 4711, Text Example), el valor de elemento 4711 de
TextId se asignará a una variable interna. Esto establece la relación entre el elemento y la línea
correspondiente en GlobalTextList.
 Si no se encuentra el texto, se inserta una nueva línea en GlobalTextList (por ejemplo, ID 4712,
Text Example). En el elemento, se asignará el valor 4712 a la variable interna.
NOTA: Si todavía no existe, puede crear una lista global de texto explícitamente mediante el
comando Crear la lista global de texto.
Si ha exportado, editado y reimportado GlobalTextList, se valida en función de si los identifi-
cadores todavía coinciden con los que se utilizan en la configuración de los elementos de
visualización respectivos. Si es necesario, se realizará una actualización implícita de los identifi-
cadores utilizados en la configuración.

224 EIO0000000071 11/2016


Componentes de programa

Ejemplo de GlobalTextList
Crear la lista global de texto

Lista de texto para textos dinámicos


El texto dinámico puede cambiarse dinámicamente en modalidad online. El índice de texto (ID),
que es una cadena de caracteres, debe ser exclusivo en la lista de texto. A diferencia de
GlobalTextLists, debe definirlo. A diferencia también de GlobalTextList, puede crear listas de texto
explícitamente para texto dinámico seleccionando el nodo Global, haciendo clic en el signo más
de color verde y ejecutando el comando Añadir otros objetos → Lista de texto...
Las listas de texto dinámico disponibles actualmente se ofrecen al configurar un elemento de
visualización mediante la propiedad Dynamic texts/Lista de texto. Si especifica un nombre de lista
de texto combinado con el índice de texto (ID), que puede especificarse directamente o mediante
una variable de proyecto que define la cadena de ID, el texto actual puede modificarse en
modalidad online.
Si es necesario, debe exportarse una lista de texto dinámico como archivo de idioma para cambiar
de idioma en una visualización de destino. Especifique la ruta del archivo en Visualization Options.
Al igual que GlobalTextList, una lista de texto dinámico también puede exportarse para su edición
externa y volver a importarse. A diferencia de GlobalTextList, al importar listas de texto dinámico
no se produce ninguna comprobación ni actualización automáticas de los identificadores.

AVISO
MODIFICACIÓN ACCIDENTAL DE IDENTIFICADORES
No modifique los identificadores al editar la lista exportada.
El incumplimiento de estas instrucciones puede causar daño al equipo.

EIO0000000071 11/2016 225


Componentes de programa

Ejemplo de lista de texto dinámico denominada ErrorList


Ejemplo: ErrorList

Ejemplo detallado
En este ejemplo se explica cómo configurar un elemento de visualización, que muestra el mensaje
correspondiente cuando se detecta un error en una aplicación que procesa eventos de error
identificados mediante ID numéricos asignados a una variable entera ivar_err.
Proporcione una lista de texto dinámico denominada ErrorList en la que el texto de los mensajes
para los ID 0 a 4 se definan en los idiomas Alemán, Inglés y Predeterminado:

Para utilizar los ID de error en la configuración de la visualización, defina una variable STRING,
como por ejemplo strvar_err. Para asignar el valor entero de ivar_err a strvar_err, utilice
strvar_err:=INT_TO_STRING(ivar_err);.
strvar_err puede especificarse como parámetro Textindex en la configuración de las
propiedades Dynamic texts de un elemento de visualización. El elemento mostrará el mensaje
apropiado en modalidad online.

226 EIO0000000071 11/2016


Componentes de programa

El ejemplo siguiente es para procesar el ID de error mediante variables de proyecto y la


configuración de un elemento de visualización (Propiedades), que debe mostrar el mensaje
apropiado:

Creación de una lista de texto


 Para crear una lista de texto para textos dinámicos (véase página 225), añada un objeto Lista
de texto al proyecto en el árbol Aplicaciones. Para crear una lista de texto específica de la
aplicación, seleccione un nodo de la aplicación. Para crear una lista global de texto, seleccione
el nodo Global. A continuación, haga clic en el signo más de color verde del nodo seleccionado
y ejecute el comando Añadir otros objetos → Lista de texto... Cuando haya especificado un
nombre de lista y haya confirmado el cuadro de diálogo Add Textlist, la nueva lista se insertará
debajo del nodo seleccionado y se abrirá una vista del editor de listas de texto.
 Para obtener una lista de texto para textos estáticos (véase página 224) (GlobalTextList),
asigne texto a la propiedad Texto en la categoría Textos de un objeto de visualización para
obtener la vista creada automáticamente, o genérela explícitamente mediante el comando
Crear la lista global de texto.
 Para abrir una lista de texto existente para su edición, seleccione el objeto de lista en el árbol
Aplicaciones o el nodo Global del árbol Aplicaciones. Haga clic con el botón derecho en el nodo
de lista de texto y ejecute el comando Modificar objeto, o haga doble clic en el nodo de lista de
texto. Consulte la tabla Estructura básica de una lista de texto para saber cómo se estructura
una lista de texto.
 Para añadir un nuevo texto predeterminado en una lista de texto, utilice el comando Insertar
texto o edite el campo respectivo en la línea vacía de la lista. Para editar un campo en una lista
de texto, haga clic en el campo para seleccionarlo y, a continuación, vuelva a hacer clic en el
campo o pulse la barra espaciadora para obtener un cuadro de edición. Introduzca los
caracteres deseados y cierre el cuadro de edición pulsando RETORNO.

EIO0000000071 11/2016 227


Componentes de programa

Soporte de formato Unicode


Para utilizar el formato Unicode, active la opción correspondiente en el Gestor de visualización.
Además, establezca una directiva de compilación especial para la aplicación: seleccione la
aplicación en el árbol Dispositivos, abra el cuadro de diálogo Propiedades, ficha Compilación. En
el campo Definiciones de compilador, especifique VISU_USEWSTRING.
Cuadro de diálogo con definición de compilador

Exportación e importación de listas de texto


Las listas de texto estático y dinámico pueden exportarse como archivos en formato CSV. Los
archivos exportados también pueden utilizarse para añadir texto externamente; por ejemplo, por
parte de un traductor externo. Sin embargo, sólo pueden volver a importarse los archivos
disponibles en formato de texto (*.csv).
Consulte la descripción de los respectivos comandos de lista de texto (véase SoMachine,
Comandos de menú, Ayuda en línea).
Especifique la carpeta en la que deben guardarse los archivos de exportación en el cuadro de
diálogo Archivo → Configuración del proyecto → Visualización.

Formato del texto


El texto puede contener definiciones de formato %s,%d…), que permiten incluir los valores
actuales de las variables en un texto. Para ver las cadenas de formato posibles, consulte el
apartado Visualización de la ayuda online de SoMachine.
Cuando utilice texto con cadenas de formato, la sustitución se realiza en el orden siguiente:
 Se busca la cadena de texto que debe utilizarse por nombre de lista e ID.
 Si el texto contiene definiciones de formato, se sustituyen por el valor de la variable
correspondiente.

228 EIO0000000071 11/2016


Componentes de programa

Entrega posterior del texto traducido


Al insertar GlobalTextList.csv en el directorio utilizado para cargar archivos de texto, se permite la
integración posterior de texto traducido. Cuando se inicia el proyecto de arranque, el firmware
detecta que hay disponible un archivo adicional. El texto se compara con el de los archivos de
listas de texto existentes. Los textos nuevos y modificados se aplican a los archivos de listas de
texto. Los archivos de listas de texto actualizados se aplicarán en el siguiente inicio.

Componentes de lista para la introducción de texto


Mediante el cuadro de diálogo Herramientas → Opciones → Visualización, puede especificar un
archivo de plantilla de texto. Todos los textos de la columna Predeterminado de este archivo se
copiarán en una lista, que se utilizará para la funcionalidad List Components. Puede utilizarse un
archivo de plantilla creado anteriormente mediante el comando Exportar.

Operaciones multiusuario
Mediante el uso del control de código de origen, es posible que varios usuarios trabajen
simultáneamente en el mismo proyecto. Si más de un usuario modifica texto estático en elementos
de visualización, esto provocará modificaciones en GlobalTextList (consulte GlobalTextList
(véase página 224)). En este caso, puede que los ID de texto no sean coherentes con los
elementos de visualización. Utilice los siguientes métodos de detección y corrección de errores:
 Utilice el comando Comprobar los identificadores de texto de visualización para detectar estos
errores en las visualizaciones.
 Utilice el comando Actualizar los identificadores de texto de visualización para corregir
automáticamente estos errores. Tanto las visualizaciones afectadas como GlobalTextList
deben tener permiso de escritura.

Uso de listas de texto para modificar el idioma en las visualizaciones


Si hay disponible una lista de texto adecuada, es decir, una lista de texto que define versiones en
varios idiomas para un texto, el idioma utilizado para el texto de una visualización puede
cambiarse en modalidad online mediante una entrada en el elemento de visualización. Las
propiedades Dynamic Texts del elemento deben especificar la lista de texto que debe utilizarse, y
debe configurarse la acción de entrada OnMouse, Cambio de idioma, para especificar el idioma
que debe emplearse después de realizar la acción del ratón.
NOTA: Debe especificarse el idioma exactamente con la cadena que se muestra en el
encabezado de columna de la lista de texto respectiva.

EIO0000000071 11/2016 229


Componentes de programa

Colección de imágenes

Descripción general
La funcionalidad Colección de imágenes sólo está disponible si se selecciona en el conjunto de
características usado actualmente (Opciones → Características → Conjunto predefinido de
características).
Las colecciones de imágenes son tablas que definen la ruta de archivo, una vista previa y un ID
de cadena para cada imagen. Si se especifica el ID y (para un acceso exclusivo) adicionalmente
el nombre de archivo de imagen, se puede hacer referencia a la imagen, por ejemplo, cuando se
inserta en una visualización (configuración de las propiedades de un elemento de imagen;
consulte Uso de imágenes gestionadas en colecciones de imágenes (véase página 231)).
NOTA: Se recomienda reducir el tamaño de un archivo de imagen tanto como sea posible antes
de añadirlo a una colección de imágenes. De lo contrario, el tamaño del proyecto y la carga y
almacenamiento de las aplicaciones de visualización, incluidas las imágenes, pueden resultar
muy grandes.

Estructura de una colección de imágenes


Ejemplo de una colección de imágenes

Elemento Descripción
ID ID de cadena (por ejemplo: logo, y_icon, 2).
Para obtener una referencia exclusiva de una imagen, se debe combinar el
nombre de lista de imágenes y el ID (por ejemplo: List1.basic_logo).
Nombre de archivo Ruta del archivo de imagen (por ejemplo: C:\programs\images\logo.bmp).
Imagen Vista previa de la imagen.

230 EIO0000000071 11/2016


Componentes de programa

Creación y edición de una colección de imágenes


Un proyecto puede contener varias colecciones de imágenes.
Si todavía no hay una colección disponible en un proyecto, se creará automáticamente una
colección de imágenes con el nombre predeterminado GlobalImagePool en cuanto añada el
primer elemento de imagen y especifique un ID (ID estático) para la imagen correspondiente en
las propiedades de los elementos visuales. Se inserta una entrada para la imagen. GlobalIma-
gePool es una colección global en la que se busca en primer lugar cuando se debe utilizar un
archivo de imagen. Además de esta colección, se pueden utilizar colecciones adicionales cuyo
nombre se ha asignado individualmente.
Para crear colecciones de imágenes manualmente, haga lo siguiente: GlobalImagePool se crea
con el comando Image Pool Editor Commands → Crear la colección global de imágenes. Puede
insertar los demás objetos de colección debajo de un nodo de aplicación o debajo del nodo Global
del árbol Aplicaciones haciendo clic en el signo más de color verde y ejecutando los comandos
Añadir otros objetos → Colección de imágenes... En el cuadro de diálogo Add Image Pool, defina
un Nombre para la colección.
Para añadir manualmente una imagen a una colección, utilice el comando Insertar archivo de
imagen o cumplimente la tabla de la colección manualmente. En este último caso, seleccione el
campo de ID de la primera línea vacía de la tabla de la colección, pulse la barra espaciadora para
abrir un cuadro de edición y especifique un ID (cadena). El ID pasará a ser exclusivo automáti-
camente. A continuación, coloque el cursor en el campo de nombre Archivo, pulse la barra
espaciadora y haga clic en el botón ... para abrir el cuadro de diálogo Selección de imagen. Aquí
puede especificar la ruta del archivo de imagen que desee.

Uso de imágenes gestionadas en colecciones de imágenes


Si el ID de la imagen que se debe utilizar se especifica en múltiples colecciones de imágenes:
 Orden de búsqueda: Si selecciona una imagen gestionada en GlobalImagePool, no es
necesario especificar el nombre de colección. El orden de búsqueda de las imágenes
corresponde al de las variables globales:
1. GlobalImagePool
2. colecciones de imágenes asignadas a la aplicación activa
3. colecciones de imágenes del nodo Global del árbol Aplicaciones además de
GlobalImagePool
4. colecciones de imágenes en bibliotecas
 Acceso exclusivo: Puede llamar directamente a la imagen que desee añadiendo el nombre de
colección de imágenes antes del ID, con la siguiente sintaxis: <nombre de colección>.<ID de
imagen> (para ver un ejemplo, consulte imagepool1.drive_icon en el gráfico anterior).

EIO0000000071 11/2016 231


Componentes de programa

Uso de una imagen en un elemento de visualización de tipo imagen


Al insertar un elemento de imagen en una visualización, puede definirlo como imagen estática o
imagen dinámica. La imagen dinámica se puede cambiar en modalidad online según el valor de
una variable de proyecto:
Imágenes estáticas:
En la configuración del elemento (propiedad ID estático), especifique el ID de imagen o el nombre
de colección de imágenes + ID de imagen. Tenga en cuenta las observaciones sobre el orden de
búsqueda y el acceso exclusivo del párrafo anterior.
Imágenes dinámicas:
En la configuración del elemento (propiedad Variable ID de mapa de bits), especifique la variable
que define el ID; por ejemplo, PLC_PRG.imagevar.

Uso de una imagen para el fondo de visualización


En la definición del fondo de una visualización, puede definir que se muestre una imagen como
fondo de la visualización. Como se ha descrito anteriormente, el archivo de imagen se puede
especificar para un elemento de visualización mediante el nombre de la colección de imágenes y
el nombre del archivo de imagen.

232 EIO0000000071 11/2016


Componentes de programa

Sección 7.4
Aplicación

Aplicación

Aplicación

Descripción general
Una aplicación es un conjunto de objetos que se necesitan para ejecutar una instancia
determinada del programa de controlador en un dispositivo de hardware concreto (controlador).
Con esta finalidad, los objetos independientes gestionados en el nodo Global del árbol
Aplicaciones se instancian y se asignan a un dispositivo. Esto se corresponde con el concepto de
programación orientada a objetos. Sin embargo, también puede utilizar las POU puramente
específicas de la aplicación.
Una aplicación se representa mediante un objeto de aplicación en el árbol Aplicaciones. Debajo
de una entrada de aplicación, inserte los objetos que definen el conjunto de recursos de la
aplicación.
Hay una aplicación disponible para cada controlador. No se pueden añadir más aplicaciones.
Una parte de cada aplicación es Configuración de tareas, que controla la ejecución de un
programa (instancias de POU o POU específicas de la aplicación). Además, puede tener
asignados objetos de recurso como listas de variables globales, entre otros. Estos, a diferencia de
los gestionados en el nodo Global del árbol Aplicaciones, solamente los puede utilizar la aplicación
en cuestión y sus subobjetos. Para ver las reglas, consulte la descripción de la organización y
configuración de objetos en el árbol Dispositivos (véase página 42).

Consideraciones
Al iniciar sesión con una aplicación en un dispositivo de destino (controlador o destino de
simulación), se efectúan dos comprobaciones: ¿qué aplicación está en el controlador en ese
momento? ¿Se corresponden los parámetros de la aplicación del controlador con los de la
aplicación de SoMachine? Los correspondientes mensajes indican las discrepancias y ofrecen
algunas formas de continuar en este caso. También tiene la posibilidad de suprimir la aplicación
del controlador. Consulte la descripción del comando Inicio de sesión (véase página 242) para
obtener más detalles.

EIO0000000071 11/2016 233


Componentes de programa

234 EIO0000000071 11/2016


SoMachine
Configuración de tareas
EIO0000000071 11/2016

Capítulo 8
Configuración de tareas

Configuración de tareas

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Configuración de tareas 236
Adición de tareas 236

EIO0000000071 11/2016 235


Configuración de tareas

Configuración de tareas

Descripción general
La Configuración de tareas define 1 o varias tareas para controlar el procesamiento de un
programa de aplicación.
Es un objeto de recurso para una aplicación (véase página 233). Se tiene que insertar en el árbol
Aplicaciones bajo un nodo de aplicación. Una tarea puede llamar a una POU de un programa
específico de la aplicación que está sólo disponible en el árbol Aplicaciones, bajo la aplicación.
También puede llamar a un programa que se gestiona en el nodo Global del árbol Aplicaciones.
En este último caso, la aplicación instanciará el programa que está disponible a nivel global.
Puede editar una configuración de tareas en el editor de tarea (véase página 433).
En la modalidad online, el editor de tarea proporciona una vista de supervisión que ofrece
información sobre los ciclos, tiempos de ciclo y estado de tarea.
Como funcionalidad adicional de la configuración de tareas, la vista de supervisión, si es
compatible con el dispositivo, permite un análisis dinámico de las POU que están controladas por
una tarea. Proporciona información acerca de los tiempos de ciclo, la cantidad de llamadas de
bloques de funciones y las líneas de código no utilizadas.
Adición de tareas

Introducción
Puede añadir tareas a la aplicación mediante el árbol Aplicaciones.

Procedimiento

Paso Acción
1 En el árbol Aplicaciones, seleccione el nodo Configuración de tareas, haga clic en el signo más de color
verde y ejecute el comando Tarea...
Como alternativa, puede hacer clic con el botón derecho en el nodo Configuración de tareas y seleccionar
Agregar objeto → Tarea... en el menú contextual.
Resultado: Se abre el cuadro de diálogo Agregar tarea.
2 En el cuadro de diálogo Agregar tarea, escriba un nombre en el cuadro de texto Nombre:.
Nota: El nombre no puede contener espacios ni tener más de 32 caracteres.
3 Haga clic en Agregar.

236 EIO0000000071 11/2016


SoMachine
Gestión de aplicaciones
EIO0000000071 11/2016

Capítulo 9
Gestión de aplicaciones

Gestión de aplicaciones

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
9.1 Información general 238
9.2 Compilación y descarga de aplicaciones 240
9.3 Ejecución de aplicaciones 256
9.4 Mantenimiento de aplicaciones 258

EIO0000000071 11/2016 237


Gestión de aplicaciones

Sección 9.1
Información general

Información general

Introducción

Introducción
Para ejecutar una aplicación, primero es necesario conectar el PC al controlador y descargar la
aplicación al controlador.
NOTA: Debido a la limitación de tamaño de la memoria, algunos controladores no pueden
almacenar el origen de la aplicación, sino sólo una aplicación compilada que se ejecute. Esto
significa que no se podrá cargar el origen de la aplicación del controlador a un PC.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Asegúrese de haber introducido la designación o la dirección del dispositivo correctas en el
cuadro de diálogo Configuración de comunicación al descargar una aplicación.
 Asegúrese de que las protecciones y las etiquetas de la máquina están colocadas con el fin
de evitar el funcionamiento imprevisto de la máquina y riesgos de daños personales o
materiales.
 Lea y tenga en cuenta toda la documentación para el usuario del software y los dispositivos
relacionados, así como la documentación referente al funcionamiento de la máquina o el
equipo.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Condiciones previas
Compruebe que la aplicación reúne las condiciones siguientes antes de descargarla en el
controlador:
 La ruta activa está definida para el controlador correcto.
 La aplicación que se desea descargar está activa.
 La aplicación no tiene errores de compilación.

238 EIO0000000071 11/2016


Gestión de aplicaciones

Aplicación de arranque
La aplicación de arranque es la que se ejecuta al iniciar el controlador. Esta aplicación se
almacena en la memoria del controlador. Para configurar la descarga de la aplicación de arranque,
haga clic con el botón derecho en el nodo Aplicación del árbol Aplicaciones y seleccione el
comando Propiedades.
Al final de una descarga correcta de una nueva aplicación, aparecerá un mensaje para preguntarle
si desea crear la aplicación de arranque.
Puede crear una aplicación de arranque manualmente de las siguientes maneras:
 En modalidad offline: Haga clic en En línea → Crear aplicación de inicio para guardar esta
aplicación en un archivo.
 En modalidad online, con el controlador en modalidad de detención: Ejecute el comando
(véase SoMachine, Comandos de menú, Ayuda en línea) En línea → Crear aplicación de inicio
para descargar la aplicación de arranque en el controlador.

EIO0000000071 11/2016 239


Gestión de aplicaciones

Sección 9.2
Compilación y descarga de aplicaciones

Compilación y descarga de aplicaciones

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Compilar aplicaciones 241
Inicio de sesión 242
Proceso de generación en aplicaciones cambiadas 245
Descarga de una aplicación 246

240 EIO0000000071 11/2016


Gestión de aplicaciones

Compilar aplicaciones

Descripción general
SoMachine proporciona diferentes procedimientos de compilación en el menú Compilar
(véase SoMachine, Comandos de menú, Ayuda en línea). Estos procedimientos sirven para
gestionar las comprobaciones sintácticas, ya sea solamente en los objetos cambiados o en todos
los objetos de la aplicación activa.
Puede realizar una generación de código offline para comprobar los errores de compilación antes
de descargar el código en el dispositivo. Para que el inicio de sesión sea correcto, la generación
de código debe haberse completado sin detectar errores.

Generación de código, información de compilación


El código máquina no se generará hasta que el proyecto Aplicación (véase página 233) esté
descargado en el dispositivo de destino (controlador, destino de simulación). En cada descarga,
la información de compilación, que contiene el código y un ID de referencia de la aplicación
cargada, se almacena en el directorio del proyecto en un archivo llamado <nombre de
proyecto>.<nombre de dispositivo>.<ID de aplicación>.compileinfo. El archivo compileinfo se
elimina cuando se ejecuta el comando Limpiar o Limpiar todo.
La generación del código no se lleva a cabo cuando el proyecto se compila mediante los
comandos de compilación (de forma predeterminada en el menú Compilar). El proceso de
compilación comprueba el proyecto para detectar si hay errores de programación. Los errores de
programación que se detecten se muestran en la vista Mensajes (categoría de mensajes
Generación).
Durante la generación de código, pueden detectarse y mostrarse errores adicionales. Estos
errores solamente los puede detectar el generador de código o están provocados por la
asignación de memoria.

EIO0000000071 11/2016 241


Gestión de aplicaciones

Inicio de sesión

Descripción general
El comando Online → Inicio de sesión conecta la aplicación al dispositivo de destino (controlador
o destino de la simulación) y, de este modo, cambia a la modalidad online.
El método abreviado predeterminado es ALT + F8.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Asegúrese de haber introducido la designación o dirección del dispositivo correcta en el
cuadro de diálogo "Configuración de comunicación" al descargar una aplicación.
 Asegúrese de que las protecciones y las etiquetas de la máquina están colocadas con el fin
de evitar el funcionamiento imprevisto de la máquina y riesgos de daños personales o
materiales.
 Lea y tenga en cuenta toda la documentación para el usuario del software y los dispositivos
relacionados, así como la documentación referente al funcionamiento de la máquina o el
equipo.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Si hay una administración de usuarios online (consulte también el capítulo Usuarios y grupos
(véase página 914)) establecida en el dispositivo de destino, se le solicitará que introduzca el
nombre de usuario y la contraseña adecuados. Para ello, se abre el cuadro de diálogo Inicio de
sesión de usuario en el dispositivo.

Procedimientos de inicio de sesión


Existen 2 procedimientos de inicio de sesión, según el modo de Marcar seleccionado en el cuadro
de diálogo Proyecto → Configuración del proyecto → Configuración de comunicación. La
configuración predeterminada de este modo de Marcar depende de la versión de SoMachine. El
editor de dispositivos proporciona cuadros de diálogo individuales para cada tipo de inicio de
sesión.

Tipo de inicio de Modo de Marcar Valor predeterminado para Cuadro de diálogo del editor de
sesión la versión de SoMachine dispositivos
1 Dirección IP V4.0 y posteriores Selección de controlador
(véase página 103)
2 ruta activa V3.1 y anteriores Configuración de comunicación
(véase página 120)

242 EIO0000000071 11/2016


Gestión de aplicaciones

Procedimiento de inicio de sesión con el modo de Marcar Dirección IP


Este es el procedimiento de inicio de sesión predeterminado para SoMachine V4.0 y versiones
posteriores. El modo de Marcar en el cuadro de diálogo Proyecto → Configuración del proyecto
→ Configuración de comunicación está establecido como Marque mediante "dirección IP".
Para conseguir un inicio de sesión correcto, la generación de código se debe haber completado
sin detectar errores (consulte el capítulo Proceso de compilación antes de iniciar la sesión
(véase página 245)).

Paso Acción
1
Ejecute el comando Online → Inicio de sesión o haga clic en el botón Inicio de sesión en la barra
de herramientas o pulse ALT + F8.
Resultado: Puesto que no se ha establecido ninguna dirección de destino antes, se abre la vista
Selección de controlador del editor de dispositivos. Se muestra un cuadro de mensaje que indica que no
se ha definido una dirección válida.
2 Si SoMachine sólo ha detectado un controlador al explorar la red Ethernet, este controlador se marca en
la lista y se utiliza como dispositivo de destino.
Si se han detectado varios controladores, haga doble clic en el controlador en el que desee iniciar la
sesión.
3
Ejecute el comando Online → Inicio de sesión o haga clic en el botón Inicio de sesión en la barra
de herramientas o pulse ALT + F8.
Resultado: Se muestra un cuadro de mensaje para informarle de los riesgos potenciales.
4 Haga clic en Cancelar para anular la operación de inicio de sesión o pulse ALT + F para confirmar el
mensaje e iniciar sesión en el controlador seleccionado.
Resultado: Si pulsa ALT + F, se establece la conexión con el controlador y se puede descargar la
aplicación (véase página 246).

EIO0000000071 11/2016 243


Gestión de aplicaciones

Procedimiento de inicio de sesión con el modo de Marcar de ruta activa


Este es el procedimiento de inicio de sesión predeterminado para SoMachine V3.1 y versiones
anteriores. El modo de Marcar en el cuadro de diálogo Configuración del proyecto →
Configuración de comunicación está establecido como Marque mediante "ruta activa".
Para conseguir un inicio de sesión correcto, la generación de código se debe haber completado
sin detectar errores (consulte el capítulo Proceso de compilación antes de iniciar la sesión
(véase página 245)). Además, la configuración de comunicación (véase página 103) del
dispositivo se debe configurar correctamente.

Paso Acción
1
Ejecute el comando Online → Inicio de sesión o haga clic en el botón Inicio de sesión en la barra de
herramientas o pulse ALT + F8.
Resultado: Puesto que no se ha establecido ninguna dirección de destino antes, se abre la vista
Configuración de comunicación del editor de dispositivos. Se muestra un cuadro de mensaje que indica
que la ruta activa no se ha establecido y que se está explorando la red.
2 Si SoMachine sólo ha detectado un controlador al explorar la red Ethernet, este controlador se marca en
la lista y se utiliza como dispositivo de destino.
Si se han detectado varios controladores, haga doble clic en el controlador en el que desee iniciar la
sesión.
NOTA: Sólo se muestran los controladores que tienen el mismo ID del sistema de destino que el
controlador seleccionado. Para mostrar todos los controladores de la lista, establezca el criterio Filtro
como Ninguno.
3
Ejecute el comando Online → Inicio de sesión o haga clic en el botón Inicio de sesión en la barra de
herramientas o pulse ALT + F8.
Resultado: Se muestra un cuadro de mensaje para informarle de los riesgos potenciales.
4 Haga clic en Cancelar para anular la operación de inicio de sesión o pulse ALT + F para confirmar el
mensaje e iniciar sesión en el controlador seleccionado.
Resultado: Si pulsa ALT + F, se establece la conexión con el controlador y se puede descargar la
aplicación (véase página 246).

244 EIO0000000071 11/2016


Gestión de aplicaciones

Proceso de generación en aplicaciones cambiadas

Proceso de generación antes del inicio de sesión


Antes del Inicio de sesión, se compilará el proyecto de aplicación afectado actual si no se ha
compilado desde que se abrió o desde la última modificación. Esto significa que el proyecto se
generará respecto a la compilación correspondiente que se ejecuta en modalidad offline y que se
generará el código de compilación para el controlador.
Si se detectan errores durante la compilación, se abrirá un cuadro de mensaje con el texto
siguiente: Había errores de compilación. ¿Quiere iniciar la sesión sin cargar el programa? Puede
elegir entre corregir primero los errores detectados o bien iniciar la sesión directamente. En este
último caso, se iniciará sesión en esa versión de la aplicación que probablemente ya esté
disponible en el controlador.
Los errores detectados se enumeran en la vista Mensajes (categoría Compilar).

EIO0000000071 11/2016 245


Gestión de aplicaciones

Descarga de una aplicación

Introducción
Para ejecutar una aplicación, conecte primero el PC al controlador y, a continuación, descargue
la aplicación en el controlador.
La descarga de un proyecto permite copiar el proyecto actual de SoMachine a la memoria del
controlador.
NOTA: Debido a la limitación de tamaño de la memoria, algunos controladores no pueden
almacenar el origen de la aplicación, sino sólo una aplicación compilada que se ejecute. Esto
significa que no se podrá cargar el origen de la aplicación del controlador a un PC.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
 Asegúrese de haber introducido la designación o la dirección del dispositivo correctas en el
cuadro de diálogo Configuración de comunicación al descargar una aplicación.
 Asegúrese de que las protecciones y las etiquetas de la máquina están colocadas con el fin
de evitar el funcionamiento imprevisto de la máquina y riesgos de daños personales o
materiales.
 Lea y tenga en cuenta toda la documentación para el usuario del software y los dispositivos
relacionados, así como la documentación referente al funcionamiento de la máquina o el
equipo.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Condiciones previas
Compruebe que la aplicación reúne las condiciones siguientes antes de descargarla en el
controlador:
 La ruta activa está definida para el controlador correcto.
 La aplicación que se desea descargar está activa.
 La aplicación no tiene errores de compilación.

246 EIO0000000071 11/2016


Gestión de aplicaciones

Aplicación de arranque
La aplicación de arranque es la que se ejecuta al iniciar el controlador. Esta aplicación se
almacena en la memoria del controlador. Para configurar la descarga de la aplicación de arranque,
haga clic con el botón derecho del ratón en el nodo Aplicación de la vista Dispositivos y seleccione
el comando Propiedades.
Al final de una descarga correcta de una nueva aplicación, aparecerá un mensaje para preguntarle
si desea crear la aplicación de arranque.
Puede crear una aplicación de arranque manualmente de las siguientes maneras:
 En modalidad offline: Haga clic en En línea → Crear aplicación de inicio para guardar la
aplicación de arranque en un archivo.
 En modalidad online, con la aplicación en modalidad STOP: Haga clic en En línea → Crear
aplicación de inicio para descargar la aplicación de arranque en el controlador.

Modalidades de funcionamiento
El método de descarga variará según la relación entre la aplicación cargada y la aplicación que se
desee descargar. Los tres casos son los siguientes:
 Caso 1: La aplicación del controlador es la misma que la que se desea cargar. En este caso,
no se produce ninguna descarga: sólo se conecta SoMachine al controlador.
 Caso 2: Se han realizado modificaciones en la aplicación que se ha cargado en el controlador
en comparación con la aplicación de SoMachine. En este caso, puede especificar si desea
descargar toda la aplicación modificada o partes de esta, o bien mantenerla tal cual en el
controlador.
 Caso 3: Ya hay disponible una versión diferente o nueva de la aplicación en el controlador. En
este caso, se le solicitará si debe sustituirse esa aplicación.
 Caso 4: La aplicación todavía no está disponible en el controlador. En este caso, se le solicitará
que confirme la descarga.

Descarga de la aplicación en el controlador: Caso 1


La aplicación del controlador es la misma que la que se desea cargar. En este caso, no se produce
ninguna descarga: sólo se conecta SoMachine al controlador.

Paso Acción
1 Para conectarse con el controlador, seleccione En línea → Iniciar la sesión en
’Aplicación[Nombre_aplicación; Lógica Plc]’.
2 Ya está conectado al controlador.

EIO0000000071 11/2016 247


Gestión de aplicaciones

Descarga de la aplicación en el controlador: Caso 2


Se han realizado modificaciones en la aplicación que se ha cargado en el controlador en
comparación con la aplicación de SoMachine.

Paso Acción
1 Para conectarse con el controlador, seleccione En línea → Iniciar la sesión en
’Aplicación[Nombre_aplicación; Lógica Plc]’.
2 Si ha modificado la aplicación y desea volver a cargarla en el controlador, aparecerá el mensaje
siguiente:

Iniciar sesión con modificación en línea Sólo se volverán a cargar en el controlador las partes
modificadas de un proyecto que ya esté en ejecución.
Iniciar sesión con descarga La aplicación modificada se vuelve a cargar por completo en el controlador.
Iniciar sesión sin modificaciones No se cargarán las modificaciones.

NOTA: Si selecciona la opción Iniciar sesión sin modificaciones, los cambios que realice en la aplicación
SoMachine no se descargarán en el controlador. En este caso, la barra de estado e información de
SoMachine mostrará EN EJECUCIÓN como estado operativo e indicará Programa modificado
(modificación en línea). Esto difiere de las opciones Iniciar sesión con modificación en línea o Iniciar
sesión con descarga, donde la barra de estado e información indica Programa inalterado.
En este caso, la supervisión de variables es posible, pero el flujo lógico puede ser confuso, porque los
valores de las salidas del bloque de funciones pueden no coincidir con los valores de las entradas.
Ejemplos
En LD, los estados de los contactos se supervisan en función de las variables afectadas. Esto puede
tener como resultado que se muestre un contacto animado en azul seguido de un enlace azul (que indica
el valor TRUE, verdadero), aunque la bobina conectada a este contacto muestre que es falso. En el flujo
lógico de ST, parece que se ejecute una instrucción IF o un bucle, pero en realidad no se ejecuta porque
la expresión de la condición es diferente en el proyecto y en el controlador.
3 Seleccione la opción adecuada y haga clic en Aceptar.

NOTA: Consulte la guía de programación del controlador para ver información importante sobre
seguridad relativa a la descarga de aplicaciones.

248 EIO0000000071 11/2016


Gestión de aplicaciones

Descarga de la aplicación en el controlador: Caso 3


Ya hay disponible una versión diferente o nueva de la aplicación en el controlador.

Paso Acción
1 Para conectarse con el controlador, seleccione En línea → Iniciar la sesión en
’Aplicación[Nombre_aplicación; Lógica Plc]’.
2a En caso de que el controlador no esté en modalidad de ejecución y desee cargar una aplicación diferente
de la que se encuentra actualmente en el controlador, aparece el mensaje siguiente:

Consulte los mensajes de peligro siguientes antes de hacer clic en Sí para descargar la nueva aplicación
en el controlador, o en No para cancelar la operación.
2b En caso de que el controlador esté en modalidad de ejecución y desee cargar una aplicación diferente
de la que se encuentra actualmente en el controlador, aparece el mensaje siguiente:

Consulte los mensajes del compilador siguientes antes de hacer clic en Sí para descargar la nueva
aplicación en el controlador, o en No para cancelar la operación.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Verifique que tenga la aplicación correcta antes de confirmar la descarga.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

Si hace clic en Sí , la aplicación en ejecución en el controlador se sobrescribirá.

EIO0000000071 11/2016 249


Gestión de aplicaciones

Para ayudar a prevenir la pérdida de información, cancele esta operación haciendo clic en No y
ejecute antes el comando Carga de código de origen. La aplicación actualmente disponible en su
controlador se cargará en el PC. A continuación, puede compararla con la que tiene previsto
descargar.

Descarga de la aplicación en el controlador: Caso 4


La aplicación todavía no está disponible en el controlador.

Paso Acción
1 Para conectarse con el controlador, seleccione En línea → Iniciar la sesión en
’Aplicación[Nombre_aplicación; Lógica Plc]’.
2 En caso de que la aplicación todavía no esté disponible en el controlador, se le solicitará que confirme
la descarga. Para este fin, se muestra un cuadro de diálogo con el texto siguiente:

Haga clic en Sí para descargar la aplicación en el controlador, o en No para cancelar la operación.

NOTA: Consulte la guía de programación del controlador para ver información importante sobre
seguridad relativa a la descarga de aplicaciones.

250 EIO0000000071 11/2016


Gestión de aplicaciones

Cambio en línea
El comando Cambio en línea modifica el programa de aplicación en ejecución y no afecta a un
proceso de reinicio:
 El código del programa puede comportarse de forma distinta después de una inicialización
completa debido a que la máquina mantiene su estado.
 Las variables de puntero mantienen sus valores desde el último ciclo. Si hay un puntero en una
variable que ha cambiado su tamaño debido a un cambio en línea, el valor dejará de ser
correcto. Verifique que las variables de puntero se vuelvan a asignar en cada ciclo.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Pruebe minuciosamente el código de la aplicación para comprobar su correcto funcionamiento
antes de poner el sistema en funcionamiento.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

NOTA: Para obtener información específica, consulte el capítulo sobre la descripción de los
estados del controlador en la guía de programación de su controlador.
Si el proyecto de aplicación actualmente en ejecución en el controlador se ha modificado en el
sistema de programación desde que se descargó por última vez, sólo se cargarán los objetos
modificados del proyecto en el controlador mientras el programa esté en ejecución.

Cambio en línea implícito


Cuando intenta volver a iniciar sesión con una aplicación modificada (comprobada mediante
COMPILEINFO, que se ha almacenado en la carpeta del proyecto durante la última descarga), se
le solicitará si desea realizar un cambio en línea, una descarga o un inicio de sesión sin realizar
cambios.
Cuadro de diálogo de inicio de sesión:

EIO0000000071 11/2016 251


Gestión de aplicaciones

Descripción de los elementos:

Elemento Descripción
Iniciar sesión con Esta opción está seleccionada de forma predeterminada. Si confirma el cuadro de
modificación en línea diálogo haciendo clic en Aceptar, las modificaciones se cargarán y se mostrarán
inmediatamente en una vista online (supervisión) del objeto o los objetos respectivos.
Iniciar sesión con descarga Active esta opción para cargar e inicializar el proyecto de la aplicación por completo.
Iniciar sesión sin Active esta opción para mantener sin cambios el programa que está en ejecución en
modificaciones el controlador. Posteriormente puede realizarse una descarga explícita, de forma que
se carga el proyecto de aplicación completo. También es posible que se le vuelva a
solicitar si debe realizarse un cambio en línea en el siguiente inicio de sesión.
Detalles Haga clic en este botón para obtener el cuadro de diálogo Información de aplicación
(nombre del proyecto, última modificación, versión IDE, autor, descripción) en la
aplicación actual en el IDE (entorno de desarrollo integrado, es decir, SoMachine), en
comparación con la que hay disponible actualmente en el controlador. Consulte la
figura siguiente y el capítulo Información de aplicación (véase página 241).

Cuadro de diálogo Información de aplicación

Para obtener más información, consulte el capítulo Inicio de sesión (véase página 242).
Si el cambio en línea comportará cambios considerables en el código de descarga, como por
ejemplo posibles desplazamientos de direcciones del puntero o redirecciones necesarias de
referencias de interfaz (véase página 175), se mostrará otro cuadro de mensaje después de
confirmar el cuadro de diálogo Cambio en línea con Aceptar, antes de realizar la descarga. Le
informa acerca de los efectos que debe tener en cuenta y proporciona la opción de cancelar la
operación de cambio en línea.

252 EIO0000000071 11/2016


Gestión de aplicaciones

NOTA: Con SoMachine V4.0 y posteriores, después de eliminar la función de comprobación


implícita (como CheckBounds) de la aplicación, no se puede utilizar Cambio en línea; solamente
se puede realizar una descarga. Aparecerá el mensaje correspondiente.
Haga clic en el botón Detalles en este mensaje para mostrar información detallada, como el
número y un listado de las interfaces modificadas, las POU, las variables afectadas, etc.
Cuadro de diálogo Informaciones en línea detalladas

EIO0000000071 11/2016 253


Gestión de aplicaciones

Cambio en línea explícito


Ejecute el comando Cambio en línea (de forma predeterminada, en el menú En línea) para realizar
explícitamente una operación de cambio en línea en una determinada aplicación.
Un cambio en línea de un proyecto modificado ya no es posible después de una operación Limpiar
(Compilar → Limpiar todo, Compilar → Limpiar). En este caso, se borrará la información sobre los
objetos que se han modificado desde la última descarga. Por tanto, sólo puede descargarse el
proyecto completo.
NOTA:
Tenga en cuenta lo siguiente antes de ejecutar el comando Cambio en línea:
 Compruebe que el código modificado no presente errores de lógica.
 Las variables de puntero mantienen sus valores desde el último ciclo. Si apunta a una variable
que ahora se ha desplazado, el valor ya no será correcto. Por este motivo, reasigne las
variables de puntero en cada ciclo.

Información sobre el proceso de descarga


Cuando se carga por completo el proyecto en el controlador al iniciar la sesión o parcialmente en
un cambio en línea, la vista Mensajes mostrará información sobre el tamaño del código generado,
el tamaño de los datos globales, el espacio de memoria necesario en el controlador y, en caso de
cambio en línea, también en las POU afectadas.
NOTA: En modalidad online, no es posible modificar la configuración de dispositivos o módulos.
Para cambiar los parámetros de los dispositivos, debe finalizar la sesión en la aplicación. En
función del sistema de bus, puede permitirse la modificación de ciertos parámetros especiales en
modalidad online.

Aplicación de arranque (proyecto de arranque)


Tras cada descarga correcta, la aplicación activa se almacena automáticamente en el archivo
application.app en la carpeta del sistema del controlador, de forma que está disponible como
aplicación de arranque. Una aplicación de arranque es el proyecto que se inicia automáticamente
al iniciarse (arrancar) el controlador. Para hacer que la descarga de la aplicación activa sea la
aplicación de arranque, debe ejecutar el comando Crear aplicación de inicio (disponible en el
menú En línea).
El comando Crear aplicación de inicio copiará el archivo application.app en un archivo
denominado <nombre de proyecto>.app, de forma que se convertirá en la aplicación de arranque
del controlador. También puede crear la aplicación de arranque en modalidad offline
(véase página 247).
Si desea conectarse al mismo controlador desde el sistema de programación de un PC diferente
o recuperar la aplicación activa de un PC diferente sin necesidad de un cambio en línea o una
descarga, siga los pasos que se describen en el párrafo Transferencia de proyectos a otros
sistemas.

254 EIO0000000071 11/2016


Gestión de aplicaciones

Transferencia de proyectos a otros sistemas


Para transferir un proyecto a otro sistema, utilice un archivo de proyecto (véase SoMachine,
Comandos de menú, Ayuda en línea).
Puede transferir un proyecto que ya se esté ejecutando en un controlador xy del sistema de
programación en PC1 al de PC2. Para poder volver a conectarse al mismo controlador xy desde
PC2 sin tener que realizar un cambio en línea o una descarga, compruebe la siguiente
configuración del proyecto antes de crear un archivo de proyecto.
Siga los pasos siguientes:
1. Verifique que sólo se incluyan bibliotecas con versiones definitivas, excepto en el caso de
bibliotecas de interfaz puras. (Abra el Administrador de bibliotecas y compruebe las entradas
con un asterisco (*) en lugar de una versión fija (véase SoMachine, Funciones y bibliotecas -
Guía del usuario)).
2. Asegúrese de que se haya establecido una versión definitiva de compilador en el cuadro de
diálogo Configuración del proyecto → Opciones de compilador (véase SoMachine, Comandos
de menú, Ayuda en línea).
3. Asegúrese de definir un perfil de visualización en el cuadro de diálogo Configuración del
proyecto → Perfil de visualización (para obtener más información, consulte el apartado
Visualización de la ayuda online de SoMachine).
4. Verifique que la aplicación abierta actualmente sea la misma que la que ya está disponible en
el controlador. Es decir, el proyecto de arranque (consulte el comando En línea → Crear
aplicación de inicio (véase SoMachine, Comandos de menú, Ayuda en línea)) debe ser idéntico
al proyecto en el sistema de programación. Si hay un asterisco detrás del título del proyecto en
la barra de título de la ventana del sistema de programación, significa que el proyecto se ha
modificado pero todavía no se ha guardado. En este caso, puede diferir respecto al proyecto
de arranque. Si es necesario, antes de transferir el proyecto a otro PC, cree un (nuevo) proyecto
de arranque (para algunos controladores, esto se lleva a cabo automáticamente durante la
descarga) y luego descargue e inicie el proyecto en el controlador.
5. Cree el archivo de proyecto mediante SoMachine Central. Seleccione la información siguiente:
archivos de información de descarga, Perfil de biblioteca, Dispositivos referenciados,
Bibliotecas referenciadas, Perfil de visualización.
6. Cierre la sesión. Si es necesario, detenga y reinicie el controlador xy antes de volver a
conectarse desde PC2.
7. Extraiga el archivo de proyecto en PC2 con las mismas opciones de información activadas que
las que se enumeran en el paso 5.

EIO0000000071 11/2016 255


Gestión de aplicaciones

Sección 9.3
Ejecución de aplicaciones

Ejecución de aplicaciones

Ejecución de aplicaciones

Introducción
En esta parte se muestra cómo iniciar o detener una aplicación.

RUN/STOP con SoMachine


El controlador se puede iniciar y detener mediante la ejecución de SoMachine en un PC conectado
al controlador.
Haga clic en En línea → Inicio ‘Aplicación [Nombre de aplicación: Lógica PLC]’ o CTRL + F5, o
bien en el botón Inicio ‘Aplicación [Nombre de aplicación: Lógica Plc]’ de la barra de menús para
iniciar la aplicación.
Haga clic en En línea → Parada ‘Aplicación [Nombre de aplicación: Lógica PLC]’ o
CTRL +MAYÚS + F5, o bien en el botón Parada ‘Aplicación [Nombre de aplicación: Lógica Plc]’
de la barra de menús para detener la aplicación.

Entrada RUN/STOP para controladores


Algunos controladores permiten configurar una entrada RUN/STOP para controlar el inicio y la
detención de la aplicación.

Estado Descripción
0 Detención de la aplicación. El comando EJECUTAR no es posible en SoMachine.
Flanco ascendente Inicio de la aplicación.
1 Se ejecuta la aplicación. El comando EJECUTAR/DETENER es posible en SoMachine.

Consulte el manual de su controlador para conocer si admite esta función.


Configure y utilice la entrada RUN/STOP si va a utilizar comandos remotos para iniciar y detener
el controlador. Es la mejor forma de asegurarse un control local durante la ejecución del
controlador; también ayuda a evitar un inicio inadvertido del controlador desde una ubicación
remota.

256 EIO0000000071 11/2016


Gestión de aplicaciones

ADVERTENCIA
INICIO NO DESEADO DE LA MÁQUINA O DEL PROCESO DE ACTIVACIÓN
 Compruebe el estado de seguridad de la máquina o del entorno de proceso antes de aplicar
electricidad a la entrada Run/Stop.
 Use la entrada Run/Stop para evitar activaciones no deseadas desde ubicaciones remotas.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al
equipo.

EIO0000000071 11/2016 257


Gestión de aplicaciones

Sección 9.4
Mantenimiento de aplicaciones

Mantenimiento de aplicaciones

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Supervisión 259
Depuración 260

258 EIO0000000071 11/2016


Gestión de aplicaciones

Supervisión

Descripción general
En modalidad online, hay varias opciones para mostrar los valores actuales de los objetos del
controlador:
 Puede ver los valores de los objetos en una pantalla de editor de programa mientras esté en
modalidad online. Para obtener información detallada, consulte la descripción del editor
correspondiente.
 Puede ver los valores de los objetos en la vista online del editor de declaraciones. Para obtener
información detallada, consulte la descripción del editor de declaraciones (véase página 393).
 Puede ver objetos de forma independiente en listas mediante el comando Supervisar. Para
obtener información detallada, consulte la descripción de la vista de supervisión/editor de lista
de supervisión (véase página 444). Para insertar una variable en una vista de supervisión,
selecciónela y ejecute el comando Add watchlist en el menú contextual.
 Puede visualizar valores mediante el muestreo de trazas: registro y visualización de valores de
variables desde el controlador. Para obtener información detallada, consulte la descripción de
la funcionalidad de objetos de traza (véase página 480).
 Puede ver los valores de los objetos contenidos en fórmulas: conjuntos de variables definidos
por el usuario para escribir y supervisar las variables en el controlador. Consulte la descripción
del gestor de fórmulas (véase página 459).
Para obtener información sobre la supervisión de propiedades insertadas debajo de POU o
bloques de funciones, consulte el capítulo Propiedad (véase página 173).
Para obtener información sobre la supervisión de llamadas de función, consulte el capítulo
Attribute Monitoring (véase página 590).
NOTA: Si un valor no es válido (por ejemplo, el resultado de calcular la raíz cuadrada de un
número negativo), el resultado puede mostrarse como NaN (no es un número) o INF (valor
infinito), según la operación, el objeto y la plataforma concreta del controlador. Para obtener más
información, consulte la guía de programación de su controlador.

EIO0000000071 11/2016 259


Gestión de aplicaciones

Depuración

Descripción general
Para evaluar errores de programación potenciales, puede utilizar la funcionalidad de depuración
en modalidad online. También puede, hasta cierto punto, depurar su aplicación en modo de
simulación. Si bien la simulación evita la necesidad de conectarse al hardware físico, existen
limitaciones por las que es posible que deba llevar a cabo la depuración en línea.
Puede establecer puntos de interrupción en ciertas posiciones para forzar una interrupción de la
ejecución. Por cada punto de interrupción pueden establecerse ciertas condiciones, como qué
tareas se identifican y en qué ciclos debe ser efectivo el punto de interrupción (puntos de
interrupción condicionales). Consulte la descripción sobre puntos de interrupción en este capítulo.
Existen funciones de ejecución paso a paso que permiten ejecutar un programa en pasos
controlados. Consulte el párrafo Ejecución paso a paso (véase página 261).
En cada interrupción, puede examinar los valores actuales de las variables. Puede visualizar una
pila de llamadas (véase SoMachine, Comandos de menú, Ayuda en línea) para la posición del
paso actual.
Puede activar la función Control de proceso para realizar el seguimiento de las partes ejecutadas
del programa de aplicación. A diferencia de la función de supervisión estándar, que sólo muestra
el valor de una variable entre 2 ciclos de ejecución, Control de flujo proporciona el valor en cada
paso de ejecución concreto, exactamente en el momento de la ejecución.

Puntos de interrupción
Un punto de interrupción que se defina en un programa de aplicación provocará una interrupción
durante la ejecución del programa. Sólo la tarea que llegue al punto de interrupción (en lo
sucesivo, denominada tarea de depuración) se detendrá; sin embargo, las demás se seguirán
ejecutando. Las posiciones posibles de los puntos de interrupción dependen del editor. En cada
caso, hay un punto de interrupción al final de una POU.
NOTA: Las E/S gestionadas por la tarea de depuración no se actualizarán en la detención de un
punto de interrupción. Esto se aplica aunque la opción Actualizar E/S en parada esté activada en
la ficha Ajustes PLC del editor de dispositivos (véase página 130).
Consulte el capítulo Comandos relacionados con los puntos de interrupción para ver una
descripción de los comandos relacionados con los puntos de interrupción. El cuadro de diálogo
Puntos de interrupción (véase SoMachine, Comandos de menú, Ayuda en línea) proporciona una
descripción general de todos los puntos de interrupción, lo que le permite añadir, eliminar y
modificar puntos de interrupción.

260 EIO0000000071 11/2016


Gestión de aplicaciones

Puntos de interrupción condicionales


Se puede establecer que la parada en un punto de interrupción dependa del número de ciclos de
una determinada tarea o de la tarea que esté actualmente activa. Al declarar una tarea de
depuración específica, puede evitar que cada tarea que comparte la misma POU se vea afectada
salvo el punto de interrupción (consulte el apartado relativo a los puntos de interrupción y la
ejecución por pasos en aplicaciones con múltiples tareas (véase página 262)).

Símbolos de punto de interrupción

Símbolo Descripción
Punto de interrupción activado

Punto de interrupción desactivado

Parada en el punto de interrupción en modalidad online

Posición actual del paso


Se indica con una flecha amarilla delante de la línea respectiva y una sombra amarilla detrás de la
operación en cuestión.

Ejecución paso a paso


La ejecución paso a paso permite la ejecución controlada de un programa de aplicación para fines
de depuración. Básicamente, se pasa de una instrucción a la siguiente accediendo a la instrucción
(step into), pasando a la siguiente instrucción (step over) o saliendo de la instrucción (step out).
Consulte el capítulo Comandos relacionados con puntos de interrupción (véase SoMachine,
Comandos de menú, Ayuda en línea) para ver una descripción de los comandos de ejecución
paso a paso.

Ejemplo de operación paso a paso (step Into)


A partir del punto de interrupción, puede ejecutar cada línea de comandos con el comando de
ejecución paso a paso.
Paso a paso, ejemplo

EIO0000000071 11/2016 261


Gestión de aplicaciones

Puntos de interrupción y ejecución paso a paso en aplicaciones con múltiples tareas


Si múltiples tareas pueden acceder a un punto de interrupción porque varias tareas utilizan la
POU, sólo se detendrá la tarea que llegue en primer lugar. Tenga esto en cuenta en el caso de
una única ejecución paso a paso o si prosigue la depuración después de una parada. Podría
suceder que otra tarea se detuviera la próxima vez que lo alcance (posiblemente, el ciclo todavía
no ha terminado). Si sólo debe haber 1 determinada tarea implicada (tarea de depuración), puede
especificarlo en las propiedades de las condiciones del punto de interrupción (cuadro de diálogo
Puntos de interrupción → Nuevo punto de interrupción, ficha Condición).

262 EIO0000000071 11/2016


SoMachine
Editores de lógica
EIO0000000071 11/2016

Parte IV
Editores de lógica

Editores de lógica

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
10 Editor FBD/LD/IL 265
11 Editor de diagrama de función continua (CFC) 315
12 Editor de diagrama funcional secuencial (SFC) 335
13 Editor de texto estructurado (ST) 369

EIO0000000071 11/2016 263


Editores de lógica

264 EIO0000000071 11/2016


SoMachine
Editor FBD/LD/IL
EIO0000000071 11/2016

Capítulo 10
Editor FBD/LD/IL

Editor FBD/LD/IL

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
10.1 Información sobre el editor FBD/LD/IL 266
10.2 Elementos FBD/LD/IL 296
10.3 Elementos LD 311

EIO0000000071 11/2016 265


Editor FBD/LD/IL

Sección 10.1
Información sobre el editor FBD/LD/IL

Información sobre el editor FBD/LD/IL

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Editor FBD/LD/IL 267
Lenguaje de diagrama de bloques de funciones (FBD) 268
Lenguaje del diagrama de contactos (LD) 269
Lenguaje de la lista de instrucciones (IL) 270
Modificadores y operadores en IL 272
Trabajo en el editor FBD y LD 274
Trabajo en el editor IL 279
Posiciones de cursor en FBD, LD e IL 285
Menú IL, FBD, LD 289
Editor FBD/LD/IL en modalidad online 290

266 EIO0000000071 11/2016


Editor FBD/LD/IL

Editor FBD/LD/IL

Descripción general
Existe un editor combinado para editar las POU en los lenguajes FBD (diagrama de bloques de
funciones (véase página 268)), LD (diagrama de contactos (véase página 269)) e IL (lista de
instrucciones (véase página 270)).
Por lo tanto, se utiliza un conjunto común de comandos y elementos y se efectúa una conversión
interna automática entre los 3 lenguajes. En modalidad offline, el programador puede pasar de una
vista de editor a otra (menú Ver).
Tenga en cuenta que hay algunos elementos especiales que no se pueden convertir, por lo que
solamente se mostrarán en el lenguaje correspondiente. Además, hay algunos componentes que
no se pueden convertir sin ambigüedades de IL a FBD y viceversa y que, por lo tanto, se
normalizarán como FBD en la conversión; concretamente, la negación de expresiones y las
asignaciones de salida explícita/implícita.
Puede definir el comportamiento, el aspecto y los menús del editor FBD/LD/IL en los cuadros de
diálogo Personalizar y Opciones. También dispone de opciones para definir la visualización de
comentarios y direcciones.
El editor se abre en una ventana doble. Cuando se edita un objeto programado en FBD/LD/IL, la
parte superior contiene un editor de declaraciones (véase página 394) y la parte inferior contiene
el área de codificación.
El lenguaje de programación para un objeto nuevo se especifica al crear el objeto.
Para obtener más información, consulte:
 Trabajo en el editor FBD y LD (véase página 274)
 Trabajo en la vista del editor IL (véase página 279)

EIO0000000071 11/2016 267


Editor FBD/LD/IL

Lenguaje de diagrama de bloques de funciones (FBD)

Descripción general
El diagrama de bloques de funciones es un lenguaje de programación orientado gráficamente.
Funciona con una lista de redes en la que cada red contiene una estructura gráfica de cuadros y
líneas de conexión que representa una expresión lógica o aritmética, la llamada de un bloque de
funciones, un salto o una instrucción de retorno.
Redes FBD

268 EIO0000000071 11/2016


Editor FBD/LD/IL

Lenguaje del diagrama de contactos (LD)

Descripción general
El diagrama de contactos es un lenguaje de programación orientado a gráficos que se asemeja a
la estructura de un circuito eléctrico.
Por un lado, el diagrama de contactos es adecuado para la confección de interruptores lógicos y,
por otro lado, también permite crear redes como en FBD. Por lo tanto, el LD es útil para controlar
la llamada de otras POU.
El diagrama de contactos se compone de una serie de redes, cada una limitada por una línea de
corriente vertical (raíl de alimentación) a la izquierda. Una red contiene un diagrama de circuito
formado por contactos, bobinas, POU adicionales opcionales (módulos) y líneas de conexión.
En el lado izquierdo, hay 1 contacto o una serie de contactos que transmiten de izquierda a
derecha la condición ON u OFF, que corresponde a los valores booleanos TRUE y FALSE. A cada
contacto se le asigna una variable booleana. Si esta variable es TRUE, la condición se transmitirá
de izquierda a derecha a lo largo de la línea de conexión. De lo contrario, se transmitirá OFF. Por
lo tanto, las bobinas colocadas en la parte derecha de la red reciben un ON u OFF proveniente de
la parte izquierda. En consecuencia, el valor TRUE o FALSE se escribirá en una variable booleana
asignada.
Red de diagrama de contactos

EIO0000000071 11/2016 269


Editor FBD/LD/IL

Lenguaje de la lista de instrucciones (IL)

Descripción general
La lista de instrucciones (IL) es un lenguaje de programación conforme al estándar IEC 61131-3,
parecido a ensamblador.
Este lenguaje admite la programación basada en un acumulador. Se admiten los operadores
IEC 61131-3, así como varias entradas/varias salidas, negaciones, comentarios, estableci-
miento/restablecimiento de salidas y saltos incondicionales/condicionales.
Cada instrucción se basa principalmente en la carga de los valores en el acumulador mediante el
uso del operador LD. Tras ello, la operación se ejecuta con el primer parámetro extraído del
acumulador. El resultado de la operación está disponible en el acumulador, desde donde debe
almacenarlo con la instrucción ST.
Para programar ejecuciones condicionales o bucles, IL admite tanto los operadores de
comparación (EQ, GT, LT, GE, LE, NE) como los saltos. Estos últimos pueden ser incondicionales
(JMP) o condicionales (JMPC/JMPCN). Para los saltos condicionales, el valor del acumulador se
referencia como TRUE o FALSE.

Sintaxis
Una lista de instrucciones (IL) está formada por una serie de instrucciones. Cada instrucción
empieza en una línea nueva y contiene un operador y, según el tipo de operación, 1 o más
operandos separados por comas. Puede extender el operador con un modificador.
En la línea anterior a una instrucción, puede haber una marca de identificación (etiqueta) seguida
de dos puntos (:) (ml: en el ejemplo que se muestra a continuación). Una etiqueta puede ser el
destino de una instrucción de salto (JMPC m1 en el ejemplo que se muestra a continuación).
Incluya un comentario como último elemento de una línea.
Puede insertar líneas vacías entre las instrucciones.

270 EIO0000000071 11/2016


Editor FBD/LD/IL

Ejemplo
PROGRAM IL
VAR
inst1: TON;
dwVar: DWORD;
dwRes: DWORD;
t1: TIME;
tout1: TIME;
inst2: TON;
bVar: BOOL;
END_VAR
LD bVar variable
ST inst1.IN starts timer with risin...
JMPC ml
CAL inst1(
PT:=t1,
ET:=>tout1)
LD inst1.Q is TRUE, PT seconds aft...
ST inst2.IN starts timer with risin...
ml:
LD dwVar
ADD 230
ST dwRes
Para obtener más información, consulte:
 Trabajo en la vista del editor IL (véase página 279)
 Modificadores y operadores en IL (véase página 272)

EIO0000000071 11/2016 271


Editor FBD/LD/IL

Modificadores y operadores en IL

Modificadores
Puede utilizar los siguientes modificadores en Lista de instrucciones (véase página 270).

C con JMP, CAL, RET: La instrucción sólo se ejecutará si el resultado de la


expresión anterior es TRUE.
N con JMPC, CALC, RETC: La instrucción sólo se ejecutará si el resultado de la
expresión anterior es FALSE.
N Otros operadores según la tabla Operadores Negación del operando (no del acumulador).
siguiente (N en la columna Modificadores)

NOTA: Por lo general, no es recomendable utilizar la instrucción CALC (/RETC/JMPC)


directamente después de un operador STN, S o R, puesto que estas instrucciones modifican
arbitrariamente el valor del acumulador y, por lo tanto, pueden producir errores de programación
difíciles de detectar.

Operadores
En la siguiente tabla se muestran los operadores que se pueden utilizar en combinación con los
modificadores especificados.
El acumulador guarda el valor actual, resultante de la operación anterior.

Operador Modificadores Significado Ejemplo


LD N Carga el valor (negado) del operando en el acumulador. LD iVar
ST N Guarda el contenido (negado) del acumulador en la variable de ST iErg
operando.
S – Establece el operando (tipo BOOL) en TRUE cuando el S bVar1
contenido del acumulador es TRUE.
R – Establece el operando (tipo BOOL) en FALSE cuando el R bVar1
contenido del acumulador es TRUE.
AND N,( AND a nivel de bit del acumulador y el operando (negado). AND bVar2
OR N,( OR a nivel de bit del acumulador y el operando (negado). OR xVar
XOR N,( OR a nivel de bit exclusivo del acumulador y el operando XOR N, (bVar1,
(negado). bVar2)
NOT – Negación a nivel de bit del contenido del acumulador. –
ADD ( Suma de acumulador y operando; el resultado se copia en el ADD (iVar1,i
acumulador. Var2)
SUB ( Resta de acumulador y operando; el resultado se copia en el SUB iVar2
acumulador.
MUL ( Multiplicación de acumulador y operando; el resultado se copia MUL iVar2
en el acumulador.

272 EIO0000000071 11/2016


Editor FBD/LD/IL

Operador Modificadores Significado Ejemplo


DIV ( División de acumulador y operando; el resultado se copia en el DIV 44
acumulador.
GT ( Verifica si el acumulador es mayor o igual que el operando; el GT 23
resultado (BOOL) se copia en el acumulador; >=
GE ( Verifica si el acumulador es mayor o igual que el operando; el GE iVar2
resultado (BOOL) se copia en el acumulador; >=
EQ ( Verifica si el acumulador es igual que el operando; el resultado EQ iVar2
(BOOL) se copia en el acumulador; =
NE ( Verifica si el acumulador no es igual que el operando; el NE iVar1
resultado (BOOL) se copia en el acumulador; <>
LE ( Verifica si el acumulador es menor o igual que el operando; el LE 5
resultado (BOOL) se copia en el acumulador; <=
LT ( Verifica si el acumulador es menor que el operando; el resultado LT cVar1
(BOOL) se copia en el acumulador; <
JMP CN Salto incondicional (condicional) a la etiqueta JMPN next
CAL CN Llamada (condicional) de PROGRAM o FUNCTION_BLOCK (si CAL prog1
el acumulador es TRUE).
RET – Retorno anticipado de la POU y salto hacia atrás a la POU de RET
llamada
RET C Condicional (si el acumulador es TRUE), retorno anticipado de RETC
la POU y salto hacia atrás a la POU de llamada
RET CN Condicional (si el acumulador es FALSE), retorno anticipado de RETCN
la POU y salto hacia atrás a la POU de llamada
) – Evaluar operación diferida –

Consulte también Operadores IEC (véase página 649) y Trabajar en el editor IL


(véase página 279) para obtener información sobre cómo utilizar y gestionar múltiples operandos,
operandos complejos, llamadas de función/método/bloque de funciones/programa/acción y
saltos.

Ejemplo
Programa IL de ejemplo con diversos modificadores:
LD TRUE load TRUE to accumulator
ANDN bVar1 execute AND with negative value of bVar1
JMPC m1 if accum. is TRUE, jump to label "m1"
LDN bVar2 store negated value of bVar2...
ST bRes ... in bRes
m1:
LD bVar2 store value of bVar2...
ST bRes ... in bRes

EIO0000000071 11/2016 273


Editor FBD/LD/IL

Trabajo en el editor FBD y LD

Descripción general
Las redes son las entidades básicas en la programación en FBD y LD. Cada red contiene una
estructura que muestra una expresión lógica o aritmética, una POU (función, programa, llamada
de bloque de funciones, etc.), un salto o una instrucción de retorno.
Cuando se crea un nuevo objeto, la ventana del editor contiene de forma automática 1 red vacía.
Consulte la configuración general del editor en el cuadro de diálogo Opciones, categoría IL, FBD,
LD para ver las opciones de visualización posibles del editor.

Información sobre herramientas


La información sobre herramientas contiene información sobre las variables o los parámetros del
módulo.
Al colocar el cursor sobre el nombre de una variable o de un parámetro del módulo aparecerá la
información sobre herramientas. Muestra el tipo correspondiente. En el caso de las instancias de
bloques de funciones, se mostrará el ámbito, el nombre, el tipo de datos, el valor inicial y el
comentario. En el caso de los operadores IEC SEL, LIMIT y MUX, se mostrará una breve
descripción de las entradas. Si se definen, la dirección y el comentario de símbolo se mostrarán
además del comentario de operandos (entre comillas en una segunda línea).
Ejemplo: Información sobre herramientas de una salida de una POU

274 EIO0000000071 11/2016


Editor FBD/LD/IL

Inserción y organización de los elementos


 Los comandos para trabajar en el editor están disponibles de forma predeterminada en el menú
IL, FBD, LD (véase página 289). Los comandos de uso frecuente también están disponibles en
el menú contextual. Los elementos que se puedan insertar a través del comando de menú
depende de la posición actual del cursor o de la selección actual (se puede utilizar la
multiselección, consulte Selección (véase página 276) más adelante).
 También puede arrastrar elementos con el ratón desde las herramientas (véase página 297)
hasta la ventana del editor o desde una posición dentro del editor hasta otra (arrastrar y soltar).
Para ello, seleccione el elemento que se va a arrastrar con un clic del ratón, mantenga pulsado
el botón del ratón y arrastre el elemento a la red correspondiente en la vista del editor. En
cuanto llegue a la red, todas las posiciones de inserción posibles para el tipo de elemento
correspondiente se indicarán mediante marcadores de posición de color gris. Cuando mueva
el cursor del ratón a una de estas posiciones, el marcador se volverá de color verde y podrá
soltar el botón del ratón para insertar el elemento en esa posición.
Insertar posiciones en el editor LD

 Puede utilizar los comandos para cortar, copiar, pegar y eliminar disponibles en el menú Editar
para organizar los elementos. También puede copiar un elemento mediante el método de
arrastrar y soltar: seleccione el elemento en una red con un clic del ratón, pulse la tecla CTRL
y, mientras mantiene pulsados el botón del ratón y la tecla, arrastre el elemento a la posición
de destino. En cuanto se llegue a ella (marcador de posición de color verde), se añadirá un
signo más al símbolo del cursor. Luego, suelte el botón del ratón para insertar el elemento.
 Para ver las posiciones posibles del cursor, consulte Posiciones de cursor en FBD, LD e IL
(véase página 285).
 La inserción de módulos EN/ENO se gestiona de forma distinta en el editor FBD y LD.
Consulte la descripción del comando Insertar llamada de módulo para obtener más información
(la inserción de módulos EN/ENO no se admite en el editor IL).

EIO0000000071 11/2016 275


Editor FBD/LD/IL

Desplazamiento en el editor
 Puede utilizar las teclas de flecha para ir a la posición del cursor (véase página 285) siguiente
o anterior. Esto también se puede hacer entre redes. El desplazamiento con las teclas ← y →
sigue el flujo de la señal, que suele ir de izquierda a derecha y viceversa. En el caso de los
saltos de línea, la posición actual del cursor también se puede dejar bajo la posición que esté
marcada en ese momento. Si pulsa la tecla ↑ o ↓, la selección pasa al elemento siguiente
que está por encima o por debajo de la posición actual si este elemento está en el mismo grupo
lógico (por ejemplo, un pin de un módulo). Si no existe un grupo de este tipo, pasa al elemento
contiguo más cercano por encima o por debajo. El desplazamiento por los elementos
conectados en paralelo se efectúa en la primera derivación.
 Pulse la tecla Inicio para ir al primer elemento. Pulse la tecla FIN para ir al último elemento de
la red.
 Utilice la tecla TAB para ir a la posición del cursor (véase página 285) anterior o siguiente
dentro de una red.
 Pulse CTRL + INICIO para desplazarse al principio del documento y marcar la primera red.
 Pulse CTRL + FIN para desplazarse al final del documento y marcar la última red.
 Pulse RE PÁG para desplazarse 1 pantalla hacia arriba y marcar el rectángulo que está más
arriba.
 Pulse AV PÁG para desplazarse 1 pantalla hacia abajo y marcar el rectángulo que está más
arriba.

Selección
 Puede seleccionar un elemento, incluida una red, tomando la posición del cursor correspon-
diente con un clic del ratón o con las teclas de flecha o TAB. Los elementos seleccionados
estarán sombreados en rojo. Consulte también Posiciones de cursor en FBD, LD e IL
(véase página 285).
 En el editor LD, también puede seleccionar las líneas entre los elementos para ejecutar
comandos; por ejemplo, para insertar otro elemento en esa posición.
Línea seleccionada en el editor LD

 Se puede efectuar una selección múltiple de elementos o redes; para ello, mantenga pulsada
la tecla CTRL mientras selecciona los elementos que desee uno tras otro.

276 EIO0000000071 11/2016


Editor FBD/LD/IL

Abrir un bloque de funciones


Si se añade un bloque de funciones al editor, puede abrir este bloque con un doble clic. Como
alternativa, utilice el comando Examinar - Ir a la definición en el menú contextual.
Editor FBD

EIO0000000071 11/2016 277


Editor FBD/LD/IL

Editor LD

Para obtener información sobre los lenguajes, consulte:


 Diagrama de bloques de funciones (FBD) (véase página 268)
 Diagrama de contactos (LD) (véase página 269)

278 EIO0000000071 11/2016


Editor FBD/LD/IL

Trabajo en el editor IL

Descripción general
El editor Lista de instrucciones (véase página 270) (IL) es un editor de tablas. La estructura de red
de los programas FBD o LD también se representa en un programa IL. Básicamente, una red
(véase página 299) es suficiente en un programa IL, pero teniendo en cuenta el cambio entre FBD,
LD e IL también puede utilizar redes para la estructuración de un programa IL.
Consulte también la configuración general del editor en el cuadro de diálogo Opciones, categoría
IL, FBD, LD.

Información sobre herramientas


La información sobre herramientas contiene información sobre las variables o los parámetros del
módulo.
Consulte Trabajo en el editor FBD y LD (véase página 274).

Inserción y organización de los elementos


 Los comandos para trabajar en el editor están disponibles en el menú IL, FBD, LD. Los
comandos de uso frecuente también están disponibles en el menú contextual.
 Las unidades de programación que sean elementos se insertan cada una en la posición actual
del cursor a través de los comandos Insertar, disponibles en el menú IL, FBD, LD.
 Puede utilizar los comandos cortar, copiar, pegar y eliminar disponibles en el menú Editar, para
organizar los elementos.
 Consulte también algo de información sobre el lenguaje de programación Lista de instrucciones
- IL (véase página 270).
 Los operadores con funcionalidad EN/ENO sólo se pueden insertar dentro del editor FBD y LD.
En este capítulo se describe cómo se estructura el editor de tablas, cómo se puede navegar en el
editor y cómo utilizar operandos complejos, llamadas y saltos.

EIO0000000071 11/2016 279


Editor FBD/LD/IL

Estructura del editor de tablas IL


Editor de tablas IL

Cada línea de programa está escrita en una fila de la tabla, estructurada en campos por las
columnas de la tabla:

Columna Contiene... Descripción


1 operador Este campo contiene el operador IL (LD, ST, CAL, AND, OR, etc.) o un nombre de función.
En caso de una llamada de bloque de funciones, los parámetros respectivos también se
especifican aquí. Introduzca el campo prefijo := o =>.
Para obtener más información, consulte Modificadores y operadores en IL
(véase página 272).
2 operando Este campo contiene exactamente un operando o un símbolo de salto. Si se necesita más
de un operando (operadores múltiples o extensibles AND A, B, C, o llamadas a funciones
con varios parámetros), escríbalos en las siguientes líneas y deje el campo del operador
vacío. En este caso, añada una coma de separación de parámetros.
En el caso de un bloque de funciones, programa o llamada de acción, añada los
paréntesis de apertura o cierre correspondientes.
3 dirección Este campo contiene la dirección del operando como se define en la parte de declaración.
No se puede editar este campo. Utilice la opción Mostrar dirección de símbolo para
activarlo o desactivarlo.
4 comentario Este campo contiene el comentario definido para el operando en la parte de declaración.
de símbolo No se puede editar este campo. Utilice la opción Mostrar dirección de símbolo para
activarlo o desactivarlo.
5 comentario Este campo contiene el comentario de la línea actual. Es editable y se puede activar o
de desactivar mediante la opción Mostrar comentario de operandos.
operandos

280 EIO0000000071 11/2016


Editor FBD/LD/IL

Navegación en la tabla
 Teclas de flecha ARRIBA y ABAJO: desplazamiento al campo por encima o por debajo.
 TAB: desplazamiento dentro de una línea al campo de la derecha.
 MAYÚS+TAB: desplazamiento dentro de una línea al campo de la izquierda.
 ESPACIO: abre el campo seleccionado para su edición. Como alternativa, realiza una
pulsación del ratón sobre el campo. Si procede, el asistente Accesibilidad estará disponible a
través del botón ... Puede cerrar un campo de edición abierto presionando INTRO, lo que
confirma las entradas actuales, o presionando ESC para cancelar las entradas realizadas.
 CTRL+INTRO: introduce una nueva línea debajo de la actual.
 SUPR: borra la línea actual, o sea, donde haya seleccionado actualmente cualquier campo.
 Cortar, Copiar, Pegar: para copiar 1 o varias líneas, seleccione al menos 1 campo de la línea
o líneas y ejecute el comando Copiar. Para cortar una línea, utilice el comando Cortar. Pegar
insertará las líneas copiadas o cortadas previamente antes de la línea donde actualmente se
ha seleccionado un campo. Si no se ha seleccionado ningún campo, se insertarán en el
extremo de la red.
 CTRL+INICIO desplaza hasta el principio del documento y marca la primera red.
 CTRL+FIN desplaza hasta el final del documento y marca la última red.
 RE PÁG desplaza hacia arriba 1 pantalla y marca el rectángulo superior.
 AV PÁG desplaza hacia abajo 1 pantalla y marca el rectángulo superior.

Operandos múltiples (operadores extensibles)


Si el mismo operador (véase página 272) se utiliza con varios operandos, se pueden emplear 2
formas de programación:
 Los operandos se introducen en las líneas siguientes, separados por comas, por ejemplo:
LD 7
ADD 2,
4,
7
ST iVar
 La instrucción se repite en las líneas siguientes, por ejemplo:
LD 7
ADD 2
ADD 4
ADD 7
ST iVar

EIO0000000071 11/2016 281


Editor FBD/LD/IL

Operandos complejos
Si se va a utilizar un operando complejo, escriba antes un paréntesis de apertura y, a continuación,
utilice las siguientes líneas para los componentes particulares del operando. Por debajo de ellos,
en una línea distinta, introduzca el paréntesis de cierre.
Ejemplo: Rotación de una cadena de 1 carácter en cada ciclo.
Código ST correspondiente:
stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) -
1)), (LEFT(stRotate, 1)));
LD stRotate
RIGHT( stRotate
LEN
SUB 1
)
CONCAT( stRotate
LEFT 1
)
ST stRotate

Llamadas a funciones
Introduzca el nombre de la función en el campo del operador. Proporcione el parámetro de entrada
(primero) como operando en una operación LD precedente. Si hay más parámetros, proporcione
el siguiente en la misma línea de la del nombre de la función. Puede añadir más parámetros en
esta línea, separados por comas o en líneas posteriores.
El valor de retorno de la función se almacenará en el acumulador. Se aplica la siguiente restricción
relativa a la norma IEC.
NOTA: No es posible una llamada de función con varios valores de retorno. Sólo se puede utilizar
1 valor de retorno para una operación subsiguiente.
Ejemplo: Se llama a la función GeomAverage, que tiene 3 parámetros de entrada. El primer
parámetro es dado por X7 en una operación precedente. El segundo, 25, es dado por el nombre
de la función. El tercero es dado por la variable tvar, en la misma línea o en la posterior. El valor
de retorno se asigna a la variable Ave.
Código ST correspondiente:
Ave := GeomAverage(X7, 25, tvar);
Llamada de función en IL:
LD X7
GeomAverage 25
tvar
ST Ave

282 EIO0000000071 11/2016


Editor FBD/LD/IL

Llamadas de bloque de funciones y llamadas de programa


Utilice el operador (véase página 272) CAL- o CALC. Introduzca el nombre de la instancia del
bloque de funciones o el nombre del programa en el campo de operando (segunda columna),
seguido de un paréntesis de apertura. Introduzca los parámetros de entrada en una de las
siguientes líneas:
Campo del operador: nombre del parámetro
Campo de prefijo:
 := para los parámetros de entrada
 => para los parámetros de salida

Campo de operando: parámetro actual


Campo de sufijo:
 , si siguen otros parámetros
) después del último parámetro
 () en caso de llamadas sin parámetros

Ejemplo: Llamada de POUToCAll con 2 parámetros de entrada y 2 parámetros de salida.


Código ST correspondiente:
POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wRe
sult);
Llamada de programa en IL con los parámetros de entrada y de salida:

No es necesario utilizar todos los parámetros de un bloque de funciones o de un programa.


NOTA: No se pueden utilizar expresiones complejas. Éstas se deben asignar a la entrada del
bloque de funciones o programa antes de la instrucción de llamada.

EIO0000000071 11/2016 283


Editor FBD/LD/IL

Llamada de acción
Para realizarse como un bloque de funciones o una llamada de programa, el nombre de la acción
se va a añadir al nombre de la instancia o del programa.
Ejemplo: Llamada de acción ResetAction.
Código ST correspondiente:
Inst.ResetAction();
Llamada de acción en IL:
CAL Inst.ResetAction()

Llamada de método
Para realizarse como una llamada de función, el nombre de la instancia con el nombre de método
anexado se introducirá en la primera columna (operador).
Ejemplo: Llamada de método Home.
Código ST correspondiente:
Z := IHome.Home(TRUE, TRUE, TRUE);
Llamada de método en IL:
LD TRUE
IHome.Home TRUE
TRUE
ST Z

Salto
Un salto (véase página 301) se programa con JMP en la primera columna (operador) y un nombre
de etiqueta en la segunda columna (operando). La etiqueta se ha de definir en la red de destino
en el campo etiqueta (véase página 301).
La lista de instrucciones que precede al salto incondicional tiene que terminar con uno de los
siguientes comandos: ST, STN, S, R, CAL, RET u otro JMP.
Este no es el caso de un salto condicional (véase página 301). La ejecución del salto depende del
valor cargado.
Ejemplo: Instrucción de salto condicional; en caso de que bCallRestAction sea TRUE, el
programa debe saltar a la red marcada con Cont.
Instrucción de salto condicional en IL:
LDN bCallResetAction
JMPC Cont

284 EIO0000000071 11/2016


Editor FBD/LD/IL

Posiciones de cursor en FBD, LD e IL

Editor IL
Se trata de un editor de texto, estructurado en forma de tabla. Cada celda de la tabla es una
posible posición del cursor. Consulte también Trabajo en la vista del editor IL (véase página 279).

Editor FBD y LD
Estos son editores gráficos; vea a continuación los ejemplos (1) a (15) que muestran las posibles
posiciones del cursor: texto, entrada, salida, módulo, contacto, bobina, retorno, salto y línea entre
los elementos y la red.
Acciones tales como cortar, copiar, pegar, borrar y otros comandos específicos del editor se
refieren a la posición actual del cursor o elemento seleccionado. Consulte Trabajo en el editor FBD
y LD (véase página 274).
Básicamente, en FBD un rectángulo de puntos alrededor del elemento respectivo indica la
posición actual del cursor. Además, los textos y los módulos se vuelven de color azul o rojo
sombreado.
En LD, las bobinas y los contactos se vuelven de color rojo sombreado en cuanto el cursor se sitúa
sobre ellos.
La posición del cursor determina qué elementos se encuentran disponibles en el menú contextual
para ser insertados (véase página 275).

Posibles posiciones del cursor


(1) En cada campo de texto

En la imagen de la izquierda, las posibles posiciones del cursor están marcadas por un marco rojo.
La imagen de la derecha muestra un módulo con el cursor colocado en el campo AND. Tenga en
cuenta la posibilidad de introducir direcciones en lugar de nombres de variables si está
configurada adecuadamente en el cuadro de diálogo Opcionesdel editor FBD, LD e IL.
(2) En cada entrada:

EIO0000000071 11/2016 285


Editor FBD/LD/IL

(3) En cada operador, función o bloque de funciones:

(4) En las salidas, si viene posteriormente una asignación o un salto:

(5) Justo antes de una bifurcación sobre una asignación antes de un salto o una instrucción de
retorno:

(6) En la posición más a la derecha del cursor en la red o en cualquier parte de la red fuera de las
otras posiciones del cursor. Esto seleccionará toda la red:

(7) En la bifurcación directamente delante de una asignación:

286 EIO0000000071 11/2016


Editor FBD/LD/IL

(8) En cada contacto:

(9) En cada bobina:

(10) En cada retorno y salto:

(11) En la línea de conexión entre los contactos y las bobinas:

(12) En cada rama o subred dentro de una red:

EIO0000000071 11/2016 287


Editor FBD/LD/IL

(13) En la línea de conexión entre los contactos paralelos (pos. 1...4):

(14) Antes o después de una red:

Puede añadir nuevas redes en el lado más a la izquierda del editor. La inserción de una nueva red
antes de una red existente sólo es posible antes de la red 1.
(15) Al principio o al final de una red:

Puede añadir contactos y bloques de funciones al principio de una red en el campo Comenzar
aquí. Puede añadir los elementos retorno, salto y bobina al final de una red en el campo Insertar
salida o salto aquí.

288 EIO0000000071 11/2016


Editor FBD/LD/IL

Menú IL, FBD, LD

Descripción general
Cuando el cursor se coloca en la ventana del editor FBD/LD/IL (véase página 267), el menú IL,
FBD, LD está disponible en la barra de menús, lo que proporciona los comandos para programar
en la vista de editor establecida actualmente.
Menú IL, FBD, LD en la vista del editor FBD:

 Para obtener una descripción de los comandos, consulte el capítulo Comandos del editor
FBD/LD/IL.
 Para obtener la configuración del menú, consulte la descripción del menú Personalizar.

EIO0000000071 11/2016 289


Editor FBD/LD/IL

Editor FBD/LD/IL en modalidad online

Descripción general
En la modalidad online, el editor FBD/LD/IL proporciona vistas para la supervisión
(véase página 290) y para la escritura y el forzado de las variables y expresiones en el controlador.
Hay funciones de depuración disponibles (puntos de interrupción, ejecución paso a paso, etc.);
consulte Posiciones de punto de interrupción o de parada (véase página 294).
 Para obtener información acerca de la apertura de objetos en modalidad online, consulte el
capítulo Interfaz de usuario en modalidad online (véase página 52).
 Tenga en cuenta que la ventana del editor de un objeto FBD, LD o IL también incluye el Editor
de declaraciones en la parte superior. Consulte también el capítulo Editor de declaraciones en
modalidad online (véase página 399).

Supervisión
Si la supervisión en línea no se desactiva explícitamente en el cuadro de diálogo Opciones, se
complementará en el editor FBD o LD con pequeñas ventanas de supervisión detrás de cada
variable o mediante una columna de supervisión adicional que muestra los valores reales
(supervisión en línea). Esto es así incluso para entradas y salidas de bloques de funciones sin
asignar.
La ventana de supervisión en línea de una variable muestra un pequeño triángulo rojo en la
esquina superior izquierda si la variable está forzada (véase página 293) actualmente y un
triángulo azul en la esquina inferior izquierda si está preparada actualmente para la escritura o el
forzado. En LD para contactos y bobinas, el valor preparado actualmente (TRUE o FALSE)
aparecerá justo debajo del elemento.
Ejemplo de una variable que está actualmente forzada y preparada para suprimir el forzado

Ejemplo de variable de contacto preparada actualmente para la escritura o el forzado con el valor
TRUE

290 EIO0000000071 11/2016


Editor FBD/LD/IL

Vista online de un programa FBD

EIO0000000071 11/2016 291


Editor FBD/LD/IL

Vista online de un programa IL

En la vista online, las redes LD tienen conexiones animadas:


 Las conexiones con el valor TRUE se muestran en color azul y en negrita.
 Las conexiones con el valor FALSE se muestran en color negro y en negrita.
 Las conexiones sin valor conocido o con un valor analógico se muestran con un contorno
estándar (en color negro y sin negrita).
Los valores de las conexiones se calculan a partir de los valores de supervisión.
Vista online de un programa LD

Abra una función haciendo doble clic o ejecute el comando Examinar - Ir a la definición en el menú
contextual. Consulte la descripción de la Interfaz de usuario en modalidad online
(véase página 52) para obtener más información.

292 EIO0000000071 11/2016


Editor FBD/LD/IL

Forzado/escritura de variables
En la modalidad online, puede preparar un valor para forzar o escribir una variable en el editor de
declaraciones (véase página 399) o dentro del editor. Haga doble clic en una variable en el editor
para abrir el cuadro de diálogo siguiente:
Cuadro de diálogo Preparar valor

Encontrará el nombre de la variable completada por su ruta en el árbol de dispositivos (Expresión),


su tipo y su valor actual. Al activar el elemento correspondiente, puede hacer lo siguiente:
 Preparar un valor nuevo que se debe introducir en el campo de edición.
 Eliminar un valor preparado.
 Levantar el forzado de la variable.
 Levantar el forzado de la variable y restablecerla al valor que tenía asignado justo antes del
forzado.
La acción seleccionada se realizará al ejecutar el comando de menú Forzar valores (en el menú
En línea) o pulsando F7.
Para obtener información sobre cómo se indica el estado actual de una variable (forzado, valor
preparado) en el elemento respectivo en la red, consulte la sección Supervisión
(véase página 290).

EIO0000000071 11/2016 293


Editor FBD/LD/IL

Posiciones de punto de interrupción o de parada


Las posiciones posibles que se pueden definir para un punto de interrupción (posición de parada)
con fines de depuración son las posiciones en las que los valores de las variables pueden cambiar
(instrucciones), en los que el flujo del programa se bifurca o en los que se llama a otra POU.
Son las posiciones siguientes:
 En la red en su conjunto de modo que el punto de interrupción se aplicará a la primera posición
posible en la red.
 En un módulo (véase página 302), si contiene una instrucción. Por lo tanto, no es posible en
módulos de operadores como, por ejemplo, ADD, DIV. Consulte la nota siguiente.
 En una asignación.
 Al final de una POU en el punto de retorno al llamante; en modalidad online, se mostrará
automáticamente una red vacía con este fin. En lugar de un número de red, se identifica
mediante RET.
NOTA: No se puede establecer un punto de interrupción directamente en el primer módulo de una
red. Si, no obstante, se ha establecido un punto de interrupción sobre la red completa, la posición
de parada se aplicará automáticamente al primer módulo.
Para conocer las posiciones posibles actualmente, consulte la lista de selección del cuadro de
diálogo Visualizar → Puntos de interrupción.
Una red que contiene cualquier posición de punto de interrupción activa se marca con el símbolo
de punto de interrupción (círculo con relleno rojo) a la derecha del número de red y un fondo
rectangular sombreado en rojo para la primera posición de punto de interrupción posible en la red.
Las posiciones de puntos de interrupción desactivados se indican mediante un círculo rojo sin
relleno o un rectángulo rojo circundante sin relleno.
Punto de interrupción establecido y punto de interrupción alcanzado

1 punto de interrupción establecido


2 punto de interrupción alcanzado

294 EIO0000000071 11/2016


Editor FBD/LD/IL

Cuando se llegue a una posición de punto de interrupción durante la ejecución paso a paso o el
procesamiento del programa, se mostrará una flecha amarilla en el símbolo del punto de
interrupción y el área sombreada en rojo pasará a ser amarilla.
Posiciones de parada mostradas en FBD

Posición de parada mostrada en IL

NOTA: Se establecerá automáticamente un punto de interrupción en todos los métodos que


puedan llamarse. Si se llama un método gestionado por interfaces, los puntos de interrupción se
establecerán en todos los métodos de bloques de funciones que implementen esa interfaz y en
todos los bloques de funciones derivados que suscriban el método. Si se llama un método
mediante un puntero en un bloque de funciones, se establecerán puntos de interrupción en el
método del bloque de funciones y en todos los bloques de funciones derivados que suscriban el
método.

EIO0000000071 11/2016 295


Editor FBD/LD/IL

Sección 10.2
Elementos FBD/LD/IL

Elementos FBD/LD/IL

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Herramientas FBD/LD/IL 297
Red en FBD/LD/IL 299
Asignación en FBD/LD/IL 301
Salto en FBD/LD/IL 301
Etiqueta en FBD/LD/IL 301
Módulos en FBD/LD/IL 302
Instrucción RETURN en FBD/LD/IL 303
Bifurcación/Bobina en paralelo en FBD/LD/IL 304
Bifurcación simultánea 307
Set/Reset en FBD/LD/IL 309
Bobina Set/Reset 310

296 EIO0000000071 11/2016


Editor FBD/LD/IL

Herramientas FBD/LD/IL

Descripción general
El editor FBD/LD/IL (véase página 267) proporciona herramientas que ofrecen elementos de
programación para su inserción en la ventana del editor mediante el método de arrastrar y soltar.
Abra las herramientas ejecutando el comando Herramientas que está en el menú Visualizar.
Los elementos disponibles para insertar dependerán de la vista de editor activa actualmente
(consulte la descripción correspondiente de los comandos de inserción).
Los elementos se clasifican en categorías: General (elementos generales como Red, Asignación,
etc.), Operadores lógicos, Operadores matemáticos, Otros operadores (por ejemplo,
SEL, MUX, LIMIT y MOVE), Bloques de funciones (por ejemplo,
R_TRIG, F_TRIG, RS, SR, TON, TOF, CTD, CTU), Elementos de diagrama de contactos
y POU (definido por el usuario).
La categoría POU muestra todas las POU que se han definido bajo la misma aplicación que el
objeto FBD/LD/IL, que está abierto en el editor. Si se ha asignado un mapa de bits a una POU en
sus propiedades, se mostrará delante del nombre de POU. En caso contrario, se utilizará el icono
estándar para indicar el tipo de POU. La lista se actualizará automáticamente cuando se añadan
o eliminen POU de la aplicación.
La categoría Otros operadores contiene entre los operadores SEL, MUX, LIMIT y MOVE un
elemento de conversión de marcadores de posición. Puede arrastrar este elemento y colocarlo en
la posición apropiada de la red. El tipo de conversión se establece automáticamente en función
del tipo necesario de la posición de inserción. Sin embargo, en algunas situaciones no se puede
determinar automáticamente el tipo de conversión necesario. En este caso, cambie manualmente
el elemento.
Para desplegar las carpetas de categorías, haga clic en el botón que muestra el nombre de
categoría respectivo. Como se puede ver en la imagen siguiente, la categoría General está
desplegada, mientras que las demás están contraídas. En la imagen se muestra un ejemplo de
inserción de un elemento Asignación mediante el método de arrastrar y soltar desde las
herramientas.

EIO0000000071 11/2016 297


Editor FBD/LD/IL

Sólo la sección General de las herramientas está desplegada:


Insertar desde las herramientas

Para insertar un elemento en el editor, selecciónelo en las herramientas haciendo clic en él con el
ratón y, a continuación, arrástrelo y suéltelo en la ventana del editor. Las posibles posiciones de
inserción se indicarán mediante marcadores de posición, que aparecen mientras se dibuje el
elemento (con el botón del ratón presionado) en la ventana del editor. Las posiciones posibles más
cercanas se indicarán en verde. Al soltar el botón del ratón, el elemento se insertará en la posición
verde.
Si arrastra un elemento de módulo a un elemento de módulo existente, el nuevo sustituirá al
antiguo. Si ya se han asignado entradas y salidas, permanecerán según se han definido, pero no
se conectarán al nuevo módulo.

298 EIO0000000071 11/2016


Editor FBD/LD/IL

Red en FBD/LD/IL

Descripción general
Una red es la entidad básica de un programa FBD (véase página 268) o LD (véase página 269).
En el editor FBD/LD, las redes se muestran en una lista vertical. Cada red está indicada en el lado
izquierdo con un número de red de serie y tiene una estructura que consta de una expresión lógica
o aritmética, un programa, función o llamada de bloque de funciones y, en algunos casos,
instrucciones de retorno o salto.
El Editor IL (véase página 270), dada la base de editor común con los editores FBD y LD, también
utiliza el elemento de red. Si un objeto inicialmente se programó en FBD o LD y posteriormente se
convirtió a IL, las redes seguirán estando presentes en el programa IL. Por el contrario, si empezó
programando un objeto en IL, necesitará como mínimo 1 elemento de red que pueda contener
todas las instrucciones, pero también puede utilizar redes adicionales para estructurar el
programa.
Opcionalmente, se puede asignar un título, un comentario y una etiqueta (véase página 301) a
una red.
Puede activar o desactivar la disponibilidad de los campos de título y comentario en el cuadro de
diálogo de opciones del editor FBD, LD e IL. Si la opción está activada, haga clic en la red justo
debajo del borde superior para abrir un campo de edición para el título. Asimismo, para introducir
un comentario, abra un campo de edición directamente debajo del campo de título. El comentario
puede tener varias líneas. Pulse INTRO para insertar saltos de línea. Pulse CTRL + INTRO para
finalizar la introducción del texto del comentario.
La visualización o no de un comentario de red y la forma en que se muestra en el editor se define
en el cuadro de diálogo de opciones del editor FBD, LD e IL.
Para añadir una etiqueta (véase página 301) y asignarle un salto (véase página 301), utilice el
comando Insertar etiqueta. Si se define una etiqueta, se mostrará debajo del campo de título y
comentario. Y si estos campos no están disponibles, directamente debajo del borde superior de la
red.

EIO0000000071 11/2016 299


Editor FBD/LD/IL

Comentarios y etiqueta de una red

Puede establecer una red como comentario. Esto indica que la red no se procesa, sino que se
muestra y se gestiona como un comentario. Para ello, utilice el comando Conectar/desconectar
comentarios.
En una red seleccionada actualmente (posición del cursor 6 (véase página 285)), puede aplicar
los comandos predeterminados para copiar, cortar, insertar y eliminar.
NOTA: Al hacer clic con el botón derecho (posición del cursor 6 (véase página 285)) en títulos,
comentarios o etiquetas, se seleccionará únicamente esa entrada en lugar de toda la red. De este
modo, la ejecución de los comandos predeterminados no afecta a la red.
Para insertar una red, utilice el comando Insertar red o arrástrela desde las herramientas
(véase página 297). Una red, junto con todos sus elementos, también se puede copiar o mover
(véase página 274) mediante el método de arrastrar y soltar en el editor.
También puede crear subredes (véase página 304) insertando bifurcaciones.

Red RET
En la modalidad online, se mostrará una red vacía adicional debajo de las redes existentes. En
lugar de tener asignado un número de red, se identifica mediante RET.
Representa la posición en la que la ejecución regresará a la POU de llamada y proporciona una
posición de parada (véase página 290) posible.

300 EIO0000000071 11/2016


Editor FBD/LD/IL

Asignación en FBD/LD/IL

Descripción general
En función de la posición del cursor (véase página 285) seleccionada en FBD o en LD, se
insertará una asignación directamente delante de la entrada seleccionada (posición del cursor 2
(véase página 285)), directamente después de la salida seleccionada (posición del cursor 4
(véase página 285)) o al final de la red (posición del cursor 6 (véase página 285)). En una red LD,
la asignación se mostrará como una bobina (véase página 313). Como alternativa, puede
arrastrar el elemento de asignación desde las herramientas (véase página 297) o bien utilizar el
método de arrastrar y soltar para copiarlo o moverlo (véase página 274) a la vista del editor.
Tras la inserción, la cadena de texto ??? puede sustituirse por el nombre de la variable que se va
a asignar. Para ello, utilice el botón ... para abrir el asistente Accesibilidad.
En IL (véase página 270), las asignaciones se programan mediante instrucciones LD y ST.
Consulte Modificadores y operadores en IL (véase página 272).
Salto en FBD/LD/IL

Descripción general
En función de la posición del cursor (véase página 285) seleccionada en FBD (véase página 268)
o en LD (véase página 269), se insertará un salto directamente delante de la entrada seleccionada
(posición del cursor 2), directamente después de la salida seleccionada (posición del cursor 4) o
al final de la red (posición del cursor 6). Como alternativa, puede arrastrar el elemento de salto
desde las herramientas (véase página 297) o bien utilizar el método de arrastrar y soltar para
copiarlo o moverlo (véase página 274) al editor.
Tras la inserción, puede sustituir el texto ??? introducido automáticamente por la etiqueta a la cual
debe asignarse el salto.
En IL (véase página 270), el salto se inserta mediante una instrucción JMP. En este contexto,
consulte la descripción de los modificadores y operadores en IL (véase página 272).
Etiqueta en FBD/LD/IL

Descripción general
Debajo del campo de comentario de red, cada red FBD (véase página 268), LD
(véase página 269) o IL tiene un campo de entrada de texto para definir una etiqueta. La etiqueta
es un identificador opcional de la red y se puede direccionar cuando se define un salto
(véase página 301). Puede estar formada por una secuencia de caracteres cualquiera.

EIO0000000071 11/2016 301


Editor FBD/LD/IL

Posición de una etiqueta en una red

Consulte el cuadro de diálogo Herramientas → Opciones → FBD, LD e IL para definir la pantalla


de comentario y título.
Módulos en FBD/LD/IL

Descripción general
Un módulo, que se puede insertar en una red FBD (véase página 268), LD (véase página 269) o
IL (véase página 270), es un elemento complejo y puede representar funciones adicionales como
temporizadores, contadores, operaciones aritméticas o también programas, funciones IEC y
bloques de funciones IEC.
Un módulo puede tener una o varias entradas y salidas; lo puede proporcionar una biblioteca del
sistema o se puede programar. Sin embargo, al menos 1 entrada y 1 salida deben asignarse a
valores booleanos.
Si se proporciona con el módulo respectivo y si la opción Mostrar símbolo de módulo está
activada, se mostrará un icono dentro del módulo.

Uso en FBD, LD
Puede colocar un módulo en una red LD o en una red FBD mediante el comando Insertar llamada
de módulo, Insertar módulo vacío. Como alternativa, puede insertarlo desde el cuadro de
herramientas (véase página 297) o bien copiarlo o moverlo dentro del editor mediante la acción
de arrastrar y soltar. Para obtener más información, consulte la descripción del comando Insertar
llamada de módulo.

Uso en IL
En un programa IL (véase página 270), se insertará una instrucción CAL (véase página 272) con
parámetros para representar un elemento de módulo.
Puede actualizar los parámetros del módulo (entradas, salidas), en caso de que la interfaz de
módulo se haya modificado, con la implementación actual sin tener que volver a insertar el
módulo; para ello, ejecute el comando Actualizar parámetros.

302 EIO0000000071 11/2016


Editor FBD/LD/IL

Instrucción RETURN en FBD/LD/IL

Descripción general
Con una instrucción RETURN, se puede salir de la POU de FBD (véase página 268), LD
(véase página 269) o IL (véase página 270).
En una red FBD o LD, puede colocarla en paralelo o al final de los elementos previos. Si la entrada
de una instrucción RETURN es TRUE, se saldrá inmediatamente del procesamiento de la POU.
Ejecute el comando Insertar retorno para insertar una instrucción RETURN. Como alternativa,
puede arrastrar el elemento desde las herramientas (véase página 297) o bien lo puede copiar o
mover (véase página 274) desde otra posición en el editor.
Elemento RETURN

En IL, la instrucción RET (véase página 272) se usa para el mismo fin.

EIO0000000071 11/2016 303


Editor FBD/LD/IL

Bifurcación/Bobina en paralelo en FBD/LD/IL

Descripción general
En una red de Diagrama de bloques de funciones (véase página 268) o de Diagrama de contactos
(véase página 269), una bifurcación o una bobina en paralelo dividirá la línea de procesamiento a
partir de la posición actual del cursor. La línea de procesamiento continuará en dos subredes que
se ejecutarán una tras la otra de arriba abajo. Cada subred puede tener una bifurcación adicional
y, por tanto, habrá varias bifurcaciones en una red.
Cada subred tendrá su propio marcador (el símbolo es un rectángulo vertical). Puede
seleccionarlo (posición del cursor 11 (véase página 285)) para realizar acciones en esta rama de
la bifurcación.
Marcadores de bifurcación

En FBD, inserte una bifurcación mediante el comando Insertar rama. Como alternativa, arrastre el
elemento desde las herramientas (véase página 297). Sobre las posibles posiciones de inserción,
consulte la descripción del comando Insertar rama.
NOTA: En las subredes no puede utilizarse el método de cortar y pegar.
En el ejemplo siguiente, se ha insertado una bifurcación en la salida del módulo SUB. Esta acción
ha creado dos subredes, y cada una se puede seleccionar mediante su marcador de subred.
Después, se añadió un módulo ADD en cada subred.

304 EIO0000000071 11/2016


Editor FBD/LD/IL

Red en FBD con una bifurcación insertada

Para eliminar una subred, quite primero todos los elementos de la subred, es decir, todos los
elementos que están situados a la derecha del marcador de la subred. A continuación, seleccione
el marcador y ejecute el comando Eliminar estándar o pulse la tecla SUPR.
En la imagen siguiente, el elemento OR de 3 entradas tiene que borrarse primero para que pueda
seleccionar y eliminar el marcador de la subred inferior.
Eliminar bifurcación o subred

EIO0000000071 11/2016 305


Editor FBD/LD/IL

Ejecución en modalidad online


Cada rama se ejecutará de izquierda a derecha y, después, de arriba abajo.

IL (lista de instrucciones)
La IL (véase página 270) no admite redes con bifurcaciones. Se conservarán en su represen-
tación original.

Bifurcaciones simultáneas
Para configurar la evaluación de una bifurcación simultánea (véase página 307) en redes LD,
puede utilizar bifurcaciones simultáneas.
A diferencia de una rama abierta (sin punto de unión), las bifurcaciones simultáneas están
cerradas. Tienen puntos de división y de unión comunes.

306 EIO0000000071 11/2016


Editor FBD/LD/IL

Bifurcación simultánea

Descripción general
Una bifurcación simultánea le permite implementar una evaluación paralela de los elementos
lógicos. Esto se lleva a cabo mediante una metodología descrita como evaluación de cortocir-
cuitos (SCE). SCE le permite eludir la ejecución de un bloque de funciones con una salida
booleana si determinadas condiciones paralelas se evalúan como verdaderas. La condición
puede representarse en el editor LD mediante una bifurcación paralela a la rama del bloque de
funciones. La condición SCE se define mediante 1 o varios contactos con esta bifurcación,
conectados en paralelo o en serie.
NOTA: El término rama también se utiliza para otro elemento que divide el flujo de una señal. Esta
rama (véase página 304), a diferencia de la bifurcación paralela, no tiene un punto de unión.
La bifurcación paralela funciona como sigue: primero se analizan las ramas que no contienen un
bloque de funciones. Si 1 de estas ramas se evalúa como verdadera, no se invocará el bloque de
funciones de la bifurcación paralela y el valor de la entrada de la rama del bloque de funciones se
pasará a la salida. Si la condición de SCE se evalúa como falsa, se invocará el bloque de
funciones y se pasará el resultado booleano de la llamada de ejecución del bloque de funciones.
Si todas las ramas contienen bloques de funciones, se evaluarán de arriba abajo y sus salidas se
combinarán con operaciones lógicas OR. Si no hay ramas que contengan una llamada a bloques
de funciones, se realizará la operación OR normal.
Para insertar una bifurcación paralela con la función SCE, seleccione el módulo del bloque de
funciones y ejecute el comando Insertar contacto paralelo (por encima) o Insertar contacto
paralelo (por debajo). Esto sólo es posible si la primera entrada y la salida principal del bloque de
funciones son de tipo BOOL.
A continuación, se muestra un ejemplo del modelo de lenguaje generado para la red en cuestión.

Ejemplo de SCE
La instancia del bloque de funciones x1 (TON) tiene una entrada booleana y una salida booleana.
Esta ejecución puede omitirse si la condición de la bifurcación paralela se evalúa como verdadera.
El valor de esta condición es el resultado de las operaciones OR y AND que conectan los contactos
cond1, cond2 y cond3.
Bifurcación paralela para SCE en una red de contactos

EIO0000000071 11/2016 307


Editor FBD/LD/IL

El procesamiento es como se muestra a continuación, donde P_IN y P_OUT representan el valor


booleano en la entrada (punto de división) y la salida (punto de unión) de la bifurcación paralela,
respectivamente.
P_IN := b1 AND b2;
IF ((P_IN AND cond1) AND (cond2 OR cond3)) THEN
P_OUT := P_IN;
ELSE
x1(IN := P_IN, PT := {p 10}t#2s);
tElapsed := x1.ET;
P_OUT := x1.Q;
END_IF
bRes := P_OUT AND b3;
En las imágenes siguientes se muestra el flujo de datos (en azul) en caso de que el bloque de
funciones se ejecute (la condición resultante de cond1, cond2 y cond3 es falsa) o se omita
(condición verdadera).
Si la condición es falsa, el bloque de funciones se ejecuta:

Si la condición es verdadera, el bloque de funciones se omite:

308 EIO0000000071 11/2016


Editor FBD/LD/IL

Set/Reset en FBD/LD/IL

FBD y LD
Se puede establecer o restablecer una salida booleana en FBD (véase página 268) o, correspon-
dientemente, a una bobina LD (véase página 269). Para cambiar entre los estados establecidos,
utilice el comando respectivo Set/Reset en el menú contextual cuando se selecciona la salida. La
salida o bobina estará marcada por una S o una R.

Set Si el valor TRUE llega a una salida o bobina Set, esta salida o bobina se convertirá en TRUE
y permanecerá así. Este valor no se puede sobrescribir en esta posición mientras la
aplicación está en ejecución.
Restablecer Si el valor TRUE llega a una salida o bobina Reset, esta salida o bobina se convertirá en
FALSE y permanecerá así. Este valor no se puede sobrescribir en esta posición mientras la
aplicación está en ejecución.

Definición de la salida en FBD

En el editor LD, puede insertar bobinas Set y Reset mediante el método de arrastrar y soltar. Para
realizar esta acción, utilice Herramientas, categoría Elemento de diagrama de contactos, o los
elementos S y R de la barra de herramientas.
Ejemplo:
Bobina Set, bobina Reset

Para obtener más información, consulte Bobina Set/Reset (véase página 310).

IL
En una lista de instrucciones, utilice los operadores S y R (véase página 272) para establecer o
restablecer un operando.

EIO0000000071 11/2016 309


Editor FBD/LD/IL

Bobina Set/Reset

Descripción general
Las bobinas (véase página 313) también pueden definirse como bobinas Set o Reset.
Puede reconocer una bobina Set por la S que se incluye en el símbolo de la bobina: (S). Una
bobina Set no sobrescribirá el valor TRUE de la variable booleana adecuada. Es decir, una vez
que la variable se ha establecido en TRUE, permanece en TRUE.
Puede reconocer una bobina Reset por la R que se incluye en el símbolo de la bobina: (R). Una
bobina Reset no sobrescribirá el valor FALSE de la variable booleana adecuada. Es decir, una vez
que la variable se ha establecido en FALSE, permanece en FALSE.
En el editor LD, se pueden insertar bobinas Set y Reset directamente mediante el método de
arrastrar y soltar desde Herramientas, categoría Elemento de diagrama de contactos.
Bobina Set, bobina Reset

310 EIO0000000071 11/2016


Editor FBD/LD/IL

Sección 10.3
Elementos LD

Elementos LD

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Contacto 312
Bobina 313

EIO0000000071 11/2016 311


Editor FBD/LD/IL

Contacto

Descripción general
Este es un elemento LD.
En la parte izquierda de LD (véase página 269), cada red contiene 1 o varios contactos. Los
contactos se representan con 2 líneas paralelas y verticales.

Los contactos transmiten la condición ON (TRUE) u OFF (FALSE) de izquierda a derecha. Se


asigna una variable booleana a cada contacto. Si esta variable es TRUE, la condición se transmite
de izquierda a derecha y, finalmente, a una bobina en la parte derecha de la red. De lo contrario,
la conexión de la derecha recibe el valor FALSE.
Puede conectar varios contactos tanto en serie como en paralelo. Los contactos en paralelo
representan una condición lógica "OR", de forma que sólo uno de ellos necesita tener el valor
TRUE para que la bifurcación simultánea transmita el valor TRUE. En cambio, los contactos en
serie representan una condición lógica "AND", por lo que todos los contactos deben ser TRUE
para que el contacto final transmita TRUE.
Por lo tanto, la disposición de los contactos corresponde a un circuito eléctrico en paralelo o en
serie.
Un contacto también puede ser negado. Esto se indica mediante la barra inclinada que aparece
en el símbolo de contacto.

Un contacto negado transmite la condición entrante (TRUE o FALSE) sólo si la variable booleana
asignada es FALSE.
Puede insertar un contacto en una red LD mediante uno de los comandos Insertar contacto,
Insertar contacto (a la derecha), Insertar contacto paralelo (por encima), Insertar contacto paralelo
(por debajo), Insertar contacto de flanco ascendente o Insertar contacto de flanco descendente
que forman parte del menú LD. Como alternativa, puede insertar el elemento mediante el método
de arrastrar y soltar desde Herramientas (véase página 297) o desde otra posición del editor
(arrastrar y soltar).

FBD e IL
Si está trabajando en la vista FBD (véase página 268) o IL (véase página 270), el comando no
estará disponible. Sin embargo, los contactos y bobinas insertados en una red LD se
representarán con los elementos FBD o instrucciones IL correspondientes.

312 EIO0000000071 11/2016


Editor FBD/LD/IL

Bobina

Descripción general
Este es un elemento LD.
En el lado derecho de una red LD, puede haber cualquier número de bobinas que están
representadas por paréntesis.

Sólo se pueden disponer en paralelo. Una bobina transmite el valor de las conexiones de izquierda
a derecha y lo copia en una variable booleana adecuada. En la línea de entrada, el valor ON
(TRUE) o el valor OFF (FALSE) pueden estar presentes.
Las bobinas también pueden ser negadas. Esto se indica mediante la barra inclinada que aparece
en el símbolo de la bobina.

En este caso, el valor negado de la señal de entrada se copiará en la variable booleana adecuada.
Puede insertar una bobina en una red mediante uno de los comandos Insertar bobina, Inserta
bobina Set, Insertar bobina Reset o Insertar bobina negada del menú LD. Como alternativa, puede
insertar el elemento mediante el método de arrastrar y soltar desde Herramientas (Elemento de
diagrama de contactos) o a través del método de arrastrar y soltar desde otra posición dentro del
editor. Asimismo, consulte Bobina Set/Reset (véase página 310).

FBD e IL
Si está trabajando en la vista FBD (véase página 268) o IL (véase página 270), el comando no
estará disponible. Sin embargo, los contactos y bobinas insertados en una red LD se
representarán con los elementos FBD o instrucciones IL correspondientes.

EIO0000000071 11/2016 313


Editor FBD/LD/IL

314 EIO0000000071 11/2016


SoMachine
Editor de diagrama de función continua (CFC)
EIO0000000071 11/2016

Capítulo 11
Editor de diagrama de función continua (CFC)

Editor de diagrama de función continua (CFC)

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Lenguaje de diagrama de función continua (CFC) 316
Editor CFC 317
Posiciones de cursor en CFC 319
Elementos CFC/Herramientas 321
Trabajo en el editor CFC 327
Editor CFC en modalidad online 330
Editor CFC orientado a la página 332

EIO0000000071 11/2016 315


Editor de diagrama de función continua (CFC)

Lenguaje de diagrama de función continua (CFC)

Descripción general
El diagrama de función continua (CFC) es una extensión del estándar IEC 61131-3, y es un
lenguaje de programación gráfico basado en el lenguaje de diagrama de bloques de funciones
(FBD) (véase página 268). Sin embargo, en contraposición al lenguaje de FBD, no hay redes.
CFC permite colocar libremente los elementos gráficos, lo que a su vez permite que haya lazos
de realimentación.
Para crear objetos de programación CFC en SoMachine, consulte la descripción del editor CFC
(véase página 317).

316 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Editor CFC

Descripción general
El editor CFC es un editor gráfico disponible para la programación de objetos en el lenguaje de
programación de diagrama de función continua (CFC) (véase página 316), que es una extensión
de los lenguajes de programación IEC 61131-3. Elija el lenguaje al añadir un nuevo objeto de
unidad organizativa de programa (POU) al proyecto. Para proyectos grandes, plantéese utilizar la
versión orientada a páginas (véase página 332).
El editor estará disponible en la parte inferior de la ventana, que se abre al abrir el objeto POU de
CFC. Esta ventana también incluye el editor de declaraciones (véase página 394) en la parte
superior.
Editor CFC

El editor CFC, a diferencia del editor FBD / LD, permite el posicionamiento (véase página 327)
libre de los elementos, lo que posibilita la inserción directa de rutas de realimentación. La
secuencia de procesamiento se determina mediante una lista que contiene todos los elementos
insertados actualmente y que pueden modificarse.

EIO0000000071 11/2016 317


Editor de diagrama de función continua (CFC)

Los siguientes elementos están disponibles en un cuadro de herramientas (véase página 321) y
pueden insertarse mediante el método de arrastrar y soltar:
 módulo (operadores, bloques de funciones y programas)
 entrada
 salida
 salto
 etiqueta
 retorno
 compositor
 selector
 marcas de conexión
 comentarios

Puede conectar los pines de entrada y salida de los elementos dibujando una línea con el ratón.
La ruta de la línea de conexión se creará automáticamente y trazará la trayectoria más corta
posible. Las líneas de conexión se ajustan automáticamente en cuanto se mueven los elementos.
Para obtener más información, consulte la descripción sobre cómo insertar y organizar elementos
(véase página 327). Para diagramas complejos, puede utilizar marcas de conexión
(véase página 322) en lugar de líneas. También puede plantearse la posibilidad de modificar el
encaminamiento.
Puede pasar que los elementos se coloquen de tal modo que cubran conexiones ya encaminadas.
Estas colisiones se indican mediante líneas de conexión rojas. Si existen colisiones en el
diagrama, el botón de la esquina superior derecha de la vista de editor presentará un reborde rojo:

. Para editar las colisiones paso a paso, haga clic en este botón y ejecute el comando Mostrar
siguiente colisión. A continuación, se seleccionará la siguiente conexión implicada detectada.
Para diagramas complejos, puede utilizar marcas de conexión (véase página 322) en lugar de
líneas. También puede utilizar la versión orientada a páginas del editor CFC.

Una función de zoom le permite cambiar la dimensión de la ventana del editor: utilice el botón
de la esquina inferior derecha de la ventana y elija de entre los factores de zoom enumerados.
Como alternativa, puede seleccionar la entrada ... para abrir un cuadro de diálogo donde puede
escribir cualquier factor arbitrario.
Puede invocar los comandos para trabajar en el editor CFC desde el menú contextual o desde el
menú CFC que está disponible en cuanto el editor CFC está activo.

318 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Posiciones de cursor en CFC

Descripción general
Las posiciones de cursor en un programa CFC se indican mediante un fondo gris cuando se pasa
el ratón por encima del elemento de programación.
Al hacer clic en una de esas áreas sombreadas, antes de soltar el botón del ratón, el color de fondo
cambiará a rojo. En cuanto suelte el botón del ratón, ese punto pasará a ser la posición actual del
cursor, con el elemento o el texto respectivo seleccionado y de color rojo.
Hay tres categorías de posiciones de cursor. Consulte las posiciones posibles indicadas por una
zona sombreada de color gris que se muestran en las ilustraciones de los párrafos siguientes:

Cursor situado en un texto


Si el cursor se ha situado en un texto y hace clic en el botón del ratón, se mostrará con un
sombreado de color azul y el texto se podrá editar. El botón ... está disponible para abrir el
asistente Accesibilidad. Después de haber insertado un elemento, los caracteres ??? representan
el nombre del elemento. Sustituya esos caracteres con un identificador válido. A continuación, se
mostrará la información sobre herramientas cuando el cursor se sitúe sobre el nombre de una
variable o un parámetro de módulo. La información sobre herramientas contiene el tipo de la
variable o parámetro y, si existe, el comentario asociado en una segunda línea.
Posibles posiciones del cursor y ejemplo de texto seleccionado:

Cursor situado sobre el cuerpo de un elemento


Si el cursor se sitúa sobre el cuerpo de un elemento (módulo, entrada, salida, salto, etiqueta,
retorno, comentario, marca de conexión), este se mostrará de color rojo y se puede mover al
mover el ratón.
Posibles posiciones del cursor y un ejemplo de un cuerpo seleccionado:

EIO0000000071 11/2016 319


Editor de diagrama de función continua (CFC)

Cursor situado sobre el cuerpo en la conexión de entrada o de salida de un elemento


Si el cursor se sitúa sobre una conexión de entrada o de salida de un elemento, un cuadrado rojo
indicará esa posición (punto de conexión). Puede ser negado o Set/Reset.
Posibles posiciones del cursor (sombreados de color gris) y ejemplos de posiciones seleccionadas
de salida y de entrada (cuadrados rojos):

320 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Elementos CFC/Herramientas

Descripción general
Las herramientas proporcionan los elementos gráficos disponibles para programar en la ventana
del editor CFC (véase página 317). Abra las herramientas ejecutando el comando Herramientas
en el menú Ver.

Seleccione el elemento que desee en las herramientas e insértelo (véase página 327) en la
ventana del editor arrastrándolo y soltándolo.

Además de los elementos de programación, hay una entrada en la parte superior de


la lista de las herramientas. En tanto que esta entrada esté seleccionada, el cursor tendrá la forma
de una flecha y podrá seleccionar elementos en la ventana del editor para colocarlos y editarlos.

EIO0000000071 11/2016 321


Editor de diagrama de función continua (CFC)

Elementos CFC

Nombre Símbolo Descripción


página El número de la página se indica automáticamente en función de su posición.
Puede introducir el nombre (Overview en este ejemplo) en el campo naranja
en la parte superior de la página.

punto de El punto de control es necesario para fijar un enrutamiento de línea de


control conexión modificado manualmente, ya que es útil para impedir que el
comando Enrutar todas las conexiones revierta la modificación. Mediante
2 puntos de control puede marcar un segmento específico de una línea cuyo
enrutamiento desea modificar.
entrada Puede seleccionar el texto ofrecido por ??? y reemplazarlo por una variable
o constante. Accesibilidad se usa para seleccionar un identificador válido.

salida

módulo Puede usar un módulo para representar operadores, funciones, bloques de


funciones y programas. Puede seleccionar el texto que ofrece ??? y
reemplazarlo por un operador, función, bloque de funciones o nombre de
programa. Accesibilidad se usa para seleccionar uno de los objetos
disponibles.
Si inserta un bloque de funciones, se visualizará otro ??? encima del cuadro.
Reemplace los signos de interrogación por el nombre de la instancia del
bloque de funciones.
Si reemplaza un módulo existente por otro (modificando el nombre
introducido) y el nuevo tiene un número mínimo o máximo de pines de entrada
o de salida, los pines se adaptarán según corresponda. Si se eliminan los
pines, primero se eliminará el que tenga el valor más bajo.
salto Utilice el elemento de salto para indicar la posición en la que debe reanudarse
la ejecución del programa. Esta posición se define con una etiqueta (consulte
más abajo). Por tanto, reemplace el texto que ofrece ??? por el nombre de
etiqueta.
etiqueta Una etiqueta marca la posición hasta la que puede saltar el programa
(consulte el salto de elemento).
En modalidad online, se inserta una etiqueta de retorno para marcar el final
de la POU.
retorno En modalidad online, se inserta un elemento de retorno en la primera columna
y después del último elemento en el editor. En la ejecución paso a paso, se
salta automáticamente a él antes de que la ejecución abandone la POU.

322 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Nombre Símbolo Descripción


compositor Utilice un compositor para gestionar una entrada de un módulo que es un tipo
de estructura. El compositor visualizará los componentes de estructura y, por
tanto, el programador podrá acceder a ellos en el CFC. Para este fin, asigne
un nombre al compositor como la estructura respectiva (reemplazando ???
por el nombre) y conéctelo al módulo en lugar de usar un elemento de
entrada.
selector Un selector, en contraposición con el compositor, se utiliza para gestionar una
salida de un módulo que es un tipo de estructura. El selector visualizará los
componentes de estructura y, por tanto, el programador podrá acceder a ellos
en el CFC. Para este fin, asigne un nombre al selector como la estructura
respectiva (reemplace ??? por el nombre) y conéctelo al módulo en lugar de
usar un elemento de salida.
comentario Use este elemento para añadir comentarios en un diagrama. Seleccione el
texto del marcador de posición y reemplácelo por el texto que desee. Para
obtener una nueva línea dentro del comentario, pulse CTRL + INTRO.
marca de Puede usar las marcas de conexión en lugar de una línea de conexión
conexión - (véase página 328) entre los elementos, ya que puede ser útil para borrar los
entrada diagramas complejos.
marca de Para una conexión válida, asigne un elemento de marca de conexión –
conexión - entrada en la salida de un elemento y asigne una marca conexión - salida
salida (consulte más abajo) en la entrada de otro elemento. Asigne el mismo nombre
a las dos marcas (no hay distinción entre mayúsculas y minúsculas).
Nomenclatura:
El primer elemento de marca de conexión – entrada que se inserta en un CFC
de forma predeterminada se denomina C-1 y se puede modificar
manualmente. En su marca de conexión - salida homóloga, reemplace ???
por la cadena con el mismo nombre que se usa en la marca de entrada. El
editor verificará que los nombres de las marcas sean exclusivos. Si se cambia
el nombre de una marca de entrada, también se cambiará automáticamente
el nombre de la marca de salida conectada. Sin embargo, si se cambia el
nombre de una marca de salida, la marca de entrada conservará su nombre
antiguo, lo que le permitirá volver a configurar las conexiones. Del mismo
modo, si elimina una marca de conexión no se eliminará su homóloga.
Para usar una marca de conexión en el diagrama, arrástrela desde las
herramientas hasta la ventana del editor y, a continuación, conecte su pin con
el pin de salida o el pin de entrada del elemento respectivo. Como alternativa,
puede convertir una línea de conexión normal existente mediante el comando
Marca de conexión. Este comando también le permite revertir las marcas de
conexión a sus líneas de conexión normal.
Para ver las figuras en las que se muestran algunos ejemplos de marcas de
conexión, consulte el capítulo Marca de conexión.
pin de En función del tipo de módulo, puede añadir una entrada adicional. Para este
entrada fin, seleccione el elemento de módulo en la red CFC y dibuje el elemento de
pin de entrada en el módulo.

EIO0000000071 11/2016 323


Editor de diagrama de función continua (CFC)

Nombre Símbolo Descripción


pin de – En función del tipo de módulo, puede añadir una salida adicional. Para este
salida fin, seleccione el elemento de módulo en la red CFC y dibuje el elemento de
pin de salida en el módulo.

Ejemplo de un compositor
Un programa CFC cfc_prog gestiona una instancia de bloque de funciones fublo1, que tiene
una variable de entrada struvar de tipo de estructura. Utilice el elemento de composición para
acceder a los componentes de estructura.
Definición de estructura stru1:
TYPE stru1 :
STRUCT
ivar:INT;
strvar:STRING:='hallo';
END_STRUCT
END_TYPE
Declaración e implementación de bloque de funciones fublo1:
FUNCTION_BLOCK fublo1
VAR_INPUT
struvar:STRU1;
END_VAR
VAR_OUTPUT
fbout_i:INT;
fbout_str:STRING;
END_VAR
VAR
fbvar:STRING:='world';
END_VAR
fbout_i:=struvar.ivar+2;
fbout_str:=CONCAT (struvar.strvar,fbvar);
Declaración e implementación de programa cfc_prog:
PROGRAM cfc_prog
VAR
intvar: INT;
stringvar: STRING;
fbinst: fublo1;
erg1: INT;
erg2: STRING;
END_VAR

324 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Elemento de composición

1 compositor
2 bloque de funciones con variable de entrada struvar de estructura de tipo stru1

Ejemplo de un selector
Un programa CFC cfc_prog gestiona una instancia de bloque de funciones fublo2, que tiene
una variable de salida fbout de estructura de tipo stru1. Utilice el elemento selector para
acceder a los componentes de estructura.
Definición de estructura stru1:
TYPE stru1 :
STRUCT
ivar:INT;
strvar:STRING:='hallo';
END_STRUCT
END_TYPE
Declaración e implementación del bloque de funciones fublo1:
FUNCTION_BLOCK fublo2
VAR_INPUT CONSTANT
fbin1:INT;
fbin2:DWORD:=24354333;
fbin3:STRING:='hallo';
END_VAR
VAR_INPUT
fbin : INT;
END_VAR
VAR_OUTPUT
fbout : stru1;
fbout2:DWORD;
END_VAR
VAR
fbvar:INT;
fbvar2:STRING;
END_VAR

EIO0000000071 11/2016 325


Editor de diagrama de función continua (CFC)

Declaración e implementación del programa cfc_prog:


VAR
intvar: INT;
stringvar: STRING;
fbinst: fublo1;
erg1: INT;
erg2: STRING;
fbinst2: fublo2;
END_VAR
En la ilustración se muestra un elemento selector donde las conexiones no utilizadas se han
eliminado con la ejecución del comando Eliminar las conexiones sin enlace.

1 bloque de funciones con variable de salida fbout de estructura de tipo stru1


2 selector

326 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Trabajo en el editor CFC

Descripción general
Los elementos disponibles para la programación en el editor CFC se proporcionan en
Herramientas (véase página 321), que de forma predeterminada está disponible en una ventana
en cuanto se abre el editor CFC.
En Herramientas → Opciones → Editor CFC se define la configuración general para trabajar en
el editor.

Inserción
Para insertar un elemento, selecciónelo en Herramientas (véase página 321) haciendo clic con el
ratón, mantenga pulsado el botón del ratón y arrastre el elemento a la posición que desee en la
ventana del editor. Al arrastrar, el cursor se mostrará como una flecha más un rectángulo y un
signo más. Al soltar el botón del ratón, se insertará el elemento.

Selección
Para seleccionar un elemento insertado para realizar acciones adicionales como, por ejemplo,
editar o reorganizar, haga clic en el cuerpo del elemento para seleccionar el elemento. Se
mostrará de forma predeterminada sombreado en rojo. Si pulsa además la tecla MAYÚS, puede
hacer clic en más elementos para seleccionarlos. También puede pulsar el botón izquierdo del
ratón y dibujar un rectángulo con puntos alrededor de todos los elementos que desee seleccionar.
En cuanto suelte el botón, se indicará la selección. Con el comando Seleccionar todo, se
seleccionan todos los elementos a la vez.
Mediante las teclas de flecha, puede cambiar la marca de selección a la siguiente posición posible
del cursor. La secuencia depende del orden de ejecución de los elementos, que se indica
mediante números de elemento (véase página 329).
Cuando se seleccione un pin de entrada y se pulse CTRL + FLECHA IZQUIERDA, se seleccionará
la salida correspondiente. Cuando se seleccione un pin de entrada y se pulse CTRL + FLECHA
IZQUIERDA, se seleccionarán las salidas correspondientes.

Sustitución de módulos
Para sustituir un elemento de módulo existente, sustituya el identificador insertado actualmente
por el del elemento nuevo que desee. El número de pines de entrada y salida se adaptará si es
necesario debido a la definición de las POU y, de este modo, se pueden eliminar algunas
asignaciones existentes.

Desplazamiento
Para mover un elemento, selecciónelo haciendo clic en su cuerpo (vea las posiciones de cursor
(véase página 319) posibles) y arrástrelo, manteniendo el botón del ratón pulsado, a la posición
deseada. Luego, suelte el botón del ratón para colocar el elemento. También puede utilizar los
comandos Cortar y Pegar con el mismo fin.

EIO0000000071 11/2016 327


Editor de diagrama de función continua (CFC)

Conexión
Puede conectar los pines de entrada o salida de dos elementos mediante una línea de conexión
o mediante marcas de conexión.
Línea de conexión: Puede seleccionar un punto de conexión válido que sea un pin de entrada o
salida de un elemento (consulte Posiciones de cursor en CFC (véase página 319)) y luego trazar
una línea hasta otro punto de conexión con el ratón. O bien puede seleccionar dos puntos de
conexión y ejecutar el comando Select Connected Pins. Un punto de conexión posible
seleccionado se indica mediante un cuadrado con relleno rojo. Cuando se traza una línea desde
tal punto hasta el elemento de destino, se puede identificar el punto de conexión de destino
posible. Cuando se coloca el cursor sobre un punto de conexión válido, se añade un símbolo de
flecha al cursor al moverlo sobre dicho punto, indicando la posible conexión.
La figura siguiente ofrece un ejemplo: Después de hacer clic con el ratón en un pin de entrada del
elemento var1, se muestra el rectángulo rojo que muestra que se trata de un punto de conexión
seleccionado. Manteniendo pulsado el botón del ratón, mueva el cursor al pin de salida del módulo
ADD hasta que el símbolo del cursor aparezca tal como se muestra en la figura. Ahora suelte el
botón del ratón para establecer la línea de conexión.

Se creará la conexión más corta posible teniendo en cuenta el resto de los elementos y las
conexiones. Si la ruta de las líneas de conexión se solapa con otras líneas de conexión, su color
será gris claro
Marcas de conexión: También puede utilizar marcas de conexión en lugar de líneas de conexión
para simplificar los diagramas complejos. Consulte la descripción de las marcas de conexión
(véase página 322).

Copia
Para copiar un elemento, selecciónelo y utilice los comandos Copiar y Pegar.

Edición
Después de insertar un elemento, de forma predeterminada la parte de texto se representa
mediante ???. Para sustituir estos signos por el texto deseado, (nombre de POU, nombre de
etiqueta, nombre de instancia, comentario, etc.), haga clic en el texto para obtener un campo de
edición. También estará disponible el botón ... para abrir Accesibilidad.

Eliminación
Puede eliminar un elemento seleccionado o una línea de conexión ejecutando el comando
Eliminar, que está disponible en el menú contextual, o pulsando la tecla SUPR.

328 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Apertura de un bloque de funciones


Si se añade un bloque de funciones al editor, puede abrir este bloque con un doble clic. Como
alternativa, utilice el comando Examinar → Ir a la definición en el menú contextual.

Orden de ejecución, Números de elemento


La secuencia en la que se ejecutan los elementos en una red CFC en modalidad online se indica
mediante números en la esquina superior derecha de los elementos módulo, salida, salto, retorno
y etiqueta. El procesamiento se inicia en el elemento con el número más bajo, que es 0.
Puede modificar el orden de ejecución mediante comandos que están disponibles en el submenú
Orden de ejecución del menú CFC.
Al añadir un elemento, el número se asignará automáticamente según la secuencia topológica (de
izquierda a derecha y de arriba abajo). El elemento nuevo recibe el número de su sucesor
topológico si la secuencia ya se ha modificado y todos los números más altos se incrementan en 1.
Tenga en cuenta que el número de un elemento permanece constante cuando se mueve.
Tenga en cuenta que la secuencia influye sobre el resultado y se debe cambiar en determinados
casos.

Cambio del tamaño de la hoja de trabajo


Para obtener más espacio en torno a un diagrama CFC existente en la ventana del editor, puede
cambiar el tamaño del área de trabajo (hoja de trabajo). Para hacerlo, seleccione y arrastre todos
los elementos con el ratón o utilice los comandos cortar y pegar (consulte Desplazamiento
(véase página 327)).
Como alternativa, puede utilizar un cuadro de diálogo de configuración de dimensiones especial.
Esto puede ahorrarle tiempo si trabaja con diagramas de gran tamaño. Consulte la descripción del
cuadro de diálogo (véase SoMachine, Comandos de menú, Ayuda en línea) Editar la hoja de
trabajo. En el caso de CFC orientado a la página, puede utilizar el comando (véase SoMachine,
Comandos de menú, Ayuda en línea) Edit Page Size.

EIO0000000071 11/2016 329


Editor de diagrama de función continua (CFC)

Editor CFC en modalidad online

Descripción general
En la modalidad online, el editor CFC proporciona vistas para la supervisión. Las vistas para la
escritura y el forzado de las variables y expresiones en el controlador se describen en capítulos
separados. La funcionalidad de depuración (puntos de interrupción, ejecución paso a paso, etc.)
está disponible como se describe a continuación.
 Para obtener información acerca de la apertura de objetos en modalidad online, consulte la
descripción de la interfaz de usuario en modalidad online (véase página 52).
 La ventana del editor de un objeto CFC también incluye el editor de declaraciones en la parte
superior. Consulte la descripción del editor de declaraciones en modalidad online
(véase página 399).

Supervisión
Los valores reales se muestran en las pequeñas ventanas de supervisión que hay detrás de cada
variable (supervisión en línea).
Vista online de un objeto de programa PLC_PRG:

330 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Posiciones de puntos de interrupción en el editor CFC


Las posiciones posibles de los puntos de interrupción son básicamente las posiciones de una POU
en las que los valores de las variables pueden cambiar, en las que el flujo del programa se bifurca
o en las que se llama a otra POU. Vea las posiciones posibles en la imagen siguiente.
Posiciones de puntos de interrupción en el editor CFC:

NOTA: Se establecerá automáticamente un punto de interrupción en todos los métodos que


puedan llamarse. Si se llama un método gestionado por interfaces, los puntos de interrupción se
establecerán en todos los métodos de bloques de funciones que implementen esa interfaz y en
todos los bloques de funciones derivados que suscriban el método. Si se llama un método
mediante un puntero en un bloque de funciones, se establecerán puntos de interrupción en el
método del bloque de funciones y en todos los bloques de funciones derivados que suscriban el
método.

EIO0000000071 11/2016 331


Editor de diagrama de función continua (CFC)

Editor CFC orientado a la página

Descripción general
Además del editor CFC estándar, SoMachine proporciona la paginación del editor CFC. Aparte de
las herramientas (véase página 321) y comandos del editor CFC estándar, este editor permite
organizar los elementos en un número cualquiera de páginas.
NOTA: No puede convertir las POU creadas en lenguaje CFC orientado a la página a CFC normal
y viceversa. Puede copiar elementos entre estos 2 editores con los comandos para copiar y pegar
(a través del portapapeles) o con la función de arrastrar y soltar.
Paginación de CFC

Para cambiar el tamaño de la página, ejecute el comando Edit Page Size.

332 EIO0000000071 11/2016


Editor de diagrama de función continua (CFC)

Conexiones entre 2 páginas


Las conexiones entre 2 páginas se realizan con los elementos marca de conexión - entrada y
marca de conexión - salida (consulte la descripción de las marcas de conexión). Puede colocar la
marca de conexión - entrada mediante el método de arrastrar y soltar en el margen derecho y la
marca de conexión - salida en el margen izquierdo. Si dibuja una línea de conexión desde una
entrada o una salida de un elemento hasta el margen, la marca de conexión se coloca de forma
automática.
Inserción de marcas de conexión

Orden de ejecución
El orden de ejecución de las páginas va de arriba abajo. Dentro de una página, el orden sigue las
reglas del editor CFC estándar (consulte la información adicional sobre el orden de ejecución
(véase página 329)). Puede cambiar el orden de ejecución de los elementos solamente dentro de
la página asociada. No puede cambiar el orden de ejecución de los elementos en páginas
diferentes.

EIO0000000071 11/2016 333


Editor de diagrama de función continua (CFC)

334 EIO0000000071 11/2016


SoMachine
Editor de diagrama funcional secuencial (SFC)
EIO0000000071 11/2016

Capítulo 12
Editor de diagrama funcional secuencial (SFC)

Editor de diagrama funcional secuencial (SFC)

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Editor SFC 336
SFC - Lenguaje de diagrama funcional secuencial 338
Posiciones de cursor en SFC 339
Trabajo en el editor SFC 341
Propiedades del elemento SFC 343
Elementos SFC / Herramientas 345
Calificador para las acciones en SFC 357
Variables implícitas - Indicadores SFC 358
Secuencia de procesamiento en SFC 364
Editor SFC en modalidad online 366

EIO0000000071 11/2016 335


Editor de diagrama funcional secuencial (SFC)

Editor SFC

Descripción general
El editor SFC está disponible para la programación de objetos en el lenguaje de programación
IEC 61131-3 SFC - Diagrama funcional secuencial (véase página 338). Seleccione el lenguaje
cuando añada un nuevo objeto POU al proyecto.
El editor SFC es un editor gráfico. Realice la configuración general relativa al comportamiento y la
visualización en el cuadro de diálogo Opciones → Editor SFC.
El editor SFC está disponible en la parte inferior de la ventana que se abre cuando se edita un
objeto POU SFC. Esta ventana también incluye el editor de declaraciones (véase página 394) en
la parte superior.
Editor SFC

336 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Trabajo con el editor SFC


Los elementos (véase página 345) utilizados en un diagrama SFC están disponibles en el menú
SFC. El menú estará disponible tan pronto como el editor SFC esté activo. Dispóngalos en una
secuencia o en secuencias paralelas de pasos que están conectados por transiciones. Para
obtener más información, consulte Trabajo en el editor SFC (véase página 341).
Puede editar las propiedades de los pasos en una ventana separada de propiedades
(véase página 343). Entre otras cosas, se puede definir el tiempo mínimo y máximo de la actividad
para cada paso.
Puede acceder a variables implícitas (véase página 358) para controlar el procesamiento de un
SFC (por ejemplo, estado de los pasos, análisis de timeout, restablecimiento).

EIO0000000071 11/2016 337


Editor de diagrama funcional secuencial (SFC)

SFC - Lenguaje de diagrama funcional secuencial

Descripción general
El diagrama funcional secuencial (SFC) es un lenguaje orientado gráficamente que describe el
orden cronológico de acciones concretas en un programa. Estas acciones están disponibles como
objetos de programación independientes, y están escritas en cualquier lenguaje de programación
disponible. En SFC, esas acciones se asignan a elementos de paso y los elementos de transición
controlan la secuencia de procesamiento. Para obtener una descripción detallada del modo en el
que se procesarán los pasos en modalidad online, consulte Secuencia de procesamiento en SFC
(véase página 364).
Para obtener información sobre cómo utilizar el editor SFC en SoMachine, consulte la descripción
del editor SFC (véase página 336).

Ejemplo
Ejemplo de una secuencia de pasos en un módulo SFC:

338 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Posiciones de cursor en SFC

Descripción general
Las posibles posiciones de cursor en un diagrama SFC en el editor SFC (véase página 336) se
indican mediante una sombra de color gris cuando se pasa el cursor sobre los elementos.

Posiciones de cursor en textos


Hay 2 categorías de posiciones de cursor: textos y cuerpos de elementos. Consulte las posiciones
posibles indicadas por una zona sombreada de color gris que se muestran en las ilustraciones
siguientes:
Posibles posiciones de cursor en textos:

Si se hace clic en una posición de cursor en un texto, la cadena podrá editarse.


Seleccione el nombre de la acción para editarlo:

EIO0000000071 11/2016 339


Editor de diagrama funcional secuencial (SFC)

Posiciones de cursor en cuerpos de elementos


Posibles posiciones de cursor en cuerpos de elementos:

Al hacer clic en una zona sombreada, el elemento se selecciona. Se muestra un marco de puntos
y aparece un sombreado de color rojo (para realizar una selección múltiple, consulte Trabajo en
el editor SFC (véase página 341)).
Elemento de paso seleccionado

340 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Trabajo en el editor SFC

Descripción general
De forma predeterminada, una nueva POU SFC contiene un paso inicial y una transición posterior.
En este capítulo se proporciona información sobre cómo añadir más elementos y cómo organizar
y editar los elementos.

Posibles posiciones del cursor


Para obtener más información, consulte el capítulo Posiciones de cursor en SFC
(véase página 339).

Desplazamiento
Utilice las teclas de flecha para ir al elemento anterior o siguiente del diagrama.

Inserción de elementos
Para insertar los elementos SFC (véase página 345) específicos, ejecute los comandos
pertinentes del menú SFC. Para obtener más información, consulte la descripción de los
comandos del editor SFC (véase SoMachine, Comandos de menú, Ayuda en línea). Haga doble
clic en un paso, transición o elemento de acción ya insertado que todavía no haga referencia a un
objeto de programación a fin de abrir un cuadro de diálogo para asignar uno.

Selección de elementos
Seleccione un elemento o campo de texto haciendo clic en una posición posible del cursor.
También puede asignar la selección a un elemento adyacente mediante las teclas de flecha. El
elemento pasará a mostrarse en color rojo. Por ejemplo, consulte el capítulo Posiciones de cursor
en SFC (véase página 339).
NOTA: A diferencia de las versiones anteriores de SoMachine, puede seleccionar y mover (cortar,
copiar, pegar) o eliminar pasos y transiciones por separado.
Para realizar una selección múltiple, dispone de las siguientes opciones:
 Mantener pulsada la tecla MAYÚS y hacer clic en los elementos específicos que desea
seleccionar.
 Pulsar el botón izquierdo del ratón y dibujar un rectángulo (línea discontinua) alrededor de los
elementos por seleccionar.
 Ejecutar el comando Seleccionar todo, de forma predeterminada desde el menú Editar.

Edición de textos
Haga clic en una posición de cursor de texto para abrir el campo de edición, donde podrá editar el
texto. Si se ha seleccionado un área de texto mediante las teclas de flecha, abra el campo de
edición explícitamente con la barra espaciadora.

EIO0000000071 11/2016 341


Editor de diagrama funcional secuencial (SFC)

Edición de acciones asociadas


Haga doble clic en un paso (entrada, activo o salida) o una asociación de acción de transición para
abrir la acción asociada en el editor correspondiente. Por ejemplo, puede hacer doble clic en el
elemento de transición o en el triángulo que indica una acción de salida en un elemento de paso.

Cortado, copiado y pegado de elementos


Seleccione los elementos y ejecute el comando Cortar, Copiar o Pegar (en el menú Editar) o utilice
las teclas correspondientes.
NOTA:
 Al pegar uno o varios elementos cortados o copiados, el contenido del portapapeles se inserta
antes de la posición seleccionada actualmente. Si no se seleccionada nada, los elementos se
añaden al final del diagrama cargado actualmente.
 Si pega una bifurcación cuando el elemento seleccionado también es una bifurcación, los
elementos de bifurcación pegados se insertarán a la izquierda de los elementos existentes.
 Si pega una acción (lista de acciones) en un paso seleccionado actualmente, las acciones se
añadirán al principio de la lista de acciones del paso o bien se creará una lista de acciones para
el paso.
 Elementos incompatibles al cortar/copiar:
Si selecciona una acción (lista de acciones) asociada y, además, un elemento que no es el paso
al que pertenece la acción (lista de acciones), se muestra este cuadro de mensaje: La selección
actual contiene elementos incompatibles. No se transmitirán datos al portapapeles. La
selección no se almacenará y no la podrá pegar ni copiar.
 Elementos incompatibles al pegar:
Si intenta pegar una acción (lista de acciones) y el elemento seleccionado no es un paso u otra
asociación, se muestra este cuadro de mensaje: Imposible insertar el contenido del
portapapeles en la selección actual. Si intenta pegar un elemento como un paso, bifurcación o
transición y hay seleccionada una acción (lista de acciones) asociada, se muestra el mismo
cuadro de mensaje.

Eliminación de elementos
Seleccione los elementos y ejecute el comando Eliminar o pulse la tecla SUPR.
Tenga en cuenta lo siguiente:
 Al eliminar un paso también se elimina la lista de acciones asociada.
 Al eliminar el paso inicial, el siguiente paso se establece automáticamente como paso inicial.
La opción Paso inicial se activará en las propiedades de este paso.
 La eliminación de la línea horizontal anterior a un área bifurcada eliminará todas las
bifurcaciones.
 La eliminación de todos los elementos específicos de una bifurcación eliminará la bifurcación.

342 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Propiedades del elemento SFC

Descripción general
Puede visualizar y editar las propiedades de un elemento SFC en el cuadro de diálogo
Propiedades del elemento. Abra este cuadro de diálogo mediante el comando Propiedades del
elemento, que forma parte del menú Visualizar.
Las propiedades que se visualicen dependerán del elemento seleccionado actualmente. Las
propiedades están agrupadas. Puede abrir y cerrar determinadas secciones de grupos utilizando
los símbolos Más o Menos.
Puede configurar si deben visualizarse determinados tipos de propiedades junto a un elemento en
la gráfica SFC en la ficha Visualizar de las opciones del editor SFC.

Configuración general

Propiedad Descripción
Nombre Nombre del elemento; de forma predeterminada
<elemento><número de ejecución>. Ejemplos: nombre de
paso Step0, Step1, nombre de rama branch0, etc.
Comentario Comentario sobre el elemento en una cadena de texto.
Ejemplo: Restablecer contador.
Pulse CTRL + INTRO para insertar saltos de línea.
Símbolo Por cada elemento SFC se crea implícitamente un indicador
que se denomina igual que el elemento.
Aquí puede especificar si esta variable de indicador debe
exportarse a la configuración de símbolos y cómo debe ser
accesible el símbolo en el controlador.
Haga doble clic en el campo del valor o seleccione el campo
del valor y pulse la barra espaciadora para abrir la lista de
selección en la que puede elegir una de las siguientes
opciones de acceso:
Ninguno: El símbolo se exportará a la configuración de
símbolos, pero no estará accesible en el controlador.
Lectura: El símbolo se exportará a la configuración de
símbolos y podrá leerse en el controlador.
Escritura: El símbolo se exportará a la configuración de
símbolos y podrá escribirse en el controlador.
Lectura/escritura: combinación de lectura y escritura.
De forma predeterminada, este campo se deja vacío. Es
decir, no se exporta ningún símbolo a la configuración de
símbolos.

EIO0000000071 11/2016 343


Editor de diagrama funcional secuencial (SFC)

Propiedades específicas

Propiedad específica Descripción


Paso inicial La opción se activa en las propiedades del paso inicial
(véase página 345) actual. De forma predeterminada, se
activa para el primer paso de SFC y se desactiva para los
demás pasos. Si activa esta opción para otro paso, debe
desactivarla en el paso inicial anterior. En caso contrario, se
generará un error de compilador.
Tiempos: Define los tiempos de proceso mínimo y máximo del paso.
NOTA: Los timeouts en los pasos se indican mediante el
indicador SFCError de la variable implícita
(véase página 358).
Mínimo activo Duración mínima de tiempo que debería requerir el
procesamiento de este paso. Valores permitidos: tiempo
según la sintaxis IEC (por ejemplo, t#8s) o variable TIME;
valor predeterminado: t#0s.
Máximo activo Duración máxima de tiempo que debería requerir el
procesamiento de este paso. Valores permitidos: tiempo
según la sintaxis IEC (por ejemplo, t#8s) o variable TIME;
valor predeterminado: t#0s.
Acciones: Define las Acciones (véase página 349) que deben
realizarse cuando el paso está activo. Consulte la
descripción de la sección Secuencia de procesamiento
en SFC (véase página 364) para obtener más información.
Paso activado Esta acción se ejecutará después de que el paso se active
Paso activo Esta acción se ejecutará cuando el paso esté activo y las
posibles acciones de la entrada ya se hayan procesado.
Paso desactivado Esta acción se ejecutará en el ciclo posterior a la
desactivación de un paso (acción de salida).

NOTA: Utilice las variables implícitas correspondientes para determinar el estado de las acciones
y los timeouts mediante indicadores SFC (véase página 358).

344 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Elementos SFC / Herramientas

Descripción general
Puede insertar los elementos gráficos que se pueden utilizar para la programación en la ventana
del editor SFC ejecutando los comandos del menú SFC.
Para obtener información sobre cómo trabajar en el editor, consulte la descripción en el capítulo
Trabajo en el editor SFC (véase página 341)
Los elementos siguientes están disponibles y se describen en este capítulo:
 paso (véase página 345)
 transición (véase página 345)
 acción (véase página 349)
 bifurcación (alternativa) (véase página 352)
 bifurcación (simultánea) (véase página 353)
 salto (véase página 355)
 macro (véase página 355)

Paso / Transición
Para insertar un solo paso o una sola transición, ejecute el comando Paso o Transición desde
Herramientas. También se pueden insertar pasos y transiciones en combinación, mediante el
comando Insertar la transición de paso ( ) o Insertar transición de paso después ( ) desde la
barra de herramientas.
Un paso se representa mediante un módulo que contiene principalmente un nombre de paso
generado automáticamente. Se conecta a la transición anterior y posterior mediante una línea. El
marco del módulo del primer paso en un SFC, el paso inicial, tiene una línea doble.
La transición se representa mediante un pequeño rectángulo. Después de insertarla, tiene un
nombre predeterminado, Trans<n>, donde n es un número consecutivo.
Ejemplo de paso y transición posterior:

Ejemplo de paso inicial y transición posterior:

EIO0000000071 11/2016 345


Editor de diagrama funcional secuencial (SFC)

Puede editar los nombres de pasos y transiciones en línea.


Los nombres de paso deben ser exclusivos en el ámbito de la POU padre. Téngalo en cuenta
especialmente al utilizar acciones programadas en SFC. De lo contrario, se detectará un error
durante el proceso de compilación.
Puede transformar cada paso en un paso inicial ejecutando el comando Paso inicial o activando
la propiedad de paso respectiva. Un paso inicial se ejecutará primero cuando se llama a la POU IL.
Cada paso se define mediante las propiedades (véase página 343) del paso.
Después de insertar un paso, asocie las acciones que se deben realizar cuando el paso esté
activo (procesado); consulte a continuación la información adicional sobre las acciones
(véase página 349).

Recomendaciones sobre las transiciones


Una transición debe proporcionar la condición que hará que el paso posterior se active en cuanto
el valor de la condición sea TRUE. Por lo tanto, una condición de transición debe tener el valor
TRUE o FALSE.
Una condición de transición se puede definir de los 2 modos siguientes:

Tipo de definición Tipo de condición Descripción


directa en línea Sustituya el nombre de transición predeterminado por uno de los
elementos siguientes:
 variable booleana
 dirección booleana
 constante booleana
 instrucción que tiene un resultado booleano (ejemplo: (i<100)
AND b).
Aquí no se pueden especificar programas, bloques de funciones ni
asignaciones.
utilizando un objeto de multiuso Sustituya el nombre de transición predeterminado por el nombre de
transición o de propiedad
independiente un objeto de transición ( ) o de propiedad ( ) disponible en el
proyecto. (Esto permite el uso múltiple de transacciones; véase por
ejemplo condition_xy en las figuras siguientes).
El objeto como una transición en línea puede contener los
elementos siguientes:
 variable booleana
 dirección
 constante
 instrucción
 varias instrucciones con código arbitrario

NOTA: Si una transición produce varias instrucciones, asigne la expresión deseada a una variable
de transición.

346 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

NOTA: Las transiciones que constan de un objeto de transición o de propiedad se indican


mediante un pequeño triángulo en la esquina superior derecha del rectángulo.
Objeto de transición (transición de uso múltiple):

Ejemplos de transiciones:

1 Condiciones de transición introducidas directamente


2 Transición condition_xy programada en ST

EIO0000000071 11/2016 347


Editor de diagrama funcional secuencial (SFC)

Las condiciones de uso múltiple (transiciones o propiedades) se indican mediante un triángulo:

A diferencia de versiones anteriores de SoMachine, una llamada a una transición se gestiona


como una llamada a un método. Se introducirá de acuerdo con la sintaxis siguiente:
<nombre de transición>:=<condición de transición>;
Ejemplo: trans1:= (a=100);
o sólo
<condición de transición>;
Ejemplo: a=100;
Consulte también el ejemplo (condition_xy) en la figura Ejemplos de transiciones.

348 EIO0000000071 11/2016


Editor de diagrama funcional secuencial (SFC)

Acción
Una acción puede contener una serie de instrucciones escritas en uno de los lenguajes de
programación válidos. Se asigna a un paso y, en modalidad onlin