Exporting Device Data
The main purpose with an OPC-UA server is to provide access to real world objects. External information is stored in the address space in the form of variable nodes. Variable nodes have value attributes. The following section shows how to connect attributes with real world objects.
Value Callback
The value callback is a function and is used for both reading and writing.
- callback(nodeId[, value])
Writing Callback Parameters
Reading Callback Parameters
Error reporting
To report an error, the callback should raise a LUA error with a suitable OPC-UA status code.
Custom data source example
function callback(nodeId, newValue)
if newValue ~= nil then
-- writing data
ua.Tools.printTable("newValue", newValue, trace)
ua.Tools.printTable("deviceData", deviceData, trace)
if value.Value.Int32 == nil then
error(ua.StatusCode.BadInvalidArgument)
end
deviceData = newValue
else
-- reading data
ua.Tools.printTable("read deviceData", deviceData, trace)
return deviceData
end
end
server:setVariableSource(dataNodeId, callback)