CODESYS
CODESYS (voorheen CoDeSys) is een ontwikkelomgeving voor het programmeren van automatiseringsproducten volgens de internationale industriële standaard IEC 61131-3.

Introductie
CODESYS is ontwikkeld en wordt geleverd door het Duitse softwarebedrijf 3S-Smart Software Solutions gesitueerd in de Beierse stad Kempten. Versie 1.0 werd gelanceerd in 1994. De term CODESYS is een acroniem dat staat voor Controller Development System. CODESYS kan kosteloos gedownload worden via de 3S-Smart Software Solutions-website. De softwaretool is te gebruiken voor meerdere takken van de industriële automatiseringstechniek.

Softwareontwikkeling
Alle vijf de programmeertalen voor applicatie-ontwikkeling zoals gedefinieerd in de IEC 61131-3 zijn beschikbaar binnen de CODESYS-ontwikkelomgeving. 

IL (Instruction list) is een programmeertaal lijkend op Assembler (standaard uitgeschakeld binnen CODESYS v3.5)
ST (Structured text) is vergelijkbaar met het programmeren in PASCAL / DELPHI
LD (Ladder diagram) geeft programmeurs de mogelijkheid om virtueel relais-contacten aan spoelen te koppelen
FBD (Function block diagram) biedt de mogelijkheid om eenvoudig zowel booleaanse als analoge expressies te programmeren.
SFC (Sequential function chart) is bedoeld voor het programmeren van stappenprogramma's.

Extra grafische programmeermethode beschikbaar in CODESYS welke niet is gedefinieerd in de IEC-standaard:
CFC (Continuous Function Chart) is vergelijkbaar met FBD met meer vrijheid. Anders dan bij de netwerkgeoriënteerde FBD-editor, waar de verbindingen tussen ingangen, operatoren en uitgangen automatisch worden gekoppeld, moet dit door de programmeur worden gedaan. Alle “blokken” kunnen echter wel willekeurig geplaatst worden hetgeen het mogelijk maakt terugkoppelingen te maken zonder extra variabelen te hoeven definiëren.

De geïntegreerde compilers zetten de applicatiecode, zoals gemaakt in CODESYS, om naar hardwarespecifieke binaire machinetaal en wordt geladen in de besturing. De meest gangbare 16-, 32- en 64-bit CPU families worden ondersteund, waaronder de C166 family, TriCore, 80x86, 80x64, ARM/Cortex, Power Architectuur, SH, MIPS, Blackfin en vele anderen.

Zodra CODESYS verbinding met de besturing heeft (online is), biedt het uitgebreide debuggingfunctionaliteiten waaronder variabelen lezen/schrijven/forceren, het zetten van  breakpoints waarmee door de applicatie gestapt kan worden en het opslaan van variabelen in de controller in een ringbuffer die in een grafiek kan worden weergegeven.

CODESYS V3 is gebaseerd op het zogenaamde CODESYS Automation Platform. Leveranciers van besturingen hebben de mogelijkheid dit componenten raamwerk te gebruiken in hun eigen IDE of uit te breiden met eigen ”plug-in” modules.

De CODESYS Professional Edition (PDE) biedt de mogelijkheid de programmeeromgeving met moderne ontwikkelhulpmiddelen uit te breiden waarvoor een licentie benodigd is. De geïntegreerde UML ondersteuning, een verbinding met Apache Subversion en GIT (vanaf SP17) voor versiebeheer, of statische codeanalyse van de applicatiecode. Profiler dient om de doorlooptijd van een programma te meten en daar waar nodig te optimaliseren en een Test Manager om unit tests te schrijven waarmee de code geautomatiseerd doorgetest kan worden.

De CODESYS Application Composer (AC) maakt het mogelijk om complete automatiseringsapplicaties te bouwen zonder te programmeren. Een deel van de composer is licentievrij te gebruiken, maar de werkelijk belangrijke componenten hieruit vereisen een licentie, die te online te verkrijgen is. Met de composer kunnen Machines of fabrieken geconfigureerd worden op basis van modules, bijvoorbeeld middels het definiëren van een mechatronische constructie of de complete softwarefunctionaliteit van een project.

Forge.Codesys.com is een open source gebaseerd platform voor gebruikers en ontwikkelaars om elkaar hulp en ondersteuning te bieden. Tevens biedt dit platform de gebruikers de mogelijkheid om open source projecten te maken.

