Skip to main content

Asignación de tipos OPC UA a tipos IEC

Mapeo de tipos de datos básicos

tabla 1. Tipos de datos básicos

OPC UA

CEI

Descripción

Tipos basicos

Boolean

BOOL

Byte

BYTE

SByte

SINT

Int16

INT

UInt16

UINT

INT32

DINT

UInt32

UDINT

Int64

LINT

UInt64

ULINT

FLOAT

REAL

Double

LREAL

Duration

LREAL

DateTime

LDATEANDTIME

UtcTime

LTIME

String

STRING

Las cadenas simples se convierten en cadenas IEC.

La longitud de la cadena IEC se puede cambiar posteriormente y se puede elegir sin restricciones.

LocalizedText

STRING

Las cadenas localizables se asignan a una cadena IEC.

Tipos especiales:

NodeId

Bytestring

XmlElement

Guid

ExpandedNodeId

StatusCode

QualifiedName

LocalizedText

ExtensionObject

DataValue

DiangosticInfo

Asignación al tipo correspondiente de la especificación OPC UA: OpcUA_<name>.

Ejemplo: OpcUA_NodeId

Se trata de tipos de datos de la especificación OPC UA que requieren un tratamiento especial en la aplicación PLC.

Sólo se admite el acceso de lectura.

Herencia

La herencia está permitida para todos los tipos de OPC UA. Por ejemplo, los nuevos tipos también se pueden derivar de String y Int32.

Nota: En el caso de derivaciones de tipos base, el tipo base se utiliza como base para el mapeo. Como resultado, el tipo OPC UA derivado ya no está disponible en IEC.

_cds_img_opc_ua_map_object_inheritance.png

BaseObjectType como tipo de datos

Ver la descripción

Si se permite más de un tipo de objeto específico para una variable en un modelo de información y depende del usuario del modelo seleccionar el tipo específico, simplemente BaseObjectType se especifica como el tipo de la variable. Normalmente, CODESYS genera su propio bloque de funciones en este caso e inserta cualquier elemento secundario existente allí. Sin embargo, el usuario puede eliminar este bloque de funciones y también usar otro tipo de objeto en la declaración. La única restricción es que tiene que ser un tipo de objeto del mismo modelo de información.

VariableType

Ver la descripción

Además de un tipo de datos, una variable en OPC UA también puede hacer referencia a un VariableType por medio de un HasTypeDefinition. Esto se usa a menudo para decorar una variable con metadatos adicionales (AnalogItemType, EngineeringUnits, etc.)

Debido a que una variable solo puede tener exactamente un tipo en IEC, se genera una estructura que:

  • Contiene una variable denominada "valor" para el valor real del tipo de datos

  • Contiene una variable denominada "propiedades" que se puede utilizar para acceder a otros metadatos.

Para un Cliente OPC UA, esta estructura generada es invisible. Como era de esperar, solo ve el tipo de datos correcto en la variable y los metadatos como elementos secundarios.

_comm_img_opc_ua_variabletype.png


Mapeo de tipos de objetos

Sugerencia

Todas las declaraciones se declaran juntas como variables locales entre VAR y END_VAR. El usuario puede cambiar las declaraciones según sea necesario en VAR_INPUT y VAR_OUTPUT.

tabla 2. Tipos de objetos

OPC UA

CEI

Descripción

Tipos de objetos OPC UA

Bloques de funciones

Interfaces y complementos

bloque de funciones

Los miembros de la interfaz son miembros del bloque de funciones.

Ejemplo:

_cds_img_opc_ua_map_interfaces.png

Herencia

En lugar de generar varios bloques de funciones con "Extends", se genera una jerarquía plana.

Ejemplo:

_cds_img_opc_ua_map_object_inheritance.png

Carpeta

Un tipo separado para cada instancia de una carpeta en un tipo de objeto OPC UA

El usuario puede agregar las instancias por su cuenta editando la declaración de las POU IEC. Sin embargo, deben usarse bloques de funciones que se originen en un compañero OPC UA.

Se exportan todas las instancias de los bloques de funciones debajo de la carpeta. Las comprobaciones semánticas basadas en NodeSet2.xml no son posibles.

Inicialmente, una carpeta se configura como un tipo de objeto en OPC UA. Sin embargo, no es suficiente generar un tipo de carpeta.

_cds_img_opc_ua_map_folder.png

_cds_img_opc_ua_map_folder.png El usuario es responsable de agregar elementos apropiados a la carpeta.

BaseObjectType una como carpeta

Ver la descripción

(en cuanto a la carpeta)

OPC UA define un tipo de datos individual para las carpetas: el FolderType (ver arriba: Carpeta). Sin embargo, también existe la posibilidad de declarar sólo BaseObjectType en una instancia en lugar de este tipo y luego use este tipo como una carpeta. Desde el lado de OPC UA, no hay restricciones con respecto a lo que se permite como elementos secundarios. La asignación a IEC en este caso tiene el mismo aspecto que para un FolderType.



Mapeo de tipos de datos estructurados

tabla 3. Tipos de datos estructurados

OPC UA

CEI

Estructura

DUT

Union

Actualmente no es compatible

miembro opcional

Actualmente no es compatible

Herencia

Implementación como para los tipos de objeto



Mapeo de tipos de referencia OPC UA

tabla 4. Tipos de referencia OPC UA

OPC UA

Significado en OPC UA

Mapeo en IEC

Organizes

Normalmente sólo son relevantes las derivaciones de este tipo. La excepción es cuando las carpetas se asignan directamente a IEC, consulte Asignación de tipos OPC UA a tipos IEC

HasSubtype

Ver Asignación de tipos OPC UA a tipos IEC

HasTypeDefinition

  • Se utiliza para recopilar todos los elementos de un tipo cuando los tipos de UA se compilan de acuerdo con IEC

  • A continuación, el servidor OPC UA vuelve a hacer referencia a las declaraciones de instancias en IEC con esta referencia al tipo en el modelo de información.

  • HasTypeDefinition para variables OPC UA actualmente solo se admite para el caso especial cuando el tipo de variable tiene los mismos miembros que el tipo de datos. Entonces se permite el acceso único a las variables individuales de la instancia DUT en IEC.

HasComponent

Las variables y los objetos se asignan en IEC como variables. Por lo tanto, cada HasComponent la referencia se convierte en una declaración de variable en IEC. Los métodos también se convierten en métodos del bloque de funciones en IEC.

El usuario tiene que aplicar las reglas de modelado en el Informationsmodell-Editor antes de que se generen las POU IEC. Se pueden seleccionar o deseleccionar miembros opcionales y se pueden generar miembros concretos para marcadores de posición.

HasProperty

En OPC UA, las propiedades tienen el carácter de metainformación adicional para datos de proceso. Pueden ser de naturaleza estática, por ejemplo unidades de ingeniería. Pero también pueden cambiar cuando el servidor se está ejecutando.

En IEC, esta referencia se maneja exactamente como HasComponent. Como resultado, también se crean variables para esto en el bloque de funciones. Un problema sin resolver es el manejo de propiedades en variables en UA (mediante el desvío de HasTypeDefinition y VariableType). En IEC, la variable de tipo INT Habría que estructurarse una vez más y tener hijos. Actualmente, las propiedades de las variables en OPC UA se ignoran y no se puede acceder a ellas desde IEC.



Para más información, ver: Uso de modelos de información OPC UA