SRC – 300/320

Werbung
EPSON
Robotersteuerung
SRC – 300/320
Rev. 2
EM971R502F
EPSON
ROBOTERSTEUERUNG
SRC – 300/320
Bedienungshandbuch
EPSON Deutschland GmbH
Industrial Robots-Division
SEIKO EPSON CORPORATION
i
GARANTIE
Die Roboter und die dazugehörigen Optionen werden erst nach strengsten Qualitätskontrollen,
Tests und Prüfungen gemäß unserer hohen Leistungsstandards an unsere Kunden ausgeliefert.
Treten bei normalem Betrieb, innerhalb von 12 Monaten nach Lieferung, Störungen auf, wird eine
kostenfreie Reparatur garantiert.
Davon ausgenommen sind jedoch die folgenden Fälle:
1.
Schäden oder Fehlfunktionen, verursacht durch falsche Bedienung.
2.
Schäden oder Fehlfunktionen, verursacht durch Demontagen.
3.
Schäden oder Fehlfunktionen, verursacht durch unerlaubte Modifikationen oder
Reparaturen.
4.
Schäden oder Fehlfunktionen, die durch extreme, roboterunabhängige Ursachen
entstanden sind, wie z.B. Brand- oder Wasserschäden.
Die Garantie beginnt ab Auslieferung, also ab Lager Düsseldorf.
Die vorliegenden Garantiebestimmungen gelten jedoch nicht in allen Ländern in vollem Umfang.
Zusätzliche Informationen zum Haftungsumfang erhalten Sie bei Ihrem SEIKO EPSON Partner,
bei dem Sie das Robotersystem erworben haben.
ii
SERVICE CENTER
Bei Reparaturen, Inspektionen oder Justageeinstellungen nehmen Sie bitte Kontakt zum nächsten
Roboter Service Center auf.
Halten Sie folgende Informationen bereit:
•
Roboter Typ,
•
Seriennummer,
•
M.Code,
•
Software Version und
•
eine Beschreibung des Roboterproblems.
EPSON Deutschland GmbH
Industrial Robots-Division
Zülpicher Straße 6
D-40549 Düsseldorf
Tel: 0211 5603-204
Fax: 0211 5603-319
SERVICE CENTER USA
Seiko Instruments Inc USA
Factory Automation Division
2990 West Lomita Blvd
Torrance, CA 90505
Tel: (310) 517-7842
Fax: (310) 517-8158
HERSTELLER
SEIKO EPSON CORPORATION
Robots & FA. Systems Department
TEL:
Okaya Plant No. 2
1-16-15, Daiei-cho
81-266-23-0020
81-266-24-2001
FAX:
81-266-24-2017
Okaya-shi, Nagano-ken, 394
Japan
iii
Sicherheitshinweis
Vor Inbetriebnahme der Robotersteuerung lesen Sie bitte die folgenden Sicherheitshinweise aus diesem
und allen weiteren Handbüchern.
Das Kapitel „Sicherheit“ in diesem Handbuch erklärt minimale Sicherheitsvorkehrungen, die ein
Bediener beachten muß, wenn er den Roboter einrichten und benutzen will. Bitte lesen Sie das
Handbuch genau bevor Sie mit den Einstellungen beginnen und führen Sie die entsprechenden
Sicherheitsvorkehrungen durch.
Bewahren Sie diese Handbücher anschließend an einem für alle Betreiber zugänglichen Ort auf.
G WARNUNG
•
Betreiben Sie den Roboter erst nach vollständiger Installation auf einer dafür konstruierten Grundplatte
mit allen erforderlichen Sicherheitsabschrankungen, etc. Eine Inbetriebnahme auf der Transportpalette,
auch zu Testzwecken, ist nicht zulässig und extrem gefährlich!
•
Stellen Sie sicher, daß beim An- oder Abklemmen von Kabelverbindungen zwischen der Eingabekonsole
und der Steuerung der Netzschalter des Gerätes ausgeschaltet und verriegelt ist. Nichtbeachtung führt zu
elektrischen, wie auch mechanischen Fehlfunktionen.
•
Stellen Sie während des Normalbetriebes sicher, daß nur unterwiesene Personen Zugriff auf die
Eingabekonsole erhalten. Falsche Handhabung oder Bedienung kann zu Fehlfunktionen, Zerstörungen
oder gefährlichen Unfällen führen
•
Der Aufenthalt im Gefahrenbereich des Roboters ist nicht zulässig!
•
Benutzen Sie ausschließlich Originalzubehörteile. Dies gilt besonders für alle sicherheitsrelevanten Teile,
wie Programmierkabel, Programmiersoftware und optional benutzte Handbediengeräte.
•
Vor Inbetriebnahme des Roboters ist die Funktion aller NOT-AUS-Systeme und des E.STOP CANCELTasters zu prüfen. Dieser Taster dient zur kurzzeitigen Überbrückung des NOT-AUS-Schalters der
TEACH-Schnittstelle. Durch Betätigung dieses Tasters ist es möglich, während des Roborterbetriebes das
SPEL-Editor-Kabel gegen den Dummystecker auszutauschen, ohne daß die Steuerung in den NOT-AUSStatus umschaltet. Benutzen Sie den Roboter nicht, wenn die E. STOP CANCEL LED leuchtet, nachdem
alle NOT-AUS-Schalter entriegelt und die NOT-AUS-Meldung zurückgesetzt wurde und somit kein NOTAUS-Signal an der Steuerung anliegt. Benutzen Sie den Roboter ebenfalls nicht, wenn die LED nicht
leuchtet, während Sie den E. STOP CANCEL-Taster drücken. Dieses Signal bedeutet, daß eine
Fehlfunktion im NOT-AUS-Kreis der vorderen (TEACH) Schnittstelle vorliegt.
iv
VORWORT
Dieses Handbuch spezifiziert die grundlegenden Einzelheiten, die zur korrekten Bedienung der
Steuerung benötigt werden. Bitte arbeiten Sie das Handbuch, wie auch die folgenden Handbücher
ründlich durch, bevor Sie die Komponenten benutzen.
HANDBÜCHER
1. Manipulator-Handbuch
Handbuch zum Manipulator. Dieses Handbuch liegt Ihnen vor. Hier wird die Installation und
der Anschluß von Peripheriegeräten erläutert.
2. Handbuch zur Robotersteuerung
Handbuch zur Steuerung des Roboters. Dieses Handbuch liegt Ihnen vor. Hier werden
Installation, Schaltereinstellungen, und der Anschluß an Peripheriegeräte beschrieben.
3. Referenzhandbuch
Handbuch, in dem die Befehle der Roboterprogrammiersprache SPEL III beschrieben werden.
4. Wartungshandbuch
Das Handbuch beschreibt das Verfahren zur Wartung des Roboters. Hier werden bspw.
Methoden zur Problembehebung, Reparaturanleitungen, etc. beschrieben.
5. Handbuch zur Bedieneinheit (optional)
Handbuch zur Bedieneinheit. Hier wird die Bedienung beschrieben.
6. Handbuch zum Programmentwicklungs- Tool
In diesem Handbuch zur Programmentwicklung werden die Befehle der
Entwicklungsumgebung und –methoden des SPEL Editor (optional) oder SPEL für Windows
(optional) beschrieben.
Wir bieten zwei Arten von Software: den SPEL Editor für MS-DOS und SPEL für Windows
für Microsoft Windows. Ferner bieten wir als Option zum SPEL für Windows: Vision Guide,
das integrierte Roboter Vision System (Bildverarbeitungssystem), an.
7. Handbuch zum Handprogrammiergerät
Hier werden die Anwendungsmöglichkeiten des Handprogrammiergerätes (Teaching
Pendant) erläutert, etc.
v
Eingabeformate der Befehle
Formatierungsregeln für die Eingabebefehle
Einfache Zeichenfolge:
Geben Sie die Zeichenfolge wie dargestellt ein.
Beispiel: MOTOR EIN
[ ] (eckige Klammern):
Benutzen Sie dies zur Dateneingabe
Beispiel: EIN [Ausgabe Bitnummer]
| | (vertikale Striche):
Benutzen Sie dies zur Eingabe der Einstellungsmöglichkeiten
Beispiel: MOTOR
|EIN|
|AUS|
{ } (Klammern):
Benutzen Sie dies zur Eingabe nicht benötigter Einstellungen (Schalter
etc.). Die Funktion variiert je nachdem, ob die Einstellung genutzt wird
oder nicht.
Beispiel: DIR {/W}
{ }n (Klammern + n):
Benutzen Sie dies um einzugeben, daß die in den Klammern stehenden
Werte n-Mal wiederholt werden sollen (geben Sie eine Zahl für n ein).
Geben Sie nur „n“ ein, heißt das, daß die Werte wiederholt werden können.
~ (Tilde):
Hiermit zeigen Sie, daß ein Befehl noch in die nächste Zeile weiterführt
oder daß er noch zur vorhergehenden Zeile gehört.
Für „SPEL für Windows“-Benutzer
Wir empfehlen nicht, „SPEL für Windows“ für Windows mit dem „SPEL-Editor“ einzusetzen. Benutzen
Sie „SPEL für Windows“ mit dem „SPEL-Editor“, schlagen Sie unter „7. Benutzung des
Handprogrammiergeräts und des SPEL-Editors“ im „SPEL für Windows“ Handbuch nach.
vi
Alle Rechte vorbehalten. Kein Teil dieses Handbuchs darf in irgendeiner Form (Druck, Fotokopie,
Mikrofilm oder ein anderes Verfahren) ohne die schriftliche Genehmigung der SEIKO EPSON
Corporation reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder
verbreitet werden. Im Hinblick auf die Nutzung der im Handbuch enthaltenen Informationen wird
keinerlei Patenthaftung übernommen.
Das Handbuch wurde mit der gebotenen Sorgfalt erarbeitet, SEIKO EPSON übernimmt jedoch keinerlei
Patenthaftung für etwaige Fehler oder Auslassungen. Außerdem wird keine Haftung übernommen für
Schäden, die sich durch Verwendung der im Handbuch enthaltenen Informationen ergeben.
Weder SEIKO EPSON Corporation noch ihre Tochtergesellschaften haften gegenüber dem Käufer
dieses Produkts oder Dritter für Schäden, Verluste, Kosten oder Ausgaben, die von dem Käufer oder
Dritten aufgrund von Unfall, Mißbrauch des Produkts oder unerlaubter Änderungen, Reparaturen oder
Neuerungen verursacht wurden.
SEIKO EPSON haftet nicht für Schäden oder Störungen, die sich durch Einsatz von Optionen oder
Fremdzubehör ergeben, die keine original EPSON-Produkte sind, oder keine ausdrückliche Zulassung
der Firma SEIKO EPSON als „EPSON Approved Products“ haben.
Warenzeichen
Copyright © 1999 by EPSON Deutschland GmbH, Düsseldorf.
vii
Inhaltsverzeichnis
Sicherheit.................................................................................................................... 5
1. Grundfunktionen .............................................................................................................6
1.1 Niedrige und hohe Spannung.............................................................................................................. 6
1.2 Sicherheitsabschrankungen................................................................................................................. 7
1.3 NOT-AUS........................................................................................................................................... 8
1.4 Zustimmtaster (nur für SRC-320)........................................................................................................ 8
2. Sicherheitshinweise ........................................................................................................9
2.1 Allgemeines........................................................................................................................................ 9
2.2 Allgemeine Konstruktionsanforderungen .......................................................................................... 10
Einführung ................................................................................................................ 11
1. Vorbereitung .................................................................................................................12
1.1 Komponenten des Roboters ............................................................................................................... 12
Optionen............................................................................................................................................. 12
1.2 Vorsichtsmaßnahmen bei der Installation.......................................................................................... 13
Überprüfen des M. CODE und der Kabellänge.................................................................................... 13
Transportsicherung ............................................................................................................................. 13
1.3 Programmiereinheit .......................................................................................................................... 13
Vorbereitungen zum Gebrauch der Programmiereinheit...................................................................... 13
1.4 Modi................................................................................................................................................. 14
Steuerungsmodi .................................................................................................................................. 14
TEACH-Modus................................................................................................................................... 14
AUTO-Modus ..................................................................................................................................... 16
1.5 Fehlermeldung.................................................................................................................................. 17
LCD Kontrollanzeige der Steuerung ................................................................................................... 17
Ausgabe an OPU-300 und REMOTE1-Steckverbindung ..................................................................... 18
Ausgabe an Programmiereinheit ......................................................................................................... 18
2. Grundlegende Bedienung.............................................................................................19
2.1 Ablaufplan........................................................................................................................................ 19
2.2 Überprüfung des Startzustandes ........................................................................................................ 20
2.3 Einstellen der Datensicherung........................................................................................................... 21
Initialisierung des Bewegungsbereiches............................................................................................... 21
2.4 Einschalten der Motorspannungszufuhr ............................................................................................ 22
Der Betriebszustand des Motors .......................................................................................................... 22
2.5 Kalibrierung ..................................................................................................................................... 23
2.6 Einstellen der Home-(Standby-)Position............................................................................................ 24
Definieren der Home-(Standby-)Position............................................................................................. 24
Armbewegungsreihenfolge bei Einstellung der Home-(Standby-)Position............................................ 24
2.7 Teaching und Programmieren ........................................................................................................... 25
Teaching............................................................................................................................................. 25
Beispiele für Einrichtmethoden ........................................................................................................... 26
Beispielprogrammierung..................................................................................................................... 28
2.8 Ausführen eines Programms ............................................................................................................. 29
Kompilieren........................................................................................................................................ 29
Ausführen des Programms mit dem PC............................................................................................... 29
Ausführen des Programms mit der Bedieneinheit................................................................................ 30
Ausführen des Programms über REMOTE3 ........................................................................................ 30
2.9 Auswahl des Programms zum Ändern von Zeilen ............................................................................. 31
Auswahl des Programms per REMOTE-Eingang ................................................................................ 31
Verwendung des CHAIN-Befehls........................................................................................................ 32
2.10 Handhabung von Dateien ................................................................................................................ 32
3. JOG-Betrieb..................................................................................................................33
3.1 Das verwendete Koordinatensystem im JOG-Verfahren .................................................................... 33
JOG-Verfahren im Basis-Koordinatensystem ...................................................................................... 34
JOG-Verfahren im Tool-Koordinatensystem ....................................................................................... 35
JOG-Verfahren im Joint-Koordinatensystem ....................................................................................... 35
3.2 JOG-Bewegung................................................................................................................................. 36
Grundlagen ............................................................................................................... 37
1. Bewegungsgeschwindigkeit..........................................................................................38
1.1 Beschleunigungs-/Verzögerungsgeschwindigkeit .............................................................................. 38
1.2 Hochgeschwindigkeit im Teach-Modus............................................................................................. 39
Blockierung durch die Sicherheitsabschrankung ................................................................................. 39
Blockierung durch den POWER-(LP)-Befehl ...................................................................................... 39
Blockierung durch den TSPEED-Befehl.............................................................................................. 40
1.3 Beschleunigungs-/Verzögerungssteuerung der 3. Achse mit dem JUMP-Befehl ................................ 41
1.4 Transport von Objekten, die das Nominalgewicht überschreiten........................................................ 42
2. Programmierung ...........................................................................................................43
2.1 Grundlegende Bestandteile eines Programms .................................................................................... 43
Funktionsname ................................................................................................................................... 44
Kommentare ....................................................................................................................................... 44
Mehrfachanweisung............................................................................................................................ 44
Sprungmarken .................................................................................................................................... 45
2.2 Konstanten........................................................................................................................................ 46
Numerische Konstanten ...................................................................................................................... 46
Zeichenketten...................................................................................................................................... 46
2.3 Variablen.......................................................................................................................................... 47
Spezifische Anzahl von Variablen....................................................................................................... 47
Numerische Variablen......................................................................................................................... 47
Zeichenketten-Variablen ..................................................................................................................... 48
Bereichsvariablen................................................................................................................................ 49
Auflisten der Variablennamen............................................................................................................. 49
Backup-Variablen ............................................................................................................................... 50
Hinweis zur Verwendung von Variablen ............................................................................................. 51
2.4 Operationen ...................................................................................................................................... 52
Mathematische Operationen................................................................................................................ 52
Logische Operatoren ........................................................................................................................... 52
Relationale Operatoren........................................................................................................................ 53
Zeichenketten-Operatoren ................................................................................................................... 53
Rangfolge der Operatoren ................................................................................................................... 53
Operationen mit ganzen und reellen Zahlen ........................................................................................ 53
Rückgabewerte.................................................................................................................................... 54
Fälle, in denen Operationen und Funktionen benutzt werden können .................................................. 54
2.5 Steueranweisungen des Programms................................................................................................... 55
FOR...NEXT....................................................................................................................................... 55
GOTO................................................................................................................................................. 55
IF THEN ELSE................................................................................................................................... 55
GOSUB...RETURN............................................................................................................................. 56
GOTO, FOR...NEXT, GOSUB...RETURN, IF...THEN...ELSE ........................................................... 56
CALL ................................................................................................................................................. 57
* ZEROFLG(0)................................................................................................................................... 57
SELECT...CASE...SEND.................................................................................................................... 57
WHILE[Bedingung]...WEND ............................................................................................................. 58
TRAP.................................................................................................................................................. 58
NESTING........................................................................................................................................... 59
2.6 Pseudobefehl..................................................................................................................................... 60
3. Dateien .........................................................................................................................61
3.1 Haupt- und Dateispeicher.................................................................................................................. 61
Speicherbereich im Hauptspeicher....................................................................................................... 61
Bereich zur Programmausführung....................................................................................................... 62
Dateispeicher ...................................................................................................................................... 62
3.2 Dateinamen ...................................................................................................................................... 63
Die Bestandteile eines Dateinamens .................................................................................................... 63
Erzeugen eines Dateinamens............................................................................................................... 63
2
Erweiterung ........................................................................................................................................ 63
Spezielle Dateinamen.......................................................................................................................... 64
3.3 Dateien, die während der Ausführung geladen werden...................................................................... 64
4. Verzeichnis ...................................................................................................................65
4.1 Verzeichnis....................................................................................................................................... 65
Hauptverzeichnis ................................................................................................................................ 65
Unterverzeichnis ................................................................................................................................. 65
Erzeugen eines Unterverzeichnisses .................................................................................................... 65
Löschen eines Unterverzeichnisses...................................................................................................... 66
Baumstrukturierte Verzeichnisse......................................................................................................... 66
Stammverzeichnis (Mutterverzeichnis), Unterverzeichnis (Kinderverzeichnis) ................................... 66
Aktuelles Verzeichnis ......................................................................................................................... 66
Festlegen eines Pfades......................................................................................................................... 67
Umgebungsvariablen........................................................................................................................... 68
Anwendungen ........................................................................................................... 69
1. Multitasking...................................................................................................................70
1.1 Was ist Multitasking ......................................................................................................................... 70
Vorteile des Multitaskings................................................................................................................... 70
Multitasking in SPEL III..................................................................................................................... 71
Tasks während der Ausführung des WAIT-Befehls, des INPUT-Befehls und des Bewegungs-Befehls . 72
WAIT-Befehl und IF-Satz................................................................................................................... 72
Zeitprogrammierung für den Wechsel der Tasks ................................................................................. 73
1.2 Ineinandergreifen von Tasks ............................................................................................................. 74
Störungen der Steuerung..................................................................................................................... 74
Nur ein Gerät wird von Vielfach-Tasks benutzt................................................................................... 75
2. Programmiertechniken........................................................................................................................ 77
2.1 Schreiben eines umfangreichen Programms (Effizienter Einsatz von CHAIN/LINK) ........................ 77
Einsatzmöglichkeiten des CHAIN-Befehls .......................................................................................... 77
Einsatzmöglichkeiten des CHAIN-Befehls .......................................................................................... 78
2.2 Bewegung zu mehreren gleichweit voneinander entfernten Punkten.................................................. 79
Definieren von Paletten....................................................................................................................... 79
Positionsbestimmung innerhalb der Palette ......................................................................................... 80
2.3 Techniken zum Verkürzen der Zykluszeit ......................................................................................... 81
Benutzen einer Bogenbewegung.......................................................................................................... 81
Freies Einstellen des Zeitverhaltens bei Abschluß der Positionierung .................................................. 81
Parallele Prozesse................................................................................................................................ 81
Bedingter Stop während der Bewegung............................................................................................... 82
Montageanwendung mit langsamer Geschwindigkeit .......................................................................... 82
Vereinigte Befehle .............................................................................................................................. 82
2.4 Benutzen von Positionsdaten............................................................................................................. 83
3. Fehlerbeseitigung (Debuggen) .....................................................................................84
3.1 Fehlerbeseitigung im Multitasking.................................................................................................... 84
Komfortable Befehle zur Fehlerbeseitigung......................................................................................... 84
XQT-Befehl ........................................................................................................................................ 84
TSTAT-Befehl .................................................................................................................................... 84
TON/TOFF-Befehl.............................................................................................................................. 85
PRINT-Befehl ..................................................................................................................................... 85
4. Stapelverarbeitung .......................................................................................................86
4.1 Befehle zur Stapelverarbeitung.......................................................................................................... 86
4.2 Stapeldatei ........................................................................................................................................ 88
Herstellen einer Stapeldatei................................................................................................................. 88
5. Automatische Programmausführung bei Einschalten der Spannungsversorgung ........89
5.1 Die AUTO.BAT-Datei ...................................................................................................................... 89
5.2 Das IPL-Programm ........................................................................................................................... 89
6. Systemkonfigurationsdatei............................................................................................90
6.1 CNFG.SYS-Datei.............................................................................................................................. 90
6.2 Editieren von Dateien ....................................................................................................................... 91
3
7. RS-232C.......................................................................................................................93
7.1 Übersicht über die RS-323C.............................................................................................................. 93
Konfiguration ..................................................................................................................................... 93
Konfiguration für SPEL III ................................................................................................................. 93
Computerkonfiguration ....................................................................................................................... 96
TTY Protokoll und XON/XOFF Steuerung ......................................................................................... 97
BASIC-Protokoll................................................................................................................................. 98
Übertragungssteuerung per CS-Pin ................................................................................................... 100
RS-232C Schnittstelle ....................................................................................................................... 101
7.2 Die Kommunikation zwischen den Robotern................................................................................... 104
Konfigurationseinstellungen ............................................................................................................. 104
Kommunikationsbezogene Befehle.................................................................................................... 104
Spezielle Anwendungsmethoden für kommunikationsbezogene Befehle............................................ 104
7.3 Kommunikation zwischen Robotern und Anwendereinrichtungen................................................... 109
Datenformat...................................................................................................................................... 109
Programm für die Kommunikation mit dem Anwendereinrichtung ................................................... 111
7.4 Die Kommunikation zwischen Hauptrechner und Roboter............................................................... 114
Die Konsole ...................................................................................................................................... 114
Robotersteuerungsprogramm............................................................................................................. 115
7.5 Erweiterte Funktionen..................................................................................................................... 126
SPEL III: Erweiterte Funktionsaufrufe .............................................................................................. 126
ASCII-Codetabelle ............................................................................................................................ 128
7.6 Übertragungsfehler ......................................................................................................................... 129
Übertragungsfehlercodes ................................................................................................................... 129
4
SICHERHEIT
5
1. Grundfunktionen
In diesem Kapitel erklären wir die Hauptsicherheitsfunktionen unserer Roboter. Diese Erklärungen
beinhalten das Grundwissen, das benötigt wird um ein Robotersystem einzurichten.
Die Erklärungen in diesem Kapitel sind einfach und kurz gehalten, um Ihnen einen Überblick über die
Sicherheit zu verschaffen. Bitte nutzen Sie für Details das Handbuch zur Steuerung und andere relevante
Handbücher und richten Sie ein Sicherheitssystem ein, nachdem Sie die Merkmale unserer Roboter
wirklich verstanden haben.
1.1 Niedrige und hohe Spannung
Der Roboter hat zwei Motorspannungsmodi: Low Power (LP)- und High Power (HP)-Modus (niedrige
und hohe Spannung.
Im LP-Modus ist die Geschwindigkeit der Bewegung und die des Drehmoments des Motors verringert.
Umgekehrt kann der Motor im HP-Modus in der programmierten Geschwindigkeit und mit einem
bestimmten Drehmoment betrieben werden.
Die Möglichkeit der geringen Geschwindigkeit wurde geschaffen, damit es möglich ist Gefahren
vorzubeugen, falls der Roboter aus irgendeinem Grund Fehlfunktionen aufweist. Das reduzierte
Drehmoment wurde geschaffen, um einen Bediener, wenn er von dem Roboter getroffen werden sollte,
vor ernsthaften Verletzungen zu schützen. Jeder Roboter hat seine eigenen, vorgegebenen, maximalen
Werte für verringerte Geschwindigkeit und reduziertes Drehmoment. Benutzer können diese Werte
nicht verändern.
Aus Gründen der Sicherheit ist die Anfangseinstellung der Roboter immer der LP-Modus. Der Roboter
geht nicht zur Hochspannungseinstellung über, bis der spezielle Befehl dazu eingegeben wurde.
Die Motorspannungseinstellungen werden gespeichert. Trotzdem schaltet die Motorsteuerung sofort in
einen Niedrigspannungsstatus, der identisch zum LP-Modus ist, wenn die Sicherheitsabschrankung
geöffnet wird.(Die Motorspannung geht in den HP-Modus zurück, sobald die Sicherheitsabschrankung
wieder geschlossen ist.) Der Roboter wird ebenfalls automatisch in den Niedrigspanungsmodus
zurückversetzt, wenn der Bedienungsmodus (TEACH/AUTO) geändert oder die Steuerung
zurückgesetzt wird.
LP-Modus
HP-Modus
Sicherheitsabschrankung offen
Niedrige Spannung
Niedrige Spannung
Sicherheitsabschrankung geöffnet
Niedrige Spannung
Hohe Spannung
Viele Schutz- und Überwachungskreisläufe in der Steuerung verhindern, daß der Roboter außer
Kontrolle gerät und die verringerte Geschwindigkeit und das reduzierte Drehmoment überschreitet,
sogar wenn nur ein einziger Fehler im LP-Modus auftritt.
6
1.2 Sicherheitsabschrankungen
Der REMOTE1-Anschluß der Steuerung hat einen Eingangsstromkreis der mit dem
Schließmechanismus der Sicherheitsabschrankung verbunden ist. Der Eingang der
Sicherheitsabschrankung arbeitet wie folgt:
Im AUTO-Modus:
Sicherheitsabschrankung geschlossen: Automatischer Betrieb ist möglich
Sicherheitsabschrankung geöffnet:
Der Roboter stoppt sofort und geht in den LP-Modus über. Der
Roboter kann nicht neu gestartet werden bis die
Sicherheitsabschrankung wieder geschlossen ist und ein
START-Signal eingegeben wird.
Im TEACH-Modus:
Sicherheitsabschrankung geschlossen: Der Roboter kann selbst im HP-Modus ein Programm
verifizieren.
Sicherheitsabschrankung geöffnet:
Der Roboter hält sofort, kann aber danach nur im LP-Modus
für den TEACH-Betrieb genutzt werden.
Schlagen Sie auch (6) – e) im Abschnitt 2.3 des Handbuchs und „4. REMOTE1“ des
Steuerungshandbuches nach.
Nur für SRC-320
Der Schaltkreis der Sicherheitsabschrankung ist dual-redundant. Eine offene Sicherheitsabschrankung
wird immer als Fehler erkannt, auch wenn nur einer der Schaltkreise ausfällt. Falls ein Ausfall erfolgt,
wird ein Fehler angezeigt.
Deshalb empfehlen wir dringend eine dual-redundante Verdrahtung für die Sicherheitstürschaltkreise.
Wenn von dem Schaltkreis der Sicherheitsabschrankung eine offene Sicherheitsabschrankung entdeckt
wird, wird das Signal geschlossen. Selbst, wenn danach die Sicherheitsabschrankung geschlossen wird,
wird sie nicht als geschlossen erkannt, bis das Freigabesignal eingegeben wird. Diese
Sicherheitsmaßnahme wurde eingeführt, damit eine Verwechslung der Zustände der
Sicherheitsabschrankung vermieden wird. Eine Verwechslung könnte auftreten, wenn z.B. Bediener und
Roboter Zustände der Sicherheitsabschrankung unterschiedlich erkennen, bspw. der Bediener glaubt die
Türe ist offen während der Roboter einen geschlossenen Zustand wahrnimmt.
(z.B.: Dies könnte passieren, wenn Falscheinstellungen unterschiedliche Zustände der
Sicherheitsabschrankung und des Öffners bewirken, oder wenn die Türe geschlossen wird, obwohl der
Bediener sie nicht schließen wollte, etc.)
7
1.3 NOT-AUS
Die Robotersteuerung ist mit NOT-AUS Eingaben ausgestattet. Wenn der im Normalfall geschlossene
NOT-AUS-Schalter gedrückt wird, wird die Spannungszufuhr zum Motor unterbrochen und der Roboter
wird mittels einer Bremse angehalten.
Der Bewegungsbereich des Roboters vor dem Stop und der genaue Punkt an dem der Roboter nach
einem NOT-AUS hält können nicht spezifiziert werden. In den meisten Fällen wird der Roboter nicht
über den Aufnahmepunkt, der vor dem Einsatz des NOT-AUS Schalters spezifiziert wurde,
hinausgehen; eine Überschreitung dieses Punktes ist aber möglich. Dies ist abhängig von dem Gewicht
der Ladung des Roboters und seiner Bewegungsgeschwindigkeit. Deshalb muß zusätzliche Ausstattung
in einer entsprechenden Entfernung zum Roboter installiert werden.
Ein NOT-AUS Ausgangsterminal, das mit dem NOT-AUS des Roboters verbunden ist, ist optional
erhältlich. Bediener können es benutzen, um weitere Komponenten zu steuern.
1.4 Zustimmtaster (nur für SRC-320)
Ein Zustimmtaster wurde für Personen eingerichtet, die innerhalb der Sicherheitsabschrankung arbeiten.
Im TEACH-Modus arbeitet der Roboter nur, wenn der Taster gedrückt wird und hält an, wenn der
Taster losgelassen wird. Die Roboterbetrieb kann nicht durch einfaches Drücken des Tasters wieder
begonnen werden.
Der Zustimmtaster ist an der Seite des Handprogrammiergerätes TP-320 angebracht. Um den Roboter
mit dem Handprogrammiergerät zu betreiben, muß der Zustimmtaster ununterbrochen gedrückt werden,
egal ob die Sicherheitsabschrankung geöffnet oder geschlossen ist.
Um von außerhalb der Sicherheitsabschrankung ein Programm zu entwickeln wird ein PC benutzt. Die
Software zur Unterstützung der Programmierung (SPEL Editor, SPEL für Windows) hat eine TeachFunktion. Verbinden Sie ein PC-Kabel, das mit einem Zustimmtaster ausgestattet ist (optional
erhältlich), wenn Sie diese Funktion benutzen. Verwenden Sie den PC niemals innerhalb der
Sicherheitsabschrankung, wenn das PC-Kabel nicht mit einem Zustimmtaster ausgestattet ist,.
8
2. Sicherheitshinweise
2.1 Allgemeines
Dieses Kapitel beschreibt die grundlegenden Vorsichtsmaßnahmen, die getroffen werden müssen, um
den gefahrlosen Betrieb des Roboters und des Robotersystems sicherzustellen.
Bitte lesen Sie das Kapitel sorgfältig und denken Sie zuerst an die Sicherheit, wenn Sie den Roboter
betreiben. Spezielle Toleranzwerte, Nutzungsbedingungen und andere Punkte, die zur Sicherheit
notwendig sind werden im Steuerungs- und Manipulatorhandbuch erläutert.
Die hier behandelten Punkte basieren auf ISO 10218 (Manipulator-Industrieroboter – Sicherheit), aber
die Sicherheitsmaßstäbe sind genauer geworden und einige Zusätze sind erfolgt.
Einige der Sicherheitsstandards von Robotern und Robotersystemen sind unten aufgelistet. Bitte führen
Sie nicht nur die in diesem Kapitel aufgeführten, sondern alle relevanten Sicherheitsmaßnahmen durch.
(Beachten Sie: dies ist nur ein Teil der benötigten Sicherheitsstandards).
EN775
Europäischer Standard; Manipulator-Industrierobotor – Sicherheit
ANSI/RIA R15.06
Amerikanischer nationaler Standard; Industrieroboter und Robotersysteme
– Sicherheitsanforderungen.
IEC204-1 (EN60204-1)
Maschinensicherheit – Elektrische Ausstattung der Maschinen Teil1.
Spezifikationen für generelle Anforderungen
EN292-1, -2
Sicherheit der Maschinen – Basiskonzepte, allgemeine
Konstruktionsvorschriften
x
Teil1. Basisterminologie, Methoden
x
Teil2. Technische Richtlinien und Spezifikationen
EN418
NOT-AUS Zubehör, funktionale Aspekte – Konstruktionsvorschriften
prEN953
Allgemeine Anforderungen an Entwurf und Konstruktion von
Sicherheitsabschrankungen
9
2.2 Allgemeine Konstruktionsanforderungen
Die Roboter und die dazugehörigen Optionen werden vom Hersteller/Lieferanten entsprechend der
Vorgaben in diesem und dem nächsten Abschnitt entworfen und konstruiert.
(1) Sicherheit bei Fehlern
Die Roboter und die dazugehörigen Optionen werden so geplant, konstruiert und implementiert, daß
sich ein vorhersehbarer Fehler einer einzelnen Komponente nicht auf andere Bestandteile auswirkt.
Sollte ein Fehler auftreten wird das System in einem sicheren Zustand verlassen.
(2) elektrische Einrichtungen
Die Installation der elektrischen Einrichtungen wird gemäß IEC204-1 [(EN60204-1):
Maschinensicherheit – Elektrische Ausstattung der Maschinen Teil1. Spezifikationen für generelle
Anforderungen] vorgenommen.
(3) Spannungszufuhr
Die Einrichtung der Spannungszufuhr und der Erdung wird gemäß den Spezifikationen im Handbuch
zur Steuerung vorgenommen.
(4) Isolierung der Stromquellen
Jedes Robotersystem verfügt über Apparate zum Isolieren seiner Stromquellen. Diese Apparate sind so
angebracht, daß niemand einer Gefahr ausgesetzt wird und sie verfügen über die Fähigkeit einer
Verriegelung.
(5) Umgebungsbedingungen
Die Umgebungsbedingungen werden gemäß den Spezifikationen im Handbuch zur Steuerung
vorgenommen.
10
EINFÜHRUNG
11
1. Vorbereitung
1.1 Komponenten des Roboters
Die Hauptbestandteile unserer Roboter finden Sie in der folgenden Abbildung:
G HINWEIS
Alle Komponenten außer der Steuerung und dem Manipulator sind optional
erhältlich.
Optionen
SPEL Editor
Programmentwicklungs-Tool unter MS-DOS.
SPEL für Windows
Programmentwicklungs-Tool unter MS-Windows.
Bedieneinheit (OPU-300)
Eine multifunktionale Bedieneinheit für unsere Roboter mit einer großen LCD-Anzeige.
Handprogrammiergerät (TP-320/TP-320J)
Die Programmierung kann mit Hilfe des Handprogrammiergeräts erfolgen.
12
1.2 Vorsichtsmaßnahmen bei der Installation
Lesen Sie zuerst die Abschnitte über die Vorsichtsmaßnahmen in den Steuerungs- und ManipulatorHandbüchern. Einige ergänzende Vorsichtsmaßnahmen werden nachfolgend aufgeführt:
Überprüfen des M. CODE und der Kabellänge
Jede Steuerung ist auf einen bestimmten Manipulator eingestellt und angepaßt. Es kann daher zu
Maschinenschäden oder anderen Problemen kommen, wenn ein falscher Steuerungstyp angeschlossen
ist.
Prüfen Sie daher vor der Installation, daß der M.CODE der Steuerung mit dem M.CODE des
Manipulators übereinstimmt. Den M.CODE finden Sie auf dem gelben Aufkleber auf der Rückseite des
Manipulators, wie auch auf der Rückseite der Steuerung. Stellen Sie sicher, daß die Länge des
Stromversorgungskabels, wie auch des Signalkabels mit der angegebenen Länge auf dem gelben
Aufkleber übereinstimmt.
G VORSICHT !
Prüfen Sie vor der Installation, daß der M.CODE der Steuerung mit dem M.CODE
des Manipulators übereinstimmt.
M. CODE Aufkleber
Transportsicherung
Der Roboterarm wird mit einer speziellen Transportsicherung ausgeliefert. Entfernen Sie diese
Transportsicherung solange nicht, bis der Manipulator auf seinem Sockel befestigt ist. Stellen Sie sicher,
daß die Transportsicherung entfernt wurde, bevor Sie die Spannungszufuhr einschalten. Weitere
Informationen zur Transportsicherung finden Sie im Manipulator-Handbuch.
1.3 Programmiereinheit
Die Programmiereinheit wird zum Einrichten von Punkten und Erzeugen von Programmen verwendet,
und um den Roboter zu betreiben.
Im allgemeinen wird dafür ein Computer mit der Programmiersoftware (SPEL Editor oder SPEL für
Windows) verwendet.
Vorbereitungen zum Gebrauch der Programmiereinheit
Die Vorbereitungen zur Nutzung der Programmiereinheit werden in Kapitel „1.3 Vorbereitungen“ im
SPEL Editor Handbuch oder „Setup“ im SPEL für Windows Handbuch erklärt.
13
1.4 Modi
Steuerungsmodi
Die Programmiereinheit verfügt über zwei Modi: TEACH-(Einricht-)-Modus und AUTO-Modus. Bevor
Sie den Roboter starten, müssen Sie auswählen, in welchem Modus er betrieben werden soll. Beachten
Sie, daß das Betriebsverfahren von dem ausgewählten Modus abhängig ist.
Es gibt zwei Methoden, zwischen den Modi zu wechseln:
(a) Modusschalter an der Bedieneinheit
Stellen Sie den Modusschalter auf den gewünschten Modus.
(b) Signalsendung zum REMOTE2-Stecker (wenn die Bedieneinheit nicht verwendet wird)
Senden Sie ein Modussignal, daß dem gewünschten Modus entspricht, an den Pin auf dem
REMOTE2-Stecker. Weitere Informationen zur Modusumschaltung finden Sie im Handbuch zur
Steuerung in dem Kapitel „Benutzung ohne Bedieneinheit“.
Die Funktionsweisen der beiden Modi werden nachfolgend beschrieben:
TEACH-Modus
Dieser Modus wird zum Einrichten, Programmieren und Debuggen verwendet, wenn die Steuerung mit
einem Programmiergerät, z.B. einem Personal Computer oder Handprogrammiergerät, verbunden ist.
Unabhängig welches Programmiergerät angeschlossen ist, arbeitet der Modus durch Senden von
Befehlen an die TEACH-Schnittstelle des Roboters. PC-seitig wird das TEACH-Kabel an die RS-232C
Schnittstelle angeschlossen.
Bitte konfigurieren Sie zur Benutzung der TEACH-Schnittstelle die RS-232C-Schnittstelle Ihres
Personal Computers wie folgt:
9600 bps, 8 Bit, Even, 2 Stop Bits
Die Konsole im TEACH-Modus
Das Gerät, das die Befehle an den Roboter sendet, wird Konsole genannt. Im TEACH-Modus ist die
Konsole dem Gerät zugewiesen, das an der TEACH-Schnittstelle auf der Vorderseite der Steuerung
angeschlossen ist. Außerdem können Sie den Personal Computer an die RS-232C-Schnittstelle (#20),
auf der Rückseite der Steuerung, anschließen. (Nur für SPEL für Windows.)
G HINWEIS
Die RS-232C-Schnittstelle (#21) kann nicht die Konsole sein.
Warnung
14
In dem Fall, daß der SSW3-1 des Softwareschalters auf ON steht, muß der PC an
die RS-232C-Schnittstelle (#20) angeschlossen werden. Wenn der PC an der
TEACH-Schnittstelle angeschlossen ist, funktioniert der Taster
<Handprogrammiergerät> in SPEL für Windows nicht.
•
TEACH-Schnittstelle
Das ist die Standardeinstellung. Das Handprogrammiergerät oder der PC ist an der TEACHSchnittstelle auf der Vorderseite der Steuerung angeschlossen.
•
RS-232C-Schnittstelle (#20)
Das Handprogrammiergerät kann an die TEACH-Schnittstelle auf der Vorderseite der Steuerung
angeschlossen werden, und gleichzeitig können Sie den PC mit SPEL für Windows an die RS-232CSchnittstelle (#20) auf der Rückseite der Steuerung anschließen.
Durch Wechseln der Konsole können Sie die Einrichtarbeiten vornehmen und parallel Programme
erstellen oder debuggen, ohne das Kabel zu wechseln. Diese Funktion wird nur von SPEL für Windows
und dem Handprogrammiergerät TP-320/TP-320J unterstützt.
Wenn Sie die RS-232C-Schnittstelle (#20) benutzen, stellen Sie vorher den Softwareschalter SSW3-1
auf ON. Wenn Sie die Spannungszufuhr für die Steuerung einschalten, nachdem Sie den
Softwareschalter umgestellt haben, ist die RS-232C-Schnittstelle (#20) die Konsole. Sie können die
Konsole wie folgt ändern:
1.
Wenn Sie die Konsole von Handprogrammiergerät auf PC umstellen wollen, drücken Sie den
Freigabe-Schalter auf dem Handprogrammiergerät.
2.
Wenn Sie die Konsole von PC auf Handprogrammiergerät umstellen wollen, benutzen Sie den
Taster <Handprogrammiergerät> in dem Menü <Robotersteuerung> in SPEL für Windows.
Führen Sie keine Einrichtungen aus, wenn der PC an der RS-232C-Schnittstelle
(#20) angeschlossen ist, da der NOT-AUS-Schalter nicht als solcher funktioniert,
wenn ein PC-Kabel an der RS-232C-Schnittstelle (#20) angeschlossen ist. Daher
ist es sehr gefährlich, den Roboter in diesem Zustand zu bewegen.
Warnung
Wenn Sie ein Programm debuggen, während der PC an die RS-232CSchnittstelle (#20) angeschlossen ist und der Roboter sich bewegt, ist es
zwingend notwendig, das Handprogrammiergerät oder die Bedieneinheit OPU300 in der Hand zu halten, um ggf. den NOT-AUS-Schalter drücken zu können.
Das Handprogrammiergerät oder die Bedieneinheit müssen dafür an der
TEACH-Schnittstelle angeschlossen sein.
Der Spannungsversorgungszustand des Motors im TEACH-Modus
Im TEACH-Modus ist es möglich, daß derjenige, der den TEACH-Vorgang ausführt, nahe an den
Roboter herankommt. Der Roboter wird normalerweise im TEACH-Modus im LOW-POWER-Status
betrieben, um die Sicherheit des Bedieners zu gewährleisten. Um den Roboter im TEACH-Modus im
HIGH-POWER-Status betreiben zu können, muß die Sicherheitsabschrankung geschlossen und der
LOW-POWER-Status durch Eingeben des Befehls LP OFF ausgeschaltet werden. Auch wenn der Befehl
LP OFF eingegeben wurde, aber die Sicherheitsabschrankung geöffnet ist, ändert sich der
Spannungsversorgungszustand des Motors nicht. Der Spannungsversorgungszustand des Motors ändert
sich auch dann nicht, wenn die Sicherheitsabschrankung geschlossen ist, aber der Befehl LP OFF nicht
eingegeben wurde.
Der Roboter kann im TEACH-Modus mit niedriger Geschwindigkeit betrieben werden, auch wenn die
Sicherheitsabschrankung geöffnet ist, um das Einrichten zu ermöglichen.
15
AUTO-Modus
Dieser Modus wird zum Betrieb der Roboter verwendet. Die Befehle zum Starten oder Unterbrechen
eines Programms können mit Hilfe der Bedieneinheit OPU-300, der REMOTE3 Steckverbindung oder
der RS-232C Schnittstelle an den Roboter gesendet werden.
Die Konsole im AUTO-Modus
Das Gerät, das die Befehle an den Roboter sendet, wird Konsole genannt und wird mit Hilfe des Befehls
„CONSOLE“ festgelegt. Es gibt drei verschiedene Möglichkeiten, die Konsole im AUTO-Modus zu
spezifizieren.
•
Unter Verwendung der OPU-300 (REMOTE2) als Konsole:
Dieses Gerät ist mit einem Druckknopf zum Starten und Unterbrechen von Programmen
ausgerüstet. Außerdem verfügt es über eine Anzeige zum Darstellen der Menüs und
Fehlermeldungen.
•
Unter Verwendung der REMOTE3 als Konsole:
Roboter können mit Hilfe der REMOTE3 über einen Sequencer oder eine herkömmliche
Bedieneinheit gesteuert werden (So kann der Roboter gestartet, angehalten, unterbrochen oder
kalibriert werden.)
•
Unter Verwendung von S.NET (RS-232C #20, #21):
Die RS-232C stellt eine Kommunikationsschnittstelle bereit, um Befehle von einem Computer an
den Roboter zu senden. Sie ermöglicht außerdem das Senden verschiedener Daten (Daten zur
Produktionssteuerung, etc.) vom Roboter an den Computer, damit der Computer diese Daten
bearbeiten kann. Nähere Informationen erhalten Sie in Kapitel 7.4.
Der Spannungsversorgungszustand des Motors im AUTO-Modus
Im AUTO-Modus ist es unmöglich, den Roboter mit geöffneter Sicherheitsabschrankung zu betreiben,
da dies bedeuten würde, daß sich jemand in der Nähe des Roboters aufhält. Wenn Sie versuchen, den
Roboter mit geöffneter Sicherheitsabschrankung zu betreiben, wechselt der Roboter sofort in den
Pausezustand und kann nicht mehr betrieben werden. Um den Pausezustand wieder aufzuheben, müssen
Sie die Sicherheitsabschrankung schließen und ein Startsignal senden.
Weitere Informationen über den Spannungsversorgungszustand des Motors im AUTO-Modus erhalten
Sie in der Übergangstabelle des Handbuches zur Steuerung. Die Spannungsversorgungszustände des
Motors im AUTO-Modus sind bei den Steuerungen SRC-300 und SRC-320 unterschiedlich.
16
1.5 Fehlermeldung
Wenn in der Robotersteuerung ein Fehler auftritt, erscheint eine entsprechende Fehlermeldung (wie
nachfolgend dargestellt). Gleichzeitig erscheint eine Fehlermeldung an der OPU-300 und der
Programmiereinheit (PC).
LCD Kontrollanzeige der Steuerung
1.
7-Segment Anzeige
Die oben dargestellten Inhalte werden alternativ angezeigt.
Die Fehler- und die Achsnummern werden mit einem Bindestrich (-) dargestellt.
2.
andere Anzeigen
NOT-AUS
FEHLER
S.ERR
SICHERHEITSABSCHRANKUNG
Leuchtet auf, wenn ein NOT-AUS-Zustand auftritt. Die LED leuchtet
solange auf, bis der Roboter zurückgesetzt wird, auch wenn die Ursache des
NOT-AUS beseitigt wurde.
Leuchtet auf, wenn ein Fehler auftritt. Leuchtet nicht bei einem NOT-AUS
oder Systemfehler.
Leuchtet auf, wenn die Haupt-CPU aufgrund eines Hardwarefehlers nicht
funktioniert. In diesem Fall wird der Fehler nicht oder nicht korrekt in der
7-Segment Anzeige dargestellt.
Leuchtet auf, wenn die Sicherheitsabschrankung geöffnet ist.
17
Ausgabe an OPU-300 und REMOTE1-Steckverbindung
1.
LCD (OPU-300)
Wenn ein Fehler auftritt, werden Fehler-, Zeilen- und Tasknummer sowie die Fehlerbeschreibung
angezeigt.
2.
Ausgabe an OPU-300 LCD und REMOTE1
NOT-AUS
Leuchtet auf, wenn ein NOT-AUS-Zustand auftritt.
Leuchtet auf, wenn ein Fehler auftritt. Leuchtet nicht bei einem NOT-AUS
FEHLER
oder Systemfehler.
Leuchtet auf, wenn die Haupt-CPU aufgrund eines Hardwarefehlers nicht
S.ERR
funktioniert. In diesem Fall wird der Fehler nicht oder nicht korrekt in der
7-Segment Anzeige dargestellt.
SICHERHEITSABLeuchtet auf, wenn die Sicherheitsabschrankung geöffnet ist.
SCHRANKUNG
Ausgabe an Programmiereinheit
Wenn ein Fehler aufgrund eines eingegebenen Befehls auftritt, wird die Meldung wie folgt ausgegeben:
Wenn ein Fehler auftritt, während ein Programm abläuft, wird die Meldung wie folgt ausgegeben:
18
2. Grundlegende Bedienung
In diesem Kapitel beschreiben wir die grundlegenden Vorgehensweisen zum Betrieb des Roboters und
geben Beispiele zum Einrichten und Programmieren des Roboters.
2.1 Ablaufplan
Die grundlegende Vorgehensweise zum Betrieb des Roboters ist in folgendem Ablaufplan dargestellt:
Jeder einzelne Ablaufschritt wird nachfolgend beschrieben.
19
2.2 Überprüfung des Startzustandes
(1)
Stellen Sie sicher, daß die Transportsicherung des Armes entfernt wurde.
(2)
Schalten Sie die Spannungsversorgung der Steuerung ein.
Stellen Sie sicher, daß auf den LED-Anzeigen auf der Vorderseite der Steuerung oder der
Bedieneinheit keine ungewöhnliche Meldungen angezeigt werden. Der korrekte
Startzustand ist folgender:
* Die Zeilennummer/Status auf der Kontrollanzeige ist „0“.
(3)
Bei Verwendung eines Manipulators vom Typ BNA oder BNA-CL kann der
Fehler 119 auftreten, wenn die Spannungszufuhr eingeschaltet wird. Das bedeutet,
daß die Positionsdaten beim Ab- und Einschaltvorgang voneinander abweichen.
G HINWEIS
Wenn Sie den Arm manuell bewegt haben, nachdem die Spannungszufuhr
ausgeschaltet, oder die Spannungszufuhr während des Betriebes unterbrochen
wurde, ist dies kein Problem. Führen Sie den RESET-Befehl aus, um die Maschine
zurückzusetzen.
Wenn der Roboterarm mit Peripheriegeräten o. ä. kollidiert oder wenn es nach
dem Austausch des Motors oder des Untersetzungsgetriebes zu einem
Zusammenstoß mit anderen Geräten, etc. kommt, müssen die Achsen neu
kalibriert werden. Weitere Informationen über das Kalibrieren entnehmen Sie bitte
dem Kapitel 3.12 „Kalibrierung“.
•
Die LED-Anzeigen auf der Steuerung und der OPU-300 müssen wie folgt aufleuchten:
LEDs
E.STOP
Steuerung
S.ERR
EIN/AUS Zustand
Leuchtet nicht
SICHERHEITSABSCHRANKUNG
Blinkt
MODUS-Anzeige (TEACH/AUTO)
Eine Lampe leuchtet
RESET
Leuchtet
MOTOR POWER
NOT-AUS
FEHLER
OPU-300
SYSTEM FEHLER
Leuchtet nicht
PAUSE
START
SICHERHEITSABSCHRANKUNG
HOME
(4)
20
Blinkt
Wenn Sie die Spannungszufuhr einschalten und der Startzustand weicht von den oben
genannten Möglichkeiten ab, beseitigen Sie die Fehlerursache.
2.3 Einstellen der Datensicherung
G HINWEIS
Die Steuerung enthält wichtige Systemdaten. Stellen Sie sicher, daß es von den
Originalsystemdaten eine Sicherungskopie gibt.
Wie Sie die verschiedenen Systemdaten sichern:
•
SPEL Editor:
Führen Sie im Befehlsmodus den Befehl MKVER aus.
•
SPEL für Windows:
Führen Sie den Befehl [Tools]-[Wartung] aus, und klicken Sie auf die
Schaltfläche MKVER im Menü „Wartung“.
Durch o.g. Schritte werden die verschiedenen Einstellungsdaten im internen Dateispeicher der
Steuerung als Datei gespeichert. Der Befehl SETVER kann genutzt werden, um die im Dateispeicher
gespeicherten Daten zurückzusetzen. Zusätzlich können die im Dateispeicher gespeicherten Daten auf
eine Diskette gespeichert werden. Weitere Informationen zu den Befehlen erhalten Sie in den
Handbüchern zum SPEL Editor und SPEL für Windows.
Das Gerät, das Programmiereinheit genannt wird, wird verwendet, um Punkte einzurichten und
Programme zur Bedienung des Roboters zu erstellen. Im Normalfall wird zum Programmieren ein PC
verwendet.
Initialisierung des Bewegungsbereiches
Der Bewegungsbereich wird mit Hilfe des Befehls RANGE eingestellt. Der Bewegungsbereich kann
weder durch Ausschalten der Spannungszufuhr noch durch die Ausführung des Befehls VERINIT
geändert werden. Wenn Sie die Standardwerte wiederherstellen wollen, müssen Sie die gespeicherten
Originaldaten wieder einladen.
Der Befehl RANGE ist ein wichtiger Befehl, um den Roboter gefahrlos zu bewegen. Weitere
Informationen erhalten Sie im Kapitel 8.3 des Manipulator-Handbuches.
21
2.4 Einschalten der Motorspannungszufuhr
Der Motor wird nicht alleine durch Einschalten der Spannungszufuhr in Betrieb gesetzt. Um ihn zu
betreiben, ist es wichtig, daß er eingeschaltet ist. Um ihn einzuschalten, befolgen Sie eine der folgenden
Methoden:
(a) Von der Programmiereinheit:
•
•
SPEL Editor:
SPEL für Windows:
Führen Sie im Befehlsmodus den Befehl MOTOR ON aus.
Führen Sie den Befehl [Tools]-[Robotersteuerung] aus, und klicken
Sie auf die Schaltfläche MOTOR ON im Menü „Robotersteuerung“.
(b) Von der Bedieneinheit OPU-300 (Weitere Informationen erhalten Sie im Handbuch zur
Bedieneinheit.)
(c) Von dem Handprogrammiergerät TP-320/TP-320J (Weitere Informationen erhalten Sie im
entsprechenden Handbuch.)
(d) Anlegen des Power-On-Signals an die REMOTE3-Schnittstelle (Siehe Handbuch zur Steuerung.)
(e) Führen Sie den Befehl MOTOR ON im Programm aus.
Der Betriebszustand des Motors
Der Betriebszustand des Motors wird wie nachfolgend dargestellt umgeschaltet:
22
2.5 Kalibrierung
Die Kalibrierung muß nach dem Einschalten der Motoren ausgeführt werden, es sei denn, es handelt
sich um Manipulatoren vom Typ BNA oder BNA-CL. Um sie auszuführen, befolgen Sie eine der
folgenden Methoden:
(a) Von der Programmiereinheit:
•
•
SPEL Editor:
SPEL für Windows:
Führen Sie im Befehlsmodus den Befehl MCAL aus.
Führen Sie den Befehl [Tools]-[Robotersteuerung] aus, und klicken
Sie auf die Schaltfläche MCAL im Menü „Robotersteuerung“.
(b) Von der Bedieneinheit OPU-300 (Weitere Informationen erhalten Sie im Handbuch zur
Bedieneinheit.)
(c) Von dem Handprogrammiergerät TP-320/TP-320J (Weitere Informationen erhalten Sie im
entsprechenden Handbuch.)
(d) Anlegen des MCAL-Signals an die REMOTE3-Schnittstelle als E/A-1.(Siehe Handbuch zur
Steuerung.)
(e) Führen Sie den Befehl MCAL im Programm aus.
Wenn Sie den Befehl MCAL ausführen, während sich der Arm in der Nähe der Begrenzung des
Bewegungsbereiches befindet, ist es u.U. möglich, daß der Arm den Bewegungsbereich überschreitet.
Eine Kalibrierung ist dann nicht möglich. Sollte dies dennoch passieren, führen Sie den Befehl MOTOR
OFF aus, schalten Sie die Steuerung aus, und bewegen Sie danach den Arm per Hand in die Mitte des
Bewegungsbereiches zurück. Starten Sie dann den Ablauf erneut. (Siehe auch Kap. 9.1 „Kalibrierung“
im Manipulatorhandbuch.)
23
2.6 Einstellen der Home-(Standby-)Position
Die Ursprungsposition kann auf eine optionale Position eingestellt werden. Der Arm wird mit Hilfe des
Befehls HOME bewegt. Stellen Sie die Home-(Standby-)Position, falls notwendig, ein.
Mit Hilfe des Befehls HOME in SPEL III Ver. 3. bewegen Sie den Roboter in die Home-(Standby-)
Position.
Bitte beachten Sie, daß bei Auslieferung des Systems keine Home-(Standby-)Position definiert ist. Wenn
Sie also den HOME Befehl ausführen, ohne zuvor die Home-(Standby-)Position zu definieren, erscheint
der Fehler 143.
Die HOME LCD an der OPU-300 und der HOME-Ausgang an REMOTE2 leuchten, während der
HOME-Befehl ausgeführt wird.
Definieren der Home-(Standby-)Position
Die Definition der Home-(Standby-)Position wird ausgeführt, indem Sie die Pulswerte der Position, die
Sie als Home-(Standby-)Position festlegen möchten, mit Hilfe des Befehls HOMESET eingeben.
Weitere Informationen über das Verhältnis Bewegungsbereich und Pulsbereiche erhalten Sie in Kap. 8
„Der Bewegungsbereich und die Roboterkoordinaten“ im Manipulatorhandbuch.
• SPEL Editor:
(a)
<Beispiel>
(b)
Wenn Sie den Pulswert für die zu definierende Homeposition kennen, geben Sie
den entsprechenden Pulswert mit Hilfe des Befehls HOMESET ein.
HOMESET 0,0,0,0
Wenn der Pulswert nicht bekannt ist, können Sie ihn mit Hilfe der PLS Funktion
einfach definieren. Gehen Sie wie folgt vor:
1 Führen Sie den Befehl SFREE aus.
2 Bewegen Sie den Arm manuell zu der Position, die Sie als Homeposition
definieren wollen.
3 Geben Sie folgenden Befehl ein:
HOMESET PLS(1),PLS(2),PLS(3),PLS(4)
• SPEL für Windows:
Führen Sie den Befehl [Project]-[Roboterpaprameter] aus, und geben Sie den
Pulswert der Homeposition über das [HOMESET]-Bedienfeld im Menü
„Roboterparameter“ ein.
Armbewegungsreihenfolge bei Einstellung der Home-(Standby-)Position
Der Befehl HORDR definiert die Reihenfolge der Achsenbewegung bei Ausführung des HOME-Befehls.
Bei Auslieferung des Systems sind die HORDR-Werte wie folgt eingestellt. Nachdem die 3. Achse in
Home-(Standby-)Position neu positioniert wurde, werden alle anderen Achsen gleichzeitig positioniert.
<Standardwert> HORDR &B0010, &B1101,0,0
Wenn die Standard-Positionierungsreihenfolge für Ihre Anwendung unzureichend ist, können Sie die
Werte mit Hilfe des Befehls HORDR ändern.
• SPEL Editor:
Geben Sie die Werte mit Hilfe des Befehls HORDR ein.
• SPEL für Windows:
Geben Sie die Werte im Menü [Project] im Dialogfenster [Robot Parameters] mit
Hilfe des [HORDR]-Bedienfeldes ein.
24
2.7 Teaching und Programmieren
Teaching
Um einen Roboter zu betreiben, ist es wichtig, eine Zielposition einzurichten. Dieser Vorgang wird
„Teaching“ („Einrichten“) genannt. Es gibt drei verschiedene Einrichtmethoden:
REMOTE Teaching
Teaching per JOG Tasten. Detaillierte Informationen
erhalten Sie in Kapitel 3.
Direktes Teaching
Teaching mittels Positionierung des Roboterarms direkt
durch den Anwender. Detaillierte Informationen
erhalten Sie auf der nächsten Seite.
MDI Teaching (Manuelle Dateneingabe)
Teaching durch Eingabe numerischer Positionsdaten.
Detaillierte Informationen erhalten Sie im Abschnitt
über den Befehl „Pn=Positionsdefinition“ im SPEL III
Referenzhandbuch.
Für das Teaching wird ein PC oder ein Handprogrammiergerät (TP-320/TP-320J) verwendet.
Wenn Sie ein Handprogrammiergerät einsetzen, erhalten Sie weiterführende Informationen im
Handbuch über das Handprogrammiergerät.
Wenn Sie einen PC mit SPEL Editor einsetzen, erhalten Sie weiterführende Informationen im Kapitel 6
des SPEL Editor-Handbuches.
Wenn Sie einen PC mit SPEL für Windows einsetzen, erhalten Sie weiterführende Informationen im
Abschnitt [JOG und Teach] des [TOOLS]-Menüs des SPEL für Windows-Handbuches.
25
Beispiele für Einrichtmethoden
1. Direktes Teaching
Mit Hilfe des Befehls SFREE werden die Motoren ausgeschaltet, und der Arm kann per Hand bewegt
werden. Bewegen Sie die Arme in eine Zielposition, und speichern Sie diese. Schalten Sie dann mit
Hilfe des Befehls SLOCK die Motorspannung ein.
•
26
Mit SPEL Editor:
1
Schalten Sie die Steuerung ein, und führen Sie den Befehl MOTOR ON im
Programmiermodus des SPEL Editors aus.
>MOTOR ON
2
Führen Sie den Befehl MCAL im Programmiermodus des SPEL Editors aus.
(Überspringen Sie diesen Schritt, wenn Sie einen Roboter vom Typ BNA oder BNA-CL
einsetzen.)
>MCAL
3
Führen Sie den Befehl SFREE aus. Alle Achsen werden freigeschaltet.
>SFREE
4
Bewegen Sie die Arme per Hand in die gewünschten Positionen. Wenn die 3. Achse mit
einer elektromagnetischen Bremse ausgestattet ist, bewirkt das Ausschalten des Motors,
daß die Bremse greift und die 3. Achse gesperrt ist. Um die 3. Achse bewegen zu können,
halten Sie den Bremsfreigabetaster gedrückt.
5
Richten Sie die aktuelle Position als P1 ein.
>P1=P*
6
Bewegen Sie die Arme per Hand in die nächsten gewünschten Positionen.
7
Richten Sie die aktuelle Position als P2 ein.
>P2=P*
8
Durch obige Schritte haben Sie die Positionen eingerichtet. Schalten Sie die Motoren mit
SLOCK wieder ein.
>SLOCK
9
Bewegen Sie den Roboter zur Überprüfung mit Hilfe von JUMP zu P1. Stellen Sie vorher
sicher, daß sich kein Hindernis in der Nähe der Zielposition befindet.
>JUMP P1
10
Bewegen Sie den Roboter mit Hilfe von JUMP zu P2.
>JUMP P2
•
Mit SPEL für Windows:
1
Schalten Sie die Steuerung und die Motoren ein. Wenn Sie den Befehl [Tools][Robotersteuerungs-Bedienfeld] ausführen, wird das Robotersteuerungs-Bedienfeld
angezeigt. Wählen Sie den Manipulator als Punktgerät. Klicken Sie auf die Schaltfläche
<MOTOR ON>. Eine Meldung erscheint. Folgen Sie den dargestellten Anweisungen.
2
Klicken Sie auf die Schaltfläche <MCAL>. Wenn die Kalibrierung beendet ist, klicken Sie
auf die Schaltfläche <Schließen>. (Überspringen Sie diesen Schritt, wenn Sie einen
Roboter vom Typ BNA oder BNA-CL einsetzen.)
3
Wenn Sie den Befehl [Tools]-[Jog und Teach] ausführen, wird das [Jog und Teach]- Menü
angezeigt. Schalten Sie die Motoren aller Achsen mit Hilfe der [Achsen frei]-Schaltfläche
aus.
4
Bewegen Sie die Arme per Hand in die gewünschten Positionen. Wenn die 3. Achse mit
einer elektromagnetischen Bremse ausgestattet ist, bewirkt das Ausschalten des Motors,
daß die Bremse greift und die 3. Achse gesperrt ist. Um die 3. Achse bewegen zu können,
halten Sie den Bremsfreigabetaster gedrückt.
5
Richten Sie die aktuelle Position als P1 ein. Klicken Sie auf die Schaltfläche
<Punktschieber rechts> und ändern Sie die aktuelle Position in P1. Klicken Sie auf die
Schaltfläche <TEACH P1>.
6
Bewegen Sie die Arme per Hand in die nächsten gewünschten Positionen.
7
Richten Sie die aktuelle Position als P2 ein. Klicken Sie auf die Schaltfläche
<Punktschieber rechts> und ändern Sie die aktuelle Position in P2. Klicken Sie auf die
Schaltfläche <TEACH P2>.
8
Durch obige Schritte haben Sie die Positionen eingerichtet. Schalten Sie die Motoren mit
Hilfe der [Achsen frei]-Schaltfläche wieder ein.
9
Bewegen Sie den Roboter zur Überprüfung mit Hilfe von JUMP zu P1. Stellen Sie vorher
sicher, daß sich kein Hindernis in der Nähe der Zielposition befindet.
Tragen Sie 1 im Textfeld [Punkt #:] ein, und klicken Sie auf die Schaltfläche <JUMP P1>.
10
Tragen Sie 2 im Textfeld [Punkt #:] ein, und klicken Sie auf die Schaltfläche <JUMP P2>.
Klicken Sie auf die Schaltfläche <Schließen>, und verlassen Sie das [Jog und Teach]Menü.
27
Beispielprogrammierung
Erstellen Sie ein einfaches Programm, das die Positionsdaten verwendet, die Sie eingerichtet haben. Es
handelt sich hierbei um ein kurzes Programm, das jedoch den Roboter veranlaßt, zwischen Punkt 1 (P1)
und Punkt 2 (P2) hin- und herzuverfahren. Sollten Sie mehr als zwei Punkte eingerichtet haben, geben
Sie diese nach Zeile 30 ein.
Geben Sie folgendes ein:
10 FUNCTION MAIN
20 JUMP P1
30 JUMP P2
40 GOTO 20
50 FEND
• Mit SPEL Editor:
1
Geben Sie das oben dargestellte Programm im Programmiermodus ein. Geben Sie
zusätzlich am Ende jeder Zeile [Return] (Enter) ein.
2
Um sicherzustellen, daß jede Zeile eingegeben wurde, können Sie das Programm mit dem
Befehl LIST anzeigen lassen.
>LIST
10 FUNCTION MAIN
20 JUMP P1
30 JUMP P2
40 GOTO 20
50 FEND
• Mit SPEL für Windows:
1
Erzeugen Sie ein neues Projekt.
Führen Sie den Befehl [Project]-[Neu] aus. Geben Sie den Namen des Projekts in der
Eingabezeile [New Project Name] ein. Z. B.: FIRSTAPP. Klicken Sie dann auf <OK>.
2
28
Geben Sie das oben dargestellte Programm im Fenster [MAIN.PRG] ein.
2.8 Ausführen eines Programms
Kompilieren
Ein Programm, wie dieses, welches wir gerade erstellt haben, nennt man „Quellprogramm“. Das
Programm, das von der Steuerung ausgeführt wird, heißt „Objektprogramm“. Es unterscheidet sich vom
Quellprogramm. Das Quellprogramm muß in ein Objektprogramm geändert werden. Diesen Vorgang
nennt man kompilieren. Wenn der Kompiliervorgang beendet ist, kann das Programm per PC und
Bedieneinheit ausgeführt werden.
• Mit SPEL Editor:
Führen Sie den Befehl COM im Programmiermodus aus.
>COM
COMPILE END
• Mit SPEL für Windows:
Führen Sie den Befehl [Project]-[Build] aus. Das Fenster [Project Build Status] erscheint,
und die einzelnen Kompilierprozeduren werden angezeigt. (Das erzeugte Programm wird
zur Steuerung übertragen und kompiliert.)
Ausführen des Programms mit dem PC
Führen Sie das Programm aus.
• Mit SPEL Editor:
Führen Sie den Befehl XQT im Programmiermodus aus.
>XQT
• Mit SPEL für Windows:
Wenn Sie den Befehl [Run]-[Start], ausführen wird das Fenster [Run] angezeigt. Klicken
Sie dann auf die Schaltfläche <Start maingrp: MAIN>, wird das Programm ausgeführt.
Um die Ausführung zu beenden, klicken Sie auf die Schaltfläche <Stop all> im [Run]Fenster.
29
Ausführen des Programms mit der Bedieneinheit
1
Stellen Sie den Bedienmodus der Steuerung auf AUTO. Stellen Sie hierzu den
Modusauswahlschalter der Bedieneinheit in die Position AUTO.
2
Schließen Sie die Sicherheitsabschrankung.
3
Drücken Sie den START-Schalter auf der Bedieneinheit.
4
Um das Programm anzuhalten, drücken Sie zuerst den PAUSE-Schalter auf der
Bedieneinheit (temporärer Halt) und dann den RESET-Schalter.
Die LEDs auf jedem Schalter zeigen folgende Zustände an:
LED
Zustand
RESET
Programm ist beendet. (Wenn der Schalter während eines Pausezustandes
gedrückt wurde.)
PAUSE
Kurzfristige Programmunterbrechung.
START
Ausführung des Programms. (Nach einer kurzfristigen
Programmunterbrechung.)
Ausführen des Programms über REMOTE3
Sie können die E/A-1-Schnittstelle als REMOTE 3-Schnittstelle verwenden. So können Sie diese
Schnittstelle (als Haupt-REMOTE) im AUTO-Modus anstelle der Bedieneinheit OPU-300/OPU-320
verwenden. Auf diese Art können verschiedene Bedienmöglichkeiten genutzt werden.
Wenn Sie die E/A-1 an der Rückseite der Steuerung als REMOTE3 benutzen wollen, müssen Sie
folgende Schritte ausführen:
1
Stellen Sie Bit 1 des Softwareschalters SS1 auf EIN.
2
Stellen Sie das notwendige Bit als REMOTE3 vom Eingang/Ausgang der E/A-1 ein.
*Das Einrichten des Softwareschalters und der REMOTE3 werden über den SPEL Editor
bzw. SPEL für Windows vorgenommen. Weitere Informationen erhalten Sie in den
entsprechenden Handbüchern.
3
Schalten Sie die Spannungszufuhr der Steuerung aus und sofort wieder ein.
4
Geben Sie ein START-Signal über die REMOTE3 ein, und führen Sie das Programm aus.
Um das Programm anzuhalten, geben Sie zuerst ein PAUSE-Signal (temporärer Halt) und
dann das RESET-Signal ein.
* Die Pinbelegung und Zeitliniendiagramme entnehmen Sie bitte dem Kapitel 7 „E/AREMOTE-Einstellungen (REMOTE 3)“ des Handbuches über die Steuerung.
30
2.9 Auswahl des Programms zum Ändern von Zeilen
Wenn Sie Zeilen eines Programms ändern wollen, müssen Sie das ganze Programm ändern. D. h., die
entsprechenden ausführbaren Dateien (Objektdatei und Symboldatei) müssen ausgewählt werden.
Wie Sie das entsprechende Programm, das Sie ändern wollen, auswählen können, wird nachfolgend
beschrieben.
Auswahl des Programms per REMOTE-Eingang
Das entsprechende Programm muß im Dateispeicher vorhanden sein, um es auswählen und ändern zu
können.
1)
Übertragen Sie eine ausführbare Datei in den Dateispeicher.
Sichern Sie ein Quellprogramm und eine Punktdatei mit Hilfe des Befehls DSAVE in den
Dateispeicher, und führen Sie dann den Befehl COMPILE aus, um ein Objektprogramm
und eine Symboldatei zu erzeugen.
<Beispiel>
>DSAVE“01TEST“
>COMPILE“01TEST“
COMPILE END
>
Wenn die ersten zwei Zeichen des Programmnamens Zahlen sind, ist dies die
„Programmnummer“. Die Programmnummer wird zur Auswahl des Programms
verwendet. Z. B. mit Hilfe der Pfeiltasten é ê (OPU-300) oder durch Eingabe dieser
Nummer über die REMOTE3.
2)
Bringen Sie die ausführbare Datei in den Hauptspeicher.
Die Methoden hierfür werden nachfolgend beschrieben:
•
Bei Verwendung der OPU-300:
Die ausführbaren Dateien werden mit Hilfe des Dateiauswahlmenüs 1 oder 2
ausgewählt. Es ist möglich, alle im Dateiauswahlmenü ausgewählten ausführbaren
Dateien in den Hauptspeicher zu übertragen. Weitere Informationen entnehmen Sie
bitte dem Handbuch über die Bedieneinheit OPU-300.
•
Bei Verwendung der REMOTE3:
Die ausführbaren Dateien werden mit Hilfe der Programmnummern ausgewählt.
Es sind zwei verschiedene Wege zur Eingabe der Programmnummern möglich: die
Binärmethode und die Auf/Ab-Zähl-Methode. Die Binärmethode ist leichter zu
steuern. Es ist mit dieser Methode jedoch nur möglich, max. 15 Dateien
(Programmnummer 01 bis 15) auszuwählen. Wenn es notwendig sein sollte, mehr als
15 Dateien auszuwählen, verwenden Sie bitte die Auf/Ab-Zähl-Methode.
Wenn START nach Einrichten des Eingangssignals der Programmnummer eingegeben wird, werden
die ausführbaren Dateien in den Hauptspeicher übertragen und das Programm wird gestartet. Weitere
Informationen erhalten Sie im Handbuch über die Steuerung in Kapitel 7.4 „Zeitliniendiagramme
(Zeittabellen)“ im Abschnitt „Zeitliniendarstellung bei Programmausführung“.
31
Verwendung des CHAIN-Befehls
Auch mit Hilfe des Befehls CHAIN können Sie Objektprogramme ändern. Sie können diesen Befehl
nicht verwenden, wenn Sie mit Hilfe des REMOTE-Eingangs Programmnummern festlegen.
Der CHAIN-Befehl wurde zum Ändern von Daten während der Programmausführung entworfen. Der
CHAIN-Befehl kann das laufende Programm durch ein im Dateispeicher ausgewähltes Programm
ersetzen.
Weitere Informationen erhalten Sie im Kapitel 2.1 „Erzeugen eines umfangreichen Programms“.
2.10 Handhabung von Dateien
• Mit SPEL Editor:
Das erzeugte Programm und die Positionsdaten werden im Hauptspeicher der Steuerung
gespeichert. Es ist immer nur möglich, eine Programmnummer und auch nur eine
Nummer für die Positionsdatengruppe im Hauptspeicher zu halten. Daher müssen Sie bei
dem Erzeugen eines neuen Programmes und der Positionsdaten beides aus dem
Hauptspeicher in den Dateispeicher übertragen. (Siehe auch Kapitel 3.4 „Sichern und
Laden von Dateien“ im SPEL Editor-Handbuch.)
Lesen Sie bitte die Informationen zu den nachfolgend aufgeführten Befehlen, wenn Sie
den SPEL Editor verwenden:
DSAVE
Speichert das Quellprogramm und die Positionsdatendateien vom
Haupt- in den Dateispeicher.
DLOAD
Lädt ausgewählte Dateien in den Hauptspeicher.
DIR, FILES
Zeigt die Informationen über die Dateien des Dateispeichers an.
COPY
Kopiert eine Datei
KILL, DEL
Löscht Dateien
• Mit SPEL für Windows:
Bei Verwendung von SPEL für Windows werden alle Programm- und
Positionsdatendateien im PC gespeichert. Weitere Information erhalten Sie im SPEL für
Windows Handbuch.
32
3. JOG-Betrieb
Beim REMOTE Teaching wird der Manipulator in die gewünschte Position verfahren, indem die JOGTaste des PCs und des Handprogrammiergerätes gedrückt werden, ist die gewünschte Position erreicht,
wird diese eingerichtet. Das Verfahren der verschiedenen Achsen mit der JOG-Taste wird „JOGVerfahren“ genannt.
Im JOG-Verfahren können Sie die Richtung, in der sich der Manipulator und die Methode, wie er sich
bewegen soll, ändern. Dazu stellen Sie „benutzte Koordinaten im JOG-Verfahren“ oder „JOGVerfahrmethode“ ein, während Sie die JOG-Taste gedrückt halten. Wählen Sie die besten Einstellungen
für Ihre Anwendung, um ein wirkungsvolles Einrichten zu gewährleisten.
Wenn Sie ein TP-320/TP-320J verwenden, erhalten Sie weitere Informationen zum Einrichten in
Kapitel 4 in diesem Handbuch.
3.1 Das verwendete Koordinatensystem im JOG-Verfahren
Entscheiden Sie bitte, welches der Koordinatensysteme Sie beim JOG-Verfahren verwenden wollen. Die
Verfahrrichtung der Achsen ist abhängig vom gewählten Koordinatensystem.
Koordinatensystem
Beschreibung
BASE
Basis-Koordinatensystem. Das JOG-Verfahren wird gemäß der Basiskoordinaten
des Manipulators (BASE0) ausgeführt. Da dies das Koordinatensystem ist, das
fest im Manipulator eingerichtet ist, können Sie die Richtung jeder
Koordinatenachse auf einen Blick sehen.
TOOL
Tool-Koordinatensystem. Wählen Sie ein Koordinatensystem, das mit dem ToolKoordinatensystem übereinstimmt, wenn angenommen wird, daß das Werkzeug
(Tool) am Ende des Greifer befestigt ist. Die Richtung jeder Koordinatenachse
ist abhängig von der Rotation des Greifers.
JOINT
Joint-Koordinatensystem. Ausführen des JOG-Verfahrens für jedes
Manipulatorgelenk.
Weitere Informationen zur Auswahl der Koordinatensysteme erhalten Sie im SPEL Editor Handbuch in
Kapitel 6 und im SPEL für Windows Handbuch in Kapitel 3.
Erläuterungen zu jedem Koordinatensystem finden Sie auf den nächsten Seiten.
33
JOG-Verfahren im Basis-Koordinatensystem
Wenn das Basis-Koordinatensystem ausgewählt ist, kann die Verfahrrichtung jeder Achse entsprechend
des Basis-Koordinatensystems des Manipulators (BASE0) ausgeführt werden.
Innerhalb des Basis-Koordinatensystems bewegt sich der Manipulator gemäß des Koordinatensystems,
das fest im Manipulator eingerichtet ist. So bleibt immer eine feste Beziehung zwischen der JOGRichtung jeder Achse und der Ausrichtung des Manipulatorsockels erhalten. Da es so einfacher ist, die
JOG-Richtung auf einen Blick zu erkennen, ist dies das am häufigsten eingesetzte Koordinatensystem.
Verschiedene Manipulatortypen haben verschiedene Basis-Koordinatensysteme. Weitere Informationen
über das verwendete Basis-Koordinatensystem erhalten Sie in dem Handbuch über Ihren Manipulator.
Allgemein sieht das Koordinatensystem wie folgt aus:
JOG-Verfahren im Basis-Koordinatensystem
G HINWEIS
34
Bitte überprüfen Sie das Koordinatensystem, wenn das Basis-Koordinatensystem
durch Ausführung der Befehle BASE0 oder LOCAL 0 verändert worden ist.
JOG-Verfahren im Tool-Koordinatensystem
G HINWEIS
Wenn Sie das Tool-Koordinatensystem ausgewählt haben, wird die Richtung jeder
Bewegung, die durch die JOG-Taste ausgeführt wird, festgelegt durch die
Ausrichtung des Greifers. Auch wenn der Greifer rotiert, wird das JOG-Verfahren
durch feste Koordinaten für die Ausrichtung des Greifers ausgeführt. Es kann
daher für Düsen oder ähnliches, mit gleicher Richtung, eingesetzt werden.
Der Ursprungspunkt des Tool-Koordinatensystems kann auch auf einen Punkt, der sich nicht im
Mittelpunkt der 4. Achse (rotierende Achse) befindet, eingestellt werden. Der Ursprungspunkt des ToolKoordinatensystems wird mit dem TLSET-Befehl mittig auf das Werkzeug eingestellt.
JOG-Verfahren im Tool-Koordinatensystem
G HINWEIS
Weitere Informationen über das Tool-Koordinatensystem erhalten Sie in dem
SPEL III Referenzhandbuch in den jeweiligen Abschnitten über die Befehle TOOL
und TLSET.
JOG-Verfahren im Joint-Koordinatensystem
Wenn Sie das Joint-Koordinatensystem ausgewählt haben, entspricht jede JOG-Taste jedem
Manipulatorgelenk.
JOG-Verfahren im Joint-Koordinatensystem
35
3.2 JOG-Bewegung
Die Strecke der JOG-Bewegung kann verändert werden. Wir empfehlen, daß Sie zuerst den großen Wert
einstellen und den Arm nahezu in Zielposition bringen und dann den Arm bewegen, so daß Sie den
kleinen Wert nach und nach einstellen können, bis Sie die genaue Zielposition erreicht haben.
Die Einheit für die Strecke der JOG-Bewegung ist abhängig von dem eingesetzten Koordinatensystem
für das JOG-Verfahren.
1. Achse 2. Achse 3. Achse 4. Achse
(X/J1)
(Y/J2)
(Z/J3)
(U/J4)
Basis-Koordinatensystem
mm
mm
mm
Grad
Tool-Koordinatensystem
mm
mm
mm
Grad
Joint-Systemeinheit (direkt aktive Achse)
mm
mm
mm
-
Joint-Systemeinheit (rotierende Achse)
Grad
Grad
Grad
Grad
Weitere Informationen zur Stecke des JOG-Verfahrens erhalten Sie im SPEL Editor Handbuch in
Kapitel 6 und im SPEL für Windows Handbuch in den Kapiteln 3 und 8.
G HINWEIS
Wenn Sie den SPEL Editor und das Handprogrammiergerät TP-320/TP-320J
zusammen einsetzen, lesen Sie bitte vorher das Kapitel 4 im Handbuch des
Handprogrammiergeräts TP-320/TP-320J. Beachten Sie bitte, daß die Strecke des
JOG-Verfahrens, die mit dem SPEL Editor eingestellt wurde, in den Wert
geändert wird, der mit dem Handprogrammiergerät eingegeben worden ist.
Wenn Sie SPEL für Windows und das Handprogrammiergerät TP-320/TP-320J
zusammen einsetzen, lesen Sie bitte vorher das Kapitel 7 im SPEL für Windows
Handbuch.
Wenn Sie die JOG-TASTE ununterbrochen gedrückt halten, kann der Arm hinter den
Bewegungsbereich gelangen. Dann wird ein NOT-AUS ausgelöst und der Motor angehalten. Sollte dies
passieren, ergreifen Sie bitte die folgenden Maßnahmen:
36
1
Bringen Sie den Arm per Hand zurück in den Bewegungsbereich.
2
Drücken Sie die RESET-Taste, um den Fehler zu löschen.
3
Führen Sie den Befehl MOTOR ON aus. Dies schaltet den Motor ein und bringt den
Roboter zurück in die Grundstellung.
GRUNDLAGEN
37
1. Bewegungsgeschwindigkeit
1.1 Beschleunigungs-/Verzögerungsgeschwindigkeit
Wenn Sie den Befehl für das Bewegen des Roboters eingeben, verändert sich die Bewegung, wie unten
dargestellt:
Die Geschwindigkeitskurve wird durch die Geschwindigkeit und die Beschleunigungs/Verzögerungseinstellung bestimmt.
Befehle, die sich auf die Geschwindigkeit beziehen, werden abhängig vom Bewegungsbefehl in zwei
Kategorien aufgeteilt:
Geschwindigkeit
Beschleunigung/Verzögerung
SPEED
ACCEL
(%)
(%)
SPEED
ACCELS
(mm/s)
(mm/s2)
Entsprechende Bewegungsbefehle
JUMP
GO
PTP Bewegung
PASS
MOVE
ARC
CP Bewegung
CVMOVE
* Einheit der Geschwindigkeit und Beschleunigung/Verzögerung in Klammern ().
PTP-Befehle (Punkt-zu-Punkt) werden häufig für pick-and-place-Anwendungen eingesetzt. Bei dieser
Art von Anwendung ist höchstmögliche Bewegung zur Zielposition erforderlich. Daher ist die
Geschwindigkeitseinstellung in mm/s nicht so wichtig. Im Fall der horizontal ausgerichteten Roboter
(SCARA) weichen die zulässige maximale Geschwindigkeit und die Beschleunigung/Verzögerung auf
Grund der Bewegungspositionen innerhalb des Bewegungsbereiches voneinander ab. Die SPEED und
ACCEL Werte werden daher in Prozent angegeben, während die maximal zulässige Geschwindigkeit
mechanisch gesehen als 100 angenommen wird.
CP-Befehle (Kontinuierliche Wege) werden oft für Verpackungsanwendungen eingesetzt.
Verpackungsanwendungen benötigen eine konstante Geschwindigkeitsbewegung ohne Bezug auf die
aktuelle oder Zielposition. Die SPEED und ACCELS Werte werden daher in mm/s und mm/s2
angegeben.
Weitere Informationen über die Befehle SPEED, SPEEDS, ACCEL und ACCELS erhalten Sie im SPEL
III Referenzhandbuch.
38
1.2 Hochgeschwindigkeit im Teach-Modus
Wenn die Steuerung zum Programmieren oder Einrichten auf den Teach-Modus eingestellt ist, schaltet
der Roboter in der Regel in den LP-Modus (Low Power-Modus). Dieser Modus reduziert die
Motorleistung. Der Roboter schaltet aus Sicherheitsgründen automatisch in den „Low Power“-Modus
und arbeitet in einer kontrollierten, langsameren Geschwindigkeit, wenn er sich im TEACH-Modus
befindet.
Es wurden daher die folgenden drei Blockaden eingebaut, und erst wenn diese drei Blockaden
ausgeschaltet werden, ist es möglich, die programmierte Anwendung mit einer höheren
Geschwindigkeit wieder aufzunehmen.
•
Blockierung durch die Sicherheitsabschrankung
•
Blockierung durch den POWER-(LP)-Befehl
•
Blockierung durch den TSPEED-Befehl
Blockierung durch die Sicherheitsabschrankung
Ist die Sicherheitsabschrankung geöffnet (mit anderen Worten, wenn der Eingang REMOTE1 der
Sicherheitsabschrankung freigeschaltet ist), bleibt der Roboter im Low Power-Modus. Solange die
Sicherheitsabschrankung geöffnet bleibt, arbeitet der Roboter nur in der Geschwindigkeit, die durch die
Einstellungen festgesetzt oder mit Hilfe des Befehls TSPEED eingegeben wurde.
Bevor der Roboter in seiner programmierten Geschwindigkeit weiter arbeiten kann, muß die
Sicherheitsabschrankung geschlossen werden.
Weiter Informationen entnehmen Sie bitte den Kapiteln 1.4 in der Einleitung und 4 im Handbuch über
die Steuerung.
Blockierung durch den POWER-(LP)-Befehl
Wenn der Befehl POWER LOW (LP ON) ausgeführt wird, schaltet der Roboter in den Low PowerModus. Damit der Roboter wieder in seiner programmierten Geschwindigkeit arbeiten kann, muß der
Befehl POWER HIGH (LP OFF) eingegeben werden.
Wenn der Roboter vom AUTO in den TEACH-Modus geschaltet wird, schaltet er automatisch in den
Low Power-Modus. Auch wenn dann die Sicherheitsabschrankung geschlossen wird, bleibt er im Low
Power-Modus und arbeitet mit der eingestellten Geschwindigkeit, die abhängig vom Robotermodell
variiert.
Aus Sicherheitsgründen wird der Low Power-Modus im Teach-Modus immer eingeschaltet, d.h. bei
folgenden Operationen wird der Motor-Power-Modus standardmäßig auf LOW gesetzt. Dabei werden
die Einstellungen für die Geschwindigkeit und die Beschleunigung auf die Standardwerte zurückgesetzt
(initialisiert). Informationen zu diesen Standardwerten erhalten Sie in den Spezifikationen der
Manipulatoren, da diese modellabhängig sind.
39
Unter folgenden Umständen wird in den Low Power-Modus geschaltet:
•
Wenn ein Fehler auftritt, der nur durch RESET oder Aus- und Einschalten der Spannungszufuhr
rückgängig gemacht werden kann.
•
Wenn vom Auto- in den Teach-Modus geschaltet wird.
•
Wenn der STOP-Taster oder die Tastenkombination Ctrl + C gedrückt wird.
•
Wenn der Befehl MOTOR ON ausgeführt wird.
Blockierung durch den TSPEED-Befehl
Wie bereits vorher erwähnt, kann der Roboter im TEACH-Modus mit niedriger Geschwindigkeit
betrieben werden, auch wenn die Sicherheitsabschrankung geöffnet ist, um das Einrichten zu
ermöglichen. So ist es möglich, daß derjenige, der den TEACH-Vorgang ausführt, nahe an den Roboter
herankommt. Der Roboter wird normalerweise im TEACH-Modus im LOW-POWER-Status betrieben,
um die Sicherheit des Bedieners zu gewährleisten.
Der Befehl TSPEED (TSPEEDS) wird verwendet, um die Geschwindigkeit im Teach-Modus, die mit
dem Befehl SPEED (SPEEDS) eingegeben wurde, nochmals zu reduzieren. Diese Geschwindigkeit
wird, auch wenn die Spannungszufuhr der Steuerung ausgeschaltet wird, im Speicher behalten.
40
1.3 Beschleunigungs-/Verzögerungssteuerung der 3. Achse mit dem
JUMP-Befehl
Die grundlegende Bewegung des JUMP-Befehls wird nachfolgend dargestellt:
Die Geschwindigkeit und die Beschleunigung/Verzögerung wirken sich auf alle oben dargestellten
Bewegungen aus. Da die Beschleunigung/Verzögerung der Bewegungsgeschwindigkeit der 3. Achse
wichtig ist für pick-and-place-Anwendungen, müssen Sie die geeignetste Geschwindigkeit einstellen. Z.
B., wenn der Roboter einen Gegenstand an der aktuellen Position aufnimmt und ihn an der Zielposition
absetzt, soll die Beschleunigung und die horizontale Bewegung der 3. Achse schnell und das Plazieren,
also die Verzögerung, langsam vonstatten gehen.
Damit diese Anwendung zufriedenstellend ausgeführt werden kann, lassen sich die
Beschleunigung/Verzögerung und die Geschwindigkeit bei der horizontalen Bewegung einzeln
einstellen.
Die Bewegungsgeschwindigkeit der 3. Achse läßt sich durch drei Parameter des Befehls SPEED
einstellen.
SPEED [A],[B],[C]
Format:
A: Spezifikationswert der Geschwindigkeit
B: Aufwärtsgeschwindigkeit der 3. Achse
C: Abwärtsgeschwindigkeit der 3. Achse
Die Beschleunigungs-/Verzögerungsgeschwindigkeit der 3. Achse läßt sich durch sechs Parameter des
Befehls ACCEL einstellen.
ACCEL [A],[B],[C],[D],[E],[F]
Format:
A: Spezifikationswert der Beschleunigungsgeschwindigkeit
B: Spezifikationswert der Verzögerungsgeschwindigkeit
C: Erhöhen der Beschleunigungsgeschwindigkeit der 3. Achse
D: Erhöhen der Verzögerungsgeschwindigkeit der 3. Achse
E: Verringern der Beschleunigungsgeschwindigkeit der 3. Achse
F: Verringern der Verzögerungsgeschwindigkeit der 3. Achse
<Beispiel>
1000 FUNCTION MAIN
1010 SPEED 100,80,20
1020 ACCEL 100,100,100,100,80,20
M
2000 JUMP P1
M
3000 FEND
41
1.4 Transport von Objekten, die das Nominalgewicht überschreiten
Die Geschwindigkeit und die Einstellungen für Verzögerung und Beschleunigung variieren in
Abhängigkeit von der am Ende des Greifers angebrachten Last.
Um geeignete Werte für die Geschwindigkeit, Verzögerung und Beschleunigung einzustellen, sollten
Sie zuerst das Gewicht der zu transportierenden Objekte messen und es dann mit Hilfe des WEIGHTBefehls eingeben.
Die einzugebende Last (Greifergewicht) setzt sich zusammen aus dem Gewicht des Greifers und des zu
transportierenden Objekts.
WEIGHT [Greifergewicht],[Armlänge]
Format:
Die Armlänge ist die Strecke vom Rotationsmittelpunkt der 2. Achse zur Mitte des Schwerpunkts des
Greifers (inkl. zu transportierendes Objekt). Handelt es sich bei der Mitte des Schwerpunkts um den
Mittelpunkt der 3. Achse, muß es nicht extra eingegeben werden. Es muß aber angegeben werden, wenn
es sich bei dem eingesetzten Roboter nicht um ein horizontal ausgerichtetes Modell handelt.
Wird der WEIGHT-Befehl ausgeführt, errechnet die Steuerung für das eingegebene Gewicht die
maximale Geschwindigkeit und die ausführbaren Werte für Verzögerung und Beschleunigung. Wenn
mit Hilfe des Befehls SPEED oder ACCEL ein Wert von 100 eingegeben worden ist, wird dieser Wert
unter Umständen eingehalten, wenn die Berechnung der Steuerung ergibt, daß es kein mechanisches
Hindernis gibt.
G HINWEIS
Weitere Informationen, wie Sie im Hinblick auf das Greifergewicht den Wert für
den WEIGHT-Befehl richtig einstellen, erhalten Sie in Kapitel 5 im
Manipulatorhandbuch. Die Verwendung des WEIGHT-Befehls wird im SPEL III
Handbuch erläutert.
Warnung
42
Transporte von Objekten, die das Nominalgewicht, bei standardmäßig
eingestellten Werten von Last, Geschwindigkeit und
Verzögerung/Beschleunigung, weit überschreiten, können nicht nur einen Fehler
wegen Überlastung, sondern auch Unfälle hervorrufen.
2. Programmierung
2.1 Grundlegende Bestandteile eines Programms
Die Grundeinheit eines Programms wird „Zeile“ genannt, und eine Anzahl von Zeilen macht ein
Programm aus. Die Zeilen selbst bestehen aus Zeilennummern und Anweisungen.
Ein Programm beginnt immer mit der 1. Zeile „FUNCTION MAIN“ und endet mit der letzten Zeile
„FEND“.
10 FUNCTION MAIN
<Beispiel>
M
1000 FEND
Alles, was von FUNCTION bis FEND steht, wird eine Funktion genannt. Nach Eingabe von
FUNCTION ist ein Name, im Beispiel MAIN, erforderlich.
SPEL III verfügt über 16 multi-tasking Ressourcen. Multi-tasking bezieht sich auf Prozesse, in denen
einzelne Tasks gleichzeitig oder der Reihe nach ausgeführt werden. Ein multi-tasking Programm wird
beschrieben durch eine Fortsetzung der Funktion. Die Stellen, an denen verschiedene Funktionen
ausgeführt werden, werden Tasks genannt, und die Steuerung verfügt über 16 dieser Tasks (Nr. 1-16).
Die maximale Anzahl von Funktionsnummern in einem Programm kann 69 betragen. Die Task kann
ausgeführt und wenn notwendig angehalten werden. Weitere Informationen erhalten Sie im Kapitel
„Multi-tasking“ in diesem Handbuch.
Die allererste Funktion in einem Programm ist die Hauptfunktion und wird immer als Task 1
ausgeführt. Alle anderen Funktionen müssen eine Funktionsnummer enthalten, die mit Hilfe des XQTBefehls in der Hauptfunktion festgelegt werden müssen.
10
20
30
M
980
990
1000
M
1980
1990
2000
M
3000
FUNCTION Function 1
XQT !2, Function 2
XQT !5, Function 3
678
<Beispiel>
Hauptfunktion
FEND
‘-----------------FUNCTION Function 2
FEND
‘-----------------FUNCTION Function 3
FEND
43
Funktionsname
Im Folgenden werden die Beschränkungen bei der Verwendung von Funktionsnamen aufgeführt:
•
Als verwendbare Zeichen sind alle alphanumerischen Zeichen und Unterstriche ( _ ) zugelassen.
•
Der Funktionsname darf aus max. acht Zeichen bestehen.
•
Das erste Zeichen muß ein Buchstabe (außer P) sein.
•
Reservierte Worte (z. B. Befehle, Anweisungen und Funktionen) dürfen nicht verwendet werden.
Auch wenn Sie reservierte Worte durch Unterstriche oder Zahlen ergänzen oder verändern, werden
sie trotzdem als reservierte Worte erkannt.
Kommentare
Um ein Programm verständlicher zu machen, können Sie, wenn notwendig, Kommentare einfügen. Das
Symbol, das einen Kommentar einleitet ist das Apostroph ‘ . Alle Zeichen, die auf ein Apostroph folgen,
werden als Kommentar berücksichtigt. Bei Ausführung des Programms werden alle Kommentare, die
auf ein Apostroph folgen, außer Acht gelassen.
64748
Als Kommentar können Sie jedes Zeichen benutzen, allerdings darf der Kommentar, einschließlich
Zeilennummer, Anweisung und Text, 79 Zeichen nicht überschreiten.
<Beispiel>
10 FUNCTION MAIN
20 ‘ ************************
30
‘ *
HANDLER-1
*
Kommentarzeilen
40
‘ *programmiert von SATO *
50 ‘ ************************
60 ‘ GOSUB 1000
←GOSUB wird nicht
ausgeführt!
70 SPEED 100 ;ACCEL 50,100
80 JUMP P10 ;ON 1 ;WAIT 0,2 ‘Nimmt
←Kommentar
Objekt von Einzug1 auf.
Mehrfachanweisung
Wird das Semikolon (;) benutzt, können mehrere Befehle in eine Zeile geschrieben werden. Dies wird
Mehrfachanweisung genannt.
Mit Hilfe der Mehrfachanweisungen können Programme leichter gelesen werden, und die
Programmgröße wird verringert. Auch ist die Ausführzeit geringer. Werden jedoch unwichtige
Mehrfachanweisungen eingegeben, kann das Programm unübersichtlich und schwer verständlich
werden.
<Beispiel>
100 JUMP P7 ; ON 1 ; WAIT 0,2
110 JUMP P17 ; OFF 1 ; WAIT 0,2
44
Sprungmarken
Wenn Sie die Programmausführungsreihenfolge mit Hilfe von GOTO, GOSUB oder IF...THEN...ELSE
ändern, wird das Programm gemäß der festgelegten Zeilennummern ausgeführt. Die Zeilennummer ist
nur eine Nummer und hat keinerlei weitere Bedeutung. Wenn Sie ein Wort benutzen können, um eine
Bewegung anzuzeigen, ist dies für den Programmierer und den Benutzer viel angenehmer.
In SPEL III können Sie eine Sprungmarke anstatt nur einer Zeilennummer für die GOTO, GOSUB oder
IF...THEN...ELSE Anweisungen verwenden.
<Beispiel>
10 FUNCTION MAIN
←
20 LOOP:
←Sprungmarke
30
JUMP P1
40
JUMP P2
50 GOTO LOOP
←Verzweigung mit Hilfe der Sprungmarke
60 FEND0
Im Beispiel ist die Zeile 20 mit der Sprungmarke „LOOP“ versehen. Erst der Doppelpunkt (:) hinter
LOOP zeigt an, daß es sich tatsächlich um eine Sprungmarke handelt.
Im Folgenden werden die Beschränkungen bei der Verwendung von Sprungmarken aufgeführt:
•
Als verwendbare Zeichen sind alle alphanumerischen Zeichen und Unterstriche ( _ ) außer dem
Doppelpunkt (:) zugelassen.
•
Die Sprungmarke darf aus max. acht Zeichen bestehen.
•
Das erste Zeichen muß ein Buchstabe (außer P) sein.
•
Groß- und Kleinschreibung ist egal.
Es gibt eine spezielle Funktion, um Zeilennummern automatisch neu zu vergeben (renumber), so daß die
festgelegten Zeilennummern für GOTO, GOSUB, oder IF...THEN...ELSE automatisch geändert werden.
Das Programm ist leichter zu verstehen, wenn die Sprungmarken so definiert werden.
45
2.2 Konstanten
Konstanten sind aktuelle Werte, die SPEL III während der Ausführung benutzt. Es gibt zwei
verschiedene Arten von Konstanten: Zeichenketten (oder Zeichen) und numerische Konstanten.
Numerische Konstanten
Numerische Konstanten können ganze oder reelle Zahlen sein. Es ist wichtig, ein Minuszeichen (-) vor
eine negative Zahl zu stellen, aber vor positiven Zahlen wird kein Pluszeichen (+) gesetzt.
Ganze Zahlen
Ganze Zahlen haben kein Dezimalkomma. Sie sind in dem folgenden Bereich zulässig: -32768 bis
32768.
Es gibt die folgenden Beschreibungen für ganze Zahlen:
•
Dezimalformat
Der Wert wird in Dezimalzahlen (0-9) ausgedrückt.
•
Hexadezimalformat
Der Wert wird in Hexadezimalzahlen (0-F) mit dem Präfix „&H“ ausgedrückt. Die entsprechenden
Werte für Hexadezimal- und Dezimalzahlen finden Sie in der folgenden Tabelle:
Hexadezimal
Dezimal
<Beispiel>
Hexadezimal
&H25
&H3F
•
0-9
A
B
C
D
E
F
0-9
10
11
12
13
14
15
Dezimal
2 x 161 + 5 = 37
3 x 161 + 15 = 63
Binärformat
Der Wert wird in Binärzahlen (0 und 1) mit dem Präfix „&B“ ausgedrückt.
<Beispiel>
Binär
Dezimal
&B1111
23 + 22 + 21 +20 = 15
&B101
22 + 20 = 5
Reelle Zahlen
Diese Werte enthalten Dezimalkommas, liegen innerhalb des Bereiches der ganzen Zahlen und werden
in exponentieller Form ausgedrückt.
Zeichenketten
Zeichenketten werden immer in Anführungszeichen (“) eingeschlossen. Sie können aus einzelnen
Zeichen, Zeichenfolgen und Zahlen bestehen. Besteht die Zeichenfolge nur aus zwei Anführungszeichen
(““), hat die Zeichenfolge eine „Nulllänge“ und wird als Leerzeichen interpretiert.
<Beispiel>
>PRINT “HALLO“
HALLO
>PRINT HALLO“
123
←Hier wird das Wort HALLO durch einen Wert ersetzt, da das
Wort nicht in Anführungszeichen gesetzt wurde.
46
2.3 Variablen
Variablen werden als vorübergehende Ersatzdaten verwendet. Es gibt viele verschiedene Arten von
Variablen, daher muß vor dem Benutzen einer Variable eine Variablendefinition eingegeben werden.
Der Wert, durch den die Variable ersetzt wird, muß vom selben Typ sein wie die Variable selbst.
Die Werte der Variablen werden solange beibehalten, bis das Objektgebiet überschrieben oder gelöscht
wird (Ausschalten der Spannungszufuhr, Überschreiben durch ein Programm, etc.). Sie werden immer
dann gelöscht, wenn der COM-Befehl oder eine andere ausführbare Datei ausgeführt wird. Um
Variablenwerte zu speichern, müssen Sie Backup-Variablen, wie unten beschrieben, verwenden.
Spezifische Anzahl von Variablen
Die spezifische Anzahl von Variablen kann durch die folgende Gleichung bestimmt werden:
Spezifische Anzahl von Variablen = 448 – (Anzahl der Funktionen)
Dies ergibt sich daraus, daß die Variablen- und die Funktionsnamen in dem selben Bereich
(Symboltabelle) verwaltet werden z.B.: In einem Programm mit nur einem Task können Sie bis zu 447
Variablen definieren. Sie müssen jedoch beachten, daß die Anzahl der Bereichsvariablen in
Abhängigkeit von deren Größe variiert. (Wenn große Bereiche benutzt werden, können weniger
Variablen verwendet werden!)
Für andere als Bereichsvariablen (numerische Variablen oder Zeichenkettenvariablen) hat die
Variablengröße keinen Einfluß auf die Anzahl der Variablen.
Die Anzahl dieser Variablen kann durch andere Faktoren beeinflußt werden. Der Bereich, in den
Variablenwerte gespeichert werden, entspricht dem Objektbereich zum Speichern ausführbarer
Programme. Dementsprechend kann, wenn ein großes Programm verwendet wird, der Bereich zum
Speichern der Variablen besetzt sein. In diesen Fällen tritt während des Kompilierens ein Fehler auf.
Um das Problem zu beheben, müssen Sie entweder die Programmgröße verkleinern oder die Anzahl der
verwendeten Variablen verringern.
Numerische Variablen
1. Verschiedene numerische Variablen (siehe nächste Tabelle)
Beschreibung
BYTE
verfügbarer Wert/Gültige Ziffer
1
-128 bis 127
2
-32768 bis 32767
LONG
4
-2147483648 bis 2147483647*
REAL
4
7 Ziffern
DOUBLE
8
14 Ziffern
Ganze Zahlen INTEGER
Reelle Zahlen
Bytes
Wenn Sie eine Variable definieren, müssen Sie zuerst die Definition und dann den Namen eingeben.
Wenn verschiedene Variablen vom gleichen Typ definiert werden sollen, benutzen Sie bitte ein Komma
“,“, um verschiedene Variablennamen zu vergeben (siehe Beispiel). Die Variablendefinition für einen
Typ muß in einer Zeile erfolgen. Um einen weiteren Typ zu definieren, benutzen Sie bitte eine weitere
Zeile.
[Variablendefinition] [Name]{,[Name]}n
Format:
* Bei dem PRINT-Befehl ist der verfügbare Wert für LONG Variablen wie folgt eingeschränkt:
von –9999999 bis 9999999. Der dargestellte Wert ist eingeschränkt, aber der interne Wert wird
innerhalb des oben dargestellten Bereiches berechnet und ist gültig.
47
2. Variablennamen
Variablennamen unterliegen den folgenden Beschränkungen:
•
Als verwendbare Zeichen sind alle alphanumerischen Zeichen und Unterstriche ( _ ) außer dem
Doppelpunkt (:) zugelassen.
•
Der Variablenname darf aus max. acht Zeichen bestehen.
•
Das erste Zeichen muß ein Buchstabe (außer P) sein.
•
Groß- und Kleinschreibung ist egal.
•
Reservierte Worte (z. B. Befehle, Anweisungen und Funktionen) dürfen nicht verwendet werden.
Auch wenn Sie reservierte Worte durch Unterstriche oder Zahlen ergänzen oder verändern, werden
sie trotzdem als reservierte Worte erkannt.
3. Bei reellen Variablen wird der Wert durch Ziffern dargestellt.
Zeichenketten-Variablen
Zeichenketten-Variablen werden mit Hilfe der Anweisung STRING definiert.
STRING [Zeichenkettenname]{,[Zeichenkettenname]}n
Funktion:
Zeichenkettennamen werden mit einem Dollarzeichen “$“ als letztem Buchstaben gekennzeichnet, um
sie von numerischen Variablen unterscheiden zu können. Zeichenkettennamen unterliegen den
folgenden Beschränkungen:
48
•
Als verwendbare Zeichen sind alle alphanumerischen Zeichen und Unterstriche ( _ ) außer dem
Doppelpunkt (:) zugelassen.
•
Der Zeichenkettenname darf aus max. acht Zeichen (einschließlich des $-Zeichens) bestehen.
•
Das erste Zeichen muß ein Buchstabe (außer P) sein.
•
Groß- und Kleinschreibung ist egal.
•
Reservierte Worte (z. B. Befehle, Anweisungen und Funktionen) dürfen nicht verwendet werden.
Auch wenn Sie reservierte Worte durch Unterstriche oder Zahlen ergänzen oder verändern, werden
sie trotzdem als reservierte Worte erkannt.
Bereichsvariablen
Eine Bereichsvariable ist eine Gruppe oder Tabelle, die sich auf einen Namen bezieht. Sowohl
numerische wie auch Zeichenketten-Variablen können als Bereichsvariablen verwendet werden. Bei der
Definition einer Bereichsvariablen geben Sie den Namen einschließlich der Größe in Klammern () ein.
Die Größe kann in bis zu 3 Dimensionen definiert werden.
Wenn verschiedene Variablen vom gleichen Typ definiert werden sollen, benutzen Sie bitte ein Komma
“,“, um verschiedene Variablennamen zu vergeben.
[Variablendefinition] [Name](a,b,c)
Format:
a,b,c: Bereichsgröße jeder Dimension
Ganze Zahl von 0 bis 254
a*b*c 32767
<Beispiel>
INTEGER A(10)
BYTE B(8,5)
LONG C(10,10,5)
eindimensionaler Bereich
zweidimensionaler Bereich
dreidimensionaler Bereich
Eine Variablentabelle der Bereichsvariablen B(8,5) wird , wie unten dargestellt, erzeugt. Die Zahlen in
Klammern () werden Subskriptionen genannt. Es ist wichtig, jede Subskription einzeln anzugeben,
wenn einzelne individuelle Variablen benutzt werden.
B(0,0)
B(1,0)
B(2,0)
B(3,0)
B(4,0)
B(5,0)
B(6,0)
B(7,0)
B(8,0)
B(0,1)
B(1,1)
B(2,1)
B(3,1)
B(4,1)
B(5,1)
B(6,1)
B(7,1)
B(8,1)
B(0,2)
B(1,2)
B(2,2)
B(3,2)
B(4,2)
B(5,2)
B(6,2)
B(7,2)
B(8,2)
B(0,3)
B(1,3)
B(2,3)
B(3,3)
B(4,3)
B(5,3)
B(6,3)
B(7,3)
B(8,3)
B(0,4)
B(1,4)
B(2,4)
B(3,4)
B(4,4)
B(5,4)
B(6,4)
B(7,4)
B(8,4)
B(0,5)
B(1,5)
B(2,5)
B(3,5)
B(4,5)
B(5,5)
B(6,5)
B(7,5)
B(8,5)
Auflisten der Variablennamen
Wenn Sie neue Variablennamen definieren, müssen Sie unter Umständen vorher wissen, welche Namen
bereits vergeben sind. Variablennamen und Typen werden aufgelistet (ausschließlich BackupVariablennamen) durch Ausführen des Befehls VARIABLE.
VARIABLE {-A}
Format:
Wird dem Befehl ein –A hinzugefügt, werden auch die Namen der Funktionen angezeigt.
Diese Funktion zeigt nur die Variablennamen, die in der Symboltabelle gespeichert sind. Sie müssen
daher Ihr Quellprogramm zuerst kompilieren.
49
Backup-Variablen
Gewöhnlich wird, wenn das Programm kompiliert ist, eine Symboltabelle erzeugt. Wenn dann das
Programm abläuft, werden die Werte der Variablen in dieser Tabelle gespeichert. Wird das Programm
jedoch erneut kompiliert oder wird ein anderes Programm gestartet, werden diese Werte gelöscht. Auch
wenn die Spannungszufuhr ausgeschaltet wird, gehen diese Werte verloren.
Wenn Sie den Wert einer Variablen speichern wollen, müssen Sie die SYS-Anweisung benutzen, um die
Variable als Backup-Variable einzutragen, bevor Sie verwendet wird. Als Backup-Variable wird sie
nicht in der Symboltabelle gespeichert, sondern im Hauptspeicher des Backup-Variablen-Bereichs.
Dieser Speicherbereich ist durch eine Batterie gesichert und wird nicht von Kompilier- oder
Ausführvorgängen beeinflußt.
Backup-Variablen sind hilfreich, wenn Sie z.B. eine Anwendung fortsetzen möchten, die Sie tags zuvor
beendet haben oder Variablen in verschiedenen Programmen benutzen möchten.
1. Anzahl spezifizierbarer Backup-Variablen
Der Standardwert für die Anzahl spezifizierbarer Backup-Variablen ist 10. Benutzen Sie den
Befehl LIBSIZE, um den Maximumwert auf bis zu 1.000 einzustellen. Bedenken Sie, daß ein
großer Wert viel Platz im Objektbereich benötigt, dadurch den Platz zum Speichern des
Programmes verkleinert und so eine Ausführung großer Programme nicht möglich ist.
Es wird daher geraten, den Bereich der Backup-Variablen so klein wie möglich zu halten.
Weitere Informationen entnehmen Sie bitte dem SPEL III Referenzhandbuch.
2. Speicherprogramm für Backup-Variablen
Die Symboltabelle, in der normale Variablen gespeichert werden, gehört zum Objektprogramm.
Im Gegensatz dazu wird die Speichertabelle der Backup-Variablen vom eigentlichen Programm
getrennt. Im Allgemeinen werden also die Speicherprogramme für Backup-Variablen separat
von den anderen Programmen erzeugt.
<Beispiel>
10 FUNCTION B_UP
20 ‘SYS BYTE HELLO ;HELLO=0
‘bereits gespeicherte Backup-Variable
30 SYS INTEGER V(50)
40 SYS STRING ERR_M$(10)
50 FEND
Wird versucht ein Variablenname zu speichern, der bereits existiert, wird ein Fehler (ZweifachDefinition einer Variablen) ausgegeben. Verwenden Sie einen Kommentarhinweis, wie in Zeile
20, wenn die Variable bereits vorhanden ist.
3. Speichern von Backup-Variablen
Mit einem normalen Compiler wird die Registrierung der Variablen während des Kompilierens
vollzogen. Im Gegensatz dazu muß beim Einsatz von SPEL III das Programm ausgeführt
werden, damit die Variablen gespeichert werden können.
Beim Einsatz von Variablen ist es wichtig, den Variablennamen und den Speicherplatz zu
haben, um den Variablenwert zu speichern. Nach dem Kompilieren ist nur der Variablenname
gespeichert, aber nicht der Speicher, in dem er sich befindet. Der Speicher wird erst gesichert,
wenn das Programm abläuft. Wird nach dem Kompilieren versucht, eine Variable zu benutzen,
tritt ein Fehler auf. Stellen Sie sicher, daß zuerst das Programm abläuft, bevor Variablen
verwendet werden.
<Beispiel>
10 FUNCTION V_EX
20 SYS INTEGER A ;A=1
30 SYS INTEGER B ;B=10
‘speichert A und B als Backup-Variablen
40 PRINT A,B
50 FEND
Kompilieren Sie das Programm, und führen Sie es aus.
50
4. Auflisten der Backup-Variablen
Alle gespeicherten Backup-Variablen und Typen werden mit Hilfe des Befehls LIBRARY
aufgelistet.
LIBRARY
Format:
5. Löschen von Backup-Variablen
Um alle gespeicherten Backup-Variablen zu löschen benutzen Sie den Befehl CLRLIB.
CLRLIB
Format:
Es ist nicht möglich, nur einige der gespeicherten Variablen zu löschen. Wenn nur einige
Variablen gelöscht werden sollen, löschen Sie bitte zuerst alle Variablen, und lassen Sie dann
nur die, die Sie benötigen, neu registrieren.
Hinweis zur Verwendung von Variablen
1. Variablendefinition
• Im Allgemeinen wird die Variablendefinition am Anfang des Programms vorgenommen.
Wird eine Variable benutzt, bevor sie registriert ist, wird sie als reelle Variable (REAL)
registriert und, wenn danach die Variablendefinition durchgeführt wird ein Fehler verursacht
(Zweifach-Definition von Variablen).
Es ist auch nicht möglich, eine Variable zu verwenden, bevor sie registriert ist. Auch wenn es
eine reelle Variable ist, muß sie angemeldet sein.
• Wenn Sie prüfen wollen, ob eine undefinierte Variable vorhanden ist, kompilieren Sie Ihr
Programm mit dem Befehl COM–V. Ist eine undefinierte Variable vorhanden, erscheint der
Fehler 2.
• Die Anweisung zur Variablendefinition muß am Zeilenanfang stehen. Die
Variablendefinition für einen Typ muß in einer Zeile erfolgen. Um einen weiteren Typ zu
definieren, benutzen Sie bitte eine weitere Zeile.
<Beispiel>
50 BYTE S_1,S_2 ;S_1=0 ;S_2=0 ;INTEGER E-1 ;E_1=1
‘nicht erlaubt!
50 BYTE S_1,S_2 ;S_1=0 ;S_2=0
60 INTEGER E-1 ;E_1=1
2. Fälle, in denen die Variablen vorher definiert sein müssen
richtig!
• Wenn eine Variable als Parameter für Positionsdaten benutzt wird.
• Wenn eine Variable in einem Parallel-Prozeß benutzt wird.
<Beispiel>
Definieren Sie die Variablen OFSET,
HAND_DU vorher!
3. Fälle, in denen Variablen nicht verwendet werden können
• Für die Ortskoordinate von Positionsdaten.
• Für Tasknummern und für die Nummer der RS-232C-Schnittstelle.
<Beispiel für falsche Verwendung von Variablen>
P0=P1/LNO
HALT !TK
nicht erlaubt!
PRINT #RS,5 RESET #RAIOC
4. Fälle, in denen eine Zeichenkettenbereichsvariable nicht verwendet werden kann
•
Für Dateinamen bei CURVE-, CVMOV-Befehlen.
51
2.4 Operationen
Mathematische Operationen
Die Mathematik wird für Operationen von numerischen Werten benutzt. Die mathematischen
Operatoren sind wie nachfolgend aufgeführt:
Operator
Operation
Ausdruck Mathematisches Zeichen
+
Addition
A+B
+
Subtraktion
A-B
*
Multiplikation
A*B
x
/
Division
A/B
÷
MOD
Module Mathematik A MOD B
(MOD kann nur für ganze Zahlen benutzt werden.)
Logische Operatoren
Die logischen Operatoren können für ganze Zahlen benutzt werden. Das Ergebnis ist auch eine ganze
Zahl. Der numerische Wert wird innerhalb der Steuerung durch eine binäre Ziffer ausgedrückt. Die
Operation wird in dieser Reihenfolge ausgeführt. Das heißt, daß jedes Bit des Ergebnisses von den
entsprechenden Bits in den zwei Operanden bestimmt wird. Jede Operation ist unten aufgeführt, es
werden die numerischen Werte A und B benutzt.
52
1.
AND (Konjunktion)
Format: A AND B
BIT von A
0
0
1
1
BIT von B
0
1
0
1
Ergebnis
0
0
0
1
2.
OR (Disjunktion)
Format: A OR B
BIT von A
0
0
1
1
BIT von B
0
1
0
1
Ergebnis
0
1
1
1
3.
XOR (ausschließliches OR)
Format: A XOR B
BIT von A
0
0
1
1
BIT von B
0
1
0
1
Ergebnis
0
1
1
0
4.
NOT (logische Ergänzung)
Format: NOT A
BIT von A
0
1
Ergebnis
1
0
5.
Beispiel: Im Falle von A=1, B=0, C=1
A AND B OR C = 1
A AND B XOR C = 1
NOT A) AND C = 0
Relationale Operatoren
Operator
=
<> oder ><
>
<
>= oder =>
<= oder =<
Ausdruck
A=B
A<>B
A>B
A<B
A>=B
A<=B
Beschreibung
A und B sind gleich.
A und B sind nicht gleich.
A ist größer als B.
A ist kleiner als B.
A ist größer oder gleich B.
A ist kleiner oder gleich B.
Zeichenketten-Operatoren
Operator
Beschreibung
+
Verkettung der Zeichenkette
=
Wahr, wenn alle Eigenschaften der Zeichenkette dieselben sind.
<>
Wahr, wenn mindestens eine Eigenschaft unterschiedlich ist.
<Beispiel>
>PRINT “HE“ + “LLO“
HELLO
Rangfolge der Operatoren
Es gibt eine Rangfolge für die Operatoren. Wird mehr als ein Operator benutzt, wird die Operation nach
dieser Rangfolge ausgeführt. Operatoren, die in Klammern stehen, werden zuerst ausgeführt.
Operationen mit gleichem Rang werden von links nach rechts ausgeführt.
Die Rangfolge der Operationen ist wie folgt::
(1) ( )
(2) *, /, MOD
(3) +, (4) AND, OR, XOR, NOT
(5) =, >, <, >=, <>
Die Operationen werden nach dieser Rangfolge ausgeführt, das Benutzen von Klammern erleichtert das
Lesen des Programms.
Operationen mit ganzen und reellen Zahlen
SPEL III unterscheidet Operationen mit ganzen Zahlen von denen mit reellen Zahlen, dadurch wird die
Operation schneller. In Übereinstimmung mit dem Operandentyp unterscheiden sich die
Operationsmethode und das Resultat wie folgt:
Operandentyp
Alles ganze Zahlen
Alles reelle Zahlen
Ganze und reelle Zahlen
Ergebnis
ganze Zahl
Reelle Zahl
Für die oben genannten Operationen beachten Sie folgende Punkte.
(1) Bei der Division von ganzen Zahlen wird das Ergebnis auf eine ganze Zahl gerundet.
(2) Wenn das Ergebnis einer ganzzahligen Operation außerhalb des Bereichs der ganzen Zahlen (32768 bis 32767) liegt, wird ein Fehler angezeigt.
53
(3) Wenn eine reelle Zahl einer Ganzzahlvariablen zugewiesen wird, wird die zehnte Stelle gerundet.
1
2
3
Operation mit ganzen Zahlen
>PRINT 3/2
1
>PRINT TAN(1/2)
0
<PRINT 1000*1000
!!ERROR 21
20 INTEGER A
30 A=TAN(1,0/2)
>PRINT A
1
Operation mit reellen Zahlen
>PRINT 3,0/2
1.5
>PRINT TAN(1,0/2)
.5463025
>PRINT 1000,0*1000
1000000
Rückgabewerte
Die Typen der Werte werden von der Funktion wie folgt zurückgegeben:
Typ
Reelle Zahl
Funktionsname
SIN( )
ATAN( )
CX( )
COS( )
ATAN2( )
CY( )
CZ( )
TAN( )
AGL( )
SQA( )
TMR( )
VAL( )
CU( )
IN( )
ZEROFLG(0)
INBCD( )
NOT( )
MYTASK CTR( )
(0)
TIME( )
LOF( )
JS(0)
SW($ )
LSHIFT( )
DSW( )
LEN( )
IN($ )
RSHIFT( )
STAT( )
ASC( )
INT( )
ABS( )
ganze Zahl (2 Byte) SW( )
OPORT( )
ganze Zahl (4 Byte) PLS( )
Argument
SGN( )
Fälle, in denen Operationen und Funktionen benutzt werden können
Grundsätzlich ist es unmöglich, Operationen und Funktionen im Parameterteil jedes Befehls zu
benutzen. In so einem Fall weisen Sie das Ergebnis der Operation oder der Funktion einer Variablen zu,
und benutzen Sie den Variablennamen für den Parameter.
Der folgende Zustandsbefehl kann die logische Operation durchführen.
IF...THEN...ELSE, SELECT...SEND, WHILE...WEND, SENSE, TILL, WAIT, PRINT
<Beispiel>
P0=P1:ZCZ(P0)
54
→
A=CZ(P0);P0=P1:ZA
2.5 Steueranweisungen des Programms
SPEL III verfügt über folgende Steueranweisungen. Für Details sehen Sie bitte im Handbuch nach.
FOR...NEXT
GOTO
IF...THEN...ELSE
GOSUB...RETURN
CALL
SELECT...CASE...SEND
WHILE...WEND
TRAP
(Führt eine Reihe von Anweisungen in einer bestimmten Zeit aus.)
(Geht zur gewünschten Anweisung über)
(Führt Anweisungen auf der Grundlage von spezifizierten Konditionen
aus)
(Verzweigt zum Unterprogramm, führt es aus und verläßt es wieder)
(Ruft ein Unterprogramm auf)
(Spezifiziert die Verzweigungsvorschrift und die entsprechende
Verzweigungsanweisungssequenz)
(Führt eine Reihe von Anweisungen aus, während der festgelegte Zustand
erhalten bleibt)
(Definiert einen Unterbrechungsprozeß)
FOR...NEXT
Führt eine Reihe von Anweisungen von FOR bis NEXT in einer bestimmten Zeit aus.
GOTO
GOTO geht zur spezifizierten Zeile oder zur Sprungmarke.
<Beispiel>
10
20
30
40
50
60
70
FUNCTION MAIN
LOOP:
FOR I=1 TO 4
JUMP PI
NEXT I
GOTO LOOP
FEND
‘Markiert Zeile 20 als “LOOP“
‘Geht zu Zeile 20, die als LOOP markiert ist
IF THEN ELSE
IF (Bedingung) THEN (Anweisung 1) ELSE (Anweisung 2)
Wenn die (Bedingung) wahr ist, wird die (Anweisung 1) ausgeführt, und wenn sie nicht wahr ist, wird
die (Anweisung 2) ausgeführt.
<Beispiel>
Wiederholt die Sprungbewegung zwischen P1 und P2, und
zwischen P1 und P3 abwechselnd.
10
20
30
40
50
60
70
FUNCTION MAIN
I=1
IF I=1 THEN JUMP P2 ELSE JUMP P3
JUMP PI
I=0-I
GOTO 30
FEND
55
GOSUB...RETURN
Wenn ein GOSUB-Befehl gefunden wird, verzweigt er zur definierten Zeilennummer oder zur
Sprungmarke. Wenn ein RETURN-Befehl ausgeführt wird, lenkt er die Programmausführung zu der
Zeile um, die dem GOSUB-Befehl folgt.
<Beispiel>
Wiederholt die Bewegung 3-mal
zwischen P1 und P2, P2 und P3, P3
und P4 und P4 und P1. Die
Wiederholbewegung wird als
Unterprogramm programmiert.
10
20
30
40
50
60
70
80
90
100
1000
1010
1020
1030
1040
1050
FUNCTION MAIN
I=1;J=2
GOSUB I_J
I=2;J=3
GOSUB I_J
I=3;J=4
GOSUB I_J
I=4;J=1
GOSUB I_J
END
I_J:
‘Sprungmarke des Unterverzeichnisses
FOR LOOP=1 TO 3
JUMP PI;JUMP PJ
NEXT
RETURN
FEND
GOTO, FOR...NEXT, GOSUB...RETURN, IF...THEN...ELSE
<Beispiel>
Die Bewegungsgeschwindigkeit wird jedesmal erhöht, wenn zur
nächsten Position übergegangen wird. Wenn die Geschwindigkeit
„100“ erreicht, wird sie auf „10“ verringert. Die 3. Achse bewegt
sich an jeder Position 3-mal auf und ab.
10
20
30
40
50
60
70
80
90
100
200
210
220
230
240
250
300
310
56
FUNCTION MAIN
SPEED 10;A=10
FOR I=1 TO 4
JUMP PI
GOSUB H_L
A=A+10
IF A>100 THEN A=10
SPEED A
NEXT I
GOTO 30
‘
H_L:
FOR J=1 TO 3
JUMP PI
NEXT J
RETURN
‘
FEND
CALL
CALL ruft eine Funktion, die durch FUNCTION..FEND definiert wird, als Unterprogramm auf.
<Beispiel>
100
FUNCTION MAIN
110
OFF $0
120
XQT !2 SUB
200
M
CALL ERROR
300
305
310
M
FEND
‘
FUNCTION SUB
350
M
CALL ERROR
400
405
410
420
490
500
‘E/A-Speicher für ausschließliche
Steuerung
M
FEND
‘
FUNCTION ERROR
ON $0; IF ZEROFLG(0)=1 THEN WAIT
SW($0)=0; GOTO 420
M
OFF $0
FEND
* ZEROFLG(0)
Gibt Werte aus dem E/A-Speicher zurück, die vor dem letzten Ein- oder Ausschalten dort vorhanden
waren.
SELECT...CASE...SEND
SELECT[Formel]
CASE [Punkt1];[Anweisung1]
CASE [Punkt2];[Anweisung2]
SEND
Entspricht einer der CASE-Punkte dem Ergebnis der SELECT-Formel, wird die CASE-Anweisung
ausgeführt.
<Beispiel>
110
FUNCTION MAIN
120
INTEGER I
130
FOR I=0 TO 10
140
SELECT I
150
CASE 0; OFF1; ON2; JUMP P1
160
CASE 3; ON1; OFF2
170
JUMP P2; MOVE P3; ON3
180
CASE 7; ON4
190
DEFAULT; ON7
200
SEND
210
NEXT
220
FEND
57
WHILE[Bedingung]...WEND
Ist die WHILE-Bedingung wahr, wird die Anweisung zwischen WHILE und WEND ausgeführt. Danach
wird die WHILE-Bedingung nochmals überprüft.
<Beispiel>
100
FUNCTION MAIN
120
WHILE I<60
300
310
M
I=I+2
WEND
TRAP
Wenn die Eingabebedingung zufriedenstellend ist, wird der Unterbrechungsprozeß, der durch GOTO,
GOSUB oder CALL definiert ist, ausgeführt.
<Beispiel 1> Anwenderdefinierter Fehlerprozeß
100
FUNCTION MAIN
110
TRAP 1 SW(0)=1
‘Definiert TRAP
GOTO ERROR
M
500
510
520
ERROR:
ON 3
‘LED leuchtet
PRINT #20,“Error
is issued.“
530
FEND
<Beispiel 2> Anwendung wie Multi-tasking
100
FUNCTION MAIN
110
TRAP ERROR CALL
MSGOUT
M
500
700
710
720
58
FEND
FUNCTION MSGOUT
PRINT #20,ERRMSG$
(ERR(0))
FEND
NESTING
Die NESTING-Funktion kann für einige Anweisungen benutzt werden. Es wird in diesem Punkt anhand
GOSUB als Beispiel erklärt.
GOSUB verzweigt das Programm zu der definierten Zeilennummer (oder der Sprungmarke), führt das
Unterprogramm aus und lenkt danach die Programmausführung zu der Zeile um, die dem GOSUBBefehl folgt. Verwendet man eine weitere GOSUB...RETURN-Anweisung innerhalb des
Unterprogramms, können Sie ein weiteres Unterprogramm ausführen. Dies wird NESTING
(Verschachteln) genannt.
•
Verschachtelung:
Die Verschachtelungen beim NESTING werden als „Schritte“ beschrieben. Das obere Beispiel hat
„2 Schritte“. Es gibt Einschränkungen bei der Anzahl der Verschachtelungen, die jedoch abhängig
von der verwendeten Anweisung variieren. In diesem Handbuch wird die Anzahl der
Verschachtelungen auf 10 beschränkt.
•
Die folgenden Befehle erlauben Verschachtelungen
#include
CALL
FOR...NEXT
GOSUB...RETURN
SELECT...SEND
WHILE...WEND.
59
2.6 Pseudobefehl
Der Pseudobefehl wird verwendet, um das Editieren und Kompilieren im ersten Schritt des
Kompilierens einfacher zu gestalten. Das Benutzen des Pseudobefehls ermöglicht das Ersetzen von
Bezeichnern im Programm, die Installation anderer Dateien oder das Kompilieren von Programmteilen.
Als erster Buchstabe des Pseudobefehls muß das #-Zeichen stehen, und die weiteren Buchstaben des
Befehls müssen in Kleinschreibung folgen. Folgende Pseudobefehle werden von SPEL III zur Verfügung
gestellt.
#define
#include
#ifdef
#ifndef
#endif
Der Pseudobefehl muß sofort nach der Zeilennummer beschrieben werden. Nach dem Pseudobefehl muß
mindestens ein Leerzeichen stehen, bevor andere Buchstaben folgen.
Die Position des Pseudobefehls kann irgendwo im Programm sein. Auch wenn der Pseudobefehl in der
Mitte des Programms steht, gilt er für das ganze Programm.
<Beispiel>
1000 FUNCTION MAIN
1010 #define LED1 8
1020 #define LED2 9
1030 #define LED3 10
2000
2010
M
ON LED1; WAIT 1;
OFF LED1
ON LED2; ON LED3
M
3000 FEND
Die Beschreibungen und Beispiele für die einzelnen Pseudobefehle erhalten Sie im SPEL III
Referenzhandbuch.
60
3. Dateien
Dateien sind Ansammlungen von Daten. Erzeugte Programme oder für die Einrichtung relevante
Positionsdaten werden als Dateien behandelt.
Die Steuerung beinhaltet einen Hauptspeicher als Arbeitsbereich zum Erzeugen und Ausführen von
Programmen sowie einen Dateispeicher zum Speichern der Dateien.
Dieses Kapitel beschreibt, wie die Dateien in diesen beiden Speichern behandelt werden.
3.1 Haupt- und Dateispeicher
Die Größe des Hauptspeichers für die Bereiche des Quellprogramms, der Positionsdaten und der
Backup-Variablen läßt sich mit Befehlen zum Ändern der Größe verändern.
Hauptspeicher
Nr. 1
Nr. 2
Nr. 3
Befehl zur Größenänderung
Quellprogramm
64 KB
64 KB
128 KB
Positionsdaten
200 Punkte, 5,5 KB
PNTSIZE
Backup-Variablen
10 Variablen, 0,5 KB
LIBSIZE
Objektbereich
97 KB
97 KB
233 KB
Dateispeicher
100 KB
1100 KB
900 KB
PRGSIZE
kann mit den oberen
Befehlen geändert werden.
Nr. 1:
Standardeinstellung
Nr. 2:
mit zusätzlichem RAM und DIP-Schalter SD2-1 auf ON (auf der MPU-Platine der Steuerung)
Nr. 3:
mit zusätzlichem RAM und DIP-Schaltern SD2-1 und SD2-2 auf ON (auf der MPU-Platine
der Steuerung)
Speicherbereich im Hauptspeicher
Der Hauptspeicher ist ein Bereich, der die Bewegung des Roboters bewirkt und ist in die folgenden fünf
Bereiche unterteilt:
(1) Quellprogrammbereich
Das Quellprogramm wird hier gespeichert. Um es ausführen zu können, muß es in ein
Objektprogramm kompiliert werden.
(2) Positionsdatenbereich
Die Positionsdaten, die durch das Einrichten erzeugt werden, werden hier gespeichert. Die
bestehenden Positionsdaten werden als die notwendigen Positionsdaten für die
Programmausführung benötigt.
(3) Bereich der Backup-Variablen
Das ist der Bereich zum Speichern der Backup-Variablen-Speichertabelle.
(4) Symbolbereich
Das ist der Bereich zum Speichern der Speichertabelle der Funktions- und Variablennamen. Wenn
das Quellprogramm kompiliert wird, werden die Funktions- und Variablennamen automatisch hier
gespeichert.
(5) Objektbereich
Das ist der Bereich, in dem das aktuelle ausführbare Programm gespeichert wird.
61
Bereich zur Programmausführung
Wenn ein Programm abläuft, werden Daten aus jedem Hauptspeicherbereich, mit Ausnahme des
Quellprogrammbereichs benutzt. Diese Daten müssen verbunden werden, damit sie zu der
Roboteroperation passen. Stellen Sie sicher, daß sich die Daten aufeinander beziehen, bevor Sie ein
Programm ausführen.
Hauptspeicher
Quellprogrammbereich
Bereich der Backup-Variablen
Symbolbereich
Objektbereich
64748
Positionsdatenbereich
Ausführbare Daten
Dateispeicher
Der Dateispeicher ist der Speicher, in dem alle Arten von Dateien gespeichert werden können. Die
Anzahl der speicherbaren Dateien ist nachfolgend aufgeführt:
62
Dateispeicher
Größe
Anzahl Dateien
Nr. 1
100 KB
64
Nr. 2
1,1 MB
192
Nr. 3
900 KB
192
Nr. 1:
Standardeinstellung
Nr. 2:
mit zusätzlichem RAM und DIP-Schalter SD2-1 auf ON (auf der MPU-Platine der Steuerung)
Nr. 3:
mit zusätzlichem RAM und DIP-Schaltern SD2-1 und SD2-2 auf ON (auf der MPU-Platine
der Steuerung)
3.2 Dateinamen
Für jede Datei muß ein Dateiname vergeben werden. Um mit der Datei arbeiten zu können, muß ein
Dateiname festgelegt werden.
Die Bestandteile eines Dateinamens
Der Dateiname setzt sich zusammen aus dem Dateinamen, der Erweiterung und dem Punkt “.“.
Der Dateiname und die Erweiterung werden durch den Punkt getrennt. Es handelt sich um verschiedene
Dateien, wenn zwar die Dateinamen identisch sind, sich aber die Erweiterungen unterscheiden.
Erzeugen eines Dateinamens
Wenn ein Quellprogramm und Positionsdaten gespeichert werden sollen, die sich im Hauptspeicher
befinden, muß ein Name vergeben werden.
Dateinamen unterliegen den folgenden Beschränkungen:
•
•
Der Name darf aus max. acht Zeichen bestehen.
Verwendbare Zeichen:
- Alphabet (A bis Z, a bis z)
- Zahlen (0 bis 9)
- Symbole (! # $ % & ( ) - ^ @ ~ { } _)
Erweiterung
Die Erweiterung zeigt den Dateityp auf. Im Allgemeinen muß der Anwender die Erweiterung nicht
selbst vergeben, da die Steuerung die Erweiterung automatisch vergibt. Es handelt sich um verschiedene
Dateien, wenn zwar die Dateinamen identisch sind, sich aber die Erweiterungen unterscheiden.
Die Dateitypen sind wie folgt festgelegt:
Erweiterung
PRG
OBJ
SYM
PNT
CRV
BAT
Datei
Quellprogrammdatei
Objektdatei
Symboldatei
Positionsdatendatei
Frei Kurven-Datei
Stapeldatei
SYS
Systemumgebungsdatei
Dateityp
Erzeugtes Programm
Ausführbares Zwischencodeprogramm
Variablen- und Funktionnamenspeichertyp
Positionsdatendatei
Freie Kurvendaten, die der CURVE-Befehl verwendet.
Datei, die Befehle beinhaltet, die automatisch ausgeführt
werden sollen.
Datei, die alle Daten der Systemumgebung speichert.
63
Wenn Sie eine Textdatei mit einem PC oder mit Hilfe der Befehle WOPEN und VSAVE editieren
wollen, legen Sie selbst die Erweiterung fest. In diesen Fällen dürfen Sie nicht die oben erwähnten
Erweiterungen benutzen.
Erweiterungen unterliegen den folgenden Beschränkungen:
•
•
•
Die Erweiterung muß aus drei Zeichen bestehen.
Verwendbare Zeichen:
- Alphabet (A bis Z, a bis z)
- Zahlen (0 bis 9)
- Symbole (! # $ % & ( ) - ^ @ ~ { } _)
Dateinamen müssen immer angegeben werden. Im Gegensatz dazu können Erweiterungen
weggelassen werden. Wenn Sie die Erweiterung weglassen, müssen Sie auch den Punkt weglassen.
Spezielle Dateinamen
Die Dateien mit den folgend aufgeführten Dateinamen werden bei Einschalten der Spannungszufuhr
automatisch ausgeführt. Diese Dateien bzw. Dateinamen dürfen zu keinem anderen Zweck verwendet
werden.
AUTO.BAT, IPL.OBJ und CNFG.SYS
3.3 Dateien, die während der Ausführung geladen werden
Wenn Sie ein Programm ausführen, werden die folgenden drei Dateien vom Haupt- in den Dateispeicher
geladen. Wenn jedoch nur eine von den drei Dateien fehlen sollte, tritt ein Fehler auf.
Bitte beachten Sie, daß das Quellprogramm nicht geladen wird.
Quellprogramm
TEST.PRG
(TEST.PNT)
TEST.PNT
(TEST.SYM)
(TEST.OBJ)
←
678
Dateispeicher
678
Hauptspeicher
TEST.SYM
TEST.OBJ
Wenn erst einmal die für die Ausführung notwendigen Dateien in den Hauptspeicher geladen sind, kann
das Programm durch Eingeben des Befehls XQT (ohne Eingeben des Dateinamens) oder durch Drücken
des Starttasters auf der Bedieneinheit (ohne Auswahl der Datei) gestartet werden.
64
4. Verzeichnis
4.1 Verzeichnis
Wird eine Datei im Dateispeicher abgelegt, wird zusätzlich zu dem Dateinamen und der Erweiterung die
Dateigröße und das Datum, an dem die Datei erzeugt wurde, im Verzeichnis abgespeichert.
Um die Dateien zu verwalten, sortiert und registriert das Verzeichnis die Dateien in verschiedene
Gruppen. Beachten Sie, daß das Verzeichnis ein Ort ist, wo die Dateien gespeichert werden und, daß
sich Verzeichnis und Datei unterscheiden.
Es gibt zwei verschiedene Arten von Verzeichnissen: das „Haupt- oder Wurzelverzeichnis“ und
„Unterverzeichnisse“.
Hauptverzeichnis
Das Grundverzeichnis, das automatisch erstellt wird, wenn der Dateispeicher formatiert wird, heißt
Hauptverzeichnis. Es wird durch einen umgekehrten Schrägstrich “\“ ausgedrückt. Dieses Symbol kann
nicht verändert werden. Es ist auch nicht möglich, das Hauptverzeichnis zu löschen.
Unterverzeichnis
Wenn viele verschiedene Dateien und/oder Dateitypen im Hauptverzeichnis stehen, wird die
Dateiverwaltung umständlich, und ein falscher Gebrauch von Dateien wird möglich. Die Größe des
Hauptverzeichnisses ist vorher festgelegt. Die Anzahl von Dateien ist daher limitiert. Um eine Gruppe
von Dateien leichter handhaben zu können, können Verzeichnisse angelegt und gelöscht werden. Diese
Verzeichnisse nennt man Unterverzeichnisse. Die Anzahl von Dateien, die in ein Unterverzeichnis
geschrieben werden können, ist abhängig von der Größe des Dateispeichers.
Erzeugen eines Unterverzeichnisses
Das Unterverzeichnis wird, genau wie eine Datei, mit einem Namen versehen. Ein Unterverzeichnis
wird mit Hilfe der Befehle MKDIR oder MD (Make Directory) erzeugt.
Namen der Unterverzeichnisse unterliegen den folgenden Beschränkungen:
•
•
Der Verzeichnisname darf aus max. acht Zeichen bestehen.
Verwendbare Zeichen:
- Alphabet (A bis Z, a bis z)
- Zahlen (0 bis 9)
- Symbole (! # $ % & ( ) - ^ @ ~ { } _)
<Beispiel>
>MKDIR DATA
Erzeugen eines Unterverzeichnisses DATA im Hauptverzeichnis
>MKDIR \DATA\TEXT
Erzeugen eines Unterverzeichnisses TEXT im Unterverzeichnis DATA im
Hauptverzeichnis, wobei das Verzeichnis DATA bereits besteht.
Sie erreichen das gleiche durch Wechseln vom Haupt- in das Unterverzeichnis DATA:
>CHDIR DATA
Wechseln des Verzeichnisses
>MD TEXT
Erzeugen eines Unterverzeichnisses TEXT
Es ist nicht möglich, mehr als zwei Verzeichnisse gleichzeitig zu erzeugen. Erzeugen Sie Verzeichnisse
immer nacheinander.
65
Löschen eines Unterverzeichnisses
Ein Unterverzeichnis wird mit Hilfe der Befehle RMDIR oder RD (Remove Directory) gelöscht. Es ist
nicht möglich, ein Unterverzeichnis zu löschen, in dem sich Dateien oder andere Unterverzeichnisse
befinden.
<Beispiel>
>RD DATA
Löschen des Unterverzeichnisses DATA. Überzeugen Sie sich vorher, daß
das Verzeichnis keine weiteren Daten mehr enthält.
<Beispiel>
>RD \DATA\TEXT
Löschen des Unterverzeichnisses TEXT im Unterverzeichnis DATA.
Überzeugen Sie sich vorher, daß das Verzeichnis TEXT keine weiteren
Daten mehr enthält.
Sie erreichen das gleiche durch Wechseln vom Haupt- in das Unterverzeichnis DATA:
>CD DATA
Wechseln des Verzeichnisses
>RD TEXT
Löschen des Unterverzeichnisses TEXT
Baumstrukturierte Verzeichnisse
Wenn Sie verschiedene Unterverzeichnisse erzeugen, wird eine Hierarchie angelegt. Sie wird
Verzeichnishierarchie genannt. Wenn das Verzeichnis ausgelesen wird, sieht es aus wie die
Verzweigungen eines Baumes und wird daher auch baumstrukturiertes Verzeichnis genannt.
[]: stellt die Verzeichnisnamen in obiger Abbildung dar.
Stammverzeichnis (Mutterverzeichnis), Unterverzeichnis (Kinderverzeichnis)
In der Verzeichnishierarchie wird das Verzeichnis, das auf der höchsten Ebene ist, Stammverzeichnis,
und die, die unterhalb dieser Ebene sind, Unterverzeichnisse genannt.
In der oben gezeigten Verzeichnishierarchie ist das Hauptverzeichnis das Stammverzeichnis des
Verzeichnisses TEXT und das Verzeichnis DATA ist das Unterverzeichnis. Das Verhältnis ist relativ.
Das Verzeichnis TEXT ist das Stammverzeichnis des Verzeichnisses DATA, aber auch das
Unterverzeichnis vom Hauptverzeichnis.
Ein Punkt [.] weist auf ein aktuell bestehendes Verzeichnis hin. Zwei Punkte [..] weisen auf sein
Stammverzeichnis. Diese Punkte werden gewöhnlich verwendet, wenn Pfad- oder Dateinamen mit Hilfe
des Befehls DIR angezeigt werden sollen.
Aktuelles Verzeichnis
Das aktuelle Verzeichnis ist immer das gegenwärtig ausgewählte Verzeichnis. Ist ein Verzeichnis nicht
spezifiziert, startet SPEL II den Suchvorgang vom aktuellen Verzeichnis aus. Wenn Sie SPEL III
starten, ist immer das Hauptverzeichnis des Dateispeichers das aktuelle Verzeichnis.
Zum Verzeichniswechsel benutzen Sie die Befehle CHDIR oder CD (Change Directory).
Beim Einschalten der Spannungszufuhr ist immer das Hauptverzeichnis das aktuelle Verzeichnis.
66
Festlegen eines Pfades
Wenn Sie mit Hilfe eines Befehlsparameters zu einem anderen Verzeichnis wechseln oder ein
Verzeichnis festlegen wollen, kann dies nicht sauber ausgeführt werden, wenn Sie nur das Verzeichnis
festlegen. Das Verzeichnis muß basierend auf dem Haupt- und dem aktuellen Verzeichnis festgelegt
werden. Die Anweisung zum Ordnen und Trennen der Verzeichnisse durch den umgekehrten
Schrägstrich “\“ wird Pfadname genannt.
Es gibt zwei verschiedene Arten von Pfadnamen: absolute und relative. Der absolute Pfadname
spezifiziert das Verzeichnis vom Hauptverzeichnis aus, und der relative Pfadname spezifiziert das
Verzeichnis vom aktuellen Verzeichnis aus.
•
Absoluter Pfadname
Ein absoluter Pfadname zeigt, wie man vom Hauptverzeichnis den Weg in das gewünschte Verzeichnis
findet. Dabei muß am Anfang des Pfadnamens der umgekehrte Schrägstrich “\“ stehen. Der Startpunkt
für den absoluten Pfadnamen ist immer das Hauptverzeichnis.
<Beispiel>
Wenn das aktuelle Verzeichnis DATA1 ist, spezifizieren Sie das Verzeichnis DATA2.
Der umgekehrte Schrägstrich “\“ wird sowohl zum Trennen von Verzeichnissen als auch für das
Hauptverzeichnis genutzt. Im Falle eines absoluten Pfadnamens steht der umgekehrte Schrägstrich “\“
am Anfang immer für das Hauptverzeichnis.
Der Pfad zum Auffinden von Verzeichnissen bei absoluten Pfadnamen ist immer der folgende:
Hauptverzeichnis (Startpunkt) → Unterverzeichnis (TEST) → Unterverzeichnis (DATA2)
•
Relativer Pfadname
Ein relativer Pfadname zeigt, wie man vom aktuellen Verzeichnis den Weg in das gewünschte
Verzeichnis findet. Der Startpunkt für den relativen Pfadnamen ist immer das aktuelle Verzeichnis.
D.h., der Pfadname variiert abhängig vom Namen des aktuellen Verzeichnisses. Wenn Sie zwei Punkte
(..) in einem Pfadnamen verwenden, heißt das, daß man sich eine Ebene in der Baumstruktur nach oben
bewegt.
<Beispiel>
Der Beispielausdruck des absoluten Pfadnamens entspricht dem folgenden relativen Pfandnamen:
Bei relativen Pfadnamen stellen die umgekehrten
Schrägstriche “\“ die Unterscheidungen zwischen
verschiedenen Verzeichnissen dar.
Die ersten beiden Punkte verweisen auf das Stammverzeichnis. Also ist das Verzeichnis TEST das
Stammverzeichnis von DATA2. Die folgenden beiden Punkte verweisen auf das Stamm- oder das
Hauptverzeichnis.
Der Pfad zum Auffinden von Verzeichnissen bei relativen Pfadnamen ist der folgende:
aktuelles Verzeichnis 1 (DATA 1 als Startpunkt) → Stammverzeichnis (TEXT) → Stammverzeichnis
(Hauptverzeichnis) → Unterverzeichnis (TEST) → Unterverzeichnis (DATA2)
67
Umgebungsvariablen
Es ist möglich, für die Befehle COM und PLI optionale Parameter einzustellen.
Wenn Sie viele Unterverzeichnisse eingerichtet haben, müssen Sie den Pfadnamen zu der Datei, die Sie
aufrufen wollen, eingeben. Es sei denn, die Datei befindet sich im aktuellen Verzeichnis. Sie können
vorher die Verzeichnisumgebung einer Datei festlegen, wenn Sie diese häufig ausführen . Um solch eine
Ausführungsumgebung festzulegen, benutzen Sie den Befehl SETENV zum Festlegen einer
Umgebungsvariablen.
Folgende Umgebungsvariablen sind möglich:
COM
Setzt den optionalen Parameter (-V, -L) des COM-Befehls
PLI
Setzt den optionalen Parameter (/W) des PLI-Befehls
XQT
Legen Sie den Pfadnamen für die Datei fest, die durch den Befehl XQT “Dateiname“
ausgeführt werden soll. Wird der Pfadname nicht festgelegt, wird die Datei, ausgehend vom
aktuellen Verzeichnis, gesucht.
PATH
Legen Sie den Pfadnamen (Verzeichnis), der zum Ausführen der Stapeldatei benötigt wird,
fest. Wird der Pfadname nicht festgelegt, kann die Datei nicht ausgeführt werden.
Der [Pfadname] auf der rechten Seite von XQT und PATH kann wiederholt in derselben Zeile
auftauchen. Trennen Sie sie mit Hilfe des Semikolons “;“. Die max. Anzahl der Zeichen pro Zeile ist 79.
Sie können PATH auch ohne den Befehl SETENV spezifizieren.
Weitere Informationen erhalten Sie im SPEL III Referenzhandbuch.
<Beispiel für Umgebungsvariablen>
>SETENV COM=-V
>SETENV PLI=/W
>SETENV PATH=\;\BIN
>SETENV XQT=\
>SETENV
COM=-V
PLI=/W
PATH=\;\BIN
XQT=\
>PATH
>PATH=\;\BIN
>PATH=\
>PATH
>PATH=\
G HINWEIS
Zeigt den aktuellen Pfad zum Ausführen von Stapeldateien
Legt den Pfad zum Ausführen von Stapeldateien fest
Zeigt den aktuellen Pfad
Selbst wenn die PATH- und XQT-Umgebungsvariable bereits festgelegt wurde,
wird nicht nach ihr gesucht, wenn ein Verzeichnis mit Dateiname spezifiziert ist.
<Beispiel >
XQT=\BIN;\TEST 1.
2.
68
Spezifiziert die Kompilierbedingungen
Spezifiziert das Anzeigeformat für PLIST
Legt den Pfad zum Ausführen von Stapeldateien fest
Legt den Pfad zum Ausführen von Dateien fest
Zeigt die aktuellen Einstellungen an
Beim Ausführen von XQT „TMP“ (TMP ist der Dateiname), wird zuerst
nach „TMP“ gesucht, dann nach „\BIN\TMP“ und dann nach
“\TEST\TMP“.
Beim Ausführen von XQT “¥TMP“ wird nur nach „\TMP“ gesucht.
ANWENDUNGEN
69
1. Multitasking
1.1 Was ist Multitasking
Wenn eine Reihe von Befehlen, die ausgeführt werden sollen, durch Verarbeitungsfunktionen in
kleinere Einheiten aufgeteilt wird, wird jede dieser Verarbeitungsfunktionen „Task“ genannt.
„Multitasking“ verweist auf einen Verarbeitungstyp, in dem mehrere Tasks gleichzeitig oder der Reihe
nach ausgeführt werden.
Es gibt zwei Wege, Multitasking zu erreichen. Der eine ist der „Multiprozeß“, ein Verarbeitungsmodus,
in dem zwei oder mehr verbundene Verarbeitungsfunktionen einen oder mehrere Verarbeitungen in
Übereinstimmung ausführen. Der andere ist der „Time-Sharing“-Modus, in dem eine einzelne
Verarbeitungseinheit zwei oder mehr Tasks Zeit für die Ausführung zuweist, so daß es den Anschein
hat, als würden sie gleichzeitig ausgeführt.
Unsere Steuerung arbeiten nach dem Time-Sharing-Modus.
Vorteile des Multitaskings
Ein Multitasking-System hat die folgenden Vorteile:
•
verkürzte Taktzeiten
Ein-Task-Systeme führen immer nur einen Task aus, wohingegen Multitasking-Systeme immer
mehrere Tasks gleichzeitig ausführen. Das bedeutet, mehr Arbeit wird gleichzeitig ausgeführt und
somit die Taktzeit (Arbeitszeit) wesentlich verkürzt.
•
Produktivität
Zusätzlich zur verkürzten Arbeitszeit kann man mit Multitasking Peripheriegeräte gleichzeitig
steuern. Das bedeutet, daß die ganze Arbeit effizienter ist und die Produktivität erhöht wird.
•
einfache Wartung
Durch das Aufteilen des Programms in einzelne Tasks werden die Überprüfung und die Wartung
des Programmes wesentlich vereinfacht.
•
Erweiterbarkeit
Erweiterungen des Programms lassen sich durch das Hinzufügen neuer Tasks einfach vollziehen.
70
Multitasking in SPEL III
Die Steuerungen SRC-300/310A/320 können jeweils 16 Tasks mit Hilfe des Time-Sharing-Modus
übereinstimmend ausführen. Jeder Task darf max. 2 ms dauern. Die Tasks werden durch die
Systemsteuerung alle 2 ms weitergeschaltet.
SPEL III verbindet FEND und FUNCTION in einem Task. Der XQT-Befehl des TEACH-Modus und
der START-Schalter des AUTO-Modus führen FUNCTION...FEND am Anfang des Programms als
Task 1 aus, und danach werden die Tasks in Übereinstimmung mit den XQT-Befehlen des Programms
gestartet.
<Beispiel>
1000 FUNCTION MAIN
1010 XQT !2,TASK2
1020 XQT !3,Task3
1030 XQT !4,Task4
1040 XQT !5,Task5
‘Task 1
‘Start von Task 2
‘Start von Task 3
‘Start von Task 4
‘Start von Task 5
M
1500
2000
FEND
FUNCTION Task2
‘Task 2
M
2500
3000
FEND
FUNCTION TASK3
‘Task 3
M
3500
4000
FEND
FUNCTION TASK4
‘Task 4
M
4500
5000
FEND
FUNCTION TASK5
‘Task 5
M
5500
FEND
71
Tasks während der Ausführung des WAIT-Befehls, des INPUT-Befehls und des Bewegungs-Befehls
Die Tasks, die Befehle wie den WAIT-Befehl, den WAIT SW( )-Befehl, den INPUT-Befehl und
Operationsbefehle (JUMP etc.) ausführen, werden zeitweise eingeschaltet und von der Gruppe der sofort
auszuführenden Tasks getrennt. Diese Anordnung wird benutzt, da die Zuweisung einer bestimmten
Ausführungszeit zu Tasks, deren einzige Aufgabe das Warten ist, nur zu einer abnehmenden Effizienz
des CPU beitragen würde.
Für diese Tasks überwacht das System die Übereinstimmung der Eingangskonditionen, den
Dateneingang oder die Komplettierung der Bewegung, und wenn die vorausgesetzten Konditionen
getroffen werden, führt das System Sie vorrangig zu den anderen Tasks aus. Danach werden sie wieder
zeitweise für die Ausführung aktiviert.
<Beispiel> Task 3 führt den WAIT-Befehl aus.
<Beispiel> Task 2 Eingangsschnittstelle wechselt
WAIT-Befehl und IF-Satz
Basierend auf dem oben angegebenen haben die folgenden zwei Programme unterschiedliche
Bedeutungen:
72
Liste 1
1000 FUNCTION TASK
Liste 2
1000 FUNCTION TASK
M
1200 WAIT SW(1) = 1
M
1200 IF SW(1) = 0 THEN GOTO 1200
M
1300 FEND
M
1300 FEND
Beide warten darauf, daß sich Eingang 1 ändert. Liste 1 ist von der zeitweisen Aktivierung der Tasks
ausgeschlossen, und Liste 2 wiederholt die Auswertung der Gleichung SW (1) = 0 für einen Zeitraum von 2
Sekunden, nachdem eine bestimmte Zeit verstrichen ist. Gibt es Vielfach-Tasks wie in Liste 2, wird der größte
Teil der Verarbeitungszeit der CPU auf die Auswertung der Bedingungsausdrücke verwendet.
Weiterhin wird, wenn z.B. 16 Tasks ausgeführt werden sollen, einer alle 32 ms ausgeführt. In manchen Fällen
ist es möglich, daß Liste 2 nicht auf Signale, die kürzer als 30 ms sind, reagiert.
Zeitprogrammierung für den Wechsel der Tasks
Der Wechsel der Tasks erfolgt an einer willkürlichen Position nach 2 ms. Die Werte der Variablen im
folgenden Programm sind nicht garantiert:
<Beispiel>
1000 FUNCTION MAIN
M
1200 IF A = 1 THEN...
1210 IF A = 2 THEN...
M
1400 FEND
2000 FUNCTION TASK2
M
2100 A=1
M
2200 FEND
3000 FUNCTION TASK3
M
3100 A = 2
M
3200 FEND
Werden Daten der Vielfach-Tasks in asynchroner Weise in eine Variable geschrieben, werden die Tasks
aktiviert, während 2100 A = 1 ausgeführt wird (z.B. direkt nachdem Daten auf ein von vier Bytes
geschrieben wurden), und dann wird 3100 A = 2 ausgeführt. Außerdem, wenn die Tasks wieder
aktiviert werden und die Kontinuität von 2100 A = 1 ausgeführt wird, nimmt die Variable A einen
Wert an, der äußerst unvorhersehbar ist.
Überdies wird der Wert der Variablen A während der Ausführung des Teils, der auf THEN folgt, neu
geschrieben, was den Bedingungsausdruck von IF bedeutungslos macht.
73
1.2 Ineinandergreifen von Tasks
Störungen der Steuerung
Beim Multitasking wird die Weiterverarbeitung gewöhnlich durchgeführt, während gegenseitige
Störungen der Tasks vermieden werden und der fortschreitende Zustand der anderen Tasks gemeinsam
geprüft wird. Dieser Vorgang wird Ineinandergreifen der Tasks genannt.
Um dieses Ineinandergreifen sicherzustellen, macht SPEL III Gebrauch von dem E/A-Speicher. Der
E/A-Speicher ist eine Gruppe von 512 Kennzeichen „Flags“ (1-Bit-Variablen), die von 0 bis 511
numeriert sind. Es wird mit den Befehlen On $n/OFF $n, IN ($m)/OUT $m, und d gearbeitet.
<Beispiel>
1000 FUNCTION TASK1
M
1100 LOOP1:
1110 ON $0
M
1200 WAIT SW($1) = 1; OFF $1
‘Befehl für Task 2, die Verarbeitung zu beginnen.
‘Warten Sie auf den Hinweis, daß der
Verarbeitungsprozeß von Task 2 abgeschlossen ist.
‘Von hier an wird die Störung des Geräts von Task 2
gesteuert.
M
1300 GOTO LOOP1
1310 FEND
2000 FUNCTION TASK2
M
2100 LOOP2:
2110 WAIT SW($0) = 1; OFF $0
M
2300 ON $1
M
2400 GOTO LOOP2
2410 FEND
74
‘Warten Sie auf einen Befehl, die Verarbeitung zu
beginnen.
‘Von hier an wird die Störung des Geräts von Task 1
gesteuert.
‘Hinweis: Verarbeitungsprozeß ist abgeschlossen.
Nur ein Gerät wird von Vielfach-Tasks benutzt
Die Datenausgabe an das einzig verfügbare Gerät (Anzeige für OPU-300, RS-232C,etc.) sollte im
Wesentlichen den ausgewählten Tasks zugewiesen werden. Wenn das nicht vorhanden ist, muß ein
sinnvolles Schema erdacht werden, um gleichzeitige Datenausgaben an eine einzige Vorrichtung zu
vermeiden. Solch ein Schema wird als ausschließliche Steuerung bezeichnet.
<Beispiel 1> Nr. 0(null) des E/A-Speichers wird der Gebrauch/Nichtgebrauch der Datenausgabegeräte
zugewiesen.
1000
FUNCTION TASK1
1010
XQT !2,TASK2
1020
WAIT SW($0) = 0
1030
ON $0
1040
PRINT “1234567890“
1050
PRINT “1234567890“
1060
PRINT “1234567890“
1070
OFF $0
1080
GOTO 1020
1090
FEND
2000
FUNCTION TASK2
2010
WAIT SW($0) = 0
2020
ON $0
2030
PRINT “abcdefg“
2040
PRINT “abcdefg“
2050
PRINT “abcdefg“
2060
OFF $0
2070
GOTO 2010
2080
FEND
>
abcdefg
1234567890
abcdefg
abcdefg
1234567890
75
Im <Beispiel 1>-Programm, wenn der Task sofort nach WAIT SW ($0) = 0 aktiviert wird, wird eine
Zeichenkette von einem anderen Task durch Unterbrechung in die Mitte der Datenausgabe der drei
Zeichenketten geliefert. Um dies zu vermeiden, stellt SPEL III die ZEROFLG (0)-Funktion bereit.
<Beispiel 2>
1000
FUNCTION TASK1
1010
XQT !2,TASK2
1020
ON $0
1030
IF ZEROFLG(0) = 1 THEN WAIT SW($0) = 0; GOTO 1020
1040
PRINT “1234567890“
1050
PRINT “1234567890“
1060
PRINT “1234567890“
1070
OFF $0
1080
GOTO 1020
1090
FEND
2000
FUNCTION TASK2
2010
ON $0
2020
IF ZEROFLG(0) = 1 THEN WAIT SW($0) = 0; GOTO 2010
2030
PRINT “abcdefg“
2040
PRINT “abcdefg“
2050
PRINT “abcdefg“
2060
OFF $0
2070
GOTO 2010
2080
FEND
>
1234567890
1234567890
1234567890
abcdefg
abcdefg
abcdefg
1234567890
1234567890
1234567890
Die ZEROFLG(0)-Funktion gibt den n-th-Status des E/A-Speichers zurück, der existiert, bevor das
sofort vorangehende ON (OFF) $n ausgeführt wird.
76
2. Programmiertechniken
2.1 Schreiben eines umfangreichen Programms (Effizienter Einsatz von
CHAIN/LINK)
Ein kleines Programm beinhaltet normalerweise eine einzige Datei. Wird das Programm größer, können
die nachfolgend aufgeführten Probleme entstehen:
•
Paßt nicht in die Programmbereiche.
•
Kann nicht mit dem Editor bearbeitet werden.
•
Benötigt viel Zeit zum Kompilieren.
•
Benötigt viel Zeit zum Anzeigen mit Hilfe des Befehls LIST.
•
Alle Variablen und Sprungmarken müssen unterschiedliche Namen haben. (Es ist lästig,
angemessene Namen zu finden.)
Die Befehle CHAIN und LINK stehen zur Verfügung, um mit diesen Problemen fertig zu werden.
Der erste Befehl wird verwendet, um zwischen Einrichtungsarten zu wechseln. Der zweite wird in allen
anderen Fällen verwendet. Es gibt kein eindeutiges Kriterium zur Verwendung der Befehle CHAIN und
LINK. Es bleibt dem Programmierer frei überlassen, mit Ausnahme der Fälle, in denen spezielle
Umstände den Einsatz der Befehle erforderlich machen, wenn z.B. ein Programm nicht in den
Programmbereich paßt. Als allgemeine Regel läßt sich sagen, daß es ratsam ist, die Befehle CHAIN und
LINK bei Programmen einzusetzen, die mehr als 3.000 Zeilen beinhalten (Wenn eine Zeilennummer
jeder zehnten Zeile, ausgehend von 10 bis zu 32.767, zugewiesen wird, ist die Grenze bei 3276 Zeilen.)
Einsatzmöglichkeiten des CHAIN-Befehls
Angenommen, ein Programm, in dem verschiedene Arten von ICs per DIP-Schalter festgelegt werden
sollen, stellt einen Fall dar, in dem klar abgegrenzte Routinen ausgeführt werden sollen.
Funktion (IC), die geändert werden soll, wird ausgewählt durch Eingang IN(0) und
verzweigt zur Verfahrensroutine. Jede Routine ist unabhängig von den anderen und
teilt sich nie die gleichen Unterprogramme.
IN(0)= 1 :PLCC
2 :DIP
3 :SOP
<Beispiel 1>
100 IF IN(0)=1 THEN GOTO PLCC
110 IF IN(0)=2 THEN GOTO DIP
120 IF IN(0)=3 THEN GOTO SOP
‘PLCC Auswahl
‘DIP Auswahl
‘SOP Auswahl
M
3000 PLCC:
M
3900 GOTO PLCC
4000 DIP:
M
4900 GOTO DIP
5000 SOP:
M
5900 GOTO SOP
77
<Beispiel 2> (Einsatz von CHAIN)
100 IF IN(0)=1 THEN CHAIN “PLCC“
110 IF IN(0)=2 THEN CHAIN “DIP“
120 IF IN(0)=3 THEN CHAIN “SOP“
Datei: PLCC.PRG
1000 FUNCTION MAIN
1010 PLCC:
‘PLCC Auswahl
‘DIP Auswahl
‘SOP Auswahl
M
1900 GOTO PLCC
2000 FEND
Datei: DIP.PRG
1000 FUNCTION MAIN
1010 DIP:
M
1900 GOTO DIP
2000 FEND
Datei: SOP.PRG
1000 FUNCTION MAIN
1010 SOP:
M
1900 GOTO SOP
2000 FEND
Wie im obigen Beispiel dargestellt, können Programme für individuelle Einrichtungsarten einzeln
entwickelt werden. Dies bietet eine gute Debugging-Leistung und erzielt so kürzere Entwicklungszeiten.
Darüber hinaus kann, wenn z.B. ein Programm durch Auswahl der REMOTE3 und nicht per OPU-300,
aktiviert wird, auch der CHAIN-Befehl verwendet werden.
Einsatzmöglichkeiten des CHAIN-Befehls
Der LINK-Befehl kann unter den folgenden Bedingungen eingesetzt werden:
•
Ein Programm ist zu groß, um in den Programmbereich zu passen.
•
Ein Programm ist zu groß, um mit dem Editor bearbeitet zu werden.
•
Lokale Variablen sollen verwendet werden.
•
Die Programmierarbeit wird unter mehreren Personen aufgeteilt.
•
Das Programm soll aus mehreren wiederverwendbaren Modulen bestehen.
•
Das Kompilieren soll verkürzt werden.
•
Für Variablen und Sprungmarken sollen gleiche Namen verwendet werden, wobei die Dateien
unterschiedlich sind.
In allen obigen Fällen wird der Einsatz des Befehls LINK empfohlen. Sie sollten sich jedoch darüber im
Klaren sein, daß eine Verwendung des LINK-Befehls die folgenden Nachteile mit sich bringen kann:
78
•
Um Variablen zu teilen, sind zusätzliche Prozeduren (z.B. ENTRY/EXTERN) notwendig.
•
Die Anzahl der Prozeduren erhöht sich. Zusätzlich zum Kompilieren muß der LINK-Befehl
ausgeführt werden, und wenn es nur eine Fehlanpassung (z.B. keine Übereinstimmung zwischen
ENTRY und EXTERN) gibt, müssen alle Prozeduren mit dem Kompilieren neu begonnen werden.
•
Mehrere Dateien müssen zur selben Zeit bearbeitet werden.
2.2 Bewegung zu mehreren gleichweit voneinander entfernten Punkten
Der Befehl PALET wird, wie unten dargestellt, für Bewegungen zu mehreren gleichweit voneinander
entfernten Punkten eingesetzt.
Definieren von Paletten
Format:
PALETn Pa,Pb,Pc [Anzahl der 1. Abschnitte],[Anzahl der 2.
Abschnitte]
n: Anzahl Paletten (0 bis 15)
a, b ,c: Anzahl Punkte (0 bis 99)
[Anzahl der 1. Abschnitte]: Anzahl der Abschnitte zwischen Pa und Pb
[Anzahl der 2. Abschnitte]: Anzahl der Abschnitte zwischen Pa und Pc
<Beispiel>
PALET1, P1,P2,P3,5,3
Wenn die Eingaben wie im Beispiel vorgenommen werden, werden
die Palette und die Anzahl der Punkte eingestellt, wie unten
dargestellt.
* Die Ecke der Palette, die durch drei Punkte gestaltet wird, muß bei „Pa“ liegen.
* Wenn die drei Standardpunkte keinen rechten Winkel ergeben, wird die Palette deformiert.
* Die Z-Koordinaten werden durch drei gleichweit voneinander entfernte Punkte in einer Ebene
geformt.
Einzeilige Palette
Für eine einzeilige Palette wird das Einrichten an den zwei Punkten an beiden Enden vorgenommen und
wird daher, wie folgt, definiert:
Format: PALETn P1,P2,P1 [Anzahl der Abschnitte],1
<Beispiel>
PALET1, P1,P2,P1,5,1
79
Positionsbestimmung innerhalb der Palette
Vor der Programmausführung geben Sie direkt den Befehl JUMP ein und bewegen den Roboter zu
jedem Punkt innerhalb der Palette und bestimmen so die richtige Position. Wenn Sie eine Zeichnung der
Palette angelegt haben, erleichtert dies die Überprüfung der Bewegung zu jedem Punkt.
Bestimmen Sie die Position innerhalb der Palette wie folgt:
Format:
PALETn (C)
n: Anzahl Paletten (0 bis 15)
C= Anzahl der Gitter
G HINWEIS
Wenn die Palette nicht definiert ist, tritt ein Fehler auf. Stellen Sie die drei Punkte
ein, bevor Sie das Programm ausführen.
<Beispiel> Wechsel von Palette 1 zu Palette 2
10
FUNCTION MAIN
20
PALET1 P1,P2,P3,3,5
30
PALET2 P11,P12,P13,5,3
40
FOR I=1 TO 15
50
JUMP PALET1(I)
60
ON 1 ; WAIT 0,5
70
JUMP PALET2(I)
80
OFF 1 ; WAIT 0,5
90
NEXT I
100 FEND
Die Nummern der E/A-Ausgangsschnittstellen zum Bedienen des Greifers und die Anzahl der
Palettenabschnitte sollten individuell eingestellt werden.
80
2.3 Techniken zum Verkürzen der Zykluszeit
SPEL III stellt mehrere Befehle bereit, um die Zykluszeit zu verkürzen. Es gibt vier Methoden, die
Zykluszeit zu verringern:
•
Bewegen zum höchstmöglichen Punkt
•
Ausführen übereinstimmender Prozeduren
•
Beseitigen überflüssiger Bewegungen
•
Beseitigen überflüssiger Positionen
Benutzen einer Bogenbewegung
Eine horizontale Bewegung wird während einer vertikalen Bewegung mit Hilfe des Befehls JUMP
ausgeführt.
Die Form der Bewegung kann frei gewählt werden:
Vertikal ansteigende Strecke (a: mm)
Vertikale Abwärtsbewegung (b: mm)
Horizontale Bewegungshöhe (z: mm)
Befehle: JUMP, ARCH, LIMZ
Freies Einstellen des Zeitverhaltens bei Abschluß der Positionierung
Definiert den Wert für den Bewegungsendpunkt und führt den nachfolgenden Befehl vor dem Zielpunkt
aus. Die endgültige Position der Bewegung ändert sich nicht, auch wenn der Befehl FINE verwendet
wird. Lediglich das Timing für das Ausführen des nächsten Befehls wird erhöht.
Wählen Sie den besten Wert für Ihr System: ca. 500 bis 1000 Pulse für normale und 100 Pulse für
Montageprozeduren.
Befehl: FINE
Parallele Prozesse
Während der Anwendungen können anstelle Ihrer Auswahl die Ein- und Ausgaben der E/A und RS232C ausgeführt werden.
<Beispiel>
•
•
Öffnen und Schließen des Greifers während der pick-and-place-Anwendung (siehe
Abbildung)
Ein- und Ausschalten der Düse für Schreibvorgänge
Befehl: !...!
81
Bedingter Stop während der Bewegung
Wenn die Eingabebedingungen während der Bewegung eingerichtet sind, verlangsamt der Roboter
sofort und hält an. Im Beispiel zeigen wir, daß der Stop auftritt, wenn die Bedingung „kein Werkstück“
während der pick-and-place-Anwendung anliegt. Wenn der Stop durch die Abwesenheit des Werkstücks
auftritt, wird eine überflüssige Bewegung durch wiederholtes Versuchen verhindert.
Befehle:
<Beispiel>
JUMP, SENSE, TILL
JUMP mit TILL-Bedingung
Montageanwendung mit langsamer Geschwindigkeit
Wenn es während der Montage notwendig ist zu verlangsamen, sieht man oft Programmierungen mit
JUMP- und GO-Befehlen, wie in Beispiel 1. Wird jedoch die Positionierung auf einmal durchgeführt, ist
ein Einzel-Bewegungs-Befehl nicht passend, auch wenn FINE angewendet wird.
<Beispiel 1> JUMP PN
GO Pm
In diesem Fall ist es sinnvoller, die Zykluszeit mit geschickter Verwendung des Befehls ACCEL zu
verkürzen, bevor der JUMP-Befehl angewendet wird.
<Beispiel 2> ACCEL 100,100, 100,100, 100,10 ;JUMP Pm
Vereinigte Befehle
Fünf Beispiele sind oben angegeben. Die vereinigten Befehle sind unten aufgeführt. Weitere
Informationen erhalten Sie im SPEL III Referenzhandbuch.
82
•
Bewegen mit größtmöglicher Geschwindigkeit: SPEED, SPEEDS, ACCEL, ACCELS, WEIGHT
•
Ausführen übereinstimmender Prozeduren
!...! (Parallelprozeß), Multitasking
•
Beseitigen überflüssiger Bewegungen
ARCH, LIMZ, SENSE, TILL
•
Beseitigen überflüssiger Positionen
PASS, FINE, CMOVE, CARC
2.4 Benutzen von Positionsdaten
Wenn Sie zwischen Positionsdaten umschalten müssen, weil ein Einzelprogramm zwei oder mehr
Werkstücke bearbeitet, ist es sinnvoll, die werkstückspezifischen Daten in den Positionsdaten zu
speichern. Es ist z.B. sinnvoll, wenn sich zwei verschiedene Arten von Werkstücken in der Anzahl von
Werkstücken, die in einer Einzelpalette behandelt werden können, unterscheiden, oder wenn die
Bearbeitungsgeschwindigkeit in Abhängigkeit von dem zu bearbeitenden Werkstück variiert.
Um Koordinatenwerte von den Punktdaten zu erhalten, benutzen Sie die Funktionen CX(Pn), CY(Pn),
CZ(Pn) und CU(Pn).
<Beispiel>
Geben Sie die Anzahl der Werkstücke als X von Punkt Nr. 190 der 1. Werkstück-Punktdatei ein (z.B.:
01WORK.PNT). Geben Sie außerdem die Bearbeitungsgeschwindigkeit in X, Y, Z und U von Nr. 191
ein.
M
P190=10,0,0,01
P191=100,100,20,50
Wie für Werkstück 1 geben Sie die Anzahl der Werkstücke als X von Punkt Nr. 190 der 2. WerkstückPunktdatei ein (z.B.: 02WORK.PNT). Geben Sie außerdem die Bearbeitungsgeschwindigkeit in X, Y, Z
und U von Nr. 191 ein.
M
P190=12,0,0,01
P191=80,80,20,50
Sie erreichen die Daten in dem Programm wie folgt:
M
1100 COUNT = CX(P190)
1110 SPD1 = CX(P191);ACL1 = CY(P191)
Erreichen der Anzahl von Werkstücken, die
von P190 in eine Palette geladen werden soll.
Erreichen der Geschwindigkeit und
Beschleunigung/Verzögerungswerte von P191.
1120 SPD2 = CZ(P191);SPD3 = CU(P191)
M
1200 SPEED SPD1; ACCEL ACL1,ACL1
M
1500 FOR I = 1 TO COUNT
1510
JUMP PALET1(I)
M
1590 NEXT
M
1700 SPEED SPD2
1710 GO P10
1720 SPEED SPD1
M
1900 SPEED SPD3
1910 GO P11
1920 SPEED SPD1
M
83
3. Fehlerbeseitigung (Debuggen)
3.1 Fehlerbeseitigung im Multitasking
Komfortable Befehle zur Fehlerbeseitigung
SPEL II verfügt über viele Befehle, die bei der Fehlerbeseitigung in Multitasking-Programmen hilfreich
sind. Diese Befehle werden im Befehlsmodus des SPEL Editors oder im Monitorfenster von SPEL for
Windows ausgeführt.
•
XQT:
Taskausführung
•
TSTAT:
Anzeige des Taskstatus
•
TON/TOFF:
Anzeige der ausgeführten Zeilennummer an der Steuerung und dem PC.
•
PRINT:
Anzeige von Zeichenketten, Variablen, E/A, Speicher E/A.
XQT-Befehl
Der XQT-Befehl führt ein Programm aus.
Wenn der Befehl per PC eingegeben wird, wird FUNCTION...FEND am Anfang des Programms als
Task 1 ausgeführt. Der XQT-Befehl ist abgeschlossen, wenn Task 1 beendet ist. Daher kann der nächste
Befehl erst dann eingegeben werden, wenn dieser Befehl beendet ist.
Mit dem XQT-Befehl können Sie die Tasknummer des auszuführenden Programms, die FUNCTION
und die Zeilennummer festlegen. Sie können einen Teil des Programms durch Eingabe der
Zeilennummer ausführen lassen, um z. B. Einzelheiten zu überprüfen.
Sie können auch den Befehl TSTAT verwenden (siehe unten) wenn Sie den Task festlegen.
<Beispiel 1>
>XQT !2,MAIN
Start der FUNCTION MAIN als Task 2
>
Es ist möglich, Befehle einzugeben, während das Programm abläuft.
<Beispiel 2>
>XQT !2,MAIN,2100-2200 Ausführen der Zeilen 2100 bis 2200 der FUNCTION MAIN.
>
TSTAT-Befehl
Wenn der TSTAT-Befehl ausgeführt wird, wird der Status der Tasks 1 bis 16 angezeigt. Mit diesem
Befehl können Sie die Ausführungsmodi aller Tasks anzeigen lassen.
Im Befehlsmodus des SPEL Editors können Sie die Tasknummern von 2 bis 16 mit Hilfe des Befehls
XQT festlegen und das Programm ausführen.
<Beispiel>
>XQT !2,MAIN
>TSAT
Task
1
Status
QUIT
Zeile
0
Task
9
Status
QUIT
Zeile
0
84
2
QUIT
100
10
QUIT
0
3
QUIT
250
11
QUIT
0
4
QUIT
0
12
QUIT
0
5
QUIT
0
13
QUIT
0
6
QUIT
0
14
QUIT
0
7
QUIT
0
15
QUIT
0
8
QUIT
0
16
QUIT
0
Zeigt die letzte Zeilennummer, die vor dem Status jeder Task, QUITE, RUN, HALT und TSTAT
ausgeführt wurde.
In SPEL für Windows können Sie den Status jedes Tasks im Fenster [Task Manager] überprüfen.
Weitere Informationen erhalten Sie im SPEL für Windows Handbuch.
TON/TOFF-Befehl
Sie können die Programmreihenfolge ab der gegenwärtig ausgeführten Zeilennummer herausfinden. Es
gibt eine LED an der Vorderseite der Steuerung, die die Zeilennummer anzeigt. Im Normalfall wird die
Zeilennummer der Task 1 hier angezeigt. Wenn Sie den TON-Befehl anwenden, können Sie die
Zeilennummern für andere als Task 1 anzeigen lassen.
<Beispiel>
>XQT !2,MAIN
[1010]
[1020]
Zeigt die Zeilennummer, die ausgeführt wird.
M
PRINT-Befehl
Die einfachste Technik zur Fehlerbehebung ist die Anzeige der Zeichenketten in der Mitte des
Programms und deren Überprüfung. PRINT ist ein Befehl zum Anzeigen von Zeichenketten,
Variablenwerte, Funktionswerte, etc. an der Programmiereinheit.
<Beispiel>
1000 FUNCTION MAIN
1010 XQT !2,TASK2
1020 PRINT “Start Task2“
M
1200
1210
A = A + B + C
PRINT “A = “,A
M
Folgendes wird angezeigt, wenn Sie das Programm ausführen:
Start Task2
A = 100
85
4. Stapelverarbeitung
In MS-DOS gibt es eine Verarbeitungsmöglichkeit, die „Stapelverarbeitung“ genannt wird. Diese
Stapelverarbeitung führt automatisch Befehle und Anweisungen in der angegebenen Reihenfolge aus.
Die Datei, die die auszuführenden Befehle enthält heißt Stapelverarbeitungs- oder Stapeldatei.
SPEL III bietet die Verwendung von Stapeldateien wie MS-DOS. SPEL III Befehle und Anweisungen
können in der Stapeldatei beschrieben werden.
Die Dateierweiterung der Stapeldatei muß BAT sein. Durch diese Erweiterung wird sofort erkannt, daß
es sich um eine Stapeldatei handelt, und die Befehle und Anweisungen, die in ihr enthalten sind, werden
automatisch ausgeführt.
Beim Ausführen der Stapelverarbeitung geben Sie den Namen der Stapeldatei wie einen Befehl ein. Zur
Ausführung der Datei ist es jedoch nicht erforderlich, die Erweiterung (.BAT) mit einzugeben. Zum
Bearbeiten der Stapeldatei kann der Befehl EDIT benutzt werden. Weitere Informationen zum EDITBefehl erhalten Sie im SPEL III Referenzhandbuch.
4.1 Befehle zur Stapelverarbeitung
In SPEL III gibt es einen Befehl „ECHO“, mit dem die Anzeige der Befehle und Meldungen während
der Stapelverarbeitung gesteuert werden kann. Er hat folgendes Format:
Format:
ECHO ON
ECHO OFF
ECHO [Meldung]
Im Allgemeinen werden die festgelegten Befehle an der Konsole angezeigt. Der Befehl ECHO steuert
diese Anzeige. Wenn der Befehl, der ausgeführt wird, angezeigt werden soll, geben Sie „ECHO ON“
ein, soll er nicht angezeigt werden, geben Sie „ECHO OFF“ ein. Im Normalfall ist die Anzeige im
„ECHO ON“-Status. D.h., auch wenn Sie ECHO OFF eingeben, ändert sich der Status nach Ausführung
der Stapeldatei automatisch in ECHO ON.
Wird „ECHO [Meldung]“ eingegeben, wird die Meldung an der Konsole dargestellt. Auch wenn ein
ECHO OFF-Zustand definiert ist und die Meldung angezeigt werden kann, ist es sinnvoll, die Meldung
über den ausgeführten Befehl als Verzeichnis des ausgeführten Befehls angeben zu lassen. In [message]
können alle Eigenschaften außer dem Steuerungscode (character codes 00H zu 1FH) verwendet werden.
Im Falle der MS DOS-Anwendung, wenn der ECHO-Befehl ohne ON, OFF und [message] eingegeben
ist, wird der aktuelle ECHO-Status zugeordnet. SPEL III bietet diese Funktion jedoch nicht an. Wenn
Sie hier nur ECHO eingeben, werden die Leerzeichen deshalb als Meldung verstanden, und eine Zeile
wird gewechselt.
<Beispiel> Dateiname „ECHO.BAT“.
10 ECHO OFF
20 ECHO MESSAGE1
30 ECHO
40 ECHO ON
50 ECHO MESSAGE2
Wenn Sie das Beispielprogramm ausführen, wird das Ergebnis wie folgt aussehen:
>ECHO
MESSAGE1
`Meldung wird angezeigt
`Veränderung der Zeile durch den Befehl ECHO
MESSAGE2
86
`Meldung wird angezeigt
Was den SPEL III-Befehl „ECHO“ von dem unter MS-DOS unterscheidet, ist, daß im ECHO ON-Status
die ECHO-Anzeige nicht erscheint. Zum Beispiel in dem oben dargestellten Beispiel: Wenn dieselbe
Stapeldatei unter MS-DOS läuft, werden die Ergebnisse wie folgt aussehen:
>ECHO
ECHO OFF
MESSAGE1
`1)
ECHO <OFF>
`2)
ECHO MESSAGE2
`3)
MESSAGE2
1.
Bevor Sie ECHO OFF ausgeführt haben, war der ECHO ON-Status eingestellt. Also wird dieser
Status angezeigt.
2.
Der gegenwärtige Einstellungsstatus von ECHO wird angezeigt.
3.
Anzeige gemäß des ECHO ON-Status. (Die Zeichenkette von ECHO ON wird nicht angezeigt,
solange der ECHO OFF-Status eingestellt ist.)
Weitere Informationen zur Stapelverarbeitung und zur Anzeige der Stapeldateien erhalten Sie im MSDOS-Handbuch.
87
4.2 Stapeldatei
Es gibt viele Befehle wie z.B. den COMMAND-Befehl, die nicht unter SPEL III ausgeführt werden
können. Wenn diese Befehle aber in einer Stapeldatei beschrieben werden, dann können diese Befehle
ausgeführt werden.
Herstellen einer Stapeldatei
Wenn Sie eine Stapeldatei editieren, dann müssen Sie zuerst den EDIT-Modus eingeben bei
gleichzeitiger Spezifizierung des EDIT-Befehls.
Siehe dazu das Kapitel 6.2 „Editieren von Dateien“ in diesem Teil des Handbuches.
Die Stapeldatei wird mit der Erweiterung BAT versehen. Eine Datei kann nicht mit demselben Wort wie
ein SPEL-Befehl bezeichnet werden, da der Befehl Vorrang hat.
Direkt wirksame Befehle können in einer Stapeldatei definiert werden. Solche Befehle werden in einer
bestimmten Reihenfolge ausgeführt. Sie können während der Arbeit mit einer Stapeldatei keine anderen
Stapeldateien aufrufen.
88
5. Automatische Programmausführung bei Einschalten
der Spannungsversorgung
Es ist möglich, die Programmausführung automatisch zu starten, wenn die Spannungsversorgung
eingeschaltet wird.
Diese automatische Ausführung kann erreicht werden durch das Erstellen einer „AUTO.BAT“-Datei
oder einer „IPL.OBJ“-Datei in dem Wurzelverzeichnis der aktuellen Steuerung.
5.1 Die AUTO.BAT-Datei
Erstellen Sie diese Datei auf demselben Weg wie eine gewöhnliche Stapeldatei mit dem EDIT-Befehl.
Aufgrund der Benennung dieser Datei mit „AUTO.BAT“ sind Sie in der Lage, die Befehle, die in der
Datei gespeichert sind, automatisch auszuführen. (Zu Details des EDIT-Befehls siehe auch Kapitel 6.2
„Editieren von Dateien“.)
<Beispiel>
Ein Beispiel, die ausführbare Datei „MAINGRP“ automatisch nach dem Drehen des
Reglers auszuführen
>EDIT AUTO.BAT
New file
>10 XQT „MAINGRP“
>END
Edit End...file save
>
Diese Stapeldatei kann unabhängig vom Startmodus ausgeführt werden.
5.2 Das IPL-Programm
Beim Erstellen der Datei mit der Erweiterung IPL, kann XQT“IPL“ ausgeführt werden, wenn die
Spannungsversorgung eingeschaltet ist. Der Start-Modus muß jedoch auf AUTO-Modus eingestellt sein.
89
6. Systemkonfigurationsdatei
6.1 CNFG.SYS-Datei
Um den Computer effizient zu nutzen müssen Sie Systeminformationen in Übereinstimmung mit der
Hardware und dem genutzten Programm definieren. Diese Informationen werden in der „CNFG.SYS“Datei beschrieben. Daneben wird in dieser Datei die Systemumgebung spezifiziert.
Die Anforderungen, die in SPEL III definiert werden können sind die Kapazität des
Fehlerhistorienspeichers, die Kapazität der Zeilenhistorie jedes Tasks und die maximale Anzahl der
Benutzertasks.
Wenn die „CNFG.SYS“-Datei nicht existiert, werden Standardwerte für die Systemkonfiguration
angenommen.
Die „CNFG.SYS“-Datei muß im Stammverzeichnis registriert werden. Selbst wenn die „CNFG.SYS“Datei in einem anderen Verzeichnis existiert wird sie nicht beachtet werden.
TASK=k
Spezifiziert die verfügbare Anzahl der Benutzertasks in k.
k: Ganze Zahl zwischen 1 und 16
ERRBUF=m
Speichert die Fehlerhistorie bis m.
m: Ganze Zahl zwischen 1 und 20
LINBUF=n
[ angenommener Standardwert:16]
[angenommener Standardwert:20]
Speichert die Zeilenhistorie jedes Tasks bis n.
n: Ganze Zahl zwischen 1 und 512
[angenommener Standardwert:10]
Wie bei den oben angegebenen Anforderungen wird der Systemspeicherbereich der Speicherkapazität in
Byte wie unten angegeben zugewiesen.
Benötigter Speicher [Einheit: Byte]
Benutzertask
(Spezifizierte Anzahl) x (ungefähr 1600)
ERRBUF
(Spezifizierte Anzahl) x 8
LINBUF
(Spezifizierte Anzahl) x 6 x (Anzahl der durch TASK spezifizierten Tasks)
Der Systemspeicherbereich wird benutzt, um den benötigten RAM zu sichern, der für die laufenden
Tasks benötigt wird. Daher kann es sein, daß, wenn der „ERRBUF“ oder „LINBUF“ zu groß eingestellt
sind, die Tasks nicht laufen. Achten Sie darauf, nicht mehr Platz als notwendig zu spezifizieren.
Stellen Sie außerdem sicher, daß „TASK=k“ in der CNFG.SYS-Datei vor der Zeile „LINEBUF=n“
steht. Ist dies nicht der Fall, wird der für LINBUF gesicherte Bereich der für 16 Tasks sein.
90
6.2 Editieren von Dateien
SPEL III bietet für das Bearbeiten von Textdateien ist (ausgenommen Programmdateien) den EDITBefehl an. Das Format des EDIT-Befehls ist wie folgt;
Format: EDIT [Pfadname][Dateiname]
Wenn Sie den EDIT-Befehl benutzen, wird in den Editmodus gewechselt und die Dateien können
bearbeitet werden. Um eine Datei zu editieren, erstellen Sie Zeilen mit Zeilennummern, genau wie ein
Programm erstellt wird. Es ist nicht notwendig, „FUNCTION (Funktionsname)“ und „FEND“ zu
beschreiben.
Im Editmodus ist es möglich, die unten aufgelisteten Befehle zu benutzen.
LIST, RENUM, DELETE(DEL), NEW, FREE, COPY, RENAME(REN), CHDIR(CD),
RMDIR(RD), MKDIR(MD), RENDIR, DIR, QUIT, END
Wenn Sie in den Editiermodus wechseln, geben Sie den Pfad- und den Dateinamen an. Dann, wenn der
Dateiname im Verzeichnis existiert, wird die Datei gelesen.
END of input file
Die oben gezeigte Meldung erscheint. Existiert der spezifizierte Dateiname nicht,
NEW FILE
erscheint die oben dargestellte Meldung. Das Editieren ist dann ist möglich.
Um den Editiermodus wieder zu verlassen, können Sie den QUIT-Befehl benutzen (Ende ohne
speichern)oder END (es wird gespeichert und dann beendet). Die folgenden Meldungen werden in den
jeweiligen Fällen erscheinen.
>QUIT
Edit End...
>END
Edit End...file save
>
Die Programmeditierungsbereiche für den Editiermodus und für das Roboterprogramm sind
unterschiedlich. Daher wird das Programm im Roboterprogrammierbereich nicht durch das Editieren
einer Datei im Editiermodus behindert.
EDIT-Befehle löschen Zeilennummern, wenn sie Daten speichern, und wenn sie Dateien lesen, werden
die Zeilennummern wie 10, 20, 30....hinzugefügt. Daher weichen die Zeilennummern vor und nach dem
Speichern voneinander ab.
91
<Beispiel>
>EDIT CNFG.SYS
New file
>10 TASK=8
>20 ERRBUF=20
>30 LINBUF=256
>END
Edit End...file save
>
G HINWEIS
Wenn die Palette nicht definiert ist, tritt ein Fehler auf. Stellen Sie die drei Punkte
ein, bevor Sie das Programm ausführen.
Die Zeichenanzahl in einer Zeile ist bis zu 79, einschließlich der Zeilennummer, zulässig. Achten Sie
darauf, daß die Anzahl der gelesenen Zeichen (Zeilennummern nicht eingeschlossen) 74 ist, alles
darüber hinaus wird abgeschnitten.
Die maximale Dateigröße, die editiert werden kann, ist 6 Kbyte.
92
7. RS-232C
7.1 Übersicht über die RS-323C
Die Robotersteuerungen SRC-300/310A/320 haben eine RS-232C-Schnittstelle als Standardschnittstelle,
und die Kommunikation wird durch die SPEL III Roboterprogrammiersprache unterstützt. Die RS232C-Schnittstelle kann für die folgenden Kommunikationsarten genutzt werden.
•
Kommunikationseingang für SPEL-Editor oder SPEL für Windows
•
Kommunikation zwischen Robotern
•
Kommunikation mit Benutzereinrichtungen
•
Kommunikation mit einem Hauptrechner
Konfiguration
Weil SPEL III asynchrone Kommunikation benutzt, müssen die verschiedenen
Kommunikationseinstellungen (wie der Kommunikationsmodus, Protokoll und Baudrate) unter allen
Kommunikationseinrichtungen dieselben sein. Diese Gruppe von Einstellungen wird „Konfiguration“
genannt.
Kommunikationsmodus
Der Kommunikationsmodus beinhaltet Datenbit-, Paritäts- und Stop-Bit-Einstellungen, die für die
Übertragung von Daten per RS-232C-Schnittstelle gemacht sind.
Protokoll
Das Protokoll ist die Folge, in der die Daten zwischen den Kommunikationsstationen transferiert
werden. SPEL III unterstützt „BASIC Protokoll“ und „TTY Protokoll“-Einstellungen. Das „BASIC
Protokoll“ wird empfohlen, um die Zuverlässigkeit der Kommunikationsdaten zu sichern.
Konfiguration für SPEL III
Die SPEL III-Konfiguration kann über die folgenden Befehle eingestellt werden.
Format: CONFIG #[port no.],[mode no.],[protocol no.],[timeout period],[baud rate no.]
Schnittstellennummer 20 oder 21 (ganze Zahl zwischen 20 und 23 für erweiterte
:
Eingänge)
Modusnummer.
Ganze Zahl zwischen 0 und 47
Protokollnummer.
Ganze Zahl zwischen 0 und 19
Baudratenummer.
Ganze Zahl zwischen 0 und 7
Die folgenden Werte sind als Anfangswerte für den RS-232C-Eingang der Steuerung eingestellt.
Dieselben Werte werden auch bei der Ausführung des VERINIT-Befehls eingestellt.
Modusnummer:
2 (7 Bits, gerade Parität, 1 Stop Bit)
Protokollnummer:
1 (BASIC Protokoll, zweite Station)
Timeoutzeitspanne:
3 (3 Sekunden Timeoutzeitspanne)
Baudratennummer:
0 (9.600 bps)
93
Schnittstellennummer
Dies ist die Schnittstellennummer der RS-232C, die auf der Rückseite der Steuerung angebracht ist.
Modusnummer
Modusnummer
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Zeichenbits
Parität
Stop Bits
7
7
7
7
8
8
8
8
7
7
7
7
7
8
8
8
8
8
-
EVEN
ODD
EVEN
ODD
NONE
NONE
EVEN
ODD
EVEN
–
ODD
–
NONE
NONE
NONE
EVEN
EVEN
ODD
ODD
NONE
-
2
2
1
1
2
1
1
1
1,5
1,5
2
1
1,5
2
1,5
2
1,5
1,5
-
Modusnummer
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Zeichenbits
Parität
6
6
6
6
6
6
6
6
6
5
5
5
5
5
5
5
5
5
-
EVEN
EVEN
EVEN
ODD
ODD
ODD
NONE
NONE
NONE
EVEN
EVEN
EVEN
ODD
ODD
ODD
NONE
NONE
NONE
-
Stop
Bits
2
1,5
1
2
1,5
1
2
1,5
1
2
1,5
1
2
1,5
1
2
1,5
1
-
Zeichenbits
Dies ist die Anzahl der Bits, die benutzt wird, um Textzeichen während der Datenübermittlung
darzustellen.
Parität
Das Paritätsbit wird benutzt, um die Zuverlässigkeit der Datenkommunikation zu sichern.
EVEN:
ODD:
NONE:
Ein Paritätsbit wird hinzugefügt, so daß die Gesamtzahl von 1 in der Bit-Zeichenfolge eine
gerade Zahl wird.
Ein Paritätsbit wird hinzugefügt, so daß die Gesamtzahl von 1 in der Bit-Zeichenfolge eine
ungerade Zahl wird.
Es wird kein Paritätsbit hinzugefügt.
Stopbits
Das Stopbit zeigt das Ende der Datenübermittlung an. Tatsächlich zeigt es einen Bitzeitwert an, d.h.
„1,5 Stopbits“ bedeutet die benötigte Zeit zur Übertragung von 1,5 Bits.
94
Protokollnummer
Protokollnummer
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
G HINWEIS
Protokoll
TTY
BASIC
BASIC
TTY
TTY
TTY
TTY
TTY
BASIC2
BASIC2
TTY
BASIC
BASIC
TTY
TTY
TTY
TTY
TTY
BASIC2
BASIC2
Station
2
1
2
1
2
1
2
1
Funktionskontrolle des Speichers
None
XON/XOFF
XON/XOFF
XON/XOFF
None
None
CS
CS
CS
CS&XON/XOFF
CS&XON/XOFF
CS&XON/XOFF
CS
CS
CS
CS
Terminator
CR
CR
CR-LF
LF
CR-LF
LF
CR
CR
CR-LF
LF
CR-LF
LF
-
Protokollnummern von 10 bis 19 sind in der Version 3.2 und früher von SPEL III
nicht möglich.
Timeoutzeitspanne
Beim Verwenden des BASIC-Protokolls tritt ein Kommunikationsfehler (Error Code 31) auf, wenn die
Daten nicht in der spezifizierten Zeitspanne empfangen werden. Diese spezifizierte Zeitspanne wird
„Timeoutzeitspanne“ genannt.
Baudratennummer
Nr. der Baudrate
Baudrate (bps)
0
9600
1
4800
2
2400
3
1200
4
600
5
300
6
19200
7
38400
95
Computerkonfiguration
Der Computer, der über eine RS-232C-Schnittstelle angeschlossen ist muß dieselbe
Kommunikationskonfiguration haben, wie die Robotersteuerung.
Die Methode zur Einstellung der Konfiguration variiert abhängig vom verwendeten Computer. Prüfen
Sie die Handbücher des verbundenen Computers und sein Betriebsystem wie z.B. MS-DOS (*1), führen
Sie dann die selben Konfigurationseinstellungen am Computer und an der Steuerung durch.
<Beispiel>
Computer: IBM PC (oder kompatibel)
Betriebssystem: MS-DOS
Der Gerätetreiber von MS-DOS muß möglicherweise installiert werden, um eine Kommunikation
über die RS-232C zu ermöglichen. Installieren Sie den Treiber, indem Sie folgende Zeile in die
CONFIG.SYS-Datei schreiben:
DEVICE=ANSI.SYS
RS-232C-Kommunikation ist jetzt mit Nutzung der Diskette möglich, auf der das Gerät, wie oben
gezeigt, installiert wurde. Sie müssen allerdings immer noch die Kommunikationkonfiguration
einstellen, bevor Sie die RS-232C-Kommunikationen ausführen können.
Stellen Sie sicher, daß die Konfigurationseinstellungen von Computer und Steuerung identisch sind.
Wenn Sie zum Beispiel die Anfangssteuerungseinstellungen benutzen, stellen Sie die folgenden
Konfigurationen an der DOS-Aufforderung des Computers auf.(A>).
A>MODE COM1 : 9600, E, 8, 2
(*1)
96
MS-DOS ist ein eingetragener Markenname der Microsoft Corporation.
TTY Protokoll und XON/XOFF Steuerung
TTY Protokoll
Das TTY-Protokoll wird wie „kein Protokoll“ behandelt, da es ein Protokoll ist, das einfach nur die
Daten sendet, ohne zu überprüfen, ob der Empfänger bereit ist oder nicht.
TTY fügt den Daten CR(&HOD) als Terminator zu. Wenn Übertragungsfehler oder andere Probleme
auftreten, ist es unmöglich, die übermittelten Daten wiederzufinden, so daß man sehr vorsichtig bei der
Benutzung von TTY sein muß.
Statt dessen empfehlen wir das BASIC-Protokoll zu benutzen, da es die Überprüfung des Bereit-Status
und die Fehlerfindung wie die Paritätsprüfung bereitstellt, die hilft, eine zuverlässige Kommunikation
sicherzustellen.
Details des BASIC-Protokolls werden auf der nächsten Seite beschrieben.
XON/XOFF Steuerung
Unter Verwendung des TTY-Protokolls, gibt es einen Überlauf des Empfangsspeichers, wenn die
Datenverarbeitung an der Eingangsseite nicht reibungslos funktioniert. Die XON/XOFF-Steuerung ist
eine Kontrollfunktion, die einen solchen Überlauf verhindert.
Ablaufdiagramm der XON/XOFF-Steuerung
97
BASIC-Protokoll
BASIC-Protokoll
Die folgenden Regeln wurden für das BASIC-Protokoll erstellt, um eine größere Zuverlässigkeit zu
erreichen.
•
Bevor die sendende Seite Daten übertragen kann, muß bestätigt werden, daß die empfangende Seite
bereit ist, die Daten zu empfangen.
•
Ein Paritätsbit wird den zu übermittelnden Daten hinzugefügt. Die empfangende Seite nutzt das
Paritätsbit, um nach Übertragungsfehlern zu suchen und der sendende Seite zu melden, wenn ein
Fehler entdeckt wurde.
Diese grundlegenden Regeln werden die „Übertragungssteuerung“ genannt. Das BASIC-Protokoll
benutzt folgende Codes, um die Übertragungssteuerung zu implementieren.
Bezeichnung
Code
Name
STX
&H02 Start des Textes
ETX
&H03 Ende des Textes
EOT
&H04 Ende der Übertragung
ENQ
&H05 Untersuchung
ACK
&H06 Bestätigung
NAK
&H15 Negative Bestätigung
Ablaufdiagramm des BASIC Protokoll
(*1)
BCC: Steht für „Block Check Character“. Dieser Code wird benutzt, um Übertragungsfehler zu
finden, die vom horizontalen Paritätswert des Textes und des ETX-Codes bestimmt werden (ein Wert,
der den Text und den ETX-Code einschließt und wie ein ausschließliches OR berechnet wird).
98
<Beispiel>
Wenn der Text „RUN“ gesendet wird (&H52,&H55,&H4E)
BBC
= (R) XOR (U) XOR (N) XOR (ETX)
= (&H52) XOR (&H55) XOR (&H4E) XOR (&H03) = &H4A
R 0101 0010
U 0101 0101
N 0100 1110
XOR)ETX 0000 0011
BCC= 0100 1010=&H4A
BASIC2 Protokoll
Der einzige Unterschied im BASIC2 Protokoll ist, daß nachdem die sendende Seite eine ACK-Code von
der empfangenden Seite erhält, um einen normalen Empfang zu bestätigen, sendet die sendende Seite
einen EOT-Code.
Ablaufdiagramm des BASIC2-Protokolls
Station (Kollision gesendeter Daten)
Wenn zwei Leute gleichzeitig eine Konversation zur gleichen Zeit beginnen, ist es für keinen von beiden
möglich, eine Nachricht zu übermitteln. Einer muß aufhören zu reden und dem anderen erlauben, zu
sprechen. Genauso kann es bei der Nutzung vom BASIC Protokoll passieren, daß beide Seiten eine
Datenübermittlung zur selben Zeit beginnen. In diesem Fall kollidieren die beiden zu übermittelnden
Datensätze miteinander. Um genau zu sein, werden zwei ENQ-Codes zur selben Zeit gesendet, und
diese beiden kollidieren miteinander.
Um solche Kollisionen zu vermeiden, wird den beiden Stationen entweder der „erste-Station-Status“
oder der „zweite-Station-Status“ zugewiesen. Wenn eine Kollision erfolgt, sendet die „erste Station“
zuerst die Daten noch einmal. Die „zweite Station“ hält die versuchte Datenübermittlung im
Pausenzustand, bis sie die Übertragung der ersten Station erhält und sendet dann die Daten erneut.
99
Übertragungssteuerung per CS-Pin
Wie schon zuvor erwähnt, tritt ein Überlauf des Datenspeichers ein, wenn die Datenverarbeitung an der
Eingangsseite nicht reibungslos funktioniert. Die XON/XOFF-Steuerung des TTY Protokoll stellt eine
Methode dar, um einen solchen Überlauf durch Kontrolle des „Speicher beschäftigt“-Zustands zu
verhindern. Dies wird durch Übertragen und Empfangen von Softwarecodes (DC1 und DC3)
ermöglicht. Der CS-Pin stellt eine Hardwaremethode bereit, die den „Speicher beschäftigt“-Zustand
steuert.
Der CS-Pin wird der RS-232C-Schnittstelle Pinnummer 5 zugeordnet, das das Eingabesignal, das den
„frei zur Sendung“-Status bestätigt, kontrolliert. Wird der CS-Eingang auf „L“ eingestellt, können die
Daten, für die die Übertragung ermöglicht wurde, ausgegeben werden. Ist der Eingang auf „H“ gestellt,
wird die Übertragung unterdrückt (nicht möglich).
Im Normalfall speisen die Steuerung und das andere angeschlossene Zubehör ihre RS-Ausgabe
(Pinnummer 4, die immer auf „L“ gestellt ist) direkt in ihren CS-Pin, wenn die CS-Steuerung nicht
benutzt wird, so daß die Übertragung durchgehend möglich ist (siehe in der Beschreibung unten). Wenn
Sie die CS-Steuerung benutzen, ist der CS-Ausgang des verbundenen Zubehörs mit dem CS-Pin der
Steuerung verbunden. Dieser Ausgang ist auf „L“ gestellt , um eine Übertragung zu ermöglichen und
auf „H“, um die Übertragung nicht zu unterdrücken.
G HINWEIS
Für die Protokollnummern 0-9 kann der CS-Pin nicht zur Übertragungssteuerung
genutzt werden: Sogar wenn der CS-Eingang auf „H“ gestellt ist, kann es die
Übertragung nicht steuern.
G HINWEIS
Eine Übertragungssteuerung durch den CS (frei zur Sendung) Pin ist im SPEL III
Version 3.2 oder früheren Versionen nicht möglich.
RS Steuerung
Der RS-Ausgang ist immer auf „L“ gestellt, ungeachtet davon, ob er genutzt wird oder nicht. Daher ist
es nicht möglich, die Steuerung Übertragungen zum verbundenen Zubehör der empfangenden Seite
steuern zu lassen. Wenn Sie das TTY-Protokoll ohne die XON/XOFF Steuerung benutzen, beachten Sie,
daß ein Datenstau auftreten kann, wenn Sie eine große Datenmenge vom angeschlossenen Zubehör zur
Steuerung senden wollen.
Anmerkung: CS Übertragung, wenn Sie das BASIC Protokoll benutzen
Die Robotersteuerung benutzt einen seriellen Sonderchip, um RS-323C Kommunikationen zu steuern.
Dieser Chip empfängt Anweisungen von der CPU und sendet Daten zum angeschlossenen Zubehör in
Übereinstimmung mit dem Kommunikationsprotokoll, und transferiert die Daten zur CPU. So
reduziert der serielle Chip die Arbeitslast des CPU während des Kommunikationssteuerungsbetriebs.
Eine Übertragungssteuerung per CS-Signal kann mit dem seriellen Chip durchgeführt werden. In
diesem Fall sendet das BASIC Protokoll aber, wie unten beschrieben, zwei ENQ-Codes.
Wenn der CPU einen ENQ-Code sendet, während das CS-Signal auf H eingestellt ist, wird der ENQCode vom seriellen Chip empfangen, kann aber nicht zum angeschlossenen Zubehör gesendet werden
und wird statt dessen intern gespeichert. Die CPU erkennt dann, daß keine Antwort vom verbundenen
Zubehör erhalten wurde und nach einer spezifizierten TimeoutZeitspanne, sendet sie erneut einen
ENQ-Code. Hat der serielle Chip einmal einen ENQ-Code erhalten (den er nicht senden kann), bleibt
er im Standby-Status bis der ENQ-Code gesendet werden kann. Wenn das CS-Signal auf L eingestellt
ist, werden zwei ENQ-Codes, die von der CPU gesendet wurden, vom seriellen Chip zum
angeschlossenen Zubehör gesendet.
100
RS-232C Schnittstelle
Die RS-323C Signalzeilen sind unten aufgeführt.
Pinnummer (D-Sub 9)
Pinnnummer (D-Sub 25) Bezeichnung
E/A
Signalname
1
8
CD
Eingang Trägerkennung
2
3
RD
Eingang Datenempfang
3
2
SD
Ausgang Datensendung
4
20
ER
Ausgang Zubehör bereit
5
7
SG
-
Signalerde
6
-
-
-
-
7
4
RS
Ausgang Sendungsanfrage
8
5
CS
Eingang Frei für Sendung
9
-
-
-
6
DR
-
1
FG
-
-
Eingang Datensatz bereit
-
Erde
FG (Erde)
Erde für Wartungszwecke und zur Sicherheit.
SD (Datensendung)
Dies ist eine serielle Datensignalkette, die Daten an die empfangende Seite sendet.
RD (Datenempfang)
Dies ist eine serielle Datensignalzeile, die Daten von der sendenden Seite empfängt.
RS (Sendungsanfrage)
Wenn der Ausgang auf „L“ gestellt ist, funktioniert die RS-Steuerung nicht. Wird das CS-Signal nicht
für die Datenübertragung benutzt, ist der RS Ausgang der Eingang zum CS-Pin.
CS (Frei zur Sendung)
Dieses Signal liefert eine Meldung, daß die Übertragung möglich ist. Wird das CS-Signal zur
Übertragungssteuerung genutzt, ist die Übertragung möglich, wenn das Signal auf „L“ gestellt ist, und
wird unterdrückt, wenn das Signal auf „H“ steht.
ER (Zubehör bereit)
Diese Signal informiert das Zubehör, daß die Übertragung möglich ist. Es ist auf ON (L) gestellt, wenn
die Robotersteuerung hochgefahren wird. Wenn Sie MS-DOS benutzen, wird es auf ON gestellt, wenn
der RS-323C-Treiber installiert ist.
DR (Datensatz bereit)
Das Signal wird auf ON gestellt, wenn das verbundene Zubehör bereit ist zur Datenübertragung.
CD (Trägerkennung)
Das Signal wird auf ON gestellt, wenn der Fernsteuerungsträger normal empfangen wird.
101
•
Anfertigung von sich kreuzenden Kabeln
Die RS-323C Schnittstelle ist ein Standard, der zur Verbindung von DTEs und DCEs(*1) entwickelt
wurde.
Die RS-323C-Schnittstelle wird für die serielle Kommunikation zwischen verschiedenen Arten von
Zubehör benutzt. Natürlich benutzen unterschiedliche Einrichtungen die Signalketten unterschiedlich,
und deshalb ist eine unterschiedliche Verdrahtung erforderlich.
(*1)
DTE steht für Data Terminal Equipment, wie z.B. Computer.
DCE steht für Data Circuit Terminating Equipment, wie z.B. Modems.
Verdrahten Sie die Kabel gemäß der folgenden Verdrahtungspläne.
<Plan 1: CS-Steuerung wird nicht verwendet>
(*2)
Die Anwendereinrichtung in dem oberen Plan bezieht sich auf Einrichtungen (wie
PCs oder Anzeigesysteme), die die RS-323C Schnittstelle benutzen.
<Plan 2: CS-Steuerung wird verwendet>
Im zweiten Verdrahtungsplan benutzt der CS-Eingang auf der Steuerungsseite den RS-Ausgang der
Anwendereinrichtung, aber die Verdrahtung kann geändert werden, so daß sie zur Steuerungsmethode
der Anwendereinrichtung paßt.
Da die Steuerung die RS-Steuerung nicht ausführt, kann die Steuerung nicht zur Übertragungssteuerung
von der Anwendereinrichtung genutzt werden
102
•
Herstellung von Steckanschlüssen an Kabeln
Das Abschirmen sollte wie folgt behandelt werden.
1.) Nach dem Entfernen der Abschirmung befestigen Sie einen Kabelbinder an dem Kabel.
2.) Befestigen Sie die Kappe auf dem Steckanschluß.
103
7.2 Die Kommunikation zwischen den Robotern
Wenn ein System hergestellt wird, welches verschiedene Roboter einschließt, dann wird eine Art
ineinandergreifender Mechanismus benötigt, um die Datenübertragung oder andere Abläufe zwischen
zwei oder mehr Robotern zu gewährleisten. Die Verbindung der Roboter über die RS-232C-Schnittstelle
ermöglicht, daß Roboter-Tätigkeiten über das Anwenderprogramm spezifiziert und ausgeführt werden
können.
Konfigurationseinstellungen
G HINWEIS
Wenn Sie die RS-232C-Schnittstelle für die Kommunikation nutzen, muß dieselbe
Konfiguration an beiden Kommunikationsstationen eingestellt sein. Verwenden
Sie den CONFIG-Befehl (beschrieben in dem Kapitel 7.1), um die Konfiguration
einzustellen.
Stellen Sie sicher, daß eine Station als Primärstation und die andere als
Sekundärstation eingestellt ist, wenn Sie das BASIC-Protokoll verwenden, um
eine Kollision während der Datenübertragung zu vermeiden.
Kommunikationsbezogene Befehle
Verwenden Sie kommunikationsbezogene Befehle, die von SPEL III unterstützt werden, um die
Kommunikation zwischen den Robotern einzustellen und um sie ausführen zu können. Diese SPEL IIIunterstützten Befehle sind wie folgt.
PRINT #
Datenausgabe an die serielle Schnittstelle.
INPUT #
Dateneingabe von der seriellen Schnittstelle.
LINE INPUT #
Fügen Sie eine Zeile Eingangsdaten von der seriellen Schnittstelle als eine
Zeichenkettenvariable ein.
CONFIG
Stellen Sie die Konfiguration der RS-232C-Schnittstelle ein.
LOF( )
Sorgt für die Rückgabe der Zeilenanzahl der erhaltenen Daten im RS-232CSpeicher.
CONSOLE
Konsolenspezifizierung, wenn der S.NET-Modus eingestellt ist.
STAT( )
Ermöglicht die Wiederherstellung des Status‘ der Steuerung, die über die RS232C-Schnittstelle angeschlossen ist.
Spezielle Anwendungsmethoden für kommunikationsbezogene Befehle
Dieser Abschnitt beschreibt vier typische kommunikationsbezogene Befehle.
•
Datenübertragung
•
Überprüfung der Dateneingabe
•
Lesestatus
•
Ineinandergreifen der Roboter
Alle vier Befehle werden unter folgenden Umständen wirksam.
Roboter A
RS-232C-Schnittstelle #20
104
←→
Roboter B
RS-232C-Schnittstelle #20
•
Datenübertragung
Verwenden Sie die PRINT- und INPUT-Befehle für die Übertragung von numerischen Daten zwischen
den Robotern.
<Beispiel 1>
Das Ausgabebit (1 oder 2) von Roboter A ist auf ON eingestellt, gemäß dem numerischen Wert (1 oder
2), der von Roboter B gesendet wurde.
Roboter A
100 INPUT #20,A
110 IF A=1 THEN ON1
120 IF A=2 THEN ON2
Roboter B
100 PRINT #20,A
<Beschreibung>
Roboter A erhält Daten von Roboter B, und das Ausgabebit von Roboter A ist gemäß dem erhaltenen
Datenwert auf ON eingestellt. Wenn Roboter A den INPUT-Befehl ausführt, bevor er Daten von Roboter
B erhalten hat, wird Roboter A mit der Ausführung des INPUT-Befehls warten, bis er die Daten von
Roboter B erhält. Alternativ kann Roboter B den PRINT-Befehl verwenden, um Daten zu senden, bevor
Roboter A seine Dateneingabe beginnt.
•
Wenn Sie das BASIC-Protokoll verwenden, können bis zu 20 Datenmeldungen im voraus
gesendet werden. Wenn Roboter B mehr als 20 Meldungen im voraus sendet, wartet er mit
der Ausführung des PRINT-Befehls, bis Roboter A die Meldungen über den INPUT-Befehl
angenommen hat.
•
Wenn Sie die XON/XOFF-Steuerung mit einem TTY-Protokoll verwenden, können bis zu 20
Meldungen plus 80 Datenbytes im voraus gesendet werden. Wird diese Menge jedoch
überschritten, wartet Roboter B im PRINT-Befehl, bis Roboter A die Meldungen über den
INPUT-Befehl angenommen hat.
•
Wenn Sie nicht die XON/XOFF-Steuerung mit dem TTY-Protokoll verwenden, kann dann
ein Überlauf auftreten, wenn mehr als 20 Meldungen plus 120 Datenbytes erhalten werden.
•
Wenn Sie die PRINT- und INPUT-Befehle verwenden, muß die Anzahl der PRINTAusführungen dieselbe sein wie die der INPUT-Ausführungen. Die Anzahl der numerischen
Datenketten, die vom PRINT-Befehl bearbeitet wird, muß ebenfalls dieselbe sein wie die
Anzahl, die durch den INPUT-Befehl bearbeitet wird. Stimmt die Anzahl der Datenketten
nicht überein, tritt ein Fehler auf (Fehler 30).
105
•
Überprüfung der Dateneingabe
Wenn der INPUT-Befehl ausgeführt wird, wartet der Roboter solange mit der Ausführung des INPUTBefehls, bis die Daten empfangen wurden. Das ist jedoch nicht besonders effizient, um das Programm zu
implementieren. Eine effizientere Methode ist die Verwendung der LOF( )-Funktion, um die Menge der
erhaltenen Daten zurückzusenden.
<Beispiel 2>
Verwenden Sie die LOF( )-Funktion, um zu überprüfen, ob die Daten von Roboter B zu Roboter A
gesendet wurden oder nicht. Wurden die Daten gesendet, führt der Roboter den INPUT-Befehl aus, um
die Daten einzugeben. Wurden die Daten nicht gesendet, führt der Roboter andere Arbeiten aus.
100
110
200
Roboter A
IF LOF(20) =0 THEN GOSUB 200
ELSE GOSUB 1000
GOTO 100
Roboter B
100 PRINT #20,A
′PROGRAM1
M
900
RETURN
M
1000
INPUT #20,A
M
1100
RETURN
<Beschreibung>
Bevor der INPUT-Befehl ausgeführt wird, verwendet Roboter A die LOF( )-Funktion, um die
empfangenen Daten zu überprüfen.
Wurden die Daten empfangen, führt der Roboter den INPUT-Befehl mit den eingefügten Daten als
Variable A in der Zeile 1000 aus. Nach Zeile 1000 wird das Programm ausgeführt.
Wurden die Daten nicht empfangen, führt Roboter A das Unterprogramm ab Zeile 200 aus und kehrt
dann zu Zeile 100 zurück.
106
•
Lesestatus
Werden Operationen von zwei oder mehr Robotern ausgeführt, kann die Programmierung der
Tätigkeiten eines Roboters erfordern, daß er in der Lage ist, die Tätigkeiten der anderen Roboter zu
kontrollieren. In diesem Fall können Sie die STAT( )-Funktion verwenden, um den Status der anderen
Roboter, die über die RS-232C-Schnittstelle angeschlossen sind, zu überprüfen.
Bei der Ausführung der STAT( )-Funktion, wird die Statusinformation des Zielroboters als 3-Byte-Daten
empfangen. Verwenden Sie den AND-Befehl, um die Statusbits in den Daten zu verbergen und die
Information herauszuziehen.
Bit
0 bis15
16
17
18
19 bis 23
Steuerungsstatus, wenn der Bit-Status auf ON eingestellt ist
Status der E/A-Speicherbits 0 bis 15 ist ON
Status der Startausgabe von REMOTE2 ist ACTIVE
Status der Pausenausgabe von REMOTE2 ist ACTIVE
Status der Fehlerausgabe von REMOTE2 ist ACTIVE
Undefiniert
<Beispiel 3-1>
Stellen Sie eine bedingte Verzweigung basierend auf der Status-Bit-Information des anderen Roboters
ein (E/A-Speicherbit 7).
Roboter A
100 A=STAT(20) AND &H80
110 IF A<>0 THEN GOTO 1000
100
Roboter B
IF SW(3) =1 THEN ON $7
ELSE OFF $7
M
1000 ′PROGRAM1
<Beschreibung>
Nachdem Roboter A die Statusinformation von Roboter B erhalten hat, geben Sie den AND-Befehl ein,
um die Statusbits zu verbergen und den Status des E/A-Speicherbits 7 zu überprüfen. Wenn das E/ASpeicherbit 7 von Roboter B auf ON eingestellt ist, führen Sie das Programm beginnend in Zeile 1000
aus. Alternativ kann der Status der Eingabe der Bit-Nummer 3 von Roboter B genutzt werden, um den
E/A-Speicherstatus auf ON oder OFF einzustellen.
<Beispiel 3-2>
Stellen Sie eine bedingte Verzweigung ein, die auf der Status-Bit-Information (Fehlerausgabe) des
anderen Roboters basiert.
Roboter A
100 A=STAT(20) AND &H40000
110 IF A<>0 THEN GOTO 1000
M
1000 ’ERR1
Roboter B
M
M
M
<Beschreibung>
Roboter A überprüft die Fehlerausgabe von Roboter B. Wenn ein Fehler bei Roboter B aufgetreten ist,
führen Sie ab Zeile 1000 das beschriebene Fehlerverarbeitende Programm aus.
107
•
Sperre zwischen den Roboter
Teilen sich zwei oder mehr Roboter dieselben Positionsdaten, wird eine Sperre benötigt, um Kollisionen
zwischen den Roboterarmen zu vermeiden. Der E/A-Speicher kann genutzt werden, um solch eine
Sperre einzurichten.
<Beispiel 4>
Roboter A und Roboter B teilen sich den Punkt P1. Beide können arbeiten, wenn die folgende Sperre
verwendet wird.
Roboter A
100 FUNCTION ROBOT1
110 HOME
120
130
140
150
160
170
ON #20, $2
WAIT SW($1) =1
OFF $1
JUMP P1; JUMP P2
GOTO 120
FEND
100
110
120
130
140
Roboter B
FUNCTION ROBOT2
HOME
WAIT SW($2) =1
OFF $2
JUMP P1; JUMP P3
150 ON #20, $1
160 GOTO 120
170 FEND
Hinweis: P1 ist der Positionierungspunkt, der von Roboter A und Roboter B geteilt wird. P2 und P3 sind
Positionierungspunkte innerhalb der Sicherheitszone, um Kollisionen der Roboterarme vorzubeugen.
<Beschreibung>
Roboter A’s E/A-Speicherbit 1 und Roboter B’s E/A-Speicherbit 2 werden als Markierung für die Sperre
genutzt.
Hat Roboter A die Zeile 120 erreicht und der E/A-Speicher von Roboter B wurde auf ON eingestellt
(was den Betrieb von Roboter B ermöglicht), dann wartet Roboter A an der Zeile 130, bis sein eigener
E/A-Speicher auf ON eingestellt wurde. Nachdem Roboter B seine Tätigkeit an dem gemeinsamen
Positionierungspunkt (P1) abgeschlossen hat, springt er zum Positionierungspunkt P3, der sich in der
Sicherheitszone befindet. Dann wird der E/A-Speicher von Roboter A auf ON eingestellt (was den
Betrieb von Roboter A ermöglicht).
Somit kann eine Sperre unter Verwendung von „ON #m, $n“ oder „OFF #m, $n“ eingerichtet werden,
um den E/A-Speicher des anderen Roboters zu verändern.
108
7.3 Kommunikation zwischen Robotern und Anwendereinrichtungen
Jedes System, das einen Roboter verwendet, benötigt möglicherweise die Übertragung numerischer oder
Textdaten zwischen der Anwendereinrichtung (z.B. Computer, visuelle Systeme, etc., die eine RS-232CSchnittstelle benutzen) und dem Roboter. In diesem Punkt wird beschrieben, wie das Senden und
Empfangen von Daten funktioniert.
Datenformat
Der ASCII-Code ist das Datenformat, welches für die Übertragung der Daten verwendet wird.
<Beispiel 1> Der ASCII-Code für „8“ ist „&H38“ und für „+“ „&H2B“.
Der empfangene ASCII-Code wird direkt als Zeichenkette genommen, so daß diesem Format keine
besondere Beachtung geschenkt werden muß. Es ist jedoch wichtig das Ausdrucksformat und die
wichtigen Ziffern beim Senden oder Empfangen von numerischen Daten zu beachten. Darüber hinaus
muß die sendende Seite numerische Daten senden, die sich innerhalb eines von der empfangenden Seite
festgelegten Bereichs befinden. Das Roboter-Ausgabeformat für zu sendende Daten und das EingabeFormat für zu empfangende Daten sind beide vordefiniert. Sie müssen daher sicherstellen, daß sich die
zu übermittelnden Daten im Definitionsbereich befinden.
<Beispiel 2>
Sendende Seite
Empfangende Seite
Zeichendatenübertragung
A
→ &H41
→
&H41
→A
Übertragung numerischer Daten
-12,345E-1
→ ASCII-Daten
→
ASCII-Daten
→?
Während der Übertragung numerischer Daten konvertiert die sendende Seite die numerischen in ASCIIDaten und sendet dann die Daten an die empfangende Seite. Die empfangende Seite muß dann die
Daten wieder in numerische Daten konvertieren. Wenn jedoch die empfangende Seite ASCII-Daten
empfängt, die nicht genau den konvertierten numerischen Daten entsprechen, können die resultierenden
numerischen Daten von den ursprünglich gesendeten abweichen.
Nachfolgend finden Sie die Ein- und Ausgabeformate der Robotoren:
- Eingabeformat: Siehe Eingabeformat beim Senden von der Anwendereinrichtung zum Roboter
- Ausgabeformat: Siehe Ausgabeformat beim Senden vom Roboter zur Anwendereinrichtung
109
•
Eingabeformat
Numerische Ausdrücke
Die folgenden Anzahlen von Zeichen können genutzt werden.
Formale Zahlen: 7 Ziffern
Bezeichnende Zahlen: 6 Ziffern
Die folgenden Ausdrucksformate werden unterstützt.
<Beispiel>
Eingabeformat
+123,12
0,12345E1
-97,156E-1
-97
0,1267
Eingabedaten
123,12
1,2345
-9,7156
-97
0,1267
Datenausdrücke
Die Zahlen, die in einer Zeile der Eingabedaten enthalten sind, werden als Variablen gemäß den
folgenden Regeln gehandhabt.
Abgesehen von „±“ werden alle Zeichen und Leerzeichen, die auf eine Zahl folgen, ignoriert.
Wenn zwei oder mehr Zahlenwerte vorhanden sind, muß wenigstens ein Begrenzer(*1) zwischen jedem
Paar der Zahlenwerte eingefügt werden.
Wenn ein Zeichen (wie beispielsweise ein Buchstabe) auf eine Zahl folgt, werden alle Daten bis zum
nächsten Begrenzer ignoriert. Wird „E“ als Vertreter verwendet, wird es als eine Zahl angesehen.
(*1)
Leerzeichen oder Kommata können als Begrenzer verwendet werden.
<Beispiel 2>
Eingabedaten
DV-123,56E-3
+123,45E-3 -97,45
A0=95,62 A1=87,654
•
Erkannter Zahlenwert
-123,56 x 10-3
123,45 x 10-3 und –97,45
0 und 1
Ausgabeformat
Die Robotersteuerung drückt numerische Ausgabedaten nach den folgenden Regeln aus.
Ganze Zahlenwerte werden als ganz ausgegeben. Ein Leerzeichen wird für positive Werte eingefügt.
Reale Zahlenwerte werden als reale Zahlen ausgegeben. Aber wenn die Anzahl der Ziffern zu groß ist,
wird der ausgegebene Datenausdruck wie folgt normalisiert (wenn die formale Zahl 7 Ziffern
überschreitet).
± ,
Ε±
Wurden verschiedene Zahlenwertreihen ausgegeben, wird ein Leerzeichen zwischen jeder
Zahlenwertreihe eingefügt
110
Programm für die Kommunikation mit dem Anwendereinrichtung
•
Kommunikation mit dem TTY-Protokoll
Die Kommunikation mit dem TTY-Protokoll ist eine Methode, bei der ein CR-Code (&H0D) als
Terminator zu den Daten hinzugefügt wird (wie bereits in Kapitel 7.1 beschrieben).
<Beispiel>
Inhalt der Übertragung
Senden von „8“ und „7“
Senden von „12“
Senden von „-1,3“
G HINWEIS
•
Darstellung der gesendeten Daten
(&H38) (&H20) (&H37) (&H0D)
(&H31) (&H32) (&H0D)
(&H2D) (&H31) (&H2E) (&H33) (&H0D)
Bei der Kommunikation mit dem TTY-Protokoll gibt es keine
Fehlerkorrekturmethode für Probleme wie z.B. Übertragungsfehler. Deshalb sollte
statt dessen das BASIC-Protokoll verwendet werden, wann immer es möglich ist.
Kommunikation mittels des BASIC-Protokolls
Die Kommunikation mittels des BASIC-Protokolls ist eine verläßlichere Kommunikationsmethode, die
einen Ermittlungscode (ENQ) und Kontrollzeichen (STX, ETX und BCC) zur Datenübertragung
hinzufügt (siehe auch Kapitel 7.1).
Die beiden unten gezeigten Ablaufdiagramme beschreiben ein Roboterkommunikationsprogramm, daß
das BASIC-Protokoll nutzt. Kreieren Sie ein auf diesen Ablaufdiagrammen basierendes Programm,
wenn Sie numerische Daten zwischen den Robotern übertragen wollen.
Ablaufdiagramm 1: Um Daten mit Hilfe des BASIC-Protokolls zu senden
111
Nachdem ein ENQ-Code gesendet wurde, wartet die sendende Seite auf die Rückgabe eines ACK-Codes.
Wird der ACK-Code nicht innerhalb einer bestimmten Zeitspanne zurückgesendet, tritt ein
Timeoutfehler auf. Wird jedoch ein ACK-Code zurückgegeben, dann schickt die sendende Seite eine
Datenkette, die von STX- und ETX-Codes umgeben ist und von einem BCC-Code ergänzt wird.
Schließlich akzeptiert die sendende Seite den ACK-Code und beendet die Übertragung (normaler
Abschluß). Wird der ACK-Code jedoch nicht zurückgeschickt, versucht die sendende Seite dreimal, die
von STX- und ETX-Codes umgebenden Daten zu übermitteln.
Wenn, nachdem ein ENQ-Code gesendet wurde, ein ENQ- anstatt eines ACK-Codes zurückgegeben
wurde, ereignet sich ein Übertragungsfehler. In diesem Fall überträgt die sendende Seite einen NAKCode. Handelt es sich um eine Primärstation, wird nach dem Empfang des NAK-Codes erneut ein ENQCode gesendet. Handelt es sich jedoch um eine Sekundärstation, erhält sie von der Primärstation alle
übertragenen Daten und sendet dann einen weiteren ENQ-Code.
Ablaufdiagramm 2: Um Daten mit Hilfe des BASIC-Protokolls zu erhalten
Die empfangende Seite wartet auf einen ENQ-Code. Erhält sie ihn, sendet sie einen ACK. Dann erhält
die empfangende Seite Daten, die von STX- und ETX-Codes umgeben sind und verwendet den BCCPrüfsummen-Code für die Fehlerkontrolle. Wurden keine Fehler gefunden, sendet diese Seite einen
ACK-Code und beendet die Tätigkeit. Weist der BCC-Prüfsummen-Code auf einen Fehler hin, überträgt
sie einen NAK-Code und wartet auf eine weitere, von STX- und ETX-Codes umgebende Datenkette, die
gesendet werden soll.
Werden in einer bestimmten Zeitspanne keine Daten gesendet, tritt ein Timeoutfehler auf. Wenn der
ETX-Code nicht empfangen wurde, tritt der Timeoutfehler oder der Speicherüberlauffehler auf.
112
Beispiel für ein BASIC-Programm
Das folgende ist ein Kommunikationsprogramm, das in der BASIC-Programmiersprache geschrieben
wurde und das BASIC-Protokoll verwendet. Um Daten zu senden, stellt dieses Programm die
Datenübertragung auf die Zeichenkette „SEND$“ ein und ruft ein Übertragungsunterprogramm auf, das
in der Zeile 2000 startet.
Um Daten zu empfangen, ruft dieses Programm ein Empfangsunterprogramm auf, das in der Zeile 3000
beginnt und die empfangenen Daten auf die Zeichenkette „RCVCHR$“ einstellt.
<Beispiel für ein in BASIC geschriebenes Kommunikationsprogramm>
113
7.4 Die Kommunikation zwischen Hauptrechner und Roboter
Bei der Konfiguration eines Systems, das einen oder mehr Roboter einschließt, kann es sein, daß der
Roboter nicht nur mit der Anwendereinrichtung kommunizieren können muß (z.B. Übertragung
numerischer Daten), sondern auch mit einem Computer, der als Hauptrechner fungiert und dadurch
Tätigkeiten des Roboters (wie die folgenden) steuert.
• Aktivierung und Abschalten des Roboters
• Programmübertragung
• Lesen des Roboterstatus‘, etc.
Dieses Kapitel beschreibt, wie ein Programm hergestellt wird, daß den Computer befähigt, als
Hauptrechner zu funktionieren.
Die Konsole
Um den Computer zu befähigen, als Hauptrechner zu funktionieren, muß der Computer als Konsole
(Haupteinrichtung für die Ein- und Ausgabe) im AUTO-Modus spezifiziert werden. In diesem Fall
bedeutet „Konsole“ einfach die Einrichtung, um den Roboter zu steuern. Weitere Informationen erhalten
Sie in Kapitel 1.4 „Modus“ in der Einführung zur Konsole.
G HINWEIS
Der Hauptrechner sollte über die RS-232C-Schnittstelle Nr. 20 oder 21 der
Steuerung angeschlossen sein. Dazu müssen Sie die Schnittstelle mit dem PC als
Konsole anschließen.
Die bedingten Erweiterungen der RS-232C-Schnittstelle (Schnittstellen Nr. 22 und 23) können nicht für
die Konsole verwendet werden.
Das Folgende ist ein Beispielablauf, um die RS-232C-Schnittstelle (Nr. 20 oder 21) als Konsole
zuzuweisen.
<Beispiel> Zuweisungsablauf für die RS-232C-Schnittstelle Nr. 20 als eine Konsole
1.
Verwenden Sie den SPEL-Editor oder SPEL für Windows, um die Konfiguration der RS-232CSchnittstelle für die Konsole einzurichten.
>CONFIG #20,2,1,3,0
2.
′Der Wert nach #20 ist abhängig vom PC.
Spezifizieren Sie die Konsole für den AUTO-Modus.
>CONSOLE #20
3.
Verbinden Sie den Hauptrechner mit der RS-232C-Schnittstelle Nr.20, stellen Sie den
Betriebsmodus der Steuerung auf AUTO ein. Dann ist die Konsole der RS-232C-Schnittstelle Nr.
20 zugewiesen. In diesem Fall wird der Modus als S.NET bezeichnet.
4.
Führen Sie die Einrichtung nicht aus, wenn der PC an die RS-232C-Schnittstellen
Nr. 20 oder 21 angeschlossen ist, weil der Notschalter in diesem Fall nicht als
Notschalter funktioniert. Unter diesen Umständen ist es gefährlich, den Roboter
zu bewegen.
Warnung
114
Während des Debuggens eines Programms mit dem PC, der mit der RS-232CSchnittstelle Nr. 20 oder 21 verbunden ist, wenn Sie den Roboter bewegen, ist es
erforderlich, das Handprogrammiergerät (TP-320/TP-320J) oder die OPU-300,
welche an die TEACH-Schnittstelle angeschlossen sind, in der Hand zu halten,
um im Notfall den NOT-AUS-Schalter drücken zu können.
Der Unterschied zwischen S.NET und dem TEACH-Modus
Es gibt keine Unterschiede zwischen dem S.NET-Modus und dem TEACH-Modus, solange der Roboter
durch Befehle vom PC gesteuert wird. Wurde jedoch der S.Net-Modus für den AUTO-Modus bestimmt,
unterscheiden sich Merkmale, die die Sicherheit betreffen wie z.B. Spannungszustand, Pausenzustand
und Sicherheitsabschrankung. Im S.NET-Modus kann das Programm nicht mit geöffneter
Sicherheitsabschrankung ausgeführt werden. Die Eingabe von PAUSE ausgehend von REMOTE ist
gültig. (Siehe auch die folgende Tabelle.)
TEACH-Modus
S.NET
Eingang Sicherheitsabschrankung
Der Roboter kann im Low-Power-Modus
betrieben werden.
PAUSE-Status
NOT-AUS-Schalter des PC-Kabels
Möglich
Nicht möglich
Eingabe von PAUSE von der OPU300 aus
Nicht möglich
Möglich
Eingabe von PAUSE von REMOTE
Nicht möglich
aus
Möglich
Robotersteuerungsprogramm
Soll ein Roboter über einen Hauptrechner kontrolliert werden, so muß ein Kommunikationsprogramm
erstellt werden, um die Datenübertragung zwischen Hauptrechner und Roboter zu ermöglichen.
Folgende 8 Punkte beschreiben diese Art eines Roboterkontrollprogramms.
•
Zurücksetzen
•
Grundablauf
•
Steuerungscodes
•
Ablauf der LIST-, PLIST- und DIR-Befehle
•
Ablauf der SAVE- und MERGE-Befehle
•
Schnellspeicherung mit SAVE
•
LOAD-Ablauf
•
Zufuhr per JOG-Verfahren
•
Zurücksetzen
Senden Sie folgenden RESET-Code, um die Steuerung zurückzusetzen.
(SOH) (DC3) = (&H01) (&H13)
Diese Methode funktioniert unabhängig vom aktuellen Zustand der Steuerung. Die Steuerung sendet
folgenden Code zurück, nachdem sie zurückgesetzt wurde.
(>) = (&H3E)
Der RESET-Code sendet sich selbst, ohne andere Kontrollzeichen wie z.B. CR, ENQ, STX oder ETX.
Der RESET-Code ist nur dann wirksam, wenn er von der Konsole gesendet wurde.
Dieses RESET-Verfahren kann genutzt werden, um die Programmausführung anzuhalten,
Ausgabeschnittstellen einzurichten, den E/A-Speicher auf OFF zu stellen und die SPEED- und ACCELEinstellungen zu initialisieren. Dieses Verfahren kann jedoch nicht für Fehlerbehebung und das
Löschen des NOT-AUS-Zustands verwendet werden. Führen Sie den RESET-Befehl aus, wenn
Fehlerbeseitigung und/oder das Löschen des NOT-AUS-Zustands notwendig ist. (Siehe auch
„Grundablauf“ auf der nächsten Seite.)
115
•
Grundablauf
Um die Funktionen der Steuerung auszuführen (SPEL III-Befehle), muß jeder Befehl im ASCII-Code an
die Steuerung gesendet werden. Die Steuerung übersetzt den ASCII-Code, den sie erhält und führt die
entsprechenden Befehle aus.
Entweder kann TTY (kein Protokoll) oder das BASIC-Protokoll verwendet werden. Letzteres wird
jedoch aufgrund seiner höheren Verläßlichkeit empfohlen.
Ablaufdiagramm 3 zeigt den Grundablauf, um Steuerungsmeldungen abzustimmen.
Zuerst wird ein Befehl über den Computer eingegeben und als ASCII-Code an die Steuerung gesendet.
Der Computer wartet dann auf eine Meldung von der Steuerung. Ist die Meldung „>“, wartet die
Steuerung auf Eingaben vom Computer. Wenn die Meldung nicht „>“ ist, akzeptiert der Computer die
Meldung und wartet auf weitere Eingaben von der Steuerung.
Verwenden Sie für die „Befehlsübertragung an die Steuerung“ (siehe Ablaufdiagramm) das
Sendeprogramm und für die „Meldungseingabe von der Steuerung“ das Empfangsprogramm. Beide
Programme sind in Kapitel 7.3 beschrieben.
Ablaufdiagramm 3: Grundablauf, um Kontrollmeldungen zu kommunizieren
116
<Beispiel> Senden des RUN-Befehls an den Roboter
TTY-Protokoll (kein Protokoll)
BASIC-Protokoll
117
• Steuerungscodes
Steuerungscodes werden gesendet, um die Programmausführung zu stoppen und neu zu starten. Die
folgenden Steuerungscodes müssen gesendet werden, wenn entweder die „TTY-Protokoll“-Methode oder
die „BASIC-Protokoll“-Methode angewandt wird.
Pause, Fortsetzung, Ausführung eines Schrittes oder Stop
Um ein Programm, das ausgeführt wird, zu steuern, senden Sie bitte jeden der folgenden
Steuerungscodes.
Steuerungscode
(DC3) (ESC)
(DC3) (A)
(DC3) (space)
(DC3) (Q)
Beschreibung
Programmpause
Fortsetzung der Programmausführung nach einer Pause
Ausführung eines Schrittes nach einer Pause
Stop der Programmausführung nach einer Pause
Zustand von Übertragungsanforderung und Übertragungsantwort
Der Zustand von Übertragungsanforderung und Übertragungsantwort entspricht der SPEL III-STAT( )Funktion. Verwenden Sie den folgenden Ablauf, um das Senden des Zustandes an die Steuerung
anzufordern.
1.
Der Hauptrechner sendet DC1 an die Steuerung.
2.
Wenn die Steuerung DC1 empfängt, sendet sie an den Hauptrechner den DC2-Code, der
durch eine 6-Byte-Hexadezimal-Version der 3-Byte-Zustandsdaten ergänzt wird.
Ändern des E/A-Speichers
Das Ändern des E/A-Speichers entspricht den SPEL III-Befehlen ON #m, $n und OFF #m, $n.
Verwenden Sie den folgenden Ablauf, um den E/A-Speicher der Steuerung zu verändern. Der
Hauptrechner sendet DC4 (Daten) an die Steuerung. Die Daten bestehen aus einem Byte, dessen Bits
folgende Bedeutung haben.
(Daten) = (0A1BBBBB)
A: Markierung, um zwischen ON und OFF unterscheiden zu können.
ON:
A=1
OFF: A = 0
B: entspricht der E/A-Speicherbit-Nummer. Die fünf B-Bits drücken einen Zahlenwert von 0
bis 31 aus.
<Beispiel>
ON #20, $15 → (DC4)(6FH)
OFF #20, $3 → (DC4)(23H)
G HINWEIS
118
Sie können nur den Steuerungscode (00H bis 1FH), der in diesem Handbuch
beschrieben wurde, und dessen Kombinationen verwenden.
• Ablauf von LIST-, PLIST- und DIR-Befehlen
Das Ablaufdiagramm 4 zeigt den Ablauf von LIST-, PLIST- und DIR-Befehlen. Die Ausführung dieser
Befehle kann zeitweise angehalten oder komplett gestoppt werden. Die zu übertragenden Daten müssen
zeilenweise übertragen werden. Mit anderen Worten: Der Hauptrechner verwendet eine HandshakingProzedur, während er mit der Steuerung kommuniziert.
Senden Sie folgende Codes, um den Handshaking-Modus einzurichten.
(DC3) (ESC)
Nach dem Senden dieser Codes, senden Sie einen Befehl wie z.B. LIST.
Dann senden Sie ein Leerzeichen. Danach werden Sie eine Zeile des Programms (oder andere Daten)
vom Roboter erhalten.
Die Einrichtung ist abgeschlossen, wenn die empfangenen Daten „>“ sind. Wenn nicht „>“ erscheint,
dann werden die empfangenen Daten auf dem Bildschirm des Hauptrechners angezeigt.
Bevor das Leerzeichen gesendet wird, überprüft das Programm die Tasteneingabe. Diese Überprüfung
der Tasteneingabe ist für die Steuerungsfunktionen von LIST wichtig (Pause, Fortsetzung, erzwungenes
Ende, etc.).
Ablaufdiagramm 4: Ablauf der LIST-, PLIST- und DIR-Befehle
119
• Ablauf von SAVE- und MERGE-Befehlen (Programmdownload)
Das Ablaufdiagramm 5 zeigt den Ablauf von SAVE- und MERGE-Befehlen.
In diesem Ablaufdiagramm wird zuerst der Befehl NEW geschickt. Nachdem der Programmbereich der
Steuerung geleert ist, wird das Programm zeilenweise zur Steuerung geschickt. Ist die
Programmübertragung abgeschlossen, wird die Übertragung der Positionsdaten gestartet.
Wird die Übertragung der Befehle NEW und CLEAR ausgelassen oder unterdrückt, wird der Befehl
MERGE ausgeführt.
Diese Übertragungen können das TTY- oder das BASIC-Protokoll verwenden.
Ablaufdiagramm 5: Ablauf des Befehls SAVE
120
• Schnellspeicherung mit SAVE
Während der Speichervorgänge, wenn eine Zeile an die Steuerung gesendet wird, prüft die Steuerung
die Zeilennummer des Programms und muß dann den Programmspeicherbereich nach einem freien
Platz für diese Zeile durchsuchen, damit sie dort gespeichert werden kann. Dies ist ein zeitraubender
Vorgang.
Die Schnellspeicherung erhöht die Geschwindigkeit des Programmdownload durch Sicherstellen, daß
Programme in der Reihenfolge ihrer Zeilennummern gesendet werden.
Das Ablaufdiagramm 5 zeigt den Ablauf der Schnellspeicherung.
In diesem Ablaufdiagramm wird zuerst der Befehl SSV_ gefolgt von einer Programmzeile geschickt.
Der unterstrichene Teil (_) entspricht dem ASCII-Code „&H5F“. Wenn das komplette Programm
übertragen wurde, wird der Befehl _END geschickt. Danach werden die Positionsdaten zeilenweise
gesendet.
Ablaufdiagramm 6: Ablauf der Schnellspeicherung
121
• Ablauf des LOAD-Befehls
Das Ablaufdiagramm 7 zeigt den Ladevorgang.
Der LIST-Befehl wird an die Steuerung geschickt, worauf die Steuerung das Programm zeilenweise
erhält und das Programm im Programmspeicherbereich gespeichert wird. Das empfangene Programm
wird im Programmspeicherbereich des Hauptrechners gespeichert.
Dann wird der Befehl PLIST zum Roboter gesendet und die Positionsdaten werden genauso bearbeitet,
wie die Programmdaten.
Ablaufdiagramm 7: Ablauf des LOAD-Befehls
122
• Zufuhr per JOG-Verfahren
Der Hauptrechner kann zum Programmieren des Roboters benutzt werden, um „JOG-Zufuhr“Bewegungen zu verrichten. JOG-Zufuhr-Bewegungen sind Bewegungen zu einer definierten Position,
die per Fernsteuerung, z.B. über die PC-Tastatur, ausgeführt werden können. Daher ist dies eine
wichtige Einrichtfunktion.
Die JOG-Methode ist wie folgt. Die gleiche JOG-Methode wird im SPEL Editor verwendet.
Es gibt zwei verschiedene JOG-Verfahren:1. der Bewegungsmodus und 2. der
Koordinatensystemmodus. Verwenden Sie beide Methoden in Kombination.
Bewegungsmodus
StpJog (Step Jog)
CntJog (Continuous Jog)
schrittweise Zufuhr
Endloszufuhr
Koordinatensystemmodus
BASE
Bewegung gemäß des Basiskoordinatensystems der Roboters
JOINT
Bewegung definiert für jedes Gelenk
TOOL
Bewegung gemäß den TOOL-Koordinaten
Weitere Informationen zum JOG-Zufuhrverfahren erhalten Sie in Kapitel 6 im SPEL Editor Handbuch.
Schrittweise Zufuhr (StpJog-Modus)
Sowohl das TTY- wie auch das BASIC-Protokoll können hierfür verwendet werden. Der Schrittabstand
kann durch Ausführen des SEL-Befehls festgelegt werden. Sie müssen jedoch beachten, daß sowohl der
Schrittabstand, wie auch die Schrittrichtung in Abhängigkeit vom verwendeten Koordinatensystem
variieren.
Basiskoordinatensystem
Code
PIJ 0
NIJ 0
P2J 0
N2J 0
P3J 0
N3J 0
P4J 0
N4J 0
(*1)
Beschreibung
Positive Richtung entlang der X-Achse des Roboterkoordinatensystems
Negative Richtung entlang der X-Achse des Roboterkoordinatensystems
Positive Richtung entlang der Y-Achse des Roboterkoordinatensystems
Negative Richtung entlang der Y-Achse des Roboterkoordinatensystems
Positive Richtung entlang der 3. Achse
Negative Richtung entlang der 3. Achse
Positive Richtung entlang der 4. Achse
Negative Richtung entlang der 4. Achse
vorheriger Code (*1)
PSX
NGX
PSY
NGY
PSZ
NGZ
PSU
NGU
Der vorheriger Code ist der Code, der mit den Steuerungen der Serie 42 verwendet wird.
123
JOINT-Koordinatensystem
Code
PIJ 1
NIJ 1
P2J 1
N2J 1
P3J 1
N3J 1
P4J 1
N4J 1
Beschreibung
Positive Richtung entlang der 1.Achse
Negative Richtung entlang der 1. Achse
Positive Richtung entlang der 2. Achse d
Negative Richtung entlang der 2. Achse
Positive Richtung entlang der 3. Achse
Negative Richtung entlang der 3. Achse
Positive Richtung entlang der 4. Achse
Negative Richtung entlang der 4. Achse
TOOL-Koordinatensystem
Code
PIJ 2
NIJ 2
P2J 2
N2J 2
P3J 2
N3J 2
P4J 2
N4J 2
Beschreibung
Positive Richtung entlang der X-Achse des TOOL-Koordinatensystems
Negative Richtung entlang der X-Achse des TOOL-Koordinatensystems
Positive Richtung entlang der Y-Achse des TOOL-Koordinatensystems
Negative Richtung entlang der Y-Achse des TOOL-Koordinatensystems
Positive Richtung entlang der 3. Achse
Negative Richtung entlang der 3. Achse
Rotation in positiver Richtung entlang der U-Achse und zentriert auf
den Ursprung des TOOL-Koordinatensystems
Rotation in negativer Richtung entlang der U-Achse und zentriert auf
den Ursprung des TOOL-Koordinatensystems
Endloszufuhr (CntJog-Modus)
Für ununterbrochene JOG-Zufuhrvorgänge. Ablaufcodes werden ohne Verwendung eines Protokolls
direkt gesendet.
Auch hier werden zwei verschiedene Modi verwendet:
Code
Endlos-JOG-Startcode
JOG-Richtungscode2
JOG-Koordinatensystem
BASE
JOINT
TOOL
124
Beschreibung
Code, der gesendet wird, um die Endloszufuhr zu starten.
Code, der die Richtung der JOG-Zufuhr bestimmt.
Code
DC3+‘0‘
DC3+‘1‘
DC3+‘2‘
Die JOG-Richtungcode werden unten aufgeführt:
Bit 7
X/Y-JOG-Richtungen
0
Bit 0
0
1
SP
-Y
+Y
-X
Bit 7
Z/U-JOG-Richtungen
0
+X
Bit 0
1
0
SP
-U
+U
-Z
+Z
- Stellen Sie das Bit, das Sie für die Einstellung der Richtung benötigen, auf 1.
- SP steht für „Speed“ (Geschwindigkeit). Ein Bitwert von 1 kennzeichnet eine hohe Geschwindigkeit.
Sie setzen den Bitwert auf 1, indem Sie auf die [Shift]-Taste drücken.
<Beispiel> Drücken von „+X“ und „-Y“ sendet den Code „&H29“.
Wenn die Endloszufuhr ausgeführt wird, senden Sie zuerst den entsprechenden Startcode und sofort
danach den Richtungscode. Behalten Sie das Senden des Richtungscodes bei, um eine ununterbrochene
Zufuhr zu ermöglichen. JOG-Verfahren enden, wenn der nächste Richtungscode nicht innerhalb von 20
ms gesendet wird. Wenn das JOG-Verfahren einmal beendet ist, muß ein neuer Startcode eingegeben
werden, um das JOG-Verfahren erneut zu starten.
A: Startcode für das Endlosverfahren
B: Richtungscode
125
7.5 Erweiterte Funktionen
SPEL III: Erweiterte Funktionsaufrufe
Zusätzlich zu den Funktionen, die sich auf die RS232C beziehen, gibt es auch einige erweiterte
Funktionen.
• Format der erweiterten Funktionen
Format: EX_CALL (l,m,n)
l: Funktionscode
m: Parameter 1
n: Parameter 2
Funktionscode 2: Terminatorausgang ON/OFF
Dies steuert die Terminatorausgang, wenn das Kommunikationsprotokoll der RS-232C das TTYProtokoll ist.
Eingabeparameter:
l (Funktionscode):
2
m (Nummer der Schnittstelle):
20 bis 23
n (Kontrollmarkierung):
Ist n=0: Terminatorausgang
Ist n=1: kein Terminatorausgang
Rückgabewert
Fehlercode (im Normalfall 0)
G HINWEIS
100
110
120
Diese Einstellung kann nicht gesichert werden. Ein Zurücksetzen hat das
Wiederherstellen der Standardeinstellung (Terminatorausgang) zur Folge. Stellen
Sie daher sicher, daß Sie diesen Befehl in Ihrem Programm integriert haben.
B=EX_CALL(2,20,11)
PRINT #20,123
INPUT #20,A
Format:
Keine Ausgabe an Terminator (#20)
Eingang der numerischen Werte von #20
INKEY$(n)
n: 20 oder 21 (Nummer der Schnittstelle)
Diese Funktion gibt ein Zeichen der Dateneingabe der RS-232C-Schnittstelle zurück. Ein Wert CHR$(0)
wird zurückgegeben, wenn ein Timeout auftritt (Die Timeout-Zeitspanne beträgt ca. zwei Sekunden.)
G HINWEIS
126
Diese Funktion arbeitet nicht korrekt, solange sich die definierte Schnittstelle
nicht im RAW-Modus befindet.
• erweiterte Funktionsbefehle
Format: SETRAW #n
n: 20 oder 21 (Nummer der Schnittstelle)
G HINWEIS
Mit diesem Befehl stellen Sie für die definierte Schnittstelle den RAW-Modus ein.
RAW-Modus
Bei Verwendung des TTY-Protokolls werden Terminatoren nicht per PRINT-Befehl den
Datenausgängen hinzugefügt. Auch der INPUT-Befehl kann nicht für Dateneingänge genutzt werden,
anstatt dessen wird die Funktion INKEY$( ) genutzt, um ein Zeichen zurückzugeben.
Format: COOKED #n
n: 20 oder 21 (Nummer der Schnittstelle)
G HINWEIS
Mit diesem Befehl stellen Sie für die definierte Schnittstelle den COOKED-Modus
ein.
COOKED-Modus
Bei Verwendung des TTY-Protokolls werden Terminatoren per PRINT-Befehl den Datenausgängen
hinzugefügt. Der INPUT-Befehl kann für Dateneingänge genutzt werden. Dies ist die
Standardeinstellung.
127
ASCII-Codetabelle
128
7.6 Übertragungsfehler
Übertragungsfehlercodes
Die unten aufgeführten Fehlernummern zeigen die folgenden Übertragungsfehler auf:
Fehlernummer
Beschreibung
30
Anzahl der empfangenen Daten und die der Variablen des INPUT-Befehls sind nicht
identisch.
31
Es ist nicht möglich eine Kommunikation mit dem Gerät, das über die RS232C- oder
die TEACH-Schnittstelle angeschlossen ist, herzustellen.
33
Daten ohne Terminator über die RS232C- Schnittstelle empfangen und
Speicherüberlauf.
34
Parity-, Überlauf- oder Ordnungsfehler in der RS232C-Schnittstellenkommunikation.
36
Eingabe über RS232C übersteigt 80 Zeichen.
Ursachen und Fehlerbeseitigung
Fehler 31
Tritt auf, wenn die Spannungszufuhr ausgeschaltet ist oder wenn die Konfiguration
nicht korrekt eingestellt ist.
Fehler 30 bis 36 Wird gewöhnlich durch einen Programmeingabefehler verursacht.
Fehler 33
Tritt auf, wenn eine große Menge von Daten übertragen wird.
Fehler 34
Tritt auf, wenn die Übertragung von Störungen beeinflußt wird. Beseitigen Sie die
Ursache der Störung (zu langes oder geknicktes Kabel oder störungserzeugendes
Gerät in der Nähe) und starten Sie dann die Übertragung erneut.
Wenn ein Übertragungsfehler auftritt, sollten Sie anhand des Flußdiagramms auf der nächsten Seite alle
Schritte überprüfen und so die Fehlerursache nachvollziehen und beseitigen.
129
Ablaufdiagramm: Überprüfung von Kommunikationsfehlern
130
Herunterladen