error - 0022h - urgent help needed - can someone run this program?

ragsncl

Member
Join Date
Aug 2009
Location
Loughborough, Leicestershire
Posts
21
Hi,

Please advice on the following fault on the Micrologix 1400. We are testing the attached program, but I am getting the following error.

0022h

Please see attached the .rss file, error pictures.

1.jpg 2.jpg
 

Attachments

  • 3T02.zip
    23.1 KB · Views: 9
I can't test your program since my version of RSLogix does not support it.

What is the watchdog timeout setpoint?

Are there any jumps and labels? Conditional subroutines?

Does the program run for awhile and then fault? Or does it happen right away?
 
I can't seem to open your program in my version of RS500, can you print it to a PDF file? Without seeing your program my first guess would be if you are using JMP and LBL instructions you have an infinite loop going.
 
In rung 14, you're jumping back to rung 12 whenever N7:1 is less than N7:0. That will give you a watchdog fault every time.

Take out that JMP and associated LBL in rung 12. If you're only interested in doing those SCP when N7:1 < N7:0, then put the conditional on the SCPs in rungs 12 and 13.


Same thing for the JMP in rung 16.

The way the rest of the logic is written, you don't even need to put in the other conditionals. Just take out the JMPs and LBL.


By the way, I had to upgrade to v8.10 to read this. Fortunately, we already had this update, I just hadn't installed it yet...
 
Last edited:
I can't seem to open your program in my version of RS500, can you print it to a PDF file? Without seeing your program my first guess would be if you are using JMP and LBL instructions you have an infinite loop going.

Yep, JMP and LBL. Why?

Here's the PDF
 
have you checked your emails lately? ... I just sent you a program that I put together last night after dinner that I "think" will answer all of the requirements you've been asking for ...
 
Hi, Please see pdf file attached.

What is the watchdog timeout setpoint?

I havent set it up. It is default as 10. I tried changing this to maximum (255), but ended up with the same error.

Are there any jumps and labels? Conditional subroutines?

I have removed the subroutine, but looks like I have to remove the jmp and labels and put some condition there.

Does the program run for awhile and then fault? Or does it happen right away?

Yes, it does it straight away.

Ron,

I have just recieved it. I will check it out. Thank you.

I will remove the jmp & lbl instructions and put conditional ones.
 
scaling the temperature transmitter

Hi all, I have removed the lbl and jmp.. no subroutines etc.. the program is running fine without any errors, but the scaling for the but rung 14 in pdf 3T03 is not giving any output.

I have connected a 0-10 v supply source instead of the temperature transmitter (0-50 degc range) (which when in field gives 0-10v output).

scaling is 0-10v scaled to 0-4095 like the pot scaling in te previous rung.. any reason why there is no response.. please advice.. ofcourse.. I checked it.. the supply is switched on.. hah.. many thanks. -ragsncl
 
You don't have to setup the watchdog. It's there by default. If you were jumping back, it was obviously for a long period of time, therefore, it doesn't really matter what the timer value is...

As 3TO3 is right now, you're still going to have issues. Delete Rung 12. Take the conditional out of Rung 13. Delete the rungs with the JMPs -- 15 and 17. You don't need them.

The only conditionals you need are on those DUTY bits. You don't necessarily need to conditionally scan the inputs. And you NEVER want to jump backwards... ever. (As a matter of fact, in 20 years in this business, I can't think of one program I've ever written that had a JMP...)

I think for you to understand what's happening here, you need to better understand the PLC scan. PLCs scan top-to-bottom, every scan. When it encounters a jump, it's going to perform that jump within the scan. If the program cannot be scanned within the watchdog timer value, it's going to fault. If your JMP is going into a backwards loop, the scan will not be completed.
 
Remove B3:5/1 on rung 12. What are you trying to accomplish with that logix?(rungs 14,15,16)
The subroutine did not cause your watchdog problem.
 
Hi Mickey,
Rung 12- scaling the pot

Rung 13- scaling the temp transmitter

Rung 14- if the scaled the temp transmitter o/p is less than the pot output go to rung 12 and scan again for any change in temperature.

rung 15 if temp transmitter value is more than the pots, then sub them and the out is stored in n3.

rung 16 - I dont need it beacuse I have already done the comparison in rung 14

The program runs well with no errors so far. no more watchdog errors after removing the subroutine, jmp, labels.
 
Hi Mickey,
Rung 12- scaling the pot

Rung 13- scaling the temp transmitter

Rung 14- if the scaled the temp transmitter o/p is less than the pot output go to rung 12 and scan again for any change in temperature.

rung 15 if temp transmitter value is more than the pots, then sub them and the out is stored in n3.

rung 16 - I dont need it beacuse I have already done the comparison in rung 14

The program runs well with no errors so far. no more watchdog errors after removing the subroutine, jmp, labels.

I still don't see the need for conditions on rung 12. But if it gives you what you want then.....
 
Lemme guess -- your background is in PC-programming. PC programs do NOT function like PLC programs.

Take B3:5/1 out of rung 12. Period... you don't need it at all. It's going to be scanning that input many times every second... top to bottom, every time. It won't jump back to rung 12 from rung 14 or rung 16 -- that's what you were doing with the JMP/LBL, and that is what was causing the watchdog fault.

Every scan, it scans rung 1, then rung 2, then rung three, then rung 4, ... until it hits the end, then it starts over. Unless you do a backwards jump from 14 to 12, then it goes 11 - 12 - 13 - 14 - 12 - 13 - 14 - 12 - 13 - 14 -... oops, watchdog fault... A backwards jump is usually the equivalent to an infinite loop in upper level programming languages.

Every scan it will scale your two inputs. Every time!

Then, every scan it will evaluate the difference. Then, every scan, it will evaluate the DUTY bits according to that difference.
 

Similar Topics

Hi Everyone. Not posted on here for a long time, but I am hoping someone can help me. I am doing a differential pressure calculation in a L27ERM...
Replies
1
Views
20
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
80
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
170
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
139
hello, I'm a student and for my final grade I have to repare a sepro robot. the only problem I have for now is that i have an error code 3...
Replies
0
Views
35
Back
Top Bottom