Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai...

46
http://www.opcfoundation.org/

Transcript of Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai...

Page 1: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

http://www.opcfoundation.org/

Page 2: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

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.

HandheldPDA Configuration and

Maintenance

Measurement-Pressure

-Temp-Flow-Level

ValvesPositioners

Coriolis

PD MetersCommon Head

Analytical-Simple

-Complex

-Analog I/O-Discrete I/O

-TC/RTD

Fisher

Field Management

Fieldbus

Windows NTOperator Console

Windows NTRT/History DataServer

Windows 3.1Windows-95Windows NTClient Applications

Process Management

Plant Highway

Windows NTOperator ConsoleRT/History DataServer

Business Management

Plant Highway

Controller

Integrazione delle Informazioni

Page 3: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Integrazione delle Informazioni

Necessità di accedere ai dati di campo da qualunque parte dell’impianto

Visione omogenea dei dati (semantica dei dati)Indipendenza dei programmi dalle caratteristiche

hardware/software della sorgente dati

Page 4: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

OLE for Process ControlOPC

Scopo: fornire una visione unica ed indipendente dalla sorgente dei dati prodotti in un impianto industriale

Si basa su tecnologie consolidate in ambiente Windows:Object Linking and Embedding (OLE). Insieme di servizi in

grado di permettere alle applicazioni Windows di scambiare oggetti.

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.

Page 5: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

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.

OLE for Process ControlOPC

Page 6: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Application OPC I/FOPC

Server

OPC I/FSCADASystem

Physical I/F

Physical I/FPhysical

I/O

PhysicalI/O

...

OPC ServerB

OPC ServerA

OPC ServerC

Application X

OPC Interface

Application Y

OPC Interface

OLE for Process ControlOPC

Page 7: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

I server OPC

Un server OPC deve fornire le seguenti interfacce:OPC Alarm&Event ServerOPC HistoricalData ServerOPC DataAccess Server

Page 8: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Allarme: un allarme è una condizione “anomala”, dove per condizione si intende uno stato di un OPC ServerEvent, o di uno degli oggetti che contiene.

Evento: un evento è un avvenimento che ha un significato per l’OPC Server, per l'apparecchiatura che rappresenta e per i suoi OPC Client.

OPC Alarm & Event

Page 9: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

L’interfaccia OPC Alarm & Event fornisce servizi affinchè:gli OPC client possano essere notificati sui tipi di

eventi che l'OPC server supporta.gli OPC client possano ricevere la notifica

dell’occorrenza di uno o più eventi. Inoltre si possono usare filtri per definire un sottoinsieme dell’evento desiderato.

Accedere e manipolare le condizioni implementate dall'OPC server (gestione allarmi).

OPC Alarm & Event

Page 10: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Gli historical engines forniscono una fonte aggiuntiva d’informazioni che devono essere distribuite agli utenti e ai software a cui servono.

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 HistoricalData

Page 11: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Ci sono molti tipi di server Storici. Qualche tipo chiave supportato è:Simple Trend Historical Data Servers. Questi

server permettono l’immagazzinamento di dati in piccole quantità di tipo semplice;

Complex Data Compression and Analysis Servers. Questi server provvedono alla compressione dei dati. Sono capaci di fornire dati riassuntivi o una loro analisi, tipo valori medi, valor massimo, minimo ecc.  

OPC HistoricalData

Page 12: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

OPC Data Access Server permette di scegliere due sorgenti di dati: Cache e Device.

Un OPC Data Access server comprende gli oggetti: Server, Group, Item e Browser.

L’oggetto OPC Server mantiene le informazioni sul server e funge da contenitore per gli oggetti OPC Group.

L'oggetto OPC Group fornisce i meccanismi per contenere e organizzare logicamente gli OPC Item. Per ciascun gruppo è possibile associare la frequenza con cui un OPC Server può aggiornare i dati relativi agli OPCItem in esso contenuti.

OPC Data Access

Page 13: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Gli OPC Item rappresentano connessioni a sorgenti dati all’interno del server. Ogni item ha associato un: Value, una Quality e un

TimeStampSi noti che gli Item non sono le sorgenti dei dati, ma solo i

collegamenti ad esse L’ oggetto OPC Browser è una collezione di “rami” o

di nomi di Item che esistono nel server. Il browsing è opzionale, cioè il server può non supportarlo.

OPC Data Access

