RAPID Programmiersprache: Syntax, Datentypen und Robotersteuerung
Eingeordnet in Elektronik
Geschrieben am in
Deutsch mit einer Größe von 15,81 KB
RAPID Sprache
Kommentare:! Dies ist ein Kommentar
Header-Datei:
%%%
VERSION: 1 (Version M94 des Programms)
SPRACHE: Español (alle Sprachen)
%%%
MODULE
MODULE <nombre_módulo> [<Liste der atributos>]
<Liste Statement <Datenbank
<Liste Statement rutina>
ENDMODULE
[<Liste Atributos>]:
SYSMODULE: Module des Systems.
NOSTEPIN: nicht eingeben können während der Intensivierung.
Viewonly: Sie können nicht geändert werden.
READONLY: Sie können nicht geändert werden, aber seine Attribute.
ROUTINES
Verfahren
PROC <name procedimiento> (Parameter)
<Liste Name> Anweisungen;
Liste> instrucciones>;
ERROR Liste> instrucciones>;
ENDPROC
Funktionen
FUNC-Typ> dato> value (Parameter)
<Liste Name> Anweisungen;
Liste> instrucciones>;
Return data;
ERROR Liste> instrucciones>;
ENDFUNC
Unterbrechungen
TRAP <name trap>
<Liste Name> Anweisungen;
Liste> instrucciones>;
ERROR Liste> instrucciones>;
ENDTRAP
Mögliche Persistenz für eine Tatsache:
VAR: variablen Daten. Sein Wert kann im Programm geändert werden.
CONST: konstante Daten. Nicht erlaubt, um geändert werden.
PERS: persistente Daten. Wenn Sie das Programm um weitere Hinrichtungen um Änderungen bleiben die gleichen.
DATENTYPEN
bool (Boolean)
VAR bool <identifier>: = <value>
<value>: = TRUE / FALSE <expresión lógica>
Beispiel:
VAR bool flag;
flag: = TRUE;
flag: = Wert1> Wert2;
clok (Clock)
VAR clok <bezeichner>; Maximum: 4294967 Sekunden.
ClkReset, ClkStart, ClkStop und ClkRead
Beispiel:
VAR clok Uhr;
ClkReset Uhr;
confdata (Struktur) Definieren Sie die Konfigurationen der Roboterachsen. In der ABB = [1,0,0,0]
Komponenten:
cf1: Quadranten der Priorität 1 verwendet.
cf4: Quadrant verwendet im Rahmen von Schwerpunkt 4.
Sf6: Quadrant Welle 6 verwendet.
CFX: Nicht verwendet.
Beispiel:
Confdata conf15 VAR: = [1, -1,0,0]
dionum wird in Kombination mit Anweisungen und Funktionen, die Ein-und Digital-Ausgang manipuliert werden.
Beispiel:
CONST dionum geschlossen: = 1;
SetDO pinza1 geschlossen;
Wird verwendet, um errnum behebbare Fehler beschreiben, die während der Ausführung eines Programms, so kann es durch den Fehler-Handler verarbeitet werden.
ERRNO: System-Variablen des Systems.
Beispiel:
CONST err_maq1 errnum: = 1;
IF dinput (DI1) = 0 RAISE err_maq1;
Definieren extjoint Position der externen Achsen der Vorrichtungen oder Werkstücke Handler.
intnum dient zur Identifizierung eines Interrupts.
VAR error_transp;
Error_transp CONNECT MIT correg_transp;
ISignalDI DI1, 1, error_transp;
iodev für serielle Kanäle, wie beispielsweise Drucker und Dateien verwendet.
LoadData dient dazu, die Belastungen in den Montageflansch des Roboters installiert beschreiben.
mecunit dient dazu, die unterschiedlichen mechanischen Einheiten, die kontrolliert werden kann und das sich von dem Roboter zugegriffen werden kann und aus dem Programm zu definieren.
Numerische Werte num
Beispiel:
VAR num ein;
a: = 5;
Leitlinien Reihe von Tools und Anleitungen Achse Rotationen in Form von Quaternionen (Q1, Q2, Q3, Q4).
[Cos (? / 2), vi sin (? / 2), vj · sen (? / 2), VK · sen (? / 2)]
pos (Struktur) die Haltung nur x, y und z in Millimetern.
Beispiel:
VAR pos p1;
p1: = [500,0,940];
p1.Y: = p1.Y + 50;
wird darstellen, um von einem Koordinatensystem zu einem anderen wechseln.
Komponenten
trans: Desplazamineto an Position (x, y, z)
rot: Drehen Sie das Koordinatensystem (Fallacy).
Beispiel:
VAR Base1 darstellen;
base1.Trans: = [50, 0, 40];
base1.Rot: = [1, 0, 0, 0];
robtarget (Struktur) dient dazu, die Position des Roboters zu definieren.
Komponenten:
trans: Positionen (x, y, z)
rot: Guidance-Werkzeug (Q1, Q2, Q3, Q4)
robconf: Konfiguration der Achsen (C1, C2, C3, C4)
extax: Position der externen Achsen (E1, E2, E3, E4, E5, E6)
Beispiel:
CONST robtarget p1: = [[x, y, z], [Q1, Q2, Q3, Q4], [C1, C2, C3, C4], [E1, E2, E3, E4, E5, E6]];
CONST robtarget p1: = [[x, y, z], [Q1, Q2, Q3, Q4], [1,0,0,0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];
Zeichenkette string
Beispiel:
VAR string text;
Text: = Start des Systems;
tooldata (Struktur) Beschreiben Sie die Eigenschaften eines Werkzeugs.
Komponenten:
robhold: Boolean legt fest, ob der Roboter das Werkzeug oder die nicht im Besitz (TRUE / FALSE)
TFrame: Coordinate System-Tool
Standpunkt des TCP (x, y, z)
Orientierung (Q1, Q2, Q3, Q4)
tload: Loading-Tool
Gewicht (Masse)
Schwerpunkt (x, y, z)
Time Achsen des Werkzeugs (Q1, Q2, Q3, Q4)
Trägheitsmoment der Achsen (ix, iy, iz)
Beispiel:
CONST tooldata Werkzeug: = [true, [[x, y, z], [Q1, Q2, Q3, Q4]], [Masse [xg, yg, zg], [qg1, qg2, qg3, QG4], ix , iy, iz]];
CONST robtarget p1: = [x, y, z], [Q1, Q2, Q3, Q4], [1,0,0,0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9];
wobjdata (Struktur) In einigen Anwendungen ist der Roboter nicht tragen das Werkzeug, sondern der Gegenstand der Arbeit, während das Werkzeug fixiert ist. Dann spricht er von einem stationären TCP. Dies ist der einzige Fall, in dem die programmierten Bewegungen sind nicht auf TCP, die stationäre erzählt wird, sondern um zu arbeiten. Die Objekte der Arbeit sollte als eine persistente Variablen (PERS) und nie in einer Furche definiert werden.
bool robhold: Ist der Roboter halten die Arbeit Objekt?. Dies ist für stationäre Tools zum
bool ufprog: Ist das System der festen Koordinaten Benutzer. Es ist falsch, wenn Sie koordiniert externe Achsen
ufmec string: mechanische Einheit (Motor) mit dem abgestimmten externen Achse zugeordnet (nur wenn ufprog ist falsch).
uframe stellen: User Coordinate System, in der Regel im Zusammenhang mit der Arbeitsfläche oder Vorrichtungen, für die DEZA in der Welt. Ist eine stationäre Werkzeug, bezieht sich die DEZA mit dem Handgelenk.
Oframe stellen: Koordinatensystem des Objekts bezeichnet der DEZA-Arbeit des Benutzers.
Beispiel:
PERS wobjdata obj2: = [FALSE, TRUE, "", [[300600200], [1,0,0,0 ]],[[ 0,200,30], [1,0,0,0]]];
Der Roboter hat das Tool. Die DEZA Benutzer festgesetzt ist, wurde noch nicht gedreht und sein Ursprung ist mit den Koordinaten (300.600.200) (mm) für den SCD in der Welt. Die DEZA arbeitet Objekt nicht gedreht worden und die Koordinaten von ihrer Herkunft sind (0,200,30) (mm) in der DEZA des Benutzers.
SpeedDate: Geschwindigkeit von Bewegungen. Es gibt vordefinierte Werte: V100, V200, V1000, .... Der Wert gibt translatorische Geschwindigkeit in mm / s; auch gibt die vel. Rotation.
Zonedate: Genauigkeit, mit denen sie eine Position vor dem Roboter auf die nächste Position zu gehen erreichen sollte. Es gibt vordefinierte Werte: Z10, Z20, Z50, fein, .... Der Wert gibt die maximale Differenz in mm. Bezüglich der Position bestellt werden. Weitere Parameter sind angegeben: Leitlinien, externe Achsen, ... Es unterscheidet auch zwischen den Grenzübergängen und Haltepunkten.
Bewegungsrichtungen
Mobil: navigieren Sie zu dem Punkt, gerade.
Movel p1, v100, z10, tool1;
MOVEC bewegte sich im Kreis.
MOVEC p0, p1, v100, z10, tool1;! Auge: zwei Punkte
MoveJ schnell bewegte, ohne die Sicherung der Weg gefolgt (ohne Koordinierung in der Geschwindigkeit zwischen den Achsen des Roboters).
MoveJ p1, v100, z10, tool1;
Offs dient dazu, fügen Sie ein auf eine bestimmte Position des Roboters auszugleichen.
Offs (Punto, offsetX, offsetY, offsetZ)
Point = robtarget, offsetX = num, offsetY = num, num = offsetZ
Beispiel
Movel p1, v100, fein, tool1;
Movel offs (p1, 100,0,0), v100, fein, tool1;
MoveJ offs (p1, 100,100,0,0), v100, fein, tool1;
Movel offs (p1, 0,100,0), v100, fein, tool1;
p1: = offs (p1, 100,0,0);
HINWEISE
Ändern Sie den Wert der Produktion
Reset Deaktivierung digital> <output = 0
September <output digital> Aktivierung = 1
SetDO do1, 1
Standby
WaitDI DI1, 1 Warten Sie, bis Sie ein digitales Signal wiederum
0,5 WaitTime Warten Sie einige Zeit (Sekunden)
WhileUntil Warten Sie, bis bestimmte Bedingungen erfüllt sind
FLOW CONTROL
Kompakt, wenn eine Anweisung ausgeführt wird, wenn eine Bedingung erfüllt ist.
IF <Bedingung> Instruction;
Wenn verschiedene Anweisungen ausgeführt werden, wenn die Bedingung
<condition> IF THEN
Instruktion;
ELSE
Instruktion;
ENDIF
FÜR
FÜR <Counter> von VI bis VF [STEP Schrittweite] ABl
Instruktion;
ENDFOR
WHILE
DO WHILE <condition>
Instruktion;
Endwhile
TEST
TEST <data>
Case Wert1, Wert2, .., Wert (n-1):
rutina1;
CASE Wert n:
rutinax;
DEFAULT
Anweisungen;
EndTest
GOTO
GOTO Label
DH-Parameter:
• Anzahl der Verbindungen von 0 bis N. Der Link 0 wird festgelegt Basis des Roboters.
• Anzahl der Gelenke von 1 bis N.
• Bestimmen Sie, was sind die Achsen jedes Gelenk, Rotation oder Translation.
• 0 bis N-1 legte die zi-Achse auf der Achse des gemeinsamen i +1.
• Legen Sie den Ursprung der S0-Basis-System überall auf der z0-Achse. X0 und y0 Wählen Sie mit der rechten Hand-Regel.
• 1 bis N-1 versetzen Sie das System an der Kreuzung Wenn zi mit dem Gemeinsamen normale Linie-1 und zi zi. • Platzierung in der elften gemeinsamen normale Linie-1 und zi zi.
• Legen Sie yi zu runden das Rechtshänder mit xi und zi.
• Platzierung Sn-System am Ende des Roboters, mit parallelen Zn Zn-1 und normalen xn und Zn Zn-1.
• Holen Sie sich das ?I umdrehen, so dass zi-1 xi-1 und sind parallel
• Holen Sie sich entlang bewegt di zi-1 für xi-1 und ausgerichtet sind
• Holen Sie sich entlang bewegt ai xi auf den Ursprung der Si-1 und Si entsprechen.
• Rufen Sie das umdrehen ?I xi für Systeme zu entsprechen und Si-Si-1.
Singular-Konfigurationen:
- Definition von körperlicher Bewegung: eine einzigartige Roboter Konfigurationen sind diejenigen, für die extreme Geschwindigkeiten nicht mit einer endlichen Geschwindigkeit Gelenke, oder wenn Sie ein gewisses Maß an Bewegungsfreiheit zu verlieren durchgeführt werden.
- Mathematische Definition: Der Roboter ist in einer einzigartigen Konfiguration, wenn der Rang der Jacobi-Matrix [mx] ist weniger als m. Im Falle, dass n = m: Einzigartigkeit liegt vor, wenn die Determinante der Jacobi-Matrix null (det J (q) = 0 ist)
- Konkret: Wenn der Roboter im Rahmen ihres Arbeitsbereichs, weil sie verliert Möglichkeiten ausgerichtet sind Bewegung, oder wenn zwei oder mehr Achsen der Gelenke in der gleichen Art (Rotation oder Translation)
Bahn-Typen
- Punkt zu Punkt: Egal, welchen Weg das Ende des Roboters. Nur Fragen, die den Endpunkt angegeben erreichen
Typen:
Bewegungsachse Welle: eine Welle bewegt sich nur, jedes Mal, wenn (erhöhte Zyklus Zeit) (Nur in sehr einfachen Roboter oder beschränkt Steuergerät)
Gleichzeitige Bewegung der Achsen: Die Achsen sofort beginnen. Jeder Mensch wird, wenn Sie (hohe Anforderungen unbrauchbar)
Koordinierte Bewegung: Beginn und Ende zur gleichen Zeit
- Koordinierte und Isochronen: Egal, welchen Weg das Ende des Roboters, aber die Achsen werden gleichzeitig bewegt, verlangsamt die Gelenke schneller, so dass alle Achsen sind rechtzeitig abgeschlossen werden. Total time = Minimum. Die Vermeidung unnötiger Anforderungen an Geschwindigkeit und Beschleunigung.
- Kontinuierliche: Die Absicht ist, dass das Ende des Roboters Bahn eine bestimmte und bekannte beschreibt. Importieren Sie die Art und Weise, da im gleichen Teil des Roboters erfüllt seine Aufgabe (Schweißen, Laserschneiden, etc.) .. Typische Flugbahn: Gerade, Bogen, andere.
Methoden der Roboter programmieren
• Programmierung der Orientierung: Es ist der Roboter auf dem Weg Sie zu einem späteren Zeitpunkt im Automatik-Modus zu wiederholen.
- Passiv: Der Programmierer liefert die Energie zu bewegen
Direct: Verschiebt das Ende der Roboter direkt.
Dummy: Statt der realen Roboter bewegt sich eine Dummy-Kinematik mit der gleichen Konfiguration, aber viel leichter und einfacher zu bewegen.
- Aktive: Benutze das reibungslose Funktionieren des Roboter-System, aus einer Tastatur oder Joystick gesteuert
• textuelle Programmierung: Gestützt auf die Existenz einer formalen Programmiersprache, die Befehle an den Roboter geben. PROGRAMM: Eine Folge von Befehlen erste bearbeitet und durch den Anwender geschrieben und dann vom Roboter ausgeführt
- Wege, bei denen ein Programm:
• Ausgelegt: erleichtert das Debugging und Tuning
• zusammengetragen: notwendig für Sprachen mit komplexen Syntax, die Ausführungsgeschwindigkeit erhöht
Kriterien für die Durchführung:
- Lay-out: Schema Bereitstellung von Ausrüstungen, Maschinen und andere Anlagen
- Control Architektur: Hard-und Software
- Wahl der Ausrüstung: insbesondere die ROBOT
- Sicherheit: speziell behandelt, um Maschinen mit automatischer erscheinen
- Wirtschaftliche Motivation für die Umsetzung
Auflösung: Minimum zu erhöhen, die die Steuerung übernimmt. Begrenzt durch elektronische Sensoren, Wandler, etc..
Genauigkeit: Abstand zwischen der geplanten und der durchschnittliche Wert der Punkte tatsächlich erreicht wird. Kalibrierung Fehler, Verzerrungen, Modellierung, und so weiter.
Wiederholbarkeit: Radius des Gebietes, die die Punkte durch den Roboter bewegt sich nach vielen bedeckt. Aufgrund des mechanischen Systems: Reibung, Hysterese, tote Zonen, etc..