Skip to main content

Mappatura dei tipi OPC UA ai tipi IEC

Mappatura dei tipi di dati di base

Tabella 1. Tipi di dati di base

OPCUA

CEI

Descrizione

Tipi di base

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

Le stringhe semplici vengono convertite in stringhe IEC.

La lunghezza della stringa IEC può essere modificata successivamente e può essere scelta senza limitazioni.

LocalizedText

STRING

Le stringhe localizzabili sono mappate su una stringa IEC.

Tipi speciali:

NodeId

Bytestring

XmlElement

Guid

ExpandedNodeId

StatusCode

QualifiedName

LocalizedText

ExtensionObject

DataValue

DiangosticInfo

Mappatura al tipo corrispondente dalla specifica OPC UA: OpcUA_<name>.

Esempio: OpcUA_NodeId

Si tratta di tipi di dati della specifica OPC UA che richiedono una gestione particolare nell'applicazione PLC.

È supportato solo l'accesso in lettura.

Eredità

L'ereditarietà è consentita per tutti i tipi di OPC UA. Ad esempio, è anche possibile derivare nuovi tipi da String e Int32.

Nota: nel caso di derivazioni di tipi di base, il tipo di base viene utilizzato come base per la mappatura. Di conseguenza, il tipo OPC UA derivato non è più disponibile in IEC.

_cds_img_opc_ua_map_object_inheritance.png

BaseObjectType come tipo di dati

Vedi la descrizione

Se è consentito più di un tipo di oggetto specifico per una variabile in un modello di informazioni e spetta all'utente del modello selezionare il tipo specifico, è sufficiente BaseObjectType viene specificato come tipo di variabile. Normalmente, CODESYS genera il proprio blocco funzione in questo caso e vi inserisce tutti gli elementi figlio esistenti. Tuttavia, l'utente può eliminare questo blocco funzione e utilizzare anche un altro tipo di oggetto nella dichiarazione. L'unica restrizione è che deve essere un tipo di oggetto dello stesso modello di informazioni.

VariableType

Vedi la descrizione

Oltre a un tipo di dati, una variabile in OPC UA può fare riferimento anche a a VariableType per mezzo di a HasTypeDefinition. Questo è spesso usato per decorare una variabile con metadati aggiuntivi (AnalogItemType, EngineeringUnits, eccetera.)

Poiché una variabile può avere esattamente un solo tipo in IEC, viene generata una struttura che:

  • Contiene una variabile denominata "value" per il valore effettivo del tipo di dati

  • Contiene una variabile denominata "proprietà" che può essere utilizzata per accedere agli altri metadati.

Per un client OPC UA, questa struttura generata è invisibile. Come previsto, vede solo il tipo di dati corretto nella variabile e i metadati come elementi figlio.

_comm_img_opc_ua_variabletype.png


Mappatura dei tipi di oggetto

Suggerimento

Tutte le dichiarazioni sono dichiarate insieme come variabili locali tra VAR e END_VAR. L'utente può modificare le dichiarazioni secondo necessità in VAR_INPUT e VAR_OUTPUT.

Tabella 2. Tipi di oggetti

OPCUA

CEI

Descrizione

Tipi di oggetti OPC UA

Blocchi funzione

Interfacce e componenti aggiuntivi

Blocco funzione

I membri dell'interfaccia sono membri del blocco funzione.

Esempio:

_cds_img_opc_ua_map_interfaces.png

Eredità

Invece di generare più blocchi funzionali con "Extends", viene generata una gerarchia piatta.

Esempio:

_cds_img_opc_ua_map_object_inheritance.png

Cartella

Un tipo separato per ogni istanza di una cartella in un tipo di oggetto OPC UA

L'utente può aggiungere autonomamente le istanze modificando la dichiarazione delle POU IEC. Tuttavia, devono essere utilizzati blocchi funzionali che provengono da un compagno OPC UA.

Vengono esportate tutte le istanze dei blocchi funzione sotto la cartella. Non sono possibili controlli semantici basati su NodeSet2.xml.

Inizialmente, una cartella viene impostata come tipo di oggetto in OPC UA. Tuttavia, non è sufficiente generare a FolderType.

_cds_img_opc_ua_map_folder.png

L'utente è responsabile dell'aggiunta di elementi appropriati alla cartella.

BaseObjectType a come cartella

Vedi la descrizione

(come per cartella)

OPC UA definisce un tipo di dati individuale per le cartelle: il FolderType (vedi sopra: cartella). Tuttavia, c'è anche la possibilità di dichiarare solo BaseObjectType in un'istanza invece di questo tipo e quindi utilizzare questo tipo come una cartella. Dal lato OPC UA, non ci sono restrizioni su ciò che è consentito come elementi figlio. La mappatura su IEC in questo caso ha lo stesso aspetto di a FolderType.



Mappatura di tipi di dati strutturati

Tabella 3. Tipi di dati strutturati

OPCUA

CEI

Struttura

DUT

Union

Attualmente non supportato

Membro facoltativo

Attualmente non supportato

Eredità

Implementazione come per i tipi di oggetto



Mappatura dei tipi di riferimento OPC UA

Tabella 4. Tipi di riferimento OPC UA

OPC UA

Significato in OPC UA

Mappatura in IEC

Organizes

Normalmente sono rilevanti solo le derivazioni di questo tipo. L'eccezione è quando le cartelle sono mappate direttamente a IEC, vedere Mappatura dei tipi OPC UA ai tipi IEC

HasSubtype

Vedere Mappatura dei tipi OPC UA ai tipi IEC

HasTypeDefinition

  • Utilizzato per raccogliere tutti gli elementi di un tipo quando i tipi UA sono compilati secondo IEC

  • Le dichiarazioni di istanze in IEC vengono quindi nuovamente referenziate dal server OPC UA con questo riferimento al tipo nel modello informativo.

  • HasTypeDefinition per le variabili OPC UA è attualmente supportato solo per il caso speciale in cui il tipo di variabile ha gli stessi membri del tipo di dati. Quindi in IEC è consentito l'accesso singolo alle singole variabili dell'istanza DUT.

HasComponent

Le variabili e gli oggetti sono mappati in IEC come variabili. Pertanto, ciascuno HasComponent riferimento diventa una dichiarazione di variabile in IEC. I metodi diventano anche metodi del blocco funzione in IEC.

L'utente deve applicare le regole di modellazione nel file Informationsmodell-Editor prima che vengano generati i POU IEC. I membri facoltativi possono essere selezionati o deselezionati e i membri concreti possono essere generati per i segnaposto.

HasProperty

In OPC UA le proprietà hanno il carattere di meta-informazioni aggiuntive per i dati di processo. Possono essere di natura statica, ad esempio unità ingegneristiche. Ma possono anche cambiare quando il server è in esecuzione.

In IEC, questo riferimento viene gestito esattamente come HasComponent. Di conseguenza vengono create variabili anche per questo nel blocco funzione. Un problema irrisolto è la gestione delle proprietà delle variabili in UA (tramite la deviazione di HasTypeDefinition e VariableType). In IEC, la variabile di tipo INT dovrebbe essere strutturato ancora una volta e avere figli. Attualmente, le proprietà delle variabili in OPC UA vengono ignorate e non possono essere raggiunte da IEC.



Per ulteriori informazioni, vedere: Utilizzo dei modelli di informazioni OPC UA