Applies To:
  • CitectSCADA 5.xx

Projects using the SFMSINDX protocol may suffer very poor I/O performance unless arrays are used. 

Normally the Citect compiler can build requests efficiently, taking into account the relative addresses of tags and setting up bulk requests which use the available Citect-PLC bandwidth most efficiently. However, some protocols preclude the use of such optimising technology because of symbolic addressing or some such difficulty.

In the case of SFMSINDX, the data access method of Profibus required that the compiler prepare individual requests. As a result, a project using the SFMSINDX protocol may generate 10 times the normal number of requests for a given number of tags. This situation manifests itself in very poor screen update times, among other things.

To avoid this, project designers should plan to use arrays to read data as efficiently as possible. Citect will read the entire array if ever two or more elements are requested at the same time. For example, all digital alarms could be packed into one or a number of arrays, along with perhaps all like-period trends into another. Going further, a page which displays a large amount of data could have all it's tags packed into a few arrays as well.

This approach radically improves performance by cutting down on the number of requests and freeing up PLC bandwidth. Performance improvements in the order of 40 times are not unheard of when this arrangement is adhered to.