Tag Archives: ControlLogix

Estimating your Allen-Bradley (A-B) Logix controller’s Ethernet/IP bandwidth using Rockwell’s free Ethernet/IP capacity tool

When designing or upgrading a system which relies on a network, bandwidth is always a concern.

But for Rockwell’s CompactLogix and ControlLogix on an Ethernet/IP network there is a free, easy to use utility to help you size your system.

Rockwell’s Ethernet/IP Capacity Tool:

Rockwell’s Ethernet/IP Capacity Tool, which can be freely downloaded here, allows the user to select a platform, add different types of I/O and network devices, and then calculates how many CIP and TCP connections are consumed along with the packets per second (PPS) needed to service the network.

Below I’ll walk you step by step through using this tool to calculate the connections and PPS requirements of a sample system:

Step 1: Using this link, download and install the Ethernet/IP Capacity Tool. Once installed, launch it from the Windows Start Menu as shown below:

Using the EthernetIP Capacity Tool 1

Step 2: When the tool opens, you’ll see nine dropdown lists and boxes (as seen below:)

Using the EthernetIP Capacity Tool 2

Step 3: To start sizing our sample system we’ll need to choose a Programmable Controller from the top center dropdown. In this example we’ll choose a CompactLogix L24ER:

Using the EthernetIP Capacity Tool 3

Step 4: Now in the top left dropdown (above the “Node Group 1″ box) we’ll select “Point I/O Rack” as shown below:

Using the EthernetIP Capacity Tool 4

Step 5: Change the “No. Racks” for the Point I/O to 4:

Using the EthernetIP Capacity Tool 5

Step 6: Next. check the “Analog / Specialty Modules” box and change the first “No. of Analog Modules” to 2 as shown:

Using the EthernetIP Capacity Tool 6

Step 7: With the four Point I/O racks added, press the “Compute” button found half way down on the left side of the program. This returns the number of connections and  PPS used, as well as how many are remaining. Since we are still within our limits all the results are green:

Using the EthernetIP Capacity Tool 7

Step 8: Let’s add some VFD’s to our system. Select the dropdown above “Node Group 2″ and choose “PowerFlex 525 Drive” from the list:

Using the EthernetIP Capacity Tool 8

Step 9: Now, look under the picture of the drive you have just added – you have a field to enter the number of drives (on the left) and the update rate (on the right.) In the left hand box under the drive’s picture change the number of drives to 4 as shown. Note: Sometimes the text doesn’t display in the correct location, as is the case below. Hey, it’s free right?

Using the EthernetIP Capacity Tool 9

Step 10: Press the “Compute” button. The software reports back that we have exceeded the limit of 8 Ethernet/IP I/O drops for the L24. However, we only have 8?

Using the EthernetIP Capacity Tool 10

Step 11: To resolve the above issue, uncheck the “Switch IGMP Snooping with Querier.” Read the popup and then press “OK:”

Note: This does not mean you can’t have an IGMP switch in this system, it only means that if the switch was added to the RSLogix5000 I/O Tree it would consume one of the L24′s eight Ethernet I/O racks. In our example, we won’t be adding the switch to the I/O Tree (in order to allow our L24 to have 4 racks of Point I/O and 4 PF525 drives.)

Using the EthernetIP Capacity Tool 11

Step 12: Press the “Compute” button again and you should now see yellow which indicates we have reached (but not exceeded) one of the system limits:

Using the EthernetIP Capacity Tool 12

Step 13: Next we’ll add some HMI’s. In the “Node Group 3″ section,n select the PanelView Plus from the dropdown, read the popup and press “OK:”

Using the EthernetIP Capacity Tool 13

Step 14: Change the number of HMI’s to 10 and press “Compute”

Using the EthernetIP Capacity Tool 14

Step 15: As you can see below, event though our L24 has no more room for Ethernet/IP I/O, it still has plenty of bandwidth for HMI’s. In fact, this is a key feature of the entire line of 5370 CompactLogix controllers.

Using the EthernetIP Capacity Tool 15

Step 16: To see how the older line of CompactLogix controllers were much more limited when it came to the number of HMI’s that could be connected, lets change the L24 to an L35E (as shown below:)

Using the EthernetIP Capacity Tool 16