Page 14: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Le specifiche OPC contengono due set di interfacce:Custom Interfaces;Automation Interfaces.

Interfacce Custom e Automation

C++ Application

VB Application

OPC Custom I/F

OPC Automation I/F

OPC Server(In-Proc, Local, Remote,

Handler)Vendor Specific Logic

Page 15: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

L’OPC Data Access Automation Interface 2.xx aggiorna la precedente versione OPC 1.0. Questo per:fornire al programmatore Visual Basic delle interfacce più

semplici;sfruttare le nuove caratteristiche del Visual Basic (es: gli

eventi)Caratteristica principale dell’OPC Data Access

Automation:viene creato un wrapper DLL (involucro) per gli OPC Data

Access Custom Interface Servers già esistenti;viene fornito così un meccanismo automatico per accedere

alle stesse funzionalità ottenibili dalla interfaccia Custom.

OPC Data Access Automation

Page 16: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

OPC Data Access Automation

Automation Client

OPC Automation Wrapper

COM / DCOM

OPC Custom Interface Server

Page 17: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

L’ OPC Data Access Automation Interface fornisce quasi tutte le funzionalità dell’ OPC Data Access Custom Interface, sia quelle obbligatorie che quelle opzionali.

Le interfacce sono completamente supportate da VC++ e Visual Basic.

Le interfacce non supportano VBScript o Java Script, per queste applicazioni verrà sviluppato un wrapper apposito.

OPC Data Access Automation

Page 18: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Modello dell’OPC Data Access Automation  

 

OPCServer

OPCGroups(collection)

OPCGroup

OPCItems(collection)

OPCItem

OPCBrowser

Page 19: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

L’OPC Client è stato realizzato:in Visual Basic® 6.0usando la libreria OPC Automation 2.0 messa a

disposizione dalla OPC Foundationin Properties| References deve essere selezionata la

libreria “OPC Automation 2.0”.

Esempio di OPC Data Access AutomationCreazione di un OPC Client

Page 20: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Esempio di OPC Data Access AutomationCreazione di un OPC Client

Page 21: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Viene fornita la lista dei Servers, presenti nella macchina specificata dall’indirizzo IP o dal corrispondente URL.

Se non viene specificato nessun indirizzo viene fornita la lista degli OPC Servers della macchina locale.

Passo 1: Raccolta delle Informazioni sugli OPC Servers disponibili in un Nodo

GetOPCServers (Optional Node As Variant) As VariantMetodo dell’Oggetto OPC ServerRestituisce i nomi (ProgIDs) degli OPC Servers.Si utilizza uno di questi ProgID nel metodo Connect.Il servizio fornisce un array di stringhe.L’indirizzo del Node è l’indirizzo IP che può essere di tipo

“www.vendor.com” o “180.151.19.75”.

Page 22: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 1: Raccolta delle Informazioni sugli OPC Servers disponibili in un Nodo

Set AnOPCServer = New OPCServerOPCServerList.ClearNodeServerName = Text2.TextAllOPCServers = AnOPCServer.GetOPCServers(NodeServerName)For i = LBound(AllOPCServers) To UBound(AllOPCServers) OPCServerList.AddItem AllOPCServers(i) Next i

Page 23: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 2: Connessione con l’OPC Server Selezionato

  

Connect (ProgID As String, Optional Node As Variant)Metodo dell’Oggetto OPC ServerViene invocato per stabilire una connessione con un OPC Data

Access Server.ProgID: È una stringa che identifica un OPC Data Access

Server.Node: Specifica l’indirizzo IP della macchina con cui

connettersi

Page 24: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 2: Connessione con l’OPC Server Selezionato

Set ConnectedOPCServer = New OPCServerConnectedServerName = OPCServerName.TextNodeServerName = Text2.TextConnectedOPCServer.Connect ConnectedServerName, NodeServerName

Page 25: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Le proprietà del Server possono essere ottenute tramite il pulsante “Proprietà”. Queste vengono visualizzate in una schermata secondaria

Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi

