Codesys | Sfc Example
At 3:47 PM, a bearing seized on the acid bath agitator. The temperature spiked to 110°C. Acid_Temp > 95C triggered a pre-programmed fault.
Lena needed an .
In CODESYS SFC, she right-clicked Step 20 and selected . She created an Action named Acid_Emergency . She set its qualifier to N (Non-Stored, executes while step is active) and S (Set/Stored for emergency).
The problem was chaos. Operators would skip steps, hit "EMERGENCY RESET" mid-dip, or manually open the drain while the coil was submerged. The old ladder logic was a 40-rung monster of interlocking seals that no one understood. codesys sfc example
Acid_Drain_Valve := FALSE; // Reset only when safe Emergency_Alerter := FALSE; Three weeks later, the line went live.
The SFC was in with a coil halfway submerged.
Lena shook her head. "No. We need an SFC." She opened CODESYS and created a new POU (Program Organization Unit). She chose Sequential Function Chart (SFC) . No ladder. No structured text loops. Just pure, visual, time-tested sequence logic. At 3:47 PM, a bearing seized on the acid bath agitator
Crane_Up := TRUE; Acid_Drain_Valve := TRUE; // SD qualifier keeps this ON Emergency_Alerter := TRUE; Inside Step 0 's Entry Action:
Then she wrote a parallel :
This is how industrial programmers think. Not just "code that runs"—but . Lena needed an
She went to the Action Definition for Step 20. Instead of putting Drain_Valve := FALSE in the step's exit action, she created a Global Action called Acid_Safety and set its qualifier to SD (Set Dominant—stays TRUE until explicitly reset).
But then... nothing.
She added a parallel to the main sequence: