Allen-Bradley ControlLogix Ethernet Driver Help
Tag Division Tips Users should designate one or more devices for Logical Blocking purposes and one or more devices for Logical Non-Blocking purposes. This will improve performance because different tags in a project are often better suited for different modes. When utilizing tag division, users should do the following:
Assign server tags referencing Atomic Logix Tags (array or non-array) to the Logical Non-Blocking device.
Assign server tags referencing a Structure Logix Tag composed of one-third* or less of the Structure Tag to the Logical Non-Blocking device(s). For example, if there are 55** or less member tags referencing a PID_ENHANCED Logix Tag, all these tags should be assigned to the Logical Non-Blocking device.
Assign server tags referencing a Structure Logix Tag composed of one-third* or more of the Structure Tag to the Logical Blocking device(s). For example, if there are more than 55** member tags referencing a PID_ENHANCED Logix Tag, all of those tags should be assigned to the Logical Blocking device.
*One-third is not an exact limit, but rather a figure that has held true in a number of studies. **A PID_ENHANCED structure has 165 tags; thus, one-third equals 55 tags.
Increasing the Connection Size allows more Read/Write requests per data packet, which provides greater throughput. Although it also increases the CPU load and response turnaround time, it significantly improves performance. The Connection Size parameter may be modified in the ControlLogix 5500 and CompactLogix 5300 device models only. For more information, refer to Logix Communications Parameters.
UDT Substructure Aliasing
If a UDT contains large substructures and one-third or more of the substructure members are referenced in the client, refer to the following instructions to optimize reads for the substructure.
Create an alias of the substructure in RSLogix 5000. Then, assign server tags referencing the rest of the UDT substructure to a Logical Blocking device.
Next, assign the server tags referencing the rest of the UDT (but not the substructure) to a Logical Non- Blocking device.
System Overhead Time Slice
The System Overhead Time Slice (SOTS) is the percentage of time allocated to perform communication tasks (such as OPC driver communications) that is set in RSLogix 5000. 100% SOTS is the percentage of time for controller tasks (such as ladder logic). The default SOTS is 10%. In every 10 ms program scan that occurs, the controller will spend 1 ms processing Allen-Bradley ControlLogix Ethernet Driver requests (if the controller has a continuous task). The value of SOTS defines the task's priority. If controller tasks are a high priority, the SOTS should be set below 30%. If the communication tasks are high priority, the SOTS should be set at or above 30%. For the best balance of communications performance and CPU utilization, set the SOTS to 10% to 40%.
The Allen-Bradley ControlLogix Ethernet Driver has been designed to optimize reads and writes. For non-array, non-string tags (which only request one element), requests are blocked into a single transaction. This provides drastic improvement in performance over single tag transactions. The only limitation is the number of data bytes that can fit in a single transaction.
Important: In Symbolic Mode, each tag's ASCII string value is inserted into the request packet until no more tag requests fit. For optimum performance, users should keep the tag names' size to a minimum. The smaller the tag name, the more tags that will fit in a single transaction, and the fewer transactions needed to process all tags.
Array Elements Blocked (Symbolic and Logical Non-Blocking Modes Only)
To optimize the reading of atomic array elements, read a block of the array in a single request instead of individually. The more elements read in a block, the greater the performance. Since transaction overhead and processing consumes the most time, do as few transactions as possible while scanning as many desired tags as possible. This is the essence of array element blocking.
Block sizes are specified as an element count. A block size of 120 elements means that a maximum of 120 array elements will be read in one request. The maximum block size is 3840 elements. Boolean arrays are treated differently: in protocol, a Boolean array is a 32-bit array. Thus, requesting element 0 is requesting bits 0 through 31. To maintain consistency in discussion, a Boolean array element will be considered a single bit. In summary, the maximum number of array elements (based on block size of 3840) that can be requested is as follows:122880 BOOL, 3840 SINT, 3840 INT, 3840 DINT and 3840 REAL.