Skip to main content

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 Proyecto → Añadir objeto 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: Proyecto → Agregar objeto → Configuración de símbolo 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.

_cds_icon_checked.png: Al descargar la configuración de símbolos, también se descarga información adicional al controlador. La siguiente información es necesaria para el funcionamiento del servidor OPC UA:

  • Tipos básicos de bloques de funciones heredados

  • Contenido de los atributos que se asignaron mediante pragmas del compilador.

  • Alcances (ejemplo: VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

tabla 6. Diseño de datos del lado del cliente

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.

tabla 7. Barra de menús

_cds_icon_symbolconfiguration_view

Vista

Puede utilizar este botón para activar y desactivar las siguientes categorías de variables utilizadas en el editor de configuración:

_cds_icon_view_from_project.png Desconfigurado del Proyecto: Variables que no se han agregado a la configuración del símbolo, pero se proporcionan en el proyecto

_cds_icon_library_manager.png Desconfigurado de bibliotecas: Variables que no se han agregado a la configuración del símbolo, pero se proporcionan en el proyecto

_cds_icon_view_from_attribute.png Símbolos exportados mediante atributo:

Este filtro también enumera las variables que ya han sido marcadas para exportación en el archivo de símbolos mediante el {attribute 'symbol' := 'read'} pragma. Estos símbolos se muestran en gris.

El Atributo La columna muestra qué derechos de acceso establece pragma.

_cds_icon_symbolconfiguration_build.png

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 alineado

Si 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 <application name>._symbols archivo inmediatamente al PLC.

_cds_icon_symbolconfiguration_settings

Ajustes

  • Admite funciones OPC UA:

    Nota: La disponibilidad y capacidad de edición de esta opción dependen del dispositivo.

    Para proporcionar símbolos a un servidor OPC UA, recomendamos utilizar alternativamente el nuevo editor de configuración (Configuración del conjunto de símbolos IEC) para CODESYS 3.5 SP18 y más alto.

    _cds_icon_checked.png: Al descargar la configuración de símbolos, también se descargan datos adicionales al controlador. La siguiente información es necesaria para el funcionamiento del servidor OPC UA. Actualmente incluye la siguiente información:

    • Tipos básicos de bloques de funciones heredados

    • Contenido de los atributos que se asignaron mediante pragmas del compilador.

    • Alcances (ejemplo: VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

  • Incluir comentarios en XML

    Exporta el archivo de símbolos con los comentarios asignados a las variables.

  • Incluir indicadores de nodo en XML

    _cds_icon_checked.png: Las banderas de nodo del espacio de nombres proporcionan información adicional sobre el origen de un nodo en el espacio de nombres. El nodo siempre marca en la tabla de símbolos cuando se activa OPC UA.

    Sin embargo, se puede desactivar la incrustación en el archivo XML. Algunos analizadores tienen problemas con esto.

  • Configurar comentarios y atributos

    Abre los Comentarios y atributos diálogo

    Aquí configura los detalles de lo que se debe incluir en la configuración del símbolo y el archivo XML con respecto a los comentarios y atributos.

  • Configurar la sincronización con tareas IEC:

    Abre el Propiedades – <nombre del dispositivo> diálogo, Opciones pestaña

    Esta configuración permite que los clientes simbólicos (por ejemplo, visualizaciones o conexiones de bases de datos basadas en el controlador PLC) tengan acceso de lectura o escritura consistente que está sincronizado con las tareas IEC.

    Encontrará una descripción detallada de esta configuración más adelante en la sección Configuración: configurar la sincronización con tareas IEC.

    Nota: El acceso variable que es sincrónico con las tareas IEC puede aumentar la fluctuación para todas las aplicaciones IEC en este dispositivo. El acceso consistente sincronizado puede interrumpir la capacidad en tiempo real.

  • Cuadro de lista para definir el tipo de diseño de datos para el cliente de la configuración del símbolo:

    Nota: Consulte también la sección Ejemplos de tipos de diseño de datos.

    • 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.

    • 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.

      Debido a las posibilidades de configuración de la configuración de símbolos, que han ido aumentando con el tiempo, todavía pueden producirse desviaciones problemáticas.

      Causas de las compensaciones:

      Faltas de memoria debido a punteros internos o referencias en bloques de funciones y componentes de estructura que no están autorizados para la configuración de símbolos

      Brechas de memoria que se producen de forma diferente en sistemas de 32 y 64 bits según el tipo de datos, como por ejemplo __XINT / __XWORD

      Campos que están en direcciones desiguales. Algunos clientes no están configurados para esto.

      Desalineación de memoria involuntaria, que ocurre al usar los atributos 'pack_mode' o 'relative_offset'

  • Utilice espacios de nombres vacíos de forma predeterminada (compatibilidad V2): Requerido cuando se utiliza un CODESYS Configuración del servidor OPC compatible con V2

    _cds_icon_checked.png: Comportamiento igual que en CODESYS V2.3

    • Las variables del programa se exportan sin nombre de aplicación:

      (Application.PLC_PRG.MyVarPLC_PRG.MyVar)

    • Las variables globales se exportan además sin el nombre GVL.

  • Habilitar acceso directo a E/S:

    Aviso

    Esta característica es potencialmente peligrosa y no está destinado a funcionar en producción.

    Habilítelo solo para verificación de errores y pruebas, o al poner en servicio la maquinaria (por ejemplo, para verificar las conexiones de los cables).

    _cds_icon_checked.png: En la configuración de símbolos, también puede utilizar el acceso a direcciones de E/S directas que corresponden a la sintaxis IEC (por ejemplo, %IX0.0).

    El acceso a las direcciones de entrada (I) es de solo lectura*. El acceso a las direcciones de salida (Q) y de memoria (M) puede ser de lectura-escritura.

    * Información: En el modo de simulación, el acceso de escritura a los símbolos también es posible para las direcciones de entrada.

    Debido a que los clientes externos para protocolos como OPC u OPC UA no siempre admiten la sintaxis IEC para direcciones directas, el acceso también se proporciona mediante una sintaxis de matriz en el espacio de nombres __MIO del código implícito. Por ejemplo, también puede acceder a __MIO.MIO_IX[2].x3 en lugar de %IX2.3.

    Sin embargo, los símbolos para el acceso a la matriz están ocultos en los navegadores porque algunos clientes no pueden manejar una gran cantidad de nodos (varios miles dependiendo del tamaño de los rangos de E/S).

  • Llamadas de soporte de funciones, FB, métodos y programas:

    Nota: La disponibilidad y capacidad de edición de esta opción dependen del dispositivo.

    _cds_icon_checked.png: Los derechos de acceso ejecutar se puede configurar en la tabla de símbolos para símbolos de POU de tipo función, bloque de función, método o programa. los Compatibilidad con funciones de OPC UA La opción también tiene que ser seleccionada en el Ajustes.

  • Incluir información de llamadas en XML:

    _cds_icon_checked.png: La información sobre las funciones, bloques de funciones, métodos o programas llamados también aparece en el archivo XML de la configuración del símbolo.

    La opción está habilitada sólo si el Admite llamadas de funciones, FB, métodos y programas. La opción es compatible con el dispositivo.

  • Habilitar conjuntos de símbolos:

    _cds_icon_checked.png: Encima de la tabla de símbolos se muestra una barra de herramientas con botones y un cuadro de lista. Puede utilizar esto para configurar conjuntos de símbolos para la asignación de derechos de acceso al controlador específicos del cliente.

    Consulte "Barra de herramientas para la configuración del conjunto de símbolos" a continuación.

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.



tabla 8. Tabla de símbolos

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)
  • symbol_read.png: Solo lectura

  • symbol_write.png: Escribir solamente

  • symbol_read_write.png: Lee y escribe

  • _cds_icon_access_right_execute.png: Ejecutar

    Este permiso permite ejecutar permisos para funciones, bloques de funciones, métodos y programas.

    Requisitos para la tarea: El dispositivo proporciona la Admite llamadas de funciones, FB, métodos y programas. y Admite funciones OPC UA opciones. Ambas opciones se activan en el Ajustes.

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: MY_INT : INT para una variable declarada con el tipo de datos MY_INT (tipo INT).

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 _cds_icon_three_dots.png para seleccionar solo componentes estructurales específicos.

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 (_cds_icon_symbolconfig_checkbox_wildcard.png) se muestra en las casillas de verificación de los miembros para indicar que se exportan todos los miembros exportables de ese tipo.



tabla 9. Barra de herramientas para la configuración del conjunto de símbolos

Cuadro de lista

Conjuntos de símbolos ya definidos

_cds_icon_add_symbol_group.png Agregar nuevo conjunto de símbolos

Abre el Agregar nuevo conjunto de símbolos cuadro de diálogo para especificar un nombre para este conjunto

_cds_icon_copy_symbol_group.png Agregar duplicado del conjunto de símbolos seleccionado

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 (<group name>_duplicate).

_cds_icon_rename_symbol_group.png Cambiar el nombre del conjunto de símbolos seleccionado

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

_cds_icon_delete_symbol_group.png Eliminar conjunto de símbolos seleccionado

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

tabla 10. Contenido de la tabla de símbolos

Habilitar información OPC UA extendida

Nota: La disponibilidad y capacidad de edición de esta opción dependen del dispositivo.

_cds_icon_checked.png: En la tabla de símbolos se incluye información adicional que los servidores OPC UA pueden evaluar. Esto incluye información de herencia de tipos de datos definidos por el usuario y los indicadores del nodo del espacio de nombres.

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:
  • En las versiones del compilador V3.5.5.0 a V3.5.7.X, todos los atributos se incluyen según el Coincidir con identificadores simples configuración.

  • En la versión del compilador V3.5.8.X, todos los atributos se incluyen según la configuración Incluir todos los atributos.

  • En la versión del compilador V3.5.9.0 y superior, puede personalizar los atributos que se incluyen.

Incluir comentarios

Requisito: Habilitar información OPC UA extendida Está activado.

_cds_icon_checked.png: Los comentarios y atributos también se guardan en la tabla de símbolos.

Incluir atributos

También incluya comentarios y atributos para nodos de tipo.

Requisito: Incluir comentarios Está activado.

_cds_icon_checked.png: También se incluye la información de los nodos de tipo (tipos definidos por el usuario, como STRUCT y ENUM elementos).

_cds_icon_option_deactivated.png: Solo las variables exportadas directamente tienen comentarios y atributos.



tabla 11. Contenido del archivo de símbolos XML

Incluir indicadores de nodo de espacio de nombres

_cds_icon_checked.png: Los indicadores de nodo del espacio de nombres proporcionan información adicional sobre el origen de un nodo en el espacio de nombres. Los indicadores de nodo siempre están en la tabla de símbolos cuando se activa OPC UA. Sin embargo, su inclusión en el archivo XML se puede desactivar ya que algunos analizadores defectuosos tienen problemas con él.

Incluir comentarios

_cds_icon_checked.png: Los comentarios también se pueden guardar en el archivo XML.

En las versiones del compilador V3.5.5.xa V3.5.8.0, esto incluye la configuración Prefiero comentarios de documentos.

Incluir atributos

_cds_icon_checked.png: Los atributos también se pueden guardar en el archivo de símbolos.

También incluya comentarios y atributos para nodos de tipo.

_cds_icon_checked.png: También se incluye la información para los nodos de tipo (tipos definidos por el usuario, como STRUCT y ENUM elementos).

_cds_icon_option_deactivated.png: Solo las variables exportadas directamente tienen comentarios y atributos.



tabla 12. Seleccionar comentarios

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.



tabla 13. Atributos de filtro (no distingue entre mayúsculas y minúsculas)

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.

. Sin embargo, CODESYS todavía proporciona variables de objetos no compilados en la configuración del símbolo cuando se cumple una de las siguientes condiciones:
  • 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 10. Gran estructura

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"):

ejemplo 11. Archivo de símbolos, estructura grande, opción de diseño de compatibilidad
<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&gt>


ejemplo 12. Archivo de símbolos, estructura grande, opción de diseño optimizado
<TypeUserDef name="T_GrosseStruktur" size="4" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /&lt;UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="2" vartype="VAR" />
</TypeUserDef>


ejemplo 13. Estructura con direcciones desiguales.

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"):

ejemplo 14. Archivo de símbolos, estructura con direcciones impares, opción de diseño de compatibilidad
<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>


ejemplo 15. Archivo de símbolos, estructura con direcciones desiguales, opción de diseño optimizado
<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>


ejemplo 16. Bloque de funciones
// 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"&gt;>
<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.