Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS® a trademark of 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Agenda 2 1 Warum Steuerungen objektorientiert programmieren? 2 Umsetzung von OOP innerhalb eines IEC 61131-3-Tools 3 Beispiel 4 Typische Anwendungsgebiete © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen OOP für Steuerungen? Was ist objektorientiertes Programmieren (OOP)? Ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Es fördert Flexibilität Wiederverwendbarkeit von Programmen Grundidee der objektorientierten Programmierung: Daten und Funktionen, die auf diese Daten angewendet werden können möglichst eng in einem sogenannten Objekt zusammenzufassen nach außen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich manipulieren können. 3 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen OOP für Steuerungen? Warum OOP in der Steuerungstechnik? Flexibel für Veränderungen und Erweiterungen (bessere Wartbarkeit) Leichter wiederverwendbar Bessere Kapselung Gängige Lehrmethode bei der Hochsprachenprogrammierung In der Office-Welt millionenfach bewährt 4 OOP ist eine zunehmende Forderung von Steuerungsprogrammierern. © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen OOP für Steuerungen? Warum nicht gleich C++ / C#? Debugging und Inbetriebnahme erfordern komplette Entwicklungsumgebungen. Vermischung der Applikation mit Systemsoftware möglich Zugriff auf E/A-Ebene nur über Bibliotheksaufrufe IEC 61131-3 ist der gängige Standard für Industrie-Steuerungen. 5 Spezifische Editoren für Applikationsprogrammierung Zyklische Abarbeitung fester Teil der „Denke“ © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Agenda 6 1 Warum Steuerungen objektorientiert programmieren? 2 Umsetzung von OOP innerhalb eines IEC 61131-3-Tools 3 Beispiel 4 Typische Anwendungsgebiete © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Realisierung von OOP in IEC 61131-3 Begriffe Interface Gibt einem Ding einen Namen und legt fest, welche Funktionen Objekte dieser Art bieten müssen. Klasse Legt ein (oder mehrere) Interfaces sowie die Daten fest, die zu Objekten dieser Klasse gehören. Objekte Tatsächliche Daten mit den dazugehörigen Funktionen, wie sie in einer Klasse beschrieben sind. Methode Eine im Interface beschriebene Funktion. Methoden können mit <Objektname>.<Methodenname>() aufgerufen werden. 7 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Realisierung von OOP in IEC 61131-3 Integration in IEC 61131-3 Objektorientiertes Programmieren war in den früheren Versionen der Norm nicht enthalten. Normerweiterung mit OOP ist mittlerweile erfolgt (2013) Erweitert die IEC 61131-3 um Java-Sprachmittel Das Konzept basiert auf Funktionsbausteinen. In CODESYS V3: Von Anfang implementiert Optionale Erweiterung, d. h. kein Zwang zum objektorientierten Programmieren! 8 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Realisierung von OOP in IEC 61131-3 Integration in CODESYS Interface: neuer Objekttyp (wie globale Variablenliste, POU etc.) Klasse: Ein Funktionsbaustein ist eine Klasse mit genau einer Methode. Ein FB wir auf volle Klassenfunktionalität erweitert. Objekte: Instanzen von Funktionsbausteinen Methoden: Funktionen zu Interfaces und Funktionsbausteinen, die mit dem Interface/ dem Funktionsbaustein fest verbunden sind, auf den Daten des Funktionsbausteins arbeiten, wie eine Funktion Eingänge, einen Rückgabewert und lokale Variablen haben können. 9 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Realisierung von OOP in IEC 61131-3 Neue Schlüsselwörter IMPLEMENTS Ein Funktionsbaustein realisiert (implementiert) ein bestimmtes Interface. Er muss alle Methoden des Interfaces realisieren. EXTENDS Vererbung: Ein Funktionsbaustein übernimmt Funktionen und Daten eines anderen Funktionsbausteins und erweitert diesen um eigene Funktionen und Daten bzw. überschreibt Funktionen. 10 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Realisierung von OOP in IEC 61131-3 Weiterer Begriff Polymorphismus Eine Methode wird aufgerufen. Erst zur Laufzeit kann entschieden werden, welche Implementierung tatsächlich ausgeführt wird. 11 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Agenda 12 1 Warum Steuerungen objektorientiert programmieren? 2 Umsetzung von OOP innerhalb eines IEC 61131-3-Tools 3 Beispiel 4 Typische Anwendungsgebiete © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäudemanager Aufgabe: In einem Gebäude gibt es verschiedene Raumtypen: Den einfachen Raum Den erweiterten Raum Den Raum mit Klimaanlage Tag-Modus: Alle Lichter werden ausgemacht. Heizung wird hochgedreht. Nacht-Modus: Alle Lichter werden angemacht. Heizung fährt herunter. 13 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäude-Manager Tagbetrieb Nachtbetrieb Tagbetrieb Nachtbetrieb 14 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäude-Manager Raumtyp 1 Raumtyp 2 Raumtyp 2 Raumtyp 3 15 Raumtyp 1 Raumtyp 3 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäude-Manager Raumtyp 1 Raumtyp 2 Überschreiben Raumtyp 3 Überschreiben 16 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäude-Manager r1 r3 r5 r7 17 r2 r4 r6 r8 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Beispiel Gebäude-Manager Schleife ruft unterschiedliche Objekte anhand des identischen Interfaces auf 18 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Agenda 19 1 Warum Steuerungen objektorientiert programmieren? 2 Umsetzung von OOP innerhalb eines IEC 61131-3-Tools 3 Beispiel 4 Typische Anwendungsgebiete © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Typische Anwendungsfälle Einsatz unterschiedlicher Antriebe mit jeweils gleichen Methoden Einsatz unterschiedlicher Kommunikationssysteme mit jeweils ähnlichen Kommandos Einsatz unterschiedlicher Maschinenmodule mit einer einheitlichen / ähnlichen Kommandoschnittstelle 20 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Fazit Vorteile Applikation kann flexibel verändert und erweitert werden. Bessere Wartbarkeit des Applikationscodes Applikationscode ist leichter wiederverwendbar. Bessere Kapselung OOP wird für viele Bibliotheken innerhalb von CODESYS bereits eingesetzt, Aufruf dennoch funktional! 21 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Fazit Nachteile Bei kleineren Anwendungen: schlechtere Performance OOP ist derzeit (noch) nicht Teil der Ausbildung von Steuerungsprogrammierern 22 © 3S-Smart Software Solutions GmbH Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Fazit Die Komplexität von Steuerungsaufgaben steigt Die Objektorientierung wird einen festen Platz in der Steuerungswelt finden. Die Objektorientierung hat bereits einen festen Platz in der Steuerungswelt gefunden (wenn auch nur in Bereichen, in den sie sinnvoll ist). Objektorientierte Programmierung wurde von Anfang an in CODESYS V3 implementiert 23 © 3S-Smart Software Solutions GmbH Inspiring Automation Solutions Vielen Dank für Ihre Aufmerksamkeit! CODESYS® ist ein eingetragenes Warenzeichen der 3S-Smart Software Solutions GmbH. Druckfehler, Irrtümer und technische Änderungen vorbehalten. Vervielfältigung (auch nur auszugsweise) und Weitergabe nur nach vorheriger Genehmigung. 24 © 3S-Smart Software Solutions GmbH
© Copyright 2025 ExpyDoc