SFC
Sequential Function Chart (SFC) is een grafische programmeertaal voor PLC’s en industriële besturingssystemen volgens de IEC 61131-3 standaard. De taal is ontworpen voor sequentiële procesbesturing waarbij processen worden opgesplitst in stappen, transities en acties.
SFC wordt veel toegepast binnen Proces Automatisering, machinebouw, batchsystemen en complexe industriële installaties waar processen een duidelijke volgorde van toestanden doorlopen.
Typische toepassingen:
- Batchprocessen
- Machinecycli
- Start-up procedures
- Shutdown-sequenties
- Receptbeheer
- Robotsequenties
- Procesautomatisering
SFC combineert visuele processtructuren met andere IEC 61131-3 talen zoals:
Daardoor vormt SFC vaak de hogere orkestratielaag boven onderliggende logica en regeltechniek.
⚙️ Wat is SFC
SFC beschrijft processen als een reeks opeenvolgende stappen.
De basiscomponenten zijn:
| Component | Functie |
|---|---|
| Step | Processtatus |
| Transition | Voorwaarde tussen stappen |
| Action | Uit te voeren logica |
| Branch | Parallelle paden |
| Jump | Sprong naar andere stap |
Basisvoorbeeld:
Start ↓Motor Starten ↓Transportband Actief ↓Product Detecteren ↓Stop
Elke stap vertegenwoordigt een processtatus.
🧱 Structuur van een SFC-programma
Een SFC bestaat uit:
- Initiële stappen
- Actieve stappen
- Transities
- Acties
- Sequenties
Voorbeeld:
[Step 1] ↓ Condition TRUE[Step 2] ↓ Condition TRUE[Step 3]
Een overgang vindt alleen plaats wanneer de transitievoorwaarde waar is.
🔄 Steps
Een step vertegenwoordigt een toestand binnen het proces.
Voorbeelden:
| Step | Functie |
|---|---|
| Idle | Wachten |
| Fill Tank | Vullen |
| Heat Process | Verwarmen |
| Mixing | Mengen |
| Drain | Leegmaken |
Een step kan:
- Acties uitvoeren
- Outputs activeren
- Timers starten
- Interlocks evalueren
⚡ Transitions
Transitions bepalen wanneer het proces doorgaat naar een volgende step.
Voorbeeld:
TankLevel >= 90%
Of:
TimerExpired = TRUE
Transitions zijn cruciaal voor gecontroleerde procesflows.
🎛️ Actions
Actions bevatten de daadwerkelijke besturingslogica.
Voorbeelden:
- Motor starten
- Klep openen
- Alarm activeren
- PID-setpoint wijzigen
Actions worden vaak geschreven in:
SFC functioneert dus vaak als bovenliggende sequentielaag.
🏭 SFC binnen industriële automatisering
SFC wordt veel gebruikt binnen processen met vaste volgordes.
Batchprocessen
Binnen batchinstallaties:
Vullen ↓Mengen ↓Verwarmen ↓Koelen ↓Leegmaken
Veel toegepast binnen:
- Chemie
- Food & beverage
- Farmacie
- Waterzuivering
Machinebesturing
Voor:
- Productiecycli
- Robotsequenties
- Verpakkingsmachines
- Assemblagelijnen
Procesinstallaties
Voor:
- Start-up procedures
- Shutdown-sequenties
- CIP-processen
- Veiligheidsprocedures
🧠 Parallelle sequenties
SFC ondersteunt parallelle processtromen.
Voorbeeld:
┌→ Conveyor 1Start ──┤ └→ Conveyor 2
Hierdoor kunnen meerdere processen gelijktijdig verlopen.
Toepassingen:
- Parallelle productielijnen
- Multi-tank installaties
- Robotcoördinatie
🔁 Alternatieve branches
SFC ondersteunt conditionele procespaden.
Voorbeeld:
IF ProductType = A → Route AELSE → Route B
Hierdoor ontstaan flexibele productieprocessen.
⏱️ Timing en realtime gedrag
SFC draait binnen de cyclische PLC-scan.
Belangrijke parameters:
| Parameter | Typische waarde |
|---|---|
| Scan time | 1-100 ms |
| Transition latency | Laag |
| Determinisme | Hoog |
| Jitter | Beperkt |
Realtime gedrag blijft belangrijk voor:
- Machineveiligheid
- Synchronisatie
- Processtabiliteit
⚙️ State machines en SFC
SFC lijkt sterk op state machine-modellen.
Elke step vertegenwoordigt:
- Een toestand
- Een processtatus
- Een operationele fase
Voordelen:
- Overzichtelijke processtructuur
- Duidelijke statusmodellen
- Eenvoudige troubleshooting
- Visuele procesflows
🔌 Integratie met PLC-architecturen
SFC wordt vaak gecombineerd met andere programmeertalen.
Typische architectuur:
| Laag | Technologie |
|---|---|
| Sequenties | SFC |
| Logica | Ladder Logic |
| Regeltechniek | FBD |
| Complexe algoritmen | ST |
Dit hybride model is standaard binnen moderne PLC-platformen.
📡 Integratie met SCADA en HMI
SFC-processen leveren statusinformatie aan:
Typische visualisaties:
| Data | Gebruik |
|---|---|
| Actieve step | HMI |
| Batchstatus | MES |
| Alarmstatus | SCADA |
| Proceshistorie | Historian |
Operators kunnen realtime zien in welke procesfase een installatie zich bevindt.
🛡️ Veiligheidsfuncties
SFC wordt regelmatig toegepast binnen veiligheidsprocedures.
Voorbeelden:
- Controlled shutdown
- Emergency sequences
- Veiligheidsinterlocks
- Opstartvalidaties
In safety-systemen gelden aanvullende eisen conform:
| Norm | Beschrijving |
|---|---|
| IEC 61508 | Functionele veiligheid |
| IEC 61511 | Procesveiligheid |
| ISO 13849 | Machineveiligheid |
| IEC 62061 | Safety systems |
Veiligheidskritische sequenties draaien vaak op een Safety PLC.
⚡ SFC binnen batch control
SFC sluit goed aan op ISA-88 batcharchitecturen.
Voorbeelden:
- Receptstappen
- Batchstatussen
- Proceduremanagement
- Unit phases
Veel batchsystemen combineren:
🧪 Diagnostiek en troubleshooting
SFC biedt sterke visuele diagnostiek.
Operators kunnen direct zien:
- Actieve stappen
- Vastgelopen transities
- Processtatus
- Sequentiefouten
Veelvoorkomende problemen:
| Probleem | Mogelijke oorzaak |
|---|---|
| Vastgelopen step | Transition nooit TRUE |
| Oscillerende sequentie | Slechte state logica |
| Onverwachte sprongen | Foutieve branches |
| Race conditions | Parallelle logica |
| Deadlock | Onjuiste transities |
⚠️ Veelvoorkomende ontwerpfouten
Te complexe sequenties
Grote monolithische flows worden onoverzichtelijk.
Slechte transitionlogica
Onvoldoende validatie veroorzaakt instabiliteit.
Geen foutafhandeling
Fault states ontbreken vaak.
Te veel parallelle branches
Parallelle processen verhogen complexiteit sterk.
Best practices:
- Modulaire sequenties
- Duidelijke state names
- Fault handling
- Timeout-beveiliging
- Heldere transitievoorwaarden
🔐 Cybersecurity-risico’s
SFC-programma’s vormen een belangrijk doelwit binnen OT-aanvallen.
Aanvallers kunnen:
- Procesflows manipuleren
- Shutdowns blokkeren
- Veiligheidsstappen overslaan
- Productie verstoren
Risico’s:
- Ongeautoriseerde engineering
- Malware
- Manipulatie van PLC-code
- Insider threats
Geavanceerde malware zoals Stuxnet demonstreerde hoe processequenties onzichtbaar aangepast kunnen worden.
🧱 Securitymaatregelen
Belangrijke beveiligingsmaatregelen:
| Maatregel | Doel |
|---|---|
| Netwerksegmentatie | Isolatie |
| Application Whitelisting | Softwarecontrole |
| MFA | Authenticatie |
| Logging | Auditing |
| Version Control | Wijzigingsbeheer |
| Patchmanagement | Kwetsbaarheidsreductie |
| Backup | Recovery |
PLC-engineeringstations vallen vaak onder streng Change Management.
🌐 SFC binnen Industrie 4.0
Binnen Industrie 4.0 blijft SFC belangrijk voor procesorkestratie.
Nieuwe toepassingen:
- Virtuele PLC’s
- Digitale twins
- AI-gestuurde workflows
- Edge orchestration
- Flexibele productie
SFC ondersteunt de overgang naar softwaregedefinieerde OT-architecturen.
📈 Voordelen van SFC
Belangrijke voordelen:
- Zeer overzichtelijke processtructuren
- Sterk voor sequentiële processen
- Goede troubleshooting
- Heldere statusmodellen
- Modulair ontwerp
- Goede batchondersteuning
⚡ Beperkingen
Belangrijkste beperkingen:
- Minder geschikt voor complexe berekeningen
- Grote flows kunnen complex worden
- Parallelle logica wordt snel onoverzichtelijk
- Minder geschikt voor puur continue Regeling
Daarom wordt SFC meestal gecombineerd met:
