Contacts (input instruction)

AFI: Always False Instruction

Never passes power. Disables the rest of the rung without deleting it.

Also called: disable rung, comment out a rung.

AFI()

What it does

AFI is how you take a rung out of service without losing it. Drop it into the rung condition and everything to its right stops being driven, while the logic stays on screen for the next person to read.

It is a commissioning and troubleshooting tool rather than a design one. If an AFI is still in a program at handover, either the rung should be deleted or the AFI should not be there.

A rung you can run

Take one rung out of service during commissioning

[object Object]
AFI()XIC(Spare_Input)OTE(Spare_Output)

The rung is preserved and readable, and it cannot energise anything.

Run this rung in the simulator

What it is called on other controllers

PlatformEquivalent
Rockwell (Studio 5000)AFI
Siemens (TIA Portal)No direct equivalent; a contact on a permanently false bit is used instead

Common mistakes

  • Leaving an AFI in a shipped program. A rung that looks correct and cannot run is the hardest kind of bug to find, because reading the logic tells you nothing is wrong.
  • Using AFI on a rung that drives a latch. Disabling the rung does not clear the latched bit; it just stops anything from setting it again.

Related instructions

All ladder logic instructions