AB SLC "Always on" status bit


Join Date
Dec 2004
Is there a status bit on SLCs which is always on (or off for that matter). If memory serves me, Mitsubishi has such a feature (though its been a long time).

I recognize (and use) that a pair of rungs, early in file 2 thus:

---------------------() Always On
-]/[-----------------() Always Off

... would (and does) solve the problem, but it feels a bit inelegant.
A SLC will allow a branch without an instruction, which will do what you are talking about.

It also seems inelegant.

The SLC is lacking the AFI (always false instruction), but the PLC5 and Controlgix do have it.
I usually have two rungs at the top of a program with comments to not change or remove them:



Throughout the program I use the OPEN as a placeholder and to "dummy" stuff out of the program. The SHORT can also be used as a placeholder or to branch around sections of rungs that you want to eliminate.
On extremely large programs (FANUC 9030), I would put an always on at the beginning of the rungs. During testing, startup, etc, I could toggle these to always off, if need be. Some times I left them in, but usually I would convert some to MCR functions and others would disapere with the "final" run program after starting and checking the machine.

I never considered them inelegant, just plain useful.

I was surprised to find that few people knew about them. Whenever I used them I always had to tell someone what they were.

Just to point out a subtle but important difference between the AFI instruction and inserting a contact that is OFF in the beginning of the rung.

From the help file:
This input instruction disables its rung when inserted in the condition side of the rung. Use for debugging programs and for temporarily deactivating a rung that will be needed later.

This will disable scanning of the rung after the AFI instruction. If output is ON it will stay ON.
         condition     output
--[AFI]---||------------( )

This will scan the rung, and as the initial condition is "OFF" then it will set the output OFF in any case.
   OFF   condition     output
----||----||------------( )

To achieve "AFI" functionality in the SLC you have to jump past rungs that you want to deactivate.
Originally posted by JesperMP
This will disable scanning of the rung after the AFI instruction. If output is ON it will stay ON.
         condition     output
--[AFI]---||------------( )

Not in my experience!
Gerry, you are absolutely right.

Somehow it has crept into my memory that "AFI disables the rung" and I cannot clear this erronous information. So it pops up every now and then.
The information in the help file is simply wrong.
The name "Always False Instruction" is correct.

Thanks for pointing it out.
I'm with Ken ... set up one bit and use xic and xio as required. 'Course if it's confusing that
not "always off" = "always on", then back away slowly from the code.
JesperMP said:
Somehow it has crept into my memory that "AFI disables the rung" and I cannot clear this erronous information. So it pops up every now and then.

The name "Always False Instruction" is correct.

Your quote from the help file doesn't say what you said.

You may be thinking of a dis-abled subroutine.
I have always used an "always on" bit at the start of every rung. Two reasons
1) if you wish to add a bit to the start of the rung it is easy to move the whole lot right and not have to delete a number of horizontal line segments, draw in vertical lines etc.
2) When commissioning, it is very easy to turn the always on to always off by just putting a slash through it and this then disables the rung.

I am referring to Omron here and it is very easy to do point 2. Some software really makes life much more difficult.

You can also use an "always off" bit and put a slash through it. Same effect.
personally i prefer to use 16-bit integers as group of 'debug'
bits and clear them all on first scan using FLL. this makes
testing much faster because you can simply toggle bit instead
if editing rung.

also, diferent rungs would have different bit so they are
independant (you can always have few rungs use same bit) and
they can have individual comments which makes things easier.
i use it often to enable new code when testing outcome on
running machine. if the new code doesn't perform as expected,
toggle bit back and let them run old veresion until new one
is working as expected.

things that are permanent have their debug bit removed and
if you forget to set something back, it's enough to power down
machine to disable tested code. next time you are working on
something it's easy to see what is not finished by looking
for used debug bits.

one thing i really don't like about AFI is that it is instruction
and not tag. this makes search very tedious (have to change dozen
setting in Find which takes blody ages). the guy who invented AFI
should be shot, dragged by a racing car and then beaten with an
ugly stick...

but then again, that's just how i feel about it :D
Last edited:

Similar Topics

I’m attempting to send a temperature from a SLC-5/02 to an EZiMarquee display. The vendor said to use a MSG instruction to send the data to the...
Hello all. I have a few SLCs in my plant and of late we've seen a weird issue: The system will be running normally and then randomly the outputs...
I am working on setting up a Prosoft Datalogger model PLX51-DLplus-232. This unit will be collecting data from a SLC 5/05 on the DB9 port set to...
I have a redundant ControlLogix being set up. This program reads a value from a remote site which happens to be SLC PLC. Rockwell mentions SLC...
Hello, I have a ControlLogix redundant controller being set up. The program reads a value from a remote site which hosts a SLC PLC. Rockwell...
Top Bottom