La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Esempio di OPC Data Access Automation Creazione di un OPC Client.

Presentazioni simili


Presentazione sul tema: "Esempio di OPC Data Access Automation Creazione di un OPC Client."— Transcript della presentazione:

1 Esempio di OPC Data Access Automation Creazione di un OPC Client

2 LOPC Client è stato realizzato: in Visual Basic® 6.0 usando la libreria OPC Automation 2.0 messa a disposizione dalla OPC Foundation in Progetto -> Riferimenti deve essere selezionata la libreria OPC Automation 2.0. Implementa solo servizi (lettura/scrittura) sincroni Non realizza ad esempio laggiornamento automatico dei dati Esempio di OPC Data Access Automation Creazione di un OPC Client

3

4 Viene fornita la lista dei Servers, presenti nella macchina specificata dallindirizzo 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 Variant Metodo dellOggetto OPCServer Restituisce i nomi (ProgIDs) degli OPC Servers. Si utilizza uno di questi ProgID nel metodo Connect. Il servizio fornisce un array di stringhe. Lindirizzo del Node è lindirizzo IP che può essere di tipo o

5 Passo 1: Raccolta delle Informazioni sugli OPC Servers disponibili in un Nodo Set AnOPCServer = New OPCServer OPCServerList.Clear NodeServerName = Text2.Text AllOPCServers = 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

6 Passo 2: Connessione con lOPC Server Selezionato Connect (ProgID As String, Optional Node As Variant) Metodo dellOggetto OPCServer Viene invocato per stabilire una connessione con un OPC Data Access Server. ProgID: È una stringa che identifica un OPC Data Access Server. Node: Specifica lindirizzo IP della macchina con cui connettersi

7 Passo 2: Connessione con lOPC Server Selezionato Dim ConnectedServerName As String Dim 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"

8 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

9 Dim ConnectedOPCServer As OPCServer Form2.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

10

11 Il tasto Aggiungi permette la creazione e laggiunta di un nuovo gruppo a quelli esistenti. Il gruppo così creato avrà il nome e lUpdate Rate specificati nelle corrispondenti caselle. Passo 4: Creazione di un Gruppo

12 Bisogna prima creare l'oggetto OPCGroups collection (dall'oggetto OPCServer) Add(Optional Name As Variant) As OPCGroup: Metodo dellOggetto OPC Groups Crea 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

13 Dim ConnectedOPCServer As OPCServer Dim ConnectedServerGroup As OPCGroups Set ConnectedServerGroup = ConnectedOPCServer.OPCGroups Set ConnectedGroup = ConnectedServerGroup.Add(OPCGroupName.Text) ConnectedGroup.UpdateRate = Val(GroupUpdateRate.Text) ConnectedGroup.IsSubscribed = True ConnectedGroup.IsActive = True ConnectedGroup.DeadBand = 10 Passo 4: Creazione di un Gruppo

14 Passo 5: Creazione Browser & Esplorazione Items Disponibili Permette lesplorazione 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.

15 CreateBrowser Metodo dellOggetto OPC Server Crea un oggetto OPCBrowser Visualizza lorganizzazione del Server, che può essere di tipo gerarchico o flat LOggetto OPCBrowser ha un attributo (Organization) che restituisce il tipo di organizzazione interna (OPCHierarchical o OPCFlat). ShowLeafs Metodo dellOggetto OPCBrowser Visualizza i nomi delle foglie relativi alla posizione corrente della "navigazione" (nel caso in cui lorganizzazione del server sia di tipo gerarchica). Passo 5: Creazione Browser & Esplorazione Items Disponibili

16 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 dellOggetto OPCItems Crea un nuovo oggetto OPCItem e lo aggiunge alla collezione. ItemID: nome dellItem selezionato da aggiungere. ClientHandle identificativo interno al client

17 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

18 Read (Source, Optional Value, Optional Quality, Optional TimeStamp) Metodo dellOggetto OPCItem Legge un Item dal Server, o dalla cache o dal device (0 o 1) Legge lultimo valore letto dal Server Vengono letti: Value, Quality, TimeStamp Gli attributi che sono restituiti sono tra loro sincroni Passo 7: Lettura Proprietà Items

19 Form3.Timer1.Interval = Grp1.UpdateRate 'Mostra gli attributi degli items appartenenti alla collezione del gruppo selezionato. Laggiornamento 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

20 Selezionando un Item è possibile modificarne il valore Write (Value As Variant) Metodo dellOggetto OPC Item Scrivere il valore Value nel server Nota Bene: il valore viene scritto nel Device Passo 8: Scrittura Proprietà Items

21 Remove (Count As Long, ServerHandles() As Long, ByRef Errors() As Long) Metodo dellOggetto OPCItems Rimuove uno o più OPCItem contenuti nella collezione Count: il numero di items che devono essere rimossi. ServerHandles(): array di identificatori usati dal server per gli item processati ByRef Errors() array di Long che indicano il successo delle operazioni effettuate sugli items Passo 9: Eliminazione Item

22 Passo 10: Eliminazione Gruppo ConnectedServerGroup.Remove (List2.List(List2.ListIndex)) List2.Clear ListView2.ListItems.Clear Command2.Enabled = False Command4.Enabled = False Command3.Enabled = False For i = 1 To ConnectedServerGroup.Count List2.AddItem (ConnectedServerGroup.Item(i).Name) Next i Remove(ItemSpecifier As Variant) Metodo dellOggetto OPCGroup Rimuove lOPCGroup specificato ItemSpecifier: nome di un OPCGroup.

23 Passo 11: Disconnessione dal Server Dim ConnectedOPCServer As OPCServer ConnectedOPCServer.Disconnect Disconnect Metodo Oggetto OPCServer Disconnette il client da un OPC Server.


Scaricare ppt "Esempio di OPC Data Access Automation Creazione di un OPC Client."

Presentazioni simili


Annunci Google