Codesys

Entwicklungsumgebung für speicherprogrammierbare Steuerungen

Codesys (Eigenschreibweise CODESYS, früher CoDeSys) ist eine Integrierte Entwicklungsumgebung für Speicherprogrammierbare Steuerungen (SPS) nach dem IEC 61131-3 Standard für die Applikationsentwicklung in der Industrieautomation.

CODESYS

Basisdaten

Entwickler CODESYS Group
Erscheinungsjahr 1994
Aktuelle Version 3.5 SP20[1]
(20. März 2024)
Betriebssystem Windows 10, Linux
Programmier­sprache C#/.NET
Kategorie IDE, SPS
Lizenz proprietäre Lizenz
deutschsprachig ja
www.codesys.com

Einführung

Bearbeiten

Codesys wird von der Codesys Group mit dem Hauptsitz in Kempten entwickelt und vermarktet. Das Softwareunternehmen wurde 1994 als 3S-Smart Software Solutions GmbH gegründet und 2018 bzw. 2020 zur Codesys Group bzw. Codesys GmbH umfirmiert.

Die Bezeichnung Codesys ist ein Akronym und steht für Controller Development System. Die Version 1.0 wurde im Jahr 1994 ausgeliefert. Das Programmiersystem ist lizenzfrei zu verteilen und zu benutzen, es kann ohne Kopierschutz ganz legal auf weiteren Arbeitsplätzen installiert werden. Die Kosten für den Einsatz der Runtime-Lizenzen sind dann jedoch vergleichsweise hoch, abhängig von der Leistungsfähigkeit der Zielplattform sowie der Anzahl der abgenommenen Lizenzen. Im Embedded-Bereich sind für einzelne Lizenzabnahmen z. B. zweistellige Eurobeträge fällig. Seit August 2023 ist ein applikationsabhängiges Lizenzmodell für Anwender von SoftSPSen verfügbar, das unabhängig von der Geräteplattform einen kostengünstigen Einstieg ermöglicht.

Integrierte Anwendungsbereiche

Bearbeiten

Das Software-Tool deckt unterschiedliche Aspekte der industriellen Automatisierungstechnik in einer Oberfläche ab:

Engineering

Bearbeiten
 
Altes Logo bis 2012

Alle fünf der von der IEC 61131-3 (International Electrotechnical Commission) spezifizierten Sprachen stehen im Codesys Development System zur Verfügung:

  • IL (Instruction List), im deutschen Sprachgebrauch Anweisungsliste (AWL). Textuelle Sprache angelehnt an klassische Assembler, wird von der IEC 61131-3-Nutzerorganisation PLCopen allerdings als „deprecated“ (veraltet) bezeichnet und sollte nicht mehr für neue Projekte verwendet werden.
  • ST (Structured Text), im deutschen Sprachgebrauch Strukturierter Text (ST), angelehnt an Pascal zur strukturierten Programmierung.
  • LD (Ladder Diagram), im deutschen Sprachgebrauch Kontaktplan (KOP). Diese Sprache bildet klassische Verdrahtungen von Relais grafisch ab.
  • FBD (Function Block Diagram), im deutschen Sprachgebrauch Funktionsbausteinsprache (FBS, Bezeichnung in Codesys FUP für Funktionsplan-Diagram). Grafische Sprache mit Bausteinen (Kästen/Boxen), deren Funktion vom System, durch eigene Programmierung oder Bibliotheken bereitgestellt wird.
  • SFC (Sequential Function Chart), im deutschen Sprachgebrauch Ablaufsprache (AS). Grafische Sprache bestehend aus Schritten, Transisitionen und Abzweigungen, ideal für die Programmierung von logischen Abläufen und Prozessen.

