Universelle
Maschinensteuerung
ROBOT

Ablaufbefehle
Commands


Inhaltsverzeichnis:

Inhaltsverzeichnis
Programmfluß
Ablaufsteuerung
Variablenbearbeitung
Konditionale
Sonderbefehle
Datensatzbefehle
Ablauffehler
Meldungen
Gruppierungen


Programmfluß: zum Inhalt

REM
Kommentarzeile, hat keine Aktion und dient lediglich der Dokumentation.
Da jeder einzelne Befehle auch dokumentiert werden kann, dient dieser
Befehl hauptsächlich zur Dokumentation eines Ablaufblockes, da er auch
in der Ablaufvisualisierung angezeigt wird. Die Ausführung dieses Befehls
belastet die Zykluszeit nur unwesentlich (< 1µs), kann also zur Dokumen-
tation beliebig oft eingesetzt werden

NOP
Leerbefehl, hat keine Aktion und dient lediglich als Platzhalter für spätere
Erweiterungen oder Dummy für interne Merker. Dieser Leerbefehl wird
während des Bereiniges automatisch gelöscht.

DELAY Para3=WarteZeit
DELAY VAR Para1=WarteZeitVariable
Der Zyklus wird erst nach Ablauf der eingestellten Zeit fortgesetzt (entwe-
der als Konstante oder als Variable angegeben.

END
Der Ablauf wird beendet

GOTO Para3=NächsteZeile
Die Programmausführung wird in der angegebenen Zeile fortgeführt.



Ablaufsteuerung: zum Inhalt

START para4=Ablauf
STOP para4=Ablauf
Der angegebene Ablauf wird gestartet / angehalten. Ein neu gestarteter Ab-
lauf fängt bei dem ersten Befehl an, ein angehaltener Ablauf wird unab-
hängig vom aktuellen Ablaufzähler sofort gestoppt.

CALL para4=Ablauf
Der angegebene Ablauf wird als Unterprogramm ausgeführt. Die Kontrolle
an das aufrufende Programm wird erst zurückgeben, wenn der aufgerufe-
ne Ablauf ordnungsgemäß beendet wird. Der aufrufende Ablauf wird in
der Zwischenzeit suspendiert.

Im Gegensatz zum START Befehl läuft der aufrufende Ablauf nicht paral-
lel weiter, sondern wartet auf die Beendigung des aufgerufenen Ablaufes.
Dieser Befehl eignet sich also zur Struktuierung der Ablaufprogramme und
dient nicht zur Parallelverarbeitung.

IF START para1=Variable para4=Ablauf
Der angebene Ablauf wird nur gestartet, wenn die angegebene Variable
ungleich 0 ist. Diese Funktion ist hilfreich bei bedingten Abläufen (z.B. nur
aktiv im Handbetrieb) und erspart die sonst notwendige IF GOTO,
START Sequenz.


Variablenbearbeitung: zum Inhalt

ON Para1=Variable
ON BREAK Para1=Variable
Die angegebene Variable wird auf 1 gesetzt. Im Falle eines Hardwareaus-
ganges wird die dazugehörige Elektrik eingeschaltet. Im Breakfall wird der
nächste Befehl nicht sofort ausgeführt, sondern erst im nächsten Zyklus.

OFF Para1=Variable
OFF BREAK Para1=Variable
Die angegebene Variable wird auf 0 gesetzt. Im Falle eines Hardwareaus-
ganges wird die dazugehörige Elektrik eingeschaltet. Im Breakfall wird der
nächste Befehl nicht sofort ausgeführt, sondern erst im nächsten Zyklus.

SET para1=para2
SET BREAK para1=para2
Die im Parameter 1 angegebene Variable wird auf den Wert der im Para-
meter 2 angegebenen Variable setzt. Hierbei wird der Variablentyp berück-
sichtigt, wobei es zu Verfälschungen kommen kann. Wird z.B. einer bool'-
schen Variable der Wert 23 zugewiesen, so hat diese danach den Wert 1
(da ja bei BOOL nur 0 und 1 erlaubt ist) Im Breakfall wird der nächste
Befehl nicht sofort ausgeführt, sondern erst im nächsten Zyklus.

INC para1
DEC para1
Die angegebene Variable wird entweder um Eins erhöht (INCrement) oder
um Eins erniedrigt (DECrement).

ADD para1=para1+para2
Addiert den aktuellen Wert von para1 mit para2 und schreibt das Ergebnis
nach para1. Diese Funktion ist interessant für relative Positionierungen.

TOGGLE Para1=Variable
Die angegebene Variable wird je nach Ausgangszustand auf 0 (war vorher
ungleich 0) oder 1 (war vorher 0) gesetzt.

IMPULS
Die angegebene Variable wird auf ON gesetzt. Nach der Impulszeit (vor-
definiert 22ms) wird diese Variable wieder auf OFF gesetzt. Dieser Be-
fehl erleichtert die Programmierung von impulsgesteuerten elektrischen
Geräten (anstatt ON, DELAY, OFF). Es ist nur ein aktiver Impuls zur
gleichen Zeit in einem Ablauf erlaubt, die weitere Befehlsausführung
erfolgt erst nach der Impulszeit (d.h. der nächste Befehl wird erst 22 ms
später ausgeführt).
Beim Beenden eines Ablaufes wird ein aktiver Impuls sofort zurückgesetzt,
auch wenn die Impulszeit noch nicht abgelaufen ist.


Konditionale: zum Inhalt

IF [NOT] Para1=Variable
Die Programmausführung wird erst fortgesetzt, wenn die angegebene
Variable größer als Null ist. Ein zusätzliches NOT negiert die Abfrage.
Hierbei existieren auch Zusammensetzungen mit dem Goto-Befehl.

IF NOT IstAufPositionA GOTO 120

wenn die Variable 'IstAufPositionA' gleich Null ist, dann wird auf die Zeile
120 gegangen, sonst nicht.

IF HIGH_EDGE
IF LOW_EDGE
Diese Funktionen geben 1 zurück, wenn ein Flankenwechsel erkannt wur-
de, ansonsten 0. Ein Flankenwechsel ist, wenn seit der letzten Abfrage der
Wert anders war, als bei der jetzigen. Ein Wechsel von 0 auf 1 ist eine
HighEdge, ein Wechsel von 1 auf 0 eine LowEdge. Die Flankenerkennung
wird meistens nur von Hardwarevariablen unterstützt.


!!! Es existieren weitere Konditionale, diese Dokumentation
ist noch nicht fertig !!!


Sonderbefehle: zum Inhalt

TM START
TM STOP
Ein Timer bzw. eine Zeitmessung wird gestartet oder angehalten. Die da-
zwischenliegende Zeit wird in eine angebbare Variable geschrieben. Dieser
Befehl dient hauptsächlich zur Zeitmessung (1ms Auflösung) von Funk-
tionen.

TIPPPOINT
Beim Erreichen eines Tipppoints wird der Ablauf angehalten und wartet
auf das Setzen einer angebbaren Variable (z.B. ein Tastersignal). Hiermit
können Abläufe in Echtzeit ablaufen und werden zu Testzwecken an vor-
her definierten Stellen unterbrochen.

BOOTTRAP para1=Trapvar para3=Trapzeit
Die angegebene Variable wird für die angegebene Zeit nicht vom NotAus
erfaßt. Diese Variable wird auf 1 gesetzt. Nach Ablauf der Zeit wird das
normale EINA Verhalten wieder hergestellt. Dieser Befehl dient zum
Booten (Boottrapping) um das Einschaltverhalten einer Variablen trotz
anstehendem NotAus zu ermöglichen.

SIGNAL INIT / EXIT / NOTOFF
Das betreffende Signal wird erzeugt und damit die gesetzten EINA Optio-
nen ausgeführt. Siehe hierzu EINA


Datensatzbefehle: zum Inhalt

Stationen
bieten die Möglichkeit zum Datensatzhandling. Zur Synchronisation mit dem
Maschinen gebundenen Abläufe existieren spezielle Datensatzbefehle:

DATA GET Para5=Station
Datensatz vom überlagerten Process holen

DATA SHIFT Para5=Station
Datensatz an die nächste Station weiterschieben.
Die angegebene Station schiebt die Daten an die in den Parametern ange-
gebene Shiftstation weiter.

DATA RESET Para5=Station
Datensatz an der jeweiligen Station löschen bzw. als ungültig erklären.


Ablauffehler: zum Inhalt

Durch die dynamische Veränderbarkeit des Systemes (online), kann es vorkom-
men, daß während des Ablaufes Fehler in der Programmierung auftreten. Der
betroffene Ablauf wird hierbei gestoppt und eine entsprechende Fehlermeldung
ausgegeben.

Das System bleibt weiterhin voll verfügbar, abhängige Abläufe reagieren je nach
Programmierung auf diesen Fehlerfall.

invalid para1
invalid para2
invalid para3
invalid para4 (ablaufpara)
invalid para5 (stationpara)
Der Programmierer hat vergessen, einen benötigten Parameter anzugeben.
Auf diesen Schritt gehen, den Parameter angeben und weiterlaufen lassen.

does not support high / low / edgedection
Es wurde versucht, eine Flanke bei einer Variable zu erkennen, die dieses
nicht unterstützt (z:B hat ein analoger Meßwert keine binäre Flanke).
Ablauf entsprechend ändern und weiterlaufen lassen

ablauf to be started is already runnning
Der zu startende Ablauf läuft gerade und kann nicht nochmal gestartet
werden.


Meldungen: zum Inhalt

Zusätzlich kann der Programmierer eigene Meldungen erzeugen. Hierzu existiert
der Befehl MELDE, der eine selbstdefinierte Meldung auf dem Bildschirm ausgibt.
Der Programmablauf wird hierbei nicht beeinflußt, so daß nur Informationen
angezeigt werden. Soll der Befehl MELDE auf schwerschwiegende Fehler auf-
merksam machen, so ist vorher/nachher ein SIGNAL NOTOFF oder END zu
programmieren.

MELDE rem=anzuzeigende Zeichenkette
Zeigt die im Kommentarfeld eingegebene Zeichenkette an. Es sind maximal
256 Zeichen zugelassen.



Gruppierungen: zum Inhalt

Gruppierungen beeinflußen den Programmablauf nicht, dienen aber einer erhöhten
Lesbarkeit. Die Zeilennummerierung wird davon nicht betroffen.

{=== para3=anzuzeigende Zeichenkette
Die nächsten Ablaufschritte werden im Darstellungsfenster eingerückt,
bzw. unter dem + Zeichen versteckt. Diese Einrückung dauert bis zum
nächsten {=== Befehl oder bis zum nächsten Einrückungsendebefehl.

}
Einrückungsende