22.02.2013 Aufrufe

ECCO Manual 1.03.pdf - Horsch Elektronik AG

ECCO Manual 1.03.pdf - Horsch Elektronik AG

ECCO Manual 1.03.pdf - Horsch Elektronik AG

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Horsch</strong> <strong>Elektronik</strong> <strong>AG</strong> CALLF<br />

CALLF<br />

Ruft einen Funktions-Task auf.<br />

Syntax:<br />

CALLF #, I, O, F,<br />

D, [, ]<br />

Felder:<br />

Label des Funktions-Tasks mit bis zu 15 Zeichen.<br />

Offset für die Eingänge, Ausgänge, Merker und Fehlermerker<br />

respektive, um den die entsprechenden Angaben in den<br />

Befehlen L_INP, L_OUTP und L_JMPCOND verschoben werden.<br />

muss ein Vielfaches von 8 sein.<br />

Übergebenes Argument vom Typ RV, RW, LV, LW, KV oder KW.<br />

Bemerkungen:<br />

Bei den Argumenten müssen zuerst die 32bit Argumente angegeben werden. Dabei<br />

wird das erste Argument in LW001 kopiert, das zweite in LW002 und so<br />

weiter. Danach folgen die 16bit Argumente, wobei das erste 16bit Argument LV001<br />

zugewiesen wird, das zweite LV002 und so weiter. Wichtig ist, dass nur 32bit Werte<br />

als 32bit Argumente, und 16bit Werte als 16bit Argumente verwendet werden dürfen.<br />

Sämtliche Argumente werden am Ende des Funktionstasks zurückgeschrieben,<br />

sofern keine Konstante ist.<br />

Funktionen müssen im .FUNCTIONS Block deklariert sein. Abhängig von dieser hat<br />

der Funktionstask bis zu 32 LV und bis zu 32 LW Register.<br />

Mit diesem Befehl werden die Argumente, wie oben beschrieben, kopiert, der neue<br />

Funktionstask gestartet und der bisherige Task deaktiviert. Sobald der Funktionstask<br />

beendet, also auf RETF trifft, werden die Argumente zurückkopiert (sofern sie im aufrufenden<br />

Task keine Konstanten waren) und der aufrufende Task nach dem CALLF<br />

weiter bearbeitet. Wie auf Seite 26 gezeigt, kann der aufrufende Task kann ein<br />

Programm-, Background-, Error- oder Funktionstask sein. Innerhalb einer Überwachung<br />

ist der Befehl nicht erlaubt. Wurde die Funktion aus einem Backgroundtask<br />

aufgerufen, dürfen keine Displaybefehle oder CALLD verwendet werden.<br />

Beispiel:<br />

Das Beispiel zeigt einen Funktionstask. Die Beispiel-Deklaration ist:<br />

.FUNCTIONS<br />

#Funktion, 0.0, 1.2, “Beispiel-Funktion”<br />

.FUNC_END<br />

Der Funktionstask ist dann beispielsweise:<br />

#Funktion:<br />

; hier stehen LW001 und LV001, LV002 zur Verfügung<br />

RETF<br />

Aufgerufen wird das dann mit:<br />

19.12.05 – Ver.: 1.03 <strong>ECCO</strong> Referenz - 104/305 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!