Esempio: Utilizzo di OPC UA PubSub SL Biblioteca
Prodotto:CODESYS OPC UA PubSub
Le OPC UA PubSub SL Example.project l'esempio mostra come usare il OPC UA PubSub SL libreria per lo scambio di messaggi tramite il protocollo Pub/Sub come definito da OPC UA Foundation.
Il pacchetto contiene anche un secondo esempio: PubSubDataSet.project. Mostra come usare OPC UA PubSub SL libreria per fornire diversi set di dati e collegarli alle istanze GVL.
Descrizione
Oltre alla comunicazione Client/Server, la comunicazione tramite il protocollo OPC UA Pub/Sub offre anche un'ulteriore possibilità di scambio di dati tra gli abbonati di una rete in conformità con le regole della OPC UA Foundation.
La struttura dei dati (DataSet) può essere liberamente definito ed è preventivamente concordato tra mittente e destinatario. Ciò elimina la necessità di trasportare ulteriori (meta) dati. I dati vengono trasferiti con l'aiuto del OPC UA PubSub SL libreria tramite UDP/IP secondo le regole definite per UADP.
Un editore pubblica i suoi dati a un numero imprecisato di abbonati. Di conseguenza, il mittente e il destinatario non si conoscono. Ecco perché anche il numero dei destinatari non ha ripercussioni sul mittente. Una risposta al mittente in merito al fatto che i suoi messaggi abbiano raggiunto o meno i destinatari non può essere inviata tramite il protocollo a causa della natura del protocollo. Se necessario, tale risposta deve essere gestita in modo specifico per l'applicazione.
I dati vengono trasferiti in formato binario secondo le regole della OPC UA Foundation. IL OPC UA PubSub SL library gestisce la conversione dei tipi di dati IEC nei corrispondenti tipi di dati OPC UA e viceversa.
L'implementazione segue i seguenti profili:
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
La lunghezza del messaggio è limitata a 1.500 byte (MTU) (i messaggi di rete in blocchi non sono supportati). Finché le regole per una rete Time Sensitive non sono ancora disponibili, le condizioni hard real-time non possono essere rispettate. Tuttavia, l'attuazione del OPC UA PubSub SL la libreria tenta di mantenere il jitter il più basso possibile.
La libreria include i seguenti blocchi funzione:
DataSet:Definisce un
DataSetMessaggioConfiguration:Gestisce le risorse condivise, come Connessione o Gruppo
RootDiagnostics:Notifica con dati diagnostici superiori
Connection:Gestisce la connessione a Publisher e Subscriber
ConnectionDiagnostics:Notifica con dati diagnostici sulla connessione (
Connection)ReaderGroup:Gestisce
Readerblocchi funzione (creazione di un NetworkMessage daDataSetmessaggi)ReaderGroupDiagnostics:Notifica con dati diagnostici su
ReaderGroupReader:Gestisce il
DataSetblocco funzione (abbonato)ReaderDiagnostics:Notifica con dati diagnostici su a
Readerblocco funzioneWriterGroup:Gestisce
Writerblocchi funzione (creazione di un NetworkMessage daDataSetmessaggi)WriterGroupDiagnostics:Notifica con dati diagnostici su
WriterGroupWriter:Gestisce un
DataSetblocco funzione (editore)WriterDiagnostics:Notifica con dati diagnostici su a
Writerblocco funzione
![]() |
Funzionalità supportate
Pubblicazione/Sottoscrizione di messaggi secondo OPC 10000-14: OPC Unified Architecture Part 14: PubSub Release 1.04
Dimensione massima di un NetworkMessage: 1.500 byte
La dimensione del pacchetto e il payload correnti possono essere configurati mediante la configurazione del rispettivo ReaderGroup/WriterGroup e
DataSetblocchi funzione.Supporto con un'attività in background per il rispettivo
Connectionblocco funzioneSono supportati i seguenti profili:
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
Informazioni aggiuntive
IL Device_1 applicazione mostra come leggere a NetworkMessage.
IL Device_2 L'applicazione mostra come inviare messaggi tramite i blocchi funzione contenuti.
Hardware
Te ne servono due CODESYS PLC collegati su una rete che supporta UDP Multicast.
Nel progetto adattare la configurazione del dispositivo ai dispositivi aggiornando
Device_1EDevice_2all'hardware utilizzato.
Personalizzazioni nel progetto
Impostare gli indirizzi IP nel file
GlobalIPGVL all'hardware che hai configurato. Troverai questo GVL nel file POU la zona.Imposta l'indirizzo multicast su un indirizzo libero nella tua rete.
Nota: se non sei in una rete privata, chiedi al tuo amministratore di rete di assegnarti un indirizzo gratuito.
Imposta la porta. La porta predefinita 4840 è la porta consigliata per OPC UA PubSub.
Accedi a entrambi i controller e avvia le applicazioni.
Avvia sia il mittente che il destinatario:
Device_2: PLC_PRG.xEnable := TRUEDevice_1: Communication_PRG.xEnable := TRUESul lato ricevitore, ora dovresti vedere come cambiano i valori del seno. Puoi modificare manualmente gli altri valori nel mittente e vedere le modifiche nel destinatario.
Aggiungi una variabile al file DataSet che è già stato inviato.
Estendere
SensorDataSet._aIndexda una voce. Seleziona qualsiasi tipo di dati.In
SensorDataSet.Init, adattare la versione diDataSetaggiornando l'inserimento della data.Nel
PLC_PRGprogramma del mittente, creare una variabile del tipo di dati selezionato. Assegna il valoretxSensorDataSet.PrepareValuesalla variabile.In
rxSensorDataSet.PrepareValues, ripetere questo passaggio sul lato ricevitore. Crea anche qui una nuova variabile dello stesso tipo.Eseguire un nuovo download.
Anche la nuova variabile dovrebbe essere trasmessa.
![]() |
Requisiti di sistema e restrizioni
Sistema di programmazione | CODESYS Development System (versione 3.5.17.0 o superiore) |
Sistema di esecuzione | CODESYS Control Win (versione 3.5.14.0) NotaA seconda delle capacità del rispettivo sistema runtime, i messaggi possono essere inviati tramite Unicast, Multicast o Broadcast. |
Piattaforme/dispositivi supportati | SuggerimentoUsa il |
Restrizioni |
|
Componenti aggiuntivi | CODESYS OPC UA PubSub |
Avviso
SCARICA Progetto

