IEC 61131-3: Unit-Tests

Unit-Tests sind ein unentbehrliches Hilfsmittel für jeden Programmierer, um die Funktionsfähigkeit seiner Software sicherzustellen. Programmfehler kosten Zeit und Geld, daher benötigt man eine automatisierte Lösung, um diesen Fehlern auf die Spur zu kommen – und zwar möglichst bevor die Software zum Einsatz kommt. Unit-Tests sollten überall dort eingesetzt werden, wo professionell Software entwickelt wird. Dieser Artikel soll einen schnellen Einstieg und ein Verständnis für den Nutzen der Unit-Tests ermöglichen.

Continue reading “IEC 61131-3: Unit-Tests”

IEC 61131-3: UNION erweitern per Vererbung

In dem Post IEC 61131-3: Weitere Spracherweiterungen bin ich kurz auf die UNION eingegangen. Ein Leserkommentar hat mich auf die Möglichkeit hingewiesen, dass auch eine UNION per EXTENDS erweitert werden kann. Da dieses die Handhabung einer UNION vereinfacht und die Norm auch nicht darauf hinweist, will ich diese Möglichkeit in einem (sehr) kurzen Post vorstellen.

Continue reading “IEC 61131-3: UNION erweitern per Vererbung”

IEC 61131-3: Parameterübergabe per Parameterliste

Parameterlisten sind eine interessante Variante, Parameter an SPS-Bibliotheken zu übergeben. Genaugenommen handelt es sich um globale Konstanten (VAR_GLOBAL CONSTANT), deren Initialisierungswerte im Library Manager editierbar sind.

Continue reading “IEC 61131-3: Parameterübergabe per Parameterliste”

IEC 61131-3: Methoden, Eigenschaften und Vererbung (Update)

Eine bewährte Methode um die Komplexität von Softwaresystemen zu bewältigen ist die objektorientierte Programmierung (OOP). Bisher eine Domäne von Programmiersprachen wie C++, Java oder C#, steht dieses Konzept mit der IEC 61131-3 auch der SPS-Programmierung zur Verfügung.

Continue reading “IEC 61131-3: Methoden, Eigenschaften und Vererbung (Update)”

IEC 61131-3: Namensräume

Mit der 3rd Edition der IEC 61131-3 wurde das Prinzip der Namespaces (Namensräume) eingeführt. Namespaces gruppieren Elemente wie Variablen, Bausteine, Datentypen und Bibliotheken in zusammengehörige Einheiten. Ein Element wird dadurch nicht mehr nur durch seinen Namen, sondern auch durch seinen zugehörigen Namespace benannt.

Continue reading “IEC 61131-3: Namensräume”

IEC 61131-3: Das Command Pattern

Durch den Aufruf einer Methode kann an einem Funktionsblock ein Befehl ausgeführt werden. Funktionsblock A ruft eine Methode von Funktionsblock B auf. So weit so gut. Doch wie lässt sich der Austausch solcher Befehle zwischen mehreren Funktionsblöcken flexibel gestalten? Das Command Pattern liefert hier einen interessanten Ansatz.

Continue reading “IEC 61131-3: Das Command Pattern”

IEC 61131-3: Arrays mit variabler Länge

Bei der Deklaration von Arrays musste bisher immer eine konstante Größe angegeben werden. Ab der 3rd Edition der IEC 61131-3 können Arrays mit einer variablen Länge deklariert werden. Funktionen lassen sich dadurch deutlich generischer anlegen als bisher.

Continue reading “IEC 61131-3: Arrays mit variabler Länge”

IEC 61131-3: Coding Guidelines

Der Wunsch, die Qualität von Software zu erhöhen, ist sehr wahrscheinlich nur unwesentlich jünger als die Softwareentwicklung an sich. Gerade bei großen Projekten mit mehreren Entwicklern, sollte zu Beginn ein Regelwerk festgelegt werden, welches die Richtlinien für die Softwareentwicklung definiert. Erfreulicherweise hat die PLCopen vor einiger Zeit einen Entwurf speziell für die IEC 61131-3 veröffentlicht.

Continue reading “IEC 61131-3: Coding Guidelines”

IEC 61131-3: Das Abstract Factory Pattern

Sollen Instanzen eines Funktionsblocks anlegt werden, so muss vor dem Compilieren der genaue Typ des Funktionsblocks bekannt sein. Durch diese feste Zuordnung kann das Verhalten einer Anwendung nur schwer erweitert werden. Dieses ist z.B. der Fall, wenn sich der Funktionsblock in einer Bibliothek befindet und somit der Zugriff auf den Quellcode nicht möglich ist. Die Instanz-Variable ist fest an einen bestimmten Typ gebunden. Eine Klassenfabrik kann helfen diese starren Strukturen aufzubrechen.

Continue reading “IEC 61131-3: Das Abstract Factory Pattern”

IEC 61131-3: Objektkomposition mit Hilfe von Interfaces

Während der Begriff der Vererbung gerne und häufig verwendet wird, so wird der Einsatz von Interfaces eher selten behandelt. Dabei bieten Interfaces etliche Vorteile, die die Flexibilität eines SPS-Programms erhöhen und auch die Wartbarkeit verbessern. Der folgende Post soll die Möglichkeiten von Interfaces in Zusammenhang mit der IEC 61131-3 vorstellen.

Continue reading “IEC 61131-3: Objektkomposition mit Hilfe von Interfaces”