error 2Ah and FIFOs RS-LOGIX 500

DMC

Member
Join Date
Oct 2004
Location
Milton, PA
Posts
10
Hello all,

I am seeing a 2Ah error code in my program.

The equipment is a Micrologix 1500 Series C LRP.
The existing program is in operation and works fine.
The customer wanted to add elapsed runtime meters to the existing Panelview plus
24 hour runtime, 7 day runtime and 30 day runtime must be shown.

I created 3 FIFO subroutines that work great for the elapsed runtime of each pump.

The problem occurs when I bring the new subroutines into the existing program, I get the 2Ah error (An indexed address is out of range) in RS-Logix 500.
I have checked my code numerous times and I cannot see that I am stepping on myself by using an address in two places for example.

The original program works fine, the FIFO .rss file works great, but not when I bring them together. Rockwell has yet to find an issue and this has been going on over a week now.

If anyone would like to help and see what could be causing the fault, I'd appreciate it, and will email the .rss files for review.

Thanks for the help!

DMC
 
It says that, but I'm not using indexed addressing directly, although the FIFO FFL and FFU does utilize indexed addressing.

DMC
 
The FIFO uses indexed addressing to handle the position parameter. Check these two things:

#1. Make sure the lenth field on the FIFOs do not exceed 128. If it does then RSLogix should catch this and give ytou an error before it ever gets downloaded. But.......

#2. Check to see if your program is writing to the control position or length fields (such as R6:0.POS or R6:0.LEN). If the logic writes a value to these fields the RSLogix syntax check ha sno way to find that.

Maybe if that isn't the issue then save FIFO code separately as a library file and upload it here for folks to take a look at.

It does not sound like an issue of code stepping on each other though. It would appear to be a probelm with the length or position fields on at least one of the FIFOs.

OG
 
Fifo Code

OK I loaded the program into the processor at the pump station (120 miles away) and it did not give me the 2Ah error and ran for about 30 seconds ...... it gave me a 44h error code however.

So it seems as though the 2Ah code is an emulator related problem, but the 44h code is explained as follows:

0044 This non-recoverable run-time error indicates excessive stack depth/JSR calls for event routine.
RSLogix 500 - Copyright Rockwell Software 2000, 2001, 2002

I have 12 JSRs in the program.

DMC
 
DMC,

The fault code indicates that you have too many JSRs active at the same time. Usually, this would be due to nesting subroutine calls. According to the RSLogix500 help, in normal code you can have eight levels of nesting. However, in the STI and HSC interrupt routines, the limit is three levels of nesting. I expect that the EII is the same (it doesn't specifically say so though).

I'm guessing here, so if I'm wrong you're entitled to a full refund.

If you do not have nested subroutines, there may be an alternate explanation. Your event may be firing so often that the routine can't finish before it's called again. Each call pushes you one level down in the stack.

Are you doing a lot of data manipulation in an EII routine? Normally I'd expect an interrupt routine that takes too long to cause scantime watchdog problems. But if you push to the stack too many times in one scan, you may get this fault instead.

Any of this sound helpful?

Good luck,

Mike Ellis
 
Yep, error 2A means the FIFO file (such as N10) is too small. Check the FIFO instructions and their lengths. If the FIFO address on the FFL and FFU reads N10:0 and the length reads 50 then go to the N10 data file and verify there are at least 50 words in the file. As I mentioned earlier, check to see if anyone is writing to that position or length fields (such as R6:0.POS or R6:0.LEN).

OG
 
Found my problem...

Firstly, 44h in a Micrologix is an recoverable error relating to the real time clock.

In a SLC 44h refers to the JSRs etc., so that wasn't an issue.

My RTC write to instructions (MONTH, WEEK, HOUR, MIN, SEC) were being written to by the Panelview in the original Integer locations that existed pre-FIFO.

Once I changed my program the locations that were used for the updating of the RTC were now part of my FIFO for Pump 1. The RTC probably read a 0 for MONTH, or WEEK and faulted a 44h.

Once I fixed these errors, everything ran fine.

Thanks to all for the help.
DMC
 

Similar Topics

I have a packing machine that is running a SLC5/04 for the past 20 or so yrs, that we are upgrading to a spare 5/05. After changing the...
Replies
3
Views
1,360
G
Major Error S:6=2Ah Indexed address reference is beyond specific referenced data file. I get the above fault on an AB 5/03 while using a PV600...
Replies
4
Views
3,103
Hello Everyone, I have a issue with communication between two different PLCs. So here is the facts, The Master PLC is Guard Logix 5069 with IP...
Replies
4
Views
51
Hi Siemens guys! I am experiencing SF fault on our S7-300 (6ES7 315-2AH14-0AB0) CPU from time to time. I've checked the diagnostic buffer and...
Replies
13
Views
164
Hello..I am new to Plc.I have Mitsubishi Melsec Fx3Ga-40MR PLC controlling a machine for packing powder.Currently the Plc has issue which power...
Replies
3
Views
135
Back
Top Bottom