Zusätzlich zu den Sprachen im IEC-Standard gibt es in Codesys:

  • CFC (Continuous Function Chart) ist ein FUP-Editor mit einem frei-grafischen Layout: während FUP-Editoren netzwerkorientiert arbeiten und die Bausteine automatisch anordnen, ist es im CFC möglich, alle Bausteine frei zu platzieren und somit auch Rückkopplungen ohne Zwischenvariablen zu realisieren. Deshalb ist diese Sprache auch besonders für die Übersichtsdarstellung einer Applikation geeignet.

Der mit Codesys erzeugte Applikationscode wird zum Download auf die Steuerung von integrierten Compilern in nativen Maschinencode (Binärcode) übersetzt. Unterstützt werden die wichtigsten 32- und 64-Bit CPU-Familien wie z. B. TriCore, 80x86/iX, ARM/Cortex, Power-Architektur, SH, MIPS, Blackfin und weitere.

Im Online-Betrieb mit der Steuerung bietet Codesys umfangreiche Debugging-Funktionen, von Variablen-Monitoring/Schreiben/Zwangssetzen über Breakpoints/Einzelschritt-Ausführung bis hin zur Online-Aufzeichnung von Variablen-Werten auf der Steuerung in einem Ringpuffer (Sampling Trace) sowie das Speichern des Speicherabbilds bei z. B. bei Exceptions („CoreDump“).

Codesys in der Version V3.x basiert auf der sogenannten Codesys Automation Platform, einem Automatisierungsframework, das von Geräte-Herstellern um eigene Plug-In-Module erweitert werden kann.

Im Rahmen der Codesys Professional Developer Edition kann das Tool optional um kostenpflichtige Zusatzkomponenten erweitert werden, z. B. eine integrierte UML-Unterstützung, eine Anbindung an die Versionsverwaltungssysteme Apache Subversion sowie Git, einer Laufzeitmessung („Profiling“) direkt auf der Steuerung oder eine statische Code-Analyse des Applikationscodes.

Mit dem Codesys Application Composer können Anwender im Rahmen des IEC 61131-3 Tools komplette Automatisierungsapplikationen erzeugen lassen. Dazu können sie ihre Maschine oder Anlage auf Basis von Modulen konfigurieren, die z. B. den mechatronischen Aufbau oder die zum Einsatz kommende Software-Funktion einschließlich der gesamten Funktionalität definieren. Aus dieser Konfiguration erzeugt ein integrierter Konfigurator einsehbaren IEC 61131-3 Code.

Nach der Implementation des Codesys Control Laufzeitsystems können intelligente Geräte mit Codesys programmiert werden. Dieses Laufzeitsystem steht als Quell- und Objektcode im Rahmen eines kostenpflichtigen Toolkits zur Verfügung und kann auf unterschiedliche Plattformen portiert werden.

Seit Anfang 2014 existiert auch eine Runtime-Version für den Raspberry Pi. Diese garantiert allerdings ohne Anpassung des Standardbetriebssystems Raspian keine harten Echtzeiteigenschaften.[2] Die Raspberry Pi-Schnittstellen, wie I²C, SPI und 1-Wire werden neben den Ethernet-basierenden Feldbussen unterstützt.

Darüber hinaus sind SoftSPS-Systeme für Windows und Linux verfügbar, die aus Industrie-PCs und anderen bekannten Geräteplattformen von unterschiedlichen Herstellern wie Janztec, WAGO, Siemens oder Phoenix Contact Codesys kompatible Steuerungen machen. Diese SoftSPS-Systeme lassen sich als virtuelle SPS auch in Virtualisierungsplattformen, wie z. B. Software-Container und Hypervisor in Echtzeit betreiben. So können mehrere virtuelle Steuerungen, unterschiedlich in Performance und Featureausbau, auf einer Hardware laufen und somit zur Konsolidierung von Hardware beitragen.

Feldbus-Technologie

Bearbeiten

