Top Banner
http://www.opcfoundation.org/ Esempio di OPC Data Access Automation Creazione di un OPC Client
23

Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

May 01, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

http://www.opcfoundation.org/

Esempio di OPC Data Access AutomationCreazione di un OPC Client

Page 2: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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

dalla OPC Foundationin Progetto -> Riferimenti deve essere selezionata la libreria

“OPC Automation 2.0”.Implementa solo servizi (lettura/scrittura) sincroniNon realizza ad esempio l’aggiornamento automatico

dei dati

Esempio di OPC Data Access AutomationCreazione di un OPC Client

Page 3: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Esempio di OPC Data Access AutomationCreazione di un OPC Client

Page 4: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 OPCServerRestituisce 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 5: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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

Note:

OPCServerList è definita come ListBox

AllOPCServers è locale di tipo Variant

Page 6: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Passo 2: Connessione con l’OPC Server Selezionato

  

Connect (ProgID As String, Optional Node As Variant)Metodo dell’Oggetto OPCServerViene 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 7: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Passo 2: Connessione con l’OPC Server Selezionato

Dim ConnectedServerName As StringDim NodeServerName As Variant On Error GoTo MostraErroriConnect Set ConnectedOPCServer = New OPCServer 'Viene istanziato un oggetto OPCServer ConnectedServerName = OPCServerName.Text NodeServerName = Text2.Text ConnectedOPCServer.Connect ConnectedServerName, NodeServerName GoTo SaltaErroriConnect MostraErroriConnect: Set ConnectedOPCServer = Nothing Call MostraErrori("Connect", Err.Number)

SaltaErroriConnect: If Not ConnectedOPCServer Is Nothing Then form1.Caption = "Server Connesso"

Page 8: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 9: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 10: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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

Page 11: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 12: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Bisogna prima creare l'oggetto OPCGroups collection (dall'oggetto OPCServer)

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

collezione.Name è il Nome del gruppo. Il nome deve essere

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

Il gruppo eredita i valori di default (o quelli impostati come default nell'OPCGroups collection): es. Gruppo attivo, deadband 0

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

Passo 4: Creazione di un Gruppo

Page 13: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Dim ConnectedOPCServer As OPCServerDim ConnectedServerGroup As OPCGroups

Set ConnectedServerGroup = ConnectedOPCServer.OPCGroups

Set ConnectedGroup = ConnectedServerGroup.Add(OPCGroupName.Text)ConnectedGroup.UpdateRate = Val(GroupUpdateRate.Text)ConnectedGroup.IsSubscribed = TrueConnectedGroup.IsActive = TrueConnectedGroup.DeadBand = 10

Passo 4: Creazione di un Gruppo

Page 14: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Passo 5: Creazione Browser & Esplorazione Items Disponibili

  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 “foglie” (sottoinsieme di Items) e “nodi”. Se è di tipo flat vengono mostrati unicamente gli Item.

L'oggetto OPCBrowser deve essere creato utilizzando un metodo dell'OPCServer object.

Page 15: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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

gerarchico o flatL’Oggetto OPCBrowser ha un attributo (Organization) che

restituisce il tipo di organizzazione interna (OPCHierarchical o OPCFlat).

ShowLeafsMetodo dell’Oggetto OPCBrowserVisualizza i nomi delle foglie relativi alla posizione corrente

della "navigazione" (nel caso in cui l’organizzazione del server sia di tipo “gerarchica”).

Passo 5: Creazione Browser & Esplorazione Items Disponibili

Page 16: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Dopo aver selezionato un Gruppo è possibile aggiungervi un Item

tramite Item Collection:

OPCItems.

Passo 6: Aggiunta di un Item nel Gruppo

Dim mygroup As OPCGroup

Set OneOPCItem = mygroup.OPCItems.AddItem(Text1.Text, mygroup.ClientHandle) 

AddItem (ItemID As String, ClientHandle As Long)Metodo dell’Oggetto OPCItemsCrea un nuovo oggetto OPCItem e lo aggiunge alla collezione.ItemID: nome dell’Item selezionato da aggiungere.ClientHandle identificativo interno al client

 

Page 17: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 18: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Read (Source, Optional Value, Optional Quality, Optional TimeStamp)Metodo dell’Oggetto OPCItemLegge un Item dal Server, o dalla cache o dal device (0 o 1)Legge l’ultimo valore letto dal ServerVengono letti: Value, Quality, TimeStampGli attributi che sono restituiti sono tra loro sincroni

Passo 7: Lettura Proprietà Items

Page 19: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Passo 7: Lettura Proprietà Items Form3.Timer1.Interval = Grp1.UpdateRate

'Mostra gli attributi degli items appartenenti alla collezione del gruppo selezionato. L’aggiornamento e’ periodico (update rate)

For i = 1 To ItemCount

Set Itm = itms.Item(i) 'Prendi l'item i-esimo della collezione.

Itm.Read (1) 'Viene invocato il metodo Read sull'oggetto OPCItem corrente.

Form3.ListView1.ListItems.Add 'Aggiungiamo al listview le informazioni seguenti

Form3.ListView1.ListItems.Item(i) = Itm.ItemID

Form3.ListView1.ListItems.Item(i).SubItems(1) = Itm.Value

Form3.ListView1.ListItems.Item(i).SubItems(2) = Itm.CanonicalDataType

Form3.ListView1.ListItems.Item(i).SubItems(3) = Itm.Quality

Form3.ListView1.ListItems.Item(i).SubItems(4) = Itm.TimeStamp

Next i

Page 20: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Selezionando un Item è possibile modificarne il valore

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 21: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Remove (Count As Long, ServerHandles() As Long, ByRef Errors() As Long)Metodo dell’Oggetto OPCItemsRimuove uno o più OPCItem contenuti nella collezioneCount: 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 22: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

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 OPCGroupRimuove l’OPCGroup specificatoItemSpecifier: nome di un

OPCGroup.

Page 23: Http:// Esempio di OPC Data Access Automation Creazione di un OPC Client.

Passo 11: Disconnessione dal Server

  

Dim ConnectedOPCServer As OPCServerConnectedOPCServer.Disconnect

DisconnectMetodo Oggetto OPCServerDisconnette il client da un OPC Server.