Skip to main content

OPC-UA

Client


Kommunikointi OPC-UA palvelimeen tapahtuu opcua_client.py -ohelman 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.