Kapitel 7: Fragen und Antworten

kapitelIn Methoden wird der Code bzw. die Logik eines Funktionsbausteins entwickelt. Sie werden in CoDeSys als Funktionen realisiert.

Die Eigenschaften (Properties) eines Funktionsbausteins geben seinen Status an. Man kann durch GET- und SET-Methoden Eigenschaften auslesen bzw. verändern. 4 fertig

Methoden dienen zur Ansteuerung von Feldgeräten, z.B. zum Ein- und AUsschalten eines Motors, zur Anwahl der Betriebsart oder Aktivierung eines Reglers.

Die Eigenschaften (Properties) von Funktionsbausteinen geben ihren Status an, z.B. ob ein Motor
läuft oder nicht, welchen Messwert ein Sensor einliest, in welcher Betriebsart eine
Einzelsteuerfunktion ist.

Einer Schrittkette oder anderen Programmen werden Sensordaten als Eigenschaften zur Verfügung gestellt. Die Ansteuerung der Feldgeräte aus der Schrittkette heraus erfolgt durch Methoden.

Folgendes Übersichtsbild zeigt, welche Methoden und Eigenschaften für einzelne Feldgerätetypen nützlich sind:

Ein Funktionsbaustein kann seine Methoden und Eigenschaften an einen anderen Funktionsbaustein
vererben. Dies ist vor allem sinnvoll, wenn beide Funktionsbausteine große
Teile der Software gemeinsam nutzen, wie im Fall der Funktionsbausteine TYP_IDF1
und TYP_IDF2 für Motoren mit ein bzw. zwei Drehrichtungen.

Durch das Schlüsselwort EXTENDS in der Deklaration

FUNCTION_BLOCK TYP_IDF2 EXTENDS TYP_IDF1

werden die Methodenund Eigenschaften vom Funktionsbaustein TYP_IDF1 an den Funktionsbaustein
TYP_IDF2 vererbt. Somit müssen sie nicht noch einmal im Funktionsbaustein TYP_IDF2 programmiert
werden.

Geerbte Methoden können überschrieben werden, indem die Eltern-Methode mit

SUPER^.Methode();

in der neuen Methode aufgerufen und dann verändert wird.

Eine Schnittstelle (Interface) listet alle Methoden und Eigenschaften einer Klasse auf. Schnittstellen
enthalten jedoch nur die Deklaration, keine Implementation der Methoden und Eigenschaften.
Der Code wird immer innerhalb des Funktionsbausteins implementiert.

Bei der Deklaration des Funktionsbausteins wird durch den Befehl IMPLEMENTS der Bezug zur Schnittstelle
angegeben, wie z.B. durch:

FUNCTION_BLOCK TYP_IDF1 IMPLEMENTS Drive1

Die Schnittstelle selbst stellt sozusagen nur die leere Hülle eines Funktionsbausteins dar.
Schnittstellen können wie Funktionsbausteine auch vererbt werden, z.B. durch die Definition

INTERFACE Drive2 EXTENDS Drive1

Schrittketten können Methoden und Eigenschaften von Funktionsbausteinen aufrufen.

Dabei dient das Rezept dazu, die Schrittketten zum richtigen Zeitpunkt aufzurufen. Genauso wie eine Schrittkette (SFC)
mehrere Programme zur Ansteuerung der Feldgeräte (CFC) aktiviert, koordiniert eine Rezeptsteuerung, wann welche Schrittkette ablaufen soll.

Ein Rezept besteht aus einer Aneinanderreihung mehrerer Grundoperationen als Schrittkette. Eine Grundoperation ist eine Schrittkette, die mehrerer Grundfunktionen ananeinanderreiht. Eine Grundfunktion ist der kleinste Verfahrensschritt, in den man den Herstellungsprozess zerlegen kann. Sie wir auch als Schrittkette programmiert und steuert die Feldgeräte an.

Schritt 1: Zerlegung des Prozesses in verschiedene Tätigkeiten, die zur Herstellung des Produktes automatisiert oder manuell durchgeführt werden müssen.

Schritt 2: Entwurf von Grundfunktionen, die die ermittelten Tätigkeiten in Form von Ablaufketten unabhängig von bestimmten Geräten in der Anlage modellieren.

Schritt 3: Komposition des Rezepts durch Zusammensetzung der Grundfunktionen zu Grundoperationen und der Grundoperationen zum Grundrezept.

Schritt 4: Zuordnung der Feldgeräte in der Anlage zu den Grundfunktionen.

Ploymorph heißt vielschichtig. Funktionsbausteine sind polymorph, wenn sie auf unterschiedliche Arten genutzt werden können.  Dies ist der Fall, wenn sie gleichnamige Methoden einer Schnittstelle nutzen, die unterschiedlich implementiert sind.

Beispielsweise können Grundfunktionen unterschiedliche Motortypen über die Methode ON1 ansteuern. Ist der Grundfunktion ein Ein/Aus-Motor mit der Schnittstelle Drive zugeordnet, wird in der Methode ON1 des Bausteins TYP_IDF1 ein Relais angesteuert, das den Motor aktiviert.

Ist der Grundfunktion dagegen ein Schrittmotor mit der gleichen Schnittstelle Drive zugeordnet, startet die Methode ON1 im Funktionsbaustein TYP_SMOT ein Taktsignal, das den Schrittmotor aktiviert. Die gleiche Methode ON1 ist also in den Funktionsbausteinen TYP_IDF1 und TYP_SMOT unterschiedlich implementiert. Die Grundfunktion, die die Methode ON1 startet, weiß nicht welchen Motortyp sie aktiviert. Sie kann also unterschiedliche Motortypen ansteuern.

Auf die gleiche Art können auch unterschiedliche Regler (z.B. PID-Regler oder Dreipunktregler) angesteuert werden.

  • Nachteil:
    • Ansteuerlogik wird verteilt auf zahlreiche Methoden und Eigenschaften und ist nicht mehr auf einem Blick im Funktionsplan überschaubar.

  • Vorteile:
    • Weniger Programmieraufwand insbesondere bei Erweiterungen, weil durch Vererbung
    • viel Code nicht noch einmal programmiert werden muss.
    • Übersichtliche Strukturen durch Methoden und Eigenschaften, mit denen der Datenverkehr
    • zwischen Ansteuerprogrammen (und Schrittketten) statt mit globalen Variablen organisiert wird.
    • Anlagenneutrale Planung des Prozessablaufs durch polymorphe Grundfunktionen
    • mit abstrakten Schnittstellen, für die im Rahmen des Rezepts nachträglich unterschiedliche
    • Feldgeräte zugeordnet werden können.

Speicherprogrammierbare Steuerungen für die Fabrik- und Prozessautomation

4. Auflage erschienen im Hanser Verlag, 2015