Step 17: Now press “Compute.” You’ll see red as we have greatly exceeded the connection limit of this older model:

Using the EthernetIP Capacity Tool 17

Step 18:To find a working number of HMI’s for this system, reduce the number of PanelView Plus units down until you can press “Compute” and not have a red result for CIP connections. In my test below I maxed out at three PVPlus units.

Using the EthernetIP Capacity Tool 18

Step 19: Now that our design is complete we can save our work as either a native file, as a picture, or in Excel format.

Using the EthernetIP Capacity Tool 19

 

I hope the above step by step walkthrough of using the Ethernet/IP Capacity Tool is helpful. If you have any comments or questions on this tool please feel free to leave using the “leave a reply” form at the bottom of this page.

By Shawn Tierney

Rockwell Certified Information Specialist and Microsoft Certified Professional

 

Can multiple Logix PLC’s control the same Ethernet I/O?

1769-L3xERA client recently asked me if multiple CompactLogix (or ControlLogix) processors could control the same Ethernet I/O?

Since RSLogix5000 has supported Ethernet I/O, its been possible to setup two processors to control, or “own,” the same remote rack of Ethernet I/O. However, the processor which attached to the I/O first would  be the one to control the I/O, and the second processor would receive an error stating that the I/O was already owned. If or when the first processor was disconnected or powered down, the I/O would be released and the second could then connect to the I/O and control it.

But what if you wanted two CompactLogix (or ControlLogix) processors to control the same remote Ethernet I/O at the same time? Well, lets think about that for a moment… having two processors reading the same inputs doesn’t seem to be a problem, but having two processors trying to control the very same outputs at the same time could lead to unpredictable results.

1769-L2xERWith that in mind, Rockwell created the “listen only” mode for most (if not all) input modules, and for a limited number of output modules. This feature allows you to setup one of your processors as the “owner” of the input or output module, while the other controller can be set to “listen only” so it too will automatically receive I/O status updates.

So, how do you know which I/O modules support listen only? In my testing of 1734 Point I/O in version 20 of RSLogix,  I found that when adding the I/O to the I/O tree the software will correctly present you with the available options for the module in question. In my tests, every 1734 Input module supported listen only, while only the subset of outputs modules listed below did:

  • 1734 POINT I/O1734-OE2V
  • 1734-OE2C
  • 1734-OB2E
  • 1734-OB2EP
  • 1734-OB4E
  • 1734-OB8E
  • 1734-OV2E
  • 1734-OV4E
  • 1734-OV8E
  • 1734-OE4C
  • 1734-8CFG
  • 1734-8CFGDLX

1769-L18ERM-BB1BThe main downside I found to the “listen only” setting is that it only works when the processor which owns the I/O is also connected. If the owner is powered off or disconnected, the “listen only” processor loses it’s connection to the I/O as well. Not good if you wanted to use the second controller to alarm on certain conditions if the first controller is taken out of service, but for those applications you should consider a redundant processor configuration.

I hope you’ve found the above information on multiple controllers controlling the same I/O helpful. As always, if you have any questions or would like to comment on the above article please use the “Leave a reply” form at the bottom of this page.

By Shawn Tierney

 

ControlLogix support for adding I/O online

Rockwell Allen-Bradley's ControlLogixA common client question of late is what are the abilities of the ControlLogix when is comes to adding I/O online.

In certain industries, processes can’t shut down as doing so would lead to loss of production or in extreme cases damage to the production line. In these situations, the more you can do while the production line is running, the better off you are. Allen-Bradley has had robust online program editing for decades, as well as I/O support for RIUP (removal and insertion under power,) but the online addition of I/O in the ControlLogix family is a more recent development.

The first phase of support for this feature was in version 15 of the ControlLogix. In that version you could add most 1756 I/O while the processor was in the remote run mode, either in the local 1756 I/O rack with the processor, or remotely on ControlNet or Ethernet.

When adding I/O online on ControlNet, the I/O is placed in the unscheduled bandwidth portion of the “Network Update Time” (aka NUT) which would be more than adequate for most process applications, by may not have the update rate and repeatability needed for high speed applications.

Rockwell Allen-Bradley's Logix-WP006 Table 1

Table 1 from Allen-Bradley Publication Logix-WP006

