Skip to main content

Coerenza dei dati in combinazione con CODESYS Responsabile della comunicazione

Importante

Le informazioni in questa pagina si applicano esclusivamente agli oggetti, ai dati e ai metodi che sono stati pubblicati tramite il CODESYS Editor di Communication Manager (set di simboli IEC, modelli informativi OPC UA e configurazione dei simboli) e non per il server OPC UA in generale.

L'OPC UA Server è un servizio che viene eseguito in background del PLC. Le attività del server OPC UA hanno una priorità inferiore rispetto alle attività delle applicazioni IEC. A causa del multitasking e dei sistemi multicore, le attività del server OPC UA possono essere interrotte da altre attività. Può anche succedere che le attività IEC vengano eseguite in parallelo alle attività del server OPC UA, il che può portare a incoerenze nei dati durante la lettura o la modifica dei dati. Questo capitolo ha lo scopo di fornire una panoramica di dove la coerenza può essere garantita e

Accesso ai dati (lettura, scrittura e campionamento)

Dati la cui coerenza è garantita

Tutti i tipi di dati scalari fino a una dimensione di 8 byte vengono letti e scritti in modo coerente dai dati IEC.

Dati la cui coerenza non è garantita

Corde

Le stringhe vengono lette e scritte carattere per carattere. Pertanto, la coerenza di una stringa letta o scritta non può essere garantita

Array

Gli array di lettura o scrittura vengono gestiti elemento per elemento. Viene utilizzata la logica di lettura o scrittura di base del tipo di dati di base dell'array. Se l'elemento base può essere elaborato in modo coerente, anche tutti gli elementi dell'array saranno coerenti. Tuttavia, non è possibile garantire che gli elementi dell'array già elaborati non siano cambiati durante l'elaborazione dell'array completo.

Tipi di dati strutturati (STRUCT e FB)

lettura o la scrittura dei membri di una struttura o di un blocco funzionale avviene elemento per elemento. Questo utilizza la logica di lettura e scrittura di base del tipo di dati di base del membro. Se l'elemento base può essere elaborato in modo coerente, anche il membro sarà coerente. Tuttavia, non è possibile garantire che i membri già elaborati non siano cambiati durante l'elaborazione della struttura completa del blocco funzionale.

Combinazioni

Se gli array e le strutture vengono combinati, le regole precedenti si applicano al membro della struttura o all'elemento dell'array. Viene utilizzata la logica di lettura e scrittura del tipo di dati di base degli elementi dell'array o dei membri della struttura. Ciò comporta il seguente comportamento generale:

  1. Valori di tipi di dati semplici (eccetto STRING) e WSTRING) saranno sempre coerenti, indipendentemente da dove sono posizionati.

  2. STRING e WSTRING non è garantito che siano coerenti.

  3. coerenza delle strutture e degli array non è garantita. Tuttavia, i singoli valori all'interno sono coerenti se sono di un tipo di dati semplice

Chiamate di metodo

I parametri di input e output (indipendentemente dal tipo di dati, dagli array o dalle strutture) vengono trasferiti in modo coerente dal server OPC UA alla chiamata al metodo o dalle uscite della richiamata al metodo al server OPC UA. Ciò è garantito utilizzando la memoria dello stack del thread che esegue la chiamata al metodo. Tuttavia, non è garantito che l'accesso ai dati dal codice dei metodi all'applicazione IEC sia coerente. Poiché questi metodi vengono eseguiti contemporaneamente alle attività delle applicazioni IEC, è possibile utilizzare normali meccanismi per sincronizzare l'accesso ai dati (ad esempio mutex, semaforo o doppio buffer