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

Hi, I would like to see if anyone knows how to default a SLC 5/04 processor from User Channel 0, back to System Channel 0, in order to get online...
Has anyone used the site plc-direct.com ( Programmable Logic Controllers – PLC Supplier | PLC Direct ) for used SLC 500 items? If so what is your...
Started down the road to change from a 5/04 to 5/05 When I downloaded it gave me a few errors specifically msg bit. I am not a programmer but I'm...
I'm a real novice here so play nice but I could use some help. Would constant memory loss be a symptom of a bad CPU? How robust are these SLC...
Hello I'm needing to configure a message instruction to transfer data from a SLC-505 PLC to another SLC-505 PLC. I'm having issues getting data...
Top Bottom