Page 26: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Dim ConnectedOPCServer As OPCServerForm2.Show Form2.Label5.Caption = ConnectedOPCServer.StartTime Form2.Label12.Caption = ConnectedOPCServer.CurrentTime Form2.Label16.Caption = ConnectedOPCServer.LastUpdateTime Form2.Label17.Caption = ConnectedOPCServer.MajorVersion Form2.Label18.Caption = ConnectedOPCServer.MinorVersion Form2.Label19.Caption = ConnectedOPCServer.BuildNumber Form2.Label20.Caption = ConnectedOPCServer.VendorInfo Form2.Label21.Caption = ConnectedOPCServer.ServerState Form2.Label22.Caption = ConnectedOPCServer.LocaleID Form2.Label23.Caption = ConnectedOPCServer.Bandwidth Form2.Label24.Caption = ConnectedOPCServer.ServerName Form2.Label25.Caption = ConnectedOPCServer.ServerNode

Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi

Page 27: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi

Page 28: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Il tasto “Aggiungi” permette la creazione e l’aggiunta di un nuovo gruppo a quelli esistenti. Il gruppo così creato avrà il nome e l’update rate specificati nelle corrispondenti caselle.

Passo 4: Creazione di un Gruppo

Page 29: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Add(Optional Name As Variant) As OPCGroup:Metodo dell’Oggetto OPC GroupsCrea un nuovo oggetto OPCGroup e lo aggiunge alla

collezione.Name: Nome del gruppo. Il nome deve essere

univoco. Se non viene fornito nessun nome il server ne genera uno.

Dopo che un gruppo è aggiunto i suoi attributi possono essere modificati (vedi UpdateRate; Default=1000 msec.)

Passo 4: Creazione di un Gruppo

Page 30: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Dim ConnectedOPCServer As OPCServerDim ConnectedServerGroup As OPCGroupsSet ConnectedServerGroup = ConnectedOPCServer.OPCGroupsSet ConnectedGroup = ConnectedServerGroup.Add(OPCGroupName.Text)ConnectedGroup.UpdateRate = Val(GroupUpdateRate.Text)Command2.Enabled = False

Passo 4: Creazione di un Gruppo

Page 31: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 5: Creazione Browser & Esplorazione Items Disponibili

 

Page 32: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Permette l’esplorazione delle risorse messe a disposizione dal Server, la cui organizzazione può essere di tipo gerarchica o flat.

Nel primo caso gli item vengono raggruppati formando una struttura ad albero con “archi” (cioè un certo sottoinsieme di Items) e “nodi” (cioè ogni singolo Item). Se è di tipo flat vengono mostrati unicamente gli Item.

OPCClient consente una esplorazione delle risorse del server in modo agevole e intuitivo.

Passo 5: Creazione Browser & Esplorazione Items Disponibili

Page 33: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

CreateBrowserMetodo dell’Oggetto OPC ServerCrea un oggetto OPCBrowserVisualizza l’organizzazione del Server, che può essere di tipo

gerarchico o flatSe è di tipo gerarchico vengono mostrati i vari “rami” e “foglie”Se è di tipo flat vengono mostrati direttamente gli ItemL’Oggetto OPC Browser ha un attributo (Organization) che

restituisce il tipo di organizzazione interna.ShowLeafs

Metodo dell’Oggetto OPC BrowserVisualizza i nomi delle foglie della posizione corrente (nel caso in

cui l’organizzazione del server sia di tipo “gerarchica”).

Passo 5: Creazione Browser & Esplorazione Items Disponibili

Page 34: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Dopo aver selezionato un Gruppo è possibile aggiungervi un Item.

Un item può far parte anche di più gruppi contemporaneamente.

Passo 6: Aggiunta di un Item nel Gruppo

Page 35: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

GetOPCGroup (ItemSpecifier As Variant) As OPCGroup.Metodo dell’Oggetto OPC GroupsRestituisce un OPCGroup indicato dall’ItemSpecifier.ItemSpecifier: nome dell’OPC Group.

AddItem (ItemID As String, ClientHandle As Long)Metodo dell’Oggetto OPC ItemsCrea un nuovo oggetto OPCItem e lo aggiunge alla

collezione.ItemID: nome dell’item selezionato da aggiungere.ClientHandle identificativo interno al client

 

Passo 6: Aggiunta di un Item nel Gruppo

Page 36: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Dim mygroup As OPCGroup Dim itms As OPCItems Dim Itm As OPCItem Dim ItemCount As Integer Set mygroup = ConnectedServerGroup.GetOPCGroup(List2.List(List2.ListIndex)) Set OneOPCItem = mygroup.OPCItems.AddItem(Text1.Text, mygroup.ClientHandle)Dim ItemName As String Set itms = mygroup.OPCItems ItemCount = itms.Count 'List3.Clear ListView2.ListItems.Clear For i = 1 To ItemCount Set Itm = itms.Item(i) ListView2.ListItems.Add , mygroup.Name + Str(i), Itm.ItemID 'List3.AddItem (Itm.ItemID) ListView2.View = lvwReport Next i Command3.Enabled = True 

