AB PLC 5/80C Memory limit

ranjanan

Guest
R
Our AB PLC-5/80C (1785-L80C15) processor memory is full now. only 32words free. now we need to increase the memory. Is there any way to increase the memory size. I am also aware that PLC-5/80C memory size of 100K is the largest in the Enhanced PLC 5 series. But is there any other way to solve this.

We now have 14 nodes in controlnet. we will be adding atleast 3 more nodes and hence we have to program the logic for that. But we donot have any memory space in this 5/80C.

Many thanks for all your input
 
There's no memory expansion modules that I'm aware of.

But there are some things you might be able to do to better use the memory you've got.

Check that you haven't created data tables that you aren't using in your program. Also make sure that all your data tables that your program uses are sized to just the length you are using, and no bigger. Open each data table and click the USAGE button. If there aren't 'X's, go to right-click on the last element and select CROSS-REFERENCE (to check for indirect addressing).

If you've laid out your data tables intelligently (instead of just grabbing any old address) you can take advantage of file commands (FAL, COP, FLL) instead of individual data manipulations (CPT, MOV).
You might even be able to do lots of repetative tasks in FOR-NEXT loops, using indirect addressing. These two techniques can reduce your program file word count quite a bit. They also make expansion easier, since you just have to increase the data table size and the length of the instruction and you're mostly done.

I've been just over full on a few projects, and had to resort to the following byte-finding techniques:

Sub-Branches with no conditions (like this:)

A
---+-------| |-------+---
| |
| B |
+---+---| |---+---+
| |
| C |
+---| |---+



Saves 2 words if just extended (like this:)

A
---+---| |---+---
| |
| B |
+---| |---+
| |
| C |
+---| |---+



You are eliminating one BST and one BND instruction.

A CLR N7:0 uses one word less than MOV 0 N7:0. Of course, even better is (like I said above) is when you can do FFL 0 #N7:0 10 to replace 10 instructions.

A word here, a byte there may not help much, but there are times when it just enough.

If you want, post your program (as a .zip), and I (or others) will look at it and suggest ways of trimming it.

Good luck!
 
With apologies to Allen Nelson for reiterating some of his material – but he’s obviously a much faster typist than I am. And as usual, he had some ideas which I missed. Still I hate to waste all of this typing effort - so for what it’s worth:

No offense intended, but are you absolutely sure that you are out of memory?

Even if you are familiar with the material which follows, some of our other readers may never have heard of these features. I will include it here for their benefit.

We have had customers before who thought that they were "out of memory" but they had simply been careless with memory usage and WASTED thousands of words. Many programmers use the "shotgun" approach when assigning addresses. For example: if you only need one bit in the B33 file, but you skip down and use B33:200/0 then you have wasted 200 words of memory. It gets even worse with things like timers and counters (which use 3 words of memory each - and with PD-type PID blocks which use 81 words each).

Another thing to check: do you have "spare" subroutine files that are no longer being used? Some programmers leave the "old stuff" in their programs "just in case" they ever need it again. Many programs contain entire duplicate ladder files which are never scanned. Removing these will often reclaim large amounts of memory resources. Look for files that have NONE of the following methods of being "called" for execution: JSR (jump to subroutine); STI (selectable timed interrupt); PII (processor input interrupt); MCP (main control program). Post additional questions if you need help with any of these concepts.

RSLogix5 has several tools which will help you assess your memory usage and reclaim any wasted resources. If you are unfamiliar with these features, I suggest that you experiment with an offline copy of your file before you actually try to use them.

First, open each data table file and click the "Usage" button. Look for large blocks of addresses which are UNMARKED. Be sure to look not only for "X" marks for the bits but also for "F" and "W" marks next to the word addresses. (These stand for "file" and "word" usage respectively). Large areas which have NO MARKS are good candidates for wasted memory which can likely be reclaimed.

Second, on the main menu at the top of RSLogix5, click "Tools" - then "Delete Unused Memory" - and then "Preview". This will automatically go through your memory tables and report on which files have wasted space AT THE END of the table and could therefore be shortened. Note: this operation would NOT find the first example of wasted memory I gave above. In other words, if B33:200/0 is the first bit used in file B33, then you cannot simply delete the 200 words of wasted memory (B33:0 through B33:199). You would first need to reassign B33:200/0 to a more efficient address - for example: B33:0/0. Luckily, RSLogix5 has a handy feature to make this reassignment as painless as possible.

