Objeto: Configuración de símbolo
Puede usar la configuración de símbolos para crear descripciones de símbolos para las variables del proyecto. Haga clic
para añadir un objeto de configuración de símbolos al árbol de dispositivos y, a continuación, definir una configuración predeterminada específica.Sugerencia
Para proporcionar símbolos a un servidor OPC UA, recomendamos utilizar el nuevo editor de configuración (Configuración del conjunto de símbolos IEC) para CODESYS 3.5 SP18 y más alto.
Haga doble clic en Configuración de símbolos objeto para abrir el editor de configuración de símbolos.
Diálogo: Agregar configuración de símbolo
Función: Este cuadro de diálogo se utiliza para definir los valores predeterminados para un Configuración de símbolos objeto.
Llamar: menú; menú contextual del objeto de la aplicación
Incluir comentarios en XML | Exporta el archivo de símbolos con los comentarios asignados a las variables. |
Admite funciones OPC UA | Nota: La disponibilidad y capacidad de edición de esta opción dependen del dispositivo.
|
Para obtener más información y ejemplos de opciones de diseño, consulte la siguiente sección "Editor de configuración de símbolos". | |
Diseño de compatibilidad | Esta configuración se utiliza para la compatibilidad de proyectos antiguos. El diseño de datos creado para el cliente coincide lo más posible con el diseño creado internamente por el compilador. |
Diseño optimizado | Recomendado para nuevos proyectos. Calcula el diseño de salida en forma optimizada separada del diseño interno del compilador No genera espacios para elementos no publicados y cumple estrictamente con los requisitos de alineación de memoria de los tipos de datos. Requiere la versión del compilador 3.5.7.0 o superior. |
Editor de configuración de símbolos
El editor incluye una tabla con variables seleccionadas y una barra de menú para editar.
Vista | Puede utilizar este botón para activar y desactivar las siguientes categorías de variables utilizadas en el editor de configuración:
Este filtro también enumera las variables que ya han sido marcadas para exportación en el archivo de símbolos mediante el El Atributo La columna muestra qué derechos de acceso establece pragma. |
Construir | Compila el requisito del proyecto para la preparación actual de variables en el editor de configuración. Datos no alineados solo con acceso a memoria no alineadoSi la configuración de símbolos contiene valores o símbolos no alineados para un dispositivo que no es admite el acceso a memoria requerido (no alineado), se establece un error. Se muestra el siguiente mensaje: El componente <nombre> del tipo de símbolo <nombre del tipo de símbolo> sin alineación de memoria no se puede publicar. Esto evita que se descargue código potencialmente defectuoso en el controlador, lo que podría provocar un fallo impredecible del controlador. |
Descargar | Si utiliza un dispositivo que admite su propio archivo de aplicación para la configuración de símbolos, este botón también estará disponible en la barra de herramientas. Cuando cambia la configuración del símbolo en modo en línea, puede descargar el nuevo |
Ajustes |
|
Herramientas | Guardar archivo de esquema XSD: este comando abre el cuadro de diálogo estándar para guardar un archivo en el sistema de archivos. Con este comando, puede preparar el formato XSD del archivo de símbolos, por ejemplo para su uso en programas externos. |
Derechos de acceso | Puede cambiar los derechos de acceso a un símbolo haciendo clic en el símbolo en el Derechos de acceso columna. . Iconos de derechos de acceso (en orden ascendente)
Nota: En caso de que el controlador tenga una administración de usuarios, puede usar conjuntos de símbolos para definir derechos de acceso específicos del cliente a los mismos símbolos. |
Máximo | Derechos máximos de acceso para este símbolo |
Atributo | Si el derecho de acceso se asignó por atributo, aquí se muestra el icono correspondiente. |
Tipo | Los tipos de datos de alias también se muestran en CODESYS V3.5 SP6 y superior. Ejemplo: |
Miembros | También puede agregar variables de un tipo de datos estructurados seleccionando una casilla de verificación para la configuración de símbolos en el Símbolos columna. Esto causa CODESYS para exportar todos los símbolos de variables "miembros". Sin embargo, en el Miembros columna, puede hacer clic en Nota: Esta selección se aplica a todas las instancias de este tipo de datos para las que se exportan símbolos. Si no se puede seleccionar un miembro de un tipo estructurado, aparecerá un asterisco ( |
Cuadro de lista | Conjuntos de símbolos ya definidos |
| Abre el Agregar nuevo conjunto de símbolos cuadro de diálogo para especificar un nombre para este conjunto |
| Abre el Agregar duplicado del conjunto de símbolos seleccionado diálogo Se crea una copia para el conjunto seleccionado en el cuadro de lista. Puede cambiar el nombre predeterminado ( |
| Abre el Cambiar el nombre del conjunto de símbolos seleccionado cuadro de diálogo para especificar otro nombre para el conjunto seleccionado en el cuadro de lista |
| Abre un cuadro de diálogo que pregunta si se debe eliminar o no el conjunto de símbolos seleccionado en el cuadro de lista. |
Configurar derechos de símbolo | Abre el Derechos de símbolo pestaña del editor de dispositivos Al iniciar sesión allí, puede asignar diferentes derechos de acceso para cada grupo de usuarios (cliente) al conjunto de símbolos seleccionado en el cuadro de lista. |
Para obtener más información, consulte: Pestaña: Derechos de símbolos
Diálogo: Comentarios y Atributos
Habilitar información OPC UA extendida | Nota: La disponibilidad y capacidad de edición de esta opción dependen del dispositivo.
También se puede incluir información adicional, como comentarios y atributos, si la configuración OPC UA está activa. . Cuando la configuración OPC UA está habilitada, los atributos se incluyen en la tabla de símbolos de acuerdo con la siguiente regla:
|
Incluir comentarios | Requisito: Habilitar información OPC UA extendida Está activado.
|
Incluir atributos | |
También incluya comentarios y atributos para nodos de tipo. | Requisito: Incluir comentarios Está activado.
|
Incluir indicadores de nodo de espacio de nombres |
|
Incluir comentarios |
En las versiones del compilador V3.5.5.xa V3.5.8.0, esto incluye la configuración Prefiero comentarios de documentos. |
Incluir atributos |
|
También incluya comentarios y atributos para nodos de tipo. |
|
Requisito: Incluir comentarios Está activado. | |
Incluir comentarios del documento Incluir comentarios normales Incluya siempre ambos tipos de comentarios. Prefiere comentarios de documentos, recurre a los normales Prefiere comentarios normales, recurre a los comentarios del documento. | Las opciones determinan los comentarios que se guardan en la configuración del símbolo. |
Requisito: Incluir atributos Está activado. | |
Incluir todos los atributos Incluir atributos que comiencen con Filtrar atributos con expresión regular. | Define los atributos que se guardan en la configuración del símbolo. |
Coincidir con identificadores simples | Existe principalmente debido a la compatibilidad con versiones anteriores para emular el comportamiento anterior. |
Configuración: configurar la sincronización con tareas IEC
Para un acceso sincrónicamente consistente, el cliente simbólico espera en el tiempo de ejecución cuando procesa una solicitud de lectura o escritura hasta que se encuentra un momento en el que no se ejecuta ninguna tarea IEC. Cuando se detecta esta brecha, se impide reiniciar las tareas IEC hasta que se hayan copiado todos los valores de la lista de variables. Luego las tareas IEC se planifican nuevamente como de costumbre. El acceso sincronizado puede provocar un retraso en el inicio de las tareas IEC, lo que se manifiesta como un aumento de la fluctuación. Como todas las aplicaciones en tiempo de ejecución son administradas por un programador común, este posible deterioro del comportamiento en tiempo real afecto a todas las aplicaciones del dispositivo. Todas las aplicaciones del dispositivo se ven afectadas, independientemente de que incluyan o no configuración de símbolos o hayan sido descargadas al controlador desde uno o más CODESYS proyectos. Por lo tanto, el tiempo de ejecución permite el acceso al sistema sincronizado solo si permite todas las aplicaciones que se descargan en el controlador en el momento del acceso.
Sugerencia
La configuración se encuentra en el editor de configuración de símbolos del Ajustes menú. Además, la configuración también se encuentra en el menú contextual del controlador al hacer clic en el botón Propiedades comando y luego seleccione el Opciones pestaña en el cuadro de diálogo abierto.
Para aplicaciones sin configuración de símbolos, la configuración solo se puede encontrar en el cuadro de diálogo de propiedades.
Importante
Después de cambiar la configuración, se deben volver a cargar todas las aplicaciones descargadas en el dispositivo mediante una descarga o un cambio en línea y se deben actualizar todas las aplicaciones de arranque.
¿En qué casos es necesario un acceso consistente y sincronizado?
Por regla general, no es necesario que los valores mostrados sean coherentes, ya que es prácticamente irrelevante de qué ciclo de tareas IEC se originan los valores modificados. Es completamente irrelevante para valores que rara vez cambian. Incluso al escribir, casi no hay exigencias estrictas de coherencia porque normalmente la máquina debe estar en una especie de modo de espera (por ejemplo, al escribir recetas) en el que no hay acceso directo a los valores escritos como recetas.
Por el contrario, los valores consistentes son particularmente necesarios para que los enlaces de bases de datos guarden datos de producción. Sin embargo, para las máquinas sincronizadas, estos valores deben ser sincronizados con el tiempo de producción (un valor establecido por producto producido) y no ser consistentes con la referencia a una o más tareas IEC. En lo que respecta a la sincronización de la máquina, la coherencia ya debe estar garantizada por la aplicación IEC. Para ello, los valores que surgen durante un ciclo de producción normalmente se recogen en una lista de variables global. Al final del ciclo, el cliente simbólico es notificado mediante una variable adicional (BOOL
o contador) que el ciclo de la máquina ha finalizado y los valores son válidos. Ahora el cliente tiene la oportunidad de archivar los valores del ciclo de producción. Según sea necesario, la lectura correcta también se puede mostrar en la dirección opuesta mediante una variable liberada, de modo que también se puede detener la producción en caso de que no se puedan archivar los datos de producción. El acceso coherente sincronizado no es necesario ni útil para este caso de uso porque la sincronización se realiza en el nivel de la aplicación.
Por el contrario, el acceso consistente sincronizado por parte de clientes simbólicos se aplica típicamente en la industria de procesos con sistemas en funcionamiento continuo sin reloj de producción cuando, por ejemplo, los valores del proceso se escriben de manera consistente y cíclica en un período de tiempo fijo de 60 segundos. Esto se puede hacer mediante sincronización en el nivel de aplicación similar a las máquinas sincronizadas (ver arriba) o mediante sincronización del acceso simbólico consistente sincronizado. La ventaja de este último es que no es necesario implementar ninguna lógica en el programa IEC y el acceso lo controla completamente el cliente.
Atención
Debido al aumento de la fluctuación, la monitorización consistente sincronizada no es adecuada para aplicaciones críticas de movimiento o en tiempo real. Por estos motivos, el acceso coherente sincronizado debe liberarse y utilizarse sólo si es absolutamente necesario.
Si un cliente usa el acceso coherente sincrónico publicado por esta configuración, esto tiene un efecto en el cliente. En función del programador del tiempo de ejecución, el tiempo de respuesta puede variar más en el caso del acceso de lectura y escritura, ya que es posible que el sistema aún tenga que esperar a que se produzca un intervalo de ejecución de las tareas de IEC. El acceso de lectura o escritura aún puede fallar cuando las tareas de IEC se ejecutan durante mucho tiempo (en el rango de varios 100 ms) o la carga de la CPU se acerca al 100% durante un período prolongado con una o más tareas de IEC (en el rango de varios 100 ms). Por lo tanto, la disponibilidad de los valores también depende de la carga de la aplicación IEC en la controladora
Además, el cliente puede minimizar los efectos sobre sí mismo y sobre el tiempo de ejecución si observa lo siguiente en la definición de las listas de variables a leer o escribir:
Acceso consistente y sincronizado solo a aquellas variables que son absoluta y consistentemente requeridas
Listas de variables separadas para variables que deben ser consistentes y para variables que podrían ser inconsistentes
Divida las listas de variables con varias variables consistentes en varias listas más pequeñas
Seleccione intervalos de lectura para lecturas cíclicas de valores lo más grandes posible
Soporte para la configuración actual y posibles acciones correctivas.
Las entradas marcadas en rojo en la tabla de símbolos muestran variables que están configuradas para exportarse al archivo de símbolos pero que actualmente no son válidas en la aplicación. La causa de esto puede ser que la declaración haya sido eliminada del bloque.
En la versión 3.5.8.0 y superiores, aparece una advertencia en el editor si las variables que tienen símbolos configurados no se utilizan en el código IEC o no están asignadas en el caso de variables de E/S. Además, el compilador indica variables a las que se hace referencia desde versiones obsoletas de la biblioteca en la configuración del símbolo.
Importante
Las variables de objeto que no se utilizan en el código del programa permanecen sin compilar de forma predeterminada y, por lo tanto, no están disponibles en la configuración de símbolos.
El Enlace siempre La propiedad POU está seleccionada.
El
{attribute 'linkalways'}
Se utiliza pragma.
Para obtener más información, consulte: Diálogo: Propiedades: Construir y Diálogo: Propiedades: Opciones: Controlador
Ejemplos de tipos de diseño de datos
Ejemplo de una estructura grande, de la cual no todos los miembros están publicados:
STRUCT {attribute 'symbol':='readwrite'} PublicNumber : INT; {attribute 'symbol':='none'} InternalData : ARRAY[0..100] OF BYTE; {attribute 'symbol':='readwrite'} SecondNumber : INT; {attribute 'symbol':='none'} MoreData : ARRAY[0..100] OF BYTE; END_STRUCT END_TYPE
Entradas resultantes en el archivo de símbolos (preste atención a "size
" y "byteoffset
"):
<TypeUserDef name="T_GrosseStruktur" size="208" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur"> <UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /> <UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="104" vartype="VAR" /> </TypeUserDef>>
<TypeUserDef name="T_GrosseStruktur" size="4" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur"> <UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /> <UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="2" vartype="VAR" /> </TypeUserDef>
Los siguientes mecanismos pueden provocar miembros con desalineación de memoria:
{attribute 'relative_offset':='…'}
en un miembro
{attribute 'pack_mode':='…'}
en una declaración de cadena
Target setting 'memory-layout\pack-mode'
en la descripción del dispositivo
{attribute 'pack_mode':='1'} TYPE UngeradeAdressen : STRUCT {attribute 'relative_offset':='3'} {attribute 'symbol':='readwrite'} PublicNumber : INT; {attribute 'symbol':='readwrite'} PublicValue : LREAL; END_STRUCT EMDTYPE
Entradas resultantes en el archivo de símbolos; (presta atención a "size
" y "byteoffset
"):
<TypeUserDef name="T_UngeradeAdressen" size="13" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen"> <UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="3" vartype="VAR"> <UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="5" vartype="VAR" /> </TypeUserDef>
<TypeUserDef name="T_UngeradeAdressen" size="16" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen"> <UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /> <UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="8" vartype="VAR" /> </TypeUserDef>
// Each POU contains some implicit variables, which do not get published. Depending on the data type these might cause memory gaps of different sizes. FUNCTION_BLOCK POUx IMPLEMENTS SomeInterface VAR_INPUT in : INT; END_VAR VAR_OUTPUT out : INT; END_VAR VAR END_VAR
Cada POU contiene algunas variables implícitas que no se publican. Si es un tipo de datos como __XWORD
, entonces diferentes tamaños de espacios de memoria dan como resultado el diseño de datos del lado del cliente, dependiendo de si el sistema es de 64 bits o de 32 bits.
Entradas resultantes en el archivo de símbolos para 64 bits y 32 bits; (presta atención a "size
" y "byteoffset
"):
Archivo de símbolos, bloque de funciones, opción de diseño de compatibilidad, 64 bits
<TypeUserDef name="T_Baustein" size="24" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein"> <UserDefElement iecname="in" type="T_INT" byteoffset="16" vartype="VAR_INPUT" /> <UserDefElement iecname="out" type="T_INT" byteoffset="18" vartype="VAR_OUTPUT" /> </TypeUserDef>
Archivo de símbolos, bloque de funciones, opción de diseño optimizado, 64 bits
<TypeUserDef name="T_Baustein" size="4" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">> <UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" /> <UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" /> </TypeUserDef>
Archivo de símbolos, bloque de funciones, opción de diseño de compatibilidad, 32 bits
<TypeUserDef name="T_Baustein" size="12" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein"> <UserDefElement iecname="in" type="T_INT" byteoffset="8" vartype="VAR_INPUT" /> <UserDefElement iecname="out" type="T_INT" byteoffset="10" vartype="VAR_OUTPUT" /> </TypeUserDef>
Archivo de símbolos, bloque de funciones, opción de diseño optimizado, 32 bits
<TypeUserDef name="T_Baustein" size="4" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein"> <UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" /> <UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" /> </TypeUserDef>
Para más información, ver: Configuración de símbolos.