Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoDomenico Lorusso Modificato 11 anni fa
1
Esempio di OPC Data Access Automation Creazione di un OPC Client
2
Esempio di OPC Data Access Automation Creazione di un OPC Client
L’OPC 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 l’aggiornamento automatico dei dati
3
Esempio di OPC Data Access Automation Creazione di un OPC Client
4
Passo 1: Raccolta delle Informazioni sugli OPC Servers disponibili in un Nodo
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. GetOPCServers (Optional Node As Variant) As Variant Metodo dell’Oggetto OPCServer Restituisce 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 “ 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 l’OPC Server Selezionato
Connect (ProgID As String, Optional Node As Variant) Metodo dell’Oggetto 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 l’indirizzo IP della macchina con cui connettersi
7
Passo 2: Connessione con l’OPC 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
Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi
Le proprietà del Server possono essere ottenute tramite il pulsante “Proprietà”. Queste vengono visualizzate in una schermata secondaria
9
Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi
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
10
Passo 3: Visualizzazione delle Proprietà del Server a cui ci si è Connessi
11
Passo 4: Creazione di un Gruppo
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.
12
Passo 4: Creazione di un Gruppo
Bisogna prima creare l'oggetto OPCGroups collection (dall'oggetto OPCServer) Add(Optional Name As Variant) As OPCGroup: Metodo dell’Oggetto 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.)
13
Passo 4: Creazione di un Gruppo
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
14
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.
15
Passo 5: Creazione Browser & Esplorazione Items Disponibili
CreateBrowser Metodo dell’Oggetto OPC Server Crea un oggetto OPCBrowser Visualizza l’organizzazione del Server, che può essere di tipo gerarchico o flat L’Oggetto OPCBrowser ha un attributo (Organization) che restituisce il tipo di organizzazione interna (OPCHierarchical o OPCFlat). ShowLeafs Metodo dell’Oggetto OPCBrowser Visualizza i nomi delle foglie relativi alla posizione corrente della "navigazione" (nel caso in cui l’organizzazione del server sia di tipo “gerarchica”).
16
Passo 6: Aggiunta di un Item nel Gruppo
Dopo aver selezionato un Gruppo è possibile aggiungervi un Item tramite Item Collection: OPCItems. Dim mygroup As OPCGroup Set OneOPCItem = mygroup.OPCItems.AddItem(Text1.Text, mygroup.ClientHandle) AddItem (ItemID As String, ClientHandle As Long) Metodo dell’Oggetto OPCItems Crea un nuovo oggetto OPCItem e lo aggiunge alla collezione. ItemID: nome dell’Item selezionato da aggiungere. ClientHandle identificativo interno al client
17
Passo 7: Lettura Proprietà Items
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.
18
Passo 7: Lettura Proprietà Items
Read (Source, Optional Value, Optional Quality, Optional TimeStamp) Metodo dell’Oggetto OPCItem Legge un Item dal Server, o dalla cache o dal device (0 o 1) Legge l’ultimo valore letto dal Server Vengono letti: Value, Quality, TimeStamp Gli attributi che sono restituiti sono tra loro sincroni
19
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
20
Passo 8: Scrittura Proprietà Items
Selezionando un Item è possibile modificarne il valore Write (Value As Variant) Metodo dell’Oggetto OPC Item Scrivere il valore Value nel server Nota Bene: il valore viene scritto nel Device
21
Passo 9: Eliminazione Item
Remove (Count As Long, ServerHandles() As Long, ByRef Errors() As Long) Metodo dell’Oggetto 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
22
Passo 10: Eliminazione Gruppo
Remove(ItemSpecifier As Variant) Metodo dell’Oggetto OPCGroup Rimuove l’OPCGroup specificato ItemSpecifier: nome di un OPCGroup. 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
23
Passo 11: Disconnessione dal Server
Disconnect Metodo Oggetto OPCServer Disconnette il client da un OPC Server. Dim ConnectedOPCServer As OPCServer ConnectedOPCServer.Disconnect
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.