Note: For details about v15′s support for adding 1756 online in remote run, please reference the following manual from Allen-Bradley (A-B:)

Runtime Addition of I/O White Paper, LOGIX-WP006

The second phase of support for adding I/O online with ControlLogix came with version 18. This version added many new devices to the support list, including:

  • 1756-CN2, 1756-CN2R, 1756-CN2RXT
  •  1756-EN2t, 1756-EN2TR, 1756-EN2TRXT, 1756-EN3TR
  • PowerFlex 4, 40, 400, 400P
  • PowerFlex 70, 700, 700s, 7000
  • PowerFlex 753, 755
  • PowerFlex DC
  • 1305, 1336E, 1336F, 1336R, 1336S, 1336T, 1397
  • 1757- FFLD

Note: For details about v18′s added support for adding devices to a ControlLogix system online in remote run, please reference the following manual from Allen-Bradley (A-B:)

ControlLogix System User Manual 1756-UM001

I hope you’ve found the above information and links about adding I/O online to a ControlLogix helpful. If you have a question or comment please use the “Leave a reply” form below to comment on this article.

By Shawn Tierney

 

How to test the loading of Non-Volatile memory in your CompactLogix or ControlLogix

RSL5K Controller Properties Non-Volatile Memory SettingsSimilar to other Allen-Bradley PLC’s, the CompactLogix and ControlLogix Controllers give you three options for loading the Controller’s memory “image” from non-volatile memory (CompactFlash, SD, etc.) These “load modes” are “User Initiated,” “On Power Up,” and “On Corrupt Memory.” Below I’ll walk you through how to test each of these modes, of which “On Corrupt Memory” is the trickiest.

To test the “Load Mode” of “User Initiated” follow these steps:

RSL5K Launch Button For Controller PropertiesIn this test you’ll download a program to the Controller’s memory, and then transfer it to the non-volatile memory with a load mode of “User Initiated.” Next, you’ll download a different program to the Controller’s memory to prove you can overwrite it by manually reloading the original program back from non-volatile memory.

  1. Using RSLogix 5000, download a program to the Controller, go online and insure the Controller is in program mode.
  2. RSL5K Controller Properties with Nonvolatile Memory Tab CircledOpen the “Controller Properties” window and select the “Nonvolatile Memory” tab.
  3. Change the “Load Image” setting to “User Initiated” and press the “Store” button to transfer Controller’s memory image to Non-Volatile memory.
  4. When the transfer is done, go back online with the Controller and download a program different from the one you used in step 1.
  5. Cycle power to the Controller, go online, and verify the second program you downloaded in step 4 is still present in the Controller’s memory.
  6. Open the “Controller Properties” window and select the “Nonvolatile Memory” tab.
  7. Press the “Load” button to transfer Non-Volatile memory to Controller’s memory.
  8. Go online with the Controller once more and verify the program in Controller memory is now the original program downloaded in step 1.

To test the “Load Mode” of “On Power Up” follow these steps:

 In this test you’ll download a program to the Controller’s memory, then transfer it to the non-volatile memory with a load mode of “On Power Up.” Next, you’ll download a different program to the Controller’s memory to prove when you cycle power to the Controller it loads the original program from non-volatile memory.

  1. Using RSLogix 5000, download a program to the Controller, go online and insure the Controller is in program mode.
  2. Open the “Controller Properties” window and select the “Nonvolatile Memory” tab.
  3. Change the “Load Image” setting to “On Power Up” and then press the “Store” button to transfer Controller’s memory image to Non-Volatile memory.
  4. When the transfer is done, go back online with the Controller and download a program different than the one you used in step 1.
  5. Cycle Power, go back online, and verify the first program has been reloaded on power up from Non-Volatile Memory.

RSL5K Controller Properties Non-Volatile Memory Settings

The third and final “Load Mode” is “On Corrupt Memory” which can be a little tricky to test, but these steps should make it easier:

In this test you’ll download a program to the Controller’s memory, then transfer it to the non-volatile memory with a load mode of “On Corrupt Memory.” Next, you’ll reset the Controller to erase it’s memory to prove when you cycle power to the Controller and it detects no valid program that it loads the original program from the non-volatile memory.

  1. Using RSLogix 5000, download a program to the Controller, go online, and insure the Controller is in program mode.
  2. Open the “Controller Properties” window and select the “Nonvolatile Memory” tab.
  3. Change the “Load Image” setting to “On Power Up” and then press the “Store” button to transfer Controller memory to Non-Volatile memory.
  4. After the “store” process is complete, turn off the Controller and remove the non-volatile memory card (CompactFlash, SD, etc.)
  5. To erase the program from the Controllers memory, follow step 6 if your controller has a battery, or step 7 if it does not:
  6. For Controllers with a battery: Remove the battery and turn the Controller back on.
  7. For Controllers without a battery: Turn power on while pressing and holding the “default comms” button below the key switch
  8. Reconnect to the Controller and verify the original program is no longer loaded, and that the Controller has loaded the default blank program.
  9. Note on step 8: When the Controller powers on and finds no program in memory, and no non-volatile memory, it loads a default blank program. This program is not considered invalid or corrupt which is why step 10 has you erasing the Controller’s memory again after you reinstall the non-volatile memory. Also note that if you try to connect to the Controller when it has the default blank program loaded you’ll find you can’t go online unless you download an RSLogix 5000  program.
  10. Install the non-volatile memory card from step 3, and repeat steps 5-7  to erase the default blank program in the Controller’s memory to simulate a new out of box or corrupt memory condition
  11. Reconnect to the Controller and verify the original program (stored to non-volatile memory in step 2) has been loaded back into the Controller’s memory after the Controller found no valid program in memory on power up.

Have you ever needed to test your non-volatile memory? Do you have additional thoughts or comments on the above procedures? If you do, please share them below using the “leave a reply” form.

By Shawn Tierney

Why your CompactLogix or ControlLogix Real Time Clock (DateTime) may be a few hours off

A client recently called frustrated that the real time clock in his CompactLogix processor was always off by 4 hours. While I had heard this complaint in the past, since I hadn’t run into it myself I needed to do a little research to understand what this client was experiencing.

I found that prior to RSLogix 5000 version 16, using a GSV (“get system variable”) instruction to read the Controller’s WallClockTime object’s “DateTime” attribute was a popular way to get the actual time into Program or Controller tags. I also found that prior to v16 there had been no support for Time Zones (TZ) or Daylight Savings Time (DST.)

Then in RSLogix 5000 version 16 Rockwell added support for Time Zones (TZ) and Daylight Savings Time (DST,) both of which act as offsets from Coordinated Universal Time (UTC). When creating a new program, or importing an older program, the software defaults these new settings to zero which allows programmers to continue to use the “DateTime” attribute as they always had, without any consideration of the new TZ and DST settings.

However, many programmers began to enable the TZ and DST settings inadvertently when using the “Set Time” button in Controller Properties. In v16 and later this button not only sets the Controller’s clock to match the PC’s date and time, but also sets the Controller’s clock to match the PC’s TZ and DST settings.

Interesting enough, if you enable TZ and DST in my region, the result is a UTC offset of -5 for the Eastern Time Zone, and +1 for Daylight Savings Time, which combined gives you a UTC offset of -4, or exactly how much time my customer’s Controller was off.

Logix DateTime Off By Hours

The reason for this was that, with the Time Zone (TZ) and Daylight Savings Time (DST) settings in effect, the “DateTime” attribute no longer represented the current time, but instead represented UTC. So if you’re going to use the new TZ and DST settings, the “DateTime” attribute isn’t going to be of much use for representing local time.

Fortuneately, when Rockwell introduced support for TZ and DST in v16 they also added a new WallClockTime object class attribute, “LocalDateTime.” This new attribute does take into account the controller’s TZ and DST settings, and provides an accurate representation of local time.

To demonstrate this, I created the program pictured in this article with uses GSV instructions to read both the WallClockTime’s “DateTime” attribute as well as it’s “LocalDateTime” attribute. Running the program with the Controller’s clock set to match my PC’s settings of a -5 Time Zone and DST on (as my client did) shows that the “DateTime” attribute will indeed be -4 hours from the “LocalDateTime.”

 Have you run into the above issue? Do you have additional thoughts on this topic? If you do, please share them below using the “leave a reply” form.

By Shawn Tierney