Passo 6: Aggiunta di un Item nel Gruppo

Page 37: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Selezionando un gruppo e azionando il pulsante “Proprietà Items”, è possibile visualizzare una form contenente le informazioni relative agli Items appartenenti al gruppo specificato.

Queste comprendono: ItemID, Value, DataType, Quality e TimeStamp.

Passo 7: Lettura Proprietà Items

Page 38: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Read (Source, Optional Value, Optional Quality, Optional TimeStamp)Metodo dell’Oggetto OPC ItemLegge un Item dal Server, o dalla cache o dal deviceLegge l’ultimo valore letto dal serverVengono letti: Value, Qualità, TimeStampGli attributi che sono restituiti sono tra loro sincroni

Passo 7: Lettura Proprietà Items

Page 39: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 7: Lettura Proprietà Items

ItemID (Sola lettura)ID(unico ) dell’item

Value (Sola lettura)Restituisce l’ultimo valore dell’item letto dal server.

CanonicalDataType (Sola lettura)Restituisce il tipo di dato.

Quality (Sola lettura)Restituisce l’ultima Quality letta dal server.

TimeStamp (Sola lettura)Restituisce l’ultimo TimeStamp letta dal server.

Page 40: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Selezionando un item è possibile modificarne il valore facendo di OPCClient uno strumento utile anche per il controllo oltre che per l’analisi di un processo industriale.

Passo 8: Scrittura Proprietà Items

Page 41: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Write (Value As Variant)Metodo dell’Oggetto OPC ItemScrivere il valore Value nel serverNota Bene: il valore viene scritto nel Device

Passo 8: Scrittura Proprietà Items

Page 42: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Dim s As Integer Dim Grp As OPCGroup Dim i As Integer Dim itms As OPCItems Dim Itm As OPCItem Dim ItemCount As Integer Dim ItemName As String s = ListView1.SelectedItem.Index Set Grp = form1.ConnectedServerGroup.GetOPCGroup(form1.List2.List(form1.List2.ListIndex)) Set itms = Grp.OPCItems Set Itm = itms.Item(s) Itm.Write (Form3.Text1.Text)

Passo 8: Scrittura Proprietà Items

Page 43: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

E’ possibile disporre di altri metodi dell’Oggetto OPC Group:SyncRead: permette di leggere uno o più items specificati

da una sorgente dei dati (Cache/Device). Per ciascun item vengono letti: valore, qualità e timestamp.

SyncWrite: permette di scrivere i valori di uno o più items specificati nel Device.

AsyncRefresh & DataChange: E’ possibile imporre che il Server aggiorni gli Item di un OPCGroup quando un valore o la qualità di un Item all’interno del gruppo è cambiato. L’aggiornamento non può avvenire con frequenza maggiore di quella dell’UpdateRate dell’OPC Group.

 

Definizione di Altre Azioni da Compiere nell’Ambito di un Gruppo

Page 44: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Remove (Count As Long, ServerHandles() As Long, ByRef Errors() As Long)Metodo dell’Oggetto OPC ItemsRimuove uno o più OPC Item contenutiCount: il numero di items che devono essere rimossi.ServerHandles(): array di identificatori usati dal server per gli item

processatiByRef Errors() array di Long che indicano il successo delle operazioni

effettuate sugli items

Passo 9: Eliminazione Item

Page 45: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 10: Eliminazione Gruppo

 

ConnectedServerGroup.Remove (List2.List(List2.ListIndex))List2.ClearListView2.ListItems.ClearCommand2.Enabled = FalseCommand4.Enabled = FalseCommand3.Enabled = FalseFor i = 1 To ConnectedServerGroup.Count List2.AddItem (ConnectedServerGroup.Item(i).Name)Next i

Remove(ItemSpecifier As Variant)Metodo dell’Oggetto OPC GroupRimuove l’OPC Group specificatoItemSpecifier: nome di un

OPCGroup.

Page 46: Http://. Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo Secondo livello:

Passo 11: Disconnessione dal Server

  

Dim ConnectedOPCServer As OPCServerConnectedOPCServer.Disconnect

DisconnectMetodo Oggetto OPC ServerDisconnette da un OPC Server.