1 Aufgabe
In Funktionen formulieren Sie Unter-Aufgaben des Programms. Wenn Sie im OB 1 oder einem anderen Baustein eine Funktion aufrufen, werden die Anweisungen der Funktion bearbeitet. Am Ende der Funktion wird die Bearbeitung im aufrufenden Baustein nach dem Aufruf fortgesetzt.
Funktionen können auch geschachtelt aufgerufen werden, d.h. Sie können innerhalb einer Funktion eine weitere aufrufen. Funktionen, die häufig wiederkehrende Aufgaben zu erfüllen haben, können auch mehrfach aufgerufen werden.
2 Parameter
Funktionen können auch mit Parametern (Platzhaltern) versehen werden. Dadurch ist es möglich, die Funktion bei jedem Aufruf mit anderen Ausgangsdaten arbeiten zu lassen und von der Funktion Werte an den aufrufenden Baustein zurückzugeben. Innerhalb einer Funktion werden die Parameter Formal-Parameter genannt.
Bei der Programmierung der Funktion verwenden Sie die Parameter wie Ein- und Ausgänge, Merker oder Datenwörter. Welche Daten dann von der SPS tatsächlich verwendet werden legen Sie beim Aufruf der Funktion fest. Diese Daten heißen dann Aktual-Parameter.
Welche Parameter Ihre Funktion haben soll, legen Sie im Kopf der Funktion fest. Für jeden Parameter müssen Sie diese Eigenschaften festlegen (deklarieren), die im Weiteren erläutert werden:
1. Deklarationstyp |
In,Out,InOut,Temp |
2. Name |
Dadurch bezeichnen Sie den Parameter innerhalb der Funktion |
3. DatenTyp |
Dadurch legen Sie u.a. die Größe des Parameters fest |
4. Anfangswert |
Hat bei Funktionen keine Bedeutung |
5. Kommentar |
Damit auch andere Ihr Programm verstehen können |
3 Deklarationstyp
Bei Funktionen gibt es drei Arten von Parametern und eine Art von Variablen:
• | In - Parameter |
• | Out - Parameter |
• | In - Out – Parameter |
• | Temporäre Variablen |
In-Parameter werden beim Aufruf der Funktion mit dem Wert des Aktual-Parameters belegt. In-Parameter sollten innerhalb der Funktion nur gelesen werden. Sie können sie zwar auch auf In-Parameter schreibenund dann innerhalb der Funktion mit dem geänderten Wert arbeiten, aber diese Änderung wirkt sich nicht auf die Aktual-Parameter im aufrufenden Baustein aus.
Die an Out-Parameter angeschlossenen Operanden werden bei der Rückkehr zum aufrufenden Baustein mit dem in der Funktion ermittelten Wert belegt. Sie können innerhalb einer Funktion Out-Parameter auch lesen, wenn Sie dies jedoch tun, bevor Sie dem Parameter einen Wert zugewiesen haben, wird das Abfrageergebnis zufällig sein, da Out-Parameter beim Aufruf einer Funktion nicht mit dem Wert des angeschlossenen Operanden belegt werden.
In-Out-Parameter schließlich vereinigen das Verhalten der In- und Out-Parameter. Beim Aufruf einer Funktion werden sie mit dem Wert des angeschlossenen Operanden belegt. Sie können innerhalb der Funktion gelesen und verändert werden. Bei der Rückkehr zum aufrufenden Baustein wird der geänderte Wert in den angeschlossenen Operanden übertragen.
Das von TrySim verwendete Parametermodell unterscheidet sich in Details von dem einer S7. Beachten Sie dazu bitte das Kapitel Abweichend implementierte Eigenschaften.
Zur Speicherung von Zwischenergebnissen, die nur innerhalb der Funktion benötigt werden, können Sie die temporären Variablen verwenden.
4 Name
Die Parameter und die Variablen erhalten je einen Namen, den Sie beim Programmieren verwenden, um darauf zuzugreifen. Im Programmcode werden die Namen immer mit einem vorangestellten ‚#‘ (Doppelkreuz,Gartenzaun) gekennzeichnet. Bei eindeutigen Namen, die nicht auch in der Symboltabelle verwendet werden oder einem Schlüsselwort entsprechen, brauchen Sie das Zeichen ‚#‘ nicht einzugeben, lediglich wenn Verwechslungsmöglichkeiten bestehen ist die Eingabe erforderlich.
5 Datentyp
Außer der Festlegung, ob ein Parameter In-, Out- oder InOut- Eigenschaften haben soll, müssen Sie auch den Datentyp des Parameters bestimmen (deklarieren). Das sind z.B.
Typ |
Größe |
Beispiel für anschließbaren Aktualparameter |
---|---|---|
BOOL |
1 Bit |
M 1.2 |
BYTE |
1 Byte |
EB 2 |
CHAR |
1 Byte |
MB 5 |
INT |
2 Bytes |
AW 10 |
WORD |
2 Bytes |
DBW 10 |
REAL |
4 Bytes |
DBD 20 |
Siehe auch: Datentypen
6 Anfangswert
Diese Spalte ist nur bei den Funktionsbausteinen relevant.
7 Kommentar
Hiermit können Sie die Aufgabe der Parameter und Variablen erläutern, sodass auch Andere Ihr Programm verstehen können. Da Sie selbst in spätestens einem Jahr ebenfalls ein “Anderer” sind, sollten Sie von dieser Möglichkeit ausgiebig Gebrauch machen.
8 ENO-Ausgang
Wenn Sie eine Funktion in FUP oder KOP aufrufen, können Sie, in Abhängigkeit von Berechnungsergebnissen in der Funktion, andere Operationen (oder weitere Aufrufe) durchführen lassen, indem Sie sie an den ENO-Ausgang der Funktion anschließen. Die an diesen Ausgang angeschlossenen Operationen werden ausgeführt, wenn das BIE-Bit innerhalb der Funktion auf “1” gesetzt worden ist. Sie werden übersprungen, wenn das BIE-Bit “0” ist.
Siehe auch:
STEP®5, STEP®7, S7-300 und S7-400 sind eingetragene Warenzeichen der Siemens AG.