Ein Parameter ist ein Argument, das zusammen mit einer Programmaufruf- oder einer Makro-Anweisung an ein entsprechendes Unterprogramm oder Makroprogramm weitergegeben wird. Das funktioniert ähnlich, wie die Weitergabe eines Parameters mit einer KAREL-Routine.
Bei HandlingTool können Parameter an Teach-Pendant-Programme und Makros weitergegeben werden.
In dem Beispiel in Abbildung 78, "Parameter-Beispiel", ruft das Hauptprogramm MAIN.TP, das Unterprogramm PROC_1.TP auf und benutzt zwei Parameter. Diese Parameter können in einem Unterprogramm als zwei Argumentregister, AR[1] und AR[2], verwendet werden.
Um Parameter zu verwenden, gehen Sie wie folgt vor:
Parameter in der Programmaufruf-Anweisung oder Makroprogramm-Anweisung definieren.
Parameter im Unterprogramm oder Makroprogramm verwenden, indem eine der erlaubten Anweisungen eingefügt wird.
Folgende Parameter sind möglich:
Konstante
Zeichenfolge
Argument register (AR[ ])
Register (R[ ])
Dieser Abschnitt enthält Informationen zu folgenden Punkten:
Parameteranweisungs-Syntax
String-Wert-Auswahl
Argument-Register
Parameter-Richtlinien
Einfügen von Parametern in Programmaufruf- und Makro-Anweisungen
Einfügen von Argument-Registern in Unterprogramme
Parameter können in folgenden Arten von Anweisungen verwendet werden.
Programmaufruf-Anweisungen
Makro-Anweisungen
Siehe Tabelle 20, "Parameter-Anweisungen", für Beispiele von Parameter-Anweisungen.
Tabelle 20. Parameteranweisungen
Anweisungsname |
Beispiel |
---|---|
Programm-Aufruf-Anweisung |
CALL SUBPRG_1(1, R[3], AR[1]) |
Makro-Anweisung |
Vacuum_Hand_Release(2.5) Set_UTOOL(1) |
Siehe Tabelle 21, "Parameter-Datentypen", für Beispiele von Parameterdatentypen.
Tabelle 21. Parameter-Datentypen
Parameter-Typ |
Beispiel |
---|---|
Konstante |
1, 3.5 |
String* |
'Perch' |
Register |
R[6] |
Argument Register |
AR[3] |
Der Syntax einer Programmaufruf-Anweisung ist in Abbildung 79, "Programmaufruf mit Parametern", dargestellt.
Der Syntax einer Makro-Anweisung ist in Abbildung 80, "Makroprogramm mit Parametern", dargestellt.
Wenn beim Programmieren von Anweisungen für mit Parametern String gewählt wird, listet das Unterfenster folgende Wahlmöglichkeiten auf. Die Wahlmöglichkeiten in dem Unterfenster können gesteuert werden, indem die Systemvariablen, die in Tabelle 22, "String-Parameter-Systemvariablen", zusammengefasst sind, initialisiert werden. Es gibt zwei Möglichkeiten: Eine Top-Level-Kategorie und eine Niedrig-Level-Subkategorie.
Tabelle 22. String-Parameter-Systemvariablen
Element |
Systemvariablen |
Hinweise |
HandlingTool-Standardwert |
---|---|---|---|
String-Kategorie |
Top-Level-Kategorien: $ARG_STRING[i].$title i = 1-10 |
Mindestens ein, höchstens 16 Zeichen |
$ARG_STRING[1].$title = MENUS die Menü-Dienstprogramm-Option benutzt den ersten Eintrag. An dieser Stelle keine Änderungen vornehmen. Das Menü-Dienstprogramm überschreibt alle Änderungen. $ARG_STRING[2].$title = 'PARTS' $ARG_STRING[3].$title = 'TOOL' $ARG_STRING[4].$title = 'WORK' $ARG_STRING[5].$title = 'POS' $ARG_STRING[6].$title = 'DEV' $ARG_STRING[7].$title = 'PALT' $ARG_STRING[8].$title = 'GRIP' $ARG_STRING[9].$title = 'USER' $ARG_STRING[10].$title = 'PREG' |
Zeichenfolge |
Niedrig-Level-Subkategorien: $ARG_STRING[i ].$item j i = 1-10 j = 1-20 |
Bis zu 16 Zeichen |
$ARG_STRING[2].$item1= 'PARTS_ITEM1' $ARG_STRING[3].$item1 = 'TOOL_ITEM1' $ARG_STRING[4].$item1 = 'WORK_ITEM1' $ARG_STRING[5].$item1 = 'POS_ITEM1' $ARG_STRING[6].$item1 = 'DEV_ITEM1' $ARG_STRING[7].$item1 = 'PALT_ITEM1' $ARG_STRING[8].$item1 = 'GRIP_ITEM1' $ARG_STRING[9].$item1 = 'USER_ITEM1' $ARG_STRING[10].$item1 = 'PREG_ITEM1' |
Die Funktionstasten-Labels "Wörter" für die F1-F5-Taste werden angezeigt, wenn der Parameter-String, F5, STRINGS ausgewählt wird. |
$ARG_WORD[i] i = 1-5 |
Bis zu 7 Zeichen |
$ARG_WORD[1] = '$' $ARG_WORD[2] = '[' $ARG_WORD[3] = ']' |
Wenn man sich innerhalb eines Unterprogramms oder eines Makroprogramms auf einen Parameter bezieht, dann als Argument-Register. In der Anweisung werden die Parameter aufsteigend von links nach rechts nummeriert, der erste Parameter ist AR[1], der zweite AR[2], usw. Siehe Abb. 81, "Argument-Register".
Argumentregister können in bestimmten Anweisungen in einem Unterprogramm oder Makroprogramm verwendet werden. In Tabelle 23, "Anweisungen, in denen AR[ ] verwendet werden können", sind die Arten von Anweisungen aufgelistet, in denen Argumentregister verwendet werden können.
Tabelle 23. Anweisungen, die AR[ ] verwenden
Ein Argumentregister kann verwendet werden... | Beispiel |
---|---|
Auf der rechten Seite einer Zuweisungsanweisung |
R[1] =AR[1] + R[2] + AR[4] IF R[1] =AR[1] AND R[2] = AR[4] , JMP LBL[1] |
GO[1] =AR[2] | |
IF R[7] =AR[1] , JMP LBL[1] WAIT AI[1] <>AR[2] , JMP LBL[1] | |
UFRAME_NUM =AR[3] UTOOL_NUM = AR[4] | |
Als indirekter Index in einer Anweisung |
R[AR[1] ] = R[ AR[2] ] DO[AR[1] ] = ON |
Als Parameter in Programmaufruf-Anweisungen |
CALL SUBPRG_1(AR[5] ) |
Als Parameter für Makroanweisungen |
Hand 3 Release ( AR[1] ] |
Ein Argumentregister kann nicht als Index für ein indirektes Register verwendet werden, wie folgt:
Nicht zulässig: R[ R[ AR[1] ] ] Zulässig: AR[ [ AR[1] ]
Die Richtlinien in diesem Abschnitt sollten beachtet werden, um die Parameter korrekt zu verwenden und Fehler zu vermeiden.
Es können bis zu zehn Parameter in einer Programmaufruf- oder einer Makroprogramm-Anweisung verwendet werden.
Siehe Abbildung 82, "Nicht mehr als zehn Parameter in einer Anweisung", als Beispiel.
Der Parametertyp in AR[ ] muss mit dem Datentyp im Unterprogramm oder Makroprogramm übereinstimmen.
Die Übereinstimmung von Datentypen zwischen Parametern des Hauptprogramms und des Unterprogramms wird erst überprüft, wenn das Hauptprogramm ausgeführt wird. Wenn der im Hauptprogramm spezifizierte Datentyp nicht mit dem des Argrumentregisters im Unterprogramm übereinstimmt, tritt ein Fehler auf.
In dem Beispiel in Abbildung 83, "Datentypen müssen übereinstimmen", sind die String-Daten in AR[3] gespeichert, wie im Hauptprogramm definiert. Wenn dann die Anweisung R[3] = AR[2] im Unterprogramm ausgeführt wird, tritt ein Alarm auf.
Alle benötigten Elemente von Parametern, die einer Anweisung im Hauptprogramm hinzugefügt werden, müssen definiert werden.
Register und Argumentregister benötigen Indexnummern. Konstanten und Strings benötigen Werte. In dem Beispiel in Abbildung 84, "Alle Parameter-Elemente müssen definiert werden", ist der Konstanten-Parameter nicht spezifiziert und der Registerindex ist nicht definiert. Wenn das Unterprogramm ausgeführt wird, tritt ein Fehler auf.
Argumentregister, die in einem Unterprogramm verwendet werden, müssen in dem dazugehörigen Hauptprogramm definiert werden.
In dem Beispiel in Abbildung 85, "Verwendete Parameter müssen im Hauptprogramm definiert sein", hat das Programm MAIN nur einen Parameter, aber das Unterprogramm PROC_1 hat einen zweiten Parameter (AR[2]). Im Unterprogramm kann kein Parameter benutzt werden, der nicht definiert ist. Wenn dieses Unterprogramm ausgeführt wird, tritt also ein Fehler auf.
Parameter, die im Hauptprogramm definiert werden, müssen nicht im Unterprogramm verwendet werden.
Diese Eigenschaft kann dazu genutzt werden, um optionale Parameter weiterzugeben. Das Unterprogramm kann nur auf Programme verzweigen, die bereits existierende Parameter haben.
Unterprogramme oder Makroprogramme mit Argumentregistern können nur von den entsprechenden Hauptprogrammen aus ausgeführt werden.
Ein Unterprogramm mit AR[ ]-Werten kann nur ausgeführt werden, wenn es von einem Hauptprogramm aus aufgerufen wird. Das Hauptprogramm liefert die Werte der Parameter, die im Unterprogramm verwendet werden. Wenn das Unterprogramm unabhängig vom Hauptprogramm ausgeführt wird, haben die Parameter keine Werte und der folgende Fehler wird angezeigt: "INTP-288 Param existiert nicht." Das Unterprogramm, das den Parameter verwendet, kann deshalb nicht ausgeführt werden.
Befolgen Sie Verwenden von Parametern in Programmaufruf- und Makroanweisungen, um Parameter in Programmaufruf- und Makro-Anweisungen einzufügen.
Verfahren 12. Verwenden von Parametern in Programmaufruf- und Makro-Anweisungen
Ein Teach-Pendant-Programm ist erstellt worden.
Es handelt sich dabei nicht um ein Prozess-Programm.
Das Programm, das editiert werden soll, auswählen.
Drücken Sie EINGABE.
Eine Programmaufruf- oder Makroanweisung einfügen.
Um einer Anweisung ohne Parameter einen Parameter hinzuzufügen,
Cursor auf die Programmaufruf- oder Makro-Anweisung setzen, der Parameter hinzugefügt werden sollen.
Mit Hilfe der rechten Pfeiltaste den Cursor an das Ende der Anweisung bewegen, wie am folgenden Bildschirm dargestellt.
5: CALL PROC_1
Drücken Sie F4, [WAHL].
Die Art von Parameter auswählen, die eingefügt werden soll:
Zum Einfügen eines Parameters vom Typ Konstante mit Schritt 9 fortfahren.
Zum Einfügen eines Parameters vom Typ String, mit Schritt 10 fortfahren.
Zum Einfügen eines Parameters vom Typ Argumentregister (AR[ ]) mit Schritt 11 fortfahren.
Zum Einfügen eines Parameters vom Typ Register (R[ ])) mit Schritt 7 fortfahren.
Um einer Anweisung mit Parametern einen weiteren Parameter hinzuzufügen,
Cursor auf die Programmaufruf- oder Makro-Anweisung setzen, der Parameter hinzugefügt werden sollen.
Den Cursor rechts neben die Stelle bewegen, wo der Parameter eingefügt werden soll. Siehe Abb. 86, "Cursor-Position zum Einfügen von Parametern".
Drücken Sie F4, [WAHL].
Wenn ein Parameter zwischen bereits existierenden Parametern eingefügt werden soll, wählen Sie <Einfüg>. Fahren Sie anderenfalls mit Schritt 5 Schritt 5.e fort.
Die Art von Parameter auswählen, die eingefügt werden soll:
Zum Einfügen eines Parameters vom Typ Konstante mit Schritt 9 fortfahren.
Zum Einfügen eines Parameters vom Typ String, mit Schritt 10 fortfahren.
Zum Einfügen eines Parameters vom Typ Argumentregister (AR[ ]) mit Schritt 11 fortfahren.
Zum Einfügen eines Parameters vom Typ Register (R[ ])) mit Schritt 7 fortfahren.
Zum Löschen eines Parameters
Cursor auf die Programmaufruf- oder Makro-Anweisung setzen, in der ein Parameter gelöscht werden soll.
Cursor auf den Parameter setzen, der gelöscht werden soll.
Drücken Sie F4, [WAHL].
<None> wählen.
Wenn für die Anweisung kein Parameter eingestellt ist, oder der Cursor auf ")" am Ende der Zeile steht, wird kein Parameter gelöscht und das Untermenü wird geschlossen.
Zum Einfügen eines Register-Parameters (R[ ]),
Wählen Sie R[ ].
Register-Index eingeben und ENTER drücken.
Zum Einfügen eines indirekten Register-Parameters (R[AR[ ]] oder R[R[ ]]),
Wählen Sie R[ ].
Zum Änderen des Index zwischen R[ ] und AR[ ], den Cursor auf das Register setzen und F3, INDIREKT, mehrmals drücken. Der Index ändert sich wie folgt:
R[ R[...] ] -> R[ AR[...] ] -> R[ R[...] ] -> ...
Zum Einfügen eines Parameters vom Typ Konstante,
Wählen Sie "Konstante".
Konstanten-Wert eingeben und ENTER drücken.
Zum Einfügen eines Parameters vom Typ String,
String wählen. Der folgende Bildschirm zeigt ein Beispiel.
MENUTEST 4/22 1 2: Clear User Page 3: 4: Prompt Box Msg(’NotAtPerch’) 5: 6: Op. Entry Menu(’Chute’)Select item
Gewünschte Art des String auswählen.
Um einen String aus einer Liste von bereits definierten Strings auszuwählen, den Cursor auf den gewünschten String bewegen und F5, CHANGE, drücken. Den Cursor zur Gruppe von Strings bewegen, aus der gewählt werden soll, und ENTER drücken. Cursor auf den gewünschten String bewegen und ENTER drücken.
Um einen String direkt einzugeben, zuerst F5, String, drücken, dann die entsprechenden Funktionstasten zur Eingabe des String drücken und dann ENTER drücken.
Um einen String, der eingeben worden ist, zu ändern, den Cursor auf den String setzen, F5, ÄNDERN, drücken und Schritt 10.b wiederholen.
Um die String-Wahlmöglichkeiten, die angezeigt werden, zu ändern, müssen Systemvariablen neu eingestellt werden. Weitere Informationen finden Sie in Abschnitt 17.3., "String-Wert-Auswahl".
Zum Einfügen eines Argumentregister-Parameters AR[ ],
Wählen Sie AR[ ].
Argumentregister-Index eingeben und ENTER drücken.
Zum Einfügen eines indirekten Argumentregister-Parameters (AR[R[ ]] oder AR[AR[ ]]),
Wählen Sie AR[ ].
Um von AR[ ] zu R[ ] zu wechseln, den Cursor auf AR[ ] setzen und F3, INDIREKT, mehrmals drücken. Der Index ändert sich wie folgt:
AR[ R[...] ] -> AR[ AR[...] ] -> AR[ R[...] ] -> ...
Um AR[ ] als indirekten Index einzufügen, muss der Cursor auf den Index bewegt werden, und F3, INDIREKT, muss zweimal gedrückt werden.
Verwenden Sie Einfügen von Argument-Registern in ein Unterprogramm, um Argument-Register (AR[ ]) in ein Unterprogramm einzufügen.
Verfahren 13. Einfügen von Argument-Registern in ein Unterprogramm
Ein Teach-Pendant-Programm ist erstellt worden, das eine Programmaufruf- oder eine Makroprogramm-Anweisung enthält.
Das Unterprogramm oder Makroprogramm, das editiert werden soll, auswählen.
Drücken Sie EINGABE.
Eine der Anweisungen, die ein AR[ ] enthalten dürfen, einfügen. Siehe Tabelle 24, "Anweisungen, die AR[ ] verwenden".
Tabelle 24. Anweisungen, die AR[ ] verwenden
Ein Argumentregister kann verwendet werden... | Beispiel |
---|---|
Auf der rechten Seite einer Zuweisungsanweisung |
R[1] =AR[1] + R[2] + AR[4] IF R[1] =AR[1] AND R[2] = AR[4] , JMP LBL[1] |
GO[1] =AR[2] | |
IF R[7] =AR[1] , JMP LBL[1] WAIT AI[1] <>AR[2] , JMP LBL[1] | |
UFRAME_NUM =AR[3] UTOOL_NUMAR[4] | |
Als indirekter Index in einer Anweisung |
R[AR[1] ] = R[ AR[2] ] DO[AR[1] ] = ON |
Als Parameter in Programmaufruf-Anweisungen |
CALL SUBPRG_1(AR[5] ) |
Als Parameter für Makroanweisungen |
Hand 3 Release ( AR[1] ] |
Cursor, in der gerade eingefügten Anweisung auf das Element, das zu AR[ ] geändert werden soll, bewegen.
Drücken Sie F4, [WAHL].
Wählen Sie AR[ ].
Geben Sie den Index ein, und drücken Sie ENTER.
Um AR[ ] als indirekten Index einzufügen, muss der Cursor auf den Index bewegt werden, und F3, INDIREKT, muss zweimal gedrückt werden.