First Scan Bit: Beckhoff

First Scan Bit: Beckhoff

If you are coming from the Allen-Bradley world, you are likely very comfortable with the S:FS (First Scan) bit. It’s a staple for initializing logic, resetting counters, or clearing buffers on startup.

When you transition to Beckhoff TwinCAT, you won’t find a system bit named exactly "First Scan" in the global variable list. This often leads to the question: How do I run logic exactly once when the PLC starts?

Here is the standard way to achieve this in TwinCAT 3 (IEC 61131-3). beckhoff first scan bit

Physical outputs (via PA_ or AT%Q*) often keep their previous value through a restart unless explicitly cleared.

IF FirstScan THEN
    // Force all digital outputs OFF
    myDigitalOutput := FALSE;
// Set analog output to 0V/0mA
myAnalogOutput := 0;
// Disable drives
driveEnable := FALSE;

END_IF

  • Software-driven flag (common)

  • Edge-detected approach

  • Supervisor/Task-based initialization