Selecting Optimum Tag Update times

Selecting the optimum tag update time (refresh rate) for a tag can be difficult. Normally, you should chose an update time that is no faster than required for the task, but fast enough to where important events aren't missed by the system.

Example-1 You have a valve that can open and close within a 200ms time period. If you select an update time of 500ms, then the valve could possibly open and close again without ever being seen by the system. So, in this situation you would want to select an update time that is slightly less than 200ms; maybe something in the 180ms range.

Example-2 You have a conveyor motor that only starts and stops every few days. In this situation selecting an update time of 200ms might be a severe waste of system resources. So, you would possibly want to pick an update time that more reflects the operators "need to know" in regards the change of state. In other words, If the conveyor goes off, how quickly does the operator need to know about the change. Therefore, in this situation an update time of 1000ms to 5000ms will likely be acceptable.

However, there are some reasons when the selecting of non-optimum update times can actually improve a system performance. To understand this better we need to look under the hood as to how the data collection process actually operates. When TagsCollector sets up scanning, it categorizes the tags into groups based on IP address and scan time. For example, if a PLC has 50 tags with a scan time of 200ms and only 2 or 3 tags needing a scan time of 3000ms, then the system's overhead for maintaining a separate scan group is probably going to outweigh any benefit gained by slowing the scan time. Therefore, it's considered best practice to limit the number of unique scan times to only a few preselected values and thus limit the number of groups that are created for scanning.

Example-3  If you have 10 tags that would benefit from the following scan times 150ms, 180ms, 210ms, 220ms, 250ms, 500ms, 1000ms, 2000ms, 3000ms, & 5000ms; then you would probably enhance the systems performance by placing the first 6 tags into a group with an update time of 150ms, and the last 4 tags into a group with an update time of 1000ms.

Best practice suggestions for optimizing system performance

  • Limit the number of unique scan times to a few preselected values.
  • Use the same update time for all tags contained within a single array or similar structure.
  • Transfer floating point values in arrays and limit their update time to values greater than 500ms whenever possible.  
  • Transfer Boolean bits in words whenever possible.