Applies To:
  • CitectSCADA 3.xx, 4.xx, 5.xx

I'm using the SIDIRECT driver to communicate to a couple of Siemens S5 PLCs. All works well, but after anything from 1 hr to 3 days, one PLC stops communicating, and it is always the same PLC. 

The Citect SIDIRECT driver uses the Siemens AS511 protocol which is the PLC programming protocol for these PLCs and accesses the memory of the PLC directly.

Your described problem has been seen before. The only way to get the communication going was to restart the PC but the cause was found to be noise or interference and a change of wiring path solved all problems. What actually can happen is that interference scrambles the communication and gets accepted by the PLC.

Also worth mentioning is when Citect starts up it will query the PLC to find where the Datablocks are located, as this will change as soon as a change to the PLC program is done. Therefore as soon as a change has been done in the PLC, Citect has to be restarted. This is a limitation of the protocol rather than Citect.

When you use SIDIRECT, keep these things in mind:

1) SIDIRECT should be used with care as noise and interference may have severe consequences, a better choice would be to use 3964R / RK512 (called SIEMENS in Citect).

2) If the PLC program is changed, restart Citect, do not even reconnect the cable as a write from Citect may overwrite vital system areas.

3) Not all CPUs are supported by the SIDIRECT driver, please look at article Q2136 in the KB for a list of unsupported CPUs.