Direkt im Programmiersystem Codesys können unterschiedliche Feldbusse verwendet werden. Das Tool integriert dazu Konfiguratoren für die wichtigsten Systeme, wie z. B. Profibus, CANopen, EtherCAT, Profinet, Ethernet IP. Für die meisten dieser Systeme sind Protokollstacks in Form von nachladbaren Codesys-Bibliotheken verfügbar.

Darüber hinaus unterstützt die Plattform optional applikationsspezifische Kommunikationsprotokolle, wie z. B. BACnet oder KNX für die Gebäudeautomation und DNP3 für die Fernwirktechnik.

Kommunikation

Bearbeiten

Zum Datenaustausch mit anderen Teilnehmern in Steuerungsnetzwerken lassen sich in Codesys nahtlos integrierte Kommunikationsprotokolle einbinden und verwenden. Dazu gehören proprietäre Protokolle, standardisierte Protokolle in der Automatisierungstechnik, wie z. B. OPC und OPC UA, Standardprotokolle für serielle und Ethernet-Schnittstellen sowie Standardprotokolle der Webtechnologie, wie MQTT oder https. Letztere werden auch in Form von gekapselten Bibliotheken zum vereinfachten Zugriff auf Public Clouds von AWS oder Microsoft (Azure) angeboten.

Visualisierung

Bearbeiten

Direkt im Programmiersystem Codesys kann der Anwender mit einem integrierten Editor komplexe Visualisierungsmasken erstellen und auf Basis der Applikationsvariablen animieren. Dafür stehen integrierte Visualisierungselemente zur Verfügung. Darüber hinaus lassen sich auch Canvas (HTML5-Elemente) einbinden und animieren. Mit einem optionalen Toolkit kann der Anwender seine eigenen Visualisierungselemente erzeugen. Die erzeugten Masken werden u. a. für Applikationstests und bei der Inbetriebnahme im Online-Betrieb des Programmiersystems eingesetzt. Mit optionalen Visualisierungsclients können die erstellten Masken auch zur Bedienung der Maschine oder Anlage dienen, z. B. auf Steuerungen mit integriertem Display (Produktname Codesys TargetVisu), in einem eigenen portablen Runtime z. B. unter Windows oder Linux (Produktname Codesys HMI) oder im HTML5-fähigen Web-Browser (Produktname Codesys WebVisu). Zur vereinfachten Nutzung steht für die Codesys WebVisu eine kostenlose Android-App zur Verfügung (Produktname Codesys Web View). Sowohl die Codesys TargetVisu und die Codesys WebVisu unterstützen in den neuesten Versionen Overlay-Funktionalität und Grafikbeschleunigung.

Motion CNC Robotics

Bearbeiten

Ebenfalls vollständig integriert im Programmiersystem Codesys ist eine optionale Baukasten-Lösung zur Steuerung von komplexen Verfahrbewegungen mit einer IEC 61131-3 programmierten Steuerung. Im Umfang des Baukastens befinden sich

  • Editoren zur Bewegungsplanung z. B. anhand von Kurvenscheiben oder CNC-Beschreibungen nach DIN 66025
  • ein Achsgruppen-Konfigurator zur Parametrierung von Roboterkinematiken
  • Bibliotheksbausteine für Decoder, Interpolator, zur Programmabarbeitung u. a. nach PLCopen MotionControl, für kinematische Transformationen sowie für Visualisierungstemplates.

Damit Hersteller von Maschinen und Anlagen nach einer Risiko-Analyse die erforderliche Sicherheitsanforderungsstufe (SIL-Level) erreichen können, müssen alle im System eingesetzten Komponenten dem ermittelten SIL-Level genügen. Vorzertifizierte Software-Teile innerhalb von Codesys vereinfachen Geräteherstellern die Zertifizierung ihrer Steuerungen nach SIL2 bzw. SIL3. Zu diesem Zweck besteht Codesys Safety aus Komponenten innerhalb des Programmiersystems und des Laufzeitsystems, die Projektierung erfolgt wiederum vollständig integriert in der IEC 61131-3 Programmierumgebung.

