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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Die Deklaration würde es erlauben, den einzelnen Labels andere Namen zu geben.<br />

Davon wird jedoch abgeraten, da solche Programme schwer verständlich werden.<br />

Die elf .SETLABEL-Instruktionen sollten daher immer wörtlich kopiert werden.<br />

Die Funktion der einzelnen Funktionen ist im Minimalprogramm minimal. In üblichen<br />

Programmen beginnt hier die eigentliche Arbeit.<br />

3. 7. Funktionen, Tasks und Prozeduren<br />

In diesem Abschnitt wird erklärt, wie der <strong>ECCO</strong> Programmierer seine Aufgabe in<br />

mehrere kleinere Teile zerlegen kann, und welche Hilfsmittel <strong>ECCO</strong> ihm dazu bietet.<br />

Es geht also um die grossen Funktionsblöcke, nicht um die Programmierung einzelner<br />

Geräte oder um Befehle.<br />

Funktionen<br />

Wie jede halbwegs moderne Programmiersprache verfügt auch <strong>ECCO</strong> über<br />

Funktionen. Eine Funktion ist dabei ein zusammengehörender Programmblock, welcher<br />

ein bestimmtes Teil-Problem löst.<br />

Konkret können in <strong>ECCO</strong> Funktionen mit Parametern versehen werden, um Lösungen<br />

allgemein und widerverwendbar zu gestalten. Funktionen werden im Programmtask<br />

(mehr dazu weiter unten) mit CALLF gestartet und enden mit der RETF Instruktion.<br />

Sie können verschachtelt werden, so dass eine Funktion eine zweite aufrufen<br />

kann; dabei sind bis zu vier solche Verschachtelungen möglich.<br />

Funktionen müssen im .FUNCTIONS Block definiert werden. Die Definition besteht<br />

aus der Position (als Zeile und Spalte) zum Aufruf vom Terminal aus, der erwarteten<br />

Anzahl von Argumenten und einem Text zur Beschreibung der Funktion.<br />

Mit dem CALLF-Befehl werden die Argumente, wie unten beschrieben, kopiert, die<br />

Funktion gestartet und der bisherige Task deaktiviert. Sobald die Funktion beendet,<br />

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 weiter bearbeitet.<br />

Wird eine parameterlose Funktion vom Display aus gestartet, so können bis zu vier<br />

Funktionen ineinander verschachtelt werden. Im Programmablauf können mehr<br />

Funktionen verschachtelt werden, wobei jede Funktion einen freien Task benötigt.<br />

Somit beschränkt die Zahl der vorhandenen Tasks die Verschachtelung von<br />

Funktionen.<br />

Der CALLF-Befehl scheint auf den ersten Blick etwas umständlich, dies ermöglicht<br />

jedoch grossartige Möglichkeiten:<br />

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

D, [, ]<br />

Mit den Offset-Feldern können Eingänge, Ausgänge, Merker und Fehlermerker in<br />

den Befehlen L_INP, L_OUTP und L_JMPCOND verschoben und somit parametrisiert<br />

werden. Danach folgen die 32-bit Argumente und zuletzt die 16-bit Argumente, beide<br />

entsprechend der Funktions-Deklaration. Die Argumente werden in lokale Register<br />

kopiert, weshalb der Funktionstask bis zu 32 LV und bis zu 32 LW Register hat.<br />

<strong>ECCO</strong> bietet die ungewöhnliche, aber äusserst hilfreiche Möglichkeit, parameterlose<br />

Funktionen direkt vom Terminal aus zu starten. Damit können beispielsweise<br />

Funktionen direkt getestet werden, oder Kalibrations- oder Inbetriebnahmeroutinen in<br />

Funktionen verpackt manuell gestartet werden.<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!