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

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

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

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.