ControlLogix Performance Upgrades

Allen Bradley ControlLogix Ethernet OPC Server Gets Major Performance Upgrade

The ControlLogix driver has been redesigned to use a completely new acquisition method to gather data from ControlLogix processors resulting in phenomenal performance improvements.

About The Controller
The Allen Bradley ControlLogix processor family is an extremely flexible PLC architecture that allows control systems developers to design their control systems around the application while not being constrained by the narrow arrangements of structure and memory found in classical PLC systems. The nature of the ControlLogix processor allows the developer to create data within the controller that is structured to suit the needs of the application. Unlike classical PLCs, where the user has access to a fixed set of either registers or bits, the ControlLogix processor treats memory much more dynamically. Its versatility allows the user to choose their own names, data types, complex structures, and even arrays - much like how PC programmers might expect to treat memory.

The Old Approach
There is a price to be paid, however, for this versatility. That price is ease of communications. In the classical PLC, where data was arranged conveniently in a list of consecutive registers or bits, gathering large amounts of data was simply a matter of specifying a starting point in memory and a length to read. This format allowed communications packages like KEPServerEX to read data very quickly from the classical PLC. The ControlLogix processor, with its user definable memory structure, didn't have that luxury of simply stating a starting point and length to read. To address this issue, the first generation of the KEPServerEX ControlLogix driver would request data from the ControlLogix processor by sending a list of complete Tag names to the processor. These lists of ControlLogix Tag names allowed the first generation driver to acquire data at reasonable rates, but due the potential size of each Tag name, each read request might have contained only a few actual read items. The larger the Tag names, the less data could be acquired in a single request. Additionally, passing a list of Tag names to the ControlLogix processor also forced the PLC to devote a considerable amount of time to finding these tag references and then returning the data. Knowing that this was not the ideal way to gather data from the ControlLogix, Allen Bradley provided a much better way to access the controller, a way that would allow communications drivers such as KEPServerEX to access the PLC memory more like that of the classical PLC.

A New Approach
The new method of accessing the ControlLogix processor allows direct access to the memory of the PLC. Instead of using long and possibly complex Tag names, data can be accessed using the actual memory location within the controller. This new method of direct access allow this next generation ControlLogix driver to gather much larger amounts of data from the ControlLogix processor, while at the same time dramatically reducing the amount of burden on the PLC. Instead of long Tag names, the new KEPServerEX ControlLogix driver can send a highly optimized list of memory addresses to the controller. As the memory address is both considerably shorter than most tag names, a much larger number of tags can be read in a single request. If it were simply a matter of using this new direct memory access to gather more data, the next generation ControlLogix driver would be faster but not fast enough.

To really make the new access method shine, the ControlLogix driver has been given a new level of intelligence about the data that it needs to acquire. Normally, the ControlLogix driver would gather each tag by placing either the Tag name or its direct memory access address into a read request. As mentioned before, this made the driver faster but not fast enough. What was needed was a more detailed understanding of the structure of the data within the ControlLogix processor. With a better understanding of the memory structure, the next generation driver could make intelligent decisions about how best to acquire the data. For instance, if a user needed to read many items in a structure, instead of reading the individual items of that a structure, it would be better to read the whole structure as one piece of memory and parse out the tag data internally.

To make this new level of intelligence possible, a new feature of the next generation driver also had to be developed. In the past, the ControlLogix driver would allow a tag database to be generated from the L5K files of a ControlLogix project. While this allowed the user to access virtually all of the data within the controller, it still lacked some detail and it required access to the L5K project file of the processor. The next generation ControlLogix driver can now upload the tag database directly from the ControlLogix processor, a far superior method than requiring the user to select an L5K file. But more importantly is the benefit of directly importing the tag database from the controller for the driver to gain a detailed understanding of the users Tag's and structures within the PLC.

Using this improved understanding of the ControlLogix memory architecture; the next generation ControlLogix driver can make highly intelligent decisions about how to acquire data. Using this knowledge the driver now accesses controller memory in large, highly optimized reads that allow the driver to achieve read rates that will make any classic PLC user happy. With all of the work that has gone into to what is essentially nothing short of a completely new ControlLogix driver, one might think to ask what is the cost of all these enhancements. That, Perhaps, is the easiest question to answer, FREE. As always, if you are an existing KEPServerEX ControlLogix driver user, simply download the latest server pack and select "Upgrade" from the installation options.

Download the latest KEPServerEX