Runtime
Het programmeren van platform onafhankelijke code gebeurt binnen de CODESYS Integrated Development Environment (IDE). Deze code kan zodanig worden geschreven dat ze zonder wijzigingen op vrijwel elk hardwareplatform kan functioneren middels CODESYS Automation Alliance (CAA) libraries. Vervolgens wordt de code gecompileerd (afhankelijk van de gekozen hardware in de IDE wordt de juiste compiler gebruikt) en kan deze worden uitgevoerd op dat desbetreffende target. Zodra de hardware wordt uitgewisseld voor een ander merk/model verandert er dus niets aan de code (behalve de eventuele compiler-keuze binnen de hardware en de mogelijkheden van de hardware zelf). Veel leveranciers leveren eigen drivers en software mee voor hun eigen hardware, dit verandert echter niets aan het platform-onafhankelijke basisprincipe van CODESYS.

Na het implementeren van het CODESYS Control Runtime Systeem kunnen intelligente apparaten geprogrammeerd worden met CODESYS. Voor vele merken en typen PLC's zijn deze runtimes te verkrijgen (via CODESYS of de leverancier van de hardware). De Runtime dient als een vertaallaag tussen de gebruikerscode en de fysieke soft- en hardware van het desbetreffende platform waarop deze Runtime draait. Door middel van een betaalde toolkit (Runtime-Toolkit) is het mogelijk om zelf Runtimes te ontwikkelen en omvat een runtimesysteem als source- en objectcode. Deze voorbeeldcode kan dan op maat gemaakt worden en is via de meegeleverde compilers voor vele hardwareplatformen te porteren.

Veldbustechnologie
Verschillende veldbussen kunnen direct gebruikt worden in het programmeersysteem. Hiervoor bevat CODESYS geïntegreerde configuratoren voor de meestgebruikte systemen waaronder Profibus, CANopen, EtherCAT, ProfiNet en/of Ethernet/IP. Voor sommige systemen zijn extra protocol stacks beschikbaar in de vorm van CODESYS bibliotheken die mee geladen worden met de applicatie. Door middel van een FDT Frame Plug-in kunnen extra leverancier specifieke gebruikersomgevingen worden geïntegreerd. Communicatie tussen deze omgevingen gaat middels een communicatie DTM (Dual Transfer Mode).

Visualisatie
De geïntegreerde editor helpt de gebruiker om complexe visualisaties direct in hetzelfde programmeerpakket CODESYS te creëren en deze te animeren gebaseerd op de variabelen van de applicatie. Om dit te vereenvoudigen zijn standaard visualisatie-elementen beschikbaar. Een optionele toolkit (Visu-Toolkit) biedt de mogelijkheid tot het ontwikkelen van eigen (complexe) visualisatie-elementen. De schermen worden onder andere gebruikt voor het testen en inbedrijfstellen van de applicatie. In combinatie met optionele visualisatielicenties, zijn de schermen tevens te gebruiken om de machines of fabrieken te bedienen, bijvoorbeeld middels besturingen met geïntegreerd display, in webbrowsers of als losse runtime op een Microsoft Windows- of Linuxcomputer.

SoftMotion
Een optionele modulaire oplossing voor het aansturen van complexe bewegingen middels een, volgens de IEC 61131-3 geprogrammeerde besturing, is tevens volledig geïntegreerd in het CODESYS programmeerpakket. Deze modulaire SoftMotion oplossing bevat:
 Editors voor bewegingsprofielen, waaronder grafische CAMs of DIN 66025 CNC beschrijvingen.
 Bibliotheek met modules voor decoders, interpolators, aansturen van de beweging, bijvoorbeeld via PLCopen MotionControl, kinematische transformaties en visualisatietemplates.

Safety
Om het benodigde SIL niveau te behalen is een risico-analyse benodigd waarna alle systeemcomponenten moeten voldoen aan dit niveau.
Gecertificeerde softwarecomponenten binnen CODESYS maken het eenvoudiger voor leveranciers om hun besturingen SIL2 of SIL3 gecertificeerd te krijgen. CODESYS Safety module bestaat uit componenten binnen het programmeersysteem en het runtimesysteen, waarbij de projectplanning volledig is geïntegreerd binnen de IEC 61131-3 programmeeromgeving.

Industrieel gebruik
Meer dan 250 besturingsfabrikanten vanuit verschillende industriële sectoren bieden automatiseringsproducten met CODESYS-programmeermogelijkheid. Hierdoor zijn er wereldwijd duizenden eindgebruikers, zoals machinebouwers en overige automatiseerders, die CODESYS dagelijks toepassen voor velerlei automatiseringstoepassingen. Momenteel is CODESYS het meest toonaangevende IEC 61131-3-ontwikkelpakket beschikbaar op de markt.

De CODESYS "Device Directory" geeft een overzicht van de bijna 400 producten van toonaangevende bedrijven die actief zijn op het gebied van besturingstechniek, automatisering en embedded systemen, die programmeerbaar zijn met CODESYS.

Zie ook 
 Programmable Logic Controller

Externe link
 3S Smart Software Solutions
 CODESYS Store

Automatisering
Software-ontwikkelomgeving