Ciao
VRI ...
VRI ha scritto:Lato client, quindi lato PLC, come si integra la comunicazione con il server OPC? Tramite le librerie per i socket?
cioè ?
Facciamo così, io torno alle domande del Post d'apertura.
VRI ha scritto:qual è l'architettura hardware di un sistema di automazione con un OPC server?
quella che ritieni opportuna per il tuo sistema di controllo e supervisione ma, riducendo ai minimi termini, può essere anche costituita da un PC (ad esempio) e da un PLC (ad esempio); a questa allora facciamo riferimento nel presente Post.
VRI ha scritto:perché viene utilizzato?
anticipo questa risposta anche se potrebbe fare parte di quella successiva.
Si ricorre ad una interfaccia di tipo OPC per comunicare con un dispositivo (funzionale all'automazione, in tal caso il PLC) senza ricorrere al driver specifico, necessario in alternativa.
Considera che una applicazione, pur semplice che sia e sviluppata su piattaforma PC, se vuole comunicare con un PLC (riscrivo PLC considerato il tuo riferimento all'automazione) deve(dovrebbe) essere dotata di quella parte di software che le consente di "parlare", appunto, con il PLC; questa parte di "software" è il driver di comunicazione che si basa su regole determinate e definite nel "protocollo di comunicazione", ma ogni "brand" ha il suo protocollo.
Fin qua immagino per te niente di nuovo.
Ora, o tu sviluppi questa parte di software rispettando queste regole, alle quali si attiene anche il PLC (la controparte) altrimenti, in difetto del rispetto di queste regole, col PLC non riesci a scambiare informazioni.
Se il driver non te lo puoi/vuoi sviluppare, lo compri; può essere fornito direttamente da chi produce il device (PLC) o può essere sviluppato e fornito da "terze parti"; in ogni caso compri un prodotto software specifico per comunicare con quel device specifico.
La realizzazione di un driver, per la maggior parte dei casi, ed in modo particolare se "fatto bene", comporta un impegno significativo anche perché, oltre allo sviluppo, deve essere prevista la contestuale verifica di tutte le possibili condizioni che si ritiene possano verificarsi: lo devi "testare".
Per evitare e ovviare a questo onere/inconveniente/problema ( ... dipende dai punti di vista) un po di tempo fa si sono inventati lo OPC (acronimo di
OLE for
Process
Control).
In pratica lo OPC costituisce una sorta di "cuscinetto" (adattatore/traduttore software) da porre tra la applicazione (residente sul PC) e il PLC e consente di fare "parlare" i due mondi senza dover scrivere il protocollo specifico per quel PLC.
Con tale architettura, il "Client-OPC" e il "Server-OPC" vengono "caricati" entrambi sul PC.
Il presupposto all'impiego dello OPC è che la tua applicazione sia dotata di una parte di programma, indispensabile a soddisfare tale condizione, quale è appunto il "Client-OPC"; il produttore del PLC, da parte sua, mette a disposizione un'altra parte di programma costituito dal "Server-OPC".
L'onere di sostenere la comunicazione vera e propria verso il PLC lo sopporta quindi il "Server-OPC" ma, per l'applicazione, questo è trasparente ovvero non è visibile, non è una questione della quale preoccuparsene.
Sul PC ti ritrovi dunque con la tua applicazione, dotata di "Client-OPC", e di un altro programma, costituito dal "Server-OPC".
I due OPC (Client e Server) vengono messi in "contatto" tra loro e comunicano tra loro (tramite le regole OPC) e, rispettivamente, mantengono la "connessione" verso l'applicazione(PC) e verso il PLC.
Ma allora a cosa serve tutto 'sto casino se poi mi devo sviluppare comunque una parte di programma che abbiamo classificato come "Client-OPC" ?
Serve a comunicare con ogni dispositivo (device che vuoi tu) che risulta "attrezzato" con una interfaccia di tipo OPC (cioè che viene distribuito anche con un "Server-OPC").
In tal modo la medesima applicazione può essere utilizzata per comunicare con un PLC (ad esempio "Siemens") piuttosto che con un altro PLC (ad esempio "Schneider") o con un altro ancora, previa opportuna configurazione del "Client-OPC" e del "Server-OPC".
La scelta di dotare/attrezzarsi di una interfaccia OPC è il risultato di più valutazioni e tra queste gioca un ruolo significativo l'aspetto commerciale.
VRI ha scritto:Potrei avere una sommaria descrizione di come funziona?
il suo funzionamento, a livello di concetto, pur in modo approssimativo, credo di averlo scritto qui sopra; come in pratica viene utilizzato è un altro discorso.
Se è questo (o anche questo) che intendi ti posso scrivere che si tratta di accedere ad una interfaccia grafica che ti consente di stabilire una associazione con l'informazione che intendi rilevare e ritieni essere presente sul PLC.
Da una parte, lato "Server-OPC", identifichi la variabile (ad esempio una "word") che vuoi acquisire e a questa associ un alias, un altro nome, che ti ritrovi dalla "altra parte" sul "Client-OPC", a seguito dell'esecuzione di determinate operazioni (sempre a livello di configurazione).
Stabilisci così una associazione univoca.
Puoi configurare più associazioni e più associazioni le puoi aggregare in un gruppo (hai così un gruppo di variabili).
Questo gruppo, poi, può essere opportunamente "caratterizzato" definendo, ad esempio, il tempo di aggiornamento (scansione) delle variabili alle quali fa riferimento.
Naturalmente lo "Server-OPC" deve essere anche configurato in modo tale da specificare la connessione (fisica) che si intende utilizzare per comunicare (tra lo hardware disponibile sul PC) con il device (PLC): la seriale, ethernet, ...
Questo in estrema sintesi, confidando di non avere riportato inesattezze; diversamente qualcun altro può provvedere alla rettifica e, magari, integrare.
Saluti
W - U.H.F.