Digital Engineering Magazin

TITELSTORY

- › von Stefan Kläber ‹ RT Stefan Kläber arbeitet im Marketing S7 & TIA Portal bei der Siemens AG.

Die Verschmelz­ung von IT und OT ist ein viel zitiertes Ziel der fortschrei­tenden Digitalisi­erung. Ein konkretes Anwendungs­beispiel ist Continuous Integratio­n: Dieser Prozess hilft, die Engineerin­gkosten in der Automatisi­erung zu reduzieren.

Die Verschmelz­ung von IT und OT ist ein viel zitiertes Ziel der fortschrei­tenden Digitalisi­erung. Ein konkretes Anwendungs­beispiel ist Continuous Integratio­n: Dieser Prozess zur Steigerung der Softwarequ­alität hilft, die Engineerin­g-kosten in der Automatisi­erung zu reduzieren.

Das Engineerin­g zählt im Maschinenb­au nicht nur zu den wesentlich­en Bestandtei­len, sondern auch zu den größten Zeitfresse­rn. Während die Hardware-kosten eher stagnieren, wachsen die Aufwände – und somit die Kosten – für das Engineerin­g aufgrund immer leistungsf­ähigerer und komplexere­r Maschinenk­onzepte. Moderne Engineerin­g-tools wie das Totally Integrated Automation Portal (TIA Portal) von Siemens unterstütz­en die Programmie­rung von speicherpr­ogrammierb­aren Steuerunge­n (SPS) durch zahlreiche Werkzeuge und Komfort-funktionen. Doch das ist nicht alles. Im It-bereich gibt es viele Methoden und Prozesse, um die Software-entwicklun­g zu optimieren und zugleich die Qualität der Ergebnisse zu verbessern. Ein solcher Prozess ist Continuous Integratio­n (kontinuier­liche Integratio­n), der sich auch auf das Engineerin­g in Automatisi­erungsproj­ekten anwenden lässt und zahlreiche Vorteile bietet.

Turbo für die Software-entwicklun­g

Aber was genau ist Continuous Integratio­n? Dieser Prozess ermöglicht Entwickler­n,

ihre Änderungen so oft wie notwendig in die gemeinsame Quellcode-basis zu integriere­n sowie diese automatisi­ert zu generieren und zu testen. Dabei wird das Ziel verfolgt, Integratio­nsprobleme frühzeitig zu erkennen. In der Praxis bedeutet dies, dass traditione­lle Vorgehensw­eisen bei der Software-entwicklun­g durch agiles interdiszi­plinäres Arbeiten im Team abgelöst werden. Mehrere Programmie­rer arbeiten zusammen als Team an einem Tia-portal-projekt. Jeder Entwickler bearbeitet die ihm zugeordnet­en Softwaremo­dule anhand eines standardis­ierten Programmie­rleitfaden­s und checkt die Ergebnisse in einer Versionsve­rwaltung ein. Ein Continuous-integratio­n-server kann automatisi­ert aus den einzelnen Software-modulen einen Build erstellen und die Funktionen der Software automatisi­ert testen. Das Ergebnis der Tests wird als Bericht an die Programmie­rer zurückgesp­ielt, damit diese – wenn nötig – Korrekture­n vornehmen können. Der kontinuier­liche Kreislauf aus Build, Test und Feedback verbessert die Software-qualität und spart Entwicklun­gszeit. Gleichzeit­ig wird die Fehlersuch­e und -behebung anhand überschaub­arer, logisch-geschlosse­ner Programmse­gmente vereinfach­t und (teil-) automatisi­ert.

Standardis­ierung beseitigt Insellösun­gen

Damit sich Continuous Integratio­n in der Automatisi­erung einsetzen lässt, sind bestimmte Voraussetz­ungen notwendig. Stichwort Standardis­ierung: Im Maschinenb­au ist es heute noch häufig gang und gäbe, dass die Programmie­rung der Steuerunge­n unabhängig von anderen Arbeitssch­ritten erfolgt und die Entwickler am Ende des Entwicklun­gsprozesse­s von Maschinen stehen. Dies hat zur Folge, dass der SPS-CODE oft erst spät in der Entwicklun­gsphase einer Maschine geprüft wird beziehungs­weise geprüft werden kann. Dabei gilt: Je später Fehler entdeckt werden, umso aufwändige­r ist deren Behebung. Wenn mehrere Entwickler an einem Projekt arbeiten, fehlt oft die Transparen­z bei Änderungen, da es an den nötigen Werkzeugen mangelt. Und jeder Entwickler pflegt gerne seinen eigenen Stil, was Namens

gebung, Struktur und Ähnliches betrifft. Im ersten Schritt muss daher die Entwicklun­g standardis­iert werden, damit man von einer einheitlic­hen Datenbasis, nahtlos miteinande­r verbundene­n Workflows und durchgängi­gen Schnittste­llen profitiert. Damit können alle Diszipline­n effizient, zeitgleich und sicher an einem gemeinsame­n Automatisi­erungsproj­ekt arbeiten.

Evolution der Softwareen­twicklung

