OPC-UA
Client
Kommunikointi OPC-UA palvelimeen tapahtuu opcua_client.py -ohelmanohjelman kautta. Ohjelma seuraa pisteitä, joiden dataSource- tai dataTarget -kenttä alkaa "OPC://" -tagilla. Kentällä dataSource piste lisätään seurattavien(subscribe) listalle, ja dataTarget kentällä pisteen arvoa lähetetään määrävälein OPC palvelimelle.
OPC -osoite
dataSource/dataTarget
1. OPC://{URL}/{ID}
2. OPC://{URL}/{BROWSE_NAME1}/{BROWSE_NAME2}...
Kaarisulkeilla merkityt parametrit annetaan URL encoded -muodossa.
{URL} : Paikalle tulee (IP tai domain):portti.
{ID} ja {BROWSE_NAME} : Ulkoisella OPC -palvelimella olevan pisteen(node) voi antaa joko "nodeid":n tai "browse name":n perusteella. {ID} on uniikki id, joka on usein muotoa "ns=2;s=xxx". {BROWSE_NAME} lähtee selaamaan palvelinta kuten tiedostokansioita, ja selaaminen aloitetaan palvelimen "Objects" polusta. Nämä annetaan muodossa "0:xxx".
Pisteiden arvot ja bitmask
Actiweb tietokannan opc client -pisteillä on arvot "pv" ja "raw". Ensimmäinen on tarkoitettu Actiweb sovellusohjelmien ja web UI:n käyttöön, ja jälkimmäinen luetaan/kirjoitetaan opcua_client -ohjelmasta. Actiwebin sovellus OPC_client tekee siirron näiden välillä, ja tekee tarvittaessa samalla bittimaskin tarvitsemat toimenpiteet.
Luettaessa bitmask pistettä, UInt16 arvo tallennetaan normaalisti "raw" -kenttään. Mikäli pisteelle on annettu "targetList" -kenttään ei-tyhjä lista, UInt16 hajotetaan bit array -muuttujaksi. Sen alkiot jaetaan "pv" -arvoiksi "targetList" -kentän määräämille pisteille. Jakaminen perustuu listan pisteiden "bit" -kenttien arvoihin, jotka määräävät bit array -muuttujan indeksin.
Kirjoitettaessa maskia OPC palvelimelle, järjestys on päinvastainen. "targetList" -ketän määräämien pisteiden "pv" -kenttien arvot kootaan bit array -muotoon, muutetaan UInt16 -muuttujaksi, ja tallennetaan opc -pisteen "raw" -kenttään.
Endpoint
Opcua_client -ohjelman palvelinkommunikaatio parametroidaan "opc_endpoint" -tyyppisellä tietokantapisteellä. Sen "endpoint" -kenttään annetaan täysin sama osoite, kuin "dataSource/dataTarget" -kentissä {URL} tagin tilalla on systemaattisesti käytetty, mutta ilman URL encode muunnosta. Kentän "interval" -arvoa(ms) käytetään subscribe -toiminnon tarkkuutena. Muut kentät toteuttavat OPC-UA standrdinstandardin mukaiset kirjautumisvaihtoehdot. Käyttäjätunnus, salasana, ja certit tallennetaan tiedostoihin, ja tietokantaan tallennetaan ainoastaan niiden polut.
Server
OPC UA palvelin pyörii opcua.py -ohjelman kautta. Ohjelma luo OPC UA datapisteet Actiwebin tietokantapisteistä, joiden tyyppi on AI, AO, AV, BI, BO, BV, MSI tai MSV. Ohjelma hakee pisteiden arvot viiden sekunnin välein ja päivittää oman tietokantansa arvot, jos ne ovat muuttuneet. Jos arvot palvelimen tietokannassa muuttuvat asiakasohjelman (client) muuttamana, kirjoittaa palvelin muutokset Actiwebin tietokantaan.
Palvelin luo itselleen endpointin: opc.tcp://0.0.0.0:4840/freeopcua/server
sekä rekisteröi URI:n: ”0.0.0.0:4840/freeopcua/server" namespace ID:ksi.
Tietokantapisteiden nimet palvelin muuttaa siten, että kauttaviivat ( / ) muuttuvat väliviivoiksi ( - ).
Esim.: Actiwebissa "energiaMittari1/teho.pv" <-> OPC UA:ssa "ns=2;s=energiaMittari1-teho.pv"
Korvaavan merkin, endpointin ja URI:n voi tarvittaessa muuttaa opcua.py -tiedostoa tekstieditorilla muokkaamalla.
Tällä hetkellä palvelimeen ei ole toteutettu kirjautumismahdollisuutta.