I’m using system.tag.write to update my opc tags (in read/write mode). I can see from the tag browser that it is changing and the system.tag.write return value is “2” (pending), but the opc tag write doesn’t seem to be received by the target device (PLC). The reason that I’m saying this is because when I did the tag write directly on the opc tag through the Ignition gateway, the device responded accordingly.
Is this a known issue? If so, do we have a solution for this?
Does it work if you use
What kind of device is it?
I haven’t tried writeSynchronous and system.opc.write yet.
It’s a Panasonic PLC AFPX-C30RD (Modbus Ethernet).
I’ll provide an update once I’ve tried using writeSynchronous and the opc write scripts.
I’ve done further testing, it seems that the Redlion HMI is not accepting the bit tag writes, but it’s working on OPC “int” writes.
Is there a way to solve this issue?
If the target Modbus device doesn’t support the MaskWriteRegister function and you need to write to a bit within an 16-bit register then your only option is to read the value, mask/update the target bits, then write the new value to the register.
The driver will not attempt this for you because it’s a race condition. It will only use the MaskWriteRegister function to write to bits within registers.