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: :cry:](https://emoji.discourse-cdn.com/twitter/cry.png?v=9)
Any suggestions on how to go about this? ![:scratch: :scratch:](https://global.discourse-cdn.com/inductiveautomation/original/1X/76d1620bec252bfac07050c889ff5a91dc8a9c25.gif)
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
![](https://global.discourse-cdn.com/inductiveautomation/original/2X/e/ef4c9bbb64865671aeec64f9045aa7fc063baa45.png)
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:
- Change the SQLTag to an Int2, Int4, or Int8 (whichever the actual data type ends up being).
- Upgrade to a newer version of Ignition.
I upgrade to a newer version of Ignition.
Thank You