Melden Sie sich kostenfrei an, um Artikel vollständig zu lesen...
News und Promotion-Beiträge sind ohne Registrierung kostenfrei zu lesen
Login

Passwort vergessen?
Registrieren
   

Passwort ist zu kurz (mind. 8 Zeichen).
Bild: Tarik Kizilkaya, iStock
Automation meets IT (Teil 2)

2 Bewertungen

Wie aus Berührungspunkten Pluspunkte werden

Text: Roland Wagner, 3S-Smart Software Solutions
Programmiertools für Informationstechnik (IT) und Automation besitzen zahlreiche Annäherungs- und Berührungspunkte, obwohl sie sich aufgrund verschiedener Anforderungen unterschiedlich entwickelt haben. Fertige Code-Bausteine, objektorientierte Programmierung und Software zur Optimierung vereinen beide Welten zunehmend.

Ob Endanwender-Lösung aus der IT oder Industrie-Steuerung – die zu Grunde liegende Systemplattformen werden immer ähnlicher. Meist sind Standard-CPUs von ARM oder Intel-kompatible Derivate im Einsatz, hinzu kommen ein Betriebssystem mit dem dafür erforderlichen Speicherausbau und die Anbindung von Netzwerken bis hin zum Internet. Techniken und Parameter der IT sind damit auch in der Automatisierung allgegenwärtig, bis hinein in die Feldebene. Viele Fachkräfte der Automatisierungstechnik verfügen mittlerweile über gute IT-Kenntnisse. Einerseits, um die genannten Techniken anwenden zu können, andererseits, um die Effektivität bei Realisierung der Applikation zu steigern. Und so ist es keine Seltenheit, dass Steuerungsentwickler auch die Techniken der Programmierung von IT-Software nutzen.

Code wiederverwenden

Es hat sich bei der Programmierung bewährt, Software in wiederverwendbare Bausteine (Bibliotheken) zu modularisieren. Dennoch werden Applikationsprogramme in der Automatisierung teilweise immer noch nach dem klassischen Muster erstellt: „Nimm die rund 2500 Zeilen des Programmcodes der vorherigen, ähnlichen Applikation, prüfe manuell jede Zeile und passe die fraglichen Stellen an die spezifischen Eigenschaften der neuen Maschine an.“ Diese Vorgehensweise birgt großes Fehlerpotential und ist nicht sonderlich effizient. In modernen IEC 61131-3-Tools wie Codesys kann der Applikationsentwickler solchen Code in Bibliotheksbausteinen ablegen und ihn später wiederverwenden.

Die Programmbausteine kann er nicht nur versionieren, sondern innerhalb des Programmcodes im Format reStructuredText auch dokumentieren. Damit stehen diese Bausteine ihm selbst, Kollegen oder Kunden innerhalb eines anderen Projekts zur problemlosen Wiederverwendung zur Verfügung. Im Bibliotheksmanager werden die Aufrufschnittstellen und die hinterlegte Dokumentation angezeigt. Optional kann diese Dokumentation sogar in die Online-Hilfe integriert werden.

Objektorientierung

In der IT hat sich die Anwendung des Programmierparadigmas der objektorientierten Programmierung (OOP) für komplexere Software seit Jahren bewährt. Zwar wurden mit der Einführung der IEC 61131-3 bereits erste Ansätze davon angelegt, wie Funktionsbausteine und Aktionen. Echte OOP wurde aber erst vor wenigen Jahren in die Norm aufgenommen. Größere Automatisierungsprojekte sind oft ähnlich komplex wie IT-Software, so dass sich OOP für den Anwender lohnen kann:

  • Schnittstellen für wiederkehrende Bausteine anhand von Methoden und Properties definieren;

  • Funktionsbausteine als Klassen anlegen und darin definierte Schnittstellen mit ihren Methoden und Properties implementieren;

  • so erstellte Klassen erweitern (ableiten) und somit Funktionalität vererben;

  • geerbte Methoden gegebenenfalls überladen;

  • die Abarbeitung über eine Instanzierung per Schnittstelle dynamisch ansteuern.

SPS-Programme werden durch die Objektorientierung besser strukturiert und übersichtlicher. Allerdings versteht nicht jeder SPS-Programmierer die objektorientierte Codierung. Es hat sich deshalb bewährt, dass Entwickler komplexe Systemteile der Applikationssoftware unter Verwendung von OOP erstellen. Der SPS-Programmierer an der Maschine kann wie gewohnt funktional auf diese Bausteine zugreifen und sie für den Maschinenablauf verwenden. Im Codesys Development System wurden sämtliche vom Hersteller gelieferten, systemnahen Bibliotheken objektorientiert erstellt. Bei der Verwendung der integrierten Visualisierung, von Feldbus-Funktionen oder Motion-Bausteinen merkt der Anwender davon aber nichts.

