Applies To:
  • CitectSCADA 5.xx, 6.00
  • CitectHMI 5.xx, 6.00

Occasionally I get a Hardware alarm "PLC server timeout from IOServer".

I have set up a Digital Tag in my project, and I have found that after I write to this tag, the Hardware Alarm appears about 15 seconds later.

I have run "probe" in the Kernel, and after writing to a digital tag, I can see the following trace.

* Write   09:10:05.255 IODev r 0 0 291 1 0
* Read TO 09:10:13.451 IODev r 0 0 291 1 0
* Write   09:10:13.451 IODev r 0 0 291 1 0
* Read TO 09:10:21.459 IODev r 0 0 291 1 0

I only sent one write request, but it looks like the driver sent 2 requests, with an 8 second gap between them.

How do I stop the driver from double writing, and how do I get rid of the Hardware Alarm?


The reason why this hardware alarm is occurring, and why you are seeing a "double write" is that the driver was modifying the Buffer in the DCB for DIGITAL writes, and not restoring the original before replying to the IOServer. The IOServer therefore couldn't match the response and resent the command. This second write then timed out, and the I/O server generates the Hardware alarm.

This is a driver issue that effects MELSECNET, MELSECQNA, and OMRON drivers. You will only experience this problem if you are writing a bit within a word register on the PLC.

Citect has confirmed this to be a problem in CitectHMI/SCADA version 5.XX to 6.00. We are researching this problem and will post new information here as it becomes available.

Please contact Citect Support for an updated version of your specific driver. At the time of writing this KB MELSECNET driver version and MELSECQNA (MELSECQ) driver version, and OMRON driver version had this issue resolved.