A Rackio extension to add a OPC-UA support to a Rackio application
pip install RackioOPC-UA
from rackio import Rackio from rackio_opcua import RackioOPCUA app = Rackio() driver = RackioOPCUA(app, port=4840) app.run(8028)
Creating Tree Nodes
In order to create nodes, you can define custom folders, devices and mappings.
folder = driver.define_folder("default") device = folder.define_device("main")
Mappings allows to bind a OPC-UA object node to a Rackio defined Tag.
device.define_mapping("T1", "write") device.define_mapping("T3", "read")
write mode allows to read and write from a OPC-UA Client, and read mode allows to read only. By default, the binding timing period is 0.25 seconds. You bypass this by providing the period parameter, in seconds.
device.define_mapping("T1", "read", period=0.5)
You can also define mappings inside folders and can define folders inside folders.
Once the OPC-UA server is up and running, you can browse its tre with a OPC-UA Cliente in the following addres:
You can override the server port and server name as following.
driver = RackioOPCUA(app, name="sensor", port=4545)
Which will have the following address:
Features to develop
Some OPC-UA features are in development phase suchas.
- Custom Method definitions
- Custom Data Types definitions
- History Query
- Loading configurations form a file (JSON and XML)