Anwender von Steuerungstechnik nutzen die Safety-Funktionen mit Geräten, die Codesys Safety bereits implementiert haben. Darüber hinaus steht ein Zusatzprodukt zur Verfügung, mit dem die zertifizierten EtherCAT-Safetyklemmen von Beckhoff innerhalb des Codesys Development Systems projektiert werden können.

Industrie 4.0 / Automation Server

Bearbeiten

Zur Administration von kompatiblen Geräten steht eine Industrie 4.0-Plattform zur Verfügung, die per Webbrowser z. B. die Ablage von Projekten im Quell- und Binärcode ermöglicht, sowie deren Download auf angebundene Geräte. Die gesamte Plattform wird in einer Public Cloud gehostet, Nutzer registrieren sich für ein privates Konto. Ein Betrieb des Servers auf lokalen, on-premise-Servern ist für 2024 angekündigt. Die Kommunikation zwischen der Cloud und den Steuerungen erfolgt über ein spezielles Software Edge Gateway, dessen Securityeigenschaften von SSL Labs mit A+ bewertet wurde. Diese Verbindung kann somit genutzt werden, um mit eingebundenen Geräten im Automation Server ohne weitere VPN-Tunnel oder Firewalls sicher zu kommunizieren, z. B. für die Anzeige hinterlegter Web-Visualisierungen oder zum Debugging/Update der Applikationssoftware auf dem Gerät.

Zusätzliche Informations- und Hilfequellen

Bearbeiten

Seit 2012 betreibt der Hersteller ein Online-Forum, in dem Anwender miteinander kommunizieren können. Es wurde 2020 in die Q&A-Plattform „Codesys Talk“ überführt, die gleichzeitig als offene Plattform für open-source Entwicklungsprojekte („Codesys Forge“) genutzt wird. Zur vereinfachten Nutzung der Plattform ist eine Android-App verfügbar („Codesys Forge“).

Mit dem Codesys Store betreibt der Hersteller einen Online-Development-Shop, in dem Zusatzoptionen und -produkte angeboten werden. Enthalten sind u. a. sind kostenlose Beispielprojekte, die das Ausprobieren von Funktionen und unterstützten Technologien erleichtern. Ähnlich wie in einer „App-Shop“-Plattform haben Anwender die Möglichkeit, die angebotenen Produkte und Projekte direkt aus dem Codesys Development System zu suchen und installieren, ohne die Plattform verlassen zu müssen.

Verbreitung im Markt

Bearbeiten

Mehr als 500 Gerätehersteller in unterschiedlichen Industriebereichen haben Codesys als Programmierschnittstelle für ihre intelligenten Automatisierungskomponenten implementiert. Dazu gehören Geräte von Global Playern wie ABB, Schneider Electric, Beckhoff, Eaton Corporation, WAGO, Turck oder Festo, aber auch Nischenanbieter von Industriesteuerungen für ganz spezielle Anwendungsbereiche. Daraus ergeben sich mehrere zehntausend Anwender, die Codesys einsetzen. Allein im Codesys Store sind weit mehr als 310.000 verifizierte Benutzer registriert (Stand 10/2023). Aufgrund seines hohen Verbreitungsgrades kann Codesys als Marktstandard unter den geräteunabhängigen Programmiertools nach IEC 61131-3 bezeichnet werden. So wird in der Ausbildung der Steuerungs- und Automatisierungstechnik an zahlreichen Bildungseinrichtungen (Gewerbliche Schulen, Hochschulen, Universitäten) weltweit mit Codesys gearbeitet.[3][4][5]

Mit Codesys werden ganz unterschiedliche Automatisierungsaufgaben realisiert. Einige Beispiele:

Mitgliedschaft in Organisationen

Bearbeiten

Siehe auch

Bearbeiten
Portal: Elektrotechnik – Übersicht zu Wikipedia-Inhalten zum Thema Elektrotechnik

