Faulting a AB L33 PLC

bdossantos

Member
Join Date
Mar 2018
Location
California
Posts
67
Need some assistance. I am testing out a heart beat code and I want to fault the processor so I can check from the SCADA system that the PLC is Faulted and Alarms me. Thank you.
 
If that doesn't work, use indexed addressing to access or write to an element or an array that doesn't exist.
 
Divide by zero and a negative timer preset are Minor faults in ControlLogix.

But an out-of-bounds pointer in an Array tag index, like MyArray[100] in an array whose elements are [0] through [99], will definitely Major Fault the CPU.
 
Divide by zero and a negative timer preset are Minor faults in ControlLogix.

But an out-of-bounds pointer in an Array tag index, like MyArray[100] in an array whose elements are [0] through [99], will definitely Major Fault the CPU.

If you put a negative number in a timer preset and make it true, it will major fault the controller.
 
Thanks for that clarification about the Timer with a negative preset.

Just moving the negative integer into the Timer's .PRE does not fault the controller, but executing the Timer with a negative .PRE value does.

The out-of-range array pointer is the one that usually catches me in the wild.
 
I do work in a plant that has over 1000 PLCs all on the same Ethernet. So we use code that on first scan gets the IP address from the Ethernet module and if it doesn't match what the program has as a setpoint, it jumps backwards to fault the PLC.
 
Thanks for that clarification about the Timer with a negative preset.

Just moving the negative integer into the Timer's .PRE does not fault the controller, but executing the Timer with a negative .PRE value does.

The out-of-range array pointer is the one that usually catches me in the wild.

I am pretty certain that this is not always true - if the array is part of a UDT-scoped tag, and there is something after the array in the UDT, then the "out-of-bounds" crash doesn't work.

Indexed instructions simply check that the destination address calculated is consistent with the tag size, meaning the UDT tag, not the array "member".
 
I do work in a plant that has over 1000 PLCs all on the same Ethernet. So we use code that on first scan gets the IP address from the Ethernet module and if it doesn't match what the program has as a setpoint, it jumps backwards to fault the PLC.

Could you share a sample of that? We have the same issue as many of the lines are very similar but not exactly the same and sometimes people download the wrong program to the wrong controller and it's close enough that most times it works until we find 1 or 2 small operations are not working and by then sometimes we have ran a lot of bad production that has to be scrapped.
 

Similar Topics

Hey Everyone, After reading a lot on this forum and elsewhere I see not many are fond of the 1794-VHSC module. I can see to a degree as I was...
Replies
3
Views
144
During the "no parts available" era of 2020-2022, we were told that a 1756-OBV8S would have better delivery than PointIO safety modules that we...
Replies
6
Views
1,098
Hi everyone, I recently put in a 1769-AENTR, and where it is installed has had a couple power outages. Every time when the PLC comes back online...
Replies
3
Views
682
In the past I have been familiar with the 1769-L35E series CompactLogix PLCs by Allen Bradley. For those PLCs (firmware version 20.19), when the...
Replies
7
Views
1,143
We programmed a Micrologix 1500 we had left over. We forgot to insert the memory module. So we powered down, inserted the memory module and...
Replies
6
Views
4,199
Back
Top Bottom