RS Logix 500 Question

Lary

Member
Join Date
May 2020
Location
MI
Posts
58
The customer that this machine is being built for has requested I add more pre loaded samples to this program. Just to review, I'm using RS Logix 500 on a AB 1400 series PLC on a laptop with windows 10 pro. Also I have attached the RSS file. The L12 data file is already at 245 bits. I noticed it only goes up to 256 bits. Is there any way to go beyond that limit?
 
I have worked with RSLogix 500 and SLC controllers a lot in the past. Not so much in the past 5 years. But if I am understanding what you are asking... L12 data file can only goto 256 bits, so create a new L13 data file there you would have another 256 bits, L14 data file another 256 bits.

To my knowledge you cannot make the L12 have more than 256 bits, but you can create new data files. Just like when you have the T4 timers you can actually create a T20, T21, etc... timer files as well. T4 timers, C5 counters, N7 Integers... are all default but you can create others.
 
And to clarify, it isn't 256 "bits". Each data file (except Input, Output, Status) are limited to 256 "elements".

So for Integers, that is 256 individual whole number values. Each element is 1 word / 16 bits.

For Float, you can have 256 individual values with decimals. Each element there is 2 words.

For Long Integers you can have 256 individual whole number values. Each element here is 2 words.

For Timers, you can have 256 individual timers. Each element there is 3 words.

The point being, you don't need to know how many words or bits each data type uses, you only need to know that you get 256 of them. They refer to those as elements. Each piece of an element is called a sub-element. For example T4:0/DN. Timer, File 4, Element 0, and the done bit is the sub-element.

And if you need more, you can have up to 256 data files. Data files 0, 1, and 2 must be used for input, output, and status. They cannot be deleted and you cannot create more of these. Everything else can be deleted or you can make more. If you need more timers, just create a new timer data file and you get up to another 256. Need more Bit, Float, Integer, Long Integer, just create more data files.

OG
 
There is a kinda-sorta trick to exceed the 256 word limit on data tables in Logix 500.

There is a S: system variable (I forget which, and don't have the software loaded) that you can set to "Index across data tables".

This applies only to INDEX addressing, not INDIRECT addressing.

Let's say that you have an L12 and an L13 file, each 250 elements long.

If the value in S:24 is 200, then #L12:0 (note the leading '#') references L12:200. If S:24 is 300 and your have Index across data tables enabled, then #L12:0 references L13:50 !

Note that all File instructions: FAL, FSC, FLL, COP all require '#' register references to work, and all manipulate the value stored in S:24.

It takes some careful planning to really make use of this, and considering that your program is largely written, you may have to do a LOT of remapping. And I feel sorry for any maintenance tech who may have to modify / troubleshoot this, unless you document and annotate VERY, VERY well.

------

The other "traditional" approach is to merely use condition logic with Indirect addressing. Something like:
LEQ (Index 250) ----- MOV L12:[Index] Somewhere.
GRT (Index 250) --+- SUB (Index, 250, L13_Index)
. . . . . . . . . . . . . .+-- MOV L13:[L13_Index], Somewhere.


Good luck.
 
Background / exposition: Lary's project involves a machine improvement/commissioning that also migrates from a MicroLogix 1500 to a MicroLogix 1400. The previous successful community thread addressed an ASCII device interface that was running at the wrong data rate.

In this program, he's setting up a large set of numbers with boundary conditions; a "low limit" value and a "high limit" value for each, with an individual offset. The sets of numbers increment by 10 to keep them lined up in the data table view.

If this were my program, I would do a handful of things differently.

1. I would use Integer (N) files, not Long Integer (L) files.

An "L" data table element takes 32 bits, while the ordinary "N" data table takes 16. The typical values I see in the program are between 1000 and 6000, so the range of a signed 15-bit value (-32768 to +32767) is sufficient.

And every HMI device built in the past 20 years will support and SLC-type Integer data file, but not necessarily a MicroLogix Long Integer data file.


2. I would put my values into separate Data Table Files, so that the offset in the data file was the same, but the data file number was different.

It's not a major difference in how the addresses look to the human eye, and it's no difference in the speed or resources used by the MicroLogix operating system, but it feels easier to me.

N12:0-255 Test Value
N13:0-255 Low Limit Value
N14:0-255 High Limit Value
N15:0-255 Low Limit Offset
N16:0-255 High Limit Offset


3. Get to know a powerful text editor and/or scripting language

Lots of people like to automate their automation programming in Excel, with formulas or VBA. Others go for Python or Java or C.

I trudge my way through with Notepad++. The Alt-C column increment feature is my favorite method for creating large chunks of increment-by-one code when I don't want to write a loop or use indirect or indexed addressing.

This sort of logic may in fact call for indirect or indexed addressing. That is worthwhile, especially if you put in very good rung comments.
 

Similar Topics

I added T4:50 to delay the OTE from coming on, but the customer only wants T4:50 to delay the OTE every 12 hours. I am a beginner and can't...
Replies
11
Views
2,787
Hi all, I'm using a Micrologix 1400 PLC. I have 8 physical DI's, 4 DO, 4 AI's that will be radio transmitted to a DCS Master. The DCS is a Bailey...
Replies
8
Views
9,335
We recently had an issue with one of our systems. I was trying to trouble shoot from RsLogix, however I dont have the original logic file, so...
Replies
2
Views
1,276
I've done a few AB projects, but have not seen either of the following in a MOV instruction (I can't figure how to take a "snippet" and insert). I...
Replies
9
Views
3,269
when your pointer gets indexed, if your previous reference is true, and your current reference is true before getting indexed, will the...
Replies
13
Views
5,456
Back
Top Bottom