Literatur

Bearbeiten

Deutschsprachig

  • Kai Stüber: Konzeption und Implementierung der Ansteuerung einer Bohreinrichtung mit einer speicherprogrammierbaren Steuerung und CODESYS (Projektarbeit), 2023, (E-Book) https://www.grin.com/document/1439152
  • Stefan Henneken: Anwendung der SOLID-Prinzipien mit der IEC 61131-3 - 5 Prinzipien für objektorientiertes Softwaredesign in der SPS-Programmierung, 2023, (Paperback), ISBN 978-3-7347-4685-7 / (E-Book), ISBN 978-3-7578-7070-6
  • Peter Beater: Grundkurs der Steuerungstechnik mit CODESYS: Grundlagen und Einsatz Speicherprogrammierbarer Steuerungen, 2021, ISBN 978-3-7526-6119-4
  • Peter Beater: Aufgabensammlung zur Steuerungstechnik: 56 mit Papier und Bleistift oder CoDeSys gelöste Aufgaben, 2019, ISBN 978-3-7481-5837-0
  • Karl Schmitt: SPS-Programmierung mit ST: nach IEC 61131 mit CoDeSys und mit Hinweisen zu STEP 7 im TIA-Portal (elektrotechnik), 2019, ISBN 978-3-8343-3461-9
  • Stefan Nothdurft: Projekt Bohreinrichtung. Implementierung einer speicherprogrammierbaren Steuerung mit CoDeSys, 2018, ISBN 3-668-80041-3
  • Jochen Petry und Karsten Reinholz: SPS-Programmierung mit CODESYS V2.3: Praxisorientiert - Realitätsnah - Erprobt!. Mit e. Vorw. v. Karsten Reinholz, 2014, ISBN 978-3-00-046508-6
  • Jochen Petry: IEC 61131-3 mit CoDeSys V3: Ein Praxisbuch für SPS-Programmierer. Eigenverlag 3S-Smart Software Solutions, 2011
  • Karl Schmitt: SPS-Programmierung mit ST nach IEC 61131-3 mit CoDeSys und Hinweisen zu STEP7 V11. Vogel Buchverlag, 2011
  • Birgit Vogel-Heuser, Andreas Wannagat: Modulares Engineering und Wiederverwendung mit CoDeSys V3. Oldenbourg Industrieverlag, 2007, ISBN 3-8356-3105-5
  • Günter Wellenreuther/Dieter Zastrow: Automatisieren mit SPS – Übersichten und Übungsaufgaben: Von Grundverknüpfungen bis Ablaufsteuerungen, Wortverarbeitungen und Regelungen, … Lernaufgaben, Kontrollaufgaben, Lösungen. Springer Vieweg, 2015, ISBN 978-3-658-11199-1
  • Günter Wellenreuther/Dieter Zastrow: Automatisieren mit SPS – Theorie und Praxis. Vieweg + Teubner Verlag, 2008
  • Herbert Bernstein: SPS-Workshop mit Programmierung nach IEC 61131 mit vielen praktischen Beispielen, mit 2 CD-ROM. VDE Verlag
  • Birgit Vogel-Heuser: Automation & Embedded Systems. Oldenbourg Industrieverlag ISBN 978-3-8356-3150-2 (eingeschränkte Vorschau)
  • Ulrich Kanngießer: Kleinsteuerungen in Praxis und Anwendung: Erfolgreich messen, steuern, regeln mit LOGO!, easy, Zelio und Millenium 3. Hüthig Verlag
  • Matthias Seitz: Speicherprogrammierbare Steuerungen. Hanser Fachbuchverlag Leipzig
  • Heinrich Lepers: SPS-Programmierung nach IEC 61131-3 mit Beispielen für CoDeSys und STEP 7. Franzis Verlag, 2011, ISBN 978-3-645-65092-2
  • Norbert Becker: Automatisierungstechnik. Vogel Buchverlag
  • Helmut Greiner: Systematischer Entwurf sequentieller Steuerungen – Grundlagen. Schriftenreihe der Stiftung für Technologie, Innovation und Forschung Thüringen (STIFT)
  • Grundlagen IEC 61131-3 auf Basis von CoDeSys. E-Book
  • Tom Mejer Antonsen: SPS Programmierung mit Strukturierter Text (ST), V3 RINGBUCH: IEC 61131-3 und bewährte Praktiken der ST-Programmierung, ISBN 978-87-430-1275-7

