Wat is CODESYS?
CODESYS (Controller Development System) is een fabrikantonafhankelijk softwareplatform waarmee u PLC-programma’s volgens IEC 61131-3 ontwikkelt, test en uitvoert op hardware van honderden verschillende fabrikanten. Het bestaat uit een gratis engineeringomgeving en een runtime (CODESYS Control) die op controllers, industriële pc’s, embedded systemen en als Soft PLC of container draait. Meer dan 400 apparaatfabrikanten bouwen hun besturingen op CODESYS, waardoor het een van de grootste ecosystemen binnen de industriële automatisering is.
CODESYS wordt gebruikt in machinebouw, procesindustrie, gebouwautomatisering, water en energie en in IIoT-omgevingen. Omdat het platform klassieke besturing combineert met motion control, visualisatie, OPC UA, MQTT en edge computing, speelt het een sleutelrol in de verschuiving naar softwaregedefinieerde automatisering en OT-convergentie.
🧠 Wie ontwikkelt CODESYS en hoe is het ontstaan?
CODESYS is ontwikkeld door het Duitse bedrijf 3S-Smart Software Solutions, in juli 1994 opgericht door Dieter Hess en Manfred Werner in Kempten. Versie 1.0 verscheen nog datzelfde jaar. Sinds juni 2020 heet het bedrijf CODESYS GmbH, onderdeel van de CODESYS Group met ruim 250 medewerkers, vooral software-engineers.
| Mijlpaal | Betekenis |
|---|---|
| 1994 | Oprichting 3S en eerste versie CODESYS 1.0 |
| CODESYS V2.3 | Lange tijd de standaard in de machinebouw; nog veel in het veld aanwezig |
| CODESYS V3 / V3.5 | Nieuwe architectuur met objectoriëntatie, apparaatbeschrijvingen en de CODESYS Store; niet compatibel met V2 |
| 2020 | Naamswijziging naar CODESYS GmbH |
| April 2023 | Versie 3.5.19.0 dicht een reeks ernstige kwetsbaarheden die Microsoft vond |
| Januari 2025 | Virtuele safety-PLC (Virtual Safe Control SL) door TÜV SÜD gecertificeerd voor SIL 3 volgens IEC 61508 |
Het verdienmodel is bijzonder: de fabrikant van een besturing licenseert de CODESYS-runtime en levert zijn hardware met de bijbehorende apparaatbeschrijving. De eindgebruiker programmeert al die merken vervolgens in dezelfde omgeving.
🔧 Uit welke onderdelen bestaat CODESYS?
| Onderdeel | Functie |
|---|---|
| CODESYS Development System | Gratis IEC 61131-3 engineeringomgeving (IDE) voor Windows |
| CODESYS Control | De runtime: voert de PLC-logica uit op een apparaat, op Windows, Linux of een Raspberry Pi |
| CODESYS Virtual Control SL | Runtime als container voor gevirtualiseerde besturing |
| CODESYS SoftMotion | Motion control, CNC en robotkinematica |
| CODESYS Visualization | Geïntegreerde HMI: TargetVisu op het apparaat, WebVisu in de browser |
| CODESYS Safety | Componenten voor safety-besturingen tot SIL2 of SIL3 volgens IEC 61508 |
| Professional Developer Edition | Add-ons voor UML, versiebeheer en statische codeanalyse |
| CODESYS Automation Server | Cloudplatform voor centraal beheer en uitrol van projecten |
| CODESYS Edge Gateway | Veilige verbinding tussen IDE of server en besturingen op afstand |
De architectuur is gelaagd. Op het engineeringstation draait de IDE. Die communiceert via de CODESYS Gateway met de runtime. De runtime bevat een task scheduler, geheugenbeheer, IO-afhandeling, protocolstacks, een watchdog en een debug-engine voor online diagnose. Daaronder liggen de veldbussen naar sensoren, actuatoren en drives. Binnen een Soft PLC-architectuur functioneert de runtime zo als softwarematige PLC.
💻 Welke programmeertalen ondersteunt CODESYS?
| Taal | Typische toepassing |
|---|---|
| Ladder Diagram (LD), zie Ladder Logic | Elektrische en discrete logica |
| Function Block Diagram (FBD) | Regel- en proceslogica |
| Structured Text (ST) | Algoritmes, berekeningen, datahandling |
| Sequential Function Chart (SFC) | Stapprocessen en sequenties |
| Continuous Function Chart (CFC) | Vrij geplaatste blokken, geen IEC-taal maar een CODESYS-uitbreiding |
| Instruction List (IL) | Legacy; in editie 3 van IEC 61131-3 (2013) als verouderd aangemerkt en in editie 4 (2025) geschrapt; CODESYS ondersteunt het nog voor bestaande projecten |
Structured Text wint terrein door betere schaalbaarheid, herbruikbaarheid en de objectgeoriënteerde uitbreidingen (klassen, methoden, interfaces) uit editie 3 van de norm. Vooral bij motion control en IIoT-koppelingen wordt veel in ST geprogrammeerd.
⏱️ Hoe realtime is de CODESYS-runtime?
De runtime voert taken cyclisch of op events uit. Het realtime gedrag hangt af van het host-besturingssysteem, CPU-prioriteiten, hypervisor-configuratie, netwerkbelasting en de gebruikte veldbus. Voor deterministische besturing gebruikt men een Linux-kernel met RT-Preempt of een RTOS, toegewezen CPU-cores, TSN of realtime Ethernet en hardware-timestamping.
| Toepassing | Typische cyclustijd | Aandachtspunt |
|---|---|---|
| Servo- en multi-assige motion via EtherCAT | 1-4 ms | Lage jitter en latency essentieel |
| Machinebesturing, discrete logica | 5-20 ms | Taakprioriteiten correct instellen |
| Procesregelingen, pompen, HVAC | 50-200 ms | Stabiliteit belangrijker dan snelheid |
| Visualisatie, MQTT-publicatie | 100 ms - enkele seconden | In aparte, lage prioriteitstaak |
Dit zijn praktijkwaarden; de haalbare cyclustijd hangt af van CPU, programmaomvang en I/O-volume.
🔌 Welke industriële protocollen ondersteunt CODESYS?
| Categorie | Protocollen |
|---|---|
| Industrieel Ethernet | EtherCAT, ProfiNET, Ethernet IP, Modbus TCP |
| Klassieke veldbussen | Profibus, CANopen, IO-Link |
| Serieel | Modbus RTU over RS-232 of RS-485 |
| IT/IIoT | OPC UA server en client, MQTT, HTTPS, cloudbibliotheken voor AWS en Azure |
| Gebouwen | BACnet, KNX (via add-ons of bibliotheken van de hardwarefabrikant) |
| Energie | IEC 61850, DNP3 (alleen via add-ons of specifieke fabrikanten) |
Veldbusconfiguratoren zitten in de IDE, maar welke protocollen beschikbaar zijn, bepaalt de fabrikant van de besturing via licenties en hardware. Voor motion worden naast EtherCAT ook SERCOS III en Powerlink gebruikt. Hierdoor kan CODESYS functioneren als integratieplatform tussen uiteenlopende OT-systemen.
⚡ Wat kan CODESYS met motion, visualisatie en edge?
- Motion control - SoftMotion biedt positioneren, camming, gearing, interpolatie, servo-aansturing en multi-assige synchronisatie conform de PLCopen-motionfunctieblokken. Toepassingen zijn verpakkingsmachines, robotica, CNC-machines, AGV-systemen en transportsystemen.
- Visualisatie - WebVisu levert HTML5-schermen met alarmen, trending, gebruikersbeheer en bediening op afstand. Dat bespaart externe software, maar verhoogt de runtimebelasting, vergroot het aanvalsoppervlak en schaalt slecht naar grote installaties, waar een volwaardig SCADA beter past.
- Edge en IIoT - de runtime kan protocollen omzetten, data bufferen en via MQTT of OPC UA publiceren naar een Unified Namespace, historian, MES of cloudplatform. Zo ontstaat een hybride OT/IT-architectuur.
🏭 Welke fabrikanten en sectoren gebruiken CODESYS?
Veel bekende PLC-lijnen draaien op CODESYS of zijn ervan afgeleid: de AC500-besturingen van ABB (Automation Builder), EcoStruxure Machine Expert van Schneider Electric, TwinCAT van Beckhoff (dat historisch op CODESYS-technologie voortbouwt), en besturingen van WAGO, Festo, Eaton en Bosch Rexroth. In totaal gaat het om meer dan 400 fabrikanten en meer dan 100.000 eindgebruikers.
- Machinebouw - OEM’s kiezen CODESYS vanwege hardware-onafhankelijkheid, snelle engineering en motion control: één codebasis voor machines met besturingen van verschillende merken.
- Procesindustrie - batch control, pompsturing, doseersystemen en utilities, gekoppeld aan SCADA, Historian en MES.
- Gebouwautomatisering - HVAC, verlichting, toegangscontrole en energiebeheer via BACnet, KNX of MQTT.
- Water en energie - telemetrie, gemalen, pompstations en onderstations, vaak met compacte CODESYS-besturingen als RTU of datalogger.
🔄 Wat is het verschil tussen CODESYS, TIA Portal en Studio 5000?
| Kenmerk | CODESYS | TIA Portal (Siemens) | Studio 5000 (Rockwell Automation) |
|---|---|---|---|
| Hardware | Honderden merken | Alleen Siemens | Alleen Allen-Bradley |
| Licentie IDE | Gratis; runtime via hardwarefabrikant | Betaalde licentie | Betaalde licentie |
| Soft PLC / container | Control Win, Linux, Virtual Control SL | S7-1500 software controller | Beperkt (emulatie) |
| Talen | Alle IEC 61131-3 + CFC + OOP | LAD, FBD, SCL, GRAPH, STL | Ladder, FBD, ST, SFC |
| Sterk in | Machinebouw, multi-vendor, edge | Fabrieksautomatisering in Europa | Noord-Amerikaanse industrie |
Een CODESYS-project is daarmee draagbaarder dan een merkgebonden project, maar niet volledig: I/O-configuratie en fabrikantbibliotheken blijven apparaatspecifiek.
🧩 Kan CODESYS gevirtualiseerd of in containers draaien?
Ja. CODESYS Virtual Control SL levert de runtime als container-image op basis van een OSADL-image, te draaien met Docker of Podman op Debian, Red Hat Enterprise Linux of Yocto, op x86-64, ARM en ARM64. Voor realtime gedrag zijn een RT-Preempt-kernel (versie 6.1 of hoger), geschikte BIOS-instellingen en een systeem zonder grafische omgeving nodig; licenties lopen via een netwerklicentieserver. CODESYS Control Win kan daarnaast in een klassieke virtuele machine draaien. Dit valt onder virtualisatie van OT.
Voordelen zijn eenvoudige provisioning, snapshots, centrale uitrol, schaalbaarheid en snel herstel. Risico’s zijn realtime-degradatie, extra latency door de hypervisor, gedeelde resources en één hostfout die meerdere besturingen tegelijk raakt. Voor kritieke realtime applicaties blijft dedicated hardware vaak de beste keuze.
🔐 Hoe beveiligt u een CODESYS-systeem?
Omdat besturingen van honderden fabrikanten dezelfde runtime delen, raakt één kwetsbaarheid in CODESYS meteen al die merken tegelijk. In 2023 maakte Microsoft ruim een dozijn ernstige kwetsbaarheden in de CODESYS V3-SDK bekend (CVE-2022-47378 tot en met CVE-2022-47393), gemeld in september 2022 en opgelost in versie 3.5.19.0 (april 2023). Ze maakten denial of service en in sommige gevallen remote code execution mogelijk; de vereiste authenticatie was te omzeilen via het oudere CVE-2019-9013. Andere dreigingen zijn malware, ransomware, diefstal van inloggegevens, supply-chain-aanvallen en ongeautoriseerde wijziging van PLC-logica.
Praktische aanpak in stappen:
- Inventariseer alle CODESYS-apparaten en hun runtimeversie; bij merkbesturingen levert de fabrikant van de besturing de patch, alleen voor Soft PLC’s zoals Control Win of Control for Linux komt de update rechtstreeks van CODESYS.
- Patch via patchmanagement naar minimaal 3.5.19.0 en volg de security advisories van CODESYS en CERT@VDE.
- Segmenteer met netwerksegmentatie volgens IEC 62443 en blokkeer de engineeringpoorten (standaard onder meer TCP 1217 voor de gateway en TCP 11740 voor de runtime) vanaf IT-netwerken en internet.
- Activeer gebruikersbeheer op de runtime, versleutelde communicatie (TLS) en een wachtwoord op de WebVisu.
- Monitor engineeringverkeer en programmawijzigingen.
| Maatregel | Doel |
|---|---|
| Netwerksegmentatie | Zonescheiding tussen IT en OT |
| Industrial Firewall | Protocolfiltering op engineeringpoorten |
| MFA | Sterke authenticatie voor remote engineering |
| RBAC | Rechtenbeheer in runtime en IDE |
| Application Whitelisting | Blokkeren ongewenste software op IPC’s |
| Logging en Security Monitoring | Detectie van downloads en online changes |
| Hardening | Ongebruikte diensten zoals WebVisu of FTP uitschakelen |
Deze aanpak volgt de lijn van mitigerende maatregelen en past binnen cybersecurity voor OT. Voor fabrikanten van CODESYS-besturingen geldt de Cyber Resilience Act: vanaf 11 september 2026 moeten actief misbruikte kwetsbaarheden worden gemeld, en vanaf 11 december 2027 gelden alle eisen. Gebruikers die onder de Cyberbeveiligingswet vallen (in werking sinds 15 augustus 2026) moeten het patchen en segmenteren van deze besturingen aantoonbaar organiseren.
⚠️ Welke operationele risico’s zijn er?
| Probleem | Impact |
|---|---|
| Runtime crash | Productiestop |
| Memory leak | Prestatieverlies |
| Netwerkcongestie | Timingproblemen |
| CPU-overbelasting | Jitter en watchdog-fouten |
| I/O-timeout | Verlies van procescontrole |
| Hypervisorstoring | Stilstand van meerdere besturingen |
Typische engineeringfouten zijn verkeerde taakprioriteiten, blokkerende code in een snelle taak, te ruime of uitgeschakelde watchdogs, race conditions tussen taken en ontbrekende foutafhandeling.
🛠️ Hoe ondersteunt CODESYS lifecycle en safety?
Voor lifecycle management biedt CODESYS online change (programma wijzigen zonder stop), bibliotheekbeheer met versies, en via de Professional Developer Edition integratie met Git of Subversion. Dat maakt versiebeheer, configuratiebeheer, CI/CD-pijplijnen en een OTAP-straat mogelijk, net als in IT-softwareontwikkeling.
Voor safety levert CODESYS gecertificeerde componenten waarmee fabrikanten een safety-PLC tot SIL 2 of SIL 3 volgens IEC 61508 bouwen, met fail-safe I/O via bijvoorbeeld FSoE of PROFIsafe. Voor de procesindustrie en machinebouw blijven IEC 61511 en ISO 13849 de toepassingsnormen binnen functionele veiligheid. Met de redundantie-add-on draaien twee besturingen als primaire en standby-runtime voor redundantie. Validatie en certificering van de totale applicatie blijven altijd de verantwoordelijkheid van de machinebouwer of eigenaar.
Belangrijke trends zijn virtuele PLC’s, containerized OT, TSN-netwerken, OPC UA PubSub en cloudgebaseerde engineering. CODESYS speelt daarmee een centrale rol in de convergentie van PLC, IPC, SCADA en edge binnen OT.
❓ Veelgestelde vragen
Is CODESYS gratis?
De CODESYS-ontwikkelomgeving is gratis te downloaden en te gebruiken. Voor de runtime betaalt u wel: bij een merkbesturing zit de licentie meestal in de hardwareprijs, bij een Soft PLC op een IPC of Raspberry Pi koopt u een runtimelicentie in de CODESYS Store. Zonder licentie draait de runtime alleen tijdelijk in demomodus.
Is CODESYS een PLC?
CODESYS is geen fysieke PLC, maar software. Het bestaat uit een programmeeromgeving en een runtime die een industriële pc, embedded controller of container laat werken als PLC. Veel hardware-PLC’s van andere merken gebruiken die runtime intern.
Wat is het verschil tussen CODESYS V2 en V3?
CODESYS V3 is een volledig nieuwe architectuur met objectgeoriënteerd programmeren, apparaatbeschrijvingen, een plug-insysteem en de CODESYS Store. V2.3-projecten moeten worden geconverteerd en zijn niet direct uitwisselbaar. Nieuwe projecten gebruiken V3.5; V2-installaties zijn legacy.
Welke PLC’s kunt u met CODESYS programmeren?
Met CODESYS programmeert u besturingen van meer dan 400 fabrikanten, waaronder ABB AC500, Schneider Electric (Machine Expert), WAGO, Festo, Eaton en Bosch Rexroth. Daarnaast draait CODESYS als Soft PLC op Windows, Linux en Raspberry Pi. Siemens S7 en Allen-Bradley-PLC’s zijn niet met CODESYS te programmeren.
Kan CODESYS in een container of virtuele machine draaien?
Ja, CODESYS Virtual Control SL draait als Docker- of Podman-container op Linux met een RT-Preempt-kernel, en CODESYS Control Win kan in een virtuele machine draaien. Voor harde realtime motion blijft dedicated hardware of zorgvuldig getunede virtualisatie nodig.
Is CODESYS veilig?
CODESYS bevat beveiligingsfuncties zoals gebruikersbeheer en versleutelde communicatie (TLS), maar heeft in het verleden ernstige kwetsbaarheden gekend, zoals de reeks V3-SDK-kwetsbaarheden die Microsoft in 2023 publiceerde. De veiligheid van een CODESYS-installatie hangt daarom af van tijdig patchen, netwerksegmentatie en het nooit direct aan internet koppelen van de runtime.
📌 Samengevat
CODESYS is het fabrikantonafhankelijke IEC 61131-3-platform waarmee u PLC’s van honderden merken, Soft PLC’s en containerbesturingen in één omgeving programmeert. Die brede inzet maakt het krachtig voor machinebouw, edge en IT/OT-convergentie, maar vraagt om strak patch- en segmentatiebeleid, omdat één kwetsbaarheid in CODESYS veel merken tegelijk raakt.
