Optimizing IO Performance for Multiple Topics/Device Groups using Prime Numbers
Overview
Use of multiple PLC topics can sometimes cause IO performance degradation. If there are multiple Topics/Device Groups defined in your DA servers for which the default update intervals are set (1000Msec) or configured for random update intervals, there may be an opportunity to easily make a simple configuration change to improve IO performance.
All that is required is to deactivate the DA Server and configure each topic/device group's update interval for a unique prime number.
As a refresher, a prime number (or a prime) is a natural number greater than 1 that has no positive divisors other than 1 and itself. Is is very important to understand that each topic/device group must be configured with a unique prime update time. No two topics/device groups may share the same prime update interval. Use of a duplicate prime number for more than one update interval is possible and allowed, but it would negate the whole purpose of this technique. As a result of configuring each topic/device group to use a unique prime for the update interval, no two topics/device groups will attempt to update at the same time, and it is this effect which results in a performance improvement.
Resolution
Following is a description of how you would modify your topics/device groups to use unique prime numbers for the update intervals.
First it is useful to locate a reliable reference for prime numbers in the range that you will need. One way to achieve this is to use a search engine to search for Prime numbers. There are many websites available which list primes.
Once you have found a reference site, you need to find prime numbers which are close to the update interval range that you need.
In this example, we have been using the default update interval of 1000 Msec, so we will look for primes that are close to 1000.
Note: You should use caution in configuring fast update intervals, especially when there are many topics defined in the DA server. There is a cost in terms of available resource, and it is possible that you might actually see a degradation in performance when applying fast update intervals such as 500 Msec and lower to your update intervals.
An important concept to note about about optimizing performance of IO involves the use of multiple device groups / topics for a given PLC. If you know that you will be configuring IO in the PLC such that you could group the IO points into for example, slow, medium, and fast groups, you can configure three or more separate Device Groups/ Topics with slow, medium, and fast update intervals. As an example, you could set up three different device groups with update intervals of 503, 1511, and 5003 Msec update intervals. You would then assign your IO for that PLC to the group that best matches the update time. This technique can make for a significant improvement in IO performance.
Once you have selected unique prime numbers for each topic/device group in use, you will start Wonderware's System Management Console and navigate to the DA Server Manager.
From the desktop, click Start > Programs > Wonderware > System Management Console
To deactivate the DA server, you should left click on the root leaf of the DA server to put it in focus, and then right click to display the options pane.
To deactivate the DA server left click on "Deactivate Server" When you do so, you will see the following Windows popup alert. If you are sure that you wish to deactivate the DA server and have taken all necessary steps in preparation, you should click the yes button.
The DA Server will now be deactivated and the status indicator icon will change to a red circle with an embedded which X (see below)
With the DA Server deactivated, navigate down through the DA server leafs to the lowest level which usually represents the PLC/device.
Click on the Device Groups tab for the device. The device group (also sometimes referred to as topic) shows each topic configured for that PLC.
Double click on each update interval and change the time to one of the prime numbers that you previously selected.
IMPORTANT - Use caution to not reuse a prime number for any of the update intervals.
Finally you can click save.
Repeat this process for every PLC and each DA server configured in the System Management Console.
All that remains now is to reactivate the DA Server.
Before restarting the DA Server, take any necessary steps to alert operators and prepare the system for live IO.
Left click on the main/root leaf for the DA server to put it into focus, and then right click to expose the option to activate the server.
Click on Activate Server. The status icon should change to a green circle with an embedded white check mark.
When all intervals have been configured for primes and the DA server activated you should check the Logger manager for any errors or warnings and monitor the system to make sure that it is running as it should.