Next
ReferenceHardwareOPC UAWrite task

OPC UA write task

Write a value to an OPC UA node each time a command channel gets a new value.

An OPC UA write task writes a value to a node each time you write a value to a command channel. For example, a valve on a schematic can set a PLC setpoint. If you write several values at once, the task writes only the last one. The task writes single values, not arrays.

The task has no state channels. To see the value on the server, read the node back with an OPC UA read task. Before you start, you need a connected OPC UA server.

Create an OPC UA write task

When you create command channels with a client library, give each one its own index channel. A writer that holds several commands on one index must write all of them in every frame.

Enterprise
  1. In the devices toolbar, right-click the server and select Create write task.
  2. In the Browser, expand the folders of the server.
  3. Drag the variables to write into Channels.
  4. Click (Start).

The Console creates a command channel for each node, named <node>_cmd, and its index <node>_cmd_time. To choose another name, right-click the channel and select Rename before you start.

To add many nodes at once, drag a folder into Channels, or import a CSV file. See find nodes. A write task CSV has no index column, and the Console skips rows with a field.

The OPC UA write task has one option, Auto start (auto_start), which starts the task each time the Driver starts. For node IDs, see node IDs. When a frame has more commands than the server accepts in one request, the Driver splits the write into smaller requests.

Channel reference

The table shows the Console label of each setting, with its Python field under it.

Setting Default Notes
Channel name name Empty The name of the command channel that the Console creates.
cmd_channel The key of the command channel.
Node ID node_id See node IDs.
Node name node_name Empty The browse name. For display only.
data_type float32 The data type of the channel that the Console creates.
Enabled disabled Off A disabled channel is not written.

Data types

The Driver reads the type of each node when it connects, and converts each command to that type. For example, a float64 channel can write 3 to an Int16 node, or 1 to a Boolean node.

OPC UA type Accepts
Boolean 0, 1, or the text true or false
An integer type A whole number in the range of the type, or the text of it
Float, Double A number, or the text of one
String Any value except a timestamp, written as text
DateTime A timestamp
Guid A uuid, or the text of a GUID
ByteString A bytes or a string
An enumeration A whole number in the range of int32
BaseDataType (any) Any value, with the type in the table below

The Driver does not send a command that does not fit the node, such as 300 for a Byte node or 1.5 for an Int16 node. The task shows “Failed to write commands” and writes the other channels.

When the server does not give the type of a node, the Driver writes the value with the OPC UA type of the command channel:

Synnax data type OPC UA type
boolean Boolean
int8 SByte
uint8 Byte
int16 Int16
uint16 UInt16
int32 Int32
uint32 UInt32
int64 Int64
uint64 UInt64
float32 Float
float64 Double
string String
timestamp DateTime
uuid Guid
bytes ByteString

A write task cannot write to a field of a structure node.

Troubleshooting

For other problems, see Troubleshoot hardware.