S7-200 Systemhandbuch
Beispiel: Operation Unterprogramm aufrufen
Es gibt zwei Beispiele in AWL. Der erste Satz AWL-Operationen kann nur im AWL-Editor angezeigt werden,
weil die BOOL-Parameter für die Signalflusseingänge nicht im Lokaldatenspeicher abgelegt sind.
Der zweite Satz AWL-Operationen kann auch im KOP- und FUP-Editor angezeigt werden, weil im
Lokaldatenspeicher der Zustand der BOOL-Eingangsparameter abgelegt wird, die in KOP und FUP als
Signalflusseingänge dargestellt werden.
Adressparameter wie IN4 (&VB100) werden als DWORD (vorzeichenloser Doppelwortwert) an ein
Unterprogramm übergeben. Der Type einer Konstante muss für den Parameter in dem
aufrufenden Programm durch einen Konstanten-Bezeichner vor dem Wert der Konstanten
angegeben werden. Wenn beispielsweise eine vorzeichenlose Doppelwortkonstante mit einem
Wert von 12.345 als Parameter übergeben werden soll, muss der Parameter folgendermaßen
angegeben werden: DW#12345. Ohne den Konstanten-Bezeichner kann die Konstante auch für
einen anderen Datentyp gehalten werden.
Der Datentyp der Eingangs- und Ausgangsparameter wird nicht automatisch umgewandelt. Gibt
die lokale Variablentabelle beispielsweise an, dass ein Parameter vom Datentyp REAL ist,
während in dem aufrufenden Programm für diesen Parameter der Datentyp DWORD (Doppelwort)
angegeben wird, ist der Wert im Unterprogramm ein Doppelwort.
Werden Werte an ein Unterprogramm übergeben, werden sie im lokalen Speicher des
Unterprogramms abgelegt. Die Spalte ganz links in der Variablentabelle zeigt für jeden
übergebenen Parameter die lokale Adresse im Speicher an. Die Werte der Eingangsparameter
werden in den lokalen Speicher des Unterprogramms kopiert, wenn das Unterprogramm
aufgerufen wird. Die Werte der Ausgangsparameter werden aus dem Lokaldatenspeicher des
Unterprogramms in die angegebenen Adressen der Ausgangsparameter kopiert, wenn die
Ausführung des Unterprogramms beendet ist.
Größe und Datentyp der Datenelemente werden in der Codierung der Parameter wiedergegeben.
Die Parameterwerte werden dem lokalen Speicher der Unterprogramme folgendermaßen
zugewiesen:
Die Parameterwerte werden dem lokalen Speicher in der Reihenfolge zugewiesen, die von
!
der Operation Unterprogramm mit Parametern aufrufen angegeben wird, und zwar mit
Beginn bei L.0.
Zwischen einem und acht aufeinanderfolgende Bit-Parameterwerte werden einem Byte mit
!
Beginn bei Lx.0 bis Lx.7 zugordnet.
Byte-, Wort- und Doppelwortwerte werden dem Lokaldatenbereich auf Bytegrenzen (LBx,
!
LWx oder LDx) zugewiesen.
In der Operation Unterprogramm mit Parameter aufrufen müssen die Parameter in folgender
Reihenfolge angeordnet werden: zuerst Eingangsparameter, dann Durchgangsparameter, zum
Schluss Ausgangsparameter.
Wenn Sie in AWL programmieren, hat die Operation CALL folgendes Format:
CALL
Nummer des Unterprogramms, Parameter 1, Parameter 2, ... , Parameter.
208
Nur AWL:
Netzwerk 1
LD
E0.0
CALL
SBR_0, E0.1, VB10, E1.0, &VB100, *AC1,
VD200
Für die richtige Darstellung in KOP und FUP:
Netzwerk 1
LD
E0.0
=
L60.0
LD
E0.1
=
L63.7
LD
L60.0
CALL
SBR_0, L63.7, VB10, E1.0, &VB100, *AC1,
VD200