Im Automatisi­erungs-engineerin­g fehlen oft die Voraussetz­ungen für testgetrie­bene Entwicklun­gen, kontinuier­liche Software-anpassunge­n (Refactorin­g) oder schnelle Code-reviews. In der IT sind Methoden der agilen Software-entwicklun­g dagegen längst verbreitet und werden gerne eingesetzt, wenn Transparen­z und Flexibilit­ät wichtig sind, um die Software bei hohen Qualitätss­tandards dennoch rasch einsetzen zu können. Dabei sind Konzepte der agilen Entwicklun­g, wie sie in der IT zur Anwendung kommen, auch in der Automatisi­erung möglich: Dank der Anbindung an leistungsf­ähige Tools für eine Versionsko­ntrolle und der Standardis­ierung von Software-modulen lässt sich die Versionier­ung des Quellcodes sinnvoll und effizient einsetzen. Eine Versionsve­rwaltung dient zur Erfassung von Änderungen an Software-objekten und Dokumenten entlang des gesamten Maschinenl­ebenszyklu­s. Alle Versionen werden mit Zeitstempe­l und Benutzerke­nnung versehen. Der Anwender kann jede Version problemlos wiederhers­tellen. Zu den wichtigste­n Vorteilen der Versionsve­rwaltung für Automatisi­erer gehören die

Koordinier­ung des gemeinsame­n Zugriffs von mehreren Entwickler­n auf die Objekte, die Transparen­z über Änderungen und die gleichzeit­ige Bearbeitun­g mit mehreren Entwicklun­gszweigen („Branches“) eines Projektes. Bekannte Beispiele für Versionsve­rwaltungs-software sind Git, Subversion (SVN) und Tfvc (TFS).

Testen und berichten: Ein Job für den Job

Der Quellcode auf dem Versionsve­rwaltungss­ystem lässt sich nun für die Erstellung eines testfähige­n Builds – ein Tia-portal-projekt mit notwendige­n Software-elementen – nutzen. Ziel ist es, das Generieren von Testprojek­ten nicht von Hand auszuführe­n, sondern automatisi­ert abzuarbeit­en, indem der Programmie­rer einen entspreche­nden Testfall auf dem Continuous-integratio­n-server erstellt. Dieser Job startet den Build auf dem Automatisi­erungs-pc und soll auch den automatisi­erten Funktionst­est und die Prüfung von Programmie­rregeln starten. Anschließe­nd wird der Job die Logs und Testergebn­isse einsammeln sowie die Exit-codes analysiere­n und das Ergebnis dem Programmie­rer zur Verfügung stellen. Die für die Detaildiag­nose notwendige­n Informatio­nen wie Logs und Daten sind Bestandtei­l des Berichts.

TIA Portal als Schaltstel­le für Continuous Integratio­n

Das TIA Portal als Engineerin­g-framework enthält ein umfangreic­hes Bibliothek­skonzept zur Unterstütz­ung der Standardis­ierung und ermöglicht die Parallelis­ierung der Workflows. Tia-portal-funktionen wie Multiuser Engineerin­g, Test Suite und Version Control Interface liefern Antworten

auf die genannten Anforderun­gen zur Realisieru­ng von Continuous Integratio­n. Doch Technologi­e allein genügt nicht. Das Unternehme­n muss die Bereitscha­ft zur Veränderun­g mitbringen und die unterschie­dlichen Diszipline­n zusammenfü­hren, so dass Mechanik, Elektrik und Automatisi­erung gemeinsam und zeitgleich an einem Projekt arbeiten können. Die Itabteilun­g des Unternehme­ns muss ebenfalls eingebunde­n werden und die nötigen Server und Tools bereitstel­len.

In kleinen Schritten zur digitalen Transforma­tion

Die Vorteile von Continuous Integratio­n liegen auf der Hand: Der Kreislauf aus raschen Änderungen und automatisi­erten Funktionst­ests mindert das Fehlerrisi­ko, steigert die Software-qualität und schafft einen transparen­ten Entwicklun­gsprozess. Zudem sorgen automatisi­erte Abläufe für Konsistenz und reduzieren den Zeitaufwan­d für das Engineerin­g. Continuous Integratio­n ist ein Schritt von vielen auf der Reise durch die digitale Transforma­tion. Mit Standardis­ierung als Basis der Digitalisi­erung können schon heute Automatisi­erungs-teams diverse Vorteile nutzen und ihre Erfahrunge­n schrittwei­se ins ganze Unternehme­n übernehmen. Die Standardis­ierung ist damit der ideale Einstiegsp­unkt, um schrittwei­se einen vollständi­g kontinuier­lichen Entwicklun­gsprozess umzusetzen. Darauf aufbauend lässt sich Continuous Integratio­n Schritt für Schritt umsetzen und gleicherma­ßen für kleine wie auch sehr umfangreic­he Projekte anwenden.

 ??  ?? Grundprinz­ip der Software-entwicklun­g mit Continuous Integratio­n.
Grundprinz­ip der Software-entwicklun­g mit Continuous Integratio­n.
 ??  ??
 ??  ??
 ??  ?? Anbindung von Versionier­ungssystem­en an das TIA Portal mit dem Version Control
Interface (kurz VCI). Bilder: Siemens
Anbindung von Versionier­ungssystem­en an das TIA Portal mit dem Version Control Interface (kurz VCI). Bilder: Siemens

Newspapers in German

Newspapers from Germany