Client OPC UA¶
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
Fare clic sul client OPC UA.
Nel pannello Proprietà, in Configurazioni di runtime fare clic su
: viene aggiunta una configurazione di nodi da importare.
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.
Per ascoltare gli eventi generati dai nodi selezionati, fare come di seguito:
Impostare Abilita sincronizzazione eventi su Vero.
In Tipo di evento fare clic su
e nella finestra dei collegamenti dinamici, all’interno del nodo Types > EventTypes selezionare il tipo di evento da ascoltare.
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 |
Protocollo di comunicazione e indirizzo di rete dell’endpoint sul server. |
|
Verifica identità server | VerifyServerIdentity |
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 |
||
Modalità sicurezza messaggi minima | MinimumMessageSecurityMode |
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 |
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 |
Certificato pubblico del client, secondo standard X509v3 e con estensione .der. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/Client/. |
|
Chiave privata client | ClientPrivateKeyFile |
Chiave privata del client, con codifica ASCII Base64 ed estensione .pem. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/Client/. |
|
Tipo identità utente | UserIdentityType |
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 |
||
Password | Password |
||
Certificato utente | UserCertificateFile |
Certificato pubblico dell’utente, di tipo X509v3 e con estensione .der. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/User/. |
|
Chiave privata utente | UserPrivateKeyFile |
Chiave privata dell’utente, con codifica ASCII Base64 ed estensione .pem. Deve trovarsi nella cartella QApplication/ProjectFiles/PKI/Own/User/. |
|
URI applicazione | ApplicationURI |
URI che identifica globalmente l’istanza di applicazione |
|
Nome applicazione | ApplicationName |
Un identificatore leggibile dell’instanza di applicazione, non necessariamente univoco |
|
URI prodotto | ProductURI |
URI che identifica globalmente il software |
|
Stato connessione | ConnectionStatus |
||
URI del server | ServerUri |
||
Abilitato | Enabled |
Abilita l’oggetto. |
|
Eventi | Events |
||
Sincronizzazione dei NodeId all'avvio | SynchronizeNodeIdsOnStart |
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 |
|||
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 |
Vedi anche
Concetti correlati
Procedure correlate
Usare un oggetto Client OPC UA
Esempi applicativi
Importare traduzioni da un altro progetto
Importare l’interfaccia utente da un altro progetto e monitorare alcune variabili