Zusatztools zur Unterstützung

Um die Komplexität beherrschen zu können, verwenden Software-Entwickler neben den programmatischen Mitteln auch Zusatztools. Die Modellierung einer Aufgabe kann ein wertvolles Kommunikationsmedium zwischen dem Technologen sein, der den Prozess definiert, und dem Software-Entwickler, der ihn dann codiert. In einem UML-Zustandsdiagramm erstellt, kann ein solcher Prozessablauf vom Software-Entwickler sofort in seinem Applikationscode übernommen werden. Andersherum kann der Softwerker dem Technologen anhand eines UML-Klassendiagramms einen grafischen Überblick über die Struktur und die Abhängigkeiten seiner Software vermitteln.

Arbeiten in der IT mehrere Entwickler an einem Projekt, soll es über einen langen Zeitraum gepflegt und dabei vielleicht sogar in verschiedenen Zweigen weiterentwickelt werden, so bietet sich der Einsatz eines Versionsverwaltungssystem an. Mit einem Tool wie Apache Subversion lässt sich die gemeinsame Weiterentwicklung einfach organisieren und nachvollziehen.

Vor der Freigabe einer Software in der IT wird der bereits syntaktisch korrekte Code oft zusätzlich statisch geprüft. Der Quellcode wird dazu auf typische Problemquellen, die Einhaltung von Programmierrichtlinien oder dessen Komplexität beziehungsweise Verschachtelungstiefe untersucht – von einem Kollegen oder effektiver durch entsprechende Zusatztools. Findet und korrigiert der Entwickler mögliche Problemstellen, so profitiert er von qualitativ besserer Software, denn er hat damit weniger Probleme bei Inbetriebnahme und dem produktiven Betrieb.

Nützlich ist die Prüfung der Software auf deren Laufzeitverhalten und Performance. Dieses sogenannte Profiling wird direkt auf dem Zielgerät durchgeführt und bringt wertvolle Erkenntnisse über Programmbausteine, die unter Umständen überproportional viel Abarbeitungszeit in Anspruch nehmen, sowie potentielle Laufzeitprobleme. Mit den Ergebnissen lässt sich wiederum der Code effektiver gestalten. Dadurch können spätere Fehler vermieden werden, die andernfalls nur durch aufwendige Analyse gefunden werden könnten.

Zusätzlich zu statischer Code-Analyse und Profiling wird die Funktion der Software mit manuellen oder besser Tool-geführten, automatisierten Tests abgeprüft. Die Entwicklung solcher Test-Automaten beansprucht zunächst einmal einen beträchtlichen Aufwand. Er wird durch deutliche Einsparungen kompensiert, wenn die Funktionsprüfung mehrmalig erfolgen muss, wie bei dauerhafter Weiterentwicklung der Software und entsprechenden Regressionstests.

Sind solche Zusatztools nahtlos in die IEC61131-3-Oberfläche integriert, so können Automatisierer den gleichen Komfort nutzen. Die Codesys Professional Developer Edition beinhaltet genau solche Tools für die Automatisierungstechnik. Damit steht Automatisierern der Komfort von IT-Systemen in ihrer gewohnten Entwicklungsoberfläche zur Verfügung.

Teil der Entwicklungskette

Auch externe Systeme helfen in der IT die Effizienz bei der Realisierung von Software-Projekten zu steigern. So sind mathematische Software-Systeme zur Simulation und Optimierung von Algorithmen und Verfahren weit verbreitet. Deren Ergebnisse lassen sich direkt in Software-Quellcode exportieren und dann weiterverwenden – für IT- und auch Automatisierungsanwendungen. Mit entsprechenden Erweiterungen kann ST-Programmcode direkt aus Matlab/Simulink erzeugt und in IEC61131-3 Tools verwendet werden.

Hersteller von Codesys-kompatiblen Geräten können ihren Kunden eine direkte Integration von C-Code ermöglichen. Anwender haben damit die Option, generierten C-Code oder bestehende
C-Algorithmen aus früheren Anwendungen direkt in ihr IEC61131-3-Projekt einzubinden.

Vorteilhaft kann auch die Anbindung an externe Systeme sein. So bietet die Entwicklungsumgebung des Herstellers an, per Zusatzoption die I/O-Konfiguration aus CAE-Tools wie Eplan oder WSCad übernehmen. Darüber hinaus stehen Bibliotheken zur Verfügung, mit denen die Steuerung Daten ohne eigene Programmierung in Cloud-Systeme übertragen, mit Robotersteuerungen kommunizieren sowie E-Mails oder SMS verschicken kann. Auch dies ist ein wichtiger Schritt zur Akzeptanz: die nahtlose Integration in den Arbeitsablauf des Automatisierers.
Teil 1: http://bit.ly/1PmV8S8

Bildergalerie

Firmen zu diesem Artikel

Nach oben