IL

Instruction List (IL) is een tekstuele programmeertaal voor PLC’s gebaseerd op een assemblerachtige instructiestructuur. De taal maakte onderdeel uit van de oorspronkelijke IEC 61131-3 standaard voor industriële automatisering en werd gebruikt voor compacte, efficiënte en laagdrempelige PLC-programmering binnen Industriële Automatisering en Proces Automatisering.

IL werd ontworpen voor:

  • Snelle logische verwerking
  • Compacte PLC-programma’s
  • Lage geheugenbelasting
  • Directe hardwarebesturing
  • Deterministische uitvoering

Hoewel IL historisch zeer populair was, is de taal in recente versies van IEC 61131-3 officieel deprecated verklaard vanwege beperkte leesbaarheid en onderhoudbaarheid ten opzichte van modernere talen zoals:

Toch wordt IL nog steeds aangetroffen binnen legacy PLC-omgevingen, oudere SCADA-systemen en industriële installaties met lange lifecycles.


⚙️ Wat is Instruction List

IL is een tekstgebaseerde taal opgebouwd uit eenvoudige instructies die sequentieel worden uitgevoerd.

De structuur lijkt sterk op assembly-programmering.

Voorbeeld:

LD StartAND NOT StopST Motor

Betekenis:

Instructie Functie
LD Load
AND Logische EN
OR Logische OF
NOT Negatie
ST Store output

De instructies worden regel voor regel verwerkt door de PLC-runtime.


🧱 Structuur van IL-programma’s

Een IL-programma bestaat uit:

  • Operaties
  • Operanden
  • Labels
  • Sprongen
  • Geheugenlocaties

Voorbeeld:

LD SensorAND Pressure_OKST Pump

De accumulator-gebaseerde verwerking vormt de kern van IL.


🔄 Accumulator-gebaseerde werking

IL werkt meestal met een interne accumulator.

Proces:

LD Input↓Accumulator gevuld↓AND volgende waarde↓Resultaat opslaan

Dit model lijkt op klassieke CPU-registerverwerking.


⚡ Veelgebruikte instructies

Load instructies

Voor laden van waarden:

Instructie Functie
LD Load
LDN Load NOT

Voorbeeld:

LD StartButton

Logische instructies

Voor boolean logica:

Instructie Functie
AND EN
OR OF
XOR Exclusieve OF
NOT Negatie

Voorbeeld:

LD Sensor1AND Sensor2ST Output

Store instructies

Voor opslaan van resultaten:

Instructie Functie
ST Store
STN Store NOT

Jump instructies

Voor programmasturing:

Instructie Functie
JMP Jump
JMPC Conditional jump
RET Return

Hiermee konden state machines en sequenties worden gebouwd.


⏱️ Cyclische uitvoering

Net als andere PLC-talen werkt IL cyclisch.

PLC scan:

Inputs lezen    ↓IL-code uitvoeren    ↓Outputs schrijven    ↓Nieuwe scan

Belangrijke eigenschappen:

Parameter Typische waarde
Scan time Zeer laag
CPU-belasting Efficiënt
Determinisme Hoog

Door de compacte instructies was IL zeer performant op oudere PLC-hardware.


🏭 IL binnen industriële automatisering

Historisch werd IL gebruikt in:

  • Productiemachines
  • Procesinstallaties
  • Embedded PLC-systemen
  • Energiecentrales
  • Gebouwautomatisering

Toepassingen:

  • Interlocks
  • Start/stop logica
  • Machinecycli
  • Alarmverwerking
  • Basisprocesregeling

🔌 Directe hardwarebesturing

IL bood relatief directe controle over PLC-resources.

Voordelen:

  • Lage overhead
  • Snelle uitvoering
  • Efficiënt geheugengebruik

Dit was belangrijk voor oudere PLC-generaties met:

  • Beperkt RAM
  • Lage CPU-capaciteit
  • Kleine programmaopslag

🧠 IL versus Ladder Logic

Eigenschap IL Ladder Logic
Leesbaarheid Lager Hoog
Compactheid Hoog Lager
Performance Hoog Goed
Onderhoudbaarheid Beperkt Sterk
Elektrotechnische herkenbaarheid Laag Hoog
Complexe logica Goed Gemiddeld

Onderhoudsteams gaven vaak de voorkeur aan visuele talen.


🔄 IL versus Structured Text

Eigenschap IL ST
Abstractieniveau Laag Hoog
Leesbaarheid Beperkt Goed
Dataverwerking Beperkt Sterk
Complexe algoritmen Moeilijk Uitstekend
Hardware-efficiëntie Hoog Goed

