Client OPC UA

BrowseName: OPCUAClient
SuperType: Oggetto (BaseObjectType)
Percorso nella TypeView: Tipi > OPC-UA > Client OPC UA

Importa a design time e/o a runtime i nodi di interesse pubblicati da un server OPC UA e può mantenerne sincronizzati strutture e valori.

Applicazioni

Usato per importare oggetti e variabili a design time o a runtime da server OPC UA per realizzare le logiche applicative desiderate a runtime.

Se importati a design time, i nodi restano sincronizzati anche a runtime con i nodi del server, in lettura e in scrittura (se il client dispone di permessi adeguati). In ogni momento a design time, tramite editor dedicato in Q Studio, è possibile selezionare i nodi di interesse da importare. Durante l’importazione, per ogni nodo desiderato del server viene creato un corrispondente nodo di progetto.

Importante

per i nodi importati a design time, compresi i tipi di oggetti/variabili, vengono creati corrispondenti nodi di tipo BaseObject o BaseVariable.

Per l’importazione di nodi a runtime, per usi più avanzati, è possibile scegliere diverse modalità di sincronizzazione. In questo caso i nodi vengono importati quando l’oggetto Client OPC UA viene inizializzato, ovvero all’avvio del progetto a runtime.

Configurare l’oggetto

Configurare l’importazione di nodi a runtime

  1. Fare clic sul client OPC UA.

  2. Nel pannello Proprietà, in Configurazioni di runtime fare clic su image07565D13 : viene aggiunta una configurazione di nodi da importare.

  1. Nella configurazione appena creata, impostare le proprietà Nodo destinazione locale e Nodo sorgente remoto, poi impostare la modalità di importazione/sincronizzazione. .. note:: al momento, l’importazione di oggetti grafici e di oggetti LocalizationDictionary funziona solo in modalità Solo importazione.

Nota

il nodo sorgente selezionato seleziona automaticamente tutti i suoi nodi figli. Per importare solo i nodi figli, impostare Includi nodo sorgente remoto su Falso.

  1. Per ascoltare gli eventi generati dai nodi selezionati, fare come di seguito:

    1. Impostare Abilita sincronizzazione eventi su Vero.

    2. In Tipo di evento fare clic su image453204BF e nella finestra dei collegamenti dinamici, all’interno del nodo Types > EventTypes selezionare il tipo di evento da ascoltare.

  1. Ripetere i passi dal 2 al 4 per ogni configurazione di nodi da importare.

Configurazioni di sicurezza

In base ai valori delle due proprietà Modalità sicurezza messaggi minima e Policy sicurezza minima, le configurazioni di sicurezza valide sono le seguenti, in ordine di sicurezza crescente:

Policy sicurezza minima

Modalità sicurezza messaggi minima

Nessuna

Nessuna

Basic256Sha256

Firma

Basic256Sha256

Firma e crittografia

Aes128_Sha256_RsaOaep

Firma

Aes128_Sha256_RsaOaep

Firma e crittografia

Aes256_Sha256_RsaPss

Firma

Aes256_Sha256_RsaPss

Firma e crittografia

Quando il client si connette al server sceglie l’endpoint con la configurazione più sicura e che soddisfi i requisiti minimi indicati nelle proprietà Modalità sicurezza messaggi minima e Policy sicurezza minima.

Verifica dell’identità del server

Per questioni di sicurezza si consiglia di impostare la proprietà Verifica identità server sempre su Vero e di aggiungere manualmente il certificato tra quelli affidabili. La chiave pubblica contenuta nel certificato viene infatti usata per cifrare la password dell’utente nella modalità di autenticazione tramite credenziali (Tipo identità utente = Utente/Password), anche se la comunicazione con il server non è sicura (Modalità sicurezza messaggi minima = Nessuna).

Se si accetta temporaneamente qualsiasi certificato, la password potrebbe essere inviata a un server maligno. Se la proprietà Verifica identità server è impostata su Vero e il certificato del server non è tra quelli affidabili, il client continua a provare la connessione senza successo.

Proprietà

Nome

BrowseName

DataType

Descrizione

Endpoint URL server

ServerEndpointURL

String

Protocollo di comunicazione e indirizzo di rete dell’endpoint sul server.

Verifica identità server

VerifyServerIdentity

Boolean

Valida il certificato pubblico del server. Vero = accetta il certificato solo se affidabile; Falso = accetta temporaneamente il certificato, anche se non è tra quelli affidabili.

Intervallo pubblicazione richiesto

RequestedPublishingInterval

Duration

Modalità sicurezza messaggi minima

MinimumMessageSecurityMode

MessageSecurityModeEnum

Livello di sicurezza minimo dei messaggi scambiati tra client e server. Nessuna = i messaggi possono essere non firmati e non cifrati; Firma = i messaggi devono essere firmati oppure firmati e cifrati; Firma e crittografia = i messaggi devono essere firmati e cifrati.

Policy sicurezza minima

MinimumSecurityPolicy

SecurityPolicyEnum

Policy di sicurezza minima sui messaggi scambiati tra client e server. Nessuna = il client non richiede una specifica policy di sicurezza; Basic256Sha256 = omonima policy o superiore; Aes128_Sha256_RsaOaep = omonima policy o superiore; Aes256_Sha256_RsaPss = omonima policy.

Certificato client

ClientCertificateFile

ResourceUri

Certificato pubblico del client, secondo standard X509v3 e con estensione .der. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/Client/.

Chiave privata client

ClientPrivateKeyFile

ResourceUri

Chiave privata del client, con codifica ASCII Base64 ed estensione .pem. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/Client/.

Tipo identità utente

UserIdentityType

UserIdentityTypeEnum

Modalità di identificazione dell’utente. Anonimo = nessuna informazione disponibile sull’utente; Utente/Password = utente identificato da nome utente e password; Certificato = utente identificato da un certificato.

Nome utente

Username

String

Password

Password

Password

Certificato utente

UserCertificateFile

ResourceUri

Certificato pubblico dell’utente, di tipo X509v3 e con estensione .der. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/User/.

Chiave privata utente

UserPrivateKeyFile

ResourceUri

Chiave privata dell’utente, con codifica ASCII Base64 ed estensione .pem. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/User/.

URI applicazione

ApplicationURI

String

URI che identifica globalmente l’istanza di applicazione

Nome applicazione

ApplicationName

String

Un identificatore leggibile dell’instanza di applicazione, non necessariamente univoco

URI prodotto

ProductURI

String

URI che identifica globalmente il software

Stato connessione

ConnectionStatus

ConnectionStatusEnum

URI del server

ServerUri

String

Abilitato

Enabled

Boolean

Abilita l’oggetto.

Eventi

Events

EventsEnum

Sincronizzazione dei NodeId all'avvio

SynchronizeNodeIdsOnStart

Boolean

Sincronizza i NodeId dei nodi OPC UA importati a design time con i NodeId degli stessi nodi sul server a cui il client si connette a runtime. Se non si conosce la situazione sul server, impostare su Vero.

Objects

Oggetto

Configurazioni di runtime

RuntimeConfigurations

Collezione di RuntimeConfigurationEntry

Metodi

Sottoscrizione a cambio di dati

BrowseName: SubscribeToDataChange

InputArguments

Nome

DataType

Descrizione

ReadValues

ReadValue

Valori da leggere

Annulla sottoscrizione a cambio di dati

BrowseName: UnsubscribeFromDataChange

InputArguments

Nome

DataType

Descrizione

ReadValues

ReadValue

Traduci browse path in NodeId

BrowseName: TranslateBrowsePathsToNodeIds

InputArguments

Nome

DataType

Descrizione

BrowsePaths

BaseDataType

Lista browse path

OutputArguments

Nome

DataType

Descrizione

NodeIds

NodeId

Lista NodeId

Lettura valori

BrowseName: ReadValues

InputArguments

Nome

DataType

Descrizione

ReadValues

ReadValue

Valori da leggere

OutputArguments

Nome

DataType

Descrizione

ReadValueResults

ReadValueResult

Risultato lettura valori

Lettura asincrona valori

BrowseName: ReadValuesAsync

InputArguments

Nome

DataType

Descrizione

OperationId

Guid

Id operazione

ReadValues

ReadValue

Valori da leggere

Scrittura valori

BrowseName: WriteValues

InputArguments

Nome

DataType

Descrizione

WriteValues

WriteValue

Valori da scrivere

OutputArguments

Nome

DataType

Descrizione

WriteValueResults

WriteValueResult

Chiamata a metodo

BrowseName: CallMethod

InputArguments

Nome

DataType

Descrizione

TargetNode

NodeId

Method

NodeId

Metodo

InputArguments

BaseDataType

Argomenti di input

OutputArguments

Nome

DataType

Descrizione

ErrorCode

UInt32

Codice di errore

OutputArguments

BaseDataType

Argomenti di output

Sfoglia

BrowseName: Browse

InputArguments

Nome

DataType

Descrizione

NodeId

NodeId

NodeId del nodo da esplorare

BrowseDirection

BrowseDirectionEnum

La direzione dei riferimenti da seguire

ReferenceTypeId

NodeId

NodeId del tipo di riferimento da seguire

IncludeSubtypes

Boolean

Indica se i sottotipi del riferimento devono essere seguiti

OutputArguments

Nome

DataType

Descrizione

Result

StatusCode

Risultato OPC UA dell’invocazione del metodo

References

ReferenceDescription

Lista di descrizioni dei riferimenti

Importa nodi

BrowseName: ImportNodes

InputArguments

Nome

DataType

Descrizione

NodesToImport

NodeId

Nodi da importare

RecursiveImport

Boolean

Importazione ricorsiva