Error OPC UA , Bad_TypeMismatch

Hello,
I have a question regarding error code of Ignition OPC UA Client module:

I must read a temperature setpoint in a Beckhoff PLC.
In the PLC, the format is an integer in 1/10 °C (example: 213 for 21.3 °C).
In Ignition, I create a tag with the format “Float4” with scale mode :
Linear, Raw Lo=-32’760.0, Raw Hi=32’760.0, Scaled Lo=-3’276.0, Scaled Hi=3’276.0.

The reading of the value is good, The value is displayed 21.3.
But if I write another setpoint (eg 21.5 or 22), I get an error “Bad_TypeMismatch”, 0x80740000. :cry:

Any suggestions on how to go about this? :scratch:

PS : In the Ignition Quick Client, I have the same problem.
But with the option “Auto-detect type”, the writing is good.

Version :
Ignition 7.2.11
Beckhoff OPC UA 1.6.93

What’s going on is the OPC-UA server is rejecting the write request because the data type of the value doesn’t match the data type of the node in the server.

Unfortunately, by using a float SQLTag, you’re now writing a float data type value to the server.

In later versions of Ignition the OPC-UA client will read/cache the data type for nodes and attempt to cast it for you before doing the write, but in 7.2.x the other OPC-UA SDKs/Servers out there hadn’t gotten strict about the data types coming through on writes so this functionality doesn’t exist.

So… your options:

  1. Change the SQLTag to an Int2, Int4, or Int8 (whichever the actual data type ends up being).
  2. Upgrade to a newer version of Ignition.

I upgrade to a newer version of Ignition.

Thank You