http://www.opcfoundation.org/ Integrazione delle Informazioni Windows 3.1 Windows-95 Windows NT Client Applications Business Management Windows NT Operator Console RT/History Data Server Windows NT RT/History Data Server Windows NT Operator Console Plant Highway Plant Highway Process Management Controller Fieldbus Fisher Measurement -Pressure Valves -Temp Positioners -Flow -Level Coriolis Analytical PD Meters Common Head -Simple -Analog I/O Handheld Configuration and PDA -Complex -Discrete I/O Maintenance -TC/RTD Field Management Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello: Process Management. Comprende i Sistemi di Controllo Distribuiti (DCS) e i sistemi SCADA per il controllo dei processi Terzo livello: Business Management. In questo livello si integrano le informazioni raccolte dal processo con i sistemi per la gestione finanziaria. Integrazione delle Informazioni Necessità di accedere ai dati di campo da qualunque parte dell’impianto Visione omogenea dei dati superamento di differenti codifiche client/server Indipendenza dei programmi dalle caratteristiche hardware/software della sorgente dati nessuna necessità di sviluppare driver OPC: OLE for Process Control Scopo: fornire una visione unica ed indipendente dalla sorgente dei dati prodotti in un impianto industriale Si basa su tecnologie consolidate in ambiente Windows: Distributed Component Object Model (DCOM). Modello per la comunicazione tra applicazioni Windows attraverso reti di comunicazione. Component Object Model (COM). Modello per la comunicazione tra applicazioni Windows locali. OLE 2 XML Web Services OPC: OLE for Process Control OPC è un’architettura client/server che permette ad una qualsiasi sorgente di dati (Server) di comunicare in modo standard con qualsiasi altro processo (Client) dotato della stessa interfaccia. I fornitori hardware offrono un Server OPC, che permette a qualsiasi applicazione Client di accedere ai dati da esso pubblicati. Vantaggio principale di OPC: Indipendenza da una tecnologia proprietaria. OPC: OLE for Process Control Application Y Application X ... OPC Interface OPC Server A Application OPC I/F OPC Interface OPC Server B OPC Server C OPC I/F SCADA System Physical I/F Physical I/O OPC Server Physical I/F Physical I/O Storia di OPC Lo sviluppo di prodotti informatici nel campo dell'automazione ha comportato la necessità di sviluppare centinaia di drivers di comunicazione per garantire l'interoperabilità tra prodotti diversi Lo sviluppo ed il mantenimento di drivers comporta "spreco" di risorse Nel 1995 la Fisher-Rosemount, Intellution, Intuitive Technology, Opto22, Rokwell e la Siemens AG decisero di creare un gruppo di lavoro per risolvere il problema Membri di Microsoft furono invitati per il necessario supporto Storia di OPC L'obiettivo del gruppo di lavoro fu quello di definire uno standard per accedere ad informazioni in ambiente Windows, basandosi sulla (allora) corrente tecnologia (OLE)/COM La tecnologia sviluppata fu chiamata OLE for Process Control (OPC) Nell'Agosto del 1996 fu definita la prima versione di OPC (1.0) Nel Settembre 1996 la OPC Foundation fu presentata alla riunione annuale ISA a Chicago www.opcfoundation.org Storia di OPC Nel Settembre 1997 è stata prodotta la versione 1.0A Nell'Ottobre 1998 è stata prodotta la versione 2.0 della Data Access Specification Attualmente vi è la versione 3.0 della Data Access Specification Nel 2002 è stata prodotta una specifica per integrare OPC con XML Specifiche OPC OPC Overview v1.0 OPC Common Definitions and Interfaces v1.0 OPC Data Access Specification v3.0 OPC Alarm&Event Specification v1.02 OPC Historical Data Access Specification v1.1 OPC Batch Specification v2.0 OPC Security Specification v1.0 OPC & XML Draft v0.6 OPC Alarm&Event Specification Allarme: si verifica quando una "condizione" si verifica (diviene attiva). pre-definita Es.: Una temperatura che supera una certa soglia. Evento: è un avvenimento (es.guasto di un dispositivo, superamento di una soglia) che ha un significato per l’OPC Server, per l'apparecchiatura che rappresenta e per i suoi OPC Client. Differenti eventi possono essere associati ad una variabile. Per una temperatura si possono fissare 4 valori di soglia e, dunque, possono accadere 4 diversi eventi (a seconda della soglia) Un evento può segnalare l'occorrenza di un allarme OPC Alarm&Event Specification Un OPC Client può ricevere la notifica dell'occorrenza di uno o più eventi che l'OPC Server supporta. Vengono definiti 3 tipi di eventi Eventi legati a Condizione. Viene notificata l'avvenuto allarme Eventi la cui causa non è all'interno del processo (es.intervento dell'operatore) e che debbono essere monitorati Eventi Semplici (es.guasto di un dispositivo). Sono disponibili servizi per la definizione di condizioni per gli eventi del primo tipo. OPC Historical Data Access Specification Gli historical engines forniscono una fonte aggiuntiva d’informazioni che devono essere distribuite agli utenti e ai software a cui servono: Raw Data. Dati storici memorizzati Aggregated Data. Dati estratti da quelli storici, come richiesto dal client Nell’ottica dell’integrazione dei dati a tutti i livelli, le informazioni storiche possono essere considerate come un altro tipo di dati da condividere ed integrare. OPC Historical Data Access Specification Vengono supportati due tipi di server Storici: Simple Trend Historical Data Servers. Questi server permettono l’immagazzinamento di dati in piccole quantità di tipo semplice (raw data). Complex Data Compression and Analysis Servers. Questi server provvedono all'analisi dei dati. Sono capaci di fornire dati riassuntivi o un loro processamento (Es.valori medi, valor massimo, minimo ecc). OPC Data Access Specification Un OPC Data Access Server può offrire due sorgenti di dati: Cache e Device. Un OPC Data Access Server offre variabili (item) che possono essere selezionate (creando gruppi) da un OPC Data Access Client Gli OPC Item rappresentano connessioni a sorgenti dati all’interno del server. Ogni item ha associato un: Value, una Quality e un TimeStamp Si noti che gli Item non sono le sorgenti dei dati, ma solo i collegamenti ad esse Per ciascun gruppo, il Client può associare la frequenza con cui un OPC Server può aggiornare i dati relativi agli OPCItem contenuti nel gruppo. Interfacce Custom e Automation Le specifiche OPC contengono due set di interfacce: Custom Interfaces: sono usate in linguaggi (es.C++) che supportano i puntatori a funzioni. Automation Interfaces: sono usate in linguaggi (es.VB) dove non è possibile utilizzare puntatori a funzioni. In tal caso, i metodi vengono chiamati attraverso un nome e non da puntatori. C++ Application OPC Custom I/F OPC Server (In-Proc, Local, Remote, Handler) VB Application OPC Automation I/F Vendor Specific Logic Interfaccia OPC Automation Fornisce al programmatore Visual Basic delle interfacce più semplici; viene creato un wrapper DLL (involucro) per gli OPC Custom Interface Servers già esistenti; viene fornito così un meccanismo automatico per accedere alle stesse funzionalità ottenibili dalla interfaccia Custom. Automation Client (VB) Automation Interface OPC Automation Wrapper Custom Interface (COM / DCOM) OPC Custom Interface Server