Third, you must be working with an offline copy of your file to use this next feature. On the main menu at the top of RSLogix5, click "Search" - then "Replace". This will give you a window to help reassign your addresses. Check the following settings before you begin. "Scope:" should be set to "GLOBAL"; "Wrap" should be checked "ON"; and "Move Descriptions" should be checked "ON". The "Help" button on this window will help you make good use of this feature - but the settings I have given should get you started. In particular, you will want to read about using "wildcards" - these are a GREAT time saver - but you'll probably want to experiment a few times before you "really" use them.

Other things to consider: If your processor is accessed by an HMI or SCADA system, be especially careful when you reassign memory addresses. Remember that the HMI or SCADA system is expecting certain values to be in certain places. In other words, you may have to reassign the memory locations in the HMI or SCADA device to match your new assignments in the PLC.

Finally, these steps may seem like a lot of trouble to go through - and some programmers just want to buy a larger processor and not worry with all of this junk. But consider this: If your "out-of-memory" problem has been caused by sloppy programming practices, then a bigger processor will usually only postpone the inevitable. If the sloppy practices simply continue, then the day will eventually dawn when "someone" will have to knuckle down and clean up the mess. If that "someone" is you, then maybe this material will help.

And really finally, if none of these steps are of any value and you really and truly are out of memory in that big old PLC-5/80 processor, then I'm sure that your local Allen-Bradley distributor would be happy to discuss a brand new ControlLogix system for your application.
 
One more thing to look for:

The PLC5 processors create address pointers for every program and data file up to the highest number used. These pointers take up six words each.

For example, if you only have one program file (2) and then create a program file 100, then, even though the intervening files don't exist, pointers are created for them, taking up 97x6=582 words. The same holds for data table files.

The most recent PLC5's support up to 2000 data table files - if you use that capability, there is an associated overhead of 12,000 words required (even if you had no files between F8 and N2000).

There was a short-lived plan some years ago to produce PLC5's with capability for up to 10,000 program files (the 1000 limit was hampering some SFC programmers). Guess why that plan was dropped.

If you really do need a bigger PLC5, then your only option is SoftLogix5.
 
Last edited:
Many thanks for all your comments. I will do as per your comments and will report how much memory we saved.

We have one Intouch MMI and lots of recpie files in PLC5.

Our PLC5 Chassis holds one PLC5/80C processor and one Ethernet card most of the I/O's are in controlnet (through Flex I/O controlnet adapters) and very few in Remote I/O. we are also using DH+ to exchage messages between SLC 5/04

I will try all your comments and if we donot get enough memory to create logic for 3 more controlnet nodes then we have an idea to move to controllogix.

I hope we can replace PLC5/80C with the below configuration

1.Control logix processor
2.ENET card
3.DH/RIO card

I think the Rslogix5000 software has a feature to convert PLC5 ladder to Controllogix ladder. Is that conversion flawless or should we have to check each rung for any conversion errors.

Many thanks again
 
My recommendation would be to look into putting in an additional PLC-5 for the expansion equipment instead of migrating to ControlLogix.

If you were starting from scratch and told me you had a big, recipe-intensive program that was maxing out a PLC-5/80, I'd recommend one of the large-memory ControlLogix processors.

It's true that recipe files are far easier to handle in ControlLogix, but the conversion is not as simple as you hope it will be, and the learning curve and engineering cost are very likely greater than adding an additional PLC-5C15 controller.

If you put another PLC-5 on this ControlNet segment, you can use Listen-Only connections to bring in some of the existing I/O connections, and use produced/consumed data packets to interlock the two PLC's. You will have to put both into Program Mode to change any ControlNet schedule items, and you may need to modify your ControlNet timing settings to account for more nodes. But it's far easier to do so than to attempt to jump over to ControlLogix just to get more memory in which to store recipes.
 
Hi,

I am running into the same problem with PLC5/80E Memory (1 k left). What was the solution that was implemented? Are their any other solutions?
 

Similar Topics

Hi Everyone, I just want to get some help with regards to the step by step procedure in downloading a program into an Allen Bradley PLC-5/80C15...
Replies
2
Views
2,637
We use some PLC 5/80C processors on 3 platforms. I received a call yesterday that there was an ESD, and now the PLC is "dead". My boss has been...
Replies
19
Views
19,128
I would like some one to provide the procedure in steps to replace the failed PLC 5/80C processor on a redundant Controlnet system. The PLC is...
Replies
5
Views
2,713
Hello, I have an automation direct d2 262 plc and C-more HMI EA9T6CL-R. I need to prepare a program, scheduled to be performed on a future date. I...
Replies
1
Views
51
Hello, I'm trying to delve a little into rs-485 communications for a couple projects of mine. Until now I've been using a delta vfd and a delta...
Replies
2
Views
57
Back
Top Bottom