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 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


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

Presentazioni simili


Annunci Google