Codesys

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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

Logo
Basisdaten

Entwickler CODESYS Group
Erscheinungsjahr 1994
Aktuelle Version 3.5 SP16
(06.05.2020[1])
Betriebssystem Windows 8, Windows 10
Kategorie IDE, SPS
Lizenz Programmiersystem kostenlos,
Lizenzkosten pro Laufzeitsystem/Gerät
deutschsprachig ja
www.codesys.com

Einführung[Bearbeiten | Quelltext 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.

Integrierte Anwendungsbereiche[Bearbeiten | Quelltext bearbeiten]

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

Engineering[Bearbeiten | Quelltext 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.
  • 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). Grafische Sprache mit Bausteinen (Kästen), 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.

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 gut 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 16-, 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 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 das Apache Subversion Versionsverwaltungssystem, einer Laufzeitmessung ("Profiling") direkt auf der Steuerung oder eine statische Code-Analyse des Applikationscodes.

Mit dem kostenlos nutzbaren 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.

Runtime[Bearbeiten | Quelltext bearbeiten]

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 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 für SoftSPS-Systeme unter 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.

Feldbus-Technologie[Bearbeiten | Quelltext 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 unterstützt die Plattform optional applikationsspezifische Kommunikationsprotokolle, wie z. B. BACnet oder KNX für die Gebäudeautomation.

Kommunikation[Bearbeiten | Quelltext 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 | Quelltext 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. 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).

Motion CNC Robotics[Bearbeiten | Quelltext 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.

Safety[Bearbeiten | Quelltext bearbeiten]

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. Mit vorzertifizierten Software-Teilen innerhalb von Codesys ist es für Gerätehersteller deutlich einfacher, eine Zertifizierung ihrer Steuerungen nach SIL2 bzw. SIL3 zu erreichen. 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.

Automation Server[Bearbeiten | Quelltext 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 Plattform wird in einer Public Cloud gehostet. 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 | Quelltext 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 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. Ein Großteil der Produktangebote sind dabei 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 | Quelltext bearbeiten]

Über 400 Hersteller aus dem gesamten Automatisierungsbereich nutzen Codesys als Programmierschnittstelle für ihre intelligenten Automatisierungskomponenten. Dazu gehören Geräte von Global Playern wie Schneider Electric, Beckhoff, WAGO oder Festo, aber auch Nischenanbieter von Industriesteuerungen. Daraus ergeben sich mehrere zehntausend Anwender, die Codesys einsetzen. Allein im Codesys Store sind weit mehr als 100.000 verifizierte Benutzer registriert (Stand 01/2020). 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.

Mitgliedschaft in Organisationen[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

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

Literatur[Bearbeiten | Quelltext bearbeiten]

Deutschsprachig

  • 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 – 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-835-63150-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, 2005
  • 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
  • Peter Beater: "Aufgabensammlung zur Steuerungstechnik: 56 mit Papier und Bleistift oder CoDeSys gelöste Aufgaben"

Andere Sprachen

  • Russisch: Igor Petrov:"Steuerungsprogrammierung: Die genormten Sprachen und wichtigsten Projektierungswerkzeuge". Solon Press, 2007 ISBN 5-98003-079-4
  • 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-3943211061

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Release CODESYS V3.5 SP16. Abgerufen am 8. Mai 2020.
  2. Die Heimautomatisierung mit speicherprogrammierbarer Steuerung (SPS). Heise Online - Developer, abgerufen am 14. September 2016.
  3. Voting members. Abgerufen am 30. Juni 2020 (englisch).
  4. OSADL Regular Members. Abgerufen am 30. Juni 2020 (englisch).
  5. Members. Abgerufen am 30. Juni 2020 (englisch).
  6. Members. Abgerufen am 30. Juni 2020 (englisch).
  7. Members. Abgerufen am 30. Juni 2020 (englisch).
  8. Members. Abgerufen am 30. Juni 2020 (englisch).
  9. Members. Abgerufen am 30. Juni 2020 (englisch).
  10. Manufacturer Overview. Abgerufen am 31. August 2017.
  11. Members. Abgerufen am 30. Juni 2020 (englisch).
  12. The Open Group Standard Membership. Abgerufen am 30. Juni 2020 (englisch).
  13. Software Partners. Abgerufen am 30. Juni 2020 (englisch).