OPC Data Access server je najvažnija i najkorištenija OPC specifikacija do sada. Smatra se da je oko 99% implementacija OPC tehnologije upravo ovo sučelje. OPC DA server omogućava razmjenu informacija u realnom vremenu između uređaja u polju (procesu) kao što su PLC, DCS ili PAC, sustava za kontrolu i nadzor kao što su HMI, SCADA ili operatorski paneli. Dodatna funkcionalnost je mogućnost razmjene informacija između samih sustava automatizacije različitih proizvođača. Arhitektura OPC DA Servera je klijent-server model gdje OPC Server komponenta koja osigurava sučelje ka OPC objektima i upravlja sa njima. OPC klijent aplikacija komunicira sa OPC poslužiteljem preko spomenutih sučelja.
OPC DA sučelje (interface)
OPC tehnologija se temelji na Microsoft OLE (ActiveX) tehnologiji i komunikacijskim modelima COM (Component Object Model) i DCOM (Distributed Component Object Model). OPC sadrži standardni set sučelja, svojstva i metoda koje se koriste u aplikacijama kontrola procesa i automatizacije. OLE/COM tehnologije definiraju se kako individualne programske komponente koje mogu međudjelovati i dijeliti podatke.
OPC specifikacije sadrže dva seta sučelja:
- Prilagođeno sučelje (Custom Interface)
- Automatizacijsko sučelje (Automation Interface)
OPC poslužitelji moraju implementirati prilagođeno sučelje i opcijski mogu implementirati automatizacijska sučelja.
U neki m slučajevima OPC Foundation osigurava omotnicu (wrapper) za standardno automatizacijsko sučelje . Ovaj wrapperDLL može biti korišten za bilo koji specifični proizvođački (Vendor) poslužitelj. Općenito, OPC klijent programi koji se kreiraju koristeći skriptno bazirane programske jezike će koristiti automatizacijsko sučelje. Klijent programi koji su kreirani u C++ će lakše koristiti prilagođeno sučelje za postizanje najbolje performanse.
Ono što ovaj standard želi definirati je zajednički način na koji aplikacije u oblasti upravljanja i vođenja procesa mogu pristupiti podacima o procesu. Automatizacijsko sučelje treba osigurati istu funkcionalnost kao i prilagođeno (Custom) sučelje, ali na način koji je blizak trendovima u načinu programiranja u automatizaciji. Osnovni cilj dizajna sučelja je da radi kao omotnica (wrapper) za OPC DataAcces Custom Interface te da osigurava pogodan mehanizam funkcionalnosti. Klijent koji koristi OPC Data Automation sučelje koristi wrapper DLL kao sponu ka OPC Data Custom Interface serveru. Na ovaj način bilo koja aplikacija koja ima OLE Automation Interface funkcionalnost (VBA,VB.Net, Delphi, Excel) ima mogućnost pristupa lokalnom OPC serveru a preko wraper-a udaljenom OPC Custom Interface serveru.
OPC DA Server model
OPCServer objekt je osnovna instanca OPC poslužitelja. Korisnik mora kreirati OPCServer objekt prije nego se mogu dobiti reference za druge objekte. Sadrži OPCGroups kolekciju i kreira OPCBrowser objekte.
OPCServer objekt
OPCServer objekt osigurava korisniku pristupi (za čitanje i pisanje) ili komunikaciju sa skupom izvora podataka. Tipovi izvora koji su na raspolaganju su funkcija implementacije poslužitelja. OPC Automation klijent se povezuje sa OPC Automation serverom koji komunicira sa izvorom podataka (odnosno sa DA Serverima), putem funkcionalnosti koju osiguravaju automatizacijski objekti koji su opisani u ovom standardu. OPCServer osigurava jedan OPCGroups objekt za Automation kolekciju da bi održavao sakupljanje OPCGroup objekata. Korisnik pristupa poslužitelju izvršavajući OPCServer.Connect metodu birajući jedan od dostupnih OPC poslužitelja čiju listu može dobiti pomoću OPCServer.GetOPCServers metode. Nakon uspješnog pristupa dostupna su mu podaci o karakteristici, statusu i postavkama izabranog poslužitelja kao što su verzija poslužitelja, proizvođač, ime poslužitelja i slično. Od događaja dostupan je samo jedan, OPCServer.ServerShutDown, koji obavještava da poslužitelj nije više dostupan.
OPC Browser objekt
Objekt koji izlistava (brows-a) imena stavki (items) u konfiguraciji poslužitelja. Postoji samo jedna instanca OPCBrowser objekta za instancu OPCServer objekta. Ako server ne podržava izlistavanje CreateBrowser metoda OPCServer objekta neće kreirati ovaj objekt. Korisnik su dostupna eventualna hijerarhijska organizacija stavki pomoću OPCBrowser.ShowBranches i OPCBrowser.ShowLeafs metoda kao i navigacija kroz istu metodama OPCBrowser.MoveToRoot, OPCBrowser.MoveUp, OPCBrowser.MoveDown i OPCBrowser.MoveTo metodama
OPCGroups i OPCGroup objekt
OPCGroups objekt je automatizacijska kolekcija koja sadrži sve OPCGroup objekte. Ovaj objekt klijent kreirao unutar opsega OPCServera sa kojim se automatizacijska aplikacija povezala putem OPCServer.Connect metode. Osigurava korisniku dodavanje, modificiranje i upravljanje s kolekcijom OPCGrup objekta.
OPCGroup objekt je instanca OPCGroups objekta. Namjena ovog objekta je održavanje informaciju o stanju i osiguranje mehanizma kreiranja servisa akvizicije podataka za OPCItem Collection objekta koji OPCGroup objekt referencira. Korisnik dodaje novu grupu u kolekciju metodom OPCGruop.Add. Nakon toga može svojstvom OPCGroup.IsActive kontrolirati status dostupnih podataka unutar grupe. Pomoću svojstva OPCGroup.IsSubscribed se korisnik preplaćuje na asinkrono primanje podatak kada se promjeni vrijednost odabranih stavki na poslužitelju. Promjena vrijednosti inicira aktiviranje OPCGroup.DataChange događaja te se servisiranjem istog zaprimaju vrijednosti promijenjenih podataka. Definiranjem svojstva OPCGropu.UpdataRate kontrolira se period sinkrone razmjene (Read/Write) odabranih podataka u milisekundama. Razmjena se ostvaruje OPCGroup.SincWrite i OPCGroup.SincRead metodama. Asinkrona razmjena podataka moguća je metodama OPCGroup.AsincRead, OPCGroup.AsincWrite te OPCGroup.AsincRefresh metodama. Završetkom asinkrone razmjene podataka generiraju se događaji OPCGroupe.AsincReadComplete i OPCGroup.AsincWriteComplete.
OPCItems i OPCItem objekt
OPCItems je kolekcija koja sadrži sve OPCItem objekte koje klijent kreira unutar opsega OPCServer-a, i odgovarajućeg OPCGroup objekta koji je automatizacijska aplikacija kreirala. OPCItem je Automation objekt koji održava definiciju stavki (Item-a), trenutnu vrijednost, statusnu informaciju i posljednje vrijeme ažuriranja (Update).
OPC DA tipovi podataka
Kao što je spomenuto u početki OPC koristi COM a osnovni tip podataka u njemu je Variant. Variant je tip podataka duljine 16 byte koji u sebi može sadržavati većinu ostalih tipova. Prva dva byta su cijelobrojni podaci koji definiraju tip podataka koji su pohranjeni od 7 do 15 byte.
Svi OPC serveri podržavaju slijedeće tipove Variant podataka:
Tip | Podaci u bytovima 8 do 15 | Opis vrijednosti koji VARIANT vrača |
VT_I1 | 1-byte signed integer | Cijelobrojna vrijednost duljine 1 byta |
VT_I2 | 2-byte signed integer | Cijelobrojna vrijednost duljine 2 byta |
VT_I4 | 4-byte signed integer | Cijelobrojna vrijednost duljine 4 byta |
VT_UI1 | 1-byte unsigned integer | Pozitivna cijelobrojna vrijednost duljine 1 byta |
VT_UI2 | 2-byte unsigned integer | Pozitivna cijelobrojna vrijednost duljine 2 byta |
VT_UI4 | 4-byte unsigned integer | Pozitivna cijelobrojna vrijednost duljine 4 byta |
VT_R4 | 4-byte IEEE floating-point number | Realna vrijednost duljine 4 byta |
VT_R8 | 8-byte IEEE floating-point number | Realna vrijednost duljine 8 byta |
VT_CY | CURRENCY type | Novčana vrijednostima s decimalnim zarezom |
VT_DATE | DATE type | Datum i vrijeme |
VT_BSTR | BSTR type | String koji počinje s oznakom duljine a završava s null karakterom |
VT_BOOL | VARIANT_BOOL type | Logička vrijednost TRUE ili FALSE |