Andere Sprachen:

  • Englisch: Gary L. Pratt: The BOOK of CODESYS - The ultimate guide to PLC Programming with IEC 61131-3. self-published, 2021, ISBN 978-1-7378214-0-3[17]
  • Englisch: Fujii Toshinori: Sequence control starting with Raspberry Pi - CODESYS Edition, 2021, ISBN 979-8-7642-4245-3
  • Englisch: Liam Bee: The Basics Of PLC Programming With Codesys: A beginners guide to getting started with PLCs and the Codesys environment (English Edition), 2021, amazon.de
  • Ungarisch: Koszár András: CODESYS programozási példatár, ISBN 978-620-0-62532-8
  • Japanisch: Fujii Toshinori: Re3: Raspberry Pi starting at age 50 -CODESYS Sequence control, 2020 - (Japanese Edition) amazon.de
  • Russisch: Igor Petrov: Steuerungsprogrammierung: Die genormten Sprachen und wichtigsten Projektierungswerkzeuge. Solon Press, 2007, ISBN 5-98003-079-4
  • Türkisch: Fatih Arslan: Codesys ile PLC Programlama. 2017, ISBN 978-975-511-593-1
  • Portugiesisch: Marcos de Oliveira Fonseca et al.: Aplicando a norma IEC 61131 na automação de processos. ISA América do Sul, 2008
  • Norwegisch: Dag Håkon Hanssen: Programmerbare Logiske Styringer – baser på IEC 61131-3. tapir akademisk forlag, 2008
  • Englisch: Jürgen Kaftan: Practical Examples with AC500 from ABB: 45 Exercises and Solution programmed with CoDeSys Software. IKH Didactic Systems, ISBN 978-3-943211-06-1
Bearbeiten

Einzelnachweise

Bearbeiten
  1. de.codesys.com. (abgerufen am 20. März 2024).
  2. Die Heimautomatisierung mit speicherprogrammierbarer Steuerung (SPS). In: Heise Online – Developer. Abgerufen am 14. September 2016.
  3. Günter Herkommer: Studie: Die Zukunft der Steuerungstechnik. Abgerufen am 18. Februar 2021.
  4. Meinrad Happacher: Speicherprogrammierbare Steuerungen: Der SPS-Benchmark: Das Ergebnis. Abgerufen am 18. Februar 2021.
  5. Virtual PLC & Soft PLC Market Report 2020-2025 - Industrial IoT. Abgerufen am 18. Februar 2021 (amerikanisches Englisch).
  6. Voting members. Abgerufen am 30. Juni 2020 (englisch).
  7. OSADL Regular Members. Abgerufen am 30. Juni 2020 (englisch).
  8. Members. Abgerufen am 30. Juni 2020 (englisch).
  9. Members. Abgerufen am 30. Juni 2020 (englisch).
  10. Members. Abgerufen am 30. Juni 2020 (englisch).
  11. Members. Abgerufen am 30. Juni 2020 (englisch).
  12. Members. Abgerufen am 30. Juni 2020 (englisch).
  13. Manufacturer Overview. Abgerufen am 31. August 2017.
  14. Members. Abgerufen am 30. Juni 2020 (englisch).
  15. The Open Group Standard Membership. Abgerufen am 30. Juni 2020 (englisch).
  16. Software Partners. Abgerufen am 30. Juni 2020 (englisch).
  17. bookofcodesys.org