100% encontró este documento útil (1 voto)
1K vistas469 páginas

Spanish20240206074029 - Codesys Manual

Este documento proporciona una introducción al software CoDeSys para la programación de PLC. Explica las funciones principales de CoDeSys como diferentes lenguajes de programación, depuración, gestión de proyectos y componentes. También incluye ejemplos de programas simples y guías sobre cómo usar las diversas herramientas y editores en CoDeSys.

Cargado por

Amit Mishra
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
100% encontró este documento útil (1 voto)
1K vistas469 páginas

Spanish20240206074029 - Codesys Manual

Este documento proporciona una introducción al software CoDeSys para la programación de PLC. Explica las funciones principales de CoDeSys como diferentes lenguajes de programación, depuración, gestión de proyectos y componentes. También incluye ejemplos de programas simples y guías sobre cómo usar las diversas herramientas y editores en CoDeSys.

Cargado por

Amit Mishra
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

Manual de usuario para

Programación de PLC
con

CoDeSys 2.3
Copyright 1994, 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010
por 3S-Smart Software Solutions GmbH Todos los derechos reservados.

Hemos hecho todo lo posible para garantizar que esta documentación sea correcta y
completa. Sin embargo, dado que no es posible producir un texto absolutamente libre de
errores, no dude en enviarnos sus sugerencias y sugerencias para mejorarlo.

Marca
Intel es una marca comercial registrada y 80286, 80386, 80486, Pentium son marcas
comerciales de Intel Corporation.
Microsoft, MS y MS-DOS son marcas comerciales registradas, Windows e Intellisense
son marcas comerciales de Microsoft Corporation.

Editor
3S - Smart Software Solutions GmbH
Memminger Straße 151 D-87439
Kempten Tel. +49 831 5 40 31 - 0
Fax +49 831 5 40 31 – 50

Última actualización 28.10.2010

Versión del documento 6.0, CoDeSys V.2.3.9.24


Tabla de contenido

Contenido

1 A breve introducción a CoDeSys 1-1


1.1 ¿Qué es CoDeSys............................................................................................... 1-1
1.2 Descripción general de las funciones de CoDeSys....................................................................... 1-1
1.3 Descripción general de la documentación de usuario de CoDeSys........................................... 1-3

2 ¿Qué es qué en CoDeSys? 2-1


2.1 Componentes del proyecto... ....................................................................................... 2-1
2.2 Idiomas......................................................................................................... 2-9
2.2.1 Lista de instrucciones (IL)... .......................................................................................... 2-9
2.2.2 Texto estructurado (ST)... ....................................................................................... 2-11
2.2.3 Diagrama de funciones secuenciales (SFC)....................................................................... 2-16
2.2.4 Diagrama de bloques de funciones (FBD).......................................................................... 2-21
2.2.5 El Editor de Gráficos de Funciones Continuas (CFC).................................................... 2-21
2.2.6 Diagrama de escalera (LD)......................................................................................... 2-22
2.3 Depuración, funciones en línea............................................................................. 2-23
2.4 La norma..................................................................................................... 2-26

3 Escribimos un pequeño programa 3-1


3.1 Control de una unidad de semáforos... ...................................................................... 3-1
3.2 Visualización de una unidad de semáforo... ...................................................................... 3-11

4 Los componentes individuales 4-1


4.1 La ventana principal.............................................................................................. 4-1
4.2 Opciones de proyecto... ............................................................................................... 4-3
4.3 Gestión de proyectos............................................................................................. 4-22
4.4 Gestión de objetos en un proyecto........................................................................... 4-53
4.5 Funciones generales de edición.................................................................................. 4-61
4.6 Funciones generales en línea.................................................................................. 4-67
4.7 Configuración de la ventana... ................................................................................................ 4-83
4.8 Ayuda cuando la necesites... .................................................................................... 4-83

5 Editores en CoDeSys 5-1


5.1 Esto es para todos los editores........................................................................................... 5-1
5.2 Editor de declaraciones .............................................................................................. 5-3
5.2.1 Trabajar en el Editor de Declaraciones ...................................................................... 5-3
5.2.2 Editores de declaraciones en modo en línea ................................................................... 5-10
5.2.3 Instrucciones de Pragma en el Editor de Declaraciones.................................................... 5-11
5.3 Los editores de texto................................................................................................. 5-21
5.3.1 Trabajar en editores de texto ....................................................................................... 5-21
5.3.2 El editor de listas de instrucciones.................................................................................. 5-25
5.3.3 El editor de texto estructurado............................................................................ 5-26
5.4 Los Editores Gráficos........................................................................................... 5-26
5.4.1 Trabajar en editores gráficos ................................................................................. 5-26
5.4.2 El editor de diagramas de bloques de funciones................................................................... 5-30
5.4.3 El editor de escaleras.............................................................................................. 5-35
5.4.4 El editor de gráficos de funciones secuenciales................................................................ 5-41

CoDeSys V2.3 i
Tabla de contenido

5.4.5 El Editor de Gráficos de Funciones Continuas (CFC).................................................... 5-49

6 Los recursos 6-1


6.1 Descripción general de los recursos.............................................................................. 6-1
6.2 Variables globales, configuración de variables, marco de documento ............................. 6-2
6.2.1 Variables globales................................................................................................. 6-2
6.2.2 Configuración de variables........................................................................................ 6-6
6.2.3 Marco de documentos ............................................................................................... 6-7
6.3 Configuración de alarmas ........................................................................................... 6-8
6.3.1 Descripción general............................................................................................................ 6-8
6.3.2 Información general sobre alarmas, Términos............................................................... 6-9
6.3.3 Clases de alarma..................................................................................................... 6-10
6.3.4 Grupos de alarmas...................................................................................................... 6-13
6.3.5 Ahorro de alarmas ...................................................................................................... 6-15
6.3.6 Menú 'Extras': Ajustes....................................................................................... 6-16
6.4 Administrador de bibliotecas................................................................................................. 6-16
6.5 Registro..................................................................................................................... 6-18
6.6 Configuración del PLC.............................................................................................. 6-20
6.6.1 Descripción general............................................................................................................ 6-20
6.6.2 Trabajar en la configuración del PLC...................................................................... 6-21
6.6.3 Ajustes generales en la configuración del PLC........................................................ 6-23
6.6.4 Cuadro de diálogo de parámetros específicos personalizados...................................................................... 6-24
6.6.5 Configuración de un módulo de E/S.......................................................................... 6-25
6.6.6 Configuración de un canal ................................................................................ 6-28
6.6.7 Configuración de los módulos Profibus..................................................................... 6-29
6.6.8 Configuración de los módulos CANopen................................................................... 6-36
6.6.9 Configuración de un CanDevice (esclavo CANopen)............................................... 6-41
6.6.10 Configuración de los módulos DeviceNet.................................................................. 6-45
6.6.11 Configuración del PLC en modo en línea..................................................................... 6-49
6.6.12 Información de escaneo/estado/diagnóstico de hardware del PLC................................ 6-50
6.7 Configuración de tareas............................................................................................. 6-51
6.7.1 Descripción general............................................................................................................ 6-51
6.7.2 Trabajar en la configuración de tareas..................................................................... 6-52
6.7.3 Eventos del sistema................................................................................................... 6-55
6.7.4 Configuración de tareas en modo en línea.................................................................... 6-55
6.8 Gestor de relojes y recetas ............................................................................. 6-57
6.8.1 Descripción general............................................................................................................ 6-57
6.8.2 Creación de listas de seguimiento, recetas........................................................................... 6-59
6.8.3 Gestor de relojes y recetas en el modo en línea .............................................. 6-63
6.9 El rastro de muestreo........................................................................................... 6-64
6.9.1 Descripción general y configuración............................................................................... 6-64
6.9.2 Generación de un muestreo de trazas............................................................................ 6-66
6.9.3 Observación de la traza de muestreo .......................................................................... 6-67
6.9.4 'Extras' 'Guardar valores de seguimiento'................................................................................. 6-69
6.9.5 'Extras' 'Configuraciones de trazas externas'.............................................................. 6-69
6.10 Espacio de trabajo......................................................................................................... 6-70
6.11 Administrador de parámetros........................................................................................... 6-70
6.11.1 Descripción general, activación........................................................................................... 6-71
6.11.2 Descripción general del editor del administrador de parámetros......................................................... 6-72
6.11.3 Tipos y atributos de la lista de parámetros.................................................................. 6-73
6.11.4 Gestión de listas de parámetros................................................................................... 6-75
6.11.5 Edición de listas de parámetros........................................................................................ 6-76
6.11.6 Administrador de parámetros en modo en línea.................................................................. 6-78
6.11.7 Exportación / Importación de listas de parámetros....................................................................... 6-79

Ii CoDeSys V2.3
Tabla de contenido

6.12 Configuración de destino................................................................................................... 6-79


6.13 El .............................................................................................. PLC-Browser 6-80
6.13.1 Observaciones generales sobre el funcionamiento del PLC-Browser....................................... 6-80
6.13.2 Introducción de comandos en el PLC-Browser................................................................. 6-81
6.13.3 Uso de macros durante la entrada de comandos en PLC-Browser............................... 6-83
6.13.4 Otras opciones de PLC-Browser ............................................................................ 6-83
6.14 Herramientas.................................................................................................................. 6-84
6.14.1 Propiedades de los accesos directos de herramientas disponibles (propiedades de objetos)................................ 6-84
6.14.2 Gestión de accesos directos a herramientas................................................................................... 6-87
6.14.3 Preguntas frecuentes sobre las Herramientas................................................................ 6-88

7 ENI 7-1
7.1.1 ¿Qué es ENI........................................................................................................ 7-1
7.1.2 Condiciones previas para trabajar con una base de datos de proyectos ENI.................................. 7-1
7.1.3 Trabajar con la base de datos del proyecto ENI en CoDeSys......................................... 7-2
7.1.4 Categorías de objetos relativas a la base de datos del proyecto.......................................... 7-2

8 Interfaz DDE 8-1


8.1 Interfaz DDE del sistema de programación CoDeSys........................................ 8-1
8.2 Comunicación DDE con el servidor GatewayDDE........................................... 8-2

9 La gestión de licencias en CoDeSys 9-1


9.1 El Administrador de licencias........................................................................................ 9-1
9.1.1 Creación de una biblioteca con licencia en CoDeSys ............................................................. 9-1

10 APÉNDICE 10-1

Apéndice A: Operadores IEC y funciones adicionales de ampliación de normas 10-1


10.1 Operadores aritméticos.......................................................................................... 10-1
10.2 Operadores de cadena de bits............................................................................................. 10-4
10.3 Operadores de cambio de bits... .......................................................................................... 10-6
10.4 Operadores de selección........................................................................................... 10-8
10.5 Operadores de comparación....................................................................................... 10-11
10.6 Operadores de direcciones............................................................................................. 10-13
10.7 Operadores de llamadas............................................................................................... 10-14
10.8 Conversiones de tipos.............................................................................................. 10-14
10.9 Operadores numéricos............................................................................................. 10-20
10.10 Operador de inicialización......................................................................................... 10-24

Apéndice B: Operandos en CoDeSys 10-25


10.11 Constantes........................................................................................................... 10-25
10.12 Variables............................................................................................................ 10-27
10.13 Direcciones.......................................................................................................... 10-29
10.14 Funciones........................................................................................................... 10-30

Apéndice C: Tipos de datos en CoDeSys 10-31


10.15 Tipos de datos estándar........................................................................................... 10-31
10.16 Tipos de datos definidos............................................................................................. 10-33

Apéndice D: Las bibliotecas de CoDeSys 10-39


10.17 La biblioteca Standard.lib...................................................................................... 10-39
10.17.1 Funciones de cadena.................................................................................................. 10-39

CoDeSys V2.3 Iii


Tabla de contenido

10.17.2 Bloques de función biestables.................................................................................... 10-42


10.17.3 Disparador................................................................................................................ 10-44
10.17.4 Contador... ........................................................................................................... 10-45
10.17.5 Temporizador.................................................................................................................. 10-47
10.18 La biblioteca Util.lib ............................................................................................... 10-50
10.18.1 Conversión de BCD ................................................................................................ 10-50
10.18.2 Funciones de bits/bytes............................................................................................. 10-50
10.18.3 Funciones auxiliares matemáticas ......................................................................... 10-51
10.18.4 Controladores.......................................................................................................... 10-54
10.18.5 Generadores de señales.............................................................................................. 10-57
10.18.6 Manipuladores de funciones........................................................................................ 10-59
10.18.7 Procesamiento de valores analógicos................................................................................... 10-60
10.19 La biblioteca AnalyzationNew.lib........................................................................... 10-61
10.20 Bibliotecas del sistema CoDeSys................................................................................ 10-62

Apéndice E: Descripción general de los operadores y los módulos de biblioteca 10-63


10.21 Operadores en CoDeSys....................................................................................... 10-63
10.22 Elementos de Standard.lib:............................................................................. 10-66
10.23 Elementos de la ....................................................................................... Util.lib 10-66

Apéndice F: Línea de comandos/archivo de comandos 10-69


10.24 Comandos de línea de comandos ............................................................................... 10-69
10.25 Comandos del archivo de comandos (cmdfile.................................................................. 10-70

Apéndice G: Importación de Siemens 10-79


10.26 Importar desde un archivo de símbolos SEQ ......................................................................... 10-79
10.27 Importar desde un archivo de proyecto S5 ............................................................................. 10-80
10.28 Conversión de S5 a IEC 61131-3...........................................................................10-80

Apéndice H: Configuración de destino en detalle 10-85


10.29 Configuración en la plataforma de destino de la categoría................................................................. 10-85
10.29.1 Sistema de destino compatible con Intel 386, Categoría Plataforma de destino......................... 10-85
10.29.2 Sistema de destino Motorola 68K, Categoría Plataforma de destino.................................... 10-86
10.29.3 Sistema de destino Infineon C16x, Categoría Plataforma de destino................................... 10-87
10.29.4 Sistemas de destino Intel StrongARM y Power PC, Categoría Plataforma de destino..... 10-88
10.29.5 Sistema de destino MIPS, Categoría Plataforma de destino................................................ 10-89
10.29.6 Sistema de destino «Hitachi SH», Categoría Plataforma de destino....................................... 10-90
10.29.7 Sistema de destino «compatible con 8051», categoría Plataforma de destino ............................. 10-91
10.29.8 Sistema de destino 'TriCore', Categoría Plataforma de destino .......................................... 10-91
10.30 Configuración de destino para el diseño de memoria de categoría.................................................... 10-92
10.31 Configuración de destino en la categoría General.................................................................. 10-94
10.32 Configuración de destino en la categoría Funcionalidad de red.............................................. 10-96
10.33 Configuración de destino en la visualización de categorías.......................................................... 10-97

Apéndice I: Uso del teclado 10-99


10.34 Uso del teclado ................................................................................................ 10-99
10.35 Combinaciones de teclas.............................................................................................. 10-99

Apéndice J: Recomendaciones sobre la nomenclatura de los identificadores 10-103


10.36 Nomenclatura de identificadores .......................................................................................... 10-103
10.37 Identificadores de variables (nombres de variables)........................................................... 10-103
10.38 Identificadores para tipos de datos definidos por el usuario (DUT)..................................................... 10-105

Iv CoDeSys V2.3
Tabla de contenido

10.39 Identificadores de funciones, bloques de funciones, programas (POU)................................. 10-105


10.40 Identificadores para visualizaciones............................................................................... 10-106

Apéndice K: Errores y advertencias del compilador 10-107


10.41 Advertencias............................................................................................................ 10-107
10.42 Errores................................................................................................................. 10-113

11 Índice CLI

CoDeSys V2.3 v
Tabla de contenido

VI CoDeSys V2.3
1 - Una breve introducción a CoDeSys

1 Breve introducción a CoDeSys

1.1 ¿Qué es CoDeSys?


CoDeSys es un entorno de desarrollo completo para su PLC. (CoDeSys son las siglas de Sistema de
Desarrollo Controlado).
CoDeSys pone a disposición del programador de PLC un enfoque sencillo del potente lenguaje IEC. El
uso de los editores y las funciones de depuración se basa en los entornos de programas de desarrollo
probados de lenguajes de programación avanzados (como Visual C++).

1.2 Descripción general de las funciones de CoDeSys...


¿Cómo se estructura un proyecto?
Un proyecto se coloca en un archivo con el nombre del proyecto. La primera POU (Unidad de
Organización del Programa) creada en un nuevo proyecto se denominará automáticamente PLC_PRG.
El proceso comienza aquí (de acuerdo con la función principal en un programa C), y se puede acceder
a otras POU desde el mismo punto (programas, bloques de funciones y funciones).
Una vez que haya definido una configuración de tareas, ya no es necesario crear un programa llamado
PLC_PRG. Encontrará más información sobre esto en el capítulo Configuración de tareas.
Hay diferentes tipos de objetos en un proyecto: POU, tipos de datos, elementos de visualización
(visualizaciones) y recursos.
El Organizador de objetos contiene una lista de todos los objetos del proyecto.

¿Cómo configuro mi proyecto?


En primer lugar, debe configurar su PLC para comprobar la precisión de las direcciones utilizadas en el
proyecto.
A continuación, puede crear las POU necesarias para resolver su problema.
Ahora puede programar las POU que necesite en los idiomas deseados.
Una vez completada la programación, puede compilar el proyecto y eliminar los errores si los hubiera.

¿Cómo puedo probar mi proyecto?


Una vez que se hayan eliminado todos los errores, active la simulación, inicie sesión en el PLC
simulado y "cargue" su proyecto en el PLC. Ahora estás en modo Online.
Ahora abra la ventana con la configuración de su PLC y pruebe su proyecto para ver la secuencia correcta. Para
ello, introduzca manualmente las variables de entrada y observe si las salidas son las esperadas. También
puede observar la secuencia de valores de las variables locales en las POU. En el Gestor de relojes y recetas
Puede configurar los registros de datos cuyos valores desea examinar.

Depuración
En caso de un error de programación, puede establecer puntos de interrupción. Si el proceso se
detiene en un punto de interrupción de este tipo, puede examinar los valores de todas las variables del
proyecto en este momento. Al trabajar secuencialmente (un solo paso), puede verificar la corrección
lógica de su programa.
Funciones adicionales en línea
Otras funciones de depuración:
Puede establecer variables de programa y entradas y salidas en determinados valores.

CoDeSys V2.3 1-1


Descripción general de las funciones de CoDeSys...

Puede utilizar el control de flujo para comprobar qué líneas de programa se han ejecutado.

Un registro registra las operaciones, las acciones del usuario y los procesos internos durante una
sesión en línea en orden cronológico.
Si se activa en la configuración de destino, el seguimiento de muestreo le permite rastrear y mostrar
el curso real de las variables durante un período prolongado de tiempo.
También una función específica del objetivo es el PLC Browser, que puede servir para solicitar cierta
información del PLC.
Una vez que el proyecto se ha configurado y probado, se puede cargar en el hardware y probar
también. Estarán disponibles las mismas funciones en línea que utilizó con la simulación.

Características adicionales de CoDeSys


Todo el proyecto se puede documentar o exportar a un archivo de texto en cualquier momento.
Para fines de comunicación, CoDeSys tiene una interfaz simbólica y una interfaz DDE. Un servidor de
puerta de enlace más un servidor OPC y un servidor DDE son componentes del paquete de
instalación estándar de CoDeSys.
El uso de la configuración de destino adecuada, que se puede cargar con la ayuda de un archivo de destino
(paquete de soporte de destino) permite cargar el mismo proyecto de CoDeSys en varios sistemas de destino.

Es posible que las variables globales de red y un administrador de parámetros estén disponibles, si están
activados por la configuración de destino actual, para el intercambio de datos dentro de una red de controladores.

ENI: La "interfaz de ingeniería" se puede utilizar para acceder a cualquier programa de gestión de código fuente
deseado a través del servidor ENI, que se ejecuta como un proceso independiente. Las POU de CoDeSys y los
archivos de compilación se pueden archivar en esa base de datos y, por lo tanto, también son accesibles para
otros clientes del servidor ENI. Esto permite la operación multiusuario durante el trabajo en un proyecto CoDeSys,
proporciona un conjunto de datos común para diferentes herramientas además de CoDeSys y hace posible una
gestión de versiones.
Herramientas: Esta funcionalidad también depende del objetivo y permite iniciar archivos ejecutables
específicos del objetivo en un proyecto CoDeSys. Además de eso, se pueden definir archivos, que
deben cargarse en el controlador. Las conexiones a herramientas externas pueden predefinirse en el
archivo de destino y/o insertarse en el árbol de recursos del proyecto.
A visualización de CoDeSys se puede procesar específicamente para que esté disponible como visualización web
y/o Visualización de objetivos. Esto permite ejecutar y ver la visualización a través de Internet o en un
monitor PLC.

1-2 CoDeSys V2.3


1 - Una breve introducción a CoDeSys

1.3 Resumen de la documentación de usuario de CoDeSys


Módulo documento del servidor ENI
Nombre del archivo

Sistema de Ayuda manual y en línea a través del menú CoDeSys_V23_E.pdf primeros


programación CoDeSys de ayuda en el sistema de programación pasos con CoDeSys V23.pdf
Primeros pasos con el sistema de
programación CoDeSys (ejemplo)

Servidor de puerta de enlace Concepto, instalación e interfaz de usuario; Puerta de enlace Manual.pdf
Ayuda en línea para la interfaz de usuario a
través del menú Gateway (se puede abrir con
el ratón, haga clic en el símbolo de la puerta
de enlace en la bandeja del sistema)
Servidor OPC OPC-Server V2.0, Instalación y uso OPC_20_How_to_use_E.pdf
Visualización de Manual para la visualización de CoDeSys incl. CoDeSys_Visu_V23_E.pdf
CoDeSys CoDeSys HMI, Visualización de Destino y
Web
Movimiento suave Cómo utilizarlo, descripción de los principales CoDeSys_SoftMotion_V23_E.pdf
módulos de la biblioteca de SoftMotion
Bibliotheken Standard.lib y Util.lib se describen en el <SysLib-Name>.pdf
manual disponible. CoDeSys_V23_E.pdf
Para cada una de las bibliotecas del sistema
CoDeSys hay un documento <nombre de
biblioteca>.pdf bibliotecas de SoftMotion:
consulte la documentación de SoftMotion.
Contenido del
Instalación y configuración de los Servidores EniServerQuickstart_E.pdf
ENI para el control de código fuente de un CoDeSys_V23_E.pdf
proyecto CoDeSys en una base de datos
externa. Configuración de ENI en CoDeSys:
consulte el manual disponible.
ENI Admin, ENI Control y ENI Explorer:
consulte la ayuda en línea de referencia.

CoDeSys V2.3 1-3


Descripción general de la documentación de usuario de CoDeSys

1-4 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

2 ¿Qué es qué en CoDeSys?

2.1 Componentes del proyecto...


Proyecto
Un proyecto contiene todos los objetos de un programa PLC. Un proyecto se guarda en un archivo con
el nombre del proyecto. En un proyecto se incluyen los siguientes objetos:
POU (unidades organizativas del programa), tipos de datos, visualizaciones, recursos y bibliotecas.

FOR (Programa de Unidad Organizativa)


Las funciones, los bloques de funciones y los programas son POU que se pueden complementar con acciones.
Cada POU consta de una parte de declaración y un cuerpo. El cuerpo está escrito en uno de los
lenguajes de programación IEC que incluyen IL, ST, SFC, FBD, LD o CFC.
CoDeSys es compatible con todas las POU estándar IEC. Si desea utilizar estas POU en el proyecto,
debe incluir la biblioteca standard.lib en el proyecto.
Los POU pueden llamar a otros POU. Sin embargo, no se permiten recursivas.

Función
Una función es una POU, que produce exactamente un elemento de datos (que puede constar de
varios elementos, como campos o estructuras) cuando se procesa, y cuya llamada en lenguajes
textuales puede ocurrir como un operador en expresiones.
Al declarar una función, no olvide que la función debe recibir un tipo. Esto significa que, después del
nombre de la función, debe escribir dos puntos seguidos de un tipo. Véase el Apéndice J:
Recomendaciones sobre la denominación.
A declaración de función correcta puede tener el siguiente aspecto:
FUNCIÓN Fct: INT
Además, se debe asignar un resultado a la función. Esto significa que el nombre de la función se utiliza
como variable de salida.
A declaración de función comienza con la palabra clave FUNCTION.
En IL, una llamada de función solo se puede colocar dentro de las acciones de un paso o dentro de una transición.

En ST, una llamada a una función se puede utilizar como operando en una expresión.
Ejemplo en IL de una función que toma tres variables de entrada y devuelve el producto de las dos
primeras dividido por la tercera:

CoDeSys V2.3 2-1


Componentes del proyecto...

Ejemplo de una función en IL

Llamar a una función:


La llamada de una función en ST puede aparecer como un operando en expresiones.
En SFC, una llamada de función solo puede tener lugar dentro de un paso o una transición.
Nota: CoDeSys permite el uso de variables globales dentro de una función. Esto se desvía intencionadamente del
estándar IEC61131-3, que prescribe que el valor devuelto de una función solo será modificado por los parámetros
de entrada. Por lo tanto, la diferencia entre las funciones y los programas es simplemente, que las funciones
devuelven solo un valor de retorno y que sus parámetros y valores de retorno se manejan a través de la pila.

Ejemplos para llamar a una función.


en IL:

LD 7 Fct
2,4 ST
Resultado

en ST:

Resultado := Fct(7, 2, 4);

en FBD:

Atención: Si una variable local se declara como RETAIN en una función, ¡esto no tiene ningún efecto! La variable
no se escribirá en el área Retener !

Nota: Los siguientes nombres de funciones de comprobación están reservados para el uso descrito:
- Si defines una función en tu proyecto con el nombre CheckBounds, puedes usarla para comprobar los
desbordamientos de rango en tu proyecto. El nombre de la función está definido y solo puede tener este
identificador. Para una descripción más detallada, consulte el capítulo 10.1, Operadores aritméticos, DIV.
- Si define funciones en su proyecto con los nombres CheckDivByte, CheckDivWord,
CheckDivDWord resp. CheckDivReal, puede usarlos para verificar el valor del divisor si usa el
operador DIV, por ejemplo, para evitar una división por 0.
- Si define funciones con los nombres CheckRangeSigned y CheckRangeUnsigned, se puede
interceptar el exceso de rango de las variables declaradas con tipos de subrango (consulte el capítulo
10.16, Tipos de datos).

2-2 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Bloque de funciones
Un bloque de función es una POU que proporciona uno o más valores durante el procedimiento. A
diferencia de una función, un bloque de funciones no proporciona ningún valor devuelto.
Una declaración de bloque de funciones comienza con la palabra clave FUNCTION_BLOCK. Respecto
Apéndice J: Apéndice J: Recomendaciones sobre la nomenclatura.
Se pueden crear reproducciones o instancias (copias) de un bloque de función.
Ejemplo de un bloque de funciones en IL

Ejemplo en IL de un bloque de funciones con dos variables de entrada y dos variables de salida. Un producto es el
producto de los dos insumos, el otro una comparación de igualdad:

Instancias de bloques de funciones


Se pueden crear reproducciones o instancias (copias) de un bloque de función.
Cada instancia posee su propio identificador (el nombre de la instancia) y una estructura de datos que
contiene sus entradas, salidas y variables internas. Las instancias se declaran local o globalmente
como variables, mientras que el nombre del bloque de funciones se indica como el tipo de identificador.
Respecto Apéndice J: Apéndice J: Recomendaciones sobre la nomenclatura.
Ejemplo de una instancia con el nombre INSTANCE del bloque de funciones FUB:
fubinstancia: FUB;
Los bloques de funciones siempre se llaman a través de las instancias descritas anteriormente.
Solo se puede acceder a los parámetros de entrada y salida desde fuera de una instancia de bloque de
funciones, no a sus variables internas.
Ejemplo de acceso a una variable de entrada

El módulo de función FB tiene una variable de entrada in1 de tipo INT.


PROGRAMA prog VAR

fbinst1:fb;
END_VAR LD 17

ST fbinst1.iIn1 CAL fbinst1

END_PROGRAM

CoDeSys V2.3 2-3


Componentes del proyecto...

Las partes de declaración de los bloques de funciones y los programas pueden contener declaraciones
de instancia. Las declaraciones de instancia no están permitidas en las funciones.
El acceso a una instancia de bloque de funciones se limita a la POU en la que se declaró, a menos que
se haya declarado globalmente.
El nombre de instancia de una instancia de bloque de funciones se puede utilizar como entrada para
una función o un bloque de funciones.
Nota: Todos los valores se conservan después de procesar un bloque de función hasta el siguiente en procesar. Por lo tanto, las
llamadas a bloques de funciones con los mismos argumentos no siempre devuelven los mismos valores de salida.
Nota: Si al menos una de las variables del bloque de funciones es una variable de retención, la instancia total se
almacena en el área de retención.

Llamar a un bloque de funciones


Se puede acceder a las variables de entrada y salida de un bloque de funciones desde otra POU configurando una
instancia del bloque de funciones y especificando la variable deseada utilizando la siguiente sintaxis:

<Nombre de la instancia>.<Nombre de la variable>


Asignación de parámetros en la llamada:
Si se desea fijar los parámetros de entrada y/o salida cuando se llama al bloque de funciones, se puede hacer en los
lenguajes de texto IL y ST asignando valores a los parámetros después del nombre de instancia del bloque de
funciones entre paréntesis (para los parámetros de entrada esta asignación se realiza mediante ":=" al igual que con
la inicialización de variables en la posición de declaración, para los parámetros de salida se debe utilizar "=>").

Si la instancia se inserta a través del asistente de entrada (<F2>) con la opción Con argumentos en
la ventana de implementación de una POU ST o IL, se mostrará automáticamente de acuerdo con esta
sintaxis con todos sus parámetros. Pero no necesariamente debe asignar estos parámetros.
Ejemplo:
FBINST es una variable local de tipo bloque de función, que contiene la variable de entrada xx y la
variable de salida yy. Cuando FBINST se inserta en un programa ST a través del asistente de entrada,
la llamada se mostrará de la siguiente manera: FBINST1(xx:= , yy=> );
InOutVariables en la llamada:
Tenga en cuenta que las InOutVariables (VAR_IN_OUT) de un bloque de función se entregan como
punteros. Por esta razón, en una llamada de un bloque de funciones, no se pueden asignar constantes
a VAR_IN_OUTs y no hay acceso de lectura o escritura desde el exterior a ellas.
Ejemplo

Llamar a una variable VAR_IN_OUT iInOut1 del bloque de funciones fubo en un módulo ST:
VAR fuboinst:fubo; iVar1:int;

END_VAR
iVar1:=2; fuboinst(iInOut1:=iVar1);

no permitido en este caso: "fuboinst(iInOut1:=2);" o "fuboinst.iInOut1:=2;"

Ejemplos de llamada al bloque de funciones FUB:

Bloque de función FUB, véase más arriba, capítulo 'Bloque de funciones'


El resultado de la multiplicación se guarda en la variable ERG y el resultado de la comparación se
guarda en QUAD. Se declara una instancia de FUB con el nombre INSTANCE.
Así es como se llama a la instancia de un bloque de funciones en IL :

2-4 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Así es como se llama a la instancia de un bloque de funciones en ST (la parte de declaración es la misma que con IL)

Así es como se llama a la instancia de un bloque de funciones en FBD (la parte de declaración es la misma que con IL)

En SFC, las llamadas a bloques de funciones solo pueden tener lugar en pasos.

Programa
Un programa es una POU que devuelve varios valores durante el funcionamiento. Los programas son reconocidos a
nivel mundial a lo largo del proyecto. Todos los valores se conservan desde la última vez que se ejecutó el programa
hasta la siguiente.
Se puede llamar a los programas. No se permite una llamada de programa en una función. Tampoco
hay instancias de programas.
Si una POU llama a un programa, y si por lo tanto se cambian los valores del programa, estos cambios se
conservan la próxima vez que se llama al programa, incluso si el programa ha sido llamado desde otro
Para.
Esto es diferente de llamar a un bloque de funciones. Allí solo se cambian los valores en la instancia
dada de un bloque de funciones.

CoDeSys V2.3 2-5


Componentes del proyecto...

Por lo tanto, estos cambios solo desempeñan un papel cuando se llama a la misma instancia.
Ejemplo de un programa

Una declaración de programa comienza con la palabra clave PROGRAM y termina con
END_PROGRAM. Respecto Apéndice J: Apéndice J: Recomendaciones sobre la nomenclatura.
Si se desea ajustar los parámetros de entrada y/o salida cuando se llama al programa, se puede hacer en
los lenguajes de texto IL y ST asignando valores a los parámetros después del nombre del programa entre
paréntesis (para los parámetros de entrada esta asignación se realiza utilizando ":= " al igual que con la
inicialización de variables en la posición de declaración, para los parámetros de salida se debe utilizar "=>").

Si el programa se inserta a través del asistente de entrada (<F2>) con la opción Con argumentos en
la ventana de implementación de una POU ST o IL, se mostrará automáticamente de acuerdo con esta
sintaxis con todos sus parámetros. Pero no necesariamente debe asignar estos parámetros.
Ejemplos de llamadas de programa:

En IL:
CAL PRGexample2 LD PRGexample2.out_var

ST ERG o con la asignación de los parámetros (asistente de entrada "Con argumentos", ver arriba): CAL
PRGexample2(in_var:=33, out_var=>erg )

En ST:
PRGejemplo2; Erg := PRGexample2.out_var; o con la asignación de los parámetros (asistente de entrada
"Con argumentos", ver arriba): PRGexample2(in_var:=33, out_var=>erg );

En FBD:

Ejemplo de una posible secuencia de llamada para PLC_PRG:

Vea el ejemplo del programa PRG que se muestra en la imagen de la parte superior de este capítulo:
LD 0 ST PRGexample.PAR (*La configuración predeterminada para
PAR es 0*) Llamada CAL IL (*ERG en la llamada IL da como
resultado 1*) Llamada CAL ST (*ERG en la llamada ST da como
resultado 2*) Llamada CAL FBD (*ERG en la llamada FBD da como
resultado 3*)
Si la variable PAR del ejemplo PRG del programa es inicializada por un programa principal con 0, y luego se
llama a uno tras otro programa con llamadas al programa mencionadas anteriormente, entonces el resultado
ERG en los programas tendrá los valores 1, 2 y 3. Si se intercambia la secuencia de las llamadas, los valores
de los parámetros de resultado dados también cambian de manera correspondiente.

2-6 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

PLC_PRG
El PLC_PRG es una POU especial predefinida. Cada proyecto debe contener este programa especial.
Esta POU se llama exactamente una vez por ciclo de control.
La primera vez que se utiliza el comando 'Proyecto' 'Agregar objeto' después de que se haya creado
un nuevo proyecto, la entrada predeterminada en el cuadro de diálogo POU será una POU llamada
PLC_PRG del tipo de programa. ¡No debe cambiar esta configuración predeterminada!
Si se han definido tareas, es posible que el proyecto no contenga ninguna PLC_PRG, ya que en este
caso la secuencia del procedimiento depende de la asignación de tareas.
Atención: ¡No elimine ni cambie el nombre de la POU PLC_PRG (suponiendo que no esté utilizando una
configuración de tareas)! PLC_PRG es generalmente el programa principal en un programa de una sola tarea.

Acción
Las acciones se pueden definir y asignar a bloques de funciones y programas ('Proyecto', 'Añadir
acción'). La acción representa una implementación adicional que puede crearse completamente en otro
idioma como la implementación "normal". A cada acción se le asigna un nombre.
Una acción trabaja con los datos del bloque de funciones o programa al que pertenece. La acción
utiliza las mismas variables de entrada/salida y variables locales que utiliza la implementación "normal".
Ejemplo de una acción de un bloque de funciones

En el ejemplo dado, al llamar al bloque de función Contador aumenta o disminuye la variable de salida
"out", dependiendo del valor de la variable de entrada "in". Al llamar a la acción Reset del bloque de
funciones, la variable de salida se pone a cero. La misma variable "out" se escribe en ambos casos.
Llamar a una acción:
Se llama a una acción con <Program_name>.<Action_name> o <Instance_name>.<Action_name>.
¡Respete la notación en FBD (vea el ejemplo a continuación)! Si se requiere llamar la acción dentro de
su propio bloque, simplemente se usa el nombre de la acción en los editores de texto y en la forma
gráfica se llama al bloque de funciones sin información de instancia.
Ejemplos de llamadas de la acción descrita anteriormente desde otra POU:

Declaración para todos los ejemplos:


PROGRAMA PLC_PRG
VAR Inst : Contra;
END_VAR
Llamada a la acción 'Reset' en otra POU, que está programada en IL:
CAL Inst.Reset(In := FALSE) LD Inst.out
ST ERG

CoDeSys V2.3 2-7


Componentes del proyecto...

Llamada a la acción 'Reset' en otra POU, que está programada en ST:


Inst.Reset(En := FALSE); Erg := Inst.out;

Llamada a la acción 'Reset' en otra POU, que está programada en FBD:

Nota: Las acciones juegan un papel importante en los bloques en los gráficos de funciones secuenciales, consulte Gráfico de
funciones secuenciales. La norma IEC no reconoce acciones distintas de las acciones del diagrama de funciones secuenciales.

Recursos
Necesita los recursos para configurar y organizar el proyecto y para realizar un seguimiento de los valores de las variables:
Variables globales que se pueden utilizar en todo el proyecto o red
Administrador de bibliotecas para agregar bibliotecas al proyecto
Registro para registrar las acciones durante una sesión en línea
Configuración de alarmas para la configuración de la gestión de alarmas en el proyecto
Configuración de PLC para configurar su hardware
Configuración de tareas para guiar el programa a través de las tareas
Administrador de inspecciones y recetas para mostrar los valores de las variables y establecer los valores de las variables predeterminados

Configuración de destino para la selección y, si es necesario, la configuración final del sistema de destino
Espacio de trabajo como imagen de las opciones del proyecto
Dependiendo del sistema de destino y de la configuración de destino realizada en CoDeSys, los
siguientes recursos también pueden estar disponibles en su proyecto:
Traza de muestreo para la visualización gráfica de los valores de las variables
Gestor de parámetros para el intercambio de datos con otros controladores de una red
PLC-Browser como monitor controlador
Herramientas (disponibilidad en función del objetivo) para llamar a programas de herramientas externas desde CoDeSys
Funcionalidad SoftMotion (debido a la licencia) con CNC-Editor (lista de programas CNC) y CAM-Editor

Bibliotecas
Puede incluir en el proyecto una serie de bibliotecas cuyas POU, tipos de datos y variables globales puede
utilizar al igual que las variables definidas por el usuario. Las bibliotecas standard.lib y util.lib son partes estándar
del programa y están siempre a su disposición. Véase el capítulo 6.4 "Administrador de bibliotecas".

Tipos de datos
Junto con los tipos de datos estándar, el usuario puede definir sus propios tipos de datos. Se pueden
crear estructuras, tipos de enumeración y referencias.
Véase el Apéndice C: «Tipos de datos».

Visualización
CoDeSys proporciona visualizaciones para que pueda mostrar las variables de su proyecto. Puede trazar
elementos geométricos fuera de línea con la ayuda de la visualización. En el modo en línea, estos pueden
cambiar su salida de formulario/color/texto en respuesta a los valores de variable especificados.
Una visualización se puede utilizar como una interfaz operativa pura para un PLC con CoDeSys HMI o como una
visualización web o una visualización de objetivos que se ejecuta a través de Internet o directamente en el PLC.

Consulte para obtener más detalles en el manual de usuario de la visualización de CoDeSys.

2-8 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

2.2 Idiomas...
CoDeSys es compatible con todos los lenguajes descritos por el estándar IEC-61131:
Lenguajes textuales:
Lista de instrucciones (IL)
Texto estructurado (ST)
Lenguajes Gráficos:
Gráfico de funciones secuenciales (SFC)
Diagrama de bloques de funciones (FBD)
Diagrama de escalera (LD)
Además, está disponible, basado en el Diagrama de Bloques de Funciones, el Editor de Gráficos de
Funciones Continuas (CFC).

2.2.1 Lista de instrucciones (IL)...


Una lista de instrucciones (IL) consta de una serie de instrucciones. Cada instrucción comienza en una
nueva línea y contiene un operador y, dependiendo del tipo de operación, uno o más operandos
separados por comas.
Delante de una instrucción puede haber una marca de identificación (etiqueta) seguida de dos puntos (:).
Un comentario debe ser el último elemento de una línea. Se pueden insertar líneas vacías entre las instrucciones.

Ejemplo:
LD 17 ST pelusa (* comentario *)

GE 5 JMPC siguiente LD idword EQ istruct.sdword STN prueba siguiente:

Modificadores y operadores en IL
En el lenguaje IL se pueden utilizar los siguientes operadores y modificadores.
Modificadores:

• C con JMP, CAL, RET: La instrucción solo se ejecuta si el resultado de la


expresión anterior es TRUE.
• N con JMPC, CALC, La instrucción solo se ejecuta entonces si el resultado RETC:
de la expresión anterior es FALSE.
• N de lo contrario: Negación del operando (no del acumulador)

A continuación encontrará una tabla de todos los operadores en IL con sus posibles modificadores y el significado correspondiente:

Significado de los modificadores de operador

LD N Hacer que el resultado actual sea igual al operando


C N Guarde el resultado actual en la posición del operando
S A continuación, coloque el operando booleano exactamente en
TRUE si el resultado actual es TRUE

CoDeSys V2.3 2-9


Idiomas...

R A continuación, coloque el operando booleano exactamente en


FALSE si el resultado actual es TRUE
Y N,( Bit a bit AND
O N,( Bit a bit OR
XOR N,( Exclusivo bit a bit OR
AGREGAR ( Adición
SUB ( Sustracción
MUL ( Multiplicación
DIV ( División
GT ( >
GE ( >=
Ecualizador ( =
NE ( <>
LE ( <=
LT ( <
JMP CN Ir a la etiqueta
CAL CN Programa de llamada o bloque de función o
RET CN Salga de POU y vuelva a llamar.
) Evaluar la operación diferida

Haga clic aquí para obtener una lista de todos los operadores de IEC.
Ejemplo de un programa IL mientras se usan algunos modificadores:

LD TRUE (*cargar TRUE en el acumulador*)


ANDN BOOL1 (*ejecutar AND con el valor negado de la variable BOOL1*)
Marca JMPC (*si el resultado fue VERDADERO, entonces salta a la etiqueta "marca"*)

LDN BOOL2 (*guardar el valor negado de *)


C ERGIO (*BOOL2 en ERG*)
etiqueta:
LD BOOL2 (*guardar el valor de *)
ST ERG *BOOL2 en ERG*)

También es posible en IL poner paréntesis después de una operación. El valor del paréntesis se
considera entonces como un operando.
Por ejemplo:
LD 2 MUL 2 ADD 3 Erg

Este es el valor de Erg 7. Sin embargo, si se ponen paréntesis:

2-10 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

LD 2 MUL (2 SUMAR 3 ) ST Erg

el valor resultante para Erg es 10, la operación MUL solo se evalúa entonces si se llega a ")"; como
operando para MUL 5 se calcula a continuación.

2.2.2 Texto estructurado (ST)...


El Texto Estructurado consiste en una serie de instrucciones que, según lo determinado en los
lenguajes de alto nivel, ("IF.. ENTONCES.. ELSE") o en bucles (WHILE.. DO) puede ser ejecutado.
Ejemplo:
IF valor < 7 THEN WHILE valor < 8 valor DO:=valor+1;

END_WHILE; END_IF;

Expresiones
Una expresión es una construcción que devuelve un valor después de su evaluación.
Las expresiones se componen de operadores y operandos. Un operando puede ser una constante, una
variable, una llamada a una función u otra expresión.

Valoración de expresiones
La evaluación de la expresión se lleva a cabo mediante el procesamiento de los operadores de acuerdo
con ciertas reglas vinculantes. El operador con el enlace más fuerte se procesa primero, luego el
operador con el siguiente enlace más fuerte, etc., hasta que se hayan procesado todos los operadores.
Los operadores con la misma fuerza de unión se procesan de izquierda a derecha.
A continuación encontrará una tabla de los operadores ST en orden de su fuerza de unión:

Operación Símbolo Fuerza de unión

Poner entre paréntesis (expresión) La unión más fuerte

Llamada a la función Nombre de la función


(lista de parámetros)

Exponenciación EXPT
Negar -
Construcción de complementos
NO
Multiplicar *
Dividir /
Módulo MOD
Agregar +
Restar -

Comparar <,>,<=,>=
Igual a =
No es igual a <>
Booleano AND Y
XOR booleano XOR

CoDeSys V2.3 2-11


Idiomas...

Booleano OR O Encuadernación más débil

Existen las siguientes instrucciones en ST, dispuestas en una tabla junto con un ejemplo:

Ejemplo de tipo de instrucción

Tarea A:=B; CV := CV + 1; C:=SIN(X);


Llamar a un bloque de funciones y CMD_TMR(IN := %IX5, PT := 300);
utilización de la salida FB R:=CMD_TMR. Q
DEVOLUCIÓN DEVOLUCIÓN;
SI D: = B * B;
SI D<0.0 ENTONCES
C:=A;
ELSIF D=0.0 ENTONCES
C:=B;
MÁS
C:=D;
END_IF;
CASO CASO INT1 DE
1: BOOL1 := VERDADERO;
2: BOOL2 := VERDADERO;
MÁS
BOOL1 := FALSO;
BOOL2 := FALSO;
END_CASE;
PARA J:=101;
PARA I:=1 A 100 POR 2 DO
SI ARR[I] = 70 ENTONCES
J:=I;
SALIDA;
END_IF;
END_FOR;
MIENTRAS J:=1;
MIENTRAS QUE J<= 100 Y ARR[J] <> 70
J:=J+2;
END_WHILE;
REPETIR J:=-1;
REPETIR
J:=J+2;
HASTA J= 101 O ARR[J] = 70
END_REPEAT;
SALIDA SALIDA;
Instrucción vacía ;

2-12 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Operador de asignación
En el lado izquierdo de una asignación hay un operando (variable, dirección) al que se le asigna el
valor de la expresión en el lado derecho con el operador de asignación :=
Ejemplo:
Var1 := Var2 * 10;
Después de completar esta línea, Var1 tiene el valor diez veces mayor de Var2.

Llamar a bloques de función en ST


Se llama a un bloque de función en ST escribiendo el nombre de la instancia del bloque de función y, a continuación,
asignando los valores de los parámetros entre paréntesis. En el ejemplo siguiente se llama a un temporizador con
asignaciones para los parámetros IN y PT. A continuación, la variable de resultado Q se asigna a la variable A.

La variable de resultado, como en IL, se direcciona con el nombre del bloque de funciones, un punto
siguiente y el nombre de la variable:
CMD_TMR(IN := %IX5, PT := 300); R:=CMD_TMR. Q

Instrucción RETURN
La instrucción RETURN se puede utilizar para dejar una POU, por ejemplo, dependiendo de una condición

Instrucción IF
Con la instrucción IF se puede comprobar una condición y, dependiendo de esta condición, ejecutar
instrucciones.
Sintaxis:
SI <Boolean_expression1> ENTONCES
<IF_instructions>
{ELSIF <Boolean_expression2> ENTONCES.}
<ELSIF_instructions1>. .

ELSIF <Boolean_expression n> ENTONCES


<ELSIF_instructions N-1>
MÁS
<ELSE_instructions>}
END_IF;
La parte entre llaves {} es opcional.
Si el <Boolean_expression1> devuelve TRUE, solo se ejecutan los <IF_Instructions> y ninguna de las
otras instrucciones.
De lo contrario, las expresiones booleanas, que comienzan con <Boolean_expression2>, se evalúan
una tras otra hasta que una de las expresiones devuelve TRUE. A continuación, solo se evalúan las
instrucciones después de esta expresión booleana y antes de la siguiente ELSE o ELSIF.
Si ninguna de las expresiones booleanas produce TRUE, solo se evalúan los <ELSE_instructions>.
Ejemplo:
SI TEMP<17 ENTONCES
heating_on := VERDADERO;
ELSE heating_on := FALSE;
END_IF;
Aquí la calefacción se enciende cuando la temperatura desciende por debajo de los 17 grados. De lo
contrario, permanece apagado.

CoDeSys V2.3 2-13


Idiomas...

Instrucción CASE
Con las instrucciones CASE se pueden combinar varias instrucciones condicionadas con la misma
variable de condición en una construcción.
Sintaxis:
CASO <Var1> DE
<Valor1>: <Instrucción 1> <Valor2>: <Instrucción 2>
<Valor3, Valor4, Valor5>: <Instrucción 3> <Valor6 ..
Valor10>: <Instrucción 4> ...

<Valor n>: <Instrucción n> ELSE <Instrucción ELSE> END_CASE;

Una instrucción CASE se procesa de acuerdo con el siguiente modelo:


Si la variable de <Var1> tiene el valor <Valor i>, se ejecuta la instrucción <Instrucción i>.
Si <Var 1> no tiene ninguno de los valores indicados, se ejecuta la instrucción <ELSE>.
Si se va a ejecutar la misma instrucción para varios valores de las variables, entonces se pueden
escribir estos valores uno tras otro separados por comas, y así condicionar la ejecución común.
Si se va a ejecutar la misma instrucción para un rango de valores de una variable, se puede escribir el
valor inicial y el valor final separados por dos puntos uno tras otro. Así se puede condicionar la
condición común.
Ejemplo:
CASO INT1 DE 1, 5: BOOL1 := VERDADERO; BOOL3 := FALSO; 2: BOOL2 := FALSO; BOOL3 := VERDADERO; 10..20:
BOOL1 := VERDADERO; BOOL3:= VERDADERO; ELSE BOOL1 := NO BOOL1; BOOL2 := BOOL1 O BOOL2; END_CASE;

Bucle FOR
Con el bucle FOR se pueden programar procesos repetidos.
Sintaxis:
INT_Var :INT;
PARA <INT_Var> := <INIT_VALUE> A <END_VALUE> {BY <Tamaño del paso>} DO
<Instrucciones>
END_FOR;
La parte entre llaves {} es opcional.
Las <Instrucciones> se ejecutan siempre que el <INT_Var> del contador no sea mayor que el
<END_VALUE>. Esto se comprueba antes de ejecutar las <Instrucciones> de modo que las
<instrucciones> nunca se ejecutan si <INIT_VALUE> es mayor que <END_VALUE>.
Cuando se ejecutan <Instrucciones>, <INT_Var> siempre se incrementa en <Tamaño de paso>. El
tamaño del paso puede tener cualquier valor entero. Si falta, se establece en 1. El bucle también debe
terminar, ya que <INT_Var> solo se hace mayor.
Ejemplo:
PARA contador:=1 A 5 POR 1 DO Var1:=Var1*2;

2-14 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

END_FOR;
Erg:=Var1;
Supongamos que la configuración predeterminada para Var1 es el valor 1. Entonces tendrá el valor 32 después del bucle FOR.

Nota: <END_VALUE> no debe ser igual al valor límite del contador <INT_VAR>. Por ejemplo: Si la variable
Counter es de tipo SINT y si <END_VALUE> es 127, obtendrá un bucle sin fin.

Bucle WHILE
El bucle WHILE se puede utilizar como el bucle FOR con la diferencia de que la condición de ruptura
puede ser cualquier expresión booleana. Esto significa que se indica una condición que, cuando se
cumpla, se ejecutará el bucle.
Sintaxis:
WHILE <Expresión booleana>
<Instrucciones>
END_WHILE;
Las <Instrucciones> se ejecutan repetidamente siempre que el <Boolean_expression> devuelva TRUE.
Si el <Boolean_expression> ya es FALSO en la primera evaluación, entonces las <Instrucciones>
nunca se ejecutan. Si <Boolean_expression> nunca asume el valor FALSE, entonces las
<Instrucciones> se repiten sin cesar, lo que provoca un retraso de tiempo relativo.
Nota: El programador debe asegurarse de que no se produzca ningún bucle sin fin. Lo hace cambiando la
condición en la parte de instrucción del bucle, por ejemplo, contando hacia arriba o hacia abajo un contador.

Ejemplo:
WHILE counter<>0 DO Var1 := Var1*2; Contador := Contador-1; END_WHILE

Los bucles WHILE y REPEAT son, en cierto sentido, más potentes que el bucle FOR, ya que no es
necesario saber el número de ciclos antes de ejecutar el bucle. En algunos casos, por lo tanto, solo se
podrá trabajar con estos dos tipos de bucles. Sin embargo, si el número de ciclos de bucle es claro,
entonces es preferible un bucle FOR, ya que no permite bucles infinitos.

Bucle REPEAT
El bucle REPEAT es diferente del bucle WHILE porque la condición de ruptura se comprueba sólo
después de que se haya ejecutado el bucle. Esto significa que el bucle se ejecutará al menos una vez,
independientemente de la redacción de la condición de ruptura.
Sintaxis:
REPETIR
<Instrucciones>
HASTA <expresión booleana> END_REPEAT;

Las <Instrucciones> se llevan a cabo hasta que la <Expresión booleana> devuelve TRUE.
Si ya se produce <expresión booleana> en la primera evaluación TRUE, las <instrucciones> se
ejecutan solo una vez. Si <Boolean_expression> nunca asume el valor TRUE, entonces las
<Instrucciones> se repiten sin cesar, lo que provoca un retraso de tiempo relativo.
Nota: El programador debe asegurarse de que no se produzca ningún bucle sin fin. Lo hace cambiando la
condición en la parte de instrucción del bucle, por ejemplo, contando hacia arriba o hacia abajo un contador.

Ejemplo:
REPETIR
Var1 := Var1*2; Contador := Contador-1;

CoDeSys V2.3 2-15


Idiomas...

HASTA
Contador=0
END_REPEAT;

Instrucción EXIT
Si la instrucción EXIT aparece en un bucle FOR, WHILE o REPEAT, el bucle más interno finaliza,
independientemente de la condición de interrupción.

2.2.3 Diagrama de funciones secuenciales (SFC)...


El Diagrama de Funciones Secuenciales (SFC) es un lenguaje orientado gráficamente que permite describir
el orden cronológico de las diferentes acciones dentro de un programa. Para ello, las acciones se asignan a
elementos de paso y la secuencia de procesamiento se controla mediante elementos de transición.
Ejemplo de una red en el gráfico de funciones secuenciales

Para obtener más información sobre el editor SFC, consulte el Capítulo 5.4.4.

Paso
Una POU escrita en un diagrama de funciones secuenciales consta de una serie de pasos que están
conectados entre sí a través de conexiones dirigidas (transiciones).
Hay dos tipos de pasos.
El tipo simplificado consta de una acción y un indicador que muestra si el paso está activo. Si se implementa
la acción de un paso, aparece un pequeño triángulo en la esquina superior derecha del paso.
Un paso IEC consta de un indicador y una o más acciones asignadas o variables booleanas. Las
acciones asociadas aparecen a la derecha del paso.

Acción
Una acción puede contener una serie de instrucciones en IL o en ST, muchas redes en FBD o en LD, o
de nuevo en Gráfico de Funciones Secuenciales (SFC).

2-16 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Con los pasos simplificados, una acción siempre está conectada a un paso. Para editar una acción, haga clic
dos veces con el ratón en el paso al que pertenece la acción. O seleccione el paso y seleccione el comando
de menú 'Extras', 'Zoom Action/Transition'. Además, es posible una acción de entrada o salida por paso.

Las acciones de los pasos IEC se cuelgan en el Organizador de objetos directamente debajo de su
SFC-POU y se cargan con un doble clic o pulsando <Enter> en su editor. Se pueden crear nuevas
acciones con 'Proyecto' 'Agregar acción'. Puede asignar un máximo de nueve acciones a un paso IEC.

Acción de entrada o salida


Además de una acción de paso, puede agregar una acción de entrada y una acción de salida a un
paso. Una acción de entrada se ejecuta solo una vez, justo después de que el paso se haya activado.
Una acción de salida se ejecuta solo una vez antes de que se desactive el paso.
Un paso con acción de entrada se indica con una "E" en la esquina inferior izquierda, la acción de
salida con una "X" en la esquina inferior derecha.
La acción de entrada y salida se puede implementar en cualquier idioma. Para editar una acción de
entrada o salida, haga doble clic con el ratón en la esquina correspondiente del paso.
Ejemplo de un paso con acción de entrada y salida:

Transición / Condición de transición


Entre los pasos hay las llamadas transiciones.
Una condición de transición debe tener el valor TRUE o FALSE. Por lo tanto, puede consistir en una variable
booleana, una dirección booleana o una constante booleana. También puede contener una serie de instrucciones
que tengan un resultado booleano, ya sea en sintaxis ST (por ejemplo, (i<= 100) Y b) o en cualquier idioma
deseado (ver 'Extras' 'Acción/Transición de zoom'). ¡Pero una transición no puede contener programas, bloques de
funciones o asignaciones!
En el SFC-Editor se puede escribir una condición de transición directamente en el símbolo de transición o se
puede abrir una ventana de editor propia para introducir la condición (véase el capítulo 5.4.4, ''Extras'' ''Zoom
Action/Transition'). ¡Tenga en cuenta que las instrucciones introducidas en la ventana del editor tendrán prioridad!

Nota: Además de las transiciones, el modo de avance lento también se puede usar para saltar al siguiente paso;
consulte SFCtip y SFCtipmode.

Paso activo
Después de llamar a la POU SFC, la acción (rodeada por un borde doble) que pertenece al paso inicial
se ejecuta primero. Un paso, cuya acción se está ejecutando, se denomina activo. En el modo Online,
los pasos activos se muestran en azul.
En un ciclo de control se ejecutan todas las acciones que pertenecen a los pasos activos. A partir de
entonces, los pasos siguientes respectivos de los pasos activos se activan si las condiciones de transición
de los pasos siguientes son TRUE. Los pasos actualmente activos se ejecutarán en el siguiente ciclo.

Nota: Si el paso activo contiene una acción de salida, esta solo se ejecutará durante el siguiente ciclo, siempre que
la transición siguiente sea TRUE.

Paso IEC
Junto con los pasos simplificados, están disponibles los pasos estándar IEC en SFC.
Para poder utilizar los pasos IEC, debe vincular la biblioteca especial SFC lecsfc.lib en su proyecto.
No se pueden asignar más de nueve acciones a un paso IEC. Las acciones IEC no se fijan como
acciones de entrada, paso o salida a un paso determinado como en los pasos simplificados, sino que
se almacenan por separado de los pasos y se pueden reutilizar muchas veces dentro de una POU.
Para ello, deben asociarse a los pasos individuales con el comando 'Extras', 'Acción asociada'.

CoDeSys V2.3 2-17


Idiomas...

Junto con las acciones, las variables booleanas se pueden asignar a pasos.
La activación y desactivación de acciones y variables booleanas se puede controlar mediante los llamados
calificadores. Es posible que se produzcan retrasos. Dado que una acción aún puede estar activa, si se ha
procesado el siguiente paso, por ejemplo, a través del calificador S (Set), se pueden lograr procesos simultáneos.

Una variable booleana asociada se establece o se restablece con cada llamada del bloque SFC. Esto
significa que en cada llamada a la variable se le asigna el valor TRUE o FALSE.
Las acciones asociadas con un paso IEC se muestran a la derecha del paso en un cuadro de dos
partes. El campo de la izquierda contiene el calificador, posiblemente con la constante de tiempo, y el
campo de la derecha contiene el nombre de la acción o el nombre de la variable booleana.
Un ejemplo de un paso IEC con dos acciones:

Para facilitar el seguimiento de los procesos, todas las acciones activas en modo online se muestran en azul al igual que
los pasos activos. Después de cada ciclo, se realiza una comprobación para ver qué acciones están activas.

¡Preste atención aquí también a las restricciones sobre el uso de calificadores de tiempo en acciones
que se reutilizan repetidamente dentro del mismo ciclo (ver 'Calificador')!

Nota: Si una acción ha sido desactivada, se ejecutará una vez más. Esto significa que cada acción se ejecuta al
menos dos veces (también una acción con el calificador P).

En caso de una llamada, primero se ejecutan las acciones desactivadas, luego las acciones activas, en
orden alfabético cada vez.
El hecho de que un paso recién insertado sea un paso IEC depende de si se ha seleccionado el
comando de menú 'Extras' 'Usar IEC-Steps'.
En el Organizador de objetos, las acciones cuelgan directamente debajo de sus respectivas POU SFC.
Se pueden crear nuevas acciones con 'Proyecto' 'Agregar acción'.
Para utilizar los pasos IEC, debe incluir en su proyecto la biblioteca SFC especial Iecsfc.lib .
SFC POU con acciones en el Organizador de objetos

Calificador
Para asociar las acciones con los pasos IEC, están disponibles los siguientes calificadores:

N No almacenado La acción está activa mientras el paso


R : anulación de R: R: R: La acción está desactivada
S S (almacenado) La acción se activa y permanece activa hasta que se
produce un reinicio
L tiempo limitado La acción se activa durante un tiempo determinado,
máximo mientras el paso esté activo
D Tiempo retardado La acción se activa después de un tiempo determinado
si el paso sigue activo y, a continuación, permanece
activa mientras el paso esté activo.

2-18 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

P Pulso La acción se ejecuta una sola vez si el paso está activo

SD Almacenado y tiempo La acción se activa después de un cierto tiempo y


Retrasado permanece activa hasta que se reinicia
DS retrasado y almacenado La acción se activa después de un cierto tiempo,
siempre que el paso siga activo y permanezca activo hasta un reinicio

SL Almacenado y tiempo La acción se activa durante un tiempo


determinado

Los calificadores L, D, SD, DS y SL necesitan un valor de tiempo en el formato de constante TIME. Este valor se
puede introducir directamente (por ejemplo, "T#5s") o mediante una variable de tipo de datos TIME (por ejemplo,
"t_var").
Nota: Cuando una acción ha sido desactivada, se ejecutará una vez más. Esto significa que cada acción se
ejecuta al menos dos veces (también una acción con el calificador P).

Variables implícitas en SFC


En SFC, las variables declaradas implícitamente ("banderas") se pueden usar para escanear el estado de los pasos y
acciones, así como el tiempo de los pasos. Cada una de estas marcas se establece al principio de un ciclo. Para los pasos IEC
y las acciones IEC son proporcionados por la biblioteca iecsfc.lib (estructuras SFCStepType y SFCActionType), que se incluye
automáticamente en un proyecto, para los pasos simplificados se implementan en CoDeSys.

Escaneo del estado del paso o acción a través de variables booleanas:


Para los pasos IEC: <stepname>.x o <stepname>._x: <StepName>.x muestra el estado de activación
actual. <StepName>._x muestra el estado de activación para el siguiente ciclo. Si
<StepName>.x= TRUE, el paso se ejecutará en el ciclo actual. Si <StepName>._x= TRUE y
<StepName>.x=FALSE, el paso se ejecutará en el siguiente ciclo, es decir, <StepName>._x se copia
en <StepName>.x al principio de un ciclo.
Para pasos simplificados: <stepname> resp. _<stepname>: Si <StepName>= TRUE, el paso se
ejecutará en el ciclo actual. Si _<StepName>= TRUE, el paso se ejecutará en el siguiente ciclo, es
decir, <StepName> se copia en _<StepName> al principio de un ciclo.
Para acciones IEC: <actionname>.x se vuelve TRUE tan pronto como la acción se activa
(<actionname>._x es solo para fines internos, no para un escaneo de estado).
Tiempo de un paso a través de las variables TIME:
Las siguientes variables implícitas dan el intervalo de tiempo actual que ha pasado desde que el
paso se activó; Esto es solo para los pasos que tienen un tiempo mínimo configurado en los
atributos de paso.
Para pasos IEC: <stepname>.t (<stepname>._t no se puede utilizar para fines externos)
Para pasos simplificados: _time<stepname>. PERO: Si esta variable implícita se debe utilizar con fines de análisis,
también debe declararse explícitamente como una variable TIME; por ejemplo, "_timeStep1 : TIEMPO";

Para acciones IEC: no se utilizan las variables de tiempo implícitas.


Estos indicadores de estado se pueden utilizar en cada acción y transición del módulo SFC. Pero también se
puede acceder a ellos desde otros programas: Ejemplo: boolvar1:=sfc.step1.x; step1.x en este ejemplo es
una variable booleana implícita que muestra el estado del paso IEC "step1" en POU "sfc1".

Banderas SFC
Para controlar el funcionamiento de las POU SFC se pueden utilizar banderas, que se crean implícitamente
durante la ejecución del proyecto. Para leer estos indicadores, debe definir las variables globales o locales
apropiadas como entradas o salidas. Ejemplo: Si en una POU SFC un paso está activo durante un tiempo
más largo que el definido en los atributos del paso, se establecerá un indicador, al que se puede acceder
mediante una variable "SFCError" (SFCError obtiene TRUE en este caso).

Se pueden definir las siguientes variables de indicador:

CoDeSys V2.3 2-19


Idiomas...

SFCEnableLimit: Esta variable es del tipo BOOL. Cuando tiene el valor TRUE, los tiempos de espera
de los pasos se registrarán en SFCError. Se ignorarán otros tiempos de espera.
SFCInit: Cuando esta variable booleana tiene el valor TRUE, el gráfico de funciones secuenciales se
vuelve a establecer en el paso Init. Los otros indicadores SFC también se restablecen (inicialización).
El paso Init permanece activo, pero no se ejecuta, mientras la variable tenga el valor TRUE. Solo
cuando SFCInit se vuelve a establecer en FALSE el bloque se puede procesar normalmente.
SFCReset: Esta variable, de tipo BOOL, se comporta de forma similar a SFCInit. Sin embargo, a
diferencia de este último, el procesamiento posterior tiene lugar después de la inicialización del paso
Init. Así, por ejemplo, el indicador SFCReset podría volver a establecerse en FALSE en el paso Init.
Tenga en cuenta: A partir de la versión 2.3.7.0 del compilador, SFCReset también se puede usar para restablecer
acciones booleanas asociadas a pasos IEC, lo que antes no era posible

SFCQuitError: Siempre que la ejecución del diagrama SFC se detenga mientras esta variable booleana tenga el valor
TRUE mediante el cual se restablece un posible tiempo de espera en la variable SFCErlor. Todas las veces anteriores
en los pasos activos se restablecen cuando la variable vuelve a asumir el valor FALSE. Es una condición previa que
también se haya definido el indicador SFCError, que registra cualquier tiempo de espera en el SFC.

SFCPause: La ejecución del diagrama SFC se detiene mientras esta variable booleana tenga el valor
TRUE.
SFCError: Esta variable booleana es TRUE cuando se ha agotado el tiempo de espera en un diagrama SFC. Si
se produce otro tiempo de espera en un programa después del primero, no se registrará a menos que la variable
SFCError se restablezca primero. Es una condición previa que se defina SFCError, si desea utilizar las otras
marcas de control de tiempo (SFCErrorStep, SFCErrorPOU, SFCQuitError, SFCErrorAnalyzation).

SFCTrans: Esta variable booleana toma el valor TRUE cuando se activa una transición.
SFCErrorStep: Esta variable es del tipo STRING. Si SFCError registra un tiempo de espera, en esta
variable se almacena el nombre del paso que ha causado el tiempo de espera. Es una condición previa
que también se haya definido el indicador SFCError, que registra cualquier tiempo de espera en el SFC.
SFCErrorPOU: Esta variable del tipo STRING contiene el nombre del bloque en el que se ha agotado
el tiempo de espera. Es una condición previa que también se haya definido el indicador SFCError, que
registra cualquier tiempo de espera en el SFC.
SFCCurrentStep: Esta variable es del tipo STRING. El nombre del paso se almacena en esta variable que
está activa, independientemente de la supervisión del tiempo. En el caso de secuencias simultáneas, el paso
se almacena en la rama de la parte exterior derecha. No se registrará ningún tiempo de espera adicional si se
agota el tiempo de espera y la variable SFCError no se restablece de nuevo.

SFCErrorAnalyzationTable: Esta variable de tipo ARRAY [0..n] OF ExpressionResult proporciona el


resultado de un análisis de una expresión de transición. Para cada componente de la expresión, que
contribuye a un FALSE de la transición y, por lo tanto, a un tiempo de espera del paso anterior, se escribe la
siguiente información en la estructura ExpressionResult: nombre, dirección, comentario, valor actual.

Esto es posible para un máximo de 16 componentes (variables), por lo que el rango de la matriz es de un máximo de 0..15).
La estructura ExpressionResult, así como los módulos de análisis utilizados implícitamente, se
proporcionan con la biblioteca AnalyzationNew.lib. Los módulos de análisis también se pueden utilizar
explícitamente en otras POU, que no están programadas en SFC.
Es una condición previa para el análisis de una expresión de transición, que se registre un tiempo de
espera en el paso anterior. Por lo tanto, se debe implementar un monitoreo de tiempo allí y también se
debe definir la variable SFCError (ver arriba) en la ventana de declaración.
SFCTip, SFCTipMode: Estas variables de tipo BOOL permiten el modo de avance lento del SFC. Cuando
SFCTipMode=TRUE lo activa, solo es posible pasar al siguiente paso si SFCTip está establecido en TRUE.
Siempre que SFCTipMode se establezca en FALSE, es posible omitir incluso las transiciones.

Nota: Tenga en cuenta también las variables implícitas utilizables para escanear el estado y el tiempo de los pasos o acciones.

2-20 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Sucursal alternativa
Dos o más ramas en SFC se pueden definir como ramas alternativas. Cada rama alternativa debe
comenzar y terminar con una transición. Las bifurcaciones alternativas pueden contener bifurcaciones
paralelas y otras bifurcaciones alternativas. Una rama alternativa comienza en una línea horizontal
(comienzo alternativo) y termina en una línea horizontal (final alternativo) o con un salto.
Si el paso que precede a la línea inicial alternativa está activo, la primera transición de cada bifurcación
alternativa se evalúa de izquierda a derecha. Se abre la primera transición desde la izquierda cuya
condición de transición tiene el valor TRUE y se activan los siguientes pasos (ver paso activo).

Rama paralela
Dos o más ramas en SFC se pueden definir como ramas paralelas. Cada rama paralela debe comenzar y
terminar con un paso. Las bifurcaciones paralelas pueden contener bifurcaciones alternativas u otras
bifurcaciones paralelas. Una rama paralela comienza con una línea doble (comienzo paralelo) y termina con
una línea doble (final paralelo) o con un salto. Se puede proporcionar con una etiqueta de salto.

Si la línea inicial paralela del paso anterior está activa y la condición de transición después de este
paso tiene el valor TRUE, los primeros pasos de todas las bifurcaciones paralelas se activan (consulte
paso activo). Estas ramas ahora se procesan en paralelo entre sí. El paso después de la línea final
paralela se activa cuando todos los pasos anteriores están activos y la condición de transición anterior
a este paso produce el valor TRUE.

Saltar
Un salto es una conexión con el escalón cuyo nombre se indica debajo del símbolo de salto. Los saltos
son necesarios porque no está permitido crear conexiones que conduzcan hacia arriba o se crucen
entre sí.

2.2.4 Diagrama de bloques de funciones (FBD)...


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 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.
Ejemplo de una red en el diagrama de bloques de funciones

Para obtener más información sobre el editor FBD, consulte el Capítulo 5.4.2.

2.2.5 El Editor de Gráficos de Funciones Continuas (CFC)...


El editor de gráficos de funciones continuas no funciona como el diagrama de bloques de funciones FBD con
redes, sino con elementos que se pueden colocar libremente. Esto permite, por ejemplo, la retroalimentación.

Para más información sobre el editor CFC, véase el capítulo 5.4.5


Ejemplo de una red en el editor de gráficos de funciones continuas

CoDeSys V2.3 2-21


Idiomas...

2.2.6 Diagrama de escalera (LD)...


El diagrama de escalera es también un lenguaje de programación orientado a gráficos que se acerca a
la estructura de un circuito eléctrico.
Por un lado, el diagrama de escalera es adecuado para construir conmutadores lógicos, por otro lado,
también se pueden crear redes como en FBD. Por lo tanto, el LD es muy útil para controlar la llamada
de otras POU.
El diagrama de escalera consta de una serie de redes. Una red está limitada en los lados izquierdo y
derecho por una línea de corriente vertical izquierda y derecha. En el medio hay un diagrama de
circuito compuesto por contactos, bobinas y líneas de conexión.
Cada red consta en el lado izquierdo de una serie de contactos que transmiten de izquierda a derecha
la condición "ON" o "OFF" que corresponden a los valores booleanos TRUE y FALSE. A cada contacto
pertenece una variable booleana. Si esta variable es TRUE, la condición se pasa de izquierda a
derecha a lo largo de la línea de conexión. De lo contrario, la conexión correcta recibe el valor OFF.
Ejemplo de una red en un diagrama de escalera formada por contactos y bobinas

Para obtener más información sobre el editor LD, consulte el Capítulo 5.4.3.

Contacto
Cada red en LD consiste en el lado izquierdo de una red de contactos (los contactos están representados
por dos líneas paralelas: | |) que de izquierda a derecha muestran la condición "On" o "Off".
Estas condiciones corresponden a los valores booleanos TRUE y FALSE. Una variable booleana
pertenece a cada contacto. Si esta variable es TRUE, la condición es transmitida por la línea de
conexión de izquierda a derecha, de lo contrario, la conexión derecha recibe el valor "Out".
Los contactos se pueden conectar en paralelo, luego una de las ramas paralelas debe transmitir el
valor "On" para que la rama paralela transmita el valor "On"; o los contactos están conectados en serie,
entonces los contactos deben transmitir la condición "Encendido" para que el último contacto transmita
la condición "Encendido". Por lo tanto, esto corresponde a un circuito eléctrico en paralelo o en serie.
Un contacto también puede ser negado, reconocible por la barra en el símbolo de contacto: |/|. A
continuación, se transmite el valor de la línea si la variable es FALSE.

Bobina
En el lado derecho de una red en LD puede haber cualquier número de las llamadas bobinas que se representan
entre paréntesis:( ). Solo pueden estar en paralelo. Una bobina transmite el valor de las conexiones de izquierda a
derecha y lo copia en una variable booleana apropiada. En la línea de entrada puede estar presente el valor ON
(corresponde a la variable booleana TRUE) o el valor OFF (correspondiente a FALSE).

Los contactos y las bobinas también se pueden negar (en el ejemplo, el contacto SWITCH1 y la bobina
%QX3.0 se niega). Si se niega una bobina (reconocible por la barra diagonal en el símbolo de la
bobina: ( /)), copia el valor negado en la variable booleana adecuada. Si se niega un contacto, se
conecta solo si el valor booleano apropiado es FALSE.

2-22 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Bloques de funciones en el diagrama de escalera


Junto con los contactos y las bobinas, también puede introducir bloques de funciones y programas En
la red deben tener una entrada y una salida con valores booleanos y se pueden utilizar en los mismos
lugares que los contactos, es decir, en el lado izquierdo de la red LD

Set/Reset bobinas
Las bobinas también se pueden definir como bobinas de ajuste o reinicio. Se puede reconocer una bobina
establecida por la "S" en el símbolo de la bobina: (S)) Nunca escribe sobre el valor TRUE en la variable
booleana apropiada. Es decir, si la variable se estableció una vez en TRUE, entonces sigue siéndolo.

Se puede reconocer una bobina de reinicio por la "R" en el símbolo de la bobina: (R)) Nunca escribe
sobre el valor FALSE en la variable booleana apropiada: Si la variable se ha establecido una vez en
FALSE, entonces sigue siéndolo.
LD como FBD
Al trabajar con LD, es muy posible que desee utilizar el resultado del interruptor de contacto para
controlar otras POU. Por un lado, puede usar las bobinas para poner el resultado en una variable global
que luego se puede usar en otro lugar. Sin embargo, también puede insertar la posible llamada
directamente en su red LD. Para ello, introduzca una POU con entrada EN.
Dichas POU son operandos, funciones, programas o bloques de funciones completamente normales
que tienen una entrada adicional que está etiquetada con EN. La entrada EN es siempre del tipo BOOL
y su significado es: La POU con entrada EN se evalúa cuando EN tiene el valor TRUE.
Una POU EN se conecta en paralelo a las bobinas, por lo que la entrada EN se conecta a la línea de
conexión entre los contactos y las bobinas. Si la información de ON se transmite a través de esta línea,
esta POU se evaluará con total normalidad.
A partir de un EN POU de este tipo, puede crear redes similares a FBD.
Ejemplo de una red LD con una EN POU

2.3 Depuración, funciones en línea...


Traza de muestreo
El seguimiento de muestreo le permite rastrear la secuencia de valores de las variables, dependiendo
del llamado evento desencadenante. Este es el flanco ascendente o descendente de una variable
booleana previamente definida (variable desencadenante). CoDeSys permite el rastreo de hasta 20
variables. Se pueden trazar 500 valores para cada variable.

Depuración
Las funciones de depuración de CoDeSys facilitan la búsqueda de errores.
Para depurar, ejecute el comando 'Proyecto' 'Opciones' y en el cuadro de diálogo que aparece en
Opciones de compilación, seleccione activar la opción Depuración.

CoDeSys V2.3 2-23


Depuración, funciones en línea...

Punto de ruptura
Un punto de interrupción es un lugar del programa en el que se detiene el procesamiento. Por lo tanto,
es posible ver los valores de las variables en lugares específicos dentro del programa.
Los puntos de interrupción se pueden establecer en todos los editores. En los editores de texto, los puntos de
interrupción se establecen en los números de línea, en FBD y LD en los números de red, en CFC en las POU y en
SFC en los pasos. No se pueden establecer puntos de interrupción en las instancias de bloque de funciones.

Atención: El sistema de tiempo de ejecución CoDeSys SP 32 Bit Full desactivará la función de vigilancia de la
tarea en cuestión tan pronto como la ejecución del programa se detenga actualmente en un punto de interrupción.

Un solo paso
Un solo paso significa:
En IL: Ejecute el programa hasta el siguiente comando CAL, LD o JMP.
En ST: Ejecute la siguiente instrucción.
En FBD, LD: Ejecute la siguiente red.
En SFC: Continúe la acción hasta el siguiente paso.
Procediendo paso a paso, puede comprobar la corrección lógica de su programa.

Ciclo único
Si se ha elegido Ciclo único, la ejecución se detiene después de cada ciclo.

Cambiar valores en línea


Durante las operaciones, las variables se pueden ajustar una vez a un valor determinado (valor de escritura) o
también se pueden volver a describir con un valor determinado después de cada ciclo (valor de fuerza). En el
modo en línea, también se puede cambiar el valor de la variable haciendo doble clic en el valor. Por lo tanto,
las variables booleanas cambian de VERDADERO a FALSO o al revés, para cada otro tipo de variables se
obtiene el cuadro de diálogo Escribir variable xy, donde se puede editar el valor real de la variable.

Monitorización
En el modo Online, todas las variables visualizables se leen desde el controlador y se muestran en tiempo real.
Encontrará esta pantalla en el editor de declaraciones y programas; también puede leer los valores actuales de
las variables en el Administrador de Relojes y Recetas y en una visualización. Si se van a supervisar variables de
instancias de bloques de funciones, primero se debe abrir la instancia correspondiente.

En la supervisión de variables VAR_IN_OUT, se genera el valor desreferenciado.


En los punteros de supervisión, tanto el puntero como el valor desreferenciado se generan en la parte
de declaración. En la parte del programa, solo se muestra el puntero:
+ --pointervar = '<'pointervalue'>'
Los PUNTEROS en el valor desreferenciado también se muestran en consecuencia. Con un simple clic
en la cruz o un doble clic en la línea, la pantalla se expande o se trunca.

2-24 CoDeSys V2.3


2 - ¿Qué es qué en CoDeSys?

Ejemplo de supervisión de punteros

En las implementaciones, se muestra el valor del puntero. Sin embargo, para la eliminación de
referencias, se muestra el valor desreferenciado.
Monitorización de los componentes de la matriz: Además de los componentes de la matriz indexados
por una constante, también se muestran los componentes que están indexados por una variable:
5 Simulación
anarray[1] = anarray[i] = 1

Si el índice consta de una expresión (por ejemplo, [i+j] o [i+1]), el componente no se puede mostrar.
Por favor, tenga en cuenta:
Si se ha alcanzado el número máximo de variables que se pueden monitorizar, para cada variable
adicional en lugar del valor actual se mostrará la cadena "Demasiadas variables de monitorización".

Durante la simulación, el programa PLC creado no se procesa en el PLC, sino en la calculadora en la


que se está ejecutando CoDeSys . Todas las funciones en línea están disponibles. Eso le permite
probar la corrección lógica de su programa sin hardware PLC.

Tenga en cuenta: Las POU de bibliotecas externas no se ejecutan en modo de simulación.

Registro
El registro registra cronológicamente las acciones del usuario, los procesos internos, los cambios de estado y las excepciones durante el
procesamiento del modo en línea. Se utiliza para la supervisión y el seguimiento de errores (consulte Funciones en línea).

CoDeSys V2.3 2-25


El estándar...

2.4 El estándar...
La norma IEC 61131-3 es un estándar internacional para lenguajes de programación de controladores
lógicos programables.
Los lenguajes de programación ofrecidos en CoDeSys se ajustan a los requisitos de la norma.
De acuerdo con esta norma, un programa consta de los siguientes elementos:
Estructuras (ver Tipos de datos)
POUs
Variables globales
Los elementos generales del lenguaje se describen en las secciones Identificador, Direcciones, Tipos,
Comentarios y Constantes.
El procesamiento de un programa CoDeSys comienza con el PLC_PRG especial POU. El PLC_PRG
de POU puede llamar a otros POU.

2-26 CoDeSys V2.3


3 - Escribimos un pequeño programa

3 Escribimos un pequeño programa

3.1 Control de una unidad de semáforos...


Comencemos ahora a escribir un pequeño programa de ejemplo. Es para una unidad de semáforo
simple que se supone que controla dos semáforos en una intersección. Las fases roja/verde de ambos
semáforos se alternan y, para evitar accidentes, insertaremos fases de transición amarillas o
amarillas/rojas. Este último será más largo que el primero.
En este ejemplo se puede ver cómo se pueden mostrar programas dependientes del tiempo con los recursos
lingüísticos del estándar IEC1131-3, cómo se pueden editar los diferentes idiomas del estándar con la ayuda
de CoDeSys, y cómo se pueden conectar fácilmente mientras se familiariza con la simulación de
CoDeSys.

Crear POU
Empezar siempre es fácil: Inicie CoDeSys y elija 'Archivo' 'Nuevo'.
En el cuadro de diálogo que aparece, la primera POU ya ha recibido el nombre predeterminado
PLC_PRG. Mantenga este nombre, y el tipo de POU definitivamente debería ser un programa. Cada
proyecto necesita un programa con este nombre. En este caso elegimos como idioma de esta POU el
Editor de Gráficos de Funciones Continuas (CFC)
Ahora cree tres objetos más con el comando 'Proyecto', 'Agregar objeto' con la barra de menú o con el
menú contextual (presione el botón derecho del mouse en el Organizador de objetos). Un programa en
el lenguaje Sequential Function Chart (SFC) llamado SEQUENCE, un bloque de funciones en el
lenguaje Function Block Diagram (FBD) llamado TRAFFICSIGNAL, junto con un POU WAIT, también
del tipo function block, que queremos programar como una Lista de Instrucciones (IL).

¿Qué hace TRAFFICSIGNAL?


En el POU TRAFFICSIGNAL asignaremos las fases individuales de los semáforos a los semáforos, es
decir, nos aseguraremos de que la luz roja se encienda en rojo en la fase roja y en la fase amarilla/roja,
la luz amarilla en las fases amarilla y amarilla/roja, etc.

¿Qué hace WAIT?


En WAIT programaremos un temporizador simple que como entrada recibirá la longitud de la fase en
milisegundos, y como salida producirá TRUE tan pronto como finalice el período de tiempo.

¿Qué hace SEQUENCE?


En SEQUENCE todo se combina para que la luz correcta se encienda en el momento adecuado para el
período de tiempo deseado.

¿Qué hace PLC_PRG?


En PLC_PRG la señal de inicio de entrada se conecta a la secuencia de los semáforos y las
"instrucciones de color" para cada luz se proporcionan como salidas.

Simulación de semáforos
Ahora pruebe su programa en modo de simulación. Compilar ('Proyecto', 'Construir') y cargarlo ('En
línea', 'Iniciar sesión' ). Inicie el programa con 'Online' 'Start', luego establezca la variable ON en
TRUE, por ejemplo, haciendo doble clic en la entrada "ON" en el cuadro de entrada del editor CFC.
Esto marcará la variable como preparada para establecerse en <TRUE>. A continuación, pulse
<Ctrl><F7> o el comando 'En línea' 'Escribir valores', para establecer el valor. Ahora la variable START
en ABLAUF (que habíamos establecido en TRUE manualmente en el primer nivel de extensión del
programa) obtiene este valor mediante la variable ON, que se usa en PLC_PRG. Esto hará que los
ciclos de los semáforos funcionen. PLC_PRG ha cambiado a una ventana de supervisión. Haga clic
dos veces en el signo más en el editor de declaraciones, la visualización de variables se despliega y
puede ver los valores de las variables individuales.

CoDeSys V2.3 3-1


Control de una unidad de semáforos...

Declaración "TRAFFICSIGNAL"
Pasemos ahora a la señal de tráfico POU. En el editor de declaraciones, se declara como variable de
entrada (entre las palabras clave VAR_INPUT y END_VAR) una variable llamada STATUS del tipo INT.
STATUS tendrá cuatro condiciones posibles, es decir, una para las fases TRAFFICSIGNAL verde,
amarilla, amarilla/roja y roja.
En consecuencia, nuestro SEMALETERO tiene tres salidas, es decir, ROJO, AMARILLO y VERDE.
Debe declarar estas tres variables. A continuación, la parte de declaración de nuestro bloque de
función TRAFFICSIGNAL tendrá el siguiente aspecto:
Bloque de función TRAFFICSIGNAL, parte de declaración

Cuerpo "TRAFFICSIGNAL"
Ahora determinamos los valores de las variables de salida en función del STATUS de entrada de la POU. Para
hacer esto, vaya al cuerpo de la POU. Haga clic en el campo de la izquierda junto a la primera red (el campo gris
con el número 0001). Ahora ha seleccionado la primera red. Elija la opción de menú 'Insertar' 'Caja'.

En la primera red se inserta una caja con el operador AND y dos entradas:

Haga clic en el texto Y, para que aparezca seleccionado y cambie el texto a EQ. Seleccione entonces para cada
una de las dos entradas los tres signos de interrogación y sobrescriba con "STATUS" respectivamente "1".

Haga clic ahora en un lugar detrás de la caja de ecualización. Ahora se selecciona la salida de la
operación de ecualización. Elija 'Insertar' 'Asignar'. Cambie los tres signos de interrogación ??? a
VERDE. Ahora ha creado una red con la siguiente estructura:

STATUS se compara con 1, el resultado se asigna a GREEN. Por lo tanto, esta red cambia a VERDE si
el valor de estado preestablecido es 1.

3-2 CoDeSys V2.3


3 - Escribimos un pequeño programa

Para los otros colores de TRAFFICSIGNAL necesitamos dos redes más. Para crear el primero, ejecute el
comando 'Insertar', 'Red (después)' e inserte un EQ-Box como se describe anteriormente. A continuación,
seleccione el pin de salida de esta caja y vuelva a utilizar el comando 'Insertar' 'Caja'. En el nuevo cuadro,
sustitúyase "Y" por "O". Ahora seleccione el primer pin de salida de la caja OR y use el comando 'Insertar'
'Asignar' para asignarlo a "GELB". Seleccione la segunda entrada del cuadro OR haciendo clic con el ratón en
la línea horizontal junto a los tres signos de interrogación, de modo que aparezca marcada por un rectángulo
punteado. Ahora use 'Insertar' 'Caja' para agregar una caja de ecualización adicional como se describió
anteriormente. Finalmente, la red debería verse como se muestra a continuación:
Bloque de función TRAFFICSIGNAL, parte de instrucción

Para insertar un operador delante de otro operador, debe seleccionar el lugar donde la entrada a la que
desea conectar el operador alimenta la caja.
A continuación, utilice el comando 'Insertar' 'Caja'. De lo contrario, puede configurar estas redes de la
misma manera que la primera red.
Ahora nuestro primer POU ha sido terminado. TRAFFICSIGNAL, de acuerdo con la entrada del valor
STATUS, controla cualquier color de luz que deseemos.

Conexión del archivo standard.lib


Para el temporizador en el POU WAIT necesitamos un POU de la biblioteca estándar. Por lo tanto, abra
el administrador de bibliotecas con 'Ventana' 'Administrador de bibliotecas. Elija 'Insertar' 'Biblioteca
adicional'. Aparece el cuadro de diálogo para abrir archivos. En la lista de bibliotecas, elija standard.lib.

CoDeSys V2.3 3-3


Control de una unidad de semáforos...

Declaración "WAIT"
Pasemos ahora a la POU WAIT. Se supone que esta POU se convierte en un temporizador con el que podemos
determinar la duración del período de tiempo de cada fase de TRAFFICSIGNAL. Nuestra POU recibe como
variable de entrada una variable TIME del tipo TIME, y como salida produce un valor booleano que queremos
llamar OK y que debe ser TRUE cuando finalice el período de tiempo deseado. Establecemos este valor con
FALSE insertando al final de la declaración (antes del punto y coma, sin embargo) " := FALSE ".

Para nuestros propósitos necesitamos el POU TP, un generador de reloj. Tiene dos entradas (IN, PT) y
dos salidas (Q, ET). TP hace lo siguiente:
Mientras IN sea FALSE, ET sea 0 y Q sea FALSE. Tan pronto como IN proporciona el valor TRUE, el
tiempo se calcula en la salida ET en milisegundos. Cuando ET alcanza el valor PT, ET ya no se cuenta.
Mientras tanto, Q produce TRUE siempre y cuando ET sea menor que PT. Tan pronto como se ha
alcanzado el valor PT, Q vuelve a producir FALSE. Consulte el capítulo sobre la biblioteca estándar
para obtener descripciones breves de todas las POU.
Para poder utilizar el TP de POU en el POU WAIT debemos crear una instancia local a partir de TP.
Para ello declaramos una variable local ZAB (para el tiempo transcurrido) del tipo TP (entre las
palabras clave VAR, END_VAR).
Por lo tanto, la parte de declaración de WAIT se ve así:
Bloque de función WAIT, parte de declaración

Cuerpo "WAIT"
Para crear el temporizador deseado, el cuerpo de la POU debe programarse de la siguiente manera:
Bloque de función WAIT, parte de instrucción

3-4 CoDeSys V2.3


3 - Escribimos un pequeño programa

Al principio se comprueba si Q ya se ha puesto en TRUE (como si el conteo ya se hubiera ejecutado),


en este caso no cambiamos nada con la ocupación de ZAB, pero llamamos al bloque de funciones ZAB
sin entrada (para comprobar si el período de tiempo ya ha terminado).
De lo contrario, establecemos la variable IN en ZAB en FALSE y, por lo tanto, al mismo tiempo ET en 0 y Q en
FALSE. De esta manera, todas las variables se establecen en la condición inicial deseada. Ahora asignamos el
tiempo necesario de la variable TIME a la variable PT, y llamamos a ZAB con IN:=TRUE. En el bloque de función
ZAB se calcula ahora la variable ET hasta que alcanza el valor TIME, luego Q se fija en FALSE.

El valor negado de Q se guarda en OK después de cada ejecución de WAIT. Tan pronto como Q es
FALSE, OK produce TRUE.
El temporizador ha finalizado en este punto. Ahora es el momento de combinar nuestros dos bloques
de funciones WAIT y SEQUENCE en el programa principal PLC_PRG.

Primer nivel de expansión "SEQUENCE"


Primero declaramos las variables que necesitamos. Ellas son: una variable de entrada START del tipo
BOOL, dos variables de salida TRAFFICSIGNAL1 y TRAFFICSIGNAL2 del tipo INT y una del tipo
WAIT (DELAY como delay). El programa SEQUENCE ahora se ve como se muestra aquí:
SECUENCIA de programa, primer nivel de expansión, parte de declaración

Crear un diagrama SFC


El diagrama inicial de una POU en SFC siempre consiste en una acción "Init" de una transición
siguiente "Trans0" y un salto de regreso a Init. Tenemos que ampliar eso.
Antes de programar la acción individual y las transiciones, determinemos primero la estructura de los
diagramas. Necesitamos un paso para cada fase de TRAFFICSIGNAL . Insértelo marcando Trans0 y
eligiendo 'Insertar' 'Paso de transición (después)'. Repita este procedimiento tres veces más.
Si hace clic directamente en el nombre de una transición o un paso, se marca y puede cambiarlo. Asigne a la primera
transición el nombre "START" a la primera transición después de Init y a todas las demás transiciones "DELAY". De
acuerdo".
La primera transición cambia cuando START es TRUE y todas las demás cambian cuando DELAY en
OK produce TRUE, es decir, cuando finaliza el período de tiempo establecido.

CoDeSys V2.3 3-5


Control de una unidad de semáforos...

Los pasos (de arriba a abajo) reciben los nombres Switch1, Green2, Switch2, Green1, por lo que Init, por
supuesto, mantiene su nombre. "Switch" debe incluir una fase amarilla, en Verde1 TRAFFICSIGNAL1 será
verde, en Verde2 TRAFFICSIGNAL2 será verde. Finalmente, cambie la dirección de retorno de Init después
de Switch1. Si ha hecho todo bien, entonces el diagrama debería verse como en la siguiente imagen:
SECUENCIA de Programa, Primer Nivel de Expansión, Parte de Instrucción

Ahora tenemos que terminar la programación de los pasos individuales. Si hace doble clic en el campo
de un paso, aparecerá un cuadro de diálogo para abrir una nueva acción. En nuestro caso usaremos IL
(Instruction List).
Acciones y condiciones de transición
En la acción del paso Init se inicializan las variables, el STATUS de TRAFFICSIGNAL1 debe ser 1
(verde). El estado de TRAFFICSIGNAL2 debe ser 3 (rojo). A continuación, la acción Init tiene un
aspecto similar al de la siguiente imagen:
Acción Init

3-6 CoDeSys V2.3


3 - Escribimos un pequeño programa

El conmutador1 cambia el estado de TRAFFICSIGNAL1 a 2 (amarillo) y el de TRAFFICSIGNAL2 a 4


(amarillo-rojo). Además, se establece un retardo de tiempo de 2000 milisegundos. La acción ahora es la siguiente:
Interruptor de acción1

Con Green2 TRAFFICSIGNAL1 es rojo (STATUS:=3), TRAFFICSIGNAL2 verde (STATUS:=1) y el


tiempo de retardo es de 5000 milisegundos.
Acción Verde2

En el Switch2, el ESTADO de TRAFFICSIGNAL1 cambia a 4 (amarillo-rojo), el de TRAFFICSIGNAL2


a 2 (amarillo). Ahora se establece un retardo de tiempo de 2000 milisegundos.
Interruptor de acción2

Con Green1 TRAFFICSIGNAL1 es verde (STATUS:=1), TRAFFICSIGNAL2 es rojo (STATUS:=3) y el


retardo de tiempo se establece en 5000 milisegundos.
Acción Verde1

Se ha completado la primera fase de expansión de nuestro programa.


Si desea realizar una primera prueba de POU ABLAUF en modo de simulación, realice los siguientes pasos:
1. Abra POU PLC_PRG. Cada proyecto comienza a ejecutarse con PLC_PRG. Para poder iniciar
provisionalmente POU ABLAUF, inserte una casilla y sustituya "Y" por "ABLAUF". Quedan las entradas
y salidas sin asignar por el momento.
2. Compile el proyecto a través de 'Project' 'Build'. En la ventana de mensajes, debería obtener "0 errores, 0
advertencias". Ahora verifique si la opción 'En línea' 'Simulación' está activada y use el comando 'En línea' 'Iniciar
sesión' para ingresar al modo de simulación. Inicie el programa con 'En línea' 'Inicio'. Abra POU ABLAUF
haciendo doble clic en la entrada "ABLAUF" en el Organizador de objetos. El programa se inicia ahora, pero para
que se ejecute, la variable START debe ser TRUE. Más adelante esto lo establecerá PLC_PRG pero por el

CoDeSys V2.3 3-7


Control de una unidad de semáforos...

momento tenemos que configurarlo manualmente dentro de la POU. Para ello, haga doble clic en la línea de la
parte de declaración, donde se define START (START=FALSE). Esto establecerá la opción "<:=TRUE>" detrás
de la variable en color turquesa. Ahora seleccione el comando 'En línea' 'Escribir valores' para establecer este
valor. A continuación, START se mostrará en color azul en el diagrama de secuencia y el procesamiento de los
pasos se indicará con una marca azul del paso actualmente activo.

Cuando haya terminado esta prueba intermedia, utilice el comando 'En línea' 'Cerrar sesión' para salir
del modo de simulación y continuar con la programación.

Segundo nivel de expansión "SEQUENCE"


Para asegurarnos de que nuestro diagrama tiene al menos una rama alternativa, y para que podamos
apagar nuestra unidad de semáforo por la noche, ahora incluimos en nuestro programa un contador
que, después de un cierto número de ciclos de TRAFFICSIGNAL, apaga la unidad.
Al principio necesitamos una nueva variable COUNTER del tipo INT. Declarar esto como de costumbre
en la parte de declaración de SEQUENCE, e inicializarlo en Init con 0.
Action Init, Segunda Versión

Ahora seleccione la transición después de Switch1 e inserte un paso y luego una transición. Seleccione la
transición resultante e inserte una rama alternativa a su izquierda. Después de la transición izquierda, inserte
un paso y una transición. Después de la nueva transición resultante, inserte un salto después de Switch1.

Nombra las nuevas partes de la siguiente manera: el superior de los dos nuevos pasos debe llamarse
"Contar" y el inferior "Desactivado". Las transiciones se llaman (de arriba a abajo y de izquierda a
derecha) EXIT, TRUE y DELAY.OK. La nueva pieza debe parecerse a la parte marcada con el borde
negro en la siguiente imagen:
SECUENCIA de Programa, Segundo Nivel de Expansión, Parte de Instrucción

3-8 CoDeSys V2.3


3 - Escribimos un pequeño programa

Ahora se van a implementar dos nuevas acciones y una nueva condición de transición. En el paso
Contar, la variable CONTADOR se incrementa en uno:
Recuento de acciones

La transición EXIT comprueba si el contador es mayor que un valor determinado, por ejemplo 7:
Transición EXIT

En Apagado, el estado de ambas luces se establece en 5 (APAGADO), (o cada otro número no es igual a 1,
2, 3 o 4), el CONTADOR se restablece a 0 y se establece un retardo de tiempo de 10 segundos:
Acción desactivada

El resultado
En nuestra situación hipotética, cae la noche después de siete ciclos de semáforos, durante diez
segundos el semáforo se apaga solo, luego volvemos a tener luz de día, la unidad de semáforo se
enciende de nuevo y todo el proceso comienza de nuevo desde el principio. Si lo desea, haga otra
prueba de la versión actual de su programa en modo de simulación antes de que pasemos a crear la
POU PLC_PRG.
PLC_PRG
Hemos definido y correlacionado la secuencia temporal de las fases para ambos conjuntos de semáforos en
el bloque SECUENCIA. Sin embargo, dado que vemos el sistema de semáforos como un módulo de un
sistema de bus, por ejemplo, el bus CAN, tenemos que hacer que las variables de entrada y salida estén
disponibles en el PLC_PRG de bloques. Queremos poner en marcha el sistema de semáforos a través de un
interruptor de encendido y queremos enviar a cada una de las seis luces (cada semáforo rojo, verde,
amarillo) el "comando de señal" correspondiente para cada paso de la SECUENCIA. Ahora estamos
declarando las variables booleanas apropiadas para estas seis salidas y una entrada, antes de crear el
programa en el editor, y las estamos asignando, al mismo tiempo, a las direcciones IEC correspondientes.

El siguiente paso es declarar las variables Light1 y Light2 del tipo Phases en el editor de declaraciones.
Declaración LIGHT1 y LIGHT2

CoDeSys V2.3 3-9


Control de una unidad de semáforos...

Estos entregan el valor booleano de cada una de las seis luces a las seis salidas mencionadas
anteriormente para cada paso de la secuencia de bloques. Sin embargo, no estamos declarando las
variables de salida que están previstas dentro del bloque PLC_PRG, sino en Recursos para variables
globales. La variable de entrada booleana IN, que se utiliza para fijar la variable START en el bloque
SEQUENCE en TRUE, se puede fijar de la misma manera. ON también se asigna a una dirección IEC.
Seleccione la pestaña Recursos y abra la lista Variables globales.
Haga la declaración de la siguiente manera:
Declaración de las variables de entrada/salida para una configuración CAN

El nombre de la variable (por ejemplo, IN) va seguido, después de AT, por un signo de porcentaje que
comienza la dirección IEC. I significa entrada, Q salida, B (utilizado en este ejemplo) significa byte y los
bits individuales del módulo se direccionan usando 0.0 (0.1, 0.2, etc.). En este ejemplo, no realizaremos
la configuración necesaria del controlador, ya que depende del paquete de destino que tenga
disponible en su computadora. Consulte la configuración del PLC para obtener más información.
Ahora queremos rematar el bloque PLC_PRG.
Para ello entramos en la ventana del editor. Hemos seleccionado el editor de gráficos de funciones
continuas y, en consecuencia, obtenemos, en la barra de menús, una barra de símbolos CFC con
todos los elementos disponibles (ver El editor de gráficos de funciones continuas).
Haga clic con la tecla derecha del ratón en la ventana del editor y seleccione el elemento Box. Haga clic en el
texto Y y escriba "SECUENCIA" en su lugar. Esto hace que aparezca el bloque SEQUENCE con todas las
variables de entrada y salida ya definidas. Inserte otros dos elementos de bloque a los que denominará FASES.
Phases es un bloque de funciones y esto hace que se obtengan tres signos de interrogación rojos sobre el bloque
que se sustituyen por las variables LIGHT1 y LIGHT2 ya declaradas localmente. Ahora establezca un elemento del
tipo Input, que otorgue el título ON y seis elementos del tipo Output a los que asigne nombres de variable, como
se describe, a saber, L1_green, L1_yellow, L1_red, L2_green, L2_yellow, L2_red.

Todos los elementos del programa están ahora en su lugar y puede conectar las entradas y salidas,
haciendo clic en la línea corta en la entrada/salida de un elemento y arrastrándola con una tecla del
ratón constantemente presionada a la entrada/salida del elemento deseado.
Su programa finalmente debería verse como se muestra a continuación:

3-10 CoDeSys V2.3


3 - Escribimos un pequeño programa

PLC_PRG, Declaración y presentación con el editor de gráficos de funciones continuas

Simulación de semáforos
Ahora pruebe su programa en modo de simulación. Compilar ('Proyecto', 'Construir') y cargarlo ('En
línea', 'Iniciar sesión' ). Inicie el programa con 'Online' 'Start', luego establezca la variable ON en
TRUE, por ejemplo, haciendo doble clic en la entrada "ON" en el cuadro de entrada del editor CFC.
Esto marcará la variable como preparada para establecerse en <TRUE>. A continuación, pulse
<Ctrl><F7> o el comando 'En línea' 'Escribir valores', para establecer el valor. Ahora la variable START
en ABLAUF (que habíamos establecido en TRUE manualmente en el primer nivel de extensión del
programa) obtiene este valor mediante la variable ON, que se usa en PLC_PRG. Esto hará que los
ciclos de los semáforos funcionen. PLC_PRG ha cambiado a una ventana de supervisión. Haga clic
dos veces en el signo más en el editor de declaraciones, la visualización de variables se despliega y
puede ver los valores de las variables individuales.

3.2 Visualización de una unidad de semáforo...


Con la visualización de CoDeSys puede dar vida rápida y fácilmente a las variables del proyecto.
Ahora trazaremos dos semáforos y un interruptor de encendido para nuestra unidad de semáforo que
ilustrará el proceso de conmutación.

Creación de una nueva visualización


Para crear una visualización, primero debe seleccionar el rango de visualización en el Organizador de
objetos. Primero haga clic en el borde inferior de la ventana en el lado izquierdo con el POU en la
tarjeta de registro con este símbolo y el nombre Visualización. Si ahora elige el comando 'Proyecto'
'Agregar objeto', se abre un cuadro de diálogo.

Introduzca aquí cualquier nombre. Al confirmar el cuadro de diálogo con Aceptar, se abre una ventana
en la que puede configurar la nueva visualización.

Insertar elemento en Visualización


Para nuestra visualización de SEÑALES de TRÁFICO, debe proceder de la siguiente manera:

CoDeSys V2.3 3-11


Visualización de una unidad de semáforo...

• Dé el comando 'Insertar' 'Elipse' e intente dibujar un círculo de tamaño mediano (?2cm). Para ello, haga
clic en el campo del editor y dibuje con el botón izquierdo del ratón pulsado el círculo en su longitud.

• Ahora haga doble clic en el círculo. Se abre el cuadro de diálogo para editar elementos de visualización
• Elija la categoría Variables y en el campo Cambiar color ingrese el nombre de la variable. L1_red
o "L1_red". Esto significa que la variable global L1_red provocará el cambio de color tan pronto
como se establezca en TRUE. El punto antes del nombre de la variable indica que se trata de una
variable global, pero no es obligatorio.

• Luego elija la categoría Color y haga clic en el botón Interior en el área Color. Elige un color lo
más neutro posible, como el negro.
• Ahora haga clic en el botón dentro del área Color de alarma y elija el rojo que más se acerque al
de una luz roja.

El círculo resultante normalmente será negro, y cuando la variable ROJO de TRAFFICSIGNAL1 es


VERDADERO, entonces su color cambiará a rojo. Por lo tanto, hemos creado la primera luz de la primera
¡SEMÁFORO!

Los otros semáforos


Ahora ingrese los comandos 'Editar', 'Copiar' (<Ctrl>+<C>) y luego dos veces 'Editar', 'Pegar' (<Ctrl>+<V>).
Eso te da dos círculos más de exactamente el mismo tamaño que se encuentran encima del primero. Puede
mover los círculos haciendo clic en el círculo y arrastrándolo con el botón izquierdo del ratón. La posición
deseada debería, en nuestro caso, estar en una fila vertical en la mitad izquierda de la ventana del editor.
Haga doble clic en uno de los otros dos círculos para volver a abrir el cuadro de diálogo de configuración.
Introduzca en el campo Cambiar color del círculo correspondiente las siguientes variables:

para el círculo central: L1_yellow


para el círculo más bajo: L1_green
Ahora elija para los círculos en la categoría Color y en el área Color de alarma el color
correspondiente (amarillo o verde).

3-12 CoDeSys V2.3


3 - Escribimos un pequeño programa

El caso TRAFFICSIGNAL
Ahora ingrese el comando 'Insertar' 'Rectángulo', e inserte de la misma manera que el círculo un
rectángulo que encierra los tres círculos. Una vez más, elige un color lo más neutro posible para el
rectángulo y da el comando 'Extras' 'Enviar detrás' para que los círculos vuelvan a ser visibles.
Si el modo de simulación aún no está activado, puede activarlo con el comando 'En línea' 'Simulación'.
Si ahora inicia la simulación con los comandos 'En línea', 'Iniciar sesión' y 'En línea', 'Ejecutar', puede
observar el cambio de color de la primera señal de tráfico.

El segundo semáforo
La forma más sencilla de crear el segundo semáforo es copiar todos los elementos del primer
semáforo. Para ello, seleccione todos los elementos del primer semáforo y cópielos (como antes con
los semáforos del primer semáforo) con los comandos 'Editar', ' Copiar' y ' Editar', 'Pegar'. A
continuación, solo tiene que cambiar el texto "TRAFFICSIGNAL1" en los cuadros de diálogo
respectivos a "TRAFFICSIGNAL2", y se completa la visualización del segundo semáforo.

El interruptor de encendido
Inserte un rectángulo y asígnele, como se ha descrito anteriormente, un color para un semáforo de su elección e introduzca .
ON en Variables para el color de cambio. Introduzca "ON" en el campo de entrada de Contenido en la categoría Texto.

Para establecer la variable ON en TRUE con un clic del ratón en el interruptor, active la opción 'Alternar
variable' en la categoría 'Entrada' e ingrese el nombre de la variable ". ON" allí. La clave variable
significa que cuando se hace clic con el ratón en el elemento de visualización, la variable . ON se ajusta
al valor TRUE, pero se restablece al valor FALSE cuando se suelta de nuevo la tecla del ratón (hemos
creado un dispositivo de encendido simple para nuestro programa de semáforos).

CoDeSys V2.3 3-13


Visualización de una unidad de semáforo...

Fuente en la visualización
Para completar la visualización, primero debe insertar dos rectángulos más que coloca debajo de las
señales de tráfico.
En el cuadro de diálogo de visualizaciones, establezca blanco en la categoría Color para Marco y escriba en la
categoría Texto en el campo Contenido " Luz1" o "Luz2". Ahora la visualización tiene el siguiente aspecto:

3-14 CoDeSys V2.3


4 - Los componentes individuales

4 Los componentes individuales

4.1 La ventana principal...


Componentes principales de la ventana

Los siguientes elementos se encuentran en la ventana principal de CoDeSys (de arriba a abajo):
La barra de menús
La barra de herramientas (opcional); con botones para una selección más rápida de los comandos del menú.
El organizador de objetos con tarjetas de registro para POU, tipos de datos, visualizaciones y recursos
Un divisor vertical de pantalla entre el organizador de objetos y el espacio de trabajo de CoDeSys
El espacio de trabajo en el que se encuentran las ventanas del editor
La ventana de mensajes (opcional)
La barra de estado (opcional); con información sobre el estado actual del proyecto
Ver también:
Menú contextual

Barra de menú
La barra de menú se encuentra en el borde superior de la ventana principal. Contiene todos los comandos del menú.

Barra de herramientas
Al hacer clic con el ratón en un símbolo, puede seleccionar un comando de menú más rápidamente. La
elección de los símbolos disponibles se adapta automáticamente a la ventana activa.
El comando solo se lleva a cabo cuando se presiona el botón del mouse sobre el símbolo y luego se

CoDeSys V2.3 4-1


La ventana principal...

suelta. Si mantiene pulsado el puntero del ratón durante un breve periodo de tiempo sobre un símbolo
de la barra de herramientas, el nombre del símbolo se muestra en una información sobre herramientas.
Para ver una descripción de cada símbolo de la barra de herramientas, seleccione en Ayuda el editor
sobre el que desea información y haga clic en el símbolo de la barra de herramientas que le interese.
La visualización de la barra de herramientas es opcional (ver 'Proyecto', categoría 'Opciones', Escritorio).

Organizador de objetos
El organizador de objetos siempre se encuentra en el lado izquierdo de CoDeSys. En la parte inferior hay cuatro
tarjetas de registro con símbolos para los cuatro tipos de objetos: POU, tipos de datos, visualizaciones

y Recursos. Para cambiar entre los respectivos tipos de objetos, haga clic con el ratón en la tarjeta de
registro correspondiente o utilice la tecla de flecha izquierda o derecha.
En el capítulo Gestión de objetos en un proyecto aprenderá a trabajar con los objetos en el
Organizador de objetos.

Divisor de pantalla
El divisor de pantalla es el borde entre dos ventanas que no se superponen. En CoDeSys hay
separadores de pantalla entre el Organizador de Objetos y el espacio de trabajo de la ventana
principal, entre la interfaz (parte de declaración) y la implementación (parte de instrucción) de las POU
y entre el espacio de trabajo y la ventana de mensajes.
Puede mover el divisor de pantalla con el puntero del ratón. Para ello, mueva el ratón con el botón
izquierdo pulsado.
Asegúrese de que el divisor de pantalla permanezca siempre en su posición absoluta, incluso cuando
se haya cambiado el tamaño de la ventana. Si parece que el divisor de pantalla ya no está presente,
simplemente amplíe su ventana.

Espacio de trabajo
El espacio de trabajo se encuentra en el lado derecho de la ventana principal de CoDeSys. Todos los
editores de objetos y el administrador de bibliotecas se abren en esta área. El nombre del objeto actual
aparece en la barra de título; en el caso de las POU, aparece entre paréntesis una abreviatura para el
tipo de POU y el lenguaje de programación actualmente en uso.
Encontrará la descripción de los editores en el capítulo Los editores
En la opción de menú 'Ventana' encontrará todos los comandos para la gestión de ventanas.

Ventana de mensajes
La ventana de mensajes está separada por un divisor de pantalla debajo del espacio de trabajo en la
ventana principal.
Contiene todos los mensajes de las compilaciones, comprobaciones o comparaciones anteriores. Los
resultados de la búsqueda y la lista de referencias cruzadas también se pueden mostrar aquí.

4-2 CoDeSys V2.3


4 - Los componentes individuales

Si hace doble clic con el ratón en la ventana de mensajes de un mensaje o pulsa <Intro>, el editor se
abre con el objeto. Se selecciona la línea correspondiente del objeto. Con los comandos 'Editar',
'Siguiente error' y 'Editar', 'Error anterior', puede saltar rápidamente entre los mensajes de error.
La visualización de la ventana de mensajes es opcional (ver 'Ventana', 'Mensajes').

Barra de estado
La barra de estado en la parte inferior del marco de la ventana principal en CoDeSys le brinda
información sobre el proyecto actual y sobre los comandos de menú.
Si un elemento es relevante, el concepto aparece en el lado derecho de la barra de estado en escritura
negra, de lo contrario en escritura gris.
Cuando se trabaja en modo online, el concepto Online aparece en letras negras. Si está trabajando en
el modo sin conexión, aparece en un script gris.
En el modo en línea, puede ver en la barra de estado si está en la simulación (SIM), si el programa se está procesando
(RUNS), si se ha establecido un punto de interrupción (BP) o si se están forzando variables (FORCE).

Con el editor de texto se indica el número de línea y columna de la posición actual del cursor (por
ejemplo, Línea:5, Col.:11). En el modo en línea, 'OV' se indica en negro en la barra de estado. Al
presionar la tecla <Ins> se cambia entre el modo Sobrescribir e Insertar.
Si el punto del ratón está en una visualización, se indica la posición actual de X e Y del cursor en
píxeles en relación con la esquina superior izquierda de la pantalla. Si el puntero del ratón está en un
elemento , o si se está procesando un elemento, se indica su número. Si tiene un elemento para
insertar, también aparece (por ejemplo, Rectángulo).
Si ha elegido un comando de menú pero aún no lo ha confirmado, aparecerá una breve descripción en
la barra de estado.
La visualización de la barra de estado es opcional (consulte 'Proyecto', categoría 'Opciones', Escritorio).

Menú contextual
Atajo: <Mayús>+<F10>
En lugar de usar la barra de menú para ejecutar un comando, puede usar el botón derecho del mouse.
El menú que aparece a continuación contiene los comandos más utilizados para un objeto
seleccionado o para el editor activo. La elección de los comandos disponibles se adapta
automáticamente a la ventana activa. La elección de los comandos disponibles se adapta
automáticamente a la ventana activa.

4.2 Opciones de proyecto...


'Proyecto' 'Opciones'
Con este comando se abre el cuadro de diálogo para configurar las opciones. Las opciones se dividen
en diferentes categorías. Elija la categoría deseada en el lado izquierdo del cuadro de diálogo con un
clic del mouse o usando las teclas de flecha y cambie las opciones en el lado derecho.
Una imagen de las opciones que se establecen para el proyecto actual se encontrará en la pestaña
Recursos en el componente 'Espacio de trabajo'.
Los ajustes, entre otras cosas, sirven para configurar la vista de la ventana principal. A menos que se
determine lo contrario, se guardan en el archivo "CoDeSys.ini" y se restauran en el siguiente inicio
de CoDeSys.

CoDeSys V2.3 4-3


Opciones de proyecto...

Las categorías: almacenado en almacenado en


CoDeSys proyecto
Cargue y guarde X
Información del usuario X
Editor X
Escritorio X
Color X
Directorios Gato. Común Gato. Proyecto

Registro X
Construir X
Contraseñas X
Descarga de la fuente X
Configuración de símbolos X
Control de código fuente del proyecto
X
Macros X

Opciones para cargar y guardar


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el siguiente cuadro de diálogo:
Cuadro de diálogo de opciones de la categoría Cargar y guardar

Al activar una opción, aparece una marca de verificación ( ) antes de la opción.


Crear copia de seguridad: CoDeSys crea un archivo de copia de seguridad en cada guardado con la extensión ".bak".
A diferencia del archivo *.asd (ver más abajo, 'Guardar automáticamente'), este archivo *.bak se conserva después de
cerrar el proyecto. Por lo tanto, puede restaurar la versión que tenía antes del último guardado del proyecto.

Guardado automático: Mientras trabaja, su proyecto se guarda de acuerdo con un intervalo de tiempo
definido (Intervalo de guardado automático) en un archivo temporal con la extensión ".asd" en el
directorio de proyectos. Este archivo se borra al salir normalmente del programa. Si por alguna razón
CoDeSys no se apaga "normalmente" (por ejemplo, debido a un corte de energía), entonces el archivo
no se borrará. Al volver a abrir el archivo, aparece el siguiente mensaje:

4-4 CoDeSys V2.3


4 - Los componentes individuales

Ahora puede decidir si desea abrir el archivo original o el archivo de guardado automático.
Si se abre una biblioteca *.lib como proyecto, se creará un archivo de guardado automático correspondiente "*.asl".
Guardado automático antes de la compilación: El proyecto se guardará antes de cada compilación.
Al hacerlo, se creará un archivo con la extensión ".asd" o ".asl", que se comporta como se describió
anteriormente para la opción 'Auto Save'.
Solicitar información del proyecto: Al guardar un nuevo proyecto o guardar un proyecto con un
nuevo nombre, se llama automáticamente a la información del proyecto. Puede visualizar la
información del proyecto con el comando 'Proyecto' 'Información del proyecto' y también procesarla.
Carga automática: En el siguiente inicio de CoDeSys, el último proyecto abierto se carga automáticamente. La carga de
un proyecto al inicio de CoDeSys también puede tener lugar introduciendo el proyecto en la línea de comandos.

Recordar el proyecto de arranque al salir: Si el proyecto se ha modificado y descargado sin crear un nuevo
proyecto de arranque desde la última descarga de un proyecto de arranque, un cuadro de diálogo avisará al
usuario antes de abandonar el proyecto: "No se ha creado ningún proyecto de arranque desde la última descarga.
¿Salir de todos modos?".
Guardar credenciales de ENI: Se guardarán el nombre de usuario y la contraseña, tal como se
insertan en el cuadro de diálogo de inicio de sesión de la base de datos de ENI. En cuanto a los datos
de acceso, introducidos una vez por el usuario en 'Abrir proyecto desde el gestor de código fuente'
(véase el capítulo 4.2, 'Archivo' 'Abrir'), en este caso se guardarán adicionalmente el nombre de usuario
y la contraseña en el archivo codesys.ini.
Opciones para la información del usuario
Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el siguiente cuadro de diálogo:
Cuadro de diálogo Opciones de la categoría Información del usuario

A la información del usuario pertenecen el nombre del usuario, sus iniciales y la empresa para la que
trabaja. Cada una de las entradas puede ser modificada. La configuración se aplicará a cualquier otro
proyecto que se cree con CoDeSys en la computadora local.

CoDeSys V2.3 4-5


Opciones de proyecto...

Opciones para el editor


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el cuadro de diálogo que se muestra a continuación.
Puede realizar los siguientes ajustes para los editores:
Autodeclaración: Si esta opción está activada, después de la entrada de una variable aún no declarada,
aparecerá un cuadro de diálogo en todos los editores con el que se puede declarar esta variable.
Autoformatear: Si esta opción está activada, CoDeSys ejecuta el formateo automático en el editor de
IL y en el editor de declaraciones. Al terminar con una línea, se realiza el siguiente formato: 1.Los
operadores escritos en letras minúsculas se muestran en mayúsculas; Se insertan pestañas
para que las columnas se dividan uniformemente.
Enumerar componentes: Si esta opción está activada, la "funcionalidad IntelliSense " estará disponible para
trabajar como asistente de entrada. Esto significa que si inserta un punto en una posición en la que se debe
insertar un identificador, se abrirá una lista de selección que ofrece todas las variables globales que se encuentran
en el proyecto. Si inserta el nombre de una instancia de bloque de funciones, obtendrá una lista de selección de
todas las entradas y salidas del bloque de funciones instanciado. La "función IntelliSense" está disponible en los
editores, en el Gestor de Relojes y Recetas, en las visualizaciones y en el Seguimiento de muestreo.

Cuadro de diálogo Opciones de la categoría Editor

Declaraciones como tablas: Si esta opción está activada, puede editar las variables de una tabla en lugar
de utilizar el editor de declaraciones habitual. Esta tabla está ordenada como una caja de tarjetas, donde
encontrará pestañas para variables de entrada, variables de salida, variables locales y variables in_out. Para
cada variable hay campos de edición para insertar Nombre, Dirección, Tipo, Inicial y Comentario.

Tab-Width: En el campo Tab-Width en la categoría Editor del cuadro de diálogo Opciones, puede
determinar el ancho de una pestaña como se muestra en los editores. La configuración predeterminada
es de cuatro caracteres, por lo que el ancho de caracteres depende de la fuente que se elija.
Fuente: Al hacer clic en el botón Fuente en la categoría Editor del cuadro de diálogo Opciones, puede elegir la fuente
en todos los editores de CoDeSys. El tamaño de la fuente es la unidad básica para todas las operaciones de dibujo. De
este modo, la elección de un tamaño de letra más grande amplía la impresión, incluso con cada editor de CoDeSys.

Una vez que haya ingresado el comando, se abre el cuadro de diálogo de fuente para elegir la fuente,
el estilo y el tamaño de fuente.

4-6 CoDeSys V2.3


4 - Los componentes individuales

Cuadro de diálogo para configurar la fuente

Marcar: Al elegir Marcar en la categoría Editor en el cuadro de diálogo Opciones, puede elegir si la
selección actual en los editores gráficos debe estar representada por un rectángulo punteado
(Punteado), un rectángulo con líneas continuas (Línea) o por un rectángulo relleno (Relleno). En este
último caso, la selección se muestra invertida.
Valores de bit: Al elegir Valores de bits en la categoría Editor del cuadro de diálogo Opciones, puede
elegir si los datos binarios (tipo BYTE, WORD, DWORD) durante la supervisión deben mostrarse como
decimales, hexadecimales o binarios.
Suprimir la supervisión de tipos complejos (matriz, puntero, VAR_IN_OUT): si esta opción está
activada, los tipos de datos complejos como matrices, punteros VAR_IN_OUTs no se mostrarán en la
ventana de supervisión en modo en línea.
Mostrar símbolos POU: Si esta opción está activada, en los cuadros de módulo que se insertan en un
editor gráfico, adicionalmente se mostrarán los símbolos, si están disponibles en la carpeta de la
biblioteca como mapas de bits. El nombre del archivo de mapa de bits debe estar compuesto por el
nombre del módulo y la extensión ".bmp". Ejemplo: Para el módulo TON hay un archivo de símbolos
TON.bmp disponible. El cuadro se mostrará de la siguiente manera:

Opciones para el escritorio


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el cuadro de diálogo que se muestra a continuación.

Cuando se activa una opción, aparece una marca de verificación delante de ella.
Barra de herramientas: La barra de herramientas con los botones para una selección más rápida de
los comandos de menú se hace visible debajo de la barra de menú.
Barra de estado: La barra de estado en el borde inferior de la ventana principal de CoDeSys se vuelve visible.
En línea en modo Seguridad: En el modo Online, con los comandos 'Ejecutar', 'Detener', '
Restablecer', 'Alternar punto de interrupción', 'Ciclo único', 'Escribir valores', 'Forzar valores' y 'Liberar fuerza',
aparece un cuadro de diálogo con la solicitud de confirmación de si el comando debe ejecutarse realmente.
Si es compatible con el sistema de destino, es posible que haya disponible un cuadro de diálogo ampliado
cuando desee cargar el proyecto real desde el sistema de programación al PLC Si ya hay un proyecto en el
PLC, este cuadro de diálogo mostrará la información del proyecto de ese proyecto, así como la información
del proyecto que se va a cargar actualmente. Esta información del proyecto también estará disponible en
caso de crear un proyecto de arranque cuando ya exista uno en el PLC.

Esta opción se guarda con el proyecto.

CoDeSys V2.3 4-7


Opciones de proyecto...

Cuadro de diálogo Opciones de la categoría Escritorio

Consultar los parámetros de comunicación antes de iniciar sesión: Tan pronto como se ejecute el
comando 'En línea' 'Iniciar sesión', primero se abrirá el cuadro de diálogo de parámetros de comunicación.
Para entrar en el modo en línea, primero debe cerrar este cuadro de diálogo con Aceptar.
No guardar los parámetros de comunicación en el proyecto: La configuración del cuadro de diálogo de
parámetros de comunicación ('En línea', 'Parámetros de comunicación') no se guardará con el proyecto.
Mostrar márgenes del área de impresión: En cada ventana del editor, los límites del rango de impresión
establecido actualmente están marcados con líneas discontinuas rojas. Su tamaño depende de las
características de la impresora (tamaño del papel, orientación) y del tamaño del campo "Contenido" del
diseño de impresión establecido (menú: 'Archivo' "Configuración de la documentación").

F4 ignora las advertencias: Después de la compilación, cuando se presiona F4 en una ventana de


mensajes, el foco salta solo a las líneas con mensajes de error; los mensajes de advertencia se ignoran.
Representación MDI: De forma predeterminada, esta opción (Multiple-Document-Interface) está activada
y, por lo tanto, se pueden abrir varias ventanas al mismo tiempo. Si la opción está desactivada (modo SDI),
solo se puede abrir una ventana y se mostrará en modo de pantalla completa. Excepción: La acción de un
programa y el programa en sí se pueden mostrar uno al lado del otro incluso en modo MDI.

Tiempo de espera de comunicaciones [ms]: para servicios de comunicación estándar: intervalo de


tiempo en milisegundos, después del cual la comunicación con el sistema de destino finalizará si no se
detecta más actividad. Valores posibles: 1-10000000 ms.
Tiempo de espera de las comunicaciones para la descarga [ms]: para servicios de comunicación de larga
duración (descarga de programas, carga y descarga de archivos, creación y comprobación de proyectos de
arranque): intervalo de tiempo en milisegundos después del cual la comunicación con el sistema de destino
finalizará si no se detecta más actividad (tiempo de espera de descarga). Valores posibles: 1-10000000 ms.

Codificación XML: Se puede seleccionar el formato para las exportaciones XML. La configuración
predeterminada es "ISO 8859-1". Esto se refiere a la comunicación a través de ENI, la interfaz de
mensajes y la interfaz de automatización COM, así como a cada exportación XML activada por el
usuario desde CoDeSys. Una excepción es la exportación XML del Administrador de licencias.
Idioma: Defina aquí en qué idioma deben mostrarse los textos del menú y de los diálogos.

Nota: Tenga en cuenta que la elección del idioma no es posible en Windows 98T.

Nota: La configuración se almacenará en CoDeSys.

4-8 CoDeSys V2.3


4 - Los componentes individuales

Opciones de colores
Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el siguiente cuadro de diálogo:
Cuadro de diálogo Opciones de la categoría Color

Puede editar la configuración de color predeterminada de CoDeSys. Puede elegir si desea cambiar la
configuración de color de los números de línea (preajuste predeterminado: gris claro), de las posiciones de
punto de interrupción ( gris oscuro), de un punto de interrupción establecido (azul claro), de la posición
actual (rojo), de las posiciones alcanzadas (verde) o de la supervisión de valores booleanos (azul).

Si ha elegido uno de los botones indicados, se abre el cuadro de diálogo para la entrada de colores.
Cuadro de diálogo para establecer colores

CoDeSys V2.3 4-9


Opciones de proyecto...

Opciones para directorios


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el siguiente cuadro de diálogo:
Cuadro de diálogo Opciones de la categoría Directorios

Se pueden introducir directorios en las áreas Proyecto y Común para que CoDeSys los utilice en la
búsqueda de bibliotecas, configuración del controlador y archivos de visualización, así como para
almacenar archivos de compilación y carga de código fuente . (Consideración: Los archivos de
compilación, por ejemplo, son archivos de mapas y listas, sin embargo, no archivos de símbolos. Este último
se guardará en el directorio del proyecto). Si activa el botón (...) detrás de un campo, se abre el cuadro de
diálogo de selección de directorios. En el caso de los archivos de biblioteca y configuración, se pueden
introducir varias rutas para cada uno, separadas por punto y coma ";".
Por favor, tenga en cuenta:
- Las rutas de la biblioteca se pueden introducir en función de la ruta del archivo de proyecto con el prefijo ".". Por
ejemplo: Si escribe ".\libs", las bibliotecas también se buscarán en 'C:\programs\projects\libs', si el proyecto actual está en
'C:\programs\projects'. Para obtener información sobre las rutas de las bibliotecas, consulte también: 'Capítulo 6.4,
'Insertar' 'Biblioteca adicional'. - No utilice espacios vacíos ni caracteres especiales, excepto "_" en las rutas de directorio.

La información del área Proyecto se almacena con el proyecto.


La información en el área común se escribe en el archivo ini del sistema de programación y, por lo
tanto, se aplica a todos los proyectos.
El área de destino solo muestra los directorios de bibliotecas y archivos de configuración establecidos en el
sistema de destino, por ejemplo, a través de entradas en el archivo de destino. Estos campos no se pueden
editar, pero se puede seleccionar y copiar una entrada (menú contextual del botón derecho del ratón).

Por lo general, CoDeSys busca primero en los directorios introducidos en 'Proyecto', luego en los de
'Destino' (definidos en el archivo de destino) y, finalmente, en los que aparecen en 'Común'. Si se
encuentran dos archivos con nombres idénticos, se utilizará el del directorio que se examina primero.

Opciones para el registro


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el cuadro de diálogo que se muestra a continuación.
En este cuadro de diálogo, puede configurar un archivo que actúe como registro del proyecto, registrando todas las
acciones del usuario y los procesos internos durante el procesamiento del modo en línea (consulte también: Registro).

Si se abre un proyecto existente para el que aún no se ha generado ningún registro, se abre un cuadro
de diálogo que llama la atención sobre el hecho de que se está configurando un registro que recibirá su
primera entrada después del siguiente proceso de inicio de sesión.
El registro se almacena automáticamente como un archivo binario en el directorio del proyecto cuando se guarda el proyecto.
Si prefiere un directorio de destino diferente, puede activar la opción Directorio para registros de proyectos: e introduzca

la ruta adecuada en el campo de edición. Utilice el botón para acceder al cuadro de diálogo
"Seleccionar directorio" para este propósito.

4-10 CoDeSys V2.3


4 - Los componentes individuales

Diálogo de opciones para la categoría Registro

Al archivo de registro se le asigna automáticamente el nombre del proyecto con la extensión .log. El número máximo de
sesiones en línea que se van a grabar viene determinado por Tamaño máximo del registro del proyecto. Si se
supera este número durante la grabación, se elimina la entrada más antigua para dejar espacio a la más reciente.

La función de registro se puede activar o desactivar en el campo Opción Activar registro.


Puede seleccionar en el área Filtro qué acciones se van a registrar: Acciones de usuario, Acciones internas, Cambios
de estado, Excepciones. Solo las acciones que pertenezcan a las categorías marcadas aquí aparecerán en la ventana
de registro y se escribirán en el archivo de registro. (Para una descripción de las categorías, consulte el Registro).

La ventana de registro se puede abrir con el comando 'Ventana' 'Registro'.

Opciones para compilar


Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el cuadro de diálogo que se muestra a continuación.

Depuración: Depende de las descripciones de destino si esta opción puede ser activada/desactivada por el
usuario o cuál es la configuración dada. Si se activa, se crea un código de depuración adicional, es decir, el código
puede llegar a ser considerablemente más grande. El código de depuración es necesario para hacer uso de las
funciones de depuración ofrecidas por CoDeSys (por ejemplo, puntos de interrupción). Al desactivar esta opción,
el procesamiento del proyecto se vuelve más rápido y el tamaño del código disminuye. La opción se almacena con
el proyecto.
Reemplazar constantes: El valor de cada constante de tipo escalar (por lo tanto, no para cadenas, matrices
y estructuras) se carga directamente, y en el modo en línea las constantes se muestran en verde. El
forzamiento, la escritura y la supervisión de una constante ya no son posibles. Si la opción está desactivada,
el valor se carga en una ubicación de almacenamiento a través del acceso a variables (esto permite, de
hecho, escribir el valor de la variable, pero implica un tiempo de procesamiento más largo).

Comentarios anidados: los comentarios se pueden colocar dentro de otros


comentarios. Ejemplo: (* a:=inst.out; (* a comprobar*) b:=b+1; *)

Aquí, el comentario que comienza con el primer corchete no se cierra con el corchete que sigue a
"marcado", sino solo con el último corchete.
Atención: Actualmente esta opción debe usarse con cuidado: si la configuración en el proyecto no coincide con la
configuración elegida en una biblioteca que también se ha creado en CoDeSys y ahora se usa en el proyecto, se
producirán errores del compilador, que son difíciles de interpretar por el usuario y, a menudo, no se pueden borrar.

CoDeSys V2.3 4-11


Opciones de proyecto...

Cuadro de diálogo Opciones de la categoría Construir

Crear archivo binario de la aplicación: Se crea una imagen binaria del código generado (proyecto de arranque)
en el directorio del proyecto durante la compilación. Nombre del archivo: <project_name>.bin. En comparación, el
comando 'En línea' 'Crear proyecto de arranque' configura el proyecto de arranque en el controlador.

Acciones ocultar programas: Esta opción está activada por defecto, cuando se crea un nuevo proyecto.
Significa: Si una acción local tiene el mismo nombre que una variable global o un programa, la siguiente
jerarquía es válida: variable local antes de acción local antes de variable global antes de programa.

Respecto: Si se abre un proyecto existente, que se ha creado con una versión anterior de CoDeSys, la opción se
desactivará por defecto. De este modo, se puede mantener la jerarquía previamente válida (variable local antes de
variable global, antes de programa antes de acción local).

Tratar LREAL como REAL: Si esta opción está activada (la disponibilidad depende del sistema de
tiempo de ejecución; por defecto: no activado), la compilación manejará los valores de LREAL como
valores REAL. Esto se puede utilizar para crear proyectos independientes de la plataforma.
Número de segmentos de datos: Aquí se define cuántos segmentos de memoria se deben asignar en el PLC para
los datos del proyecto. Este espacio es necesario para hacer posible el cambio en línea, incluso si se han agregado
nuevas variables. Si durante la compilación recibe el mensaje "Memoria de datos global insuficiente...", introduzca
un número más alto. En este sentido, las variables locales del programa se manejarán como variables globales.

Excluir objetos: Este botón abre el cuadro de diálogo Excluir objetos de la compilación: En el árbol de
componentes del proyecto, seleccione las POU que no deben tenerse en cuenta durante la compilación y active
la opción Excluir. A continuación, las POU excluidas se mostrarán en color verde en el árbol de selección.
Presione el botón Excluir no utilizados, si solo desea que se muestren las POU que se utilizan actualmente en
el programa. Tenga en cuenta que un solo objeto que se selecciona en el Organizador de objetos también se
puede excluir de la compilación utilizando el comando 'Excluir de la compilación' en el menú contextual.

Versión del compilador: Aquí se define la versión del compilador que se va a utilizar. Las versiones de CoDeSys
posteriores a la V2.3.3 (versión, Service Pack, parche) incluirán, además de la versión actual del compilador, las
versiones anteriores del compilador (de vuelta a la V2.3.3). Si siempre desea que el proyecto se compile con la última
versión del compilador, active la opción Usar más reciente. En este caso, sin embargo, se comprobará si el sistema
de programación abierto actualmente también es de esa versión. Si esto no es cierto, se utilizará la versión del
compilador que coincida con la versión del sistema de programación realmente utilizada. Si el proyecto debe
compilarse con una versión específica, defínala a través de la lista de selección en Fix.

Para ejercer control sobre el proceso de compilación, puede configurar dos macros: la macro en el

4-12 CoDeSys V2.3


4 - Los componentes individuales

campo Macro antes de compilar se ejecuta antes del proceso de compilación; la macro en el campo Macro después de
compilar . Sin embargo, aquí no se pueden utilizar los siguientes comandos de macro: archivo nuevo, archivo abierto,
cierre de archivo, archivo guardar como, archivo de salida, en línea, compilación de proyecto, comprobación de proyecto,
compilación de proyecto, limpieza de proyecto, reconstrucción de proyecto, depuración, lista de observación.

Comprobar automáticamente:
Para comprobar la corrección semántica en cada compilación del proyecto se pueden activar las
siguientes opciones:
Variables no utilizadas
Áreas de memoria superpuestas
Acceso simultáneo
Acceso de escritura múltiple en la salida
Los resultados se mostrarán en la ventana de mensajes. Estas comprobaciones también pueden
iniciarse mediante los comandos respectivos del submenú 'Comprobar' en el menú 'Proyecto'.
Si el sistema de destino lo admite, los resultados negativos de la comprobación producirán errores del compilador.

Nota: Todas las entradas del cuadro de diálogo Opciones de construcción se almacenan con el proyecto.

Contraseñas
Para proteger sus archivos del acceso no autorizado, CoDeSys ofrece la opción de usar una
contraseña para protegerse contra la apertura o el cambio de sus archivos.
Si elige esta categoría en el cuadro de diálogo Opciones, obtendrá el cuadro de diálogo correspondiente.
Introduzca la contraseña deseada en el campo Contraseña. Para cada carácter escrito aparece un
asterisco (*) en el campo. Debe repetir la misma palabra en el campo Confirmar contraseña. Cierre el
cuadro de diálogo con Aceptar. Si recibes el mensaje:
"La contraseña no concuerda con la confirmación",
Entonces cometió un error de escritura durante una de las dos entradas. En este caso, repita ambas
entradas hasta que el cuadro de diálogo se cierre sin ningún mensaje.
Si ahora guarda el archivo y luego lo vuelve a abrir, aparecerá un cuadro de diálogo en el que se le
pedirá que introduzca la contraseña. El proyecto solo se puede abrir si se introduce la contraseña
correcta. De lo contrario, CoDeSys informa:
"La contraseña no es correcta".
Cuadro de diálogo Opciones de la categoría Contraseñas

CoDeSys V2.3 4-13


Opciones de proyecto...

Junto con la apertura del archivo, también puede usar una contraseña para protegerse contra el cambio
del archivo. Para ello, debe introducir una contraseña en el campo Contraseña de protección contra
escritura y confirmar esta entrada en el campo inferior.
Un proyecto protegido contra escritura se puede abrir sin contraseña. Para ello basta con pulsar el botón Cancelar,
si CoDeSys le indica que introduzca la contraseña de protección contra escritura al abrir un archivo.
Ahora puede compilar el proyecto, cargarlo en el PLC, simular, etc., pero no puede cambiarlo.
Por supuesto, es importante que memorices ambas contraseñas. Sin embargo, si alguna vez olvida
una contraseña, póngase en contacto con el fabricante de su PLC.
Las contraseñas se guardan con el proyecto.
Para crear derechos de acceso diferenciados, puede definir grupos de usuarios y "Contraseñas para
grupos de usuarios").
Además, hay que tener en cuenta las posibilidades ampliadas de proteger un proyecto mediante el
cifrado (véase el Capítulo 4.3, 'Archivo' 'Guardar como'), que por ejemplo puede ayudar a proteger una
biblioteca para que no se utilice sin haber introducido una clave.

Descarga de la fuente
Al seleccionar esta categoría, se abrirá el siguiente cuadro de diálogo:
Cuadro de diálogo de opciones para la categoría Descarga de fuentes

Puede elegir a qué tiempo y en qué medida se carga el proyecto en el sistema de control. La opción
Código fuente solo involucra exclusivamente el archivo CoDeSys (extensión de archivo .pro). La
opción Todos los archivos también incluye archivos como los archivos de biblioteca asociados,
mapas de bits de visualización, archivos de configuración, etc.
El uso de la opción Implícito en la carga permite que el rango de archivos seleccionado se cargue
automáticamente en el sistema del controlador con el comando 'En línea ' 'Descargar'.
El uso de la opción Implícito en la creación del proyecto de arranque permite que el rango de archivos seleccionado
se cargue automáticamente en el sistema del controlador con el comando 'En línea' 'Crear proyecto de arranque'.

Usando la opción Aviso en la carga se ofrece un cuadro de diálogo, cuando se da el comando 'En
línea ' 'Descargar', con la pregunta "¿Desea escribir el código fuente en el sistema de control?". Al
presionar Sí, se cargará automáticamente el rango de archivos seleccionado en el sistema del
controlador, o alternativamente puede terminar con No.
Al utilizar la opción On demand, el rango de archivos seleccionado debe cargarse expresamente en el
sistema de control dando el comando 'Online' 'Descarga de código fuente'.

4-14 CoDeSys V2.3


4 - Los componentes individuales

El proyecto que se almacena en el sistema de control se puede recuperar usando 'Archivo' 'Abrir' con
Proyecto abierto desde PLC. Los archivos se desempaquetarán en el proceso.

Opciones para 'Configuración de símbolos'


El cuadro de diálogo que se presenta aquí (¡no disponible en modo simulación!) se utiliza para configurar el archivo
de símbolos que se creará durante cada compilación del proyecto. El archivo de símbolos se crea como un archivo
de texto <nombre del proyecto>.sym respectivamente como un archivo binario <nombre del proyecto>.sdb (el
formato depende de la versión de la pasarela utilizada) en el directorio del proyecto. El archivo es necesario para el
intercambio de datos con el controlador a través de la interfaz simbólica y será utilizado para ese propósito, por
ejemplo, por el servidor OPC o GatewayDDE.
Si la opción Crear entradas de símbolos está activada, las entradas de símbolos para las variables del
proyecto se escribirán automáticamente en el archivo de símbolos. De lo contrario, solo se contiene
información de versión sobre el archivo y el proyecto.
Si además está activada la opción Volcar tabla de símbolos XML, también se creará un archivo XML
con la información de símbolos en el directorio del proyecto. Se llamará <nombre del proyecto>.
SYM_XML.
Tenga en cuenta lo siguiente al configurar las entradas de símbolos:
Si la opción 'Configuración de símbolos desde el archivo INI' está activada en la configuración de destino, la
configuración del símbolo se leerá desde el archivo codesys.ini o desde otro archivo ini que esté definido allí.
(En este caso, el cuadro de diálogo 'Establecer atributos de objeto' en CoDeSys no se puede editar).

Si la opción 'Configuración de símbolos desde el archivo INI' no está activada, las entradas de símbolos
se generarán de acuerdo con los ajustes que puede realizar en el cuadro de diálogo 'Establecer
atributos de objeto'. Para llegar allí, use el botón Configurar archivo de símbolos:
Cuadro de diálogo 'Establecer atributos de objeto' (en la categoría de opción Configuración de símbolos)

Utilice el editor de selección estructurado en árbol para marcar las variables que deben introducirse en el
archivo de símbolos. Para ello, puede seleccionar una entrada de POU (por ejemplo, Variables globales) que
marcará automáticamente todas las variables que pertenezcan a esta POU, o puede seleccionar variables
individuales que encuentre enumeradas para cada POU en el árbol. A continuación, configure las opciones
deseadas en la parte inferior del cuadro de diálogo haciendo clic con el ratón en los cuadros pequeños
correspondientes. Las opciones activadas están marcadas. Se pueden configurar las siguientes opciones:

Exportar variables del objeto: Las variables del objeto seleccionado se exportan en el archivo de símbolos.
Las siguientes opciones solo pueden surtir efecto si la opción Exportar variables de objeto está activada:
Exportar entradas de datos: Las entradas para acceder a las variables globales se crean para las
estructuras y matrices de los objetos.
Exportar componentes de estructura: Se crea una entrada individual para cada componente variable
de las estructuras del objeto.

CoDeSys V2.3 4-15


Opciones de proyecto...

Exportar entradas de matriz: Se crea una entrada individual para cada componente variable de las matrices del objeto.
Acceso de escritura: Las variables del objeto pueden ser cambiadas por el servidor OPC.
Una vez que se completa la configuración de las opciones para las variables seleccionadas actualmente, también
se pueden seleccionar otras POU, sin cerrar el cuadro de diálogo antes, y se les puede dar una configuración de
opción. Esto se puede llevar a cabo para cualquier número deseado de selecciones de POU, una tras otra.
Cuando se cierra el cuadro de diálogo seleccionando Aceptar, se aplican todas las configuraciones realizadas
desde que se abrió el cuadro de diálogo.
Nota: Considere la posibilidad de usar pragmas en la declaración de una variable, lo que podría definir que la
variable se lleve al archivo de símbolos con acceso restringido o que se excluya del archivo de símbolos.

Opciones para "Control de código fuente del proyecto"


Este diálogo se utiliza para definir si el proyecto debe gestionarse en una base de datos de proyecto y
para configurar la interfaz ENI en consecuencia.
Usar control de código fuente ( ENI): Active esta opción si desea acceder a una base de datos de proyecto a través
del servidor ENI para administrar todas o una selección de POU del proyecto en esta base de datos. Condiciones
previas: El servidor ENI y la base de datos deben estar instalados y debe estar registrado como usuario en la base de
datos. Consulte también la documentación del servidor ENI o el capítulo 'El ENI de CoDeSys'.

Si la opción está activada, las funciones de la base de datos (Check in, Get last version, etc.) estarán disponibles para
manejar las POU del proyecto. A continuación, algunas de las funciones de la base de datos se ejecutarán
automáticamente como se define en los diálogos de opciones, y en el menú 'Proyecto' 'Enlace a la base de datos'
encontrará los comandos para llamar a las funciones explícitamente. Además, se agregará una pestaña 'Conexión a la base
de datos' en el cuadro de diálogo Propiedades, donde puede asignar una POU a una categoría de base de datos en
particular.
Cuadro de diálogo Opciones de la categoría Control de código fuente del proyecto

Conecte nuevos objetos con la siguiente base de datos:


Aquí se establece un valor predeterminado: si se inserta un nuevo objeto en el proyecto ('Proyecto',
'Objeto', 'Agregar'), se asignará automáticamente a esa categoría de objeto que se define aquí. Esta
asignación se mostrará en el cuadro de diálogo de propiedades del objeto ('Proyecto', 'Objeto',
'Propiedades') y se puede modificar allí más adelante. Las posibles asignaciones:
Proyecto: La POU se almacenará en la carpeta de la base de datos que se define en el cuadro de
diálogo Configuración de ENI/Objetos del proyecto en el campo 'Nombre del proyecto'.
Objetos compartidos: La POU se almacenará en la carpeta de la base de datos que se define en el
cuadro de diálogo Configuración de ENI/Objetos compartidos en el campo 'Nombre del proyecto'.
Local: La POU no se gestionará en una base de datos ENI, sino que solo se almacenará localmente

4-16 CoDeSys V2.3


4 - Los componentes individuales

en el proyecto. Además de 'Objetos de proyecto' y 'Objetos compartidos', hay una tercera categoría de
base de datos, 'Archivos de compilación', para dichos objetos que no se crean hasta que se ha
compilado el proyecto. Por lo tanto, esta categoría no es relevante para la configuración actual.
Preguntar por el tipo de objetos nuevos: Si esta opción está activada, cada vez que se agregue un
nuevo objeto al proyecto, se abrirá el cuadro de diálogo 'Objeto' 'Propiedades', donde puede elegir a
cuál de las tres categorías de objetos mencionadas anteriormente se debe asignar la POU. Al hacerlo,
se puede sobrescribir la configuración estándar.
configurar ENI: Este botón abre el primero de los tres cuadros de diálogo de configuración de ENI:
Cada objeto de un proyecto, que se determina para ser gestionado en la base de datos de ENI, puede asignarse a
una de las siguientes categorías de base de datos: 'Objetos de proyecto', 'Objetos compartidos' o 'Compilar
archivos'. Para cada una de estas categorías, hay disponible un cuadro de diálogo separado para definir en qué
carpeta de la base de datos debe almacenarse y qué preajustes deben ser efectivos para ciertas funciones de la
base de datos:
Cuadro de diálogo Configuración ENI / Objetos de proyecto
Cuadro de diálogo Configuración ENI / Objetos compartidos
Cuadro de diálogo Configuración de ENI / Compilar archivos

Nota: Cada objeto se almacenará también localmente (con proyecto) en cualquier caso.

El cuadro de diálogo se abrirá uno tras otro si está realizando una configuración principal. En este caso, un asistente
(Botón Siguiente) te guiará y los ajustes introducidos en el primer diálogo se copiarán automáticamente a
los demás, de modo que solo tendrás que modificarlos si necesitas diferentes valores de parámetros.
Si desea modificar una configuración existente, los tres cuadros de diálogo se combinan en una
ventana (tres pestañas).
Si aún no ha iniciado sesión correctamente en la base de datos antes, se abrirá automáticamente el
cuadro de diálogo Iniciar sesión.

Opciones para objetos de proyecto y objetos compartidos con respecto a la base de datos del proyecto
Estos diálogos forman parte de la configuración de las opciones de la base de datos del proyecto ('Proyecto',
'Opciones', 'Control de código fuente del proyecto'). Aquí se definen los parámetros de acceso para las categorías
de base de datos 'Objetos de proyecto' y 'Objetos compartidos'. Ambos cuadros de diálogo contienen los mismos
elementos. (Un tercer diálogo está disponible para la configuración del acceso a la categoría de la base de datos
'Compilar archivos', ver capítulo siguiente)
Conexión ENI

Dirección TCP/IP: Dirección del ordenador en el que se ejecuta el servidor ENI


Puerto: Predeterminado: 80; debe ser el mismo que el establecido en los parámetros de configuración del
Servidor ENI
Nombre del proyecto: Nombre de la carpeta de la base de datos donde deben estar los objetos de esta categoría
procesamiento de datos. Presione el botón ... para abrir un árbol de carpetas con los datos ya existentes
proyectos base. Si la carpeta deseada ya existe, puede seleccionarla en este
y su nombre se introducirá en el campo de edición 'Nombre del proyecto'. Si tuvieras
no ha iniciado sesión en el servidor ENI hasta que intente abrir el árbol de carpetas mediante
el botón ..., primero obtendrá el cuadro de diálogo de inicio de sesión donde debe ingresar
"Nombre de usuario" y "Contraseña" tal y como se definen en su cuenta de
usuario de ENI para acceder a las tres categorías de la base de datos.
Solo lectura Si esta opción está activada, solo es posible el acceso de lectura a la
carpeta de la base de datos definida anteriormente.

CoDeSys V2.3 4-17


Opciones de proyecto...

Cuadro de diálogo 'Objetos de proyecto' en la categoría de opciones Control de código fuente del proyecto

Obtener la última versión


La función de la base de datos 'Obtener la última versión' (Menú 'Proyecto' 'Enlace a la base de
datos') copia la última versión de las POU de la carpeta de la base de datos definida anteriormente al
proyecto abierto actualmente, por lo que se sobrescribirá la versión local de los objetos. Esto se hará
automáticamente para todos los objetos para los que la versión encontrada en la base de datos difiera
de la del proyecto, tan pronto como se cumpla una de las condiciones de tiempo establecidas. Active
las opciones de tiempo deseadas marcando una marca de verificación:

En Project Open Tan pronto como el proyecto se abre en CoDeSys


Inmediatamente después de que una versión más reciente de la POU sea registrada en
la base de datos de Cambios en ENI (por ejemplo, por otro usuario), la POU se
actualizará en el proyecto actual inmediatamente y aparecerá un mensaje apropiado.

Antes de cualquier compilación Antes de cualquier proceso de compilación en CoDeSys

Check-out
La función de la base de datos 'Check out' significa que la POU se marcará como 'en proceso' y
se bloqueará para otros usuarios hasta que se desbloquee de nuevo mediante un comando
'Check in' o 'Undo check out'.
Si la opción Inmediatamente al inicio de la edición está activada, un objeto se desprotegerá
automáticamente tan pronto como comience a editarlo. Si el objeto ya está desprotegido por otro
usuario (indicado por una cruz roja antes del nombre del objeto en el organizador de objetos de
CoDeSys), aparecerá un mensaje.

4-18 CoDeSys V2.3


4 - Los componentes individuales

Check-in
La función de la base de datos 'Check in' significa que se creará una nueva versión del objeto en
la base de datos. Las versiones anteriores se mantendrán de todos modos.
Puede activar una o ambas de las siguientes opciones para definir la hora del check-in
automático:

En Project Save tan pronto como se guarda el proyecto


Después de compilar con éxito tan pronto como el proyecto se haya compilado sin errores
Para cada una de las opciones 'Obtener última versión', 'Salir' y 'Registrarse' adicionalmente se puede
activar la opción con Consulta. En este caso, antes de que se lleve a cabo la acción correspondiente, se
abre un cuadro de diálogo en el que aún puede decidir cancelar la acción o confirmarla de otro modo.

Los elementos del cuadro de diálogo " Objetos compartidos" son los mismos que en el cuadro de
diálogo "Proyectar objetos" descrito anteriormente. La configuración se aplica a todos los objetos
asignados a la categoría de base de datos 'Objetos compartidos'.
Si realiza una configuración primaria, los diálogos de configuración aparecerán uno tras otro y será guiado por un
asistente (botón Siguiente). Por lo tanto, también accederá al cuadro de diálogo de configuración para las
Opciones para compilar archivos, consulte el siguiente capítulo. Los ajustes realizados en el primer cuadro de
diálogo se heredarán automáticamente a los demás. Por lo tanto, solo tienen que editarse si es necesario realizar
modificaciones.
Cancelar cerrará el cuadro de diálogo sin guardar las modificaciones realizadas en el cuadro de diálogo
abierto actualmente. Vuelve al cuadro de diálogo principal 'Opciones' 'Control de código fuente del proyecto'.
Si se ha modificado una configuración ya existente, los nuevos ajustes (para los tres diálogos) se
pueden guardar pulsando OK. Después de eso, el cuadro de diálogo se cerrará y volverá al cuadro de
diálogo principal 'Opciones' 'Control de código fuente del proyecto'.

Opciones para compilar archivos con respecto a la base de datos del proyecto
Este cuadro de diálogo forma parte de la configuración de opciones de la base de datos del proyecto ('Proyecto',
'Opciones', 'Control de código fuente del proyecto'). Aquí se define cómo se manejarán los objetos de la categoría
'Compilar archivos' en la base de datos. (Además de eso, hay otros dos diálogos disponibles para definir esto para
objetos de categoría 'Objetos de proyecto' y 'Objetos compartidos', consulte el capítulo anterior).

Cuadro de diálogo 'Compilar archivos' en la categoría Control de código fuente del proyecto

CoDeSys V2.3 4-19


Opciones de proyecto...

Para los campos de entrada TCP/IP-Address, Puerto, Nombre del proyecto, consulte la descripción del
cuadro de diálogo 'Objetos del proyecto/Objetos compartidos'.

Crear símbolo ASCII Si esta opción está activada, cada vez que se abra un archivo de símbolos *.sym (text
Información (.sym) *.sdb (formato binario), este archivo será
Crear información de se escribe en la base de datos automáticamente. Las entradas en el
símbolos binarios archivo de símbolos se crean como se define en la categoría de
(.sdb) opciones del proyecto 'Configuración de símbolos'.
Creación de un proyecto de arranque Si esta opción está activada, cada vez que se ejecute un proyecto de arranque
creado, este fichero se escribirá en la base de datos automáticamente.

Si está realizando una configuración primaria, los diálogos de configuración aparecerán uno tras otro, guiados por
un asistente (botón Siguiente). Los ajustes realizados en el primer cuadro de diálogo se heredarán
automáticamente a los demás. Por lo tanto, solo tienen que editarse si es necesario realizar modificaciones.

Cancelar cerrará el cuadro de diálogo sin guardar las modificaciones realizadas en el cuadro de diálogo
abierto actualmente (los ajustes realizados en los cuadros de diálogo anteriores se mantendrán de
todos modos). Vuelve al cuadro de diálogo principal 'Opciones' 'Control de código fuente del proyecto'.
Si ha modificado una configuración ya existente, los nuevos ajustes (para los tres diálogos) se pueden
guardar pulsando OK. Después de eso, el cuadro de diálogo se cerrará y volverá al cuadro de diálogo
principal 'Opciones' 'Control de código fuente del proyecto'.

Opciones para 'Macros'


Si elige esta categoría en el cuadro de diálogo Opciones, se abre un cuadro de diálogo en el que puede
definir macros utilizando los comandos del mecanismo por lotes de CoDeSys. A continuación, se puede
llamar a estas macros en el menú 'Editar' 'Macros'.
Cuadro de diálogo Opciones para la categoría Macros

Realice los siguientes pasos para definir una nueva macro:


En el campo de entrada Nombre, introduzca un nombre para la macro que se va a crear. Después de
presionar el botón Nuevo, este nombre se transfiere al campo Macrolista y se marca como seleccionado
allí. La lista de macros se representa en una estructura de árbol. Las macros definidas localmente se colocan
una debajo de la otra. Si las bibliotecas de macros (ver más abajo) están integradas, entonces los nombres
de las bibliotecas se enumerarán y, al hacer clic con el ratón en los signos más o menos delante de esas
entradas, puede abrir o cerrar una lista de los elementos de la biblioteca.

El campo Menú se utiliza para definir la entrada de menú con la que aparecerá la macro en el menú
'Editar' 'Macros'. Para poder utilizar una sola letra como atajo, la letra debe ir precedida del símbolo '&'.
Ejemplo: el nombre "Ma&cro 1" genera la entrada de menú "Macro 1". Ejemplo: el nombre "Ma&cro 1"
creará un elemento de menú "Macro 1".

4-20 CoDeSys V2.3


4 - Los componentes individuales

En el campo del editor Comandos, defina y/o edite los comandos que van a constituir la macro recién
creada o seleccionada. Todos los comandos del mecanismo por lotes de CoDeSys y todas las
palabras clave que son válidas para ellos están permitidos. Puede obtener una lista pulsando el botón
Ayuda. Se inicia una nueva línea de comandos pulsando <Ctrl><Intro>. El menú contextual con las
funciones comunes del editor de texto se obtiene pulsando el botón derecho del ratón. Los
componentes de comando que pertenecen juntos se pueden agrupar mediante comillas.
Si desea crear más macros, vuelva a realizar los pasos 1 a 3 antes de cerrar el cuadro de diálogo
pulsando el botón OK.
Si desea eliminar una macro, selecciónela en la lista de macros y presione el botón <Supr>.
Si desea cambiar el nombre de una macro, selecciónela en la lista de macros, inserte un nuevo nombre
en el campo de edición 'Nombre' y luego presione el botón Cambiar nombre.
Para editar una macro existente, selecciónela en la lista de macros y edite los campos 'Menú' y/o
'Comandos'. Las modificaciones se guardarán al pulsar el botón OK.
Tan pronto como se cierre el cuadro de diálogo pulsando el botón OK, se guardará la descripción real
de todas las macros en el proyecto.
Las entradas del menú de macros en el menú 'Editar' 'Macros' ahora se muestran en el orden en que
se definieron. Las macros no se comprueban hasta que se realiza una selección de menú.

Bibliotecas de macros:
Las macros se pueden guardar en bibliotecas de macros externas. Estas bibliotecas pueden incluirse en otros proyectos.
Creación de una biblioteca de macros que contenga las macros del proyecto abierto actualmente: Presione el botón
Crear. Aparece el cuadro de diálogo Fusionar proyecto, donde se enumeran todas las macros disponibles. Seleccione
las entradas deseadas y confirme con OK. El cuadro de diálogo de selección se cerrará y el cuadro de diálogo Guardar
macrobiblioteca se abrirá. Inserte aquí un nombre y una ruta para la nueva biblioteca y presione el botón Guardar.

La biblioteca se creará con el nombre de <nombre de la biblioteca>.mac y se cerrará el cuadro de diálogo.


Incluir una biblioteca de macros <nombre de la biblioteca>.mac en el proyecto abierto actualmente:
Presione el botón Incluir. Se abrirá el cuadro de diálogo Abrir macrobiblioteca , que muestra los
archivos con extensión *.mac. Seleccione la biblioteca deseada y presione el botón Abrir. El cuadro de
diálogo se cerrará y la biblioteca se agregará al árbol de la Macrolista.

Sugerencia: Las macros de un proyecto también se pueden exportar ('Proyecto' 'Exportar').

CoDeSys V2.3 4-21


Gestión de proyectos...

4.3 Gestión de proyectos...


Los comandos que se refieren a todo el proyecto se encuentran en los elementos de menú 'Archivo' y 'Proyecto'.

'Archivo' 'Nuevo'

Símbolo:
Con este comando se crea un proyecto vacío con el nombre "Sin título". Este nombre debe cambiarse
al guardar.

'Archivo' 'Nuevo a partir de la plantilla'


Utilice este comando para abrir cualquier proyecto CoDeSys deseado como un proyecto de "plantilla".
El cuadro de diálogo para abrir un archivo de proyecto estará disponible y el proyecto seleccionado se
abrirá con el nombre de proyecto "Desconocido".

'Archivo' 'Abrir'

Símbolo:
Con este comando se abre un proyecto ya existente. Si un proyecto ya ha sido abierto y cambiado,
entonces CoDeSys pregunta si este proyecto debe ser guardado o no.
Aparece el cuadro de diálogo para abrir un archivo y se debe elegir un archivo de proyecto con la
extensión "*.pro" o un archivo de biblioteca con la extensión "*.lib". Este archivo ya debe existir. No es
posible crear un proyecto con el comando "Abrir".
Cuadro de diálogo para abrir un archivo

Abrir un proyecto desde el PLC


Para cargar un archivo de proyecto desde el PLC, pulse PLC en Abrir proyecto desde el PLC. A continuación, obtendrá
el cuadro de diálogo Parámetros de comunicación (véase el menú 'Online' 'Parámetros de comunicación') para ajustar
los parámetros de transmisión cuando aún no existe conexión con el PLC. Una vez que se ha creado una conexión en
línea, el sistema comprueba si los archivos de proyecto con el mismo nombre ya existen en el directorio del disco duro
de su ordenador. Cuando este es el caso, aparece el cuadro de diálogo Cargar el proyecto desde el controlador, donde
puede decidir si los archivos locales deben ser reemplazados por los que está utilizando el controlador. (Esta secuencia

4-22 CoDeSys V2.3


4 - Los componentes individuales

es la inversa de la secuencia de 'En línea' 'Cargar código fuente', con la que se almacena el archivo fuente del proyecto
en el controlador. ¡No confunda con 'Crear proyecto de arranque'!)

Nota: Tenga en cuenta que, en cualquier caso, debe dar un nuevo nombre a un proyecto, cuando lo cargue desde
el PLC a su directorio local, de lo contrario no tendrá nombre. Si es compatible con el sistema de destino, se
predefinirá un 'Título' introducido en la información del proyecto como nuevo nombre de archivo del proyecto. En
este caso, al cargar el proyecto desde el PLC, se abrirá el cuadro de diálogo para guardar un archivo, donde se
ingresa automáticamente el nuevo nombre del archivo y se puede confirmar o modificar.

Si aún no se ha cargado un proyecto en el PLC, recibirá un mensaje de error. Véase también


'Proyecto', 'Opciones', categoría, 'Sourcedownload'.
Abrir un proyecto desde el gestor de código fuente (base de datos ENI)
Para abrir un proyecto que está almacenado en una base de datos de proyectos de ENI, se puede utilizar la opción
Abrir proyecto desde el administrador de código fuente . Es una condición previa que tenga acceso a un
servidor ENI que sirva a la base de datos. Pulse el botón ENI..., para acceder a un cuadro de diálogo en el que
podrá conectarse al servidor en relación con la categoría de base de datos 'Objetos del proyecto'.

Inserte los datos de acceso apropiados (dirección TCP/IP, puerto, nombre de usuario, contraseña, solo
lectura) y la carpeta de la base de datos (nombre del proyecto) desde la que se deben obtener los objetos
y confirme con Next. Se cerrará el diálogo y se abrirá otro en el que se deben insertar los datos de acceso
a la categoría de base de datos 'Objetos compartidos'. Si pulsa el botón Finalizar, el cuadro de diálogo se
cerrará y los objetos de las carpetas definidas se recuperarán automáticamente y se mostrarán en el
gestor de objetos de CoDeSys. Si desea seguir manteniendo los objetos del proyecto bajo el control de la
base de datos, abra los diálogos de opciones del proyecto para establecer los parámetros deseados.
Los datos de acceso se almacenan en el archivo codesys.ini, el nombre de usuario y la contraseña, pero solo si la opción del
proyecto "Guardar credenciales ENI" (véase el Capítulo 4.2, Carga y guardado de la categoría) está activada.

Archivos abiertos más recientemente


Los archivos abiertos más recientemente se enumeran en el menú Archivos debajo del comando
'Archivo' 'Salir'. Si elige uno de ellos, se abre este proyecto.
Si se han definido contraseñas o grupos de usuarios para el proyecto, aparece un cuadro de diálogo
para introducir la contraseña.

'Archivo' 'Cerrar'
Con este comando, se cierra el proyecto abierto actualmente. Si el proyecto ha sido modificado,
entonces CoDeSys pregunta si estos cambios deben ser guardados o no.
Si el proyecto que se va a guardar lleva el nombre "Sin título", entonces se le debe dar un nombre (ver
'Archivo' 'Guardar como').

'Archivo' 'Guardar'

Símbolo: Atajo: <Ctrl>+<S>


Con este comando se guardan los cambios en el proyecto. Si el proyecto que se va a guardar se llama
"Sin título", entonces debe darle un nombre (ver 'Archivo' 'Guardar como').

'Archivo' 'Guardar como'


Con este comando, el proyecto actual se puede guardar en otro archivo o como una biblioteca. Esto no
cambia el archivo de proyecto original.
Una vez elegido el comando, aparece el cuadro de diálogo Guardar. Elija un nombre de archivo
existente o ingrese un nuevo nombre de archivo y elija el tipo de archivo deseado.
Si el proyecto se va a guardar con un nuevo nombre, elija el tipo de archivo Proyecto CoDeSys (*.pro).
Si elige el tipo de archivo Project Version 1.5 (*.pro), 2.0 (*.pro), 2.1 (*.pro) o 2.2 (*.pro), el proyecto actual
se guarda como si se hubiera creado con la versión 1.5, 2.0, 2.1 o 2.2. De este modo, se pueden perder
datos específicos de la versión 2.3. Sin embargo, el proyecto se puede ejecutar con la versión 1.5, 2.0, 2.1 o
2.2.

CoDeSys V2.3 4-23


Gestión de proyectos...

Cuadro de diálogo para Guardar como

También puede guardar el proyecto actual como una biblioteca para usarlo en otros proyectos. Elija el
tipo de archivo Biblioteca interna (*.lib) si ha programado sus POU en CoDeSys.
Elija el tipo de archivo Biblioteca externa (*.lib) si desea implementar e integrar POU en otros idiomas
(por ejemplo, C). Esto significa que también se guarda otro archivo que recibe el nombre de archivo de
la biblioteca, pero con la extensión "*.h". Este archivo se construye como un archivo de encabezado C
con las declaraciones de todas las POU, tipos de datos y variables globales. Si se utilizan librerías
externas, en el modo de simulación se ejecutará la implementación, escrita para las POUs en
CoDeSys. Trabajando con el hardware real se ejecutará la implementación escrita en C.

Para guardar el proyecto como un proyecto o biblioteca cifrada, elija la opción Encrypted CoDeSys Projekt
(*.pro) o la opción CoDeSys Projekt (*.pro). Biblioteca interna cifrada (*.lib) o biblioteca externa cifrada
(*.lib). En este caso, aparece el cuadro de diálogo 'Cifrado', donde puede definir y confirmar una clave. El
proyecto posterior no se puede abrir, especialmente si no se puede usar una biblioteca sin esta clave:
Diálogo para el cifrado de un proyecto

El cifrado amplía la protección de un proyecto, que hasta ahora solo era posible mediante la asignación
de contraseñas para el acceso y la protección contra escritura. Estas posibilidades existirán más
adelante, pero no pueden evitar, por ejemplo, que se incluya una biblioteca en un proyecto sin
necesidad de introducir una contraseña de biblioteca (clave).
Una clave una vez definida se guardará con cualquier ahorro adicional del proyecto. Para modificar esa
clave, tienes que volver a utilizar el cuadro de diálogo 'Guardar como'.
Si se debe abrir un proyecto cifrado, o si se debe usar una biblioteca cifrada en un proyecto, aparecerá
el cuadro de diálogo solicitando la clave.
Cuadro de diálogo para introducir la clave

4-24 CoDeSys V2.3


4 - Los componentes individuales

Concesión de licencias para una biblioteca:


Si desea guardar el proyecto como una biblioteca con licencia, puede agregar la información de licencia adecuada en el cuadro de
diálogo 'Editar información de licencia'. Abra el cuadro de diálogo pulsando el botón Editar información de licencia....

Consulte la descripción en 'Gestión de licencias en CoDeSys'.

Después de haber realizado todos los ajustes, pulse OK. El proyecto actual se guardará en el archivo
indicado. Si el nuevo nombre de archivo ya existe, se le preguntará si desea sobrescribir este archivo.
Al guardar como una biblioteca, se compila todo el proyecto. Si se produce un error por este motivo, se
le indica que es necesario un proyecto correcto para crear una biblioteca. A continuación, el proyecto
no se guarda como biblioteca.

'Archivo' 'Guardar/Archivar por correo'


Este comando se utiliza para configurar y crear un archivo de almacenamiento de proyecto. Todos los
archivos a los que se hace referencia y se utilizan con un proyecto de CoDeSys se pueden empaquetar en
un archivo zip comprimido. El archivo zip se puede almacenar o directamente se puede enviar en un correo
electrónico. Esto es útil si desea enviar un conjunto de todos los archivos relevantes del proyecto.

Tenga en cuenta: La función de archivo no es práctica para restaurar un entorno de proyecto. Está diseñado para
un fácil empaquetado de todos los archivos que pertenecen a un proyecto. Al descomprimir un archivo, las rutas de
los archivos particulares deben adaptarse al entorno real de CoDeSys.

Cuando se ejecuta el comando, se abre el cuadro de diálogo Guardar archivo:


Cuadro de diálogo para configurar un archivo ZIP

Aquí puede definir qué categorías de archivos deben añadirse al archivo zip: Seleccione o anule la selección de
una categoría activando/desactivando la casilla de verificación correspondiente. Para ello, haga un solo clic del

CoDeSys V2.3 4-25


Gestión de proyectos...

ratón en la casilla de verificación o haga doble clic en el nombre de la categoría. Si una categoría está marcada
con , todos los archivos de esta categoría se agregarán al archivo zip, si está marcada con , no se agregará
ninguno de los archivos. Para seleccionar archivos individuales de una categoría, presione el botón
correspondiente Detalles. Se abrirá el cuadro de diálogo Detalles con una lista de archivos disponibles.

Cuadro de diálogo para la selección detallada de archivos para el archivo ZIP

El cuadro de diálogo muestra una lista de todos los archivos que están disponibles para la categoría:
Automáticamente todos los archivos están seleccionados, una excepción es la categoría 'Archivos de destino'
donde solo se seleccionan los archivos que son relevantes para el sistema de destino establecido actualmente.
Para modificar la selección, activar o desactivar los archivos deseados. Con el botón Seleccionar todos los
archivos de la lista se seleccionan, con Seleccionar ninguno de ellos. Se puede seleccionar/deseleccionar un solo
archivo haciendo clic con el ratón en la casilla de verificación, también haciendo doble clic en la entrada de la lista o
pulsando la barra espaciadora cuando la entrada de la lista está marcada.
Cierre el cuadro de diálogo Detalles con Guardar para almacenar la nueva configuración.
En el cuadro de diálogo principal, la casilla de verificación de las categorías, para las que no se seleccionan
todos los archivos, aparecerá con un color de fondo gris . Están disponibles las siguientes categorías de
archivos, la columna derecha de la tabla muestra qué archivos se pueden agregar al archivo zip:

Categoría Dateien

Archivo de proyecto projectname.pro (el archivo de proyecto de CoDeSys)


Bibliotecas a *.lib, *.obj, *.hex (bibliotecas y, si están disponibles, el objeto
las que se hace
referencia correspondiente y los archivos hexadecimales)

Compilar *.ci (información de compilación), *.ri (información


información de descarga/referencia) <temp>.* (compilación
temporal y descarga de archivos) también para
simulación

Archivo INI Codesys.ini


Archivo de registro *.log (archivo de registro del proyecto)
Archivos de mapa de bits *.bmp (mapas de bits para POU y visualizaciones de proyectos)
Entradas de Registry.reg (Entradas para Automation Alliance, Gateway und SPS; se
registro empaquetarán los siguientes subárboles:
HKEY_LOCAL_MACHINE\SOFTWARE\3S-Smart Software Solutions
HKEY_LOCAL_MACHINE\SOFTWARE\AutomationAlliance"

Archivos de símbolos *.sdb, *.sym (información simbólica)

4-26 CoDeSys V2.3


4 - Los componentes individuales

Archivos de archivos utilizados para la configuración del PLC (archivos de configuración, archivos
configuración de dispositivo, iconos, etc.): por ejemplo, *.cfg, *.con, *.eds, *.dib, *.ico ....

Archivos de destino *.trg (archivos de destino en formato binario para todos los destinos instalados) *.txt (archivos
de destino para los destinos instalados en formato de texto, si están disponibles)

Puerta de enlace Gateway.exe, GatewayDDE.exe, GClient.dll, GDrvBase.dll, GDrvStd.dll,


local GHandle.dll, GSymbol.dll GUtil.dll más archivos DLL en el directorio de puerta de
enlace, si están disponibles

Archivos de idioma Archivos de idioma utilizados para visualizaciones (*.vis, *.xml)

Proyecto de arranque Archivos de proyecto de arranque <nombre del proyecto>.prg, <nombre del
proyecto>.chk o los archivos de proyecto de arranque específicos de destino.

Para agregar cualquier otro archivo al zip, presione el botón Otros archivos. Se abrirá el cuadro de
diálogo 'Otros archivos' donde puede configurar una lista de los archivos deseados.
Pulse el botón Añadir para abrir el cuadro de diálogo estándar para abrir un archivo, donde podrá buscar un
archivo. Elija uno y confirme con Abrir. El archivo se agregará a la lista en el cuadro de diálogo 'Otros
archivos'. Repita esto para cada archivo que desee agregar. Para eliminar entradas de la lista, presione el
botón Eliminar. Cuando la lista de archivos seleccionados esté bien, cierre el cuadro de diálogo con OK.
Cuadro de diálogo para agregar otros archivos para el archivo ZIP

Para agregar un archivo Léame al archivo zip, presione el botón Comentario. Se abrirá un editor de
texto, donde puede ingresar cualquier texto. Si cierra el cuadro de diálogo con OK, durante la creación
del archivo zip se agregará un archivo readme.txt. Además de los comentarios introducidos, contendrá
información sobre la fecha de compilación y la versión de CoDeSys.
Si se han realizado todas las selecciones deseadas, en el cuadro de diálogo principal pulse
Salvar... Para crear y guardar el archivo zip: Se abrirá el cuadro de diálogo estándar para guardar un
archivo y podrá ingresar la ruta donde se debe almacenar el archivo zip. El archivo zip por defecto se
llama <projectname>.zip. Confirme con Guardar para comenzar a compilarlo. Durante la creación, se
muestra el estado de progreso actual y los pasos posteriores se enumeran en la ventana de mensajes.
También se mostrará un mensaje si no se pudo encontrar algún archivo.
Correo... para crear un archivo zip temporal y generar automáticamente un correo electrónico vacío
que contenga el archivo zip como archivo adjunto. Esta función solo funciona si la MAPI (interfaz de
programación de aplicaciones de mensajería) se ha instalado correctamente en el sistema, de lo
contrario se genera un mensaje de error. Durante la configuración del correo electrónico, se muestra el
estado de progreso y los pasos de la acción se enumeran en la ventana del mensaje. El archivo zip
temporal se eliminará automáticamente una vez finalizada la acción.
Cancelar para cancelar la acción; no se generará ningún archivo zip.

CoDeSys V2.3 4-27


Gestión de proyectos...

'Archivo' 'Imprimir'
Atajo: <Ctrl>+<P>
Con este comando se imprime el contenido de la ventana activa.
Una vez elegido el comando, aparece el cuadro de diálogo Imprimir. Elija la opción deseada o configure
la impresora y, a continuación, haga clic en Aceptar. Se imprime la ventana activa. La salida en color
está disponible en todos los editores.
Puede determinar el número de copias e imprimir la versión en un archivo.
Con el botón Propiedades, se abre el cuadro de diálogo para configurar la impresora.
Puede determinar el diseño de su impresión con el comando 'Archivo' 'Configuración de la impresora'.
Durante la impresión, el cuadro de diálogo muestra el número de páginas ya impresas. Al cerrar este
cuadro de diálogo, la impresión se detiene después de la página siguiente.
Para documentar todo su proyecto, utilice el comando 'Proyecto' 'Documento'.
Si desea crear un marco de documento para su proyecto, en el que pueda almacenar comentarios
sobre todas las variables utilizadas en el proyecto, abra una lista de variables globales y use el
comando 'Extras' 'Crear archivo de docuframe'.
Cuadro de diálogo Imprimir

'Archivo' 'Configuración de la impresora'


Con este comando se puede determinar el diseño de las páginas impresas. Ahora se abre el siguiente
cuadro de diálogo:
Cuadro de diálogo Diseño de página

4-28 CoDeSys V2.3


4 - Los componentes individuales

En el campo Archivo puede introducir el nombre del archivo con la extensión ".dfr" en el que se debe
guardar el diseño de la página. El destino predeterminado de la configuración es el archivo DEFAULT. DFR.
Si desea cambiar un diseño existente, navegue por el árbol de directorios para encontrar el archivo
deseado con el botón Examinar
También puede elegir si desea comenzar una nueva página para cada objeto y para cada subobjeto.
Utilice el botón Configuración de la impresora para abrir la configuración de la impresora.
Si hace clic en el botón Editar, aparecerá el marco para configurar el diseño de la página. Aquí puede
determinar los números de página, la fecha, el nombre del archivo y el nombre de la POU, y también
colocar gráficos en la página y en el área de texto en la que se debe imprimir la documentación.
Ventana para pegar los marcadores de posición en el diseño de página

Con la opción de menú 'Insertar' 'Marcador de posición' y la posterior selección entre los cinco
marcadores de posición (Página, Nombre de POU, Nombre de archivo, Fecha y Contenido),
inserte en el diseño un llamado marcador de posición arrastrando un rectángulo en el diseño mientras
presiona el botón izquierdo del mouse. En la impresión se sustituyen de la siguiente manera:

Mandar Marcador Efecto

Página {Página} Aquí el número de página actual aparece en la impresión.


Nombre de POU {Nombre de POU} Aquí aparece el nombre actual de la POU.
Nombre de archivo {Nombre de archivo} Aquí aparece el nombre del proyecto.
Fecha {Fecha} Aquí aparece la fecha actual.
Contenido {Contenido} Aquí aparece el contenido de la POU.

Además, con ' Insertar' 'Mapa de bits' puede insertar un gráfico de mapa de bits (por ejemplo, el logotipo de
una empresa) en la página. Después de seleccionar el gráfico, también se debe dibujar un rectángulo aquí
en el diseño con el mouse. Se pueden insertar otros elementos de visualización (consulte Visualizaciones).

Si se cambió la plantilla, CoDeSys pregunta cuando se cierra la ventana si estos cambios deben
guardarse o no.

Sugerencia: Para conocer el formato de página que será válido para las impresiones, defina el diseño como se
describe anteriormente y active adicionalmente la opción 'Mostrar márgenes del área de impresión' en las opciones
del proyecto, categoría Escritorio.

CoDeSys V2.3 4-29


Gestión de proyectos...

'Archivo' 'Salir'
Atajo: <Alt>+<F4>
Con este comando se sale de CoDeSys.
Si se abre un proyecto, se cierra como se describe en 'Archivo' 'Guardar'.

'Proyecto' 'Construir'
Atajo: <F11>
El proyecto se compila usando 'Project' 'Build'. El proceso de compilación es básicamente incremental,
es decir, solo se vuelven a compilar las POU modificadas. La información necesaria sobre la última
compilación se almacena en un archivo *.ci cuando se guarda el proyecto. También se puede obtener
una compilación no incremental si primero se ejecuta el comando 'Proyecto' 'Borrar todo'.
En el caso de los sistemas de destino que admiten el cambio en línea, todas las POU que se cargarán en el controlador
en la siguiente descarga se marcan con una flecha azul en el Organizador de objetos después de la compilación.

El proceso de compilación que se lleva a cabo con 'Project' 'Build' se produce automáticamente si el
controlador ha iniciado sesión a través de 'Online' 'Log-in'.
Vea un diagrama que muestra las relaciones entre Project-Build, Project-Download, Online Change e
Login en el sistema de destino en el Capítulo 4.6, 'En línea' 'Login'.
Durante la compilación, se abre una ventana de mensaje que muestra el progreso del proceso de compilación, los
errores y advertencias que pueden ocurrir durante la compilación, así como información sobre los índices POU
utilizados y el espacio de memoria (número y porcentaje). Los errores y las advertencias están marcados con
números. Con F1 se obtiene más información sobre el error seleccionado actualmente.

Consulte la lista de todos los mensajes de error y advertencias disponibles.


Ejemplo de mensajes de error e información de compilación en la ventana de mensajes de un proyecto

Si se selecciona la opción Guardar antes de la compilación en el cuadro de diálogo de opciones de la


categoría Cargar y guardar, el proyecto se almacena antes de la compilación.
Un objeto seleccionado en el Organizador de objetos o varios objetos puede ser excluido de la
compilación mediante el comando 'Excluir de la compilación' que está disponible en el menú contextual,
o a través de una configuración apropiada ('Excluir objetos') en las Opciones de Construcción (consulte
el capítulo 4.2, Opciones para la Compilación).

4-30 CoDeSys V2.3


4 - Los componentes individuales

Nota: Las referencias cruzadas se crean durante la compilación y se almacenan con la información de
compilación. Para poder utilizar el comando 'Mostrar árbol de llamadas', o para obtener resultados
actualizados con los comandos 'Mostrar referencia cruzada', 'Variables no utilizadas', 'Áreas de
memoria superpuestas', 'Acceso concurrente' y 'Acceso de escritura múltiple en la salida' (menú
'Proyecto' 'Verificar'), el proyecto debe reconstruirse después de cualquier cambio.

'Proyecto' 'Reconstruir todo'


Con 'Project' 'Rebuild all', a diferencia de la compilación incremental ('Project' 'Build'. Proyecto..
Build.>Proc), el proyecto se vuelve a compilar por completo. Sin embargo, la información de descarga
no se descarta, como es el caso del comando 'Borrar todo'. Con respecto a la posibilidad de excluir
objetos de la compilación (consulte el capítulo 4.2, Opciones para la compilación).
Vea un diagrama que muestra las relaciones entre Project-Build, Project-Download, Online Change e
Login en el sistema de destino en el Capítulo 4.6, 'En línea' 'Login'.

'Proyecto' 'Limpiar todo'


Con este comando, se elimina toda la información de la última descarga y de la última compilación.
Una vez seleccionado el comando, aparece un cuadro de diálogo en el que se informa de que ya no es posible
iniciar sesión sin una nueva descarga. En este punto, el comando puede cancelarse o confirmarse.

Nota: Después de haber realizado una 'Limpieza total', el inicio de sesión en el proyecto PLC solo es posible si el archivo *.ri
con la información del proyecto de la última descarga se ha renombrado o guardado fuera del directorio del proyecto (consulte
'Cargar información de descarga') y ahora se puede volver a cargar explícitamente antes de iniciar sesión.

Vea un diagrama que muestra las relaciones entre Project-Build, Project-Download, Online Change e
Login en el sistema de destino en el Capítulo 4.6, 'En línea' 'Login'.

'Proyecto' 'Cargar información de descarga'


Con este comando se puede volver a cargar la información de descarga perteneciente al proyecto.
Después de elegir el comando, se abre el cuadro de diálogo estándar 'Abrir archivo'.
La información de descarga se guarda automáticamente en cada descarga y, dependiendo del sistema de
destino, potencialmente también en cada creación fuera de línea de un proyecto de arranque en un archivo,
que se denomina <nombre del proyecto><identificador de destino>.ri y que se coloca en el directorio del
proyecto. Este archivo se vuelve a cargar cada vez que se vuelve a abrir el proyecto y, al iniciar sesión, se
utiliza para verificar el código de qué POU se ha cambiado. Solo estas POU se cargarán en el PLC durante el
procedimiento de cambio en línea. Por lo tanto, el archivo *.ri es una condición previa para un cambio en línea.

Pero: Si el archivo *.ri en el directorio del proyecto se elimina con el comando 'Proyecto' 'Limpiar
todo', solo puede volver a cargar la información de descarga si también ha almacenado el archivo *.ri
en otro directorio. Consulte las sugerencias en el Capítulo 4.6, 'En línea' 'Iniciar sesión'.
Véase también en el Capítulo 4.6, 'En línea' 'Login' un diagrama que muestra las relaciones entre
Project-Build, Project-Download, Online Change e Login en el sistema de destino.

'Proyecto' 'Traducir a otro idioma'


Este elemento de menú se utiliza para traducir el archivo de proyecto actual a otro idioma. Esto se lleva
a cabo mediante la lectura de un archivo de traducción que se generó a partir del proyecto y se mejoró
externamente en el idioma nacional deseado con la ayuda de un editor de texto. El proyecto puede
mostrarse simplemente o traducirse a una de las versiones lingüísticas generadas.
Están presentes los siguientes subelementos del menú:
Crear archivo de traducción
Traducir proyecto
Mostrar proyecto traducido
Alternar traducción
Véase también: "Edición del archivo de traducción"

CoDeSys V2.3 4-31


Gestión de proyectos...

Crear archivo de traducción


Este comando en el menú 'Proyecto' 'Traducir a otro idioma' lleva al cuadro de diálogo 'Crear archivo
de traducción'.
En el campo Archivo de traducción, introduzca una ruta que muestre dónde se va a almacenar el
archivo. La extensión de archivo predeterminada es *.tlt; Este es un archivo de texto. También puede
utilizar la extensión *.txt, que se recomienda, si desea trabajar en el archivo en EXCEL o WORD,
porque en este caso los datos están organizados en formato de tabla.
Si ya existe un archivo de traducción que desea procesar, indique la ruta de este archivo o utilice el
botón Buscar para acceder al cuadro de diálogo de selección de archivos estándar de Windows.
Opcionalmente, la siguiente información del proyecto se puede pasar al archivo de traducción que se está
modificando o creando, de modo que esté disponible para su traducción: Nombres (nombres, por ejemplo, el título
'POU' en el Organizador de objetos), Identificadores, Cadenas, Comentarios, Textos de visualización, Textos
de alarma. Además, se puede transferir la información de posición de estos elementos del proyecto.

Cuadro de diálogo para crear un archivo de traducción

Si se marcan las opciones correspondientes, la información del proyecto actual se exportará como
símbolos de idioma a un archivo de traducción recién creado o se agregará a uno ya existente. Si no se
selecciona la opción correspondiente, la información que pertenezca a la categoría pertinente,
independientemente del proyecto del que provenga, se eliminará del archivo de traducción.
Textos en visualizaciones:
La opción "Textos de visualización" solo se refiere a "Texto" y "Tooltip-Text" de un elemento de visualización.
Tenga en cuenta los siguientes elementos cuando utilice un archivo de traducción para textos de visualización:

Un archivo de traducción *.tlt o *.txt solo se puede usar con CoDeSys o CoDeSys HMI, pero no con
Target-Visualization o Web-Visualization. Podría ser mejor usar un archivo de lenguaje de visualización
especial *.vis.
El cambio a otro idioma solo es posible en el modo en línea. Esto significa que los textos de visualización no
se traducirán mediante el comando 'Traducir a otro idioma'. Un cambio de idioma solo puede ocurrir en el
modo en línea si se ingresa el idioma correspondiente en el cuadro de diálogo 'Extras' 'Configuración'.
Si se debe utilizar un archivo *.tlt o *.txt para los textos de visualización ('Texto' y 'Texto para la información sobre
herramientas'), los textos deben estar entre corchetes con dos símbolos "#" en el cuadro de diálogo de
configuración del elemento de visualización (por ejemplo, #text#) para poder transferirlos al archivo de traducción.

Con respecto al cambio de idioma en las visualizaciones, consulte el manual de usuario de la


visualización de CoDeSys.

4-32 CoDeSys V2.3


4 - Los componentes individuales

Información de posición: Describe con las especificaciones la ruta del archivo, la POU y la línea la posición
del símbolo de idioma disponible para la traducción. Hay tres opciones disponibles para la selección:

'Ninguno': No se genera información de posición.


'Primera aparición': La posición en la que aparece el elemento por primera vez se añade al archivo de traducción.

'Todas': Se especifican todas las posiciones en las que aparece el elemento correspondiente.

Si se va a editar un archivo de traducción creado anteriormente que ya contiene más información de


posición que la seleccionada actualmente, se truncará o eliminará correspondientemente,
independientemente del proyecto a partir del cual se haya generado.
Nota: Se generará un máximo de 64 especificaciones de posición por elemento (símbolo de idioma), incluso si el
usuario ha seleccionado "Todo" en "Información de posición" en el cuadro de diálogo "Crear archivo de traducción".

Sobrescribir existente: la información de posición existente en el archivo de traducción, que se está


procesando actualmente, se sobrescribirá, independientemente del proyecto que la haya generado.
Idiomas de destino: Esta lista contiene identificadores para todos los idiomas que se encuentran en el archivo
de traducción, así como los que se agregarán al completar el cuadro de diálogo 'Crear archivo de traducción'.

El botón Excluir abre el cuadro de diálogo 'Excluir bibliotecas'. Aquí, se pueden seleccionar las
bibliotecas incluidas en el proyecto, cuya información de identificación no se transferirá al archivo de
traducción. Para ello, se selecciona con el ratón la entrada correspondiente de la tabla Bibliotecas
incluidas de la izquierda y se coloca en la tabla Bibliotecas excluidas de la derecha con el botón
Añadir . Del mismo modo, las entradas ya colocadas allí se pueden eliminar usando el botón
Eliminar . OK confirma la configuración y cierra el cuadro de diálogo.
Cuadro de diálogo para excluir información de biblioteca para el archivo de traducción

El botón Agregar abre el cuadro de diálogo ' Agregar idioma de destino':


Cuadro de diálogo para agregar un idioma de destino (Proyectar, Traducir a otro idioma)

Se debe introducir un identificador de idioma en el campo del editor; No puede tener un espacio o un
carácter de diéresis (ä, ö, ü) ni al principio ni al final.
OK cierra el cuadro de diálogo "Agregar idioma de destino" y el nuevo idioma de destino aparece en la
lista de idiomas de destino.

CoDeSys V2.3 4-33


Gestión de proyectos...

El botón Eliminar elimina una entrada seleccionada de la lista.


También puede confirmar el cuadro de diálogo "Crear archivo de traducción" a través de OK, para generar un archivo de traducción.

Si ya existe un archivo de traducción con el mismo nombre, recibirá el siguiente mensaje de


confirmación para que se responda Sí o No:
" El archivo de traducción especificado ya existe. Ahora se modificará y se creará una copia de seguridad del archivo existente. ¿Quieres
continuar?"
No le devuelve sin acción al cuadro de diálogo 'Crear archivo de traducción'. Si se selecciona Sí, se
creará una copia del archivo de traducción existente con el nombre de archivo "Backup_of_<archivo de
traducción>.xlt" en el mismo directorio y se modificará el archivo de traducción correspondiente de
acuerdo con las opciones que se hayan introducido.

Cuando se genera un archivo de traducción, ocurre lo siguiente:


Para cada nuevo idioma de destino, se genera un marcador de posición ("##TODO") para cada símbolo de idioma que
se va a mostrar. (Consulte "Edición del archivo de traducción" para saber cómo trabajar en el archivo de traducción).

Si se procesa un archivo de traducción existente, se eliminan las entradas de archivo de los idiomas
que aparecen en el archivo de traducción, pero no en la lista de idiomas de destino,
independientemente del proyecto a partir del cual se generaron.

Edición del archivo de traducción


El archivo de traducción debe abrirse y guardarse como un archivo de texto. Los signos ## marcan palabras clave.
Los marcadores de posición ##TODO en el archivo se pueden reemplazar por la traducción válida. Para cada
símbolo de idioma se genera un párrafo que comienza y termina con un identificador de tipo. Por ejemplo,
##NAME_ITEM y ##END_NAME_ITEM incluyen una sección para el nombre de un objeto tal como se usa en el
organizador de objetos. (COMMENT_ITEM las secciones de marcas para comentarios, IDENTIFIER_ITEM las de
identificadores, STRING_ITEM las de cadenas y VISUALTEXT_ITEM las de textos de visualización).

A continuación se muestra un ejemplo de un párrafo de archivo de traducción que maneja el nombre de una
de las POU del proyecto. ST_Visu. Los idiomas de destino serán el inglés (EE. UU.) y el francés. En este
ejemplo, se ha añadido la información de posición del elemento del proyecto que debe traducirse:

- Antes de la traducción:
##NAME_ITEM
[D:\CoDeSys\projects\Bspdt_22.pro::ST_Visualisierung::0] ST_Visualisierung ##English :: ##TODO ##French :: ##TODO

##END_NAME_ITEM

- Después de la traducción:
El ##TODOs ha sido reemplazado por el inglés resp. Palabra francesa para 'Visualisierung':
##NAME_ITEM
[D:\CoDeSys\projects\Bspdt_22.pro::ST_Visualisierung::0] ST_Visualisierung ##English :: ST_Visualization ##French ::
ST_Visu

##END_NAME_ITEM
Por favor, compruebe que el identificador y los nombres traducidos siguen siendo válidos en relación con el
estándar y que las cadenas y los comentarios están entre corchetes correctos. Ejemplo: Para un comentario
(##COMMENT_ITEM) que se representa con "(* Kommentar 1 )" en el archivo de traducción, el "##TODO"
detrás de "##English" debe reemplazarse por un "(* comentario 1 *)". Para una cadena (##STRING_ITEM)
representada con "zeichenfolge1", el "##TODO" debe reemplazarse por "string1".

Sugerencia: Las siguientes partes de un archivo de traducción no deben modificarse sin conocimientos detallados:
Bloque de idioma, Bloque de bandera, Información de posición, Textos originales.

4-34 CoDeSys V2.3


4 - Los componentes individuales

Traducir proyecto (a otro idioma)


Este comando en el menú 'Proyecto' 'Traducir a otro idioma' abre el cuadro de diálogo 'Traducir
proyecto a otro idioma'.
Diálogo para traducir el proyecto a otro idioma

El proyecto actual se puede traducir a otro idioma si se utiliza un archivo de traducción adecuado.
Nota: Si desea guardar la versión del proyecto en el idioma en el que se creó originalmente, guarde una
copia del proyecto antes de la traducción con un nombre diferente. El proceso de traducción no se
puede deshacer.
Considere en este contexto la posibilidad de mostrar el proyecto en otro idioma (en esta versión de
visualización, sin embargo, no se puede editar).

En el campo Archivo de traducción, proporcione la ruta de acceso al archivo de traducción que se va a utilizar. Al
presionar Buscar, puede acceder al cuadro de diálogo de selección de archivos estándar de Windows.

El campo Idioma de destino contiene una lista de los identificadores de idioma introducidos en el
archivo de traducción, desde el que puede seleccionar el idioma de destino deseado.
OK inicia la traducción del proyecto actual al idioma de destino elegido con la ayuda del archivo de traducción
especificado. Durante la traducción, se muestra un cuadro de diálogo de progreso, así como mensajes de error, si los
hubiera. Después de la traducción, se cierran el cuadro de diálogo y todas las ventanas abiertas del editor del proyecto.

Cancelar cierra el cuadro de diálogo sin modificar el proyecto actual.


Si el archivo de traducción contiene entradas erróneas, se muestra un mensaje de error después de
presionar OK, con la ruta del archivo y la línea errónea, por ejemplo:
"[C:\Programs\CoDeSys\projects\visu.tlt (78)]; Se espera la traducción del texto"
Nota: Por favor, tenga en cuenta las especialidades de los textos en las visualizaciones; véase más arriba, 'Crear archivo de traducción'.

'Mostrar proyecto traducido'


Si hay un archivo de traducción disponible para el proyecto, puede mostrar una de las versiones de
idioma definidas allí, sin sobrescribir la versión de idioma original del proyecto.
(Considere esta posibilidad en comparación con la traducción "real" de un proyecto, que haría con el
comando 'Traducir proyecto', y que significaría crear una nueva versión del proyecto).
El comando 'Traducir este proyecto' en el menú 'Proyecto' 'Traducir a otro idioma' abre el cuadro de
diálogo 'Traducir proyecto a otro idioma'.
Cuadro de diálogo para mostrar el proyecto en otro idioma

En el campo Archivo de traducción, inserte la ruta del archivo de traducción que desea utilizar. Puede recibir
asistencia mediante el cuadro de diálogo estándar para abrir un archivo que se abre con el botón Examinar.

CoDeSys V2.3 4-35


Gestión de proyectos...

En el campo Idioma de destino se encuentra una lista de selección que, además de la entrada "<Idioma
nativo>", también ofrece los identificadores de idioma definidos por el archivo de traducción configurado
actualmente. El idioma original es el que actualmente se guarda con el proyecto. (Solo se podía cambiar con
un 'Proyecto', 'Traducir'). Elija uno de los idiomas disponibles y confirme el diálogo con OK. A continuación,
el proyecto se mostrará en el idioma elegido, pero no se podrá editar en esta vista.

Si desea volver a ver el proyecto en su idioma original, utilice el comando 'Cambiar traducción'.

Nota: Por favor, tenga en cuenta las especialidades de los textos en las visualizaciones; véase más arriba, 'Crear archivo de traducción'.

'Alternar traducción'
Si se ha visualizado el proyecto (no editable) en otro idioma mediante el comando 'Mostrar proyecto
traducido', ahora puede cambiar entre esta versión de idioma y la versión original (editable) utilizando el
comando 'Cambiar traducción' del menú 'Proyecto' 'Traducir (a otro idioma)'.
Nota: Por favor, tenga en cuenta las especialidades de los textos en las visualizaciones; véase más arriba, 'Crear archivo de traducción'.

'Proyecto' 'Documento'
Este comando le permite imprimir la documentación de todo el proyecto.
Cuadro de diálogo para la documentación del proyecto

Los elementos de una documentación completa son:


Los POUs,
el contenido de la documentación,
los tipos de datos,
las visualizaciones,
los recursos (Variables Globales, Configuración de Variables, Traza de Muestreo, Configuración de
PLC, Configuración de Tareas, Gestor de Relojes y Recetas)
los árboles de llamadas de POU y tipos de datos, así como la

4-36 CoDeSys V2.3


4 - Los componentes individuales

lista de referencias cruzadas.

Para los dos últimos elementos, el proyecto debe haberse construido sin errores. Solo se imprimen las
áreas del cuadro de diálogo que están resaltadas en azul.
Si desea seleccionar todo el proyecto, seleccione el nombre del proyecto en la primera línea.
Si, por el contrario, solo desea seleccionar un solo objeto, haga clic en el objeto correspondiente o
mueva el rectángulo punteado sobre el objeto deseado con la tecla de flecha. Los objetos que tienen
un signo más delante de sus símbolos son objetos de organización que contienen otros objetos. Con
un clic en un signo más, el objeto de organización se expande, y con un clic en el signo menos
resultante, se puede volver a cerrar. Al seleccionar un objeto de organización, también se seleccionan
todos los objetos relevantes. Al presionar la tecla <Shift> puede seleccionar un grupo de objetos, y al
presionar la tecla <Ctrl> puede seleccionar varios objetos individuales.
Una vez que haya hecho su selección, haga clic en Aceptar. Aparece el cuadro de diálogo Imprimir.
Puede determinar el diseño de las páginas que se imprimirán con 'Archivo' 'Configuración de la
impresora'.
'Proyecto' 'Exportar'
Con CoDeSys los proyectos pueden ser exportados o importados. Eso le permite intercambiar
programas entre diferentes sistemas de programación IEC.
Existe un formato de intercambio estandarizado para las POU en IL, ST y SFC (el formato de
elementos comunes de IEC 1131-3). Para las POU en LD y FBD y los demás objetos, CoDeSys tiene
su propio formato de archivo, ya que no existe un formato de texto para esto en IEC 1131 3.
Los objetos seleccionados se escriben en un archivo ASCII.
Las POU, los tipos de datos, las visualizaciones y los recursos se pueden exportar. Además, las entradas en el
administrador de bibliotecas, es decir, la información de enlace a las bibliotecas, se pueden exportar (¡no las
bibliotecas en sí!).
Importante: Al volver a importar una POU FBD o LD exportada, se produce un error si un comentario en el editor
gráfico contiene una comilla simple ('), ya que esto se interpretará como el comienzo de una cadena.

Una vez que haya realizado su selección en la ventana del cuadro de diálogo (de la misma manera que
con 'Proyecto' 'Documento'), puede decidir si desea exportar las partes seleccionadas a un archivo o
exportar en archivos separados, uno para cada objeto. Active o desactive la opción Un archivo para
cada objeto y luego haga clic en Aceptar. Aparece el cuadro de diálogo para guardar archivos.
Introduzca un nombre de archivo con la expansión ".exp" o un directorio para los archivos de
exportación de objetos, que luego se guardarán allí con el nombre de archivo <objectname.exp>.

'Proyecto' 'Importar'
En el cuadro de diálogo resultante para abrir archivos, seleccione el archivo de exportación deseado.
Los datos se importan en el proyecto actual. Si ya existe un objeto con el mismo nombre en el mismo
proyecto, aparecerá un cuadro de diálogo con la pregunta "¿Desea reemplazarlo?": Si responde Sí, el
objeto del proyecto se reemplaza por el objeto del archivo de importación. Si la respuesta es No, el
nombre de los nuevos objetos recibe como complemento un subrayado y un dígito ("_0", "_1", ..). Con
Sí, todo o No, todo esto se lleva a cabo para todos los objetos.
Si la información se importa para vincularla con una biblioteca, la biblioteca se cargará y se anexará al final de la lista en
el administrador de bibliotecas. Si la biblioteca ya se cargó en el proyecto, no se volverá a cargar. Sin embargo, si el
archivo de exportación que se está importando muestra un tiempo de almacenamiento diferente para la biblioteca, el
nombre de la biblioteca se marca con un "*" en el administrador de bibliotecas (por ejemplo, standard.lib*30.3.99
11:30:14), de forma similar a la carga de un proyecto. Si no se puede encontrar la biblioteca, aparece un cuadro de
diálogo de información: "No se puede encontrar la biblioteca {<ruta>\}<nombre> <fecha> <hora>", como cuando se carga
un proyecto.

En la ventana de mensajes se registra la importación.

'Proyecto' 'Siemens Import'


En el submenú "Siemens Import" encontrará los comandos para importar POUs y variables de archivos
Siemens-STEP5.

CoDeSys V2.3 4-37


Gestión de proyectos...

Están disponibles los siguientes comandos:


"Importar desde el archivo de símbolos SEQ"
"Importar desde un archivo S5"
Consulte el Apéndice G: para obtener información más detallada sobre la importación de Siemens.

'Proyecto' 'Comparar'
Este comando se utiliza para comparar dos proyectos o para comparar la versión real de un proyecto
con la que se guardó por última vez.
Visión general:

Definiciones: proyecto real: proyecto, en el que está trabajando actualmente.


Proyecto de referencia: Proyecto, que debe compararse con el proyecto real.
Modo de comparación: En este modo, el proyecto se mostrará después del comando
Se ha ejecutado 'Proyecto' 'Comparar'.
unidad: La unidad más pequeña que se puede comparar. Puede ser una línea (declaración
editor, editor ST, editor IL), una red (editor FBD, editor LD) o un
element/POU (editor CFC, editor SFC).

En el modo de comparación, el proyecto real y el proyecto de referencia se presentarán en una ventana bipartita.
Los nombres de las POU, para los que se han encontrado diferencias, están marcados por colores. En el caso de
las POU del editor, también se muestra el contenido de las POU de forma vis-à-vis. Los resultados y la forma de
presentación en modo de comparación dependen de: 1. qué filtros se han activado para la ejecución de
comparación, afectando la consideración de los espacios en blanco y los comentarios durante la comparación; 2.
si la modificación dentro de líneas, redes o elementos se evalúa como una inserción completamente nueva de una
POU o no.
La versión del proyecto de referencia puede ser aceptada para diferencias simples o para diferencias
"todas igualmente marcadas". Aceptar significa que la versión del proyecto de referencia se transfiere
al proyecto real.
Tenga en cuenta: En el modo de comparación (consulte la barra de estado: COMPARAR) el proyecto no se puede editar.

Ejecutar comparación
Después de ejecutar el comando 'Proyecto' 'Comparar', se abre el cuadro de diálogo Comparación de proyectos:
Cuadro de diálogo para la comparación de proyectos

Inserte la ruta del proyecto de referencia en Proyecto para comparar. Pulse si desea utilizar el cuadro
de diálogo estándar para abrir un proyecto. Si inserta el nombre del proyecto real, la versión actual del
proyecto se comparará con la versión que se guardó en último lugar.
Si el proyecto está bajo control de código fuente en una base de datos de ENI, entonces la versión local se puede
comparar con la versión real que se encuentra en la base de datos. Para ello, active la opción Comparar con
ENI-Project.
Se pueden activar las siguientes opciones relativas a la comparación:
Ignorar espacios en blanco: No se detectarán diferencias que consistan en un número diferente de
espacios en blanco.

4-38 CoDeSys V2.3


4 - Los componentes individuales

Ignorar comentarios: No se detectarán diferencias en los comentarios.


Ignorar propiedades: No se detectarán diferencias en las propiedades de los objetos.
Comparar diferencias: Si se ha modificado una línea, una red o un elemento dentro de una POU, en el
modo de comparación se mostrará en la ventana bipartita directamente opuesta a la versión del otro
proyecto (marcada en rojo, ver más abajo). Si la opción está desactivada, la línea correspondiente se
mostrará en el proyecto de referencia como "eliminada" y en el proyecto real como "insertada" (azul/verde,
ver más abajo). Esto significa que no se mostrará directamente opuesto a la misma línea en el otro proyecto.

Ejemplo:
La línea 0005 ha sido modificada en el proyecto actual (lado izquierdo).
Ejemplo de "Oponerse a las diferencias"

Cuando se cierra el cuadro de diálogo 'Comparación de proyectos' pulsando OK, la comparación se


ejecutará de acuerdo con la configuración.

Representación del resultado de la comparación


Primero se abrirá el árbol de estructura del proyecto, titulado "Comparación de proyectos", para mostrar los resultados
de la comparación. Aquí puede seleccionar POU particulares para ver las diferencias encontradas en detalle.

1. Resumen del proyecto en modo de comparación:


Una vez ejecutada la comparación del proyecto, se abre una ventana bipartita que muestra el proyecto en
modo de comparación. En la barra de título se encuentran las rutas del proyecto: "Comparación de proyectos
<ruta del proyecto real> - <ruta del proyecto de referencia>". El proyecto real se representa en la mitad
izquierda de la ventana, el proyecto de referencia en la derecha. Cada árbol de estructura muestra el nombre
de los proyectos en la posición superior, aparte de que corresponde a la estructura organizadora de objetos.

Las POUs que son diferentes, están marcadas en el árbol de estructura por una sombra, un color
específico y, finalmente, por un texto adicional :
Rojo: La unidad ha sido modificada; se muestra con letras de color rojo en ambas particiones de la ventana.
Azul: Unidad solo disponible en el proyecto de comparación; se insertará un espacio en el lugar
correspondiente en la vista general de la estructura del proyecto real.
Verde: Unidad solo disponible en el proyecto real; se insertará un espacio en el lugar correspondiente
en la descripción general de la estructura del proyecto real.
Negro: Unidad para la que no se han detectado diferencias.
"(Propiedades cambiadas)": Este texto se adjunta al nombre de la POU en el árbol de estructura del
proyecto, si se han detectado diferencias en las propiedades de la POU.

CoDeSys V2.3 4-39


Gestión de proyectos...

"(Derechos de acceso cambiados)": Este texto se adjunta al nombre de la POU en el árbol de


estructura del proyecto, si se han detectado diferencias en los derechos de acceso de la POU.
Ejemplo, Proyecto en modo Comparar

2. Contenido de POU en modo de comparación:


Al hacer doble clic en una línea en el resumen de la estructura, que está marcada en rojo debido a una
modificación, se abre la POU.
Si se trata de una POU de editor de texto o gráfico, se abrirá en una ventana bipartita. El contenido del proyecto de referencia
(lado derecho) se establece en paralelo al del proyecto real (lado izquierdo). La unidad más pequeña que se tendrá en cuenta
durante la comparación es una línea (editor de declaraciones, ST, IL), una red (FBD, LD) o un elemento (CFC, SFC). Se
utilizará el mismo color que se describió anteriormente para la descripción general del proyecto.

Ejemplo, POU en modo de comparación:

4-40 CoDeSys V2.3


4 - Los componentes individuales

Si no se trata de una POU del editor, sino de la configuración de la tarea, la configuración de destino,
etc., entonces la versión POU del proyecto real y el proyecto de referencia se pueden abrir en ventanas
separadas haciendo doble clic en la línea respectiva en la estructura del proyecto. En el caso de las
POU del proyecto, no se mostrarán más detalles de las diferencias.

Trabajar en el modo de comparación


Si en la ventana bipartita el cursor se coloca sobre una línea, lo que indica una diferencia, el menú
'Extras' resp. El menú contextual ofrece una selección de los siguientes comandos, dependiendo de si
se trabaja en la vista general del proyecto o en una POU.
Nota: La aceptación de diferentes partes del proyecto (diferencias) o propiedades de derechos de acceso solo es
posible desde el proyecto de referencia o el proyecto real, no al revés.

'Extras' 'La siguiente diferencia'


Atajo: <F7>
Este comando está disponible en el modo de comparación (ver arriba 'Proyecto' 'Comparar').
El cursor salta a la siguiente unidad, donde se indica una diferencia. (línea en la descripción general del
proyecto, línea/red/elemento en POU)

'Extras' 'Diferencia anterior'


Atajo: <Mayús><F7>
Este comando está disponible en el modo de comparación (ver arriba 'Proyecto' 'Comparar').
El cursor salta a la unidad anterior, donde se indica una diferencia. (línea en la descripción general del
proyecto, línea/red/elemento en POU)

'Extras' 'Aceptar el cambio'


Atajo: <Espacio>
Este comando está disponible en el modo de comparación (ver arriba 'Proyecto' 'Comparar').
Para todas las unidades que sean coherentes con aquella en la que se encuentra actualmente el cursor
y que tengan el mismo tipo de marca de diferencia (por ejemplo, líneas posteriores), se aceptará la
versión del proyecto de referencia para el proyecto real (¡solo posible en esta dirección!). Las unidades
correspondientes se mostrarán (con el color correspondiente) en el lado izquierdo de la ventana.
Para aceptar cambios de unidades particulares, utilice 'Aceptar artículo cambiado'.

'Extras' 'Aceptar artículo modificado'


Atajo: <Ctrl> <Barra espaciadora>
Este comando está disponible en el modo de comparación (ver arriba 'Proyecto' 'Comparar').
Solo se aceptará la unidad individual (línea, red, elemento) donde se encuentra actualmente el cursor
para la versión real. Las unidades correspondientes se mostrarán (con el color correspondiente) en el
lado izquierdo de la ventana.
Si para una POU, que se ha marcado de color rojo en el árbol de estructura debido a un cambio de su
contenido, este cambio se acepta, entonces la POU se indicará con color amarillo en el proyecto real.
Las POU que solo están disponibles en el proyecto actual debido a 'Aceptar artículo cambiado',
también se indicarán con color amarillo. Las POU que se hayan eliminado del proyecto actual debido a
'Aceptar elemento modificado', se indicarán con un color amarillo en el proyecto de referencia.

'Extras' 'Aceptar propiedades'


Este comando está disponible en el modo de comparación (ver arriba 'Proyecto' 'Comparar').
Las propiedades del objeto para la POU, donde se encuentra actualmente el cursor, se aceptarán para el proyecto
real tal como se establecen en la versión de referencia (¡la aceptación solo es posible en esta dirección!).

CoDeSys V2.3 4-41


Gestión de proyectos...

'Extras' 'Aceptar derechos de acceso'


Este comando está disponible en el modo de comparación solo en la vista general del proyecto: (ver
arriba 'Proyecto' 'Comparar').
Los derechos de acceso al objeto para la POU, donde se encuentra actualmente el cursor, se
aceptarán para el proyecto real tal como se establecen en la versión de referencia.

'Proyecto' 'Fusionar'
Con este comando, puede combinar objetos (POU, tipos de datos, visualizaciones y recursos), así
como vínculos a bibliotecas de otros proyectos en el proyecto.
Cuando se ha dado el comando, primero aparece el cuadro de diálogo estándar para abrir archivos.
Cuando haya elegido un archivo allí, aparecerá un cuadro de diálogo en el que puede elegir el objeto
deseado. La selección se lleva a cabo como se describe con 'Proyecto' 'Documento' .
Si ya existe un objeto con el mismo nombre en el proyecto, el nombre del nuevo objeto recibe la adición
de un subrayado y un dígito ("_1", "_2" ...).

'Proyecto' 'Información del proyecto'


En este elemento del menú se puede guardar la información sobre su proyecto. Cuando se ha dado el
comando, se abre el cuadro de diálogo 'Información del proyecto'.
Se muestra la siguiente información del proyecto:
Nombre del archivo
Ruta de acceso del directorio
La hora del cambio más reciente (Fecha de cambio)
Esta información no se puede cambiar.
Cuadro de diálogo para introducir la información del proyecto

Además, puede agregar la siguiente información:


A título del proyecto:
Tenga en cuenta: Si es compatible con el sistema de destino, este título se propondrá
automáticamente como nombre del archivo del proyecto, cuando el proyecto se cargue mediante
el comando 'Archivo' 'Abrir proyecto desde PLC' (en este caso se abrirá el cuadro de diálogo
para guardar un archivo).

4-42 CoDeSys V2.3


4 - Los componentes individuales

el nombre del autor,


el número de versión, y
Descripción del proyecto.
Esta información es opcional. Al pulsar el botón Estadísticas se recibe información estadística sobre el
proyecto.
Contiene información como el número de POU, los tipos de datos y las variables locales y globales tal y
como se rastrearon en la última compilación.
Ejemplo de estadísticas de proyectos

El botón Información de licencia estará disponible, si trabaja en un proyecto de CoDeSys, que ya


había sido guardado con información de licencia por el comando 'Archivo' 'Guardar como...'. En este
caso, el botón abre el cuadro de diálogo 'Editar información de licencia', donde puede modificar o
eliminar la licencia (consulte el Capítulo 9, 'Administración de licencias en CoDeSys')
Si elige la opción Solicitar información del proyecto en la categoría Cargar y guardar en el cuadro
de diálogo Opciones, al guardar un nuevo proyecto, o al guardar un proyecto con un nuevo nombre, se
llama automáticamente al cuadro de diálogo de información del proyecto.

'Proyecto' 'Búsqueda global'


Con este comando se puede buscar la ubicación de un texto en las POU, en los tipos de datos o en los
objetos de las variables globales.
Cuando se introduce el comando, se abre un cuadro de diálogo en el que puede elegir el objeto
deseado. La selección se realiza como en la descripción del 'Proyecto' 'Documento'.
Si la selección se confirma con OK, se abrirá el cuadro de diálogo estándar para Buscar. Esto parece

Inmediatamente cuando se invoca el comando "Búsqueda global" a través del símbolo en la barra de menús, la
búsqueda se lleva a cabo automáticamente en todas las partes del proyecto en las que se pueden realizar
búsquedas. Las cadenas de búsqueda introducidas más recientemente se pueden seleccionar a través del
cuadro combinado del campo Buscar. Si se encuentra una cadena de texto en un objeto, el objeto se carga
en el editor correspondiente o en el administrador de bibliotecas y se muestra la ubicación donde se encontró
la cadena. La visualización del texto que se encuentra, así como las funciones de búsqueda y búsqueda
siguiente se comportan de manera similar al comando 'Editar' 'Buscar'.
Si selecciona el botón En la ventana de mensajes, todas las ubicaciones en las que aparece la serie
de símbolos buscados en el objeto seleccionado se enumerarán línea por línea en forma de tabla en la
ventana de mensajes. Después, se mostrará el número de ubicaciones encontradas.
Si no se abrió la ventana del informe, se mostrará. Para cada ubicación que se encuentre, se mostrará
lo siguiente:
Nombre del objeto
Ubicación del hallazgo en la Declaración (Decl) o en la parte de Implementación (Impl) de una línea POU y

CoDeSys V2.3 4-43


Gestión de proyectos...

número de red, si lo hubiera.

La línea completa en los editores de texto


Elemento de texto completo en los editores gráficos
Ventana de mensaje con visualización de resultados de búsqueda

Si hace doble clic con el ratón en una línea de la ventana de mensajes o pulsa <Intro>, el editor se abre
con el objeto cargado. La línea en cuestión en el objeto está marcada. Puede saltar rápidamente entre
las líneas de visualización utilizando las teclas de función <F4> y <Mayús>+<F4>.

'Proyecto' 'Reemplazo global'


Con este comando puede buscar la ubicación de un texto en POU, tipos de datos u objetos de las
variables globales y reemplazar este texto por otro. Esto se ejecuta de la misma manera que con
'Proyecto', 'Búsqueda global' o 'Editar', 'Reemplazar'. Las bibliotecas, sin embargo, no se ofrecen para
su selección y no es posible mostrarlas en la ventana de mensajes.
Los resultados se muestran en la ventana de mensajes.

'Proyecto' 'Comprobar'
Este comando proporciona comandos para comprobar la corrección semántica del proyecto. Se tendrá
en cuenta el estado de la compilación más reciente. Para obtener los resultados de las
comprobaciones actualizadas, debe volver a compilar el proyecto después de cualquier cambio. Se
mostrará una advertencia apropiada en la ventana de mensajes.
Se abrirá un submenú con los siguientes comandos:
Variables no utilizadas
Áreas de memoria superpuestas
Acceso simultáneo
Acceso de escritura múltiple en la salida
Los resultados se mostrarán en la ventana de mensajes.
Tenga en cuenta: En las opciones del proyecto, categoría 'Build', puede definir estas comprobaciones semánticas
para que se realicen en cada compilación del proyecto de forma automática.

Variables no utilizadas
Esta función en el menú 'Proyecto' 'Verificar' (ver arriba) busca variables que han sido declaradas pero
que no se han utilizado en el programa. Se emiten por nombre y línea de POU, por ejemplo: PLC_PRG
(4) – var1. Las variables de las bibliotecas no se examinan.
Los resultados se muestran en la ventana de mensajes.

Áreas de memoria superpuestas


Esta función en el menú 'Proyecto' 'Verificar' (ver arriba) comprueba si en la asignación de variables a través
de la declaración "AT" han surgido solapamientos en áreas de memoria específicas. Por ejemplo, se produce
una superposición al asignar las variables "var1 AT %QB21: INT" y "var2 AT %QD5: DWORD" porque
ambas utilizan el byte 21. A continuación, el resultado aparece de la siguiente manera: las siguientes

4-44 CoDeSys V2.3


4 - Los componentes individuales

variables hacen referencia a %QB21:


PLC_PRG (3): var1 EN %QB21
PLC_PRG (7): var2 EN %QD5
Los resultados se muestran en la ventana de mensajes.

Acceso de escritura múltiple en la salida


Esta función del menú 'Revisar' de 'Proyecto' (ver arriba) busca áreas de memoria a las que un solo proyecto
obtiene acceso de escritura en más de un lugar. A continuación, el resultado aparece de la siguiente manera:
%QB24 se escribe en las siguientes ubicaciones: PLC_PRG (3): %QB24 PLC_PRG. POU1 (8): %QB24

Los resultados se muestran en la ventana de mensajes.

Acceso simultáneo
Esta función en el menú 'Proyecto' 'Verificar' (ver arriba) busca áreas de memoria de direcciones IEC a
las que se hace referencia en más de una tarea. Aquí no se hace ninguna distinción entre el acceso de
lectura y el de escritura. El resultado es, por ejemplo:
Se hace referencia a %MB28 en las siguientes tareas: Tarea1 – PLC_PRG (6): %MB28 [acceso de solo lectura]
Tarea2 – POU1. ACCIÓN (1) %MB28 [acceso de escritura]

Los resultados se muestran en la ventana de mensajes.

Grupos de usuarios
En CoDeSys se pueden configurar hasta ocho grupos de usuarios con diferentes derechos de acceso a
las POU, tipos de datos, visualizaciones y recursos. Se pueden establecer derechos de acceso para
objetos individuales o para todos ellos. Solo un miembro de un determinado grupo de usuarios puede
abrir un proyecto. Un miembro de dicho grupo de usuarios debe identificarse mediante una contraseña.
Los grupos de usuarios están numerados del 0 al 7, por lo que el Grupo 0 tiene los derechos de administrador, es decir,
solo los miembros del grupo 0 pueden determinar las contraseñas y los derechos de acceso para todos los grupos y/u
objetos.
Cuando se inicia un nuevo proyecto, todas las contraseñas están inicialmente vacías. Hasta que se haya
establecido una contraseña para el grupo 0, se entra automáticamente en el proyecto como miembro del grupo 0.

Si existe una contraseña para el grupo de usuarios 0 mientras se carga el proyecto, se solicitará una contraseña
para todos los grupos cuando se abra el proyecto. Para ello, aparece el siguiente cuadro de diálogo:
Cuadro de diálogo para la introducción de la contraseña

En el cuadro combinado Grupo de usuarios en el lado izquierdo del cuadro de diálogo, ingrese el
grupo al que pertenece e ingrese en el lado derecho la contraseña correspondiente . Presione
Aceptar. Si la contraseña no coincide con la contraseña guardada, aparece el mensaje:
"La contraseña no es correcta".
Solo cuando haya ingresado la contraseña correcta, se puede abrir el proyecto.
Con el comando 'Contraseñas para grupo de usuarios' puede asignar las contraseñas, y con 'Objeto'
'Derechos de acceso' puede definir los derechos para objetos individuales o para todos ellos.

CoDeSys V2.3 4-45


Gestión de proyectos...

'Proyecto' 'Contraseñas de grupo de usuarios'


Con este comando, se abre la ventana de diálogo para la asignación de contraseñas para grupos de
usuarios. Este comando solo puede ser ejecutado por miembros del grupo 0. Cuando se ha dado el
comando, aparece el siguiente cuadro de diálogo:
Cuadro de diálogo para la asignación de contraseñas

En el cuadro combinado de la izquierda Grupo de usuarios, puede seleccionar el grupo. Introduzca la


contraseña deseada para el grupo en el campo Contraseña. Para cada carácter escrito aparece un
asterisco (*) en el campo. Debe repetir la misma contraseña en el campo Confirmar contraseña.
Cierre el cuadro de diálogo después de cada entrada de contraseña con OK. Si recibes el mensaje:
"La contraseña no concuerda con la confirmación",
Entonces cometió un error de escritura durante una de las dos entradas. En este caso, repita ambas
entradas hasta que el cuadro de diálogo se cierre sin ningún mensaje.
A continuación, si es necesario, asigne una contraseña para el siguiente grupo llamando de nuevo al comando.
Importante: Si no se asignan contraseñas a todos los grupos de usuarios, se puede abrir un proyecto a través de
un grupo al que no se haya asignado ninguna contraseña.

Utilice el comando 'Objeto' 'Derechos de acceso' para asignar los derechos de objetos individuales o de todos ellos.
En cuanto a la protección de un proyecto, se considera también lo siguiente:
- Contraseñas para el acceso y la protección contra escritura (Capítulo 4.2, Opciones para contraseñas)
- Cifrado de un proyecto al guardarlo (Capítulo 4.3, 'Archivo' 'Guardar como').

'Proyecto' 'Enlace a la base de datos'


Esta opción de menú solo está disponible si se ha activado la opción 'Usar control de código fuente
(ENI)' en el cuadro de diálogo de opciones del proyecto para la categoría 'Control de código fuente del
proyecto'. Se adjunta un submenú donde se encuentran los siguientes comandos para manejar el
objeto o el proyecto en la base de datos ENI actualmente conectada:
Inicio de sesión (el usuario inicia sesión en el servidor ENI)
Si se marca un objeto en el Organizador de objetos y se ejecuta el comando Enlace a la base de datos (desde el
menú contextual, botón derecho del ratón), los siguientes comandos estarán disponibles para ejecutar las
acciones correspondientes de la base de datos. Si el usuario no ha iniciado sesión correctamente en el servidor
ENI antes, se abrirá automáticamente el cuadro de diálogo "Inicio de sesión en la base de datos" y el comando
elegido no se ejecutará hasta que el inicio de sesión se haya realizado correctamente:

Definir
Obtener la última versión
Check-out
Check-in
Deshacer el check-out
Mostrar diferencias
Mostrar historial de

4-46 CoDeSys V2.3


4 - Los componentes individuales

versiones Si está activado el comando 'Enlace a la base de datos' en el menú 'Proyecto', estarán
disponibles elementos de menú adicionales, que se refieren a todos los objetos del proyecto:
Definición múltiple
Obtener todas las versiones más recientes
Salida múltiple
Registro múltiple
Deshacer varias veces
Historial de versiones del proyecto
Versión de la etiqueta
Agregar objetos compartidos
Estado de actualización
Vea a continuación cómo se muestra el estado de un objeto o su manejo en la base de datos en el
Organizador de objetos:

Icono sombreado en gris:


El objeto se almacena en la base de
datos (control de código fuente)

Marca verde delante del nombre del


objeto:
El objeto está desprotegido en el
proyecto abierto actualmente.

Cruz roja delante del nombre del objeto:


el objeto está siendo desprotegido
actualmente por otro usuario.

<R> detrás del nombre del objeto: el


objeto solo se puede leer, pero no editar.

Tenga en cuenta: algunos objetos


(configuración de tareas, seguimiento
de muestreo, configuración de PLC,
ajustes de destino, administrador de
relojes y recetas) se asignan de forma
predeterminada con un <R> siempre
que no estén extraídos. Esto significa
que no se le preguntará
automáticamente si el objeto debe
desprotegerse, tan pronto como
comience a editar el objeto; No
significa necesariamente que no pueda
editar el objeto. Si no hay acceso de
escritura, el comando 'Desproteger' no
estará disponible.

CoDeSys V2.3 4-47


Gestión de proyectos...

Iniciar sesión
Este comando abrirá el cuadro de diálogo 'Login' donde puede introducir los datos de acceso a la base
de datos de ENI a través del servidor de ENI. Los datos de acceso también deben definirse en el
servidor ENI (ENI Admin, Gestión de usuarios) y, dependiendo de la base de datos utilizada
actualmente, también en la gestión de usuarios de la base de datos. Una vez ejecutado el comando,
primero se abrirá el cuadro de diálogo de inicio de sesión para la categoría 'Objetos del proyecto'.
Se muestran los siguientes elementos:
Objetos del proyecto:
Host: dirección del ordenador en el que se ejecuta el servidor ENI (debe coincidir con la entrada en el campo
'Dirección TCP/IP' en el cuadro de diálogo de opciones del proyecto para 'Control de código fuente del proyecto').

Proyecto: Nombre del proyecto de base de datos (debe coincidir con la entrada en el campo 'Nombre del proyecto' en
el cuadro de diálogo de opciones del proyecto para 'Control de código fuente del proyecto'/categoría 'Objetos del
proyecto').
Cuadro de diálogo 'Iniciar sesión'

Credenciales:
Inserte el nombre de usuario y la contraseña.
Cuando se activa la opción Usar por defecto para este proyecto, los datos de acceso introducidos
anteriormente se utilizarán automáticamente para cualquier comunicación posterior entre el proyecto
CoDeSys real y la base de datos relativa a objetos de la categoría real.
Presione OK para confirmar la configuración. El cuadro de diálogo se cerrará y automáticamente se abrirá el
cuadro de diálogo de inicio de sesión para 'Objetos compartidos'. Introduzca los datos de acceso de la
misma manera que se describe para los "Objetos de proyecto" y confirme con OK. Haga lo mismo en el
tercer cuadro de diálogo de inicio de sesión que se abrirá para la categoría 'Compilar archivos'.

El cuadro de diálogo de inicio de sesión siempre se abrirá tan pronto como intente acceder a la base de
datos antes de haber iniciado sesión con éxito como se describió anteriormente.

Nota: Si desea guardar los datos de acceso con el proyecto, active la opción 'Guardar credenciales ENI' en las
opciones del proyecto, categoría 'Cargar y guardar'.

Definir
Comando: 'Proyecto' 'Enlace a la base de datos' 'Definir'
Aquí se puede definir si el objeto que está marcado actualmente en el organizador de objetos debe mantenerse en
la base de datos o solo localmente en el proyecto. Se abrirá un cuadro de diálogo en el que podrá elegir una de las
dos categorías de la base de datos 'Proyecto' u 'Objetos compartidos', o la categoría 'Local'.

Los iconos de todos los objetos que se gestionan en la base de datos se mostrarán sombreados en gris
en el organizador de objetos.

4-48 CoDeSys V2.3


4 - Los componentes individuales

Obtener la última versión


Comando: 'Proyecto' Enlace a la base de datos'Obtener la última versión'
La versión actual del objeto que está marcado en el organizador de objetos se copiará de la base de
datos y sobrescribirá la versión local. A diferencia de la acción Desproteger, el objeto no se bloqueará
para otros usuarios en la base de datos.

Check-out
Comando: 'Proyecto' 'Enlace a la base de datos' 'Retirar'
El objeto que está marcado en el organizador de objetos será extraído de la base de datos y por eso
será bloqueado para otros usuarios.
Al ejecutar el comando, el usuario obtendrá un cuadro de diálogo 'Desproteger objeto'. Allí se puede
añadir un comentario que se almacenará en el historial de versiones del objeto en la base de datos.
Los saltos de línea se insertan mediante <Ctrl>+<Intro>. Si la versión del objeto difiere de la del
proyecto local, se mostrará un mensaje apropiado y el usuario podrá decidir si el objeto debe extraerse
de todos modos.
Una vez que el cuadro de diálogo se haya cerrado con OK, el objeto desprotegido se marcará con una
marca de verificación verde en el organizador de objetos del proyecto local. Para el resto de usuarios
aparecerá marcado con una cruz roja y no podrá ser editable por ellos.

Check-in
Comando: 'Proyecto' 'Enlace a la base de datos' 'Registrar'
El objeto que está marcado en el organizador de objetos se registrará en la base de datos. De este modo, se
creará una nueva versión del objeto en la base de datos. Las versiones anteriores se mantendrán de todos modos.

Al ejecutar el comando, el usuario obtendrá un cuadro de diálogo 'Registrar objeto'. Allí se puede
agregar un comentario que se almacenará en el historial de versiones del objeto en la base de datos.
Los saltos de línea se insertan mediante <Ctrl>+<Intro>.
Una vez que se haya cerrado el cuadro de diálogo con OK, se eliminará la marca verde delante del
nombre del objeto en el organizador de objetos.

Deshacer el check-out
Comando: 'Proyecto' 'Enlace a la base de datos' 'Deshacer desprotección'
Utilice este comando para cancelar la desprotección del objeto que está marcado actualmente en el
organizador de objetos. De este modo, también se anularán las modificaciones del objeto que se hayan
realizado localmente. No aparecerá ningún cuadro de diálogo. La última versión del objeto, sin
cambios, se mantendrá en la base de datos y volverá a ser accesible para otros usuarios. La cruz roja
delante del nombre del objeto en el organizador de objetos desaparecerá.

Mostrar diferencias
Comando: 'Proyecto' 'Enlace a la base de datos' 'Mostrar diferencias'
El objeto que está abierto por el usuario en CoDeSys se mostrará en una ventana que se divide en dos
partes. Allí, la versión local, que actualmente es editada por el usuario local, se opondrá a la última
versión (real) que se conserva en la base de datos. Las diferencias de las versiones se marcarán como
se describe para la comparación de proyectos (ver 'Proyecto' 'Comparar').

Mostrar historial de versiones


Comando: 'Proyecto' 'Enlace a la base de datos' Mostrar historial de versiones'
Para el objeto actualmente marcado en el organizador de objetos, se abrirá un cuadro de diálogo
'Historial de versiones de <nombre del objeto>. Allí se enumeran todas las versiones del objeto que se
han registrado en la base de datos o que se han etiquetado allí.
Se proporciona la siguiente información:

CoDeSys V2.3 4-49


Gestión de proyectos...

Versión: Numeración específica de la base de datos de las versiones del objeto que se han verificado una tras
otra. Las versiones etiquetadas no tienen número de versión, pero están marcadas con un icono de etiqueta.

Usuario: Nombre del usuario que ha ejecutado la acción de check-in o etiquetado


Fecha: Marca de fecha y hora de la acción
Acción: Tipo de acción que se ha ejecutado. Tipos posibles: 'created' (el objeto ha sido registrado en
la base de datos por primera vez), 'check-in' (todos los check-in's del objeto excepto el primero) y
'label's <tag>' (se ha asignado una etiqueta a esta versión del objeto)
Cuadro de diálogo que muestra el historial de la versión

Los botones:
Cerrar: El cuadro de diálogo se cerrará.
Visualización: La versión que está marcada actualmente en la tabla se abrirá en una ventana en CoDeSys.
La barra de título muestra: "ENI: <nombre del proyecto en la base de datos>/<nombre del objeto>
Detalles: Se abrirá el cuadro de diálogo 'Detalles del historial de versiones':
Archivo (nombre del proyecto y del objeto en la base de datos), Versión (ver arriba), Fecha (ver arriba),
Usuario (ver arriba), Comentario ( Comentario que se ha insertado cuando el objeto ha sido verificado en
resp. ha sido etiquetado). Utilice los botones Next resp. Antes de saltar a la ventana de detalles de la
entrada siguiente o anterior en la tabla en el cuadro de diálogo 'Historial de versiones de ..'.

Obtener la última versión: La versión que está marcada en la tabla se cargará en CoDeSys y allí se
sobrescribirá la versión local.
Diferencias: Si en la tabla solo se marca una versión de un objeto, este comando provocará una
comparación de esta versión con la última versión (real) de la base de datos. Si se marcan dos
versiones, se compararán. Las diferencias se muestran en una ventana bipartita como se hace en la
comparación de proyectos.
Restablecer versión: La versión que está marcada en la tabla se establecerá como la última versión.
¡Todas las versiones que se hayan registrado más tarde serán eliminadas! Esto puede ser útil para
restaurar un estado anterior de un objeto.
Solo etiquetas: Si esta opción está activada, solo se mostrarán en la tabla aquellas versiones del
objeto, que están marcadas con una etiqueta.
Cuadro de selección debajo de la opción 'Solo etiquetas': Aquí encontrará los nombres de todos los
usuarios que han ejecutado alguna acción de la base de datos para los objetos del proyecto actual.
Seleccione 'Todos' o uno de los nombres si desea obtener el historial de versiones de todos los
usuarios o solo de uno determinado.

4-50 CoDeSys V2.3


4 - Los componentes individuales

Definición múltiple
Comando 'Proyecto' 'Enlace a la base de datos' 'Definición múltiple'
Utilice este comando si desea asignar varios objetos de un solo golpe a una determinada categoría de
base de datos. El cuadro de diálogo 'Propiedades' se abrirá como se describe para el comando
'Definir'. Elija la categoría deseada y cierre el cuadro de diálogo con OK. A continuación, se abrirá el
cuadro de diálogo 'ENI-Selection ', que enumera todas las POU del proyecto que se consideran para
la categoría elegida (Ejemplo: si elige la categoría 'objetos compartidos', la ventana de selección solo
ofrecerá las POU de la pestaña Recursos). Las POU se presentan en una estructura de árbol que
cumple con la del Organizador de Objetos. Seleccione las POU deseadas y confirme con OK.

Obtener todas las versiones más recientes


Comando 'Proyecto' 'Enlace a la base de datos' 'Obtener todas las últimas versiones'
La última versión de cada objeto del proyecto actualmente abierto, que se mantiene bajo control de
código fuente, se llamará desde la base de datos. Tenga en cuenta lo siguiente:
Si mientras tanto se han almacenado objetos adicionales en la carpeta del proyecto de la base de
datos, ahora se agregarán al proyecto local en CoDeSys.
Si los objetos han sido eliminados en la base de datos mientras tanto, no se eliminarán en el proyecto
local, sino que se asignarán automáticamente a la categoría 'Local'.
Solo se llamará a la última versión de los objetos de la categoría 'Objetos compartidos' si estos objetos
ya están disponibles en el proyecto local. Para obtener más información, consulte el comando 'Obtener
la última versión'.
Salida múltiple
Comando 'Proyecto' 'Enlace a la base de datos' 'Salida múltiple'
Puedes ver varios objetos de un solo golpe. Para ello, se abrirá el cuadro de diálogo 'ENI-Selection',
que enumera todas las POU del proyecto. Seleccione aquellos que deben ser desprotegidos y confirme
con OK. Para obtener más información, consulte el comando 'Retirar'.

Registro múltiple
Comando 'Proyecto' 'Enlace a la base de datos' 'Registro múltiple'
Puedes registrar varios objetos de un solo golpe. Para ello, se abrirá el cuadro de diálogo
'ENI-Selection' , que enumera todas las POU del proyecto. Seleccione los que deben registrarse y
confirme con OK. Para obtener más información, consulte el comando 'Check In'.

Deshacer varias veces


Comando 'Proyecto' 'Enlace a la base de datos' Deshacer desprotección múltiple'
Puede deshacer la acción de desprotección de varios objetos de un solo golpe. Para ello, se abrirá el
cuadro de diálogo 'ENI- Selección', que enumera todas las POU del proyecto. Seleccione aquellos
para los que desea cancelar el pago y confirme con OK. Para obtener más información, consulte el
comando 'Deshacer desprotección'.
Historial de versiones del proyecto
Comando 'Proyecto' 'Enlace a la base de datos' 'Historial de versiones del proyecto
Si el sistema de base de datos elegido admite esa funcionalidad, puede utilizar este comando para ver
el historial de versiones del proyecto abierto actualmente.
Se abrirá el cuadro de diálogo 'Historial de <nombre del proyecto de la base de datos>'. Muestra las acciones
(crear, registrar, etiquetar) que se han realizado para los objetos particulares del proyecto en orden cronológico. El
número total de objetos se muestra detrás del historial de versiones . El cuadro de diálogo se puede manejar
como se describe para el comando 'Mostrar historial de versiones', pero tenga en cuenta lo siguiente:

El comando 'Restablecer versión' solo está disponible para objetos individuales.


El comando 'Obtener la última versión' significa que todos los objetos de la versión del objeto marcado
actualmente se llamarán al proyecto local. Eso significa que los objetos en CoDeSys se sobrescribirán con la
versión anterior. Pero: Los objetos locales, que aún no formaban parte del proyecto en esa versión anterior,

CoDeSys V2.3 4-51


Gestión de proyectos...

no se eliminarán del proyecto local. Si se llama a una versión etiquetada, que contiene objetos
compartidos, el usuario obtendrá un cuadro de diálogo en el que podrá decidir si esos objetos
compartidos también deben llamarse o no.

Versión de la etiqueta
Comando 'Proyecto' 'Enlace a la base de datos' 'Versión de etiqueta'
Este comando se utiliza para poner una "etiqueta" en la versión real de cada objeto de un proyecto, de modo que
exactamente esta versión del proyecto pueda ser recuperada más tarde. Se abrirá un cuadro de diálogo 'Etiqueta
<nombre del proyecto de la base de datos>'. Inserte un nombre de etiqueta (Etiqueta) (por ejemplo, "Versión de
lanzamiento") y, opcionalmente, un comentario. Al confirmar con OK, el diálogo se cerrará y la etiqueta y la acción
"etiquetada con <nombre de etiqueta>" aparecerán en la tabla del historial de versiones, así como en el historial de
un solo objeto como en el historial del proyecto. Los objetos compartidos que forman parte del proyecto también
obtendrán esa etiqueta. Una versión etiquetada del proyecto no obtiene un número de versión, sino que solo se
marca con un icono de etiqueta en la columna 'Versión'. Si la opción "Solo etiquetas" está activada en el cuadro de
diálogo Historial de versiones, solo se mostrarán las versiones etiquetadas.
Cuadro de diálogo 'Etiquetar proyecto <nombre del proyecto de base de datos>'

Agregar objetos compartidos


Comando 'Proyecto' 'Enlace a la base de datos' 'Añadir objetos compartidos'
Utilice este comando si desea agregar explícitamente nuevos objetos de la categoría de base de datos 'Objetos
compartidos' al proyecto abierto localmente en CoDeSys. Para los objetos de la categoría 'Objetos de proyecto'
esto no es necesario, ya que el comando 'Obtener (todas) la(s) última(s) versión(es)' llama automáticamente a
todos los objetos que se encuentran en la carpeta del proyecto de la base de datos, incluso si hay algunos que
aún no están disponibles en el proyecto local. Pero para los objetos de la categoría 'Objetos compartidos', en este
caso solo se llamará a aquellos objetos que ya están disponibles en el proyecto local.

Por lo tanto, ejecute el comando 'Agregar objetos compartidos' para abrir el cuadro de diálogo 'Examinar ENI'. Una
lista en la parte derecha de la ventana muestra todos los objetos que están disponibles en la carpeta de la base de
datos que está seleccionada actualmente en la lista del lado izquierdo. Elija el objeto deseado y presione OK o
haga doble clic en la entrada para insertar el objeto en el proyecto CoDeSys actualmente abierto.

Dialog 'Browse ENI'

4-52 CoDeSys V2.3


4 - Los componentes individuales

Estado de actualización
Comando 'Proyecto' 'Enlace a la base de datos' 'Actualizar estado'
Utilice este comando para actualizar la visualización en el Organizador de objetos, de modo que pueda
ver el estado real de los objetos relacionados con el control de código fuente del proyecto.

4.4 Gestión de objetos en un proyecto...


En los siguientes capítulos, consulte el libro 'Gestión de la información sobre cómo trabajar con objetos
y qué ayuda está disponible para realizar un seguimiento de un proyecto (Carpetas, Árbol de llamadas,
Lista de referencias cruzadas,..).
Objeto
Las POU, los tipos de datos, las visualizaciones y las variables globales de recursos, la configuración de
variables, el seguimiento de muestreo, la configuración del PLC, la configuración de tareas y el administrador
de relojes y recetas se definen como "objetos". Las carpetas insertadas para estructurar el proyecto están
parcialmente involucradas. Todos los objetos de un proyecto se encuentran en el Organizador de objetos.
Si mantiene presionado el puntero del mouse durante un breve período de tiempo en una POU en el Organizador
de objetos, el tipo de POU (programa, función o bloque de funciones) se muestra en una información sobre
herramientas. Para las variables globales, la información sobre herramientas muestra la palabra clave
(VAR_GLOBAL, VAR_CONFIG).
Con la función de arrastrar y soltar puede desplazar objetos (y también carpetas, consulte 'Carpeta')
dentro de un tipo de objeto. Para ello, seleccione el objeto y desplácelo al lugar deseado manteniendo
pulsado el botón izquierdo del ratón. Si el cambio da lugar a una colisión de nombres, el elemento
recién introducido se identificará de forma única mediante un número de serie adjunto (por ejemplo,
"Object_1").
Carpeta
Para realizar un seguimiento de los proyectos más grandes, debe agrupar las POU, los tipos de datos,
las visualizaciones y las variables globales de forma sistemática en carpetas.
Puede configurar tantos niveles de carpetas como desee. Si un signo más está delante del símbolo de una carpeta cerrada,
esta carpeta contiene
, objetos y/o carpetas adicionales. Al hacer clic en el signo más, se abre la carpeta y aparecen los objetos
subordinados. Con un clic en el signo menos (que ha reemplazado al signo más) la carpeta se puede volver a cerrar. En el
menú contextual encontrará los comandos 'Expandir nodos' y 'Contraer nodos' con las mismas funciones.

Con Drag&Drop puede mover los objetos, así como las carpetas dentro de su tipo de objeto. Para ello,
seleccione el objeto y arrástrelo con el botón izquierdo del ratón pulsado a la posición deseada.
Puede crear más carpetas con el comando 'Nueva carpeta'.
Nota: Las carpetas no tienen ninguna influencia en el programa, sino que solo sirven para estructurar su proyecto de manera clara.

Ejemplo de carpetas en el Organizador de objetos

CoDeSys V2.3 4-53


Gestión de objetos en un proyecto...

'Nueva carpeta'
Con este comando se inserta una nueva carpeta como objeto estructural. Si se ha seleccionado una
carpeta, se crea la nueva debajo de ella. De lo contrario, se crea en el mismo nivel. Si se selecciona
una acción, la nueva carpeta se insertará en el nivel de la POU a la que pertenece la acción.
El menú contextual del Organizador de objetos que contiene este comando aparece cuando se ha
seleccionado un objeto o el tipo de objeto y se ha pulsado el botón derecho del ratón o <Mayús>+<F10>.
La carpeta recién insertada tiene inicialmente la designación 'Nueva carpeta'. Tenga en cuenta la
siguiente convención de nomenclatura para las carpetas:
Las carpetas del mismo nivel en la jerarquía deben tener nombres distintos. Las carpetas de diferentes
niveles pueden tener el mismo nombre.
Una carpeta no puede tener el mismo nombre que un objeto ubicado en el mismo nivel.
Si ya hay una carpeta con el nombre "Nueva carpeta" en el mismo nivel, cada carpeta adicional con
este nombre recibe automáticamente un número de serie adjunto (por ejemplo, "Nueva carpeta 1"). No
es posible cambiar el nombre a un nombre que ya esté en uso.

'Expandir nodos' 'Contraer nodos'


Con el comando expandir, se despliegan visiblemente los objetos que se encuentran en el objeto
seleccionado. Con Contraer ya no se muestran los objetos subordinados.
Con las carpetas puedes abrirlas o cerrarlas con un doble clic del ratón o pulsando <Intro>.
El menú contextual del Organizador de objetos que contiene este comando aparece cuando se ha
seleccionado un objeto o el tipo de objeto y se ha pulsado el botón derecho del ratón o
<Mayús>+<F10>.
'Proyecto' 'Eliminación de objetos'
Atajo: <Eliminar>
Con este comando, el objeto seleccionado actualmente (una POU, un tipo de datos, una visualización o variables
globales) o una carpeta con los objetos subordinados se elimina del Organizador de objetos y, por lo tanto, se
elimina del proyecto. La eliminación de un objeto se puede revertir con el comando 'Editar' 'Deshacer'.

Puede recuperar los objetos eliminados usando el comando 'Editar' 'Deshacer'.


Si la ventana del editor del objeto estaba abierta, se cierra automáticamente.
Si elimina con el comando 'Editar' 'Cortar', entonces el objeto se estaciona en el portapapeles.

'Proyecto' 'Adición de objeto'


Atajo: <Insertar>
Con este comando se crea un nuevo objeto. El tipo de objeto (POU, tipo de datos, visualización o variables
globales) depende de la tarjeta de registro seleccionada en el Organizador de objetos. Tenga en cuenta que,
al hacerlo, posiblemente se utilizará una plantilla para objetos de tipo 'Variables globales', 'Tipos de datos',
'Función', 'Bloque de funciones' o 'Programa', consulte más abajo, el capítulo 'Guardar como plantilla'.

Introduzca el nombre de la nueva POU en el cuadro de diálogo que aparece. Recuerde que es posible
que el nombre del objeto no se haya utilizado ya.
Tenga en cuenta las siguientes restricciones:
El nombre de una POU no puede incluir ningún espacio
A POU no puede tener el mismo nombre que otra POU, un tipo de datos y no debe tener el mismo que
una visualización para evitar problemas con los cambios de visualización.
A tipo de datos no puede recibir el mismo nombre que otro tipo de datos o una POU.
A lista de variables globales no puede tener el mismo nombre que otra lista de variables globales.
Una acción no puede tener el mismo nombre que otra acción en la misma POU.

4-54 CoDeSys V2.3


4 - Los componentes individuales

A visualización no puede tener el mismo nombre que otra visualización y no debe tener el mismo
nombre que una POU para evitar problemas con los cambios de visualización.
En todos los demás casos, se permite una nomenclatura idéntica. Así, por ejemplo, las acciones que pertenecen a
diferentes POU pueden tener el mismo nombre, y una visualización puede tener lo mismo que una POU.

En el caso de una POU, también se debe seleccionar el tipo de POU (programa, función o bloque de
funciones) y el idioma en el que está programada. 'Program' es el valor predeterminado de Tipo de la POU,
mientras que el de Idioma de la POU es el de la POU creada más recientemente. Si se crea una POU del
tipo de función, se debe introducir el tipo de datos deseado en el campo de entrada de texto Tipo de
retorno . Aquí se permiten todos los tipos de datos elementales y definidos (matrices, estructuras,
enumeraciones, alias). Se puede utilizar la asistencia de entrada (por ejemplo, a través de <F2>).

Cuadro de diálogo para crear una nueva POU

Después de pulsar OK, lo que solo es posible si no hay conflicto con las convenciones de nomenclatura descritas
anteriormente, el nuevo objeto se configura en el Organizador de objetos y aparece la ventana de entrada correspondiente.

Si se utiliza el comando 'Editar' ' Insertar', se inserta el objeto que se encuentra actualmente en el
portapapeles y no aparece ningún cuadro de diálogo. Si el nombre del objeto insertado entra en
conflicto con las convenciones de nomenclatura (véase más arriba), se hace único mediante la adición
de un número de serie añadido con un carácter de subrayado inicial (por ejemplo, "Rightturnsig_1").
Si el proyecto está bajo control de código fuente en una base de datos de ENI, puede ser (dependiendo
de la configuración en el cuadro de diálogo de opciones del proyecto para 'Control de código fuente del
proyecto') que se le pregunte automáticamente en qué categoría de base de datos desea manejar el
nuevo objeto. En este caso, se abrirá el cuadro de diálogo 'Propiedades', donde puede asignar el
objeto a una de las categorías de objetos de la base de datos.
'Guardar como plantilla'
Los objetos de tipo 'Variables globales', 'Tipos de datos', 'Función', 'Bloque de funciones' o 'Programa'
se pueden guardar como plantillas. Seleccione el objeto en el Organizador de objetos y elija el
comando 'Guardar como plantilla' en el menú contextual (botón derecho del ratón). A partir de ahora,
cada objeto nuevo del mismo tipo obtendrá automáticamente la parte de declaración de la plantilla. Se
utilizará la última plantilla creada para un tipo de objeto.

'Proyecto' 'Cambio de nombre de objeto'


Atajo: <Barra espaciadora>
Con este comando se da un nuevo nombre al objeto o carpeta seleccionados. Recuerde que es posible
que el nombre del objeto no se haya utilizado ya.
Si la ventana de edición del objeto está abierta, su título se cambia automáticamente cuando se cambia
el nombre.

CoDeSys V2.3 4-55


Gestión de objetos en un proyecto...

Cuadro de diálogo para cambiar el nombre de una POU

'Proyecto' 'Convertir objeto'


Este comando solo se puede utilizar con POU. Puede convertir POU de los idiomas SFC, ST, FBD, LD
e IL a uno de los tres idiomas IL, FBD y LD.
Para ello se debe compilar el proyecto. Elija el idioma al que desea convertir y asigne un nuevo nombre
a la POU. Recuerde que es posible que el nombre de la POU no se haya utilizado ya. A continuación,
pulse OK y la nueva POU se añadirá a su lista de POU.
El tipo de procesamiento que se produce durante la conversión corresponde al que se aplica a la
compilación.

Atención: Las acciones no se pueden convertir.

Cuadro de diálogo para convertir una POU

Considere la siguiente posibilidad: Una POU que ha sido creada en el FBD-Editor, puede - usando
el comando 'Extras' 'Ver' ser mostrada y editada en el KOP-Editor también sin ninguna conversión.

'Proyecto' 'Copia de objeto'


Con este comando, un objeto seleccionado se copia y se guarda con un nuevo nombre. Introduzca el
nombre del nuevo objeto en el cuadro de diálogo resultante. Recuerde que es posible que el nombre
del objeto no se haya utilizado ya.
Si, por el contrario, ha utilizado el comando 'Editar' 'Copiar', entonces el objeto se aparca en el
portapapeles y no aparece ningún cuadro de diálogo.
Cuadro de diálogo para copiar una POU

'Proyecto' 'Objeto abierto'


Acceso directo: <Enter>
Con el comando se carga un objeto seleccionado dentro del Organizador de objetos en el editor
correspondiente. Si una ventana con este objeto ya está abierta, entonces obtiene un foco, se mueve al
primer plano y ahora se puede editar.
Hay otras dos formas de abrir un objeto:
Haga doble clic con el ratón en el objeto deseado en

4-56 CoDeSys V2.3


4 - Los componentes individuales

el Organizador de objetos, escriba la primera letra del nombre del objeto. Esto abrirá un cuadro de diálogo en
el que se muestran todos los objetos de los tipos de objetos disponibles que tienen esta letra inicial. Las
acciones se enumeran con la notación <POU name>.<action name>. Debido al hecho de que los objetos en
el cuadro de diálogo de selección de objetos se enumeran alfabéticamente, las acciones de una POU
siempre se colocan debajo de esta POU. Seleccione el objeto deseado y haga clic en el botón Abrir para
cargar el objeto en su ventana de edición. A partir de ahora, el objeto también se marca en el organizador de
objetos y se expandirán todas las carpetas que se colocan jerárquicamente sobre el objeto. Esta opción es
compatible con el tipo de objeto Resources solo para variables globales.

Cuadro de diálogo para elegir el objeto que se va a abrir

'Proyecto' 'Propiedades del objeto'


Este comando abrirá el cuadro de diálogo 'Propiedades' para ese objeto que está marcado actualmente
en el organizador de objetos.
En la pestaña Derechos de acceso encontrará el mismo cuadro de diálogo que aparece al ejecutar el
comando 'Proyecto' 'Derechos de acceso a objetos'
Depende del objeto y de la configuración del proyecto, si hay pestañas adicionales disponibles donde
se pueden definir las propiedades del objeto:
Lista de variables globales:
En la pestaña "Lista global de variables" se muestran los parámetros relativos a la actualización de la lista y
al intercambio de datos de las variables de red, que pueden modificarse aquí. Este cuadro de diálogo
también se abrirá si crea una nueva lista de variables globales seleccionando una de las entradas de la
sección 'Variables globales' en el Organizador de objetos y ejecutando el comando 'Añadir objeto'.

Visualización:
En la pestaña 'Visualización' se puede definir para el objeto de visualización (ver el Manual de Usuario
de Visualización de CoDeSys), cómo se debe utilizar:
Úselo como: Si en la configuración de destino está activada la opción 'Visualización web' o
'Visualización de destino', puede elegir aquí si el objeto debe formar parte de la visualización web o
Visualización de destino.
Se utiliza como: Active uno de estos ajustes que se refieren a la posibilidad de utilizar "Diseños maestros":
Visualización: El objeto se utiliza como una visualización normal.
Visualización sin diseño maestro:: Si se define un diseño maestro en el proyecto, no se
aplicará a este objeto de visualización.
Diseño maestro: El objeto se utilizará como diseño maestro. De forma predeterminada, el diseño
maestro siempre estará en primer plano de una visualización, excepto que se active la opción como
fondo.

CoDeSys V2.3 4-57


Gestión de objetos en un proyecto...

Cuadro de diálogo para las propiedades de un objeto de visualización

Conexión a la base de datos:


Si el proyecto está conectado a una base de datos ENI (ver 'Proyecto', 'Opciones', 'Control de código
fuente del proyecto'), entonces estará disponible una pestaña 'Conexión a la base de datos'. Aquí se
puede visualizar y modificar la asignación actual del objeto a una de las categorías de la base de datos
o a la categoría 'Local'. Para más información, consulte 'Qué es ENI'.

'Proyecto' 'Derechos de acceso a objetos'


Con este comando se abre la ventana de diálogo para asignar derechos de acceso a los diferentes
grupos de usuarios. Aparece el siguiente cuadro de diálogo:
Cuadro de diálogo para asignar derechos de acceso

Los miembros del grupo de usuarios 0 ahora pueden asignar derechos de acceso individuales para
cada grupo de usuarios. Hay tres configuraciones posibles:
Sin acceso: el objeto no puede ser abierto por un miembro del grupo de usuarios.
Acceso de lectura: el objeto puede abrirse para que lo lea un miembro del grupo de usuarios, pero no se puede cambiar.
Acceso completo: el objeto puede ser abierto y modificado por un miembro del grupo de usuarios.
La configuración hace referencia al objeto seleccionado actualmente en el Organizador de objetos o, si se
elige la opción Aplicar a todos, a todas las POU, tipos de datos, visualizaciones y recursos del proyecto.
La asignación a un grupo de usuarios se realiza al abrir el proyecto a través de una solicitud de
contraseña si se asignó una contraseña al grupo de usuarios 0.
Por favor, tenga en cuenta también la posibilidad de asignar derechos de acceso relacionados con el
funcionamiento de los elementos de visualización (Visualización, Seguridad).

4-58 CoDeSys V2.3


4 - Los componentes individuales

'Proyecto' 'Añadir acción'


Este comando se utiliza para generar una acción asignada a un bloque seleccionado en el Organizador
de objetos. Se selecciona el nombre de la acción en el cuadro de diálogo que aparece y también el
idioma en el que se debe implementar la acción.
La nueva acción se coloca debajo de tu bloque en el Organizador de objetos. Aparece un signo más
delante del bloque. Un simple clic del ratón en el signo más hace que aparezcan los objetos de acción
y aparece un signo menos delante del bloque. Al hacer clic de nuevo en el signo menos, las acciones
desaparecen y el signo más vuelve a aparecer. Esto también se puede lograr a través de los comandos
del menú contextual 'Expandir nodo' y 'Contraer nodo'.

'Proyecto' 'Ver instancia'


Con este comando es posible abrir y mostrar la instancia del bloque de función que está seleccionado
en el Organizador de objetos. De la misma manera, un doble clic en el bloque de funciones en el
Organizador de objetos da acceso a un diálogo de selección en el que se enumeran las instancias del
bloque de funciones y la implementación. Seleccione aquí la instancia deseada o la implementación y
confirme usando OK. A continuación, el elemento deseado se muestra en una ventana.

Por favor, tenga en cuenta: Si desea ver instancias, primero debe iniciar sesión. (El proyecto se ha compilado sin
errores y se ha descargado en el PLC con 'Online' 'Login').

Cuadro de diálogo para abrir una instancia

'Proyecto' 'Mostrar árbol de llamadas'


Con este comando se abre una ventana que muestra el árbol de llamadas del objeto elegido en el Organizador
de objetos. Antes de esto, el proyecto debe haber sido compilado sin ningún error (ver 'Reconstruir todo'). El
árbol de llamadas contiene tanto llamadas a POU como referencias a tipos de datos.
Ejemplo de un árbol de llamadas

'Proyecto' 'Mostrar referencia cruzada'


Con este comando se abre un cuadro de diálogo que permite la salida de todos los puntos de aplicación para
una variable, una dirección o una POU. Para ello, el proyecto debe estar compilado (ver 'Proyecto', 'Construir').
En el nombre, ingrese el nombre (por ejemplo, "ivar") o la ruta (por ejemplo, "PLC_PRG.fbi.ivar") del elemento para
el que desea que aparezcan las referencias cruzadas (se puede usar el asistente de entrada <F2>). Si especifica "*",
se tendrán en cuenta todos los elementos. También se puede especificar una cadena parcial seguida de "*", por
ejemplo, "INT_*" para obtener una lista de todos los elementos, cuyos nombres comienzan con esta cadena.

CoDeSys V2.3 4-59


Gestión de objetos en un proyecto...

Si el proyecto se ha modificado desde la última compilación, se mostrará el término "(No actualizado)"


en la barra de título del cuadro de diálogo. En este caso, las referencias cruzadas que se hayan creado
recientemente no se tendrán en cuenta en la lista a menos que realice una nueva compilación.
Al hacer clic en el botón Referencias cruzadas, obtiene la lista de todos los puntos de aplicación.
Junto con la POU y el número de línea o red, se especifica el nombre de la variable y el enlace de
dirección, si lo hubiera.
El espacio Dominio muestra si se trata de una variable local o global; la columna Acceso muestra si se
debe acceder a la variable para "leer" o "escribir" en la ubicación actual.
Si el elemento se utiliza dentro del rango de direcciones de una estructura o una matriz, esta posición
también se mostrará (Ejemplo: Se asigna una variable wVar de tipo WORD a %MW2. Se asigna una
variable arrVar de tipo ARRAY [0..2] OF WORD a %MW0. Si llama a la lista de referencias cruzadas
para wVar, se encontrará arrVar[2]). Lo mismo ocurre con las estructuras.
Si se utiliza un elemento dentro de una visualización, el nombre de la visualización se mostrará en la columna
"POU". Sin embargo, tenga en cuenta lo siguiente con respecto a los marcadores de posición dentro de una
visualización: La lista de referencias cruzadas solo se refiere a las cadenas de nombres de variables, que ya se
han introducido en la configuración de un elemento de visualización, sin embargo, no a los nombres, que se
generan durante la compilación del proyecto debido a los reemplazos de marcadores de posición.

Al seleccionar una línea de la lista de referencias cruzadas y pulsar el botón Ir a o hacer doble clic en la
línea, la POU se muestra en su editor en el punto correspondiente. De esta manera, puede saltar a
todos los puntos de aplicación sin una búsqueda que requiere mucho tiempo.
Para facilitar el procesamiento, puede utilizar el botón Enviar a la ventana de mensajes para llevar la
lista de referencias cruzadas actual a la ventana de mensajes y desde allí cambiar a la POU respectiva.
Cuadro de diálogo y ejemplo de una lista de referencias cruzadas

Llamada directa de una lista de referencias cruzadas de un editor de POU o de una lista de seguimiento:
La lista de referencias cruzadas se puede generar directamente desde el editor (ST, FUP, KOP, AWL, CFC,
AS), que se utiliza para trabajar en una POU, o fuera de una lista de observación. En este caso, tanto en el

4-60 CoDeSys V2.3


4 - Los componentes individuales

modo en línea como en el modo fuera de línea, el comando Mostrar referencias cruzadas está disponible en
el menú contextual o "Extras", cuando se selecciona una variable en el editor o en la lista de observación.

4.5 Funciones generales de edición...


Puede utilizar los siguientes comandos en todos los editores y algunos de ellos en el Organizador de
objetos. Los comandos se encuentran debajo de la opción de menú 'Editar' y en el menú contextual
que se abre con el botón derecho del ratón.
Si el software IntelliPoint está instalado en el ordenador, CoDeSys soporta todas las funciones del MS
IntelliMouse. En todos los editores con función de zoom: Para ampliar, presione la tecla <Ctrl> mientras
gira la rueda del mouse, para reducir el desplazamiento hacia atrás mientras se presiona la tecla
<Ctrl>.
'Editar' 'Deshacer'
Método abreviado: <Ctrl>+<Z>
Este comando deshace la acción que se ejecutó más recientemente en la ventana del editor abierta
actualmente o en el Organizador de objetos; El uso repetido deshace todas las acciones hasta el
momento en que se abrió la ventana. Esto se aplica a todas las acciones en los editores para POU,
tipos de datos, visualizaciones y variables globales y en el Organizador de objetos.
Con 'Editar' 'Rehacer' puedes restaurar una acción que hayas deshecho.

Nota: Los comandos Deshacer y Rehacer se aplican a la ventana actual. Cada ventana tiene su propia lista de
acciones. Si desea deshacer acciones en varias ventanas, debe activar la ventana correspondiente. Al deshacer o
rehacer en el Organizador de objetos, el foco debe estar aquí.

'Editar' 'Rehacer'
Atajo: <Ctrl>+<Y>
Con el comando en la ventana del editor actualmente abierta o en el Organizador de objetos, puede
restaurar una acción que haya deshecho ('Editar', 'Deshacer').
Siempre que haya ejecutado previamente el comando 'Deshacer', también puede llevar a cabo el comando
'Rehacer'.

Nota: Los comandos 'Deshacer' y 'Rehacer' se aplican a la ventana actual. Cada ventana tiene su propia lista de
acciones. Si desea deshacer acciones en varias ventanas, debe activar la ventana correspondiente. Al deshacer o
rehacer en el Administrador de objetos debe permanecer allí.

'Editar' 'Cortar'

Símbolo: Atajo: <Ctrl>+<X> o <Mayús>+<Supr>


Este comando transfiere la selección actual del editor al portapapeles. La selección se elimina del
editor.
En el organizador de objetos, esto también se aplica al objeto seleccionado, por lo que no se pueden
eliminar todos los objetos, por ejemplo, la configuración del PLC.
Recuerde que no todos los editores soportan el comando cut, y que su uso puede ser limitado en
algunos editores.
La forma de la selección depende del editor respectivo:
En los editores de texto IL, ST y declaraciones, la selección es una lista de caracteres.
En los editores FBD y LD, la elección es un número de redes que se indican mediante un rectángulo punteado
en el campo de número de red o un cuadro con todas las líneas, cuadros y operandos anteriores.

En el editor SFC, la selección forma parte de una serie de pasos rodeados por un rectángulo punteado.
Para pegar el contenido del portapapeles, utilice el comando 'Editar' 'Pegar'. En el editor SFC también
puedes usar los comandos 'Extras', 'Insertar rama paralela (derecha)' o 'Extras', 'Pegar después'. Para

CoDeSys V2.3 4-61


Funciones generales de edición...

copiar una selección en el portapapeles sin borrarla, utilice el comando 'Editar' 'Copiar'.
Para eliminar un área seleccionada sin cambiar el portapapeles, use el comando 'Editar' 'Eliminar'.

'Editar' 'Copiar'

Símbolo: Atajo: <Ctrl>+<C>


Este comando copia la selección actual del editor al portapapeles. Esto no cambia el contenido de la
ventana del editor.
Con el organizador de objetos, esto también se aplica al objeto seleccionado, por lo que no se pueden
copiar todos los objetos, por ejemplo, la configuración del PLC.
Recuerde que no todos los editores admiten la copia y que puede limitarse con algunos editores.
Para el tipo de selección, se aplican las mismas reglas que con 'Editar', 'Cortar'.
La forma de la selección depende del editor respectivo:
En los editores de texto (IL, ST y declaraciones) la selección es una lista de caracteres.
En los editores FBD y LD, la elección es un número de redes que se indican mediante un rectángulo
punteado en el campo de número de red o un cuadro con todas las líneas, cuadros y operandos anteriores.
En el editor SFC, la selección forma parte de una serie de pasos rodeados por un rectángulo punteado.
Para pegar el contenido del portapapeles, utilice el comando 'Editar' 'Pegar'. En el editor SFC también
puedes usar los comandos 'Extras', 'Insertar rama paralela (derecha)' o 'Extras', 'Pegar después'.
Para eliminar un área seleccionada y ponerla simultáneamente en el portapapeles, use el comando
'Editar' 'Cortar'.

'Editar' 'Pegar'

Símbolo: Atajo: <Ctrl>+<V>


Pega el contenido del portapapeles en la posición actual de la ventana del editor. En los editores
gráficos, el comando solo se puede ejecutar cuando de la inserción resulta una estructura correcta.
Con el Organizador de objetos, el objeto se pega desde el portapapeles.
Recuerde que pegar no es compatible con todos los editores y que su uso puede estar limitado en algunos editores.
La posición actual se puede definir de forma diferente según el tipo de editor:
Con los editores de texto (IL, ST, Declaraciones) la posición actual es la del cursor parpadeante (una
línea vertical) que se coloca haciendo clic con el ratón).
En los editores FBD y LD, la posición actual es la primera red con un rectángulo punteado en el área
numérica de la red. El contenido del portapapeles se inserta delante de esta red. Si se ha copiado una
estructura parcial, se inserta delante del elemento seleccionado.
En el editor SFC se determina la posición actual de la selección, que está rodeada por un rectángulo
punteado. Dependiendo de la selección y del contenido del portapapeles, este contenido se inserta
delante de la selección o en una nueva rama (paralela o alternativa) a la izquierda de la selección.

En SFC se pueden utilizar los comandos 'Extras', 'Insertar rama paralela (derecha)' o 'Extras', 'Pegar
después' para insertar el contenido del portapapeles.
Para copiar una selección en el portapapeles sin borrarla, utilice el comando 'Editar' 'Copiar'.
Para eliminar un área seleccionada sin cambiar el portapapeles, use el comando 'Editar' 'Eliminar'.

'Editar' 'Eliminar'
Atajo: <Supr>
Elimina el área seleccionada de la ventana del editor. Esto no cambia el contenido del portapapeles.

4-62 CoDeSys V2.3


4 - Los componentes individuales

En el organizador de objetos, esto también se aplica al objeto seleccionado, por lo que no se pueden
eliminar todos los objetos, por ejemplo, la configuración del PLC.
Para el tipo de selección, se aplican las mismas reglas que con 'Editar', 'Cortar'.
La forma de la selección depende del editor respectivo:
En los editores de texto (IL, ST y declaraciones) la selección es una lista de caracteres.
En los editores FBD y LD, la selección es una serie de redes que se resaltan con un rectángulo
punteado en el campo de número de red.
En el editor SFC, la selección forma parte de una serie de pasos rodeados por un rectángulo punteado.
En el administrador de bibliotecas, la selección es el nombre de la biblioteca seleccionada actualmente.
Para eliminar un área seleccionada y ponerla simultáneamente en el portapapeles, use el comando
'Editar' 'Cortar'.

'Editar' 'Buscar'

Símbolo:
Con este comando se busca un determinado pasaje de texto en la ventana del editor actual. Se abre el
cuadro de diálogo Buscar. Permanece abierto hasta que se pulsa el botón Cancelar.
En el campo Encuentra lo que puedes introducir la serie de personajes que buscas.
Además, puede decidir si el texto que está buscando coincide solo con la palabra completa o no, o también si se
debe considerar el caso de coincidencia, y si la búsqueda debe continuar hacia arriba o hacia abajo
a partir de la posición actual del cursor.
El botón Buscar siguiente inicia la búsqueda, que comienza en la posición seleccionada y continúa
en la dirección de búsqueda elegida. Si se encuentra el pasaje de texto, se resalta. Si no se encuentra
el pasaje, entonces un mensaje lo anuncia. La búsqueda se puede repetir varias veces seguidas hasta
que se haya alcanzado el principio o el final del contenido de la ventana del editor. En el editor CFC se
tendrá en cuenta el orden geométrico de los elementos, la búsqueda se ejecutará desde la esquina
superior izquierda de la ventana hasta la esquina superior derecha. ¡Tenga en cuenta que las POU
FBD se procesan de derecha a izquierda!
Cuadro de diálogo Buscar

'Editar' 'Buscar siguiente'

Símbolo: Atajo: <F3>


Con este comando se ejecuta una búsqueda con los mismos parámetros que con la acción más
reciente 'Editar' 'Buscar'. ¡Tenga en cuenta que las POU FBD se procesan de derecha a izquierda!

'Editar' 'Reemplazar'
Con este comando, busca un determinado pasaje al igual que con el comando 'Editar', 'Buscar', y lo
reemplaza por otro. Después de seleccionar el comando, aparece la ventana de diálogo para buscar y
reemplazar. Este cuadro de diálogo permanece abierto hasta que se pulsa el botón Cancelar o
Cerrar.

CoDeSys V2.3 4-63


Funciones generales de edición...

Cuadro de diálogo para buscar y reemplazar

En el campo detrás de Buscar automáticamente se insertará esa cadena que ha marcado antes en el
editor. También puede introducir la cadena de búsqueda manualmente. Al presionar el botón
Reemplazar , se reemplazará la selección actual con la cadena que se indica en el campo
Reemplazar con. Utilice el botón Buscar siguiente para llegar al siguiente pasaje donde se encuentra
la cadena. ¡Tenga en cuenta que las POU FBD se procesan de derecha a izquierda!
El botón Reemplazar todo reemplaza todas las apariciones del texto en el campo Buscar siguiente
después de la posición actual con el texto en el campo Reemplazar con. Al final del procedimiento, un
mensaje anuncia cuántos reemplazos se realizaron.

'Editar' 'Asistente de entrada'


Atajo: <F2>
Este comando proporciona un cuadro de diálogo para elegir posibles entradas en la posición actual del cursor en
la ventana del editor. En la columna de la izquierda, elija la categoría de entrada deseada, seleccione la entrada
deseada en la columna de la derecha y confirme su elección con OK. Esto inserta su elección en esta posición.

Las categorías ofrecidas dependen de la posición actual del cursor en la ventana del editor, es decir, de
lo que se puede introducir en este punto (por ejemplo, variables, operadores, POU, conversiones, etc.).
Si la opción Con argumentos está activa, cuando se inserta el elemento seleccionado, se especifican
con él los argumentos a transferir, por ejemplo: bloque de funciones fu1 seleccionado, que define la
variable de entrada var_in: fu1(var_in:=);
Inserción de la función func1, que utiliza var1 y var2 como parámetros de transferencia: func1(var1,var2)
Básicamente, es posible cambiar entre la visualización estructurada y no estructurada de los elementos
disponibles. Esto ocurre a través de la activación/desactivación de la opción de visualización
estructurada .
Nota: Para insertar identificadores, también puede utilizar la "funcionalidad IntelliSense".

Pantalla no estructurada
En la parte izquierda de la ventana siempre se enumeran las categorías de elementos que son relevantes para la
posición actual de la inserción. por ejemplo, operadores ST, variables locales, variables globales, programas
estándar, programas definidos, expresiones de observación, etc. En la parte derecha de la ventana, los elementos
de la categoría seleccionada se enumeran simplemente ordenados linealmente en orden alfabético.

En varios lugares (por ejemplo, en la lista de observación), se requieren nombres de variables de varias etapas.
En ese caso, el asistente de entrada muestra las variables disponibles con un nombre POU precedido, o en el
caso de variables estructuradas e instancias de bloque de funciones, adicionalmente con el nombre FB o el
nombre del tipo de datos. Ejemplos: PLC_PRG.ivar, PLC_PRG. Estructura1.Componente1.

En el caso de las variables globales, no se agrega ningún nombre de POU.


Se debe seleccionar el elemento deseado y luego se insertará en la posición de inserción mediante OK.
Cuando se utiliza el asistente de entrada no estructurado en el Administrador de inspecciones y
recetas, el rango de variables de inspección ofrecidas (expresiones de inspección) se puede reducir
mediante un filtro. Consulte: Creación de listas de seguimiento, recetas.

4-64 CoDeSys V2.3


4 - Los componentes individuales

Cuadro de diálogo para asistencia de entrada no estructurada

Puede cambiar a la visualización estructurada mediante la activación de la función Pantalla estructurada.

Pantalla estructurada
Si se selecciona Visualización estructurada, las POU, las variables o los tipos de datos se ordenarán
jerárquicamente. Esto es posible para programas estándar, funciones estándar, bloques de función estándar,
programas definidos, funciones definidas, bloques de función definidos, variables globales, variables locales,
tipos definidos, variables de observación. La visualización visual y jerárquica corresponde a la del
Organizador de Objetos; si se hace referencia a los elementos de una biblioteca, estos se insertan en orden
alfabético en la parte superior y se muestra la jerarquía pertinente como en el Administrador de bibliotecas.

Las variables de entrada y salida de los bloques de función que se declaran como variables locales o globales
se enumeran en la categoría 'Variables locales' o 'Variables globales' bajo el nombre de la instancia (por ejemplo,
Inst_TP ET, Inst_TP IN,...). Para llegar allí, seleccione el nombre de la instancia (por ejemplo, Inst_TP) y confirme
con OK.
Si aquí se selecciona la instancia de un bloque de función, se puede seleccionar la opción Con
argumentos . En los lenguajes de texto ST e IL, así como durante la configuración de tareas, se
insertan el nombre de instancia y los parámetros de entrada del bloque de funciones.
Por ejemplo, si se selecciona Inst (DeklarationInst: TON;), se inserta lo siguiente:
Inst(IN:= ,PT:=)
Si no se selecciona la opción, solo se insertará el nombre de la instancia. En los lenguajes gráficos o
en la ventana Inspección, generalmente solo se inserta el nombre de la instancia.

CoDeSys V2.3 4-65


Funciones generales de edición...

Cuadro de diálogo para asistencia de entrada estructurada

Los componentes de las estructuras se muestran de forma analógica a las instancias de bloques de funciones.
En el caso de las enumeraciones, los valores de enumeración individuales se enumeran en el tipo de enumeración. El
orden es: enumeraciones de bibliotecas, enumeraciones de tipos de datos, enumeraciones locales de POU.

La regla general es que las líneas que contienen subobjetos no son seleccionables (excepto instancias,
ver arriba), sino que solo pueden tener su visualización de jerarquía expandida o contraída en un nivel,
como para los nombres de variables de varias etapas.
Si se invoca el Asistente de entrada en el Administrador de Relojes y Recetas o en la selección de variables de
rastreo en el cuadro de diálogo de configuración de rastreo, es posible realizar una selección múltiple. Cuando se
presiona la tecla <Shift>, puede seleccionar un rango de variables; cuando se presiona la tecla <Ctrl> puede
seleccionar muchas variables individuales. Las variables seleccionadas están marcadas de esta manera. Si,
durante la selección de rangos, se seleccionan líneas que no contienen variables válidas (por ejemplo, nombres de
POU), estas líneas no se incluirán en la selección. Cuando se realizan selecciones individuales, estas líneas no se
pueden marcar.
En la ventana de inspección y en la configuración de trazado es posible transferir estructuras,
matrices o instancias desde el cuadro de diálogo Asistente de entrada. Dado que un doble clic con el
botón del ratón está asociado a la extensión o contracción de la visualización de la jerarquía del
elemento, la selección en estos casos solo puede ser confirmada por OK.
A partir de entonces, las variables seleccionadas se insertan línea por línea en la ventana de inspección, es
decir, cada variable seleccionada se escribe en una línea separada. En el caso de las variables de
seguimiento, cada variable se inserta en una línea separada de la lista de variables de seguimiento.

Si se supera el número máximo de variables de seguimiento, 20, durante la inserción de las variables
seleccionadas, aparece el mensaje de error "Se permite un máximo de 20 variables". A continuación,
las demás variables seleccionadas no se insertan en la lista.
Puede cambiar a la visualización no estructurada desactivando la opción Estructurado.
Nota: Algunas entradas (por ejemplo, Variables globales) solo se actualizan en el cuadro de diálogo Asistente de entrada después de la compilación.

'Editar' 'Autodeclarar'
Atajo: <Mayús>+<F2>
Este comando abre el cuadro de diálogo para la declaración de una variable. Este cuadro de diálogo
también se abre automáticamente cuando se activa la opción 'Proyecto', 'Opciones', 'Editor',
'Autodeclaración' y, cuando se utiliza una nueva variable indefinida, el editor de declaraciones.

4-66 CoDeSys V2.3


4 - Los componentes individuales

'Editar' 'Siguiente error'"


Atajo: <F4>
Después de la compilación incorrecta de un proyecto, este comando puede mostrar el siguiente error.
Se activa la ventana del editor correspondiente y se selecciona el lugar incorrecto. Al mismo tiempo, en
la ventana de mensajes se muestra el mensaje de error correspondiente.

'Editar' 'Error anterior'"


Atajo: <Mayús>+<F4>
Después de la compilación incorrecta de un proyecto, este comando muestra el error anterior. Se activa
la ventana del editor correspondiente y se selecciona el lugar incorrecto. Al mismo tiempo, en la
ventana de mensajes se muestra el mensaje de error correspondiente.

'Editar' 'Macros'
Este elemento de menú conduce a una lista de todas las macros definidas para el proyecto. (Para obtener
información sobre la generación de macros, consulte 'Proyecto', 'Opciones', 'Macros'). Cuando se selecciona
una macro ejecutable, se abrirá el cuadro de diálogo 'Procesar macro'. Se muestra el nombre de la macro y la
línea de comandos actualmente activa. El botón Cancelar se puede utilizar para detener el procesamiento de
la macro. En ese caso, el procesamiento del comando actual finalizará de todos modos. A continuación, se
muestra un mensaje apropiado en la ventana de mensajes y en el registro durante la operación en línea:
"<Macro>: Ejecución interrumpida por el usuario".
Las macros se pueden ejecutar en línea y fuera de línea, pero en cada caso solo se ejecutan los
comandos que están disponibles en el modo respectivo.

4.6 Funciones generales en línea...


Los comandos en línea disponibles se reúnen en la opción de menú ' En línea'. La ejecución de
algunos de los comandos depende del editor activo.
Los comandos en línea están disponibles solo después de iniciar sesión. Consulte los siguientes
capítulos para obtener una descripción.
Gracias a la funcionalidad 'Cambio en línea', tiene la posibilidad de realizar cambios en los programas
del controlador en ejecución. Véase, a este respecto, «En línea», «Inicio de sesión».
Véase más adelante en el capítulo "Relaciones...". un diagrama que muestra las relaciones entre
Proyecto-Construcción, Proyecto-Descarga, Cambio en línea e Inicio de sesión.

'En línea' 'Iniciar sesión'

Símbolo: Atajo: <Alt>+<F8>


Este comando combina el sistema de programación con el PLC (o inicia el programa de simulación) y
cambia al modo en línea.
Si el proyecto actual no se ha compilado desde su apertura o desde la última modificación, entonces se
compila ahora (como con 'Project' 'Build'). Si se producen errores durante la compilación, CoDeSys no
cambia al modo en línea.
Si el proyecto actual se ha modificado en el controlador desde la última descarga, pero no se ha
cerrado, y si la información de la última descarga no se ha eliminado con el comando 'Proyecto' 'Borrar
todo', después del comando 'Iniciar sesión' se abre un cuadro de diálogo con la pregunta: "Se ha
cambiado el programa. ¿Cambios de carga? (Cambio en línea)". Al responder Sí, confirma que, al
iniciar sesión, las partes modificadas del proyecto se cargarán en el controlador. (Con respecto a este
asunto, véanse en los capítulos siguientes las sugerencias sobre el cambio en línea y un diagrama que
muestra las relaciones entre el inicio de sesión, la compilación, la descarga y el cambio en línea). No
se produce un inicio de sesión sin que los cambios realizados desde la última descarga se carguen en
el controlador. Cancelar cancela el comando. <Cargar todo> hace que todo el proyecto se vuelva a
cargar en el controlador.

CoDeSys V2.3 4-67


Funciones generales en línea...

Cuadro de diálogo de inicio de sesión extendido

Si en las opciones del proyecto, categoría Escritorio, está activada la opción 'En línea en modo de
seguridad' y si el sistema de destino admite la funcionalidad, en el cuadro de diálogo Inicio de sesión
automáticamente también se mostrará la información del proyecto. Esta es la información del proyecto
que está actualmente abierto en CoDeSys y que ya está disponible en el controlador. A través del
botón Detalles << puede cerrar esta parte de información del cuadro de diálogo.
Si la opción "En línea en modo de seguridad" no está activada, puede abrir explícitamente la
visualización de información del proyecto en el cuadro de diálogo mediante el botón Detalles >>.

Tenga en cuenta que depende del objetivo qué botón se establece como botón predeterminado.

Tenga en cuenta: El cambio en línea no es posible después de modificaciones en la configuración de tareas o


PLC, después de insertar una biblioteca y después de realizar 'Proyecto' 'Limpiar todo' (ver más abajo). El cambio
en línea no provoca una reinicialización de las variables, por lo que no se tendrán en cuenta las modificaciones de
los valores de inicialización. Las variables de retención mantienen sus valores cuando se realiza un cambio en
línea, no lo harán en una nueva descarga del proyecto (consulte a continuación, 'En línea' 'Descargar').

Después de un inicio de sesión exitoso, todas las funciones en línea están disponibles (si se han
ingresado los ajustes correspondientes en 'Proyecto', 'Opciones', categoría 'Construir'). Los valores
actuales se supervisan para todas las declaraciones de variables visibles.
Utilice el comando 'En línea' 'Cerrar sesión' para cambiar del modo en línea al modo fuera de línea.

4-68 CoDeSys V2.3


4 - Los componentes individuales

Relaciones entre Inicio de sesión – Compilación – Descarga – Cambio en línea


Vea a continuación un diagrama que muestra las relaciones entre el inicio de sesión, la compilación
(compilación), la descarga y el cambio en línea:
Se utilizan los siguientes términos:
Fuente: proyecto CoDeSys actual (*.pro-file, PC local)
Compile Compile la información de compilación del último proceso de compilación, es necesaria para la
compilación incremental (archivo *.ci, PC local)
Descargar Información sobre lo que se cargó en el PLC en la última descarga (archivo *.ri, PC local)
Proyecto de PLC actualmente disponible en el PLC (archivo *.prg, sistema de destino)

Consejos sobre el cambio en línea


• El cambio en línea no es posible después de modificaciones en la configuración de tareas o PLC,
después de insertar una biblioteca y después de realizar 'Proyecto' 'Limpiar todo' (ver más abajo).
• Si la información de descarga (archivo <projectname><targetidentifier>.ri), que se había creado en la última descarga
(también podría haber sido un cambio en línea) del proyecto, se ha eliminado mientras tanto (por ejemplo, mediante el
comando 'Proyecto' 'Limpiar todo', entonces no será posible ningún cambio en línea más adelante, excepto para: El
archivo ri se ha guardado en otra ubicación o se le ha cambiado el nombre y, por lo tanto, ahora todavía está disponible y
se puede cargar explícitamente mediante comando 'Proyecto' 'Cargar información de descarga'. A este respecto, véase

CoDeSys V2.3 4-69


Funciones generales en línea...

también a continuación «Cambio en línea para un proyecto...».

• El cambio en línea no provoca una reinicialización de las variables, por lo que no se


tendrán en cuenta las modificaciones de los valores de inicialización.
• Las variables de retención mantienen sus valores cuando se realiza un cambio en línea, no lo
harán en una nueva descarga del proyecto (ver más abajo, 'En línea' 'Descargar').

Cambio en línea para un proyecto que se ejecuta en varios PLC:


Si desea ejecutar un proyecto proj.pro en dos controladores idénticos PLC1 y PLC2 (mismo sistema de destino) y desea asegurarse
de que las actualizaciones del proyecto en ambos controladores se puedan realizar a través del cambio en línea, haga lo siguiente:

(1) Carga e inicio del proyecto en PLC1, guardando la información de descarga para PLC1:
1. Conecte el proj.pro de proyecto CoDeSys al controlador PLC1 (parámetros en línea/comunicación) y cargue
proj.pro en el PLC1 (en línea /inicio de sesión, descarga). En el momento de la descarga se creará el archivo
proj00000001.ri en el directorio de proyectos, que contiene la información de descarga.
2. Cambie el nombre de proj00000001.ri, por ejemplo, a proj00000001_PLC1.ri. Este guardado del archivo con
otro nombre de archivo es necesario porque en una nueva descarga de proj.pro el archivo proj00000001.ri en
otro PLC se sobrescribiría con nueva información de descarga y, por lo tanto, se perdería la información
perteneciente a la descarga en PLC1.
3. Inicie el proyecto en PLC1 y, a continuación, cierre la sesión ('En línea', 'Inicio', 'En línea', 'Cerrar sesión'.

(2) Carga e inicio del proyecto en PLC2, guardando la información de descarga para PLC2:
1. Ahora conéctese al controlador PLC2 (usando el mismo destino que PLC1) y descargue proj.pro en PLC2.
Por lo tanto, nuevamente se creará un archivo proj00000001.ri en el directorio de proyectos, que ahora
contiene la información sobre la descarga realizada actualmente.
2. Cambie el nombre del nuevo proj00000001.ri, por ejemplo, a proj00000001_PLC2.ri para almacenarlo explícitamente.
3. Inicie el proyecto en PLC2 y cierre la sesión ('En línea', 'Inicio', 'En línea', 'Cerrar sesión').

(3) Modificando el proyecto en CoDeSys:


1. En CoDeSys ahora realice las modificaciones en proj.pro que luego desea transferir a través de Online Change
al programa que se ejecuta en ambos PLC.

(4) Cambio en línea en PLC1, almacenamiento de la información de descarga nuevamente para PLC1:
2. Para hacer posible el cambio en línea para proj.pro en PLC1, primero se debe restaurar la información de
descarga referente a la descarga de proj.pro en PLC1. Al iniciar sesión, CoDeSys está buscando un archivo
proj00000001.ri. Pero ha almacenado la información de descarga adecuada en el archivo
proj00000001_PLC1.ri. Ahora tienes 2 posibilidades:
(a) Puede cambiar el nombre de proj00000001_PLC1.ri nuevamente a proj00000001.ri. Por lo tanto, al iniciar
sesión en PLC1, automáticamente está disponible la información de descarga adecuada y CoDeSys le
preguntará si desea realizar un cambio en línea.
(b) Alternativamente, puede cargar explícitamente el archivo proj00000001_PLC1.ri mediante el comando
'Proyecto' 'Cargar descarga- Información', antes de iniciar sesión. Por lo tanto, no es necesario cambiar el
nombre del archivo ri y, sin embargo, hacer posible un cambio en línea.
3. En el cambio en línea en PLC1 se ha creado una versión actualizada del archivo proj00000001.ri, que contiene
la información de descarga actual. Guarde este archivo de nuevo como se describe en (4), para mantenerlo
disponible para un nuevo cambio en línea en PLC1.

(5) Cambio en línea en PLC2, almacenamiento de la información de descarga nuevamente para PLC2:
Para hacer posible un cambio en línea con respecto a las modificaciones en proj.pro realizadas en (3) también en
PLC2, realice los pasos correspondientes para proj00000001_PLC2.ri como se describe en el paso (4).

(6) Cada cambio en línea adicional después de una modificación del proyecto: Realice los pasos (3) a (5)

4-70 CoDeSys V2.3


4 - Los componentes individuales

Si el sistema informa
Error:
"El perfil de controlador seleccionado no coincide con el del sistema de destino..."
Compruebe que el sistema de destino introducido en la configuración del sistema de destino
(Recursos) coincide con los parámetros introducidos en 'En línea' 'Parámetros de comunicación'.
Error:
"Error de comunicación. Se ha cerrado la sesión"
Compruebe si el controlador está funcionando. Compruebe si los parámetros introducidos en "En línea"
"Parámetros de comunicación" coinciden con los de su controlador. En particular, debe comprobar si se ha
introducido el puerto correcto y si las velocidades de transmisión en el controlador y el sistema de programación
coinciden. Si se utiliza el servidor de puerta de enlace, compruebe si se ha configurado el canal correcto.

Error:
"¡El programa ha sido modificado! ¿Debería cargarse el nuevo programa?"
El proyecto que está abierto en el editor es incompatible con el programa que se encuentra
actualmente en el PLC (o con el programa Modo de simulación que se está ejecutando). Por lo tanto,
no es posible supervisar ni depurar. Puede elegir "No", cerrar la sesión y abrir el proyecto correcto, o
usar "Sí" para cargar el proyecto actual en el PLC.
Mensaje:
"El programa ha cambiado. ¿Cambios de carga? (CAMBIO ONLINE)".
El proyecto se está ejecutando en el controlador. El sistema de destino es compatible con el "Cambio
en línea" y el proyecto se ha modificado en el controlador con respecto a la descarga más reciente o el
cambio en línea más reciente. Ahora puede decidir si estos cambios deben cargarse con el programa
del controlador en ejecución o si el comando debe cancelarse. Sin embargo, también puede cargar
todo el código compilado seleccionando el botón Cargar todo.

'En línea' 'Cerrar sesión'

Símbolo: Método abreviado <Ctrl>+<F8>

La conexión con el PLC se interrumpe o el programa del modo de simulación finaliza y se cambia al
modo fuera de línea.
Utilice el comando 'En línea' 'Iniciar sesión' para cambiar al modo en línea.

'En línea' 'Descargar'


Este comando carga el proyecto compilado en el PLC.
Durante la compilación, la información de descarga se guarda en un archivo llamado
<projectname>0000000ar.ri , que se utiliza durante el cambio en línea para comparar el programa actual con el
cargado más recientemente en el controlador, de modo que solo se vuelvan a cargar los componentes del
programa modificados. Este archivo se borra con el comando 'Proyecto' 'Borrar todo'. Con respecto al cambio en
línea en varios PLC, consulte el capítulo 'En línea' 'Inicio de sesión'. Tenga en cuenta que el archivo *.ri también se
actualiza durante un cambio en línea.
Dependiendo de la configuración del sistema de destino en cada creación de un proyecto de arranque
en modo sin conexión, es posible que se vuelva a generar el archivo *.ri.
Solo las variables persistentes (véase el Capítulo 5.2.1, Variables remanentes) mantienen sus valores
incluso después de una descarga.

'En línea' 'Correr'

Símbolo: Atajo: <F5>


Este comando inicia el programa en el PLC o en el modo de simulación.

CoDeSys V2.3 4-71


Funciones generales en línea...

Este comando se puede ejecutar inmediatamente después del comando 'Online' 'Download', o después
de que el programa de usuario en el PLC haya finalizado con el comando 'Stop' 'Online', o cuando el
programa de usuario se encuentra en un punto de interrupción, o cuando se ha ejecutado el comando
'Online' 'Single Cycle'.
'En línea' 'Stop'

Símbolo: Atajo <Mayús>+<F8>


Detiene la ejecución del programa en el PLC o en el Modo Simulación entre dos ciclos.
Utilice el comando 'En línea' 'Ejecutar' para continuar con el programa.

'En línea' 'Restablecer'


Este comando restablece – con excepción de las variables de retención (VAR RETAIN) – todas las variables a
ese valor específico, con el que se han inicializado (¡también aquellas variables que han sido declaradas como
VAR PERSISTENTE!). Si ha inicializado las variables con un valor específico, este comando restablecerá las
variables al valor inicializado. Todas las demás variables se establecen en una inicialización estándar (por
ejemplo, enteros en 0). Como medida de precaución, CoDeSys le pide que confirme su decisión antes de que se
sobrescriban todas las variables. La situación es la que se produce en caso de un corte de energía o al apagar el
controlador y luego encenderlo (reinicio en caliente) mientras se ejecuta el programa.

Utilice el comando 'En línea' 'Ejecutar' para reiniciar el programa.


Véase también 'En línea', 'Restablecimiento (original)', 'En línea', 'Restablecimiento (frío)' y, para
obtener una descripción general de la reinicialización, Capítulo 5.2.1, Variables remanentes.

'En línea' 'Reinicio (frío)'


Este comando corresponde al comando 'Reset' (ver arriba) con la excepción de que también las
variables retenidas (!) se establecen de nuevo en sus valores de inicialización. La situación es la que se
produce al inicio de un programa que se ha descargado justo antes en el PLC (arranque en frío). Solo
las variables persistentes conservan el valor que tenían antes del restablecimiento. Refiriéndose a esto,
véase también 'En línea', 'Reset', 'Online', 'Reset Original' y, para una visión general de la
reinicialización, el Capítulo 5.2.1, Variables remanentes.
'En línea' 'Restablecer (original)'
Este comando restablece todas las variables, incluidas las remanentes (VAR RETAIN y VAR
PERSISTENT) a sus valores de inicialización y borra el programa de usuario en el controlador. El
controlador vuelve a su estado original. Refiriéndose a esto, véase también 'En línea', 'Reset', 'En
línea', 'Restablecimiento en frío' y, para obtener una descripción general de la reinicialización, Capítulo
5.2.1, Variables remanentes.
'En línea' 'Alternar punto de interrupción'

Símbolo: Atajo: <F9>


Este comando establece un punto de interrupción en la posición actual de la ventana activa. Si ya se ha
establecido un punto de interrupción en la posición actual, se eliminará ese punto de interrupción.
La posición en la que se puede establecer un punto de interrupción depende del idioma en el que esté
escrita la POU en la ventana activa.
En los editores de texto (IL, ST), el punto de interrupción se establece en la línea donde se encuentra el cursor, si esta
línea es una posición de punto de interrupción (reconocible por el color gris oscuro del campo de número de línea).
También puede hacer clic en el campo de número de línea para establecer o eliminar un punto de interrupción en los
editores de texto.
En FBD y LD, el punto de interrupción se establece en la red seleccionada actualmente. Para establecer o eliminar
un punto de interrupción en el editor FBD o LD, también puede hacer clic en el campo de número de red.

En SFC, el punto de interrupción se establece en el paso seleccionado actualmente. En SFC también


puede usar <Mayús> con un doble clic para establecer o eliminar un punto de interrupción.
Si se ha establecido un punto de interrupción, el campo de número de línea o el campo de número de
red o el paso se mostrarán con un color de fondo azul claro.

4-72 CoDeSys V2.3


4 - Los componentes individuales

Si se alcanza un punto de interrupción mientras se ejecuta el programa, el programa se detendrá y el


campo correspondiente se mostrará en un color de fondo rojo. Para continuar con el programa, utilice
los comandos 'En línea', 'Ejecutar', 'En línea', 'Paso a paso' o 'En línea', 'Paso a paso'.
También puede utilizar el cuadro de diálogo Punto de interrupción para establecer o quitar puntos de interrupción.

'En línea' 'Cuadro de diálogo de punto de interrupción'


Este comando abre un cuadro de diálogo para editar los puntos de interrupción en todo el proyecto. El
cuadro de diálogo también muestra todos los puntos de interrupción establecidos actualmente.
Para establecer un punto de interrupción, elija una POU en el cuadro combinado POU y la línea o la
red en el cuadro combinado Ubicación donde desea establecer el punto de interrupción; luego
presione el botón Agregar. El punto de interrupción se agregará a la lista.
Para eliminar un punto de interrupción, resalte el punto de interrupción que se eliminará de la lista de
puntos de interrupción establecidos y presione el botón Eliminar.
El botón Eliminar todo se puede utilizar para eliminar todos los puntos de interrupción.
Para ir a la ubicación en el editor donde se estableció un determinado punto de interrupción, resalte el punto
de interrupción respectivo de la lista de puntos de interrupción establecidos y presione el botón Ir a.
Cuadro de diálogo Edición de puntos de interrupción

Para establecer o eliminar puntos de interrupción, también puede usar el comando 'En línea' 'Alternar punto de interrupción'.

'En línea' 'Paso a paso'

Símbolo: Atajo: <F10>


Este comando hace que se ejecute un solo paso. Si se llama a una POU, el programa se detiene
después de su ejecución. En SFC se ejecuta una acción completa.
Si la instrucción actual es la llamada de una función o de un bloque de funciones, entonces la función o
el bloque de funciones se ejecutarán por completo. Utilice el comando 'En línea' 'Paso a paso' para
pasar a la primera instrucción de una función o bloque de funciones llamado.
Si se ha alcanzado la última instrucción, el programa pasará a la siguiente instrucción en la POU.

'En línea' 'Entra'


Atajo: <F8>
Se ejecuta un solo paso. El programa se detiene antes de la primera instrucción de una POU llamada.
Si es necesario, se realizará un cambio a una POU abierta.
Si la posición actual es una llamada de una función o de un bloque de funciones, entonces el comando
continuará con la primera instrucción en la POU llamada.
En todas las demás situaciones, el comando funcionará exactamente como 'En línea' 'Paso a paso'.

CoDeSys V2.3 4-73


Funciones generales en línea...

'En línea' 'Ciclo único'


Atajo: <Ctrl>+<F5>
Este comando ejecuta un solo ciclo de PLC y se detiene después de este ciclo.
Este comando se puede repetir continuamente para proceder en ciclos individuales.
El ciclo único finaliza cuando se ejecuta el comando 'En línea' 'Ejecutar'.

'En línea' 'Escribir valores'


Atajo: <Ctrl>+<F7>
Con este comando, se establecen una o más variables, ¡una sola vez! – a los valores definidos por el
usuario al principio de un ciclo. (ver 'En línea' 'Forzar valores' para establecer de forma permanente)
Los valores de todas las variables de un solo elemento se pueden cambiar, siempre y cuando también
estén visibles en Monitoring.
Antes de que se pueda ejecutar el comando 'Escribir valores', un valor de variable debe estar listo para ser escrito:
En el caso de las variables no booleanas, se realiza un doble clic del ratón en la línea en la que se declara
una variable, o se marca la variable y se pulsa la tecla <Intro>. A continuación, aparece el cuadro de diálogo
'Escribir variable <x>', en el que se puede introducir el valor que se va a escribir en la variable.
Diálogo para la escritura de variables

En el caso de las variables booleanas, el valor se alterna (se cambia entre TRUE y FALSE, sin que se permita ningún
otro valor) haciendo doble clic en la línea en la que se declara la variable; No aparece ningún cuadro de diálogo.

El valor establecido para Escritura se muestra entre paréntesis y en color turquesa detrás del valor
anterior de la variable. Por ejemplo, a = 0 <: = 34>.
Sugerencia: Excepción: En el editor FBD y LD, el valor se muestra en color turquesa sin corchetes junto al nombre
de la variable.

Establezca los valores para tantas variables como desee.


Los valores introducidos para escribirse en las variables también se pueden corregir o eliminar de la misma
manera. Esto también es posible en el cuadro de diálogo 'Escribir/Forzar' 'En línea' (ver más abajo).

Los valores que se van a escribir y que se han notado previamente se guardan en una lista de
escritura (Watch list), donde permanecen hasta que se escriben, se borran o se transfieren a una lista
de fuerza mediante el comando 'Forzar valores'.
El comando para escribir valores se puede encontrar en dos lugares:
• Comando 'Escribir valores' en el menú 'En línea'.
• Botón 'Escribir valores' en el cuadro de diálogo 'Editar la lista de escritura y la lista de fuerza'.
Cuando se ejecuta el comando 'Escribir valores', todos los valores contenidos en la lista de escritura se
escriben, una sola vez, en las variables apropiadas en el controlador al comienzo del ciclo, y luego se
eliminan de la lista de escritura. (Si se ejecuta el comando 'Forzar valores', las variables en cuestión
también se eliminan de la lista de escritura y se transfieren a la lista de fuerzas).

Nota: En el lenguaje de gráficos de funciones secuenciales (SFC), los valores individuales a partir de los cuales se
ensambla una expresión de transición no se pueden cambiar con 'Valores de escritura'. Esto se debe al hecho de
que en el monitoreo del 'Valor total' de la expresión, no se muestran los valores de las variables individuales (por
ejemplo, "a Y b" solo se muestra como VERDADERO si ambas variables tienen realmente el valor VERDADERO).

En FBD, por otro lado, solo se supervisa la primera variable de una expresión, utilizada, por ejemplo, como entrada
a un bloque de funciones. Por lo tanto, un comando 'Escribir valores' solo es posible para esta variable.

4-74 CoDeSys V2.3


4 - Los componentes individuales

'En línea' 'Valores de fuerza'


Atajo: <F7>
Con este comando, una o más variables se establecen permanentemente (consulte 'En línea' 'Escribir
valores' para configurar solo una vez al comienzo de un ciclo) a valores definidos por el usuario. El
ajuste se produce en el sistema de tiempo de ejecución, tanto al principio como al final del ciclo.
La secuencia de tiempo en un ciclo: 1. Leer entradas, 2. Valores de fuerza 3. Código de proceso, 4.
Valores de fuerza 5. Salidas de escritura.
La función permanece activa hasta que el usuario la suspende explícitamente (comando 'En línea',
'Liberar fuerza') o hasta que se cierra la sesión del sistema de programación.
Para establecer los nuevos valores, primero se crea una lista de escritura, tal como se describe en 'En línea'
'Valores de escritura'. Las variables contenidas en la lista de escritura se marcan en consecuencia en Monitoring.
La lista de escritura se transfiere a una lista de fuerza tan pronto como se ejecuta el comando 'En línea' 'Valores
de fuerza'. Es posible que ya exista una lista de fuerza activa, en cuyo caso se actualiza según sea necesario. A
continuación, se vacía la lista de escritura y los nuevos valores se muestran en rojo como 'forzados'. Las
modificaciones de la lista de fuerza se transfieren al programa con el siguiente comando 'Forzar valores'.

Nota: La lista de fuerza se crea en el primer forzamiento de las variables contenidas en la lista de escritura,
mientras que la lista de escritura existía antes de la primera escritura de las variables que contiene.
El comando para forzar una variable, lo que significa que se ingresará en la lista de fuerzas, se puede
encontrar en los siguientes lugares:
• Comando 'Forzar valores' en el menú 'En línea'.
• Botón 'Forzar valores' en el cuadro de diálogo 'Editar la lista de escritura y la lista de fuerza'.

Nota: En el lenguaje de gráficos de funciones secuenciales, los valores individuales a partir de los cuales se
ensambla una expresión de transición no se pueden cambiar con 'Forzar valores'. Esto se debe al hecho de que en
el monitoreo del 'Valor total' de la expresión, no se muestran los valores de las variables individuales (por ejemplo,
"a Y b" solo se muestra como VERDADERO si ambas variables tienen realmente el valor VERDADERO).

En FBD, por otro lado, solo se supervisa la primera variable de una expresión, utilizada, por ejemplo, como
entrada a un bloque de funciones. Por lo tanto, un comando 'Forzar valores' solo es posible para esta variable.

'En línea' 'Fuerza de liberación'


Atajo: <Mayús>+<F7>
Este comando finaliza el forzado de valores variables en el controlador. Los valores de las variables
vuelven a cambiar de forma normal.
Las variables forzadas se pueden reconocer en Monitoring por el color rojo en el que se muestran sus
valores. Puede eliminar toda la lista de fuerzas, pero también puede marcar variables individuales para
las que se debe liberar el forzamiento.
Para eliminar toda la lista de fuerzas, lo que significa liberar la fuerza para todas las variables, elija
una de las siguientes formas:
Comando 'Release Force' en el menú 'En línea'.
Botón 'Liberar fuerza' en el cuadro de diálogo 'Editar la lista de escritura y la lista de fuerza'
Elimine toda la lista de fuerza usando el comando 'Release Force' en el cuadro de diálogo 'Eliminar lista de escritura/fuerza'.
Este cuadro de diálogo se abre si elige el comando 'Release Force' mientras también existe una lista de escritura.

Para liberar la fuerza solo para variables individuales, primero debe marcar estas variables. Haga
esto de una manera que se describe a continuación. Después de eso, las variables elegidas se marcan
con una extensión turquesa <Release Force>:
Un doble clic del ratón en una línea, en la que se declara una variable no booleana, abre el cuadro de
diálogo 'Escribir variable <x>'. Presione el botón <Liberar fuerza para esta variable> .
Repita los dos clics del ratón en una línea en la que se declara que una variable booleana se alterna en
la pantalla <Fuerza de liberación> al final de la línea.

CoDeSys V2.3 4-75


Funciones generales en línea...

En el menú 'En línea', abra el diálogo Escribir/Forzar y elimine el valor en el campo de edición de la
columna 'Valor forzado'.
Cuando en la ventana de declaración se muestra para todas las variables deseadas el ajuste "<Liberar fuerza>",
seleccione el comando "Forzar valores" para transferir las modificaciones de la lista de fuerza al programa.

Si la lista de escritura actual (ver 'En línea' 'Valores de escritura') no está vacía mientras ejecuta el
comando 'Release Force', se abrirá el cuadro de diálogo 'Eliminar lista de escritura/fuerza'. Allí, el
usuario tiene que decidir si solo quiere liberar la fuerza o si adicionalmente quiere eliminar la lista de
escritura o si quiere eliminar ambas listas.
Cuadro de diálogo para eliminar listas de escritura/fuerza

Diálogo 'En línea' 'Escribir/Forzar'


Atajo: <Ctrl>+<Mayús>+<F7>
Este comando conduce a un cuadro de diálogo que muestra en dos registros la lista de escritura actual
(Lista de observación) y la lista de fuerza (Lista de fuerza). El nombre de cada variable y el valor
que se va a escribir o forzar en él se muestran en una tabla.
Diálogo para editar la lista de escritura y la lista de fuerza

Las variables llegan a la lista de observación a través de los comandos 'Online', 'Write Values' y se
transfieren a la lista de fuerza mediante el comando 'Online', 'Force Values'. Los valores se pueden
editar aquí en las columnas "Valor preparado" o "Valor forzado" haciendo clic con el ratón en una
entrada para abrir un campo de editor. Si la entrada no es coherente con el tipo, se muestra un
mensaje de error. Si se elimina un valor, significa que la entrada se elimina de la lista de escritura o que
la variable se notifica para la suspensión de forzar tan pronto como se cierra el cuadro de diálogo con
cualquier otro comando que no sea Cancelar.

4-76 CoDeSys V2.3


4 - Los componentes individuales

Los siguientes comandos, correspondientes a los del menú Online, están disponibles a través de botones:
Valores forzados: Todas las entradas de la lista de escritura actual se transfieren a la lista de fuerza,
es decir, se fuerzan los valores de las variables en el controlador. Todas las variables marcadas con
'Fuerza de liberación' ya no son forzadas. A continuación, se cierra el cuadro de diálogo.
Valores de escritura: Todas las entradas de la lista de escritura actual se escriben una sola vez en las
variables correspondientes del controlador. A continuación, se cierra el cuadro de diálogo.
Liberar fuerza: Se eliminarán todas las entradas de la lista de fuerza o, si hay una lista de escritura,
aparecerá el cuadro de diálogo "Eliminar lista de escritura/fuerza", en el que el usuario debe decidir si
solo quiere liberar forzar o descartar la lista de escritura, o ambas cosas. El cuadro de diálogo se
cerrará en ese momento, o después de que se cierre el cuadro de diálogo de selección, según sea el
caso.
'En línea' 'Mostrar pila de llamadas'
Puede ejecutar este comando cuando el modo de simulación se detenga en un punto de interrupción.
Se le dará un cuadro de diálogo con una lista de la pila de llamadas POU.
Ejemplo de una pila de llamadas

La primera POU siempre está PLC_PRG, porque aquí es donde comienza la ejecución.
La última POU es siempre la POU que se está ejecutando.
Después de haber seleccionado una POU y haber pulsado el botón Ir a, la POU seleccionada se
carga en su editor y mostrará la línea o red que se está procesando.

'En línea' 'Control de flujo de pantalla'


Dependiendo de la configuración del sistema de destino, el usuario puede activar o desactivar la función de
control de flujo. Si está activado, aparecerá una marca de verificación ( ) delante del elemento del menú. A
continuación, se marcarán todas las líneas o redes que se hayan ejecutado en el último ciclo del PLC.
El campo de número de línea o el campo de número de red de las líneas o redes que acaban de ejecutarse
se mostrará en verde. Se añade un campo adicional en el IL-Editor en el que se muestra el contenido actual
del acumulador. En los editores gráficos para el diagrama de bloques de funciones y el diagrama de
escalera, se insertará un campo adicional en todas las líneas de conexión que no transporten ningún valor
booleano. Cuando se verifican estas entradas y salidas, el valor que se transporta a través de la línea de
conexión se mostrará en este campo. Las líneas de conexión que transportan solo valores booleanos se
sombrearán en azul cuando transporten TRUE. Esto permite un monitoreo constante del flujo de información.

Por favor, tenga en cuenta:


1. El tiempo de ejecución de un programa se incrementará mediante el uso del control de flujo.
Esto puede provocar tiempos de espera en programas cíclicos de tiempo con carga alta.
2. En las posiciones de punto de interrupción activas, no hay pantalla de control de flujo.
3. Si se ha definido un guardián para las tareas en cuestión (véase el Capítulo 6.7.2, Insertar
tarea), este se desactivará cuando el control de flujo esté activo.

CoDeSys V2.3 4-77


Funciones generales en línea...

'En línea' 'Simulación'


Si se elige el modo de simulación, aparecerá una marca de verificación ( ) delante del elemento del menú.
En el modo de simulación, el programa de usuario se ejecuta en el mismo PC con Windows. Este modo
se utiliza para probar el proyecto. La comunicación entre el PC y el modo de simulación utiliza el
mecanismo de mensajes de Windows.
Si el programa no está en modo de simulación, el programa se ejecutará en el PLC. La comunicación
entre el PC y el PLC normalmente se ejecuta a través de la interfaz serie.
El estado de esta marca se almacena con el proyecto.
Por favor, tenga en cuenta:
- Las POU de bibliotecas externas no se ejecutarán en modo de simulación.

'En línea' 'Parámetros de comunicación'


Se le ofrece un cuadro de diálogo especial para ajustar los parámetros de comunicación cuando la
comunicación entre el PC local y el sistema en tiempo de ejecución se ejecuta a través de un servidor
de puerta de enlace en su sistema. (Si se utiliza el servidor OPC o DDE, se deben introducir los
mismos parámetros de comunicación en su configuración).
Consulte los siguientes elementos:
Principio de un sistema de pasarela
Cuadro de diálogo de parámetros de comunicación para el PC local
Configuración del servidor y el canal de puerta de enlace deseados
Configuración de un nuevo canal para el servidor de puerta de enlace local
Lo que muestra el cuadro de diálogo de parámetros de comunicación en el PC local

Principio de un sistema de pasarela


Principio de un sistema de pasarela
Examinemos el principio del sistema de puerta de enlace antes de explicar el funcionamiento del diálogo:
Se puede usar un servidor de puerta de enlace para permitir que el equipo local se comunique con uno o varios
sistemas en tiempo de ejecución. La configuración relativa a los sistemas de tiempo de ejecución que se pueden
direccionar, que se configura específicamente para cada servidor de puerta de enlace y la conexión con el
servidor de puerta de enlace deseado, se realiza en el PC local. En este caso, es posible que tanto el servidor de
puerta de enlace como los sistemas de tiempo de ejecución puedan ejecutarse juntos en el PC local. Si se trata
de un servidor de puerta de enlace que se ejecuta en otro PC, debemos asegurarnos de que se ha iniciado allí.
Si selecciona un servidor de puerta de enlace instalado localmente, se inicia automáticamente al iniciar sesión en
el sistema de tiempo de ejecución de destino. Puede reconocerlo por la aparición de un símbolo de CoDeSys en
la parte inferior derecha de la barra de tareas. Este símbolo se ilumina siempre que esté conectado al sistema de
tiempo de ejecución a través de la puerta de enlace. Los puntos de menú Info y Finish se obtienen haciendo clic
con la tecla derecha del ratón sobre el símbolo. Finish se utiliza para apagar la puerta de enlace.
Consulte el siguiente esquema para presentar un sistema de puerta de enlace:

4-78 CoDeSys V2.3


4 - Los componentes individuales

PC_local es su PC local, PC_x es otra PC, a la que se dirigen las direcciones de la puerta de enlace.
PC_gateway es el equipo en el que está instalado el servidor de puerta de enlace, PC_PLC1 hasta PC_PLC4 son
los equipos en los que se ejecutan los sistemas en tiempo de ejecución. El diagrama muestra los módulos
separados, pero es totalmente posible que el servidor de puerta de enlace y / o los sistemas de tiempo de
ejecución se instalen juntos en la PC local.
Importante: Tenga en cuenta que una conexión a la puerta de enlace solo es posible a través de TCP/IP, así que
asegúrese de que su PC esté configurado correctamente.

Por otro lado, las conexiones desde la puerta de enlace a los distintos ordenadores en tiempo de
ejecución pueden ejecutarse a través de diferentes protocolos (TCP/IP, Pipe, etc.).

Configuración del servidor y el canal de puerta de enlace deseados


1. Configuración del servidor de puerta de enlace y el canal deseados en el cuadro de diálogo Parámetros de comunicación:

Para definir la conexión con el servidor de puerta de enlace deseado, abrimos el cuadro de diálogo
'Parámetros de comunicación Puerta de enlace' presionando el botón Puerta de enlace.
Cuadro de diálogo de ejemplo, definición de la conexión local a la puerta de enlace

Aquí puede introducir y/o editar lo siguiente:


El tipo de conexión del equipo al equipo en el que se ejecuta el servidor de puerta de enlace que
desea utilizar. Si el servidor de puerta de enlace se ejecuta en el equipo local, es posible la conexión a
través de memoria compartida ("local") o a través de TCP/IP; si se necesita conexión a un equipo
diferente, solo se puede usar TCP/IP.
La dirección del ordenador en el que se ejecuta el servidor de pasarela que desea utilizar: dirección IP o el nombre
simbólico adecuado, como por ejemplo, localhost. Sin embargo, tenga en cuenta que los ceros a la izquierda agregados
al número de rango de direcciones no están permitidos (ejemplo: no es posible: '010.107.084.050', debe ingresarse
como '10.107.84.50'). En la configuración inicial, el 'localhost' estándar se ofrece como el nombre de la computadora
(dirección), lo que significa que se accedería a la puerta de enlace instalada localmente. El nombre 'localhost' está
configurado para ser idéntico a la dirección IP local 127.0.0.1 en la mayoría de los casos, pero es posible que en algunos
casos tenga que ingresarlo directamente en el campo Dirección. Si desea acceder a un servidor de puerta de enlace en
otro equipo, debe reemplazar 'localhost' con su nombre o dirección IP.

La contraseña del servidor de puerta de enlace seleccionado, si se encuentra en un equipo remoto. Si


se introduce incorrectamente o no se introduce en absoluto, aparece un mensaje de error.
Nota a este respecto: puede dar una contraseña al servidor de la pasarela instalado localmente con
el siguiente procedimiento: haga clic con el botón derecho del ratón en el símbolo de la puerta de
enlace en la parte inferior derecha de la barra de herramientas y seleccione "Cambiar contraseña".
Aparecerá un cuadro de diálogo para cambiar o introducir una contraseña. Si accede al servidor de
la puerta de enlace localmente, no se le pedirá ninguna contraseña que se introduzca.
El puerto del equipo en el que se ejecuta el servidor de puerta de enlace que desea utilizar, por regla
general, ya se proporciona el valor correcto para la puerta de enlace seleccionada.
Si el cuadro de diálogo se cierra con OK, la entrada correspondiente (dirección del ordenador) aparece en los canales
en la parte superior del cuadro de diálogo 'Parámetros de comunicación' y, debajo, los canales
disponibles en este servidor de puerta de enlace.

CoDeSys V2.3 4-79


Funciones generales en línea...

2. Configuración del canal deseado en el servidor de puerta de enlace seleccionado:


Ahora seleccione uno de los canales haciendo clic en una entrada con el ratón. Los parámetros correspondientes
se mostrarán en la tabla. Si no se puede establecer ninguna conexión con la dirección de la puerta de enlace
seleccionada, posiblemente porque no se ha iniciado o la dirección es incorrecta, la frase "no conectado" aparece
entre paréntesis después de la dirección y aparece el mensaje "No se pudo encontrar ninguna puerta de enlace
con esta configuración". A este respecto, realice una comprobación rápida.

Una vez configurado el canal deseado, cierre el cuadro de diálogo con OK. La configuración se guarda
con el proyecto.

Configuración de un nuevo canal para el servidor de puerta de enlace local


Puede configurar nuevos canales para el servidor de pasarela conectado actualmente, que luego están
disponibles para establecer una conexión adicional desde el servidor, por ejemplo, una conexión con
un controlador. Las opciones que tiene en este sentido dependen de la elección particular de la
cantidad de controladores de dispositivo instalados en su computadora.
Pulse el botón Nuevo en el cuadro de diálogo Parámetros de comunicación. Aparece el cuadro de
diálogo Parámetros de comunicación: Nuevo canal:
Cuadro de diálogo de ejemplo, instalación de un nuevo canal

El campo de entrada Nombre contiene automáticamente el nombre utilizado para el último canal introducido.
Si aún no se ha definido ningún canal, se ofrecerá el nombre de la puerta de enlace actual, seguido de un
carácter de subrayado, por ejemplo, 'localhost_'. Puede editar el nombre del canal en este punto. El nombre
del canal es puramente informativo, no tiene que ser un nombre único pero se recomienda usar uno.

Los controladores de dispositivo disponibles en el equipo de puerta de enlace se enumeran en la tabla


de Dispositivo. En la columna Nombre, seleccione con el ratón uno de los controladores disponibles; el
comentario correspondiente, si lo hay, aparece en la columna Información.
Si cierra el archivo '... Nuevo canal' con OK, el canal recién definido aparece en el cuadro de diálogo
'Parámetros de comunicación' como una nueva entrada en Canales en la posición más baja bajo el
signo menos. Hasta ahora, solo se almacena localmente en el proyecto (ver arriba). En este punto,
puede editar la columna Valor (consulte los consejos a continuación). Ahora confirme los parámetros
introducidos con OK, saliendo así del cuadro de diálogo 'Parámetros de comunicación'.
Para que el canal de puerta de enlace recién introducido y sus parámetros también sean conocidos por el servidor
de puerta de enlace xy y, por lo tanto, también para que estén disponibles para otros equipos que accedan a esta
puerta de enlace xy, debe iniciar sesión en el sistema en tiempo de ejecución. Si vuelve a abrir el cuadro de
diálogo "En línea" "Parámetros de comunicación", el nuevo canal aparece en el "árbol de canales", no solo en su
posición anterior, sino también con sangría debajo de la dirección o el nombre del servidor de puerta de enlace xy.
Esto indica que es conocido por la red. Ahora puede abrir el cuadro de diálogo Parámetro de comunicación en un
equipo que no sea el local, seleccionar la puerta de enlace xy y utilizar su nuevo canal.

Si se produce un error de comunicación al iniciar sesión, es posible que la interfaz no se pueda abrir
(por ejemplo, COM1 para una conexión en serie) posiblemente porque está siendo utilizada por otro
dispositivo. También es posible que el controlador no se esté ejecutando.

4-80 CoDeSys V2.3


4 - Los componentes individuales

Los parámetros de un canal ya conocido por el servidor de pasarela ya no se pueden editar en el


cuadro de diálogo de configuración. Los campos de parámetros aparecen en gris. Sin embargo, puede
eliminar la conexión siempre que no esté activa.
Importante: Tenga en cuenta que la eliminación de un canal no es reversible. Ocurre en el momento en que
presionas el botón ¡Eliminar !

Lo que muestra el cuadro de diálogo de parámetros de comunicación en el PC local


Este cuadro de diálogo se utiliza para seleccionar un servidor de puerta de enlace para la comunicación con un
PLC. Más adelante se pueden configurar nuevos canales para un servidor de puerta de enlace que se instala en el
PC local para que estos canales puedan ser utilizados por otros equipos que forman parte de la red.

Los ajustes actuales se pueden consultar en cualquier momento mediante el botón Actualizar.
El cuadro de diálogo aparecerá de la siguiente manera si los parámetros de comunicación ya se han
configurado de acuerdo con el ejemplo de 'Principio de un sistema de pasarela':

Los canales de encabezado enumeran dos categorías de conexiones:


Por un lado, se muestran todas las conexiones que están instaladas en el servidor de puerta de enlace
conectado actualmente llamado 'localhost'. Aquí, la dirección o el nombre de esta puerta de enlace se
encuentra en la posición superior detrás del signo menos, que en nuestro ejemplo se ejecuta en la
computadora local. La dirección apropiada 'localhost' corresponde en el caso normal a la dirección IP
127.0.0.1 del ordenador local (PC_local). A continuación, con sangría a la derecha, hay tres direcciones
de equipos en tiempo de ejecución en los que se configuran los canales de puerta de enlace
(PC_PLC1 a 3). Podrían haberse configurado tanto desde el PC local como desde los otros PC (PC_x)
que están o estuvieron conectados al servidor de puerta de enlace.
La segunda categoría de los canales descritos incluye todas las conexiones a la puerta de enlace que se
pueden configurar desde su PC local, a través de este cuadro de diálogo de configuración, por ejemplo.
Crean la "rama" que va desde el signo menos directamente debajo hasta PC_PLC1 y PC_PLC4. Estas
direcciones de canal no necesariamente tienen que conocerse aún en la puerta de enlace. Por PC_PLC4 en
el ejemplo descrito anteriormente, los parámetros de configuración se almacenan localmente en el proyecto,
pero la puerta de enlace los conocerá primero la próxima vez que se inicie sesión en el sistema en tiempo de
ejecución. Esto ya ha ocurrido durante PC_PLC1 ya que la dirección de la pasarela asociada ha aparecido
como una "subrama" adicional al "árbol de canales".

En la parte central del cuadro de diálogo se encuentra la designación, en cada caso, del canal
seleccionado a la izquierda y el parámetro asociado en Nombre, Valor y Comentario.

CoDeSys V2.3 4-81


Funciones generales en línea...

Consejos para editar los parámetros en el cuadro de diálogo de parámetros de comunicación


Solo puede editar los campos de texto de la columna Valor.
Seleccione un campo de texto con el ratón y entre en el modo de edición haciendo doble clic o
pulsando la barra espaciadora. La entrada de texto finaliza pulsando la tecla <Enter>.
Puede usar <Tabulador> o <Mayús> + <Tabulador> para saltar a la siguiente o a la anterior posibilidad
de cambio o edición.
Para editar valores numéricos, es posible cambiar el valor en una o diez unidades respectivamente con
las teclas de flecha o las teclas Re / Atrás Pág. Un doble clic con el ratón también cambia el valor
aumentando en una unidad. Se instala una comprobación de escritura para los valores numéricos:
<Ctrl> + <Inicio> o <Ctrl> + <Fin> entregan el valor más bajo o el más alto respectivamente para los
valores de entrada posibles para el tipo de parámetro en cuestión.

Comprobación rápida en caso de intento fallido de conexión con la puerta de enlace


Debe realizar las siguientes comprobaciones si la conexión con el equipo de puerta de enlace seleccionado
no se realiza correctamente. (Aparece el mensaje "no conectado" en el cuadro de diálogo Parámetros de
comunicación detrás de la dirección del servidor de puerta de enlace en el campo Canales):

¿Se ha iniciado el servidor de puerta de enlace (el símbolo de tres colores aparece en la parte inferior
derecha de la barra de herramientas)?
¿La dirección IP que ha introducido en el cuadro de diálogo "Puerta de enlace: Parámetros de comunicación"
es realmente la del ordenador en el que se ejecuta la puerta de enlace? (use "ping" para verificar)
¿Funciona localmente la conexión TCP/IP? Es posible que el error esté en TCP/IP.

'En línea' 'Descarga de código fuente'


Este comando carga el código fuente del proyecto en el sistema de controladores. ¡Esto no debe
confundirse con el código que se crea cuando se compila el proyecto! Puede introducir las opciones
que se aplican a la descarga (tiempo, tamaño) en el cuadro de diálogo 'Proyecto', 'Opciones',
'Sourcedownload'.
'En línea' 'Crear proyecto de arranque'
Con este comando, el proyecto compilado se configura en el controlador de tal manera que el controlador
puede cargarlo automáticamente cuando se reinicia. El almacenamiento del proyecto de arranque se
produce de forma diferente en función del sistema de destino. Por ejemplo, en los sistemas 386 se crean tres
archivos: default.prg contiene el código del proyecto, default.chk contiene la suma de comprobación del
código, default.sts contiene el estado del controlador después del reinicio (inicio/parada).

El comando 'En línea' 'Crear proyecto de arranque' también está disponible en modo fuera de línea si el
proyecto se ha construido sin errores. En este caso, se crean los siguientes archivos en el directorio projects:
<projektname>.prg para el código del proyecto de arranque y projektname>. chk para la suma de
comprobación. Estos archivos se pueden renombrar según sea necesario y luego copiarse en un PLC.

Dependiendo de la configuración del sistema de destino, en la creación de un proyecto de arranque en


modo fuera de línea, es posible que se cree un nuevo archivo *.ri (información de descarga). Además,
dependiendo de la configuración de destino, aparecerá un cuadro de diálogo si este archivo ya existe.

Nota: Si la opción de proyecto Implícito en la creación del proyecto de arranque (categoría Descarga de
origen) está activada, las fuentes seleccionadas se cargarán automáticamente en el controlador en el comando 'En
línea' 'Crear proyecto de arranque'.

'En línea' 'Escribir archivo en el controlador'


Este comando se utiliza para cargar cualquier archivo deseado en el controlador. Abre el cuadro de
diálogo para 'Escribir archivo en el controlador' en el que puede seleccionar el archivo deseado.
Una vez cerrado el cuadro de diálogo con el botón 'Abrir', el archivo se carga en el controlador y se almacena
allí con el mismo nombre. El proceso de carga va acompañado de un cuadro de diálogo de progreso.

Con el comando 'En línea' 'Cargar archivo desde el controlador' puede recuperar un archivo cargado
previamente en el controlador.

4-82 CoDeSys V2.3


4 - Los componentes individuales

'En línea' 'Cargar archivo desde el controlador'


Con este comando, puede recuperar un archivo previamente cargado en el controlador usando 'En
línea' 'Escribir archivo en el controlador'. Recibirá el cuadro de diálogo 'Cargar archivo desde el
controlador'. En Nombre de archivo, proporcione el nombre del archivo deseado y, en la ventana de
selección, ingrese el directorio de su computadora en el que se cargará tan pronto como se cierre el
cuadro de diálogo con el botón "Guardar".

4.7 Configuración de la ventana...


En la opción de menú ' Ventana' encontrará todos los comandos para administrar las ventanas. Hay
comandos para la configuración automática de su ventana, así como para abrir el administrador de
bibliotecas y para cambiar entre ventanas abiertas. Al final del menú encontrará una lista de todas las
ventanas abiertas en la secuencia en que se abrieron. Puede cambiar a la ventana deseada haciendo
clic con el ratón en la entrada correspondiente. Aparecerá una marca de verificación delante de la
ventana activa.
'Ventana' 'Azulejo horizontal'
Con este comando puede organizar todas las ventanas horizontalmente en el área de trabajo para que
no se superpongan y ocupen toda el área de trabajo.

'Ventana' 'Mosaico vertical'


Con este comando puede organizar todas las ventanas verticalmente en el área de trabajo para que no
se superpongan y llenen toda el área de trabajo.

'Ventana' 'Cascada'
Con este comando puede organizar todas las ventanas del área de trabajo en forma de cascada, una
detrás de la otra.

'Ventana' 'Organizar símbolos'


Con este comando, puede organizar todas las ventanas minimizadas en el área de trabajo en una fila
en el extremo inferior del área de trabajo.

'Ventana' 'Cerrar todo'


Con este comando puede cerrar todas las ventanas abiertas en el área de trabajo.

'Ventana' 'Mensajes'
Atajo: <Mayús>+<Esc>
Con este comando puede abrir o cerrar la ventana de mensajes con los mensajes del último
procedimiento de compilación, comprobación o comparación.
Si la ventana de mensajes está abierta, aparecerá una marca de verificación ( ) delante del comando.

4.8 Ayuda cuando la necesites...


'Ayuda' 'Contenidos y búsqueda'
Con los comandos Contents resp. Buscar en el menú Ayuda puede abrir la ventana de temas de
ayuda, que se mostrará a través del Visor de Ayuda HTML (Internet Explorer V4.1 y superior).
La pestaña Contenido muestra el árbol de contenido. Los libros se pueden abrir y cerrar con un doble
clic o mediante los signos más y menos. La página que está seleccionada actualmente en el árbol de
contenido se mostrará en la parte derecha de la ventana. Los hipervínculos desde el texto a otras
páginas de ayuda o zonas interactivas que se expanden están marcados con un color diferente y un
subrayado. Al hacer clic con el ratón en estos textos, se abrirá la página enlazada o se mostrará el
texto expandido o una imagen.

CoDeSys V2.3 4-83


Ayuda cuando la necesites...

En la pestaña Índice puede buscar páginas de ayuda sobre elementos específicos, en la pestaña Buscar se puede realizar
una búsqueda de texto completo en todas las páginas de ayuda. Siga las instrucciones de las tarjetas de registro.

Ventana Temas de ayuda

Ayuda contextual
Atajo: <F1>
Puede utilizar la tecla <F1> en una ventana activa, en un cuadro de diálogo o encima de un comando
de menú para abrir la ayuda en línea. Al ejecutar un comando desde el menú, se muestra la ayuda
para el comando llamado en ese momento.
También puede resaltar un texto (por ejemplo, una palabra clave o una función estándar) y presionar
<F1> para que se muestre la ayuda para ese elemento.

4-84 CoDeSys V2.3


4 - Los componentes individuales

CoDeSys V2.3 4-85


5 - Editores en CoDeSys

5 Editores en CoDeSys

5.1 Esto es para todos los editores...


Componentes de un editor
Todos los editores de las POU (Unidades de Organización del Programa) constan de una parte de
declaración y un cuerpo. El cuerpo puede consistir en otro texto o un editor gráfico; La parte de la
declaración es siempre un editor de texto. El cuerpo y la parte de la declaración están separados por
un divisor de pantalla que se puede arrastrar, según sea necesario, haciendo clic con el ratón y
moviéndolo hacia arriba o hacia abajo.
Márgenes de impresión
Los márgenes verticales y horizontales que se aplican cuando se imprime el contenido del editor se muestran
con líneas discontinuas rojas si se seleccionó la opción 'Mostrar rango de impresión ' en las opciones del
proyecto en el cuadro de diálogo 'Espacio de trabajo '. Se aplican las propiedades de la impresora
introducida, así como el tamaño del diseño de impresión seleccionado en el menú 'Archivo' 'Configuración de
la impresora'. Si no se introduce ninguna configuración de impresora o ningún diseño de impresión, se utiliza
una configuración predeterminada (Default.DFR e impresora predeterminada). Los márgenes horizontales se
dibujan como si las opciones 'Nueva página para cada objeto' o 'Nueva página para cada subobjeto'
estuvieran seleccionadas en 'Configuración de documentación'. No se muestra el margen más bajo.
Nota: La visualización exacta de los márgenes de impresión solo es posible cuando se selecciona un factor de zoom del 100%.

Comentario
Los comentarios de los usuarios deben incluirse en las secuencias de símbolos especiales "(*" y "*)".
Ejemplo: (*Este es un comentario.*)
Los comentarios están permitidos en todos los editores de texto, en cualquier ubicación deseada, es
decir, en todas las declaraciones, en los lenguajes IL y ST y en los tipos de datos autodefinidos. Si el
proyecto se imprime utilizando una plantilla, el comentario que se introdujo durante la declaración de la
variable aparece en los componentes del programa basados en texto después de cada variable.
En los editores gráficos FBD y LD, se pueden introducir comentarios para cada red. Para ello, busque
la red en la que desea comentar y active ' Insertar' 'Comentario'.
Además de eso, siempre se pueden agregar comentarios donde se insertan nombres de variables.
Ejemplo en FBD para un comentario de red y para un comentario colocado detrás de una variable de entrada:

En KOP también se puede agregar un comentario a cada contacto o a cada bobina, si esto se
configura en consecuencia en las opciones de visualización en el menú 'Extras' 'Opciones'. En el Editor
de Escaleras, adicionalmente se puede agregar un comentario para cada contacto y bobina en
particular, si las opciones correspondientes están activadas en el menú 'Extras' 'Opciones'.
En CFC hay POU de comentarios especiales que se pueden colocar a voluntad.
En SFC se pueden introducir comentarios sobre un paso en el cuadro de diálogo para editar los atributos del paso.

Los comentarios anidados también están permitidos si está activada la opción apropiada en el
cuadro de diálogo 'Proyecto', 'Opciones', 'Opciones de construcción'.

CoDeSys V2.3 5-1


Esto es para todos los editores...

En el modo Online, si se apoya el cursor del ratón durante un breve periodo de tiempo en una variable,
el tipo y, si procede, la dirección y el comentario de esa variable se muestran en una información
sobre herramientas.
Acercar a POU
Atajo: <Alt>+<Intro>
Con este comando, una POU seleccionada se carga en su editor. El comando está disponible en el
menú contextual (<F2>) o en el menú 'Extras', si el cursor está situado en el nombre de una POU en un
editor de texto o si la casilla POU está seleccionada en un editor gráfico.
Si se trata de una POU de una biblioteca, se llama al administrador de la biblioteca y se muestra la
POU correspondiente.

Instancia abierta
Este comando corresponde al comando 'Proyecto' 'Abrir instancia'.
Está disponible en el menú contextual (<F2>) o en el menú 'Extras', si el cursor se coloca en el nombre
de un bloque de función en un editor de texto o si se selecciona el cuadro de bloque de función en un
editor gráfico.
Introducción de variables a través de la "Función IntelliSense"
Si la opción Enumerar componentes está activada en el cuadro de diálogo de opciones del proyecto
para la categoría 'Editor', entonces la funcionalidad "Intellisense" estará disponible en todos los
editores, en el Gestor de Relojes y Recetas, en la Visualización y en el Seguimiento de muestreo:
Si inserta un punto "." en lugar de un identificador, aparecerá un cuadro de selección que enumera todas las
variables locales y globales del proyecto. Puedes elegir uno de estos elementos y pulsar 'Retorno' para
insertarlo detrás del punto. También puede insertar el elemento haciendo doble clic en la entrada de la lista.

Si se introduce una instancia de bloque de funciones o una variable de estructura seguida de un punto,
aparecerá un cuadro de selección con todas las variables de entrada y salida del bloque de funciones
correspondiente o con una lista de los componentes de la estructura, donde se puede elegir el
elemento deseado e introducirlo pulsando "Retorno" o haciendo doble clic.
Ejemplo: Inserte "struvar." -> se ofrecerán los componentes de la
estructura struct1:

Si introduce cualquier cadena y pulsa <Ctrl> + <barra espaciadora>, aparecerá un cuadro de selección
con una lista de todas las POU y variables globales disponibles en el proyecto. Se seleccionará la
entrada de la lista que comience con la cadena dada y se puede ingresar al programa presionando la
tecla <Enter>.
Información sobre herramientas sin conexión para identificadores
En el modo fuera de línea, en todos los editores se aplica lo siguiente: Si el cursor se coloca sobre un
identificador editable, en una información sobre herramientas se mostrará el nombre del identificador, la
clase de la variable (por ejemplo, VAR_GLOBAL), el tipo de datos, los atributos de la variable (por
ejemplo, RETAIN), la dirección y el comentario.
Mostrar referencias cruzadas
Si se selecciona un identificador de variable en un editor, este comando "Mostrar referencias cruzadas"
estará disponible en el menú "Extras" o en el menú contextual. Se puede utilizar para obtener una lista
de todas las posiciones dentro del proyecto en las que se utiliza la variable. Para obtener información
sobre esta lista de referencias cruzadas, consulte: 'Proyecto' 'Mostrar referencia cruzada'.

5-2 CoDeSys V2.3


5 - Editores en CoDeSys

Agregar variables a la lista de seguimiento


Si se seleccionan una o varias variables o elementos en uno de los editores de POU, estos se pueden
insertar en una lista de seguimiento nueva o existente a través de los comandos apropiados en el menú
contextual. Para más detalles, véase 6.8.2. Creación de listas de seguimiento, recetas.

5.2 Editor de declaraciones

5.2.1 Trabajar en el editor de declaraciones


El editor de declaraciones se utiliza para declarar variables de POU y variables globales, para declaraciones
de tipos de datos y en el Administrador de inspecciones y recetas. Da acceso a las funciones habituales de
Windows, e incluso se pueden utilizar las del IntelliMouse si se instala el controlador correspondiente.

En el modo Sobrescribir, 'OV' se muestra en negro en la barra de estado; el cambio entre los modos
Sobrescribir e Insertar se puede lograr con la tecla <Ins>.
La declaración de variables es compatible con el coloreado de sintaxis.
Los comandos más importantes se encuentran en el menú contextual (botón derecho del ratón o <Ctrl>+<F10>).

Sugerencia: Considere la posibilidad de usar pragmas para afectar las propiedades de una variable en relación
con el proceso de compilación o precompilación (véase el capítulo 5.2.3).

Parte de la declaración
Todas las variables que se van a utilizar solo en esta POU se declaran en la parte de declaración de la
POU. Estos pueden incluir: variables de entrada, variables de salida, variables de entrada/salida, variables
locales, variables remanentes y constantes. La sintaxis de declaración se basa en el estándar IEC61131-3.
Para una recomendación sobre el uso de identificadores, véase el Apéndice J: .
Con respecto a la posibilidad de utilizar plantillas para objetos de tipo 'Variables globales', 'Tipos de datos',
'Función', 'Bloque de funciones' o 'Programa', consulte el Capítulo 4.3, 'Archivo' Nuevo a partir de plantilla'.
Un ejemplo de una declaración correcta de variables en CoDeSys-Editor:

Variable de entrada
Entre las palabras clave VAR_INPUT y END_VAR, se declaran todas las variables que sirven como
variables de entrada para una POU. Eso significa que en la posición de llamada, el valor de las
variables se puede dar junto con una llamada.
Ejemplo:

CoDeSys V2.3 5-3


Editor de declaraciones

VAR_INPUT
iIn1:INT (* 1. Tienes que ser un buen ejemplo de cómo puedes ser un buen ejemplo de cómo
END_VAR

Variable de salida
Entre las palabras clave VAR_OUTPUT y END_VAR, se declaran todas las variables que sirven como
variables de salida de una POU. Esto significa que estos valores se transfieren a la POU que realiza la
llamada. Allí se pueden responder y utilizar más.
Ejemplo:
VAR_OUTPUT
iOut1:INT; (* 1. Outputvariable*)
END_VAR

Variables de entrada y salida


Entre las palabras clave VAR_IN_OUT y END_VAR, se declaran todas las variables que sirven como
variables de entrada y salida para una POU.
Atención: Con esta variable, se cambia el valor de la variable transferida ("transferido como puntero",
Call-by-Reference). Esto significa que el valor de entrada para dichas variables no puede ser una constante. Por
esta razón, incluso las variables VAR_IN_OUT de un bloque de función no se pueden leer ni escribir directamente
desde el exterior a través de <functionblockinstance><in/outputvariable>.

Ejemplo:
VAR_IN_OUT
iInOut1:INT; (* 1. En la década de 1980, los 100.000 pies (
END_VAR

Variables locales
Entre las palabras clave VAR y END_VAR, se declaran todas las variables locales de una POU. Estos
no tienen conexión externa; En otras palabras, no se pueden escribir desde fuera.
Ejemplo:
VAR iLoc1:INT; (* 1. Variable local*)

END_VAR

Remanente variable
Las variables remanentes pueden conservar su valor durante todo el período de ejecución habitual del
programa. Entre ellas se encuentran las variables de retención y las variables persistentes.
Ejemplo:
VAR RETENIDO iRem1:INT; (* 1. Variable de
retención*)
END_VAR
Las variables de retención se identifican mediante la palabra clave RETAIN. Estas variables mantienen su
valor incluso después de un apagado incontrolado del controlador, así como después de un apagado y
encendido normal del controlador (o en el comando 'En línea' 'Reset', consulte el Capítulo 4.6). Cuando el
programa se vuelva a ejecutar, los valores almacenados se procesarán más. Un ejemplo concreto sería un
contador de piezas en una línea de producción, que reinicia el conteo después de un corte de energía.
Todas las demás variables se inicializan de nuevo, ya sea con sus valores inicializados o con las
inicializaciones estándar.
A diferencia de las variables persistentes, las variables de retención se reinicializan en una nueva
descarga del programa.
Las variables persistentes se identifican mediante la palabra clave PERSISTENT. A diferencia de las variables
de retención, estas variables conservan su valor solo después de una nueva descarga, pero no después de un

5-4 CoDeSys V2.3


5 - Editores en CoDeSys

'Reinicio' 'En línea', 'Reinicio (original)' o 'En línea' 'Restablecimiento (frío)' (consulte el Capítulo 4.6 cada
una), porque no se guardan en el "área de retención". Si también las variables persistentes deben mantener
sus valores después de un apagado incontrolado del controlador, entonces deben declararse adicionalmente
como variables VAR RETAIN. Un ejemplo concreto de "variables de retención persistentes" sería un
temporizador de operaciones que reinicia el cronometraje después de un corte de energía.

Atención:
- Si una variable local en un programa se declara como VAR RETAIN, entonces exactamente esa
variable se guardará en el área de retención (como una variable de retención global)
- Si una variable local en un bloque de función se declara como VAR RETAIN, entonces la instancia
completa del bloque de función se guardará en el área de retención (todos los datos de la POU), por
lo que solo la variable de retención declarada se manejará como una retención.
- Si una variable local en una función se declara como VAR RETAIN, entonces esto no tendrá ningún
efecto. ¡La variable no se guardará en el área de retención! Si una variable local se declara como
PERSISTENTE en una función, ¡esto también no tendrá ningún efecto!

x = el valor se conservará - = el valor se reinicializa


después del comando en línea VAR RETENCIÓN DEL VAR FUE PERSISTENTE VAR RETAIN PERSISTENT
VAR PERSISTENT RETAIN

Restablecimiento - x - x
Restablecer (llamado) - - - -
Restablecer (origen) - - - -
Descargar - - x x
x Constantes,
Cambio
literales
en línea
con tipo x x x

Las constantes se identifican con la palabra clave CONSTANT. Pueden ser declarados local o globalmente.
Sintaxis:
CONSTANTE VAR
<Identificador>:<Tipo> :=
<inicialización>; END_VAR
Ejemplo:
CONSTANTE VAR c_iCon1:INT:=12; (* 1.
Constante*)
END_VAR
Consulte el Apéndice B: Operandos en CoDeSys, para obtener una lista de posibles constantes. Véase
también la posibilidad de utilizar constantes con tipo (Typed Literals).

Variables externas
Las variables globales que se van a importar a la POU se designan con la palabra clave EXTERNAL.
También aparecen en la ventana Inspección de la parte de declaración en el modo en línea.
Si la declaración VAR_EXTERNAL no coincide con la declaración global en todos los aspectos, aparece el
siguiente mensaje de error: "¡La declaración de '<var>' no coincide con la declaración global!"
Si la variable global no existe, aparece el siguiente mensaje de error: "Variable global desconocida:
'<var>'!"
Ejemplo:
VAR EXTERNO iVarExt1:INT:=12; (* 1ª variable externa *)

END_VAR

CoDeSys V2.3 5-5


Editor de declaraciones

Palabras clave
Las palabras clave deben escribirse en mayúsculas en todos los editores. Las palabras clave no se
pueden utilizar como variables. Ejemplos de palabras clave: VAR, VAR_CONSTANT, IF, NOT, INT.

Declaración de variables
Una declaración de variables tiene la siguiente sintaxis:
<Identificador> {AT <Dirección>}:<Tipo> {:=<inicialización>};
Las partes de las llaves {} son opcionales.
En cuanto al identificador, es decir, el nombre de una variable, hay que tener en cuenta que no puede contener
espacios ni diéresis, no puede declararse por duplicado y no puede ser idéntico a ninguna palabra clave. Se ignora
la escritura en mayúsculas y minúsculas de las variables, es decir, VAR1, Var1 y var1 no son variables diferentes.
Los subrayados en los identificadores son significativos, por ejemplo, A_BCD y AB_CD se interpretan como
identificadores diferentes. No se permiten varios subrayados consecutivos al principio de un identificador o dentro
de un identificador. La longitud del identificador, así como la parte significativa del mismo, es ilimitada.

Todas las declaraciones de variables y elementos de tipo de datos pueden incluir la inicialización. Son
provocados por el operador ":=". En el caso de las variables de tipos elementales, estas inicializaciones
son constantes. La inicialización predeterminada es 0 para todas las declaraciones.
Ejemplo:
iVar1:INT:=12; (* Variable entera con valor inicial de 12*)
Si desea vincular una variable directamente a una dirección definida, debe declarar la variable con la
palabra clave AT.
Para una entrada más rápida de las declaraciones, utilice el modo de acceso directo.
En los bloques de funciones también se pueden especificar variables con sentencias de dirección
incompletas. Para que una variable de este tipo se utilice en una instancia local, debe haber una
entrada para ella en la configuración de la variable.
Preste atención a las posibilidades de una declaración automática o del uso de pragmas para afectar
las propiedades de las variables relativas al proceso de compilación.

Declaración AT
Si desea vincular una variable directamente a una dirección definida, debe declarar la variable con la
palabra clave AT. La ventaja de este procedimiento es que se puede asignar un nombre significativo a
una dirección, y que cualquier cambio necesario de una señal entrante o saliente sólo tendrá que
realizarse en un lugar (por ejemplo, en la declaración).
Tenga en cuenta que no se puede acceder a las variables que requieren una entrada escribiendo.
Ejemplos:
xCounterHeat7 AT %QX0.0: BOOL;
wLightcabinetimpulse AT %IW2: PALABRA;
xDescargar EN %MX2.2: BOOL;

Nota: Si las variables booleanas se asignan a una dirección Byte, Word o DWORD, ocupan un byte con TRUE o
FALSE, ¡no solo el primer bit después del desplazamiento!

'Insertar' 'Palabras clave de la declaración'


Puede utilizar este comando para abrir una lista de todas las palabras clave que se pueden utilizar en
la parte de declaración de una POU. Una vez que se haya elegido una palabra clave y se haya
confirmado la elección, la palabra se insertará en la posición actual del cursor.
También recibirá la lista cuando abra el Asistente de entrada (<F2>) y elija el botón Declaraciones
categoría.

5-6 CoDeSys V2.3


5 - Editores en CoDeSys

'Insertar' 'Tipo'
Con este comando recibirá una selección de los tipos posibles para una declaración de variables.
También recibirá la lista cuando acceda al Asistente de entrada (<F2>).
Los tipos se dividen en las siguientes categorías:

Tipos estándar BOOL, BYTE, etc.


Tipos definidos Estructuras, tipos de enumeración, etc.
Bloques de función estándar para declaraciones de instancia
Bloques de función definidos para declaraciones de instancia
CoDeSys es compatible con todos los tipos estándar de IEC1131-3:

Coloreado de sintaxis
En todos los editores recibes apoyo visual en la implementación y declaración de variables. Los errores
se evitan, o se descubren más rápidamente, porque el texto se muestra en color.
Un comentario que se deje sin cerrar, anotando así instrucciones, se notará de inmediato; Las palabras
clave no estarán mal escritas accidentalmente, etc.
Se utilizará el siguiente resaltado de color:

Azul Palabras clave


Verde Comentarios en los editores de texto
Rosado Constantes especiales (por ejemplo, VERDADERO/FALSO, T#3s, %IX0.0)
Rojo Error de entrada (por ejemplo, constante de tiempo no válida, palabra clave, escrita en minúsculas,...)

Negro Variables, constantes, operadores de asignación, ...

Modo de acceso directo


El editor de declaraciones de CoDeSys le permite utilizar el modo de acceso directo. Este modo se
activa al finalizar una línea con <Ctrl><Intro>
Se admiten los siguientes accesos directos:
Todos los identificadores hasta el último identificador de una línea se convertirán en identificadores de variables de declaración

El tipo de declaración viene determinado por el último identificador de la línea. En este contexto, se
aplicará lo siguiente:

B o BOOL da el resultado BOOL


I o INT da el resultado INT
R o string
S REAL da el resultado REAL
da el resultado STRING

Si no se ha establecido ningún tipo a través de estas reglas, el tipo es BOOL y el último identificador no
se usará como tipo (Ejemplo 1).
Cada constante, dependiendo del tipo de declaración, se convertirá en una inicialización o una cadena
(Ejemplos 2 y 3).
Una dirección (como en %MD12) se extiende alrededor de ATATDeclaration>Proc... attribute(Ejemplo 4.).
A texto después de un punto y coma (;) se convierte en un comentario (Ejemplo 4.).
Todos los demás caracteres de la línea se ignoran (por ejemplo, el signo de exclamación en el Ejemplo 5).
Ejemplos:

CoDeSys V2.3 5-7


Editor de declaraciones

Atajo Declaración
Un R: BOOL;
ABI2 A, B: INT := 2;
ST S 2; Una cadena ST:STRING(2); (* Una cadena *)
X %MD12 R 5 Número real X AT %MD12: REAL := 5.0; (* Número real *)
B ! B: BOOL;

Autodeclaración
Si se ha elegido la opción Autodeclaración en la categoría Editor del cuadro de diálogo Opciones ,
aparecerá un cuadro de diálogo en todos los editores después de la entrada de una variable que aún
no se ha declarado. Con la ayuda de este cuadro de diálogo, ahora se puede declarar la variable.
Cuadro de diálogo para la declaración de variables

Con la ayuda del cuadro combinado Clase , seleccione si está tratando con una variable local (VAR),
una variable de entrada (VAR_INPUT), una variable de salida (VAR_OUTPUT), una variable de
entrada/salida (VAR_INOUT) o una variable global ( VAR_GLOBAL).
Con las opciones CONSTANT, RETAIN, PERSISTANT, puede definir si se trata de una constante o
de una variable de retención
El nombre de la variable que ha introducido en el editor se ha introducido en el campo Nombre, BOOL se ha introducido

colocados en el campo Tipo. El botón abre el cuadro de diálogo Asistente de entrada, que le permite
seleccionar entre todos los tipos de datos posibles.
Declaración de matrices:
Si se elige ARRAY como tipo de variable, aparece el cuadro de diálogo para introducir los límites de la matriz.
Cuadro de diálogo para determinar los límites de la matriz durante la declaración automática

Para cada una de las tres dimensiones posibles (Dim.), los límites de la matriz se pueden introducir en Inicio
y Finalizar haciendo clic con el ratón en el campo correspondiente para abrir un espacio de edición. La matriz

El tipo de datos se introduce en el campo Tipo. Al hacer esto, el botón se puede usar para abrir un
cuadro de diálogo del asistente de entrada.
Al salir del cuadro de diálogo de límites de matriz a través del botón Aceptar, las declaraciones de variables en formato
IEC se configuran en función de las entradas en el campo Tipo del cuadro de diálogo. Ejemplo: ARRAY [1..5, 1..3] OF

5-8 CoDeSys V2.3


5 - Editores en CoDeSys

INT En el campo Valor inicial, puede introducir el valor inicial de la variable que se está declarando. Si se trata de un

o una estructura válida, puede abrir un cuadro de diálogo de inicialización especial a través del
botón o abrir el cuadro de diálogo del asistente de entrada para otros tipos de variables.
En el cuadro de diálogo de inicialización de una matriz, se presenta una lista de elementos de matriz; Un clic
del ratón en el espacio que sigue a ":="abre un campo de edición para introducir el valor inicial de un elemento.

En el cuadro de diálogo de inicialización de una estructura, los componentes individuales se muestran en una
estructura de árbol. El tipo y el valor inicial predeterminado aparecen entre paréntesis después del nombre de
la variable; Cada uno va seguido de ":=". Al hacer clic con el ratón en el campo que sigue a ":=", se abre un
campo de edición en el que se puede introducir el valor inicial deseado. Si el componente es una matriz, la
visualización de los campos individuales de la matriz se puede ampliar haciendo clic con el ratón en el signo
más antes del nombre de la matriz y los campos se pueden editar con los valores iniciales.

Después de salir del cuadro de diálogo de inicialización con OK, la inicialización de la matriz o de la
estructura aparece en el campo Valor inicial del cuadro de diálogo de declaración en formato IEC.
Ejemplo: x:=5,field:=2,3,struct2:=(a:=2,b:=3)
En el campo Dirección, puede enlazar la variable que se está declarando a una dirección IEC (declaración AT).
Si corresponde, escriba un comentario. El comentario se puede formatear con saltos de línea
mediante la combinación de teclas <Ctrl> + <Intro>.
Al pulsar OK, se cierra el diálogo de declaración y la variable se introduce en el editor de declaraciones
correspondiente de acuerdo con la sintaxis IEC.

Nota: El cuadro de diálogo para la declaración de variables también se obtiene mediante el comando 'Editar'
'Declarar variable'. Si el cursor descansa sobre una variable en modo Online, la ventana Autodeclaración se puede
abrir con <Mayús><F2> con la configuración actual relacionada con la variable mostrada.

Números de línea en el editor de declaraciones


En el modo sin conexión, un simple clic en un número de línea especial marcará toda la línea de texto.
En el modo en línea, un solo clic en un número de línea específico abrirá o cerrará la variable en esta
línea, en caso de que se trate de una variable estructural.

Declaraciones en forma de tablas


Si la opción Declaraciones como tablas está activada en las Opciones del proyecto (categoría
'Editor') o, si ya está trabajando en el editor de declaraciones, en el menú contextual, el editor de
declaraciones tendrá el aspecto de una tabla. Al igual que en un cuadro de índice de tarjetas, puede
seleccionar las tarjetas de registro de los tipos de variables respectivos y editar las variables.
Para cada variable se le proporcionan los siguientes campos de entrada.

Nombre: Introduzca el identificador de la variable.


Dirección: Si es necesario, introduzca la dirección de la variable (declaración AT)
Tipo: Introduzca el tipo de variable. (Introduzca el bloque de funciones al crear una instancia de una función
bloque)
Inicial: Introduzca una posible inicialización de la variable (correspondiente a la asignación ":= "
operador).
Comentario: Escribe un comentario aquí.

Ambos tipos de visualización del editor de declaraciones se pueden cambiar sin causar ningún
problema. En el modo en línea no hay diferentes tipos de visualización.
Insértese una nueva declaración:
Para editar una nueva variable, seleccione el comando 'Insertar' 'Nueva declaración' (ver más abajo).
Ordenación de las declaraciones:

CoDeSys V2.3 5-9


Editor de declaraciones

Para ordenar las entradas de la tabla, coloque el cursor en la barra de números de línea en el borde
izquierdo de la ventana del editor y elija uno de los siguientes comandos en el menú contextual:
Ordenar por nombre: Todas las líneas están ordenadas alfabéticamente de acuerdo con los nombres de los identificadores en la columna 'Nombre'.

Ordenar por dirección: Todas las líneas están ordenadas alfabéticamente de acuerdo con las
entradas de dirección en la columna 'Dirección'.
Ordenar por tipo: Todas las líneas están ordenadas alfabéticamente de acuerdo con los nombres de los tipos en la columna 'Tipo'.

Orden original: Las líneas se muestran en el orden en que se introdujeron originalmente.


Editor de declaraciones como tabla

«Insertar» «Nueva declaración»


Con este comando, se introduce una nueva variable en la tabla de declaraciones del editor de
declaraciones. Si la posición actual del cursor se encuentra en un campo de la tabla, la nueva variable
se pegará en la línea anterior; de lo contrario, la nueva variable se pega al final de la tabla. Además,
puede pegar una nueva declaración al final de la tabla utilizando la tecla de flecha derecha o la tecla de
tabulación en el último campo de la tabla.
Recibirá una variable que tiene "Nombre" ubicado en el campo Nombre y "Bool" ubicado en el Tipo
, como su configuración predeterminada. Debe cambiar estos valores a los valores deseados. El
nombre y el tipo son todo lo que se necesita para una declaración completa de variables.

5.2.2 Editores de declaraciones en modo en línea


En el modo en línea, el editor de declaraciones cambia a una ventana de monitor. En cada línea hay
una variable seguida del signo igual (=) y el valor de la variable. Si la variable en este punto no está
definida, aparecerán tres signos de interrogación (???). En el caso de los bloques de funciones, los
valores se muestran solo para las instancias abiertas (comando: 'Proyecto', 'Abrir instancia').
Delante de cada variable de varios elementos hay un signo más. Al presionar <Enter> o después de
hacer doble clic en dicha variable, la variable se abre. En el ejemplo, se abriría la estructura de los
semáforos.

Cuando una variable está abierta, todos sus componentes se enumeran después de ella. Aparece un
signo menos delante de la variable. Si vuelve a hacer doble clic o pulsa <Intro>, la variable se cerrará y
volverá a aparecer el signo más.
Al presionar <Enter> o hacer doble clic en una variable de un solo elemento, se abrirá el cuadro de
diálogo para escribir una variable. Aquí es posible cambiar el valor actual de la variable. En el caso de
las variables booleanas, no aparece ningún cuadro de diálogo; Estas variables están activadas para
alternar.

5-10 CoDeSys V2.3


5 - Editores en CoDeSys

El nuevo valor se muestra después de la variable, entre corchetes puntiagudos y en color turquesa, y
permanece sin cambios. Si se da el comando 'En línea' 'Escribir valores', todas las variables se colocan
en la lista seleccionada y se muestran una vez más en negro.
Si se da el comando 'En línea' 'Forzar valores', entonces todas las variables se establecerán en los
valores seleccionados, hasta que se dé el comando 'Liberar fuerza'. En este caso, el color del valor de
fuerza cambia a rojo

5.2.3 Instrucciones de Pragma en el Editor de Declaraciones


La instrucción pragma se utiliza para afectar a las propiedades de una variable en relación con el
proceso de compilación o precompilación. Se puede utilizar con texto complementario en una línea de
programa del editor de declaraciones o en su propia línea.
La instrucción pragma está encerrada entre llaves, se ignoran las mayúsculas y minúsculas: { <Texto
de instrucción> }
Si el compilador no puede interpretar de manera significativa el texto de la instrucción, todo el pragma se maneja como un
comentario y se vuelve a leer. Se emite una advertencia: "¡Ignorar la directiva del compilador '<Texto de instrucciones>'!"

Dependiendo del tipo y contenido de pragma, el pragma opera en la línea en la que se encuentra o en
todas las líneas subsiguientes hasta que es terminado por un pragma apropiado, o se ejecuta el mismo
pragma con diferentes parámetros, o se llega al final del archivo. Por archivo nos referimos aquí: parte
de declaración, parte de implementación, lista de variables globales, declaración de tipo.
El corchete de apertura puede seguir inmediatamente al nombre de una variable. Los corchetes de
apertura y cierre deben estar ubicados en la misma línea.
Los siguientes pragmas están disponibles actualmente en CoDeSys:
• Pragma {flag ...} para Inicialización, Monitoreo, Creación de símbolos
• Pragma {bitaccess ...} para Bitaccess
• Pragma {link} para vincular un POU o DUT
• Pragmas {parámetro ..}, {plantilla...}, {instancia...} para crear entradas para el Administrador de parámetros
• Pragma {library ...} para controlar la visualización de las partes de la declaración de la biblioteca

Instrucciones de Pragma para Inicialización, Monitoreo, Creación de símbolos, Bitaccess, Vinculación


Pragma {flag [<flags>] [off|on]}
<flags> puede ser una combinación de los siguientes indicadores:

noinit: La variable no se inicializará.


Nowatch: La variable no se puede monitorizar
noread: La variable se exporta al archivo de símbolos sin permiso de lectura
nowrite: La variable se exporta al archivo de símbolos sin permiso de escritura

noread, nowrite: La variable no se exportará al archivo de símbolos

Con el modificador "on", el pragma opera en todas las declaraciones de variables subsiguientes hasta
que termina con el pragma {flag off}, o hasta que se sobrescribe con otro pragma {flag <flags> on}.
Sin el modificador "on" o "off", el pragma opera solo en la declaración de variable actual (es
decir, la declaración que se cierra con el siguiente punto y coma).
Ejemplos de uso de pragma {flag}:
Inicialización y monitorización de variables:
La variable a no se inicializará y no se supervisará. La variable b no se inicializará:

CoDeSys V2.3 5-11


Editor de declaraciones

VAR
a: INT {flag noinit, nowatch};
b: INT {flag noinit };
END_VAR
VAR {flag noinit, nowatch on}
a: INT; {flag noinit on}
b: INT; {bandera desactivada}

END_VAR
Ninguna de las variables se inicializará:
{marcar acerca de} VAR

a : INT;
b : INT; END_VAR {flag off} VAR {flag noinit on}

a : INT;
b : INT; {bandera desactivada}

END_VAR
Obtención de variables en el archivo de símbolos:
Los indicadores "noread" y "nowrite" se utilizan, en una POU que tiene permiso de lectura y/o escritura,
para proporcionar a las variables seleccionadas derechos de acceso restringidos. El valor
predeterminado de la variable es el mismo que el valor de la POU en la que se declara la variable. Si una
variable no tiene permiso de lectura ni de escritura, no se exportará al archivo de símbolos.

Ejemplos:

Si la POU tiene permiso de lectura y escritura, con los siguientes pragmas la variable a solo se puede
exportar con permiso de escritura, mientras que la variable b no se puede exportar en absoluto:
VAR
a: INT {flag noread};
b: INT {flag noread, nowrite};
END_VAR
VAR { flag noread on}
a: INT; { flag noread, nowrite on}
b: INT; {bandera desactivada}

END_VAR
Ni la variable a ni la b se exportarán al archivo de símbolos:
{ flag noread, nowrite on } VAR
a: INT;
b : INT; END_VAR {marcar apagado}
VAR { marcar noread, nowrite on}

a: INT;
b: INT; {bandera desactivada}
END_VAR

El pragma funciona de forma aditiva en todas las declaraciones de variables posteriores.


Ejemplo: (todas las POU en uso se exportarán con permiso de lectura y escritura)
a : AFB;

5-12 CoDeSys V2.3


5 - Editores en CoDeSys

...
FUNCTION_BLOCK afB
VAR
b: bfb {flag nowrite};
c : INT;
END_VAR ...

FUNCTION_BLOCK bfB
VAR
d: INT {flag noread};
e: INT {flag nowrite};
END_VAR
"a.b.d": No se exportará
"a.b.e": Se exportará solo con permiso de lectura
"a.c": Se exportará con permiso de lectura y escritura.

Pragma {bitaccess...} para Bitaccess


Este pragma se puede utilizar para obtener una visualización correcta de una variable, que está
haciendo un bitaccess con la ayuda de una constante global, en el asistente de entrada, en la
"función Intellisense" y en el monitoreo en la ventana de declaración. Más adelante, se verá que,
cuando esta variable se monitorea en la ventana de declaración de la POU en particular, las
constantes globales utilizadas se muestran debajo de la variable de estructura respectiva.

Tenga en cuenta: ¡La opción del proyecto 'Reemplazar constantes' (categoría Construir) debe estar activada!

El pragma debe insertarse en la declaración de la estructura en una línea separada. La línea no


termina con un punto y coma.
Sintaxis:
{bitaccess <Constante global> <número de bits> '<comentario>'}
<Constante global>: Nombre de la constante global, que debe definirse en una lista de variables
globales.
<Bitnumber>: Valor de la constante global, tal como se define en la lista de variables globales.
Véase un ejemplo en el Capítulo Apéndice B: Operandos en CoDeSys, Direccionamiento de bits
en variables.

Pragma {link} para vincular una POU durante la generación de código


Normalmente, una POU (programa, función, bloque de funciones) o una definición de tipo de
unidad de datos (DUT) que no se llama dentro del proyecto, no se vinculará durante la
generación de código. Pero podría ser deseable que una función, por ejemplo, incluida en el
proyecto a través de una biblioteca, esté disponible después de la descarga en el sistema de
ejecución, incluso si el programa de aplicación no la utiliza directamente (por ejemplo, para
cualquier operación de comprobación). Para este propósito, puede agregar el pragma {link} en
cualquier posición deseada en la parte de declaración de una POU o en un DUT para forzar una
vinculación de la POU de todos modos.
Pragma para controlar la visualización de las partes de la declaración de biblioteca
Durante la creación de una biblioteca en CoDeSys, puede definir a través de pragmas qué partes de la ventana de
declaración deben ser visibles o no visibles en el Administrador de bibliotecas más adelante cuando la biblioteca se
incluirá en un proyecto. La visualización de la parte de implementación de la biblioteca no se verá afectada por eso.

Por lo tanto, los comentarios o cualquier declaración de variables se pueden ocultar al usuario. Los
pragmas {library private} y {library public} afectan al resto de la misma línea o a las líneas siguientes,
siempre y cuando no se sobrescriban entre sí.
Sintaxis: {library public} La prueba posterior se mostrará en el Administrador de bibliotecas.
{library private} :La prueba posterior no se mostrará.

CoDeSys V2.3 5-13


Editor de declaraciones

Ejemplo: Vea a continuación la parte de declaración de una biblioteca, que se crea en CoDeSys. El
comentario "(* esto es para todos *)" debe mostrarse en el Administrador de bibliotecas después de
haber incluido la biblioteca en un proyecto., el comentario "(* pero esto no es para todos" sin
embargo no debe mostrarse. Las variables local e in2 tampoco deben mostrarse:
{biblioteca pública} (*esto es para todos*) {biblioteca privada} (*esto no es para todos*)
{biblioteca pública}
FUNCIÓN afun : BOOL
VAR_INPUT
en: BOOL;
END_VAR
{biblioteca privada}
VAR local: BOOL;

END_VAR
{biblioteca pública}
VAR_INPUT
en2: BOOL; {biblioteca
privada} in3: BOOL;
{biblioteca pública}

END_VAR

Instrucciones de Pragma para las entradas del Administrador de parámetros


Las instrucciones de pragma se pueden insertar en las declaraciones de variables con el fin de crear entradas
para estas variables en las listas de parámetros que se manejan en el Administrador de parámetros. Depende del
sistema de destino, si el Administrador de parámetros está disponible en el sistema de programación CoDeSys.
Esto significa que debe activarse en la configuración de destino, categoría Funcionalidad de red.

La sintaxis:
La instrucción pragma está encerrada entre llaves, se ignoran las mayúsculas y minúsculas: { <Texto
de instrucción> }. Si se incluye en declaraciones de variables "normales", debe establecerse antes del
punto y coma final de la declaración.
Los pragmas, que se utilizan en la interfaz VAR_CONFIG, se establecen cada uno en una sola línea y
no terminan con un punto y coma.
Las definiciones clave se escriben separadas por caracteres de espacio, todas juntas entre corchetes.

<name>: Nombre de la lista de parámetros en el Administrador de parámetros. Si la lista aún no existe,


se creará.
<key>: Nombre del atributo, es decir, el título de la columna en la lista de parámetros; por ejemplo,
"Nombre", "Valor", "Nivel de acceso", etc.; Depende de la definición del tipo de lista de parámetros específico
del cliente, qué claves se pueden definir en el pragma. Las definiciones clave se escriben separadas por
caracteres de espacio, todas juntas entre corchetes. Respete la sintaxis de las entradas en las listas de
instancias para matrices, la estructura o los componentes del bloque de funciones. (véase más adelante, 3.).

<value>: Valor del atributo definido por <key>. Si <valor> contiene espacios vacíos, debe ir entre
comillas dobles, por ejemplo, ... accessright="solo lectura"...

Tenga en cuenta: Las instrucciones de pragma serán efectivas tan pronto como se cambie el foco, es decir, tan
pronto como se realice una precompilación, por ejemplo, saliendo de la ventana del editor. Las entradas erróneas
no se enviarán hasta que se compile el proyecto.

Se pueden generar las siguientes entradas:


1. Entradas en listas de parámetros de tipo 'Variables'
a) de la parte de declaración de las listas de programas y variables globales:

5-14 CoDeSys V2.3


5 - Editores en CoDeSys

Para una variable definida en una declaración PROGRAM o VAR_GLOBAL, se puede crear una
entrada en una lista de parámetros de tipo 'Variables', si se declara como se describe a
continuación: (Si la lista de parámetros aún no existe, se creará automáticamente)
Sintaxis: {lista de parámetros=<nombre> [ <clave>=<valor> <clave>=<valor> ... Otras claves ] }
Ejemplo: La variable bvar se declara en un programa. Se debe introducir en la lista de parámetros parlist1 tipo
'Variables') con el nombre simbólico bvar1, el valor 102, el índice 16#1200 y el subíndice 16#2l.

VAR
bvar:INT{lista de parámetros=parlist1 [nombre=bvar1 valor=102 índice=16#1200
subíndice=16#1 ] };
END_VAR
b) a través de una declaración en la interfaz VAR_CONFIG:
Existe la posibilidad de crear una entrada para una variable en una lista de parámetros de tipo
'Variables' colocando un pragma en una ventana de VAR_CONFIG (independientemente de las
configuraciones de variables, que también se realizan en la interfaz VAR_CONFIG): (Si la lista de
parámetros aún no existe, se creará automáticamente)
Sintaxis: {parámetro list=<name> path=<path> [ <key>=<value> <key>=<value> ... Otras claves ] }
<ruta> Ruta de la variable para la que se debe generar la entrada, por ejemplo, "PLC_PRG.act1.var_x"
Ejemplo: Para la variable var_x se crea una entrada en la lista de parámetros "varlist1", el nombre
simbólico es xvar".
VAR_CONFIG
{lista de parámetros=varlist1 ruta=PLC_PRG.act1.var_x [ nombre=xvar ] }
END_VAR

2. Entradas en listas de parámetros de tipo «Plantilla» a través de bloques de funciones y estructuras


Los pragmas en las declaraciones de variables en bloques de funciones y estructuras se pueden
utilizar para crear entradas en listas de parámetros de tipo 'Plantilla'. (Si la plantilla aún no existe, se
creará automáticamente).
Sintaxis: {template list=<name> [ <key>=<value> <key>=<value> ... Otras claves ] }
Ejemplo: La variable strvar, que es un elemento de la estructura "stru1", debe introducirse en una
lista de parámetros "templ1" de tipo 'Template'; el nombre simbólico (miembro) de la entrada es
"struvar1, el nivel de acceso es "bajo":
TIPO DE STRU:
ESTRUCTURA
ivar:INT; strvar:STRING{template list=vorl1 [member=struvar1 accesslevel=low] };

END_STRUCT
END_TYPE

3. Entradas en listas de parámetros de tipo «Instancia» (para matrices, variables de función, bloque o estructura)

(a) a través de declaraciones en programas o listas de variables globales


En la declaración de matrices, variables de función, bloque o estructura en un programa o en una
lista global de variables se puede crear directamente una lista de parámetros de tipo 'Instancia':
Sintaxis: {instance list=<name> template=<template> baseindex=<index>
basesubindex=<subindex> [ <key>=<value para el primer elemento > <key>=<value para el primer
elemento > ... Otras claves para el primer elemento ] | [ <clave>=<valor para el segundo elemento >
<clave>=<valor para el segundo elemento > .. Otras claves para el segundo elemento ] | [claves
para otros elementos]} <clave>=<valor> <clave>=<valor> ... Otras claves ] }

CoDeSys V2.3 5-15


Editor de declaraciones

Para las matrices, la clave "plantilla" se definirá automáticamente con la plantilla implícitamente
disponible "ARRAY", para las estructuras y los bloques de funciones debe estar disponible una plantilla
adecuada en el Administrador de parámetros y debe formar parte de la declaración aquí descrita.

Para cada elemento particular de la matriz o de la estructura o del bloque de funciones se puede
predefinir una entrada individual en la lista de parámetros: por ejemplo, para cada elemento se
puede especificar una definición propia [name=<elementname>].
Las definiciones de las claves de cada elemento en particular (¡todas las claves de un elemento en
particular están encerradas entre los mismos corchetes!) deben organizarse en una fila, separadas por
espacios vacíos. Los paquetes de definición de los elementos se referirán automáticamente a los
elementos de acuerdo con el orden ascendente del índice (miembro). Si no hay tantas definiciones de
clave disponibles como elementos hay en la matriz o en la estructura o el bloque de funciones, entonces
a los elementos restantes se les asignarán los mismos valores que al último elemento definido
individualmente (Excepción para el "nombre" de la clave para las matrices, ver más abajo). (ver ejemplo
1b).
Automatismos relativos al "nombre" de la clave al introducir matrices en las listas de parámetros:
- Si no especifica un nombre para un elemento de matriz en el pragma, ese elemento y
todos los elementos siguientes obtendrán automáticamente los nombres <POU
name>_<Array variable name>_<correspondiente al número de índice de la matriz>.
Ejemplo: La variable de matriz ARRVAR [1..8] de INT en POU PLC_PRG debe introducirse
en una lista de variables a través de un pragma; Si la clave "name" no está definida en el
pragma, los elementos particulares de la matriz en la lista de parámetros se llamarán
automáticamente "PLC_PRG_arrvar_1" a "PLC_PRG_arrvar_8".
- Si define cualquier nombre "<name>_<first index number of array range>" para el primer elemento
de la matriz a través de pragma, los siguientes elementos de la matriz en la lista de parámetros se
llamarán automáticamente "<name>_<número de índice correspondiente>".
Ejemplo: La variable de matriz ARRVAR [1..8] de INT in debe introducirse en una lista de
variables a través de un pragma; El pragma solo especifica [name=xyz_1]" para el primer
elemento de la matriz y, por lo tanto, en la lista de parámetros, los siguientes elementos
obtendrán automáticamente los nombres "xyz_2" a "xyz_8".
Atención: No defina un valor para la clave "Miembro"; esta columna se rellenará automáticamente utilizando
los valores del índice de la matriz.

Ejemplos:
Ejemplo 1a: Se declara una variable de matriz arr_1 como se describe a continuación para crear un arrinst de
lista de parámetros de tipo 'Instance' (si aún no está disponible), en el que se introducen los componentes de la
matriz, por lo que cada elemento primero obtendrá un nombre simbólico xname_<número de índice> (podría
editarse posteriormente en el administrador de parámetros) y el subíndice se contará hasta 1 para cada entrada,
Empezando por 0 (basesubindex). Accesslevel=low se aplicará a todos los elementos.

arr_1: ARRAY [1..8] OF INT{instance list=arrinst template=ARRAY baseindex=16#0 basesubindex=16#0 [name=xname_1 accesslevel=low] }

Ejemplo 1b: Para una variable de matriz arr_1 solo para los elementos 1 a 4 ya los nombres
están definidos a través del pragma, los elementos 5 a 8 obtendrán automáticamente el nombre
del elemento 4 extendido por un subrayado y el número de índice apropiado, es decir,
"xname_5" a "xname_8". Tenga en cuenta que deben introducirse otras definiciones de clave
para un elemento en particular entre los mismos corchetes que se muestran aquí para el primer
y cuarto elemento con respecto al nivel de acceso:
arr_1: ARRAY [1..8] OF INT{instance list
= arrinst template
= ARRAY baseindex
= 16#0
basesubindex= 16#0[name= aname accesslevel= high] [name= bname] [name= cname] [name= xname
accesslevel=medium]};

5-16 CoDeSys V2.3


5 - Editores en CoDeSys

Editor del Administrador de parámetros, Ejemplo1a

Editor del Administrador de parámetros, Ejemplo1b

Ejemplo 2:
Una variable de estructura de tipo "stru1" (contiene las variables a,b,c) se declara como se
describe a continuación para obtener entradas en una lista de parámetros de tipo 'Instancia' que
se basa en la plantilla "strulist_temp"; La lista obtendrá entradas para los componentes A, B, C,
no se asignan nombres simbólicos, el nivel de acceso se establece en "alto" y cada valor de
índice definido por la plantilla se incrementará en 2. Asegúrese de que la plantilla definida en el
pragma esté disponible en el Administrador de parámetros:
struvar:stru1{instance list=strulist template=strulist_templ baseindex=16#2 basesubindex=16#0
[accesslevel=high] };

CoDeSys V2.3 5-17


Editor de declaraciones

Ejemplo 2, Entradas para la variable de estructura en la plantilla

b) a través de declaraciones en la interfaz VAR_CONFIG


Para las variables que se pueden instanciar, puede crear directamente entradas en una lista de
parámetros de tipo 'Instancia' mediante un pragma en una ventana de VAR_CONFIG
(independientemente de las definiciones de configuración de variables que también se realizan en
esta interfaz). Si la plantilla aún no existe, se creará automáticamente.
Asegúrese de que la plantilla definida en el pragma ya esté disponible en el Administrador de parámetros.
Sintaxis: {instance list=<name> path=<path> template=<template> baseindex=<index>
basesubindex=<subindex>[ <key>=<value> <key>=<value> ... Otras claves ] }
<path>: La ruta de instancia de la variable, por ejemplo, "PLC_PRG.fb1inst", donde fb1inst es una
instancia del bloque de funciones fb1.
Ejemplo: La siguiente entrada en una ventana de VAR_CONFIG creará entradas para todas las variables del
bloque de funciones "fb1" en una lista de instancias "varinst1" basada en la plantilla "fb1_templ" (que ya debe
estar disponible). Para cada entrada, el desplazamiento del índice, que está predefinido por la plantilla, se
incrementará en 2 (baseindex), el desplazamiento del subíndice no se modificará (basesubindex). Cada
entrada recibe un nombre simbólico "fb1var", que puede editar posteriormente en el Administrador de
parámetros.
VAR_CONFIG
{instance list=varinst1 path=PLC_PRG.fb1 template=fb1_templ baseindex=16#2 basesubindex=16#0 [
name=fb1var ]}
END_VAR

Pragma para tipos de datos no persistentes


Normalmente, lo siguiente es válido: Incluso si solo una variable local en un bloque de función o una
estructura se declara persistente, al usar una instancia automáticamente todos los componentes se
almacenarán en la información persistente (persist.dat) en el sistema de tiempo de ejecución. Para
ahorrar espacio, puede usar el pragma {nonpersistent}

5-18 CoDeSys V2.3


5 - Editores en CoDeSys

en la declaración del bloque de funciones o en la estructura. Afecta a que solo aquellos componentes de la
estructura del bloque de funciones, que se declaran como "persistentes", se ingresarán en la información
persistente.
Ejemplo:

Si una instancia del siguiente bloque de funciones se declara como persistente, solo las variables local y
fblevel3 se escribirán en la información persistente. Sin pragma {nonpersistent} todas las variables del bloque
de funciones se almacenarían allí.
FUNCTION_BLOCK FB_Level_2
{no persistente}
VAR_INPUT
bvar_in : BOOL;
END_VAR
VAR_OUTPUT
bvar_out : BOOL;
END_VAR
VAR ivar2 : INT;
END_VAR FUE
PERSISTENTE
local : INT := 33; fblevel3 : FB_Level_3;
END_VAR

CoDeSys V2.3 5-19


Editor de declaraciones

5-20 CoDeSys V2.3


5 - Editores en CoDeSys

5.3 Los editores de texto

5.3.1 Trabajar en editores de texto


Los editores de texto utilizados para la parte de implementación (el editor de listas de instrucciones y el editor de
texto estructurado) de CoDeSys proporcionan las funciones habituales del editor de texto de Windows.

La implementación en los editores de texto es compatible con el coloreado de sintaxis.


En el modo Sobrescribir, la barra de estado muestra un OV negro. Puede cambiar entre el modo
Sobrescribir y el modo Insertar mediante la tecla <Ins>

Los comandos más importantes se encuentran en el menú contextual (botón derecho del ratón o <Ctrl>+<F10>).
Los editores de texto utilizan los siguientes comandos de menú de forma especial:

'Insertar' 'Operadores' en los editores de texto


Con este comando, todos los operadores disponibles en el idioma actual se muestran en un cuadro de diálogo.
Si se selecciona uno de los operadores y la lista se cierra con OK, el operador resaltado se insertará en
la posición actual del cursor. (Esto se administra aquí al igual que en el Asistente de entrada).

'Insertar' 'Operando' en los editores de texto


Con este comando se muestran todas las variables en un cuadro de diálogo. Puede seleccionar si
desea mostrar una lista de las variables globales, locales o del sistema.
Si se elige uno de los operandos y el cuadro de diálogo se cierra con OK, el operando resaltado se
insertará en la posición actual del cursor. (Esto se administra aquí al igual que en el Asistente de
entrada).

'Insertar' 'Función' en los editores de texto


Con este comando, todas las funciones se mostrarán en un cuadro de diálogo. Puede elegir si desea
tener una lista que muestre funciones estándar o definidas por el usuario.
Si se selecciona una de las funciones y el cuadro de diálogo se cierra con OK, la función resaltada se
insertará en la posición actual del cursor. (La administración procederá, como en la selección de
entradas).

CoDeSys V2.3 5-21


Los editores de texto

Si se seleccionó la opción Con argumentos en el cuadro de diálogo, también se insertarán las


variables de entrada y salida necesarias.

'Insertar' 'Bloque de funciones' en editores de texto


Con este comando, todos los bloques de función se muestran en una ventana de diálogo. Puede elegir
si desea tener una lista que muestre bloques de función estándar o definidos por el usuario.
Si se selecciona uno de los bloques de función y el cuadro de diálogo se cierra con OK, el bloque de
función resaltado se insertará en la posición actual del cursor. (Esto se administra aquí al igual que en
el Asistente de entrada).
Si se seleccionó la opción Con argumentos en el cuadro de diálogo, también se insertarán las variables
de entrada necesarias del bloque de funciones. Sin embargo, no está obligado a asignar estos
parámetros.
Llamar a POU con parámetros de salida en editores de texto
Los parámetros de salida de una POU llamada se pueden asignar directamente al ser llamada en los
lenguajes de texto IL y ST.
Ejemplo:
Al parámetro de salida out1 de afbinst se le asigna la variable a.
IL: CAL afbinst(in1:=1, out1=>a)
ST: afbbindst(in1:=1, out1=>a);
Si la POU se inserta a través del asistente de entrada (<F2>) con la opción 'Con argumentos' en la
ventana de implementación de una POU ST o IL, se mostrará automáticamente con todos los
parámetros de esta sintaxis. Sin embargo, no está obligado a asignar estos parámetros.

Los editores de texto en modo Online


Las funciones en línea de los editores son el punto de interrupción establecido y el procesamiento de
un solo paso (pasos). Junto con la supervisión, el usuario tiene la capacidad de depuración de un
depurador de lenguaje estándar de Windows moderno.
En el modo en línea, la ventana del editor de texto se divide verticalmente en mitades. En el lado
izquierdo de la ventana encontrará el texto normal del programa; En el lado derecho verá una
visualización de las variables cuyos valores se cambiaron en las líneas respectivas. El ancho de las
mitades de la ventana se puede modificar dibujando el divisor con el ratón.
La pantalla es la misma que en la parte de declaración. Esto significa que cuando el PLC está
funcionando, se mostrarán los valores actuales de las variables respectivas.
Al supervisar expresiones o variables direccionadas por bits, se debe tener en cuenta lo siguiente: en el caso de
las expresiones, siempre se muestra el valor de toda la expresión. Ejemplo: a AND b se muestra en azul o con
":=TRUE" si tanto a como b son TRUE. En el caso de las variables direccionadas por bits, el valor de bits que se
direcciona siempre se supervisa (por ejemplo, a.3 se muestra en azul o con ":=TRUE, si a tiene el valor 4).

Si coloca el puntero del ratón brevemente encima de una variable, el tipo, la dirección y el comentario
sobre la variable se mostrarán en una información sobre herramientas.

'Extras' 'Opciones de monitoreo'


Con este comando puede configurar su ventana de monitoreo. En los editores de texto, la ventana se divide
en dos mitades durante la supervisión. El programa se encuentra en la mitad izquierda. En la mitad derecha,
se monitorean todas las variables que se encuentran en la línea de programa correspondiente.
Puede especificar el ancho de la ventana del monitor y la distancia que deben tener dos variables en una línea.
Una declaración de distancia de 1 corresponde, en este caso, a una altura de línea en la fuente seleccionada.

Tenga en cuenta que el ancho de las mitades de la ventana también se puede modificar dibujando el
divisor con el mouse.

5-22 CoDeSys V2.3


5 - Editores en CoDeSys

Cuadro de diálogo Opciones de supervisión

Posiciones de punto de interrupción en el editor de texto


Las posiciones de punto de interrupción incluyen todas las posiciones de un programa en las que los valores de
las variables pueden cambiar o en las que el flujo del programa se bifurca (Excepción: llamadas a funciones. Si es
necesario, se debe establecer aquí un punto de interrupción en la función). En las posiciones intermedias, un
punto de interrupción ni siquiera tendría sentido, ya que nada ha podido cambiar en los datos desde la posición
anterior del punto de interrupción.
Esto da como resultado las siguientes posiciones de punto de interrupción en el IL:
Al inicio de la POU
En cada LD, LDN (o, en caso de que un LD se encuentre en una etiqueta, en la etiqueta)
En cada JMP, JMPC, JMPCN
En cada etiqueta
En cada CAL, CALC, CALCN
En cada RET, RETC, RETCN
Al final de la POU
El texto estructurado admite las siguientes posiciones de punto de interrupción:
En cada tarea
En cada instrucción de RETORNO y SALIDA
en las líneas en las que se evalúan las condiciones (WHILE, IF, REPEAT)
Al final de la POU
Las posiciones de los puntos de interrupción se marcan mediante la visualización del campo de número
de línea en el color que se establece en las opciones del proyecto.
Editor de IL con posibles posiciones de punto de interrupción (campos numéricos más oscuros)

¿Cómo se establece un punto de interrupción?


Para establecer un punto de interrupción, haga clic en el campo de número de línea de la línea en la
que desea establecer un punto de interrupción. Si el campo seleccionado es una posición de punto de
interrupción, el color del campo de números de línea cambiará de gris oscuro a azul claro, y el punto de
interrupción se activará en el PLC.

CoDeSys V2.3 5-23


Los editores de texto

Eliminación de puntos de interrupción


En consecuencia, para eliminar un punto de interrupción, haga clic en el campo de número de línea de
la línea con el punto de interrupción que se va a eliminar.
La configuración y eliminación de puntos de interrupción también se puede seleccionar a través del
menú ('En línea', 'Alternar punto de interrupción'), a través de la tecla de función <F9> o mediante el
símbolo en la barra de herramientas.
¿Qué sucede en un punto de interrupción?
Si se alcanza un punto de interrupción en el PLC, la pantalla mostrará la interrupción con la línea
correspondiente. El campo de número de línea de la línea donde se coloca el PLC aparecerá en rojo.
El programa de usuario se detiene en el PLC.
Si el programa se encuentra en un punto de interrupción, el procesamiento se puede reanudar con 'En línea' 'Ejecutar'.
Además, con 'En línea', 'Paso a paso' o 'Paso a paso' puede hacer que el programa se ejecute a la
siguiente posición de punto de interrupción. Si la instrucción en la que se encuentra es un comando
CAL, o si hay una llamada a una función en las líneas hasta la siguiente posición de punto de
interrupción, puede usar 'Paso a paso' para omitir la llamada a la función. Con 'Step in', se ramificará
a la POU abierta
Número de línea del editor de texto
Los números de línea del editor de texto proporcionan el número de cada línea de texto de una implementación de una POU.
En el modo Off-line, un simple clic en un número de línea especial marcará toda la línea de texto.

En el modo en línea, el color de fondo del número de línea indica el estado del punto de interrupción de
cada línea. La configuración estándar de los colores es:
gris oscuro: esta línea es una posición posible para un punto de interrupción.
Azul claro: se ha establecido un punto de interrupción en esta línea.
rojo: El programa ha llegado a este punto.
En el modo en línea, simplemente haciendo clic con el mouse cambiará el estado del punto de interrupción de esta
línea.

5-24 CoDeSys V2.3


5 - Editores en CoDeSys

5.3.2 El editor de listas de instrucciones


Así es como se ve una POU escrita en el IL bajo el editor de CoDeSys correspondiente:

Todos los editores de POU constan de una parte de declaración y un cuerpo. Estos están separados
por un divisor de pantalla.
El editor de listas de instrucciones es un editor de texto con las capacidades habituales de los editores
de texto de Windows. Los comandos más importantes se encuentran en el menú contextual (botón
derecho del ratón o <Ctrl>+<F10>). Las llamadas POU multilínea también son posibles:
Ejemplo:
CAL CTU_inst( CU:=%IX10, PV:=( LD A ADD 5 ) )

Para obtener información sobre el idioma, consulte el Capítulo 2.2.1, Lista de instrucciones (IL).

IL en modo Online
Con el comando 'En línea' 'Control de flujo', se inserta un campo adicional en el que se muestra el
contenido del acumulador en el editor IL en el lado izquierdo de cada línea.
Para obtener más información sobre el editor IL en modo en línea, consulte 'Los editores de texto en modo
en línea'.

CoDeSys V2.3 5-25


Los Editores Gráficos

5.3.3 El editor de texto estructurado


Así es como aparece una POU escrita en ST en el editor correspondiente de CoDeSys:

Todos los editores de POU constan de una parte de declaración y un cuerpo. Estos están separados
por un divisor de pantalla.
El editor de texto estructurado es un editor de texto con las capacidades habituales de los editores de texto de Windows.
Los comandos más importantes se encuentran en el menú contextual (botón derecho del ratón o <Ctrl>+<F10>).

Para obtener información sobre el lenguaje, consulte el Capítulo 2.2.2, 'Texto estructurado (ST).

5.4 Los editores gráficos

5.4.1 Trabajar en editores gráficos


Los editores de los lenguajes de orientación gráfica, el diagrama de funciones secuenciales SFC, el
diagrama de escalera LD y el diagrama de bloques de funciones FBD y de los diagramas de bloques
de funciones gráficas libres tienen muchos puntos en común. En los siguientes párrafos se resumirán
estas características; las descripciones específicas de LD, FBD y CFC, así como el lenguaje del
Gráfico de Funciones Secuenciales SFC siguen en secciones separadas. La implementación en los
editores gráficos es compatible con el coloreado de sintaxis.
Zoom
Los objetos como POU, acciones, transiciones, etc. en los lenguajes SFC, LD, FBD, CFC y en visualizaciones se
pueden ampliar o reducir de tamaño con una función de zoom. Todos los elementos del contenido de la ventana
de la parte de implementación se ven afectados; La parte de la declaración permanece sin cambios.

En la forma estándar, cada objeto se muestra con el nivel de zoom del 100%. El nivel de zoom que se
establece se guarda como una propiedad de objeto en el proyecto.
¡La impresión de la documentación del proyecto siempre se produce al 100% de la pantalla!
El nivel de zoom se puede establecer a través de una lista de selección en la barra de herramientas. Se
pueden seleccionar valores entre el 25% y el 400%; Los valores individuales entre el 10% y el 500% se
pueden introducir manualmente.

5-26 CoDeSys V2.3


5 - Editores en CoDeSys

La selección de un nivel de zoom solo está disponible si el cursor se apoya en un objeto creado en un
lenguaje gráfico o en un objeto de visualización.
Incluso con el objeto ampliado, las posiciones del cursor en los editores se pueden seleccionar aún más e incluso se puede
alcanzar con las teclas de flecha. El tamaño del texto se rige por el factor de zoom y el tamaño de fuente que se establece.

La ejecución de todas las funciones del menú del editor (por ejemplo, insertar un cuadro) en función de
la posición del cursor está disponible en todos los niveles de zoom, teniendo en cuenta lo mismo.
En el modo Online, cada objeto se muestra según el nivel de zoom que se haya establecido; La
funcionalidad en línea está disponible sin restricciones.
Cuando se utiliza IntelliMouse, un objeto se puede ampliar/reducir presionando la tecla <CTRL> y al
mismo tiempo girando la rueda hacia adelante o hacia atrás.

Red
En los editores LD y FBD, el programa está organizado en una lista de redes. Cada red está designada
en el lado izquierdo por un número de red en serie y tiene una estructura que consiste en una
expresión lógica o aritmética, un programa, una función o una llamada a bloque de funciones, y una
instrucción de salto o retorno.
Etiqueta
Cada red tiene una etiqueta que, opcionalmente, se puede dejar vacía. Esta etiqueta se edita haciendo
clic en la primera línea de la red, directamente al lado del número de red. Ahora puede introducir una
etiqueta, seguida de dos puntos.
Comentarios, Redes con saltos de línea, 'Extras' 'Opciones'
Cada red puede ser suministrada con un comentario de varias líneas. En el cuadro de diálogo
'Opciones de bloque de funciones y diagrama de escalera', que se puede abrir ejecutando el comando
'Extras' 'Opciones', puede realizar los ajustes relativos a los comentarios y saltos de línea:
Opciones de bloque de funciones y diagrama de escalera de diálogo

En el campo Tamaño máximo de comentario, puede introducir el número máximo de líneas que estarán disponibles
para un comentario de red (el valor predeterminado aquí es 4). En el campo Tamaño mínimo del comentario
Puede introducir el número de líneas que, por lo general, deben reservarse para . Si, por ejemplo, se ingresa
el número 2, entonces, al comienzo de cada red habrá dos líneas vacías después de la línea de etiqueta. El
valor predeterminado aquí es 0, que tiene la ventaja de permitir que quepan más redes en el área de la

CoDeSys V2.3 5-27


Los Editores Gráficos

pantalla. Si el tamaño mínimo del comentario es mayor que 0, para ingresar un comentario, simplemente
haga clic en la línea de comentarios y luego ingrese el comentario. De lo contrario, primero debe seleccionar
la red en la que se va a introducir un comentario y utilizar 'Insertar' 'Comentario' para insertar una línea de
comentario. A diferencia del texto del programa, los comentarios se muestran en gris.

Alternative Look & Feel: Las siguientes opciones permiten definir un look alternativo de las redes.
Comentarios por contacto (solo para el editor de escalera): Si esta opción está activada, puede asignar un
comentario individual a cada contacto o bobina. En el campo de edición Líneas para comentario variable,
introduzca el número de líneas que deben reservarse y mostrarse para el comentario. Si se realiza esta
configuración, se mostrará un campo de comentario en el editor encima de cada contacto y bobina donde
puede insertar texto. Si está activada la opción 'Comentarios por contacto', en el editor de escaleras también
se puede definir el número de líneas (Líneas para texto variable:) que se deben usar para el nombre de
la variable del contacto o la bobina. Esto se usa para mostrar incluso nombres largos por completo
dividiéndolos en varias líneas. En el siguiente ejemplo, se definen 2 líneas para el comentario de la variable y
1 línea para el texto de la variable:
Ejemplo de una red con visualización de la variable comentario y dirección:

Redes con saltos de línea (solo para el editor de escalera): Si esta opción está activada, los saltos de
línea se forzarán en las redes tan pronto como la longitud de la red exceda el tamaño de ventana dado
y algunos de los elementos no sean visibles.
Ejemplo de una red con saltos de línea

Reemplazar con Símbolo después de ingresar Dirección: ( solo para el editor de escalera): Si esta opción está
activada, puede ingresar una dirección en una casilla o en un contacto o bobina (por ejemplo, "%QB4") y esta
dirección será reemplazada inmediatamente por el nombre de la variable que se asigna a la dirección. Si no hay
ninguna variable asignada a la dirección introducida, la dirección permanece mostrada sin cambios.

Establecer comentario de contacto en comentario de símbolo: Si esta opción está activada, en el campo
de comentarios de un contacto o una bobina se mostrará ese comentario que se ha definido en la
declaración de la variable utilizada para el contacto o bobina (ver imagen de arriba, en 'Comentarios por
contacto'). El comentario puede ser editado. Sin embargo, para este propósito, también se debe activar la
opción 'Comentarios por contacto'. Tenga en cuenta que un comentario que ya se ha introducido localmente

5-28 CoDeSys V2.3


5 - Editores en CoDeSys

en un contacto o bobina será reemplazado automáticamente por el comentario variable en cualquier caso,
¡incluso si la variable no tiene un comentario en su declaración!
Mostrar dirección del símbolo: ( solo para el editor de escalera): Si esta opción está activada y una
variable asignada a un contacto o bobina se asigna a una dirección, la dirección se mostrará encima
del nombre de la variable (ver arriba, imagen en 'Comentarios por contacto').
Mostrar comentarios de variables por peldaño en la impresión: Si esta opción está activada, en
cada red para cada variable utilizada en esa red se mostrará una línea que muestra el nombre, la
dirección, el tipo de datos y el comentario de esta variable, tal como se define en la declaración de
variables. Esto puede ser útil para una documentación (impresión) del proyecto.
Ejemplo de una red que muestra una línea de información para cada variable

Aplicando las opciones:


OK: Pulse este botón para aplicar los ajustes en la POU real y para cerrar el cuadro de diálogo de opciones.
Aplicar opciones: Pulse este botón para aplicar los ajustes en todo el proyecto. Se abrirá un cuadro
de diálogo preguntándole dónde tiene que confirmar explícitamente que desea hacerlo.

'Insertar' 'Red (después)' o 'Insertar' 'Red (antes)'


Atajo: <Mayús>+<T> (Red después)
Para insertar una nueva red en el FBD o en el editor LD, seleccione el comando 'Insertar' 'Red
(después)' o 'Insertar' 'Red (antes)' , dependiendo de si desea insertar la nueva red antes o
después de la red actual. La red actual se puede cambiar haciendo clic en el número de red. Lo
reconocerás en el rectángulo punteado debajo del número. Con la tecla <Shift> y un clic del ratón se
puede seleccionar de toda el área de redes, desde la actual hasta la que se ha hecho clic.

Los editores de red en el modo online


En los editores FBD y LD solo se pueden establecer puntos de interrupción para las redes. El campo de número
de red de una red para la que se ha establecido un punto de interrupción se muestra en azul. A continuación, el
procesamiento se detiene delante de la red, donde se encuentra el punto de interrupción. En este caso, el campo
de número de red se muestra en rojo. Con el procesamiento de un solo paso (pasos), puede saltar de una red a
otra.
Todos los valores se supervisan al entrar y salir de las POU (unidades organizativas del programa) de la red.
Se debe tener en cuenta lo siguiente al monitorear expresiones o variables direccionadas a bits: En las
expresiones, por ejemplo, a AND b, utilizadas como condición de transición o entrada de bloque de
funciones, siempre se muestra el valor de toda la expresión (a AND b se muestra en azul o como :=TRUE, si
a y b son TRUE). En el caso de las variables direccionadas por bits, el valor de bits que se direcciona
siempre se supervisa (por ejemplo, a.3 se muestra en azul o con ":=TRUE, si a tiene el valor 4)

El control de flujo se ejecuta con el comando 'En línea' 'Control de flujo'. Con el control de flujo, puede ver los
valores actuales que se transportan en las redes a través de las líneas de conexión. Si las líneas de
conexión no llevan valores booleanos, el valor se mostrará en un campo especialmente insertado. Los
campos de supervisión para las variables que no se utilizan (por ejemplo, en la función SEL) se muestran en
un tono gris. Si las líneas llevan valores booleanos, se sombrearán en azul, en el caso de que lleven TRUE.
Por lo tanto, puede acompañar el flujo de información mientras el PLC está funcionando.

Si coloca el puntero del ratón brevemente encima de una variable, el tipo, la dirección y el comentario
sobre la variable se mostrarán en una información sobre herramientas.

CoDeSys V2.3 5-29


Los Editores Gráficos

5.4.2 El editor de diagramas de bloques de funciones


Así es como se ve una POU escrita en el FBD bajo el editor de CoDeSys correspondiente:

El editor de diagramas de bloques de funciones es un editor gráfico. Funciona con una lista de redes, en la
que cada red contiene una estructura que muestra, respectivamente, una expresión lógica o aritmética, la
llamada de un bloque de funciones, una función, un programa, un salto o una instrucción de retorno. Los
comandos más importantes se encuentran en el menú contextual (botón derecho del ratón o <Ctrl>+<F10>).

Con respecto a la posibilidad de cambiar la visualización de un FBD-POU entre el editor FBD y KOP,
tanto en modo fuera de línea como en modo en línea. Además, considere las posibilidades que ofrecen
las 'Opciones de bloque de funciones y diagrama de escalera' (consulte el Capítulo 5.4.1: Comentarios,
saltos de línea, 'Extras', 'Opciones').
Posiciones del cursor en FBD
Cada texto es una posición posible del cursor. El texto seleccionado está sobre un fondo azul y ahora
se puede cambiar.
También puede reconocer la posición actual del cursor por un rectángulo punteado. A continuación se
muestra una lista de todas las posiciones posibles del cursor con un ejemplo:
1) Todos los campos de texto (posibles posiciones del cursor enmarcadas en negro):

2) Cada entrada:

3) Cada operador, función o bloque de funciones:

5-30 CoDeSys V2.3


5 - Editores en CoDeSys

4) Salidas, si una tarea o un salto viene después:

5) La cruz alineada sobre una tarea, un salto o una instrucción de regreso:

6) Detrás del objeto más externo a la derecha de cada red ("última posición del cursor", la misma
posición del cursor que se utilizó para seleccionar una red):

7) La cruz alineada directamente frente a una tarea:

Cómo configurar el cursor en FBD


El cursor se puede colocar en una posición determinada haciendo clic con el mouse o con la ayuda del teclado.
Con las teclas de flecha, puede saltar a la posición del cursor más cercana en la dirección seleccionada
en cualquier momento. De esta manera se puede acceder a todas las posiciones del cursor, incluidos
los campos de texto. Si se selecciona la última posición del cursor, se pueden utilizar las teclas de
flecha <arriba> o <abajo> para seleccionar la última posición del cursor de la red anterior o posterior.
Una red vacía contiene solo tres signos de interrogación "???". Al hacer clic detrás de estos, se
selecciona la última posición del cursor.

'Insertar' 'Asignar' en FBD

Símbolo: Atajo: <Ctrl>+<A>


Este comando inserta una asignación.
Dependiendo de la posición seleccionada (véase 'Posiciones del cursor en FBD'), la inserción se
realiza 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).
Para una asignación insertada, se puede hacer una selección que acompaña al texto ingresado "???", y la
asignación se puede reemplazar por la variable que se va a asignar. Para ello, también puede utilizar el Asistente
de entrada. Para la posibilidad de introducir una dirección en lugar del nombre de la variable, consulte la
descripción del diálogo de opciones en el Capítulo 5.4.1: Comentarios, saltos de línea, 'Extras' 'Opciones'.

Para insertar una asignación adicional a una asignación existente, utilice el botón 'Insertar ' 'Salida'
mandar.

'Insertar' 'Saltar' en FBD

Símbolo: Atajo: <Ctrl>+<L>


Este comando inserta un salto.
Dependiendo de la posición seleccionada (véase 'Posiciones del cursor en FBD'), la inserción se
realiza 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).

CoDeSys V2.3 5-31


Los Editores Gráficos

Para un salto insertado, se puede hacer una selección que acompaña al texto ingresado "???", y el
salto se puede reemplazar por la etiqueta a la que se asignará.

'Insertar' 'Devolver' en FBD

Símbolo: Atajo: <Ctrl>+<R>


Este comando inserta una instrucción RETURN.
Dependiendo de la posición seleccionada (ver 'Posiciones del cursor en FBD'), la inserción se realiza
directamente delante de la entrada seleccionada (Posición del cursor 2), directamente después de la
salida seleccionada (Posición del cursor 4), directamente antes de la cruz de línea seleccionada
(Posición del cursor 5) o al final de la red (Posición del cursor 6)

'Insertar' 'Caja' en FBD

Símbolo: Atajo: <Ctrl>+<B>


Con este comando, se pueden insertar operadores, funciones, bloques de funciones y programas. En
primer lugar, siempre se inserta un operador "AND". Esto se puede convertir mediante la selección y
sobrescritura del texto de tipo ("AND") en cualquier otro operador, en cada función, en cada bloque de
función y en cada programa. Puede seleccionar la POU deseada mediante el Asistente de entrada
(<F2>). Si el nuevo bloque seleccionado tiene otro número mínimo de entradas, estas se adjuntarán. Si
el nuevo bloque tiene un número menor de entradas, se eliminarán las últimas.
En las funciones y los bloques de funciones, se muestran los nombres formales de las entradas y salidas.
En los bloques de funciones existe un campo de instancia editable encima del cuadro. Si se llama a
otro bloque de función que no se conoce cambiando el texto de tipo, se muestra un cuadro de operador
con dos entradas y el tipo dado. Si se selecciona el campo de instancia, se puede obtener el Asistente
de entrada a través de <F2> con las categorías para la selección de variables.
La POU más reciente se inserta en la posición seleccionada:
Si se selecciona una entrada (Posición del cursor 2), la POU se inserta delante de esta entrada. La
primera entrada de esta POU está vinculada a la rama a la izquierda de la entrada seleccionada. La
salida de la nueva POU está vinculada a la entrada seleccionada.
Si se selecciona una salida (Posición del cursor 4), la POU se inserta después de esta salida. La
primera entrada de la POU se conecta con la salida seleccionada. La salida de la nueva POU está
vinculada a la rama con la que se vinculó la salida seleccionada.
Si se selecciona una POU, una función o un bloque de funciones (Posición del cursor 3), el elemento
antiguo se reemplazará por la nueva POU.
En la medida de lo posible, las ramas se conectarán de la misma manera que antes de la sustitución.
Si el elemento antiguo tenía más entradas que el nuevo, se eliminarán las ramas no asociables. Lo
mismo ocurre con las salidas.
Si se selecciona un salto o un retorno, se insertará la POU antes de este salto o retorno. La primera
entrada de la POU está conectada con la rama a la izquierda del elemento seleccionado. La salida de
la POU está vinculada a la rama situada a la derecha del elemento seleccionado.
Si se selecciona la última posición del cursor de una red (Posición del cursor 6), la POU se insertará
después del último elemento. La primera entrada de la POU está vinculada a la rama a la izquierda de
la posición seleccionada.
Todas las entradas POU que no se hayan podido vincular recibirán el texto "???". Se debe hacer clic
en este texto y cambiarlo a la constante o variable deseada.
Si hay una bifurcación a la derecha de una POU insertada, la bifurcación se asignará a la primera
salida de POU. De lo contrario, las salidas permanecen sin asignar.

5-32 CoDeSys V2.3


5 - Editores en CoDeSys

'Insertar' 'Entrada'

Símbolo: Atajo: <Ctrl>+<U>


Este comando inserta una entrada de operador. Con muchos operadores, el número de entradas
puede variar. (Por ejemplo, ADD puede tener 2 o más entradas).
Para extender dicho operador por una entrada, debe seleccionar la entrada frente a la cual desea
insertar una entrada adicional (Posición del cursor 1); o debe seleccionar el operador en sí (Posición
del cursor 3), si se va a insertar una entrada más baja (consulte 'Posiciones del cursor en FBD').
La entrada insertada se asigna con el texto "???". Se debe hacer clic en este texto y cambiarlo a la
constante o variable deseada. Para ello, también puede utilizar el Asistente de entrada. Para la
posibilidad de introducir una dirección en lugar del nombre de la variable, consulte la descripción del
diálogo de opciones en el Capítulo 5.4.1: Comentarios, saltos de línea, 'Extras' 'Opciones'.

'Insertar' 'Salida'

Símbolo:
Este comando inserta una asignación adicional en una asignación existente. Esta capacidad sirve para
la colocación de los llamados peines de asignación; es decir, la asignación del valor que se encuentra
actualmente en la línea a varias variables.
Si selecciona la cruz rayada encima de una tarea (Posición del cursor 5) (ver 'Posiciones del cursor en
FBD') o la salida directamente delante de ella (Posición del cursor 4), entonces se insertará otra tarea
después de las que ya están allí.
Si se selecciona la línea que cruza directamente delante de una tarea (Posición del cursor 4), se
insertará otra tarea delante de esta.
La salida insertada se asigna con el texto "???". Se debe hacer clic en este texto y cambiarlo por la
variable deseada. Para ello, también puede utilizar el Asistente de entrada. Para la posibilidad de
introducir una dirección en lugar del nombre de la variable, consulte la descripción del diálogo de
opciones en el Capítulo 5.4.1: Comentarios, saltos de línea, 'Extras' 'Opciones'.

'Extras' 'Negate

Símbolo: Atajo: <Ctrl>+<N>


Con este comando puede negar las entradas, salidas, saltos o instrucciones RETURN. El símbolo de la
negación es un pequeño círculo en una conexión.
Si se selecciona una entrada (Posición del cursor 2) (consulte 'Posiciones del cursor en FBD'), esta
entrada se negará.
Si se selecciona una salida (Posición del cursor 4), esta salida se negará.
Si se marca un salto o un regreso, se negará la entrada de este salto o retorno.
Una negación puede ser cancelada a través de una negación renovada.

'Extras' 'Set/Reset'

Símbolo:
Con este comando puede definir salidas como Establecer o Restablecer salidas. Una cuadrícula con
Establecer salida se muestra con [S] y una cuadrícula con Restablecer salida se muestra con [R].

CoDeSys V2.3 5-33


Los Editores Gráficos

Set/Reset Outputs en FBD

Un conjunto de salida se establece en TRUE, si la cuadrícula que le pertenece devuelve TRUE. La


salida ahora mantiene este valor, incluso si la cuadrícula vuelve a saltar a FALSE.
Un restablecimiento de salida se establece en FALSE, si la cuadrícula que le pertenece devuelve
FALSE. La salida mantiene su valor, incluso si la cuadrícula vuelve a FALSE.
Con varias ejecuciones del comando, la salida alternará entre set, reset y salida normal.

'Extras' 'Vista'
Utilizando este comando para una POU creada en el FBD-Editor, puede elegir si debe mostrarse en el
LD- (lógica de escalera) o en el FBD-Editor (diagrama de bloques de funciones). Esto es posible tanto
en el modo offline como en el online.

Instancia abierta
Este comando corresponde al comando 'Proyecto' 'Abrir instancia'.
Está disponible en el menú contextual (<F2>) o en el menú 'Extras', si el cursor se coloca en el nombre
de un bloque de función en un editor de texto o si se selecciona el cuadro de bloque de función en un
editor gráfico.
Cortar, copiar, pegar y eliminar en FBD
Los comandos utilizados para 'Cortar', 'Copiar', 'Pegar ' y 'Eliminar' se encuentran en el elemento de menú 'Editar'.
Si se selecciona una cruz de línea (Posición del cursor 5) (consulte 'Posiciones del cursor en FBD'), se cortarán,
eliminarán o copiarán las asignaciones, saltos o DEVOLUCIONES ubicados debajo de la línea cruzada.

Si se selecciona una POU (posición del cursor 3), el objeto seleccionado se cortará, eliminará o
copiará, junto con todas las ramas que dependan de las entradas, con la excepción de la primera rama
(posición más alta).
De lo contrario, se cortará, eliminará o copiará toda la rama situada delante de la posición del cursor.
Después de copiar o cortar, la parte eliminada o copiada se encuentra en el portapapeles y ahora se
puede pegar, como se desee.
Para ello, primero debe seleccionar el punto de pegado. Los puntos de pegado válidos incluyen
entradas y salidas.
Si se ha cargado una POU en el portapapeles (como recordatorio: en este caso, todas las ramas
conectadas, excepto la primera, se encuentran juntas en el portapapeles), la primera entrada se
conecta con la rama antes del punto de pegado.
De lo contrario, toda la rama ubicada frente al punto de pegado será reemplazada por el contenido del
portapapeles.
En cada caso, el último elemento pegado está conectado a la rama situada delante del punto de pegado.
Nota: El siguiente problema se resuelve cortando y pegando: Se inserta un nuevo operador en medio de una red.
La rama ubicada a la derecha del operador ahora está conectada con la primera entrada, pero debe estar
conectada con la segunda entrada. Ahora puede seleccionar la primera entrada y ejecutar el comando 'Editar'
'Cortar'. Después de esto, puede seleccionar la segunda entrada y ejecutar el comando 'Editar' 'Pegar'. De esta
manera, la rama depende de la segunda entrada.

5-34 CoDeSys V2.3


5 - Editores en CoDeSys

El diagrama de bloques de funciones en el modo en línea


En el diagrama de bloques de funciones, los puntos de interrupción solo se pueden establecer en redes. Si se ha
establecido un punto de interrupción en una red, el campo de números de red se mostrará en azul. A continuación,
el procesamiento se detiene frente a la red donde se encuentra el punto de interrupción. En este caso, el campo
de números de red se volverá rojo. Con el paso a paso (un solo paso), puede saltar de una red a otra.

Se muestra el valor actual de cada variable. Excepción: Si la entrada de un bloque de funciones es una
expresión, solo se supervisa la primera variable de la expresión.
Al hacer doble clic en una variable, se abre el cuadro de diálogo para escribir una variable. Aquí es
posible cambiar el valor actual de la variable. En el caso de las variables booleanas, no aparece ningún
cuadro de diálogo; Estas variables están activadas para alternar.
El nuevo valor se volverá rojo y permanecerá sin cambios. Si se da el comando 'En línea' 'Escribir
valores', todas las variables se colocan en la lista seleccionada y se muestran una vez más en negro.
El control de flujo se inicia con el comando 'En línea' 'Control de flujo' Utilizando el control de flujo,
puede ver los valores actuales que se transportan en las redes a través de las líneas de conexión. Si
las líneas de conexión no llevan valores booleanos, el valor se mostrará en un campo especialmente
insertado. Si las líneas llevan valores booleanos, se sombrearán en azul en caso de que lleven TRUE.
De este modo, puede acompañar el flujo de información mientras el PLC está funcionando.
Si coloca el puntero del ratón brevemente encima de una variable, el tipo, la dirección y el comentario
sobre la variable se mostrarán en una información sobre herramientas.

5.4.3 El editor de escaleras


Así es como aparece una POU escrita en el LD en el editor de CoDeSys:

Todos los editores de POU constan de una parte de declaración y un cuerpo. Estos están separados
por un divisor de pantalla.
El editor LD es un editor gráfico. Los comandos más importantes se encuentran en el menú contextual
(botón derecho del ratón o <Ctrl>+<F10>).
Para obtener información sobre los elementos, consulte el Capítulo 2.2.6, Diagrama de escalera (LD).
Tenga en cuenta las posibilidades relativas a los comentarios, la introducción de direcciones y el
aspecto alternativo que ofrece el cuadro de diálogo de opciones (véase el capítulo 5.4.1).

CoDeSys V2.3 5-35


Los Editores Gráficos

Posiciones del cursor en los editores LD


Las siguientes ubicaciones pueden ser posiciones del cursor, en las que el bloque de funciones y el
acceso al programa se pueden manejar como contactos. Las POU con entradas EN y otras POU
conectadas a ellas se tratan de la misma manera que en el diagrama de bloques de funciones. Puede
encontrar información sobre la edición de esta parte de red en el capítulo 5.4.2, Editor FBD.
1. Todos los campos de texto (posibles posiciones del cursor enmarcadas en negro)

2. Cada contacto o bloque de función

3. Cada bobina

4. La línea de conexión entre los contactos y las bobinas.

El diagrama de escalera utiliza los siguientes comandos de menú de forma especial:

Mover elementos o nombres en el LD-Editor


Un elemento (contacto, bobina, bloque de funciones) o simplemente el nombre de un elemento (nombre de variable,
dirección, comentario) se puede mover a una posición diferente dentro de una POU LD mediante "arrastrar y soltar".

Para ello, seleccione el elemento deseado (contacto, bobina, bloque de funciones) y arrástrelo, manteniendo
pulsada la tecla del ratón, lejos de la posición actual. A partir de ese momento, todas las posiciones posibles
dentro de todas las redes de la POU, a las que se puede mover el elemento, se indicarán mediante rectángulos
rellenos de gris.
Mueva el elemento a una de estas posiciones y suelte la tecla del ratón: el elemento se insertará en la
nueva posición.

Sin embargo, si mueve el elemento al nombre (nombre de la variable) de otro elemento, el campo de
nombre se sombreará en verde. Si luego suelta la tecla del mouse, el nombre anterior será
reemplazado por el "arrastrado". Si adicionalmente se muestran la dirección y el comentario (opciones),
la copia también se aplicará a ellos.

5-36 CoDeSys V2.3


5 - Editores en CoDeSys

'Insertar' 'Red (antes)' en LD

Símbolo:
Este comando inserta una red en el editor de escalera. Si ya hay redes, la nueva se insertará antes de
la actualmente enfocada.

'Insertar' 'Red (después)' en LD

Símbolo:
Este comando inserta una red en el editor de escalera. Si ya hay redes, la nueva se insertará después
de la enfocada actualmente.

'Insertar' 'Contacto' en LD

Símbolo: Atajo: <Ctrl>+<K>


Utilice este comando en el editor LD para insertar un contacto delante de la ubicación marcada en la
red.
Si la posición marcada es una bobina o la línea de conexión entre los contactos y las bobinas, entonces
el nuevo contacto se conectará en serie a la conexión de contacto anterior.
El contacto está preestablecido con el texto "???". Puede hacer clic en este texto y cambiarlo a la
variable deseada o a la constante deseada. Para ello, también puede utilizar el Asistente de entrada.
Tenga en cuenta la posibilidad de introducir una dirección en lugar del nombre de la variable, si está
configurada adecuadamente en las 'Opciones de bloque de funciones y diagrama de escalera' (véase
el Capítulo 5.4.1: Comentarios, saltos de línea, 'Extras' 'Opciones').
Considere también la opción Redes con saltos de línea, que también puede activar en las Opciones de
diagrama de escalera.

'Insertar' 'Contacto (negado)' en LD

Símbolo: Atajo: <Ctrl> + <G>


Este comando inserta un contacto negado. Lo mismo ocurre con los comandos 'Insertar', 'Contacto' y
'Extras', 'Negate', que en combinación también podrían usarse para insertar un contacto negado.

'Insertar' 'Contacto paralelo' en LD

Símbolo: Atajo: <Ctrl>+<R>


Utilice este comando en el editor LD para insertar un contacto paralelo a la posición marcada en la red.
Si la posición marcada es una bobina o la conexión entre los contactos y las bobinas, entonces el
nuevo contacto se conectará en paralelo a toda la conexión de contacto anterior.
El contacto está preestablecido con el texto "???". Puede hacer clic en este texto y cambiarlo a la
variable deseada o a la constante deseada. Para ello, también puede utilizar el Asistente de entrada.
Para la posibilidad de introducir direcciones, utilizar saltos de línea en los nombres de las variables y
utilizar comentarios por contacto, consulte la descripción de las 'Opciones de bloque de funciones y
diagrama de escalera' (consulte el Capítulo 5.4.1: Comentarios, saltos de línea, 'Extras', 'Opciones').

CoDeSys V2.3 5-37


Los Editores Gráficos

'Insertar' 'Contacto paralelo (negado)' en LD

Símbolo: Atajo: <Ctrl> + <D>


Este comando inserta un contacto paralelo negado. Lo mismo ocurre con los comandos 'Insertar',
'Contacto paralelo' y 'Extras', 'Negate', que en combinación también podrían usarse para insertar un
contacto paralelo negado.

'Insertar' 'Bobina' en LD

Símbolo: Atajo: <Ctrl>+<L>


Puede utilizar este comando en el editor LD para insertar una bobina en paralelo a las bobinas anteriores.
Si la posición marcada es una conexión entre los contactos y las bobinas, entonces la nueva bobina se insertará
como la última. Si la posición marcada es una bobina, la nueva bobina se insertará directamente encima de ella.

A la bobina se le da el texto "???" como configuración predeterminada. Puede hacer clic en este texto y
cambiarlo a la variable deseada. Para ello, también puede utilizar el Asistente de entrada.
Para la posibilidad de introducir direcciones, utilizar saltos de línea en los nombres de las variables y
utilizar comentarios por contacto (bobina, bloque de funciones), consulte la descripción de las
'Opciones de bloque de funciones y diagrama de escalera' (consulte el Capítulo 5.4.1: Comentarios,
saltos de línea, 'Extras', 'Opciones').
'Insertar' ''Set' bobina' en LD

Símbolo: Atajo: <Ctrl> + <I>


Este comando inserta una bobina establecida. Lo mismo ocurre con los comandos 'Insertar', 'Bobina' y
'Extras' 'Set/Reset', que en combinación también podrían usarse para obtener una bobina establecida.

'Insertar' 'Reset' bobina' en LD

Símbolo:
Este comando inserta una bobina de reinicio. Lo mismo ocurre con los comandos 'Insertar' 'Bobina' y
'Extras' 'Set/Reset', que en combinación también podrían usarse para obtener una bobina de reinicio.

'Insertar' 'Bloque de funciones' en LD

Símbolo: Atajo: <Ctrl>+<B>


Utilice este comando para insertar un operador, un bloque de función, una función o un programa como POU. Para
ello, se debe marcar la conexión entre los contactos y las bobinas, o una bobina. Al principio, el nuevo POU tiene
la designación AND. Si lo deseas, puedes cambiar esta designación por otra. Para ello, también puede utilizar el
Asistente de entrada. Están disponibles tanto las POU estándar como las autodefinidas.

La primera entrada a la POU se coloca en la conexión de entrada, la primera salida en la conexión de


salida; por lo tanto, estas variables deben ser definitivamente de tipo BOOL. Todas las demás entradas
y salidas de la POU se rellenan con el texto "???". Estas entradas anteriores se pueden cambiar a
otras constantes, variables o direcciones. Para ello, también puede utilizar el Asistente de entrada.
Para la posibilidad de introducir direcciones, utilizar saltos de línea en los nombres de las variables y
utilizar comentarios por contacto (bobina, bloque de funciones), consulte la descripción de las
'Opciones de bloque de funciones y diagrama de escalera' (consulte el Capítulo 5.4.1: Comentarios,
saltos de línea, 'Extras', 'Opciones').
POUs con entradas EN en LD
Si desea utilizar su red LD como PLC para llamar a otras POU, debe fusionar una POU con una
entrada EN. Dicha POU está conectada en paralelo a las bobinas. Más allá de una POU de este tipo,
puede desarrollar aún más la red, como en el diagrama de bloques de funciones. Puede encontrar los
comandos de inserción en una EN POU en la opción de menú 'Insertar' 'Insertar en bloques'.
Un operador, un bloque de funciones, un programa o una función con entrada EN funciona de la misma
manera que la POU correspondiente en el diagrama de bloques de funciones, excepto que su

5-38 CoDeSys V2.3


5 - Editores en CoDeSys

ejecución se controla en la entrada EN. Esta entrada se anexa en la línea de conexión entre las
bobinas y los contactos. Si esta conexión lleva la información "On", se evaluará la POU.
Si una POU ya se ha creado una vez con la entrada EN, esta POU se puede utilizar para crear una red.
Esto significa que los datos de los operadores, funciones y bloques de funciones habituales pueden
fluir en una POU EN y una POU EN puede transportar datos a dichas POU habituales.
Por lo tanto, si desea programar una red en el editor LD, como en FBD, solo necesita insertar primero
un operador EN en una nueva red. Posteriormente, a partir de esta POU, puede continuar
construyendo desde su red, como en el editor FBD. Una red así formada funcionará como la red
correspondiente en FBD.

'Insertar' 'Caja con EN' en LD

Símbolo:
Utilice este comando para insertar un bloque de función, un operador, una función o un programa con
entrada EN en una red LD.
La posición marcada debe ser la conexión entre los contactos y las bobinas (Posición del cursor 4) o
una bobina (Posición del cursor 3). La nueva POU se inserta en paralelo a las bobinas y debajo de
ellas; contiene inicialmente la designación "Y". Si lo deseas, puedes cambiar esta designación por otra.
Para ello, también puede utilizar el Asistente de entrada.

'Insertar' 'Insertar en bloques' en LD


Con este comando se pueden insertar elementos adicionales en una POU que ya se ha insertado (también
una POU con entrada EN). Los comandos debajo de este elemento de menú se pueden ejecutar en las
mismas posiciones del cursor que los comandos correspondientes en el diagrama de bloques de funciones.

Con Input puede agregar una nueva entrada a la POU.


Con Salida, puede agregar una nueva salida a la POU.
Con POU, se inserta una nueva POU. El procedimiento es similar al descrito en «Insertar» «POU».
Con Asignar puede insertar una asignación en una variable. Al principio, esto se muestra mediante
tres signos de interrogación "???", que se editan y se sustituyen por la variable deseada. Para ello, se
dispone de asistencia en materia de entradas.

'Insertar' 'Detección de flanco ascendente' en LD

Símbolo:
Este comando inserta un bloque de función R_TRIG, que sirve para detectar un flanco ascendente
(FALSO -> VERDADERO) en la señal entrante. Lo mismo ocurre con el comando 'Insertar' 'Bloque de
funciones', que se puede utilizar para insertar cualquier bloque de funciones disponible.

'Insertar' 'Detección de flancos descendentes' en LD

Símbolo:
Este comando inserta un bloque de función F_TRIG, que sirve para detectar un flanco ascendente
(TRUE -> FALSE) en la señal entrante. Lo mismo ocurre con el comando 'Insertar' 'Bloque de
funciones', que se puede utilizar para insertar cualquier bloque de funciones disponible.

'Insertar' 'Temporizador (TON)' en LD

Símbolo:
Este comando inserta un bloque de función de temporizador de tipo TON. Esto sirve para obtener un
retardo de encendido (transmisión retardada de la señal entrante). Para la inserción ocurre lo mismo
que para el comando 'Insertar' 'Bloque de funciones', que también se puede usar para insertar un
módulo TON.

CoDeSys V2.3 5-39


Los Editores Gráficos

'Insertar' 'Saltar' en LD
Con este comando se puede insertar un salto paralelo en el editor LD seleccionado, en paralelo, al final
de las bobinas anteriores. Si la línea entrante entrega el valor "On", entonces el salto se ejecutará a la
etiqueta indicada.
La posición marcada debe ser la conexión entre los contactos y las bobinas o una bobina.
El salto está presente con el texto "???". Puede hacer clic en este texto y realizar un cambio en la
etiqueta deseada.

'Insertar' 'Retorno' en LD
En el editor LD, puede utilizar este comando para insertar una instrucción Return en paralelo al final de
las bobinas anteriores. Si la línea entrante entrega el valor "On", se interrumpe el procesamiento de la
POU en esta red.
La posición marcada debe ser la conexión entre los contactos y las bobinas o una bobina.

'Extras' 'Pegar después' en LD


Utilice este comando en el editor LD para pegar el contenido del portapapeles como contacto en serie
debajo de la posición marcada. Este comando solo es posible si el contenido del portapapeles y la
posición marcada son redes compuestas por contactos.

'Extras' 'Pegar abajo' en LD


Utilice este comando en el editor LD para insertar el contenido del portapapeles como contacto paralelo
debajo de la posición marcada. Este comando solo es posible si el contenido del portapapeles y la
posición marcada son redes compuestas por contactos.

'Extras' 'Pegar arriba' en LD


Utilice este comando en el editor LD para insertar el contenido del portapapeles como contacto paralelo
por encima de la posición marcada. Este comando solo es posible si el contenido del portapapeles y la
posición marcada son redes compuestas por contactos.

'Extras' 'Negar' en LD

Símbolo: Atajo: <Ctrl>+<N>


Utilice este comando para negar un contacto, una bobina, una instrucción de salto o retorno, o una
entrada o salida de POU EN en la posición actual del cursor.
Entre los paréntesis de la bobina o entre las líneas rectas del contacto, aparecerá una barra diagonal
((/) o |/|). Si hay saltos, retornos o entradas o salidas de EN POUs, aparecerá un pequeño círculo en la
conexión, al igual que en el editor FBD.
La bobina ahora escribe el valor negado de la conexión de entrada en la variable booleana respectiva.
Justo en este momento, un contacto negado cambia el estado de la entrada a la salida, si la variable
booleana respectiva lleva el valor FALSE.
Si se marca un salto o un regreso, se negará la entrada de este salto o retorno.
Una negación puede ser cancelada a través de una nueva negación.

'Extras' 'Set/Reset' en LD

Símbolo:
Si ejecuta este comando en una bobina, recibirá un Set Coil. Una bobina de este tipo nunca
sobrescribe el valor TRUE en la variable booleana respectiva. Esto significa que una vez que haya
establecido el valor de esta variable en TRUE, siempre permanecerá en TRUE. Una bobina fija se
designa con una "S" en el símbolo de la bobina.
Si ejecuta este comando una vez más, se le dará una bobina de reinicio. Una bobina de este tipo nunca
sobrescribe el valor FALSE en la variable booleana respectiva. Esto significa que una vez que haya

5-40 CoDeSys V2.3


5 - Editores en CoDeSys

establecido el valor de esta variable en FALSE, siempre permanecerá en FALSE. Una bobina de
reinicio se designa con una "R" en el símbolo de la bobina.
Si ejecuta este comando repetidamente, la bobina alternará entre set, reset y bobina normal.

El diagrama de escalera en el modo en línea


En el modo Online, los contactos y bobinas del diagrama de escalera que están en estado "Encendido" son
de color azul. Del mismo modo, todas las líneas sobre las que se lleva el "On" también son de color azul. En
las entradas y salidas de los bloques de función, se indican los valores de las variables correspondientes.
Los puntos de interrupción solo se pueden establecer en redes; Mediante el paso a paso, puede saltar de una red a otra.

Si coloca el puntero del ratón brevemente encima de una variable, el tipo, la dirección y el comentario
sobre la variable se mostrarán en una información sobre herramientas.

5.4.4 El editor de gráficos de funciones secuenciales


Así es como aparece una POU escrita en el SFC en el editor de CoDeSys:

Todos los editores de POU constan de una parte de declaración y un cuerpo. Estos están separados
por un divisor de pantalla.
El editor de gráficos de funciones secuenciales es un editor gráfico. Los comandos más importantes se encuentran
en el menú contextual (botón derecho del ratón o <Ctrl><F10>). La información sobre herramientas muestra tanto
en el modo sin conexión como en el modo en línea y en el estado ampliado los nombres completos o las
expresiones de pasos, transiciones, saltos, etiquetas de salto, calificadores o acciones asociadas.

Para obtener información sobre el gráfico de funciones secuenciales, consulte el Capítulo 2.2.3, 'Gráfico de funciones secuenciales'.

El editor del Diagrama de Funciones Secuenciales debe estar de acuerdo con las particularidades de la
SFC. En referencia a estos, los siguientes elementos del menú serán de utilidad.

Marcaje de bloques en el SFC


Un bloque marcado es un conjunto de elementos SFC que están encerrados en un rectángulo punteado.
Puede seleccionar un elemento (un paso, una transición o un salto) apuntando con el ratón sobre este
elemento y pulsando el botón izquierdo del ratón, o puede utilizar las teclas de flecha. Para marcar un
grupo de varios elementos, presione <Mayús> para un bloque ya marcado y seleccione el elemento en

CoDeSys V2.3 5-41


Los Editores Gráficos

la esquina inferior izquierda o derecha del grupo. La selección resultante es el grupo cohesivo más
pequeño de elementos que incluye ambos elementos.
¡Tenga en cuenta que un paso solo se puede eliminar junto con la transición anterior o la siguiente!

'Insertar' 'Paso de transición (antes)'

Símbolo: Atajo: <Ctrl>+<T>


Este comando inserta un paso en el editor SFC seguido de una transición delante del bloque marcado.
Puede seleccionar y reemplazar el nombre de paso especificado automáticamente "Step_<x>" por otra
cadena, también el nombre de transición.

Nota: Al cambiar el nombre de un paso, tenga en cuenta que no se puede agregar ningún comentario. Ejemplo:
¡"Step_xy (* contador *)" no está permitido!

'Insertar' 'Paso de transición (después)'

Símbolo: Atajo: <Ctrl>+<E>


Este comando inserta un paso en el editor SFC seguido de una transición después de la primera
transición en el bloque marcado. Con respecto al nombre del paso y el nombre de la transición,
consulte arriba 'Insertar' 'Transición de paso (antes)'.

Eliminar paso y transición


Un paso solo se puede eliminar junto con la transición anterior o posterior. Para ello, coloque un marco
de selección alrededor del paso y la transición y elija el comando 'Editar', 'Eliminar' o presione la tecla
<Supr>.

'Insertar' 'Rama alternativa (derecha)'

Símbolo: Atajo: <Ctrl>+<A>


Este comando inserta una rama alternativa en el editor SFC como una rama derecha del bloque
marcado. Para ello, el bloque marcado debe comenzar y terminar con una transición. A continuación, la
nueva rama se compone de una transición.

'Insertar' 'Rama alternativa (izquierda)'

Símbolo:
Este comando inserta una rama alternativa en el editor SFC como la rama izquierda del bloque
marcado. Para ello, el bloque marcado debe comenzar y terminar con una transición. A continuación, la
nueva rama se compone de una transición.

'Insertar' 'Rama paralela (derecha)'

Símbolo: Atajo: <Ctrl>+<L>


Este comando inserta una rama paralela en el editor SFC como la rama derecha del bloque marcado.
Para ello, el bloque marcado debe comenzar y terminar con un paso. La nueva rama se compone
entonces de un paso. Para permitir saltos a las ramas paralelas que se han creado, estas deben estar
provistas de una etiqueta de salto.

5-42 CoDeSys V2.3


5 - Editores en CoDeSys

'Insertar' 'Rama paralela (izquierda)'

Símbolo:
'Este comando inserta una rama paralela en el editor SFC como la rama izquierda del bloque marcado.
Para ello, el bloque marcado debe comenzar y terminar con un paso. La nueva rama se compone
entonces de un paso. Para permitir saltos a las ramas paralelas que se han creado, estas deben estar
provistas de una etiqueta de salto (ver 'Extras' 'Añadir etiqueta a la rama paralela').

'Insertar' 'Saltar'
'Este comando inserta un salto en el editor SFC al final de la rama, a la que pertenece el bloque
marcado. Para ello, la rama debe ser una rama alternativa.
La cadena de texto insertada 'Step' en el salto insertado se puede seleccionar y reemplazar por el
nombre del paso o la etiqueta de salto de una rama paralela a la que se va a saltar.
Con respecto al nombre del paso, consulte arriba 'Insertar' 'Transición de paso (antes)'.

'Insertar' 'Transición-Salto'

Símbolo:
Este comando inserta una transición en el editor SFC, seguida de un salto al final de la rama
seleccionada. Para ello, la rama debe ser una rama paralela.
La cadena de texto insertada 'Step' en el salto insertado se puede seleccionar y reemplazar por el
nombre del paso o la etiqueta de salto de una rama paralela a la que se va a saltar.
Con respecto al nombre del paso y el nombre de la transición, consulte arriba 'Insertar' 'Transición de paso (antes)'.

'Insertar' 'Agregar acción de entrada'


Con este comando puede agregar una acción de entrada a un paso. Una acción de entrada solo se ejecuta una vez,
justo después de que el paso se haya activado. La acción de entrada se puede implementar en el idioma que elijas.

A paso con una acción de entrada se designa con una "E" en la esquina inferior izquierda.

'Insertar' 'Agregar acción de salida'


Con este comando puede agregar una acción de salida a un paso. Una acción de salida solo se ejecuta una
vez, antes de que se desactive el paso. La acción de salida se puede implementar en el idioma que elija.
A paso con una acción de salida se designa con una "X" en la esquina inferior derecha.

'Extras' 'Pegar rama paralela (derecha)'


Este comando pega el contenido del portapapeles como una rama paralela derecha del bloque
marcado. Para ello, el bloque marcado debe comenzar y terminar con un paso. El contenido del
portapapeles debe ser, asimismo, un bloque SFC que comience y termine con un paso.

'Extras' 'Añadir etiqueta a la rama paralela'


Para proporcionar una bifurcación paralela recién insertada con una etiqueta de salto, se debe marcar
la transición que se produce antes de la bifurcación paralela y se debe ejecutar el comando 'Agregar
etiqueta a la bifurcación paralela'. En ese momento, a la rama paralela se le asignará un nombre
estándar que consta de "Paralelo" y un número de serie anexado, que se puede editar de acuerdo con
las reglas para los nombres de identificador. En el ejemplo siguiente, "Paralelo" se reemplazó por
"Par_1_2" y el salto a la transición "Fin" se dirigió a esta etiqueta de salto.

CoDeSys V2.3 5-43


Los Editores Gráficos

Eliminar una etiqueta


Una etiqueta de salto se puede eliminar eliminando el nombre de la etiqueta.

'Extras' 'Pegar después'


Este comando pega el bloque SFC en el portapapeles después del primer paso o la primera transición
del bloque marcado. (La copia normal lo pega delante del bloque marcado). Esto se ejecutará ahora, si
la estructura SFC resultante es correcta, de acuerdo con las normas del lenguaje.

'Extras' 'Zoom Acción/Transición'


Atajo: <Alt>+<Intro>
La acción del primer paso del bloque marcado o el cuerpo de transición de la primera transición del
bloque de mercado se carga en el editor en el idioma respectivo en el que se ha escrito. Si la acción o
el cuerpo de transición están vacíos, se debe seleccionar el idioma en el que se ha escrito.

Tenga en cuenta que la condición de transición que se escribe dentro de la ventana del editor tendrá
prioridad sobre una condición que podría escribirse directamente en la marca de transición. Ejemplo: Si aquí
i>100, entonces la condición de transición será FALSE, ¡aunque se haya ingresado TRUE en la marca!

'Extras' 'Acción/Transición Clara'


Con este comando se pueden borrar las acciones del primer paso del bloque marcado o del cuerpo de
las transiciones de la primera transición.
Si, durante un paso, implementa solo la acción, la acción de entrada o la acción de salida, el comando
eliminará la misma. De lo contrario, aparecerá un cuadro de diálogo y podrá seleccionar la acción o
acciones que desea eliminar.
Si el cursor se encuentra en la acción de un paso IEC, solo se eliminará esta asociación. Si se
selecciona un paso IEC con una acción asociada, se eliminará esta asociación. Durante un paso IEC
con varias acciones, aparecerá un cuadro de diálogo de selección.

5-44 CoDeSys V2.3


5 - Editores en CoDeSys

'Extras' 'Atributos de paso'


Con este comando se puede abrir un cuadro de diálogo en el que se pueden editar los atributos del
paso marcado.
Cuadro de diálogo para editar atributos de paso

Puede aprovechar tres entradas diferentes en el cuadro de diálogo de atributos de paso. En Tiempo
mínimo, especifique el período de tiempo mínimo que debe tardar el procesamiento de este paso. En
Tiempo máximo, especifique el tiempo máximo que debe tardar el procesamiento de este paso. Tenga
en cuenta que las entradas son del tipo TIME, por lo que utiliza una constante TIME (es decir, T#3s) o
una variable del tipo TIME.
En Comentario , puede insertar un comentario en el paso. En el cuadro de diálogo "Opciones de
diagrama de funciones secuenciales" que se abre en "Extras" "Opciones", se puede definir si se
muestran los comentarios, el ajuste de tiempo o nada para los pasos en el editor SFC. A la derecha,
junto al paso, aparecerá el comentario o la configuración de tiempo o ninguno de ambos.
Aquellos atributos que no se muestran debido a la configuración de las opciones, pueden, además del
nombre del paso, mostrarse en una información sobre herramientas, que aparece cuando el cursor se
coloca en la esquina superior o inferior derecha del cuadro de pasos.
Si se excede el tiempo máximo, se establecen indicadores SFC que el usuario puede consultar.

En el ejemplo se muestra un paso cuya ejecución debe durar al menos dos y, como máximo, diez
segundos. En el modo Online, además de estos dos tiempos, hay una visualización de cuánto tiempo
ha estado activo el paso.

'Extras' 'Resumen del tiempo'


Con este comando puedes abrir una ventana en la que puedes editar la configuración de tiempo de tus pasos SFC.
En la vista general de límites de tiempo, se muestran todos los pasos de su POU SFC. Si ha introducido un
límite de tiempo para un paso, el límite de tiempo se muestra a la derecha del paso (primero, el límite inferior,
luego el límite superior). También puede editar los límites de tiempo. Para ello, haga clic en el paso deseado
en la vista general. El nombre del paso se muestra a continuación en la ventana. Vaya al campo Tiempo
mínimo o Tiempo máximo e introduzca allí el límite de tiempo deseado. Si cierra la ventana con OK,
A continuación, se almacenarán todos los cambios.

CoDeSys V2.3 5-45


Los Editores Gráficos

Descripción general de los límites de tiempo para una POU SFC

En el ejemplo, los pasos 2 y 6 tienen un límite de tiempo. Shift1 dura al menos dos y, como máximo,
diez segundos. Shift2 dura al menos siete y, como máximo, ocho segundos.

'Extras' 'Opciones'
Con este comando se abre un cuadro de diálogo en el que se pueden configurar diferentes opciones para la POU SFC.
En Altura del paso, puede introducir la altura de las líneas que puede tener un paso SFC en el editor
SFC. 4 es la configuración estándar aquí. En Ancho de paso, puede especificar cuántas columnas
debe tener un escalón. 6 es la configuración estándar aquí.
También puede preestablecer la Visualización en el paso, es decir, cuál de los atributos, definidos como
'Extras' 'Atributos del paso' debe mostrarse junto al paso. Elija Comentario, Límites de tiempo o Nada:
• Si se establece "Nada", el comentario definido y los límites de tiempo se pueden mostrar en una información sobre
herramientas, que aparece cuando se coloca el cursor en la esquina inferior derecha del cuadro de pasos.

• Si se establece "Comentario", el comentario definido y los límites de tiempo se pueden mostrar en una información
sobre herramientas, que aparece cuando se coloca el cursor en la esquina superior derecha del cuadro de pasos.

• Si se establece "Límites de tiempo", el comentario definido y los límites de tiempo se pueden mostrar en una
información sobre herramientas, que aparece cuando se coloca el cursor en la esquina inferior derecha del cuadro
de pasos.
Cuadro de diálogo para las opciones del gráfico de funciones secuenciales

5-46 CoDeSys V2.3


5 - Editores en CoDeSys

'Extras' 'Acción asociada'


Con este comando, las acciones y las variables booleanas se pueden asociar con pasos IEC.
A la derecha y junto al paso IEC, se adjunta un cuadro dividido adicional para la asociación de una
acción. Está preestablecido en el campo izquierdo con el calificador "N" y el nombre "Acción". Ambos
ajustes preestablecidos se pueden cambiar. Para ello, puede utilizar el Asistente de entrada.
Se puede asignar un máximo de nueve acciones a un paso IEC.
Las nuevas acciones para los pasos IEC se crean en el Organizador de objetos para una POU SFC
con el comando 'Proyecto' 'Agregar acción'.

'Extras' 'Usar IEC-Steps'

Símbolo:
Si este comando está activado (indicado por una marca de verificación delante del elemento de menú y
un símbolo impreso en la barra de herramientas), se insertarán pasos IEC en lugar de los pasos
simplificados al insertar transiciones de pasos y bifurcaciones paralelas.
Si esta opción está activada, el paso Init se establece como un paso IEC al crear una nueva POU SFC.
Esta configuración se guarda en el archivo "CoDeSys.ini" y se restaura cuando CoDeSys se inicia de nuevo.

Gráfico de funciones secuenciales en modo en línea


Con el editor de gráficos de funciones secuenciales en modo en línea, los pasos actualmente activos
se mostrarán en azul. Si lo ha configurado en 'Extras' 'Opciones', la gestión del tiempo se muestra junto
a los pasos. Debajo de los límites inferior y superior que haya establecido, aparecerá un tercer
indicador de tiempo desde el que podrá leer cuánto tiempo ha estado activo el paso.

Gráfico de funciones secuenciales con un paso activo (Mayús1) y un punto de interrupción (Paso 10)

CoDeSys V2.3 5-47


Los Editores Gráficos

En la imagen de arriba, el paso representado ya ha estado activo 8 segundos y 410 milisegundos. Sin
embargo, el paso debe estar activo durante al menos 7 minutos antes de que se abandone el paso.
Con ' En línea' 'Alternar punto de interrupción' se puede establecer un punto de interrupción en un paso o
en una acción en las ubicaciones permitidas por el lenguaje en uso. A continuación, el procesamiento se
detiene antes de la ejecución de este paso o antes de la ubicación de la acción en el programa. Los pasos o
las ubicaciones del programa en los que se establece un punto de interrupción están marcados en azul claro.

Si hay varios pasos activos en una rama paralela, el paso activo cuya acción se procesará a
continuación se muestra en rojo.
Si se han utilizado los pasos IEC, todas las acciones activas en el modo en línea se mostrarán en azul.
Con el comando ' En línea' 'Paso a paso' se pasa siempre al siguiente paso en el que se ejecuta la
acción. Si la ubicación actual es:
a paso en el procesamiento lineal de una POU o un paso en la rama paralela más a la derecha de una POU, la
ejecución devuelve desde la POU SFC al autor de la llamada. Si el POU es el programa principal, comienza el
siguiente ciclo.
a paso en una bifurcación paralela que no sea la más a la derecha, la ejecución salta al paso activo en
la siguiente bifurcación paralela.
la última ubicación del punto de interrupción dentro de una acción 3S, la ejecución salta al llamador del SFC.
la última ubicación del punto de interrupción dentro de una acción IEC, la ejecución salta al llamador del SFC.
La última posición del punto de interrupción dentro de una acción de entrada o una acción de salida, la
ejecución salta al siguiente paso activo.
Con 'Online', 'Step in', incluso se pueden realizar acciones. Si se va a saltar a una acción de entrada,
salida o IEC, se debe establecer un punto de interrupción allí. Dentro de las acciones, toda la
funcionalidad de depuración del editor correspondiente está disponible para el usuario.
Si apoya el cursor del ratón durante un breve periodo de tiempo sobre una variable en el editor de declaraciones,
el tipo, la dirección y el comentario de la variable se mostrarán en una información sobre herramientas

Tenga en cuenta: Si cambia el nombre de un paso y realiza un cambio en línea mientras este paso está activo, el
programa se detendrá en estado indefinido.

Orden de procesamiento de los elementos en una secuencia:


1. En primer lugar, se restablecen todos los indicadores de bloque de control de acción en las acciones IEC que se
utilizan en esta secuencia (no, sin embargo, los indicadores de las acciones IEC que se llaman dentro de las acciones).
2. Todos los pasos se prueban en el orden que asumen en la secuencia (de arriba a abajo y de izquierda a
derecha) para determinar si se proporciona el requisito para la ejecución de la acción de salida, y esto se
ejecuta si ese es el caso.
3. Todos los pasos se prueban en el orden que asumen en la secuencia para determinar si se proporciona el
requisito para la acción de entrada, y esto se ejecuta si ese es el caso.
4. Para todos los pasos, se realiza lo siguiente en el orden que asumen en la secuencia:
- Si corresponde, el tiempo transcurrido se copia en la variable de paso correspondiente.
- Si corresponde, se prueba cualquier tiempo de espera y los indicadores de error SFC se atienden según sea necesario.
- En el caso de los pasos que no son IEC, ahora se ejecuta la acción correspondiente.
5. Las acciones IEC que se utilizan en la secuencia se ejecutan en orden alfabético. Esto se hace en dos pasadas a
través de la lista de acciones. En la primera pasada, se ejecutan todas las acciones IEC que están desactivadas en el
ciclo actual. En la segunda pasada, se ejecutan todas las acciones IEC que están activas en el ciclo actual.
6. Se evalúan las transiciones: Si el paso del ciclo actual estaba activo y la siguiente transición devuelve TRUE
(y si corresponde, el tiempo mínimo activo ya ha transcurrido), se activa el siguiente paso.

En relación con la ejecución de las acciones, cabe señalar lo siguiente:


Puede ocurrir que una acción se lleve a cabo varias veces en un ciclo porque está asociada a múltiples
secuencias. (Por ejemplo, un SFC podría tener dos acciones IEC A y B, que se implementan en SFC, y
que ambas llaman a la acción C de IEC; luego en IEC las acciones A y B pueden estar activas en el
mismo ciclo y, además, en ambas acciones IEC la acción C puede estar activa; entonces C se llamaría
dos veces).
Si la misma acción IEC se utiliza simultáneamente en diferentes niveles de un SFC, esto podría
provocar efectos no deseados debido a la secuencia de procesamiento descrita anteriormente. Por
este motivo, en este caso se emite un mensaje de error. Es posible que surja durante el procesamiento
de proyectos creados con versiones anteriores de CoDeSys.

5-48 CoDeSys V2.3


5 - Editores en CoDeSys

Nota: En las expresiones de supervisión (por ejemplo, A Y B) en las transiciones, solo se muestra el "Valor total" de la
transición.

5.4.5 El Editor de Gráficos de Funciones Continuas (CFC)


Parece un bloque que se ha producido utilizando el editor de gráficos de funciones continuas (CFC):

No se utiliza ninguna cuadrícula de ajuste para el editor de gráficos de funciones continuas, por lo que los
elementos se pueden colocar en cualquier lugar. Los elementos de la lista de procesamiento secuencial
incluyen cuadros, entrada, salida, salto, etiqueta, retorno y comentarios. Las entradas y salidas de estos
elementos se pueden conectar arrastrando una conexión con el ratón. La línea de conexión se dibujará
automáticamente. La línea de conexión más corta posible se traza teniendo en cuenta las conexiones
existentes. Las líneas de conexión se ajustan automáticamente cuando se mueven los elementos. Si se da el
caso de que no se pueda trazar una línea de conexión simplemente por falta de espacio, se mostrará una
línea roja entre la entrada y la salida asociada. Esta línea se convertirá en una línea de conexión tan pronto
como haya espacio disponible.
Una ventaja del gráfico de funciones continuo en comparación con el editor de diagramas de bloques de
funciones habitual FBD es el hecho de que las rutas de retroalimentación se pueden insertar directamente.
Los comandos más importantes se pueden encontrar en el menú contextual

Posiciones del cursor en el CFC


Cada texto es una posible posición del cursor. El texto seleccionado está sombreado en azul y se puede modificar.
En todos los demás casos, la posición actual del cursor se muestra mediante un rectángulo formado por
puntos. A continuación se muestra una lista de todas las posiciones posibles del cursor con ejemplos:
1. Troncales de los elementos caja, entrada, salida, salto, etiqueta, retorno y comentarios.

CoDeSys V2.3 5-49


Los Editores Gráficos

2. Campos de texto para el cuadro de elementos, entrada, salida, salto, etiqueta, retorno y comentarios,
así como campos de texto para el marcador de conexión

3. Entradas para la caja de elementos, entrada, salida, salto y retorno

4. Salidas para el cuadro de elementos y entrada:

«Insertar» «Caja» en el CFC

Símbolo: Atajo: <Ctrl>+<B>


Este comando se puede utilizar para pegar operadores, funciones, bloques de funciones y programas
En primer lugar, siempre se inserta un operador "Y". Esto se puede convertir mediante la selección y
sobrescritura del texto en cualquier otro operador, en cada función, en cada bloque de función y en
cada programa. La asistencia de entrada sirve para seleccionar el bloque deseado de la lista de
bloques compatibles. Si el nuevo bloque tiene otro número mínimo de entradas, estas se adjuntarán. Si
el nuevo bloque tiene un número menor de entradas, se eliminarán las últimas.

'Insertar' 'Entrada' en CFC

Símbolo: Atajo: <Ctrl> + <E>


Este comando se utiliza para insertar una entrada. El texto ofrecido "???" puede ser seleccionado y
reemplazado por una variable o constante. La asistencia de entrada también se puede utilizar aquí.

'Insertar' 'Salida' en CFC

Símbolo: Atajo: <Ctrl>+<A>


Este comando se utiliza para insertar una salida. El texto ofrecido "???" puede ser seleccionado y
reemplazado por una variable. La asistencia de entrada también se puede utilizar aquí. A esta variable
se le asigna el valor asociado a la entrada de la salida.

'Insertar' 'Saltar' en CFC

Símbolo: Atajo: <Ctrl>+<J>

5-50 CoDeSys V2.3


5 - Editores en CoDeSys

Este comando se utiliza para insertar un salto. El texto ofrecido "???" puede ser seleccionado y
reemplazado por la etiqueta de salto a la que debe saltar el programa.
La etiqueta de salto se inserta mediante el comando 'Insertar 'Etiqueta'.

'Insertar' 'Etiqueta' en CFC

Símbolo: Atajo: <Ctrl>+<L>


Este comando se utiliza para insertar una etiqueta. El texto ofrecido "???" puede ser seleccionado y reemplazado por la
etiqueta de salto. En el modo Online, se inserta automáticamente una etiqueta de RETORNO para marcar el final de la
POU.
El salto se inserta mediante el comando ' Insertar 'Saltar'.

'Insertar' 'Devolver' en CFC

Símbolo: Atajo: <Ctrl> + <R>


Este comando se utiliza para insertar un comando RETURN. Tenga en cuenta que en el modo en línea
se inserta automáticamente una etiqueta de salto con el nombre RETURN en la primera columna y
después del último elemento del editor; en el paso a paso, se salta automáticamente antes de que la
ejecución salga de la POU.
'Insertar' 'Comentario' en CFC

Símbolo: Atajo: <Ctrl> + <K>


Este comando se utiliza para insertar un comentario.
Obtienes una nueva línea dentro del comentario con <Ctrl> + <Enter>.

'Insertar' 'Entrada de caja' en CFC


Atajo: <Ctrl> + <U>
Este comando se utiliza para insertar una entrada en un cuadro. El número de entradas es variable
para muchos operadores (por ejemplo, ADD puede tener dos o más entradas).
Para aumentar el número de entradas para un operador de este tipo en uno, se debe seleccionar la propia caja

Insertar' 'In-Pin' en CFC, 'Insertar' 'Out-Pin'

Símbolo:
Estos comandos están disponibles tan pronto como se abre una macro para editarla. Se utilizan para
insertar pines de entrada o salida como entradas y salidas de la macro. Se diferencian de las entradas
y salidas normales de las POU por la forma en que se muestran y en que no tienen índice de posición.

'Extras' 'Negar' en CFC

Símbolo: Atajo: <Ctrl> + <N>


Este comando se utiliza para negar entradas, salidas, saltos o comandos RETURN. El símbolo de la
negación es una pequeña cruz en la conexión.
La entrada del elemento bloque, salida, salto o retorno se niega cuando se selecciona.
La salida del bloque de elementos o de la entrada se anula cuando se selecciona (posición 4 del cursor).
Una negación se puede eliminar negando de nuevo.

'Extras' 'Set/Reset' en CFC

Símbolo: Atajo: <Ctrl> + <T>


Este comando solo se puede utilizar para las entradas seleccionadas de la salida del elemento.
El símbolo de Conjunto es S y de Reinicio es R.

CoDeSys V2.3 5-51


Los Editores Gráficos

VarOut1 se establece en TRUE, si VarIn1 entrega TRUE. VarOut1 conserva este valor, incluso cuando
VarIn1 vuelve a FALSE.
VarOut2 se establece en FALSE, si VarIn2 entrega TRUE. VarOut2 conserva este valor, incluso
cuando VarIn2 vuelve a FALSE.
La activación múltiple de este comando hace que la salida cambie entre Set, Reset y la condición
normal.

«Extras», «EN/ENO» y CFC

Símbolo: Atajo: <Ctrl> + <I>


Este comando se utiliza para dar a un bloque seleccionado (posición del cursor 3) una entrada de
habilitación booleana adicional EN (Enable In) y una salida booleana ENO (Enable Out).

ADD solo se ejecuta en este ejemplo cuando la variable booleana "condition" es TRUE. VarOut
también se establecerá en TRUE después de la ejecución de ADD. Pero si la condición de epílogo
cambia a FALSE, ADD ya no se ejecutará y, por lo tanto, VarOut seguirá siendo TRUE. El siguiente
ejemplo muestra cómo se puede utilizar el valor ENO para otros bloques:

x debe inicializarse en 1 e y inicializarse en 0. Los números en la esquina derecha del bloque indican el
orden en que se ejecutan los comandos.
x se incrementará en uno hasta que alcance el valor 10. Esto hace que la salida del módulo LT(0)
entregue el valor FALSE y se ejecuten SUB(3) y ADD(5). x se vuelve a establecer en el valor 1 e y se
incrementa en 1. LT(0) se ejecuta de nuevo siempre y cuando x sea menor que 10. Por lo tanto, cuenta
el número de veces que x pasa por el rango de valores de 1 a 10.

'Extras' 'Propiedades...' en CFC


Los parámetros de entrada constantes (VAR_INPUT CONSTANT) de las funciones y los bloques de funciones no
se muestran directamente en el editor de gráficos de funciones continuas. Estos se pueden mostrar y su valor se

5-52 CoDeSys V2.3


5 - Editores en CoDeSys

puede cambiar cuando se selecciona el tronco del bloque en cuestión y luego se selecciona el comando 'Extras',
'Propiedades' o simplemente se hace doble clic en el tronco. Se abre el cuadro de diálogo "Editar parámetros":
Cuadro de diálogo Propiedades

Los valores del parámetro de entrada constante (VAR_INPUT CONSTANT) se pueden cambiar. Aquí
es necesario marcar el valor del parámetro en la columna Valor. Otro clic del ratón o pulsando la barra
espaciadora permite editarlo. La confirmación del cambio en el valor se realiza pulsando la tecla <Intro>
o pulsando <Escape> rechaza los cambios. El botón OK almacena todos los cambios realizados.

Tenga en cuenta: Esta funcionalidad y la declaración asociada de variables con la palabra clave "VAR_INPUT
CONSTANT" solo tiene un impacto para el editor CFC. En el editor FBD siempre se mostrarán todas las variables
de ENTRADA en un cuadro, independientemente de si se declaran como VAR_INPUT o como CONSTANTE
VAR_INPUT. También para los editores de texto esto no hace ninguna diferencia.

Selección de elementos en CFC


Se hace clic en el tronco del elemento para seleccionarlo.
Para marcar más elementos se pulsa la tecla <Shift> y se hace clic en los elementos necesarios, uno
tras otro, o se arrastra el ratón con la tecla izquierda del ratón pulsada sobre los elementos a marcar.

El comando ' Extras' 'Seleccionar todo' marca todos los elementos a la vez.

Elementos móviles en CFC


Uno o más elementos seleccionados se pueden mover con las teclas de flecha mientras se presiona la
tecla <Mayús>. Otra posibilidad es mover elementos con la tecla izquierda del ratón. Estos elementos
se colocan soltando la tecla izquierda del ratón en la medida en que no cubran otros elementos o
superen el tamaño previsto del editor. En tales casos, el elemento marcado vuelve a su posición inicial
y suena un tono de advertencia.

Copiar elementos en CFC


Uno o más elementos seleccionados se pueden copiar con el comando 'Editar', ' Copiar' e insertar con
el comando ' Editar', 'Pegar'.

Creación de conexiones
Una entrada de un elemento se puede conectar con precisión a la salida de otro elemento. Una salida
de un elemento se puede conectar a las entradas de otros elementos.
Hay varias posibilidades para conectar la entrada de un elemento E2 con la salida de un elemento E1.

CoDeSys V2.3 5-53


Los Editores Gráficos

Coloque el ratón en la salida del elemento E1, haga clic con la tecla izquierda del ratón, mantenga
pulsada la tecla izquierda del ratón y arrastre el cursor del ratón a la entrada del elemento E2 y suelte
la tecla izquierda del ratón. Durante esta operación de arrastre con el ratón, se establece una conexión
entre la salida del elemento E1 y el cursor del ratón.
Coloque el ratón en la entrada del elemento E2, haga clic con la tecla izquierda del ratón, mantenga pulsada la tecla
izquierda del ratón y arrastre el cursor del ratón a la salida del elemento E1 y suelte la tecla izquierda del ratón.

Mueva uno de los elementos E1 o E2 y colóquelo de tal manera soltando la tecla izquierda del mouse
que la salida del elemento E2 y la entrada del elemento E1 toquen.
Cuando el elemento E2 es un bloque con una entrada libre, también se puede establecer una conexión
arrastrando el ratón desde una salida de E1 hasta el tronco de E2. Se creará una conexión con la
entrada libre en la posición más alta en E2 cuando se suelte la tecla del ratón. En el caso de que el
bloque E2 no tenga una entrada libre, pero sea un operador al que se le pueda añadir una entrada, se
generará automáticamente una nueva entrada.
La salida y la entrada de un bloque se pueden conectar entre sí (ruta de retroalimentación) mediante
este método. Para establecer una conexión entre dos pines, haga clic con el botón izquierdo del ratón
en un pin, mantenga presionado el botón y arrastre así la conexión hasta el pin deseado, donde luego
suelte el botón. Si durante el arrastre de la conexión se extiende fuera del área de trabajo del editor, el
desplazamiento se produce automáticamente. En el caso de los tipos de datos simples, la prueba de
tipo se lleva a cabo durante la conexión. Si los tipos de los dos pines no son compatibles, el cursor
cambia a "Prohibido". En el caso de los tipos de datos complejos, no se realizan pruebas.
Cambio de conexiones
Una conexión entre la salida de un elemento E1 y la entrada de un elemento E2 se puede cambiar
fácilmente por una conexión entre la salida del elemento E1 y la entrada del elemento E3. Se hace clic
con el ratón en la entrada de E2, se mantiene pulsada la tecla izquierda del ratón, el cursor del ratón se
mueve a la entrada de E3 y luego se suelta.

Eliminación de conexiones
Hay varias posibilidades para eliminar la conexión entre la salida de un elemento E1 y la entrada de un
elemento E2:
Seleccione la salida del elemento E1 y presione la tecla <Eliminar> o ejecute el comando 'Editar' 'Eliminar'.
Se eliminarán varias conexiones al mismo tiempo si la salida de E1 está conectada a más de una de
las entradas.
Seleccione la entrada del elemento E2 y presione la tecla <Eliminar> o ejecute el comando 'Editar' 'Eliminar'.
Seleccione la entrada de E2 con el ratón, mantenga pulsada la tecla izquierda del ratón y arrastre la
conexión desde la entrada a E2. La conexión se elimina cuando se suelta la tecla izquierda del ratón en
un área libre de la pantalla.

'Extras' 'Marcador de conexión'


Las conexiones también se pueden representar mediante un conector (marcador de conexión) en lugar
de una línea de conexión. Aquí, la salida y la entrada asociada tienen un conector agregado al que se
le da un nombre único.
Cuando ya existe una conexión entre los dos elementos que ahora debería estar representada por
conectores, se marca la salida de la línea de conexión y se selecciona el punto de menú 'Extras'
'Marcador de conexión'. En el diagrama siguiente se muestra una conexión antes y después de la
selección de este punto de menú.

El programa da un nombre único como estándar que comienza con M, pero que se puede cambiar El
nombre del conector se almacena como un parámetro de salida, pero se puede editar tanto en la
entrada como en la salida.

5-54 CoDeSys V2.3


5 - Editores en CoDeSys

Es importante saber que el nombre del conector está asociado a una propiedad de la salida de una
conexión y se almacena con ella.

1. Edite el conector en la salida:


Si se reemplaza el texto del conector, todos los conectores asociados adoptan el nuevo nombre del
conector en las entradas. Sin embargo, no se puede seleccionar un nombre que ya pertenece a otro
ya que se infringiría la unicidad del nombre del conector.

2. Edite el conector en la entrada: Si se reemplaza el texto en un conector, también se reemplazará en el marcador de conexión
correspondiente en la otra POU. Las conexiones en las representaciones de conectores se pueden convertir en conexiones
normales en las que se marca la salida de las conexiones (posición del cursor 4) y se selecciona de nuevo el punto de menú

'Extras' 'Marcador de conexión'.

Insertar entradas/salidas "sobre la marcha"


Si se selecciona exactamente un pin de entrada o salida de un elemento, entonces el elemento de
entrada o salida correspondiente se puede insertar directamente y su campo de editor se puede
rellenar con una cadena ingresando la cadena en el teclado.

Orden de ejecución
Los elementos block, output, jump, return y label poseen cada uno un número que indica el orden en que se
ejecutan. En este orden secuencial, los elementos individuales se evalúan en tiempo de ejecución.
Al pegar un elemento, el número se da automáticamente de acuerdo con la secuencia topológica (de
izquierda a derecha y de arriba hacia abajo). El nuevo elemento recibe el número de su sucesor
topológico si la secuencia ya se ha cambiado y todos los números más altos se incrementan en uno.
El número de un elemento permanece constante cuando se mueve.
La secuencia influye en el resultado y debe cambiarse en ciertos casos.
Si se muestra la secuencia, el número de ejecución secuencial correspondiente se muestra en la
esquina superior derecha del elemento.

'Extras' 'Orden' 'Mostrar pedido'


Este comando activa y desactiva la visualización del orden de ejecución. El ajuste predeterminado es
mostrarlo (reconocido por una marca ( ) delante del punto del menú).
El orden de ejecución correspondiente aparece en la esquina superior derecha para los elementos
block, output, jump, return y label.

'Extras' 'Orden' 'Orden topológicamente'


Los elementos se ordenan en una secuencia topológica cuando la ejecución se realiza de izquierda a
derecha y de arriba hacia abajo, es decir, el número aumenta de izquierda a derecha y de arriba hacia
abajo para los elementos dispuestos topológicamente. Las conexiones no son relevantes, solo es
importante la ubicación de los elementos.
Todos los elementos seleccionados se organizan topológicamente cuando se ejecuta el
comando 'Extras', 'Ordenar', 'Ordenar topológicamente' . Mediante este proceso, todos los
elementos de la selección se eliminan de la lista de tratamiento secuencial. A continuación, los
elementos se introducen individualmente en la lista de procesamiento secuencial restante, desde la
parte inferior derecha hasta la parte superior izquierda. Cada elemento marcado se introduce en la lista
de procesamiento secuencial antes que su sucesor topológico, es decir, se inserta antes del elemento
que en una secuencia topológica se ejecutaría después de él, cuando todos los elementos del editor se
secuenciaron según un sistema de secuenciación topológica. Esto se aclarará con un ejemplo:

CoDeSys V2.3 5-55


Los Editores Gráficos

Se seleccionan los elementos con los números 1, 2 y 3. Si se selecciona el comando 'Ordenar


topológicamente', los elementos se sacan primero de la lista de procesamiento secuencial. A continuación,
Var3, el salto y el operador AND se insertan de nuevo uno tras otro. Var3 se coloca antes de la etiqueta y
recibe el número 2. A continuación, se ordena el salto y recibe el número 4 al principio, pero éste se
convierte en 5 después de que se inserta el AND. El nuevo auto de ejecución que se dicta es:

Cuando se introduce un bloque recién generado, se colocará de forma predeterminada delante de su


sucesor topológico en la lista de procesamiento secuencial.

'Extras' 'Orden' 'Uno arriba'


Con este comando, todos los elementos seleccionados, a excepción del elemento que se encuentra al
principio de la lista de procesamiento secuencial, se mueven un lugar hacia adelante en la lista de
procesamiento secuencial.
'Extras' 'Orden' 'Uno menos'
Con este comando, todos los elementos seleccionados, a excepción del elemento que se encuentra al
final de la lista de procesamiento secuencial, se mueven un lugar hacia atrás en la lista de
procesamiento secuencial.
'Extras' 'Ordenar' 'Pedir primero'
Con este comando, todos los elementos seleccionados se moverán al frente de la lista de
procesamiento secuencial, por lo que se mantendrá el orden dentro del grupo de elementos
seleccionados. El orden dentro del grupo de elementos no seleccionados también sigue siendo el
mismo.
'Extras' 'Orden' 'Pedido al final'
Con este comando, todos los elementos seleccionados se moverán al final de la lista de procesamiento
secuencial, por lo que se mantendrá el orden dentro del grupo de elementos seleccionados. El orden
dentro del grupo de elementos no seleccionados también sigue siendo el mismo.

'Extras' 'Ordenar' 'Ordenar todo según el flujo de datos''


Este comando afecta a todos los elementos. El orden de ejecución viene determinado por el flujo de
datos de los elementos y no por su posición.
El siguiente diagrama muestra los elementos que se han ordenado topográficamente.

5-56 CoDeSys V2.3


5 - Editores en CoDeSys

Secuencia antes del orden según el flujo de datos

Existe la siguiente disposición después de seleccionar el comando:


Secuencia después de la ordenación según el flujo de datos

Cuando se selecciona este comando, lo primero que sucede es que los elementos se ordenan
topográficamente. A continuación, se crea una nueva lista de procesamiento secuencial. Basándose en
los valores conocidos de las entradas, el ordenador calcula cuáles de los elementos aún no numerados
pueden ser procesados a continuación. En la "red" anterior, el bloque AND, por ejemplo, podría
procesarse inmediatamente, ya que se conocen los valores en sus entradas (1 y 2). El bloque SUB solo
se puede procesar entonces, ya que primero se debe conocer el resultado de ADD, etc.
Las rutas de retroalimentación se insertan en último lugar.
La ventaja de la secuenciación del flujo de datos es que una caja de salida que está conectada a la
salida de un bloque viene inmediatamente después de ella en el sistema de secuenciación del flujo de
datos, lo que por orden topológico no siempre sería el caso. En algunos casos, el ordenamiento
topológico puede ofrecer un resultado diferente al ordenamiento por flujo de datos, un punto que se
puede reconocer en el ejemplo anterior.

CoDeSys V2.3 5-57


Los Editores Gráficos

'Extras' 'Crear macro''

Símbolo:
Con este comando, se pueden ensamblar varias POU que se seleccionan al mismo tiempo en un bloque, que
se puede nombrar como una macro. Las macros solo se pueden reproducir copiando/pegando, por lo que cada
copia se convierte en una macro separada cuyo nombre se puede elegir de forma independiente. Por lo tanto,
las macros no son referencias. Todas las conexiones que se cortan mediante la creación de una macro generan
pines de entrada o salida en la macro. Las conexiones a las entradas generan un in-pin. El nombre
predeterminado aparece junto a la chincheta con el formato In<n>. Para las conexiones a salidas, aparece
Out<n>. Las conexiones afectadas que tenían marcadores de conexión antes de la creación de la macro,
conservan el marcador de conexión en el PIN de la macro.
Al principio, una macro tiene el nombre predeterminado "MACRO". Esto se puede cambiar en el campo
Nombre del uso de la macro. Si se edita la macro, el nombre de la macro se mostrará en la barra de
título de la ventana del editor anexada al nombre de la POU.
Ejemplo: Selección

Macro:

En el editor:

'Extras' 'Salta a la macro'

Símbolo:
Con este comando, o haciendo doble clic en el cuerpo de la macro, la macro se abre para editarla en la
ventana del editor de la POU asociada. El nombre de la macro se muestra anexado al nombre de la
POU en la barra de título.
Los cuadros de pines generados para las entradas y salidas de la macro durante la creación se pueden manejar como
entradas y salidas POU normales. También se pueden mover, eliminar, agregar, etc. Sólo difieren en la forma en que

se muestran y no tienen índice de posición. Para agregar puede usar los botones (entrada) resp.
(salida), que están disponibles en la barra de menús. Los cuadros de pines tienen esquinas
redondeadas. El texto en el cuadro de pines coincide con el nombre del pin en la pantalla de macros.

5-58 CoDeSys V2.3


5 - Editores en CoDeSys

El orden de los pines en el cuadro de macros sigue el orden de ejecución de los elementos de la
macro. Un índice de orden inferior antes de uno más alto, un pin más alto antes de uno más bajo.
El orden de procesamiento dentro de la macro se cierra, en otras palabras, la macro se procesa como
un bloque, en la posición de la macro en la POU primaria. Por lo tanto, los comandos para manipular el
orden de ejecución operan solo dentro de la macro.

'Extras' 'Expand macro'


Con este comando, la macro seleccionada se vuelve a expandir y los elementos contenidos en ella se
insertan en la POU en la ubicación de la macro. Las conexiones a los pines de la macro se muestran
de nuevo como conexiones a las entradas o salidas de los elementos. Si la expansión de la macro no
puede ocurrir en la ubicación del cuadro de macros por falta de espacio, la macro se desplaza hacia la
derecha y hacia abajo hasta que haya suficiente espacio disponible.
Nota: si el proyecto se guarda con el número de versión 2.1 del proyecto, las macros también se expandirán.
Todas las macros también se expandirán antes de la conversión a otros idiomas.

'Extras' 'Un nivel macro atrás', 'Extras' 'Todos los niveles macro atrás'

Símbolos:
Estos comandos también están disponibles en la barra de herramientas, tan pronto como se abre una
macro para editarla. Si las macros están anidadas unas dentro de otras, es posible cambiar al siguiente
nivel de visualización más alto o más alto.

Rutas de retroalimentación en CFC


Las rutas de retroalimentación solo se pueden mostrar directamente en el editor de gráficos de funciones
continuas y no en el editor de diagramas de bloques de funciones habitual. Aquí hay que tener en cuenta
que la salida de un bloque siempre lleva una variable intermedia interna. El tipo de datos de la variable
intermedia resulta, para los operadores, del tipo de datos más grande de las entradas.
El tipo de datos de una constante se obtiene a partir del tipo de datos más pequeño posible, es decir, la
constante '1' adopta el tipo de datos SINT. Si ahora se ejecuta una suma con retroalimentación y la
constante '1', la primera entrada da el tipo de datos SINT y la segunda no está definida debido a la
retroalimentación. Por lo tanto, la variable intermedia también es del tipo SINT. El valor de la variable
intermedia solo se asigna a la variable de salida.
El siguiente diagrama muestra una suma con retroalimentación y una suma con una variable. Las
variables x e y deben ser del tipo INT aquí.

Hay diferencias entre las dos adiciones:


La variable y se puede inicializar con un valor que no sea igual a cero, pero este no es el caso de la
variable intermedia para la suma izquierda.
La variable intermedia para la suma de la izquierda tiene el tipo de datos SINT, mientras que la de la
derecha tiene el tipo de datos INT. Las variables x e y tienen valores diferentes después de la 129ª
llamada. La variable x, aunque es del tipo INT, contiene el valor 127 porque la variable intermedia ha
entrado en desbordamiento. Por otro lado, la variable y contiene el valor 129.

CFC en modo Online


Monitorización:
Los valores de las entradas y salidas se muestran en los cuadros de entrada o salida. Las constantes
no se supervisan. En el caso de las variables no booleanas, los cuadros se expanden para dar cabida a

CoDeSys V2.3 5-59


Los Editores Gráficos

los valores mostrados. En el caso de las conexiones booleanas, el nombre de la variable y la conexión
se muestran en azul si el valor es TRUE, de lo contrario permanecen en negro.
Las conexiones booleanas internas también se muestran en línea en azul en el estado VERDADERO,
de lo contrario, en negro. El valor de las conexiones internas no booleanas se muestra en un pequeño
cuadro con esquinas redondeadas en el pin de salida de la conexión.

Los PIN de las macros se supervisan como cuadros de entrada o salida.

Las conexiones no booleanas con marcadores de conexión muestran su valor dentro del marcador de
conexión. En el caso de las conexiones booleanas, las líneas y los nombres de los marcadores se
muestran en azul si la línea lleva el valor TRUE, de lo contrario es negro.
Control de flujo:
Cuando se activa el control de flujo, las conexiones que se han atravesado se marcan con el color
seleccionado en las opciones del proyecto.
Interrupción:
Los puntos de interrupción se pueden establecer en todos los elementos que también tienen un índice de orden de
secuencia de procesamiento. El procesamiento del programa se detendrá antes de la ejecución del elemento
respectivo, es decir, para las POU y las salidas antes de la asignación de entradas, para las etiquetas de salto
antes de la ejecución del elemento con el siguiente índice. El índice de secuencia de procesamiento del elemento
se utiliza como posición del punto de interrupción en el cuadro de diálogo Punto de interrupción.

La configuración de los puntos de interrupción en un elemento seleccionado se realiza con la tecla F9 o a través
de la opción de menú 'Punto de interrupción activado/desactivado' en el menú 'En línea' o 'Extras' o en el menú
contextual del editor. Si se establece un punto de interrupción en un elemento, este se borrará y se revertirá la
próxima vez que se ejecute el comando 'Punto de interrupción activado/desactivado'. Además, el punto de
interrupción de un elemento se puede alternar haciendo doble clic en él.
Los puntos de interrupción se muestran en los colores introducidos en las opciones del proyecto.
Etiqueta de DEVOLUCIÓN:
En el modo Online, se genera automáticamente una etiqueta de salto con el nombre "RETURN" en la primera
columna y después del último elemento del editor. Esta etiqueta marca el final de la POU y se salta al paso paso
justo antes de que la ejecución salga de la POU. No se insertan marcas RETURN en las macros.

Escalonamiento:
Al usar 'Paso a paso', siempre saltará al elemento con el índice de orden siguiente más alto. Si el
elemento actual es una macro o una POU, entonces su implemento se bifurca cuando 'Step in' está en
vigor. Si se ejecuta un 'Paso a paso' desde allí, se salta al elemento cuyo índice de orden sigue al de la
macro.

5-60 CoDeSys V2.3


5 - Editores en CoDeSys

Acercar a POU
Atajo: <Alt>+<Intro>
Con este comando, una POU seleccionada se carga en su editor. El comando está disponible en el
menú contextual (<F2>) o en el menú 'Extras', si el cursor está situado en el nombre de una POU en un
editor de texto o si la casilla POU está seleccionada en un editor gráfico.
Si se trata de una POU de una biblioteca, se llama al administrador de la biblioteca y se muestra la
POU correspondiente.

CoDeSys V2.3 5-61


Los Editores Gráficos

5-62 CoDeSys V2.3


6 - Los recursos

6 Los recursos

6.1 Descripción general de los recursos


En la tarjeta de registro de recursos del Organizador de objetos, hay objetos para configurar y
organizar el proyecto y para realizar un seguimiento de los valores de las variables:
Variables globales que se pueden utilizar en todo el proyecto; las variables globales del proyecto, así
como las bibliotecas.
Configuración de alarmas para la organización de un sistema de alarmas en el proyecto CoDeSys.
Administrador de bibliotecas para manejar todas las bibliotecas que se incluyen en el proyecto.
Registro para registrar las actividades durante las sesiones en línea.
Configuración de PLC para configurar su hardware.
Gestor de relojes y recetas para indicar y preajustar los valores de las variables.
Configuración de tareas para controlar el control de su programa a través de tareas.
Configuración de destino para seleccionar la plataforma de hardware (destino) y, si está disponible,
para personalizar los parámetros específicos de destino.
Espacio de trabajo como imagen de las opciones del proyecto.
En función de la configuración de destino, es posible que también estén disponibles los siguientes recursos:
Administrador de parámetros para la gestión de variables, que también son accesibles para otros participantes
de la red. Esta funcionalidad solo estará disponible si se define en la configuración de destino correspondiente.

PLC Browser para la monitorización de la información del PLC.


Rastreo de muestreo para el registro gráfico de los valores de las variables.
Herramientas para enlazar herramientas externas, que luego se pueden iniciar en CoDeSys. Esta
funcionalidad solo estará disponible si se define en la configuración de destino correspondiente.
La funcionalidad de SoftMotion (se necesita licencia): Lista de programas CNC (CNC Editor) y CAM (
CAM-Editor) (consulte la documentación separada sobre SoftMotion).
Además, se puede crear y cargar un archivo Docuframe que ofrece un conjunto de comentarios para
las variables del proyecto (por ejemplo, en un idioma determinado), que se imprimirán al documentar el
proyecto con 'Proyecto' 'Documento'.
Pestaña Ressources en CoDeSys

CoDeSys V2.3 6-1


Variables globales, Configuración de variables, Marco de documento

6.2 Variables globales, configuración de variables, marco de documento


Objetos en 'Variables globales'
En el Organizador de objetos, encontrará tres objetos en la tarjeta de registro Recursos de la carpeta
Variables globales (nombres predeterminados de los objetos entre paréntesis).
Lista de variables globales (Variables globales)
Configuración de variables (Variable Configuration)
Todas las variables definidas en estos objetos se reconocen a lo largo del proyecto.
Si la carpeta de variables globales no está abierta (signo más delante de la carpeta), puede abrirla
haciendo doble clic<Intro> en la línea.
Seleccione el objeto correspondiente. El comando 'Objeto abierto' abre una ventana con las variables
globales previamente definidas. El editor para esto funciona de la misma manera que el editor de
declaraciones.
Varias listas de variables
Las variables globales, las variables de red global (VAR_GLOBAL), las variables de red global
(VAR_GLOBAL, específicas del objetivo) y las configuraciones de variables (VAR_CONFIG) deben
definirse en objetos separados.
Si ha declarado un gran número de variables globales y desea estructurar mejor su lista de variables
globales, puede crear más listas de variables.

Variables
En el Organizador
globalesdeo objetos,
uno de los
seleccione
objetos existentes
el icono con variables globales. A continuación, ejecute el
comando 'Proyecto' 'Añadir objeto'. Asigne un nombre correspondiente al objeto que aparece en el
cuadro de diálogo. Con este nombre se creará un objeto adicional con la palabra clave VAR_GLOBAL.
Si prefiere una configuración variable de un objeto, cambie la palabra clave correspondiente a
VAR_CONFIG.

6.2.1 Variables globales

¿Qué son las variables globales?


Las variables "normales", constantes o variables remanentes que se conocen a lo largo del proyecto se
pueden declarar como variables globales, pero también variables de red que también se utilizan para el
intercambio de datos con otros suscriptores de la red.
Tenga en cuenta: En un proyecto puede definir una variable local que tenga el mismo nombre que una variable
global. En este caso, dentro de una POU se utilizará la variable definida localmente.

No está permitido nombrar dos variables globales de forma idéntica. Por ejemplo, obtendrá un error del compilador,
si ha definido una variable "var1" en la configuración del PLC, así como en una lista global de variables.

Variables de red
Nota: El uso de variables de red debe ser compatible con el sistema de destino y debe estar activado en la
configuración de destino (categoría Funcionalidad de red).

Mediante un intercambio automático de datos (compárese con el intercambio de datos no automático a través del
Administrador de parámetros) es posible actualizar el valor de una variable de red en varios sistemas de control
dentro de una red de controladores compatible con CoDeSys . Esto no requiere funciones específicas del
controlador, pero los suscriptores de red deben utilizar listas de declaraciones idénticas y configuraciones de
transferencia coincidentes para las variables de red en sus proyectos. Para que esto sea posible, se recomienda
que la declaración no se introduzca manualmente en cada aplicación de controlador, sino que se cargue desde un
archivo separado al crear la lista. (consulte 'Crear una lista global de variables').

6-2 CoDeSys V2.3


6 - Los recursos

Crear una lista global de variables


Para crear una lista de variables globales, abra el registro 'Recursos' en el Organizador de objetos y
seleccione la entrada 'Variables globales' o seleccione una lista ya existente. A continuación, elija el
comando 'Proyecto', 'Objeto', 'Añadir' para abrir el cuadro de diálogo Lista de variables globales.
Este cuadro de diálogo también se puede abrir con el comando 'Proyecto', 'Objeto', 'Propiedades', que está disponible si
se marca una lista de variables globales existente en el organizador de objetos. Muestra la configuración de esta lista.

Cuadro de diálogo para crear una nueva lista de variables globales

Nombre de la lista de variables globales: Inserte un nombre de lista.


Enlace al archivo:
Nombre de archivo: Si tiene un archivo de exportación (*.exp) o un archivo DCF, que contiene las variables
deseadas, puede configurar un enlace a este archivo. Para hacer esto, inserte la ruta del archivo en el
campo Nombre de archivo o presione el botón Examinar para obtener el cuadro de diálogo estándar
'Seleccionar archivo de texto'. Los archivos DCF se convierten a la sintaxis ICE cuando se leen.

Active la opción Importar antes de compilar, si desea que la lista de variables se lea desde el archivo
externo antes de cada compilación del proyecto. Active la opción Exportar antes de compilar, si
desea que la lista de variables se escriba en el archivo externo antes de cada compilación del proyecto.
Si cierra el cuadro de diálogo 'Lista de variables globales' con OK, se crea el nuevo objeto. Las listas de variables globales se
pueden reconocer en el Organizador de objetos por el símbolo . Con el comando 'Proyecto', 'Objeto', 'Propiedades', puede
volver a abrir el cuadro de diálogo de configuración 'Lista global de variables' para la entrada marcada en el Organizador de
objetos.

CoDeSys V2.3 6-3


Variables globales, Configuración de variables, Marco de documento

Configuración de variables de red:


Si la opción "Admitir variables de red" está activada en la configuración de destino, entonces el botón
<Agregar red> está disponible. Al presionar este botón, el cuadro de diálogo se extiende y se ve como
se muestra en la imagen. Si la opción no está activada, el botón no está disponible.
Conexión <n> (<Tipo de red>): En la parte inferior del cuadro de diálogo se pueden crear conjuntos de
configuración para hasta cuatro conexiones de red, cada una en una ficha independiente. Un conjunto de
configuración define los parámetros del intercambio de datos para la lista de variables particulares dentro de
la red. Para que el intercambio en la red funcione según lo previsto, la misma lista de variables debe
configurarse de forma compatible para que coincida con los demás suscriptores de la red.

Si aún no hay ninguna configuración, en el caso de una red UDP obtendrá una única hoja tabuladora
con la inscripción ' Conexión 1 (UDP)'. Cada vez que se vuelve a pulsar el botón "Añadir red", se
obtienen hasta cuatro hojas más inscritas con números de serie después de "Conexión".
Tipo de red: elija el tipo deseado de la lista. La lista está definida por las entradas del sistema de
destino. Por ejemplo, se puede seleccionar "CAN" como abreviatura de una red CAN, o "UDP" para un
sistema de transmisión UDP.
Configuración: Este botón abre el cuadro de diálogo Configuración para <tipo de red> con los
siguientes parámetros de configuración:
UDP:
Si se pulsa este botón, se definirá el puerto 1202 para el intercambio de datos con los demás
participantes de la red. La dirección de difusión/multidifusión se establecerá en "255 . 255 . 255 . 255",
lo que significa que el intercambio de datos se realizará con todos los participantes de la red.
Puerto: Introduzca aquí el número de puerto deseado para sobrescribir la configuración estándar
(consulte más arriba, Usar estándar). ¡Asegúrese de que los otros nodos de la red definan el mismo
puerto! Si tiene más de una conexión UDP definida en el proyecto, el número de puerto se modificará
automáticamente en todos los conjuntos de configuración de acuerdo con la entrada que realice aquí.

Dirección de difusión/multidifusión: Introduzca aquí una dirección o el rango de direcciones


de una subred, si desea sobrescribir la configuración estándar (por ejemplo, "197 . 200 . 100 .
255", si desea comunicarse con todos los nodos con direcciones IP 197 . 200 . 100 . x).
Con respecto a los sistemas Win32, que las direcciones de difusión deben coincidir con la
máscara de subred de la configuración TCP/IP de la PC.
Cuadro de diálogo 'Configuración para UDP

ENLATAR:
Índice del Controlador: Índice del Controlador CAN, mediante el cual se deben transferir las variables.

Las siguientes opciones pueden activarse o desactivarse en la configuración del comportamiento de


transmisión de las variables:
Variables de paquete: Las variables se ensamblan para su transferencia a paquetes (telegramas) cuyo
tamaño depende de la red. Si la opción está desactivada, se configura un paquete para cada variable.
Identificador de lista (COB-ID): Número de identificación del primer paquete, en el que se enviarán las variables
(por defecto = 1). Los paquetes posteriores se numerarán en orden ascendente. Nota: Un COB-ID debe ser único
dentro de todas las listas de variables de red utilizadas en el proyecto. El uso del mismo ID en varias
configuraciones de lista provocará un error de compilación con las versiones del compilador >= 2.3.7.0.

6-4 CoDeSys V2.3


6 - Los recursos

Depende del sistema de destino, si las variables de red de la lista se pueden definir como 'legibles' y
'escritura'' o exclusivamente una de ambas. Para configurar esta propiedad, active las opciones
respectivas 'Leer' y 'Escribir':
Leer: Se leerán las variables de la lista; si la opción está desactivada, se ignorarán otras variables
enviadas a través de la red. Además, se puede activar la siguiente opción:
Solicitud en el arranque: Si el nodo local es un nodo de "lectura" (opción 'Lectura' activada), tan pronto
como se reinicie, los valores reales de las variables se solicitarán a todos los nodos de escritura y serán
enviados por aquellos, independientemente de cualquier otra condición de transmisión (tiempo, evento),
que normalmente desencadenan la comunicación. Condición previa: En la configuración de los nodos de
escritura se debe activar la opción 'Responder a las solicitudes de arranque'. (ver más abajo).

Escritura: Se escribirán las variables, adicionalmente se pueden configurar las siguientes opciones:
Incluir suma de comprobación: Se agregará una suma de comprobación a cada paquete que se envíe.
El receptor comprobará la suma de comprobación para asegurarse de que las definiciones de variables de
remitente y receptor son idénticas. No se aceptará un paquete con una suma de comprobación que no
coincida y, si está configurado ('Usar transferencia de acuse de recibo', ver más abajo), se confirmará
negativamente.
Usar transferencia de acuse de recibo: (no hay función en caso de CAN) Cada mensaje será
reconocido por el receptor. Tan pronto como el remitente no reciba al menos un acuse de recibo
dentro de un ciclo, se producirá un mensaje de error, que en el caso de una red UDP- se
escribirá en la estructura de diagnóstico proporcionada por NetVarUdp_LIB_V23.lib.
Responder a las solicitudes de arranque: Si el nodo local es un nodo de "escritura" (opción 'Escribir'
activada), se responderá a cada solicitud de un nodo de lectura que envíe en el arranque (Opción Solicitud
en el arranque, ver arriba). Esto significa que los valores reales de las variables se transmitirán incluso si
ninguno de los otros activadores de transmisión definidos (tiempo o evento) lo forzaría en este momento.

Transmitir cada ciclo: Las variables se escriben dentro de los intervalos especificados después
de Intervalo. (notación de tiempo, por ejemplo, T#70ms).
Transmitir en caso de cambio: Las variables se escriben solo cuando sus valores cambian; una entrada
después de Mínimo puede, sin embargo, establecer un lapso de tiempo mínimo entre transferencias.

Transmitir en el evento: Las variables de la lista se escribirán tan pronto como la variable
insertada en Variable obtenga TRUE.

Las listas de variables de red global se marcan con el símbolo en el Organizador de objetos.

Nota: Si se utiliza una variable global de red en una o más tareas, se aplica lo siguiente al componente de tiempo
de la transferencia: Cuando se llama a cada tarea, se prueba para determinar qué parámetros se aplican a la
transferencia del valor de la variable (configuración en el cuadro de diálogo 'Lista de variables globales'). El valor
de la variable se transferirá o no, dependiendo de si ha pasado el intervalo de tiempo especificado. En cada
transferencia, el contador de intervalo de tiempo para esta variable se restablece a cero.

El envío siempre se realiza desde el sistema de tiempo de ejecución del controlador afectado. Por lo
tanto, no es necesario proporcionar funciones específicas de control para el intercambio de datos.

Edición de listas de variables globales y variables de red


El editor de variables globales funciona de forma similar al editor de declaraciones. Pero tenga en cuenta que no
puede editar en este editor una lista, que es una imagen de una lista de variables externas vinculadas. Las listas de
variables externas solo se pueden editar externamente y se leerán en cada apertura y compilación del proyecto.

Sintaxis:
VAR_GLOBAL
(* Declaraciones de variables *)
END_VAR
Solo se pueden utilizar variables de red, si el sistema de destino lo permite. También se definen en esta
sintaxis.
Ejemplo de una lista de variables de red que se creó mediante la vinculación de un archivo de exportación *.exp y que obtuvo
el nombre NETWORKVARIABLES_UDP:

CoDeSys V2.3 6-5


Variables globales, Configuración de variables, Marco de documento

Ejemplo de una lista de variables de red, que se ha creado cargando un archivo de exportación *.exp y
que se nombró Network_Vars_UDP:

Edición de listas de variables globales remanentes


Si son compatibles con el sistema de tiempo de ejecución, se pueden procesar variables remanentes. Hay
dos tipos de variables globales remanentes (véase también el Capítulo 5.2.1, Variables remanentes):
Las variables de retención permanecen sin cambios después de un apagado incontrolado del sistema de tiempo de
ejecución (apagado/encendido) o un 'Reinicio' 'En línea' en CoDeSys. Las variables persistentes permanecen sin cambios
solo después de una descarga.
Las variables persistentes no son automáticamente también variables de retención !
A las variables remanentes se les asigna adicionalmente la palabra clave RETAIN o PERSISTENT o ambas.
Consulte el capítulo 5.2.1, Variables remanentes, para obtener más información.
Las variables de red también se definen en esta sintaxis.
Sintaxis:
VAR_GLOBAL RETENER
(* Declaraciones de variables *)
END_VAR VAR_GLOBAL
PERSISTENTE
(* Declaraciones de variables *)
END_VAR
Para la combinación de las propiedades retain y persistent se utilizan ambas palabras clave:
VAR_GLOBAL RETENCIÓN PERSISTENTE o VAR_GLOBAL RETENCIÓN PERSISTENTE
Las variables de red (específicas del destino) también se definen utilizando esta sintaxis.

Constantes globales
Las constantes globales también obtienen la palabra clave CONSTANT.
Sintaxis:
VAR_GLOBAL CONSTANTE
(* Declaraciones de variables *)
END_VAR

6.2.2 Configuración de variables


En los bloques de funciones es posible especificar direcciones para entradas y salidas que no están
completamente definidas, si se colocan las definiciones de variables entre las palabras clave VAR y
END_VAR. Las direcciones no completamente definidas se identifican con un asterisco.
Ejemplo:
FUNCTION_BLOCK locio
VAR
loci AT %I*: BOOL := TRUE; loco

6-6 CoDeSys V2.3


6 - Los recursos

EN %Q*: BOOL;
END_VAR
Aquí se definen dos variables de E/S locales, una entrada local (%I*) y una salida local (%Q*).
Si desea configurar E/S locales para la configuración de variables en el Organizador de objetos en los Recursos
tarjeta de registro, el objeto Variable_Configuration generalmente estará disponible. A continuación,
se puede cambiar el nombre del objeto y crear otros objetos para la configuración de las variables.
El editor para la configuración de variables funciona como el editor de declaraciones.
Las variables para las configuraciones de E/S locales deben ubicarse entre las palabras clave VAR_CONFIG y
END_VAR.
El nombre de una variable de este tipo consiste en una ruta de instancia completa a través de la cual las POU
individuales y los nombres de instancia están separados entre sí por puntos. La declaración debe contener una
dirección cuya clase (entrada/salida) corresponda a la de la dirección especificada de forma incompleta (%I*, %Q*)
en el bloque de funciones. Además, el tipo de datos debe coincidir con la declaración en el bloque de funciones.

Las variables de configuración, cuya ruta de acceso de instancia no es válida porque la instancia no existe,
también se denotan como errores. Por otro lado, también se notifica un error si no existe ninguna
configuración para una variable de instancia. Para recibir una lista de todas las variables de configuración
necesarias, se puede utilizar el elemento de menú "Todas las rutas de instancia" en el menú "Insertar".

Ejemplo de configuración de una variable

Supongamos que en un programa se da la siguiente definición para un bloque de funciones:

PROGRAMA PLC_PRG
VAR Hugo: locio; Otto: locio;

END_VAR
A continuación, una configuración de variable corregida se vería de esta manera:
VAR_CONFIG
PLC_PRG. Hugo.loci AT %IX1.0 : BOOL; PLC_PRG. Hugo.loco AT %QX0.0 : BOOL; PLC_PRG. Otto.loci AT
%IX1.0 : BOOL; PLC_PRG. Otto.loco AT %QX0.3 : BOOL;

END_VAR

'Insertar' 'Todas las rutas de instancia'


Con este comando se genera un bloque END_VAR VAR_CONFIG que contiene todas las rutas de
instancia disponibles en el proyecto. No es necesario volver a insertar las declaraciones que ya están
disponibles para contener direcciones ya existentes. Este elemento de menú se puede encontrar en la
ventana de configuración de variables si el proyecto está compilado ('Proyecto', 'Reconstruir todo').

6.2.3 Marco de documentos


Si un proyecto va a recibir varias documentaciones, tal vez con comentarios en alemán e inglés o si
desea documentar varios proyectos similares que utilizan los mismos nombres de variables, puede
ahorrarse mucho trabajo creando un docuframe con el comando 'Extras' 'Crear archivo de docuframe'.
El archivo creado se puede cargar en el editor de texto deseado y se puede editar. El archivo comienza con
la línea DOCUFILE. A continuación, sigue una lista de las variables del proyecto en una disposición que
asigna tres líneas a cada variable: una línea VAR que muestra cuándo llega una nueva variable; a
continuación, una línea con el nombre de la variable; y, finalmente, una línea vacía. Ahora puede reemplazar
esta línea mediante un comentario en la variable. Simplemente puede eliminar cualquier variable que no
pueda documentar. Si lo desea, puede crear varios marcos de documentos para su proyecto.

Para utilizar un marco de documento, dé el comando 'Extras' 'Vincular archivo de documentación'.


Ahora, si documenta todo el proyecto, o imprime partes de su proyecto, entonces en el texto del
programa, habrá una inserción del comentario producido en el docuframe en todas las variables. ¡Este
comentario solo aparece en la impresión!

CoDeSys V2.3 6-7


Configuración de alarmas

Editor de Windows con marco de documento

'Extras' 'Crear archivo Docuframe'


Utilice este comando para crear un marco de documento. El comando está a su disposición, cada vez
que selecciona un objeto de las variables globales.
Se abrirá un cuadro de diálogo para guardar archivos con un nuevo nombre. En el campo del archivo
de nombre, ya se ha introducido la extensión *.txt. Seleccione el nombre que desee. Ahora se ha
creado un archivo de texto en el que se enumeran todas las variables de su proyecto.

'Extras' 'Archivo de documentos de enlace'


Con este comando puede seleccionar un marco de documento.
Se abre el cuadro de diálogo para abrir archivos. Elija el marco de documento deseado y pulse OK.
Ahora, si documenta todo el proyecto, o imprime partes de su proyecto, entonces en el texto del
programa habrá una inserción del comentario producido en el docuframe en todas las variables. ¡Este
comentario solo aparece en la impresión!
Para crear un marco de documento, utilice el comando 'Extras' 'Crear archivo Docuframe'.

6.3 Configuración de la alarma

6.3.1 Descripción general


El sistema de alarma integrado en CoDeSys permite detectar estados críticos del proceso, registrarlos
y visualizarlos para el usuario con la ayuda de un elemento de visualización. El manejo de alarmas se
puede realizar en CoDeSys o, alternativamente, en el PLC. Para la gestión de alarmas en el PLC,
consulte la categoría de configuración de destino 'Visualización'.
Si el sistema de destino lo admite, los diálogos para la 'Configuración de alarma' están disponibles
en la pestaña 'Recursos'.
Aquí se definen las clases de alarma y los grupos de alarmas. Una clase de alarma sirve para
escribir una alarma, lo que significa que asigna ciertos parámetros a la alarma. Un grupo de alarmas
sirve para la configuración concreta de una o varias alarmas (a las que se les asigna una determinada
clase y otros parámetros) para su uso en el proyecto. Por lo tanto, una clase es útil para estructurar las
alarmas disponibles. Los diferentes grupos de alarmas son definidos por el usuario insertando las
entradas apropiadas debajo del encabezado 'Sistema' en el árbol de configuración.
Para la visualización de alarmas, el elemento 'Tabla de alarmas' está disponible en la visualización de
CoDeSys. Con esta tabla, el usuario puede ver y reconocer alarmas.

6-8 CoDeSys V2.3


6 - Los recursos

Si un historial, es decir, el registro de eventos de alarma, debe escribirse en un archivo de registro, se


debe definir dicho archivo y para cada grupo de alarmas se debe definir el comportamiento de guardado.
Al abrir la opción 'Configuración de alarmas' en la pestaña Recursos, aparece el cuadro de diálogo 'Configuración de alarmas'
se abre con una ventana bipartita, que en cuanto al modo de funcionamiento es similar a la de la
configuración del PLC o la configuración de tareas. En la parte izquierda se muestra el árbol de
configuración, en la parte derecha se abrirá el cuadro de diálogo de configuración correspondiente.
Ejemplo de configuración de alarma

Abra con un clic del ratón en el signo más en la entrada 'Configuración de alarmas' el árbol de
configuración disponible actualmente. Si va a crear una nueva configuración, este árbol solo mostrará
las entradas 'Clases de alarma' y 'Sistema'.

6.3.2 Información general sobre alarmas, Términos


El uso de un sistema de alarma en CoDeSys obedece a las siguientes descripciones y definiciones
universales relativas a las alarmas:
Alarma: Generalmente una alarma se considera una condición especial (valor de expresión).
Prioridad: La prioridad, también llamada "gravedad", de una alarma describe la importancia (grave) de
la condición de alarma. La prioridad más alta es "0", el valor de prioridad válido más bajo es "255".
Estado de alarma: Una expresión/variable configurada para el control de alarma puede tener los
siguientes estados: NORM (sin alarma), INTO (la alarma acaba de llegar), ACK (la alarma ha llegado y
ha sido reconocida por el usuario), OUTOF (el estado de alarma ha finalizado, la alarma "se ha ido",
¡pero aún no se ha reconocido!)
Subestado: Una condición de alarma puede tener límites (Lo, Hi) y límites "extremos" (LoLo, HiHi).
Ejemplo: El valor de una expresión asciende y primero transitará por el límite HI, lo que provocará la
llegada de una alarma HI. Si el valor continúa ascendiendo y supera también el límite HIHI antes de
que el usuario reconozca la alarma, entonces la alarma HI se reconocerá automáticamente y solo la
alarma HIHI permanecerá en la lista de alarmas (que es una lista interna utilizada para la
administración de alarmas). En este caso, el estado HI se denomina subestado.
Reconocimiento de alarmas: El objetivo principal de las alarmas es informar al usuario sobre
situaciones de alarma. Al hacerlo, a menudo es necesario asegurarse de que el usuario ha notado esta
información (consulte las posibles acciones asignadas a una alarma en la configuración de la clase de
alarma). El usuario debe reconocer la alarma para que se elimine de la lista de alarmas.
Evento de alarma: Un evento de alarma no debe confundirse con una condición de alarma. Mientras que
una condición de alarma puede ser válida durante un período de tiempo más largo, un evento de alarma solo

CoDeSys V2.3 6-9


Configuración de alarmas

describe la ocurrencia momentánea de un cambio, por ejemplo, un cambio del estado normal al estado
de alarma. En la configuración de alarmas de CoDeSys para los tres tipos de eventos y los estados de
alarma correspondientes se utilizan los mismos nombres (INTO, ACK, OUTOF).

En CoDeSys se admiten las siguientes características:


Desactivación de la generación de alarmas para alarmas individuales, así como para grupos de alarmas
Selección de las alarmas que deben mostrarse definiendo los grupos de alarmas y las prioridades
Almacenamiento de todos los eventos de alarma en una tabla de alarmas
Elemento de visualización 'Tabla de alarmas' en la visualización de CoDeSys

6.3.3 Clases de alarma


Las clases de alarma se utilizan para la descripción general de ciertos criterios de alarma, como la forma de
gestionar los acuses de recibo (confirmación de una alarma por parte del usuario), qué acciones deben ejecutarse
automáticamente tan pronto como se detecta un estado de alarma determinado y qué colores y mapas de bits se
van a utilizar para la visualización de una tabla de alarmas. Las clases de alarma se definen globalmente en la
configuración de alarmas y, a continuación, están disponibles como configuración base al configurar grupos de
alarmas.
Configuración de clases de alarma:
Seleccione la entrada 'Clases de alarma' en el árbol de configuración de alarmas. Se abre el cuadro de
diálogo de configuración 'Clases de alarma':
Cuadro de diálogo de configuración 'Clases de alarma'

Presione el botón Agregar para crear una nueva clase de alarma. A continuación, en la ventana superior se insertará
una línea, principalmente solo con una entrada "NOACK" (sin acuse de recibo) en la columna "Acuse de recibo".
Defina un nombre para la clase de alarma en el campo correspondiente de la columna Nombre (abra un marco de
edición haciendo clic con el ratón en el campo) y, si es necesario, modifique el tipo de confirmación en la columna
Reconocimiento.

6-10 CoDeSys V2.3


6 - Los recursos

Están disponibles los siguientes agradecimientos:


NO_ACK: No se requiere el acuse de recibo de la alarma por parte del usuario
ACK_INTO: El usuario debe confirmar una condición de alarma "come" (estado "INTO", se produce la
alarma).
ACK_OUTOF: El usuario debe confirmar una "alarma apagada" (estado "OUTOF", alarma finalizada).
ACK_ALL: Las condiciones de alarma de Gone and Come deben ser confirmadas por el usuario.
Además, puede introducir un comentario.
Al final de la lista se añadirán entradas para otras clases de alarma.
Utilice el botón Eliminar para eliminar la entrada seleccionada actualmente de la lista.

Acciones asignadas para la clase <nombre de la clase>:


A cada clase de alarma definida en la ventana superior se le puede asignar una lista de acciones, que
deben realizarse tan pronto como ocurra un evento de alarma.
En la lista de Acciones posibles , seleccione una y presione el botón ">" para acceder al campo Acciones
asignadas. Este campo contendrá finalmente la selección de acciones asignadas a la clase de alarma. A través
del botón ">>" se pueden añadir todas las acciones de un solo golpe. A través de "<" resp.. "<<" puede eliminar
una o todas las acciones de la selección existente realizada. Si una acción está marcada en la lista 'Acciones
asignadas', a través de "..." Se puede abrir un cuadro de diálogo correspondiente para definir la configuración de
correo electrónico deseada, la configuración de la impresora, la variable de proceso o el programa ejecutable y, si
corresponde, un texto de mensaje.
Se admiten los siguientes tipos de acciones (Acciones posibles) ( para obtener una definición de un
texto de mensaje, consulte a continuación):

Acción Descripción Ajustes a realizar en el cuadro de diálogo correspondiente:

Salvar: El evento de alarma se guardará Los ajustes se realizan en la definición


internamente, para ser entregado del grupo de alarmas en el cuadro de
e.g.in un archivo de registro. Tenga diálogo Guardado de alarmas
en cuenta: En este caso, el archivo
de registro debe definirse en la
configuración del grupo de alarmas.

Impresión: Se envía un mensaje de Impresora: Seleccione una de las impresoras


texto a una impresora. definidas en el sistema local; Texto de salida: Texto
del mensaje (ver más abajo) que debe imprimirse.

Tenga en cuenta: ¡Esta función no es compatible


con la visualización de destinos!

Mensaje: En la visualización actual de la Mensaje: Texto del mensaje que se mostrará


alarma, se abrirá una ventana de en la ventana de mensajes.
mensaje que muestra el texto
definido. Tenga en cuenta: ¡Esta función no es compatible
con la visualización de destinos!

Correo electrónico:
Se enviará un correo electrónico De: dirección de correo electrónico del remitente; Para: dirección
de correo electrónico del destinatario; Sujeto: cualquier tema;
con el mensaje definido.
Mensaje: Texto del mensaje (ver más abajo); Servidor:
Nombre del servidor de correo electrónico.
Variable: Una variable del programa Variable: Nombre de la variable: Puede seleccionar
CoDeSys obtendrá el estado de las variables del proyecto a través del asistente de
la alarma o una cadena de texto entrada (<F2>): Una variable booleana indicará los
estados de alarma NORM = 0 e INTO = 1, una
de mensaje. variable entera indicará los estados de alarma NORM
= 0, INTO = 1, ACK = 2, OUTOF = 4; una variable de
cadena obtendrá

CoDeSys V2.3 6-11


Configuración de alarmas

el texto del mensaje definido en el campo; Mensaje


(ver más abajo)
Ejecutar: Se iniciará un archivo ejecutable Archivo ejecutable: nombre del archivo que se
tan pronto como se produzca el va a ejecutar (por ejemplo, notepad.exe, puede
evento de alarma. usar el botón "..." para obtener el cuadro de
diálogo estándar para seleccionar un archivo;
Parámetro: parámetro(s) apropiado(s) que
deben adjuntarse a la llamada del archivo exe

Definición del texto del mensaje:


Para los tipos de acción 'Mensaje', 'Imprimir', 'Correo electrónico' o 'Variable', puede definir un texto
de mensaje que debe emitirse en caso de un evento de alarma.
Los saltos de línea en las definiciones de texto en 'Mensaje', 'Correo electrónico' o 'Variable' se
pueden insertar <Ctrl>+<Enter>.
Se pueden utilizar los siguientes marcadores de posición al definir el mensaje de alarma:

MENSAJE Se utilizará el texto del mensaje que se define para la alarma concreta en
la configuración del grupo de alarmas.
FECHA Fecha en la que se alcanzó el estado de alarma (INTO).
HORA Hora de entrada de la alarma.
EXPRESIÓN Expresión (definida en el grupo de alarmas) que ha provocado la alarma.
PRIORIDAD Prioridad de la alarma (definida para el grupo de alarmas).
VALOR Valor actual de la expresión (véase más arriba).
TIPO Tipo de alarma (definido en el grupo de alarmas)
CLASE Clase de alarma (definida en el grupo de alarmas)
TARGETVALUE Valor objetivo para los tipos de alarma DEV+ y DEV- (definidos en el grupo de alarmas)

BANDA MUERTA Tolerancia de la alarma (definida en el grupo de alarmas)


ALLDEFAULT Cualquier información sobre la alarma se emitirá, como se describe para
las entradas de línea en un archivo de registro (Historial).

Ejemplo de definición de un mensaje de alarma:


Para obtener una definición de un cuadro de mensaje, escriba lo siguiente en la ventana de mensaje:

Más adelante, al definir la alarma en el grupo de alarmas, introduzca en la columna 'Mensaje' lo siguiente:
"¡Temperatura crítica!". La salida del mensaje de alarma final será la siguiente:

6-12 CoDeSys V2.3


6 - Los recursos

Nota: El texto del mensaje también se verá afectado en caso de un cambio de idioma del proyecto si se
incluye en un archivo *. vis o en un archivo de traducción *.tlt. PERO: En este caso, al igual que los textos
que se refieren a una visualización, debe establecerse entre dos caracteres "#" (por ejemplo, en el ejemplo
que se muestra arriba: "#Temperature crítico !#" y "TIME /EXPRESSION: MESSAGE #current#: VALUE",
para que el texto se introduzca en el archivo de traducción como ALARMTEXT_ITEMs).

A la configuración del grupo de alarmas se debe definir un fichero de registro para la acción «Guardar» (véase el capítulo 6.3.4).

Eventos de alarma para acciones:


Para cada acción que defina, en qué eventos de alarma debe iniciarse.
Activar los eventos deseados:
INTO Se produce la alarma. Estado = EN.
Se ha realizado el acuse de recibo por parte del usuario. Estado = ACK.
OUTOF Estado de alarma finalizado. Estado = OUTOF.

Colores/Mapas de bits para la clase <nombre de la clase>


A cada clase de alarma se le pueden asignar colores y mapas de bits propios, que se utilizarán para la diferenciación de
las alarmas en la tabla de alarmas del elemento de visualización. Seleccione un color de primer plano y un color de
fondo para los posibles eventos INTO, ACK y OUTOF (ver arriba). El cuadro de diálogo estándar para seleccionar un
color se abrirá tan pronto como haga clic con el ratón en el símbolo de color. Para seleccionar un mapa de bits, al hacer
clic con el ratón en el rectángulo gris se abrirá el cuadro de diálogo estándar para seleccionar un archivo.

6.3.4 Grupos de alarmas


Los grupos de alarmas se utilizan para organizar las alarmas disponibles. Cada alarma se asigna definitivamente a
un grupo de alarmas y es administrada por este grupo. A todas las alarmas de un grupo se les puede asignar una
variable de desactivación común y parámetros comunes con respecto al almacenamiento de alarmas. Tenga en
cuenta que incluso una sola alarma debe configurarse dentro de un grupo de alarmas.

Se puede definir una estructura jerárquica de grupos de alarmas a través de elementos de carpeta. Cuando se selecciona
un grupo de alarmas en el árbol de configuración, automáticamente se mostrará el cuadro de diálogo Grupo de alarmas.

En el campo Descripción, introduzca un nombre para el grupo de alarmas.


Como variable de desactivación, se puede definir una variable de proyecto booleana. En un flanco ascendente en esta
variable se desactivará la creación de alarmas para todas las alarmas del grupo, en un flanco descendente se reactivará.

A través del botón Agregar una alarma se puede agregar al grupo. Se insertará una nueva línea en la
ventana de la tabla y allí se establecerán los siguientes parámetros:
Expresión: Introduzca aquí la variable del proyecto o una expresión (por ejemplo, "a + b") a la que
debe hacer referencia la alarma. Se recomienda utilizar el asistente de entrada <F2> o la "función
Intellisense" para una entrada correcta.

CoDeSys V2.3 6-13


Configuración de alarmas

Cuadro de diálogo de configuración Grupo de alarmas

Tipo: Se pueden utilizar los tipos de alarma enumerados a continuación. Para cada tipo, concierne al
comentario apropiado o a las definiciones que deben hacerse en el área más allá de la tabla.
DIG=0 Alarma digital, activa tan pronto como la expresión se convierte en FALSE.
DIG=1 Alarma digital, activa tan pronto como la expresión se vuelve VERDADERA.
LOLO Alarma analógica, activa tan pronto como el valor de la expresión cae por debajo del valor
definido para el tipo de alarma LOLO. Puede definir una tolerancia (Banda muerta). Mientras el
valor de la expresión esté dentro de la banda muerta, no se activará ninguna alarma, incluso si el
valor LOLO ha estado cayendo por debajo del límite.
LO correspondiente a LOLO.
HI Alarma analógica, activa tan pronto como la expresión supera el valor definido para el tipo de
alarma HIHI. Puede definir una tolerancia (Banda muerta). Mientras el valor de la expresión esté
dentro de la banda muerta, no se activará ninguna alarma, incluso si el valor HI ha superado el límite.

HIHI correspondiente a HI.


DEV- Desviación del valor objetivo; La alarma se activa tan pronto como el valor de la expresión
cae por debajo del valor definido para el tipo de alarma DEV- más la desviación porcentual.
Desviación porcentual = valor objetivo * (desviación en %)/ 100.
DEV+ Desviación del valor objetivo); La alarma se activa tan pronto como el valor de la
expresión supera el valor definido para el tipo de alarma DEV+ más la desviación porcentual.
Desviación porcentual = valor objetivo * (desviación en %)/ 100.
Tasa de cambio ROC por unidad de tiempo; La alarma se activa tan pronto como la expresión
se desvía mucho del valor anterior. El valor límite para activar una alarma se define por el
número de cambios de valor ( Tasa de cambios) por segundo, minuto u hora (unidades por).
Clase: elija la clase de alarma deseada. La lista de selección ofrecerá todas las clases que se han
definido en la configuración de la clase de alarma antes del último guardado del proyecto.
Prioridad: Aquí puede definir un nivel de prioridad 0-152. 0 es la prioridad más alta. La prioridad influirá
en la clasificación de las alarmas dentro de la tabla de alarmas.
Mensaje: Defina aquí el texto para el cuadro de mensaje, que aparecerá en caso de alarma. Esta casilla
debe ser confirmada por el usuario con OK, pero este OK no reconocerá automáticamente la alarma. Para
confirmar (acusar recibo) la alarma, debe acceder a la tabla de alarmas. Esto es posible a través de la tabla
de alarmas de elementos de visualización o a través de la fecha de entrada de alarmas en la tabla. Esta
fecha se puede leer desde un archivo de registro que se puede crear opcionalmente.

Desactivación: Aquí se puede introducir una variable de proyecto, que en un flanco ascendente
desactivará cualquier creación de la alarma. Sin embargo, tenga en cuenta que esta configuración se
sobrescribirá con la entrada que se puede encontrar en el campo 'Variable de desactivación'. (véase
más arriba).

6-14 CoDeSys V2.3


6 - Los recursos

6.3.5 Guardado de alarmas


Para cada grupo de alarmas se puede definir un fichero en el que se almacenan los eventos de alarma, si (!)
se ha asignado una acción 'Guardar' a la clase en el diálogo de configuración de la clase de alarma.
Seleccione el grupo de alarmas en el árbol de configuración y abra la pestaña de diálogo 'Almacenamiento de alarmas':
Cuadro de diálogo de configuración 'Guardado de alarmas'

Son posibles las siguientes definiciones:


Filepath: Ruta de los directorios del archivo que se define en Filename; a través del botón "..."
Obtendrá el cuadro de diálogo estándar para seleccionar un directorio.
Nombre de archivo: Nombre del archivo que debe guardar los eventos de alarma (por ejemplo,
"alarmlog"). Automáticamente se creará un archivo que recibe el nombre definido aquí más un dígito
adjunto y que tiene la extensión ".alm". El dígito indica la versión del archivo de registro. El primer
archivo obtiene un "0"; cada archivo adicional, que se creará de acuerdo con el evento de cambio de
archivo definido, se numerará con 1, 2, etc. (Ejemplos: "alarmlog0.alm", "alarmlog1.alm).
Evento de cambio de archivo: Defina aquí el evento que provocará la creación de un nuevo archivo para
guardar alarmas. Entradas posibles: Nunca, después de una hora, después de un día, después de una
semana, después de un mes, en un flanco ascendente de la variable definida en el campo Triggervariable
, cuando se exceda el número de registros en el archivo como se define en Número de registros.

Triggervariable resp. Número de registros: consulte más arriba, Evento de cambio de archivo.
Eliminar archivos antiguos después de .. Horas: Número de días transcurridos desde el día de la creación,
después de los cuales se deben eliminar todos los archivos de registro de alarmas, excepto el actual.

El archivo de registro (Historial) contiene las siguientes entradas:


(Consulte los tipos de columna y las entradas de ejemplo para dos alarmas)
Fecha/Hora en Fecha Hora Evento Expresión Tipo de Límite Tolerancia Valor clase Prioridad Mensaje
DWORD alarma actual
1046963332 6.3.03 16:08:52 EN PLC_PRG.b LO -30 5 -31 Alarm_high 0 ¡Temperatura!

1046963333 6.3.03 16:08:53 ACK PLC_PRG.n HIHI 35 Advertencia 9 Aumento de la


temperatura. !

Ejemplo, como se vería en el archivo de registro:


1046963332,6.3.03 16:08:52,INTO,PLC_PRG.ivar5,HIHI,,,, 9.00,a_class2,0,
1046963333,3/6/03 16:08:53,INTO,PLC_PRG.ivar4,ROC,2,,, 6.00,a_class2,2,
1046963333,6.3.03 16:08:53,INTO,PLC_PRG.ivar3,DEV-,,,, -6.00,a_class2,5,
1046963334,6.3.03 16:08:54,INTO,PLC_PRG.ivar2,LOLO,-35,,3, -47.00,advertencia,10,advertencia:
baja temperatura !
1046963334,6.3.03 16:08:54,INTO,PLC_PRG.ivar1,HI,20,,5, 47.00,a_class1,2,temperatura a alta !
¡Acércate!

CoDeSys V2.3 6-15


Administrador de la biblioteca

6.3.6 Menú 'Extras': Ajustes


El cuadro de diálogo Ajustes de configuración de alarmas se abre en el comando 'Extras' 'Ajustes'
en la configuración de alarmas:
Categoría: Fecha/Hora:
Aquí se establece el formato de fecha y hora para la representación de las alarmas en el archivo de registro.
Defina el formato de acuerdo con la siguiente sintaxis. Los guiones y los dos puntos deben ponerse entre comillas:

para la fecha: dd'-'MM'-'aaaa -> por ejemplo, "12.Ene-1993"


para la hora: hh':'mm':'ss (formato de 12 horas) -> por ejemplo, "01:10:34" o HH':'mm':'ss (formato de
24 horas) -> por ejemplo, "13:10:34"
Idioma:
El uso de este cuadro de diálogo corresponde al utilizado para realizar la configuración de idioma de un objeto de
visualización (consulte el Manual del usuario para la visualización de CoDeSys: Cambio de idioma en la visualización).

Elija aquí un archivo de idioma (*.vis o *.tlt) que debe usarse para los textos de configuración de
alarmas cuando se cambia el idioma en CoDeSys. Para ello, asegúrese de que el archivo de idioma
contenga, entre otros, las traducciones de las cadenas de texto de la configuración de alarma. Véase
también: Capítulo 4.3, Traducir el proyecto a otro idioma.
Alternativamente, puede definir el cambio de idioma dinámico especificando un archivo de idioma especial en
formato xml, como se usa para los elementos de visualización. Sin embargo, tenga en cuenta que los ajustes
reales solo se refieren a la visualización de los mensajes de alarma en CoDeSys. Si la configuración de la alarma
es visualizada por un elemento de la tabla de alarmas en un objeto de visualización, allí serán válidas las
configuraciones de idioma de visualización separadas.
En línea:
Desactivar la evaluación de alarmas en el modo en línea: Si se establece esta configuración en
línea, no habrá manejo de alarmas en el modo en línea. Esto significa que no se realizará ninguna
evaluación de alarma correspondiente a la configuración de alarma actual y no se mostrará ninguna
alarma. Esto puede ser deseable en ciertos entornos para ahorrar tiempo de cómputo.

6.4 Administrador de bibliotecas


El administrador de bibliotecas muestra todas las bibliotecas que están conectadas con el proyecto
actual. Las POU, los tipos de datos y las variables globales de las bibliotecas se pueden utilizar de la
misma manera que las POU, los tipos de datos y las variables globales definidos por el usuario.
Administrador de la biblioteca

El administrador de bibliotecas se abre con el comando 'Ventana' 'Administrador de bibliotecas'. La


información relativa a las bibliotecas incluidas se almacena con el proyecto y se puede ver en el cuadro de

6-16 CoDeSys V2.3


6 - Los recursos

diálogo 'Información sobre la biblioteca externa'. Para abrir este cuadro de diálogo, seleccione el nombre de
la biblioteca correspondiente en el administrador de bibliotecas y ejecute el comando 'Extras', 'Propiedades'.

Uso del Administrador de bibliotecas


La ventana del administrador de bibliotecas está dividida en tres o cuatro áreas por divisores de
pantalla. Las bibliotecas adjuntas al proyecto se enumeran en el área superior izquierda.
En el área de abajo, dependiendo de la tarjeta de registro que se haya seleccionado, hay una lista de las POU,
tipos de datos, visualizaciones o variables globales de la biblioteca seleccionada en el área superior.

Las carpetas se abren y cierran haciendo doble clic en la línea o pulsando <Intro>. Hay un signo más
delante de las carpetas cerradas y un signo menos delante de las carpetas abiertas.
Si se selecciona una POU haciendo clic con el ratón o seleccionándola con las teclas de flecha, la
declaración de la POU aparecerá en la zona superior derecha del gestor de bibliotecas; y en la parte
inferior derecha se encuentra la pantalla gráfica en forma de caja negra con entradas y salidas.
Con los tipos de datos y las variables globales, la declaración se muestra en el área derecha del
administrador de bibliotecas.

Biblioteca estándar
La biblioteca con "standard.lib" siempre está disponible. Contiene todas las funciones y bloques de función
que se requieren del IEC61131-3 como POU estándar para un sistema de programación IEC. La diferencia
entre una función estándar y un operador es que el operador es reconocido implícitamente por el sistema de
programación, mientras que las POU estándar deben estar vinculadas al proyecto (standard.lib).

El código para estas POU existe como una biblioteca C y es un componente de CoDeSys.

Bibliotecas definidas por el usuario


Si un proyecto se va a compilar en su entidad y sin errores, entonces se puede guardar en una
biblioteca con el comando ' Guardar como ' en el menú 'Archivo'. El proyecto en sí permanecerá sin
cambios. Se generará un archivo adicional, que tiene la extensión predeterminada ".lib".
Posteriormente, se puede utilizar y acceder a esta biblioteca como, por ejemplo, la biblioteca estándar.
Con el fin de tener disponibles las POU de un proyecto en otros proyectos, guarde el proyecto como
una biblioteca interna *.lib. Posteriormente, esta biblioteca se puede insertar en otros proyectos
utilizando el administrador de bibliotecas.
Si ha implementado POU en otros lenguajes de programación, por ejemplo, C, y desea incluirlos en
una biblioteca, guarde el proyecto utilizando el tipo de datos Biblioteca externa *.lib). Obtendrá el
archivo de la biblioteca, pero adicionalmente un archivo con la extensión "*.h". Este archivo está
estructurado como un archivo de encabezado C y contiene las declaraciones de todas las POU, tipos
de datos y variables globales, que están disponibles con la biblioteca. Si se utiliza una biblioteca
externa en un proyecto, entonces en modo de simulación se ejecutará esa implementación de las
POUs, que se escribió con CoDeSys; pero en el objetivo se procesará la implementación escrita en C.
Si desea agregar información de licencia a una biblioteca, presione el botón Editar información de
licencia ... e inserte la configuración adecuada en el cuadro de diálogo 'Editar información de licencia'.
Consulte la descripción correspondiente en 'Archivo' 'Guardar como...' resp. en Gestión de Licencias en
CoDeSys.
'Insertar' 'Biblioteca adicional'
Con este comando, puede adjuntar una biblioteca adicional a su proyecto.
El comando abre el cuadro de diálogo para abrir un archivo. Si el directorio configurado actualmente no contiene la
biblioteca deseada, puede seleccionar otro directorio en el campo Directorio de biblioteca donde se ofrecerán
todos los directorios, que se definen en 'Proyecto' 'Opciones' 'Directorios' 'Bibliotecas' (Tipo de archivo "*.lib").
Elija la biblioteca deseada (es posible la selección múltiple) y confirme con OK. El cuadro de diálogo se cerrará y la
biblioteca se insertará en el Administrador de bibliotecas. Ahora puede utilizar los objetos de la biblioteca en el
proyecto como objetos definidos por el usuario. Rutas de acceso de la biblioteca

Tener en cuenta qué directorios de bibliotecas están definidos actualmente en las opciones del
proyecto (véase el Capítulo 4.2, categoría 'Directorios'). Si inserta una biblioteca desde un directorio
que no está definido allí, la biblioteca se ingresará con la ruta respectiva.

CoDeSys V2.3 6-17


Registro

Ejemplo: Se inserta la biblioteca standard.lib desde el directorio "D:\codesys\libraries\standard".


Si este directorio está definido en las opciones del proyecto, la entrada en el gestor de librerías será:
"standard.lib <fecha y hora del archivo>".
Si en las opciones del proyecto solo se define un directorio "D:\codesys\libraries", entonces la entrada
en el administrador de bibliotecas será: "standard\standard.lib <fecha y hora del archivo>".
Si no se define ningún directorio coincidente en las opciones del proyecto, se introducirá la ruta
completa: "D:\codesys\libraries\standard\standard.lib <fecha y hora del archivo>".
Al volver a abrir el proyecto, las bibliotecas se buscarán de acuerdo con las entradas en el administrador de
bibliotecas. Así, por ejemplo, si solo se introduce allí el nombre del archivo de la biblioteca, la biblioteca se
buscará en los directorios de bibliotecas definidos en las opciones del proyecto.

Si no se encuentran bibliotecas al abrir un proyecto, se le preguntará si desea cambiar el directorio de


bibliotecas definido en las opciones del proyecto. Si dice No, se abrirá un cuadro de diálogo con
información sobre las bibliotecas no encontradas y las entradas respectivas en el Administrador de
bibliotecas se mostrarán en color rojo. En este caso, puede seleccionar una entrada roja y elegir el
comando Buscar en el menú contextual. Por lo tanto, obtendrá el cuadro de diálogo para abrir un
archivo donde puede buscar la biblioteca que falta y volver a cargarla inmediatamente.
Licenciamiento
Tan pronto como incluya una biblioteca para la que se necesite una licencia y no se encuentre ninguna
licencia válida, es posible que reciba un mensaje que indique que la biblioteca solo está disponible en
modo de demostración o que la biblioteca no tiene licencia para el destino establecido actualmente.
Puede ignorar este mensaje en ese momento o iniciar las acciones apropiadas con respecto a la
licencia. Una licencia no válida producirá un error durante la compilación ('Proyecto', 'Compilación'). En
este caso, al hacer doble clic en el mensaje de error <F4> se abrirá el cuadro de diálogo "Información
de licencia", donde podrá iniciar las acciones apropiadas guiadas por un asistente.
Eliminar biblioteca
Con el comando 'Editar' 'Eliminar' puede eliminar una biblioteca de un proyecto y del administrador de
bibliotecas.

'Extras' 'Propiedades'
Este comando abrirá el cuadro de diálogo 'Información sobre la biblioteca interna (o externa)'. En el
caso de las bibliotecas internas, encontrará todos los datos que se han insertado en la información del
proyecto (cuando corresponda, incluida la información de la licencia) cuando se creó la biblioteca en
CoDeSys. En el caso de las bibliotecas externas, se mostrará el nombre de la biblioteca y la ruta de
acceso de la biblioteca.

6.5 Registro
El registro almacena en orden cronológico las acciones que se producen durante una sesión en línea.
Para ello, se configura un archivo de registro binario (*.log). Después, el usuario puede almacenar
extractos del registro del proyecto correspondiente en un registro externo.
La ventana de registro se puede abrir en modo sin conexión o en línea y, por lo tanto, puede servir
como un monitor directo en línea.

'Ventana' 'Registro'
Para abrirlo, seleccione la opción de menú 'Ventana' 'Registro' o seleccione la entrada 'Registro' en la pestaña Recursos.
En la ventana de registro, el nombre de archivo del registro que se muestra actualmente aparece
después de Log:. Si este es el registro del proyecto actual, se mostrará la palabra "(Interno)".
Las entradas registradas se muestran en la ventana de registro. La entrada más reciente siempre aparece en la parte inferior.
Solo se mostrarán las acciones pertenecientes a categorías que se hayan activado en el campo 'Filtro'
del menú 'Proyecto', 'Opciones', 'Registro'.
La información disponible sobre la entrada seleccionada actualmente se muestra debajo de la

6-18 CoDeSys V2.3


6 - Los recursos

ventana de registro: Categoría: La categoría a la que pertenece la entrada de registro en particular.


Son posibles las siguientes cuatro categorías:
Acción del usuario: El usuario ha llevado a cabo una acción en línea (normalmente desde el menú en línea).

Acción interna: Se ha ejecutado una acción interna en la capa Online (por ejemplo, Eliminar búferes o
Depuración de inicialización).
Cambio de estado: El estado del sistema de tiempo de ejecución ha cambiado (por ejemplo, de Running a Break, si un
se alcanza el punto de interrupción).
Excepción: Se ha producido una excepción, por ejemplo, un error de comunicación.
Ventana de registro

Descripción: El tipo de acción. Las acciones del usuario tienen los mismos nombres que sus
correspondientes comandos de menú; todas las demás acciones están en inglés y tienen el mismo
nombre que la función OnlineXXX() correspondiente.
Información: Este campo contiene una descripción de un error que puede haber ocurrido durante una
acción. El campo está vacío si no se ha producido ningún error.
Hora del sistema: la hora del sistema a la que comenzó la acción, al segundo más cercano.
Tiempo relativo: el tiempo medido desde el inicio de la sesión en línea hasta el milisegundo más
cercano.
Duración: Duración de la acción en milisegundos.

Registro de menú
Cuando la ventana de registro tiene el foco de entrada, la opción de menú Registro aparece en la
barra de menú en lugar de los elementos 'Extras' y 'Opciones'.
El menú incluye los siguientes elementos:
Carga... Se puede cargar un archivo de registro externo *.log y mostrarlo mediante el cuadro de diálogo estándar de apertura de archivos.

El registro que está presente en el proyecto no será sobrescrito por el comando. Si la ventana de
registro se cierra y luego se vuelve a abrir, o se inicia una nueva sesión en línea, la versión cargada se
reemplazará nuevamente por el registro del proyecto.

CoDeSys V2.3 6-19


Configuración del PLC

Salvar... Este elemento de menú solo se puede seleccionar si el registro del proyecto se muestra
actualmente. Permite almacenar un extracto del registro del proyecto en un archivo externo. Para ello, se
desplegará el siguiente cuadro de diálogo, en el que se podrán seleccionar las sesiones Online a almacenar:

Después de una selección exitosa, se abre el cuadro de diálogo estándar para almacenar un archivo ('Guardar registro').
Mostrar registro del proyecto Este comando solo se puede seleccionar si actualmente se muestra un
registro externo. Vuelve a cambiar la pantalla al registro del proyecto.

Almacenamiento del registro del proyecto


Independientemente de si el registro se almacena o no en un archivo externo (ver arriba), el registro del
proyecto se almacena automáticamente en un archivo binario titulado <projectname>.log. Si no se
proporciona explícitamente una ruta diferente en el cuadro de diálogo 'Proyecto', 'Opciones', 'Registro',
el archivo se almacena en el mismo directorio en el que se almacena el proyecto.
El número máximo de sesiones en línea que se almacenarán se puede introducir en el cuadro de
diálogo 'Proyecto', 'Opciones', 'Registro'. Si se supera este número durante la grabación, se elimina la
sesión más antigua para dejar espacio a la más reciente.

6.6 Configuración del PLC


6.6.1 Descripción general

La configuración del PLC se encuentra como un objeto en la tarjeta de registro Recursos en el


Organizador de objetos. Con el editor de configuración de PLC, debe describir el hardware para el que
se establece el proyecto abierto. Para la implementación del programa, el número y la posición de las
entradas y salidas es especialmente importante. Con esta descripción, CoDeSys verifica si las
direcciones IEC utilizadas en el programa también existen realmente en el hardware.
La base para trabajar en el editor de configuración son los archivos de configuración (*.cfg; ver más abajo Nota
sobre la compatibilidad de versiones) y los archivos de dispositivo (.por ejemplo, *.gsd, *.eds). Estos se
almacenan en el directorio que se define en el archivo de destino (consulte Configuración de destino) y se leen
cuando se abre el proyecto en CoDeSys. Puede agregar archivos a estos directorios en cualquier momento.

El archivo de configuración *.cfg describe una configuración básica, que se asigna en el editor de
configuración, y define hasta qué punto el usuario puede personalizar esta configuración en el editor.
Atención: Tan pronto como se haya modificado el archivo de configuración subyacente (*.cfg), debe rehacer la
configuración en CoDeSys.
Nota sobre la compatibilidad de versiones: En CoDeSys V2.2 se implementó un nuevo formato para la configuración
del PLC. A partir de esa versión los archivos de configuración básica tienen que usar la extensión *.cfg. Por el contrario,
el editor de configuración de las versiones anteriores de CoDeSys necesitaba archivos de configuración con una
extensión *.con. Pero: El sistema de destino puede definir que el configurador "antiguo" debe usarse más adelante,
incluso cuando se abre un proyecto antiguo en V2.2 o superior (ver comentarios al final de este capítulo). Esto evita la
necesidad de crear nuevos archivos de configuración, los archivos *.con se pueden usar más adelante. Si el sistema de
destino no es compatible con el configurador antiguo, puede convertir el PLC antiguo

6-20 CoDeSys V2.3


6 - Los recursos

Configuración, que se almacena en el proyecto, al nuevo formato, si (!) se ha proporcionado un nuevo


archivo *.cfg apropiado. Ver más detalles en el Capítulo 6.6.3 'Extras' 'Convertir'.

El editor de configuración de CoDeSys permite configurar módulos de E/S, así como módulos CAN y
Profibus.
Si es compatible con el sistema de destino, existe la posibilidad de obtener información del PLC: 1. un
escaneo de la estructura de hardware real que se puede utilizar directamente en la configuración del
PLC, 2. mensajes de diagnóstico que se mostrarán como mensajes en CoDeSys, 3. información de
estado que se mostrará en el cuadro de diálogo Configuración del PLC
Después de la personalización final por parte del usuario, se envía una imagen binaria de la configuración al PLC:
Ejemplo de configuración de PLC con un módulo de CPU y un módulo CAN

La configuración del PLC se muestra en el editor en estructura de árbol y se puede editar mediante
comandos de menú y diálogos. La configuración contiene elementos de entrada y/o salida y también
elementos de gestión que a su vez también tienen subelementos (por ejemplo, un bus CAN o una
tarjeta de entrada digital con 8 entradas).
Para las entradas y salidas, se pueden asignar nombres simbólicos. La dirección IEC a la que se puede
acceder a esta entrada o salida se encuentra detrás del nombre simbólico.
Posiblemente, el sistema de destino utilizado actualmente define que se utilizará la configuración del PLC CoDeSys
V2.1. En este caso, para obtener ayuda sobre cómo trabajar con la configuración del PLC, consulte la documentación
del usuario sobre CoDeSys V2.1, pero tenga en cuenta las siguientes extensiones en el configurador:

Configurador CAN:
Opción "Crear todos los SDO" en el cuadro de diálogo "Parámetros CAN" de un módulo CAN (véase el
Capítulo 6.6.8). Atención: Los SDO ahora siempre se crean de acuerdo con el mecanismo utilizado en
el configurador V2.3; Por lo tanto, los resultados pueden diferir de los que obtuvo anteriormente.
Edite el campo "Device-Type" en el cuadro de diálogo "Configuración de CAN" de un CanDevice (consulte el Capítulo 6.6.9).

Programador Profibus:
La lista de selección de los módulos Profibus (véase el Capítulo 6.6.7) disponibles para su inserción
ahora está ordenada alfabéticamente por nombres de módulos.

6.6.2 Trabajar en la configuración del PLC


El editor de configuración se divide en dos partes. En la ventana de la izquierda se muestra el árbol de
configuración. La estructura y los componentes del árbol resultan principalmente (configuración estándar) de
las definiciones que se encuentran en el archivo de configuración, pero pueden modificarse mediante la

CoDeSys V2.3 6-21


Configuración del PLC

adaptación adicional que realiza el usuario en el configurador de PLC CoDeSys. En la ventana de la derecha se
muestran los diálogos de configuración disponibles actualmente en una o varias pestañas.

La parte derecha de la ventana es visible por defecto, pero puede desvanecerse a través de la opción
de menú 'Extras' 'Propiedades'.
En la parte superior del árbol de configuración se encuentra la entrada del módulo "root" con un
nombre, que se ha definido en el archivo de configuración.
A continuación encontrará jerárquicamente sangrados los otros elementos de la configuración: módulos
de diferentes tipos (CAN, Profibus, E/S), canales o canales de bits.
El editor de configuración se divide en dos partes. En la ventana de la izquierda se muestra el árbol de
configuración. La estructura y los componentes del árbol resultan principalmente (configuración estándar)
de las definiciones que se encuentran en el archivo de configuración, pero pueden modificarse mediante la
adaptación adicional que realiza el usuario en el configurador de PLC CoDeSys. En la ventana de la derecha
se muestran los diálogos de configuración disponibles actualmente en una o varias pestañas.

La parte derecha de la ventana es visible por defecto, pero puede desvanecerse a través de la opción
de menú 'Extras' 'Propiedades'.
En la parte superior del árbol de configuración se encuentra la entrada del módulo "root" con un
nombre, que se ha definido en el archivo de configuración.
A continuación encontrará jerárquicamente sangrados los otros elementos de la configuración: módulos
de diferentes tipos (CAN, Profibus, E/S), canales o canales de bits.

Selección de elementos
Para seleccionar elementos, haga clic con el ratón en el elemento correspondiente o, con las teclas de
flecha, mueva el rectángulo punteado sobre el elemento deseado.
Los elementos que comienzan con un signo más son elementos de organización y contienen
subelementos. Para abrir un elemento, selecciónelo y haga doble clic en el signo más o pulse <Intro>.
Puede cerrar los elementos abiertos (signo menos delante del elemento) de la misma manera.

Insertar elementos, 'Insertar' 'Insertar elemento', 'Insertar' 'Anexar subelemento'


Dependiendo de las definiciones de los archivos de configuración y de los archivos de dispositivo disponibles, que
se han leído cuando se abrió el proyecto, se coloca automáticamente una composición básica de elementos en el
árbol de configuración. Si se selecciona uno de esos elementos, se pueden agregar más elementos si las
definiciones en el archivo de configuración lo permiten y si los archivos de dispositivo necesarios están
disponibles:
'Insertar' 'Insertar elemento': Se puede seleccionar e insertar un elemento antes del elemento que está
marcado actualmente en el árbol de configuración.
'Insertar' 'Anexar subelemento': Se puede seleccionar un elemento e insertarlo como subelemento del
elemento que está marcado actualmente en el árbol de configuración. Se insertará en la última posición.
Los comandos más importantes se encuentran en el menú contextual (botón derecho del ratón o <Ctrl>+<F10>).

Tenga en cuenta: Si es compatible con el sistema de destino, se puede utilizar un escaneo del hardware existente
para la inserción de módulos en la configuración del PLC CoDeSys.

Sustitución/conmutación de elementos, 'Extras' 'Reemplazar elemento''


Dependiendo de la definición en el archivo de configuración, el elemento seleccionado actualmente
puede ser reemplazado por otro. De la misma manera, puede ser posible cambiar de canal, que se
configuran de manera que se puedan usar como elementos de entrada o salida. Utilice el comando
'Extras' 'Reemplazar elemento'

Nombres simbólicos
Los nombres simbólicos de los módulos y canales se pueden definir en el archivo de configuración. En este
caso, se mostrarán en el editor de configuración antes del 'AT' de la dirección IEC del elemento respectivo.
En el archivo de configuración también se define si el nombre simbólico se puede editar o insertar en el editor
de configuración. Para introducir un nombre simbólico, seleccione el módulo o canal deseado en el árbol de

6-22 CoDeSys V2.3


6 - Los recursos

configuración y abra un campo de texto haciendo clic con el ratón en el 'AT' antes de la dirección IEC. De la
misma manera, puede editar un nombre simbólico existente después de hacer doble clic en el nombre. Tenga
en cuenta que la asignación de un nombre simbólico se corresponde con una declaración de variable válida.

Exportación/Importación de módulos
Si un módulo se define como "exportable" en el archivo de configuración (*.cfg), en el menú contextual
encontrará los comandos 'Exportar módulo' e 'Importar módulo' cuando se seleccione el módulo en el
árbol de configuración.
Con el comando 'Exportar módulo' se abrirá el cuadro de diálogo para seleccionar un archivo. Aquí
puede definir un archivo al que se exportará el módulo en formato XML junto con todos los submódulos
y su configuración. Este archivo se puede importar en otra configuración de PLC mediante el comando
'Importar módulo', si se selecciona un módulo definido adecuadamente en el árbol de configuración.
De este modo, el árbol de configuración de un módulo en particular se puede transferir de forma
sencilla a otra configuración de PLC.

6.6.3 Ajustes generales en la configuración del PLC


Seleccione la entrada 'Configuración del PLC' (módulo 'raíz') en la parte superior del árbol de configuración. A continuación, se
muestra el cuadro de diálogo 'Configuración' en la parte derecha de la ventana. Se pueden activar las siguientes opciones:

Calcular direcciones: A cada módulo recién insertado se le asigna automáticamente una dirección,
que resulta de la dirección del módulo insertado anteriormente más el tamaño de esta dirección. Si se
elimina un módulo de la configuración, las direcciones de los siguientes módulos se ajustan
automáticamente. Cuando se ejecuta el comando 'Extras' 'Compute addresses', se recalcularán todas
las direcciones que comiencen en el nodo (módulo) seleccionado.
Comprobar si hay direcciones superpuestas: En la compilación, se comprobará si el proyecto tiene
direcciones superpuestas y se mostrará el mensaje correspondiente.
Guardar archivos de configuración en el proyecto: La información contenida en los archivos de
configuración *.cfg y los archivos de descripción del dispositivo, que subyacen a la configuración actual
del PLC, se guardarán en el proyecto.
Por lo tanto ( si no está definido por el archivo de configuración, ¡que siempre se debe volver a cargar la
configuración estándar !), la configuración configurada por el usuario se mantendrá en el proyecto, incluso si no se
encuentran los archivos de configuración cuando se vuelve a abrir el proyecto. Tenga en cuenta que, en tal caso, la
configuración completa específica del proyecto se perderá si la opción aquí descrita no está activada.
Al guardar la información de configuración con el proyecto, también se mantendrá en un cambio de
destino. Pero tenga en cuenta en este caso, que el nuevo objetivo podría traer sus propios archivos de
configuración que luego se considerarán adicionalmente.
Cuadro de diálogo para los ajustes generales de la configuración del PLC

El modo global de direccionamiento (direcciones planas / direcciones según Id) en la configuración del
PLC se define en el archivo de configuración.

CoDeSys V2.3 6-23


Configuración del PLC

Recálculo de direcciones de módulos, 'Extras', 'Direcciones de cómputo'


Si la opción "Calcular direcciones" está activada en el cuadro de diálogo "Ajustes" del editor de
configuración del PLC, el comando "Extras" "Calcular direcciones" comenzará a recalcular las
direcciones de los módulos. Se tendrán en cuenta todos los módulos que comiencen por el que esté
seleccionado actualmente en el árbol de configuración.

Agregar archivo de configuración


Utilice este comando en el menú 'Extras' para agregar un archivo adicional a los archivos de configuración
del proyecto. Estos son los archivos que se encuentran en la(s) ruta(s) de directorio especificada(s) en las
opciones del proyecto, categoría 'Directorios', campo de entrada 'Archivos de configuración'.
Se abrirá el cuadro de diálogo Seleccionar archivo de configuración, donde puede establecer un filtro para
archivos CAN- (*.eds,*. dcf), Profibus- (gsd*.*), configuración- (*.cfg)-o todos los archivos (*.*). Después de haber
seleccionado el archivo deseado, se comprobará si el archivo ya se encuentra en uno de los directorios definidos
para los archivos de configuración. En este caso, aparecerá un mensaje apropiado y no se podrá agregar el
archivo. Si se selecciona un archivo cfg, en cada caso se abrirá un cuadro de diálogo donde obtendrá información
sobre qué hacer.
Si se puede agregar el archivo, aparecerá en una lista de selección el cuadro de diálogo
Seleccionar directorio de configuración, donde todos los directorios de configuración definidos
actualmente para el proyecto. Elija el directorio donde se debe copiar el archivo en el que se debe
copiar el archivo. Después de haber confirmado esta selección pulsando el botón OK, el cuadro de
diálogo se cerrará y el archivo estará disponible inmediatamente en la configuración del PLC.
Volver a la configuración estándar, 'Extras' 'Configuración estándar'
El comando 'Extras' 'Standardconfiguration' se puede utilizar para restaurar la configuración original del
PLC, que se define mediante el archivo de configuración *.cfg y se guarda en el proyecto.

Atención: En el fichero de configuración *.cfg se puede definir que la configuración estándar debe ser restaurada
en cada reapertura del proyecto. En este caso, todas las adaptaciones de la configuración realizadas por el usuario
se perderán.

Conversión de configuraciones de PLC antiguas, 'Extras' 'Convertir'


Este comando está disponible en el menú 'Extras' si se abre un proyecto que contiene una configuración de
PLC, que se creó con una versión anterior de CoDeSys a la V2.2. Si todos los archivos de configuración
necesarios están disponibles, el comando 'Convertir' transferirá la configuración existente al formato de la
configuración real del PLC. Se abrirá un cuadro de diálogo que pregunta "¿Convertir la configuración al nuevo
formato? Atención: ¡Deshacer no es posible!" Puede seleccionar Sí o No. Si cierra el cuadro de diálogo con Sí,
el editor de configuración también se cerrará. Vuelva a abrirlo y verá la configuración en el nuevo formato.
Tenga en cuenta que después de haber convertido, el formato anterior ya no se puede restaurar.

6.6.4 Diálogo de parámetros específicos personalizados


Las posibilidades de parametrización del configurador pueden ampliarse mediante el uso de una DLL
específica de la aplicación, que es un diálogo individual. Esta DLL 'Hook' debe estar en ese directorio
que contiene el archivo de configuración y luego se puede vincular mediante una entrada en la
configuración file.to un módulo o canal. Si se hace así, para los módulos en cuestión, el cuadro de
diálogo estándar "Parámetros del módulo" se sustituirá por un cuadro de diálogo definido en la DLL.

6-24 CoDeSys V2.3


6 - Los recursos

Ejemplo de un cuadro de diálogo de parámetros específicos de la aplicación (Parámetros personalizados)

6.6.5 Configuración de un módulo de E/S

Parámetros básicos de un módulo de E/S


Si se selecciona un módulo de E/S en el árbol de configuración, se muestra el cuadro de diálogo
'Parámetros base' con las siguientes entradas:
ID del módulo: El id del módulo es un identificador único del módulo dentro de toda la configuración.
Está definido por el archivo de configuración y no es editable en el editor de configuración.
ID de nodo: El ID de nodo se puede definir mediante una entrada en el archivo de configuración o, si
no hay entrada, por la posición del módulo en la estructura de configuración.
Dirección de entrada, Dirección de salida, Dirección de diagnóstico: Direcciones de entrada y
salida respectivamente para el almacenamiento de datos de diagnóstico.
Estas direcciones se refieren al módulo. Depende de la configuración general, qué direcciones ya están
predefinidas, qué modo de dirección es válido y si las direcciones se pueden seguir editando aquí.
Comentario: Aquí se puede introducir texto informativo adicional sobre el módulo.
Descripción del módulo de carga: Si esta opción está desactivada, el módulo no se tendrá en cuenta
en la descarga del proyecto. De forma predeterminada, la opción está activada y se define en el archivo
de configuración *.cfg si es visible y editable en el diálogo de configuración.
No adaptar la dirección automáticamente: Esta opción solo está disponible si está definida por el
archivo de configuración. Si se activa, el módulo no se tendrá en cuenta en caso de un nuevo cálculo
de las direcciones. (Predeterminado: la opción está desactivada).

CoDeSys V2.3 6-25


Configuración del PLC

Diálogo de parámetros básicos para un módulo de E/S

El diagnóstico en la configuración del PLC:


El campo Dirección de diagnóstico sirve para especificar una dirección de marcador en la que se
escribirá automáticamente la información de diagnóstico (estado del bus).
En el caso de los módulos de E/S normales, depende de la configuración especial del hardware cómo
se gestionará el diagnóstico. Para sistemas de bus como CAN o Profibus DP, el diagnóstico funciona
como se describe a continuación: A partir de la dirección de diagnóstico dada se almacenará diversa
información relativa a la estructura GetBusState, que forma parte de una biblioteca correspondiente
entregada por el fabricante (por ejemplo, BusDiag.lib de 3S - Smart Software Solutions). Todos los
módulos de bus reciben una solicitud para completar la estructura de diagnóstico en una secuencia
cíclica cada vez que una tarea IEC ha escrito o leído datos de proceso hacia/desde los módulos.
• Análisis de diagnóstico a través del bloque de funciones DiagGetState:
Tan pronto como al menos un módulo del sistema de bus produce un error, la información de
diagnóstico específica se puede leer utilizando el bloque de función DiagGetState, que también forma
parte de la biblioteca mencionada anteriormente. Esta función solo está disponible para los maestros
de bus, que se han configurado dentro de la configuración del PLC CoDeSys.
Para poder analizar los datos de diagnóstico dados en la estructura GetBusState, se debe asignar una
variable de tipo GetBusState a la dirección del marcador (dirección de diagnóstico), por ejemplo:
Sugerencia de autobús AT %MB12: GetBusAd;

A continuación se muestran los parámetros de entrada y salida del bloque de funciones DiagGetState.
Defina una instancia de este bloque de funciones en su proyecto CoDeSys para leer la información de
diagnóstico de un módulo de bus específico:
Variables de entrada de DiagGetState:

HABILITAR: BOOL; En un flanco ascendente de ENABLE, el bloque de funciones comienza a funcionar

DRIVERNAME:PUNTERO A Nombre del conductor (dirección del nombre) al que se debe enviar
LA CADENA; la solicitud de diagnóstico. Si aquí se ingresa un 0, la solicitud de
diagnóstico se enviará a todos los conductores presentes.

NÚMERO DE Identificación del autobús que es gestionado por el conductor. Por


DISPOSITIVO:INT; ejemplo: el conductor de Hilscher puede manejar hasta 5 tarjetas
(buses). El índice se basa en 0.
BUSMEMBERID:DWORD ; Identificación única específica del bus/conductor del módulo de bus (por
ejemplo: para una tarjeta CANopen, este es el NodeID, para una tarjeta
PB-DP, esta es la dirección de la estación del participante, etc.)

6-26 CoDeSys V2.3


6 - Los recursos

Variables de salida de DiagGetState

LISTO:BOOL ; VERDADERO: se ha finalizado el trabajo en la


solicitud de diagnóstico

ESTADO:INT; Si READY = TRUE, STATE obtiene uno de los siguientes


valores que definen el estado real del bloque de
funciones: -1: parámetro de entrada no válido
(NDSTATE_INVALID_INPUTPARAM:INT;) 0: el bloque
de funciones no funciona
(NDSTATE_NOTENABLED:INT;) 1: el bloque de
funciones solo está leyendo la información de diagnóstico
(NDSTATE_GETDIAG_INFO:INT;) 2: la información de
diagnóstico ya está disponible
(NDSTATE_DIAGINFO_AVAILABLE: INT;) 3: no hay
información de diagnóstico disponible
(NDSTATE_DIAGINFO_NOTAVAILABLE:INT;)

EXTENDEDINFO: Hasta 100 bytes de datos de diagnóstico específicos del


ARRAY[0..129] DE BYTE; fabricante del bus.

• Análisis de diagnóstico alternativo a través del bloque de funciones DiagGetBusState:


Si se especifica una dirección de diagnóstico en la configuración, el estado del bus se actualizará en
segundo plano. Si no se especifica ninguna dirección de diagnóstico o si no se ha realizado ninguna
configuración en CoDeSys, entonces, si es compatible con el sistema de destino, se puede crear una
instancia del bloque de función DiagGetBusState y llamarlo explícitamente para obtener datos de diagnóstico
del bus. Este bloque de funciones, como DiagGetState, también debe estar disponible en una biblioteca
específica del fabricante, por ejemplo, BusDiag.lib de 3S - Smart Software Solutions GmbH.

El módulo, a excepción de BusMemberID, utiliza los mismos parámetros de entrada y salida. Sin
embargo, los parámetros STATE y EXTENDEDINFO tienen el siguiente significado diferente:

ESTADO:INT; Si READY = TRUE, STATE obtiene uno de los siguientes valores que definen el
estado real del bus: BUSSTATE_BUSOK (El bus funciona correctamente)
BUSSTATE_BUSFAULT (Error de bus) BUSSTATE_BUSNOTCOMMUNICATING (Error de
comunicación) BUSSTATE_BUSSTOPPED (El bus está detenido)

EXTENDEDINFO:ARRAY[0..129] Datos de diagnóstico específicos del fabricante del miembro del


bus; DE BYTE; Solo se utilizan los tres primeros bits del byte: Bit 0: el miembro del bus está
configurado Bit 1: el miembro del bus está activo Bit 2: el miembro del bus informa de un error, la
información detallada se puede obtener a través de DiagGetState() *)

CoDeSys V2.3 6-27


Configuración del PLC

Parámetros del módulo / Parámetros personalizados de un módulo de E/S


Diálogo de parámetros del módulo

En este cuadro de diálogo se muestran los parámetros dados por el archivo del dispositivo. Solo se
puede editar la columna 'valor'.
Índice: El índice es un dígito consecutivo (i), que numera a lo largo de todos los parámetros del
módulo.
Nombre: Nombre del parámetro
Valor : Valor del parámetro, editable
Inicialmente, se muestra el valor predeterminado. Los valores se pueden establecer directamente o por medio de
nombres simbólicos. Si las entradas del archivo de configuración no están configuradas como 'Solo lectura', se
pueden editar. Para hacer eso, haga clic en el campo de edición o seleccione una de las entradas en una lista de
desplazamiento. Si el valor es un nombre de archivo, puede abrir el cuadro de diálogo 'Abrir archivo' haciendo
doble clic y buscar otro archivo allí.
Predeterminado: Valor predeterminado de los parámetros
Min.: valor mínimo del parámetro (solo si no se utilizan nombres simbólicos)
Max.: valor máximo del parámetro (sólo si no se utilizan nombres simbólicos)
Una información sobre herramientas puede proporcionar información adicional sobre el parámetro marcado actualmente.
En lugar del cuadro de diálogo Parámetros del módulo, puede haber un cuadro de diálogo específico
del cliente. Esto se debe al hecho de que dicho diálogo está vinculado por una entrada (Hook-DLL) en
la definición del módulo en el archivo de configuración.

6.6.6 Configuración de un canal

Parámetros base de un canal


Channel-Id: Identificador único global del canal
Clase: Define si el canal se utiliza como entrada (I), salida (Q) o como entrada y salida (I&Q), o si es
conmutable (I|Q). Si el canal es conmutable, esto se puede hacer con el comando 'Extras' 'Reemplazar
elemento'.
Tamaño: Tamaño del canal [Byte]
Identificador predeterminado: Nombre simbólico del canal
El nombre del canal se define en el archivo de configuración. Solo si está permitido por la definición del
módulo padre, el nombre del canal se puede editar en el árbol de configuración.
Comentario: Información adicional sobre el canal En el

6-28 CoDeSys V2.3


6 - Los recursos

campo de edición se puede insertar o modificar un comentario.

Dirección: Este campo de edición solo estará disponible si se activó mediante una entrada en el archivo
de configuración. Inserte la dirección deseada para el canal.
Cuadro de diálogo de parámetros base para un canal

Parámetros del canal


En correspondencia con el cuadro de diálogo Parámetros del módulo, el cuadro de diálogo Parámetros
del canal se utiliza para mostrar y modificar los parámetros de un canal: Índice, Nombre, Valor,
Predeterminado, Mín., Máx. Este cuadro de diálogo también puede ser reemplazado por un cuadro
de diálogo específico del cliente 'Parámetros personalizados'.
Canales de bits
Los canales de bits se insertan automáticamente cuando a canal es definido con un entrada
CreateBitChannels=TRUE en el archivo de configuración.

El cuadro de diálogo Parámetros base de los canales de bits solo contiene el campo Comentario.

6.6.7 Configuración de los módulos Profibus


CoDeSys soporta una configuración de hardware correspondiente al estándar profibus DP. En el
sistema profibus se encuentran los módulos maestro y esclavo. A cada esclavo se le proporciona un
parámetro establecido por su maestro y suministra datos a petición del maestro.
Un sistema PROFIBUS DP consta de uno o varios maestros y sus esclavos. En primer lugar, los módulos
deben configurarse de forma que sea posible un intercambio de datos a través del bus. En la inicialización
del sistema de bus, cada maestro parametriza los esclavos que le son asignados por la configuración. En un
sistema de bus en funcionamiento, el maestro envía y/o solicita datos a/desde los esclavos.

La configuración de los módulos maestro y esclavo en CoDeSys se basa en los archivos gsd adjuntos
a ellos por el fabricante del hardware. Para ello, se considerarán todos los archivos gsd que se
almacenan en el directorio de archivos de configuración (consulte el Capítulo 4.2, Opciones del
proyecto: Directorios). Los módulos descritos por un archivo gsd se pueden insertar en el árbol de
configuración y sus parámetros se pueden editar allí.
Debajo de un maestro se pueden insertar uno o varios esclavos.
Si se selecciona un maestro DP en el árbol de configuración, los siguientes diálogos estarán disponibles en la
parte derecha de la configuración: Parámetros base, Parámetro DP, Parámetros de bus, Parámetros de módulo.

Si se selecciona un esclavo DP, que se inserta debajo de un maestro DP, pueden estar disponibles los
siguientes diálogos (dependiendo de las definiciones en el archivo de configuración): Parámetros base,
Parámetro DP, Entrada/Salida, Parámetros de usuario, Grupos, Parámetros del módulo. Dependiendo de la
configuración del archivo de configuración, el cuadro de diálogo "Parámetro DP" puede tener otro título.

Si se inserta un esclavo DP en el nivel de un maestro, los siguientes diálogos están disponibles para la
configuración: Parámetros base, Parámetros DP, Entrada/Salida, Parámetros del módulo.

CoDeSys V2.3 6-29


Configuración del PLC

Parámetros básicos del maestro DP


El cuadro de diálogo Parámetros base de un maestro DP coincide con el de los otros módulos
(consulte el capítulo 6.6.5, 'Parámetros básicos de un módulo de E/S').

Parámetros del módulo del maestro DP


El cuadro de diálogo Parámetros del módulo de un maestro DP coincide con el de los otros módulos:
Aquí se muestran los parámetros asignados al maestro, además de los parámetros DP y bus en el
archivo de configuración, y los valores se pueden editar en el caso estándar (consulte el Capítulo 6.6.5
'Parámetros del módulo de un módulo de E/S').

Parámetros DP del maestro DP


Este cuadro de diálogo muestra los siguientes parámetros extraídos del archivo de dispositivo del maestro
DP (el cuadro de diálogo puede tener un título diferente, que se define en el archivo de configuración):

Información Fabricante, Revisión GSD, ID ( número de identificación ), Versión HW y Versión SW


(versión de hardware y software), GSD-Nombre de archivo
Direcciones Dirección de estación: El rango permitido se extiende de 0 a 126. A cada dispositivo
recién insertado en una línea de bus se le proporciona automáticamente la siguiente
dirección superior. (nota: La dirección 126 es la dirección esclava DP predeterminada). La
entrada manual es posible; Las direcciones se prueban para detectar duplicaciones.
Dirección de estación más alta: Se muestra la dirección de estación más alta (HSA)
asignada en el bus. Aquí, también se puede ingresar una dirección más baja para
reducir el rango GAP (es decir, el rango de direcciones dentro del cual se lleva a cabo
la búsqueda de dispositivos recién activos).

Modo Modo de borrado automático: Si esta opción está activada, las salidas de los
esclavos pasarán a un estado de guardado en caso de error y el maestro cambiará del
estado "operar" a "borrar".
Inicio automático: Si esta opción no está activada, el maestro debe iniciarse
manualmente. Sin embargo, depende del controlador, si se evalúa la configuración.

El archivo GSD perteneciente a un dispositivo se puede abrir y examinar Botón Archivo GSD.
usando el botón

Cuadro de diálogo de parámetros de DP para el maestro de DP

6-30 CoDeSys V2.3


6 - Los recursos

El botón Grupos lleva al cuadro de diálogo 'Propiedades del grupo'. Las propiedades de grupo pertenecen a
los esclavos asignados al maestro. Se pueden configurar hasta ocho grupos. Para cada grupo, introduzca si
va a funcionar en modo de congelación y/o en modo de sincronización. Al asignar esclavos (ver
'Propiedades del esclavo DP', 'Asignación de grupos') a varios grupos, el intercambio de datos del maestro
se puede sincronizar a través de un comando de control global. Con un comando Freeze, un maestro
instruye a un esclavo o a un grupo para que "congele" las entradas en su estado instantáneo y transfiera
estos datos en el siguiente intercambio de datos. Con un comando Sync, se instruye a los esclavos para que
cambien síncronamente para generar en el siguiente comando Synch todos los datos recibidos del maestro
después del primer comando.
Para activar o desactivar las opciones de congelación y sincronización de un grupo, haga clic con el
botón izquierdo del ratón en la ubicación adecuada de la tabla para colocar o eliminar una "X" junto a la
opción deseada, o utilice el botón derecho del ratón para activar o desactivar la opción a través de un
menú contextual. Además, puede editar el nombre del grupo aquí.
Parámetros DP del cuadro de diálogo Maestro DP / Propiedades de grupo

Parámetros de bus del maestro DP


Los parámetros del bus describen el tiempo de la comunicación. Si la opción Usar valores
predeterminados está activada, los valores de los parámetros se calcularán automáticamente en función de
la velocidad de transmisión establecida por el usuario y la configuración dada por los archivos GSD.

Atención:: ¡Los valores calculados automáticamente son solo valores aproximados!

Parámetros de bus del maestro DP

CoDeSys V2.3 6-31


Configuración del PLC

Todos los parámetros también se pueden editar manualmente.

Velocidad Las entradas que ya están presentes en el archivo GSD están disponibles para su selección, pero solo un
Se puede introducir la velocidad de transmisión soportada por todos los esclavos.
Usar valores predeterminados
Si la opción está activada, las entradas realizadas en el cuadro de diálogo 'Parámetros del bus' serán
optimizado con respecto a las especificaciones de los archivos GSD; Solo es posible
Edite los valores si la opción está desactivada.
Importante: Los valores calculados automáticamente son solo valores aproximados.

Tiempo máximo durante el cual el maestro espera, después de enviar un mensaje de solicitud, la receta
del primer carácter del mensaje de respuesta del esclavo
Retardo mínimo de la estación TSDR (en tbit): tiempo mínimo de reacción después del cual una
estación del bus puede responder (mín. 11 tBit)
Max.Station Delay max. TSDR (en tbit): intervalo de tiempo máximo dentro del cual un esclavo debe responder.

Quiet Time TQUI (en tbit): período de inactividad que debe tenerse en cuenta durante la conversión de
señales NRZ (Non Return to Zero) a otras codificaciones (tiempo de conmutación para repetidor)
TTR de rotación objetivo (en tbit): ajuste del tiempo de ciclo del token; intervalo de tiempo proyectado en
el que un tiempo maestro debe recibir el token. Resultado de la suma de los tiempos de parada
simbólicos de todos los maestros en el autobús.
Factor de actualización de GAP Factor G de actualización de GAP: número de ciclos de bus después
de los cuales se busca en el GAP del maestro (rango de direcciones desde su propia dirección de bus
hasta la dirección de la siguiente estación activa) una estación activa adicional recién insertada.
Máx. Reintento Límite máximo de intentos de solicitud repetidos por parte del maestro cuando no ha
recibido una respuesta válida del esclavo
Intervalo mínimo esclavo Tiempo entre dos ciclos de bus en el que el esclavo puede procesar una
solicitud del maestro (base de tiempo 100 s). El valor introducido aquí debe comprobarse con las
especificaciones respectivas en el archivo GSD del esclavo.
Tiempo de espera de sondeo: Tiempo máximo después del cual el solicitante debe recuperar la respuesta del
maestro mediante una comunicación maestro-maestro (maestro DP de clase 2) (base de tiempo 1 ms).

Tiempo de control de datos Tiempo en el que el maestro informa de su estado a los esclavos asignados
a él. Al mismo tiempo, el maestro supervisa si se ha producido al menos un intercambio de datos con
los esclavos dentro de este período y actualiza el Data_Transfer_List.
Tiempo de guardián Valor de tiempo para la supervisión de acceso (guardián). Actualmente no se
admite la configuración (se ha fijado en 400 ms)

Parámetros básicos de un esclavo DP


El diálogo Parámetros base de un esclavo DP coincide con el de los otros módulos (véase el capítulo
6.6.5, 'Parámetros base de un módulo de E/S').
Diálogo de parámetros base para un esclavo DP

6-32 CoDeSys V2.3


6 - Los recursos

Parámetros DP de un esclavo DP
Este diálogo muestra los siguientes parámetros extraídos del archivo de dispositivo del esclavo DP (el
diálogo puede tener un título diferente, que se define en el archivo de configuración):
Diálogo de parámetros DP para un esclavo DP

Información Fabricante , Revisión GSD, Versión HW y Versión SW (versión hardware y


software), Nombre de archivo GSD, Tipo esclavo
Parámetro estándar Número de identificación: Número de identificación único asignado por el
PNO para este tipo de dispositivo. Permite una referencia inequívoca entre un
esclavo DP y el archivo GSD correspondiente.
TSDR (Tbit*): Time Station Delay Responder: Tiempo de reacción, el tiempo
más temprano después del cual se permite que el esclavo responda al
maestro. (mín. 11 TBit) * TBit: Unidad de tiempo para la transferencia de un bit
en el PROFIBUS; Valor recíproco de la velocidad de transmisión; por ejemplo,
1 TBit a 12MBaud=1/12.000.000 Bit/sek=83ns Bloquear/Desbloquear: El
esclavo se bloquea o se libera a otros maestros: 0: min. TSDR y los
parámetros específicos del esclavo se pueden sobrescribir 1: Esclavo liberado
a otros maestros, 2: Esclavo bloqueado a otros maestros, se aceptan todos
los parámetros; 3: Esclavo liberado a otros amos

Identificación Dirección de la estación (véase 'Propiedades de los maestros DP'), nombre de la estación
(coincide con el nombre del dispositivo, editable)
Activación El esclavo está activo/inactivo en la configuración actual. Si no se selecciona la
activación, los datos de configuración se transferirán al acoplador en la
descarga, pero no se producirá el intercambio de datos a través del bus.
Perro guardián Si el control de vigilancia está activado, se aplica el tiempo de vigilancia introducido
(supervisión de acceso, base 10 ms). Si el maestro no ha accedido al esclavo dentro
de este tiempo, se restablece a su estado de inicialización. Puede inspeccionar el

CoDeSys V2.3 6-33


Configuración del PLC

archivo GSD correspondiente a través del botón GSD-File.

Entrada/Salida de un esclavo DP
Cuadro de diálogo para configurar las entradas/salidas de un esclavo DP

La forma en que se realiza la configuración de un esclavo DP depende de si se trata de un esclavo


'modular' o 'no modular', 'fijo'.
La selección del módulo para un esclavo modular se realiza como se describe a continuación:
En la lista de la parte izquierda del cuadro de diálogo, seleccione el módulo de entrada o salida deseado y
presione el botón Seleccionar para acceder a la ventana de la derecha. Las entradas incorrectas en esa
ventana se pueden corregir a través del botón Eliminar. Los módulos insertados se mostrarán
inmediatamente en el árbol de configuración. Si se seleccionan allí, estará disponible el cuadro de diálogo
correspondiente Profibus Modul, que muestra la dirección de entrada, salida y diagnóstico del módulo. Si
selecciona un canal que se ha insertado con el módulo, se abrirá el cuadro de diálogo Profibus Channel,
que muestra la dirección del canal. Para cada uno de estos dos diálogos se puede definir un título diferente
mediante una configuración en el archivo de configuración.
Dado que deben respetarse las longitudes máximas de datos especificadas en el archivo GSD
(longitud máxima de los datos de entrada, longitud máxima de los datos de salida, longitud
máxima de los datos de entrada/salida) y el número máximo de módulos (número máximo de
módulos), esta información se muestra en ambas listas de módulos. El bloque izquierdo muestra los
valores máximos posibles para el dispositivo, el derecho los valores resultantes de sumar los valores
seleccionados en la configuración. Si se superan los valores máximos, se emite un mensaje de error.
El cuadro de diálogo enumera en la ventana de la izquierda todos los módulos de entrada y salida
disponibles en el archivo GSD del esclavo, mientras que la ventana de la derecha contiene la
configuración seleccionada actualmente para este dispositivo en relación con las entradas y salidas.
Si se trata de un esclavo modular (un dispositivo que puede equiparse con varios módulos de E/S), la selección se
realiza de la siguiente manera: En la lista de la izquierda, el módulo de entrada o salida deseado se selecciona con
un clic del ratón y se copia en la ventana de la derecha con el botón Seleccionar >>. Las entradas incorrectas se
pueden corregir seleccionando el módulo no deseado en la ventana de la derecha y pulsando el botón Eliminar.

Este tipo de selección no es posible para esclavos no modulares. Estos imponen directamente una
visualización cerrada de sus entradas y salidas en la ventana derecha. Los módulos no deseados se
pueden eliminar seleccionando y usando Eliminar.
El botón Propiedades conduce al cuadro de diálogo "Propiedades del módulo" para el módulo de entrada o
salida seleccionado actualmente en la lista izquierda o derecha. Muestra el nombre, la configuración
(codificación de la descripción del módulo según el estándar PROFIBUS) y las longitudes de entrada y
salida del módulo en bytes. Si la descripción del módulo en el archivo GSD contiene parámetros específicos

6-34 CoDeSys V2.3


6 - Los recursos

además del conjunto estándar, estos se enumeran aquí con sus valores y rango de valores. Si la opción
Nombres simbólicos está activada, se utilizan los nombres simbólicos.

Parámetros de usuario de un esclavo DP


Cuadro de diálogo de parámetros de usuario para un esclavo DP

Aquí se enumeran varios parámetros ampliados de un esclavo DP, definidos en el archivo GSD. Los parámetros
muestra el nombre del parámetro. Los valores de los parámetros introducidos en la columna Valor se pueden
modificar haciendo doble clic o con el botón derecho del ratón. Además, se especifica el rango de valores.

Si también se especifican nombres simbólicos para los parámetros en el archivo GSD, se puede
activar la opción Nombres simbólicos , de modo que los valores se puedan mostrar con estos
nombres. A título informativo, la longitud de los parámetros de usuario también se proporciona
encima de la tabla.
Asignación de grupo de un esclavo DP
Diálogo para la asignación de grupos de un esclavo DP

Este diálogo se utiliza para asignar el esclavo a uno o más de los ocho grupos posibles. Las propiedades de grupo
de aplicación universal (Sync. Por otro lado, el modo y/o el modo de congelación se definen durante la
configuración de las propiedades del maestro (consulte más arriba 'Parámetros DP del maestro DP, Propiedades
de grupo'). También se puede acceder a este cuadro de diálogo a través del botón Propiedades de grupo
global .
Los grupos a los que está asignado el esclavo están marcados con un signo más. La asignación o
eliminación de un grupo se realiza seleccionando el nombre del grupo en la Pertenencia al grupo

CoDeSys V2.3 6-35


Configuración del PLC

y pulsando 'Añadir esclavo al grupo' o 'Eliminar esclavo del grupo' con el botón derecho del ratón, o
haciendo clic de nuevo con el ratón a la izquierda del nombre del grupo.
Un dispositivo esclavo sólo puede asignarse a aquellos grupos cuyas propiedades admite. Las
propiedades correspondientes de cada esclavo (Sync. Modo/Modo de congelación) se muestran
encima de la tabla. Se comprueban los modos admitidos por el dispositivo.

Parámetros del módulo de un esclavo DP


El diálogo de parámetros del módulo de un esclavo DP coincide con el de los otros módulos (véase el
capítulo 6.6.5). Aquí se muestran los parámetros asignados al esclavo, además de los parámetros DP y
de usuario en el archivo de configuración, y los valores se pueden editar en el caso estándar.

Propiedades de un esclavo DP en el funcionamiento esclavo del Profibus


Si un Profibus se ejecuta en modo esclavo, el dispositivo esclavo se inserta en el nivel maestro del árbol de
configuración. La configuración se puede realizar en los siguientes cuadros de diálogo (para obtener una descripción,
consulte los capítulos anteriores):
Parámetros básicos
Parámetros de DP
Parámetros del módulo
Entrada/Salida

6.6.8 Configuración de los módulos CANopen


CoDeSys soporta una configuración de hardware de acuerdo con el Borrador de la Norma 301 de
CANopen. La configuración es similar a la descrita para la configuración dependiente del hardware.
Todos los archivos EDS (Hoja de Datos Electrónica) o DCF (Archivo de Configuración del Dispositivo) que se
almacenan en el directorio de archivos de configuración (consulte el Capítulo 4.2, Opciones del Proyecto:
Directorios) cuando se inicia CoDeSys, pueden integrarse, editarse y mostrarse en la configuración de acuerdo
con la descripción en el archivo de configuración *.cfg. En el archivo EDS se describen las opciones de
configuración de un módulo CAN. Si se añade un módulo, que se describe en un archivo DCF, sólo se pueden
modificar las direcciones IEC, ya que el módulo ya se ha configurado completamente en un configurador CAN.

Los módulos CAN obtienen una configuración que describe su comportamiento dependiente del tiempo
y de los errores durante el intercambio de mensajes (cuadro de diálogo 'Parámetros CAN de un módulo
CAN'). Más adelante, para cada módulo, el mapeo de los PDOs (Process Data Objects), que sirven
para enviar y recibir (diálogos 'Recibir...' resp. 'Enviar PDO-Mapping'). Los valores de los SDO (objetos
de datos de servicio) disponibles se pueden adaptar (cuadro de diálogo 'Objetos de datos de servicio').
Los parámetros adicionales de un módulo CAN o CAN Master, especificados en el archivo de
descripción del dispositivo, se pueden configurar en el cuadro de diálogo 'Parámetros de módulo'.
Si un PLC programable por CoDeSys debe integrarse en una red CAN como esclavo CANopen (también
llamado "nodo CANopen" y en lo sucesivo denominado "dispositivo CAN"), se puede configurar en el
configurador de PLC CoDeSys y la configuración se puede almacenar en forma de archivo EDS. Este
archivo de descripción del dispositivo se puede utilizar en cualquier configuración CANopen Master deseada.

En los capítulos siguientes se describen los diálogos y los comandos de menú del configurador
CANopen. Para más información, consulte el documento "CANopen für 3S Laufzeitsysteme
V<version>.pdf".
Parámetros básicos de un maestro CAN
El diálogo Parámetros base de un maestro CAN coincide con el de los otros módulos (consulte el
capítulo 6.6.5, 'Parámetros base de un módulo de E/S').

Parámetros CAN de un maestro CAN


Las propiedades para la transmisión en el bus CAN se pueden configurar directamente después de la
inserción del módulo o se pueden llamar con el comando 'Extras', 'Propiedades'.
Con la opción de selección, establezca la velocidad de transmisión requerida a la que debe

6-36 CoDeSys V2.3


6 - Los recursos

realizarse la transmisión. Se diferencia entre modos de transmisión síncronos y asíncronos (ver


propiedades de PDO) para PDO's (Process Data Object). El mensaje de sincronización se envía con un
número único Sync. COB-ID (Identificador de Objeto de Comunicación) en el intervalo en
microsegundos que viene dado por el Período de Ciclo de Comunicación. Los PDO síncronos se
transmiten directamente después del mensaje de sincronización en la ventana de tiempo (Sync.
Longitud de la ventana en microsegundos). No se enviará ningún mensaje de sincronización si los
campos Comm. Cycle Period y Sync. La longitud de la ventana contiene 0.
activate: Solo si esta opción está activada, los mensajes de sincronización se transmitirán entre el
maestro y los esclavos.
Node-Id: sirve para identificar el módulo CAN de forma única y corresponde al número establecido en
el propio módulo, que está entre 1 y 127. El Id debe introducirse como un número decimal. ( ¡No
confunda con el 'Número de nodo'!)
Cuadro de diálogo de parámetros CAN para un maestro CAN

El bus CAN se inicializará e iniciará automáticamente cuando se produzca la descarga y cuando se


inicie el sistema del controlador si la opción Inicio automático está activada. El bus CAN debe iniciarse
en el proyecto si esta opción no está activa.
Si se activa la opción Soporta DSP301, V3.01 y DSP306, se soportarán los esclavos CAN
modulares, así como algunas extensiones adicionales relativas a los estándares DSP301 V3.01 y
DSP306. En este caso, por ejemplo, la carrera del latido del corazón será ajustable (Heartbeat Master
[ms]:). Trabajar con Heartbeats es un mecanismo de protección alternativo: A diferencia de la
funcionalidad de protección de nodos, puede ser ejecutado por módulos maestro y esclavo. Por lo
general, el maestro estará configurado para enviar latidos a los esclavos.

Parámetros del módulo de un CAN-Master


El diálogo de parámetros del módulo de un maestro CAN es el mismo que el de los otros módulos
(véase el capítulo 6.6.5): Aquí se muestran los parámetros que se han asignado adicionalmente al
maestro en el archivo de configuración y, por defecto, se pueden editar los valores.

Parámetros básicos de un módulo CAN


El cuadro de diálogo Parámetros base de un maestro DP coincide con el de los otros módulos
(consulte el capítulo 6.6.5, 'Parámetros básicos de un módulo de E/S').
Las direcciones IEC por las que se pueden direccionar los PDO (Process Data Object) en el proyecto
se introducen para las direcciones de salida y entrada, por lo que la dirección (entrada o salida) se
define desde la vista del módulo.

CoDeSys V2.3 6-37


Configuración del PLC

Se debe proporcionar una dirección de marcador en la dirección de diagnóstico del módulo CAN.
Funciona como se describe para el maestro CAN.

Parámetros CAN de un módulo CAN


Los parámetros CAN de un módulo CAN, que no actúa como maestro (vigilancia global del bus), son
diferentes a los de un maestro CAN.
Cuadro de diálogo de parámetros CAN para un módulo CAN

Sección General:
El Node-Id sirve para identificar el módulo CAN de forma única y corresponde al número establecido
en el propio módulo, que está entre 1 y 127. El Id debe introducirse como un número decimal.
Si se activa la escritura DCF, se creará un archivo DCF después de insertar un archivo EDS en el
directorio definido para los archivos compilados cuyo nombre se compone del nombre del archivo EDS
y el ID de nodo que se agrega al final.
Si la opción Crear todos los SDO está activada, se crearán SDO para todos los objetos (no solo para
los que han sido modificados).
Si se activa la opción Restablecer nodo (la disponibilidad depende del contenido del archivo de
descripción del dispositivo), el esclavo se reiniciará antes de descargar la configuración.
Si la opción Dispositivo opcional está activada (la disponibilidad en el cuadro de diálogo depende del
objetivo), el maestro solo intentará leer una vez desde este nodo. Entonces el nodo, si no responde,
será ignorado, es decir, el maestro volverá al modo de funcionamiento normal.
Si se activa la opción Sin inicialización (la disponibilidad en el cuadro de diálogo depende del destino),
el maestro activará inmediatamente el nodo, sin enviar SDO de configuración. (No obstante, los datos
SDO se crearán y guardarán en el controlador).

6-38 CoDeSys V2.3


6 - Los recursos

Si el destino lo admite, la creación de SDO se puede suprimir en tres niveles. Esto puede ser deseable
en caso de tener un espacio limitado para la configuración:

Atención: ¡Estos ajustes no deben modificarse sin tener un conocimiento detallado del sistema!

CreateCommSDOs: SDO de parámetros de comunicación


CreateMappingSDOs: Asignación de SDO de configuración
CreateBasicSDOs: Parámetros básicos SDOS (Nodeguarding, Sync, etc.)
Solo para los tipos activados se crearán los SDO apropiados. La opción descrita anteriormente
'Crear todos los SDO's' solo se refiere a los tipos de SDO actualmente activados aquí.
Protección de nodo de sección: (alternativa a la protección mediante el mecanismo Heartbeat)
Si la opción Nodeguarding está activada, se enviará un mensaje al módulo de acuerdo con el intervalo
establecido por Guard Time en milisegundos. Si el módulo no envía un mensaje con el Guard COB-ID
(Identificador de objeto de comunicación) dado, recibirá el estado "tiempo de espera". Tan pronto como
se haya alcanzado el número de intentos (Life Time Factor), el módulo recibirá el estado "no OK". El
estado del módulo se almacenará en la dirección de diagnóstico. No se producirá ningún monitoreo del
módulo si las variables Tiempo de guardia y Factor de tiempo de vida no están definidas (0).
Sección Configuración de latidos: (alternativamente a Nodeguarding)
Si se activa la opción Activar Heartbeat Producer, el módulo enviará latidos de acuerdo con el
intervalo definido en Heartbeat Producer Time: dado en ms.
Si la opción Activar consumidor de latidos está activada, el módulo escuchará los latidos enviados
por el maestro. Tan pronto como no se reciban más latidos, el módulo apagará las E/S.

Sección Telegrama de Emergencia:


Un módulo envía un mensaje de emergencia , con un COB-Id. único, cuando hay un error interno.
Estos mensajes, que varían de un módulo a otro, se almacenan en la dirección de diagnóstico.
Las entradas "FileInfo" y "DeviceInfo" del archivo EDS o DCF del fabricante del módulo
correspondiente están ocultas detrás del botón Info.

Selección de módulos CAN para esclavos modulares


En la columna de la izquierda (Módulos disponibles) se encuentran todos los módulos que están
disponibles para el esclavo. Marque los módulos deseados y, con los botones Agregar y Eliminar,
cree una selección en la columna de la derecha (Módulos seleccionados). La selección de PDO y
SDO se actualizará automáticamente.
Mapeo PDO de un módulo CAN
Las pestañas Recibir asignación de PDO y Enviar asignación de PDO en el cuadro de diálogo de configuración
de un módulo CAN permiten cambiar la "asignación" del módulo, que se describe en el archivo EDS.

Todos los objetos "mapeables" en el archivo EDS se encuentran en el lado izquierdo y se pueden
agregar en el lado derecho al PDO (Objeto de datos de proceso) (botón ">>") o eliminarse nuevamente
(botón Eliminar ). Los StandardDataTypes se pueden insertar para crear espacios vacíos en el PDO.
El botón Insertar elemento se puede utilizar para crear más PDO's y para añadirles los objetos
apropiados. La asignación de entradas o salidas a las direcciones IEC se puede lograr a través de las
PDO insertadas. Los ajustes que se han realizado en la configuración del sistema del controlador se
harán visibles cuando se salga del cuadro de diálogo. A los objetos individuales se les pueden dar
nombres simbólicos.

CoDeSys V2.3 6-39


Configuración del PLC

Configuración de un módulo CAN, PDO-Mapping

Las propiedades del conjunto estándar de las PDO se pueden editar mediante el comando Propiedades.
Cuadro de diálogo de propiedades de PDO

Cada mensaje PDO requiere un COB-ID (identificador de objeto de comunicación) único.


El campo aparece en gris y no se puede editar si una opción no es compatible con el módulo o si el
valor no se puede cambiar.
El tiempo de inhibición es el tiempo mínimo entre dos mensajes de esta PDO. Esto es para evitar que
los PDO que se envían cuando se cambia el valor se envíen con demasiada frecuencia.
El grupo de prioridad de CMS no se puede cambiar y describe la importancia relativa de los PDO
durante la transmisión CAN. Se muestran valores de 0 a 7, donde 0 es el más alto.
Tipo de transmisión le ofrece una selección de posibles modos de transmisión para este módulo:
acíclico - síncrono: el PDO se transmitirá de forma sincrónica pero no periódica.
cíclico – síncrono: el PDO se transmitirá de forma síncrona, por lo que el número de
indica el número de mensajes de sincronización, que se encuentran entre dos transmisiones de esta DOP.
síncrono – solo RTR: el PDO se actualizará después de cada mensaje de sincronización, pero no se
enviará. Solo se envía cuando hay una solicitud explícita para hacerlo (Solicitud de transmisión remota)
asíncrono – solo RTR: la PDO solo se actualizará y transmitirá cuando haya una solicitud explícita
para hacerlo (Solicitud de transmisión remota)
asíncrono - específico del perfil del dispositivo y asíncrono - específico del fabricante: el PDO
solo se transmitirá cuando ocurran eventos específicos.

6-40 CoDeSys V2.3


6 - Los recursos

Número de sincronizaciones: Si se ha ajustado la transmisión cíclica, introduzca aquí el número de


mensajes de sincronización (véase 'Período de ciclo de comunicación' en el cuadro de diálogo de
parámetros CAN) que deben enviarse entre dos transmisiones de la PDO.
Event-Time: Si se establece un tipo de transmisión correspondiente, introduzca aquí en milisegundos
(ms) el intervalo entre dos transmisiones.

Objetos de datos de servicio


Aquí encontrará una lista de todos los objetos del archivo EDS o DCF que se encuentran en el área del
0x2000 de índice a 0x9FFF y que están marcados como escribibles.
Las propiedades Índice, Nombre, Valor, Tipo y Predeterminado se muestran para cada objeto. El
valor se puede cambiar. Marque el valor y presione la <barra espaciadora>. Después de realizar el
cambio, confirme el nuevo valor con <Enter> o rechácelo con la tecla <Escape>.
Los valores ajustados se transmiten en forma de SDO (Service Data Object) a los módulos CAN en la
inicialización del bus CAN.
Restablecimiento de un SDO a su valor predeterminado: Si un SDO, después de haber sido transmitido
al bus CAN con un valor modificado por el usuario (es decir, con un valor que se desvía del valor
predeterminado), debe restablecerse a su valor predeterminado para la siguiente transmisión, elimine la
entrada en la columna 'Valor'. Esto significa que el campo de valor debe estar vacío para este propósito; si
ingresa el valor predeterminado, ¡no se transmitirá nada!
Nota: Todos los tipos de datos incompatibles entre CANopen e IEC-61131 serán reemplazados en CoDeSys por
el siguiente tipo de datos IEC-61131 más grande.

Cuadro de diálogo para la configuración de los objetos de datos de servicio (SDO)

6.6.9 Configuración de un CanDevice (esclavo CANopen)


Un PLC programable con CoDeSys se puede utilizar como esclavo CANopen (CANopen-Node,
llamado "CanDevice" en lo sucesivo) en una red CAN.
Para ello, el PLC se puede configurar en el configurador de PLC CoDeSys y la configuración se puede
guardar en un archivo EDS. Este archivo EDS (archivo de dispositivo) se puede utilizar posteriormente
en cualquier configuración de CANopen Master.
Condiciones previas para la creación de un CanDevice en el configurador de PLC CoDeSys:
1. Las bibliotecas
3S_CanDrv.lib
3S_CanOpenManager.lib
3S_CanOpenDevice.lib
debe incluirse en el proyecto CoDeSys. Son necesarios para hacer funcionar el PLC como un
dispositivo CANopen.
2. En el archivo de configuración (*.cfg) en el que se basa la configuración, se debe insertar una
entrada apropiada para un CanDevice. Solo entonces, en el editor de configuración del PLC, se puede

CoDeSys V2.3 6-41


Configuración del PLC

agregar y parametrizar un subelemento 'CanDevice' en los tres diálogos de configuración que se


describirán a continuación:
Ajustes básicos
Configuración de CAN
Asignación predeterminada de PDO

Configuración básica de un CanDevice


Identificador de bus: actualmente no se utiliza.
Nombre de updatetask: nombre de la tarea en la que se llama a CanDevice. Una lista de selección
proporcionará todas las tareas que están disponibles en el proyecto.
Generación de archivos EDS: Active esta opción si desea generar un archivo de dispositivo (archivo EDS)
a partir de los ajustes de configuración actuales para poder utilizar el CanDevice más adelante en cualquier
configuración maestra. Introduzca una ruta y un nombre para el archivo en el campo Nombre del archivo
EDS. Opcionalmente, se puede definir un archivo de plantilla creado manualmente (Plantilla para archivo
EDS), que se complementará con los ajustes realizados en los diálogos de configuración. Por ejemplo,
puede crear un archivo de texto que contenga ciertas entradas de archivo EDS, guardarlo como
"EDS_template.txt" e introducir la ruta de esta plantilla en el cuadro de diálogo actual. Si luego genera un
archivo EDS "device_xy.eds" a partir del proyecto actual, las entradas resultantes del proyecto se fusionarán
con las de la plantilla y se guardarán en "device_xy.eds". (¡No utilice la extensión ".eds" para el archivo de
plantilla!) Si el proyecto actual crea entradas que ya están definidas por la plantilla, las definiciones de
plantilla no se sobrescribirán.
Configuración de la base de diálogo

Para introducir las rutas de los archivos, puede utilizar el cuadro de diálogo estándar para buscar un
archivo, que se puede abrir utilizando el botón Examinar....

Configuración de CAN de un CanDevice


Aquí se pueden especificar los parámetros CAN tal y como se conocen en el estándar CANopen para dárselos al
sistema de ejecución. Depende del sistema de ejecución cómo se interpretarán. En caso de que esté utilizando la
implementación de CANopen realizada en los sistemas de tiempo de ejecución 3S a través de la biblioteca
CanOpen.lib, consulte la documentación correspondiente "CanOpen for 3S Runtimesystems".

ID de nodo: El ID de nodo (1-127) es el número de nodo que utiliza el maestro para direccionar el
dispositivo en una red CANopen.
Velocidad en baudios: En la lista de selección, elija la velocidad en baudios deseada para la transmisión dentro del bus.
Tipo de dispositivo: En este campo se muestra automáticamente el tipo de dispositivo, que se
devuelve al buscar 0x1000 de objeto, es decir, el tipo de PLC que se configura en el proyecto. El tipo
de dispositivo se puede editar.

6-42 CoDeSys V2.3


6 - Los recursos

Arranque automático: Si esta opción está activada, en una descarga o en el arranque del PLC, el bus
CAN se inicializará y se iniciará automáticamente: Si la opción no está activada, el CanDevice esperará
un comando apropiado.
Es posible configurar la funcionalidad de Nodeguard y Emergency Telegram. Consulte la descripción
correspondiente para la configuración de los módulos CAN y el maestro.
Configuración de latidos:
Si la opción Activar generación de latidos está activada, el CanDevice enviará latidos de acuerdo con
el intervalo (milisegundos), definido en Tiempo del productor de latidos:.
Si la opción Activar consumidor de latidos está activada, el CanDevice escuchará los latidos, que son enviados
por el módulo definido por el ID de consumidor. El tiempo de consumo de latidos define el tiempo (en
milisegundos) después del cual se establecerá un indicador de error en caso de que no se haya recibido ningún
latido.
Configuración de CAN de diálogo

Asignación de PDO predeterminada de un CanDevice


En este cuadro de diálogo, las entradas del Administrador de parámetros local se pueden asignar a
PDO, que serán enviadas/recibidas por CanDevice. A continuación, los PDO estarán disponibles para
la asignación de PDO en cualquier configuración maestra en la que esté integrado el CanDevice.
En las listas del Administrador de parámetros, las entradas de parámetros se vinculan a las variables
del proyecto a través de índice/subíndice.

Tenga en cuenta: El subíndice 0 de un índice, que implica más de un subíndice, se utilizará implícitamente para
almacenar el número de subíndices. Por este motivo, no utilice el subíndice 0 en el Administrador de parámetros.
También hay que tener en cuenta que los parámetros de un índice en particular deben introducirse en orden
ascendente (subíndices 1,2,3...) en el Administrador de parámetros.

Lista de objetos mapeables: Elija de la lista de selección la lista de parámetros de las variables,
para cuyas entradas el CanDevice debe generar PDO. Si es compatible con el sistema de destino, se
pueden crear listas de parámetros de tipo 'Mapping' en el Administrador de parámetros, que contienen

CoDeSys V2.3 6-43


Configuración del PLC

variables de proceso especialmente destinadas a la asignación de PDO de un CANDevice. En este


caso, solo se ofrecerán estas listas de parámetros aquí en el cuadro de diálogo de asignación. De lo
contrario, se ofrecerán todas las listas de parámetros disponibles de tipo 'Variables' e 'Instancia'.
! Atención: Si en la configuración de destino para el Administrador de parámetros se define un "Rango de índice
para asignaciones", entonces el CanDevice solo tendrá en cuenta ese rango para la asignación y no se definirán
otros rangos de índice posibles.

De acuerdo con la lista de parámetros elegida, los objetos aparecerán en la ventana de la izquierda. En la ventana de
la derecha se crea la configuración de PDO deseada (PDO's). A través de los botones Insertar, recibir PDO resp.
Insertar enviar PDO, allí puede insertar 'Recibir PDO' y 'Enviar PDO' debajo de los elementos de organización de la
lista correspondiente. Para asignar un objeto de la ventana izquierda a uno de estos PDO de envío o recepción,
marque el objeto en la ventana de la izquierda y también el PDO en la ventana de la derecha y luego presione >>.
A continuación, el objeto se insertará debajo de la PDO en la ventana de la derecha. Las propiedades de la PDO se
pueden definir en un cuadro de diálogo que también se utiliza para la configuración de PDO de otros módulos CAN.

Al usar el botón Eliminar la PDO actualmente marcada en la ventana derecha se eliminará de la


configuración.
Cuadro de diálogo Asignación predeterminada de PDO

Ejemplo:
Objetivo: En el primer PDO de recepción (COB-Id = 512 + NodeId) del CanDevice, se debe recibir la variable
PLC_PRG.a.
Por lo tanto, en el Administrador de parámetros, en una lista de variables, se debe asignar un índice/subíndice a la variable
PLC_PRG.a. El Administrador de parámetros solo se puede abrir si está activado en la configuración de destino en la categoría
"Funcionalidad de red" y si se definen rangos de índices y subíndices válidos.
Ahora, en el cuadro de diálogo 'Default PDO-Mapping' del CanDevice, la entrada de índice/subíndice de la lista
de parámetros respectiva se puede asignar a un PDO de recepción.

6-44 CoDeSys V2.3


6 - Los recursos

6.6.10 Configuración de los módulos DeviceNet...


CoDeSys soporta una configuración de hardware para un sistema de bus, que utiliza el protocolo
DeviceNet (EN50325) estandarizado internacionalmente. DeviceNet se utiliza principalmente para
realizar redes Maestro-Esclavo con propiedades Plug & Play, por lo que tiene un bus para la conexión
directa a sensores y actuadores (interruptores de proximidad, tomacorrientes).
El protocolo de comunicación DeviceNet se basa en CAN (Controller Area Network). Una conexión
directa entre los módulos de comunicación es una condición previa para el intercambio de datos.
El editor de configuración de CoDeSys DeviceNet proporciona la definición de un DeviceNet-Master
que controlará el intercambio de datos dentro de la red. Se admiten varios tipos de comunicación para
el intercambio de datos de entrada y salida entre los módulos esclavos (DeviceNet-Slave) ,. Por lo
general, el DeviceNet-Master toma la función "UCMM" (Administrador de mensajes no conectados para
múltiples conexiones) y se encarga de las solicitudes de otros maestros a sus esclavos.
Un archivo de configuración *.cfg que permita la inserción de módulos DeviceNet-Master y Slave es una
condición previa para realizar una configuración de DeviceNet en la configuración del PLC de CoDeSys. El
archivo de configuración se busca automáticamente en el directorio establecido actualmente para los
archivos de configuración (consulte el Capítulo 4.2, Opciones del proyecto: Directorios).
De acuerdo con las definiciones en el archivo de configuración *.cfg, los archivos EDS (archivos de descripción del
dispositivo, hoja de datos electrónica), que también se encuentran en el directorio de archivos de configuración
configurado actualmente, se pueden utilizar para la configuración. En el archivo EDS se describen las opciones de
configuración de un módulo DeviceNet. Tenga en cuenta que los archivos de descripción del dispositivo CAN
también tienen la extensión ". EDS", pero no se pueden utilizar para una configuración de DeviceNet.

En general, considere la posibilidad de agregar archivos de configuración durante el trabajo en el


proyecto (consulte el Capítulo 6.6.2., Agregar archivo de configuración).
Si se selecciona un DeviceNet-Master en el árbol de configuración, los siguientes cuadros de diálogo están disponibles
en las fichas con el nombre adecuado: Parámetros base, Parámetros DeviceNet, Parámetros del módulo.

Si se selecciona un DeviceNet-Slave que se inserta debajo de un DeviceNet-Master, estarán


disponibles los siguientes diálogos: Parámetros base, Parámetros DeviceNet, Configuración de
conexión de E/S, Parámetros, Parámetros del módulo.

Parámetros base de un DeviceNet-Master


El cuadro de diálogo , Parámetros base de un DeviceNet-Master que se refiere a los elementos ID de
módulo, Número de nodo, Dirección de entrada, Dirección de salida y Dirección de diagnóstico
coincide con el de los otros módulos (consulte el Capítulo 6.6.5, Parámetros base de un módulo de
E/S).
Parámetros de DeviceNet de un maestro DeviceNet
Cuadro de diálogo Parámetros de DeviceNet para un maestro de DeviceNet

En el campo Dirección inserte el número de identificación DeviceNet-Master, que se establece en el


propio módulo. El significado de este ID corresponde al del "ID de nodo" de un módulo CAN y no debe
confundirse con el número de nodo o la dirección definida en el cuadro de diálogo Parámetros base. Se
debe introducir decimal, valores posibles: 0-63, configuración predeterminada: 0.

CoDeSys V2.3 6-45


Configuración del PLC

También se define aquí la velocidad de transmisión [Baud] para el intercambio de datos dentro de la
red. Elija una de las siguientes configuraciones: 125000 (predeterminado), 250000, 500000.

Parámetros de módulo de un DeviceNet-Master


El diálogo de parámetros del módulo de un DeviceNet-Master es el mismo que el de los otros módulos
(consulte el Capítulo 6.6.5, Parámetros del módulo de un módulo de E/S). Aquí se muestran los
parámetros que se han asignado adicionalmente al maestro en el archivo de configuración y, por lo
general, los valores se pueden editar.

Parámetros base de un DeviceNet-Slave


El diálogo de parámetros base de un DeviceNet-Slave que se refiere a los elementos Dirección de
entrada y Dirección de salida coincide con el de los otros módulos (consulte el Capítulo 6.6.5,
Parámetros base de un módulo de E/S). La dirección (entrada o salida) se define desde la vista del
módulo.
Parámetros de DeviceNet de un esclavo DeviceNet
Aquí se configuran los parámetros comunes del módulo:
Dirección: Identificación del DeviceNet-Slave, establecida en el propio módulo. El significado de este
ID corresponde al del "ID de nodo" de un módulo CAN y no debe confundirse con el "Número de nodo"
o la "Dirección" definida en el cuadro de diálogo Parámetros base. Se debe introducir decimal, valores
posibles: 0-63, configuración predeterminada: 0.
Dispositivo activo en configuración: Active esta opción para que el dispositivo sea un participante
activo en el intercambio de datos en la red.
Info...: Este botón abre una ventana que muestra el contenido del archivo EDS. Tenga en cuenta que
los archivos de descripción del dispositivo CAN también tienen la extensión ". EDS", pero no se pueden
utilizar para una configuración de DeviceNet.
Diálogo de parámetros de DeviceNet para un esclavo de DeviceNet

Experto...: Este botón abre el cuadro de diálogo Configuración ampliada, donde se pueden cambiar
los siguientes ajustes:
UCMM: ( Gestor de mensajes no conectados para varias conexiones) Si esta opción está
activada (por defecto), el esclavo es capaz de manejar los mensajes UCMM. Las clasificaciones
posibles: Grupo1, Grupo2 o Grupo3 (por defecto)
Las siguientes comprobaciones se realizarán de forma predeterminada al inicio de la red y
pueden desactivarse aquí, si es necesario. Durante la comprobación, siempre se comparará el
valor dado por el archivo EDS con el que se encuentra en el dispositivo: Comprobar el ID del
proveedor, Comprobar el tipo de dispositivo, Comprobar el código del producto,
Comprobar la versión del producto

6-46 CoDeSys V2.3


6 - Los recursos

Cuadro de diálogo Configuración extendida

Configuración de la conexión de E/S de un DeviceNet-Slave


Aquí se configuran las entradas y salidas del esclavo, a través de las cuales se deben intercambiar los datos
(valores de los parámetros). Se debe definir un tipo de conexión y se debe componer una selección de
entradas y salidas de acuerdo con las posibilidades dadas por el módulo (archivo EDS, Entradas, Salidas).

Cuadro de diálogo para la configuración de la conexión de E/S de un esclavo DeviceNet

CoDeSys V2.3 6-47


Configuración del PLC

Conexión de E/S seleccionada: Seleccione uno de los siguientes tipos de conexión, que debe ser
válido para la conexión de E/S definida a continuación:
Sondeo: Los datos del esclavo se sondearán cíclicamente (Maestro-Esclavo-proceso)
Bit Strobe: El DeviceNet-Master envía un telegrama de difusión a todos los esclavos pidiéndoles que
envíen los datos actuales. Los esclavos responderán uno tras otro, comenzando con el nodo 1.
Cambio de estado: El esclavo enviará sus datos al maestro en cada cambio detectado en una
entrada. No se necesita ninguna solicitud explícita por parte del maestro.
Cíclico: El esclavo enviará sus datos después de un tiempo de ciclo definido sin una solicitud
explícita por parte del maestro (función "Heartbeat").
Sondeo de multidifusión: actualmente no se admite
E/S completa: Aquí se mostrarán las sumas de bytes de entrada y bytes de salida, que se utilizan
actualmente para todas las entradas y salidas configuradas. Las sumas se calculan a partir de las
longitudes definidas para las E/S en las áreas "Entradas" y "Salida" del cuadro de diálogo.
Ampliado: Este botón abre el cuadro de diálogo Más ajustes, que permite modificar los siguientes
ajustes predeterminados para el tipo de conexión elegido actualmente:
Velocidad esperada de paquetes: Predeterminado: 75, velocidad esperada (en milisegundos)
según la cual se espera que el esclavo envíe sus datos a través de la conexión actual.
Tiempo de espera de fragmentación: [ms]: valor predeterminado 1600 ms; Si los datos a enviar
superan un tamaño de 8 Bytes, deben fragmentarse y enviarse en varios paquetes de telegramas. El
tiempo de espera de fragmentación define en milisegundos, cuánto tiempo debe esperar el maestro
una respuesta del esclavo en un telegrama fragmentado, antes de activar la acción definida en
'Acción en caso de error de tiempo de espera'.
Cuadro de diálogo 'Más ajustes', Ejemplo para el tipo de conexión 'Cíclico'

Acción en caso de error de tiempo de espera: Defina cuál de las siguientes acciones debe
iniciarse en caso de que se agote el tiempo de espera:
Transición a tiempo de espera agotado: (Predeterminado) Esta acción se define específicamente como esclavo.

Eliminación automática: se eliminará la conexión de E/S.


Restablecimiento automático: La conexión persiste, el maestro reconfigura el esclavo, el
perro guardián se reinicia.
Otras opciones para el tipo de conexión 'Cambio de estado':
Tiempo de bloqueo para el envío: ( Predeterminado:1) Intervalo mínimo (en milisegundos) entre dos
mensajes, incluso si los datos han cambiado antes de que finalice este intervalo de tiempo. Este
método ayuda a evitar sobrecargar el dispositivo con solicitudes entrantes. "0" significa que no hay
tiempo de bloqueo, en este caso los datos se intercambiarán lo más rápido posible.

Tiempo de espera[ms]: ( Predeterminado: 16) Si se ha superado la frecuencia cardíaca en este


intervalo de tiempo (en milisegundos) sin que se hayan enviado datos, se detectará un error de
tiempo de espera.

6-48 CoDeSys V2.3


6 - Los recursos

Heartbeatrate[ms]: (Predeterminado: 250) Intervalo de tiempo en milisegundos, después del


cual el esclavo en cualquier caso debe enviar sus datos, incluso si no han cambiado.
Otras opciones para el tipo de conexión 'Bit Strobe':
Usar bit de salida: Al responder al maestro, el esclavo usará ese bit de salida, que corresponde
al bit de salida utilizado por el maestro en el telegrama de solicitud.
Otras opciones para el tipo de conexión Cíclico:
Intervalo [ms]: Intervalo de tiempo en milisegundos, según el cual el esclavo tiene que enviar
automáticamente sus datos (Heartbeat).
Tiempo de espera [ms]: Si se ha superado la frecuencia de latidos en este intervalo de tiempo
(en milisegundos) sin que se hayan enviado datos, se detectará un error de tiempo de espera.
Entradas:
Desde el campo Conexiones disponibles, seleccione las entradas deseadas y transfiéralas al campo Conexiones de
entrada configuradas mediante el botón >> . Con el botón << puede eliminar entradas desde allí.

Para modificar la longitud de una entrada configurada, haga doble clic en esta entrada. Se abrirá el
cuadro de diálogo Longitud de la conexión. Introduzca aquí la longitud deseada en bytes y confirme
con OK. La longitud se mostrará entre paréntesis detrás de la entrada configurada.
Las entradas configuradas serán visibles inmediatamente en el árbol de configuración. Debajo de la
entrada esclava habrá una entrada con el nombre del tipo de conexión. A continuación, se insertarán
las respectivas entradas y salidas.
Salidas:
Configure las salidas como se describe para las entradas.

Parámetros de un DeviceNet-Slave
Los parámetros enumerados aquí vienen dados por el archivo EDS. De acuerdo con la configuración
de conexión de E/S definida, sus valores actuales se intercambiarán en la red.
Obj.: Identificación del parámetro (objeto), que se utiliza para acceder al parámetro en una lista de
parámetros (diccionario de objetos). Este número de objeto se crea a partir del número de parámetro dado
por la descripción del parámetro correspondiente en el archivo EDS (sección [Params], "Param<number>").

Typ: Tipo de datos del parámetro


Acc.: Derechos de acceso: rw=leer y escribir, ro=solo lectura
Min., Max.: Rango de valores del parámetro, limitado por el valor mínimo y máximo
Predeterminado: Valor predeterminado del parámetro
Valor: Tal y como se define en el archivo EDS, el valor del parámetro puede editarse aquí. Puede
haber disponible una lista de selección de valores permitidos o se puede abrir un campo de edición
haciendo clic con el ratón en la celda de la tabla.
Parámetros del módulo de un DeviceNet-Slave
El diálogo de parámetros del módulo de un DeviceNet-Slave es el mismo que el de los otros módulos
(véase el Capítulo 6.6.5, Parámetros del módulo de un módulo de E/S): Aquí se muestran los
parámetros que se han asignado adicionalmente al maestro en el archivo de configuración y, por
defecto, se pueden editar los valores.

6.6.11 Configuración del PLC en modo en línea


En el modo en línea, la configuración del PLC muestra los estados de las entradas y salidas del PLC.
Si una entrada o salida booleana tiene el valor TRUE, el pequeño cuadro al principio de la línea de
entrada en el árbol de configuración se volverá azul, los valores no booleanos se agregarán al final de
la línea de entrada (por ejemplo, "=12").

CoDeSys V2.3 6-49


Configuración del PLC

Las entradas booleanas se pueden alternar con los clics del ratón. En otras entradas, al hacer clic con
el ratón en el principio de la línea, se abre un cuadro de diálogo en el que se puede modificar el valor.
El valor modificado se establecerá en el PLC tan pronto como se cierre el cuadro de diálogo con OK.
También hay que tener en cuenta las posibilidades específicas del objetivo para el diagnóstico en línea.

6.6.12 Información de escaneo/estado/diagnóstico de hardware del PLC


Si es compatible con el sistema de destino y el archivo de configuración real (*.cfg), la información
sobre la estructura, el estado y los resultados de diagnóstico del hardware conectado actualmente se
pueden obtener del PLC y mostrarse en la Configuración del PLC en CoDeSys:

Configuración del módulo de escaneo


Si es compatible con el sistema de destino y el archivo de configuración real (*.cfg), el comando
Escanear configuración del módulo estará disponible en el menú contextual del módulo que está
seleccionado actualmente en el árbol de configuración del PLC.
Este comando solo está disponible en modo sin conexión. Si se activa, se escaneará la configuración
de hardware real del módulo particular en el PLC y se ofrecerá automáticamente para insertarla en el
árbol de configuración de la Configuración del PLC CoDeSys. Por lo tanto, la configuración del módulo
existente se puede mapear fácilmente en CoDeSys.

Estado del módulo de carga


Si es compatible con el sistema de destino y el archivo de configuración real (*.cfg), el comando Cargar
estado del módulo estará disponible en el menú contextual del módulo que está seleccionado
actualmente en el árbol de configuración del PLC.
Este comando solo está disponible en modo en línea. Si se activa, el estado real del módulo se leerá
desde el PLC y se mostrará con un color especial en el árbol de configuración:
Negro: Módulo existente y parametrizado correctamente.
Azul: Módulo existente pero parametrizado incorrectamente.
Rojo: Módulo no encontrado.
También se realizará automáticamente una actualización de la pantalla de estado en cada descarga.

Mostrar mensajes de diagnóstico


Si es compatible con el sistema de destino y el archivo de configuración real (*.cfg), el comando
Mostrar mensajes de diagnóstico estará disponible en el menú contextual del módulo que está
seleccionado actualmente en el árbol de configuración del PLC. Este comando solo está disponible en
modo en línea. Si está activado, los mensajes de diagnóstico reales para el módulo proveniente del
PLC se mostrarán en una ventana de CoDeSys.

6-50 CoDeSys V2.3


6 - Los recursos

6.7 Configuración de tareas

6.7.1 Descripción general


Además de declarar el programa de PLC_PRG especial, también puede controlar el procesamiento de
su proyecto mediante la gestión de tareas.
Una tarea es una unidad de tiempo en el procesamiento de un programa IEC. Se define por un nombre, una
prioridad y un tipo que determina qué condición desencadenará el inicio de la tarea. Esta condición puede
ser definida por un tiempo (cíclico, libre) o por un evento interno o externo que desencadenará la tarea; por
ejemplo, el flanco ascendente de una variable de proyecto global o un evento de interrupción del controlador.

Para cada tarea, puede especificar una serie de programas que serán iniciados por la tarea. Si la tarea
se ejecuta en el ciclo actual, estos programas se procesarán durante la duración de un ciclo.
La combinación de prioridad y condición determinará en qué orden cronológico se ejecutarán las
tareas.

Nota: Por favor, no utilice la misma función de cadena (ver standard.lib) en varias tareas, ya que esto puede
causar fallos en el programa al sobrescribir.

Cada tarea se puede habilitar o deshabilitar explícitamente.


Para cada tarea se puede configurar un perro guardián (control de tiempo); Los ajustes posibles
dependen del sistema de destino.
En el modo en línea, el procesamiento de tareas se puede supervisar en un diagrama.
Además, existe la posibilidad de vincular los eventos del sistema (por ejemplo, Inicio, Parada,
Reinicio) directamente con la ejecución de una POU del proyecto.

La configuración de tareas se encuentra como un objeto en la pestaña Recursos del Organizador de


objetos. El editor de tareas se abre en una ventana bipartita.
En la parte izquierda de la ventana, las tareas se representan en un árbol de configuración. En la posición superior
siempre encontrará la entrada 'Configuración de tareas'. A continuación se encuentra la entrada "Eventos del sistema"
y las entradas para las tareas particulares, representadas por el nombre de la tarea. Debajo de cada entrada de tarea
se insertan las llamadas al programa asignadas. Cada línea va precedida de un icono.

Ejemplo de configuración de una tarea

En la parte derecha de la ventana se mostrará un cuadro de diálogo que pertenece a la entrada marcada actualmente
en el árbol de configuración. Aquí se pueden configurar las tareas (Propiedades de la tarea), las llamadas al programa
(Llamada al programa) o definir la vinculación de los eventos del sistema (Eventos del sistema). Depende del destino
qué opciones están disponibles en los diálogos de configuración. Se definen mediante un archivo de descripción al que

CoDeSys V2.3 6-51


Configuración de tareas

se hace referencia en el archivo de destino. Si las descripciones estándar se amplían con definiciones específicas del
cliente, se mostrarán en una pestaña adicional "Parámetro" en la parte derecha de la ventana.

6.7.2 Trabajar en la configuración de tareas


Los comandos más importantes se encuentran en el menú contextual (botón derecho del ratón).
En el encabezado de la configuración de tareas se encuentran las palabras "Configuración de tareas".
Si se encuentra un signo más antes de las palabras, entonces la lista de secuencias está cerrada. Al
hacer doble clic en la lista o presionar <Enter>, puede abrir la lista. Ahora aparece un signo menos. Al
hacer doble clic una vez más, puede volver a cerrar la lista. Para cada tarea, se adjunta una lista de
llamadas al programa. Del mismo modo, puede abrir y cerrar esta lista de la misma manera.
Con el comando 'Insertar' 'Insertar tarea', puede insertar una tarea.
Con el comando 'Insertar' 'Anexar tarea', puede insertar una tarea al final del árbol de configuración.
Con 'Insertar' 'Insertar llamada de programa', se asignará una llamada de programa a la tarea que
realmente está seleccionada en el árbol de configuración.
Más adelante, para cada entrada en el árbol de configuración, aparecerá un cuadro de diálogo de configuración
apropiado en la parte derecha de la ventana. Allí se pueden activar/desactivar opciones o se pueden realizar
entradas a los campos del editor. Dependiendo de la entrada seleccionada en el árbol de configuración, habrá un
cuadro de diálogo para definir los 'Atributos de tarea' (ver 'Insertar tarea'), el diálogo para definir una 'Llamada de
programa' (ver 'Insertar llamada de programa') o la tabla de 'Eventos del sistema'. Las opciones de configuración
dependen del sistema de destino. Los ajustes realizados en los cuadros de diálogo se trasladarán al árbol de
configuración tan pronto como el foco se vuelva a establecer en el árbol.

El nombre de una tarea o un nombre de programa también se puede editar en el árbol de configuración. Para ello, haga
clic con el ratón en el nombre o seleccione la entrada y pulse el botón <Espacio> para abrir un marco de edición.

Puede utilizar las teclas de flecha para seleccionar la entrada anterior o siguiente en el árbol de configuración.
Al hacer clic en el nombre de la tarea o programa, o al presionar la <barra espaciadora>, puede
establecer un cuadro de control de edición alrededor del nombre. A continuación, puede cambiar la
designación directamente en el editor de tareas.
'Insertar' 'Insertar tarea' o 'Insertar' 'Anexar tarea'
Con este comando puede insertar una nueva tarea en la configuración de tareas. Cada una de las
entradas consta de un símbolo y el nombre de la tarea.
Si se selecciona una tarea o la entrada 'Eventos del sistema', el comando 'Insertar tarea' estará a su
disposición. La nueva tarea se insertará después de la seleccionada. Si se selecciona la entrada
'Configuración de tareas', entonces ' Anexar tarea' está disponible y la nueva tarea se agregará al final
de la lista existente. El número máximo de tareas lo define el sistema de destino. Tenga en cuenta que
un cierto número de tareas ya pueden estar reservadas para los módulos de la configuración del PLC
(definidos en el archivo cfg).
Al insertar una tarea, se abrirá el cuadro de diálogo para configurar los atributos de la tarea .
Inserte los atributos deseados:
Nombre: un nombre para la tarea; con este nombre la tarea se representa en el árbol de
configuración; el nombre se puede editar allí después de hacer clic con el ratón en la entrada o
después de pulsar la tecla <Espacio> cuando se selecciona la entrada.
Prioridad (0-31): ( un número entre 0 y 31; 0 es la prioridad más alta, 31 es la más baja),

6-52 CoDeSys V2.3


6 - Los recursos

Cuadro de diálogo para establecer los atributos de la tarea

Tipo:
cíclico ( ): La tarea se procesará cíclicamente de acuerdo con la definición de tiempo dada en el
campo 'Intervalo' (ver más abajo).
freewheeling ( ): La tarea se procesará tan pronto como se inicie el programa y al final de una
ejecución se reiniciará automáticamente en un bucle continuo. No hay un tiempo de ciclo definido.
activado por evento ( ): La tarea se iniciará tan pronto como la variable, que se define en el campo
Evento, obtenga un flanco ascendente.
activado por un evento externo ( ): La tarea se iniciará tan pronto como se produzca el evento del
sistema, que se define en el campo Evento . Depende del objetivo, qué eventos se apoyarán y
ofrecerán en la lista de selección. (No debe confundirse con los eventos del sistema
Propiedades:
Intervalo (para Tipo 'cíclico' o 'activado por evento externo' si el evento requiere una entrada de tiempo): el
período de tiempo, después del cual se debe reiniciar la tarea. Si ingresa un número, puede elegir la unidad
deseada en el cuadro de selección detrás del campo de edición: milisegundos [ms] o microsegundos [ μ s].
Las entradas en formato [ms] se mostrarán en el formato TIME (por ejemplo, "t#200ms") tan pronto como se
vuelva a pintar la ventana; pero también puede ingresar directamente el valor en formato TIME. Las entradas
en [ms] siempre se mostrarán como un número puro (por ejemplo, "300").

Evento (para Tipo 'activado por evento' o 'activado por evento externo'): una variable global que activará el
inicio de la tarea tan pronto como se detecte un flanco ascendente. Botón de uso ... o el asistente de entrada
<F2> para obtener una lista de todas las variables globales disponibles. Es posible que el sistema de destino
defina eventos Singleton. Se trata de eventos, que solo permiten iniciar una única tarea. Durante la
compilación del proyecto se comprobará si un evento de este tipo inicia varias tareas. La comprobación se
refiere a la dirección de datos de la variable de evento, no al nombre. Por ejemplo: si el sistema de destino
define %MX1.1 y %IB4 como eventos singleton, el uso de las siguientes variables como variables de evento
producirá dos errores (a y b, así como c y d tienen la misma dirección)
VAR_GLOBAL
a AT %MX1.1: BOOL;
b EN %MX1.1: BOOL;
c AT %MB4: BOOL;
d AT %MD1: BOOL;
END_VAR

CoDeSys V2.3 6-53


Configuración de tareas

Si no hay ninguna entrada en los campos 'Intervalo' y 'Evento', el intervalo de la tarea dependerá del
sistema de tiempo de ejecución que se utilice (consulte la documentación de tiempo de ejecución); por
ejemplo, en este caso para CoDeSys SP NT V2.2 y superior se utilizará un intervalo de 10 ms).
Perro guardián
Para cada tarea se puede configurar un control de tiempo (watchdog). Si el sistema de destino admite una
configuración de vigilancia ampliada, es posible que haya límites superior e inferior predefinidos y se defina
un valor predeterminado para el tiempo de vigilancia, así como una definición de tiempo en porcentaje.

Perro guardián: Cuando esta opción está activada ( ) entonces, con respecto a la sensibilidad
establecida actualmente (ver más abajo), la tarea terminará en estado de error tan pronto como el
procesamiento tarde más de lo definido en el campo 'Tiempo' (ver más abajo).

Atención: El sistema de destino CoDeSys SP 32 Bit Full desactiva la función de vigilancia cuando el control de
flujo está activo o cuando la ejecución se detiene actualmente en un punto de interrupción.

Tiempo (por ejemplo: t#200ms): Tiempo de vigilancia; después de la expiración de este plazo, con respecto
a la sensibilidad establecida actualmente (ver más abajo), el perro guardián se activará a menos que la tarea
no haya finalizado ya. Dependiendo del sistema de destino, el tiempo debe introducirse como porcentaje del
intervalo de tareas. En este caso, el cuadro de selección de unidad está atenuado y muestra "%".

Sensibilidad: Aquí puede introducir números enteros en los que se debe generar un error al rebasar el
tiempo de vigilancia. La entrada predeterminada es "1", es decir, en la primera superación del tiempo
de vigilancia se produce un error. Atención: Si se introduce "0", ¡el perro guardián se desactivará!
Atributos específicos del fabricante:
Además de estos atributos estándar para la tarea seleccionada actualmente, los atributos específicos
del fabricante pueden mostrarse en una segunda pestaña, "Parámetros". Este será el caso si se
define en el archivo de descripción específico del destino para la configuración de la tarea.

'Insertar' 'Insertar llamada de programa' o 'Insertar' 'Anexar llamada de programa'


Con estos comandos, se abrirá el cuadro de diálogo para ingresar una llamada de programa a una tarea en la
Configuración de tareas. Cada entrada en el árbol de configuración de tareas consta de un símbolo ( ) y el nombre
del programa.
Con 'Insertar llamada de programa', la nueva llamada de programa se inserta antes de la llamada de
programa seleccionada, y con 'Anexar llamada de programa' la llamada de programa se agrega al
final de la lista o llamadas de programa existentes.
Cuadro de diálogo para la entrada de llamada de programa

En el campo 'llamada de programa', especifique un nombre de programa válido fuera de su proyecto o abra el Asistente de
entrada con el botón Seleccionar para seleccionar un nombre de programa válido. El nombre del programa también se
puede modificar más adelante en el árbol de configuración. Para ello, seleccione la entrada y pulse la tecla <Espacio> o
simplemente haga clic con el ratón para abrir un campo del editor. Si el programa seleccionado requiere variables de
entrada, introdúzcalas en su forma habitual y del tipo declarado (por ejemplo, prg(invar:=17)).

El procesamiento de las llamadas al programa posteriormente en modo online se realizará según su


orden (de arriba hacia abajo) en el editor de tareas.

Tenga en cuenta: No utilice la misma función de cadena en varias tareas (consulte Elementos de biblioteca
estándar), ya que en este caso los valores pueden estar sobre trazo durante el procesamiento de las tareas.

6-54 CoDeSys V2.3


6 - Los recursos

6.7.3 Eventos del sistema


En lugar de una "tarea", también se puede usar un "evento del sistema" para llamar a una POU de su
proyecto. Los eventos del sistema disponibles son específicos del destino (definición en el archivo de
destino). La lista de eventos estándar del objetivo puede ampliarse con eventos específicos del cliente.
Los eventos posibles son, por ejemplo: Detener, Iniciar, Cambio en línea.
La asignación de eventos del sistema a las POU también se realiza en el editor de configuración de tareas.
Utilice el cuadro de diálogo 'Eventos', que se abrirá tan pronto como se seleccione la entrada "Eventos del
sistema" en el árbol de configuración de tareas:
Tabla para asignar POU a eventos del sistema

Cada evento se representa en una línea: El nombre y la descripción se muestran como se define en
el archivo de destino, en la columna llamada POU puede ingresar el nombre de la POU del proyecto
que debe llamarse y procesarse tan pronto como ocurra el evento.
Para ello, utilice el asistente de entrada (<F2>) o introduzca manualmente el nombre de una POU ya
existente (por ejemplo, "PLC_PRG" o "PRG. ACT1"), o inserte un nombre para una POU que aún no existe.
Atención para los sistemas de destino RISC y Motorola 68K: El nombre de una función asignada a un
evento del sistema (función de devolución de llamada) debe comenzar con "callback"!. Para crear una nueva
POU (función) en el proyecto, presione el botón Crear POU <nombre>. A continuación, la POU se insertará
en el organizador de objetos. Los parámetros de entrada y salida requeridos por el evento se definirán
automáticamente en la parte de declaración de la POU. Debajo de la tabla de asignación, el evento
seleccionado actualmente se muestra en una imagen, mostrando los parámetros requeridos.

Si realmente desea que el evento llame a la POU, active la entrada en la tabla de asignación ( ). La
activación/desactivación se realiza haciendo clic con el ratón en el cuadro de control.

6.7.4 Configuración de tareas en modo en línea


En el modo en línea, el estado y el número de ciclos pasados de cada tarea se mostrarán en el árbol de
configuración. El flujo de tiempo se supervisa en un diagrama. Condición previa: las bibliotecas SysTaskInfo.lib
y SysLibTime.lib deben incluirse en el proyecto para proporcionar funciones para la evaluación interna
de los tiempos de las tareas. Las bibliotecas se incluirán automáticamente tan pronto como se
establezca un objetivo que admita el monitoreo de tareas.

CoDeSys V2.3 6-55


Configuración de tareas

Visualización del estado de la tarea en el árbol de configuración:


En el modo en línea, el estado actual de una tarea se mostrará entre paréntesis al final de la línea de entrada
de tareas en el árbol de configuración, así como el número de ciclos de proceso ya pasados. Este intervalo
de actualización es el mismo que el habitual para la supervisión de los valores del PLC. Los estados
posibles:
Ocioso no se ha iniciado desde la última actualización; Especialmente utilizado para tareas de eventos

Corriente se ha iniciado al menos una vez desde la última actualización


Parar detenido
Parada en BP detenido, porque se alcanza el punto de interrupción de la tarea
Detener en caso de error
Error, por ejemplo, división por cero, error de página, etc.
Perro guardián de la parada
Se ha excedido el tiempo de ciclo

La entrada de la tarea se mostrará en color rojo en caso de que el estado sea 'Stop on Error' o 'Stop Watchdog'.

Visualización del flujo de tiempo de las tareas:


Si se selecciona la entrada 'Configuración de tareas' en el árbol de configuración, la utilización de las
tareas se mostrará en gráficos de barras en la parte derecha de la ventana:
Visualización de la ejecución de la tarea en modo en línea

Para cada tarea se muestra un gráfico de barras. La longitud de la barra representa la duración de un
período de ciclo. Debajo de la barra, así como mediante marcas apropiadas en la barra, se ilustran los
siguientes valores de medición:

Min: Tiempo de ejecución mínimo medido en μ s


Akt: Último tiempo de ejecución medido en μ s
Máximo: Tiempo de ejecución máximo medido en μ s
Ciclo: Longitud total de un ciclo en μ s
Temblor: fluctuación de fase máxima medida (tiempo transcurrido entre el momento en que se inició la tarea y el momento en que se
indica que se está ejecutando) en μ s

El botón Reset se puede utilizar para volver a establecer los valores de Min., Max. y Jitter a 0.

6-56 CoDeSys V2.3


6 - Los recursos

La escala del gráfico (microsegundos por píxel) se puede ajustar con la ayuda de una lista de selección en
Escalado [ μ s/píxel].

¿Qué tarea se está procesando?


Para la ejecución, se aplican las siguientes reglas:
Se ejecuta esa tarea, cuya condición se ha cumplido; es decir, si el tiempo especificado ha expirado, o
después de que su variable de condición (evento) exhiba un flanco ascendente.
Si varias tareas tienen un requisito válido, se ejecutará la tarea con la prioridad más alta.
Si varias tareas tienen condiciones válidas y prioridades equivalentes, se ejecutará primero la tarea que
haya tenido el tiempo de espera más largo.
El procesamiento de las llamadas al programa se realizará de acuerdo con su orden (de arriba hacia abajo) en el editor de tareas.

Dependiendo del sistema de destino PLC_PRG puede procesarse en cualquier caso como una tarea
libre sin insertarse en el árbol de configuración de tareas.
Funciones online adicionales en el menú contextual o en el menú 'Extras':

'Extras' 'Establecer tarea de depuración'


Con este comando, se puede establecer una tarea de depuración en modo en línea en la configuración
de tareas. El texto [DEBUG] aparecerá después de la tarea establecida.
Las capacidades de depuración se aplican, por lo tanto, solo a esta tarea. En otras palabras, el
programa solo se detiene en un punto de interrupción si el programa es completado por la tarea
establecida.
'Extras' 'Activar/desactivar tarea'
Con este comando, la tarea que está marcada actualmente en la configuración de la tarea se puede
desactivar o volver a activar. Una tarea deshabilitada no se tendrá en cuenta durante el procesamiento
del programa. En el árbol de configuración se indica mediante una entrada en gris.

'Extras' 'Callstack'
Este comando está disponible en el menú Extras de la Configuración de tareas. Si el programa se
detiene en un punto de interrupción durante la depuración, se puede usar para mostrar la pila de
llamadas de la POU correspondiente. Para ello, la tarea de depuración debe seleccionarse en el árbol
de configuración de tareas de. Se abrirá la ventana 'Pila de llamadas de la tarea <nombre de la tarea>'.
Allí se obtiene el nombre de la POU y la posición del punto de interrupción (por ejemplo, "prog_x (2)"
para la línea 2 de la POU prog_x). A continuación, la pila de llamadas completa se muestra en orden
inverso. Si presiona el botón 'Ir a', el foco saltará a esa posición en la POU que está marcada
actualmente en la pila de llamadas.

6.8 Gestor de relojes y recetas

6.8.1 Descripción general


Función

En el Gestor de Inspecciones y Recetas (pestaña Recursos del Organizador de objetos) se pueden ver
los valores actuales de las variables especificadas en las llamadas "listas de vigilancia (Supervisión").
Más adelante, las variables enumeradas en una lista de vigilancia se pueden preestablecer con valores
constantes y este conjunto de valores, llamado "Receta", se puede transferir al PLC. También los valores
actuales de las variables de una lista de observación se pueden leer desde el PLC al Administrador de Relojes y
Recetas como un preajuste/receta. En este contexto, se tiene en cuenta la posibilidad de guardar recetas en
archivos y volver a cargarlas en el Administrador de recetas cuando sea necesario. Consulte más información
sobre el uso de recetas en: Creación de listas de seguimiento, Recetas
En el modo en línea, las listas de vigilancia también se pueden usar para escribir y forzar variables.
Todas estas funciones, por ejemplo, se pueden utilizar para el registro y la configuración de parámetros de
control.

CoDeSys V2.3 6-57


Gestor de relojes y recetas

Editor
El Administrador de Relojes y Recetas, dependiendo del sistema de destino, está disponible en una de las siguientes
variantes: Ventana del Editor Tabular para cada lista de observación, o Editor de 1 ventana para todas las listas de
observación.
Editor tabular:
Cada lista de observación se ve en una ventana de editor tabular independiente y se pueden
abrir varias ventanas al mismo tiempo. En este caso, las listas de seguimiento disponibles se
mostrarán como entradas en la pestaña "Recursos" con sangría debajo del Administrador de
relojes y recetas. Cada uno se puede abrir haciendo doble clic en la entrada.
El editor tabular contiene columnas para el nombre, la dirección, el valor, el valor preparado, el
valor de la receta y el comentario de la variable de inspección.
Lista de seguimiento en vista tabular

name: Aquí se debe introducir un identificador de variable de acuerdo con la siguiente


sintaxis de una dirección en formato estándar:
<Nombre de POU>.<nombre de la variable>
En el caso de las variables globales, se elimina el nombre de la POU. El nombre
de la variable puede ser multinivel.
Las direcciones se pueden introducir directamente (por ejemplo, "%IB0.0").
Ejemplo para una variable multinivel:
PLC_PRG. Instancia1.Instancia2.Estructura.Componente
Ejemplo para una variable global:
globalvar.component1
address, comment: Como se especifica en la declaración de la variable.
value: En el modo online se muestra el valor actual de la variable (Monitoring).
Valor de la receta: Aquí se puede introducir un valor, que se transferirá al PLC cuando se aplique el
comando 'Escribir receta' en toda la lista de observación. Los valores de la receta de todas las variables de
la lista se pueden reemplazar por los valores actuales del PLC mediante el comando 'Leer receta'.

En el caso de instancias de bloques de funciones y variables estructuradas, aparece un signo más o


menos respectivamente delante del nombre en la primera columna. Sirve para expandir o contraer la
lista de componentes. Para las variables de bloque de funciones, el menú contextual se amplía con los
elementos 'Abrir bloque de funciones' y 'Abrir instancia'.
Al hacer doble clic en una posición no editable dentro de la ventana del editor, la tabla se adapta al
ancho de la ventana y se optimizan los anchos de las columnas.
1-Editor de ventanas:
Solo hay una ventana de editor bipartita, en la parte izquierda de la cual se encuentran todas las listas de seguimiento
disponibles. Para la lista seleccionada actualmente, la parte derecha de la ventana muestra las variables asociadas.

6-58 CoDeSys V2.3


6 - Los recursos

Esta vista del editor se abre a través del Administrador de objetos y recetas en la pestaña Recursos del Organizador de
objetos. Las variables de inspección se introducen línea por línea y se puede asignar un valor de receta a cada una
mediante ":=". Sobre esto, vea también: Creación de listas de seguimiento, Recetas

Gestor de relojes y recetas en 1 ventana

Es posible agregar variables a las listas de observación en el modo fuera de línea escribiendo o en el
modo en línea directamente desde los editores de POU. Consulte Creación de listas de seguimiento, recetas
Se puede llamar a una lista de referencias cruzadas directamente desde una lista de observación,
cuando se selecciona una de las variables de observación. En este caso, está disponible el comando
Mostrar referencias cruzadas en el menú Extras o en el menú contextual. En la lista de referencias
cruzadas, consulte: 'Proyecto' 'Mostrar referencias cruzadas'.

6.8.2 Creación de listas de seguimiento, recetas


De forma predeterminada, en cada proyecto se crea automáticamente una lista de seguimiento vacía "Estándar". Vea a
continuación cómo se pueden crear más listas y rellenarlas con variables de observación y cómo se pueden definir
recetas. Esto depende, en parte, de la variante (dependiente del objetivo) del Gestor de Relojes y Recetas que se utilice:

Creación de listas de seguimiento


Cree una nueva lista vacía, en modo sin conexión o en línea:
Si se selecciona la entrada 'Administrador de relojes y recetas' en la pestaña 'Recursos', en el editor tabular
mediante el comando 'Objeto' 'Agregar' (menú 'Proyecto' - 'Objeto', o menú contextual) se puede crear una nueva
lista de observación principalmente vacía. Para ello, en el editor de 1 ventana está disponible el comando 'Nueva
lista de observación' (menú 'Insertar' o menú contextual). Cada uno de ellos abre un cuadro de diálogo para
introducir un nombre único en la lista de observación. Después de la confirmación, la nueva lista se agregará
inmediatamente en el árbol de recursos (editor tabular) o en la parte izquierda del editor de 1 ventana.

Rellene la nueva lista con variables de observación de los editores de POU, o agregue variables a las listas existentes:

Solo es posible en modo online. Para ello, no es necesario desactivar la supervisión.


Editor tabular y editor de 1 ventana:
• Si se seleccionan una o varias variables o elementos en uno de los editores de POU, se pueden
introducir directamente en una nueva lista de seguimiento mediante el comando 'En nueva lista
de seguimiento' (menú 'Extras' o menú contextual). La nueva lista se agregará automáticamente
como "Ver<n>" en la pestaña Recursos debajo del Administrador de Relojes y Recetas y se abrirá
en la ventana del editor. El cambio de nombre de la lista solo es posible en modo sin conexión.

• Si se seleccionan una o varias variables o elementos en uno de los editores de POU, las
variables se pueden agregar directamente a una de las listas de seguimiento existentes
mediante el comando 'Agregar a la lista de seguimiento' (menú 'Extras' o menú contextual).
• En lugar de un identificador variable, se puede introducir una dirección en formato estándar
en una lista de observación. El comando 'Insertar rango de direcciones' (menú 'Extras' o
menú contextual) permite agregar todas las direcciones de un rango de direcciones
especificado de una sola vez.

CoDeSys V2.3 6-59


Gestor de relojes y recetas

Rellenar una lista manualmente:


Posible en modo en línea y fuera de línea; para la sintaxis, véase: Descripción general, Editor
Editor tabular:
• Si se abre la lista de observación, a través de los comandos 'Insertar variable de reloj' o 'Insertar'
'Adjuntar variable de reloj' se pueden agregar más variables. Las entradas existentes se pueden
seleccionar y eliminar mediante 'Eliminar variable de inspección' o <Supr>.

1-Editor de ventanas:
• Para introducir variables en una lista de observación, la lista debe seleccionarse en la parte
izquierda de la ventana del Administrador de inspecciones y recetas. A continuación, las
variables se añaden en la parte derecha en la posición actual del cursor línea por línea, ya
sea con la ayuda del asistente de entrada <F2> (ver la nota a continuación) o escribiendo.
Consulte Información general, Editor para ver la sintaxis solicitada. Si las variables deben ser
introducidas en modo online, previamente se debe desactivar la monitorización. A través del
comando 'Monitoring aktiv' en los 'Extras' o en el menú contextual se puede cambiar entre
activado y desactivado.
Nota sobre el uso del Asistente de entrada en el Administrador de relojes y recetas:
La vista no estructurada del Asistente de entrada ofrece funciones de filtro adicionales para seleccionar
variables de observación: En el campo de entrada Filtro, puede introducir una cadena y, además,
especificar si esta cadena debe encontrarse al principio del nombre de una variable (Prefijo), al final del
nombre de una variable (Sufijo) o en una posición arbitraria dentro del nombre de la variable para
obtener las variables de inspección que se ofrecen para su selección.
Trabajar con recetas
Las variables de una lista de seguimiento se pueden preestablecer con valores constantes. En el editor
tabular esto es posible a través del valor de la receta de la columna, en el editor de 1 ventana mediante una
asignación a través de ":=". A continuación, la lista de vigilancia se puede utilizar como una "receta".

Si el preajuste debe realizarse automáticamente con los valores actuales leídos desde el PLC, se
puede utilizar el comando 'Leer receta'.
En la variante 1-Window-Editor del Administrador de Relojes y Recetas, los valores de receta deben
asignarse de acuerdo con el siguiente ejemplo:
Ejemplo:
PLC_PRG. TEMPORIZADOR:=50
Aquí la variable PLC_PRG. TIMER está preajustado con 50.
Tenga en cuenta lo siguiente para las variables de tipo matriz, estructura o instancia de bloque de
funciones: Los elementos particulares o las variables de instancia deben introducirse explícitamente
para poder preestablecerlos con valores. Ejemplo: Supongamos que se define una estructura STRU
con componentes a, b,c, y se declara una variable de estructura struvar en el programa PLC_PRG.
Para preestablecer a, b, c con valores, se debe ingresar lo siguiente en la lista de observación:

PLC_PRG.struvar.a:=<valor>
PLC_PRG.struvar.b:=<valor>
PLC_PRG.struvar.c:=<valor>
En consecuencia, se debe realizar el preajuste de los elementos de una matriz: Ejemplo para
una variable de matriz arr_var de tipo ARRAY[0...6]
PLC_PRG.arr_var[0]:=<valor>
PLC_PRG.arr_var[1]:=<valor>
...
Si un bloque de funciones fb contiene las variables x,y y se declara una variable de instancia
fb_inst de tipo fb en PLC_PRG, x e y se pueden predefinir de la siguiente manera:
PLC_PRG.fb_inst.x:=<value>
PLC_PRG.fb_inst.y:=<value>

6-60 CoDeSys V2.3


6 - Los recursos

Las recetas se pueden guardar externamente en un archivo mediante el comando 'Extras', 'Guardar lista de
observación' y se pueden volver a cargar en el editor a través de 'Extras', 'Cargar lista de observación'. En el modo
en línea, los valores de la receta se pueden escribir en las variables del PLC a través de 'Extras', 'Escribir receta'.

'Insertar' 'Nueva lista de vigilancia'


Clave corta: <Alt>+<X>+<N>
Este comando inserta la(s) variable(s) seleccionada(s) actualmente en un editor de POU en una nueva
lista de observación. Esta lista se creará automáticamente con el nombre "Watch<n>", donde n es un
número continuo que comienza con 0 y se usa de manera que el nombre sea único.
Además, para este comando, lo mismo ocurre con 'Extras', 'Agregar a la lista de observación'.

'Insertar' 'Insertar variable de reloj'


Este comando solo está disponible en la vista del editor tabular de una lista de observación. Inserta una
nueva línea en la posición superior de la lista y abre un campo de edición en la columna "nombre" para
introducir una nueva variable de observación a través del Asistente de entrada (consulte la nota en
Creación de listas de observación, recetas) o escribiendo.
'Insertar' 'Adjuntar variable de reloj'
Este comando solo está disponible en la vista del editor tabular de una lista de observación. Añade una
nueva línea al final de la lista y abre un campo de edición en la columna "nombre" para introducir una
nueva variable de inspección a través del Asistente de entrada (consulte la nota en Creación de listas
de observación, recetas) o escribiendo.
'Eliminar variable de reloj'
Este comando solo está disponible en la vista del editor tabular de una lista de observación. Elimina la
línea actualmente enfocada y corresponde al uso de la tecla <Supr>.

'Extras' 'Añadir a la lista de observación'


Tecla corta: <Alt>+<X>+<W>
Fuera de los editores de POU en el proyecto, puede agregar variables directamente a una lista de observación.
Cuando se seleccionan una o varias variables o elementos en un editor, se pueden agregar directamente a
una de las listas de seguimiento existentes mediante el comando 'Agregar a la lista de seguimiento' (menú
'Extras' o menú contextual). No es necesario desactivar la Monitorización para este fin.

Para los bloques de funciones, el comando solo estará disponible si se conoce la ruta de instancia
completa de una variable dentro de la POU.
Notas sobre la selección de elementos en los editores de POU:
Básicamente, se pueden seleccionar variables particulares como de costumbre para el editor respectivo.
Además, se cumple lo siguiente:
• En el editor FBD, todos los elementos a la izquierda de un elemento seleccionado
también se seleccionarán automáticamente. Por ejemplo, también se seleccionarán las
entradas a y b de un cuadro Y cuando seleccione el cuadro Y.
• En el editor de escalera, se pueden seleccionar varios elementos manteniendo pulsada
la tecla <Mayús> mientras se hace clic en los elementos deseados.
• En el editor ST e IL, en la parte derecha de la ventana, se puede seleccionar una sola
variable. En la parte izquierda, se pueden seleccionar varias líneas para agregar todas
las variables incluidas a la lista de observación.
• En el editor SFC puede seleccionar varios elementos sucesivos para que todas las
variables incluidas se agreguen a la lista de observación.
• En las partes de declaración de GVL y POUs sólo se pueden seleccionar determinadas
variables.

CoDeSys V2.3 6-61


Gestor de relojes y recetas

'Extras' 'En una nueva lista de observación'


Tecla corta: <Alt>+<X>+<N>
Este comando inserta la(s) variable(s) seleccionada(s) actualmente en un editor de POU en una nueva
lista de observación. Esta lista se creará automáticamente con el nombre "Watch<n>", donde n es un
número continuo que comienza con 0 y se usa de manera que el nombre sea único.
Además, para este comando, lo mismo ocurre con 'Extras', 'Agregar a la lista de observación'.

'Insertar rango de direcciones'


En lugar de un nombre de variable, se puede introducir una dirección en formato estándar en la
columna "nombre" de una lista de observación.
El comando permite insertar todas las direcciones de un rango de direcciones definido en la lista de
observación de una sola vez. Para ello, se abre un cuadro de diálogo en el que se puede especificar la
dirección de inicio y el número de direcciones. Si define, por ejemplo, name="%MW0" y number = "10",
las direcciones %MW0 a %MW9 se insertarán en la lista de observación.

'Extras' 'Cambiar el nombre de la lista de vigilancia'


Este comando solo estará disponible si se abre la vista 1-Window-Editor del Administrador de Relojes y Recetas
(¡depende del objetivo!). Abre un cuadro de diálogo para especificar el nuevo nombre de la lista de observación.

Nota: Si se utiliza la vista tabular, se puede cambiar el nombre de la lista de observación en el Organizador de
objetos mediante el comando 'Proyecto''Objeto', 'Renombrar'.

'Extras' 'Guardar lista de observación'


Con este comando puede guardar una lista de observación. Se abre el cuadro de diálogo para guardar un archivo.
El nombre del archivo está preestablecido con el nombre de la lista de observación y se le da la extensión "*.wtc".

La lista de seguimiento guardada se puede volver a cargar con 'Extras' 'Cargar lista de seguimiento'.
Por ejemplo, esto permite gestionar varias "Recetas" para el mismo conjunto de variables, que se
pueden cargar en el PLC según sea necesario actualmente.

'Extras' 'Cargar lista de observación'


Con este comando se puede volver a cargar una lista de observación guardada, por ejemplo, para volver a cargar una
determinada receta en el editor, de modo que se pueda escribir en el PLC. Se abre el cuadro de diálogo para abrir un
archivo. Seleccione el archivo deseado con la extensión "*.wtc". En el cuadro de diálogo que aparece, puede asignar un
nuevo nombre a la lista de observación. El nombre del archivo está preestablecido sin una extensión.

Con 'Extras' 'Guardar lista de seguimiento', puede guardar una lista de observación.

'Extra' 'Monitoreo activo'


Tecla corta: <Alt>+<X>+<M>
Este comando se desactiva o desactiva en la visualización de los valores en el Administrador de relojes
y recetas. Si la Monitorización está activada, aparece una marca de verificación (ü) delante del menú

item.'Extras' ' Escribir receta'


Con este comando en el modo en línea del Administrador de relojes y recetas, puede escribir los
valores preestablecidos (valores de receta) en las variables.

Nota: El comando solo se refiere a los valores de esa lista de observación, que
está seleccionada actualmente en el Administrador de relojes y recetas.

6-62 CoDeSys V2.3


6 - Los recursos

6.8.3 Gestor de relojes y recetas en el modo online


Lista de seguimiento "Estándar" en modo en línea, vista de editor tabular

Gestor de relojes y recetas en modo online, vista de 1 ventana del editor

El formato de visualización (binario, hexadecimal, decimal) de los valores de las variables depende principalmente de
la preconfiguración realizada en las opciones del proyecto, categoría Editor, pero se puede cambiar para cada variable
en particular a través de los comandos 'Hexadecimal', 'Binario ' y ' Decimal' disponibles en el menú contextual.

Los valores estructurados (matrices, estructuras o instancias de bloques de funciones) se marcan con
un signo más o menos delante del identificador. Al hacer clic en el signo más con el ratón o pulsando
<Enter>, la visualización de los componentes particulares de la variable se expandirá o se contraerá.
Si se marca una variable de bloque de funciones en la lista de observación, el menú contextual
asociado contendrá adicionalmente los comandos 'Zoom' y 'Abrir instancia'.
La vista monitorin en la vista 1-Window-Editor se puede desactivar y reactivar mediante el comando
'Extra', 'Monitoring Active' o <Alt>+<X>+<M>.
La variable de inspección se puede preajustar con valores constantes y luego, en el modo en línea, la
lista de observación se puede escribir en las variables en el PLC como una receta (comando 'Escribir
receta'). El preajuste también se puede realizar con los valores actuales del PLC. Para ello, en el modo
onlne, se utiliza el comando 'Extras', 'Leer receta'. En este caso, se sobrescribirán los valores de receta
que ya existan.
También se pueden agregar nuevas variables de reloj en el modo en línea a través de varios
mecanismos. Sobre esto, consulte: Creación de listas de seguimiento, recetas.

'Extras' 'Leer receta'


Con el comando, en el modo en línea del Administrador de relojes y recetas, puede reemplazar el
ajuste previo de las variables (consulte Modo sin conexión) con el valor actual de las variables.

CoDeSys V2.3 6-63


La traza de muestreo

Ejemplo:
PLC_PRG. Contador [:= <valor actual>] = <valor actual>

Nota: El comando solo se refiere a los valores de esa lista de observación, que está seleccionada actualmente en el
y Gestor de Recetas!

Forzar y escribir valores en el Administrador de relojes y recetas


En el modo en línea, en cada lista de observación, puede forzar valores y escribir valores.
En el editor de tablas, puede introducir un valor en la columna valor preparado y, por lo tanto, preparar ese valor
para forzar o escribir en el PLC. Para ello, seleccione la celda correspondiente (clic del ratón o navegación dentro
de la tabla mediante las teclas de flecha) y, con un clic del ratón o la tecla <Intro> abra un cuadro de diálogo para
introducir el valor. Si tienen el mismo tipo de datos, también se pueden seleccionar las celdas de varias variables a
la vez para obtener el mismo valor preparado para todas estas variables. Para la selección múltiple de las celdas,
simplemente mantenga presionado el botón <Shift> mientras selecciona las celdas en particular.

En el Editor de 1 ventana, al hacer clic con el ratón en un valor de variable especificado, también se
puede abrir el cuadro de diálogo correspondiente para introducir el valor que debe ser forzado o escrito.

6.9 La traza de muestreo


6.9.1 Descripción general y configuración
El rastreo de muestras estará disponible como un objeto en los recursos de CoDeSys, si está activado en la
configuración de destino (categoría 'General'). Se puede utilizar para trazar la progresión de los valores de las
variables que se trazan durante un tiempo determinado. Estos valores se escriben en un búfer de anillo (búfer de
seguimiento). Si la memoria está llena, se sobrescribirán los valores "más antiguos" desde el inicio de la
memoria. Como máximo, se pueden trazar 20 variables al mismo tiempo. Se puede trazar un máximo de 500
valores por variable.
Dado que el tamaño del búfer de trazas en el PLC tiene un valor fijo, en el caso de muchas variables o
muy anchas (DWORD), se pueden rastrear menos de 500 valores.
Ejemplo: si se trazan 10 variables WORD y si la memoria del PLC tiene una longitud de 5000 bytes,
entonces, por cada variable, se pueden trazar 250 valores.

Para poder realizar un seguimiento, abra el objeto para un seguimiento de muestreo en los recursos
registrar la tarjeta en el Organizador de objetos. Cree o cargue una configuración de seguimiento
adecuada y defina las variables que se van a rastrear. (Ver 'Extras', 'Configuración de Trazas' y
'Selección de las Variables a Mostrar').
Una vez que haya creado la configuración y haya iniciado el trazado en el PLC ('Start Trace'), se
trazarán los valores de las variables. Con 'Leer trazado', los valores trazados finales se leerán y se
mostrarán gráficamente como curvas.
Tenga en cuenta: Si se utiliza una configuración de tarea para controlar el programa, la funcionalidad de
seguimiento se refiere a la tarea de depuración.

Un Trace (valores variables y configuración) se puede guardar y volver a cargar en formato de proyecto (*.trc) o
en formato XML (*.mon). Solo la configuración se puede almacenar y volver a cargar a través de un archivo *.tcf.

Varios seguimientos pueden estar disponibles en un proyecto para mostrarse. Se enumeran en una
lista de selección ('Trace') en la esquina superior derecha de la ventana de seguimiento. Puede
seleccionar una de ellas para que sea la configuración de seguimiento utilizada actualmente.

'Extras' 'Configuración de trazas'


Con este comando se le dará el cuadro de diálogo para ingresar las variables que se van a rastrear, así
como diversos parámetros de rastreo para el Traza de muestreo. El cuadro de diálogo también se
puede abrir haciendo doble clic en el área gris del cuadro de diálogo Traza de muestreo.

6-64 CoDeSys V2.3


6 - Los recursos

Cuadro de diálogo para la configuración de seguimiento

En primer lugar, defina un nombre para la configuración de seguimiento (Nombre de seguimiento). Este nombre se
añadirá a la lista de selección 'Seguimiento' en la esquina superior derecha de la ventana Seguimiento, tan pronto como
haya confirmado y cerrado el diálogo de configuración con OK. Opcionalmente, introduzca un comentario.

La lista de las variables que se van a rastrear está inicialmente vacía. Para anexar una variable, la
variable debe introducirse en el campo de la lista. A continuación, puede utilizar el botón Insertar o el
<Intro> para añadir la variable a la lista. También puede utilizar el Asistente de entrada (Administrador
de ayuda). Es posible el uso de variables de enumeración.
A variable se elimina de la lista cuando se selecciona la variable y, a continuación, se pulsa el botón Eliminar.
Se puede introducir una variable booleana o analógica (también una variable de enumeración) en el
campo Variable de activación. La asistencia de entrada se puede utilizar aquí. La variable
desencadenadora describe la condición de terminación del seguimiento.
En Nivel de activación, se introduce el nivel de una variable de activación analógica en la que se
produce el evento de activación. También puede usar una constante ENUM aquí. Cuando se
selecciona Positivo de flanco de activación , el evento de activación se produce después de un
flanco ascendente de la variable de activación booleana o cuando una variable analógica ha pasado a
través del nivel de activación de abajo hacia arriba. Las causas negativas se desencadenan después
de un borde descendente o cuando una variable analógica va de arriba a abajo. Ambas causas se
activan tanto para los bordes descendentes como ascendentes o por un paso positivo o negativo,
mientras que ninguna no inicia un evento desencadenante en absoluto.

CoDeSys V2.3 6-65


La traza de muestreo

La posición de activación se utiliza para establecer el porcentaje del valor medido que se registrará antes
de que se produzca el evento de activación. Si, por ejemplo, introduce 25 aquí, se muestra el 25 % de los
valores medidos antes del evento desencadenante y el 75 % después y, a continuación, se termina la traza.

El campo Frecuencia de muestreo se utiliza para establecer el período de tiempo entre dos
grabaciones en milisegundos o, si es compatible con el sistema de destino, en microsegundos. El valor
predeterminado "0" significa un procedimiento de escaneo por ciclo.
Seleccione el modo para recuperar los valores grabados (Grabación): Con Single el número de las
muestras definidas se muestra una vez. Con Continuo, la lectura del registro del número definido de
valores medidos se inicia de nuevo cada vez. Si, por ejemplo, introduce el número '35', la primera
pantalla contiene los primeros valores medidos del 1 al 35 y el registro de los siguientes 35 valores
medidos (36-70) se leerá automáticamente, etc. La selección manual se utiliza para leer las
grabaciones de seguimiento específicamente con 'Extras' 'Leer seguimiento'.
El modo de recuperación funciona independientemente de si se ha activado o no una variable de
activación. Si no se establece ninguna variable de activación, el búfer de seguimiento se rellenará con
el número definido de valores medidos y el contenido del búfer se leerá y mostrará en la recuperación.
El botón Guardar se utiliza para almacenar la configuración de seguimiento que se ha creado en un
archivo. Para ello, se abre la ventana estándar "Guardar archivo como".
Las configuraciones de seguimiento almacenadas se pueden recuperar mediante el botón Cargar.
Para ello, se abre la ventana estándar "Archivo abierto".
Nota: Tenga en cuenta que Guardar y cargar en el cuadro de diálogo de configuración solo se refiere a la
configuración, no a los valores de un registro de seguimiento (a diferencia de los comandos de menú 'Extras',
'Guardar valores de seguimiento', 'Guardar valores' y ..' Valores de carga').

Si el campo Variable de activación está vacío, la grabación de seguimiento se ejecutará sin fin y se
puede detener mediante 'Extras' 'Detener seguimiento'.

Selección de las variables que se mostrarán


El cuadro combinado se encuentra a la derecha, junto a la ventana para mostrar las variables de trazado
de curvas definidas en la configuración del trazado. Si se selecciona una variable de la lista, después de
que se haya leído el búfer de seguimiento, la variable se mostrará en el color correspondiente (Var 0
verde, etc.). Las variables también se pueden seleccionar si las curvas ya se muestran.
Se puede observar un máximo de hasta ocho variables simultáneamente en la ventana de seguimiento.

6.9.2 Generación de un muestreo de trazas

'Extra' 'Iniciar seguimiento'

Símbolo:
Con este comando, la configuración de trazas se transfiere al PLC y se inicia el muestreo de trazas en
el PLC.

'Extra' 'Leer seguimiento'

Símbolo:
Con este comando se lee el búfer de traza actual desde el PLC y se muestran los valores de las
variables seleccionadas.
Utilice los comandos de este menú para guardar o volver a cargar trazas (configuración + valores de
traza) en archivos o desde archivos, para cargar una traza desde el controlador al proyecto o para
establecer una determinada traza como la que se debe usar en el proyecto.
Nota: Considere la forma alternativa de almacenar y volver a cargar las trazas utilizando los comandos del menú
'Extras' 'Guardar valores de traza' (formato de proyecto, *.trc-Datei, ASCII) !

6-66 CoDeSys V2.3


6 - Los recursos

'Extra' 'Lectura automática'


Con este comando, el búfer de seguimiento actual se lee automáticamente desde el PLC y los valores
se muestran continuamente. Si el búfer de seguimiento se lee automáticamente, se encuentra una
marca de verificación (ü) antes del elemento de menú.

'Extra' 'Detener el rastro'

Símbolo:
Este comando detiene el seguimiento de muestreo en el PLC.

6.9.3 Observación de la traza de muestreo


Traza de muestreo de diferentes variables

Si se carga un búfer de seguimiento ('Extras', 'Iniciar seguimiento'), se pueden leer los valores de todas las
variables que se mostrarán ('Extras', 'Leer seguimiento' o 'Extras', 'Lectura automática') y se mostrarán en
consecuencia. Si no se ha establecido ninguna frecuencia de escaneo, el eje X se inscribirá con el número
continuo del valor trazado. El búfer de seguimiento se eliminará tan pronto como se detenga el muestreo de
seguimiento ('Extras', 'Detener seguimiento').
El indicador de estado de la ventana de seguimiento (primera línea) indica si el búfer de seguimiento
está lleno y cuándo se ha completado el seguimiento.
Si se especificó un valor para la frecuencia de exploración, el eje x especificará el tiempo del valor
trazado. El tiempo se asigna al valor rastreado "más antiguo". En el ejemplo, por ejemplo, se indican los
valores de los últimos 25 segundos.
El eje Y se inscribe con valores en el tipo de datos adecuado. La escala se presenta de manera que permita
que el valor más bajo y el más alto quepan en el área de visualización. En el ejemplo, Var 0 ha tomado el
valor más bajo de 6 y el valor más alto de 100: de ahí el ajuste de la escala en el borde izquierdo.

Si se cumple el requisito de activación, se muestra una línea de puntos vertical en la interfaz entre los
valores antes y después de la aparición del requisito de activación.

'Extras' 'Cursor Mode'


La forma más fácil de colocar un cursor en el área de monitoreo es hacer clic allí con el botón izquierdo
del mouse. Aparece un cursor que se puede mover con el ratón. En la parte superior de la ventana de
supervisión se muestra la posición x actual del cursor. En los campos junto a 'Var 0', 'Var 1', ..., 'Var n'
se muestra el valor de la variable respectiva.
Otra forma es el comando 'Extras' 'Modo cursor'. Con este comando aparecerán dos líneas verticales
en el Trazo de muestreo. Primero se colocan uno sobre el otro. Una de las líneas se puede mover

CoDeSys V2.3 6-67


La traza de muestreo

hacia la derecha o hacia la izquierda con las teclas de flecha. Al presionar <Ctrl>+<izquierda> o
<Ctrl>+<derecha> la velocidad del movimiento se puede aumentar en un factor de 10.
Si adicionalmente se presiona la tecla <Shift>, se puede mover la segunda línea, mostrando la
diferencia con la primera.

'Extras' 'Multicanal'
Con este comando puede alternar entre la visualización de un solo canal y multicanal de la traza de muestreo. En
el caso de una visualización multicanal, hay una marca de verificación ( ) delante de la opción de menú.

La visualización multicanal se ha preajustado. Aquí, la ventana de visualización se divide en hasta ocho


curvas de visualización. Para cada curva, el valor máximo y mínimo se muestran en el borde.
En una pantalla de un solo canal, todas las curvas se muestran con el mismo factor de escala y se
superponen. Esto puede ser útil cuando se muestran anomalías en la curva.

'Extras' 'Mostrar grilla'


Con este comando puede activar y desactivar la cuadrícula en la ventana gráfica. Cuando la cuadrícula
esté encendida, aparecerá una marca de verificación ( ) junto al elemento del menú.

'Extras' 'Y Scaling'


Con este comando puede cambiar la escala Y predefinida de una curva en la visualización del trazado.
Al hacer doble clic en una curva, también aparecerá el cuadro de diálogo 'Escala Y'.
Siempre que la opción Automático esté activada, se utilizará el escalado predeterminado, que
depende del tipo de variable utilizada. En el caso de las variables de enumeración, los valores de
enumeración se mostrarán en la escala. Para cambiar la escala, desactive la opción 'Automático' e
introduzca el número de la curva respectiva (Canal) y el nuevo máximo (escala y máxima) y el nuevo
valor mínimo (escala y mínima) en el eje y.
El canal y el valor anterior están preestablecidos.
Cuadro de diálogo para establecer la escala Y

'Extras' 'Stretch'

Símbolo:
Con este comando puede estirar (hacer zoom) los valores de la Traza de muestreo que se muestran. La posición
inicial se establece con la barra de ajuste de imagen horizontal. Con estiramientos repetidos que se suceden uno
tras otro, la sección de seguimiento que se muestra en la ventana se reducirá cada vez más de tamaño.

Este comando es la contraparte de 'Extras' 'Comprimir'.

'Extras' 'Comprimir'

Símbolo:
Con este comando se comprimen los valores mostrados para la traza de muestreo; es decir, después
de este comando, puede ver la progresión de las variables de seguimiento dentro de un período de
tiempo más amplio. Es posible una ejecución múltiple del comando.
Este comando es la contraparte de 'Extras' 'Stretch'.

6-68 CoDeSys V2.3


6 - Los recursos

6.9.4 'Extras' 'Guardar valores de seguimiento'


Utilice los comandos de este menú para guardar las trazas (configuración + valores) en los archivos o para volver
a cargarlas desde los archivos en el proyecto. Además, se puede guardar un rastro en un archivo en formato
ASCII.
Nota: Considere la forma alternativa de almacenar y volver a cargar trazas utilizando los comandos del menú
'Extras' 'Configuraciones de trazas externas' (formato XML, archivo *.mon) !

'Guardar valores'
Con este comando se puede guardar una traza de muestreo (valores + datos de configuración). Se
abre el cuadro de diálogo para guardar un archivo. El nombre del archivo recibe la extensión "*.trc".
Tenga en cuenta que aquí se guardan los valores trazados, así como la configuración de seguimiento, mientras
que Guardar seguimiento en el cuadro de diálogo de configuración solo se refiere a los datos de configuración.

La traza de muestreo guardada se puede volver a cargar con 'Extras' 'Load Trace'.

'Valores de carga'
Con este comando se puede volver a cargar una traza de muestreo guardada (valores trazados + datos de
configuración). Se abre el cuadro de diálogo para abrir un archivo. Seleccione el archivo deseado con la extensión "*.trc".

Con 'Extras' 'Guardar valores' puede guardar una traza de muestreo.

'Seguimiento en archivo ASCII'


Con este comando puede guardar una traza de muestreo en un archivo ASCII. Se abre el cuadro de
diálogo para guardar un archivo. El nombre del archivo recibe la extensión "*.txt". Los valores se
depositan en el fichero de acuerdo con el siguiente esquema:
CODESYS Trace
D:\CODESYS\PROJECTS\TRAFFICSIGNAL.PRO
Cycle PLC_PRG. MOSTRADOR PLC_PRG. LUZ1
021
121
221
.....
Si no se estableció ningún escaneo de frecuencia en la configuración de seguimiento, el ciclo se
encuentra en la primera columna; Eso significa que se ha registrado un valor por ciclo en un momento
dado. En los demás aspectos, la entrada aquí es para el punto en el tiempo en ms en el que se han
guardado los valores de las variables desde que se ejecutó la traza de muestreo.
En las columnas siguientes, se guardan los valores correspondientes de las variables de seguimiento.
En un momento dado, los valores están separados entre sí por un espacio en blanco.
Los nombres de las variables correspondientes se muestran uno al lado del otro en la tercera línea, de acuerdo con el
secuencia (PLC_PRG. MOSTRADOR, PLC_PRG. LUZ1).

6.9.5 'Extras' 'Configuraciones de traza externa'

'Guardar en archivo'
Con este comando se puede guardar un rastro (configuración + valores) en un archivo en formato XML.
Para ello, se abre el cuadro de diálogo estándar para guardar un archivo. Automáticamente se utilizará
la extensión de archivo *.mon.
A archivo *.mon se puede volver a cargar en un proyecto con el comando 'Cargar desde archivo'.

CoDeSys V2.3 6-69


Área de trabajo

'Cargar desde archivo'


Con este comando se puede cargar en el proyecto un seguimiento (configuración + valores), que está disponible en un archivo en
formato XML (*.mon). Se abrirá el cuadro de diálogo para abrir un archivo y podrá buscar archivos con la extensión *.mon. La traza
cargada se mostrará y se añadirá a la lista de selección en el campo 'Traza en el cuadro de diálogo de configuración. Si desea
establecerlo como configuración de seguimiento de proyecto utilizada actualmente, use el comando

'Establecer como configuración del proyecto'.


A puede crear un archivo *.mon usando el comando 'Guardar en archivo'.

Nota: Considere la forma alternativa de guardar una traza utilizando los comandos del menú 'Extras' 'Guardar valores de traza'.

"Guardar en el objetivo"
Con este comando en modo en línea, se puede cargar en el controlador (destino) una configuración de
seguimiento, que está disponible en un archivo en formato XML (*.mon).
Estará disponible el cuadro de diálogo estándar para abrir un archivo, donde por defecto se mostrarán
los archivos con extensión *.mon. Con respecto a esto se refiere a la posibilidad de guardar
configuraciones de seguimiento en archivos *.mon (formato XML) 'Guardar en archivo'.
Ver también: ' Cargar desde el destino'

'Cargar desde el destino'


Con este comando, el seguimiento (configuración + valores) que se utiliza actualmente en el
controlador (destino) se puede cargar en el proyecto CoDeSys. Se mostrará en la ventana de
seguimiento y se puede establecer como configuración de seguimiento de proyecto activo.

'Establecer como configuración del proyecto'


Con este comando, la configuración de seguimiento que está seleccionada actualmente en la lista de
seguimientos disponibles (campo 'Seguimiento' en la ventana de seguimiento) se puede establecer
como configuración activa dentro del proyecto. La lista de selección, además de la utilizada
actualmente (posición superior), ofrece todos los rastros que se han cargado en el proyecto mediante el
comando 'Cargar desde archivo' desde archivos *.mon (por ejemplo, con el fin de visualizar).

6.10 Espacio de trabajo


Este objeto en la pestaña 'Recursos' proporciona una imagen de las opciones de proyecto establecidas
actualmente (consulte el capítulo 4.2, Opciones del proyecto). Si lo abre, obtendrá el cuadro de diálogo
'Opciones' con las categorías conocidas.

6.11 Administrador de parámetros


El Administrador de parámetros es un componente específico del sistema de programación CoDeSys y
debe activarse en la configuración de destino. (véase el capítulo 6.11.1).
El Administrador de parámetros se puede utilizar para hacer que las variables de un programa CoDeSys
IEC, los parámetros constantes o los parámetros específicos del sistema sean accesibles a todos los
sistemas compatibles con CoDeSys en una red con el fin de intercambiar datos, normalmente a través del
bus de campo. Para ello, en el editor se pueden crear listas de parámetros y cargar hacia abajo y hacia
arriba desde el sistema de ejecución.
Tenga en cuenta: Las listas de parámetros también se pueden crear o rellenar con entradas a través de pragmas
que se incluyen en las declaraciones de variables (véase el capítulo 5.2.3).

¿Qué son los parámetros?:


En este contexto, los parámetros son:
variables de proceso del proyecto CoDeSys IEC
Parámetros independientes del proceso
parámetros específicos del sistema, predefinidos por el sistema de destino

6-70 CoDeSys V2.3


6 - Los recursos

instancias de bloque de funciones o variables de estructura, matrices

Cada parámetro se identifica mediante un determinado conjunto de atributos como, por ejemplo, 'valor
predeterminado', 'derechos de acceso' y, especialmente, mediante una clave de acceso única
('Índice', ' Subíndice', 'Nombre'), que se puede direccionar para leer o escribir datos desde/hacia la
lista de parámetros. Este intercambio de datos se puede realizar a través de servicios de comunicación
y no es necesario conocer ninguna dirección de variables ni proporcionar funciones adicionales. Por lo
tanto, el uso de la funcionalidad del Administrador de parámetros es una alternativa al uso de variables
de red.
¿Qué son las listas de parámetros?:
Las listas de parámetros se utilizan para organizar los parámetros y pueden guardarse con el proyecto
y cargarse en el sistema de destino local que está controlado por el programa IEC correspondiente.
Para cada tipo de parámetros, hay un tipo correspondiente de lista de parámetros.
Cada entrada de parámetro está representada por una línea en la lista de parámetros. Cada columna
de la lista representa uno de los atributos del parámetro. Además de un determinado conjunto de
atributos estándar, también se pueden utilizar atributos específicos del fabricante para la descripción de
un parámetro en el Administrador de parámetros.
Depende de las definiciones de un archivo de descripción específico de destino qué atributos
(columnas) serán visibles y editables en el Administrador de parámetros y de qué manera se
organizarán en una lista de parámetros. Si falta el archivo de descripción, se mostrará el conjunto
estándar completo de atributos, cada uno de los cuales muestra el valor predeterminado.
Editor del Administrador de Parámetros en CoDeSys

Además de las listas de variables de proyecto y constantes de proyecto, el Administrador de parámetros también
puede manejar listas de parámetros del sistema. Esos son parámetros que son dados por el sistema de destino.
Más adelante, puede crear listas para instancias de bloques de funciones o variables de estructura que se basan
en plantillas definidas por el usuario también creadas en el Administrador de parámetros.

Debido al hecho de que los datos se almacenan independientemente del programa IEC, se puede
utilizar una lista de parámetros, por ejemplo, para guardar 'recetas', que se conservan incluso si el
programa se reemplaza por otra versión. Más adelante, un PLC en funcionamiento puede ser
"alimentado" con diferentes recetas sin necesidad de volver a descargar el programa.

Nota: Depende del sistema de destino, si el administrador de parámetros se considerará en la creación de un


proyecto de arranque.

6.11.1 Descripción general, activación


El Administrador de parámetros debe estar activado en la funcionalidad Configuración de destino, Categoría Red
(véase el capítulo 6.12).
También en el cuadro de diálogo de configuración de destino se deben definir los rangos de índice y
subíndice para las entradas en las listas de parámetros de tipo parámetros y variables y, si el destino lo
admite, se deben definir las asignaciones (para PDO de dispositivos CAN).
Depende del sistema de destino, si estas opciones son visibles o editables para el usuario.

CoDeSys V2.3 6-71


Administrador de parámetros

Activación del Administrador de parámetros en el cuadro de diálogo de configuración de destino

6.11.2 El editor del administrador de parámetros, descripción general


En la pestaña Recursos, elija el objeto 'Parameter-Manager'. Se abrirá una ventana de editor, donde
puede crear, editar y almacenar listas de parámetros y, en modo en línea, también puede cargarlas en
el sistema de destino y monitorear los valores de los parámetros actuales.
Nota: Para tener disponible la funcionalidad del Administrador de parámetros en un proyecto CoDeSys, se
debe activar la opción 'Administrador de parámetros de soporte' en la Configuración de destino y se
deben definir los rangos de índice apropiados.

La ventana del editor es bipartita. La parte izquierda se utiliza para la navegación, muestra una lista de
todas las listas de parámetros cargadas actualmente en el Administrador de parámetros. La parte
derecha contiene un editor de tablas, las columnas tituladas con los nombres de los atributos.
En la ventana de navegación se insertan, eliminan, reorganizan o renombran listas de parámetros de
diferentes tipos (Variables, Parámetros constantes, Plantilla, Instancia, Parámetros del sistema).
En el editor de tablas, las listas se rellenan con entradas de parámetros. Cada tipo de lista mostrará una
selección especial de columnas de atributos que se pueden editar o simplemente son visibles. Esto se define
mediante un archivo de descripción específico de destino o se tomará la configuración predeterminada.

Puede saltar entre la ventana de navegación y el editor de tablas pulsando <F6>.


Editor del Administrador de Parámetros en CoDeSys

En el modo en línea, puede cargar las listas que ha creado anteriormente en el sistema de destino conectado
actualmente. También puede utilizar las funciones del Administrador de parámetros para acceder a ellas con el fin de
intercambiar datos con otros sistemas (escribir valores, cargar). Más adelante, en la ventana Administrador de

6-72 CoDeSys V2.3


6 - Los recursos

parámetros, puede monitorear los valores actuales de los parámetros. Si actualmente no se establece ninguna
conexión en línea, las listas de parámetros solo se pueden crear localmente y guardar con el proyecto.

6.11.3 Tipos y atributos de la lista de parámetros


El Administrador de parámetros puede controlar los siguientes tipos de listas de parámetros:
Variables: Las entradas de las listas de parámetros de este tipo representan variables de proceso del proyecto.

Parámetros: Las entradas de las listas de parámetros de este tipo representan parámetros cuyos
valores no están vinculados por el proceso.
Parámetros del sistema: Las entradas de las listas de parámetros de este tipo representan datos que
no están adjuntos por el proceso y que están determinados por el sistema de destino. Las listas de
parámetros del sistema no se pueden eliminar ni cambiar de nombre.
Plantilla: Una plantilla no contiene entradas de parámetros a las que se pueda acceder directamente
con el fin de intercambiar datos. De hecho, las entradas proporcionan una "configuración básica de
atributos" para los componentes de un bloque de funciones o una estructura. Por lo tanto, se puede
utilizar una plantilla en listas de parámetros de tipo 'Instancia'.
Instancia: Las entradas en las listas de parámetros de este tipo representan entradas de parámetros
para variables que son del tipo de un bloque de función o estructura, es decir, que son instancias o
variables de estructura. Para facilitar la introducción de los parámetros, se utiliza una plantilla, que
también se ha creado anteriormente en el Administrador de parámetros.
Asignaciones: Este tipo de lista solo está disponible si es compatible con el sistema de destino. Las entradas
representan variables de proceso que están destinadas a ser utilizadas en la asignación de PDO de un
dispositivo CAN. Por lo tanto, las listas de mapeo son básicamente listas de variables, pero están trabajando en
un rango de índice/subíndice separado. Este rango debe definirse en la configuración de destino, categoría
Funcionalidad de red. En este caso, un dispositivo CAN, que se configura en la configuración del PLC, solo
utilizará las entradas del tipo de lista 'Mapping', mientras que de lo contrario, todas las entradas de las listas de
variables o instancias estarán disponibles en el cuadro de diálogo de mapeo de PDO.
Cada tipo de lista se mostrará en el Editor del Administrador de parámetros de acuerdo con los atributos definidos por
a archivo de descripción en formato XML. Si falta un archivo de este tipo, se utilizará la configuración predeterminada.

Instancias y plantillas
Una lista de parámetros de "Instance" ...
... Maneja las entradas de parámetros, que representan un bloque de funciones, una variable de estructura o una matriz.
Cada una de las listas de instancias para un bloque de funciones o una estructura se basa en una plantilla
que también debe definirse en el Administrador de parámetros para el bloque de funciones o la estructura
respectiva. Las listas de instancias para matrices no pueden usar una plantilla creada en el Administrador de
parámetros, sino que hacen referencia directamente a la matriz que se usa en el proyecto.

Una lista de parámetros "Plantilla" ...


... no contiene parámetros a los que se accede directamente con el fin de intercambiar datos. De hecho, define los
desplazamientos de índice y subíndice y ciertos atributos para las entradas de parámetros que representan los
componentes de un bloque de funciones o una estructura. A continuación, la plantilla se puede utilizar en una lista
de parámetros de 'Instancia' (ver arriba), lo que proporciona una manera fácil de crear entradas de parámetros
para variables de proyecto que son instancias de un bloque de funciones o una estructura.

Creación de una lista de parámetros de plantilla:


En el campo de edición situado junto a POU base, introduzca el nombre del bloque de funciones o estructura para
el que se debe crear una plantilla de parámetros. Con el asistente de entrada, puede examinar las POU
disponibles del proyecto. Pulse Aplicar para introducir los componentes de la POU elegida en el editor de la lista
de parámetros. Ahora edite los campos de atributos y cierre la lista para que esté disponible para su uso en una
lista de 'Instancias'.
El comando Insertar entradas faltantes en el menú contextual o en el menú 'Extras' provocará una
actualización de las entradas de acuerdo con la versión actual de la POU base. Esto puede ser
necesario después de haber eliminado algunas líneas o después de haber cambiado la POU base.

CoDeSys V2.3 6-73


Administrador de parámetros

Si se activa la opción Acciones síncronas, todos los accesos de lectura/escritura en otras POU definidas para cualquier
entrada de la lista, serán ejecutados por el sistema de destino de forma sincrónica con la llamada de la entrada respectiva.

Para crear listas de parámetros de instancia para matrices, no es necesario crear una plantilla en el
Administrador de parámetros. La plantilla ARRAY estará disponible implícitamente.
Creación de una lista de parámetros de instancia:
Edite una plantilla de la lista de selección debajo de la tabla. Esta lista ofrece todas las plantillas disponibles
actualmente para bloques de funciones o estructuras en el Administrador de parámetros, además de la
opción ARRAY, que puede seleccionar, si desea hacer referencia directamente a una matriz utilizada en su
proyecto. Pulse Aplicar para insertar los componentes predefinidos en la tabla de la lista de parámetros.

En el campo de edición Variable base, introduzca exactamente la variable de proyecto (debe ser del
tipo del bloque de funciones o de la estructura o de la matriz descrita por la plantilla elegida), para los
componentes de los que desea crear entradas de parámetros.
Introduzca un índice base y un subíndice base para la instancia. Los índices y subíndices de los componentes
particulares se calcularán automáticamente sumando los valores de índice o subíndice que se definen en la
plantilla para cada componente (en el caso de las matrices, la base será 0). Se rellenarán automáticamente en los
campos de atributos respectivos. Ejemplo: Si introduce un índice base "3" para un componente, para el que se ha
definido un desplazamiento de índice "3000" en la plantilla, el componente se establecerá en el índice 3003.

Para la opción Acciones síncronas, consulte más arriba: Creación de una lista de parámetros de plantilla.
El comando Insertar entradas faltantes en el menú contextual o en el menú 'Extras' provocará una
actualización de las entradas de acuerdo con la versión actual de la plantilla utilizada. Esto puede ser
útil después de haber eliminado entradas o después de que se haya modificado la plantilla.
Ejemplo:

Cree un bloque de funciones fubo con variables de entrada o salida: a, b, c. En PLC_PRG defina las
siguientes instancias de FB-: inst1_fubo:fubo; inst2_fubo:Fubo. Compilar el proyecto.
Ahora abra el Administrador de parámetros para crear listas de parámetros para las variables inst1_fubo.a,
inst1_fubo.b, inst1_fubo.c y inst2_fubo.a, inst2_fubo.b, inst2_fubo. En primer lugar, inserte una lista de parámetros de
tipo "Plantilla" y asígnele el nombre "fubo_template". Defina la POU base: "fubo". Presione Aplicar y defina algunos
atributos para los componentes a,b,c: te. Entre otras cosas, introduzcan los desplazamientos del índice: para a: 16#1,
para b: 16#2, para c: 16#3. También los desplazamientos del Subíndice, por ejemplo, a: 16#2, b: 16#3, c: 16#4.

Ahora inserte una nueva lista de parámetros que sea de tipo 'Instancia'. Elija la plantilla "fubo_template". Inserte
la variable Base "inst1_fubo". Defina un índice base de, por ejemplo, 16#2300 y un subíndice base de 30 (debe
tener en cuenta los rangos definidos en la configuración de destino en la pestaña Funcionalidad de red !). Ahora
presione Aplicar para que se muestren los índices que se calculan para los componentes a, b, c mediante la
adición de desplazamientos base y desplazamientos definidos por plantilla: Índices: 16 # 2301, 16 # 2302, 16 #
2303; Subíndices: 16#23, 16#33, 16#43.

6-74 CoDeSys V2.3


6 - Los recursos

Basándose en estas entradas creadas automáticamente, ahora puede continuar editando la lista de parámetros.

6.11.4 Gestión de listas de parámetros

Insertar lista
Atajo: Ins
Para insertar una nueva lista de parámetros en la Gestión de parámetros, utilice el comando 'Insertar
lista...', o 'Insertar nueva lista' en el menú contextual o 'Insertar'. Los comandos están disponibles
cuando el foco está en la ventana de navegación vacía o en una entrada ya existente en el árbol de
navegación. Se abrirá el cuadro de diálogo 'Insertar lista'.
Inserte un nombre para la nueva lista de parámetros (debe ser único dentro del tipo de lista) y elija uno
de los siguientes tipos de lista:

Variables Entradas para variables de proceso

Parámetros Entradas de datos, cuyos valores permanecen desvinculados por el proceso

Plantilla Plantilla de configuración de atributos para los componentes de un bloque


de funciones o una estructura
Instancia Entradas para variables de tipo de un bloque de función o de una
estructura, basadas en la plantilla correspondiente (véase más arriba)
Asignaciones Entradas para variables de proceso, destinadas a ser utilizadas en el
mapeo PDO de un dispositivo CAN. ¡Este tipo solo está disponible si es
compatible con el sistema de destino!
Parámetros Entradas para parámetros cuyos valores no están asociados por el
del sistema proceso y que están definidos por el sistema de destino

CoDeSys V2.3 6-75


Administrador de parámetros

Cuadro de diálogo 'Insertar lista'

Después de confirmar la configuración y cerrar el cuadro de diálogo con OK, la nueva lista de parámetros
aparecerá como una entrada en la ventana de navegación, el tipo de lista indicado por el icono. En el editor
de tablas, los atributos apropiados se mostrarán como títulos de columna. La selección y el orden de las
columnas se definen mediante un archivo de descripción específico de destino, de lo contrario, se utiliza la
configuración predeterminada. Ahora puede editar la tabla, introduciendo una línea para cada parámetro
deseado (consulte el Capítulo 6.11.4, Edición de una lista de parámetros).
Cambiar el nombre de la lista
La lista de parámetros, que actualmente está marcada en la ventana de navegación, se puede cambiar
de nombre utilizando el comando 'Renombrar lista' que está disponible en el menú 'Extras' o en el
menú contextual. Se abrirá un campo de edición, que también se obtiene al hacer doble clic con el
ratón sobre el nombre de la lista.
Lista de cortar / copiar / pegar
Atajo: <Ctrl> + <X>, <Ctrl> + <C>, <Ctrl> + <V>,
El comando 'Cortar' (menú Edición) o 'Lista de corte' (menú contextual) mueve la lista marcada actualmente de la
ventana de navegación a un búfer temporal, de modo que puede volver a insertarla con el comando 'Pegar' en
cualquier otra posición del árbol de navegación. Antes de volver a insertar, marque la lista sobre la que desea
insertar.
El comando 'Copiar' o 'Copiar lista' también utiliza el búfer temporal, pero se mantendrá la entrada
original del árbol de navegación y se agregará una copia mediante 'Pegar'.

Eliminar lista
Atajo: <Supr>
La lista seleccionada actualmente en la ventana de navegación se eliminará mediante el comando
'Eliminar' (menú 'Editar') o 'Eliminar lista' ('Extras' o menú contextual).

Tenga en cuenta: En el modo en línea, este comando eliminará la lista correspondiente en el sistema de tiempo de ejecución.

6.11.5 Edición de listas de parámetros

Qué columnas (atributos) se muestran:


La lista de parámetros marcada actualmente (ventana de navegación) se mostrará en la ventana de la tabla según
lo definido por un archivo de descripción específico de destino o de acuerdo con la configuración predeterminada.

Esto significa que los valores de los atributos de cada parámetro en particular se mostrarán en una línea separada
De acuerdo con el orden específico del tipo de lista y la selección de columnas.

6-76 CoDeSys V2.3


6 - Los recursos

Puede desvanecer y desvanecer columnas desactivándolas o activándolas en el menú contextual


cuando el cursor apunte a cualquier campo de la barra de título de la columna de lista.
Para modificar la columna, mueva los divisores entre los campos de título de columna o use uno de los
comandos disponibles en el menú contextual cuando el cursor se coloca en un campo de título de
columna: Comando Ancho de columna estándar establecerá un ancho estándar para todas las
columnas, lo que las hace visibles en la ventana. Maximizar ancho cambiará el ancho de la columna
actualmente enfocada para que cada entrada se muestre por completo.

Comandos para editar una entrada de lista de parámetros


Los siguientes comandos para editar una lista de parámetros están disponibles en el menú contextual
o en los menús ' Insertar' o 'Extras':

Inserción/eliminación de líneas:

Inserte la línea resp. Se insertará una nueva entrada (línea) antes de aquella en la que se
Nueva línea cursor está colocado actualmente.
Línea después de resp. Se insertará una nueva entrada (línea) después de aquella en la que el
Nueva línea después cursor está colocado actualmente. .
Acceso directo:<Ctrl><Enter>

Eliminar línea La línea en la que se encuentra actualmente el cursor se eliminará.


Atajo: <Mayús>+<Supr>
Cortar, copiar, pegar línea Estos comandos se pueden utilizar para mover (cortar/pegar)
o para copiar (copiar/pegar) la línea seleccionada.

Edición de valores de atributo:


Si se inserta una nueva línea para la entrada de un parámetro, los campos de atributo se rellenarán
automáticamente con valores predeterminados específicos del objetivo. Consulte el capítulo 6.11.3, "Tipos y
atributos de la lista de parámetros" para conocer los posibles atributos. Para introducir o editar el valor de un
atributo, haga clic en el campo correspondiente. Se abrirá un campo de edición si el atributo es editable. El
asistente de entrada (<F2>) estará disponible en los campos en los que se debe introducir un componente del
proyecto CoDeSys.
Pulse <Intro> para cerrar la entrada.
Utilice las teclas de flecha para saltar a otro campo.
Presione <Supr> para eliminar la entrada del campo editado actualmente.
Para alternar el formato de entrada entre 'decimal' y hexadecimal' use el comando ' Formato Dec/Hex'
en el menú 'Extras'.
Presione <F6> para establecer el enfoque en la ventana de navegación (y viceversa).
Opciones:
Debajo de la tabla, en la ventana del editor, se pueden activar las siguientes opciones (disponibilidad
según el tipo de lista):
Descargar con programa: Al descargar un programa, la lista se descargará automáticamente en el
controlador.
Acciones síncronas: todos los accesos de lectura/escritura en otras POU definidas para cualquier lista.
entradas, serán ejecutadas por el sistema de destino de forma sincrónica con la llamada del
entrada respectiva.

Ordenar listas de parámetros


La secuencia de entradas dentro de una lista de parámetros se puede ordenar con respecto a un atributo
(columna) en orden ascendente o descendente de los valores de atributo. Esto funciona en modo offline y

CoDeSys V2.3 6-77


Administrador de parámetros

online. Haga clic con el ratón en el campo que contiene el título de la columna del atributo deseado. Por lo
tanto, las líneas de la tabla se reordenarán y en el campo del título de la columna del atributo se mostrará el
símbolo de flecha am, que muestra la clasificación actual (apuntando hacia arriba = secuencia de
clasificación ascendente, apuntando hacia abajo = secuencia de clasificación descendente).

6.11.6 Administrador de parámetros en modo en línea

Transferencia de lista entre el editor y la unidad de control


Si el objetivo lo admite, en el modo en línea las listas de parámetros, que se han creado en el editor, se
pueden descargar en resp. cargado desde el sistema de tiempo de ejecución. Más adelante, puede
escribir valores de parámetros individuales en el sistema de tiempo de ejecución. El tamaño
máximo de las listas de tipo 'Variable' y 'Parámetros' también está definido por el sistema de destino.
Tenga en cuenta: Al iniciar sesión, se realizará automáticamente una descarga de todas las listas de
parámetros, para lo cual está activada la opción 'Cargar con proyecto'.
El valor actual de cada parámetro se supervisa en una columna adicional que se muestra en el
administrador de parámetros en modo en línea:

Depende del destino, si se utilizan Index y Subindex o RefID y Offset para supervisar los valores.

Los siguientes comandos están disponibles en el menú 'Extras' para manejar la transferencia de listas
entre el editor y el controlador:

Eliminar lista La lista marcada actualmente en la ventana de navegación se eliminará del PLC
sistema de tiempo de ejecución.
Lista de escritura Este comando abrirá el cuadro de diálogo 'Copiar objetos' donde puede seleccionar
Disponible enumera los que desea descargar en el sistema de tiempo de ejecución. El
la descarga se realizará tan pronto como confirme con OK. Depende de la
target, ya sea para enumeraciones solo numéricas o, además, simbólicas,
Los valores serán transferidos.
Lista de lectura Todas las listas de tipo 'Parámetros' se leerán desde el sistema de ejecución y se cargarán
en el Administrador de parámetros. La "carga" de listas de tipo 'Variables' será
solo se realiza si el destino lo admite explícitamente.
Valores de escritura Todos los valores definidos en la columna 'Valor' se escribirán en la lista de parámetros
del sistema de ejecución. Para escribir valores individuales, haga doble clic en el botón
campo respectivo en la columna para obtener el cuadro de diálogo 'Valor de
escritura', como se conoce de la función 'En línea' 'Valores de escritura'.
Escribir valores predeterminados Los valores definidos en la columna 'Predeterminado' se escribirán
en la lista de parámetros en el sistema de tiempo de ejecución.
Valores de toma de control Los valores actuales se leerán desde el sistema de tiempo de ejecución y
se cargarán en la columna 'Valor'.

El comando Format Dec/Hex también está disponible para alternar el formato de entrada entre
'decimal' y hexadecimal'.

Listas de parámetros en el proyecto de arranque


Depende del sistema de destino, si las listas de parámetros se tendrán en cuenta cuando se cree un
proyecto de arranque.

6-78 CoDeSys V2.3


6 - Los recursos

6.11.7 Exportación / Importación de listas de parámetros

'Extras' 'Export'
El comando 'Exportar' del menú 'Extras' se puede utilizar para exportar las listas del Administrador de
parámetros a un archivo XML. Este archivo, por ejemplo, se puede importar a otro proyecto mediante la
función de importación en el Administrador de parámetros de CoDeSys. Se abrirá el cuadro de diálogo
estándar para guardar un archivo, la extensión de archivo *.prm estará preestablecida. Todas las listas
disponibles en el Administrador de parámetros se escribirán en el archivo de exportación.
El contenido del Administrador de parámetros también se puede exportar utilizando la función general
de exportación de proyectos ('Exportación de proyectos').

'Extras' 'Import'
El comando 'Importar' del menú 'Extras' se puede utilizar para importar un archivo XML que describe
listas de parámetros. Este archivo, por ejemplo, se puede crear utilizando la función de exportación en
el Administrador de parámetros de CoDeSys.
Si el archivo de importación contiene una lista, cuyo nombre ya se utiliza en el Administrador de
parámetros, se abrirá un cuadro de diálogo preguntando al usuario si se debe sobrescribir la lista
existente.

6.12 Configuración de destino


La "Configuración de destino" es un objeto de los "Recursos". Aquí se define qué destino se utilizará para el
proyecto y cómo se configurará. Si se inicia un nuevo proyecto con 'Proyecto' 'Nuevo', se abrirá un cuadro
de diálogo donde se debe establecer el objetivo, es decir, una configuración predefinida para un objetivo.
La lista de destinos disponibles depende de los paquetes de soporte técnico (TSP) de destino instalados en
el equipo. Estos describen las configuraciones básicas específicas de la plataforma y también definen hasta
qué punto el usuario puede modificar la configuración en los cuadros de diálogo de configuración de
CoDeSys Target.
Tenga en cuenta: Si no hay ningún TSP disponible, solo se ofrecerá la configuración 'Ninguno' en el cuadro de selección del
sistema de destino. Esto cambiará automáticamente al modo de simulación y no será posible realizar ajustes de configuración.

Target-Support-Package (Paquete-de-Soporte-Objetivo)
Se debe instalar un paquete de soporte de destino (TSP) antes de comenzar con la ayuda del
programa de instalación InstallTarget, que podría ser parte de CoDeSys-Setup.
Un paquete de soporte de destino (TSP) contiene todos los archivos y la información de configuración necesaria para
controlar una plataforma estándar con un programa creado en CoDeSys. Lo que hay que configurar: generador de
código, disposición de la memoria, funcionalidad del PLC, módulos de E/S. Además, las bibliotecas, los controladores de
puerta de enlace, los archivos ini para mensajes de error y el navegador PLC deben estar vinculados. El componente
central de un TSP son uno o más archivos de destino. Un archivo de destino dirige a los archivos que, además, son
necesarios para configurar el destino. Es posible que varios archivos de destino compartan estos archivos adicionales.

La extensión predeterminada para un archivo de destino es *.trg, el formato es binario. Las definiciones
aditivas se adjuntan a las entradas del archivo de destino que determinan si el usuario puede ver y
editar la configuración en los cuadros de diálogo de CoDeSys.
Durante la instalación de un TSP, el archivo de destino para cada destino se coloca en un directorio separado y se
registra la ruta. Los archivos asociados se copian en la computadora de acuerdo con la información de un archivo
de información *.tnf . El nombre del directorio de destino es el mismo que el nombre de destino. Se recomienda
almacenar los archivos específicos de destino en un directorio que se nombre con el nombre del fabricante.

Los archivos que se instalan con un TSP se leen cuando se inicia CoDeSys. Los ajustes de destino
que se realizan en los diálogos de CoDeSys se guardarán con el proyecto.

Tenga en cuenta: Si utiliza un nuevo archivo de destino o si ha cambiado el existente, CoDeSys debe reiniciarse
para leer la versión actualizada.

CoDeSys V2.3 6-79


El PLC-Browser

Configuración de destino de cuadro de diálogo


El cuadro de diálogo Configuración de destino se abrirá automáticamente cuando se cree un nuevo
proyecto. También se puede abrir seleccionando la opción de menú 'Configuración de destino' en el
registro 'Recursos' en el Organizador de objetos.
Elija una de las configuraciones de destino que se ofrecen en Configuración.
Si no se ha instalado ningún paquete de soporte de Target, solo se puede seleccionar 'Ninguno', lo
que significa trabajar en modo de simulación. Si elige una de las configuraciones instaladas, depende
de las entradas en los archivos de destino, qué posibilidades quedan para personalizar esta
configuración en los diálogos de CoDeSys . Si elige una configuración de destino, para la que no
existe ninguna licencia válida en el equipo, CoDeSys le pide que elija otro destino.
Si se selecciona una configuración, que se proporciona con la entrada "HideSettings" en el archivo de
destino correspondiente, solo puede ver el nombre de la configuración. De lo contrario, hay cinco
diálogos disponibles para modificar la configuración dada:
1. Plataforma de destino
2. Diseño de la memoria
3. Generalidades
4. Funcionalidad de red
5. Visualización

¡Atención!: ¡Tenga en cuenta que cada modificación de la configuración de destino predefinida puede causar
cambios severos en el rendimiento y el comportamiento del objetivo!

Presione <Predeterminado> si desea restablecer la configuración de destino a la configuración


estándar dada por el archivo de destino.

6.13 El navegador PLC


El PLC-Browser es un monitor de control basado en texto (terminal). Los comandos para la solicitud de
información específica del controlador se introducen en una línea de entrada y se envían como cadena
al controlador. La cadena de respuesta devuelta se muestra en una ventana de resultados del
navegador. Esta funcionalidad sirve para fines de diagnóstico y depuración.
Los comandos disponibles para el sistema de destino establecido se componen del conjunto estándar
CoDeSys más un posible conjunto de extensión del fabricante del controlador. Se administran en un
archivo ini y se implementan en consecuencia en el sistema de tiempo de ejecución.

6.13.1 Observaciones generales sobre el funcionamiento del PLC-Browser


Seleccione la entrada PLC-Browser en el control de la pestaña Recursos. Estará disponible allí si está
activado en la configuración de destino actual (categoría funcionalidad de red).

6-80 CoDeSys V2.3


6 - Los recursos

La ventana del navegador de PLC de CoDeSys

El navegador consta de una línea de entrada de comandos y una ventana de resultados/visualización.


En un cuadro de selección, la línea de entrada muestra una lista de todos los comandos introducidos
desde el inicio del proyecto (historial de entrada). Están disponibles para su reselección hasta que se
cierre el proyecto. Solo se agregan a la lista los comandos que difieren de los ya existentes.
El comando ingresado se envía al controlador con <Enter>. Si no hay conexión en línea, el comando se
muestra en la ventana de resultados de la misma manera que se envía al controlador, de lo contrario,
la respuesta del controlador se muestra allí. Si se envía un nuevo comando al controlador, se elimina el
contenido de la ventana de resultados.
Los comandos se pueden ingresar en forma de cadenas de comandos, también es posible el uso de
macros:

6.13.2 Entrada de comandos en el PLC-Browser


Básicamente, el PLC-Browser pone a disposición los comandos estándar 3S codificados en el sistema de tiempo
de ejecución. Se ocupa de las funciones para la manipulación directa de la memoria, para la salida de las
funciones de proyecto y estado, así como para la supervisión en tiempo de ejecución. Se describen en el archivo
ini del navegador, que es una parte integral del paquete de soporte de Target. Estos comandos estándar pueden
complementarse con otros especializados, por ejemplo, funciones de autodiagnóstico u otros mensajes de estado
de la aplicación de control. La ampliación de la lista de comandos debe llevarse a cabo tanto en la interfaz de
cliente en el sistema de tiempo de ejecución como a través de entradas adicionales en el archivo ini del
navegador.
Al abrir el proyecto, la lista de comandos disponible en el PLC-Browser se genera en función de las entradas en
el archivo ini del navegador. Se puede acceder a él como ayuda de entrada utilizando el botón ... en el cuadro de
diálogo "Insertar comando estándar" o usando <F2>. También se puede usar el comando ' Insertar' 'Comandos
estándar' para obtener la lista de comandos. Un comando se puede escribir manualmente en la línea de
comandos o se puede seleccionar de la lista haciendo doble clic en la entrada correspondiente.

La sintaxis general del comando es:


<PARÁMETROS DEPENDIENTES ><PALABRA CLAVEVACÍOS><PALABRA CLAVE>
La palabra clave es el comando. Los parámetros con los que se puede ampliar se describen en la
información sobre herramientas respectiva en la ventana de ayuda de la entrada.
El comando, que se ha enviado, se repite en la ventana de datos de salida, la respuesta del controlador
aparece debajo.
Ejemplo: Solicitud del ID del proyecto al controlador con el comando "pid"
Entrada en la línea de comandos:
Pid

CoDeSys V2.3 6-81


El PLC-Browser

Salida en la ventana de resultados:


pid Identificación del proyecto: 16#0025CFDA

Se puede proporcionar un texto de ayuda para cada comando estándar con ?<BLANK><KEYWORD>.
Esto se define de manera similar en el archivo ini.
Los siguientes comandos están firmemente integrados en el sistema de tiempo de ejecución y contenidos en el
archivo ini con las entradas correspondientes para ayuda de entrada, información sobre herramientas y ayuda:

Mandar Descripción

? El sistema en tiempo de ejecución proporciona una lista de los comandos disponibles. La


lista es independiente del estado de los archivos de descripción del sistema de destino.

Mem Volcado hexadecimal de un área de memoria Sintaxis 1: mem <dirección


inicial> <dirección final> Las direcciones se pueden introducir decimal,
hexadecimal (prefijo 16#) o como una macro.
MEMC Volcado hexadecimal relativo a la dirección de inicio del código en el controlador; Al
igual que MEM, los datos se agregan a la dirección de inicio del área de código.
MEMD Hexdump relativo a la dirección de la base de datos en el controlador; Al igual que
MEM, los datos se agregan al área de datos
reflejar Reflejar la línea de comandos actual, con fines de prueba.
Dpto Leer y mostrar la tabla de punteros de datos.
Ppt Leer y mostrar la tabla POU.
Pid Leer y mostrar el ID del proyecto.
Pinf Leer y mostrar la información del proyecto (consulte 'Proyecto', 'Información del proyecto').

Tsk Mostrar la lista de tareas IEC, incluida la información de la tarea definida en el proyecto.

startprg Inicie el programa PLC ('Online', 'Start').


stopprg Programa Stop PLC ('Online', 'Stop').
resetprg Restablecer el programa PLC. Solo se inicializan los datos no retentivos. ('En línea', 'Restablecer).

resetprgcold Restablecer el programa PLC en frío. Los datos remanentes también se inicializan. ('En línea', 'Restablecer (frío)').

resetprgorg Restablecer el programa PLC original. Se borra el programa de aplicación actual, así como
todos los datos (incluidos los remanentes y persistentes). ('En línea', 'Restablecer (origen)').

recargar Vuelva a cargar el proyecto de arranque.


getprgprop Leer y mostrar las propiedades del programa (nombre, título, autora de la versión, fecha).

getprgstat Leer y mostrar el estado del programa (por ejemplo, "ejecutar", "detener", último error, indicadores).

filedir Comando de archivo "dir". Lista de archivos en el directorio PLC.


Copia de archivo Copie el archivo [desde] [a]. Ejemplo: "filecopy filename.txt filename2.txt".

filerename Cambie el nombre de los archivos en PLC [antiguo] [nuevo]. Ejemplo: filerename oldname.txt newname.txt".

Eliminación de archivos Eliminar archivo en PLC; Ejemplo: "filedelete file.xml".


GuardarConservarGuarde las variables de retención. A continuación, se mostrará el nombre del archivo guardado.

RestaurarConservarVariables de retención de carga. Se mostrará el nombre del archivo guardado,


desde el que se restauran los valores de las variables.

6-82 CoDeSys V2.3


6 - Los recursos

Mandar Descripción

setpwd Establezca la contraseña en el controlador; Sintaxis: setpwd <contraseña> [nivel], por


ejemplo, "setpwd abcde 0". <nivel> puede ser "0" (por defecto) válido solo para los inicios de
sesión desde el sistema de programación, o "1" válido para todas las aplicaciones.

Delpwd Eliminar contraseña en el PLC.

Por favor, tenga en cuenta:


La primera palabra de la secuencia de comandos introducida se interpreta como palabra clave (<KEYWORD>).
Si el controlador no reconoce la primera palabra de la entrada del comando , aparecerá la respuesta
"Palabra clave no encontrada" en la ventana de resultados.
Si una palabra clave va precedida de un "?<ESPACIO>" (por ejemplo, "? mem"), se buscará en el
archivo ini la existencia de una sección de ayuda para esta palabra clave. Si hay uno disponible, no se
envía nada al controlador, sino que solo se muestra el texto de ayuda en la ventana de datos de salida.

6.13.3 Uso de macros durante la entrada de comandos en PLC-Browser


Si se introduce un comando asociado a una macro en la línea de comandos, este se expande antes de enviarlo al
controlador. A continuación, la respuesta en la ventana de resultados aparece de forma similar expandida.

La sintaxis de la entrada es: <KEYWORD><macro>


<PALABRA CLAVE> es el comando.
Las macros son:

%P<NAME> Si NAME es un nombre POU, la expresión se expande a <POU-Index>, de lo contrario no


hay alteración
%V<NAME> Si NAME es un nombre de variable, la expresión se expande a #<INDEX>:<OFFSET>, de
lo contrario no hay alteración (esta notación #<INDEX>:<OFFSET> es interpretada por el controlador
como una dirección de memoria)
%T<NAME> Si NAME es un nombre de variable, la expresión se expande a <VARIABLENTYP>, de lo
contrario no hay ninguna alteración.
%S<NAME> Si NAME es un nombre de variable, la expresión se expande a <SIZEOF(VAR)>, de lo
contrario no hay ninguna alteración.

El carácter % se ignora si el símbolo de escape \ (barra invertida) se coloca delante. El símbolo de


escape como tal sólo se transmite si se escribe \\.
Ejemplo:

Entrada en la línea de comandos: (volcado de memoria de la variable .testit ?)


mem %V.testit
Salida en la ventana de resultados:
MEM #4:52
03BAAA24 00 00 00 00 00 CD CD CD .... ÍÍÍÍÍÍÍÍÍÍÍÍÍ

6.13.4 Otras opciones de PLC-Browser


En el menú " Extras" o en la barra de herramientas del PLC-Browser se encuentran los siguientes
comandos para manejar la entrada de comandos o la lista de historial: Con

CoDeSys V2.3 6-83


Herramientas

hacia adelante y hacia atrás en el historial , puede desplazarse hacia atrás y hacia adelante a través
de los resultados de la consulta ya realizados. La grabación del historial continúa hasta que abandona
el proyecto.

Con el comando Cancelar Puede interrumpir una consulta que se ha iniciado.

Con Guardar lista de historial puede guardar los resultados de la consulta realizada hasta ese
momento en un archivo de texto externo. Aparecerá el cuadro de diálogo 'Guardar archivo como', en el
que puede ingresar un nombre de archivo con la extensión ".bhl" (Lista de historial del navegador). El
comando Imprimir último comando abre el cuadro de diálogo estándar para imprimir. Se puede
imprimir la consulta actual más los datos de salida en la ventana de mensajes.

6.14 Herramientas
El objeto 'Herramientas' estará disponible en la pestaña 'Recursos' si la funcionalidad está habilitada para el
sistema de destino establecido actualmente. Muestra todos los accesos directos (conexiones) disponibles a
archivos ejecutables de herramientas externas, que se pueden activar con un doble clic para llamar a estos
programas externos desde CoDeSys. Está definido por el archivo de destino cuál y cuántos accesos directos están
permitidos. Dependiendo de esta definición, el usuario puede agregar o eliminar nuevos accesos directos en la
carpeta 'Herramientas'.
Por ejemplo, la carpeta Herramientas del Organizador de objetos podría tener el siguiente aspecto:

En este ejemplo se instalan cuatro accesos directos de herramientas. Uno sirve para iniciar otro sistema de
programación CoDeSys, otro para abrir la lista de ensambladores en un editor de texto y otros dos accesos
directos están disponibles para abrir archivos PDF. Los accesos directos marcados con un "<R>" no se
pueden modificar en CoDeSys. Los accesos directos pueden contener la conexión a un editor, por ejemplo,
notepad.exe, o a un determinado archivo PDF, de modo que al hacer doble clic en la entrada se abriría una
ventana de bloc de notas que muestra la lista de ensambladores respectivamente se abriría el Acrobat
Reader que muestra el archivo PDF.
Además, puede definir ciertos archivos que deben descargarse en el PLC tan pronto como se active el
acceso directo.

6.14.1 Propiedades de los accesos directos de herramientas disponibles (propiedades de objeto)


Al hacer clic con el ratón en el signo más de la entrada "Herramientas" en la pestaña Recursos del
Organizador, se abrirá una lista de los accesos directos disponibles. Si está empezando a configurar un
nuevo proyecto, solo verá los que están definidos en el archivo de destino como entradas de
corrección. Pero si la carpeta Herramientas ya ha sido modificada, es posible que encuentre otros
accesos directos, agregados por un usuario en CoDeSys.

6-84 CoDeSys V2.3


6 - Los recursos

Cuadro de diálogo 'Propiedades de la herramienta'

Puede ver las propiedades globales de la herramienta (válidas para todos los accesos directos
enumerados en 'Herramientas'), así como las propiedades de los accesos directos individuales.

1. Propiedades de la herramienta:
Si 'Herramientas' está marcado en el árbol de Recursos, encontrará el comando 'Propiedades del objeto' en el
menú contextual o en el menú 'Proyecto' 'Objeto', que abrirá el cuadro de diálogo 'Propiedades de la herramienta'.

Allí obtendrá una tabla que enumera todos los accesos directos de herramientas que se pueden usar para el
objetivo establecido actualmente. Se muestran los siguientes parámetros: el Id (número de identificación
único) de la herramienta, el nombre del acceso directo que se utiliza para hacer referencia al acceso directo
en el organizador de objetos y el nombre del archivo ejecutable de la herramienta. El botón Avanzado
expande el cuadro de diálogo o cierra la extensión del cuadro de diálogo:

El cuadro de diálogo expandido muestra las propiedades globales del acceso directo tal y como se
define en el archivo de destino. Más adelante está disponible un campo de edición donde se puede
definir un directorio (de trabajo) que debe usarse para las acciones del archivo ejecutable. La ruta se
guardará sin cerrar el cuadro de diálogo tan pronto como presione el botón Aplicar.
Propiedades de la herramienta:

FixedCount Número de accesos directos de la herramienta, que se insertan de forma inalterable


y automática en la carpeta Herramientas. Solo si se ingresa "0" aquí, el usuario
podrá crear tantos accesos directos como desee.
Tenga en cuenta: Para los accesos directos que se definen como "fijos" por el
archivo de destino, el número de usos posibles en la carpeta Herramientas está
predeterminado y las propiedades no pueden ser modificadas por el usuario de
CoDeSys (reconocibles por un "<R>" en el Organizador de objetos).
exe-nombre: Nombre de archivo o ruta completa del archivo ejecutable de la herramienta. Aquí también puede
ingresar una ruta de registro que apunte a un archivo exe: "[ruta de registro].<entrada de registro en
esta ruta que apunta a un archivo exe>"Si no hay ninguna entrada, la extensión de archivo del
archivo, que se proporciona en "Plantilla de parámetros", provocará automáticamente a través de
Windows el inicio del archivo exe de la herramienta correspondiente.

Ejemplos: "C:\programme\notapad.exe", "345.pdf"


DefaultDisplayName: Nombre que se utiliza para representar las herramientas en el Organizador de objetos.
Posiblemente se utilice la plantilla $(INSTANCE NUMBER) (ver más abajo 'Plantilla de
parámetros').
Plantilla de parámetros: Plantillas para determinar el archivo que debe abrir la herramienta. Se pueden utilizar
las siguientes plantillas, conectadas por los caracteres especiales apropiados:
$(PROJECT_NAME) Nombre del proyecto actualmente abierto (Nombre de archivo
sin extensión *.pro").
$(PROJECT_PATH) Ruta del directorio donde se encuentra el archivo del

CoDeSys V2.3 6-85


Herramientas

proyecto (sin indicación de la unidad).

$(PROJECT_DRIVE) Conduzca donde está el proyecto abierto actualmente.


$(COMPILE_DIR) Compilar el directorio del proyecto (incluyendo la indicación de la
unidad) $(TOOL_EXE_NAME) Nombre del archivo exe de la herramienta.
$(DISPLAY_NAME) Nombre del acceso directo actual, tal como se usa en la carpeta
'Herramientas'. $(INSTANCE_NUMBER) Número del acceso directo (número de
instancia, número de ejecución, comenzando con "1") $(CODESYS_EXE_DIR) Ruta del
directorio donde se encuentra el archivo exe de Codesys (incluida la indicación de la
unidad).
La conversión de una plantilla se ve en el cuadro de diálogo de las Propiedades
del acceso directo (ver más abajo)
Ejemplo:
"$(PROJECT_NAME)_$(INSTANCE_NUMBER).cfg"
El archivo cfg con el nombre <nombre del proyecto CoDeSys
actual>__<número de acceso directo>.cfg se abrirá en la herramienta.
Plantillas de Archivos, rutas de archivo o plantillas para el archivo que se copiará en el PLC durante la
DownloadFile: descarga. Si la opción Editable está activada, la lista de estos archivos será editable en
el diálogo de propiedades del acceso directo. Si se ingresa un nombre de archivo sin ruta,
el archivo se buscará en el directorio donde se encuentra el archivo codesys-exe.
Ejemplo:
"a.up;$(PROJECT_NAME).zaw;$(INSTANCE_NUMBER).upp"
los archivos a.up, <current CoDeSys Projek t>.pro y <shortcut number>.upp se
copiarán en el PLC durante la próxima descarga

2. Propiedades de acceso directo:


Marque una entrada de acceso directo en el árbol 'Herramientas' en el Organizador de objetos y
seleccione el comando 'Propiedades del objeto' en el menú contextual o en el menú 'Objeto' 'Proyecto'.
Se abrirá el cuadro de diálogo 'Propiedades de acceso directo', que contiene los siguientes elementos:

Comando Llamando a la herramienta; rutas del archivo exe y del archivo que se nombra en 'Parámetro'
(predefinido por la 'Plantilla de parámetros', ver arriba) por ejemplo: C:\programas\notepad.exe
D:\listings\textfile.txt

Parámetro Ruta del archivo al que debe llamar la herramienta. Esto se define en el archivo de destino y se
puede editar aquí, si se ha activado la opción 'Editable' (ver más abajo).
En primer lugar, aquí encontrará los nombres de archivo definidos por el archivo de destino y que también se
descargan descritos en las propiedades de la herramienta (DownloadFileTemplate, ver arriba). Si la opción
'Editable' está activada en el cuadro de diálogo extendido (ver más abajo), puede modificar la lista. Para ello,
pulse el botón Nuevo para abrir el cuadro de diálogo 'Nombre de archivo', donde puede introducir otro archivo
o una ruta de archivo. Si ingresa un archivo sin ruta, se buscará en ese directorio, donde está el archivo
codesys-exe. El botón Eliminar eliminará la entrada de la lista marcada actualmente.

Botón Estándar restablece las entradas del cuadro de diálogo a los valores predeterminados definidos por el archivo de destino.

Botón Aplicar guarda la configuración realizada sin cerrar el cuadro de diálogo de propiedades.
El botón Avanzado expande el cuadro de diálogo para que tenga el siguiente aspecto:

6-86 CoDeSys V2.3


6 - Los recursos

Cuadro de diálogo 'Propiedades avanzadas' de un acceso directo

Número de acceso Número corrido, empezando por 1. Los nuevos accesos directos de la herramienta actual
directo: obtendrán cada uno el siguiente número más alto. Si un acceso directo se elimina más
adelante, los números de los accesos directos restantes permanecerán sin cambios. El
número de acceso directo se puede insertar en otras definiciones utilizando la plantilla
$(INSTANCE_NUMBER) (por ejemplo, consulte más arriba, 'Plantilla de parámetros').

ID de la herramienta: Número de identificación único de la herramienta; definido en el archivo de destino.


Número Número de accesos directos (instancias) para una herramienta. Corresponde al valor
predeterminado de "FixedCount" definido en el archivo de destino. Consulte más arriba, Propiedades de la
accesos directos: herramienta.
Editable: Si esta opción está activada, será posible editar el campo 'Parámetro' o la lista de
archivos que deben descargarse.

Botón OK aplica la configuración terminada y cierra el cuadro de diálogo Propiedades.

6.14.2 Gestión de accesos directos a herramientas

Creación de nuevos accesos directos a herramientas


Seleccione la entrada 'Herramientas' o una entrada de acceso directo en el árbol de recursos del
Organizador de objetos y seleccione el comando 'Agregar objeto' en el menú contextual o en el menú
'Proyecto' 'Objeto' para abrir el cuadro de diálogo ' Crear acceso directo', ver más abajo.
La tabla enumera todas las herramientas para las que se pueden crear nuevos accesos directos (conexiones). De
acuerdo con las definiciones en el archivo de destino, se muestran los siguientes parámetros: ID de la
herramienta, Nombre predeterminado del acceso directo y Nombre del archivo ejecutable.

Para crear un acceso directo para una de las herramientas ofrecidas, seleccione esta herramienta
haciendo clic con el ratón en la columna 'ID'. A continuación, puede modificar el nombre
predeterminado del acceso directo en el campo de edición Nombre del acceso directo y confirmar
con OK. Esto solo funcionará si ingresa un nombre que aún no se usa.

CoDeSys V2.3 6-87


Herramientas

Cuadro de diálogo 'Crear acceso directo'

OK cierra el diálogo y el nuevo acceso directo se insertará en el árbol de recursos, representado por el
nombre del acceso directo y un número de acceso directo que es 1 mayor que el más alto utilizado
para una instancia de esta herramienta hasta ahora.
En el área debajo del campo de nombre se mostrarán las sugerencias apropiadas sobre las entradas del usuario.

Eliminación de accesos directos de herramientas


La eliminación de un acceso directo se puede realizar mediante el comando Eliminar en el menú
contextual (botón derecho del ratón) o en el menú 'Proyecto' 'Objeto'. El comando solo está disponible
si no hay un número fijo de accesos directos definido para el acceso directo marcado actualmente. Los
números de acceso directo de los accesos directos restantes no cambiarán si elimina un acceso
directo.
Ejecución de atajos de herramientas
Se ejecutará un acceso directo al hacer doble clic en la entrada en el árbol de recursos o mediante el
comando 'Abrir objeto' en el menú 'Proyecto' 'Objeto' o en el menú contextual (botón derecho del ratón).
Si se produce un error en la ejecución del archivo, que se define en las propiedades del acceso directo
(parámetro), aparecerá un mensaje de error apropiado. Si no se encuentra un archivo de parámetros, se ejecutará
el archivo exe de la herramienta y se abrirá un cuadro de diálogo que le preguntará si se debe crear el archivo.

Si el archivo exe de la herramienta no se encuentra en la ruta definida o si no se ha definido ninguna


ruta, se abrirá el cuadro de diálogo estándar para seleccionar un archivo y se le pedirá al usuario que
ingrese la ruta del archivo exe. Esta ruta se guardará cuando OK cierre el cuadro de diálogo y, por lo
tanto, estará disponible para la herramienta también en otros proyectos de CoDeSys.

Guardar atajos de herramientas


Cuando se guarda el proyecto de CoDeSys, también se guardará el estado y la configuración de la
carpeta 'Herramientas' en el árbol de Recursos.
Tenga en cuenta: Si guarda un proyecto con un nombre nuevo, debe tener en cuenta lo siguiente si utiliza la
plantilla $(PROJECT_NAME) en la definición del archivo de parámetros y de los archivos que se van a descargar:
Si ha agregado accesos directos para una herramienta (FixedCount=0) en el proyecto anterior, Luego, en el nuevo
proyecto, los nombres de archivo deben cambiarse de nombre manualmente correspondientes al nuevo nombre
del proyecto. A diferencia de una herramienta que se define con un número fijo de accesos directos, la plantilla
siempre será reemplazada automáticamente por el nombre del proyecto actual.

6.14.3 Preguntas frecuentes sobre las herramientas


¿Por qué no aparece la entrada 'Herramientas' en los 'Recursos'?
Solo si se define en el archivo de destino del sistema de destino establecido actualmente, la
funcionalidad 'Herramientas' estará disponible.
¿Para qué herramientas ya están disponibles los accesos directos, qué accesos directos puedo añadir en el proyecto CoDeSys?

6-88 CoDeSys V2.3


6 - Los recursos

Abra la carpeta 'Herramientas' en el árbol 'Recursos' del Organizador de objetos haciendo doble clic en el
signo más. Verá qué herramientas ya están conectadas para el proyecto actual. Si acaba de configurar un
nuevo proyecto y aún no ha trabajado en la lista Herramientas, solo se mostrarán las entradas, que están
predefinidas inalterablemente por las definiciones en el archivo de destino. De lo contrario, es posible que
vea una lista de herramientas modificada específicamente por el proyecto. Para comprobar si la lista es
ampliable con nuevas entradas, seleccione el comando 'Añadir objeto'. Obtendrá un cuadro de diálogo que
ofrece todas las herramientas para las que se pueden crear accesos directos adicionales.

¿Qué propiedades globales tienen las herramientas disponibles?


Marque la entrada 'Herramientas' en el Organizador de objetos y elija el comando 'Propiedades del objeto' en el
menú contextual (botón derecho del ratón). Expanda el cuadro de diálogo que aparece presionando el botón
'Avanzado'. Ahora verá una lista de las herramientas disponibles y los parámetros correspondientes. Seleccione
una de las herramientas haciendo clic con el ratón en el símbolo de identificación para, por ejemplo, mostrar el
número permitido de accesos directos para la herramienta en el campo 'FixedCount', o para mostrar qué archivos
se descargarán en el PLC si el acceso directo está activado. Los nombres de archivo o las rutas de acceso
pueden mostrarse en forma de plantillas, que se interpretarán para cada acceso directo como se describe en el
siguiente párrafo:
¿Qué propiedades individuales tienen los accesos directos disponibles?
Marque una de las entradas debajo de 'Herramientas' en el Organizador de objetos y seleccione el comando 'Propiedades
del objeto' en el menú contextual (botón derecho del ratón). Presione el botón 'Avanzado' para obtener los parámetros del
acceso directo elegido. Parcialmente corresponderán a las propiedades globales de la herramienta descritas
anteriormente. Si la definición del archivo de destino lo permite, puede editar estos parámetros aquí.

¿Cómo puedo crear un acceso directo para una herramienta?


Marque la entrada 'Herramientas' en el Organizador de objetos y elija el comando 'Añadir objeto' en el menú
contextual (botón derecho del ratón). Verá una lista de las herramientas disponibles, pero solo de aquellas
para las que aún no se ha alcanzado el número máximo de accesos directos (FixedCount). Elija una
herramienta y pulse OK. La herramienta ahora se insertará en la carpeta Herramientas en el Organizador de
objetos. Si desea insertarla una vez más, primero debe ingresar un nombre de herramienta diferente, lo que
significa marcar la nueva entrada como otra instancia de la misma herramienta. Por ejemplo, podría nombrar
las instancias de la herramienta Toolxy "Toolxy_1", "Toolxy_2", etc.

¿Cómo puedo modificar los parámetros de una herramienta?


Para modificar los parámetros de un acceso directo (instancia de una conexión de herramienta), marque el
acceso directo en el Organizador de objetos y elija el comando 'Propiedades del objeto' en el menú contextual.
Depende de la predefinición de la herramienta en el archivo de destino, si los parámetros se pueden editar
en el cuadro de diálogo de propiedades. (Consulte en el cuadro de diálogo ampliado si la opción 'Editable'
está activada. El botón 'Estándar' restablece todos los valores editados a los valores predeterminados.

¿Cómo puedo ejecutar un atajo de herramienta?


Haga doble clic en la entrada del acceso directo en el Organizador de objetos o seleccione el comando
' Abrir objeto' en el menú contextual o en el menú 'Proyecto' cuando la entrada esté marcada en el
Organizador de objetos.

CoDeSys V2.3 6-89


Herramientas

6-90 CoDeSys V2.3


7 - ENI

7 IEV

7.1.1 ¿Qué es ENI?


El ENI ('Engineering Interface') permite conectar el sistema de programación CoDeSys a una base de
datos externa. Allí se pueden almacenar los datos que se necesitan durante la creación de un
proyecto de automatización. El uso de una base de datos externa garantiza la consistencia de los
datos, que luego pueden ser compartidos por varios usuarios, proyectos y programas. Además, amplía
la funcionalidad de CoDeSys haciendo posible los siguientes elementos:
Control de revisiones para proyectos de CoDeSys y recursos asociados (objetos compartidos): Si un
objeto ha sido extraído de la base de datos, modificado y protegido de nuevo, entonces en la base de
datos se creará una nueva versión del objeto, pero las versiones anteriores también se mantendrán y
se podrán volver a llamar bajo demanda. Para cada objeto y para todo un proyecto, se registrará el
historial de versiones. Se pueden comprobar las diferencias entre dos versiones.
Operación multiusuario: La última versión de una muestra de objetos, por ejemplo, de POU de un proyecto,
puede ser accesible para un grupo de usuarios. A continuación, los objetos que actualmente están extraídos por
uno de los usuarios se marcarán como "en proceso" y no podrán ser editados por los demás usuarios. Por lo tanto,
varios usuarios pueden trabajar en paralelo en el mismo proyecto sin correr el riesgo de sobrescribir las versiones
mutuamente.
Acceso mediante herramientas externas: Además del sistema de programación CoDeSys, también
otras herramientas, que también tienen un ENI, pueden acceder a la base de datos común. Estos
pueden ser, por ejemplo, visualizaciones externas, sistemas ECAD, etc., que necesitan los datos
creados en CoDeSys o que también producen datos que son necesarios para otros programas.
El ENI se compone de una parte de cliente y otra de servidor. Por lo tanto, es posible mantener la base de
datos en una computadora remota, lo cual es necesario para la operación multiusuario. El sistema de
programación CoDeSys es un cliente del proceso independiente del servidor ENI, así como de otra
aplicación, que necesita acceso a la base de datos (consulte la documentación separada en el servidor ENI).

Actualmente, el ENI es compatible con los sistemas de base de datos 'Visual SourceSafe 6.0', 'MKS
Source Intergrity', 'PVCS Version Manager' V7.5 y superior y un sistema de archivos local. Los objetos
se pueden almacenar allí en diferentes 'carpetas' (categorías de bases de datos con diferentes
propiedades de acceso). Los objetos se pueden extraer para editarlos y, por lo tanto, se bloquearán
para otros usuarios. Se puede llamar a la última versión de un objeto desde la base de datos. Más
adelante, en paralelo, puede almacenar cualquier objeto localmente en el proyecto, como es habitual
para proyectos sin control de código fuente.

7.1.2 Condiciones previas para trabajar con una base de datos de proyectos de ENI
Por favor, tenga en cuenta: Para obtener una guía sobre la instalación y el uso del servidor ENI proporcionada
por 3S – Smart Software Solutions GmbH, consulte la documentación del servidor por separado o la ayuda en
línea. Allí también encontrará una guía de inicio rápido.
Considere también la posibilidad de utilizar el Explorador ENI que permite realizar acciones de base de
datos independientemente del sistema de base de datos utilizado actualmente.

Si se desea utilizar el ENI en el sistema de programación CoDeSys para gestionar los objetos del
proyecto en una base de datos externa, se deben cumplir las siguientes condiciones previas:
la comunicación entre CoDeSys y el servidor ENI requiere TCP/IP, ya que el servidor ENI utiliza el
protocolo HTTP.
un servidor ENI (ENI Server Suite) debe instalarse e iniciarse localmente o en un equipo remoto. Se
requiere una licencia para ejecutarlo con uno de los controladores de base de datos estándar que se ha
instalado con el servidor. Solo se puede usar el controlador para un sistema de archivos local con una
versión de ENI Server sin licencia.
en la herramienta de control de servicios del servidor ENI (ENI Control) la conexión a la base de datos
deseada debe configurarse correctamente (Base de datos). Se le pedirá automáticamente que haga
esto durante la instalación, pero puede modificar la configuración más adelante en ENI Control.

CoDeSys V2.3 7-1


Herramientas

a debe instalar una base de datos de proyecto para la que esté disponible un controlador compatible con ENI. Es
razonable hacer esto en la misma computadora, donde se está ejecutando el servidor ENI . Alternativamente, se
puede utilizar un sistema de archivos local, para el que también se proporcionará un controlador de forma
predeterminada.
en la administración de la base de datos, posiblemente el usuario (Cliente) así como el Servidor ENI
deben estar registrados como usuarios válidos con derechos de acceso. De todos modos, esto es
necesario para 'Visual SourceSafe', si utiliza otro sistema de base de datos, consulte la documentación
correspondiente para obtener información sobre la configuración del usuario.
para el proyecto CoDeSys actual, la interfaz ENI debe estar activada (para hacerlo en el cuadro de
diálogo CoDeSys: 'Proyecto', 'Opciones', 'Base de datos del proyecto'). (Es posible cambiar una
definición de usuario en ENI, por ejemplo, con el fin de definir derechos de acceso más detallados,
como es posible en la administración de la base de datos. Pero, en general, basta con que el usuario
que quiera acceder a la base de datos a través de ENI, esté registrado en la base de datos.
para el proyecto CoDeSys actual, la conexión a la base de datos debe estar configurada correctamente;
esto debe hacerse en los diálogos de CoDeSys 'Proyecto' 'Opciones' 'Control de código fuente del proyecto.
en el proyecto actual, el usuario debe iniciar sesión en el servidor ENI con nombre de usuario y
contraseña; esto se debe hacer en el diálogo de inicio de sesión, que se puede abrir explícitamente con
el comando 'Proyecto', 'Enlace a la base de datos', 'Iniciar sesión' o que se abrirá automáticamente en
caso de que intente acceder a la base de datos sin haber iniciado sesión antes.

7.1.3 Trabajar con la base de datos del proyecto ENI en CoDeSys


Los comandos de la base de datos (Get Latest Version, Check Out, Check In, Version History, Label Version, etc.)
que se utilizan para gestionar los objetos del proyecto en la base de datos del proyecto ENI, estarán disponibles
en el proyecto CoDeSys actual tan pronto como la conexión a la base de datos se haya activado y configurado
correctamente. Consulte para ello las Condiciones previas para trabajar con una base de datos de proyecto ENI .
Los comandos están disponibles en el submenú 'Enlace a la base de datos' del menú contextual o en el menú
'Proyecto' y se refieren al objeto que está marcado actualmente en el Organizador de objetos.

La asignación actual de un objeto a una categoría de base de datos se muestra en las Propiedades del
objeto y se puede modificar allí.
Las propiedades de las categorías de la base de datos (parámetros de comunicación, derechos de
acceso, comportamiento de entrada/salida) se pueden modificar en los diálogos de opciones de la base
de datos del proyecto ('Proyecto', 'Opciones', 'Control de código fuente del proyecto').

7.1.4 Categorías de objetos relativas a la base de datos del proyecto


Hay cuatro categorías de objetos de un proyecto CoDeSys relacionados con el control de código fuente del proyecto:
El ENI distingue tres categorías ("categorías de objetos ENI") de objetos que se gestionan en la base
de datos del proyecto: Objetos de proyecto, Objetos compartidos y Archivos de compilación.
La categoría 'Local', a la que se asignará un objeto si no debe almacenarse en la base de datos. Eso
significa que se manejará como se conoce para proyectos sin ningún control de código fuente.
Así, en el sistema de programación, un objeto CoDeSys puede asignarse a una de las categorías 'Objetos de
proyecto', 'Objetos compartidos' o 'Local'; los 'Archivos de compilación' aún no existen como objetos dentro del
proyecto. La asignación de un objeto a una de las categorías se realiza automáticamente cuando se crea el objeto,
ya que esto se define en el cuadro de diálogo de opciones del proyecto 'Control de código fuente del proyecto', o
explícitamente a través del comando 'Proyecto', 'Enlace a la base de datos', 'Definir' o 'Definición múltiple', pero se
puede modificar en cualquier momento en el cuadro de diálogo 'Propiedades del objeto'.

Cada categoría de objeto ENI se configurará por separado en los ajustes del 'Control de código fuente
del proyecto', que forman parte de las opciones del proyecto ('Proyecto', 'Opciones'). Esto significa que
cada categoría tiene sus propios parámetros definidos para la comunicación con la base de datos
(directorio, puerto, derecho de acceso, datos de acceso de usuario, etc.) y en cuanto al
comportamiento en la llamada a la última versión, check-out y check-in. Esta configuración será válida
para todos los objetos que pertenezcan a la categoría. Como resultado, tendrá que iniciar sesión en
cada categoría de base de datos por separado; esto se hará a través del cuadro de diálogo 'Iniciar
sesión'.

7-2 CoDeSys V2.3


7 - ENI

Es recomendable crear una carpeta separada para cada categoría de objetos en la base de datos, pero
también es posible almacenar todos los objetos en la misma carpeta. (La 'categoría' es una propiedad
de un objeto, no de una carpeta).
Véanse a continuación las tres categorías de objetos de ENI:
Objetos del proyecto: Objetos que contienen información de origen específica del proyecto, por ejemplo, POU
que se comparten en una operación multiusuario. El comando 'Obtener todas las últimas
versions' llamará automáticamente a todos los objetos de esta categoría desde los datos
base al proyecto local; incluso aquellos que no han estado allí hasta ahora.
Objetos compartidos: Objetos que no son específicos del proyecto, por ejemplo, bibliotecas POU que normalmente
se utilizan en varios proyectos.
Atención: El comando 'Obtener todas las últimas versiones' solo copiará esas
objetos de esta categoría de la carpeta del proyecto al proyecto local, que
ya forman parte del proyecto !
Compilar archivos: Compilar información (por ejemplo, archivos de símbolos) creada por CoDeSys para
el proyecto actual y que puede ser necesario para otros programas también.
Ejemplo: Una visualización externa puede necesitar no solo el proyecto
variables, sino también las direcciones asignadas. Esto último no se
conocerá hasta que se compile el proyecto.

Alternativamente, cualquier objeto del proyecto CoDeSys se puede excluir del control de código fuente
del proyecto y se puede asignar a la categoría 'Local', lo que significa que solo se almacenan con el
proyecto como de costumbre para proyectos sin ningún control de código fuente.

CoDeSys V2.3 7-3


Herramientas

7-4 CoDeSys V2.3


8 - Interfaz DDE

8 Interfaz DDE
Comunicación DDE con CoDeSys
CoDeSys tiene una interfaz DDE (intercambio dinámico de datos) para la lectura de datos. CoDeSys
utiliza esta interfaz para proporcionar a otras aplicaciones que también utilizan una interfaz DDE el
contenido de las variables de control y las direcciones IEC
Si se utiliza el GatewayDDEServer, que funciona con símbolos, no es necesario CoDeSys para leer
los valores de las variables del PLC y transferirlos a las aplicaciones con una interfaz DDE.

Atención: ¡Las direcciones directas no se pueden leer a través del servidor DDE! Para este caso, en CoDeSys se
deben declarar variables con la asignación de direcciones (AT) adecuada.
Atención: La interfaz DDE ha sido probada con Word 97 y Excel 97 en Windows NT 4.0. Si la comunicación DDE
falla debido a una falta de coincidencia de otras versiones o programas instalados adicionalmente en una
computadora, 3S – Smart Software Solutions no puede asumir ninguna responsabilidad.

8.1 Interfaz DDE del sistema de programación CoDeSys...


Activación de la interfaz DDE
La interfaz DDE se activa tan pronto como el PLC (o la simulación) inicia sesión.

Enfoque general de los datos


Una consulta DDE se puede dividir en tres partes:
1. Nombre del programa (aquí: CoDeSys),
2. Nombre del archivo y
3. Nombre de la variable que se va a leer.
Nombre del programa: CoDeSys
Nombre del archivo: ruta completa del proyecto (c:\example\example.pro).
Nombre de la variable: El nombre de una variable tal y como aparece en el Gestor de Relojes y Recetas.

¿Qué variables se pueden leer?


Todas las direcciones y variables son legibles. Las variables o direcciones deben introducirse en el
formato utilizado en el Gestor de Relojes y Recetas
Ejemplos:

%IX1.4.1 (* Lee la entrada 1.4.1*)


PLC_PRG. TEST (* Lee la variable TEST de la POU PLC_PRG*)
. GlobVar1 (* Lee la variable global GlobVar1 *)

Vinculación de variables mediante WORD


Para obtener el valor actual de la variable TEST de la POU PLC_PRG a través de la interfaz DDE en Microsoft
WORD, se debe insertar un campo (por ejemplo, la fecha) en WORD ('Insertar' "Campo"). Ahora, al hacer clic
en el campo con el botón derecho del ratón y seleccionar el comando "Alternar códigos de campo", puede
cambiar la función de campo para el texto elegido. En nuestro ejemplo, esto se vería de la siguiente manera:

{ DDEAUTO CODESYS "C:\CODESYS\PROJECT\IFMBSP.PRO" "PLC_PRG. PRUEBA" }


Haga clic en el campo con el botón derecho del ratón de nuevo, luego haga clic en "Actualizar campo"
y el contenido de la variable deseada aparecerá en el texto.

CoDeSys V2.3 8-1


Comunicación DDE con el servidor GatewayDDE...

Vinculación de variables mediante EXCEL


Se debe introducir lo siguiente en Microsoft EXCEL antes de poder asignar una variable a una celda.
=CODESYS|' C:\CODESYS\PROJECT\IFMBSP. ¡PRO'! PLC_PRG. PRUEBA'

Al hacer clic en 'Editar' y luego en "Enlaces", el resultado de este enlace será:


Tipo: CODESYS

Archivo fuente: C:\CODESYS\PROJECT\IFMBSP.PRO

Elemento: PLC_PRG. PRUEBA

Acceso a variables con Intouch


Vincule con su proyecto un nombre de acceso DDE <AccessName> con el nombre de la aplicación
CODESYS y el nombre del tema DDE C:\CODESYS\PROJECT\IFMBSP.PRO.
Ahora puede asociar variables de tipo DDE con el nombre de acceso <AccessName>. Introduzca el
nombre de la variable como Nombre del elemento (por ejemplo, PLC_PRG. PRUEBA).

8.2 Comunicación DDE con el servidor GatewayDDE...


Manejo del servidor GatewayDDE
El servidor GatewayDDE puede utilizar los símbolos que se crean en CoDeSys para que un proyecto
se comunique con otros clientes o con el PLC (ver 'Proyecto', 'Opciones', 'Configuración de símbolos').
Puede servir a las interfaces DDE de aplicaciones como, por ejemplo, Excel. Esto permite transmitir los
valores variables del PLC a una aplicación, por ejemplo, con el fin de supervisar.
Al inicio del servidor GatewayDDE se abre una ventana donde se puede realizar la configuración de los
parámetros de inicio y comunicación. Se puede llamar a un archivo de configuración ya existente o se
pueden establecer los parámetros de nuevo.
Cuadro de diálogo de inicio del servidor GatewayDDE

Usando el comando 'Archivo' 'Abrir' puede llamar a un archivo ya existente que almacena un conjunto
de parámetros de configuración. Se abrirá el cuadro de diálogo estándar para seleccionar un archivo y
se ofrecerán los archivos disponibles con la extensión ".cfg". Si se selecciona un archivo de
configuración, se muestran los parámetros de configuración y el dispositivo de destino definido
Si la opción 'Archivo' 'Autoload' está activada, el servidor GatewayDDE se abre automáticamente con
esa configuración, que estaba activa antes de la última terminación del servidor.
Si el servidor se inicia sin ninguna configuración predefinida y sin el ajuste Autoload, en la ventana de
configuración se muestran 'Gateway:' y 'Device:'. A continuación, debe configurar una nueva
configuración.
El comando 'Archivo' 'Configuración' abre el cuadro de diálogo ' Configuración del servidor', en el
que se pueden configurar los siguientes parámetros:

8-2 CoDeSys V2.3


8 - Interfaz DDE

Cuadro de diálogo para configurar el servidor GatewayDDE

Motorola byteorder Motorola Byteorder usado


Comprobar la identidad Se comprobará si el ID del proyecto dado por el archivo de símbolos es el mismo
como el almacenado en el PLC.
Tasa de actualización [ms] Intervalo de tiempo para leer todos los valores de los símbolos del PLC.
Tiempo de espera [ms] Tiempo de espera de comunicación para el controlador utilizado.
Trata Número de reintentos del controlador de comunicación para transferir un bloque de datos (no
¡Compatible con todos los conductores!)

Para configurar la conexión con la puerta de enlace, el cuadro de diálogo 'Parámetros de


comunicación' se abre con el comando 'En línea' 'Parámetros'. Es el mismo cuadro de diálogo que
aparece en CoDeSys con el comando 'En línea' 'Parámetros de comunicación'. La configuración que
realice aquí debe ser la misma que en el proyecto CoDeSys correspondiente.
La configuración real del servidor GatewayDDE se puede almacenar en un archivo mediante el comando 'Archivo'
'Guardar'. Se abrirá el cuadro de diálogo estándar para guardar un archivo, el valor predeterminado para la extensión
del archivo es *.cfg.
Para que la puerta de enlace esté en modo activo, inicie sesión con el comando 'En línea' 'Iniciar sesión'. (El
símbolo de la puerta de enlace en la barra de estado se aclarará en ese momento). Al iniciar sesión, se
establecerá la conexión deseada y se podrá acceder a los símbolos disponibles. ¡Estos deben haber sido creados
antes en el Proyecto CoDeSys !
Para cerrar sesión, utilice el comando 'Online' Logout'.

Enfoque general de los datos


Una consulta DDE se puede dividir en tres partes:
1. Nombre del programa
2. Nombre del archivo
3. Nombre de la variable que se va a leer
Nombre del programa: GatewayDDEServer
Nombre del archivo: nombre del proyecto del que se deben leer las variables (por ejemplo, example.pro).
Nombre de la variable: El nombre de una variable tal y como aparece en el Gestor de Relojes y Recetas.

¿Qué variables se pueden leer?


Todas las variables pueden ser leídas. Las variables deben introducirse en el formato utilizado en el
Gestor de Relojes y Recetas. ¡Tenga en cuenta que las direcciones directas no se pueden leer!
Ejemplos:

PLC_PRG. PRUEBA (* Lee la variable TEST de la POU PLC_PRG*)

. GlobVar1 (* Lee la variable global GlobVar1 *)

CoDeSys V2.3 8-3


Comunicación DDE con el servidor GatewayDDE...

Vinculación de variables mediante WORD


Inicie GatewayDDEServer antes de activar la consulta en WORD.
Para obtener el valor actual de la variable TEST de la POU PLC_PRG a través de la interfaz DDE en Microsoft
WORD, se debe insertar un campo (por ejemplo, la fecha) en WORD ('Insertar' "Campo"). Ahora, al hacer clic en
el campo con el botón derecho del ratón y seleccionar el comando "Alternar códigos de campo", puede cambiar la
función de campo para el texto elegido. En nuestro ejemplo, esto se vería de la siguiente manera:

{ DDEAUTO GATEWAYDDESERVER "BSP.PRO" "PLC_PRG. PRUEBA" }


Haga clic en el campo con el botón derecho del ratón de nuevo, luego haga clic en "Actualizar campo"
y el contenido de la variable deseada aparecerá en el texto.

Vinculación de variables mediante EXCEL


Inicie GatewayDDEServer antes de activar la consulta en EXCEL.
Se debe introducir lo siguiente en Microsoft EXCEL antes de poder asignar una variable a una celda.
=GATEWAYDDESERVER|<nombre de archivo>!<nombrevariable>

Ejemplo:

=GATEWAYDDESERVER|' bsp.pro'!" PLC_PRG. PRUEBA'


Al hacer clic en 'Editar' y luego en "Enlaces", el resultado de este enlace será:
Tipo: CODESYS

Archivo fuente: C:\CODESYS\PROJECT\IFMBSP.PRO

Elemento: PLC_PRG. PRUEBA

{ DDEAUTO GATEWAYDDESERVER "BSP.PRO" "PLC_PRG. PRUEBA" }

Opciones de la línea de comandos para GatewayDDEServer


Si el servidor GatewayDDE se inicia mediante una línea de comandos, se pueden adjuntar las siguientes opciones:

/n El cuadro de diálogo de información no aparece


automáticamente al iniciarse
/s Visualización de la ventana de diálogo /s=h No /s=i
minimizado (icono) /s=m
Maximizado /s=n normal

/c Fichero de configuración que se cargará automáticamente l


/c=<fichero config>
/o Conectarse con la configuración seleccionada
(carga automática o definida por "/c=")

Ejemplo:
Línea de comandos:
GATEWAYRIGHT /s=i /c="D:\DDE\conf_1.cfg"
Se iniciará el servidor GatewayDDE, aparecerá la ventana de diálogo como un icono, se cargará la
configuración almacenada en el archivo conf_1.cfg.

8-4 CoDeSys V2.3


9 - La gestión de licencias en CoDeSys

9 La gestión de licencias en CoDeSys

9.1 El Administrador de Licencias


El Administrador de licencias de 3S está disponible para manejar las licencias de los módulos de 3S, así como las
licencias de los módulos para los que se proporciona un archivo de información de licencia adecuado, en su
computadora. En CoDeSys puedes crear un proyecto y proporcionarlo como una biblioteca con licencia. El
Administrador de licencias se instalará automáticamente con cualquier módulo 3S que requiera una licencia.

Ver también:
Documentación separada proporcionada con el 3S Licensing Manager
Creación de una biblioteca con licencia en CoDeSys, Capítulo 9.1.1.

9.1.1 Creación de una biblioteca con licencia en CoDeSys


Como es sabido, un proyecto de CoDeSys se puede guardar como una biblioteca. Si desea crear una biblioteca
con licencia, debe agregar la información de licencia adecuada. Para ello, ejecute el comando 'Archivo'Guardar
como...', elija el tipo de datos 'Biblioteca interna' o 'Biblioteca externa' y presione el botón Editar información de
licencia....
En el cuadro de diálogo Editar información de licencias , introduzca la información que se describe a
continuación. La información de la licencia se agregará a la información del proyecto. Cuando más adelante
la biblioteca se incluya en un proyecto de CoDeSys, la información de la licencia se puede comprobar en el
cuadro de diálogo de propiedades del objeto de la biblioteca en el administrador de bibliotecas.
Cuadro de diálogo: Editar información de licencia

Común:
Nombre: Introduzca un nombre para el módulo de biblioteca que se utiliza para representarlo en el
Administrador de licencias de 3S. Esta entrada es obligatoria.

CoDeSys V2.3 9-1


El Administrador de licencias

ID del proveedor: 99990101000000+00'00' Un identificador del fabricante, dependiendo de la


herramienta de gestión de licencias específica del fabricante.
Modo de demostración: Active esta opción si el módulo debe poder utilizarse en modo de demostración, es decir,
sin ningún ID de licencia. Introduzca el número de días después de los cuales debe caducar la "licencia de
demostración ". El número de días se redondeará automáticamente al siguiente número divisible por diez (10, 20,
30 ...). Si el módulo debe ser utilizable sin limitación de tiempo, introduzca "ilimitado" (disponible en la lista de
selección).
Destinos: Introduzca aquí los ID de destino de los sistemas de destino para los que la licencia debe
ser válida. Las entradas múltiples deben estar separadas por una coma o un punto y coma. Se pueden
insertar varios ID separados por punto y coma o como rangos. Ejemplo: "12; 15-19; 21"

Contacto:
Licencias por teléfono: / Licencias por correo: Inserte aquí el número de teléfono o la dirección de
correo electrónico del proveedor de licencias. Estas entradas son obligatorias.

Información opcional:
En la ventana de la derecha puede introducir un texto que haga referencia al artículo actualmente
marcado en la ventana de la izquierda: Descripción, Fabricante, Proveedor, Información de precios

Tenga en cuenta:
1. Es razonable proteger una biblioteca, a la que se le ha proporcionado información sobre licencias,
mediante una contraseña. Si va a guardar el proyecto sin contraseña, se le indicará mediante un
cuadro de mensaje.
2. La información de licencia de una biblioteca 3S se almacena internamente en la biblioteca y se registrará en la
computadora automáticamente tan pronto como la biblioteca se incluya en un proyecto. Pero la información de
licencia de los módulos que no son proporcionados por 3S debe proporcionarse en un archivo de descripción
separado en formato XML compatible, que puede ser leído por el Administrador de licencias de 3S. Para ello,
consulte también la documentación separada sobre el Administrador de licencias 3S.

9-2 CoDeSys V2.3


10 - APÉNDICE

10 APÉNDICE

Apéndice A: Operadores IEC y funciones adicionales de


extensión de normas
CoDeSys es compatible con todos los operadores IEC. A diferencia de las funciones estándar (véase el
apéndice D, Biblioteca estándar), estos operadores se reconocen implícitamente a lo largo de todo el
proyecto. Además de los operadores IEC, CoDeSys también soporta los siguientes operadores
que no están prescritos por la norma: INDEXOF y SIZEOF (ver Operadores Aritméticos), ADR y
BITADR (ver Operadores de Dirección).
Los operadores se utilizan como funciones en POU.
Atención: En operaciones con variables de coma flotante, el resultado depende del sistema de destino utilizado actualmente.

Operadores aritméticos
Operadores de cadena de bits
Operadores de desplazamiento de bits
Operadores de selección
Operadores de comparación
Operadores de direcciones
Operadores de llamadas
Conversiones de tipo
Operadores numéricos

10.1 Operadores aritméticos...


AGREGAR
Adición de variables de los tipos: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT,
REAL y LREAL.
Dos variables de TIEMPO pueden Además ser Añadido junto resultante en otro Hora
(por ejemplo, t#45s + t#50s =
t#1m35s)
Ejemplo en IL:
LD 7 ADD 2,4,7 ST Var1

Ejemplo en ST:
var1 := 7+2+4+7;
Ejemplo en FBD:

CoDeSys V2.3 10-1


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

MUL
Multiplicación de variables de los tipos: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT,
UDINT, REAL y LREAL.
Ejemplo en IL:
LD 7 MUL 2,4,7 ST Var1

Ejemplo en ST:
var1 := 7*2*4*7;
Ejemplo en FBD:

SUB
Resta de una variable de otra de los tipos: BYTE, WORD, DWORD, SINT, USINT, INT,
UINT, DINT, UDINT, REAL y LREAL.
Una variable TIME también se puede restar de otra variable TIME, lo que da como resultado una
tercera variable de tipo TIME. Tenga en cuenta que los valores negativos de TIME no están definidos.
Ejemplo en IL:
LD 7 SUB 2 ST Var1

Ejemplo en ST:
var1 := 7-2;
Ejemplo en FBD:

DIV
División de una variable por otra de los tipos: BYTE, WORD, DWORD, SINT, USINT, INT, UINT,
DINT, UDINT, REAL y LREAL.
Ejemplo en IL:
LD 8 DIV 2 ST Var1 (* El resultado es 4 *)

Ejemplo en ST:
var1 := 8/2;
Ejemplo en FBD:

Nota: Si define funciones en su proyecto con el Nombres CheckDivByte, CheckDivWord,


CheckDivDWord y CheckDivReal, Puede usarlos para verificar el valor del divisor si usa

10-2 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

el operador DIV, por ejemplo, para evitar una división por 0. Las funciones deben tener los nombres
indicados anteriormente.
Atención: ¡Tenga en cuenta que los diferentes sistemas de destino pueden comportarse de manera diferente con respecto a una división por cero!

Vea a continuación un ejemplo de la implementación de la función CheckDivReal:


Ejemplo para la implementación de la función CheckDivReal:
FUNCIÓN CheckDivReal : REAL VAR_INPUT

divisor:REAL;
END_VAR
IF divisor = 0 THEN CheckDivReal:=1;
MÁS
CheckDivReal:=divisor;
END_IF;
El operador DIV utiliza la salida de la función CheckDivReal como divisor. En un programa como el que
se muestra en el siguiente ejemplo, esto evita una división por 0, el divisor (d) se establece de 0 a 1.
Así que el resultado de la división es 799.
PROGRAMA PLC_PRG
VAR erg:REAL; v1:REAL:=799; d:REAL; END_VAR erg:= v1/d;

Atención: ¡Las funciones CheckDiv proporcionadas por la biblioteca Check.Lib son solo soluciones de ejemplo!
Antes de usar esos módulos de biblioteca, verifique si están funcionando en su sentido o implemente las funciones
apropiadas directamente como una POU en su proyecto.

MOD
Módulo División de una variable por otra de los tipos: BYTE, WORD, DWORD, SINT, USINT, INT,
UINT, DINT, UDINT. El resultado de esta función será el resto de la división. Este resultado será un
número entero.
Ejemplo en IL:
LD 9 MOD 2 ST Var1 (* El resultado es 1 *)

Ejemplo en ST:
var1 := 9 MOD 2;
Ejemplo en FBD:

MOVER
Asignación de una variable a otra variable de un tipo apropiado. Como MOVE está disponible como
caja en los editores gráficos LD, CFC, también se puede aplicar la funcionalidad (de desbloqueo)
EN/EN0 en una asignación de variables. Sin embargo, en el editor FBD esto no es posible.
Ejemplo en CFC junto con la función EN/EN0:
Solo si en_i es TRUE, var1 se asignará a var2.

CoDeSys V2.3 10-3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en IL:
LD ivar1
MOVER
ST ivar2 (* Resultado: a ivar2 se le asigna el valor de ivar1 *)
( ! se obtiene el mismo resultado con:
LD ivar1 ST ivar2 )

Ejemplo en ST:
ivar2 := MOVER(ivar1);
( ! se obtiene el mismo resultado con: ivar2 := ivar1; )

ÍNDICE DE
Esta función no está prescrita por la norma IEC61131-3.
Realice esta función para encontrar el índice interno de una POU.
Ejemplo en ST:
var1 := INDEXOF(POU2);

TAMAÑODE
Esta función no está prescrita por la norma IEC61131-3.
Realice esta función para determinar el número de bytes requeridos por la variable dada.
Ejemplo en IL:
arr1:ARRAY[0..4] OF INT; Var1 INT LD arr1

TAMAÑODE
ST Var1 (* El resultado es 10 *)
Ejemplo en ST:
var1 := TAMAÑODE(arr1);

10.2 Operadores de cadena de bits...


Y
Bit a bit AND de operandos de bits. Los operandos deben ser del tipo BOOL, BYTE, WORD o DWORD.
Ejemplo en IL:
Var1 BYTE LD 2#1001_0011 Y 2#1000_1010 ST Var1 (* El resultado es 2#1000_0010 *)

Ejemplo en ST:
var1 := 2#1001_0011 Y 2#1000_1010
Ejemplo en FBD:

10-4 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Nota: Si tiene un paso de programa en el SFC como el siguiente

y si utiliza generadores 68xxx, tenga en cuenta lo siguiente: ¡La asignación del valor de la segunda
variable de entrada en el módulo de operador AND a la variable z no se ejecutará! Esto se debe al
procesamiento optimizado en el SFC en caso de valor FALSE en la variable de entrada.

O
OR bit a bit de los operandos de bits. Los operandos deben ser del tipo BOOL, BYTE, WORD o DWORD.
Ejemplo en IL:
var1 :BYTE;
LD 2#1001_0011 O 2#1000_1010 ST var1 (* El resultado es 2#1001_1011 *)

Ejemplo en ST:
Var1 := 2#1001_0011 O 2#1000_1010
Ejemplo en FBD:

Nota: Si tiene un paso de programa en el SFC como el siguiente

y si utiliza generadores 68xxx, tenga en cuenta lo siguiente: ¡La asignación del valor de la segunda
variable de entrada en el módulo de operador OR a la variable z no se ejecutará! Esto se debe al
procesamiento optimizado en el SFC en caso de valor FALSE en la variable de entrada.

XOR
XOR bit a bit de operandos de bits. Los operandos deben ser del tipo BOOL, BYTE, WORD o DWORD.
Nota: Considere el comportamiento de la función XOR en forma extendida, es decir, si hay más de 2 entradas. Las
entradas se comprobarán en pares y los resultados particulares se compararán de nuevo en pares (esto cumple
con el estándar, pero puede que el usuario no lo espere).

Ejemplo en IL:
Var1 :BYTE; LD 2#1001_0011 XOR 2#1000_1010 ST Var1 (* El resultado es 2#0001_1001 *)

Ejemplo en ST:
Var1 := 2#1001_0011 XOR 2#1000_1010
Ejemplo en FBD:

CoDeSys V2.3 10-5


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

NO
Bit a bit NO de un operando de bits. El operando debe ser del tipo BOOL, BYTE, WORD o DWORD.
Ejemplo en IL:
Var1 :BYTE; LD 2#1001_0011 NOT ST Var1 (* El resultado es 2#0110_1100 *)

Ejemplo en ST:
Var1 := NO 2#1001_0011
Ejemplo en FBD:

10.3 Operadores de desplazamiento de bits...


Nota: Tenga en cuenta que la cantidad de bits, que se considera para la operación aritmética, está pretendida por el tipo
de datos de la variable de entrada !. Si la variable de entrada es una constante, se considera el tipo de datos más
pequeño posible. El tipo de datos de la variable de salida no tiene ningún efecto en la operación aritmética.

SHL
Desplazamiento bit a bit a la izquierda de un operando : erg:= SHL (in, n)
in se desplaza a la izquierda en n bits. Si n > ancho de tipo de datos, para BYTE, WORD y DWORD se
rellenarán con ceros. Pero si se utilizan tipos de datos con signo, como por ejemplo INT, entonces se ejecutará
un desplazamiento aritmético en tales casos, lo que significa que se rellenará con el valor del bit superior.

Nota: Vea en el siguiente ejemplo en notación hexadecimal que obtiene resultados diferentes para erg_byte y
erg_word dependiendo del tipo de datos de la variable de entrada (BYTE o WORD), aunque los valores de las
variables de entrada in_byte y in_word son los mismos.

Ejemplo en ST:
PROGRAMA shl_st VAR in_byte : BYTE:=16#45; in_word : PALABRA:=16#45; erg_byte : BYTE; erg_word : PALABRA; n:
BYTE :=2; END_VAR erg_byte:=SHL(in_byte,n); (* El resultado es 16#14 *) erg_word:=SHL(in_word,n); (* El resultado es
16#01141 *)

Ejemplo en FBD:

Ejemplo en IL:
LD 16#45 SHL 2 ST erg_byte

10-6 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

SHR
Desplazamiento bit a la derecha de un operando: erg:= SHR (in, n)
in se desplaza a la derecha en n bits. Si n > ancho de tipo de datos, para BYTE, WORD y DWORD se rellenarán
con ceros. Pero si se utilizan tipos de datos con signo, como por ejemplo INT, entonces se ejecutará un
desplazamiento aritmético en tales casos, lo que significa que se rellenará con el valor del bit superior.

Consulte el siguiente ejemplo en notación hexadecimal para observar los resultados de la operación
aritmética en función del tipo de variable de entrada (BYTE o WORD).
Ejemplo en ST:
PROGRAMA shr_st VAR in_byte : BYTE:=16#45; in_word : PALABRA:=16#45; erg_byte : BYTE; erg_word :
PALABRA; n: BYTE :=2; END_VAR erg_byte:=SHR(in_byte,n); (* El resultado es 11 *) erg_word:=SHR(in_word,n);
(* El resultado es 0011 *)

Ejemplo en FBD:

Ejemplo en IL:
LD 16#45 SHR 2 ST erg_byte

ROL
Rotación bit a bit de un operando hacia la izquierda: erg:= ROL (in, n)
erg, in y n deben ser del tipo BYTE, WORD o DWORD. in se desplazará una posición de bit a la izquierda n
veces, mientras que el bit que esté más a la izquierda se volverá a insertar desde la derecha.
Vea en el siguiente ejemplo en notación hexadecimal que obtiene resultados diferentes para erg_byte y
erg_word dependiendo del tipo de datos de la variable de entrada (BYTE o WORD), aunque los valores
de las variables de entrada in_byte y in_word son los mismos.
Ejemplo en ST:
PROGRAMA rol_st VAR in_byte : BYTE:=16#45; in_word : CONVERTIRSE:=16#45; erg_byte : BYTE; erg_word :
LLEGAR A SER; n: BYTE :=2; END_VAR erg_byte:=ROL(in_byte,n); (* El resultado es 16#15 *)
erg_word:=ROL(in_word,n); (*El resultado es 16#0114*)

Ejemplo en FBD:

Ejemplo en IL:
LD 16#45
ROL 2 ST

CoDeSys V2.3 10-7


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

erg_byte

ROR
Rotación bit a bit de un operando hacia la derecha: erg = ROR (in, n)
erg, in y n deben ser del tipo BYTE, WORD o DWORD. in se desplazará una posición de bit a la derecha n
veces, mientras que el bit que esté más a la izquierda se volverá a insertar desde la izquierda.
Vea en el siguiente ejemplo en notación hexadecimal que obtiene resultados diferentes para erg_byte y
erg_word dependiendo del tipo de datos de la variable de entrada (BYTE o WORD), aunque los valores
de las variables de entrada in_byte y in_word son los mismos.
Ejemplo en ST:
PROGRAMA ror_st VAR in_byte : BYTE:=16#45; in_word : PALABRA:=16#45; erg_byte : BYTE; erg_word : PALABRA; n:
BYTE :=2; END_VAR erg_byte:=ROR(in_byte,n); (* El resultado es 16#51 *) erg_word:=ROR(in_word,n); (* El resultado
es16#4011 *)

Ejemplo en FBD:

Ejemplo en IL:
LD 16#45 ROR 2 ST erg_byte

10.4 Operadores de selección


Todas las operaciones de selección también se pueden realizar con variables. Para mayor claridad,
limitaremos nuestros ejemplos a los siguientes, que utilizan constantes como operadores.

SEL
Selección binaria.
OUT := SEL(G, IN0, IN1) significa:
OUT := IN0 si G=FALSE; OUT := IN1 si G=TRUE.

IN0, IN1 y OUT pueden ser cualquier tipo de variable, G debe ser BOOL. El resultado de la selección
es IN0 si G es FALSE, IN1 si G es TRUE.

Ejemplo en IL:
LD TRUE SEL 3,4 (* IN0 = 3, IN1 =4 *) ST
Var1 (* El resultado es 4 *)

LD FALSE SEL 3,4 ST Var1 (* El resultado es 3 *)

10-8 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en ST:
Var1:=SEL(VERDADERO,3,4); (* El resultado es 4 *)
Ejemplo en FBD:

Nota: Tenga en cuenta que una expresión que se produce antes de IN1 o IN2 no se procesará si IN0 es TRUE.

MÁXIMO
Función máxima. Devuelve el mayor de los dos valores.
SALIDA := MÁX. (ENTRADA0, ENTRADA1)
IN0, IN1 y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL:
LD 90 MAX 30 MAY 40 MAX 77 ST Var1 (* El resultado es 90 *)

Ejemplo en ST:
Var1:=MAX(30,40); (* El resultado es 40 *)
Var1:=MAX(40,MAX(90,30)); (* El resultado es 90 *)
Ejemplo en FBD:

MIN
Función mínima. Devuelve el menor de los dos valores.
SALIDA := MIN(IN0, IN1)
IN0, IN1 y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL:
LD 90 MIN 30 MIN 40 MIN 77 ST Var1 (* El resultado es 30 *)

Ejemplo en ST:
Var1:=MIN(90,30); (* El resultado es 30 *);
Var1:=MIN(MIN(90,30),40); (* El resultado es 30 *);
Ejemplo en FBD:

CoDeSys V2.3 10-9


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

LÍMITE
Restrictivo
OUT := LIMIT(Min, IN, Max) significa:
SALIDA := MIN (MAX (IN, Min), Max)
Max es el límite superior y Min el límite inferior del resultado. Si el valor IN supera el límite superior
Max, LIMIT devolverá Max. Si IN cae por debajo de Min, el resultado será Min.
IN y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL:
LD 90 LÍMITE 30,80 ST Var1 (* El resultado es 80 *)

Ejemplo en ST:
Var1:=LÍMITE(30,90,80); (* El resultado es 80 *);
Ejemplo en FBD:

MUX
Multiplexor
OUT := MUX(K, IN0,...,INn) significa:
SALIDA := TINTA.
IN0, ..., INn y OUT pueden ser cualquier tipo de variable. K debe ser BYTE, WORD, DWORD, SINT,
USINT, INT, UINT, DINT o UDINT. MUX selecciona el valor K-ésimo de entre un grupo de valores.
Ejemplo en IL:
LD 0 MUX 30,40,50,60,70,80 ST Var1 (* El resultado es 30 *)

Ejemplo en ST:
Var1:=MUX(0,30,40,50,60,70,80); (* El resultado es 30 *);

Tenga en cuenta: Una expresión que se produzca antes de una entrada que no sea INK no se procesará para
ahorrar tiempo de ejecución. Solo en el modo de simulación se ejecutarán todas las expresiones.

10-10 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

10.5 Operadores de comparación...


GT
Mayor que
Operador booleano que devuelve el valor TRUE cuando el valor del primer operando es mayor que el
del segundo. Los operandos pueden ser BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT,
DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Ejemplo en IL:
LD 20 GT 30 ST Var1 (* El resultado es FALSO *)

Ejemplo en ST:
VAR1 := 20 > 30 > 40 > 50 > 60 > 70;
Ejemplo en FBD:

LT
Menos que
Operador booleano que devuelve el valor TRUE cuando el valor del primer operando es menor que el del
segundo. Los operandos pueden ser BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT,
UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Ejemplo en IL:
LD 20 LT 30 ST Var1 (* El resultado es VERDADERO *)

Ejemplo en ST:
VAR1 := 20 < 30;
Ejemplo en FBD:

LE
Menor o igual que
Operador booleano que devuelve el valor TRUE cuando el valor del primer operando es menor o igual
que el del segundo. Los operandos pueden ser BOOL, BYTE, WORD, DWORD, SINT, USINT, INT,
UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Ejemplo en IL:
LD 20 LE 30 ST Var1 (* El resultado es VERDADERO *)

CoDeSys V2.3 10-11


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en ST:
VAR1 := 20 <= 30;
Ejemplo en FBD:

GE
Mayor o igual que
Operador booleano que devuelve el valor TRUE cuando el valor del primer operando es mayor o igual
que el del segundo. Los operandos pueden ser BOOL, BYTE, WORD, DWORD, SINT, USINT, INT,
UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Ejemplo en IL:
LD 60 GE 40 ST Var1 (* El resultado es VERDADERO *)

Ejemplo en ST:
VAR1 := 60 >= 40;
Ejemplo en FBD:

EQ
Igual a
Operador booleano que devuelve el valor TRUE cuando los operandos son iguales. Los operandos pueden ser
BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE,
TIME_OF_DAY, DATE_AND_TIME y STRING.
Ejemplo en IL:
LD 40 EQ 40 ST Var1 (* El resultado es VERDADERO *)

Ejemplo en ST:
VAR1 := 40 = 40;
Ejemplo en FBD:

NE
No es igual a
Operador booleano que devuelve ese valor TRUE cuando los operandos no son iguales. Los operandos pueden
ser BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME,
DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.

10-12 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en IL:
LD 40 NE 40 ST Var1 (* El resultado es FALSO *)

Ejemplo en ST:
VAR1 := 40 <> 40;
Ejemplo en FBD:

10.6 Operadores de direcciones...


Atención: Después de un cambio en línea, puede haber cambios en los datos de ciertas
direcciones. Tenga esto en cuenta en caso de usar punteros en las direcciones.

ADR
Función de dirección no prescrita por la norma IEC61131-3.
ADR devuelve la dirección de su argumento en un DWORD. Esta dirección se puede enviar a las funciones de
fabricación para que se trate como un puntero o se puede asignar a un puntero dentro del proyecto.

dwVar:=ADR(bVAR);
Ejemplo en IL:
LD bVar ADR ST dwVar man_fun1

ADRINST
Función de dirección, no prescrita por la norma IEC61131-3.
ADRINST dentro de una instancia de bloque de funciones devuelve la dirección de la instancia en un
DWORD. Esta dirección se puede enviar a funciones y tratarse allí como un puntero o se puede
asignar a un puntero dentro del proyecto.
Ejemplos en ST (dentro de una instancia de bloque de funciones):
dvar:=ADRINST(); (* Escriba la dirección de la instancia en la variable dvar *) fun(a:=ADRINST()); (*
Dar la dirección de la instancia para introducir una de la función fun *)
Ejemplos en IL:
ADRINST
ST dvar
ADRINST
diversión

BITADR
Función de dirección, no prescrita por la norma IEC61131-3.
BITADR devuelve el desplazamiento de bits dentro del segmento en un DWORD. Tenga en cuenta que el valor de
desplazamiento depende de si la opción de direccionamiento de bytes en la configuración de destino está activada o no.

VAR
var1 EN %IX2.3:BOOL; bitoffset: DWORD;

END_VAR

CoDeSys V2.3 10-13


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en ST:
bitoffset:=BITADR(var1); (* Resultado si el direccionamiento de bytes = TRUE: 19, si el direccionamiento de bytes = FALSO: 35 *)

Ejemplo en IL:
LD Var1
BITADR
ST Var2

Operador de contenido
Se puede desreferenciar un puntero agregando el operador de contenido "^" después del identificador del puntero.
Ejemplo en ST:
pt:PUNTERO A INT;
var_int1:INT; var_int2:INT; pt := ADR(var_int1); var_int2:=pt^;

10.7 Operadores de llamadas...


CAL
Llamar a un bloque de funciones o a un programa
Utilice CAL en IL para llamar una instancia de bloque de funciones. Las variables que servirán como variables de
entrada se colocan entre paréntesis justo después del nombre de la instancia del bloque de funciones.

Ejemplo:
Llamar a la instancia Inst desde un bloque de funciones donde las variables de entrada Par1 y Par2
son 0 y TRUE respectivamente.
CAL INST(PAR1 := 0, PAR2 := VERDADERO)

10.8 Conversiones de tipos...


Está prohibido convertir implícitamente de un tipo "más grande" a un tipo "más pequeño" (por ejemplo,
de INT a BYTE o de DINT a WORD). Se requieren conversiones de tipos especiales si se quiere hacer
esto. Básicamente, se puede convertir de cualquier tipo elemental a cualquier otro tipo elemental.
Sintaxis:
<elem. Typ1>_TO_<elem. Tipo2>
Por favor, tenga en cuenta que en ... TO_STRING conversiones, la cadena se genera justificada a la
izquierda. Si se define como corto, se cortará desde el lado derecho.

BOOL_TO Conversiones
Conversión de tipo BOOL a cualquier otro tipo:
Para los tipos de número, el resultado es 1, cuando el operando es TRUE y 0, cuando el operando es FALSE.
Para el tipo STRING, el resultado es 'TRUE' o 'FALSE'.
Ejemplos en IL:

LD TRUE (*El resultado es 1 *)


BOOL_TO_INT
ST i

10-14 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

LD TRUE BOOL_TO_STRING ST str (*El resultado es 'VERDADERO' *)

LD TRUE BOOL_TO_TIME ST t (*El resultado es T#1ms*)

LD TRUE BOOL_TO_TOD ST (*El resultado es TOD#00:00:00.001 *)

LD FALSO BOOL_TO_DATE ST dat (*El resultado es D#1970-01-01 *)

LD TRUE BOOL_TO_DT ST dandt (*El resultado es DT#1970-01-01-00:00:01 *)

Ejemplos en ST:

i:=BOOL_TO_INT(VERDADERO); (* El resultado es 1 *)

str:=BOOL_TO_STRING(VERDADERO); (* El resultado es "VERDADERO" *)

t:=BOOL_TO_TIME(VERDADERO); (* El resultado es T#1ms *)

df:=BOOL_TO_TOD(VERDADERO); (* El resultado es TOD#00:00:00.001 *)

dat:=BOOL_TO_DATE(FALSO); (* El resultado es D#1970 *)

dandt:=BOOL_TO_DT(VERDADERO); (* El resultado es
DT#1970-01-01-00:00:01 *)

Ejemplos en FBD:

(*El resultado es 1 *)

(*El resultado es 'VERDADERO' *)

(*El resultado es T#1ms*)

(*El resultado es TOD#00:00:00.001 *)

(*El resultado es D#1970-01-01 *)

(*El resultado es DT#1970-01-01-00:00:01 *)

TO_BOOL Conversiones
Conversión de otro tipo de variable a BOOL:
El resultado es TRUE cuando el operando no es igual a 0. El resultado es FALSE cuando el operando
es igual a 0.

CoDeSys V2.3 10-15


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

El resultado es verdadero para las variables de tipo STRING cuando el operando es "TRUE", de lo contrario, el resultado es
FALSO.
Ejemplos en IL:

LD 213 (*El resultado es VERDADERO*)


BYTE_TO_BOOL
ST b

LD 0 INT_TO_BOOL ST b (*El resultado es FALSO*)

LD T#5ms (*El resultado es VERDADERO*)


TIME_TO_BOOL
ST b

LD 'VERDADERO' STRING_TO_BOOL ST b (*El resultado es VERDADERO*)

Ejemplos en FBD:

(*El resultado es VERDADERO*)

(*El resultado es FALSO*)

(*El resultado es VERDADERO*)

(*El resultado es VERDADERO*)

Ejemplos en St:

b := BYTE_TO_BOOL(2#11010101); (* El resultado es VERDADERO *)

b := INT_TO_BOOL(0); (* El resultado es FALSO *)

b := TIME_TO_BOOL(T#5ms); (* El resultado es VERDADERO *)

b := STRING_TO_BOOL('VERDADERO'); (* El resultado es VERDADERO *)

Conversión entre tipos de números enteros


Conversión de un tipo de número entero a otro tipo de número:
Al realizar una conversión de tipo de un tipo más grande a uno más pequeño, se corre el riesgo de perder parte de
la información. Si el número que está convirtiendo supera el límite de intervalo, se ignorarán los primeros bytes del
número.
Ejemplo en ST:
si := INT_TO_SINT(4223); (* El resultado es 127 *)
Si guarda el entero 4223 (16#107f representado hexadecimalmente) como una variable SINT,
aparecerá como 127 (16#7f representado hexadecimalmente).
Ejemplo en IL:
LD 2 INT_TO_REAL MUL

10-16 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplo en FBD:

REAL_TO Conversiones de LREAL_TO y


Conversión del tipo de variable REAL o LREAL a un tipo diferente:
El valor se redondeará hacia arriba o hacia abajo al número entero más cercano y se convertirá en el nuevo
tipo de variable. Las excepciones a esto son los tipos de variables STRING, BOOL, REAL y LREAL.
Tenga en cuenta que en una conversión al tipo STRING el número total de dígitos está limitado a 16. Si
el número (L)REAL tiene más dígitos, entonces el decimosexto se redondeará. Si la longitud de la
CADENA se define como corta, se cortará comenzando desde el extremo derecho.
Al realizar una conversión de tipo de un tipo más grande a uno más pequeño, se corre el riesgo de perder parte de la información.

Ejemplo en ST:
i := REAL_TO_INT(1,5); (* El resultado es 2 *)
j := REAL_TO_INT(1.4); (* El resultado es 1 *)
i := REAL_TO_INT(-1,5); (* El resultado es -2 *)
j := REAL_TO_INT(-1.4); (* El resultado es -1 *)
Ejemplo en IL:
LD 2.7 REAL_TO_INT GE %MW8

Ejemplo en FBD:

Conversiones TIME_TO/TIME_OF_DAY
Conversión del tipo de variable TIME o TIME_OF_DAY a un tipo diferente:
La hora se almacenará internamente en un DWORD en milisegundos (a partir de las 12:00 a.m. para la
variable TIME_OF_DAY). A continuación, se convertirá este valor.
Al realizar una conversión de tipo de un tipo más grande a uno más pequeño, corre el riesgo de perder parte de la información

Para la variable de tipo STRING, el resultado es una constante de tiempo.


Ejemplos en IL:

LD T#12ms (*El resultado es 'T#12ms' *)


TIME_TO_STRING
ST str

LD T#300000ms (*El resultado es 300000*)


TIME_TO_DWORD
ST dw

LD TOD#00:00:00.012 TOD_TO_SINT (*El resultado es 12*)


ST si

Ejemplos en ST:

str :=TIME_TO_STRING(T#12ms); (* El resultado es T#12ms *)

dw:=TIME_TO_DWORD(T#5m); (* El resultado es 300000 *)

si:=TOD_TO_SINT(TOD#00:00:00.012); (* El resultado es 12 *)

CoDeSys V2.3 10-17


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

Ejemplos en FBD:

Conversiones DATE_TO/DT_TO
Conversión del tipo de variable FECHA o DATE_AND_TIME a un tipo diferente:
La fecha se almacenará internamente en un DWORD en segundos desde el 1 de enero de 1970. A
continuación, se convertirá este valor.
Al realizar una conversión de tipo de un tipo más grande a uno más pequeño, corre el riesgo de perder parte de la información

En el caso de las variables de tipo STRING, el resultado es la constante de fecha.


Ejemplos en IL:

LD D#1970-01-01 (* El resultado es FALSO *)


DATE_TO_BOOL
ST b

LD D#1970-01-15 (* El resultado es 29952 *)


DATE_TO_INT ST i

LD DT#1970-01-15-05:05:05 (* El resultado es 129 *)


DT_TO_BYTE
ST byt

LD DT#1998-02-13-14:20 resultado es 'DT#1998-02-13-14:20' *)


DT_TO STRING ST str (* El

Ejemplos en ST:

b :=DATE_TO_BOOL(D#1970-01-01); resultado es FALSO *)

i :=DATE_TO_INT(D#1970-01-15); (* El (* El resultado es 29952 *)

byt :=DT_TO_BYTE(DT#1970-01-15-05:05:05); (* El resultado es 129 *)

str:=DT_TO_STRING(DT#1998-02-13-14:20); (* El resultado es
'DT#1998-02-13-14:20' *)

Ejemplos en FBD:

10-18 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

STRING_TO Conversiones
Conversión del tipo de variable STRING a un tipo diferente:
El operando de la variable de tipo STRING debe contener un valor que sea válido en el tipo de variable
de destino, de lo contrario el resultado será 0.
Ejemplos en IL:

LD 'TRUE' (* El resultado es TRUE *)


STRING_TO_BOOL
ST b

LD 'abc34' (* El resultado es 0 *)
STRING_TO_WORD
ST w

LD 't#127ms' (* El resultado es T#127ms *)


STRING_TO_TIME
ST t

Ejemplos en ST:

b :=STRING_TO_BOOL('VERDADERO'); (* El resultado es VERDADERO *)

w :=STRING_TO_WORD('abc34'); (* El resultado es 0 *)

t :=STRING_TO_TIME('T#127ms'); (* El resultado es T#127ms *)

Ejemplos en FBD:

TRUNC
Conversión de REAL a INT. Se utilizará la parte del número entero del valor.
Al realizar una conversión de tipo de un tipo más grande a uno más pequeño, se corre el riesgo de perder parte de la información.

Ejemplo en IL:
LD 2.7 TRUNC GE %MW8

Ejemplos en ST:
i:=TRUNC(1.9); (* El resultado es 1 *)
i:=TRUNC(-1.4); (* El resultado es -1 *).

CoDeSys V2.3 10-19


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

10.9 Operadores numéricos...


ABS
Devuelve el valor absoluto de un número. ABS(-2) es igual a 2.
Son posibles las siguientes combinaciones de tipos para las variables de entrada y salida:

EN FUERA

INT INT, REAL, WORD, DWORD, DINT


REAL REAL
BYTE INT, REAL, BYTE, WORD, DWORD, DINT
PALABRA INT, REAL, WORD, DWORD, DINT
DWORD REAL, DWORD, DINT
SINT REAL
USINT REAL
UINT INT, REAL, WORD, DWORD, DINT, UDINT, UINT
FUERZA REAL, DWORD, DINT

UDINT REAL, DWORD, DINT, UDINT

Ejemplo en IL:
LD -2 ABS ST i (* El resultado es 2 *)

Ejemplo en ST:
i:=ABS(-2);
Ejemplo en FBD:

SQRT
Devuelve la raíz cuadrada de un número.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 16 SQRT ST q (* El resultado es 4 *)

Ejemplo en ST:
q:=SQRT(16);
Ejemplo en FBD:

10-20 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

EN
Devuelve el logaritmo neperiano de un número.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 45 LN ST q (* El resultado es 3.80666 *)

Ejemplo en ST:
q:=LN(45);
Ejemplo en FBD:

REGISTRO
Devuelve el logaritmo de un número en base 10.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 314.5 LOG ST q (* El resultado es 2.49762 *)

Ejemplo en ST:
q:=LOG(314.5);
Ejemplo en FBD:

EXP
Devuelve la función exponencial.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 2 EXP ST q (* El resultado es 7.389056099 *)

Ejemplo en ST:
q:=EXP(2);
Ejemplo en FBD:

CoDeSys V2.3 10-21


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

PECADO
Devuelve el seno de un número.
El valor de entrada IN se calcula en minutos de arco. Puede ser de tipo BYTE, WORD, DWORD, INT, DINT,
REAL, SINT, USINT, UINT, UDINT. OUT debe ser de tipo REAL.
Ejemplo en IL:
LD 0.5 SIN ST q (* El resultado es 0.479426 *)

Ejemplo en ST:
q:=SIN(0.5);
Ejemplo en FBD:

COS
Devuelve el coseno de número. El resultado se calcula en minutos de arco.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo Typ REAL.
Ejemplo en IL:
LD 0.5 COS ST q (* El resultado es 0.877583 *)

Ejemplo en ST:
q:=COS(0.5);
Ejemplo en FBD:

BRONCEADO
Devuelve la tangente de un número. El valor se calcula en minutos de arco. IN puede ser de tipo BYTE,
WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT debe ser de tipo REAL.
Ejemplo en IL:
LD 0.5 TAN ST q (* El resultado es 0.546302 *)

Ejemplo en ST:
q: = TAN(0.5);
Ejemplo en FBD:

10-22 CoDeSys V2.3


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

ASIN
Devuelve el seno de arco (función inversa del seno) de un número. .
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 0.5 ASIN ST q (* El resultado es 0.523599 *)

Ejemplo en ST:
q:=ASIN(0,5);
Ejemplo en FBD:

ACOS
Devuelve el coseno de arco (función inversa del coseno) de un número. El valor se calcula en minutos
de arco.
IN puede ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT
debe ser de tipo REAL.
Ejemplo en IL:
LD 0.5 ACOS ST q (* El resultado es 1.0472 *)

Ejemplo en ST:
q:=ACOS(0.5);
Ejemplo en FBD:

ATAN
Devuelve la tangente de arco (función inversa de la tangente) de un número. IN puede ser de tipo
BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT. El resultado OUT se calcula
en minutos de arco y debe ser de tipo REAL.
Ejemplo en IL:
LD 0.5 ATAN ST q (* El resultado es 0.463648 *)

Ejemplo en ST:
q:=ATAN(0.5);
Ejemplo en FBD:

CoDeSys V2.3 10-23


Apéndice A: - Operadores IEC y funciones adicionales de extensión de normas

EXPT
Exponenciación de una variable con otra variable:
SALIDA = ENTRADA1ENTRADA2.
IN1 e IN2 pueden ser de tipo BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT,
OUT debe ser de tipo REAL.
Ejemplo en IL:
LD 7 EXPT 2 ST var1 (* El resultado es 49 *)

Ejemplo en ST:
var1 := EXPT(7,2);
Ejemplo en FBD:

10.10 Operador de inicialización


ESTE operador
El operador INI se puede utilizar para inicializar las variables de retención que proporciona una
instancia de bloque de funciones utilizada en la POU.
El operador debe asignarse a una variable booleana.
Sintaxis: <variable bool> := INI(<FB-instance, TRUE|FALSO)
Si el segundo parámetro del operador se establece en TRUE, se inicializarán todas las variables de
retención definidas en el módulo de función FB.
Ejemplo en ST: fbinst es la instancia del bloque de funciones fb, en el que se define una variable de retención retvar.

Declaración en POU:
fbinst:fb; b:bool;

Parte de implementación:
b := INI(fbinst, VERDADERO); ivar:=fbinst.retvar (* => retvar se inicializa
*)
Ejemplo de llamada de operador en IL:
LD fbinst
INI TRUE ST b

Ejemplo de llamada de operador en FBD:

10-24 CoDeSys V2.3


Apéndice B: - Operandos en CoDeSys

Apéndice B: Operandos en CoDeSys


En las constantes de CoDeSys, las variables, las direcciones y, posiblemente, las llamadas a funciones
pueden aparecer como operandos.

10.11 Constantes
Constantes BOOL
Las constantes BOOL son los valores lógicos TRUE y FALSE.

Constantes de tiempo
Las constantes de tiempo se pueden declarar en CoDeSys. Por lo general, se utilizan para operar el
temporizador en la biblioteca estándar. Una constante TIME siempre se compone de una "t" o "T" inicial
(o "time" o "TIME" deletreado) y un signo numérico "#".
A esto le sigue la declaración de tiempo real, que puede incluir días (identificados con "d"), horas
(identificadas con "h"), minutos (identificados con "m"), segundos (identificados con "s") y milisegundos
(identificados con "ms"). Tenga en cuenta que las entradas de tiempo deben darse en este orden de acuerdo
con la longitud (d antes de h antes de m antes de s antes de m antes de ms), pero no es necesario que
incluya todos los incrementos de tiempo.
Ejemplos de constantes TIME correctas en una asignación ST:

TIEMPO1 := T#14ms;
TIEMPO1 := T#100S12ms; (*Se puede permitir que el componente más alto exceda su límite*)
TIEMPO1 := t#12h34m15s;

Lo siguiente sería incorrecto:

TIEMPO1 := t#5m68s; (*límite excedido en un componente inferior*)


TIEMPO1 := 15ms; (*Falta T#*)
TIEMPO1 := t#4ms13d; (*Orden incorrecto de las entradas*)

Constantes DATE
Estas constantes se pueden utilizar para introducir fechas. Se declara una constante DATE que comienza con "d",
"D", "DATE" o "date" seguido de "#". A continuación, puede introducir cualquier fecha con el formato Año-Mes-Día.

Ejemplos:
FECHA#1996-05-06
d#1972-03-29
(consulte también el Capítulo 10.15 Tipos de datos, Tipos de datos de tiempo)

TIME_OF_DAY Constantes
Utilice este tipo de constante para almacenar las horas del día. Una declaración TIME_OF_DAY comienza con
"tod#", "TOD#", "TIME_OF_DAY#" o "time_of_day#" seguido de una hora con el formato: Hora:Minuto:Segundo.
Puede introducir segundos como números reales o puede introducir fracciones de segundo.

Ejemplos:
TIME_OF_DAY#15:36:30.123
tod#00:00:00
(consulte también el Capítulo 10.15 Tipos de datos, Tipos de datos de tiempo)

CoDeSys V2.3 10-25


Apéndice B: - Operandos en CoDeSys

DATE_AND_TIME Constantes
Las constantes de fecha y la hora del día también se pueden combinar para formar las llamadas constantes DATE_AND_TIME. DATE_AND_TIME constantes comienzan con "dt#", "DT#", "date_and_time#". Coloque un guión después de la fecha seguida de la hora.

"DATE_AND_TIME#" o

Ejemplos:
DATE_AND_TIME#1996-05-06-15:36:30
dt#1972-03-29-00:00:00
(consulte también el Capítulo 10.15 Tipos de datos, Tipos de datos de tiempo)

Constantes numéricas
Los valores numéricos pueden aparecer como números binarios, números octales, números decimales
y números hexadecimales. Si un valor entero no es un número decimal, debe escribir su base seguido
del signo de número (#) delante de la constante entera. Los valores de los números 10-15 en números
hexadecimales se representarán como siempre con las letras A-F.
Puede incluir el carácter de subrayado dentro del número.
Ejemplos:

14 (número decimal)
2#1001_0011 (número doble)
8#67 (número octal)
16#A (número hexadecimal)

Estos valores numéricos pueden ser de los tipos de variables BYTE, WORD, DWORD, SINT, USINT, INT,
UINT, DINT, UDINT, REAL o LREAL.
No se permiten conversiones implícitas de tipos de variables "más grandes" a "más pequeñas". Esto
significa que una variable DINT no se puede utilizar simplemente como una variable INT. Debe utilizar
la conversión de tipos.
Constantes REAL/LREAL
Las constantes REAL y LREAL se pueden dar como fracciones decimales y representarse
exponencialmente. Para ello, utilice el formato americano estándar con el punto decimal.
Ejemplo:
7.4 en lugar de 7,4 1.64e+009 en lugar
de 1,64e+009

Constantes STRING
Una cadena es una secuencia de caracteres. Las constantes STRING van precedidas y seguidas de
comillas simples. También puede introducir espacios en blanco y caracteres especiales (diéresis, por
ejemplo). Serán tratados como todos los demás personajes.
En las secuencias de caracteres, la combinación del signo de dólar ($) seguido de dos números
hexadecimales se interpreta como una representación hexadecimal del código de caracteres de ocho
bits. Además, la combinación de dos caracteres que comienzan con el signo de dólar se interpreta
como se muestra a continuación cuando aparecen en una secuencia de caracteres:

$$ Signos de dólar
$' Comillas simples
$L o $l Avance de línea
$N o $n Nueva línea
$P o $p Feed de página

10-26 CoDeSys V2.3


Apéndice B: - Operandos en CoDeSys

$R o $r
Salto de línea
$T o $t Pestaña

Ejemplos:
'w1Wüß?'
' Abby y Craig ' ':-)'

Literales con tipo


Básicamente, al usar constantes IEC, se utilizará el tipo de datos más pequeño posible. Si se debe usar otro
tipo de datos, esto se puede lograr con la ayuda de literales con tipo sin la necesidad de declarar
explícitamente las constantes. Para ello, la constante estará provista de un prefijo que determina el tipo.

Esto se escribe de la siguiente manera: <Tipo>#<Literal>


<Tipo> especifica el tipo de datos deseado; Las entradas posibles son: BOOL, SINT, USINT, BYTE,
INT, UINT, WORD, DINT, UDINT, DWORD, REAL, LREAL. El tipo debe escribirse en mayúsculas.
<Literal> especifica la constante. Los datos introducidos deben ajustarse al tipo de datos especificado
en <Tipo>.
Ejemplo:
var1:=DINT#34;
Si la constante no se puede convertir al tipo de destino sin pérdida de datos, se emite un mensaje de error:
Los literales con tipo se pueden usar siempre que se puedan usar constantes normales.

10.12 Variables
Las variables se pueden declarar localmente en la parte de declaración de una POU o en una lista de variables globales.

Tenga en cuenta: En un proyecto puede definir una variable local que tenga el mismo nombre que una variable
global. En este caso, dentro de una POU se utilizará la variable definida localmente. Sin embargo, no está
permitido nombrar dos variables globales de forma idéntica. Por ejemplo, obtendrá un error del compilador, si ha
definido una variable "var1" en la configuración del PLC, así como en una lista global de variables.

El identificador de la variable no puede contener espacios en blanco ni caracteres especiales, no puede


declararse más de una vez y no puede ser el mismo que ninguna de las palabras clave. No se reconoce
el uso de mayúsculas, lo que significa que VAR1, Var1 y var1 son la misma variable. El carácter de
subrayado se reconoce en los identificadores (por ejemplo, "A_BCD" y "AB_CD" se consideran dos
identificadores diferentes). Un identificador no puede tener más de un carácter de subrayado seguido. La
longitud del identificador, así como la parte significativa del mismo, son ilimitadas.
Las variables se pueden usar en cualquier lugar donde el tipo declarado las permita.
Puede acceder a las variables disponibles a través del Asistente de entrada.

Indicadores del sistema


Los indicadores del sistema son variables declaradas implícitamente que son diferentes en cada PLC específico.
Para saber qué indicadores del sistema están disponibles en su sistema, utilice el comando 'Insertar' 'Operando'
Aparece un cuadro de diálogo del Asistente de entrada, seleccione la categoría Variable del sistema.

Acceso a variables para arrays, estructuras y POUs.


Se puede acceder a los componentes de matriz bidimensional mediante la siguiente sintaxis:
<nombre del campo>[índice1, índice2]
Se puede acceder a las variables de estructura mediante la siguiente sintaxis:
<NombreEstructura>.<NombreVariable>

CoDeSys V2.3 10-27


Apéndice B: - Operandos en CoDeSys

Se puede acceder al bloque de funciones y a las variables de programa mediante la siguiente sintaxis:
<functionblockname>.<variablename>

Direccionamiento de bits en variables


En las variables enteras se puede acceder a bits individuales. Para ello, el índice del bit a direccionar
se anexa a la variable, separado por un punto. El índice de bits puede estar dado por cualquier
constante. La indexación se basa en 0.

Tenga en cuenta: No se permite el acceso a bits en variables directas.

Ejemplo:
a : INT;
b : BOOL; ...
a. := b;
El tercer bit de la variable a se establecerá en el valor de la variable b.
Si el índice es mayor que el ancho de bits de la variable, se emite el siguiente mensaje de error: Índice
'<n>' fuera del rango válido para la variable '<var>'!
El direccionamiento de bits es posible con los siguientes tipos de variables: SINT, INT, DINT, USINT, UINT, UDINT,
BYTE, BECOME, DWORD.
Si el tipo de variable no lo permite, se emite el siguiente mensaje de error: "Tipo de datos no válido
'<type>' para la indexación directa"
¡No se debe asignar un acceso de bits a una variable VAR_IN_OUT!

Bitaccess a través de una constante global:


Si ha declarado una constante global, que define el índice de bits, puede utilizar esta constante para un
acceso a bits.

Tenga en cuenta: ¡La opción del proyecto 'Reemplazar constantes' (categoría Construir) debe estar activada!

Consulte en los siguientes ejemplos un acceso a bits en una variable o una variable de estructura:
Declaración en la lista de variables globales para ambos ejemplos:

La variable enable define a qué bit se debe acceder:


VAR_GLOBAL CONSTANTE
enable:int:=2;
END_VAR
Ejemplo 1, Bitaccess en una variable entera:

Declaración en POU:
VAR xxx:tú;

END_VAR
Acceso a bits:

xxx.enable:=true; -> el tercer bit de segundo en la variable xxx se establecerá en TRUE

Ejemplo 2, Bitaccess en un componente de estructura entera:

Declaración de estructura stru1:


TIPO stru1 : STRUCT

bvar:BOOL;
rvar:REAL;
wvar:PALABRA;

10-28 CoDeSys V2.3


Apéndice B: - Operandos en CoDeSys

{bitaccess enable 42 'Iniciar unidad'}


END_STRUCT END_TYPE

Declaración en POU:
VAR x:stru1;

END_VAR
Acceso a bits:
x.enable:=true;
Esto establecerá VERDADERO el 42. bit en la variable x. Dado que bvar tiene 8 bits y rvar tiene 32 bits, el
bitaccess se realizará en el segundo bit de la variable wvar, que como resultado obtendrá el valor 4.

Atención: Si una variable, que realiza un acceso de bits en una variable de estructura con la ayuda de una
constante global, debe mostrarse correctamente en el asistente de entrada, en la supervisión en la ventana de
declaración y en la "función Intellisense", utilice pragma {bitaccess} como se muestra en el ejemplo. A
continuación, además, se muestra la constante global más allá de la variable de estructura respectiva durante la
supervisión en la ventana de declaración:

10.13 Direcciones
Dirección
La visualización directa de las ubicaciones de memoria individuales se realiza mediante el uso de secuencias
de caracteres especiales. Estas secuencias son una concatenación del signo de porcentaje "%", un prefijo de
rango, un prefijo para el tamaño y uno o más números naturales separados por espacios en blanco.

Se admiten los siguientes prefijos de rango:

Yo asumo
Q Q
M Ubicación de la memoria

Se admiten los siguientes prefijos de tamaño:

X Un solo bit
Ninguno Un solo bit
B Byte (8 Bits)
W Word (16 Bits)
D Palabra doble (32 bits)

CoDeSys V2.3 10-29


Apéndice B: - Operandos en CoDeSys

Ejemplos:

%QX7.5 y bit de salida 7.5


%Q7.5
%IW215 Palabra de entrada 215
%QB7 Byte de salida 7
%MD48 Palabra doble en la posición de memoria 48 en la ubicación de memoria.
%IW2.5.7.1 dependiendo de la configuración del PLC

La configuración actual del PLC para el programa determina si una dirección es válida o no.

Nota: Los valores booleanos se asignarán bytewise, si no se especifica una dirección explícita de un solo bit.
Ejemplo: Un cambio en el valor de varbool1 AT %QW0 afecta al rango de QX0.0 a QX0.7.

véase también el Capítulo Apéndice A: Operadores IEC y funciones adicionales de extensión de


normas, operadores de direcciones

Ubicación de la memoria
Puede utilizar cualquier tamaño admitido para acceder a la ubicación de la memoria.
Por ejemplo, la dirección %MD48 se dirigiría a los números de bytes 192, 193, 194 y 195 en el área de
ubicación de memoria (48 * 4 = 192). El número del primer byte es 0.
Puede acceder a palabras, bytes e incluso bits de la misma manera: la dirección %MX5.0 le permite
acceder al primer bit de la quinta palabra (los bits generalmente se guardan por palabra).
véase también Apéndice A: Operadores IEC y funciones adicionales de extensión de normas, operadores de direcciones

10.14 Funciones
En ST, una llamada de función también puede aparecer como un operando.
Ejemplo:
Resultado := Fct(7) + 3;

Función TIME()
Esta función devuelve el tiempo (basado en milisegundos) que se ha pasado desde que se inició el
sistema.
El tipo de datos es TIME.
Ejemplo en IL:
HORA
ST systime (* Resultado, por ejemplo: T#35m11s342ms *)
Ejemplo en ST:
systime:=TIEMPO();
Ejemplo en FBD:

10-30 CoDeSys V2.3


Apéndice C: - Tipos de datos en CoDeSys

Apéndice C: Tipos de datos en CoDeSys

10.15 Tipos de datos estándar


Puede utilizar tipos de datos estándar y tipos de datos definidos por el usuario al programar. Cada
identificador se asigna a un tipo de datos que dicta cuánto espacio de memoria se reservará y qué tipo
de valores almacena.

BOOL
A las variables de tipo BOOL se les pueden asignar los valores TRUE y FALSE. Se reservarán 8 bits
de espacio de memoria.
consulte también el capítulo 10.11, Operandos en CoDeSys, constantes BOOL

Tipos de datos enteros


BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT y UDINT son tipos de datos enteros
Cada uno de los diferentes tipos de números cubre un rango diferente de valores. Las siguientes
limitaciones de rango se aplican a los tipos de datos enteros:

Tipo Límite inferior Límite superior Espacio de memoria

BYTE 0 255 8 bits


PALABRA 0 65535 16 bits
DWORD 0 4294967295 32 bits
SINT: -128 127 8 bits
USINT: 0 255 8 bits
INT: -32768 32767 16 bits
UINT: 0 65535 16 bits
FUERZA: -2147483648 2147483647 32 bits
UDINT: 0 4294967295 32 bits
Como resultado, cuando los tipos más grandes se convierten en tipos más pequeños, es posible que se pierda información.

consulte también el Capítulo 10.11, Operandos en CoDeSys, Constantes numéricas

REAL / LREAL
REAL y LREAL son los llamados tipos de punto flotante. Deben representar números racionales. Se
reservan 32 bits de espacio de memoria para REAL y 64 bits para LREAL.
Valores válidos para REAL: 1.175494351e-38 a 3.402823466e+38
Valores válidos para LREAL: 2.2250738585072014e-308 a 1.7976931348623158e+308
véase también el Capítulo 10.11, Constantes REAL-/LREAL

CUERDA
Una variable de tipo STRING puede contener cualquier cadena de caracteres. La entrada size de la
declaración determina cuánto espacio de memoria se debe reservar para la variable. Se refiere al
número de caracteres de la cadena y se puede colocar entre paréntesis o corchetes. Si no se
especifica el tamaño, se utilizará el tamaño predeterminado de 80 caracteres.
Básicamente, la longitud de la cadena no está limitada en CoDeSys, pero las funciones de cadena solo
pueden procesar cadenas de 1 a 255 caracteres.

CoDeSys V2.3 10-31


Apéndice C: - Tipos de datos en CoDeSys

Ejemplo de una declaración de cadena con 35 caracteres:


str:STRING(35):='Esto es una cadena';
consulte también el Capítulo 10.11, Operandos en CoDeSys, constantes STRING

Tipos de datos de tiempo


Los tipos de datos TIME, TIME_OF_DAY (abb. TOD), FECHA y DATE_AND_TIME (abb. DT) se
manejan internamente como DWORD.
La hora se da en milisegundos en TIME y TOD, la hora en TOD comienza a las 12:00 a.m.
La hora se da en segundos en FECHA y DT a partir del 1 de enero de 1970 a las 12:00 a.m.
A continuación se muestran los formatos de datos de tiempo utilizados para asignar valores a las constantes de
tiempo:

Constantes de TIEMPO:
siempre compuesto por una "t" o "T" inicial (o "tiempo" o "TIEMPO" deletreado) y un signo numérico "#".
A esto le sigue la declaración de tiempo real, que puede incluir días (identificados con "d"), horas (identificadas con
"h"), minutos (identificados con "m"), segundos (identificados con "s") y milisegundos (identificados con "ms").
Tenga en cuenta que las entradas de tiempo deben darse en este orden de acuerdo con la longitud (d antes de h
antes de m antes de s antes de m antes de ms), pero no es necesario que incluya todos los incrementos de
tiempo.
Valor máximo: 49d17h2m47s295ms (4194967295 ms)
Ejemplos de constantes TIME correctas en una asignación ST:

TIEMPO1 := T#14ms;
TIEMPO1 := T#100S12ms; (*Se puede permitir que el componente más alto exceda su límite*)
TIEMPO1 := t#12h34m15s;

Lo siguiente sería incorrecto:

TIEMPO1 := t#5m68s; (*límite excedido en un componente inferior*)


TIEMPO1 := 15ms; (*Falta T#*)
TIEMPO1 := t#4ms13d; (*Orden incorrecto de las entradas*)

Constantes DATE:
comenzando con una "d", "D", "FECHA" o "fecha" seguida de "#". A continuación, puede introducir
cualquier fecha con el formato Año-Mes-Día. Valores posibles: 1970-00-00 a 2106-02-06.
Ejemplos:
FECHA#1996-05-06
d#1972-03-29

TIME_OF_DAY Constantes, para almacenar las horas del día:


comience con "tod#", "TOD#", "TIME_OF_DAY#" o "time_of_day#" seguido de un tiempo con el
formato: Hora:Minuto:Segundo. Los segundos se pueden introducir como números reales o se pueden
introducir fracciones de segundo. Valores posibles: 00:00:00 bis 23:59:59.999.
Ejemplos:
TIME_OF_DAY#15:36:30.123
tod#00:00:00

10-32 CoDeSys V2.3


Apéndice C: - Tipos de datos en CoDeSys

DATE_AND_TIME Constantes, combinación de fecha y hora del día:


Comience con "DT#", "DT#", "DATE_AND_TIME#" o "date_and_time#". Coloque un guión después de
la fecha seguida de la hora. Valores posibles: 1970-00-00-00:00:00 a 2106-02-06-06:28:15.
Ejemplos:
DATE_AND_TIME#1996-05-06-15:36:30
dt#1972-03-29-00:00:00

10.16 Tipos de datos definidos


ARREGLO
Los campos unidimensionales, bidimensionales y tridimensionales (matrices) se admiten como tipos de datos
elementales. Las matrices se pueden definir tanto en la parte de declaración de una POU como en las listas de variables
globales. Un máximo de 9 dimensiones pueden resultar del anidamiento de matrices ( "ARRAY[0..2] OF ARRAY[0..3] OF
..." ).
Sintaxis:
<Field_Name>:MATRIZ [<ll1>. <ul1>,<ll2>.. <ul2>] DE <elemento. Tipo>.
ll1, ll2, ll3identificar el límite inferior del rango de campo; UL1, UL2 y UL3 identifican el límite superior.
Los valores límite deben ser enteros y deben seguir el rango de valores DINT.
Ejemplo:
Card_game: MATRIZ [1..13, 1..4] DE INT;

Inicialización de matrices:
Ejemplo de inicialización completa de una matriz:
arr1 : ARRAY [1..5] OF INT := 1,2,3,4,5; arr2 : ARRAY [1..2,3..4] DE INT := 1,3(7); (*
abreviatura de 1,7,7,7 *)
arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (* abreviatura de
0,0,4,4,4,4,2,3 *)
Ejemplo de inicialización de un array de una estructura:
TIPO STRUCT1 ESTRUCTURA

1/1/2 int; El 2-int; p3 dword;

END_STRUCT
MATRIC[1..3] DE STRUCT1:= (p1:=1,p2:=10,p3:=4723),(p1:=2,p2:=0,p3:=299), (p1:=14,p2:=5,p3:=112);

Ejemplo de inicialización parcial de un Array:


arr1 : ARRAY [1..10] DE INT := 1,2;
Los elementos a los que no se ha asignado ningún valor se inicializan con el valor inicial
predeterminado del tipo básico. Por lo tanto, en el ejemplo anterior, los elementos anarray[6] a
anarray[10] se inicializan con 0.

Acceso a los componentes de la matriz: v


Se accede a los componentes de la matriz en una matriz bidimensional mediante la siguiente sintaxis:
<Field_Name>[Índice1,Índice2]
Ejemplo:
Card_game [9,2]

CoDeSys V2.3 10-33


Apéndice C: - Tipos de datos en CoDeSys

Nota: Si define una función en su proyecto con el nombre CheckBounds, puede usarla para verificar si hay
desbordamientos de rango en su proyecto (consulte el capítulo '2.1, Qué es qué en CoDeSys',
'Componentes de un proyecto', 'Función')

Límites de comprobación de funciones


Si define una función en el proyecto con el nombre CheckBounds, puede comprobar automáticamente si hay
errores fuera de rango en las matrices. El nombre de la función es fijo y solo puede tener esta designación.

Ejemplo de la función CheckBounds:


FUNCIÓN CheckBounds : DINT
VAR_INPUT
índice, inferior, superior: DINT;
END_VAR
IF index < menor THEN
CheckBounds := menor; Índice
ELSIF > superior THEN
CheckBounds := superior; ELSE
CheckBounds := índice;
END_IF
El siguiente programa de ejemplo para probar la función CheckBounds supera los límites de una matriz
definida. La función CheckBounds permite asignar el valor TRUE, no a la ubicación A[10], sino al límite
de rango aún válido A[7] por encima de ella. Con la función CheckBounds, se pueden corregir las
referencias fuera de los límites de la matriz.
Programa de prueba para la función CheckBounds:
PROGRAMA PLC_PRG
VAR
a: ARRAY[0..7] DE BOOL; b:
INT:=10; END_VAR
a[b]:=VERDADERO;

Atención: La función CheckBounds proporcionada por la biblioteca Check.Lib es solo una solución de ejemplo.
Antes de usar ese módulo de biblioteca, verifique si la función funciona según lo solicitado para su proyecto o
implemente una función adecuada directamente como una POU en su proyecto.

Puntero
Las direcciones de variables o bloques de funciones se guardan en punteros mientras se ejecuta un programa.
Las declaraciones de puntero tienen la siguiente sintaxis:
<Identificador>: PUNTERO A <Tipo de datos/Bloque de funciones>;
A puntero puede apuntar a cualquier tipo de datos o bloque de funciones, incluso a tipos definidos por el usuario.
La función del ADR del operador de direcciones es asignar la dirección de una variable o bloque de
funciones al puntero.
A puede desreferenciar un puntero agregando el operador de contenido "^" después del identificador del puntero.

Tenga en cuenta: ¡Un puntero se cuenta byte! Puede contarlo como es habitual en el compilador de C utilizando la
instrucción p=p+SIZEOF(p^);.

Ejemplo:
pt:PUNTERO A INT;
var_int1:INT := 5; var_int2:INT; pt := ADR(var_int1); var_int2:= pt^; (* var_int2 ahora es 5 *)

10-34 CoDeSys V2.3


Apéndice C: - Tipos de datos en CoDeSys

Funciones para comprobar los accesos al puntero durante el tiempo de ejecución:


Para comprobar los accesos al puntero durante el tiempo de ejecución, puede crear funciones de comprobación, que se
llamarán automáticamente antes de cada acceso en la dirección de un puntero. Para ello, la función respectiva debe
estar disponible en el proyecto, directamente o a través de una biblioteca. Se admiten las siguientes funciones:

Función CheckPointer o comprobar si la dirección almacenada actualmente en el puntero está dentro


del rango de memoria válido,
Funktion CheckPointerAligned, que implica la funcionalidad de CheckPointer ampliada por una
comprobación de la alineación de la memoria.
Las funciones deben tener exactamente los nombres mencionados. Devuelven la dirección que se
utiliza para desreferenciar el puntero, por lo tanto, en el mejor de los casos, la que se ha pasado como
primer parámetro de entrada (dwAddress en el ejemplo que se muestra a continuación).
Vea en el siguiente ejemplo de una función CheckPointerAligned, qué parámetros de entrada procesan las
funciones de comprobación. (Los nombres de los parámetros también son ejemplos). Una función CheckPointer
debe tener el mismo aspecto, excepto que no puede haber ningún parámetro para la granularidad del acceso al
puntero:
FUNCTION CheckPointerAligned : DWORD (* El tipo de datos de la función (valor de retorno) debe ser el
mismo que se utiliza para los punteros en el sistema de destino establecido actualmente; es decir,
DWORD para sistemas que utilizan punteros de 32 bits, WORD para sistemas que utilizan punteros de 16
bits *)

(* Dirección de destino del puntero; el tipo de datos


debe ser el mismo que se usa para los punteros en
el sistema de destino establecido actualmente,
consulte más arriba: valor devuelto *) (* Tamaño del
iSize : DINT; acceso al puntero; el tipo de datos debe ser
compatible con enteros y debe cubrir el tamaño
máximo potencial de datos almacenado en la
dirección del puntero *) (* !no se debe usar en
iGran : DINT; funciones CheckPointer!
granularidad del acceso, por ejemplo, "2", si INT es
el tipo de datos no estructurado más pequeño
utilizado en la dirección dada; el tipo de datos debe
ser compatible con enteros *) (*Tipo de acceso:
bEscribir: BOOL; Lectura o Escritura; TRUE=acceso de lectura; el
tipo de datos debe ser BOOL *)
END_VAR

Si hay una función CheckPointerer, se y a función CheckPointerAligned En proyecto


llamará a CheckPointerAligned.

Enumeración
La enumeración es un tipo de datos definido por el usuario que se compone de una serie de constantes
de cadena. Estas constantes se denominan valores de enumeración.
Los valores de enumeración se reconocen en todas las áreas del proyecto, incluso si se declararon dentro de
una POU. Es mejor crear las enumeraciones como objetos en el Organizador de objetos en la tarjeta de registro
Tipos de datos. Comienzan con la palabra clave TYPE y terminan con END_TYPE.
Sintaxis:
TIPO <Identificador>:(<Enum_0> ,<Enum_1>, ...,<Enum_n>); END_TYPE

Una variable del tipo <Identifier> puede tomar uno de los valores de enumeración y se inicializará con
el primero. Estos valores son compatibles con números enteros, lo que significa que puede realizar
operaciones con ellos tal como lo haría con INT. Puede asignar un número x a la variable. Si los
valores de enumeración no se inicializan, el recuento comenzará con 0. Al inicializar, asegúrese de que
los valores iniciales estén aumentando. La validez del número se revisará en el momento en que se
ejecute.

CoDeSys V2.3 10-35


Apéndice C: - Tipos de datos en CoDeSys

Ejemplo:
TIPO TRAFFIC_SIGNAL: (Rojo, Amarillo, Verde:=10); (*El valor inicial para cada uno de los colores es rojo 0, amarillo 1, verde
10*) END_TYPE TRAFFIC_SIGNAL1 : TRAFFIC_SIGNAL; TRAFFIC_SIGNAL1:=0; (* El valor del semáforo es rojo*) PARA i:=
Rojo A Verde DO i := i + 1; END_FOR;

El mismo valor de enumeración no se puede usar dos veces dentro de una enumeración o dentro de
todas las enumeraciones utilizadas en la misma POU.
Ejemplo:
TRAFFIC_SIGNAL: (rojo, amarillo, verde); COLOR: (azul, blanco, rojo); Error: es
posible que el rojo no se utilice tanto para TRAFFIC_SIGNAL como para COLOR.

Estructuras
Las estructuras se crean como objetos en el Organizador de objetos en la tarjeta de registro Tipos de datos.
Comienzan con las palabras clave TYPE y STRUCT y terminan con END_STRUCT y END_TYPE.
La sintaxis de las declaraciones de estructura es la siguiente:
TIPO <Nombre de la estructura>: STRUCT

<Declaración de variables 1> . .

<Declaración de variables n>


END_STRUCT
END_TYPE

<Structurename> es un tipo que se reconoce en todo el proyecto y se puede usar como un tipo de
datos estándar.
Se permiten estructuras entrelazadas. La única restricción es que las variables no se pueden colocar
en las direcciones (¡la declaración AT no está permitida!).
Ejemplo de una definición de estructura denominada Polygonline:
TYPE Polygonline: STRUCT
Start:ARRAY [1..2] OF INT;
Point1:ARRAY [1..2] OF INT;
Point2:ARRAY [1..2] OF INT;
Point3:ARRAY [1..2] OF INT;
Point4:ARRAY [1..2] OF INT;
Fin:ARRAY [1..2] DE INT;
END_STRUCT END_TYPE

Ejemplo para la inicialización de una estructura:


Poly_1:polygonline := ( Inicio:=3,3, Punto1 =5,2, Punto2:=7,3, Punto3:=8,5, Punto4:=5,7, Fin := 3,5);

Las inicializaciones con variables no son posibles. Vea un ejemplo de la inicialización de una matriz de
una estructura en 'Matrices'.
Acceso a los componentes de la estructura:
Puede obtener acceso a los componentes de la estructura mediante la siguiente sintaxis:
<Structure_Name>.<nombre del componente>

10-36 CoDeSys V2.3


Apéndice C: - Tipos de datos en CoDeSys

Entonces, para el ejemplo mencionado anteriormente de la estructura 'polygonline', puede acceder al


componente 'start' mediante Poly_1.Start.

Referencias
Puede utilizar el tipo de datos de referencia definido por el usuario para crear un nombre alternativo
para una variable, una constante o un bloque de funciones.
Cree sus referencias como objetos en el Organizador de objetos en la tarjeta de registro Tipos de datos.
Comienzan con la palabra clave TYPE y terminan con END_TYPE.
Sintaxis:
TIPO < Identificador>: <Plazo de asignación>; END_TYPE

Ejemplo:
TYPE message:STRING[50];
END_TYPE;

Tipos de subrangos
Un tipo de subrango es un tipo cuyo intervalo de valores es solo un subconjunto del del tipo básico. La
declaración se puede realizar en el registro de tipos de datos, pero también se puede declarar
directamente una variable con un tipo de subrango:
Sintaxis de la declaración en el registro 'Tipos de datos':
TYPE <Name> : <Inttype> (<ug>.. <og>) END_TYPE;

<Nombre> debe ser un identificador IEC válido,


<Inttype> es uno de los tipos de datos SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD,
DWORD (PELUSA, ULINT, LWORD).
<ug> Es una constante que debe ser compatible con el tipo básico y que establece el límite inferior
de los tipos de rango. El límite inferior en sí mismo se incluye en este rango.
<og> Es una constante que debe ser compatible con el tipo básico y establece el límite superior de
los tipos de rango. El límite superior en sí mismo se incluye en este tipo básico.

Ejemplos:
TIPO
SubInt : INT (-4095..4095);
END_TYPE
Declaración directa de una variable con un tipo de subrango:
VAR
y : INT (-4095..4095); ui : UINT
(0..10000); END_VAR

Si se asigna una constante a un tipo de subrango (en la declaración o en la implementación) que no


entra en este rango (por ejemplo, 1:=5000), se emite un mensaje de error.
Para comprobar el cumplimiento de los límites de rango en tiempo de ejecución, las funciones CheckRangeSigned
o CheckRangeUnsigned debe introducirse. En estos, las violaciones de límites se pueden capturar
mediante el método y los medios apropiados (por ejemplo, se puede cortar el valor o se puede
establecer un indicador de error). Se les llama implícitamente tan pronto como se escribe una variable
como perteneciente a un tipo de subrango construido a partir de un tipo con signo o sin signo.
Ejemplo:

En el caso de una variable que pertenezca a un tipo de subrango con signo (como i, arriba), se llama a la función
CheckRangeSigned; Podría programarse de la siguiente manera para recortar un valor al rango permitido:
FUNCTION CheckRangeSigned : valor de
VAR_INPUT DINT inferior, superior: DINT;
END_VAR IF (valor < inferior) THEN

CoDeSys V2.3 10-37


Apéndice C: - Tipos de datos en CoDeSys

CheckRangeSigned := inferior;
ELSIF(valor > superior) THEN
CheckRangeSigned := superior;
ELSE CheckRangeSigned := valor;
END_IF

Al llamar la función automáticamente, el nombre de función CheckRangeSigned es obligatorio, al igual


que la especificación de la interfaz: valor devuelto y tres parámetros de tipo DINT
Cuando se llama, la función se parametriza de la siguiente manera:
- value: el valor que se asignará al tipo de rango
- lower: el límite inferior del rango
- upper: el límite superior del rango
- Valor devuelto: es el valor que realmente se asigna al tipo de rango

Una asignación i:=10*y produce implícitamente lo siguiente en este ejemplo:


i := CheckRangeSigned(10*y, -4095, 4095);
Incluso si y, por ejemplo, tiene el valor 1000, entonces i todavía tiene solo el valor 4095 después de esta asignación.
Lo mismo se aplica a la función CheckRangeUnsigned: el nombre de la función y la interfaz deben ser correctos.
FUNCTION CheckRangeUnsigned : Valor de
VAR_INPUT UDINT, inferior, superior: UDINT;
END_VAR

Importante: Si ninguna de las funciones CheckRangeSigned o CheckRangeUnsigned está presente, no se


produce ninguna comprobación de tipos de subrango durante el tiempo de ejecución. ¡La variable i podría tomar
cualquier valor entre – 32768 y 32767 en cualquier momento!

Atención: Si ninguna de las funciones CheckRangeSigned o CheckRangeUnsigned está presente como se


describió anteriormente, puede resultar un bucle sin fin si se usa un tipo de subrango en un bucle FOR . Esto
sucederá cuando el rango dado para el bucle FOR sea tan grande o mayor que el rango del tipo de subrango.

Atención: La función CheckRangeSigned-function proporcionada con la biblioteca Check.Lib es solo una solución
de ejemplo. Antes de usar el módulo de biblioteca, compruebe si la función funciona según lo solicitado para su
proyecto, o implemente una función CheckRange adecuada directamente como una POU en el proyecto.

Ejemplo:
VAR ui : UINT (0..10000);
END_VAR

PARA UI:=0 A 10000 DO ...

END_FOR
El bucle FOR nunca terminará, porque ui no puede ser mayor que 10000.
¡También tenga cuidado con la definición de las funciones CheckRange cuando defina el valor
incremental de un bucle FOR!

10-38 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

Apéndice D: Las Bibliotecas de CoDeSys

10.17 La biblioteca Standard.lib

10.17.1 Funciones de cadena...


Tenga en cuenta: Las funciones de cadena no son "seguras para subprocesos": cuando se usan tareas, las funciones de cadena solo
se pueden usar en una sola tarea. Si se utiliza la misma función en diferentes tareas, existe el peligro de sobrescribirla.

LEN
Devuelve la longitud de una cadena. El STR de entrada es de tipo STRING, el valor devuelto de la función es de tipo
INT.
Ejemplo en IL:
LD 'SUSI' LEN ST VarINT1 (* El resultado es 4 *)

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1 := LEN ('SUSI');

IZQUIERDA
Left devuelve la cadena inicial izquierda de una cadena determinada. El STR de entrada es de tipo
STRING, SIZE es de tipo INT, el valor devuelto de la función es de tipo STRING.
LEFT (STR, SIZE) significa: Tome el primer carácter SIZE de la derecha en la cadena STR.
Ejemplo en IL:
LD 'SUSI' LEFT 3 ST VarSTRING1 (* El resultado es 'SUS' *)

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1 := IZQUIERDA('SUSI',3);

DERECHA
Right devuelve la cadena inicial derecha de una cadena determinada.
RIGHT (STR, SIZE) significa: Tome el primer carácter SIZE de la derecha en la cadena STR.
El STR de entrada es de tipo STRING, SIZE es de tipo INT, el valor devuelto de la función es de tipo STRING.
Ejemplo en IL:
LD 'SUSI'

CoDeSys V2.3 10-39


Apéndice D: - Las Bibliotecas de CoDeSys

RIGHT 3 ST VarSTRING1 (* El resultado es 'USI' *)

Ejemplo en FBD:

Ejemplo en ST:
VARSTRING1 := DERECHA ('SUSI',3);

MEDIO
Mid devuelve una cadena parcial desde dentro de una cadena.
El STR de entrada es de tipo STRING, LEN y POS son de tipo INT, el valor devuelto de la función es de tipo
CUERDA.
MID (STR, LEN, POS) significa: Recupera caracteres LEN de la cadena STR que comienza con el
carácter en la posición POS.
Ejemplo en IL:
LD 'SUSI' MID 2,2 ST VarSTRING1 (* El resultado es 'US' *)

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1 := MID ('SUSI',2,2);

CONCAT
Concatenación (combinación) de dos cadenas.
Las variables de entrada STR1 y STR2, así como el valor devuelto de la función, son de tipo STRING.
Ejemplo en IL:
LD 'SUSI' CONCAT 'WILLI' ST VarSTRING1 (* El resultado es 'SUSIWILLI' *)

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1 := CONCAT ('SUSI','WILLI');

Tenga en cuenta: La función CONCAT no funciona si está anidada en más de cinco niveles.

10-40 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

INSERTAR
INSERT inserta una cadena en otra cadena en un punto definido.
Las variables de entrada STR1 y STR2 son de tipo STRING, POS es de tipo INT y el valor de retorno
de la función es de tipo STRING.
INSERTAR (STR1, STR2, POS) significa: inserte STR2 en STR1 después de la posición POS.
Ejemplo en IL:
LD 'SUSI' INSERTA 'XY',2 ST VarSTRING1 (* El resultado es 'SUXYSI' *)

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1 := INSERTAR ('SUSI','XY',2);

BORRAR
DELETE quita una cadena parcial de una cadena más grande en una posición definida.
La variable de entrada STR es de tipo STRING, LEN y POS son de tipo INT, el valor de retorno de la
función es de tipo STRING.
DELETE(STR, L, P) significa: Eliminar caracteres L de STR comenzando con el carácter en la posición
P.
Ejemplo en IL:
LD 'SUXYSI' DELETE 2,3 ST Var1 (* El resultado es 'SUSI' *)

Ejemplo en FBD:

Ejemplo en ST:
var1 := ELIMINAR ('SUXYSI',2,3);

REEMPLAZAR
REPLACE reemplaza una cadena parcial de una cadena más grande por una tercera cadena.
Las variables de entrada STR1 y STR2 son de tipo STRING, LEN y POS son de tipo INT, el valor de
retorno de la función es de tipo STRING.
REPLACE(STR1, STR2, L, P) significa: Reemplace los caracteres L de STR1 con STR2 comenzando
con el carácter en la posición P.
Ejemplo en IL:
LD 'SUXYSI' REEMPLAZA 'K',2,2 ST VarSTRING1 (* El resultado es 'SKYSI' *)

CoDeSys V2.3 10-41


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en FBD:

Ejemplo en ST:
VarSTRING1: = REPLACE (SUXYSI,'K,2,2);

ENCONTRAR
FIND busca una cadena parcial dentro de una cadena.
Las variables de entrada STR1 y STR2 son de tipo STRING, el valor de retorno de la función es de tipo STRING.
FIND(STR1, STR2) significa: Encuentre la posición del primer carácter donde STR2 aparece en STR1
por primera vez. Si STR2 no se encuentra en STR1, entonces OUT:=0.
Ejemplo en IL:
LD 'abcdef' FIND 'de' ST VarINT1 (* El resultado es '4' *)

Ejemplo en FBD:

Ejemplo en ST:
VarINT1 := FIND('abcdef','de');

10.17.2 Bloques de función biestables...

SR
Hacer que los bloques de funciones biestables sean dominantes:
Q1 = SR (SET1, RESET) significa:
Q1 = (NO SE RESTABLECE Y Q1) O SET1
Las variables de entrada SET1 y RESET, así como la variable de salida Q1 son de tipo BOOL.
Ejemplo de declaración:
SRInst : SR ;
Ejemplo en IL:
CAL SRInst(SET1 := VarBOOL1, RESET := VarBOOL2) LD SRInst.Q1 ST VarBOOL3

Ejemplo en FBD:

10-42 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en ST:
SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 ); VarBOOL3 := SRInst.Q1 ;

RS
Restablecimiento de bloques de función biestables
Q1 = RS (SET, RESET1) significa:
Q1 = NO RESET1 Y (Q1 O SET)
Las variables de entrada SET y RESET1, así como la variable de salida Q1 son de tipo BOOL.
Ejemplo de declaración:
RSInst : RS ;
Ejemplo en IL:
CAL RSInst(SET:= VarBOOL1,RESET1:=VarBOOL2) LD RSInst.Q1 ST VarBOOL3

Ejemplo en FBD:

Ejemplo en ST:
RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 ); VarBOOL3 := RSInst.Q1 ;

SEMA
Un semáforo de software (interrumpible)
OCUPADO = SEMA(RECLAMO, LIBERACIÓN) significa:
OCUPADO := X; IF CLAIM THEN X:=TRUE; DE LO CONTRARIO, SI SE LIBERA, ENTONCES OCUPADO :=
FALSE; X:= FALSO; END_IF

X es una variable BOOL interna que es FALSE cuando se inicializa. Las variables de entrada CLAIM y
RELEASE, así como la variable de salida BUSY son de tipo BOOL.
Si BUSY es TRUE cuando se llama a SEMA, esto significa que ya se ha asignado un valor a SEMA
(SEMA se llamó con CLAIM = TRUE). Si BUSY es FALSE, SEMA aún no se ha llamado o se ha
liberado (se ha llamado con RELEASE = TRUE).
Ejemplo de declaración:
EMAInst: SEMA;
Ejemplo en IL:
CAL SEMAInst(CLAIM:=VarBOOL1,RELEASE:=VarBOOL2) LD SEMAInst.BUSY ST VarBOOL3

Ejemplo en FBD:

CoDeSys V2.3 10-43


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en ST:
SEMAInst(CLAIM:= VarBOOL1 , RELEASE:=VarBOOL2 );
VarBOOL3 := SEMAInst.BUSY;

10.17.3 Disparador...
R_TRIG
El bloque de función R_TRIG detecta un flanco ascendente.
FUNCTION_BLOCK R_TRIG VAR_INPUT CLK : BOOL; END_VAR VAR_OUTPUT

Q: BOOL; END_VAR VAR

M: BOOL := FALSO; END_VAR

Q:= CLK Y NO M;
M:= CLK;
La salida Q y la variable de ayuda M permanecerán FALSE mientras la variable de entrada CLK sea
FALSE. Tan pronto como CLK devuelva TRUE, Q devolverá primero TRUE, luego M se establecerá en
TRUE. Esto significa que cada vez que se llama a la función, Q devolverá FALSE hasta que CLK tenga
flanco descendente seguido de un flanco ascendente.
Ejemplo de declaración:
RTRIGInst : R_TRIG ;
Ejemplo en IL:
CAL RTRIGInst(CLK := VarBOOL1) LD RTRIGInst.Q ST VarBOOL2

Ejemplo en FBD:

Ejemplo en ST:
RTRIGInst(CLK:= VarBOOL1);
VarBOOL2 := RTRIGInst.Q;

F_TRIG
El bloque de función F_TRIG un flanco descendente.
FUNCTION_BLOCK F_TRIG VAR_INPUT CLK: BOOL; END_VAR VAR_OUTPUT P: BOOL; END_VAR

VAR

10-44 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

M: BOOL := FALSO; END_VAR

Q:= NO CLK Y NO M;
M:= NO CLK;
La salida Q y la variable de ayuda M permanecerán FALSE mientras la variable de entrada CLK
devuelva TRUE. Tan pronto como CLK devuelva FALSE, Q devolverá primero TRUE, luego M se
establecerá en TRUE. Esto significa que cada vez que se llama a la función, Q devolverá FALSE hasta
que CLK tenga un flanco ascendente seguido de un flanco descendente.
Ejemplo de declaración:
FTRIGInst : F_TRIG ;
Ejemplo en IL:
CAL FTRIGInst(CLK := VarBOOL1) LD FTRIGInst.Q ST VarBOOL2

Ejemplo en FBD:

Ejemplo en ST:
FTRIGInst(CLK:= VarBOOL1);
VarBOOL2 := FTRIGInst.Q;

10.17.4 Contador...

CTU
Incrementador de bloque de funciones:
Las variables de entrada CU y RESET, así como la variable de salida Q son de tipo BOOL, la variable
de entrada PV y la variable de salida CV son de tipo WORD.
La variable de contador CV se inicializará con 0 si RESET es TRUE. Si CU tiene un flanco ascendente
de FALSO a VERDADERO, CV se elevará en 1.Q devolverá VERDADERO cuando CV sea mayor o
igual que el límite superior PV.
Ejemplo de declaración:
CTUInst : CTU ;
Ejemplo en IL:
CAL CTUInst(CU := VarBOOL1, RESET := VarBOOL2, PV := VarINT1) LD CTUInst.Q ST VarBOOL3 LD
CTUInst.CV ST VarINT2

Ejemplo en FBD:

CoDeSys V2.3 10-45


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en ST:
CTUInst(CU:= VarBOOL1, RESET:=VarBOOL2 , PV:= VarINT1);
VarBOOL3 := CTUInst.Q ; VarINT2 := CTUInst.CV;

CTD
Decimetre de bloque de funciones:
Las variables de entrada CD y LOAD, así como la variable de salida Q son de tipo BOOL, la variable de
entrada PV y la variable de salida CV son de tipo WORD.
Cuando LOAD_ es TRUE, la variable de contador CV se inicializará con el límite superior PV. Si CD
tiene un flanco ascendente de FALSO a VERDADERO, CV se reducirá en 1 siempre que CV sea
mayor que 0 (es decir, no haga que el valor caiga por debajo de 0).
Q devuelve TRUE cuando CVes igual a 0.
Ejemplo de declaración:
CTDInst : CTD ;
Ejemplo en IL:
CAL CTDInst(CD := VarBOOL1, LOAD := VarBOOL2, PV := VarINT1) LD CTDInst.Q ST VarBOOL3 LD CTDInst.CV ST
VarINT2

Ejemplo en FBD:

Ejemplo en ST:
CTDInst(CD:= VarBOOL1, CARGA:=VarBOOL2 , PV:= VarINT1);
VarBOOL3 := CTDInst.Q ; VarINT2 := CTDInst.CV;

CTUD (en inglés)


Incrementador/Decredentor de bloques de función
Las variables de entrada CU, CD, RESET, LOAD así como las variables de salida QU y QD son de tipo
BOOL, PV y CV son de tipo WORD.
Si RESET es válido, la variable de contador CV se inicializará con 0. Si LOAD es válido, CV se
inicializará con PV.
Si CU tiene un flanco ascendente de FALSO a VERDADERO, CV se elevará en 1. Si CD tiene un flanco ascendente de
FALSO a VERDADERO, CV se reducirá en 1 siempre que esto no haga que el valor caiga por debajo de 0.

QU devuelve TRUE cuando CV se ha vuelto mayor o igual que PV.


QD devuelve TRUE cuando CV se ha vuelto igual a 0.
Ejemplo de declaración:
CTUDInst : CUTD ;
Ejemplo en IL:
CAL CTUDInst(CU:=VarBOOL2, RESET:=VarBOOL3, LOAD:=VarBOOL4, PV:=VarINT1) LD
CTUDInst.Q ST VarBOOL5 LD CTUDInst.QD ST VarBOOL5 LD CTUInst.CV ST VarINT2

10-46 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en FBD:

Ejemplo en ST:
CTUDInst(CU := VarBOOL1, CU:= VarBOOL2, RESET := VarBOOL3, LOAD:=VarBOOL4 , PV:= VarINT1);
VarBOOL5 := CTUDInst.QU ; VarBOOL6 := CTUDInst.QD ;

VarINT2 := CTUDInst.CV;

10.17.5 Temporizador...

Papel higiénico
El bloque de funciones Temporizador es un disparador. TP(IN, PT, Q, ET) significa:
IN y PT son variables de entrada de los tipos BOOL y TIME respectivamente. Q y ET son variables de
salida de los tipos BOOL y TIME, respectivamente. Si IN es FALSE, Q es FALSE y ET es 0.
Tan pronto como IN se convierta en TRUE, el tiempo comenzará a contarse en milisegundos en ET
hasta que su valor sea igual a PT. A continuación, se mantendrá constante.
Q es VERDADERO ya que desde IN tiene VERDADERO y ET es menor o igual que PT. De lo contrario, es FALSO.

Q devuelve una señal para el período de tiempo dado en PT.


Visualización gráfica de la secuencia de tiempo TP

Ejemplo de declaración:
La camiseta;
Ejemplo en IL:
CAL TPInst(IN := VarBOOL1, PT := T#5s) LD TPInst.Q ST VarBOOL2

CoDeSys V2.3 10-47


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en FBD:

Ejemplo en ST:
TPInst(IN := VarBOOL1, PT:= T#5s); VarBOOL2 :=TPInst.Q;

TONELADA
El bloque de funciones Timer On Delay implementa un retardo de encendido.
TON(IN, PT, Q, ET) significa:
IN y PT son variables de entrada de los tipos BOOL y TIME respectivamente. Q y ET son variables de
salida de los tipos BOOL y TIME, respectivamente. Si IN es FALSE, Q es FALSE y ET es 0.
Tan pronto como IN se convierta en TRUE, el tiempo comenzará a contarse en milisegundos en ET
hasta que su valor sea igual a PT. A continuación, se mantendrá constante.
Q es VERDADERO cuando IN es VERDADERO y ET es igual a PT. De lo contrario, es FALSO.
Por lo tanto, Q tiene un flanco ascendente cuando se ha agotado el tiempo indicado en PT en milisegundos.
Representación gráfica del comportamiento de TON a lo largo del tiempo:

Ejemplo de declaración:
TONInst : TONELADA ;
Ejemplo en IL:
CAL TONInst(IN := VarBOOL1, PT := T#5s) LD TONInst.Q ST VarBOOL2

Ejemplo en FBD:

Ejemplo en ST:
TONInst(IN := VarBOOL1, PT:= T#5s);

10-48 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

TOF
El bloque de función TOF implementa un retardo de desconexión.
TOF(IN, PT, Q, ET) significa:
IN y PT son variables de entrada de tipo BOOL respectivamente TIME. Q y E son variables de salida
de tipo BOOL respectivamente TIME. Si IN es TRUE, las salidas son TRU respectivamente 0.
Tan pronto como IN se convierta en FALSE, en ET el tiempo comenzará a contarse en milisegundos en
ET hasta que su valor sea igual a PT. A continuación, se mantendrá constante.
Q es FALSO cuando IN es FALSO y ET igual a PT. De lo contrario, es VERDADERO.
Por lo tanto, Q tiene un flanco descendente cuando se ha agotado el tiempo indicado en PT en milisegundos.
Representación gráfica del comportamiento de TOF a lo largo del tiempo:

Ejemplo de declaración:
TOFInst : GENIAL ;
Ejemplo en IL:
CAL TOFInst(IN := VarBOOL1, PT := T#5s) LD TOFInst.Q ST VarBOOL2

Ejemplo en FBD:

Ejemplo en ST:
TOFInst(IN := VarBOOL1, PT:= T#5s); VarBOOL2 :=TOFInst.Q;

RTC
El bloque de funciones Runtime Clock devuelve, a partir de una hora determinada, la fecha y la hora actuales.

RTC(EN, PDT, Q, CDT) significa:


EN y PDT son variables de entrada de tipo TIME. Q y CDT son variables de salida de tipo BOOL respectivamente
DATE_AND_TIME. Cuando EN es FALSE, las variables de salida Q y CDT son FALSE respectivamente
DT#1970-01-01-00:00:00.

CoDeSys V2.3 10-49


Apéndice D: - Las Bibliotecas de CoDeSys

Tan pronto como EN se convierte en TRUE, se establece el tiempo de PDT, se cuenta en segundos y
se devuelve en CDT siempre que EN sea TRUE (vea el ejemplo en la imagen de arriba). Tan pronto
como EN se restablece a FALSE, CDT se restablece al valor inicial DT#1970-01-01-00:00:00. Tenga en
cuenta que el tiempo en PDT solo se establece mediante un flanco ascendente.

10.18 La biblioteca Util.lib


Esta biblioteca contiene una colección adicional de varios bloques que se pueden utilizar para la
conversión de BCD, funciones de bits/bytes, funciones auxiliares matemáticas, como controlador,
generadores de señales, manipuladores de funciones y para el procesamiento de valores analógicos.
Como algunas de las funciones y bloques de funciones contienen variables REALES, existe una
biblioteca accesoria llamada UTIL_NO_REAL en la que se excluyen estas POU.

10.18.1 Conversión de BCD


Un byte en formato BCD contiene enteros entre 0 y 99. Se utilizan cuatro bits para cada decimal. El
décimo decimal se almacena en los bits 4-7. Por lo tanto, el formato BCD es similar a la presentación
hexadecimal, con la simple diferencia de que solo los valores entre 0 y 99 se pueden almacenar en un
byte BCD, mientras que un byte hexadecimal va de 0 a FF.
Un ejemplo: el entero 51 debe convertirse al formato BCD. 5 en binario es 0101, 1 en binario es 0001,
lo que hace que el byte BCD sea 01010001, que corresponde al valor $51=81.

BCD_TO_INT
Esta función convierte un byte en formato BCD en un valor INT:
El valor de entrada de la función es de tipo BYTE y el de salida es de tipo INT.
Cuando se debe convertir un byte que no está en formato BCD, la salida es -1.
Ejemplos en ST:
i:=BCD_TO_INT(73); (* El resultado es 49 *) k:=BCD_TO_INT(151); (* El resultado es 97 *)
l:=BCD_TO_INT(15); (* Salida -1, porque no está en formato BCD *)

INT_TO_BCD
Esta función convierte un valor INTEGER en un byte en formato BCD:
El valor de entrada de la función es de tipo INT, la salida es de tipo BYTE.
El número 255 se mostrará donde se debe convertir un valor INTEGER que no se puede convertir en
un byte BCD.
Ejemplos en ST:
i:=INT_TO_BCD(49); (* El resultado es 73 *)
k:=INT_TO_BCD(97); (* El resultado es 151 *)
l:=INT_TO_BCD(100); (* ¡Error! Salida: 255 *)

10.18.2 Funciones de bits/bytes

EXTRAER
Las entradas para esta función son un DWORD X, así como un BYTE N. La salida es un valor BOOL,
que contiene el contenido del enésimo bit de la entrada X, por lo que la función comienza a contar
desde el bit cero.

10-50 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplos en ST:
BANDERA:=EXTRACTO(X:=81, N:=4); (* Resultado: VERDADERO, porque 81 es binario 1010001, por lo que el
4º bit es 1 *) BANDERA:=EXTRACTO(X:=33, N:=0); (* Resultado: VERDADERO, porque 33 es 100001 binario,
por lo que el bit '0' es 1 *)

EMPAQUETAR
Esta función es capaz de devolver ocho bits de entrada B0, B1, ..., B7 del tipo BOOL como BYTE.
El bloque de función UNPACK está estrechamente relacionado con esta función.

PUTBIT
La entrada de esta función consiste en un DWORD X, un BYTE N y un valor BOOLean B. PUTBIT
establece el N-ésimo bit desde X en el valor B, por lo que comienza a contar desde el bit cero.

Ejemplo en ST:
R:=38; (* binario 100110 *) B:=PUTBIT(A,4,TRUE); (* Resultado: 54
= 2#110110 *) C:=PUTBIT(A,1,FALSE); (* Resultado : 36 =
2#100100 *)

DESEMPAQUETAR
UNPACK convierte la entrada B del tipo BYTE en 8 variables de salida B0,...,B7 del tipo BOOL, y esto
es lo contrario a PACK.
Ejemplo en FBD: Salida:

10.18.3 Funciones auxiliares matemáticas

DERIVADO
Este bloque de funciones determina aproximadamente la derivación local.
El valor de la función se entrega como una variable REAL mediante IN. TM contiene el tiempo que ha
pasado en mseg en un DWORD y la entrada de RESET del tipo BOOL permite que el bloque de
función comience de nuevo a través de la entrega del valor TRUE.
La salida OUT es del tipo REAL.
Con el fin de obtener el mejor resultado posible, DERIVATIVE aproxima utilizando los últimos cuatro valores, con
el fin de mantener los errores producidos por imprecisiones en los parámetros de entrada lo más bajo posible.

CoDeSys V2.3 10-51


Apéndice D: - Las Bibliotecas de CoDeSys

Bloque en FBD:99990101000000+00'00'

INTEGRAL
Este bloque de función determina aproximadamente la integral de la función.
De forma análoga a DERIVATIVE, el valor de la función se entrega como una variable REAL mediante
el uso de IN. TM contiene el tiempo que ha transcurrido en mseg en un DWORD y la entrada de
RESET del tipo BOOL permite que el bloque de función comience de nuevo con el valor TRUE.
La salida OUT es del tipo REAL.
La integral se aproxima mediante funciones de dos pasos. El promedio de estos se entrega como la
integral aproximada.
Bloque en FBD:99990101000000+00'00' Ejemplo: Integración de una función lineal:

LIN_TRAFO
Este bloque de funciones (util.lib. transforma un valor REAL, que se encuentra en un rango de valores
definido por un valor límite inferior y superior, en un valor REAL correspondiente que se encuentra en otro
rango también definido por un límite inferior y superior. La siguiente ecuación es la base de la conversión:

(IN - IN_MIN) : (IN_MAX - IN) = (OUT - OUT_MIN) : (OUT_MAX - OUT)

Variables de entrada:

Variable Tipo de dato Descripción

EN REAL Valor de entrada


IN_MIN REAL Límite inferior del rango de valores de entrada
IN_MAX REAL Límite superior del rango de valores de entrada
OUT_MIN REAL Límite inferior del rango de valores de salida
OUT_MAX REAL Límite superior del rango de valores de salida

10-52 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

Variables de salida:

Variable Tipo de dato Descripción

FUERA REAL Valor de salida


ERROR BOOL Se ha producido un error: TRUE, si IN_MIN = IN_MAX o si IN está fuera
del intervalo de valores de entrada especificado

Ejemplo de aplicación:
Un sensor de temperatura proporciona valores de voltios (entrada IN). Estos deben convertirse en valores de
temperatura en grados centígrados (salida OUT). El rango de valores de entrada (voltios) está definido por los límites
IN_MIN=0 y IN_MAX=10. El rango de valores de salida (grados centígrados) está definido por los límites
OUT_MIN=-20 y OUT_MAX=40.
Por lo tanto, para una entrada de 5 voltios, se producirá una temperatura de 10 grados centígrados.

STATISTICS_INT
Este bloque de funciones calcula algunos valores estadísticos estándar:
La entrada IN es del tipo INT. Todos los valores se inicializan de nuevo cuando la entrada BOOLean RESET es
VERDADERO.
La salida MN contiene el valor mínimo, MX del valor máximo de IN. AVG describe el promedio, es
decir, el valor esperado de IN. Las tres salidas son del tipo INT.
Bloque en FBD:99990101000000+00'00'

STATISTICS_REAL
Este bloque de función corresponde a STATISTICS_INT, excepto que la entrada IN es del tipo REAL
como las salidas MN, MX, AVG.

VARIANZA
VARIANCE calcula la varianza de los valores introducidos.
La entrada IN es del tipo REAL, RESET es del tipo BOOL y la salida OUT es de nuevo del tipo
REAL.
Este bloque calcula la varianza de los valores introducidos. VARIANCE se puede restablecer con
RESET=TRUE.
La desviación estándar se puede calcular fácilmente como la raíz cuadrada de la VARIANZA.

CoDeSys V2.3 10-53


Apéndice D: - Las Bibliotecas de CoDeSys

10.18.4 Controladores

PD
La biblioteca util.lib proporciona el siguiente bloque de funciones del controlador PD:

Entradas del bloque de funciones:

Variable Tipo de dato Descripción

REAL REAL Valor actual de la variable controlada


SET_POINT REAL Valor deseado, variable de comando
KP REAL Coeficiente de proporcionalidad, ganancia unitaria de la parte P
TELEVISIÓN REAL Tiempo de acción derivado, ganancia unitaria de la parte D en
segundos, por ejemplo, "0,5" durante 500 mseg
Y_MANUAL REAL Define el valor de salida Y en caso de MANUAL = TRUE
Y_OFFSET REAL Desplazamiento de la variable manipulada Y
Y_MIN, REAL Límite inferior o superior para la variable manipulada Y. Si
Y_MAX Y supera estos límites, el LIMITS_ACTIVE de salida se
establecerá en TRUE e Y se mantendrá dentro del rango
prescrito. Este control solo funcionará si Y_MIN<Y_MAX.
MANUAL BOOL Si es TRUE, la operación manual estará activa, es decir, el
valor manipulado será definido por Y_MANUAL.
RESTABLECIMIENTO BOOL TRUE restablece el controlador; durante la
reinicialización Y = Y_OFFSET.

Salidas del bloque de funciones:

Variable Tipo de dato Descripción

Y REAL Valor manipulado, calculado por el bloque de funciones


(ver más abajo)
LIMITS_ACTIVE BOOL TRUE indica que Y ha superado los límites dados (Y_MIN,
Y_MAX).

Y_OFFSET, Y_MIN y Y_MAX se utilizan para la transformación de la variable manipulada dentro de un


rango prescrito.
MANUAL se puede utilizar para activar y desactivar el funcionamiento manual. RESET sirve para reiniciar el
controlador.

10-54 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

En funcionamiento normal (MANUAL = RESET = LIMITS_ACTIVE = FALSE) el controlador calcula el


error del controlador e como diferencia SET_POINT – REAL, genera la derivación con respecto al
tiempo e/ t y almacena estos valores internamente.
La salida, es decir, la variable manipulada Y, se calcula de la siguiente manera:
Y = KP ( + TV / t) + Y_OFFSET por lo que =SET_POINT-REAL
Por lo tanto, además de la parte P, también el cambio actual del error del controlador (parte D) influye
en la variable manipulada.
Además, Y está limitado en un rango prescrito por Y_MIN y Y_MAX. Si Y supera estos límites,
LIMITS_ACTIVE obtendrá TRUE. Si no se desea ninguna limitación de la variable manipulada, Y_MIN
y Y_MAX deben establecerse en 0.
Mientras MANUAL=TRUE, Y_MANUAL se escribirá en Y.
A puede crear fácilmente un controlador P configurando TV=0.

PID
La biblioteca util.lib proporciona el siguiente bloque de funciones del controlador PID:

A diferencia del controlador PD, este bloque de función contiene una entrada REAL TN adicional para
el tiempo de reajuste en segundos (por ejemplo, "0,5" para 500 mseg).
Entradas del bloque de funciones:

Variable Tipo Descripción


de
dato
REAL REAL Valor actual de la variable controlada
SET_POINT REAL Valor deseado, variable de comando
KP REAL Coeficiente de proporcionalidad, ganancia unitaria de la parte P
TN REAL Tiempo de reinicio, ganancia de unidad recíproca de la
parte I; se da en segundos, por ejemplo, "0,5" durante 500
mseg
TELEVISIÓN REAL Tiempo de acción derivado, ganancia unitaria de la parte D en
segundos, por ejemplo, "0,5" durante 500 mseg
Y_MANUAL REAL Define el valor de salida Y en caso de MANUAL = TRUE
Y_OFFSET REAL Desplazamiento de la variable manipulada Y
Y_MIN, Y_MAX REAL Límite inferior o superior para la variable manipulada Y. Si Y
supera estos límites, el LIMITS_ACTIVE de salida se establecerá
en TRUE e Y se mantendrá dentro del rango prescrito. Este
control solo funcionará si Y_MIN<Y_MAX.
MANUAL BOOL Si es TRUE, la operación manual estará activa, es decir, el

CoDeSys V2.3 10-55


Apéndice D: - Las Bibliotecas de CoDeSys

El valor será definido por Y_MANUAL.


RESTABLECIMIENTO BOOL TRUE restablece el controlador; durante la reinicialización Y = Y_OFFSET.

Salidas del bloque de funciones:

Variable Tipo de dato Descripción

Y REAL Valor manipulado, calculado por el bloque de funciones (ver más abajo)

LIMITS_ACTIVE BOOL TRUE indica que Y ha superado los límites dados (Y_MIN,
Y_MAX).
DESBORDAMIENTO BOOL TRUE indica un desbordamiento (ver más abajo)

Y_OFFSET, Y_MIN und Y_MAX sirven para la transformación de la variable manipulada dentro de un
rango prescrito.
MANUAL se puede utilizar para cambiar a la operación manual; RESET se puede utilizar para reiniciar
el controlador.
En funcionamiento normal (MANUAL = RESET = LIMITS_ACTIVE = FALSE) el controlador calcula el
error del controlador e como diferencia de SET_POINT – REAL, genera la derivación con respecto al
tiempo e/ t y almacena estos valores internamente.
La salida, es decir, la variable manipulada Y, a diferencia del controlador PD, contiene una parte
integral adicional y se calcula de la siguiente manera:
Y = KP ( + 1/TN edt + TV / t) + Y_OFFSET
Por lo tanto, además de la parte P, también el cambio actual del error del controlador (parte D) y el
historial del error del controlador (parte I) influyen en la variable manipulada.
El controlador PID se puede convertir fácilmente en un controlador PI configurando TV=0.
Debido a la parte integral adicional, puede producirse un desbordamiento por una parametrización incorrecta
del controlador, si la integral del error llega a ser demasiado grande. Por lo tanto, en aras de la seguridad,
está presente una salida BOOLean llamada OVERFLOW, que en este caso tendría el valor TRUE. Esto solo
sucederá si el sistema de control es inestable debido a una parametrización incorrecta. Al mismo tiempo, el
controlador se suspenderá y solo se activará de nuevo mediante la reinicialización.

PID_FIXCYCLE
La biblioteca util.lib proporciona el siguiente bloque de función de controlador PID_FIXCYCLE:

Este bloque de función se corresponde funcionalmente con el controlador PID, con la excepción de que
el tiempo de ciclo no se mide automáticamente mediante una función interna, sino que se ajusta
mediante la entrada CYCLE (en segundos).

10-56 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

10.18.5 Generadores de señales...

PARPADEAR
El bloque de función BLINK genera una señal pulsante. La entrada consta de ENABLE del tipo BOOL,
así como de TIMELOW y TIMEHIGH del tipo TIME. La salida OUT es del tipo BOOL.
Si ENABLE se establece en TRUE, BLINK comienza, para establecer la salida para el período de tiempo
TIMEHIGH en TRUE y, a continuación, para establecerla para el período de tiempo TIMELOW en FALSE.
Cuando ENABLE se restablece a FALSE, la salida OUT no se cambiará, es decir, no se generará ningún
otro pulso. Si también desea explícitamente obtener OUT FALSE cuando ENABLE se restablece a FALSE,
puede usar "OUT AND ENABLE" (es decir, agregar un cuadro AND con el parámetro ENABLE) en la salida.

Ejemplo en CFC:

FREQ_MEASURE
Este bloque de funciones mide la frecuencia (media) (Hz) de una señal de entrada booleana. Puede
especificar durante cuántos períodos se debe promediar. Un período es el tiempo entre dos flancos
ascendentes de la señal de entrada.

Variables de entrada:

Variable Tipo de dato Descripción

EN BOOL Señal de entrada


PERÍODOS INT Número de períodos, es decir, los intervalos de tiempo entre los
flancos ascendentes, durante los cuales debe calcularse la frecuencia
media de la señal de entrada. Valores posibles: 1 a 10
RESTABLECIMIENTO
BOOL Restablecimiento de todos los parámetros a 0

Variables de salida:

Variable Tipo de dato Descripción

FUERA REAL frecuencia resultante en [Hz]


VÁLIDO BOOL FALSE hasta que se haya terminado el primer compás, o si el
período > 3*OUT (lo que indica que algo anda mal con las entradas)

GEN
El generador de funciones genera funciones periódicas típicas:
Las entradas son una composición que consta de MODE del tipo de conteo predefinido GEN_MODE,
BASE del tipo BOOL, PERIOD del tipo TIME, de dos valores INT CYCLES y AMPLITUDE y de la
entrada BOOLean RESET.
El MODE describe la función que debe generarse, por lo que los valores de enumeración TRIANGLE y
TRIANGLE_POS entregan dos funciones triangulares, SAWTOOTH_RISE un diente de sierra

CoDeSys V2.3 10-57


Apéndice D: - Las Bibliotecas de CoDeSys

ascendente SAWTOOTH_FALL descendente, RECTANGLE una señal rectangular y SINE y COSINE


el seno y el coseno:

TRIÁNGULO: TRIANGLE_POS:

SAWTOOTH_RISE: SAWTOOTH_FALL:

RECTÁNGULO: SENO:

COSINUS:

BASE define si el período de ciclo está realmente relacionado con un tiempo definido (BASE=TRUE) o
si está relacionado con un número particular de ciclos, es decir, el número de llamadas del bloque de
funciones (BASE=FALSE).
PERIOD o CYCLES define el período de ciclo correspondiente.
AMPLITUD define, de manera trivial, la amplitud de la función a generar.
El generador de funciones se vuelve a poner en 0 tan pronto como RESET=TRUE.
Ejemplo en FBD:

10-58 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

10.18.6 Manipuladores de funciones...

CURVA DE CARACTERES
Este bloque de funciones sirve para representar valores, pieza por pieza, en una función lineal:

IN del tipo INT se alimenta con el valor que se va a manipular. El BYTE N designa el número de puntos
que define la función de presentación. Esta línea característica se genera en un ARRAY P[0..10] con P
del tipo POINT, que es una estructura basada en dos valores INT (X e Y).
La salida consta de OUT del tipo INT, el valor manipulado y BYTE ERR, que indicará un error si es
necesario.
Los puntos P[0].. P[N-1] en el ARRAY debe ordenarse de acuerdo con sus valores X, de lo contrario
ERR recibe el valor 1. Si la entrada IN no está entre P[0]. X y P[N-1]. X, ERR=2 y OUT contiene el valor
límite correspondiente P[0]. Y o P[N-1].Y.
Si N se encuentra fuera de los valores permitidos que están entre 2 y 11, entonces ERR=4.
Ejemplo en ST:
En primer lugar, se debe definir ARRAY P en el encabezado:
VAR...

CHARACTERISTIC_LINE:CHARCURVE; KL:ARRAY[0..10] DE
PUNTO:=(X:=0,Y:=0),(X:=250,Y:=50),
(X:=500,Y:=150),(X:=750,Y:=400),7(((X:=1000,Y:=1000));
CONTADOR:INT; ...

END_VAR
A continuación, suministramos a CHARCURVE, por ejemplo, un valor en constante aumento:
CONTADOR:=CONTADOR+10;
CHARACTERISTIC_LINE(IN:=CONTADOR,N:=5,P:=KL);
El calco posterior ilustra el efecto:

RAMP_INT
RAMP_INT sirve para limitar el ascenso o descenso de la función que se alimenta:
La entrada consiste, por un lado, en tres valores INT: IN, la entrada de función, y ASCEND y
DESCEND, el aumento o disminución máximo para un intervalo de tiempo dado, que está definido por
TIMEBASE del tipo TIME. Establecer RESET en TRUE hace que RAMP_INT se inicialice de nuevo.
La salida OUT del tipo INT contiene el valor de función limitada ascender y descender.
Cuando TIMEBASE se establece en t#0s, ASCEND y DESCEND no están relacionados con el intervalo
de tiempo, pero siguen siendo los mismos.

CoDeSys V2.3 10-59


Apéndice D: - Las Bibliotecas de CoDeSys

Ejemplo en CFC:

RAMP_REAL
RAMP_REAL funciona de la misma manera que RAMP_INT, con la simple diferencia de que las entradas IN,
ASCEND, DESCEND y la salida OUT son del tipo REAL.

10.18.7 Procesamiento de valores analógicos...

HISTÉRESIS
La entrada a este bloque de funciones consta de tres valores INT IN, HIGH y LOW. La salida OUT es de
el tipo BOOL.

Si IN cae por debajo del valor límite LOW, OUT se convierte en TRUE. Si IN supera el límite superior HIGH,
FALSE se entrega.
Un ejemplo ilustrativo:

10-60 CoDeSys V2.3


Apéndice D: - Las Bibliotecas de CoDeSys

LIMITALARM
Este bloque de función especifica si el valor de entrada está dentro de un rango establecido y qué
límites ha violado si lo ha hecho.
Los valores de entrada IN, HIGH y LOW son de tipo INT, mientras que las salidas O, U e IL son de tipo
BOOL.
Si el límite superior HIGH se excede en IN, O se convierte en TRUE, y cuando IN está por debajo de
LOW, U se convierte en TRUE. IL es VERDADERO si IN se encuentra entre LOW y HIGH.
Ejemplo en FBD: Resultado:

10.19 La biblioteca AnalyzationNew.lib


Esta biblioteca proporciona módulos para el análisis de expresiones. Si una expresión compuesta es FALSE, se
pueden evaluar aquellos de sus componentes que se suman a este resultado. En el SFC-Editor, el indicador
SFCErrorAnalyzationTable utiliza esta función implícitamente para el análisis de expresiones en transiciones.

Ejemplo de una expresión:


b O NO(y < x) O NO (NO d Y e)
Las funciones:
Todos los módulos utilizan las siguientes variables:
InputExpr: BOOL, expresión a analizar
DoAnalyze: BOOL, TRUE inicia el análisis
ExpResult: BOOL, valor actual de la expresión
Diferente es la salida del resultado del análisis:
AnalyzeExpression devuelve en una cadena los componentes de la expresión, que se suman al valor
total FALSE. La función AppendErrorString se utiliza para este propósito, separando los componentes
particulares de la cadena de salida mediante caracteres "|".
OutString: STRING, Resultado del análisis, Secuencia de los componentes afectados de la expresión
(por ejemplo, y < x | d)
AnalyseExpressionTable escribe los componentes de la expresión, que se suman al valor total
FALSE, en una matriz. Para cada componente, la estructura ExpressionResult proporciona la
siguiente información: nombre, dirección, comentario, valor (actual).
OutTable: ARRAY [0..15] OF ExpressionResult;
p. ej..

AnalyseExpressionCombined Combina el Funcionalidades de AnalyzeExpression (AnalizarExpresión)


más
AnalyseExpressionTable

CoDeSys V2.3 10-61


Apéndice D: - Las Bibliotecas de CoDeSys

10.20 Bibliotecas del sistema CoDeSys


Nota
Depende del sistema de destino utilizado actualmente qué bibliotecas del sistema son compatibles y se
pueden utilizar en el programa. Para obtener la información correspondiente, consulte el documento
SysLibs_Overview.pdf.

10-62 CoDeSys V2.3


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

Apéndice E: Descripción general de los operadores y los módulos de biblioteca


La siguiente tabla muestra una descripción general de los operadores, que están disponibles en
CoDeSys o en las bibliotecas Standard.lib y Util.lib. Allí se encuentra la notación para ST e IL. Para IL
también se enumeran los modificadores admitidos.
Tenga en cuenta que para la columna 'Operador IL': Solo se mostrará la línea en la que se utiliza el
operador. Un requisito previo es que el (primer) operando requerido se haya cargado correctamente en
la línea anterior (por ejemplo, LD in).
El 'Mod. La columna IL' muestra los posibles modificadores en IL:

C El comando sólo se ejecuta si el resultado de la expresión anterior es TRUE.


N para JMPC, CALC, RETC: El comando solo se ejecuta si el resultado de la expresión anterior
es FALSE.
N en caso contrario: negación del operando (no del acumulador)
(Operador encerrado entre paréntesis: solo después de alcanzar el soporte de cierre se llevará a
cabo la operación que precede a los paréntesis.

Por favor, obtenga una descripción detallada del uso en los Apéndices correspondientes relativos a los
operadores IEC integrados en CoDeSys o en las bibliotecas.

10.21 Operadores en CoDeSys


en ST en AWL Mod. Descripción
AWL

' .. Delimitadores de cadena (por ejemplo, 'string1')


[ Tamaño del rango de matriz (por ejemplo, ARRAY[0..3]
]: OF INT)
Delimitador entre Operando y Tipo en una
declaración (por ejemplo, var1 : INT;)

; Terminación de la instrucción (por ejemplo, a:=var1;)

^ Puntero desreferenciado (por ejemplo, pointer1^)

LD var1 N Valor de carga de var1 en el búfer

:= ST var1 N Almacenar el resultado real en var1

S boolvar Establezca boolvar de operando booleano


exactamente en TRUE, cuando el resultado real sea
TRUE
R boolvar Establezca boolvar el operando booleano
exactamente en FALSE, cuando el resultado real sea
TRUE
Etiqueta JMP CN Saltar a la etiqueta

<Nombre del programa> CAL prog1 CN Llame al programa prog1

<Nombre de la instancia> CAL inst1 CN Instancia de bloque de función de llamada inst1

<Fctname>(vx, tú,..) <Fctname> vx, CN Llame a la función fctname y transmita las variables vx, vy

( El valor que sigue al corchete se maneja como un


operando, la operación antes del corchete no se
ejecuta antes de la expresión entre corchetes.

CoDeSys V2.3 10-63


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

en ST en AWL Mod. Descripción


AWL

) Ahora ejecute la operación que se ha retrasado

Y Y N,( Bit a bit AND

O O N,( Bit a bit OR

XOR XOR N,( Exclusivo bit a bit OR

NO NO Bitweise NO

+ AGREGAR ( Adición

- SUB ( Resta

* MUL ( Multiplicación

/ DIV ( División

> GT ( Mayor que

>= GE ( Mayor o igual

= EQ ( Igual

<> NE ( No es igual

<= LE ( Menor o igual

< LT ( Menos de

MOD(en) MOD División Módulo

INDEXOF(en) ÍNDICE DE Índice interno de POU en1; [INT]

TAMAÑODE(pulgadas) TAMAÑODE Número de bytes necesarios para el tipo de datos


dado de in

SHL (K, en) SHL Desplazamiento bit a la izquierda del operador en K

SHR(K,en) SHR Desplazamiento a la derecha bit a bit del operador en K

ROL(K,in) ROL Rotación bit a bit a la izquierda del operador en por K

ROR(K,in) ROR Rotación bit a bit a la derecha del operador en por K

SEL (G, in0, in1) SEL Selección binaria entre 2 operandos in0 (G es
FALSE) e in1 (G es TRUE)

MÁX. (en0, pulgada) MÁXIMO Devuelve el mayor de 2 valores

MIN (en0,in1) MIN Devuelve el menor de los 2 valores in0 e in1

LÍMITE (MIN, IN, Max) LÍMITE Limita el rango de valores (in se vuelve a establecer
en MIN o MAX en caso de exceder el rango)

MUX(C,in0,... in_n) MUX Selecciona el valor K-ésimo de un grupo de valores


(in0 a In_n)

ADR(en) ADR Dirección del operando en [DWORD]

ADRINST() ADRINST() Dirección de la instancia del bloque de funciones


desde la que se llama a ese operador.

BITADR(en) BITADR Desplazamiento de bits del operando en [DWORD]

BOOL_TO_<tipo>(pulgadas)
BOOL_TO_<tipo> Conversión de tipos del operando booleano

10-64 CoDeSys V2.3


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

en ST en AWL Mod.
PUNZÓN
Descripción

<tipo>_TO_BOOL(pulgadas)<tipo>_TO_BOOL Conversión de tipos a BOOL

INT_TO_<tipo>(pulgadas) INT_TO_<tipo> Conversión de tipos de un operando INT a otro tipo


elemental

REAL_TO_<tipo>(pulgadas)REAL_TO_<tipo> Conversión de tipos de un operando REAL a otro


tipo elemental

LREAL_TO_<tipo>(pulgadas)LREAL_TO_<tipo> Conversión de tipos de un operando LREAL a otro


tipo elemental

TIME_TO_<tipo>(pulgadas)TIME_TO_<tipo> Conversión de tipos de un operando TIME a otro


tipo elemental

TOD_TO_<tipo>(pulgadas) TOD_TO__<tipo> Conversión de tipos de un operando TOD a otro


tipo elemental

DATE_TO_<tipo>(pulgadas)DATE_TO_<tipo> Conversión de tipos de un operando DATE a otro


tipo elemental

DT_TO_<tipo>(pulgadas) DT_TO_<tipo> Conversión de tipos de un operando DT a otro tipo


elemental

STRING_TO_<tipo>(pulgadas)
STRING_TO_<tipo> Conversión de tipos de un operando de cadena a
otro tipo elemental, en debe contener un valor
válido del tipo deseado

TRUNC(in) TRUNC Conversión de REAL a INT

ABS (pulgadas) ABS Valor absoluto del operando en

SQRT(en) SQRT Raíz cuadrada del operando en

LN(en) EN Logaritmo neperiano del operando en

INICIAR SESIÓN(en) REGISTRO Logaritmo del operando en, base 10

EXP(in) EXP Función exponencial del operando en

SIN(en) PECADO Seno del operando en

COS(en) COS Coseno del operando en

TAN(in) BRONCEADO Tangente del operando en

ASIN (en) ASIN Seno de arco del operando en

ACOS(en) ACOS Coseno de arco del operando en

ATAN(en) ATAN Arco tangente del operando en

EXPT(in,expt) EXPT expt Exponentación del operando en con expt

CoDeSys V2.3 10-65


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

10.22 Elementos de Standard.lib:


en ST en AWL Descripción

LEN(in) LEN Longitud de cadena del operando en

IZQUIERDA (str, tamaño) IZQUIERDA Cadena inicial izquierda del tamaño dado de la cadena str

DERECHA (str, tamaño) DERECHA Cadena inicial derecha del tamaño dado de la cadena str

MID(str, tamaño, pos) MEDIO Cadena parcial de str de tamaño dado en la posición pos

CONCAT('str1','str2') CONCAT 'str2' Concatenación de dos cadenas sucesivas

INSERT('str1','str2',pos) INSERTAR 'str2',p Inserte la cadena str1 en la cadena str2 en la posición pos

DELETE('str1',len,pos) DELETE len,pos Eliminar la cadena parcial (longitud len), comenzar en la posición pos de str1

REPLACE('str1','str2',len,pos) REEMPLAZAR Reemplace la cadena parcial de longitud len por str2,


'str2',len,pos comience en la posición pos de str1

FIND('str1','str2') BUSCAR 'str2' Buscar cadena parcial str2 en str1

SR SR El FB biestable se establece dominante

RS RS El FB biestable se retrasa

SEMA SEMA FB: Software Semaphor (interrumpible)

R_TRIG R_TRIG FB: se detecta el flanco ascendente

F_TRIG F_TRIG FB: se detecta la caída del flanco

CTU CTU FB: Cuenta upv

CTD CTD FB: Cuenta regresiva

CTUD (en inglés) CTUD (en inglés) FB: Cuenta hacia arriba y hacia abajo

Papel higiénico Papel higiénico FB: disparador

TONELADA TONELADA FB: Retardo de encendido del temporizador

TOF TOF FB: Retardo de apagado del temporizador

RTC RTC FB: Reloj en tiempo real

10.23 Elementos de Util.lib


BCD_TO_INT Conversión de un Byte: BCD a formato INT

INT_TO_BCD Conversión de un byte: formato INT a BCD

ÚTDRÁTTUR (í,n) El n-ésimo bit de DWORD en se devuelve en BOOl

EMPAQUETAR Se empaquetan hasta 8 bits en un byte

PUTBIT A poco de DWORD se establece en un valor determinado

DESEMPAQUETAR A byte se devuelve como bits individuales

DERIVADO Derivación local

10-66 CoDeSys V2.3


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

INTEGRAL Integral

LIN_TRAFO Transformación de valores REALES

STATISTICS_INT Min.,Max, Valores medios en formato INT

STATISTICS_REAL Mín., Máx., Promedio en formato REAL

VARIANZA Varianza

PD Controlador PD

PID Controlador PID


PARPADEAR Señal pulsante

FREQ_MEASURE Frecuencia de medición de la señal de entrada booleana

GEN Funciones periódicas


CURVA DE CARACTERES Funciones lineales

RAMP_INT Limitación de la ascendencia de la descendencia de la función que se alimenta (INT)

RAMP_REAL Limitación de la ascendencia de la descendencia de la función que se alimenta (REAL)

HISTÉRESIS Histéresis

LIMITALARM Observa si el valor de entrada supera los límites de un rango definido

CoDeSys V2.3 10-67


Apéndice E: - Descripción general de los operadores y los módulos de biblioteca

10-68 CoDeSys V2.3


Apéndice F: - Línea de comandos/archivo de comandos

Apéndice F: Línea de comandos/archivo de comandos

10.24 Comandos de línea de comandos


Cuando se inicia CoDeSys, puede agregar comandos en la línea de comandos que se afirmarán
durante la ejecución del programa. Estos comandos comienzan con un "/". No se tiene en cuenta el uso
de mayúsculas o minúsculas. Los comandos se ejecutarán secuencialmente de izquierda a derecha.

/en línea Inmediatamente después del inicio, CoDeSys intenta conectarse con el proyecto actual.

/lote CoDeSys se inicia sin interfaz de usuario y devuelve el código de error del primer
error o el valor devuelto del primer comando que se termina con una advertencia.
CoDeSys finalizará inmediatamente después de que se haya procesado el archivo
de comandos. El procesamiento del archivo de comandos se cancelará tan pronto
como se procese el primer comando con un error. Las advertencias no finalizan el
procesamiento. Si no se producen errores ni advertencias, el valor devuelto es
S_OK. El valor devuelto siempre se codifica como HRESULT.

/correr Después de iniciar sesión, CoDeSys inicia el programa


de aplicación. Solo válido en combinación con /online.

/show ... Se pueden realizar ajustes para la ventana de marco de CoDeSys.


/show hide La ventana no se mostrará, tampoco estará representada en el menú de
tareas.
/mostrar icono
La ventana se minimizará en la pantalla.
/mostrar
máximo La ventana se maximizará en la pantalla.
/mostrar normal La ventana se mostrará en el mismo estado que durante el último cierre.

/out <outfile> Todos los mensajes se muestran en la ventana de mensajes y, además, se


escriben en el archivo <outfile>.
/noinfo No hay pantalla de bienvenida al inicio de CoDeSys
/userlevel <grupo> Definición del grupo de usuarios (por ejemplo, "/userlevel 0" para el grupo de usuarios 0)

/password <contraseña> Introducción directa de la contraseña del grupo de usuarios (por ejemplo, "/password abc")

/openfromplc Se cargará el proyecto que está disponible actualmente en el sistema de


destino conectado.
/visudownload Si CoDeSys HMI se inicia con un proyecto que no coincide con el proyecto
actualmente disponible en el sistema de destino, se ofrecerá una descarga.
(Diálogo, se cerrará con SÍ o NO).
/notargetchange Un cambio del sistema de destino solo se puede realizar a través de un
archivo de comandos. Véase el capítulo 10.25, comando "objetivo...".
/cmd <cmdfile> Después de iniciar los comandos del <cmdfile> se ejecutan.

Tenga en cuenta la siguiente sintaxis para una línea de comandos:


"<Ruta del archivo CoDeSys-exe>" "<Ruta del proyecto>" /<comando1> /<comando2> ....
Ejemplo de una línea de comandos:

El proyecto ampel.pro se abre, pero no se abre ninguna ventana. Se ejecutarán los comandos incluidos
en el archivo de comandos command.cmd. Coloque comillas dobles alrededor de un trazado.
"D:\dir1\codesys" "C:\projects\ampel.pro" /show hide /cmd command.cmd

CoDeSys V2.3 10-69


Apéndice F: - Línea de comandos/archivo de comandos

10.25 Comandos del archivo de comandos (cmdfile)


Consulte la tabla siguiente para obtener una lista de comandos que se pueden usar en un archivo de comandos
(<cmdfile>). El archivo de comandos se puede llamar mediante una línea de comandos (ver arriba). No hay
distinción entre mayúsculas y minúsculas. La línea de comandos se mostrará como un mensaje en la ventana de
mensajes y se puede dar en un archivo de mensajes (ver más abajo), excepto que el comando tiene el prefijo "@".

Todos los signos después de un punto y coma (;) serán ignorados (comentario). Los parámetros que contienen
espacios en blanco deben ir entre comillas. Las diéresis solo se pueden usar si el archivo de comandos se crea en
código ANSI. Las palabras clave se pueden utilizar en los parámetros del comando. Una lista de las palabras clave
que encontrará después de las siguientes tablas de descripciones de comandos.

Comandos para controlar los comandos posteriores:

onError continuar Los comandos posteriores se ejecutarán incluso si se produce un error.


Ruptura onError Los comandos posteriores ya no se ejecutarán si se ha detectado un
error.

Comandos del menú en línea:

Inicio de sesión en línea Inicie sesión con el proyecto cargado ('Inicio de sesión en línea')
Cierre de sesión en línea Cerrar sesión ('En línea', 'Cerrar sesión')
Carrera en línea Inicio del programa de aplicación ('En línea', 'Ejecutar')
Parada en línea Programa de aplicación de parada ('En línea', 'Detener')
Proyecto de arranque en línea Creación de un proyecto de arranque. ¡Este comando se puede aplicar
en modo fuera de línea y en línea! (Véase también el capítulo 4.6
descripción sobre el comando 'Online' 'Create Bootproject'!)
Código fuente en líneaDescargar Descarga del código fuente del proyecto al PLC ('Online' 'Descarga del
código fuente')
En línea Sí Activar el modo de simulación ('Online', 'Simulation')
SIM en línea desactivada Desactivar el modo de simulación ('Online', 'Simulation')

Comandos del menú de archivos:

Archivo nuevo Se crea un nuevo proyecto ('Archivo' 'Nuevo')


Archivo abierto <ProjectFile> Se cargará el proyecto <projectfile> ('Archivo', 'Abrir')
posibles adiciones:

/readpwd:<readpassword> La contraseña para el acceso de lectura se proporciona aquí para


que no aparezca ningún cuadro de diálogo solicitando la contraseña
cuando se abra el proyecto protegido contra lectura.
/writepwd:<writepassword> Aquí se proporciona la contraseña para el acceso completo, de modo que no aparecerá
ningún cuadro de diálogo solicitando la contraseña cuando se abra el proyecto.

Cierre de archivo El proyecto actual se cerrará ('Archivo', 'Cerrar')


Guardar archivo El proyecto actual se almacenará ('Archivo', 'Guardar')
Archivo Savecomo <ProjectFile> El proyecto actual se guardará con el nombre de archivo <projectfile>
Opcionalmente, agregue: ('Archivo' 'Guardar como') Predeterminado: El proyecto se guardará
<type><version> como <projectfile>.pro en la versión actual de CoDeSys. Si desea
guardar el proyecto como una biblioteca interna o externa o como
proyecto para una versión anterior de CoDeSys, agregue el atributo

10-70 CoDeSys V2.3


Apéndice F: - Línea de comandos/archivo de comandos

comando respectivo: Posibles entradas para <type>: "internallib"


Guardar como biblioteca interna: "externallib" Guardar como
biblioteca externa: "pro" Guardar como proyecto para versiones
anteriores: entradas válidas para <Versión>: 15, 20, 21, 22
(versiones de producto 1.5, 2.0, 2.1, 2.2) Ejemplo: "archivo guardar
como lib_xy internallib22" -> El proyecto "project xy.pro", que se crea
en la versión actual de CoDeSys, se guardará como "lib_xy.lib" para
V2.2.

Archivo Savecomo <ProjectFile> El proyecto actual se guardará con el nombre de archivo <projectfile>
('Archivo', 'Guardar como')
file printersetup <filename>.dfr Defina un archivo de marco de documento ('Archivo' Configuración de la
Opcionalmente, agregue: impresora') y, opcionalmente, defina una de las opciones de impresión
'Nueva página por objeto' o 'Nueva página por subobjeto'; Estos ajustes
pageperobject o
afectan a la impresión del documento (documentación del proyecto,
pagepersubject véase más abajo)
archivo de archivo <nombre de El proyecto se archivará en un archivo zip con el nombre de archivo
archivo>.zip dado ('Archivo' Guardar/Archivo de correo')
Cierre de archivo CoDeSys se cerrará ('Archivo', 'Salir')

Comandos del menú del proyecto:

Construcción de proyectos El proyecto que se carga se compilará de forma incremental


('Proyecto', 'Compilar')
Recompilación de El proyecto que se carga se compilará en su totalidad ('Proyecto', 'Reconstruir')
proyectos o compilación
de proyectos

Proyecto Limpio Se eliminará la información de compilación y la información de


cambios en línea en el proyecto actual ('Proyecto', 'Proyecto limpio')
Comprobación del proyecto Se comprobará el proyecto que se carga ('Proyecto', 'Comprobar todo')
Compilación de proyectos El proyecto actual será compilado por "Reconstruir todo" ('Proyecto'
'Reconstruir todo')
Comprobación del proyecto Se comprobará el proyecto actual ('Proyecto', 'Comprobar')
Construcción de proyectos Se construirá el proyecto actual ('Projekt', 'Build')
Innflutningur verkefnis Los archivos <file1> ... <fileN> se importan al proyecto actual
<file1> ... <archivoN> ('Proyecto', 'Importar'). Respecto: Se pueden usar comodines, por
ejemplo, "project import C:\projects\*.exp" importará todos los archivos
con extensión *.exp que se encuentran en el directorio C:\projects.
Útflutningur verkefna <expfile> El proyecto actual se exportará en el archivo <expfile>
('Proyecto', 'Exportar')
Expmul del proyecto Cada objeto del proyecto actual se exportará en un archivo
propio, que recibe el nombre del objeto.
Documentación del proyecto Todo el proyecto se imprimirá en la impresora predeterminada ('Proyecto'
'Documentación', consulte también más arriba "configuración de la impresora de
archivos")

CoDeSys V2.3 10-71


Apéndice F: - Línea de comandos/archivo de comandos

Comandos para el control del archivo de mensajes:

út opnaðu <msgfile> El archivo <msgfile> se abre como archivo de mensaje. Se anexarán


nuevos mensajes
Salir de cerca Se cerrará el archivo de mensaje que se muestra actualmente.
Fuera claro Se eliminarán todos los mensajes del archivo de mensajes abierto actualmente.

Comandos para el control de mensajes:

eco activado Las líneas de comando se mostrarán como mensajes.


Eco apagado Las líneas de comando no se mostrarán como mensajes.
echo <texto> <texto> se mostrará en la ventana de mensajes.

Comandos para el control de reemplazo de objetos respectivamente para el control de archivos para
importación, exportación, copia:

Reemplazar yesall Reemplazar todo (cualquier comando de 'consulta activada' será


ignorado; no se abrirá ningún diálogo)
Reemplace Noall Reemplace none (cualquier comando de 'consulta en' será
ignorado; no se abrirá ningún diálogo)
Reemplazar consulta Si se establece un comando 'consulta en', se abrirá un cuadro de
diálogo con respecto al reemplazo de los objetos, incluso si hay un
comando 'reemplazar yesall' o 'reemplazar noall'

Comandos para el control de los parámetros predeterminados de los diálogos de CoDeSys:

Consulta en Los cuadros de diálogo se muestran y necesitan la entrada del usuario


Consulta desactivada Aceptar Todos los diálogos responden como si el usuario hubiera hecho clic en el botón "Aceptar"

Consulta desactivada No Todos los diálogos responden como si el usuario hubiera hecho clic en el botón "No"

Consulta desactivada Cancelar Todos los diálogos responden como si el usuario hubiera hecho clic en el botón "Cancelar"

Comando para llamar a archivos de comandos como subprogramas:

Llame a Los archivos de comandos se llamarán como subprogramas. Se


<parameter1> ... pueden pasar hasta 10 parámetros. En el archivo al que se llama, se
<parámetro10> puede acceder a los parámetros con $0 - $9.
Llame a Los archivos de comandos se llaman como subrutinas. Se pueden
<parameter1> ... consignar hasta diez parámetros. En la subrutina llamada se puede
<parámetro10> acceder a los parámetros usando $0 - $9.

Configuración de los directorios utilizados por CoDeSys (-> diálogo de opciones del proyecto, categoría
'Directorios', subcategoría 'General'): Si se definen varios directorios con uno de los siguientes
comandos, estos deben estar separados por un punto y coma + espacio vacío y toda la fila de
directorios debe estar abrazada por comillas dobles. Ejemplo, dos rutas:
dir lib "D:\codesys\Libraries\Standard; D:\codesys\Libraries\NetVar"
Y los < de enebro están cubiertos con una densa mandíbula de >
Establece <libdir> como el directorio de la biblioteca
dir compile <compiledir> Establece <compiledir> como directorio para los archivos de compilación

dir config <configdir> Establece < > configdir como directorio para los archivos de configuración

dir upload <uploaddir> Establece < uploaddir > como directorio para los archivos de carga

10-72 CoDeSys V2.3


Apéndice F: - Línea de comandos/archivo de comandos

Retrasar el procesamiento del archivo CMD:

Retraso 5000 Espera 5 segundos

Control del Gestor de Relojes y Recetas:


Carga de la lista de observación <archivo> Carga la lista de observación guardada como <archivo> y abre la
ventana correspondiente ('Extras', 'Cargar lista de observación')
Lista de seguimiento Guardar <archivo> Guarda la lista de seguimiento actual como <archivo> ('Extras', 'Guardar lista de seguimiento')

Lista de seguimiento establecida <texto> La lista de seguimiento se activa (corresponde a la selección de una lista
en la parte izquierda de la ventana Administrador de relojes y recetas)

Lista de seguimiento Leer Actualiza los valores de las variables Watch ('Extras', 'Leer receta')
Lista de seguimiento Escribir Rellena las variables de inspección con los valores que se encuentran
en la lista de inspección ('Extras', 'Escribir receta')

Vinculación de bibliotecas:

bókasafn bæta við Adjunta el archivo de biblioteca especificado a la lista de bibliotecas del proyecto
<bókasafnsskrá1> abierto actualmente. Si la ruta de acceso del archivo es una ruta relativa, el directorio
<bókasafnsskrá2> .. <bókasafn de biblioteca introducido en el proyecto se utiliza como raíz de la ruta de acceso.
fileN>
bókasafn eyða Elimina las bibliotecas especificadas de la lista de bibliotecas del
[<biblioteca1> <biblioteca2>
.. <bibliotecaN>]
proyecto abierto actualmente.

Copia de objetos:

Copia de objetos <archivo Copia objetos de la ruta especificada del archivo de proyecto de
de proyecto de origen> origen a la ruta de destino del proyecto ya abierto.
<ruta de acceso de origen>
<ruta de destino>
Si la ruta de origen es el nombre de un objeto, se copiará. Si se trata de
una carpeta, se copiarán todos los objetos que se encuentren debajo de
esta carpeta. En este caso, se duplicará la estructura de carpetas debajo
de la carpeta de origen. Si la ruta de destino aún no existe, se creará.

Acceso de solo lectura para objetos particulares:

Objeto SetReadOnly Establece el acceso de solo lectura a un objeto; Defina el tipo de objeto y, en caso de que
<VERDADERO|Tipo de objeto FALSE> <> |
de los tipos de objeto pou, dut, gvl, vis también el nombre del objeto. Tipos
<nombre del objeto>
de objetos posibles: pou, dut (tipo de datos), gvl (lista de variables globales),
vis (visualización), cnc (objeto CNC), liblist (bibliotecas), targetsettings,
toolinstanceobject (instancia particular de Tools), toolmanagerobject (todas
las instancias en el árbol de herramientas), customplconfig (configuración de
PLC), projectinfo (información del proyecto), taskconfig (configuración de
tareas), trace, watchentrylist (Administrador de alertas y recetas),
alarmconfig (configuración de alarmas), por ejemplo, "object setreadonly
TRUE pou plc_prg" establecerá el PLC_PRG al acceso de solo lectura

Introducción de parámetros de comunicación (puerta de enlace, dispositivo):

Puerta de enlace local Establece la puerta de enlace en el equipo local como la puerta de enlace actual.

gateway tcpip Establece la puerta de enlace en el equipo remoto especificado como


<Dirección> <Puerto> la puerta de enlace actual.
<Dirección>: dirección TCP/IP o nombre de host del equipo remoto
<Puerto>: puerto TCP/IP de la puerta de enlace remota Importante:
¡Solo se puede acceder a las puertas de enlace que no tienen una
contraseña establecida!

CoDeSys V2.3 10-73


Apéndice F: - Línea de comandos/archivo de comandos

GUID de dispositivo <guid> Establece el dispositivo con el GUID especificado como el


dispositivo actual. El GUID debe tener el siguiente formato:
{01234567-0123-0123-0123-0123456789ABC}
Los corchetes y los guiones deben aparecer en las posiciones
especificadas.
instancia de dispositivo Establece el nombre de instancia del dispositivo actual en el nombre especificado
<nombre de la instancia>
parámetro del dispositivo <Id> Asigna el valor especificado, que luego será interpretado por el
<Value> dispositivo, al parámetro con el identificador especificado.

Llamada al sistema:

sistema <comando> Ejecuta el comando del sistema operativo especificado.


Seleccione el sistema de destino:

<Id> de destino Establece la plataforma de destino para el proyecto actual. Si CoDeSys está
comenzando con la opción de línea de comandos "/notargetchange" (consulte el
Capítulo 10.24), solo mediante este comando se puede establecer un objetivo.

Estado del sistema de consulta:

Estado fuera de línea Devuelve "S_OK", si actualmente no hay conexión entre el sistema de
programación y el sistema de destino (modo fuera de línea), de lo
contrario "HRESULT[0x800441f0)" (modo en línea).

Estado en línea Devuelve "S_OK", si actualmente hay una conexión entre el sistema
de programación y el sistema de destino (modo en línea), de lo
contrario "HRESULT[0x800441f0)" (modo fuera de línea).

Contraseña para el grupo de usuarios:


Con los siguientes ajustes, al abrir un proyecto protegido por contraseñas de grupo de usuarios, puede
introducir la contraseña de un determinado grupo de usuarios. Por lo tanto, incluso si la visualización de
los diálogos de entrada del usuario está desactivada ( "consulta desactivada...", ver arriba), se puede
abrir un proyecto protegido por contraseña a través del archivo de comandos. ¡Las entradas para el
grupo de usuarios y la contraseña deben colocarse antes del comando "archivo abierto..."!
Ejemplo:
Nivel de usuario 0 Contraseña de usuario Archivo AAA abrir la consulta "D:\codesys\projects\xxxx.pro" desactivada Aceptar

Nivel de usuario Grupo de usuarios, cuya contraseña se define en el proyecto y viene


dada por el comando posterior "contraseña de usuario".
Contraseña de usuario Contraseña para el grupo de usuarios especificado por el comando
anterior "grupo de usuarios".

Configuración de visualización:

ajustes visuales... corresponde a los posibles ajustes que se pueden realizar


para una visualización en 'Extras' 'Ajustes', categoría Idioma,
o en la categoría Visualización de Target Settings.
... Archivo de idioma en || apagado La opción 'Archivo de idioma' se activa (activa) o desactiva
(desactiva). En caso de activación se desactivará la opción
'Textos dinámicos'.

10-74 CoDeSys V2.3


Apéndice F: - Línea de comandos/archivo de comandos

... set languagefile <archivo de Especificación del archivo de idioma que se utilizará (.tlt o
idioma de ruta de archivo> .vis). Ejemplo: "configuración visual set languagefile proj1.tlt.

... Textos dinámicos en || apagado La opción 'Textos dinámicos' se desactivará (activado) o


desactivado (desactivado). En caso de activación, se
desactivará la opción 'Archivo de idioma'.
... dynamictextfiles <ruta de Especificación de una lista de rutas de acceso de archivos
archivo> | <Ruta de archivo> | ... de idioma que se utilizarán. Se eliminará la lista anterior.
Ejemplo: "configuración visual D:\dynfiles\p1.xml
D:\dynfiles\p2.xml"
... dynamictexthideelements en || apagado Activación o desactivación de la opción 'Suprimir elementos
si no se ha producido ninguna sustitución de texto'."
... Idioma <idioma> Especificación del idioma que se utilizará; Ejemplo:
"configuración visual idioma alemán"""
... tablekeyboardusage_web el || apagado Activación o desactivación de la opción 'Uso del teclado para
tablas' en la visualización web (configuración de destino). "
... tablekeyboardusage_codesys el || apagado Activación o desactivación de la opción 'Uso del teclado para
tablas' en CoDeSys o CoDeSys-HMI (Configuración de destino).

Visual WebVisuActivation en || apagado Activación o desactivación de la opción 'Web-Visualization'


(Target Settings) ).).).

Comandos relativos a la gestión del proyecto en la base de datos del proyecto ENI:
A continuación, en la descripción de los comandos, se utilizan marcadores de posición:
<categoría>: Reemplácese por "proyecto" o "compartido" o "compilar" dependiendo de cuál de las siguientes
categorías de bases de datos se trate: Objetos de proyecto, Objetos compartidos, Archivos de compilación

<POUname>: Nombre del objeto, corresponde al nombre del objeto que se utiliza en CoDeSys.
<Objecttype>: Reemplácelo por el acceso directo, que se agrega como una extensión al nombre POU
del objeto en la base de datos, y que refleja el tipo de objeto (definido por la lista de tipos de objeto,
consulte Administración de ENI, 'Tipos de objeto').
Ejemplo: Objeto "GLOBAL_1.GVL" -> el nombre de la POU es "GLOBAL_1", el tipo de objeto es "GVL"
(lista de variables globales)
<comentario>: Reemplácelo por un texto de comentario (entre comillas simples), que se almacenará
en el historial de versiones con la acción en particular.
Comandos para configurar el enlace de la base de datos del proyecto a través del servidor ENI:
Eni en La opción 'Usar control de código fuente (ENI)' se activará o desactivará (Cuadro de
Eni Off diálogo 'Proyecto', 'Opciones', 'Control de código fuente del proyecto')

Proyecto ENI ReadOnly La opción 'Solo lectura' para la categoría de base de datos 'Objetos de
activado Proyecto ENI proyecto' se activará o desactivará (Diálogo 'Proyecto', 'Opciones',
ReadOnly desactivado 'Objetos de proyecto')
ENI Shared ReadOnly La opción 'Solo lectura' para la categoría de base de datos 'Objetos
on Eni Shared fragmentados' se activará o desactivará (Diálogo 'Proyecto', 'Opciones',
Readonly Off 'Objetos compartidos')
eni set local <POUname> El objeto se asignará a la categoría 'Local', es decir, no se almacenará
en la base de datos del proyecto (Diálogo 'Proyecto', 'Objeto',
'Propiedades', 'Conexión a la base de datos')
eni set shared <POUname> El objeto se asignará a la categoría 'Objetos compartidos' (Diálogo,
'Proyecto', 'Objeto', 'Propiedades', 'Conexión a la base de datos')

eni set project <POUname> El objeto se asignará a la categoría 'Objetos del proyecto'

CoDeSys V2.3 10-75


Apéndice F: - Línea de comandos/archivo de comandos

(Diálogo: 'Proyecto', 'Objeto', 'Propiedades', 'Conexión a la base de datos')


eni <categoría> servidor Configura la conexión con el servidor ENI para la categoría 'Objetos
<TCP/IP_Address> del proyecto' (Diálogo 'Proyecto', 'Opciones', 'Base de datos del
<Puerto> <Nombre del proyecto'); Ejemplo: eni project server localhost 80 batchtest\project
proyecto> <Nombre de
EniBatch Batch (TCP/IP-Address = localhost, Port = 80, Project name
usuario> <Contraseña>
= batchtest\project, User name = EniBatch, Password = Batch)

eni compile sym on Se activará/desactivará la opción 'Crear información de símbolos


eni compile sym off ASCII (.sym)' para los objetos de la categoría 'Compilar archivos'
(Cuadro de diálogo 'Proyecto', 'Opciones', 'Control de código fuente
del proyecto', 'Configuración de ENI' para 'Compilar archivos')
eni compile sdb on Se activará/desactivará la opción 'Crear información de símbolos
eni compile sdb off binarios (.sym)' para los objetos de la categoría 'Compilar archivos'
(Cuadro de diálogo 'Proyecto', 'Opciones', 'Control de código fuente
del proyecto', 'Configuración de ENI' para 'Compilar archivos')
eni compile prg on Se activará/desactivará la opción 'Crear proyecto de arranque' para los
eni compile prg off objetos de la categoría 'Compilar archivos' (Cuadro de diálogo 'Proyecto',
'Opciones', 'Control de código fuente del proyecto', 'Configuración de ENI'
para 'Compilar archivos')

Comandos del menú 'Proyecto' 'Enlace a la base de datos' para trabajar con la base de datos:

Conjunto de ENI <categoría> El objeto se asigna a la categoría de base de datos nombrada ('Definir')

'eni set <category>set Los objetos que se enumeran separados por espacios se asignarán a la
<Objecttype>:<POUname> categoría de base de datos nombrada. ('Definición múltiple') Ejemplo:
<Objecttype>:<POUname> "eni set project pou:as_fub pou:st_prg" -> los objetos (pou) as_fub y
st_prg se asignan a la categoría 'Objetos del proyecto'

ENI <Categoría> Getall La última versión de todos los objetos de la categoría nombrada se
llamará desde la base de datos ('Obtener todas las últimas versiones')
'eni <category>get Los objetos de la categoría nombrada, que se enumeran separados por
<Objecttype>:<POUname> espacios, se llamarán desde la base de datos. ('Definición múltiple').
<Objecttype>:<POUname> ('Obtener la última versión') Ejemplo: "eni project get pou:as_fub
gvl:global_1" -> se llamará a la POU as_fub.pou y a la lista de variables
globales global_1.gvl desde la base de datos

eni <categoría> Todos los objetos de la categoría nombrada serán extraídos de la


checkoutall base de datos. El comentario definido se almacenará con la acción de
"<comentario>" desprotección en el historial de versiones.
eni <category> checkout Todos los objetos (Objecttype:POUname) que se enumeran separados
"<comment>" por espacios se extraerán de la base de datos. El comentario definido se
<Objecttype>:<POUname> almacenará con la acción de desprotección en el historial de versiones
<Objecttype>:<POUname> de cada objeto en particular.
Ejemplo: "eni project checkout "for working on xy" pou:as_fub gvl:
global_1" Se desprotegerá la as_fub POU y la lista de variables
globales global_1 y se almacenará el comentario "for working on xy" con
esta acción

10-76 CoDeSys V2.3


Apéndice F: - Línea de comandos/archivo de comandos


eni <category>checkinall Todos los objetos del proyecto, que están bajo control de código fuente
"<comentario>" en la base de datos del proyecto, serán protegidos. El comentario
definido se almacenará con el check-in-action.
eni <category> checkin Todos los objetos (Objecttype:POUname) que se enumeran separados
"<comment>" por espacios se registrarán en la base de datos. El comentario definido
<Objecttype>:<POUname> se almacenará con la acción de registro en el historial de versiones de
<Objecttype>:<POUname> cada objeto en particular. (ver arriba: echa un vistazo) El comentario
definido se almacenará con la acción de registro en el historial de
versiones de cada objeto en particular.

Palabras clave para los parámetros del comando:


Las siguientes palabras clave, encerradas entre "$", se pueden utilizar en los parámetros de comando:

$PROJECT_NOMBRE$ Nombre del proyecto CoDeSys actual (nombre de archivo sin extensión
".pro", por ejemplo, "project_2.pro")

$PROJECT_RUTA$ Ruta del directorio, donde se encuentra el archivo de proyecto CoDeSys


actual (sin indicación de la unidad y sin una barra invertida al final, por
ejemplo, "projects\sub1").
$PROJECT_UNIDAD$ Drive, donde está el proyecto actual de CoDeSys (sin barra invertida al
final, por ejemplo, "D:")

$COMPILE_DIR$ Compilar el directorio del proyecto CoDeSys actual (con indicación de la


unidad y sin barra invertida al final, por ejemplo, "D:\codesys\compile")

$EXE_DIR$ Directorio donde se encuentra el archivo codesys.exe (con indicación de la


unidad y sin barra invertida al final, por ejemplo, D:\codesys)

Ejemplo de un archivo de comandos:


Un archivo de comandos como el que se muestra a continuación abrirá el archivo de proyecto
ampel.pro, luego cargará una lista de observación, que se almacenó como w.wtc, luego iniciará el
programa de aplicación y escribirá, después de 1 segundo de retraso, los valores de las variables en la
lista de observación watch.wtc (que se guardará) y finalmente cerrará el proyecto.
archivo abierto C:\projects\CoDeSys_test\ampel.pro consulta desactivada ok lista de observación cargar
c:\work\w.wtc inicio de sesión en línea retraso de ejecución en línea 1000 lista de observación leer lista de
observación guardar $PROJECT_DRIVE$\$PROJECT_PATH$\w_update.wtc archivo de cierre de sesión en línea
cerrar

Este archivo de comandos abrirá el ampel.pro del proyecto, cargará una lista de observación existente w.wtc,
iniciará el programa de aplicación, después de 1 segundo escribirá los valores de las variables en la lista de
observación w_update.wtc, que se guardará en el directorio "C:\projects\CoDeSys_test" y luego cerrará el proyecto
nuevamente.
Se llama a un archivo de comandos en una línea de comandos como se muestra aquí:
"<ruta de codesys.exe>" /cmd "<ruta del archivo cmd>"

CoDeSys V2.3 10-77


Apéndice F: - Línea de comandos/archivo de comandos

10-78 CoDeSys V2.3


Apéndice G: - Importación de Siemens

Apéndice G: Importación de Siemens


En el submenú ' Proyecto' 'Importación de Siemens' , encontrará comandos que le permiten importar
POUs y variables de archivos STEP5 de Siemens. El comando "Importar desde un archivo de símbolos
SEQ" permite importar variables globales desde archivos de símbolos de STEP5. Ejecute este comando
antes del comando " Importar desde un archivo de proyecto de S5" para que se puedan crear nombres
de símbolos legibles cuando se importen las POU. Estos dos comandos permiten importar POUs desde
archivos de programa de STEP5. Una vez hecho esto, las POU se insertan en el proyecto CoDeSys abierto.
Puede seleccionar si las POU permanecerán en el idioma IL de STEP5 o se convertirán a un idioma IEC.

Recomendamos que el proyecto de CoDeSys en el que está importando esté vacío. Por supuesto,
debe asegurarse de que la biblioteca standard.lib esté vinculada a su proyecto, de lo contrario no podrá
importar el contador y el temporizador.

10.26 Importar desde un archivo de símbolos SEQ


El formato SEQ es un formato común para los archivos de símbolos en un proyecto de STEP5. Las asignaciones
de símbolos se pueden leer desde archivos de símbolos SEQ (*.seq). Una asignación de símbolos contiene una
dirección absoluta para un elemento de programa S5 (entrada, salida, ubicación de memoria, etc.), un identificador
de símbolo correspondiente y también puede contener comentarios sobre el símbolo. Un archivo SEQ es un
archivo de texto que contiene una asignación de este tipo por línea. Cada uno de los "Campos" de la línea está
separado por Tabulaciones. Además, cada línea solo puede contener un comentario, que debe comenzar con un
punto y coma.
Las asignaciones de símbolos en el archivo SEQ se traducirán en declaraciones de variables globales
basadas en IEC 61131-3. El nombre simbólico, la dirección y el comentario (si está disponible) se
transferirán durante este proceso. La dirección se adaptará a la norma IEC 61131-3 (Signo de porcentaje,
etc.). Dado que un nombre de símbolo S5 puede contener caracteres que no están permitidos en un
identificador IEC, los nombres se cambiarán si es necesario. Los caracteres no válidos serán reemplazados
por el carácter de subrayado. Si hay más de un carácter de subrayado en una fila, cada segundo se
reemplazará por un carácter válido (por ejemplo, "0"). Si se cambia el nombre de un símbolo durante la
conversión, el nombre original se agregará en un comentario después del cambio. Las líneas de comentarios
de SEQ se transferirán como comentarios. Se pueden crear varios bloques de variables globales. Cada
bloque consta de menos de 64K de texto.
El formato SEQ descrito se utiliza en el software Siemens STEP5-PG, en la mayoría de las versiones
de Siemens STEP7-300/400 y en ACCON-PG de DELTALOGIC. Este formato es compatible con los
archivos STEP7-SEQ creados en la versión 3.x o superior. La versión 2.x de STEP7 puede exportar un
formato SEQ diferente que no es compatible. En lugar de usar separadores (pestañas), se basa en una
longitud fija para el nombre simbólico y usa espacios en blanco si es necesario.
En primer lugar, seleccione el archivo SEQ en un cuadro de diálogo estándar de Windows. Luego realice la
importación, cuando esto esté hecho se compilará la lista de variables globales. Pueden surgir errores durante
este proceso cuando los identificadores de STEP5/7 se convierten en identificadores compatibles con IEC61131-3.
Por ejemplo, los dos identificadores de STEP5 "A!" y "A?" se convertirían en el identificador IEC "A_". En este
punto aparecería el siguiente mensaje: "Varias declaraciones con el mismo identificador A_". Cambie una de las
variables.
Bajo ninguna otra circunstancia debe realizar ningún cambio en la lista de variables globales. Si
identifica direcciones que son válidas en un PLC Siemens pero no son válidas en su controlador:
Déjelas en paz por ahora, incluso si recibe miles de mensajes de error durante la compilación. Las
direcciones son necesarias exactamente como están para importar las POU.
Si el proyecto en el que está importando ya contiene una declaración para una variable global x con su dirección
(por ejemplo, "%MX4.0"), es posible que la importación de SEQ contenga una variable definida con la misma
dirección. Esto está permitido en IEC 61131-3, pero generalmente no es lo mejor para el usuario. No aparecerá
ningún mensaje de error, pero es posible que el programa no funcione como debería, ya que la dirección se
utilizará en diferentes POU sin referencia contextual. Para evitar este problema, es mejor importar en un proyecto
vacío o en un proyecto en el que no se hayan utilizado direcciones absolutas hasta este momento.

Las unidades organizativas del programa STEP5/7 se pueden importar una vez que se ha realizado la
importación del SEQ. También puede agregar las entradas y salidas que se utilizarán en la
configuración del PLC. Estos no son necesarios para la importación de STEP5/7, pero las direcciones
se comprobarán y pueden aparecer como errores cuando se reconstruya el proyecto.

CoDeSys V2.3 10-79


Apéndice G: - Importación de Siemens

10.27 Importar desde un archivo de proyecto S5


Las POU pueden leer desde archivos de programa Siemens S5 (*.s5d). El código que utiliza es el código MC5 que
puede ejecutar S5 SPS. En general, el código MC5 se corresponde con la lista de instrucciones de STEP5 (sin
nombres de símbolos) con la que el programador está familiarizado. El S5D también contiene los comentarios de
línea de la lista de instrucciones del STEP5. Dado que un archivo S5D contiene solo direcciones absolutas sin
nombres de símbolos, CoDeSys busca los nombres de símbolos entre las variables de proyecto actuales de
CoDeSys. Si no se encuentra ninguno, la dirección absoluta se deja sin cambios. Por lo tanto, si cree que el
nombre del símbolo es útil, importe el archivo SEQ antes que el archivo S5.

En primer lugar, seleccione el archivo S5D en un cuadro de diálogo estándar de Windows. Aparece otro
cuadro que contiene la lista de POU entre los que puede seleccionar. Lo mejor es seleccionarlos todos.
También se puede seleccionar dejar las POU en el idioma IL de STEP5 o convertirlas a IL, LD o FBD.
Los nombres de símbolos se utilizarán en lugar de los nombres absolutos en la medida de lo posible. Si CoDeSys
encuentra la instrucción "U M12.0" durante la importación, buscará una variable global establecida en la ubicación
de memoria M12.0. Se tomará la primera declaración que se ajuste a esta descripción y la instrucción se importará
como "U-Name" en lugar de "U M12.0" (el nombre del identificador de la ubicación de memoria es M12.0).

A veces, es posible que se necesiten variables adicionales durante una importación o conversión de
código. Estas variables adicionales se declararán globalmente. Por ejemplo, se necesitan instancias
R_TRIG para reproducir entradas activadas por bordes (por ejemplo, en un contador S5).

10.28 Conversión de S5 a IEC 61131-3


Si selecciona un idioma IEC como idioma de destino para una importación de STEP5, debe tener en cuenta
que partes de su proyecto no se pueden convertir a IEC 61131-3. Si parte de una POU S5 contiene código
que no se puede convertir en IEC 61131-3, se generará un mensaje de error y la parte crítica del código
STEP5 IL original se insertará como un comentario en la POU IEC. A continuación, debe reemplazar o
reescribir este código. Los comandos del sistema que solo funcionan en una CPU S5 específica no se
pueden convertir en IEC. La "STEP5 Core Command List" se puede convertir en código IEC con solo hacer
clic en un botón, a pesar de que STEP5 es enormemente diferente en la forma en que está concebido.

La lista de comandos principales que se pueden convertir a IEC 61131-3 contiene todos los comandos que se
pueden convertir a LD o FBD en un sistema de programación STEP5 y también todos los comandos que se
permiten en un STEP5-PB (Program Block). Además, de los comandos de STEP5 permitidos solo en IL o en FB
(bloques de función), los comandos que se pueden convertir a IEC son principalmente los que están disponibles
en todas las CPU S5 (por ejemplo, saltos absolutos y condicionales, comandos de desplazamiento, etc.)

La única excepción o limitación para la conversión está relacionada con el restablecimiento de


temporizadores, que se puede realizar en STEP5 pero normalmente no en IEC 61131-3.
Los comandos convertibles individuales:
U, UN, O, ON, S, R, = con los siguientes operandos de bits: I (entradas), O (salidas), M (ubicaciones de
memoria), S (ubicaciones de memoria S), D (datos en bloques de datos)

U, UN, O, ON con los siguientes operandos: T (Temporizador), C (Contador)

S, R con los siguientes operandos: C

SU, RU, P, PN con los siguientes operandos: E, A, M, D

O, O(, U(, )

L, T con los siguientes rangos de operandos: E, A, M, D, T, C, P (periferia) y tamaños de operando: B (byte), W


(palabra), D (palabra doble), L (byte izquierdo), R (byte derecho)

L con los siguientes formatos constantes: DH, KB, KF, KH, KM, KT, KZ, KY, KG, KC

SI, SE, SA con los siguientes operandos: T

ZV, ZR con los siguientes operandos: C


+, -, X, : con los siguientes operandos: F (número de punto fijo), G (número de punto flotante) +, -

10-80 CoDeSys V2.3


Apéndice G: - Importación de Siemens

con los siguientes operandos: D (número de punto fijo de 32 bits)

!=, ><, >, <, >=, <= con los siguientes operandos: F, D, G

ADD con los siguientes operandos: BF, KF, DH

SPA, SPB con los siguientes operandos: PB, FB (con la mayoría de los tipos de parámetros), SB

A, AX con los siguientes operandos: DB, DX

SER, BEA, BEB

BLD, NOP, ***

UW, OW, XOW

KEW, KZW, KZD

SLW, SRW, SLD, RRD, RLD

SPA=, SPB=

SPZ=, SPN=, SPP=, SPM=

TAK

D, I
La mayoría de los comandos formales de operando
Comandos no convertibles
U, UN, O, ON, S, R, = con los siguientes operandos de bits: Bits de temporizador y contador (T0.0, C0.0)

L, T con los siguientes rangos de operandos: Q (periferia expandida)

LC con los siguientes operandos: T, C

SV, SS, R, FR con los siguientes operandos: T

FR con los siguientes operandos: C

Comandos formales de operando para iniciar, restablecer y liberar temporizadores

Todos los comandos con operandos de los rangos BA, BB, BS, BT (datos del sistema operativo).

SPA, SPB con los siguientes operandos: OB (funciona solo con ciertos S5 y ciertos OB)

BA, BAB con los siguientes operandos: FX

E, EX con los siguientes operandos: DB, DX

STP, STS, STW

DEF, DED, DUF, DUD

SVW, SVD

SPO=, SPS=, SPR

AS, AF, AFS, AFF, BASS, BAF

ENTE

SES, SEF

B con los siguientes operandos: DW, MW, BS

LIR, TIR, LDI, TDI, TNW, TXB, TXW

MAS, MAB, MSA, MSB, MBA, MBS

MBR, ABR

LRW, LRD, TRW, TRD

CoDeSys V2.3 10-81


Apéndice G: - Importación de Siemens

TSG

LB, TB, LW, TW con los siguientes operandos: GB, GW, GD, CB, CW, CD

ACR, TSC

BI

SIM, LIM
Si examina los comandos que no se pueden convertir, verá que generalmente son comandos
especiales que solo están disponibles en ciertas CPU. Los comandos estándar que no se pueden
convertir a IEC son: carga de valores de temporizador o contador codificados BCD (LC T, LC C), tipos
de temporizador SV y SS y restablecimiento de temporizadores.
Bloques de datos
Los bloques de datos de STEP5 se convierten en POU (unidades de organización del programa) que
tienen un encabezado pero no código. Esto es conveniente si los bloques de datos se utilizan como
rangos de variables normales, pero es conveniente si se han intentado implementar manualmente
conceptos como bloques de datos de instancia en el programa STEP5.
Otros problemas al importar desde STEP5
La importación de STEP5 se puede mejorar manualmente de las siguientes maneras.
1. Valores de tiempo en variables de palabra
En el STEP5 se permite un valor de tiempo en cada dirección de palabra, ya sea en el área de ubicación de
memoria o en un bloque de datos. Esto no está permitido en IEC 61131-3, las variables o constantes de
tiempo no son compatibles con las direcciones WORD. Esto puede dar lugar a la creación de secuencias de
comandos erróneas al importar desde el STEP5. Esto no sucederá si abre un bloque de datos y selecciona
el formato de hora (KT) para la dirección en cuestión. En otras palabras, este error solo ocurre cuando el
programa STEP5 vale la pena el esfuerzo de mejorarlo. Cuando ocurra, verá el mensaje "Tipos
incompatibles: no se puede convertir WORD a HORA" o "Tipos incompatibles: no se puede convertir HORA
a WORD". A continuación, debe modificar la declaración de la variable WORD (si está disponible) y
convertirla en una variable TIME.
2. Falta de acceso a los bloques de datos
No hay bloques de datos en IEC 61131-3 y es imposible recrearlos completamente en IEC. En STEP5 se utilizan
como rangos de variables normales (casi como rangos de ubicación de memoria), y también en forma de matrices (B
DW), punteros (B MW100 A DB 0) o uniones (acceso de bytes, palabras o palabras dobles en las bases de datos). La
conversión de STEP5 solo puede convertir el acceso a la base de datos si está algo estructurado. Al intentar acceder
a las bases de datos, debe saber qué base de datos está abierta (una base de datos). Debe tener esto en cuenta
cuando la operación A DB está más cerca del principio en la misma POU o cuando el número de DB se incluye con la
POU como parámetro formal. Si no se encuentra una base de datos delante del primer acceso a la base de datos, la
POU no se puede convertir. La advertencia "No hay bloque de datos abiertos (inserte una base de datos A)" le notifica
que este es el caso. En la POU convertida, verá acceso a una variable indefinida denominada "ErrorDW0" (por
ejemplo) que hará que se genere un mensaje de error cuando se compile la POU recién convertida. A continuación,
puede reemplazar las variables con acceso a la base de datos correcta (por ejemplo, reemplazar "ErrorDW0" por
"DB10. DW0"). La otra opción es descartar la POU convertida e insertar una base de datos A al principio de la POU
en

PASO 5.
Una POU de STEP5 que accede a palabras de datos (bytes de datos, etc.) siempre debe abrir primero
el bloque de datos. Si es necesario, la POU debe mejorarse antes de importarla insertando el comando
A DB apropiado, preferiblemente al principio de la POU. De lo contrario, la POU convertida tendrá que
editarse a posteriori.
Si hay más de una operación A BD que debe omitirse parcialmente, la conversión puede tener un error,
es decir, se puede generar código que acceda a la BD incorrecta.
3. Conceptos superiores relacionados con el acceso a bloques de datos
En el STEP5 tiene la opción de crear algo similar a las instancias haciendo que el bloque Code abra
una versión indexada de un bloque de datos. Esto se puede hacer con la siguiente secuencia de código
de ejemplo:
L KF +5

10-82 CoDeSys V2.3


Apéndice G: - Importación de Siemens

T MW 44

B MW 44

A DB 0
El DB5 se abre al final de esta secuencia (en general, se abrirá el DB cuyo número se encuentra en la
palabra de ubicación de memoria %MW44). Este tipo de acceso no se reconoce en la conversión, lo
que significa que se deben realizar los siguientes cambios después de la conversión:
En primer lugar, se deben importar todas las bases de datos que actúen como bases de datos de instancia, por
ejemplo, DB5 y DB6. Se importarán como POU IL, LD o FBD normales, lo que prefiera. Las POU no tienen un
código, sino un encabezado con definiciones de variables locales. Ahora se pueden crear instancias de tipo a
partir de estas POU. Cree un tipo definido por el usuario (por ejemplo, denominado DBType) e inserte las
variables locales y las bases de datos convertidas como componentes. A continuación, cree instancias globales
de este tipo escribiendo en una lista de variables globales:
VAR_GLOBAL

DB5, DB6 : DBType;

END_VAR
Ahora puede eliminar las bases de datos convertidas de su proyecto.
A continuación, debe crear una copia de la versión indexada de las bases de datos dando a la POU
correspondiente otro parámetro VAR_INPUT del tipo DBType. El acceso a los datos dentro de la POU
ahora debe redirigirse a esta instancia. A continuación, debe incluir una de las bases de datos de
instancia como parámetro real al abrirla.
4. Los llamados bloques de función integrados S5 que tienen una interfaz de acceso STEP5 tienen una
función especial, pero su implementación no está escrita en STEP5 (o MC5) o está protegida por un
mecanismo especial. Las POU de este tipo son generalmente firmware y solo se pueden "importar
como una interfaz". La parte de implementación de este tipo de POU está vacía. Por lo general, estas
POU deben reprogramarse después de convertirse.
5. También hay OBs de firmware que no tienen interfaz pero cuyo código está en 805xx Assembler (por
ejemplo) y no en STEP5. Esto afecta principalmente al regulador PID listado como OB251 que obtiene
sus parámetros y variables locales a través de un bloque (de datos) separado que puede seleccionar.
Ni el regulador PID, ni el bloque de datos correspondiente ni otras POU que utilicen reguladores para
acceder al bloque de datos se pueden convertir a IEC. El código IEC que se crea para los bloques de
datos y otras POU durante la conversión no tiene sentido sin el regulador PID. El significado de las
partes individuales del programa se puede encontrar en el manual de programación de la CPU.
6. Los bloques de datos de configuración (como DB1 [S5-95U], DX0 y DX2) se utilizan a veces para configurar
CPU S5 y otros conjuntos que se convirtieron en POU IEC inútiles. El significado de gran parte de este tipo de
datos se puede encontrar en el manual de programación de la CPU. Para el resto se debe utilizar un sistema de
programación S5 que pueda evaluar las bases de datos de configuración. La configuración afecta a los ajustes de
comunicación, procesamiento de valores analógicos, multiprocesamiento, etc. Por lo tanto, es inútil siquiera pensar
en trabajar con estas POU en un SPS que no sea de Siemens.

Una vez completada la importación, debe encontrar los errores que se muestran y luego corregir,
agregar y reescribir los puntos afectados. Estos lugares están marcados con comentarios como:
(*¡Advertencia! El código STEP5/7 no convertible se muestra como comentario:*)
A esto le sigue el código unconvertible que también se muestra como comentario.
Por último, debes comprobar las direcciones. Las direcciones originales de Siemens se crean durante
la importación. Estas direcciones tienen el siguiente formato:
Bits: Byte-Offset.Bit-Nummer
No-Bits:Byte-Offset
Además, las direcciones de palabras que se suceden en secuencia se superpondrán (simplemente
debido al hecho de que los números en las direcciones son desplazamientos de bytes). Esto significa
que %MW32 y %MW33 tienen un byte superpuesto que es %MB33 (solo en un SPS de Siemens). En
su SPS, %MW32 y %MW33 normalmente no tendrían nada que ver entre sí.

CoDeSys V2.3 10-83


Apéndice G: - Importación de Siemens

Su PLC puede tener más jerarquías. Por ejemplo, los que no son bits tienen varios niveles de enclavamiento
("%MW10.0.0" como WORD). Puede realizar cambios en las direcciones para hacerlas compatibles con su
PLC o puede intentar omitirlas por completo. ¡Proceda con mucha cautela! En el programa original de
Siemens, es bastante común que el acceso a palabras y el acceso a bits o bytes se realicen en la misma
ubicación de memoria. Cuando se importan a CoDeSys, los accesos de este tipo solo se compilarán
correctamente para los bloques de datos. En este caso, CoDeSys crea variables WORD para las palabras
de las bases de datos. Entonces, cuando WORD accede a la palabra x en DB y, no hay problemas. Los
intentos de acceder al byte izquierdo o derecho de la palabra x, una palabra doble o un bit se compilarán en
expresiones más complejas. Esto no se puede hacer con ubicaciones de memoria, entradas o salidas, ya
que esto no se puede hacer con un método de acceso estándar (por ejemplo, acceso a palabras). Si está
trabajando con %MX33.3 y con %MB33 o %MW32 o %MD30, debe hacer el esfuerzo de convertirlos
manualmente. El programa IEC generado por la importación de CoDeSys definitivamente no funcionará
correctamente.
Abra una lista de referencias cruzadas que contenga todas las entradas, salidas y ubicaciones de
memoria para averiguar qué accesos son importantes. Elimine el mixto al que se accede manualmente.

10-84 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

Apéndice H: Configuración de destino en detalle

10.29 Configuración en la plataforma de destino de categoría

10.29.1 Sistema de destino compatible con Intel 386, Categoría Plataforma de destino
Configuración de destino del cuadro de diálogo "Compatible con Intel386", plataforma de destino

Elemento de diálogo optimizadas

Plataforma Tipo de sistema de destino


Soporta procesador flotante si está activado: se generan comandos FPU para operaciones de coma flotante

Depuración en un entorno Si se activa: se genera código adicional, lo que permite la depuración en entornos
multitarea multitarea
Saltos optimizados si está activado: saltos condicionales optimizados después de las operaciones de
comparación; más rápido + menos código (especialmente en 386/486); Las líneas
que contienen condiciones antes de los saltos se mostrarán en color gris en el
modo de control de flujo
Operaciones optimizadas Operaciones optimizadas con constantes (A = A + 1, A < 500, etc.); Más rápido +
con constantes menos código (especialmente en 386/486); Las constantes se monitorearán en
color gris en el modo de control de flujo
Significado de las operaciones de carga No se ejecutarán operaciones de carga en acceso múltiple en una
variable/constante; Más rápido + menos código

CoDeSys V2.3 10-85


Apéndice H: - Ajustes de destino en detalle

10.29.2 Sistema de destino Motorola 68K, Categoría Plataforma de destino


Cuadro de diálogo Configuración de destino 'Motorola 68K', plataforma de destino

Elemento de diálogo de salida

Plataforma Tipo de destino


CPU Variante de la CPU de 68k: versión básica 68000 o CPU32 y superior
Soporta Procesador Float si está activado: se generan comandos FPU para operaciones de coma flotante
Usar desplazamientos de si está activado: Saltos para evaluar expresiones booleanas Funciona con
salto de 16 bits desplazamientos relativos de 16 bits (son posibles expresiones más complejas,
pero código más grande) si no está activado: se utilizan desplazamientos de 8 bits

Permitir estructuras Si está activado: solo direccionar direcciones pares si no está activado:
alineadas con bytes también es posible el direccionamiento de direcciones impares

Registro Reservado 1 A2,A4,A5,A6: El registro de direcciones indicado está reservado y no se utiliza Si


no hay ninguno: puede ser utilizado por el generador de código
Registro Reservado 2 Registro adicional de direcciones reservadas. El registro de direcciones indicado está
reservado y no se utiliza Si es "Ninguno", puede ser utilizado por el generador de
códigos
Registro base para los Regístrese para direccionar datos estáticos dentro de las bibliotecas C (antes de
datos de la biblioteca llamar a las funciones de la biblioteca, se carga con la dirección de la memoria
libre). Si se utiliza "Ninguno" A5 como valor preestablecido.
Significado del modo
Nada = sin salida Assembler = Durante la compilación se crea un archivo
"code68k.hex" en el directorio de compilación (Configuración en
"Proyecto/Opciones/Directorios"). Contiene el código ensamblador generado.

Desensamblador = Además de 1, el archivo contiene el código de desensamblador

10-86 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

10.29.3 Sistema de destino Infineon C16x, Categoría Plataforma de destino


Configuración de destino del cuadro de diálogo 'Infineon C16x', plataforma de destino

Elemento de diálogo Significado

Plataforma Tipo de destino


Código / Compilador: El compilador utilizado durante la compilación del sistema de destino y las bibliotecas (en
cuenta de las convenciones de llamada en C)
Código / Tamaño de pila Profundidad máxima de llamada (anidamiento)

Código / Datos Modelo de memoria para datos

Código / Funciones Modelo de memoria para código

Init. Funciones si está activado: Las funciones contienen el código de inicialización de las variables locales

Optimizar si está activado: Optimizaciones de código para índices de matriz constante

Archivo HEXADECIMAL de salida si está activado: Salida de un volcado hexadecimal del código

Archivo BIN de salida si está activado: Salida de un archivo binario del código

Mapa de salida if activated=Salida de un fichero de mapa del código

LST de salida if activated=Salida de un archivo de lista del código

Salida LST , de direcciones if activated=Salida de una lista de direcciones


DPPs / Se establecen punteros de página de datos
DPP0.. DPP2 DPP para DPP0, DPP1, DPP2
En instancias DPP para direccionamiento corto de instancias de bloques de funciones
Bibliotecas/ Configuración de las bibliotecas:
Código Direcciones de inicio para código, tablas, datos, longitud de datos, bloques, referencias
Mesas
Datos
Longitud de los datos
POUs
Referencias

CoDeSys V2.3 10-87


Apéndice H: - Ajustes de destino en detalle

10.29.4 Sistemas de destino Intel StrongARM y Power PC, Categoría Plataforma de destino
Los elementos de diálogo de estos dos sistemas de destino son idénticos.
Configuración de destino del cuadro de diálogo 'PowerPC', plataforma de destino

Elemento de diálogo Significado


Plataforma Tipo de destino
Soporta procesador flotante si está activado: se generan comandos FPU para operaciones de coma flotante

Primer parámetro Registro Registro donde se transmite el primer parámetro entero de las llamadas a la función C (rango
(entero) dependiendo del sistema operativo)
Registro del último parámetro Registro donde se transmite el último parámetro entero de las llamadas a la función C (rango
(Entero) dependiendo del sistema operativo)
Regístrese para los valores devueltos Registre donde se devuelven los parámetros enteros de las llamadas a la función C (rango
(Entero) dependiendo del sistema operativo)
Primer parámetro Registro Registro donde se transmite el primer parámetro flotante de las llamadas a la función C (rango
(Flotar): dependiendo del sistema operativo)
Registro del último parámetro Registro donde se transmite el último parámetro flotante de las llamadas a la función C (rango
(Flotar): dependiendo del sistema operativo)
Regístrese para obtener el valor de devolución Registro en el que se devuelven los parámetros flotantes de las llamadas a la función C (rango
(Flotar): dependiendo del sistema operativo)
Orden de bytes de Intel si está activado: Direccionamiento según el esquema de direcciones de Intel
Espacio máx. en la pila Tamaño de la pila de argumentos (en bytes). Predeterminado: 40
for argumentos (Byte)

10-88 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

10.29.5 Sistema de destino MIPS, Categoría Plataforma de destino


Configuración de destino del cuadro de diálogo 'MIPS', plataforma de destino

Elemento de diálogo Significado


Plataforma Tipo de destino
Primer parámetro Registro Registro donde se transmite el primer parámetro entero de las llamadas a la función C (rango
(entero) dependiendo del sistema operativo)
Registro del último parámetro Registro donde se transmite el último parámetro entero de las llamadas a la función C (rango
(Entero) dependiendo del sistema operativo)
Regístrese para los valores devueltos Registre donde se devuelven los parámetros enteros de las llamadas a la función C (rango
(Entero) dependiendo del sistema operativo)
Espacio máx. en la pila Depende del sistema operativo: tamaño máximo (número de bytes) de los argumentos,
para argumentos (Byte): que se puede entregar en la pila

CoDeSys V2.3 10-89


Apéndice H: - Ajustes de destino en detalle

10.29.6 Sistema de destino «Hitachi SH», Categoría Plataforma de destino


Cuadro de diálogo Configuración de destino 'Hitachi SH', plataforma de destino

Elemento de diálogo Significado

Plataforma Tipo de destino


Primer parámetro Registro donde se transmite el primer parámetro entero de las llamadas a la función
Registro (entero) C (el rango depende del sistema operativo)
Registro del último Registro donde se transmite el último parámetro entero de las llamadas a la función
parámetro (entero) C (el rango depende del sistema operativo)
Registro de valores Registre dónde se devuelven los parámetros enteros de las llamadas a la función C
devueltos (entero) (el rango depende del sistema operativo)
Espacio máximo en la pila Dependiendo del sistema operativo: tamaño máximo (número de bytes) de los
para argumentos (byte): argumentos, que se pueden entregar en la pila
Soporta procesador flotante Los comandos FPU se generan para operaciones de coma flotante

Primer parámetro Registro donde se transmite el primer parámetro flotante de las llamadas a la función
Registro (Float): C (el rango depende del sistema operativo)
Registro del último Registro donde se transmite el último parámetro flotante de las llamadas a la función
parámetro (Float): C (el rango depende del sistema operativo)
Regístrese para el valor Registre dónde se devuelven los parámetros flotantes de las llamadas a la función C
devuelto (flotante): (el rango depende del sistema operativo)
Orden de bytes de Intel Se utiliza el modo de dirección de bytes de Intel

10-90 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

10.29.7 Sistema de destino «compatible con 8051», Categoría Plataforma de destino


Configuración de destino del cuadro de diálogo "Compatible con 8051", plataforma de destino

Elemento de diálogo Significado


Plataforma Tipo de destino
Tamaño máximo de la pila: (en bytes) Tamaño máximo de pila (número de bytes)

10.29.8 Sistema de destino 'TriCore', Categoría Plataforma de destino


La configuración de destino para el destino TriCore está codificada de forma rígida y no se puede modificar a
través del archivo de destino. Sin embargo, si fuera necesario realizar modificaciones, póngase en contacto
con 3S-Smart Software Solutions GmbH.
Nota: El sistema de destino TriCore es compatible con operaciones nativas REAL, pero no con LREAL.

Vea aquí los ajustes más importantes:

Actitud Significado
Plataforma=Tricore Tipo de sistema de destino
Primer registro de parámetros (entero) = 4 Registre donde es el primer parámetro entero de las llamadas a la función C
transmitida
(el rango depende del sistema operativo)
Último registro de parámetros (entero) = 7 Registre dónde es el último parámetro entero de las llamadas a la función C
transmitida
(el rango depende del sistema operativo)
Regístrese para valores devueltos (entero) = 2 Registre dónde es el último parámetro entero de las llamadas a la función C
transmitida
(el rango depende del sistema operativo)
Otros: - Llamada a función no utilizada para la implementación de puntos de interrupción

- Motorola ByteOrder no utilizado


- Alineación: 4 bytes (importante para arrays)

CoDeSys V2.3 10-91


Apéndice H: - Ajustes de destino en detalle

10.30 Configuración de destino para el diseño de memoria de categoría


Los elementos descritos para esta pestaña pueden estar disponibles para cada destino estándar.
Configuración de destino del cuadro de diálogo "Compatible con Intel 386", Diseño de memoria

Elemento de diálogo Significado

Base (Código) Activado automáticamente: el segmento de código se asigna automáticamente Inactivado


automático: el segmento de código se encuentra en la dirección absoluta dada

Base (Global) Activación automática: Los segmentos de datos (datos globales) se asignan
automáticamente al área en cuestión Desactivado automático: El segmento de
datos (datos globales) se encuentra en la dirección absoluta dada

Base (Memoria) Activado automático: las banderas se asignan automáticamente al área en cuestión
Desactivado automático: el segmento de la bandera se encuentra en la dirección absoluta dada

Base (Entrada) Activado automático: la imagen de proceso de entrada se asigna


automáticamente al área en cuestión Desactivado automático: La imagen de
proceso de entrada se encuentra en la dirección absoluta dada

Base (Salida) Activado automático: la imagen de proceso de salida se asigna


automáticamente al área en cuestión Desactivado automático: La imagen de
proceso de salida se encuentra en la dirección absoluta dada

Base (Retener) Activación automática: los datos remanentes se asignan automáticamente al


área en cuestión Inactivado automático: la imagen de proceso de salida se
encuentra en la dirección absoluta dada

Área (Código) Número de segmento del segmento de datos (código);


Área (Global) Número de segmento del segmento de datos (datos globales);
Área (Memoria) Número de segmento del segmento de bandera;
Área (Entrada) Número de segmento de la imagen de proceso de entrada
Área (salida) Número de segmento de la imagen de proceso de salida

10-92 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

Elemento de diálogo Significado

Área (Retener) Número de segmento de los datos remanentes


Tamaño (Código) Tamaño del segmento Código
Talla pro Segmento (Global) Tamaño del segmento de datos
Tamaño (memoria) Tamaño del segmento de bandera
Tamaño (entrada) Tamaño de la imagen de proceso de entrada
Tamaño (salida) Tamaño de la imagen de proceso de salida
Tamaño (Conservar) Tamaño del segmento para datos remanentes
Tamaño total de la memoria de datos Tamaño total de los datos de memoria
Segmento de retención propio si se activa: los datos remanentes se asignan a un segmento separado
Tamaño total de la memoria de datos Tamaño total de la memoria de datos
Número máximo de segmentos de Número máximo de segmentos de datos globales
datos globales

Número máximo de POU Número máximo de POU permitidas en un proyecto

CoDeSys V2.3 10-93


Apéndice H: - Ajustes de destino en detalle

10.31 Configuración de destino en la categoría General


Los elementos descritos para esta pestaña pueden estar disponibles para cada destino estándar.
Configuración de destino del cuadro de diálogo, General

Elemento de diálogo Significado

Configurable si está activado: admite configuraciones de E/S configurables y descripción de la


configuración de carga en el controlador
Soporta la si está activado: Admite la configuración de CANopen y cargue la descripción de
configuración de la configuración en el controlador
CANopen
Soporta la si está activado: Admite la configuración de Profibus y la descripción de la
configuración de configuración de carga en el controlador
Profibus
Admite la multitarea si está activado: Admite la configuración de la tarea y carga la descripción de la
preventiva tarea en el controlador
Descargar como archivo si está activado: la descripción de E/S se descarga en formato de archivo
Sin comprobación de direcciones si está activado: En la compilación, las direcciones IEC no se comprueban

Cambio en línea si está activado: Funcionalidad de cambio en línea


Actualización de E/S no Si está activado: CoDeSys crea una tarea para actualizar las entradas y salidas
utilizadas que actualmente no se utilizan. Por lo tanto, esas E/S serán monitoreadas en la
configuración del PLC.
Singletask en multitarea Aún no se ha implementado
Modo de direccionamiento de si está activado: modo de direccionamiento de bytes (por ejemplo, var1 AT
bytes %QD4 se escribe en la dirección %QB4)

Inicializar cero si está activado: Inicialización general con cero


Descargar archivo de símbolos si está activado: Si se ha creado un archivo de símbolos, se descargará
Configuración de símbolos del archivo INI
Si está activado: Los parámetros para la configuración del símbolo no se leen
desde el cuadro de diálogo de opciones del proyecto, sino desde el archivo
codesys.ini, o desde otro archivo al que se hace referencia en el codesys.ini

10-94 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

Elemento de diálogo Significado

Navegador PLC si está activado: Funcionalidad del navegador PLC activada


Rastro si está activado: Funcionalidad de seguimiento activada
VAR_IN_OUT como referencia si se activa: En una llamada a una función, las variables VAR_IN_OUT se llaman
por referencia (puntero); Por lo tanto, no se pueden asignar constantes y no es
posible el acceso de lectura/escritura desde fuera del bloque de funciones.
Inicializar entradas si no está activado: Por razones de optimización, no se generará ningún código
de inicio para las entradas declaradas con "AT %IX" (-> valores indefinidos hasta
el 1. ciclo de bus!)
Carga automática del si está activado: Se crea automáticamente un proyecto de arranque después de
proyecto de arranque la descarga de un nuevo programa y se envía al PLC.

Movimiento suave si está activada: La funcionalidad SoftMotion está activada, es decir, disponible
en la pestaña Recursos (lista de programas CNC, CAM)

Mantener el forzamiento si está activado: La lista de fuerza se mantendrá en el sistema de tiempo de ejecución
incluso cuando se cierre la sesión. En este caso, al cerrar la sesión, el usuario
obtendrá un cuadro de diálogo donde puede decidir si realmente se debe mantener el
forzamiento. (actualmente soportado por los sistemas de tiempo de ejecución
CoDeSys SP 32bit full, V2.4, Patch 4 y CoDeSys SP 32bit).
Salvar si está activado: El sistema de tiempo de ejecución sigue forzando incluso en un
reinicio. Esta opción solo está disponible si el objetivo lo permite y si la opción
'Retener forzamiento' (ver arriba) está activada.
Forzamiento independiente del ciclo Si está activado: El forzado no solo se realizará al principio y al final de un ciclo,
sino que se desactivarán todos los accesos de escritura durante el
procesamiento del programa

CoDeSys V2.3 10-95


Apéndice H: - Ajustes de destino en detalle

10.32 Configuración de destino en la categoría Funcionalidad de red


Los elementos descritos para esta pestaña pueden estar disponibles para cada destino estándar.
Configuración de destino de cuadro de diálogo, funcionalidad de red

Elemento de diálogo Significado

Administrador de parámetros Si está activado: la entrada 'Parameter-Manager' aparece en la pestaña Recursos.


de soporte Utilícelo para crear un diccionario de objetos para variables y parámetros, que
permita el intercambio de datos activos y específicos con otros controladores

Variables de red de soporte Si se selecciona esta opción, se pueden utilizar variables de red, que permiten el
intercambio automático de datos en la red

Nombres de Lista de los sistemas de red compatibles, por ejemplo: CAN; UDP; DP
interfaces de red
admitidas
Rangos de índice para Rango de índice para listas de parámetros de tipo 'Parámetros' (consulte
parámetros Recursos, 'Administrador de parámetros')
Rangos de índice para Rango de índice para listas de parámetros de tipo 'Variables' (consulte Recursos,
variables 'Administrador de parámetros')
Rangos de índice para Rango de índice para listas de parámetros de tipo 'Asignaciones' (consulte
asignaciones Recursos, 'Administrador de parámetros') Atención: Si este rango se define aquí,
CanDevice solo tendrá en cuenta este rango para la asignación; Esto significa
que si además se define un rango de índice para los parámetros (ver arriba), ¡no
se tendrá en cuenta!

Rango de subíndice Rango de subíndice dentro de los rangos de índice mencionados anteriormente
para diccionarios de objetos de parámetros y variables (consulte Recursos,
'Administrador de parámetros')

10-96 CoDeSys V2.3


Apéndice H: - Ajustes de destino en detalle

10.33 Configuración de destino en la visualización de categorías


Los elementos descritos para esta pestaña pueden estar disponibles para cada destino estándar.
Configuración de destino de cuadro de diálogo, visualización

Elemento de diálogo Significado

Anchura de la pantalla Se mostrará un área de la anchura y la altura dadas en la ventana del editor al
en píxeles Altura de la editar una visualización. Así, por ejemplo, el tamaño de la pantalla en la que se
ejecutará la visualización de destino más adelante, se puede tener en cuenta a
pantalla en píxeles
la hora de posicionar los elementos de visualización.

Usar el formato de archivo 8.3 Los nombres de los mapas de bits y los archivos de idioma que se utilizan en
la visualización de CoDeSys se acortarán al formato de notación 8.3 y se
cargarán en el PLC en este formato.
Manejo de alarmas en el PLC El ALARM_TASK de la tarea se insertará automáticamente en la configuración
de la tarea. Procesará un código ST creado implícitamente evaluando el
estado de las alarmas particulares y, si corresponde, ejecutando las acciones
asociadas.
El código ST necesita funciones auxiliares de la biblioteca
SysLibAlarmTrend.lib. Esta biblioteca se cargará automáticamente. (Además,
se cargan las bibliotecas implícitamente necesarias SysLibSockets.lib,
SysLibMem.lib, SysLibTime.lib, SysLibFile.lib. Estas bibliotecas deben ser
compatibles con el sistema de destino !) Si la opción está desactivada y la
visualización de destino está activada, se volcará un error de compilación.
Sugerencia: La "Gestión de alarmas en el PLC" se puede utilizar incluso si no
se ha activado la visualización de destino o web. Incluso entonces se generará
el código ST requerido.
Almacenar datos de tendencias en el PLC
Se activará la gestión de tendencias en el PLC. El TREND_TASK de la tarea
se insertará automáticamente en la configuración de la tarea Procesará un
código ST creado implícitamente para registrar los datos de la tendencia en un
búfer de anillo y, si la opción Historial está activada en el elemento de
tendencia, para almacenar los valores en un sistema de archivos.
El código ST necesita funciones auxiliares de la biblioteca
SysLibAlarmTrend.lib. Esta biblioteca se cargará automáticamente. (Además,
se cargan las bibliotecas implícitamente necesarias SysLibSockets.lib,
SysLibMem.lib,SysLibTime.lib, SysLibFile.lib. Estas bibliotecas deben ser
compatibles con el sistema de destino !) Si la opción está desactivada y la
visualización de destino está activada, se volcará un error de compilación.

CoDeSys V2.3 10-97


Apéndice H: - Ajustes de destino en detalle

tareas Sugerencia: ' Almacenar datos de tendencias...' se puede utilizar incluso si no se ha


activado ninguna visualización de destino o web. Se generará el código ST requerido.

Activar la variable de La variable de sistema CurrentVisu se puede utilizar para cambiar entre
sistema 'CurrentVisu' visualizaciones.
Fuentes admitidas en el destino Lista de fuentes compatibles con el sistema de destino.

Manejo simplificado de Si está activado: En el modo en línea, el manejo de la entrada se simplifica: las
entradas teclas <Tab> y <Espacio> no son necesarias para pasar de un campo de entrada
al siguiente. La selección se reenvía automáticamente al siguiente campo después
de haber terminado una entrada con la tecla <Retorno>. También se puede
acceder a un campo de entrada a través de las teclas de flecha o <Tab> e
inmediatamente se puede ingresar una entrada. Si no está activado: se deben
utilizar las teclas <Tab> y <Espacio> para llegar al siguiente campo de entrada y
seleccionar este campo para hacer posible una entrada.
Visualización web Si está activado: Todos los objetos de visualización del proyecto se compilan
para su uso como objetos de visualización web.

Compresión Si está activado: Los siguientes archivos para la visualización web, que deben
transferirse de Codesys al servidor web/PLC, se transferirán en un formato
empaquetado (formato zip); De lo contrario, en formato original:
- Archivos de visualización XML
- archivos de imagen (solo *.bmp, porque con otros no hay efecto de compresión)
- Archivos de idioma (*.xml para textos dinámicos, *.tlt, *.vis) Los archivos adicionales al
nombre de archivo existente obtienen la extensión ".zip". El punto en el nombre
existente será reemplazado por un guión bajo (ejemplo: "PLC_VISU.xml" será
renombrado a "PLC_VISU_xml.zip") No se realiza ninguna compresión para los
archivos Java (minml.jar, webvisu.jar) y la página principal webvisu.htm.

Impedir la descarga Si está activado: Cuando se descarga el proyecto, todos los archivos que se
de archivos de utilizan en la visualización actual no se descargarán en el sistema de destino.
visualización Los archivos de visualización solo se descargan para la visualización de
destino o web y pueden ser mapas de bits, archivos de idioma y, para la
visualización web, también archivos de descripción XML.
Uso del teclado para tablas Si esta opción está activada, en el modo en línea es posible el uso del teclado
de las tablas en la visualización (CoDeSys HMI, Web-Visualization,
Target-Visualization). Si se desactiva esta opción, no se generará ningún
código para las funciones clave, lo que podría ser razonable por motivos de
rendimiento cuando se utiliza Target-Visualization.
Visualización de objetivos si está activado: Todos los objetos de visualización del proyecto se compilan
para su uso como objetos de visualización de destino.

Usar VISU_INPUT_TASK solo se puede activar si la visualización de destino está activada, ver arriba) Si se activa y
se desactiva 'Desactivar generación de tareas' (ver más abajo), se crearán
automáticamente dos tareas para controlar la visualización de destino: VISU_INPUT_TASK
controla el procesamiento de las entradas de usuario por medio de la POU implícitamente
disponible MAINTARGETVISU_INPUT _CODE VISU_TASK controla el repintado de los
elementos de visualización por medio de la POU implícitamente disponible
MAINTARGETVISU_PAINT _CODE. Si la opción está desactivada, solo se creará
VISU_TASK y solo se utilizará POU MAINTARGETVISU_PAINT_CODE, que en este caso
incluirá adicionalmente la funcionalidad de MAINTARGETVISU_INPUT_ CODE.

Desactivar la generación de (solo se puede activar si la visualización de objetivos está activada, ver arriba) Si la
opción está activada, las tareas VISU_INPUT_TASK y VISU_TASK (véase más arriba
en 'Usar VISU_INPUT_TASK') no se generarán automáticamente. Por lo tanto, las
POU mencionadas anteriormente, o - si la opción Usar VISU_INPUT_TASK' no está
activada - solo se puede llamar a la POU MAINTARGETVISU_PAINT_CODE en el
programa de aplicación y, si se desea, se puede controlar mediante cualquier tarea,
según lo definido por el programador. En referencia a esto, consulte la descripción en la
visualización de destino (en el manual de usuario de la visualización de CoDeSys).

10-98 CoDeSys V2.3


Apéndice I: - Uso del teclado

Apéndice I: Uso del teclado

10.34 Uso del teclado


Si desea ejecutar CoDeSys usando solo el teclado, encontrará necesario usar algunos comandos que
no se encuentran en el menú.
La tecla de función <F6> le permite alternar entre las partes de la declaración y la instrucción dentro de
la POU abierta.
<Alt>+<F6> le permite pasar de un objeto abierto al Organizador de objetos y de allí a la ventana de
mensajes si está abierta. Si hay un cuadro de búsqueda abierto, <Alt>+<F6> le permite cambiar del
Organizador de objetos al cuadro de búsqueda y de allí al objeto.
Presione <Ctrl>+<F6> para pasar a la siguiente ventana abierta del editor, presione
<Ctrl>+<Shift>+<F6> para llegar a la anterior.
Presione <Tabulador> para desplazarse por los campos de entrada y los botones de los cuadros de diálogo.
Las teclas de flecha le permiten desplazarse por las tarjetas de registro y los objetos del Organizador
de objetos y el Administrador de bibliotecas.
Todas las demás acciones se pueden realizar utilizando los comandos de menú o con los accesos
directos enumerados después de los comandos de menú. <Mayús>+<F10> abre el menú contextual
que contiene los comandos más utilizados para el objeto seleccionado o para el editor activo.

10.35 Combinaciones de teclas


A continuación se muestra un resumen de todas las combinaciones de teclas y teclas de función:

Funciones generales

Moverse entre la parte de declaración y la parte de <F6>


instrucción de una POU
Menú contextual <Mayús>+<F10>
Modo de acceso directo para declaraciones <Ctrl>+<Intro>
Desplazarse de un mensaje en la ventana Mensaje a la <Entra>
posición original en el editor
Pasar a la siguiente ventana abierta del editor <Ctrl>+<F6>
Ir a la ventana del editor abierta anteriormente <Ctrl>+<Mayús>+<F6>
Abrir y cerrar variables de varias capas <Entra>
Abrir y cerrar carpetas <Entra>
Cambiar las tarjetas de registro en el Organizador de <Teclas de flecha>
objetos y en el Administrador de bibliotecas
Pasar al siguiente campo dentro de un cuadro de diálogo <Pestaña>
Ayuda contextual <F1>

Comandos Generales

'Archivo' 'Guardar' <Ctrl>+<S>

CoDeSys V2.3 10-99


Apéndice I: - Uso del teclado

'Archivo' 'Imprimir' <Ctrl>+<P>


'Archivo' 'Salir' <Alt>+<F4>
'Proyecto' 'Construir' <F11>
'Proyecto' 'Eliminar objeto' <Del>
'Proyecto' 'Añadir objeto' <Ins>
'Proyecto' 'Cambiar nombre del objeto' <Barra espaciadora>
'Proyecto' 'Objeto abierto' <Entra>
'Editar' 'Deshacer' <Ctrl>+<Z>
'Editar' 'Rehacer' <Ctrl>+<Y>
'Editar' 'Cortar' <Ctrl>+<X> o
<Mayús>+<Supr>

'Editar' 'Copiar' <Ctrl>+<C>


'Editar' 'Pegar' <Ctrl>+<V>
'Editar' 'Eliminar' <Del>
'Editar' 'Buscar siguiente' <F3>

'Editar' 'Asistente de entrada' <F2>


'Editar' 'Declaración automática' <Mayús>+<F2>
'Editar' 'Siguiente error' <F4>
'Editar' 'Error anterior' <Mayús>+<F4>
'En línea' 'Iniciar sesión' <Alt><F8>
'En línea' 'Cerrar sesión' <Ctrl>+<F8>
'En línea' 'Correr' <F5>
'En línea' 'Alternar punto de interrupción' <F9>
'En línea' 'Paso a paso' <F10>
'En línea' 'Entra' <F8>
'En línea' 'Ciclo único' <Ctrl>+<F5>
'En línea' 'Escribir valores' <Ctrl>+<F7>
'En línea' 'Valores de fuerza' <F7>
'En línea' 'Fuerza de liberación' <Mayús>+<F7>
''En línea'' ''Diálogo de escritura/fuerza' <Ctrl><Mayús>+<F7>
'Ventana' 'Mensajes' <Mayús>+<Esc>

Comandos del editor FBD

'Insertar' 'Red (después)' <Ctrl>+<T>


'Insertar' 'Asignación' <Ctrl>+<A>
'Insertar' 'Saltar' <Ctrl>+<L>

10-100 CoDeSys V2.3


Apéndice I: - Uso del teclado

'Insertar' 'Volver' <Ctrl>+<R>


'Insertar' 'Bloque de funciones' <Ctrl>+<B>
'Insertar' 'Entrada' <Ctrl>+<U>
'Extras' 'Negate' <Ctrl>+<N>
'Extras' 'Zoom' <Alt>+<Intro>

Comandos del editor CFC

'Insertar' 'PARA' <Ctrl>+<B>


'Insertar' 'Entrada' <Ctrl>+<E>
'Insertar' 'Salida' <Ctrl>+<A>
'Insertar' 'Saltar' <Ctrl>+<J>
'Insertar' 'Etiqueta' <Ctrl>+<L>
'Insertar' 'Volver' <Ctrl>+<R>
'Insertar' 'Comentario' <Ctrl>+<K>
'Insertar' 'PARA entrada' <Ctrl>+<U>
'Extras' 'Negate' <Ctrl>+<N>
'Extras' 'Set/Reset' <Ctrl>+<T>
'Extras' 'Conexión' <Ctrl>+<M>
'Extras' 'EN/ENO' <Ctrl>+<I>
'Extras' 'Zoom' <Alt>+<Intro>

Comandos de LD Editor

'Insertar' 'Red (después)' <Ctrl>+<T>


'Insertar' 'Contacto' <Ctrl>+<K>
'Insertar' 'Contacto (negado)' <Ctrl>+<G>
'Insertar' 'Contacto paralelo' <Ctrl>+<R>
'Insertar' 'Contacto paralelo (negado)' <Ctrl>+<D>
'Insertar' 'Bloque de funciones' <Ctrl>+<B>
'Insertar' 'Bobina' <Ctrl>+<L>
''Insertar'' ''Set'' bobina' <Ctrl>+<I>
'Insertar en bloques' 'Entrada' <Ctrl>+<U>
'Insertar en bloques' 'Asignar' <Ctrl>+<A>
'Extras' 'Negate' <Ctrl>+<N>
'Extras' 'Zoom' <Alt>+<Intro>

CoDeSys V2.3 10-101


Apéndice I: - Uso del teclado

Comandos del editor SFC

'Insertar' 'Paso de transición (antes)' <Ctrl>+<T>


'Insertar' 'Paso de transición (después)' <Ctrl>+<E>
'Insertar' 'Rama alternativa (derecha)' <Ctrl>+<A>
'Insertar' 'Rama paralela (derecha)' <Ctrl>+<L>
'Insertar' 'Saltar' <Ctrl>+<U>
'Extras' 'Zoom Acción/Transición' <Alt>+<Intro>
Volver al editor desde la descripción general de SFC <Entra>

Trabajar con el PLC o la configuración de tareas

Abrir y cerrar elementos de organización <Entra>


Coloque un cuadro de control de edición alrededor del nombre <Barra espaciadora>
'Extras' 'Editar entrada' <Entra>

Trabajar en el editor del Administrador de parámetros

Alternar entre la ventana de navegación y el editor de listas <F6>


Eliminar una línea en el editor de listas <Ctrl>+<Supr>
<Mayús>+<Supr>

Eliminar un campo en el editor de listas <Del>

10-102 CoDeSys V2.3


Apéndice J: - Recomendaciones sobre la denominación de los identificadores

Apéndice J: Recomendaciones sobre la nomenclatura de los


identificadores
10.36 Denominación de identificadores
Los identificadores se definen en la declaración de variables (nombres de variables), tipos de datos
definidos por el usuario y en la creación de POU (funciones, bloques de funciones, programas) y
visualizaciones. Puede seguir las siguientes recomendaciones con respecto a la nomenclatura de los
identificadores para que sea lo más único posible.

10.37 Identificadores de variables (nombres de variables)


La nomenclatura de las variables en aplicaciones y bibliotecas en la medida de lo posible debe seguir
la notación húngara:
Para cada variable se debe encontrar una descripción breve y significativa, el nombre base. La primera letra de
cada palabra de un nombre base debe ser una letra mayúscula, las demás deben ser minúsculas (Ejemplo:
FileSize). Si es necesario, se puede crear adicionalmente un archivo de traducción para otros idiomas.

Antes del nombre base, correspondiente al tipo de datos de la variable, se añaden prefijos en letras
minúsculas.

Tipo de dato Límite inferior Límite superior Contenido de Prefijo Comentario


la
información
BOOL FALSO VERDADERO 1 broca x*
b reservado
BYTE 8 bits por Cadena de bits, no para
el arithm. Operaciones
PALABRA 16 bits w Cadena de bits, no para
el arithm. Operaciones
DWORD 32 bits Dw Cadena de bits, no para
el arithm. Operaciones
LWORD 64 bits Lw no para el aritmismo. Operaciones

SINT -128 127 8 bits Si


USINT 0 255 8 bits USI
INT -32.768 32.767 16 bits Yo
UINT 0 65.535 16 bits Ui
FUERZA -2.147.483.648 2.147.483.647 32 bits di
UDINT 0 4.294.967.295 32 bits udi
LINT -263 263 - 1 64 bits Li
ULINT 0 264 - 1 64 bits uli

REAL 32 bits r
LREAL 64 bits Lr

CUERDA s

CoDeSys V2.3 10-103


Apéndice J: - Recomendaciones sobre la denominación de los identificadores

HORA Tim
TIME_OF_DAY Tod
FECHA HORA Despegue

FECHA fecha
ENUMERACIÓN 16 bits e
PUNTERO p
ARREGLO un

* Para BOOLean, se elige x como prefijo, para diferenciarlo de BYTE y también para acomodar la percepción de un
programador IEC (ver direccionamiento %IX0.0).
Ejemplos:
bySubIndex: BYTE; sFileName: CADENA; udiCounter: UDINT;

En las declaraciones anidadas, los prefijos se adjuntan entre sí en el orden de las declaraciones:

Ejemplo:
pabyTelegramData: PUNTERO A LA MATRIZ [0..7] DE BYTE;

Las instancias de bloque de funciones y las variables de tipos de datos definidos por el usuario
como prefijo obtienen un acceso directo para el nombre del tipo de datos FB- o de datos (ejemplo: sdo).
Ejemplo:
cansdoReceivedTelegram: CAN_SDOTelegram; TIPO
CAN_SDOTelegram : (* prefijo: sdo *)
ESTRUCTURA
wÍndice:PALABRA; bySubIndex:BYTE; porLen:BYTE;

aby: MATRIZ [0..3] DE BYTE; END_STRUCT END_TYPE

Las constantes locales (c) comienzan con el prefijo c y un guión bajo adjunto, seguido del tipo prefijo
y el nombre de la variable.
Ejemplo:
VAR CONSTANTE c_uiSyncID: UINT :=
16#80; END_VAR

Para las variables globales (g) y las constantes globales (gc), se adjunta un prefijo adicional + guión
bajo al prefijo de la biblioteca:
Ejemplos:
VAR_GLOBAL
CAN_g_iTest: INT;
END_VAR VAR_GLOBAL CONSTANTE

CAN_gc_dwExample: DWORD;
END_VAR

10-104 CoDeSys V2.3


Apéndice J: - Recomendaciones sobre la denominación de los identificadores

10.38 Identificadores para tipos de datos definidos por el usuario (DUT)


El nombre de cada tipo de datos de estructura consta de un prefijo de biblioteca (Ejemplo: CAN), un guión bajo y
una descripción expresiva preferiblemente corta (Ejemplo: SDOTelegram) de la estructura. El prefijo asociado para
las variables utilizadas de esta estructura debe seguir directamente después de los dos puntos.

Ejemplo:
TYPE CAN_SDOTelegram : (* prefijo: sdo *) STRUCT wIndex:WORD; bySubIndex:BYTE; porLen:BYTE;
abyData: MATRIZ [0..3] DE BYTE; END_STRUCT END_TYPE

Las enumeraciones comienzan con el prefijo de biblioteca (Ejemplo: CAL), seguido de un guión bajo y
el identificador en mayúsculas.
Tenga en cuenta que en versiones anteriores de CoDeSys los valores ENUM > 16#7FFF han causado
errores, porque no se convertían automáticamente en valores INT. Por esta razón, los ENUM siempre
deben definirse con valores INT correctos.
Ejemplo:
TIPO CAL_Day :( CAL_MONDAY, CAL_TUESDAY, CAL_WEDNESDAY, CAL_THIRSDAY, CAL_FRIDAY,
CAL_SATURDAY, CAL_SUNDAY);

Declaración:
eToday: CAL_Day;

10.39 Identificadores de funciones, bloques de funciones, programas (POU)


Los nombres de las funciones, los bloques de funciones y los programas consisten en el prefijo de la biblioteca
(Ejemplo: CAN), un guión bajo y un nombre corto expresivo de la POU (Ejemplo: SendTelegram). Al igual que con
las variables, siempre la primera letra de una palabra del nombre de la POU debe ser una letra mayúscula, las
demás deben ser letras minúsculas. Se recomienda componer el nombre de la POU de un verbo y un sustantivo.

Ejemplo:
FUNCTION_BLOCK CAN_SendTelegram (* prefijo: canst *)
En la parte de la declaración debe proporcionarse una breve descripción de la POU a modo de comentario. Más
adelante, todas las entradas y salidas deben ir acompañadas de comentarios. En el caso de los bloques de
funciones, el prefijo asociado para las instancias de configuración debe seguir directamente después del nombre.

Las acciones no tienen prefijo; solo las acciones que deben llamarse solo internamente, es decir, por
la propia POU, comienzan con "prv_".
Cada función, por razones de compatibilidad con versiones anteriores de CoDeSys, debe tener al
menos un parámetro. Las funciones externas no deben utilizar estructuras como valores devueltos.

CoDeSys V2.3 10-105


Apéndice J: - Recomendaciones sobre la denominación de los identificadores

10.40 Identificadores para visualizaciones


Nota: Actualmente debe evitar que una visualización tenga el mismo nombre que otra POU en el
proyecto. Esto daría lugar a problemas en caso de cambios entre visualizaciones.

10-106 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

Apéndice K: Errores y advertencias del compilador


Si se detectan errores durante la compilación del proyecto, los mensajes se volcarán en la ventana de
mensajes. También es posible que se muestren advertencias allí. <F4> siempre permite saltar a la
siguiente línea de mensaje en esta ventana, por lo que también se abrirá la POU en cuestión. Los
mensajes de error y advertencia van precedidos de números únicos. Si se selecciona una línea de
mensaje en la ventana de mensajes, <F1> abrirá la ventana de ayuda en línea correspondiente.

10.41 Advertencias
1100
"Función desconocida '<nombre>' en la biblioteca."

Se utiliza una biblioteca externa. Compruebe si todas las funciones que se definen en el archivo .hex
también se definen en el archivo .lib.

1101
"Símbolo no resuelto '<Símbolo>'".
El generador de código espera una POU con el nombre <Símbolo>. No está definido en el proyecto.
Defina una función/programa con este nombre.

1102
"Interfaz no válida para el símbolo '<Símbolo>'."
El generador de código espera una función con el nombre <Symbol> y exactamente una entrada
escalar, o un programa con el nombre <Symbol> y sin entrada ni salida.

1103
"La constante '<name>' en la dirección de código '<address>' sobrescribe un límite de página de 16K!"
Una constante de cadena supera el límite de página de 16K. El sistema no puede manejar esto.
Depende del sistema de tiempo de ejecución si el problema podría evitarse mediante una entrada en el
archivo de destino. Póngase en contacto con el fabricante del PLC.

1200
"Las variables de acceso de la tarea '<nombre>', llamada de '<nombre>' en la lista de parámetros no se actualizan"

Las variables, que solo se utilizan en una llamada a un bloque de funciones en la configuración de
tareas, no se enumerarán en la lista de referencias cruzadas.

1300
"Archivo no encontrado '<nombre>'"
El archivo, al que apunta el objeto de variable global, no existe. Por favor, compruebe la ruta.

1301
"¡No se encontró la biblioteca de análisis! No se generará código para el análisis".
Se utiliza la función analyze, pero falta la biblioteca analyzation.lib. Agregue la biblioteca en el
administrador de bibliotecas.

1302

"Se han insertado nuevas funciones con referencia externa. Por lo tanto, el cambio en línea ya no es posible".

Desde la última descarga, ha vinculado una biblioteca que contiene funciones a las que aún no se hace
referencia en el sistema de ejecución. Por esta razón tienes que descargar el proyecto completo.

CoDeSys V2.3 10-107


Apéndice K: - Errores y advertencias del compilador

1400 "¡Se ignora el '<Nombre>' de Pragma desconocido!"

Este pragma no es compatible con el compilador. Consulte la palabra clave 'pragma' para ver las directivas admitidas.

1401 "La estructura '<name>' no contiene ningún elemento."

La estructura no contiene ningún elemento, pero las variables de este tipo asignan 1 byte de memoria.

1410 "'RETAIN' y 'PERSISTENT' no tienen ningún efecto en las funciones"

Las variables remanentes que se definen localmente en las funciones se manejan como variables locales normales.

1411 "La variable '<name>' en la configuración de la variable no se actualiza en ninguna tarea"

Una llamada no hace referencia a la instancia de nivel superior de la variable en ninguna tarea. Por lo
tanto, no se copiará de la imagen de proceso.
Ejemplo:
Configuración de variables:
VAR_CONFIG
plc_prg.aprg.ainst.in AT %IB0 : INT;
END_VAR
plc_prg: índice :=
INDEXOF(aprg);
Se hace referencia al programa aprg, pero no se llama. Por lo tanto, plc_prg.aprg.ainst.in nunca
obtendrá el valor real de %IB0.

1412 "Token inesperado '<Name>' in pragma {pragma name}"

Está utilizando un pragma que no está escrito correctamente o que no se puede usar en esta
ubicación. Consulte la palabra clave 'pragma' en la Ayuda en línea de CoDeSys o en la Guía del
usuario para obtener ayuda para una corrección.
1413 "'<Name>' no es una clave válida para la lista '<Name>'. La clave será ignorada"

En el pragma se especifica una lista de parámetros inexistente. Compruebe el nombre de la lista o


eche un vistazo en el Administrador de parámetros para ver las listas disponibles actualmente.

1414 "Demasiadas definiciones de componentes en pragma '<Nombre>'"

El Pragma contiene más definiciones (entre corchetes) que elementos en la matriz, bloque de
funciones o estructura correspondiente.

1415 "'<Nombre>' (<Número>): El literal '<Número>' se asigna a más de una enumeración"

En la declaración de enumeración <Name> se asigna el mismo número a más de un componente de


enumeración (por ejemplo, TYPE aenum (a:=1, b:=1); END_TYPE).

1500 "La expresión no contiene ninguna asignación. No se generó ningún código".

No se utiliza el resultado de esta expresión. Por esta razón, no se genera ningún código para toda la
expresión.

10-108 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

1501 "Constante de cadena pasada como 'VAR_IN_OUT': '<Nombre>' no debe sobrescribirse!"

Es posible que la constante no se escriba dentro de la POU, ya que no es posible comprobar el tamaño.

1502 "La variable '<Name>' tiene el mismo nombre que una POU. ¡No se llamará al POU!".

Se utiliza una variable, que tiene el mismo nombre que una POU.
Ejemplo:
PROGRAMA a ...

VAR_GLOBAL a: INT; END_VAR ...

un; (* No se llama a POU a, sino que se carga la variable a. *)

1503 "El POU '<name>' no tiene salidas. El resultado del cuadro se establece en 'TRUE'".

El pin de salida de una POU que no tiene salidas, está conectado en FBD o KOP. La asignación
obtiene automáticamente el valor TRUE.

1504 "'<name>' ('<number>'): Es posible que la instrucción no se ejecute debido a la evaluación de la


expresión lógica"

Con el tiempo, no se ejecutarán todas las ramas de la expresión lógica.


Ejemplo:
IF a AND funct(TRUE) ENTONCES ....
Si a has es FALSE, no se llamará a funct.

1505 "¡Efecto secundario en '<Nombre>'! ¡Es probable que Branch no se ejecute!"

La primera entrada de la POU es FALSE, por esta razón la rama lateral, que puede entrar en la
segunda entrada, no se ejecutará.

1506 "La variable '<name>' tiene el mismo nombre que una acción local. ¡La acción no será convocada!"

Cambie el nombre de la variable o de la acción.

1507 "La instancia '<name>' tiene el mismo nombre que una función. No se llamará a la instancia".

Se llama en ST a una instancia que tiene el mismo nombre que una función. La función se llamará !
Usa diferentes nombres.

1509 "'<name>' ('<number>'): Las funciones que se registrarán como devoluciones de llamada deben
comenzar con 'Callback'."
Está utilizando una función de devolución de llamada, cuyo nombre no comienza con "devolución de
llamada". Esto puede causar efectos inesperados en RISC o en el RISC. ¡Controladores Motorola 68K!

CoDeSys V2.3 10-109


Apéndice K: - Errores y advertencias del compilador

1510 "El operando que se va a rotar no tiene ningún tipo explícito. Por favor, utilice un literal escrito, como
'DWORD#1'".
Para la constante utilizada en la operación ROL o ROR debe haber una definición de tipo de datos.
Para obtener información sobre las constantes con tipo, consulte AQUÍ.

1511 "El operando que se va a desplazar no tiene ningún tipo explícito. Por favor, utilice un literal escrito, como
'DWORD#1'".
Para la constante utilizada en la operación SHL o SHR, debe haber una definición de tipo de datos.
Para obtener información sobre las constantes con tipo, consulte AQUÍ.

1550 "Múltiples llamadas de la POU '<Nombre>' en una red pueden provocar efectos secundarios no deseados"

Compruebe si la llamada múltiple de esta POU es realmente necesaria. Por una llamada múltiple
pueden producirse sobrestrikes de valores no deseados.

1600 "La base de datos abierta no está clara (el código generado puede ser erróneo)."

El programa original de Siemens no dice qué POU se abre.

1700 "Entrada no conectada".

En CFC se utiliza un cuadro de entrada que no tiene asignación. Para ello no se generará ningún código.

1750 "Paso '<Nombre>': ¡el tiempo mínimo es mayor que el tiempo máximo!"

Abra el cuadro de diálogo 'Atributos de paso' para este paso y corrija las definiciones de tiempo.

1800 "<name>(element #<element number>): watchexpression '<name>'" no válida

El elemento de visualización contiene una expresión que no se puede supervisar. Compruebe el


nombre de la variable y los reemplazos de marcadores de posición.

1801 "'<name> (number): No es posible introducir la expresión '<name>'

En la configuración del objeto de visualización en la entrada de campo se utiliza una expresión


compuesta. Reemplácelo por una sola variable.

1802 "<Objeto de visualización>(Número de elemento): No se encontró el mapa de bits '<name>'

Asegúrese de que haya un archivo de mapa de bits externo disponible en esa ruta que se define en el
cuadro de diálogo de configuración de visualización.

1803 "'<name>'('<number>'): "La acción de impresión no sería compatible con la visualización web y de destino"

Se asigna una acción de impresión a una alarma configurada en la visualización. Esto no se tendrá en
cuenta en la visualización web o de destino.

10-110 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

1804 "'<name>'('<number>'): La fuente '<name>' no es compatible con el objetivo."

En la visualización, está utilizando una fuente que no es compatible con el sistema de destino. Consulte
en la configuración de destino, la categoría "Visualización" para conocer las fuentes compatibles.

1807 "<name> (<number>): No hay ventana de mensaje para alarmas para la visualización de destinos"

¡Tenga en cuenta que el "mensaje" de acción no es compatible con la visualización de destino!

1808 "'<name>'('<number>'): Un polígono consta de muchos puntos para la visualización de destino. En el


caso de un elemento de medidor, abra la configuración una vez".

De forma predeterminada, se permiten un máximo de 512 puntos, es posible que se defina otro número
máximo específico de destino. Al abrir el cuadro de diálogo de configuración, el elemento se optimizará
al número permitido de puntos.

1809 "'<name> ('<number>'): Visualización no válida como destino de zoom"

No se ha podido encontrar esta visualización. Compruebe si el nombre de la visualización no es


correcto o si el objeto de visualización no está disponible en absoluto.

1850 "La variable de entrada en %IB<number> se utiliza en la tarea '<name>' pero se actualiza en otra tarea"

Compruebe qué tareas están utilizando esta variable y si la programación actual no está causando
efectos indeseables. Por lo general, la actualización del valor de la variable se realiza en la tarea con
mayor prioridad.

1851 "La variable de salida en %IQ<number> se utiliza en la tarea '<name>' pero se actualiza en otra tarea"

Compruebe qué tareas están utilizando esta variable y si la programación actual no está causando
efectos indeseables. Por lo general, la actualización del valor de la variable se realiza en la tarea con
mayor prioridad.

1852 "¡Es posible que CanOpenMaster no se llame cíclicamente en la tarea de evento '<nombre>'!
¡Establezca el parámetro de módulo UpdateTask!"

Actualmente, la tarea de evento con nombre llama a CanOpen Master. Si desea que se llame
cíclicamente, especifique una tarea apropiada a través del parámetro UpdateTask en la configuración
del PLC en el cuadro de diálogo 'Parámetros del módulo'.

1853 "Es posible que una DOP (índice: '<número>') no se actualice cíclicamente en la tarea de evento
'<nombre>'"
Actualmente, el PDO nombrado se controla a través de la tarea de evento nombrada. Pero si desea
que se llame cíclicamente, debe asignar una tarea adecuada a la PDO cambiando las referencias de
E/S a esta tarea.
1900 "POU '<name>' (rutina principal) no está disponible en la biblioteca"

La POU de inicio (por ejemplo, PLC_PRG) no estará disponible cuando el proyecto se utilice como biblioteca.

1901 "¡Las variables de acceso y las configuraciones de variables no se guardan en una biblioteca!"

CoDeSys V2.3 10-111


Apéndice K: - Errores y advertencias del compilador

Las variables de acceso y la configuración de variables no se almacenan en la biblioteca.

1902 "'<Name>': ¡no hay biblioteca para el tipo de máquina actual!"

El archivo .obj de la biblioteca se generó para otro dispositivo.

1903 "<Nombre>: no es una biblioteca válida"

El archivo no tiene el formato solicitado para el destino real.

1904 "La constante '<Nombre>' esconde una constante del mismo nombre en una biblioteca"

En el proyecto, ha definido una constante que tiene el mismo nombre que una que se define en una
biblioteca vinculada. ¡La variable de biblioteca se sobrescribirá!

1970 "Administrador de parámetros: Lista '<Nombre>', Columna '<Nombre>', Valor '<Nombre>' no se pudo importar!"

Compruebe el archivo de importación *.prm para ver si hay entradas que no coincidan con la
configuración actual (valores estándar resp. XML archivo de descripción) del Administrador de
parámetros.
1980 Variables de red global '<Nombre>' '<Nombre>': ¡la lectura y escritura simultáneas pueden provocar la pérdida
de datos!"

En la configuración de la lista de variables de red (seleccione la lista en la pestaña Recursos y abra el


cuadro de diálogo 'Lista global de variables' mediante el comando 'Propiedades' en el menú contextual)
se activan las opciones 'Leer' y 'Escribir'. Tenga en cuenta que esto podría provocar pérdidas de datos
durante la comunicación.
1990
"No hay 'VAR_CONFIG' para '<nombre>'"
Para
Variable_Configuration
esta variable no hay (VAR_CONFIG).
ninguna configuración
Abra la ventana
de dirección
Variable_Configuration
en el en la pestaña
Recursos
disponibley allí inserte la configuración adecuada (Comando 'Insertar 'Todas las rutas de instancia').

2500 "Tarea '<nombre de tarea>': no se ha especificado ningún tiempo de ciclo para la tarea cíclica"

En la configuración de la tarea se ha creado una tarea cíclica, para la que no se ha definido ningún
tiempo de ciclo. Introduzca un intervalo de tiempo adecuado en el cuadro de diálogo 'Atributos de tarea'
en "Intervalo".
4710 "'<name>' ('<number>'): No se ha configurado una expresión necesaria"

En la configuración del elemento deslizante en la categoría 'Variables' no se introduce un valor válido


para cada uno de los campos 'Min.Value', 'Slider' y 'Max. Value'.

4711 "'<name>'('<number>'): el elemento slider no es compatible con SysLibTargetVisu."

Instale y use la versión actual de la biblioteca SysLibTargetVisu.library.

4714 "'<name>'('<number>'): El tipo de la variable de selección tiene que ser un tipo con signo compatible con

INT""

10-112 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

Compruebe y corrija adecuadamente la configuración del elemento de la tabla en la categoría "Selección".

4715 "El destino actual no admite la visualización formateada de valores de fecha y hora"

La opción "Visualización de la hora formateada" está activada en la configuración de una visualización.


Sin embargo, esto no es compatible con el sistema de destino utilizado actualmente.

4716 "El destino actual no admite el manejo simplificado de entradas"

En la configuración de destino, en la categoría 'Visualización' está activada la opción 'Manejo simplificado de entradas'. Tal vez no sea compatible con el SysLibTargetvisu.lib que se utiliza.

actual blanco sistema porque un viejo Versión de el biblioteca

10.42 Errores
3100 "Código demasiado grande. Tamaño máximo: '<número>' Byte (<número>K)"

Se supera el tamaño máximo del programa. Reducir el tamaño del proyecto.

3101 "Datos totales demasiado grandes. Tamaño máximo: '<número>' Byte (<número>K)"

Se supera la memoria. Reduzca el uso de datos de la aplicación.

3110 "Error en la biblioteca '<Nombre>'."

El archivo .hex no está en formato INTEL hexadecimal.

3111 "La biblioteca '<Nombre>' es demasiado grande. Tamaño máximo: 64K"

El archivo .hex supera el tamaño máximo establecido.

3112 "Instrucción no reubicable en la biblioteca".

El archivo .hex contiene una instrucción que no se puede reubicar. El código de la biblioteca no se puede vincular.

3113 "El código de biblioteca sobrescribe las tablas de funciones".

Los intervalos de las tablas de código y funciones se superponen.

3114 "La biblioteca utiliza más de un segmento".

Las tablas y el código del archivo .hex utilizan más de un segmento.

CoDeSys V2.3 10-113


Apéndice K: - Errores y advertencias del compilador

3115 "No se puede asignar una constante a VAR_IN_OUT. Tipos de datos incompatibles".

El formato de puntero interno para las constantes de cadena no se puede convertir al formato de
puntero interno de VAR_IN_OUT, porque los datos se establecen "cerca" pero las constantes de
cadena se establecen "enormes" o "lejanas". Si es posible, cambie esta configuración de destino.

3116 "Las tablas de funciones sobrescriben el código de la biblioteca o un límite de segmento".

Código 166x: La biblioteca externa no se puede utilizar con la configuración de destino actual. Estos
deben adaptarse o la biblioteca debe reconstruirse con la configuración adecuada.

3117 "<Nombre> (<Zahl>): Expresión demasiado compleja. No hay más registros disponibles"

La expresión nombrada es demasiado compleja para ser manejada por los registros disponibles.
Intente reducir la expresión mediante el uso de variables provisionales.

3120 "El segmento de código actual supera los 64K."

El código generado actualmente es mayor que 64K. Con el tiempo, se crea mucho código de inicialización.

3121 "PARA demasiado grande".

Una POU no puede exceder el tamaño de 64K.

3122 "Inicialización demasiado grande. Tamaño máximo: 64K"

El código de inicialización de una POU de función o estructura no puede superar los 64K.

3123 "Segmento de datos demasiado grande: segmento '<Número>%s', tamaño <tamaño> bytes (máximo <número>
bytes)"

Póngase en contacto con el fabricante.

3124 "Constante de cadena demasiado grande: <recuento> caracteres (máximo 253 caracteres)"

La constante dada debe reducirse en número de caracteres.

3130 "Pila de usuarios demasiado pequeña: se necesita DWORD de '<número>, DWORD de '<número>' disponible".

La profundidad de anidamiento de las llamadas POU es demasiado grande. Introduzca un tamaño de


pila más alto en la configuración de destino o compile el proyecto de compilación sin la opción 'Depurar'
(se puede configurar en el cuadro de diálogo 'Proyecto', 'Opciones', 'Compilar').
3131 "La pila de usuarios es demasiado pequeña: se necesita la palabra '<número>, se necesita la palabra
'<número>' disponible."
Póngase en contacto con el fabricante del PLC.

3132 "System-Stack demasiado pequeño: se necesita la palabra '<número>, se necesita la palabra '<número>'
disponible."
Póngase en contacto con el fabricante del PLC.

10-114 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3150 "Parámetro <número> de la función '<nombre>': No se puede pasar el resultado de una función IEC
como parámetro de cadena a una función C."

Utilice una variable intermedia, a la que se asigne el resultado de la función IEC.

3160 "No se puede abrir el archivo de biblioteca '<nombre>'."

Se incluye una biblioteca <nombre> en el administrador de bibliotecas para este proyecto, pero el
archivo de biblioteca no existe en la ruta de acceso dada.

3161 "La biblioteca '<name>' no contiene ningún segmento de código"

Un archivo .obj de una biblioteca debe contener al menos una función C. Inserte una función ficticia en
el archivo .obj, que no está definida en el archivo .lib.

3162 "No se pudo resolver la referencia en la biblioteca '<nombre>'(Símbolo '<nombre>', Clase '<nombre>',
Tipo '<nombre>')"

El archivo .obj contiene una referencia no resoluble a otro símbolo. Por favor, compruebe la configuración de la
C-Compilador.

3163 "Tipo de referencia desconocido en la biblioteca '<nombre>' (Símbolo '<nombre>' , Clase '<nombre>' ,
Tipo '<nombre>')"

El archivo .obj contiene un tipo de referencia, que el generador de código no puede resolver. Por favor,
compruebe la configuración del C-Compiler.

3200 "<nombre>: Expresión booleana a compleja"

La memoria temporal del sistema de destino es insuficiente para el tamaño de la expresión. Divida la
expresión en varias expresiones parciales, utilizando así asignaciones a variables intermedias.

3201 "<nombre> (<red>): Una red no debe dar lugar a más de 512 bytes de código"

Los saltos internos no se pueden resolver. Active la opción "Usar desplazamientos de salto de 16 bits" en la configuración de destino de 68k.

3202 "Saturación de pila con llamadas a funciones anidadas de cadena/matriz/estructura"

Se utiliza una llamada de función anidada CONCAT(x, f(i)). Esto puede provocar la pérdida de datos.
Divida la llamada en dos expresiones.

3203 "Expresión demasiado compleja (demasiados registros de direcciones usados)."

Divida la tarea en varias expresiones.

3204 "Un salto supera los 32k bytes"

Las distancias de salto no pueden ser superiores a 32767 bytes.

CoDeSys V2.3 10-115


Apéndice K: - Errores y advertencias del compilador

3205 "Error interno: demasiadas cadenas constantes"

En una POU se pueden usar como máximo 3000 constantes de cadena.

3206 "Los datos del bloque de funciones superan el tamaño máximo"

A bloque de función puede producir un máximo de 32767 bytes de código.

3207 "Optimización de matrices"

La optimización de los accesos a la matriz ha fallado porque durante el cálculo del índice se ha llamado
a una función.

3208 "Conversión aún no implementada"

A utiliza una función de conversión, que no se implementa para el generador de código real.

3209 "Operador no implementado"

Se utiliza un operador, que no se implementa para este tipo de datos y el generador de código real.
MIN (cadena1, cadena2).

3210 "No se ha encontrado la función '<Nombre>'

A llama a una función, que no está disponible en el proyecto.

3211 "Se ha superado el uso máximo de cadenas"

A variable de tipo string se puede usar en una expresión 10 veces como máximo.

3212 "Orden de biblioteca incorrecto en POU <nombre de POU>"

El orden de las bibliotecas de esta POU no coincide con el del archivo cslib.hex. Corrija el pedido en
consecuencia. (solo para destinos de 68K, si la opción de verificación está activada en el archivo de
destino).
3250 "Real no compatible con el controlador de 8 bits"

El destino no se admite actualmente.

3251 "los tipos de fecha del día no son compatibles con el controlador de 8 bits"

El destino no se admite actualmente.

3252 "Tamaño de los archivos Exeeds de pila <número> bytes"

El destino no se admite actualmente.

3253 "No se pudo encontrar el archivo hexadecimal: '<Nombre>' "

El destino no se admite actualmente.

10-116 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3254 "No se pudo resolver la llamada a la función de biblioteca externa".

El destino no se admite actualmente.

3255 "Los punteros no son compatibles con los controladores de 8 bits".

Evite el uso de punteros en el programa para que se ejecute en el sistema de 8 bits.

3260 "La función '<name>' tiene demasiados argumentos: Aumente el tamaño de la pila de argumentos en
la configuración de destino."

Si es posible, modifique el tamaño de la pila en el cuadro de diálogo 'Plataforma de destino' en la


Configuración de destino (predeterminado: 40), consulte el capítulo 10.29.4. Si la configuración no es
editable en CoDeSys, póngase en contacto con el fabricante del PLC.
3400 "Se ha producido un error durante la importación de variables de acceso"

El archivo .exp contiene una sección de variables de acceso incorrecta.

3401 "Se ha producido un error durante la importación de la configuración de la variable"

El archivo .exp contiene una sección de variables de configuración incorrecta.

3402 "Se ha producido un error durante la importación de variables globales"

El archivo .exp contiene una sección de variables globales incorrecta.

3403 "No se pudo importar <nombre>"

La sección del objeto <nombre> en el archivo .exp no es correcta.

3404 "Se ha producido un error durante la importación de la configuración de la tarea"

La sección para la configuración de la tarea, el archivo .exp no es correcto.

3405 "Se ha producido un error durante la importación de la configuración del PLC"

La sección para la configuración del PLC en el archivo .exp no es correcta.

3406 "Dos pasos con el nombre '<nombre'. El segundo paso no se importa".

La sección de la POU SFC en el archivo .exp contiene dos pasos con nombres iguales. Cambie el
nombre de uno de los pasos del archivo de exportación.

3407 "No se ha encontrado el paso predecesor '<nombre>'

Falta el paso <name> en el archivo .exp.

3408 "No se ha encontrado el paso sucesor '<nombre>'

Falta el paso <name> en el archivo .exp.

CoDeSys V2.3 10-117


Apéndice K: - Errores y advertencias del compilador

3409 "No hay transición correcta para el paso '<'nombre>' "

En el archivo .exp falta una transición, que requiere el paso <nombre> como paso anterior.

3410 "No hay ningún paso correcto para la transición '<nombre>'"

En el archivo .exp falta un paso que requiere la transición <name> como condición previa.

3411 "No se puede acceder al paso '<nombre>' desde el paso inicial"

En el archivo .exp falta la conexión entre el paso <nombre> y el paso inicial.

3412 "Macro '<nombre>' no importada"

Compruebe el archivo de exportación.

3413 "Error durante la importación de las CAM".

Ha importado un archivo de exportación (*.exp) que contiene información errónea sobre una CAM.
Compruebe el archivo de exportación.

3414 "Error durante la importación de la lista de programas CNC"

Ha importado un archivo de exportación (*.exp) que contiene información errónea sobre un programa
CNC. Compruebe el archivo de exportación.

3415 Error durante la importación de la configuración de alarma"

Ha importado un archivo de exportación (*.exp) que contiene información errónea sobre la


configuración de alarmas. Compruebe el archivo de exportación.

3450 "PDO'<PDO-name>': ¡Falta el ID de la PDO!"

Haga clic en el botón 'Propiedades' en el cuadro de diálogo de configuración del PLC para el módulo e
introduzca un ID COB para la PDO <Nombre de la DOP>.

3451 "Error durante la carga: No se pudo encontrar el archivo EDS '<name>', pero se hace referencia a él en la
configuración de hardware".

Eventualmente, el archivo de dispositivo necesario para la configuración de CAN no está en el


directorio correcto. Compruebe la configuración del directorio para los archivos de configuración en
'Proyecto', 'Opciones', 'Directorios'.
3452 "¡No se ha podido crear el módulo '<name>'!"

El archivo de dispositivo para el módulo <name> no se ajusta a la configuración actual. Eventualmente


se ha modificado ya que la configuración se ha establecido en CoDeSys o está dañada.

3453 "¡No se pudo crear el canal '<nombre>'!"

El archivo de dispositivo para el canal <name> no se ajusta a la configuración actual. Eventualmente se


ha modificado ya que la configuración se ha establecido en CoDeSys o está dañada.

10-118 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3454 "¡La dirección '<nombre>' apunta a una memoria usada!"

La opción "Comprobar si hay direcciones superpuestas" está activada en el cuadro de diálogo "Ajustes"
de la configuración del PLC y se ha detectado una superposición. En este sentido, la comprobación del
área se basa en el tamaño resultante de los tipos de datos de los módulos, no en el tamaño que da la
entrada 'size' en el archivo de configuración.

3455 "Error durante la carga: No se pudo encontrar el archivo GSD '<name>', pero se hace referencia a él en
la configuración de hardware.

Eventualmente, el archivo de dispositivo requerido por la configuración de Profibus no se encuentra en


el directorio correcto. Compruebe la configuración del directorio para los archivos de configuración en
'Proyecto', 'Opciones', 'Directorios'.
3456 "¡No se ha podido crear el dispositivo profibus '<name>'!"

El archivo de dispositivo para el módulo <name> no se ajusta a la configuración actual. Eventualmente


se ha modificado ya que la configuración se ha establecido en CoDeSys o está dañada.

3457 "¡Error en la descripción del módulo!"

Compruebe el archivo del dispositivo de este módulo.

3458 "¡No se ha podido crear la configuración del PLC! Compruebe los archivos de configuración".

Compruebe si todos los archivos de configuración y dispositivo necesarios están disponibles en la ruta
correcta (consulte el directorio de compilación definido en 'Proyecto', 'Opciones' /Directorios)

3460 3S_CanDrv.lib tiene una versión incorrecta.

Asegúrese de que el 3S_CanDrv.lib que se incluye en el proyecto esté actualizado.

3461 "3S_CanOpenMaster.lib tiene la versión incorrecta."

Asegúrese de que el 3S_CanOpenMaster.lib que se incluye en el proyecto esté actualizado.

3462 "3S_CanOpenDevice.lib tiene la versión incorrecta."

Asegúrese de que el 3S_CanOpenDevice.lib que se incluye en el proyecto esté actualizado.

3463 "3S_CanOpenManager.lib tiene la versión incorrecta."

Asegúrese de que el 3S_CanOpenManager.lib que se incluye en el proyecto esté actualizado.

3464 "3S_CanNetVar.lib tiene la versión incorrecta."

Asegúrese de que el 3S_CanNetVar.lib que se incluye en el proyecto esté actualizado.

3465 "CanDevice: Los subíndices deben numerarse secuencialmente"

En las listas de parámetros utilizadas por CanDevice, los subíndices deben numerarse
secuencialmente y sin interrupción. Compruebe la lista correspondiente en el Administrador de
parámetros.

CoDeSys V2.3 10-119


Apéndice K: - Errores y advertencias del compilador

3466 "Variables de red CAN: No se encontró ningún controlador CAN en la configuración del PLC"

Hay variables de red configuradas para una red CAN (Recursos, Variables Globales), pero en la
Configuración del PLC no hay ningún controlador CAN disponible.

3468 "CanDevice: Actualizar tarea no disponible en la configuración de la tarea."

La tarea de actualización (utilizada para llamar al dispositivo CAN), que se define en el cuadro de
diálogo Configuración base del dispositivo CAN en la Configuración del PLC, debe configurarse en la
Configuración de tareas del proyecto.
3469 "No se puede llamar al CanOpenMaster. Por favor, asigne una tarea manualmente".

Asigne una tarea, que debe llamar al maestro, a través del parámetro UpdateTask en el cuadro de
diálogo Parámetros del módulo en la configuración del PLC.

3470 "Nombre no válido en el parámetro UpdateTask"

Abra el cuadro de diálogo de parámetros del módulo CanMasters en la configuración del PLC.
Compruebe el parámetro UpdateTask. La tarea especificada debe estar disponible en el proyecto. Si no
puede establecer una tarea adecuada aquí, se debe comprobar el archivo de dispositivo para ver si hay
definiciones de valor correspondientes para UpdateTask.
3500
"No hay 'VAR_CONFIG' para '<Nombre>'"
Inserte una declaración para esta variable en el global variable lista cuál Contiene el
'Variable_Configuration'.

3501 "No hay dirección en 'VAR_CONFIG' para '<nombre>'".

Asigne una dirección a esta variable en el global variable lista cuál Contiene el
'Variable_Configuration'.

3502 "Tipo de datos incorrecto para '<name>' en 'VAR_CONFIG"

En la lista de variables globales que contiene el 'Variable_Configuration', la variable se declara con un


tipo de datos diferente al de la POU.

3503 "Tipo de datos incorrecto para '<name>' en 'VAR_CONFIG'"

En la lista de variables globales que contiene el 'Variable_Configuration', la variable se declara con una
dirección diferente a la de la POU.

3504 "Los valores iniciales no son compatibles con 'VAR_CONFIG"

Se declara una variable de la 'Variable_Configuration' con la dirección y el valor inicial. Pero solo se
puede definir un valor inicial para las variables de entrada sin asignación de direcciones.

3505 "'<name>'no es una ruta de instancia válida"

El Variable_Configuration contiene una variable inexistente.

10-120 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3506 "Ruta de acceso esperada"

En la lista global de variables de Variables de acceso, la ruta de acceso de una variable no es correcta.
Correcto: <Identifier>:'<Ruta de acceso>':<Tipo> <Modo de acceso>.

3507 "No hay especificación de dirección para variables 'VAR_ACCESS'"

La lista global de variables para las variables de acceso contiene una asignación de direcciones para
una variable. Esto no está permitido.
Definición de variable válida: <Identifier>:'<Ruta de acceso>':<Tipo> <Modo de acceso>

3550 "Definición duplicada del identificador '<nombre>'"

Hay dos tareas que se definen con un mismo nombre idéntico. Cambie el nombre de uno de ellos.

3551 "La tarea '<name>' debe contener al menos una llamada de programa"

Inserte una llamada de programa o elimine una tarea.

3552 "Variable de evento '<name>' en la tarea '<name>' no definida"

Hay una variable de evento establecida en el campo "Único" del cuadro de diálogo de propiedades de
la tarea que no se declara globalmente en el proyecto. Utilice otra variable o defina la variable
globalmente.
3553 "La variable de evento '<name>' en la tarea '<name>' debe ser de tipo 'BOOL'"

Utilice una variable de tipo BOOL como variable de evento en el campo "Único" del cuadro de diálogo de propiedades de la tarea.

3554 "La entrada de tarea '<name>' debe ser una instancia de programa o bloque de funciones global"

En el campo 'Llamada de programa' se introduce una función o una POU no definida. Introduzca un nombre de programa válido.

3555 "La entrada de tarea '<name>' contiene parámetros no válidos"

En el campo 'Anexar llamada de programa' se utilizan parámetros que no cumplen con la declaración
de la POU del programa.

3556 "Las tareas no son compatibles con el destino seleccionado actualmente"

La configuración de tareas definida actualmente no se puede utilizar para el sistema de destino


establecido actualmente. Cambie el destino o modifique la configuración de la tarea según
corresponda.
3557 "Se ha superado el número máximo de tareas ('número <>')"

El número de tareas definido actualmente supera el número máximo permitido para el sistema de
destino establecido actualmente. Cambie el destino o modifique la configuración de la tarea según
corresponda. Atención: ¡No edite el archivo de descripción XML de la configuración de la tarea!

3558 "La prioridad de la tarea '<nombre>' está fuera del rango válido entre '<límite inferior>' y
'<límite superior>'" 3559

CoDeSys V2.3 10-121


Apéndice K: - Errores y advertencias del compilador

La prioridad definida actualmente para la tarea no es válida para el sistema de destino establecido
actualmente. Cambie el destino o modifique la configuración de la tarea según corresponda.

"Tarea '<name>': Las tareas de intervalo no son compatibles con el destino actual"
La configuración actual de la tarea contiene una tarea de intervalo. Esto no está permitido por el
sistema de destino establecido actualmente. Cambie el destino o modifique la configuración de la tarea
según corresponda.
3560
"Tarea '<name>': las tareas de rueda libre no son compatibles con el objetivo actual"
La configuración actual de la tarea contiene una tarea de rueda libre. Esto no está permitido por el
sistema de destino establecido actualmente. Cambie el destino o modifique la configuración de la tarea
según corresponda.
3561
"Tarea '<name>': las tareas de evento no son compatibles con el destino actual"
La configuración de tareas actual contiene tareas de eventos que no son compatibles con el sistema de
destino establecido actualmente. Cambie el destino o modifique la configuración de la tarea según
corresponda.
3562
"Tarea '<name>': las tareas de eventos externos no son compatibles con el destino actual"
La configuración de tareas actual contiene tareas de eventos externos que no son compatibles con el
sistema de destino establecido actualmente. Cambie el destino o modifique la configuración de la tarea
según corresponda.
3563
"El intervalo de la tarea '<nombre>' está fuera del rango válido entre '<límite inferior>' y '<límite superior>'"
Cambie el valor del intervalo en el cuadro de diálogo de configuración de la tarea.

3564
"El evento externo '<name>' de la tarea '<name>' no es compatible con el destino actual"
El sistema de destino establecido actualmente no admite el evento externo que se define en la
configuración de la tarea para esta tarea. Cambie el destino o modifique la configuración de la tarea
según corresponda.
3565
"Se ha superado el número máximo de tareas de eventos ('<número>') superado"
El sistema de destino establecido actualmente no permite tantas tareas de eventos como las definidas
en este momento. Cambie el destino o modifique la configuración de la tarea según corresponda.

3566
"Se ha superado el número máximo de tareas de intervalo ('número> <')"
El sistema de destino establecido actualmente no permite tantas tareas de intervalo como las definidas
en este momento. Cambie el destino o modifique la configuración según corresponda.

3567
"Se ha superado el número máximo de tareas de rueda libre ('<número>')"
El sistema de objetivos establecido actualmente no permite tantas tareas de rueda libre como las
definidas en este momento. Cambie el destino o modifique la configuración según corresponda.

3568
"Se ha superado el número máximo de tareas de intervalo externo ('<número>')"
El sistema de destino establecido actualmente no permite tantas tareas de intervalo externo como las
definidas en este momento. Cambie el destino o modifique la configuración según corresponda.

10-122 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3569 "POU '<name>' para el evento del sistema '<name>' no definido"

La POU a la que debe llamar el evento del sistema con nombre, tal como se define en la configuración
de la tarea, no está disponible en el proyecto. Modifique la configuración de la tarea en consecuencia o
asegúrese de que la POU esté disponible en el proyecto.

3570 "Las tareas '<nombre>' y '<nombre>' comparten la misma prioridad"

Modifique la configuración de la tarea para que cada tarea tenga una prioridad diferente.

3571 "La biblioteca 'SysLibCallback' no está incluida en el proyecto. No se pueden generar eventos del
sistema".

Para crear tareas de eventos, se necesita SysLibCallback.lib. Vincule esta biblioteca al proyecto en el
administrador de bibliotecas o modifique la configuración de la tarea (atributos de tarea) de tal manera
que no haya ninguna tarea desencadenada por un evento.

3575 "Tarea <'nombre>': el tiempo de ciclo tiene que ser un múltiplo de <número> μ s".

Corrija el tiempo de ciclo en consecuencia en el cuadro de diálogo Atributos de tarea para esta tarea. El
sistema de destino define un tiempo base y prescribe que el tiempo de ciclo debe ser igual o ser un
múltiplo de este tiempo base.
3600 "¡Variables implícitas no encontradas!"

Utilice el comando 'Reconstruir todo'. Si, a pesar de todo, vuelve a recibir el mensaje de error, póngase
en contacto con el fabricante del PLC.

3601 "<nombre> es un nombre de variable reservado"

La variable dada se declara en el proyecto, aunque está reservada para el generador de código.
Cambie el nombre de la variable.

3610 "'No se admite <Nombre>'

La característica dada no es compatible con la versión actual del sistema de programación.

3611 "El directorio de compilación '<name>' no es válido"

Hay un directorio no válido dado en el 'Proyecto', 'Opciones', 'Directorios' para los archivos de compilación.

3612 "¡Se ha superado el número máximo de POU (<número>)! La compilación se ha anulado".

Se utilizan demasiadas POU y tipos de datos en el proyecto. Modifique el número máximo de POU en
la configuración de destino / diseño de memoria.

3613 "Compilación cancelada"

El proceso de compilación fue cancelado por el usuario.

CoDeSys V2.3 10-123


Apéndice K: - Errores y advertencias del compilador

3614 "El proyecto debe contener una POU denominada '<name>' (rutina principal) o una configuración de tareas"

Cree una POU de inicio de tipo Programa (por ejemplo, PLC_PRG) o configure una configuración de tarea.

3615 "<Nombre> (rutina principal) debe ser de tipo programa"

En el proyecto se utiliza una POU de inicio (por ejemplo, PLC_PRG) que no es de tipo Program.

3616 "Los programas no deben ser implementados en bibliotecas externas"

El proyecto, que debe guardarse como una biblioteca externa, contiene un programa. Esto no estará
disponible cuando se utilice la biblioteca.

3617 "Memoria insuficiente"

Aumente la capacidad de memoria virtual de su ordenador.

3618 "¡BitAccess no es compatible con el generador de código actual!"

El generador de código para el sistema de destino establecido actualmente no admite el acceso a bits en variables.

3619 "El archivo de objeto '<name>' y la biblioteca '<name>' tienen versiones diferentes!"

Asegúrese de que para la biblioteca haya versiones coincidentes disponibles de archivos *.lib y *.obj o
*.hex. Estos archivos deben tener la misma marca de tiempo.

3620 "El POU '<nombre>' no debe estar presente dentro de una biblioteca"

Desea guardar el proyecto como una biblioteca de la versión 2.1. En esta versión, una biblioteca no
puede contener un objeto PLC_PRG. Utilice un nombre de POU diferente.

3621 "No se puede escribir el archivo de compilación '<name>'"

Probablemente en la ruta que se especifica para el archivo de compilación ya hay un archivo con el
mismo nombre, que es de "solo lectura". Elimine ese archivo o cambie los derechos de acceso.

3622 "No se ha podido crear el archivo de símbolos '<name>'

Probablemente en la ruta que se especifica para el archivo de símbolos (generalmente el directorio del
proyecto) ya hay un archivo con el mismo nombre, que es de "solo lectura". Elimine ese archivo o
cambie los derechos de acceso.
3623 "No se puede escribir el archivo de proyecto de arranque '<name>'"

Probablemente en la ruta que se especifica para el archivo de símbolos (específico del objetivo) ya hay
un archivo con el mismo nombre, que es de "solo lectura". Elimine ese archivo o cambie los derechos
de acceso.
3624 "Ajuste de destino <targetsetting1>=<valor establecido> no compatible con <targetsetting2>=<valor
establecido>"

Compruebe y corrija esta configuración en los cuadros de diálogo Targetsettings (pestaña Recursos).
Si los ajustes no son visibles o editables allí, póngase en contacto con el fabricante del PLC.

10-124 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3700 " POU con el nombre '<nombre>' ya está en la biblioteca '<nombre>'"

En el proyecto se utiliza un nombre de POU, que ya se utiliza para una POU de biblioteca. Cambie el nombre de la POU.

3701 "El nombre utilizado en la interfaz no es idéntico al nombre de POU"

Utilice el comando 'Proyecto' 'Cambiar nombre de objeto' para cambiar el nombre de la POU en el organizador de objetos,
o cambie el nombre de la POU en la ventana de declaración. Allí, el nombre de la POU debe colocarse junto a uno de los
palabras clave PROGRAMA, FUNCIÓN o FUNCIÓN.

3702 "Desbordamiento de la lista de identificadores"

Se puede introducir un máximo de 100 identificadores en una declaración de variable.

3703 "Definición duplicada del identificador '<Nombre>'"

Tenga en cuenta que solo haya un identificador con el nombre de pila en la parte de declaración de la POU.

3704"" recursividad de datos: "<PARA 0> -> <PARA 1> -> .. "-> <PARA 0>"""

Se utiliza una instancia de un bloque de funciones, que se llama a sí mismo.

3705 "<Nombre>: VAR_IN_OUT en POU de nivel superior no se permite, si no hay configuración de tareas"

Cree una configuración de tarea o asegúrese de que no se utilicen variables VAR_IN_OUT en


PLC_PRG.

3720 "Dirección esperada después de 'AT'"

Agregue una dirección válida después de la palabra clave AT o modifique la palabra clave.

3721 "Solo se puede ubicar 'VAR' y 'VAR_GLOBAL' en las direcciones"

Coloque la declaración en un área de declaración VAR o VAR_GLOBAL.

3722 "Solo se permiten variables 'BOOL' en direcciones de bits"

Modifique la dirección o modifique el tipo de la variable a la que se asigna la dirección.

3726 "Las constantes no se pueden establecer en direcciones directas"

Modifique la asignación de direcciones en consecuencia.

3727 "No se permite ninguna declaración de matriz en esta dirección"

Modifique la asignación de direcciones en consecuencia.

CoDeSys V2.3 10-125


Apéndice K: - Errores y advertencias del compilador

3728 "Dirección no válida: '<dirección>'"

Esta dirección no es compatible con la configuración del PLC. Compruebe la configuración del PLC o
modifique la dirección.

3729 "Tipo no válido '<nombre>' en la dirección: '<Nombre>' "

El tipo de esta variable no se puede colocar en la dirección dada. Ejemplo: Para un sistema de destino
que trabaja con 'alineación 2', la siguiente declaración no es válida: var1 AT %IB1:WORD; Este
mensaje de error también puede indicar que se ha asignado una matriz a la dirección de una variable
directa, lo que no está permitido.

3740 "Tipo no válido: '<Nombre>' "

Se utiliza un tipo de datos no válido en una declaración de variable.

3741 "Esperando especificación de tipo"

Se utiliza una palabra clave o un operador en lugar de un identificador de tipo válido.

3742 "Valor de enumeración esperado"

En la definición del tipo de enumeración falta un identificador después del corchete de apertura o
después de una coma entre corchetes.

3743 "Número entero esperado"

Las enumeraciones solo se pueden inicializar con números de tipo INT.

3744 "Constante de enumeración '<nombre>' ya definida"

Compruebe si ha seguido las siguientes reglas para la definición de valores de enumeración:


Dentro de una definición de enumeración, todos los valores deben ser únicos.
Dentro de todas las definiciones globales de enumeración, todos los valores deben ser únicos.
Dentro de todas las definiciones de enumeración local, todos los valores deben ser únicos.

3745 "¡Los subrangos solo están permitidos en números enteros!"

Los tipos de subrango solo se pueden definir en función de los tipos de datos enteros.

3746 "El subrango '<nombre>' no es compatible con el tipo '<nombre>'"

Uno de los límites establecidos para el rango del tipo de subrango está fuera del rango que es válido
para el tipo base.

3747 "longitud de cadena desconocida: '<nombre>'"

Hay una constante no válida que se utiliza para la definición de la longitud de la cadena.

10-126 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3748 "No se permiten más de tres dimensiones para las matrices"

En la definición de una matriz se dan más de las tres dimensiones permitidas. Si corresponde, use un
MATRIZ DE MATRIZ.

3749 "límite inferior '<nombre>' no definido"

Hay una constante no definida que se utiliza para definir el límite inferior de un subrango o tipo de matriz.

3750 "límite superior '<nombre>' no definido"

Hay una constante no definida que se utiliza para definir el límite superior de un subrango o tipo de matriz.

3751 "Longitud de cadena no válida '<número de caracteres>'"

La longitud de cadena definida aquí supera el valor máximo definido para el sistema de destino
establecido actualmente.

3752 "No se permiten más de 9 dimensiones para matrices anidadas"

Una matriz puede ser de 1, 2 o 3 dimensiones. El número máximo de dimensiones alcanzadas por el
anidamiento de matrices (por ejemplo, "arr: ARRAY [0..2,0..2,0..2] OF ARRAY [0..2,0..2,0..2] OF
ARRAY [0..2,0..2,0..2, 0..2] OF DINT" puede ser 9 y se excede en el caso de error actual. Reduzca
adecuadamente a un máximo de 9 dimensiones.

3760 "Error en el valor inicial"

Utilice un valor inicial que corresponda a la definición de tipo. Para cambiar la declaración, puede usar
el diálogo de declaración para variables (Shift/F2 o 'Editar''Autodeclare').

3761 "Las variables 'VAR_IN_OUT' no deben tener un valor inicial."

Elimine la inicialización en la declaración de la variable VAR_IN_OUT.

3780
"Se espera 'VAR', 'VAR_INPUT', 'VAR_OUTPUT' o 'VAR_IN_OUT'"
La primera línea que sigue al nombre de una POU debe contener una de estas palabras clave.

3781 "'END_VAR' o identificador esperado"

Introduzca un identificador válido de un END_VAR al principio de la línea dada en la ventana de declaración.

3782 "Final inesperado"

En el editor de declaraciones: Agregue END_VAR de palabras clave al final de la parte de la declaración.


En el editor de texto de la parte de programación: Agregue una instrucción que termine la última
secuencia de instrucciones (por ejemplo, END_IF).

3783 "END_STRUCT' o identificador esperado"

Asegúrese de que la declaración de tipo finalice correctamente.

CoDeSys V2.3 10-127


Apéndice K: - Errores y advertencias del compilador

3784 "El destino actual no admite el atributo <nombre del atributo>"

El sistema de destino no admite este tipo de variables (por ejemplo, RETAIN, PERSISTENT)

3800 "Las variables globales necesitan demasiada memoria. Aumente la memoria disponible en las opciones del
proyecto".

Aumente el número de segmentos dados en la configuración en el cuadro de diálogo 'Proyecto', 'Opciones', 'Construir'.

3801 "La variable '<Name>' es demasiado grande. (<tamaño> byte)"

La variable utiliza un tipo que es mayor que 1 segmento de datos. El tamaño del segmento es un
parámetro específico del destino y se puede modificar en la configuración del destino/diseño de la
memoria. Si no lo encuentra en la configuración de destino actual, póngase en contacto con el
fabricante de su PLC.
3802 "Fuera de la memoria. Variable '<nombre>', <número> bytes."

Se agota el espacio de memoria disponible para las variables de retención. El tamaño del área de
memoria se puede establecer específico del destino en la configuración de destino /diseño de memoria.
Si no encuentra el campo de configuración en el cuadro de diálogo, póngase en contacto con el
fabricante de su PLC. (Tenga en cuenta: Si se utilizan variables de retención en una instancia de bloque
de funciones, la POU de instancia completa se almacenará en el área de retención de memoria).
3803 "Fuera de la memoria global de datos. Variable '<nombre>', '<número>' bytes."

Se agota el espacio de memoria disponible para las variables globales. El tamaño del área de memoria
se puede establecer específico del destino en la configuración de destino /diseño de memoria. Si no
encuentra el campo de configuración en el cuadro de diálogo, póngase en contacto con su fabricante
de PLC.
3804 "El tamaño actual de la descripción de datos perceptibles es de <'número'> bytes y excede el máximo de
<'número'> bytes".

Reduzca los datos persistentes al tamaño permitido por el sistema de destino.

3820 "'VAR_OUTPUT' y 'VAR_IN_OUT' no permitidos en las funciones"

En una función no se pueden definir variables de salida o in_output.

3821 "Se requiere al menos una entrada para las funciones"

Agregue al menos un parámetro de entrada para la función.

3840 "Variable global desconocida '<nombre>'!"

En la POU se utiliza una variable VAR_EXTERNAL, para la que no se declara ninguna variable global.

3841 "La declaración de '<nombre>' no coincide con la declaración global!"

El tipo dado en la declaración de la variable VAR_EXTERNAL no es el mismo que el de la declaración


global.

10-128 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

3850 "No se permite la declaración de una estructura desempaquetada '<name>' dentro de una estructura
empaquetada '<name>'!"
Esta definición de la estructura conduce a una desalineación en la memoria. Modifique la definición de forma adecuada.

3900 "Subrayados múltiples en el identificador"

Elimine varios subrayados en el nombre del identificador.

3901 "Se permiten como máximo 4 campos numéricos en las direcciones"

Hay una asignación directa a una dirección que tiene más de cuatro niveles. (por ejemplo, %QB0.1.1.0.1).

3902 "Las palabras clave deben estar en mayúsculas"

Utilice letras mayúsculas para la palabra clave o active la opción 'Autoformatear' en 'Proyecto' 'Opciones'.

3903 "Constante de duración no válida"

La notación de la constante no cumple con el formato IEC61131-3.

3904 "Desbordamiento en constante de duración"

El valor utilizado para la constante de tiempo no se puede representar en el formato interno. El valor
máximo que está presentable es t#49d17h2m47s295ms.

3905 "Constante de fecha no válida"

La notación de los troqueles constantes no cumple con el formato IEC61131-3.

3906 "Constante de hora del día no válida"

La notación de la constante no cumple con el formato IEC61131-3.

3907 "Constante de fecha y hora no válida"

La notación de la constante no cumple con el formato IEC61131-3.

3908 "Constante de cadena no válida"

La constante de cadena contiene un carácter no válido.

4000 "Identificador esperado"

Introduzca un identificador válido en esta posición.

4001 "Variable '<Nombre>' no declarada"

Declarar la variable local o global.

CoDeSys V2.3 10-129


Apéndice K: - Errores y advertencias del compilador

4010 "Discrepancia de tipos: no se puede convertir '<Nombre>' a '<Nombre>'."

Compruebe qué tipo de datos espera el operador (Busque en la Ayuda en línea el nombre del
operador) y cambie el tipo de la variable que ha causado el error, o seleccione otra variable.

4011 "Discrepancia de tipo en el parámetro '<Nombre>' de '<Nombre>': No se puede convertir '<Nombre>' en


'<Nombre>'."
El tipo de datos del parámetro real no se puede convertir automáticamente en el del parámetro formal.
Use una conversión de tipo o use otro tipo de variable.

4012 "Discrepancia de tipo en el parámetro '<Nombre>' de '<Nombre>': No se puede convertir '<Nombre>' a


'<Nombre>'".
Se asigna un valor con el tipo no válido <Typ2> a la variable de entrada '<Name>'. Reemplace la
variable o constante por una de tipo <Typ1> o use una conversión de tipos, respectivamente, una
constante con prefijo de tipo.
4013 "Discrepancia de tipo en la salida '<Nombre>' de '<Nombre>': No se puede convertir '<Nombre>' a '<Nombre>'."

Se asigna un valor con el tipo no válido <Typ2> a la variable de salida '<Name>'. Reemplace la variable
o constante por una de tipo <Typ1> o use una conversión de tipos, respectivamente, una constante con
prefijo de tipo.
4014 "Literal escrito: No se puede convertir '<nombre>' en '<nombre>'"

El tipo de la constante no es compatible con el tipo del prefijo.


Ejemplo: SINT#255

4015 "El tipo de datos '<name>' no es válido para el acceso directo a bits"

El direccionamiento directo de bits solo se permite para los tipos de datos Integer- Bitstring y no para
las variables directas. Está utilizando una variable var1 de tipo Typ REAL/LREAL o una constante en el
acceso a bits <var1>.<bit>, o está probando un acceso a bits en una variable directa.

4016 "Índice de bits '<número>' fuera de rango para la variable de tipo '<nombre>'"

Está intentando acceder a un bit que no está definido para el tipo de datos de la variable.

4017 "'MOD' no se define como 'REAL'"

El operador MOD solo se puede utilizar para tipos de datos enteros y de cadena de bits.

4020 "Variable con acceso de escritura o dirección directa requerida para 'ST', 'STN', 'S', 'R'"

Reemplace el primer operando por una variable con acceso de escritura.

4021 "No se permite el acceso de escritura a la variable '<name>'"

Reemplace la variable por una variable con acceso de escritura.

4022 "Operando esperado"

Agregue un operando detrás del comando.

10-130 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4023 "Número esperado después de '+' o '-'"

Introduzca un dígito.

4024 "Esperando <Operador 0> o <Operador 1> o ... antes de '<Nombre>'"

Introduzca un operando válido en la posición nombrada.

4025 "Esperando ':=' o '=>' antes de '<Nombre>'"

Introduzca uno de los dos operadores en la posición designada.

4026 "'BITADR' espera una dirección de bits o una variable en una dirección de bits"

Utilice una dirección de bits válida (por ejemplo, %IX0.1).

4027 "Número entero o constante simbólica esperada"

Introduzca un número entero o el identificador de una constante válida.

4028 "El operador 'INI' necesita una instancia de bloque de función o una instancia de tipo de unidad de
datos"
Compruebe el tipo de datos de la variable para la que se utiliza el operador INI.

4029 "Las llamadas anidadas de la misma función no son posibles".

En sistemas de destino no reentrantes y en modo de simulación, una llamada de función no puede


contener una llamada de sí misma como parámetro.
Ejemplo: fun1(a,fun1(b,c,d),e);
Utilice una tabla intermedia.

4030 "Las expresiones y constantes no están permitidas como operandos de 'ADR'"

Reemplace la constante o la expresión por una variable o una dirección directa.

4031 "¡'ADR' no está permitido en los bits! En su lugar, usa 'BITADR'".

Utilice BITADR. Tenga en cuenta: La función BITADR no devuelve una dirección de memoria física.

4032 Los operandos "'<número>' son demasiado pocos para '<nombre>'. Al menos se necesitan '<número>'

Compruebe cuántos operandos requiere el operador con nombre y agregue los operandos que faltan.

4033 Los operandos "'<número>' son demasiados para '<nombre>'. Al menos se necesitan '<número>'

Compruebe cuántos operandos requiere el operador con nombre y elimine los operandos sobrantes.

CoDeSys V2.3 10-131


Apéndice K: - Errores y advertencias del compilador

4034 "División por 0"

Está utilizando una división por 0 en una expresión constante. Si desea provocar un error en tiempo de
ejecución, utilice, si corresponde, una variable con el valor 0.

4035 "El ADR no debe aplicarse en la 'CONSTANTE VAR' si se activan las 'constantes reemplazadas'"

No es posible un acceso a la dirección en las constantes para las que se utilizan los valores directos. Si
corresponde, desactive la opción 'Reemplazar constantes' en 'Proyecto', 'Opciones', 'Construir'.

4040 "La etiqueta '<nombre>' no está definida"

Defina una etiqueta con el nombre <LabelName> o cambie el nombre <LabelName> por el de una
etiqueta definida.

4041 "Definición duplicada de la etiqueta '<nombre>'"

La etiqueta '<Nombre>' está definida varias veces en la POU. Cambie el nombre de la etiqueta o elimine una de las definiciones.

4042 "No se permiten más de <número> etiquetas en secuencia"

El número de etiquetas de salto está limitado a '<Anzahl>'. Inserte una instrucción ficticia.

4043 "El formato de la etiqueta no es válido. Una etiqueta debe ser un nombre seguido opcionalmente de dos puntos.

"El nombre de la etiqueta no es válido o faltan los dos puntos en la definición.

4050 "POU '<nombre>' no está definido"

Defina una POU con el nombre '<Name>' usando el comando 'Project', 'Add Object ' o cambie
'<Name>' por el nombre de una POU definida.

4051 "'<nombre>' no es ninguna función"

Utilice en lugar de <Name> un nombre de función que esté definido en el proyecto o en las bibliotecas.

4052 "'<name>' debe ser una instancia declarada de FB '<name>'"

Utilice una instancia del tipo de datos '<Name>' que se define en el proyecto o cambie el tipo de
<Nombre de instancia> a '<Name>'.

4053 "'<nombre>' no es una casilla u operador válido"

Reemplace '<Name>' por el nombre de una POU o un operador definido en el proyecto.

4054 "Nombre de POU esperado como parámetro de 'INDEXOF'"

El parámetro dado no es un nombre de POU válido.

10-132 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4060 "'VAR_IN_OUT' parámetro '<name>' de '<name>' necesita una variable con acceso de escritura como
entrada"
Para VAR_IN_OUT parámetros, las variables con acceso de escritura deben ser entregadas, ya que un
VAR_IN_OUT puede ser modificado dentro de la POU.

4061 "Se debe utilizar el parámetro 'VAR_IN_OUT' '<nombre>' de '<nombre>'".

Un parámetro VAR_IN_OUT debe recibir una variable con acceso de escritura, ya que un
VAR_IN_OUT se puede modificar dentro de la POU.

4062 "No hay acceso externo al parámetro 'VAR_IN_OUT' '<nombre>' de '<nombre>'."

VAR_IN_OUT solo se pueden escribir o leer parámetros dentro de la POU, ya que se entregan por
referencia.

4063 "El parámetro 'VAR_IN_OUT' '<nombre>' de '<nombre>' no debe usarse con direcciones de bits."

Una dirección de bits no es una dirección física válida. Entregue una variable o una dirección directa que no sea bit.

4064 "¡'VAR_IN_OUT' no debe sobrescribirse en el llamado a la acción local!"

Elimine los parámetros establecidos para la variable VAR_IN_OUT en la llamada a la acción local.

4070 "El POU contiene una expresión demasiado compleja"

Disminuya la profundidad de anidamiento dividiendo la expresión en varias expresiones. Utilice


variables intermedias para este propósito.

4071 "Red demasiado compleja"

Divida la red en varias redes.

4072 "Uso incoherente de un identificador de acción en el tipo FB ('<nombre>') y la instancia ('<nombre>')."

Se han definido dos acciones de un bloque de funciones fb: por ejemplo, a1 y a2, pero en la llamada de
una de las acciones en el FBD se está utilizando un tipo (cadena dentro de la caja, por ejemplo, fb.a1
diferente a la utilizada en el nombre de la instancia (por ejemplo, inst.a2, arriba de la caja). Corrija el
nombre correspondientemente en el nombre de la acción deseada.
4100 "'^' necesita un tipo de puntero"

Está intentando desreferenciar una variable que no está declarada como puntero.

4110 "'[<index>]' necesita una variable de matriz"

[<index>] se utiliza para una variable que no se declara como una matriz con ARRAY OF.

4111 "La expresión de índice de una matriz debe ser de tipo 'INT'"

Utilice una expresión del tipo correcto o una conversión de tipos.

CoDeSys V2.3 10-133


Apéndice K: - Errores y advertencias del compilador

4112 "Demasiados índices para la matriz"

Compruebe el número de índices (1, 2 o 3) para los que se declara la matriz y elimine el excedente.

4113 "Muy pocos índices para la matriz"

Compruebe el número de índices (1, 2 o 3) para los que se declara la matriz y sume los que faltan.

4114 "Uno de los indizes constantes no está dentro del rango de la matriz"

Asegúrese de que los índices utilizados estén dentro de los límites de la matriz.

4120 "'.' necesita la variable de estructura""

El identificador a la izquierda del punto debe ser una variable de tipo STRUCT o FUNCTION_BLOCK o
el nombre de una FUNCIÓN o un PROGRAMA.

4121 " '<Nombre>' no es un componente de <nombre de objeto>"

El componente '<Name>' no está incluido en la definición del objeto <nombre del objeto>.

4122 "'<name>' no es una variable de entrada del bloque de función llamado"

Compruebe las variables de entrada del bloque de funciones llamado y cambie '<name>' por una de ellas.

4200 "'LD' esperado"

Inserte al menos una instrucción LD después de la etiqueta de salto en el editor IL.

4201 "Se espera operador de IL"

Cada instrucción IL debe comenzar con un operador o una etiqueta de salto.

4202 "Fin inesperado del texto entre paréntesis"

Inserte un corchete de cierre después del texto.

4203 "<Nombre> entre paréntesis no permitido"

El operador <nombre> no es válido en una expresión de corchetes IL.


(no válidos son: 'JMP', 'RET', 'CAL', 'LDN', 'LD', 'TIME')

4204 "Soporte de cierre sin soporte de apertura correspondiente"

Inserte un soporte de apertura o retire el de cierre.

4205 "No se permite ninguna coma después de ')'"

Elimine la coma después del cierre del corchete.

10-134 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4206 "No se permite la etiqueta entre paréntesis"

Mueva la etiqueta de salto para que quede fuera de los corchetes.

4207 "El modificador 'N' requiere un operando de tipo 'BOOL','BYTE','WORD' o 'DWORD'"

El modificador N requiere un tipo de datos, para el cual se puede ejecutar una negación booleana.

4208 "El operador condicional requiere el tipo 'BOOL'"

Asegúrese de que la expresión da un resultado booleano o use una conversión de tipos.

4209 "El nombre de la función no está permitido aquí"

Reemplace la llamada a la función por una variable o una constante.

4210 "'CAL', 'CALC' y 'CALN' requieren una instancia de bloque de función como operando"

Declare una instancia del bloque de funciones al que desea llamar.

4211 "Los comentarios solo están permitidos al final de la línea en IL"

Desplaza el comentario al final de la línea o a una línea adicional.

4212 "El acumulador no es válido antes de la instrucción condicional"

El accu no está definido. Esto sucede si una instrucción es anterior y no envía un resultado (por
ejemplo, 'CAL').

4213 "'S' y 'R' requieren el operando 'BOOL'"

Utilice una variable booleana en este lugar.

4250 "Se espera otra declaración 'ST' o el final de POU"

La línea no comienza con una instrucción ST válida.

4251 "Demasiados parámetros en la función '<name>'"

Se dan más parámetros de los que se declaran en la definición de la función.

4252 "Muy pocos parámetros en la función '<name>'"

Se dan menos parámetros de los que se declaran en la definición de la función.

4253 "'IF' o 'ELSIF' requieren la expresión 'BOOL' como condición"

Asegúrese de que la condición de IF o ELSIF sea una expresión booleana.

CoDeSys V2.3 10-135


Apéndice K: - Errores y advertencias del compilador

4254 "'WHILE' requiere la expresión 'BOOL' como condición"

Asegúrese de que la condición que sigue a 'WHILE' es una expresión booleana.

4255 "'UNTIL' requiere la expresión 'BOOL' como condición"

Asegúrese de que la condición que sigue a 'UNTIL' es una expresión booleana.

4256 "'NOT' requiere el operando 'BOOL'"

Asegúrese de que la condición que sigue a 'NOT' es una expresión booleana.

4257 "La variable de la instrucción 'FOR' debe ser de tipo 'INT'"

Asegúrese de que la variable de contador sea de un tipo de datos entero o de cadena de bits (por ejemplo, DINT, DWORD).

4258 "La expresión en la instrucción 'FOR' no es una variable con acceso de escritura"

Reemplace la variable de contador por una variable con acceso de escritura.

4259 "El valor inicial en la instrucción 'FOR' no es ninguna variable con acceso de escritura"

El valor inicial de la instrucción 'FOR' debe ser compatible con el tipo de variable de contador.

4260 "El valor final de la instrucción 'FOR' debe ser de tipo 'INT'"

El valor final de la instrucción 'FOR' debe ser compatible con el tipo de variable de contador.

4261 "El valor de incremento de la instrucción 'FOR' debe ser de tipo 'INT'"

El valor incremental de la instrucción 'FOR' debe ser compatible con el tipo de variable de contador.

4262 "'SALIDA' fuera de un bucle"

Utilice 'EXIT' solo dentro de las instrucciones 'FOR', 'WHILE' o 'UNTIL'.

4263 "Número de espera, 'ELSE' o 'END_CASE'"

Dentro de una expresión 'CASE' solo se puede utilizar un número o una instrucción 'ELSE' o la
instrucción final 'END_CASE'.

4264 "'CASE' requiere un selector de tipo entero"

Asegúrese de que el selector sea de un tipo de datos entero o de cadena de bits (por ejemplo, DINT, DWORD).

4265 "Número esperado después de ','"

En la enumeración de los selectores CASE debe insertarse un selector adicional después de una coma.

10-136 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4266 "Se requiere al menos una declaración"

Inserte una instrucción, al menos un punto y coma.

4267 "La llamada al bloque de funciones requiere una instancia de bloque de funciones"

El identificador de la llamada al bloque de funciones no es ninguna instancia. Declare una instancia del
bloque de funciones deseado o utilice el nombre de una instancia ya definida.

4268 "Expresión esperada"

Inserte una expresión.

4269 "'END_CASE' esperado después de la rama 'ELSE'"

Termine la instrucción 'CASE' después de la parte 'ELSE' con un 'END_CASE'.

4270 "Constante 'CASE' '<nombre>' ya usada"

Un selector 'CASE' solo se puede usar una vez dentro de una instrucción 'CASE'.

4271 "El borde inferior del rango es mayor que el borde superior".

Modifique los límites de área de los selectores para que el borde inferior no sea más alto que el borde superior.

4272 "Esperando el parámetro '<nombre>' en el lugar <posición> en la llamada de '<nombre>'!"

Puede editar una llamada de función de esa manera, que también se contengan los nombres de los
parámetros, no solo los valores de los parámetros. Sin embargo, la posición (secuencia) de los
parámetros debe ser la misma que en la definición de la función.

4273 Partes de la gama «CASE» «<gama>» ya utilizadas en la gama «<gama>»

Asegúrese de que las áreas de los selectores que se utilizan en la instrucción CASE no se superpongan.

4274 "Varias bifurcaciones 'ELSE' en la instrucción 'CASE'"

Una instrucción CASE no puede contener más de una instrucción 'ELSE'.

4300 "El salto requiere 'BOOL' como tipo de entrada"

Asegúrese de que la entrada para el salto o la instrucción RETURN sea una expresión booleana.

4301 "POU '<name>' necesita exactamente <número> entradas"

El número de entradas no se corresponde con el número de variables VAR_INPUT y VAR_IN_OUT


que se indica en la definición de POU.

CoDeSys V2.3 10-137


Apéndice K: - Errores y advertencias del compilador

4302 "POU '<name>' necesita exactamente %d salidas".

El número de salidas no se corresponde con el número de variables VAR_OUTPUT que se indica en la


definición de POU.

4303 "'<nombre>' no es un operador"

Reemplace '<Name>' por un operador válido.

4320 "Expresión no booleana '<nombre>' utilizada con contacto"

La señal de conmutación para un contacto debe ser una expresión booleana.

4321 "Expresión no booleana '<nombre>' utilizada con bobina"

La variable de salida de una bobina debe ser de tipo BOOL.

4330 "Expresión esperada en la entrada 'EN' de la casilla '<nombre>' "

Asigne una entrada o una expresión a la entrada EN de POU '<Name>'.

4331 "Expresión esperada en la entrada '<número>' de la casilla '<Nombre>' "

El <número> de entrada de la POU del operador no está asignado.

4332 "Expresión esperada en la entrada '<nombre>' de la casilla '<Nombre>'"

La entrada de la POU es de tipo VAR_IN_OUT y no está asignada.

4333 "Identificador en salto esperado"

La marca de salto dada no es un identificador válido.

4334 "Expresión esperada en la entrada del salto"

Asigne una expresión booleana a la entrada del salto. Si esto es TRUE, se ejecutará el salto.

4335 "Expresión esperada a la entrada de la declaración"

Asigne una expresión booleana a la entrada de la instrucción RETURN. Si esto es TRUE, se ejecutará
el salto.

4336 "Expresión esperada a la entrada de la salida"

Asigne una expresión adecuada al cuadro de salida.

4337 "Identificador de entrada esperado"

Inserte una expresión o identificador válido en el cuadro de entrada.

10-138 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4338 "La casilla '<nombre>' no tiene entradas"

A ninguna de las entradas del operador POU '<Name>' se asigna una expresión válida.

4339 "Discrepancia de tipo en la salida: No se puede convertir '<nombre>' en '<nombre>'.

El tipo de la expresión en el cuadro de salida no es compatible con el de la expresión que se le debe


asignar.

4340 "El salto requiere 'BOOL' como tipo de entrada"

Asegúrese de que la entrada para el salto sea una expresión booleana.

4341 "El retorno necesita una entrada booleana"

Asegúrese de que la entrada de la instrucción RETURN sea una expresión booleana.

4342 "Expresión esperada en la entrada 'EN' de la casilla '<nombre>'"

Asigne una expresión booleana válida a la entrada EN de la caja.

4343 "Valores de constantes: '<name>'"

La entrada '<Nombre>' de la casilla '<Nombre>' se declara como VAR_INPUT CONSTANTE. Pero a


este cuadro POU se le ha asignado una expresión en el cuadro de diálogo 'Editar parámetros' que no
es compatible con el tipo.
4344 "'S' y 'R' requieren el operando 'BOOL'"

Inserte una expresión booleana válida después de la instrucción Set resp. Reset.

4345 "Tipo no válido para el parámetro '<nombre>' de '<nombre>': No se puede convertir '<tipo>' en
'<tipo>'."
Se asigna una expresión a la entrada '<Name>' del POU box '<Name>' que no es compatible con el tipo.

4346 "No se permite usar una constante como salida"

Solo puede asignar una salida a una variable o a una dirección directa con acceso de escritura.

4347 "El parámetro 'VAR_IN_OUT' necesita una variable con acceso de escritura como entrada"

A VAR_IN_OUT parámetros solo se pueden entregar variables con acceso de escritura, ya que se
pueden modificar dentro de la POU.

4348 "Nombre de programa no válido '<nombre>'. Ya existe una variable con el mismo nombre".

Ha insertado un cuadro de programa en el editor CFC, que tiene el mismo nombre que una variable
(global) ya existente en su proyecto. Debe cambiar el nombre en consecuencia.

CoDeSys V2.3 10-139


Apéndice K: - Errores y advertencias del compilador

4349 "Se ha eliminado la entrada o salida en POU <nombre>: Marque todas las conexiones a la caja. Este mensaje de
error desaparece solo después de que se editó el CFC"

Corrija la POU adecuadamente.

4350 "¡No se puede acceder a una acción SFC desde el exterior!"

Las acciones SFC solo se pueden llamar dentro de la POU SFC en la que se definen. Pero este error
también se volcará si llama a una acción desde una POU SFC, lo cual está permitido, pero no está
utilizando pasos IEC mientras iecsfc.lib aún está incluido en su proyecto. En este caso, elimine la
biblioteca en el administrador de bibliotecas y reconstruya el proyecto.

4351 "El nombre del paso no tiene identificador: '<nombre>'"

Cambie el nombre del paso o elija un identificador válido como nombre del paso.

4352 "Caracteres adicionales después del nombre de paso válido: '<Nombre>'"

Elimine los caracteres no válidos en el nombre del paso.

4353 "Nombre del paso duplicado: '<Nombre>'"

Cambie el nombre de uno de los pasos.

4354 "Saltar al paso indefinido: '<Nombre>'"

Elija un nombre de paso existente como objetivo del salto o inserte un paso con el nombre '<nombre>'.

4355 "Una transición no debe tener ningún efecto secundario (Asignaciones, FB-Calls, etc.)"

Una transición debe ser una expresión booleana.

4356 "Saltar sin un nombre de paso válido: '<Nombre>' "

Utilice un identificador válido como objetivo (marca) del salto.

4357 "Biblioteca IEC no encontrada"

Compruebe si la biblioteca iecsfc.lib está insertada en el administrador de bibliotecas y si las rutas de


biblioteca definidas en 'Proyecto', 'Opciones', 'Rutas' son correctas.

4358 "Acción no declarada: '<nombre>'"

Asegúrese de que en el organizador de objetos la acción del paso IEC esté insertada debajo de la POU
SFC y que en el editor el nombre de la acción esté insertado en el cuadro de la derecha del calificador.

4359 "Calificador no válido: '<nombre>'"

En el cuadro de la izquierda del nombre de la acción, escriba un calificador para la acción IEC.

10-140 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4360 "Constante de tiempo esperada después del calificador '<nombre>'"

Introduzca junto al cuadro de la izquierda del nombre de la acción una constante de tiempo detrás del calificador.

4361 "'<nombre>' no es el nombre de una acción"

Introduzca junto a la casilla de la derecha del calificador el nombre de una acción o el nombre de una
variable definida en el proyecto.

4362 "Expresión no booleana utilizada en acción: '<nombre>'"

Inserte una variable booleana o un nombre de acción válido.

4363 "Nombre del paso IEC ya utilizado para la variable: '<Nombre>'"

Cambie el nombre del paso o de la variable.

4364 "Una transición debe ser una expresión booleana"

El resultado de la expresión de transición debe ser de tipo BOOL.

4365 "Constante de tiempo esperada después del calificador '<nombre>'"

Abra el cuadro de diálogo 'atributos de paso' para el paso '<Nombre>' e introduzca una variable de tiempo o una constante de tiempo válida.

4366 "La etiqueta de la rama paralela no es un identificador válido: '<Nombre>'"

Introduzca un identificador válido junto al triángulo que marca la etiqueta de salto.

4367 "La etiqueta '<nombre>' ya está utilizada"

Ya hay una etiqueta de salto o un paso con este nombre. Por favor, cambie el nombre correspondiente.

4368 "La acción '<nombre>' se utiliza en cadenas de varios pasos, donde una contiene a la otra.

La acción '<Nombre>' se utiliza en la POU, así como en una o varias acciones de la POU.

4369 "Se requiere exactamente una red para una transición"

Se utilizan varias redes FBD o LD para una transición. Por favor, reduzca a 1 red.

4370 "Líneas adicionales encontradas después de la transición correcta de IL"

Elimine las líneas innecesarias al final de la transición.

4371 "Caracteres no válidos después de una expresión válida: '<nombre>"

Elimine los caracteres que no sean necesarios al final de la transición.

CoDeSys V2.3 10-141


Apéndice K: - Errores y advertencias del compilador

4372 "Paso '<nombre>': El límite de tiempo necesita el tipo 'TIME'"

Defina los límites de tiempo del paso en los atributos del paso utilizando una variable de tipo TIME o
mediante una definición de tiempo en el formato correcto (por ejemplo, "t#200ms").

4373 "Las acciones IEC solo están permitidas con SFC-POUs"

Hay una acción asignada a una POU que no es SFC (ver en el Organizador de objetos), que está
programada en SFC y que contiene acciones IEC. Reemplace esta acción por una que no contenga
acciones IEC.
4374 "Paso esperado en lugar de transición '<nombre>'"

La POU de SFC está dañada, posiblemente debido a cualquier acción de exportación e importación.

4375 "Se espera la transición en lugar del paso '<nombre>'"

La POU de SFC está dañada, posiblemente debido a cualquier acción de exportación e importación.

4376 "Paso esperado después de la transición '<nombre>'"

La POU de SFC está dañada, posiblemente debido a cualquier acción de exportación e importación.

4377 "Transición esperada después del paso '<nombre>'"

La POU de SFC está dañada, posiblemente debido a cualquier acción de exportación e importación.

4400 La importación/conversión de POU '<name>' contiene errores o no está completa."

La POU no se puede convertir completamente a IEC 61131-3.

4401 "La constante de tiempo S5 <número> segundos es demasiado grande (máx. 9990s)."

No hay una hora codificada BCD válida en la acusación.

4402 "El acceso directo solo se permite en E/S".

Asegúrese de que solo accede a las variables que se definen como entrada o salida.

4403 "La instrucción STEP5/7 no es válida o no es convertible a IEC 61131-3".

Algunos comandos de STEP5/7 no son convertibles a IEC 61131-3, por ejemplo, comandos de CPU como MAS.

4404 "El operando STEP5/7 no es válido o no es convertible a IEC 61131-3".

Algunos operandos de STEP5/7 no son convertibles a IEC 61131-3 respectivamente, falta un operando.

4405 "El reinicio de un temporizador de STEP5/7 no se puede convertir en IEC 61131-3."

El temporizador IEC correspondiente no tiene entrada de reinicio.

10-142 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4406 "STEP5/7 Constante del contador fuera de rango (máx. 999)."

No hay ninguna constante de contador codificada BCD válida en el acumulador.

4407 "Instrucción STEP5 no convertible a IEC 61131-3".

Algunas instrucciones de STEP5/7 no se pueden convertir a IEC 61131-3, por ejemplo, DUF.

4408 "Acceso de bits de palabras de temporizador o contador no convertibles en IEC 61131-3".

Los comandos especiales de temporizador/contador no son convertibles en IEC 61131-3.

4409 "Contenido de ACCU1 o ACCU2 indefinido, no convertible en IEC 61131-3".

Un comando, que conecta los dos accus, no se puede convertir, porque los valores de accu no están
definidos.

4410 "Llamado POU no está en proyecto".

Importe la POU llamada.

4411 "Error en la lista global de variables".

Por favor, compruebe el archivo SEQ.

4412 "Error interno n.º 11"

Póngase en contacto con el fabricante del PLC.

4413 "Error en el formato de línea en el bloque de datos"

En el código que se debe importar hay una fecha errónea.

4414 "Falta el nombre de FB/FX".

En el archivo S5D original falta el nombre simbólico de una POU (extendida).

4415 "No se permite la instrucción después del final del bloque".

No se puede importar una POU protegida.

4416 "Comando no válido"

El comando S5/S7 no se puede desmontar.

4417 "Comentario no cerrado"

Cierra el comentario con "*)".

CoDeSys V2.3 10-143


Apéndice K: - Errores y advertencias del compilador

4418 "Nombre FB/FX demasiado largo (máx. 8 caracteres)"

El nombre simbólico de una POU (ampliada) es demasiado largo.

4419 "Formato esperado de la línea "(* Nombre: <FB/FX-Nombre> *)" "

Corrija la línea correspondientemente.

4420 "Falta el nombre del parámetro FB/FX"

Compruebe las POU.

4421 "Tipo de parámetro FB/FX no válido"

Compruebe las POU.

4422 "Falta el tipo de parámetro FB/FX"

Compruebe las POU.

4423 "Parámetro de llamada FB/FX no válido"

Compruebe la interfaz de la POU.

4424 "Advertencia: Falta FB/FX para la llamada o los parámetros no son válidos o tienen parámetros '0'"

La POU llamada aún no se ha importado o no es correcta o no tiene parámetros (en este último caso,
puede ignorar el mensaje de error).

4425 "Falta la definición de etiqueta"

El objetivo (etiqueta) del salto no está definido.

4426 "POU no tiene un nombre de bloque de STEP 5 válido, por ejemplo, PB10"

Modifique el nombre de TO.

4427 "Tipo de temporizador no declarado"

Agregue una declaración del temporizador en la lista de variables globales.

4428 "Se ha superado el número máximo de corchetes abiertos de STEP5"

No puede usar más de siete corchetes abiertos.

4429 "Error en el nombre del parámetro formal"

El nombre del parámetro no puede superar los cuatro caracteres.

10-144 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4430 "Tipo de parámetro formal no compatible con la CEI"

En IEC 61131-3 El temporizador, el contador y las POU no se pueden convertir como parámetros formales.

4431 "Demasiados parámetros 'VAR_OUTPUT' para una llamada en STEP5 STL"

A POU no puede contener más de 16 parámetros formales como salidas.

4432 "No se permiten etiquetas dentro de una expresión"

En IEC 61131-3, las etiquetas de salto no se pueden insertar en ninguna posición deseada.

4434 "Demasiadas etiquetas"

A POU no puede contener más de 100 etiquetas.

4435 "Después de saltar/llamar, debe comenzar una nueva expresión"

Después de saltar o llamar a un comando de carga, LD debe seguir.

4436 "Resultado de bits indefinido, no convertible a IEC 61131-3."

El comando que utiliza VKE no se puede convertir, porque no se conoce el valor de VKE.

4437 "El tipo de instrucción y el operando no son compatibles"

A comando bit se utiliza para un operando de palabra o al revés.

4438 "No se ha abierto ningún bloque de datos (insertar la instrucción C DB antes)"

Inserte un "A DB".

4500 "Variable o dirección no reconocida"

La variable watch no se declara dentro del proyecto. Al presionar <F2> obtiene el asistente de entrada
que enumera las variables declaradas.

4501 "Caracteres adicionales después de una expresión de reloj válida"

Elimine los signos de excedente.

4520 "Error en Pragma: ¡Se espera una bandera antes de '<Nombre>'!"

El pragma no es correcto. Compruebe si '<Name>' es un indicador válido.

4521 "Error en Pragma: ¡Elemento inesperado '<Nombre>'!"

Compruebe si el pragma está compuesto correctamente.

CoDeSys V2.3 10-145


Apéndice K: - Errores y advertencias del compilador

4522 "¡Se espera que Pragma se despiague!"

Pragma no ha sido terminado, inserte una instrucción de 'bandera apagada'.

4523 "Pragma {<Pragmaname>} no permitido en la interfaz de tipo '<Name>'"

Das Pragma no se puede usar en esta ubicación. Consulte la Ayuda en línea de CoDeSys o la Guía del
usuario, palabra clave 'pragma' para el uso correcto de pragmas.

4550 "Índice fuera de rango definido : Variable OD "número>, línea <número de línea>."

Asegúrese de que el índice esté dentro del área definida en la configuración de destino/funcionalidad de red.

4551 "Subíndice fuera de rango definido : Variable OD "número>, línea <número de línea>."

Asegúrese de que el subíndice esté dentro del área definida en la configuración de destino/funcionalidad de red.

4552 "Índice fuera de rango definido : Parámetro OD "número>, línea <número de línea>."

Asegúrese de que el índice esté dentro del área definida en la configuración de destino/funcionalidad de red.

4553 "Subíndice fuera del rango definido : Parámetro OD "número>, Línea <número de línea>."

Asegúrese de que el subíndice esté dentro del área definida en la configuración de destino/funcionalidad de red.

4554 "Nombre de variable no válido: Variable OD <número>, línea <número de línea>."

Introduzca una variable de proyecto válida en la 'variable' archivada. Utilice la sintaxis <nombre de
POU>.<nombre de variable> o para variables globales .<nombre de variable>

4555 "Entrada de tabla vacía, entrada no opcional: Parámetro OD <número>, línea <número de línea>

Debe hacer una entrada en este campo.

4556 "Entrada de tabla vacía, entrada no opcional: OD variable <número>, línea <número>"

Debe hacer una entrada en este campo.

4557 "La memoria de parámetros requerida es demasiado grande"

Se ha superado el tamaño máximo de los datos que se pueden cargar en el controlador a través de
listas de parámetros de tipo Parámetros. Este tamaño está definido por el sistema de destino. La
información sobre el tamaño de los datos se muestra en la ventana de mensajes en la compilación.
Reduzca el tamaño de las listas de parámetros.
4558 "La memoria variable requerida es demasiado grande"

Se ha superado el tamaño máximo de los datos que se pueden cargar en el controlador a través de
listas de parámetros de tipo Variables. Este tamaño está definido por el sistema de destino. La
información sobre el tamaño de los datos se muestra en la ventana de mensajes en la compilación.
Reduzca el tamaño de las listas de parámetros.

10-146 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

4560
"Valor no válido: Diccionario '<Nombre>', columna '<Nombre>', línea '<número de línea>'"

Revisa esta entrada. Depende de la definición de columna (atributo) utilizada actualmente qué entradas
son válidas para este campo. Esta definición viene dada por el fichero de descripción XML específico
del destino del Gestor de parámetros o por la parametrización estándar que se utilizará si no hay
fichero descriptivo.
4561
"Columna no definida: '<Nombre>'"
Las entradas de una columna de la lista de parámetros hacen referencia a otra columna, que sin
embargo no está definida. Las definiciones de columna vienen dadas por el archivo de descripción
(XML) del Administrador de parámetros para el destino actual. Si no se dispone de un archivo de
descripción, se utiliza la configuración estándar.
4562
"Índice/subíndice ya utilizado: Diccionario '<Nombre>', línea '<Número de línea>'"
La combinación Índice/Subíndice debe ser única en todas las listas de parámetros, ya que se puede
utilizar para el acceso a los parámetros. Corrija los índices en consecuencia.

4563
"Identificador '<Nombre>' ya utilizado: Diccionario '<Nombre>', línea '<Número de línea>'"
El nombre debe ser único en todas las listas de parámetros, ya que se puede utilizar para el acceso a
los parámetros.

4564
"El índice '<Nombre>' está fuera de rango: Diccionario '<Nombre>', línea '<Número de línea>' "
Introduzca un índice que esté dentro del rango definido en la configuración de destino, categoría
funcionalidad de red en el campo 'Rango de índice...' para los tipos de lista respectivos (Variables,
Parámetros, Asignaciones).
4565
"El subíndice '<Nombre>' está fuera de rango: Diccionario '<Nombre>', línea '<Número de línea>' "
Introduzca un subíndice que esté dentro del rango definido en la configuración de destino, categoría
funcionalidad de red en el campo 'Rango de subíndice'.

4566
"Se ha producido un error durante la importación del gestor de parámetros"
Ha importado un archivo de exportación que contiene información errónea en el Administrador de
parámetros. Compruebe el archivo *.exp.

4600
"Networkvariables: la expresión '<name>' no es de tipo bool!"
Asegúrese de que la variable definida en el cuadro de diálogo de propiedades de la lista de variables
de red en la opción 'Transmitir en evento', sea de tipo BOOL.

4601
"Variables de red '<name>': No se ha encontrado ninguna tarea cíclica o libre para el
intercambio de variables de red"
No hay ninguna tarea cíclica o libre PLC_PRG en el proyecto en la que se utilicen las variables de red
de tipo CAN o UDP de la lista dada (¡solo la declaración no es suficiente!). Debe tener cuidado de que
las variables se utilicen en una tarea adecuada o en PLC_PRG. Si desea utilizarlos en varias tareas,
tenga en cuenta que en el intercambio de datos se considerará la tarea con la prioridad más alta.

CoDeSys V2.3 10-147


Apéndice K: - Errores y advertencias del compilador

4602
"'<nombre de la lista de variables de red>': El objeto utiliza el puerto UDP '<número de puerto>'
en lugar de '<número de puerto>'"
En la configuración de la lista de variables de red con nombre se utiliza un número de puerto que no es
el mismo que se utiliza en la primera lista de variables de red que se encuentra en la carpeta de
variables globales. ¡Tenga cuidado de que todas las listas de variables de red estén usando el mismo
puerto!
4604
"Variables de red '<nombre>': El identificador base se ha utilizado más de una vez".
El mismo COB-ID se utiliza en los ajustes de configuración ('Objeto', 'Propiedades') de varias listas de
variables de red. Asigne identificadores únicos.

4605
"Variables de red '<name>': ID de CAN COB duplicado".
En la configuración de una lista de variables de red ('Objeto', 'Propiedades') se utiliza un COB-ID, que
también se especifica en la configuración del PLC CAN. Asigne identificadores únicos.

4620
Se han encontrado variables no utilizadas en el proyecto. Consulte el Capítulo 4.3 para obtener la
descripción del comando 'Proyecto' 'Verificar' las variables no utilizadas.

4621
Hay superposiciones en la asignación de variables a áreas de memoria a través de la declaración "AT".
Véase el Capítulo 4.3 para la descripción del comando 'Proyecto', 'Comprobar', 'Superposición de áreas
de memoria'.
4622
Se hace referencia a las direcciones IEC asignadas a la misma área de memoria en más de una tarea.
Consulte el Capítulo 4.3 para la descripción del comando 'Proyecto', 'Verificar', 'Acceso concurrente'.

4623
El proyecto obtiene acceso de escritura a la misma área de memoria en más de un lugar. Consulte el
Capítulo 4.3 para la descripción del comando 'Proyecto', 'Verificar', 'Múltiples escrituras en la salida'.

4650 "AxisGroup '<Name>': La tarea '<Name>' no existe."

En la configuración del PLC, en la definición del grupo de ejes (cuadro de diálogo 'Parámetros del
módulo', columna 'Valor') hay un nombre definido para la tarea que controla la transferencia de datos
de este grupo de ejes, que no se conoce en la configuración de la tarea. Corregir la configuración de la
tarea o la configuración del PLC en consecuencia.

4651
"AxisGroup '<Name>': Cycletime (dwCycle) not set."
En el cuadro de diálogo "Parámetros del módulo" del grupo de ejes, introduzca un valor para el tiempo de ciclo (dwCycle).

4656
"Unidad '<name>': el factor de escala no debe ser 0.
Abra la configuración del PLC y compruebe las entradas de escala en el cuadro de diálogo de
configuración del accionamiento. Todos los campos deben tener entradas que no sean iguales a "0".

4670
"Programa CNC '<Nombre>': No se ha encontrado la variable global '<Nombre>'".

10-148 CoDeSys V2.3


Apéndice K: - Errores y advertencias del compilador

En el programa CNC se utiliza una variable global (por ejemplo, $glob_var$), que no está definida en el
proyecto. Agregue la declaración apropiada o corrija la asignación a la variable en el programa CNC.

4671 "Programa CNC '<Nombre>': La variable '<Nombre>' tiene un tipo incompatible."

Hay una variable asignada en una instrucción del programa CNC, que se declara de un tipo de datos
que no es válido en este lugar. Utilice otra variable o corrija la especificación de tipo.

4685 "CAM '<Nombre>': Tipo de tabla CAM desconocido."

Marque el tipo de datos que se especifica en el cuadro de diálogo del Editor CAM ''Opciones de
compilación..' para la tabla de puntos equidistante o optimizada para elementos.

4686 "CAM '<Nombre>': El punto CAM excede el rango de tipos de datos."

En este CAM se utilizan puntos que están fuera del rango de datos especificado para la tabla de
puntos. Para la definición del rango actual, consulte el cuadro de diálogo 'Opciones de compilación..' en
el editor CAM.
4700 "'<Number>' ('<Name>'): La expresión de observación '<Name>' no es una variable numérica."

En la configuración de la visualización se utiliza una variable que no es un número, como se requiere


en este lugar (por ejemplo, en la configuración de los valores XOffset o Angle, etc.).

4701 "'<Name>' ('<Number>'): La expresión de vigilancia '<name>' no es de tipo BOOL."

En la configuración de la visualización se utiliza una variable que no es de tipo BOOL, como se


requiere en este lugar.

4702 "'<Name>' ('<Number>'): La expresión de vigilancia '<name>' no es de tipo STRING."

La visualización contiene una variable que no es de tipo STRING, aunque esto es necesario en este
lugar (por ejemplo, en la configuración de la información sobre herramientas).

4703 "'<Name>' ('<Number>' ): Expresión de reloj no válida '<Name>'"

La visualización contiene una variable no válida.

4704 "'<Name>'('<Number>'): Valor inicial no válido en la lista de seguimiento '<Name>'."

En esta lista de observación, utilizada en una visualización (comando INTERN en la categoría Entrada),
hay un valor inicial erróneo. Revisa la lista de usados.

4705 "'<Nombre>' ('<Número>'): No hay grupo de alarma válido asignado a la tabla de alarmas."

Introduzca un grupo de alarmas válido en el cuadro de diálogo de configuración de la tabla de alarmas (categoría Tabla de alarmas).

4706 "'<Name>' ('<Number>'): El uso de tablas de alarmas requiere que se active el ajuste de destino
'Manejo de alarmas en el controlador'.."

Abra la configuración de destino en la pestaña 'Recursos' y en el cuadro de diálogo 'Visualización'


active la opción 'Manejo de alarmas en el PLC'. De lo contrario, el elemento de la tabla de alarmas no
funcionará en la visualización de destino que está activada actualmente también en la configuración de
destino.

CoDeSys V2.3 10-149


Apéndice K: - Errores y advertencias del compilador

4707 "'<Name>' ('<Number>'): Las tablas de alarmas no son compatibles con el objetivo actual. Elimine estos
elementos de la visualización de destino".

El sistema de destino no soporta el procesamiento de alarmas (no se puede activar la configuración de


destino 'Manejo de alarmas en el PLC'). Por lo tanto, para ejecutar una visualización de destino
(actualmente activada en la configuración de destino en la pestaña 'Visualización'), los elementos de la
tabla de alarmas deben eliminarse de la visualización.
4708 "'<Nombre>' ('<Número>'): El uso de tendencias requiere que se active la configuración de destino 'Registro de
tendencias en el PLC'.

Abra la configuración de destino en la pestaña 'Recursos' y en el cuadro de diálogo 'Visualización'


active la opción 'Almacenar datos de tendencias en el PLC'. De lo contrario, el elemento de tendencia
no funcionará en la visualización de destino que está activada actualmente también en la configuración
de destino.
4709 "'<Nombre>' ('<Número>'): Las tendencias no son compatibles con el objetivo actual. Elimine estos elementos
de la visualización de destino".

El sistema de destino no soporta el procesamiento de datos de tendencia (no se puede activar la


opción de objetivo 'Almacenar datos de tendencia en el PLC'). Por lo tanto, para ejecutar una
visualización de destino (actualmente activada en la configuración de destino en la pestaña
'Visualización'), los elementos de tendencia deben eliminarse de la visualización.
4712 "'<Name>'('<number>'): El destino seleccionado no admite la salida de contraseñas""

La salida de texto en el elemento de visualización está configurada para funcionar a través de textos
dinámicos o textos Unicode. Además, la opción "Oculto" está activada en la categoría "Entrada". Esto
no es compatible con Target-Visualization.

4900 "Tipo no válido para la conversión"

Está utilizando una conversión de tipos que no es compatible con el generador de código elegido actualmente.

4901 "Error interno: ¡Desbordamiento en el acceso a la matriz!"

Los límites de la matriz son demasiado grandes para una variable de 32 bits. Reduzca el intervalo de índice de
matriz.

10-150 CoDeSys V2.3


11 - Índice

11 Índice
8
ALARM_TASK 10-97
8.3 Formato de Manejo de alarmas en el PLC
archivo 10-97 8051 10-97 Alarmas 6-9
10-91 ALIAS 10-37
Un Alineación en accesos de puntero
10-35 Rama alternativa 2-21 Rama
Aceptar derechos de acceso 4-42 Aceptar alternativa en SFC 2-21, 5-42 Análisis
cambio 4-41 Aceptar artículo modificado 4-41 de expresiones 10-61 AnálisisNew.lib
Aceptar propiedades 4-41 Conflicto de acceso 10-61
4-45 Protección de acceso 4-24, 4-46 Derecho Y 10-4 Y Operador en AWL
de acceso 4-46 Derecho de acceso del 2-9 Anexar programa
parámetro DeviceNet-Slave 6-49 Derechos de Llamar 6-54 Anexar tarea
acceso 4-58 Acuse de recibo 6-10 Acuse de 6-51, 6-52 Coseno de arco
recibo de alarmas 6-9 Acción Asociado en SFC 10-23 Seno de arco 10-26
5-47 Acción 2-7, 2-16, 4-59 Acción en SFC 10-23 Tangente de arco
Agregar 5-43 Zoom 5-44 Acción en el error de 10-23 Archivo 10-72
tiempo de espera 6-48 Acciones ocultar Archivo postal 4-25
programas 4-12 Activar consumidor de latidos Argumento 2-1, 2-3
6-43 Activar consumidor de latidos 6-39 Activar la Argumentos 2-5 Organizar
generación de latidos 6-43 Activar el productor de símbolos 4-83 Cuadro de
latidos 6-39 Activar la variable del sistema diálogo Declaración de
CurrentVisu 10-97 Activación 6-33 Activo paso matriz 5-8
2-17
MATRIZ 10-33
Matriz\Acceso 10-33
Matriz\Inicialización 10-33 Matrices en
el administrador de parámetros 6-73
Información sobre herramientas de AS
para atributos de paso 5-45, 5-46
Formato ASCII para traza 6-69 Archivo
ASD 4-4
ASIN 10-23
ADD 10-1 Agregar archivo de configuración Solicite información sobre el
6-24 Agregar etiqueta a la rama paralela proyecto 4-5 archivo asl \*
5-43 Agregar objeto 4-54, 4-55 ADD MERGEFORMAT 4-5 Tarea
Operador en AWL 2-9 Agregar objetos 2-11, 5-33 Asignación Combs
compartidos 4-52 Agregar a la lista de 5-33 Asignación en FBD 5-31
seguimiento 6-61 Características Operador de asignación 2-13
adicionales de CoDeSys 1-2 Funciones AT 5-6 AT
adicionales en línea 1-1 Dirección Declaración 5-6
DeviceNet-Master 6-45 DeviceNet-Slave ATAN 10-23
6-46 Comprobación de direcciones para la Adjuntar reloj variable 6-61
configuración del PLC 10-94 Direcciones Modo de borrado automático
10-29 6-30 Eliminación automática
6-48 Carga automática 4-5
Restablecimiento automático
ADR 10-13 Dirección de una 6-48 Guardado automático
instancia 10-13 4-4 Guardado automático
ADRINST 10-13 antes de compilar 4-5
Acuse de recibo de alarma 6-10 Clase de Declaración automática 4-6,
alarma 6-13 Clases de alarma 6-10 5-8 Formato automático 4-6
Configuración de alarma 6-10, 6-13 Inicio automático 6-43 Inicio
Ajustes de configuración de alarma 6-16 automático 6-30 Conexiones
Configuración de alarma\Ajustes en línea disponibles DeviceNet-Slave
6-16 Desactivación de alarma 6-13 6-49
Desactivación de evaluación de alarmas
6-16 Evento de alarma 6-9 Grupo de B
alarma 6-13 Mensaje de alarma 6-13 Volver un nivel de macro
Prioridad de alarma 6-9, 6-13 Ahorro de 5-59 Copia de seguridad
alarma 6-15 Estado de alarma 6-9 Tipo automática 4-4 Archivo de
de alarma 6-13 horneado 4-4 Parámetro
base DeviceNet-Master

CoDeSys V2.3 CLI


11 - Índice

6-45 Parámetros básicos Operador CAL en AWL 2-9


Bitchannel 6-29 CAN CALC 2-9
Master 6-36 Módulo CAN CALCN 2-9
6-37 Canal 6-28 Calcular direcciones 6-23, 6-30 Llame al 10-72
DeviceNet-Slave 6-46 DP Llamada de un programa 2-5 Árbol de
Master 6-30 DP Slave 6-32 llamadas 4-59 Función de devolución de
Módulo de E/S 6-25 llamada 6-55 Llamar a una función 2-1 Llamar
Configuración básica a un bloque de funciones 2-4, 2-11 Llamar a
CanDevice 6-42 bloques de función en ST 2-13 Llamada a
Comandos por lotes 10-69 POU en editores de texto 5-22 pila de
Velocidad de transmisión llamadas 6-57 Parámetros de la base maestra
CAN Master 6-36 CAN 6-36 Parámetros CAN 6-36 Parámetros
Velocidad de transmisión del módulo 6-37 Selección de módulos
6-31 Velocidad de esclavos modulares CAN 6-39 Parámetros
transmisión básicos del módulo CAN 6-37 Parámetros
DeviceNet-Master 6-46 CAN 6-38 Selección de módulos para
Velocidad de transmisión esclavos modulares 6-39 Mapeo PDO 6-39
6-42 BCD Conversión Módulos CAN 6-36 Parámetros CAN Maestro
10-50 CAN 6-36 Módulo CAN 6-38 Configuración
BCD_TO_INT 10-50 CAN CanDevice 6-42 Configuración CAN 6-3
Archivo de aplicación binaria 4-12 Configuración CAN para la lista de variables
Información de símbolos binarios de red 6-4 Configuración de CanDevice Base
4-20 Enlace de operadores ST 6-42 Configuración CAN 6-42 Configuración
Direccionamiento de 2-11 bits
6-41 Asignación PDO predeterminada 6-43
10-28 bits Estroboscopio de 6-48
bits 5-13, 10-28 Variable
Bibliotecas CANopen 6-41 Nodo
direccionada de bits 5-29 Variables CANopen-6-41 CANopen-Slave 6-41 Cascada
direccionadas de bits 5-22 4-83

BITADR 10-13
Canal de bits 6-29
Funciones de bits 10-50
Valores de bits 4-7

PARPADEO 10-57
Bloque 5-39
BOOL 10-31
Constantes BOOL 10-25 BOOL_TO Conversiones
10-14 Proyecto de arranque 4-5, 4-7, 4-12, 4-71,
4-82, 10-76, 10-94 Caja 5-32 Caja con entrada EN
en LD 5-38 Punto de interrupción Eliminar 5-24
Conjunto 5-23 Punto de interrupción 1-1, 2-24, 5-22
Punto de interrupción 5-24 Cuadro de diálogo Punto
de interrupción 4-73 Posición del punto de CASO 2-14
interrupción 4-72 Posiciones del punto de Instrucción CASE 2-14
interrupción en el editor de texto 5-23 Difusión 6-3 CASEFOR bucle 2-11 CFC
Archivo ini del navegador 6-81 Compilación 4-11, Volver uno/todos Nivel macro
4-30, 4-69, 10-71 Identificador de bus 6-42 5-59 Cambio de conexiones 5-54
Parámetros de bus Maestro DP 6-31 BusDiag.lib Marcador de conexión 5-54
6-26 Diagnóstico de bus 6-26 POR 2-14 BYTES Copiar elementos 5-53 Crear
10-31 Alineación de bytes 10-86 Constantes de macro 5-58 Creación de
BYTES 10-26 Modo de direccionamiento de bytes conexiones 5-53 Posiciones del
10-94 Funciones de bytes 10-50 cursor 5-49 Eliminación de
conexiones 5-54 Orden de
visualización 5-55 Editar macro
5-58 EN/ENO 5-52 Expandir
macro 5-59 Rutas de
retroalimentación 5-59 Insertar
caja 5-50 Insertar comentario
5-51 Insertar in-pin 5-51 Insertar
entrada 5-50 Insertar entrada de
la caja 5-51 Insertar
entradas/salidas 5-55 Insertar
salto 5-50 Insertar etiqueta 5-51
Insertar el pasador de salida 5-51
Salida de inserción 5-50 Retorno
C de inserción 5-51 Elementos
C C en AWL 2-9 móviles 5-53 Negación 5-51
CAL 10-14

CLII CoDeSys V2.3


11 - Índice

Orden – Uno al revés 5-56 Orden – Uno hacia Contacto 2-22, 5-37 Operador de contenido
adelante 5-56 Orden – Al principio 5-56 10-14, 10-34 Menú contextual 4-3 Ayuda
Orden – Hasta el final 5-56 Orden según flujo de contextual 4-84 Editor de gráficos de
datos 5-56 Orden de ejecución 5-55 Orden funciones continuas 2-21 Editor de gráficos de
topológicamente 5-55 Propiedades de las POU funciones continuas (CFC) 5-49 Variable
5-52 Seleccionar elementos 5-53 controlada 10-54, 10-55 Índice del controlador
Establecer/Restablecer 5-51 CFC 2-21 CFC en 6-4 Estado del controlador 4-82 Conversión de
modo en línea 5-59 Archivo CFG 6-24 Cambio de tipos de números enteros 10-16 Conversiones
estado 6-48 Cambiar valores en línea 2-24 Canal de Tipos 10-14 Convertir objeto 4-56
6-28 Parámetros de canal 6-29 Parámetros Conversión de configuraciones de PLC
personalizados 6-29 Canal 6-28 ID de canal 6-28 antiguas 6-24 Conversión de S5 a IEC 1131-3
Parámetro de canal 6-29 CURVA DE 10-80 Copia 4-62 Copiar objeto 4-56, 10-73
CARACTERES 10-59 Comprobación 10-71 Copiar elementos en CFC 5-53 Copiar en FBD
Comprobación al iniciar sesión 4-8 5-34 COS 10-22 Coseno 10-22 Crear copia de
Comprobación automática 4-13 Comprobación seguridad 4-4 Crear archivo binario de la
de direcciones superpuestas 6-23 Entrada 4-19 aplicación \* MERGEFORMAT 4-12 Crear
Entrada 4-49 Salida 4-18 Salida 4-49 Comprobar información de símbolo binario 4-20 Crear
el código de producto de DeviceNet-Slave 6-46 proyecto de arranque 4-20, 10-76 Crear
Comprobar la versión del producto para proyecto de arranque 4-82 Crear macro en
DeviceNet-Slave 6-46 Comprobar el proyecto CFC 5-58 Crear archivo de traducción 4-32
Acceso simultáneo 4-45 Acceso de escritura CreateBasicSDOs 6-39 CreateCommSDOs
múltiple en la salida 4-45 Áreas de memoria 6-39 CreateMappingSDOs 6-39 Lista de
superpuestas 4-44 Variables no utilizadas 4-44 referencias cruzadas 4-60 Lista de referencias
Comprobar proyecto 4-44 Comprobar el cruzadas 4-59, 6-59 Lista de referencias
identificador de proveedor de DeviceNet-Slave cruzadas 5-2 CTD 10-46 CTU 10-45 CTUD
6-46 CheckBounds 10-34 CheckDivReal 10-2 10-46 CurrentVisu 10-97 Posiciones del cursor
Función CheckPointer 10-35 Función en FBD 5-30 Posiciones del cursor en el CFC
CheckPointerAligned 10-35 CheckRangeSigned 5-49 Posiciones del cursor en el LD Editor
10-37 CheckRangeUnsigned 10-37 Comprueba 5-36 Ajuste del cursor en FBD 5-31
si DeviceNet-Slave 6-46 Suma de comprobación Parámetros personalizados Módulo de E/S
4-82 Archivo CI 4-25 Limpiar 10-71 Limpiar todo 6-28 Parámetros personalizados 6-24, 6-29
4-31 Cerrar todo 4-83 Cerrar archivo 4-23 CMS Corte 4-61 Corte en FBD 5-34 Forzamiento
Grupo de prioridad 6-39 COB-ID 6-36, 6-39 independiente del ciclo) 10-94 Cíclico 6-48
COB-ID 6-4 CoDeSys 1-1 Bobina 2-22, 5-38 Tarea cíclica 6-53
Colores 4-9 Entrada de comandos en el
PLC-Browser 6-81 Archivo de comandos 10-70
Línea de comandos 10-69 Comentario anidado
4-11 Comentario Módulo de E/S 6-25 Comentario
5-1, 5-9, 5-27 Comentario en CFC 5-51
Comunicación DDE 8-1 Interfaz simbólica 4-15
Comunicación 4-15 Ciclo de comunicación
Período 6-36 Parámetros de comunicación
Comprobación al iniciar sesión 4-8 Diálogo 4-81,
4-82 No guardar en el proyecto 4-8
Comprobación rápida 4-82 Guardar con el
proyecto 4-8 Parámetros de comunicación 4-78
Tiempo de espera de las comunicaciones 4-8
Tiempo de espera de las comunicaciones para la
descarga 4-8 Comparar 4-38 Comparar Proyecto
Trabajar en Comparar Modo 4-41 Comparar
proyecto 4-41 Comparar proyectos 4-38, 4-39
Comparar con ENI-Proyecto 4-38 Comparación
de proyectos 4-38 Resultado de la comparación
4-39 Compilación 4-69 Compilar 10-71 Compilar
opciones de archivo 4-19 Compilar archivos
directorio 4-10 Compilador versión 4-12
Comprimir 6-68 Compresión 10-98 CONCAT
10-40 Concatenación 10-40 Acceso simultáneo
4-45 Archivo de configuración 6-24 Directorio de
archivos de configuración 4-10 Configuración de
módulos CAN 6-36 Configuración de módulos
Profibus 6-29 Configurar ENI 4-17 Configurar el
archivo de símbolos 4-15 Conexiones de entrada
configuradas DeviceNet-Slave 6-49 Marcador de
conexión en CFC 5-54 Conexiones 5-54
Conexiones en CFC 5-53, 5-54 CONSTANTE 5-5

CoDeSys V2.3 CLIII


11 - Índice

Consulta DDE Enfoque general de los datos 8-1


Consulta DDE 8-1 Interfaz DDE Acceso a
variables con Intouch 8-2 Activar 8-1 Vinculación
de variables mediante EXCEL 8-2 Vinculación de
variables mediante WORD 8-1 ¿Qué variables se
pueden leer? Interfaz DDE 8-1 8-2 Desactivar la
evaluación de alarmas en modo en línea 6-16
Desactivar la generación de tareas 10-98 Variable
de desactivación 6-13 Tarea de depuración 6-57
Depuración 1-1, 2-23, 4-11, 5-22, 5-29 Depuración
en entorno multitarea 10-85 Declaración 10-103
Declaración AT 5-6 automática 5-8 Nuevo 5-10
Pragma 5-11 Declaración 5-3 Declaración 5-13
Declaración 5-14 Editor de declaraciones
Números de línea 5-9 Modo en línea 5-10 Editor
de declaraciones 5-3 Palabra clave de declaración
5-6 Declaración de una variable 5-6 Declaración
Parte 2-1, 5-3 Ventana de declaración 5-1
Declaraciones como tablas 4-6, 5-9 Declarar
variable 4-66 Decretemple 10-46 Valor
predeterminado del parámetro DeviceNet-Slave
6-49 default.chk 4-82 default.prg 4-82 default.sts
4-82 Definir 4-48 retardo 10-73 ELIMINAR 4-62,
10-41 Eliminar una etiqueta 5-44 Eliminar acción
en SFC 5-44 Eliminar objeto 4-54 Eliminar paso y
transición en SFC 5-42 Eliminar transición 5-44
Eliminar variable de reloj 6-61 Eliminación en FBD
5-34 Modo de demostración 9-1 Desreferenciación
10-14, 10-34 DERIVADO 10-51 Escritorio 4-8
Dispositivo activo en la configuración 6-46 GUID
del dispositivo 10-74 Instancia de dispositivo
10-74 Parámetro de dispositivo 10-74 Tipo de
dispositivo 6-42 Configuración del PLC DeviceNet
6-45 Parámetro base de DeviceNet-Master 6-45
D Parámetros del módulo 6-46 DeviceNet-Master
Enlace a la base de datos 6-45 DeviceNet-Slave Parámetros básicos 6-46
Agregar objetos compartidos 4-52 Configuración de conexión de E/S 6-47
Entrada 4-49 Salida 4-49 Definir Parámetros del módulo 6-49 Parámetros 6-49
4-48 Obtener todas las últimas DeviceNet-Slave 6-45 DiagGetBusState 6-27
versiones 4-51 Obtener la última DiagGetState 6-26 Diagnóstico 6-26, 6-50
versión 4-49 Etiqueta Versión Dirección de diagnóstico 6-26 mensajes de
4-52 Inicio de sesión 4-48 diagnóstico 6-50 Dirección de diagnóstico 6-37
Registro múltiple 4-51 Salida DINT 10-31 Constantes DINT 10-26 Opciones de
múltiple 4-51 Definición múltiple directorio 4-10 Configuración a través de
4-51 Deshacer múltiple Deshacer comandos por lotes 10-72 Deshabilitar tarea 6-57
4-51 Historial de versiones del Control de flujo de pantalla 4-77 Altura de la
proyecto 4-51 Estado de pantalla 10-97 Orden de visualización en CFC
actualización 4-53 Mostrar 5-55 Ancho de pantalla 10-97 DIV 10-2 Operador
diferencias 4-49 Mostrar historial DIV en AWL 2-9 DO 2-15 No guardar parámetros
de versiones 4-49 Deshacer de comunicación en el proyecto 4-8 Archivo Docu
desprotección 4-49 Enlace a la 6-7, 6-8 docuframe 4-28 Archivo Docuframe 6-7,
base de datos 4-46 Tipo de datos 6-8 Documento 4-28, 4-36 Marco de documento
5-7 Nombre del tipo de datos 6-7, 6-8 Documentación del proyecto 4-36
10-105 Datos Tipos 2-8, 4-2 Descargar 4-14, 4-69, 4-71, 4-82 Descargar como
Proyecto de base de datos 4-17 archivo 10-94 Descargar información 4-82
Tiempo de control de datos 6-31 Descargar información 4-31, 4-82 Descargar
archivo de información 4-71 Descarga de listas de
parámetros 6-78 Descarga de la configuración del
PLC 10-94 Descargar archivo de símbolos 10-94
FECHA 10-32 DP Maestro Parámetros básicos 6-30 Parámetros
FECHA Constantes 10-25 Fecha/Hora en el de bus 6-31 Parámetros DP 6-30 DP Master 6-30
archivo de registro de alarmas 6-16 DP Master 6-30 DP parámetros DP maestro 6-30
DATE_AND_TIME 10-32 Constantes de Esclavo DP 6-33 Esclavo DP Parámetros básicos
DATE_AND_TIME 10-26 DATE_TO 6-32 Grupos 6-35 Entrada/Salida 6-34 Parámetros
Conversiones 10-18 Archivo DCF 6-36 del módulo 6-36 Propiedades 6-36 Esclavo DP
Archivo DCF para crear una lista de variables 6-35 Sistema DP 6-29 Arrastrar y soltar 4-53
globales 6-3 Escritura DCF 6-38 DDE 8-1 DSP301 6-36 DSP306 6-36 DT 10-32 DT_TO

CLIV CoDeSys V2.3


11 - Índice

Conversiones 10-18 Tabla de símbolos XML de


volcado 4-15 DWORD 10-31 Constantes DWORD
10-26 Textos dinámicos 10-75 DynamicTextFiles
activados / desactivados 10-75
DynamicTextHideElements activados / desactivados
E
10-75 DynamicTexts activados / desactivados 10-75 Editar Autodeclaración 4-66
Copiar 4-62 Copiar/Pegar en
CFC 5-53 Cortar 4-61 Cortar
en FBD 5-34 Eliminar 4-62
Buscar 4-63 Buscar siguiente
4-63 Asistente de entrada 4-64
Macros 4-67 Siguiente error
4-67 Pegar 4-62 Pegar en
FBD 5-34 Error anterior 4-67
Rehacer 4-61 Eliminar
biblioteca 6-18 Reemplazar
4-63 Deshacer 4-61 Editar
información de licencias 9-1
Editar macro en CFC 5-58
Funciones de edición 4-61
Cuerpo del editor 5-1
Comentarios 5-1 Declaración
parte 5-1

IL 5-25 Márgenes de impresión 5-1


Modo de acceso directo 5-7 Sintaxis
Coloreado 5-7 Editor 5-1 Editor para
texto estructurado 5-26 Opciones del
editor 4-6 Editores 5-1 Archivo EDS
6-36, 6-39, 6-41, 6-42, 6-45 Archivo
EDS para DeviceNet-Slave 6-46
Generación de archivos EDS 6-42

ELSE 2-13, 2-14


ELSIF 2-13
Telegrama de emergencia 6-39,
6-43 ES Entrada 2-23, 5-38, 5-39
EN POU 2-23 EN/ENO en CFC
5-52 Habilitar tarea 6-57 Proyecto
CoDeSys cifrado 4-24 Biblioteca
externa cifrada 4-24 Biblioteca
interna cifrada 4-24 Cifrado 4-14
Cifrado 4-24 Cifrado de un
proyecto 4-46

END_CASE 2-14 END_FOR


2-14 END_IF 2-13
END_REPEAT 2-15 END_TYPE
10-35, 10-36, 10-37 END_VAR
5-4 END_WHILE 2-15 ENI 4-16,
4-23, 4-46

Credenciales ENI 4-5


Base de datos ENI 7-1
Parámetros ENI 10-75
Servidor ENI 7-1 ENI

CoDeSys V2.3 CLV


11 - Índice

Server Suite 7-1 Acción de Extras Pegar arriba en LD 5-40


entrada 2-17, 5-43 Acción Extras Negar en LD 5-40 Extras
de entrada o salida 2-17 Establecer/Reiniciar en LD 5-40
Enumeración 10-35 Extras Pegar rama paralela
EQ 10-12 Operador de (derecha) 5-43 Extras Agregar
ecualización en AWL 2-9 Error etiqueta a la rama paralela 5-43
10-70 Evento para tareas 6-53 Extras Pegar después de 5-44 Extras
Evento Tarea 6-53 Tiempo de Zoom Acción/Transición 5-44 Extras
evento 6-41 Excluir objeto de la Despejar Acción/Transición 5-44
compilación 4-12 Excluir objetos Extras Atributos de paso 5-45 Extras
4-12 Excluir objetos de la Resumen de tiempo 5-45 Extras
compilación 4-30 Ejecutar Opciones en SFC 5-46 Extras
comparación 4-38 Salida 4-30 Asociar Acción 5-47 Extras Usar IEC
Pasos 5-47 Extras Negar CFC 5-51
Extras Establecer/Reiniciar en CFC
SALIDA 2-11, 2-16 5-51 Extras
Acción de salida 2-17
Instrucción de salida 2-16
Acción de salida 5-43

EXP 10-21 Expandir macro en CFC 5-59


Velocidad esperada de paquetes 6-48
Configuración experta para DeviceNet-Slave
6-46 Función exponencial 10-21
Exponenciación 10-24 Exportación 6-79, 10-71
Exportar entradas de matriz 4-16 Exportar
entradas de datos 4-15 Exportar archivo para
crear una lista de variables globales 6-3 Módulo
de exportación 6-23 Proyecto de exportación
4-37 Componentes de la estructura de
exportación 4-15 Exportar variables del objeto
4-15 Expresión 2-11

EXPT 10-24
Ajustes ampliados para un DeviceNet-Slave 6-48
Ajustes ampliados para DeviceNet-Slave 6-46
EXTERNO 5-5
Evento externo 6-53 Biblioteca
externa 4-23, 6-17 Configuración de
seguimiento externo Cargar desde EN/ONE y CFC 5-52
el archivo 6-66, 6-70 Cargar desde Extras Propiedades en CFC 5-52 Extras
el PLC 6-66 Cargar desde el destino Seleccionar todo en CFC 5-53 Extras Marcador
6-70 Guardar en el archivo 6-66, de conexión en CFC 5-54 Extras Orden de
6-69 Guardar en el destino 6-70 visualización en CFC 5-55 Extras Orden
Establecer como configuración de topológico en CFC 5-55 Extras Orden - Uno
proyecto 6-70 Variable externa 5-5 hacia adelante 5-56 Extras Orden - Uno al revés
5-56 Extras Orden – Al principio 5-56 Extras
EXTRACTO 10-50 Orden – Hasta el final 5-56 Extras Ordene todo
Extras Mostrar referencias de acuerdo con el flujo de datos 5-56 Extras
cruzadas 5-2 Extras Aceptar Crear macro en CFC 5-58 Extras Editar macro
derechos de acceso 4-42 en CFC 5-58 Extras Expandir macro en CFC
Aceptar cambio 4-41 Aceptar 5-59 Extras Atrás un nivel macro 5-59 Extras
artículo modificado 4-41 Zoom a POU en CFC 5-61 Extras Hacer archivo
Aceptar propiedades 4-41 Docuframe 6-8 Extras Hacer archivo Docuframe
Siguiente diferencia 4-41 6-8 Extras Vincular archivo Docu 6-8 Extras
Instancia abierta 5-2 Ajustes para la configuración de alarmas 6-16
Diferencia anterior 4-41 Zoom Extras Propiedades de una biblioteca 6-18
a POU 5-2 Extras Opciones de Extras Reemplazar elemento 6-22 Extras
monitoreo 5-22 Extras Calcular direcciones 6-24 Extras Agregar archivo
Opciones 5-27 Extras Negar de configuración 6-24 Extras Configuración
en FBD 5-33 Extras Set/Reset estándar 6-24 Extras Convertir 6-24 Extras
en FBD 5-33 Extras Ver en Establecer tarea de depuración 6-57 Extras
FBD 5-34 Extras Abrir Habilitar/deshabilitar tarea 6-57 Extras Pila de
instancia en FBD 5-34 Extras llamadas... 6-57 Extras Añadir a la lista de
Pegar después en LD 5-40 seguimiento 6-61 Extras En la nueva lista de
Extras Pegar abajo en LD 5-40 seguimiento 6-62 Extras Cambiar el nombre de

CLVI CoDeSys V2.3


11 - Índice

la lista de seguimiento 6-62 Extras


Guardar lista de seguimiento 6-62
Extras Cargar lista de vigilancia 6-62
Extras Monitoreo activo 6-62 Extras
Escribir receta 6-62 Extras Leer receta
6-63 Extras Iniciar rastreo 6-66 Extras
Leer rastreo 6-66 Extras Configuración
de rastreo externo 6-66 Extras Detener
rastro 6-67 Extras Modo de cursor 6-67
Extras Multicanal 6-68 Extras Mostrar
cuadrícula 6-68 Extras Escala Y 6-68
Extras Estiramiento 6-68 Extras F
Comprimir 6-68 Extras Guardar valores F_TRIG 10-44
de seguimiento 6-69 Extras Guardar F_TRIG en LD 5-39
rastro 6-69 Menú de extras Cancelar F4 4-8
comando 6-84 Historial hacia atrás 6-84 F4 ignora la advertencia 4-8
Historial hacia adelante 6-84 Imprimir flanco descendente 10-44
último comando 6-84 Guardar lista de Detección de flanco
historial 6-84 descendente 5-39 FBD
Asignar 5-31 Caja 5-32
Copiar 5-34 Posición del
cursor 5-30 Cortar 5-34
Eliminar 5-34 Entrada 5-33
Saltar 5-31 Negación 5-33
Salida 5-33 Pegar 5-34
Retorno 5-32 Establecer
cursor 5-31

FBD 2-21 Editor FBD 5-30 Rutas de


retroalimentación en CFC 5-59 Campos 2-1 Cierre
de archivo 4-23 Salida 4-30 Nuevo 4-22 Nueva
plantilla de formulario 4-22 Abrir 4-22 Abrir
proyecto desde el Administrador de código fuente
4-23 Imprimir 4-28 Configuración de la impresora
4-28 Guardar 4-23 Guardar como 4-23
Guardar/Enviar archivo por correo 4-25 Archivo
Cerrar archivo 10-70 Nuevo archivo 4-22, 10-70
Archivo abierto 4-22, 10-70 guardar archivo 10-70

ENCONTRAR 4-63, 10-42


Buscar siguiente 4-63 Bandera 5-11
Procesador flotante 10-85, 10-86,
10-88 Control de flujo

FBD 5-35 IL 5-25


Control de flujo
4-77 Carpeta
4-53, 4-54 Fuente
4-6 Fuentes
10-97
FOR 2-14 Bucle FOR 2-14
Valores de fuerza 4-75, 6-64
Tiempo de espera de
fragmentación 6-48 Tarea de

CoDeSys V2.3 CLVII


11 - Índice

rueda libre 6-53 Modo de


congelación 6-30, 6-35
FREQ_MEASURE 10-57
Medición de frecuencia 10-57 Inserto de
función 5-21 Función 2-1 Bloque de CFC 5-49 FBD 5-30 LD 5-35 Editor
funciones 5-18 Inserto de bloque de gráfico 5-26 Asignación de grupo de
funciones 5-22 Instancia 2-3 Bloque de un esclavo DP 6-35 Grupos Esclavo
funciones 2-3 Bloque de funciones 2-3 DP 6-35 Grupos 6-30
Llamada al bloque de funciones 2-4
Diagrama de bloques de funciones Modo en
línea 5-35 Diagrama de bloques de
funciones (FBD) 2-21 Editor de diagramas
de bloques de funciones 5-30 Bloque de GT 10-11 GT Operador
funciones en LD 2-23 Dirección de instancia en AWL 2-9 Tiempo de
del bloque de funciones 10-13 Instancias de guardia 6-39
bloque de funciones 2-3 Nombre del bloque
de funciones 10-105 Bloques de función en
el diagrama de escalera 2-23 Llamada de
H
función 2-1 Función Declaración 2-1 Nombre Escaneo de hardware 6-50
de función 10-105 Latido del corazón 6-39 Latido
del corazón Tiempo del
consumidor 6-43 Maestro del
latido 6-36 Tiempo del productor
de latidos 6-43 Ajustes de
latidos 6-43 Dispositivo de
frecuencia cardíacaNet-Slave
FUNCTION_BLOCK 2-3 6-49 Ayuda Sensible al contexto
Bloque de funciones en el administrador de parámetros 6-73 4-84 Hitachi SH 10-90

G HISTÉRESIS 10-60

Factor de actualización de brecha


6-31 Configuración del canal de puerta
Yo
de enlace 4-80 Principio del sistema E/S completa para DeviceNet-Slave
de puerta de enlace 4-78 6-48 Configuración de la conexión de
Comprobación rápida 4-82 E/S DeviceNet-Slave 6-47 Módulo de
Configuración del servidor 4-79 Puerta E/S Parámetros personalizados 6-28
de enlace 4-78 Puerta de enlace Módulo de E/SParámetros del módulo
10-73 Manejo del servidor 6-28 Identificador Información sobre
GatewayDDE 8-2 Servidor herramientas sin conexión 5-2
GatewayDDE 8-2 GatewayDDEServer Identificador 5-6, 10-103 Identificador
Opciones de línea de comandos 8-4 para la visualización 10-106 Número de
Enfoque general de los datos 8-3 identificación 6-33
Vinculación de variables mediante
WORD 8-4 ¿Qué variables se pueden IEC 61131-3 2-26
leer? 8-3 GatewayDDEServer 8-1 GE IEC Paso 2-17, 5-47
Operador en AWL 2-9 IEC pasos 2-18
Iecsfc.lib 2-17
IF 2-13 IF instrucción
GEN 10-57 Obtener todas las últimas 2-11, 2-13 IL Modo en
versiones 4-51 Obtener la última versión línea 5-25
4-18 Obtener la última versión 4-49
GetBusState 6-25 Constante global 5-5 IL 2-3, 2-9 IL Editor 5-25 Operador IL
Constantes globales 6-6 Reemplazar 2-9 Implícito en la carga 4-14
global 4-44 Variables de retención global Variables implícitas en SFC 2-19
6-6 Búsqueda global 4-43 Lista de Importación 10-71 Importación 4-37,
variables globales\Propiedades de objetos 6-79 Importar desde un archivo de
4-57 Variables globales Constantes 6-6 proyecto S5 10-80 Importar desde un
Variables de red 6-6 Objetos 6-2 Variables archivo de símbolos SEQ 10-79
persistentes 6-6 Variables remanentes 6-6 Importar módulo 6-23 Importar
Variables globales 6-2 Lista de variables proyecto 4-37 Importar archivos
globales Crear 6-3 Edición 6-5 Editor Siemens 4-37 Incluir biblioteca de
gráfico macros 4-21 Incrementador 10-45
Rangos de índice 10-96

CLVIII CoDeSys V2.3


11 - Índice

ÍNDICE DE 10-4 Transición (antes) 5-42


Infineon C16x 10-87 Información para Temporizador en LD 5-39
DeviceNet-Slave 6-46 Tiempo de Transición-Salto 5-43 Tipo
inhibición 6-40 Operador INI 10-24 5-7
Inicialización 5-6, 5-11 Inicialización
de variables de retención 10-24
Operador de inicialización 10-24
Inicialización con cero 10-94
Inicializar entradas 10-94 Inicializar
cero 10-94 In-Pin 5-51 In-Pin' en CFC
5-51 Dirección de entrada 6-25, 6-37
Variable de entrada y salida 5-4
Asistente de entrada 6-60 Asistente
de entrada estructurado 4-64 Pantalla
estructurada 4-65 no estructurada
4-64 Pantalla no estructurada 4-64
Entrada Asistente 4-64 Manejo de
entradas en la visualización 10-98
Entrada en CFC 5-50 Entrada en
FBD 5-33 Entrada de caja en CFC
5-51 Variable de entrada 5-3
Entrada/Salida de un esclavo DP
6-34 Bytes de entrada de
DeviceNet-Slave 6-48 Entradas
DeviceNet-Slave 6-49 Configuración
de entradas/salidas DeviceNet-Slave
6-47 Insertar Agregar acción de INSERTO 10-41
entrada 5-43 Agregar acción de Insertar rango de direcciones 6-62
salida 5-43 Biblioteca adicional 6-17 Insertar declaración 5-9 Insertar función
Todas las rutas de acceso de 5-21 Insertar bloque de funciones en
instancia 6-7 Rama alternativa editores de texto 5-22 Insertar función en
(izquierda) 5-42 Rama alternativa editores de texto 5-21 Insertar
(derecha) 5-42 Anexar llamada al entradas/salidas en CFC 5-55 Insertar
programa 6-54 Anexar subelemento operando en editores de texto 5-21
6-22 Anexar tarea 6-52 Asignar 5-31 Insertar llamada de programa 6-51, 6-54
Fijar reloj variable 6-61 Caja en CFC Insertar comandos estándar 6-81 Insertar
5-50 Caja en FBD 5-32 Caja con EN tarea 6-51, 6-52 Insertar variable de reloj
5-39 Caja con EN en LD 5-38 Bobina 6-61 Inserción de variables 5-2 Instancia
5-38 Comentario 5-27, 5-28 abierta 5-2, 5-34 Instancia 2-3 Instancia
Comentario en CFC 5-51 Contacto 6-73 Nombre de instancia 2-3, 2-4 Rutas
5-37 Declaración Palabra clave 5-6 de acceso de instancia para
Detección de caída de flancos 5-39 VAR_CONFIG 6-7 Instrucción 2-9, 2-11
Función 5-21 Bloque de funciones Lista de instrucciones 2-3 Lista de
5-22, 5-38 In-Pin 5-51 Entrada en instrucciones (IL) 2-9 Editor de listas de
CFC 5-50 Entrada en FBD 5-33 instrucciones 5-25
Entrada de caja en CFC 5-51 Insertar
en los bloques 5-39 Elemento de
inserción 6-22 Insertar nueva lista de
vigilancia 6-61 Insertar llamada al
programa 6-54 Insertar tarea 6-52 INT 10-31 Constantes
Insertar variable de reloj 6-61 Saltar INT 10-26
en CFC 5-50 Saltar en FBD 5-31 INT_TO_BCD 10-50
Saltar en LD 5-40 Saltar en SFC 5-43 INTEGRAL 10-52
Etiqueta en CFC 5-51 Red (después) Intel 386 10-85 Orden de
5-29 Red (antes) 5-29 Nueva bytes Intel 10-88, 10-90
declaración 5-10 Nueva lista de Función Intel StrongARM
vigilancia 6-61 Operando 5-21 10-88 Intellisense 5-2
Operador 5-21 Clavija de salida 5-51 Función Intellisense 4-6
Salida en CFC 5-50 Salida en FBD Biblioteca interna 4-23, 6-17
5-33 Rama paralela (izquierda) 5-43 Intervalo DeviceNet-Slave
Rama paralela (derecha) 5-42 6-49 Intervalo para tareas
Contacto paralelo 5-37 Retorno en 6-53 En la nueva lista de
CFC 5-51 Retorno en FBD 5-32 seguimiento 6-62
Retorno en LD 5-40 Detección de
flanco ascendente 5-39 Paso J
Transición (después) 5-42 Paso
Operador JMP en AWL

CoDeSys V2.3 CLIX


11 - Índice

2-9 Salto 2-21, 5-31 6-17 Biblioteca 2-8 Declaración de biblioteca


Salto en CFC 5-50 Partes 5-13 Elementos de biblioteca 10-63
Salto en LD 5-40 Salto Uso del administrador de bibliotecas 6-17
en SFC 5-43 Etiqueta Administrador de bibliotecas 6-16 Ruta de la
de salto 5-43, 5-44 biblioteca 6-17 Biblioteca privada 5-13
Biblioteca pública 5-13 Información de licencia
4-43 Información de licencia 6-18 Gestión de
K licencias Agregar información de licencia 9-1
Teclas 4-14, 4-24 Combinaciones Creación de una biblioteca con licencia en
de teclas 10-99 Uso del teclado CoDeSys 9-1 Gestión de licencias 9-1
para las tablas 10-75 Uso del Información sobre licencias 9-1 Licencias de
teclado para las tablas 10-98 Uso bibliotecas 4-25 Factor de tiempo de vida 6-39
del teclado 10-99 Palabra clave
5-6

L
Etiqueta 5-43 Etiqueta para redes
5-27 Etiqueta en CFC 5-51 Versión de
la etiqueta 4-52 Comentario de
inserción de escalera 5-28 Diagrama
de escalera 2-22 Diagrama de
escalera (LD) 2-22 Diagrama de
escalera en modo en línea 5-41 Editor
de escaleras 5-35 Idioma 10-75
LÍMITE 10-10
Idioma 'Mostrar proyecto traducido'
LÍMITEALARMA 10-61
4-35 'Alternar traducción' 4-36 LIN_TRAFO 10-52
Campo de número de línea 4-77
Campo de número de línea en editores
de texto 5-23 Número de línea en
IDIOMA 6-16 editores de texto 5-24 Números de
Archivo de idioma 10-74 Archivo de línea en el editor de declaraciones 5-9
idioma activado / desactivado 10-74 Archivo de documentos de enlace 6-8
Idioma en visualización 10-75 Cambio Enlace Pragma 5-13 Vinculación de
de idioma 4-32 Idiomas 2-9 Posición POU 5-13 Vinculación de variables
del cursor LD 5-36 Insertar en bloques mediante EXCEL 8-4 Componentes de
5-39 Insertar caja con entrada EN la lista 4-6 Identificador de la lista 6-4
5-38, 5-39 Insertar bobina 5-38 Insertar Tipos de lista 6-73
contacto 5-37 Insertar bloque de LN 10-21 Cargar y guardar 4-4
función 5-38 Insertar salto 5-40 Insertar Cargar Descargar información
contacto paralelo 5-37 Insertar retorno 4-31 Cargar archivo desde el
5-40 Pegar por encima de 5-40 Pegar controlador 4-83 Descripción del
después en LD 5-40 Pegar por debajo módulo de carga 6-25 Estado del
de 5-40 módulo de carga 6-50 Valores de
carga 6-69 Lista de vigilancia de
carga 6-62 Variable local 5-4
Tiempo de bloqueo para el envío
6-48 Registro 6-18 REGISTRO
Almacenamiento 6-20
LD 2-22 LD como FBD
2-23 LD Editor 5-35 LD
Operador en AWL 2-9 REGISTRO 2-25, 4-10
REGISTRO 10-21 Archivo
EL 10-11 EL Operator in de registro para el proyecto
AWL 2-9 lecsfc.lib 2-17 6-18 Menú de registro 6-19
Logaritmo 10-21 Inicio de
IZQUIERDA sesión 10-71 Inicio de sesión
10-39 LENTE 4-69, 10-70 Iniciar sesión en
10-39
Longitud en bytes 6-49 Longitud de conexión la base de datos 4-48 Iniciar
para DeviceNet-Slave 6-49 Directorio de sesión en la base de datos
bibliotecas 4-10 Análisis de bibliotecasNew.lib ENI 4-17 Cerrar sesión 4-71,
10-61 Definir 6-17 Externo 4-23, 6-17 Insertar 10-70, 10-71 Bucle 2-11
6-17 Interno 4-23, 6-17 Licencias 4-25 LREAL 10-31 LREAL
Vinculación 10-73 Propiedades 6-18 Eliminar como REALES 4-12
6-18 Standard.lib 6-17 Definido por el usuario Constantes LREAL 10-26
LREAL_TO Conversiones 10-17

CLX CoDeSys V2.3


11 - Índice

LT 10-11 LT Operador
en AWL 2-9

M JUGADA 10-3
Macro 4-13, 4-20 Macro después Elementos móviles en CFC 5-53
de compilar 4-13 Macro antes de MUL 10-2 Operador MUL en AWL
compilar 4-13 Macro en CFC 5-58 2-9 Multicanal 6-68 Encuesta de
Biblioteca de macros 4-21 Macros multidifusión 6-48 Registro múltiple
4-67 Macros en PLC-Browser 6-83 4-51 Salida múltiple 4-51 Definición
Programa principal 2-7 Crear múltiple 4-51 Deshacer múltiple
archivo docuframe 4-28 Hacer Salida 4-51 Acceso de escritura
archivo Docuframe 6-8 Gestión de múltiple en la salida 4-45 Entorno
proyectos 4-22 Variable multitarea 10-85 Operación
manipulada 10-54, 10-55 Rango de multiusuario 7-1
índice de mapeo 6-44
Asignaciones 6-73, 10-96 Marca
4-7 Bloques de marcado en SFC MUX 10-10
5-41 Maquetación maestra 4-57
N
N Modificador en AWL 2-9 Nombre de
una visualización 10-106 Nomenclatura
MAX 10-9 Límite máximo de reintentos 6-31 de identificadores 10-103
Retardo máximo de la estación 6-31 Tamaño
máximo de comentario 5-27 Número máximo de NE 10-12 NE Operador en
segmentos de datos globales 10-92 Número AWL 2-9 Negar en CFC
máximo de POU 10-92 Representación MDI 4-8 5-51 Negación en FBD
Diseño de memoria 10-92 Ubicación de la 5-33 Negación en LD 5-40
memoria 10-30 Registro de menús 6-19 Menú en Comentarios anidados 4-11
línea 4-67 Combinar archivo de mensajes 4-42 NetVarUdp_lib_V23.lib 6-5
10-71 Ventana de mensajes 4-2, 4-43, 4-83 Comentario de red 5-27
Mensajes 10-71 Mensajes 4-83 Red 5-27 Red 5-30 Red
(después) 5-29 Red (antes)
5-29 Comentarios de red
5-27 Editor de red Modo en
línea 5-29 Funcionalidad de
red 6-2 Red en FBD 2-21
Red en LD 2-22 Red en
MID 10-40 MIN 10-9 Min. Intervalo Esclavo 6-31 SFC 2-16 Número de red
Min./Max. valor del parámetro DeviceNet-Slave 6-49 5-27 Campo de número de
Min.Retardo de la estación 6-31 Tamaño mínimo del red 4-77 Tipo de red 6-4
comentario 5-27 Edición de variables de red
6-5 Variables de red 6-2,
6-3 Variables de red 6-6
MIPS 10-89 Variables de red 10-96
MOD 10-3 Funcionalidad de red 10-96
Modificador 2-9 Modificadores y Nueva declaración 5-9
operadores en IL 2-9 ID de módulo Nueva declaración 5-10
6-37 Diagnóstico del módulo 6-50 ID Nuevo de la plantilla 4-22
del módulo 6-25 Parámetros del Nueva lista de vigilancia
módulo DeviceNet-Slave 6-49 6-61 Siguiente error 4-67
Maestro DP 6-30 Esclavo DP 6-36 Sin inicialización 6-38 ID de
Módulo de E/S 6-28 Parámetros del nodo 6-42 Número de nodo
módulo CAN Master 6-37 6-25 Telegrama de
DeviceNet-Master 6-46 Estado del protección de nodos 6-43
módulo 6-50 Supervisión Editor de Protección de nodos 6-39
declaraciones 5-10 Pragma 5-11 ID de nodo 6-38 ID de nodo
Editor de texto 5-22 Gestor de relojes 6-36 no persistente 5-18
y recetas 6-63 Supervisión 2-24
Monitoreo activo 6-62 Monitoreo de
tipos complejos 4-7 Opciones de
monitoreo 5-22 Más configuraciones
para un DeviceNet-Slave 6-48
Motorola 68K 10-86

NOT 10-6

CoDeSys V2.3 CLXI


11 - Índice

Aviso en la carga 4-14 Constantes


numéricas 10-26 Número de
segmentos de datos 4-12
CFC 5-59 Editor de la
Declaración 5-10
O FBD 5-35 LD 5-41
Derechos de acceso a objetos 4-58 Editor de red 5-29
Añadir 4-54 Convertir 4-56 Copiar Configuración del PLC
4-56 Eliminar 4-54 DeviceNet-Slave 6-49
6-49 Arrastrar y soltar 4-53 Carpeta SFC 5-47 Configuración de tareas 6-55
4-53, 4-54 Gestión de objetos en un Editor de texto 5-22 Ajustes en línea para la
proyecto 4-53 Abrir 4-56 Propiedades configuración de alarmas 6-16 Abrir un
4-57 Cambiar nombre 4-55 proyecto desde PLC 4-22 Abrir instancia
Información sobre herramientas 4-53 4-59, 5-2 Abrir instancia en FBD 5-34 Abrir
Objeto 2-1 Objeto 4-53 Objeto 4-53 objeto 4-56 Abrir POU 4-59 Operando 2-1,
Organizador de objetos Contraer nodo 5-21 Operador en editores de texto 5-21
4-54 Expandir nodo 4-54 Nueva Optimización 10-87 Optimizar 6-31 Saltos
carpeta 4-54 Organizador de objetos optimizados 10-85 Operaciones de carga
4-2 Propiedades del objeto 4-57 optimizadas 10-85 Operaciones optimizadas
Plantilla de objeto 4-55 con constantes 10-85 Dispositivo opcional
6-38 Opciones para la compilación 4-11
Opciones para los colores 4-9 Opciones
para directorios 4-10 Opciones para el editor
4-6 Opciones para cargar y guardar 4-4
Opciones para el registro 4-10 Opciones
para 'Macros' 4-20 Opciones para el
proyecto 4-3 Opciones para los objetos de
proyecto 4-16 Opciones para el control de
código fuente del proyecto 4-16 Opciones
para 'Configuración de símbolos' 4-15
OF 2-14 Modo sin conexión 10-74 Cuadro Opciones para el escritorio 4-7 Opciones
de diálogo Punto de interrupción en línea para la información del usuario 4-5
4-73 Parámetros de comunicación 4-78
Crear proyecto de arranque 4-82 Mostrar
control de flujo 4-77 Descargar 4-71
Valores de fuerza 4-75 Cargar archivo
desde el controlador 4-83 Iniciar sesión
4-67 Cerrar sesión 4-71 Fuerza de
liberación 4-75 Restablecer 4-72
Restablecer (frío) 4-72 Restablecer O 10-5 Operador OR en AWL 2-9 Orden -
(original) 4-72 Ejecutar 4-71 Mostrar pila de Uno hacia atrás en CFC 5-56 Orden - Uno
llamadas 4-77 Simulación 4-78 Ciclo único hacia adelante en CFC 5-56 Orden – Al
4-74 Descarga del código fuente 4-82 Paso principio 5-56 Orden – Hasta el final 5-56
a paso 4-73 Paso a paso 4-73 Parada 4-72 Ordene todo de acuerdo con el flujo de datos
Alternar punto de interrupción 4-72 Escribir 5-56 Orden de ejecución en CFC 5-55 Orden
archivo en controlador 4-82 Valores de topológicamente en CFC 5-55 Orden original
escritura 4-74 Diálogo de escritura/fuerza 5-10 Out-Pin en CFC 5-51 Dirección de salida
4-76 Sugerencias de cambio en línea 4-69 6-25, 6-37 Salida en CFC 5-50 Salida en FBD
Archivo RI 4-71 Ajuste de destino 10-94 5-33 Parámetros de salida 5-22
Cambio en línea 4-67, 4-69 Cambio en Restablecimiento de salida en FBD 5-33
línea en varios controladores 4-70 Conjunto de salida 5-33 Variable de salida
Funciones en línea 1-1 Funciones en línea 5-4 bytes de salida de DeviceNet-Slave 6-48
4-67 En línea en modo de seguridad 4-7 Salidas DeviceNet-Slave 6-49 Áreas de
Mensajes en línea desde el controlador memoria superpuestas 4-44
4-71 Modo en línea 10-74 Modo en línea

P
PAQUETE 10-51
Pack variables 6-4
Ramal paralela 2-21

CLXII CoDeSys V2.3


11 - Índice

Ramal paralela en SFC 5-43 Ramal PID_FIXCYCLE 10-56 Marcadores de posición para
paralelo en SFC 2-21, 5-42, 5-43 Contacto mensajes de alarma 6-10 Configuración del PLC Añadir
paralelo 5-37 Contactos paralelos 2-22 archivo de configuración 6-24 Comprobación de
Asignación de parámetros en la llamada al dirección activada/desactivada 10-94 Bitchannel 6-29
programa 2-5 Lista de parámetros Configuración CAN 6-36 CanDevice \* MERGEFORMAT
Descargar con el proyecto 6-76 Tipo 6-73 6-41 CANopen-Slave 6-41 Canal 6-28 PLC programable
Matriz del administrador de parámetros CoDeSys como CANopen-Slave 6-
6-73 Copiar lista 6-76 Lista de corte 6-76
Cortar/Copiar/Pegar línea 6-76 Eliminar
línea 6-76 Eliminar lista 6-76 Exportar 6-79
Fundido de salida y fundido de entrada
Líneas 6-76 Formato Dec/Hex 6-76 Bloque 41 Compatibilidad 6-20 Convertir
de funciones 6-73 Importar 6-79 Insertar configuraciones antiguas 6-24 Diálogo
línea 6-76 Insertar lista 6-75, 6-76, 6-77 de parámetros personalizados 6-24
Instancia 6-73 Lista de instancias 6-73 DeviceNet 6-45 Diagnóstico 6-50
Línea después de 6-76 Tipos de lista 6-73 Descargar como archivo 10-94 Módulo
Asignaciones 6-73 Valores de supervisión de exportación 6-23 Ajustes generales
6-78 Modo en línea 6-78 Parámetros 6-73 6-23 Escaneo de hardware 6-50
Pegar lista 6-76 Cambiar el nombre de la Módulo de E/S 6-25 Módulo de
lista 6-76 Ordenar listas 6-77 Variable de importación 6-23 Insertar/Anexar
estructura 6-73 Parámetros del sistema elementos 6-22 Modo en línea 6-49
6-73 Plantilla 6-73 Carga y descarga 6-78 Módulos Profibus 6-29
Variables 6-73 Valores de escritura 6-78 Sustitución/conmutación de elementos
Administrador de parámetros 5-14 Editor 6-22 Selección de objetos de datos de
de parámetros 6-72 Parámetros servicio 6-22 6-41 Configuración
DeviceNet-Slave 6-49 Administrador de estándar 6-24 Nombres simbólicos
parámetros 6-73 Configuración de destino 6-22 Trabajando en 6-21, 6-22
10-96 Parámetros para la tarea 6-54 Configuración del PLC V2.1 6-21
Contraseña 4-13, 10-70 Contraseña a
través del archivo de comandos 10-74
Contraseñas 4-46 Pegar arriba en LD 5-40
Pegar después en LD 5-40 Pegar después
en SFC 5-44 Pegar abajo en LD 5-40
Pegar rama paralela 5-43 Pegar 4-62 PLC_PRG 2-7
Pegar FBD 5-34 Controlador P 10-55 Comando de cancelación de PLC-Browser 6-84
Comandos 6-81 Función 6-80 Historia 6-84
Archivo INI 6-81 Macros 6-83 Imprimir el último
comando 6-84 Guardar lista de historial 6-84
Navegador PLC 6-80 Navegador PLC 10-94
Opciones de PLC-Browser 6-83 Comprobación
de la dirección del puntero 10-35 Comprobación
de alineación 10-35 Puntero 10-34 Sondeo 6-48
Tiempo de espera del sondeo 6-31 POU
(Unidad de Organización del Programa) 1-1,
2-1, 4-2 Nombre de POU 10-105 Power PC
10-88 Pragma Bitaccess 5-13 Enlace 5-13 no
persistente 5-18 símbolo 5-12 Pragma 5-11
Pragma 5-13 Pragma 5-14 Instrucciones de
Pragma 5-11 Pragmas para las partes de
declaración de biblioteca 5-13 Pragmas para
tipos de datos no persistentes 5-18 Pragmas
para el administrador de parámetros 5-14
Multitarea preventiva 10-94 Diferencia anterior
4-41 Error anterior 4-67 Imprimir 4-28 Márgenes
de impresión 5-1 Rango de impresión 4-8
Configuración de la impresora 4-28
Configuración de la impresora 10-71
PD 10-54 PDO 6-39 Mapeo PDO 6-43 Archivo-PRM 6-79 Direcciones Profibus 6-30
Mapeo PDO de un módulo CAN 6-39 Modo 6-30 Canal Profibus 6-34 Parámetros del
bus maestro Profibus 6-31 Parámetros DP 6-30
Parámetros del módulo 6-30 Parámetros de la
PERSISTENTE 5-4 base del esclavo Profibus 6-32 Parámetros DP
Variables globales persistentes 6-33 Asignación de grupos 6-35 Entrada/Salida
6-6 Variables persistentes 5-4 6-34 Parámetros del módulo 6-36 Propiedades
Variables persistentes 6-6 6-36 Parámetros de usuario 6-35 Programa 2-5
PI-controller 10-56 Llamada al programa 2-5 Nombre del programa
PID 10-55 10-105 Proyecto Agregar acción 4-59 Agregar

CoDeSys V2.3 CLXIII


11 - Índice

objeto 4-54 Compilación 4-30 Comprobar


4-44 Limpiar todo 4-31 Comparar 4-38,
4-39 Convertir objeto 4-56 Copiar objeto
4-56 Enlace a la base de datos 4-46
Eliminar objeto 4-54 Documento 4-36
Exportación 4-37 Global Reemplazar
4-44 Búsqueda global 4-43 Importar 4-37
Cargar información de descarga 4-31
Fusionar 4-42 Objeto Derechos de
acceso 4-58 Instancia abierta 4-59
Objeto abierto 4-56 Opciones 4-3
Información del proyecto 4-42
Propiedades 4-57 Reconstruir todo 4-31
Cambiar el nombre del objeto 4-55
Mostrar árbol de llamadas 4-59 Mostrar
referencia cruzada 4-59 Importación de
Siemens 4-37 Traducir a otro idioma PUTBIT 10-51
4-31 Contraseñas de grupo de usuarios
4-46 Proyecto 1-1, 2-1 Código de
proyecto 4-82 Base de datos del Q
proyecto 7-1 Categorías de bases de Calificador 2-17,
datos del proyecto 7-2 Base de datos del 2-18 consulta 10-72
proyecto 7-2 Base de datos del proyecto Tiempo a solas
en CoDeSys Trabajar con 7-2 Base de 6-31
datos del proyecto en CoDeSys 7-2
Directorio del proyecto 4-10 Información R
del proyecto 4-5, 4-42 Opciones de
R R en AWL 2-9
objetos de proyecto 4-17 Control de
R_TRIG 10-44
código fuente del proyecto 4-16 Versión
R_TRIG en LD 5-39
del proyecto 1.5 4-23 Versión del
RAMP_INT 10-59
proyecto 2.0 4-23 Versión del proyecto
RAMP_REAL 10-60
2.1 4-23 Historial de versiones del
Leer la receta 6-63
proyecto 4-51 Propiedades en CFC 5-52
Leer la traza 6-66
Propiedades de un esclavo DP en
REAL 10-31
funcionamiento esclavo del Profibus 6-36
Constantes REALES 10-26 REAL_TO
Propiedades de una biblioteca 6-18
Conversiones 10-17 Reconstruir todo 4-31
Propiedades de una tarea 6-53
Recálculo de direcciones 6-32 Recálculo de las
Propiedades de las herramientas 6-84
direcciones de módulo 6-24, 6-30 Receta 6-60
Protección de un proyecto 4-24, 4-46
Administrador de recetas 6-57 Valor de la
receta 6-58 Rehacer 4-61 Estado de
actualización 4-53 Fuerza de liberación 4-75
Variable remanente 5-4 Recordar el proyecto
de arranque en la salida 4-5 Eliminar biblioteca
6-18 Cambiar el nombre del objeto 4-55
Cambiar el nombre de la lista de seguimiento
6-62 REPETIR 2-11, 2-15 Bucle de repetición
2-15 Reemplace 4-44, 4-63, 10-41 Reemplazar
constantes 4-11 Reemplazar elemento en
configuración de PLC 6-22 Restablecimiento
4-72 Restablecimiento (frío) 4-72
Restablecimiento (original) 4-72
Restablecimiento en FBD 5-33 Nodo de
restablecimiento 6-38 Salida de
restablecimiento en LD 5-40 Recursos
Variables globales 6-2 Administrador de
bibliotecas 6-16 Registro 6-18 Variables de red
6-2 Configuración de variables 6-2, 6-6
Recursos 2-8, 4-2, 6-1 RETENER 2-3, 5-4
Retener el forzamiento 10-94 Retener variable
5-4 Retorno 2-11, 2-13, 5-32 Retorno en CFC
5-51 Retorno en LD 5-40 Instrucción RETURN
2-13 Volver a la configuración estándar 6-24
Control de revisión 7-1 Archivo RI 4-31, 4-71,
4-82 DERECHA 10-39 Flanco ascendente
10-44 Detección de flanco ascendente 5-39
ROL 10-7 ROR 10-8 Rotación 10-7, 10-8 RS
10-43 RTC 10-49 Carrera 4-71, 10-70

CLXIV CoDeSys V2.3


11 - Índice

transición 5-42 Ejecución de los


pasos 5-47 IEC Paso 5-47 Salto
5-43 Marcaje de bloques 5-41 En
línea Modo 5-47 Opciones 5-46
Rama paralela (izquierda) 5-43
Rama paralela (derecha) 5-42
Pegar después de 5-44 Pegar
rama paralela 5-43 Atributos de
paso 5-45 Paso Transición
(después) 5-42 Paso Transición
(antes) 5-42 Tiempo Resumen
5-45 Transición-Salto 5-43 Acción
de zoom 5-44

S
S S en AWL 2-9 SFC 2-16 Editor SFC 5-41
S5 10-80 Traza de muestreo 6-64 Banderas SFC 2-19
Guardar (forzamiento) 10-94 Guardar Biblioteca SFC 2-17
como 4-23 Guardar como plantilla 4-55 SFCActionType 2-19
Guardar archivos de configuración en SFCCurrentStep 2-19
el proyecto 6-23 Guardar credenciales SFCEnableLimit 2-19
ENI 4-5 Guardar archivo 4-23 Guardar SFCError 2-19
correo/Archivo 4-25 Guardar valores de SFCErrorAnalyzation 2-19
seguimiento Valores en el archivo SFCErrorPOU 2-19
ASCII 6-69 Guardar valores de SFCErrorStep 2-19 SFCInit
seguimiento 6-69 Guardar lista de 2-19 SFCPause 2-19
seguimiento 6-62 Guardar alarmas SFCQuitError 2-19
6-15 Guardar con el proyecto 4-8 SFCReset 2-19
Configuración del módulo de escaneo SFCStepType 2-19 SFCTip
6-50 Divisor de pantalla 4-2 Archivo 2-19 SFCTipMode 2-19
SDB 4-20 SFCTrans 2-19 Objetos
compartidos 4-16 Opciones
de objetos compartidos 4-19
Turnos 10-6
SDO 6-38, 6-41 Creación de SDO suprimida 6-39
Modo de seguridad 4-7 Seleccionar directorio de
configuración 6-24 Seleccionar archivo de
configuración 6-24 Conexión de E/S SHL 10-6 Acceso directo en
seleccionada 6-48 Selección de elementos en herramientas Crear nuevo 6-87
CFC 5-53 Selección de elementos en la Acceso directo en herramientas
configuración del PLC 6-22 Sensibilidad para el 6-87 Modo de acceso directo 5-7
Accesos directos de herramientas
guardián de tareas 6-54 Gráfico de funciones
6-84 Mostrar pila de llamadas 4-77
secuenciales 2-16 Editor de gráficos de
Mostrar referencias cruzadas 5-2
funciones secuenciales 5-41 Gráfico de Mostrar mensajes de diagnóstico
funciones secuenciales en modo en línea 5-47 6-50 Mostrar diferencias 4-49
Objetos de datos de servicio 6-41 Establecer en Mostrar cuadrícula 6-68 Mostrar
FBD 5-33 Establecer archivo de idioma 10-75 símbolos POU 4-7 Mostrar
Establecer salida en LD 5-40 márgenes de área de impresión
Establecer/Restablecer bobinas 2-23 Set/Reset 4-8 Mostrar proyecto traducido
en CFC 5-51 setreadonly 10-73 Ajustes 4-35 Mostrar historial de versiones
Configuración de alarma 6-16 Ajustes para 4-49
visualización 10-74 Ajustes en la configuración
del PLC 6-23 SFC Añadir acción de entrada 5-43 SHR 10-7 Siemens Import 4-37,
Añadir salida- Acción 5-43 Añadir etiqueta a la 10-79 Manejo simplificado de
rama paralela 5-43 Rama alternativa (izquierda) entradas 10-98 Simulación 2-25,
5-42 Rama alternativa (derecha) 5-42 Acción de 4-67, 4-78, 10-70
asociación 5-47 Borrar acción/transición 5-44 SIN 10-22 Sinusoidal
Eliminar etiqueta de salto 5-44 Eliminar paso y 10-22 Ciclo único 2-24,

CoDeSys V2.3 CLXV


11 - Índice

4-74 Paso único 2-24, 4-73


Tarea única en multitarea 10-94
SINT 10-31
Constantes SINT 10-26 TAMAÑODE 10-4
Tiempo de ranura 6-31 Softmotion 10-94
Ordenar por dirección 5-10 Ordenar por nombre
5-10 Ordenar por tipo 5-10 Ordenar en el editor
de tablas 5-9 SoruceCodeDownload 10-70
Control de código fuente 4-16 Descarga del
código fuente 4-82 Sourcedownload 4-14 SQRT
10-20 Raíz cuadrada 10-20 SR 10-42 ST 2-11,
5-26 ST Editor 5-26 Operando ST 2-11
Operador ST 2-11 Operador ST en AWL 2-9
Comandos estándar 6-81 Configuración
estándar 6-24 Función estándar 6-17 Biblioteca
estándar 6-17 Estándar POUs 2-1 Standard.lib
6-17 Seguimiento de inicio 6-66 Estado 6-50
Dirección de la estación 6-30, 6-33 Estadísticas
4-42 STATISTICS_INT 10-53
STATISTICS_REAL 10-53 Barra de estado 4-3,
4-7 Estado del PLC 6-50 Escaneo de estado en
SFC 2-19 Paso 2-16 Atributos del paso 5-45
Paso 4-73 Iniciación paso 2-17 Nombre del
paso 5-42 Paso 4-73 Paso Transición
(después) 5-42 Paso Transición (antes) 5-42
Paso 5-22, Paso 5-22, 5-29 parada 10-70
parada 4-72 Parada 6-67 Almacenar datos de
T
tendencias en el PLC 10-97 Estiramiento 6-68 Editor de mesa 5-9 tablekeyboardusage_codesys
CADENA 10-31 CADENA Constantes 10-26 encendido / apagado 10-75
Funciones de cadena 10-39 STRING_TO tablekeyboardusage_web encendido / apagado
Conversiones 10-19 ESTRUCTURA 10-36 10-75 Ancho de pestaña 4-6
Estructura 5-18 Estructura 10-36 Variables de TAN 10-22 Tangente 10-22
estructura en el gestor de parámetros 6-73 Objetivo 6-79 Archivo de
Estructura\Acceso 10-36 Texto estructurado destino 6-79 ID de destino
5-26 Texto estructurado (ST) 2-11 10-74 Tiempo de rotación del
Estructura\Inicialización 10-36 Estructuras 2-1 objetivo 6-31 Cuadro de
SUB 10-2 Operador SUB en AWL 2-9 Tipos de diálogo Configuración de
subrango 10-37 Fuentes admitidas en el destino destino 6-80 General 10-94
10-97 Suprimir la supervisión de tipos Funcionalidad de red 10-96
complejos 4-7 Configuración de símbolos 4-15 Plataforma de destino 10-92
Archivo de símbolos 4-15, 5-12 Descarga de Visualización 10-97
archivos de símbolos 10-94 Interfaz simbólica Configuración de destino 6-79
4-15 Nombres simbólicos 6-22 Archivo Sistema de destino 8051
simbólico 4-20 Modo de sincronización 6-30 10-91 Hitachi SH 10-90 Intel
Sincronización. Modo 6-35 Sync.COB-Id 6-36 StrongARM 10-88
Longitud de Sync.Window 6-36
Sincronizaciones 6-41 Sintaxis Coloreado 5-3,
5-7 SysLibAlarmTrend.lib 10-97 SysLibTime.lib
6-55 SysTaskInfo.lib 6-55 Llamada al sistema MIPS 10-89
10-74 Eventos del sistema 6-51 Eventos del Sistema de destino Infineon C16x 10-87
sistema en la configuración de la tarea 6-55 Sistema de destino Compatible con Intel
Indicador del sistema 10-27 Parámetros del 386 10-85 Sistema de destino Motorola
sistema 6-73 Estado del sistema 10-74 68K 10-86 Sistema de destino TriCore
10-91 Sistemas de destino Power PC
10-88 Visualización de objetivos 10-97
Target-Support-Package 6-79 Tarea 6-51
Atributos de la tarea 6-52 Configuración
de la tarea Anexar tarea 6-52 Pila de
llamadas 6-57 Orden de ejecución 6-57
Insertar llamada al programa 6-54 Insertar
tarea 6-52 Establecer tarea de depuración
6-57 Eventos del sistema 6-55 Trabajar en
6-51 Configuración de tareas 6-51
Habilitación de tareas 6-57 Prioridad de
tarea 6-52 Propiedades de la tarea 6-53
Tipo de tarea 6-53 Configuración de

CLXVI CoDeSys V2.3


11 - Índice

tareas en modo en línea 6-55 Estado de una tarea Seguimiento de lectura 6-66 Guardar valores
6-55 Flujo de tiempo 6-55 Plantilla 4-22, 6-73 6-69 Selección de variables de seguimiento
Plantilla para archivo EDS 6-42 Plantilla para 6-66 Mostrar cuadrícula 6-68 Trazar de inicio
objetos 4-55 Editor de texto Punto de interrupción 6-66 Detener el rastro 6-67 Estiramiento 6-68
5-23 Editor de texto 5-23 Texto en visualización Búfer de seguimiento 6-67 Valores en el archivo
4-32 El Editor de Gráficos de Funciones Continuas ASCII 6-69 Escala en Y 6-68 Variable de traza
(CFC) 2-21 El estándar 2-26 Transformación 6-66 10-52 Condición de
transición 5-44 Condición de transición 2-17
Transición en SFC Zoom 5-44 Transición en
SFC 2-17 Nombre de transición 5-42 Transición
para agotar el tiempo de espera 6-48
Transición-Salto 5-43 Traducir a otro idioma
4-31 Traducir proyecto (a otro idioma) 4-35
Archivo de traducción 4-32 Creación del archivo
de traducción 4-32 Edición 4-34 Archivo de
traducción 4-31 Tipo de transmisión 6-40 Tratar
LREAL como REAL 4-12 Datos de tendencia
10-97 TREND_TASK 10-97 TriCore 10-91
Disparador variable 6-15 TRUNC 10-19 TSDR
LUEGO 2-13 6-33 TSP 6-79 Retardo de apagado 10-49
Azulejo Horizontal 4-83 Retardo de encendido 10-48 Tipo de parámetro
Azulejo Vertical 4-83 DeviceNet-Slave 6-49 Tipo 5-7 TIPO 10-35,
TIEMPO 10-32 10-36, 10-37 Conversiones de tipo 10-14 Literal
Constantes de tiempo 10-25 Tiempo con tipo 5-5
para el guardián de tareas 6-54
Gestión del tiempo en SFC 5-45
Escaneo de tiempo en SFC 2-19
TIME_OF_DAY 10-32 Constantes
de TIME_OF_DAY 10-25 TIME_TO
Conversiones 10-17 TIME-Function
10-30 Tiempo de espera 4-8 Tiempo
de espera DeviceNet-Slave 6-48,
6-49 Temporizador 10-47
Temporizador en LD 5-39 Archivo-tlt
4-32 Archivo-TNF 6-79 A 2-14
TO_BOOL Conversiones 10-15 TOD
10-32 TOD_TO Conversiones 10-17
TOF 10-49 Alternar punto de
interrupción 4-72 Alternar traducción
4-36 TON 10-48 TON en LD 5-39
Barra de herramientas 4-7
Herramientas Creación de nuevos
accesos directos 6-87 Ejecución de
accesos directos 6-88 Preguntas
frecuentes 6-88 Propiedades de los
objetos 6-84 Guardar atajos de
herramientas 6-88 Atajo 6-84
Herramientas 6-84 Información
sobre herramientas SFC 5-47
Información sobre herramientas
4-53, 5-22, 5-29, 5-35, 5-41
Información sobre herramientas para
comentarios 5-1 Información sobre
herramientas para identificadores
5-2 TP 10-47 Traza Cargar desde el
archivo 6-70 Cargar desde el destino
U
6-70 Guardar en el archivo 6-69 UCMM 6-46
Guardar en el destino 6-70 Guardar UDINT 10-31
valores de seguimiento 6-69 Constantes UDINT 10-26 Configuración
Establecer como configuración del UDP para la lista de variables de red 6-4
proyecto 6-70 Seguimiento 10-94 UINT 10-31 Constantes UINT 10-26
Búfer de seguimiento 6-64, 6-67 Deshacer 4-61 Deshacer Salida 4-49
Configuración de seguimiento DESEMPACAR 10-51 HASTA 2-15
Archivo ASCII 6-69 Comprimir 6-68 Variables no utilizadas 4-44 Tarea de
Modo de cursor 6-67 Valores de actualización 6-42 Cargar archivos
carga 6-69 Multicanal 6-68 Directorio 4-10 Carga de listas de
parámetros 6-78 Usar el bit de salida 6-49

CoDeSys V2.3 CLXVII


11 - Índice

Usar control de código fuente Insertar rango de direcciones 6-62


(ENI) 4-16 Usar Insertar nueva lista de seguimiento
VISU_INPUT_TASK 10-98 6-61 Insertar la variable de reloj 6-61
Grupo de usuarios 4-45 En la nueva lista de seguimiento
Contraseñas de grupo de 6-62 Cargar lista de seguimiento
usuarios 4-46 Información de 6-62 Modo en línea 6-63 Leer receta
usuario 4-5 Nivel de usuario 6-63 Cambiar el nombre de la lista
10-74 Parámetros de usuario de seguimiento 6-62 Guardar lista
de seguimiento 6-62 Escribir receta
DP esclavo 6-35 Contraseña de
6-62 Reloj y gestor de recetas 6-57
usuario 10-74 Bibliotecas
Ver Lista 4-60, 6-57, 6-59 Lista de
definidas por el usuario 6-17 vigilancia 10-73 Reloj Variable 5-10,
USINT 10-31 Constantes USINT 5-35 Perro guardián 6-33 Perro
10-26 guardián para las tareas 6-54
Tiempo de vigilancia 6-54 Tiempo de
vigilancia 6-31 WebVisuActivación
activada/desactivada 10-75
Visualización web
activada/desactivada 10-75
V
Valor del parámetro DeviceNet-Slave 6-49
VAR 5-4 VAR PERSISTENTE MIENTRAS QUE 2-15
5-4, 6-6 VAR RETENER 5-4, Bucle WHILE 2-11, 2-15
6-6 VAR_CONFIG 6-2, 6-6 Ventana Organizar símbolos
VAR_CONSTANT 5-5, 6-6 4-83 Cascada 4-83 Cerrar todo
VAR_EXTERNAL 5-5 4-83 Administrador de
VAR_GLOBAL 6-2 bibliotecas 6-16 Registro 6-18
VAR_IN_OUT 5-4, 10-94 Mensajes 4-83 Azulejo
VAR_INPUT 5-3 VAR_INPUT Horizontal 4-83 Azulejo Vertical
CONSTANTE 5-52 4-83 Ventana 4-83
VAR_OUTPUT 5-4 Variable Configuración de la ventana
Insertar en el editor 5-2 4-83 Con argumentos 2-5
Variable 5-2 Configuración de PALABRA 10-31 PALABRA
variables Insertar rutas de Constantes 10-26 Espacio de
instancia 6-7 Configuración de trabajo 4-2 Acceso de escritura
variables 6-6 Declaración de 4-16 Escribir archivo en el
variables Pragma 5-13 controlador 4-82 Protección
Declaración de variables 5-11 contra escritura 4-24, 4-46
Declaración de variables 5-14 Contraseña de protección
Nombre de la variable 5-6 contra escritura 4-13 Escribir
Variables 6-73, 10-96 receta 6-62 Valores de escritura
Declaración de variables 5-6 4-74, 6-64 Diálogo de
escritura/fuerza 4-76

VARIANZA 10-53
ID de proveedor 9-1
Ver en FBD 5-34
X
VISU_INPUT_TASK 10-97 XE 1-1 Codificación XML
VISU_TASK 10-97 4-8 Operador XOR en
Ajustes visuales 10-74 Activación de la AWL 2-9
web visual activada/desactivada 10-75
Visualización 10-97 Nombre de la
visualización 10-106 Texto de
Y
visualización 4-32 Visualización sin Y Scaling 6-68
diseño maestro 4-57
Z
W
archivos zip para la visualización
Administrador de relojes y recetas web 10-98 Acción de zoom en SFC
Agregar a la lista de seguimiento 5-44 Zoom en editores gráficos 5-26
6-61 Adjuntar variable de reloj Zoom a POU 5-2 Zoom a POU 5-2
6-61 Crear lista de seguimiento Zoom a POU en CFC 5-61
6-59 Lista de referencias cruzadas Transición de zoom 5-44
6-59 Eliminar la variable de reloj
6-61 Forzar y escribir valores 6-64

CLXVIII CoDeSys V2.3


11 - Índice

CoDeSys V2.3 CLXIX

Common questions

Con tecnología de IA

Symbolic names in CoDeSys configuration files allow users to define human-readable identifiers for modules and channels, replacing direct IEC addresses. These symbolic names can be configured and edited in the PLC Configuration Editor, enhancing code readability and system manageability .

CoDeSys recalculates module addresses automatically when a new module is inserted, based on previous module addresses. The 'Compute addresses' command ensures that any removal or addition of modules keeps addresses aligned without overlaps and maintains a consistent addressing scheme throughout the PLC configuration .

Enabling the 'Ask for Object Category' option prompts users to assign new objects to one of the three categories ('Project Objects', 'Shared Objects', or 'Local') each time an object is added. This allows overwriting the default settings and ensures precision in categorizing and storing objects within the project .

If a CoDeSys project is reopened and the standard configuration restoration is enabled, all user-configured settings will be lost, reverting the project to the default configuration as defined in the configuration file. This means any customizations made by the user will not carry over into the reopened project .

Post-creation, the assignments to ENI object categories in CoDeSys can be modified through the object properties dialogue. This feature provides flexibility in managing the database by allowing changes to the default or initially assigned categories, such as 'Project Objects', 'Shared Objects', and 'Local' .

Settings for 'Project Objects' and 'Shared Objects' differ from 'Compile Files' as the latter are objects not created until the project is compiled, making them irrelevant for current configuration. 'Project Objects' and 'Shared Objects' involve setting predefined storage folders and adjusting database functions' presets, while 'Compile Files' do not require such configurations until compilation .

The 'Get Latest Version' function in the CoDeSys ENI project database management copies the latest version of the POU from the defined database folder to the currently open project. It overwrites the local version of the objects if the version in the database differs from the project's version .

When establishing a CoDeSys ENI connection, standard configuration steps include defining the TCP/IP address and port, selecting the project name for database folder assignment, and potentially entering read-only credentials. These steps are essential for setting communication parameters and ensuring proper access to the database .

CoDeSys offers the CheckDivDWord and CheckDivReal functions to avoid division by zero. Users can define these functions in their projects to verify divisor values, ensuring that calculations proceed only if divisors are non-zero. This prevents runtime errors associated with division by zero .

The tree structure in ENI's database configuration allows users to browse existing project base data folders. This structure helps users select wanted folders during configuration, easing the data management process within the database .

También podría gustarte