IEC 61131-3

Laufzeitmessung von SPS-Projekten

| Autor / Redakteur: Michael Schwarz / Reinhard Kluger

Michael Schwarz, Produkt Marketing, 3S: „Den vorliegenden Code analysieren und zeitlich optimieren.“
Bildergalerie: 4 Bilder
Michael Schwarz, Produkt Marketing, 3S: „Den vorliegenden Code analysieren und zeitlich optimieren.“ (3S)

IEC 61131-3 In SPS-Applikationen ist die Laufzeitanalyse durch einen Profiler ein wichtiger Baustein, um Überlastungen frühzeitig erkennen und vermeiden zu können. Den Nutzen davon haben nicht nur die Softwareentwicklung, sondern auch alle darauf folgenden Aktivitäten.

Hersteller von Automatisierung haben heute Hardware in verschiedenen Leistungsklassen im Programm. Mit Tools, wie dem Codesys Development System, entwickeln die Anwender dieser Geräte die erforderlichen Steuerungsprogramme in den Sprachen der IEC 61131-3. Sie reizen mit immer mehr Berechnungsschritten die verfügbare Rechenleistung aus, um die funktionalen Anforderungen umzusetzen.

Ein Beispiel: Der Applikationsprogrammierer konfiguriert für die korrekte Funktion seiner Maschine eine Zykluszeit von 20 ms für seine Applikationstask. Diese Zykluszeit ergibt sich aus der erforderlichen Reaktionszeit auf die mechanischen Abläufe. Innerhalb dieser Zeit müssen alle programmierten Funktionen abgearbeitet sein. Eine Verletzung der maximalen Dauer führt unweigerlich zu einem Fehler in der Steuerungsapplikation und damit zu einem Ausfall, schlimmstenfalls sogar zu Schäden an der Maschine.

Um solch einem Laufzeitfehler vorzubeugen kann der Anwender von vornherein eine leistungsfähigere Steuerung einsetzen, die über größere Leistungsreserven verfügt. Damit sinkt jedoch die Wettbewerbsfähigkeit seiner Maschine oder Anlage. Wenn ein bestehendes Produkt um neue Softwarefunktionen erweitert werden soll, ist dies schwierig oder gar unmöglich. Sinnvoller ist es, die Applikationssoftware rechtzeitig zur Inbetriebnahme auf ihre Abarbeitungszeit zu überprüfen - oder noch besser, bereits während des Programmierens. Merkt der Anwender, dass der programmierte Applikationscode die Steuerung an die Grenzen der Leistungsfähigkeit bzw. Zykluszeit führt, so kann er den Applikationscode optimieren, um die Software erfolgreich in Betrieb nehmen zu können. Dazu muss man das zeitliche Verhalten der einzelnen Programmbausteine innerhalb der Applikationstask kennen.

Klassische Möglichkeiten der Laufzeitanalyse

Ohne spezielle Werkzeuge lässt sich keine Laufzeitanalyse mit Bordmitteln in verschiedenen Abstufungen durchführen. Zum einen kann die Prüfung durch die Applikationssoftware selbst erfolgen. Dazu setzt man in der Steuerungssoftware Zeitstempel, die man dann im Rahmen des Programms messen und auswerten kann. Um diese Zeitstempel zu integrieren, muss der Entwickler den Applikationscode an geeigneten Stellen mit den zur Zeitmessung notwendigen Programmteilen erweitern. Ein geringer Aufwand, wenn nur ausgewählte Programmteile mit einer Überwachungsfunktion erweitert werden. Ob der Applikationsprogrammierer damit bereits die relevanten Stellen für eine Performance-Optimierung findet, kann er nur erahnen. Vermutlich wird er sukzessive die „verdächtigen“ Bausteine und deren Ausführungsdauer untersuchen. Auch wenn die zusätzlich angelegten Daten und das Auswerten des Zeitstempels normalerweise die eigentliche Applikation nicht beeinflussen, sollte deren Code nach Abschluss der Optimierung wieder entfernt werden. Ansonsten führt die Laufzeitanalyse selbst zum Performance-Verlust.

Zum anderen ist es möglich, eine indirekte Zeitmessung auf Steuerungsebene durchzuführen. Dazu kann der Applikationsentwickler mit dem Aufruf einzelner Programmbausteine die Ausgänge der Zielhardware beschalten und deren Schaltzeiten mit einer elektronischen Stoppuhr messen. Diese Zeiten lassen sich dann außerhalb der Applikationssoftware auswerten. Mit den gewonnen Ergebnissen ist das Optimieren des Applikationscode wie bei der Softwaremessung möglich. Zusätzlich zur aufwendigen, sukzessiven Annäherung an die relevanten Prorammbausteine hat diese Vorgehensweise eine enge Verknüpfung der Laufzeitanalyse mit der Bereitstellung der eingesetzten Hardware zur Folge. Die Folge: Eine entkoppelte Software-Applikationsentwicklung sowie frühes Testen der Software ist dann nur noch mit erhöhtem Aufwand möglich. Weil zusätzliche Ausgänge zur Zeitmessung benötigt oder verfügbare Ausgänge für die eigentlichen Maschinenfunktionen blockiert werden, ist dieser Ansatz zur Laufzeitanalyse des Applikationsprogramms nicht optimal.

Methodisch unterstützte Laufzeitanalyse

Durch methodische Unterstützung kann man die Laufzeit aller Programmbausteine ohne zusätzliche Hardware oder Applikationssoftware ermittlen. Im weit verbreiteten Codesys Development System stehen bereits in der Taskkonfiguration Informationen über Zyklusdauer und maximale Zykluszeit zur Verfügung. Mit dem Codesys Profiler, als optional integrierbares Zusatztool, erhalten Applikationsentwickler eine Erweiterung, die detaillierte Laufzeitdaten des Steuerungsprogramms auf Programmbaustein-Ebene anzeigt. So kann man den vorliegenden Code analysieren und gezielte Änderungen zur zeitlichen Optimierung vornehmen.

Typisch sind zwei unterschiedliche Anwendungsfälle: So kann im Fehlerfall eine Messung bestehender Systeme durchgeführt werden. Die umfassende Behebung dieser Fehler an der Maschine vor Ort ist jedoch aufgrund des herrschenden Zeitdrucks meist nur schwer möglich. Nachhaltiger Nutzen ist erreicht, wenn die Laufzeitmessung bereits in der Entwicklungsphase eingesetzt wird. Dort lassen sich konzeptionelle Fehler mit geringeren Kosten ermittlen und lösen. Auch dabei ist es nicht ratsam, die Laufzeitanalyse einmalig am Ende einer Entwicklung durchzuführen, da dann erkannte Abweichungen im schlimmsten Fall den Abschluss der Entwicklung stark verzögern. Vielmehr sollte der Anwender die Messungen während der Entwicklung regelmäßig wiederholen, um bereits frühzeitig erste Abweichungen von der Erwartung zu erkennen, um sofort geeignete Gegenmaßnahmen ergreifen zu können.

Ergänzendes zum Thema
 
So lassen sich Abläufe innerhalb einer Task besser verstehen

Inhalt des Artikels:

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43205151 / Engineering-Software)