Structured Text heeft IL grotendeels vervangen binnen moderne PLC-platformen.


⚡ Performance-eigenschappen

IL stond bekend om:

  • Zeer snelle uitvoering
  • Lage geheugendruk
  • Compacte code
  • Deterministisch gedrag

Voordelen voor oudere hardware:

  • Kleine programmagrootte
  • Minder CPU-belasting
  • Snellere scantijden

Dit was belangrijk binnen realtime OT-processen.


🛡️ IL binnen safety-systemen

IL werd ook toegepast binnen oudere Safety PLC’s.

Voorbeelden:

  • Veiligheidsinterlocks
  • Shutdown-logica
  • Noodstopfuncties
  • Machinebeveiliging

Belangrijke normen:

Norm Beschrijving
IEC 61508 Functionele veiligheid
IEC 61511 Procesveiligheid
ISO 13849 Machineveiligheid

Tegenwoordig worden safety-applicaties vaker ontwikkeld in modernere talen vanwege betere validatie en onderhoudbaarheid.


📡 Integratie met SCADA en HMI

IL-programma’s leveren procesdata aan:

Communicatie verloopt via:


🧪 Diagnostiek en troubleshooting

Een belangrijk nadeel van IL is beperkte leesbaarheid.

Voorbeeld:

LD AAND BOR CST D

Bij grotere programma’s wordt troubleshooting complex.

Problemen:

Probleem Oorzaak
Slechte leesbaarheid Lage abstractie
Moeilijke debugging Geen visuele flow
Onderhoudsproblemen Legacy code
Programmeerfouten Complexe jumps

⚠️ Veelvoorkomende ontwerpfouten

Overmatig gebruik van jumps

Complexe sprongstructuren veroorzaken spaghetti-code.


Slechte documentatie

Veel IL-systemen missen duidelijke commentaren.


Hardware-afhankelijk ontwerp

Sommige implementaties zijn sterk vendor-specifiek.


Geen modulaire structuur

Oudere IL-programma’s zijn vaak monolithisch opgebouwd.

Best practices:

  • Duidelijke labels
  • Commentaarregels
  • Modulaire routines
  • Beperkte jumps

🔐 Cybersecurity-risico’s

Legacy IL-systemen vormen een verhoogd cybersecurityrisico.

Risico’s:

  • Verouderde PLC’s
  • Geen moderne authenticatie
  • Legacy engineeringsoftware
  • Moeilijke patchbaarheid

Aanvallen kunnen:

  • Outputs manipuleren
  • Proceslogica wijzigen
  • Veiligheidsfuncties verstoren

Bekende OT-malware zoals Stuxnet demonstreerde hoe PLC-programma’s aangepast kunnen worden zonder directe zichtbaarheid.


🧱 Securitymaatregelen

Belangrijke maatregelen:

Maatregel Doel
Netwerksegmentatie Isolatie
Application Whitelisting Softwarecontrole
MFA Authenticatie
Logging Auditing
Patchmanagement Vulnerability reduction
Backup Recovery
Version Control Wijzigingsbeheer

Legacy PLC-systemen vereisen vaak aanvullende compensating controls.


🌐 Waarom IL verdween

IEC 61131-3 heeft IL officieel deprecated verklaard.

Belangrijkste redenen:

  • Slechte leesbaarheid
  • Moeilijk onderhoud
  • Beperkte schaalbaarheid
  • Hogere foutgevoeligheid
  • Moeilijke validatie

Moderne automatisering vraagt om:

  • Modulaire architecturen
  • Betere debugging
  • Complexe datahandling
  • Softwareherbruikbaarheid

Daarom werden talen zoals ST belangrijker.


🏗️ IL binnen legacy OT-omgevingen

Ondanks de veroudering draait IL nog steeds in:

  • Oude productielijnen
  • Energie-infrastructuur
  • Waterinstallaties
  • Legacy machinebesturingen

Migratie is vaak complex vanwege:

  • Downtime-risico
  • Vendor lock-in
  • Onvoldoende documentatie
  • Oude hardware

IL blijft daardoor relevant binnen Lifecycle Management van OT-systemen.


📈 Voordelen van IL

Belangrijkste voordelen:

  • Compacte code
  • Hoge performance
  • Lage geheugendruk
  • Deterministisch gedrag
  • Directe hardwarecontrole

⚡ Beperkingen

Belangrijkste beperkingen:

  • Lage leesbaarheid
  • Moeilijke troubleshooting
  • Beperkte Schaalbaarheid
  • Weinig visuele structuur
  • Moeilijk onderhoudbaar

Daarom wordt IL tegenwoordig zelden nog gebruikt voor nieuwe projecten.