2. Datenstrukturbeschreibung
2.1. Roboterstatus-Rückmeldungsstrukturtyp
1class ROBOT_AUX_STATE(Structure):
2 _pack_ = 1
3 _fields_ = [
4 ("servoId", c_uint8), # Servotreiber-ID-Nummer
5 ("servoErrCode", c_int), # Servotreiber-Fehlercode
6 ("servoState", c_int), # Servotreiber-Status
7 ("servoPos", c_double), # Servo aktuelle Position
8 ("servoVel", c_float), # Servo aktuelle Geschwindigkeit
9 ("servoTorque", c_float), # Servo aktuelles Drehmoment
10 ]
11
12class EXT_AXIS_STATUS(Structure):
13 _pack_ = 1
14 _fields_ = [
15 ("pos", c_double), # Erweiterungsachsenposition
16 ("vel", c_double), # Erweiterungsachsengeschwindigkeit
17 ("errorCode", c_int), # Erweiterungsachsen-Fehlercode
18 ("ready", c_uint8), # Servo bereit
19 ("inPos", c_uint8), # Servo in Position
20 ("alarm", c_uint8), # Servo-Alarm
21 ("flerr", c_uint8), # Folgefehler
22 ("nlimit", c_uint8), # Negativer Grenzwert erreicht
23 ("pLimit", c_uint8), # Positiver Grenzwert erreicht
24 ("mdbsOffLine", c_uint8), # Treiber-485-Bus offline
25 ("mdbsTimeout", c_uint8), # Steuerkarte zu Steuerkasten 485-Kommunikationszeitüberschreitung
26 ("homingStatus", c_uint8), # Erweiterungsachsen-Referenzierstatus
27 ]
28
29class WELDING_BREAKOFF_STATE(Structure):
30 _pack_ = 1
31 _fields_ = [
32 ("breakOffState", c_uint8), # Schweißunterbrechungsstatus
33 ("weldArcState", c_uint8), # Schweißlichtbogen-Unterbrechungsstatus
34 ]
35
36# ==================== Vollständige Roboterstatusstruktur ====================
37class RobotStatePkg(Structure):
38 """
39 Roboterstatus-Rückmeldungsdatenpaket
40 """
41 _pack_ = 1
42 _fields_ = [
43 # Rahmenkopf-Informationen
44 ("frame_head", c_uint16), # Rahmenkopf, vereinbart als 0x5A5A
45 ("frame_cnt", c_uint8), # Rahmenzählung, zyklischer Zähler 0-255
46 ("data_len", c_uint16), # Länge des Dateninhalts
47 ("program_state", c_uint8), # Programmstatus, 1-gestoppt; 2-läuft; 3-pausiert
48 ("robot_state", c_uint8), # Roboterbewegungsstatus, 1-gestoppt; 2-läuft; 3-pausiert; 4-ziehen
49 ("main_code", c_int), # Hauptfehlercode
50 ("sub_code", c_int), # Unterfehlercode
51 ("robot_mode", c_uint8), # Robotermodus, 1-Handmodus; 0-Automatikmodus
52
53 # Gelenkpositionen und -geschwindigkeiten
54 ("jt_cur_pos", c_double * 6), # Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
55 ("tl_cur_pos", c_double * 6), # Aktuelle Werkzeugposition [x,y,z,rx,ry,rz]
56 ("flange_cur_pos", c_double * 6), # Aktuelle Endflanschposition [x,y,z,rx,ry,rz]
57 ("actual_qd", c_double * 6), # Aktuelle Geschwindigkeiten von 6 Gelenken, Einheit deg/s
58 ("actual_qdd", c_double * 6), # Aktuelle Beschleunigungen von 6 Gelenken, Einheit deg/s^2
59 ("target_TCP_CmpSpeed", c_double * 2), # TCP zusammengesetzte Befehlgeschwindigkeit [Position mm/s, Orientierung deg/s]
60 ("target_TCP_Speed", c_double * 6), # TCP Befehlgeschwindigkeit [x,y,z,rx,ry,rz]
61 ("actual_TCP_CmpSpeed", c_double * 2), # TCP zusammengesetzte tatsächliche Geschwindigkeit [Position mm/s, Orientierung deg/s]
62 ("actual_TCP_Speed", c_double * 6), # TCP tatsächliche Geschwindigkeit [x,y,z,rx,ry,rz]
63 ("jt_cur_tor", c_double * 6), # Aktuelle Drehmomente von 6 Achsen, Einheit N·m
64
65 # Werkzeug- und Werkstückkoordinatensysteme
66 ("tool", c_int), # Angewandtes Werkzeugkoordinatensystem Nummer
67 ("user", c_int), # Angewandtes Werkstückkoordinatensystem Nummer
68
69 # Digitale E/A
70 ("cl_dgt_output_h", c_uint8), # Digitaler IO-Ausgang des Steuerkastens 15-8
71 ("cl_dgt_output_l", c_uint8), # Digitaler IO-Ausgang des Steuerkastens 7-0
72 ("tl_dgt_output_l", c_uint8), # Digitaler IO-Ausgang des Werkzeugs 7-0, nur bit0-bit1 gültig
73 ("cl_dgt_input_h", c_uint8), # Digitaler IO-Eingang des Steuerkastens 15-8
74 ("cl_dgt_input_l", c_uint8), # Digitaler IO-Eingang des Steuerkastens 7-0
75 ("tl_dgt_input_l", c_uint8), # Digitaler IO-Eingang des Werkzeugs 7-0, nur bit0-bit1 gültig
76
77 # Analoge E/A
78 ("cl_analog_input", c_uint16 * 2), # Analoger Eingang des Steuerkastens [0],[1]
79 ("tl_anglog_input", c_uint16), # Analoger Werkzeugeingang
80
81 # Kraft-/Drehmomentsensor
82 ("ft_sensor_raw_data", c_double * 6), # Rohdaten des Kraft-/Drehmomentsensors
83 ("ft_sensor_data", c_double * 6), # Daten des Kraft-/Drehmomentsensors
84 ("ft_sensor_active", c_uint8), # Aktivierungsstatus des Kraft-/Drehmomentsensors
85
86 # Statussignale
87 ("EmergencyStop", c_uint8), # Not-Halt-Flag, 0-nicht gedrückt, 1-gedrückt
88 ("motion_done", c_int), # Bewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
89 ("gripper_motiondone", c_uint8), # Greiferbewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
90 ("mc_queue_len", c_int), # Länge der Bewegungskommando-Warteschlange
91 ("collisionState", c_uint8), # Kollisionserkennung, 1-Kollision, 0-keine Kollision
92 ("trajectory_pnum", c_int), # Bahnpunktnummer
93 ("safety_stop0_state", c_uint8), # Sicherheitsstoppsignal SI0
94 ("safety_stop1_state", c_uint8), # Sicherheitsstoppsignal SI1
95
96 # Greiferinformationen
97 ("gripper_fault_id", c_uint8), # Fehlerhafte Greifernummer
98 ("gripper_fault", c_uint16), # Greiferfehler
99 ("gripper_active", c_uint16), # Greifer-Aktivierungsstatus
100 ("gripper_position", c_uint8), # Greiferposition
101 ("gripper_speed", c_int8), # Greifergeschwindigkeit
102 ("gripper_current", c_int8), # Greiferstrom
103 ("gripper_temp", c_int), # Greifertemperatur
104 ("gripper_voltage", c_int), # Greiferspannung
105
106 # Erweiterungsachsenstatus
107 ("aux_axis_state", ROBOT_AUX_STATE * 25), # 485 Erweiterungsachsenstatus (25)
108 ("extAxisStatus", EXT_AXIS_STATUS * 4), # UDP Erweiterungsachsenstatus (4)
109
110 # Erweiterter E/A-Status
111 ("extDIState", c_uint16 * 8), # Erweiterter DI-Eingang
112 ("extDOState", c_uint16 * 8), # Erweiterter DO-Ausgang
113 ("extAIState", c_uint16 * 4), # Erweiterter AI-Eingang
114 ("extAOState", c_uint16 * 4), # Erweiterter AO-Ausgang
115
116 # Roboter- und Gelenkstatus
117 ("rbtEnableState", c_int), # Roboter-Aktivierungsstatus
118 ("jointDriverTorque", c_double * 6), # Roboter-Gelenktreiber-Drehmoment
119 ("jointDriverTemperature", c_double * 6), # Roboter-Gelenktreiber-Temperatur
120
121 # Roboterzeit
122 #("robotTime", c_int * 7), # Roboter-Systemzeit [Jahr,Monat,Tag,Stunde,Minute,Sekunde,Millisekunde]
123 ("year", ctypes.c_uint16), # Jahr
124 ("mouth", ctypes.c_uint8), # Monat
125 ("day", ctypes.c_uint8), # Tag
126 ("hour", ctypes.c_uint8), # Stunde
127 ("minute", ctypes.c_uint8), # Minute
128 ("second", ctypes.c_uint8), # Sekunde
129 ("millisecond", ctypes.c_uint16), # Millisekunde
130
131 ("softwareUpgradeState", c_int), # Roboter-Software-Upgrade-Status
132 ("endLuaErrCode", c_uint16), # End-Lua-Status
133
134 # Analoger Ausgang
135 ("cl_analog_output", c_uint16 * 2), # Analoger Ausgang des Steuerkastens [0],[1]
136 ("tl_analog_output", c_uint16), # Analoger Werkzeugausgang
137
138 # Rotierender Greifer
139 ("gripperRotNum", c_float), # Aktuelle Drehzahl des rotierenden Greifers
140 ("gripperRotSpeed", c_uint8), # Aktuelle Drehzahl-Prozentsatz des rotierenden Greifers
141 ("gripperRotTorque", c_uint8), # Aktuelles Drehmoment-Prozentsatz des rotierenden Greifers
142
143 # Schweißunterbrechungsstatus - Verwendung einer Struktur
144 ("weldingBreakOffState", WELDING_BREAKOFF_STATE), # Schweißunterbrechungsstatus
145
146 # Zielgelenk-Drehmoment
147 ("jt_tgt_tor", c_double * 6), # Gelenkbefehls-Drehmoment
148
149 ("smartToolState", c_int), # SmartTool-Griffknopfstatus
150 ("wideVoltageCtrlBoxTemp", c_float), # Weitspannungs-Steuerkastentemperatur
151 ("wideVoltageCtrlBoxFanCurrent", c_uint16), # Weitspannungs-Steuerkasten-Lüfterstrom (mA)
152
153 # Koordinatensystemwerte
154 ("toolCoord", c_double * 6), # Aktuelle Werkzeugkoordinatensystemwerte; x,y,z,rx,ry,rz
155 ("wobjCoord", c_double * 6), # Aktuelle Werkstückkoordinatensystemwerte; x,y,z,rx,ry,rz
156 ("extoolCoord", c_double * 6), # Aktuelle externe Werkzeugkoordinatensystemwerte; x,y,z,rx,ry,rz
157 ("exAxisCoord", c_double * 6), # Aktuelle Erweiterungsachsenkoordinatensystemwerte; x,y,z,rx,ry,rz
158
159 # Last
160 ("load", c_double), # Lastmasse
161 ("loadCog", c_double * 3), # Lastschwerpunkt
162
163 # Servobefehle
164 ("lastServoTarget", c_double * 6), # Letzte ServoJ-Zielposition in der Warteschlange
165 ("servoJCmdNum", c_int), # ServoJ-Befehlszähler
166
167 # Zielgelenkdaten
168 ("targetJointPos", c_double * 6), # 6 Gelenke Befehlsposition, Einheit °
169 ("targetJointVel", c_double * 6), # 6 Gelenke Befehlgeschwindigkeit, Einheit °/s
170 ("targetJointAcc", c_double * 6), # 6 Gelenke Befehlbeschleunigung, Einheit °/s2
171 ("targetJointCurrent", c_double * 6), # 6 Gelenke Befehlstrom, Einheit A
172 ("actualJointCurrent", c_double * 6), # 6 Gelenke aktueller Strom, Einheit A
173 ("actualTCPForce", c_double * 6), # Roboter-Endeffektor-Drehmoment Nm; x,y,z,rx,ry,rz
174 ("targetTCPPos", c_double * 6), # Roboter-TCP-Befehlsposition mm; x,y,z,rx,ry,rz
175
176 ("collisionLevel", c_uint8 * 6), # Roboter-Kollisionsstufe
177 ("speedScaleManual", c_double), # Handmodus globale Geschwindigkeitsprozentsatz
178 ("speedScaleAuto", c_double), # Automatikmodus globale Geschwindigkeitsprozentsatz
179 ("luaLineNum", c_int), # Aktuelle Lua-Programmzeilennummer
180 ("abnomalStop", c_uint8), # 0-keine Abnormalität; 1-Abnormalität vorhanden
181 ("currentLuaFileName", c_uint8 * 256), # Name des aktuell ausgeführten Lua-Programms
182 ("programTotalLine", c_uint8), # Gesamtzeilen des Lua-Programms
183 ("safetyBoxSingal", c_uint8 * 6), # Roboter-Tastenfeld-Tastenstatus
184
185 # Schweißdaten
186 ("weldVoltage", c_double), # Schweißspannung V
187 ("weldCurrent", c_double), # Schweißstrom
188 ("weldTrackVel", c_double), # Schweißnahtverfolgungsgeschwindigkeit mm/s
189
190 ("tpdException", c_uint8), # TPD-Bahnladeanzahl überschritten, 0-nicht überschritten, 1-überschritten
191 ("alarmRebootRobot", c_uint8), # Warnung, 1-Not-Halt-Taste loslassen und Steuerkasten neu starten, 2-Gelenkkommunikationsstörung, Steuerkasten neu starten
192 ("modbusMasterConnect", c_uint8), # bit0-7 entsprechen ModbusTCP-Master 0-7 Verbindungsstatus
193 ("modbusSlaveConnect", c_uint8), # ModbusTCP-Slave-Verbindungsstatus
194 ("btnBoxStopSignal", c_uint8), # Tastenfeld-Not-Halt-Signal
195 ("dragAlarm", c_uint8), # Zieh-Warnung
196 ("safetyDoorAlarm", c_uint8), # Sicherheitstürwarnung
197 ("safetyPlaneAlarm", c_uint8), # Eintritt in Sicherheitswand-Warnung
198 ("motonAlarm", c_uint8), # Bewegungswarnung
199 ("interfaceAlarm", c_uint8), # Eintritt in Interferenzbereich-Warnung
200 ("udpCmdState", c_int), # Port 20007 UDP-Kommunikationsverbindungsstatus
201 ("weldReadyState", c_uint8), # Schweißgerät-Bereitschaftsstatus
202 ("alarmCheckEmergStopBtn", c_uint8), # 0-normal; 1-Kommunikationsstörung, prüfen ob Not-Halt-Taste losgelassen ist
203 ("tsTmCmdComError", c_uint8), # 0-normal; 1-Drehmomentbefehl-Kommunikationsfehler
204 ("tsTmStateComError", c_uint8), # 0-normal; 1-Drehmomentstatus-Kommunikationsfehler
205 ("ctrlBoxError", c_int), # Steuerkastenfehler
206 ("safetyDataState", c_uint8), # Sicherheitsdatenstatus-Flag
207 ("forceSensorErrState", c_uint8), # Kraftsensor-Verbindungszeitüberschreitungsfehler
208 ("ctrlOpenLuaErrCode", c_uint8 * 4), # 4 Controller-Peripherieprotokoll-Fehlercodes
209 ("strangePosFlag", c_uint8), # Derzeit in singulärer Pose-Flag
210 ("alarm", c_uint8), # Warnung
211 ("driverAlarm", c_uint8), # Treiber-Alarmachsenummer
212 ("aliveSlaveNumError", c_uint8), # Aktiver Slave-Anzahlfehler
213 ("slaveComError", c_uint8 * 8), # Slave-Fehlerstatus
214 ("cmdPointError", c_uint8), # Befehlspunktfehler
215 ("IOError", c_uint8), # IO-Fehler
216 ("gripperError", c_uint8), # Greiferfehler
217 ("fileError", c_uint8), # Dateifehler
218 ("paraError", c_uint8), # Parameterfehler
219 ("exaxisOutLimitError", c_uint8), # Externe Achse Weichgrenzenüberschreitungsfehler
220 ("driverComError", c_uint8 * 6), # Treiberkommunikationsfehler
221 ("driverError", c_uint8), # Treiberkommunikationsfehler-Achsennummer
222 ("outSoftLimitError", c_uint8), # Weichgrenzenüberschreitungsfehler
223 ("axleGenComData", c_uint8 * 130), # Achsen allgemeine Kommunikationsdaten (azyklisch)
224 ("socketConnTimeout", c_uint8), # Socket-Verbindungszeitüberschreitung
225 ("socketReadTimeout", c_uint8), # Socket-Lesezeitüberschreitung
226 ("tsWebStateComErr", c_uint8), # TS_WEB-Statuskommunikationsfehler
227 ("exaxisCoordID", c_uint8), # Externe erweiterte Achsen-ID
228 ("check_sum", c_uint16) # Summenprüfung
229 ]
2.2. Controller-Statusrückmeldungs-Datenpaket
Neu in Version Python: SDK-v2.1.7
Variable |
Bedeutung |
|---|---|
program_state |
Programmausführungsstatus: 1 - gestoppt; 2 - läuft; 3 - pausiert |
robot_state |
Roboterbewegungsstatus: 1 - gestoppt; 2 - läuft; 3 - pausiert; 4 - Führung (Drag) |
main_code |
Hauptfehlercode |
sub_code |
Unterfehlercode |
robot_mode |
Robotermodus: 0 - Automatikmodus; 1 - Handmodus |
jt_cur_pos[i] |
Aktuelle Gelenkposition, Einheit [°], i:0~5 |
tl_cur_pos[i] |
Aktuelle Werkzeugpose (TCP), Einheiten [° & mm], i:0~5 |
flange_cur_pos[i] |
Aktuelle Pose des Endflansches, Einheiten [° & mm], i:0~5 |
actual_qd[i] |
Aktuelle Gelenkgeschwindigkeit des Roboters, Einheit [°/s], i:0~5 |
actual_qdd[i] |
Aktuelle Gelenkbeschleunigung des Roboters, Einheit [°/s²], i:0~5 |
target_TCP_CmpSpeed[i] |
Befohlene TCP-Resultierende-Geschwindigkeit, Einheiten [mm/s & °/s], i:0~1 |
target_TCP_Speed[i] |
Befohlene TCP-Geschwindigkeit (Komponenten), Einheiten [mm/s & °/s], i:0~5 |
actual_TCP_CmpSpeed[i] |
Tatsächliche TCP-Resultierende-Geschwindigkeit, Einheiten [mm/s & °/s], i:0~1 |
actual_TCP_Speed[i] |
Tatsächliche TCP-Geschwindigkeit (Komponenten), Einheiten [mm/s & °/s], i:0~5 |
jt_cur_tor[i] |
Aktuelles Gelenkmoment, Einheit [Nm], i:0~5 |
tool |
Nummer des verwendeten Werkzeugkoordinatensystems |
user |
Nummer des verwendeten Werkstückkoordinatensystems |
cl_dgt_output_h |
Digitalausgänge des Steuerkastens (Bits 15-8) |
cl_dgt_output_l |
Digitalausgänge des Steuerkastens (Bits 7-0) |
tl_dgt_output_l |
Digitalausgänge des Werkzeugs (Bits 7-0, nur Bit0-Bit1 gültig) |
dgt_input_h |
Digitaleingänge des Steuerkastens (Bits 15-8) |
cl_dgt_input_l |
Digitaleingänge des Steuerkastens (Bits 7-0) |
tl_dgt_input_l |
Digitaleingänge des Werkzeugs (Bits 7-0, nur Bit0-Bit1 gültig) |
cl_analog_input[i] |
Analogeingänge des Steuerkastens, i:0~2 |
tl_anglog_input |
Analogeingang des Werkzeugs |
ft_sensor_raw_data |
Rohdaten des Kraft-/Momentensensors, Einheiten [N & Nm], i:0~5 |
ft_sensor_data |
Verarbeitete Daten des Kraft-/Momentensensors, Einheiten [N & Nm], i:0~5 |
ft_sensor_active |
Aktivierungsstatus des Kraft-/Momentensensors: 0 - zurückgesetzt, 1 - aktiviert |
EmergencyStop |
Not-Halt-Status: 0 - Not-Halt nicht betätigt, 1 - Not-Halt betätigt |
motion_done |
Bewegungsabschluss-Signal: 1 - abgeschlossen, 0 - nicht abgeschlossen |
gripper_motiondone |
Greiferbewegungsabschluss-Signal: 1 - abgeschlossen, 0 - nicht abgeschlossen |
mc_queue_len |
Länge der Bewegungsbefehlswarteschlange |
collisionState |
Kollisionserkennung: 1 - Kollision, 0 - keine Kollision |
trajectory_pnum |
Trajektorienpunktnummer |
safety_stop0_state |
Sicherheitsstopp-Signal SI0 |
safety_stop1_state |
Sicherheitsstopp-Signal SI1 |
gripper_fault_id |
Nummer des fehlerhaften Greifers |
gripper_fault |
Greiferfehler |
gripper_active |
Greifer-Aktivierungsstatus: 0 - nicht aktiviert, 1 - aktiviert |
gripper_position |
Greiferposition (Prozent) |
gripper_speed |
Greifergeschwindigkeit (Prozent) |
gripper_current |
Greiferstrom (Prozent) |
gripper_tmp |
Greifertemperatur, Einheit [°C] |
gripper_voltage |
Greiferspannung, Einheit [V] |
auxState.servoId |
485-Erweiterungsachse: Servoantriebs-ID, i:0~3 |
auxState.servoErrCode |
485-Erweiterungsachse: Fehlercode des Servoantriebs, i:0~3 |
auxState.servoState |
485-Erweiterungsachse: Status des Servoantriebs, i:0~3 |
auxState.servoPos |
485-Erweiterungsachse: Aktuelle Servoposition, i:0~3 |
auxState.servoVel |
485-Erweiterungsachse: Aktuelle Servogeschwindigkeit, i:0~3 |
auxState.servoTorque |
485-Erweiterungsachse: Aktuelles Servodrehmoment, i:0~3 |
extAxisStatus[i].pos |
UDP-Erweiterungsachse: Position, i:0~3 |
extAxisStatus[i].vel |
UDP-Erweiterungsachse: Geschwindigkeit, i:0~3 |
extAxisStatus[i].errorCode |
UDP-Erweiterungsachse: Fehlercode, i:0~3 |
extAxisStatus[i].ready |
UDP-Erweiterungsachse: Servo bereit, i:0~3 |
extAxisStatus[i].inPos |
UDP-Erweiterungsachse: Servo in Position, i:0~3 |
extAxisStatus[i].alarm |
UDP-Erweiterungsachse: Servo-Alarm, i:0~3 |
extAxisStatus[i].flerr |
UDP-Erweiterungsachse: Folgefhler, i:0~3 |
extAxisStatus[i].nlimit |
UDP-Erweiterungsachse: Negativer Endschalter erreicht, i:0~3 |
extAxisStatus[i].pLimit |
UDP-Erweiterungsachse: Positiver Endschalter erreicht, i:0~3 |
extAxisStatus[i].mdbsOffLine |
UDP-Erweiterungsachse: Antriebs-485-Bus offline |
extAxisStatus[i].mdbsTimeout |
UDP-Erweiterungsachse: 485-Kommunikation zwischen Steuerkarte und Steuerkasten Zeitüberschreitung |
extAxisStatus[i].homingStatus |
UDP-Erweiterungsachse: Referenzfahrt-Status |
extDIState |
Erweiterter Digitaleingangsstatus |
extDOState |
Erweiterter Digitalausgangsstatus |
extAIState |
Erweiterter Analogeingangsstatus |
extAOState |
Erweiterter Analogausgangsstatus |
rbtEnableState |
Roboter-Aktivierungsstatus (Enable) |
jointDriverTorque |
Aktuelles Drehmoment der Gelenkantriebe |
jointDriverTemperature |
Aktuelle Temperatur der Gelenkantriebe |
year |
Jahr |
mouth |
Monat |
day |
Tag |
hour |
Stunde |
minute |
Minute |
second |
Sekunde |
millisecond |
Millisekunde |
softwareUpgradeState |
Status des Roboter-Software-Upgrades |
endLuaErrCode |
Ausführungsstatus des Endeffektor-LUA-Skripts |
cl_analog_output[i] |
Analogausgänge des Steuerkastens, i:0~1 |
tl_analog_output |
Analogausgang des Werkzeugs |
gripperRotNum |
Aktuelle Rotationsanzahl des Rotationsgreifers |
gripperRotSpeed |
Aktuelle Rotationsgeschwindigkeit des Rotationsgreifers (Prozent) |
gripperRotTorque |
Aktuelles Rotationsdrehmoment des Rotationsgreifers (Prozent) |
weldingBreakOffState |
Schweißunterbrechungsstatus |
jt_tgt_tor |
Befehls-Gelenkmoment |
smartToolState |
SmartTool-Griff Tastenstatus |
wideVoltageCtrlBoxTemp |
Temperatur des Weitspannungs-Steuerkastens |
wideVoltageCtrlBoxFanCurrent |
Lüfterstrom des Weitspannungs-Steuerkastens (mA) |
toolCoord[i] |
Werkzeugkoordinatensystem, i:0~5 |
wobjCoord[i] |
Werkstückkoordinatensystem, i:0~5 |
extoolCoord[i] |
Externes Werkzeugkoordinatensystem, i:0~5 |
exAxisCoord[i] |
Erweiterungsachsen-Koordinatensystem, i:0~5 |
load |
Lastmasse |
loadCog[i] |
Lastschwerpunkt, i:0~2 |
lastServoTarget[i] |
Letzte ServoJ-Zielposition in der Warteschlange, i:0~5 |
servoJCmdNum |
ServoJ-Befehlszähler |
2.3. Servocontroller-Status
Neu in Version Python: SDK-v2.1.3
Variable |
Bedeutung |
|---|---|
servoId |
Servoantriebs-ID-Nummer |
servoErrCode |
Fehlercode des Servoantriebs |
servoState |
Status des Servoantriebs |
servoPos |
Aktuelle Servoposition |
servoVel |
Aktuelle Servogeschwindigkeit |
servoTorque |
Aktuelles Servodrehmoment |
2.4. Erweiterungsachsen-Status
Neu in Version Python: SDK-v2.1.3
Variable |
Bedeutung |
|---|---|
pos |
Position der Erweiterungsachse |
vel |
Geschwindigkeit der Erweiterungsachse |
errorCode |
Fehlercode der Erweiterungsachse |
ready |
Servo bereit |
inPos |
Servo in Position |
alarm |
Servo-Alarm |
flerr |
Folgefehler |
nlimit |
Negativer Endschalter erreicht |
pLimit |
Positiver Endschalter erreicht |
mdbsOffLine |
Antriebs-485-Bus offline |
mdbsTimeout |
485-Kommunikation zwischen Steuerkarte und Steuerkasten Zeitüberschreitung |
homingStatus |
Status der Referenzfahrt der Erweiterungsachse |
2.5. Schweißunterbrechungsstatus
Neu in Version Python: SDK-v2.1.3
Variable |
Bedeutung |
|---|---|
breakOffState |
Schweißunterbrechungsstatus |
weldArcState |
Lichtbogenunterbrechungsstatus beim Schweißen |
2.6. Codebeispiel
1from fairino import Robot
2# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
3robot = Robot.RPC('192.168.58.2')
4print("program_state:", robot.robot_state_pkg.program_state)
5print("robot_state:", robot.robot_state_pkg.robot_state)
6print("main_code:", robot.robot_state_pkg.main_code)
7print("sub_code:", robot.robot_state_pkg.sub_code)
8print("robot_mode:", robot.robot_state_pkg.robot_mode)
9print("jt_cur_pos0:", robot.robot_state_pkg.jt_cur_pos[0])
10print("jt_cur_pos1:", robot.robot_state_pkg.jt_cur_pos[1])
11print("jt_cur_pos2:", robot.robot_state_pkg.jt_cur_pos[2])
12print("jt_cur_pos3:", robot.robot_state_pkg.jt_cur_pos[3])
13print("jt_cur_pos4:", robot.robot_state_pkg.jt_cur_pos[4])
14print("jt_cur_pos5:", robot.robot_state_pkg.jt_cur_pos[5])
15print("tl_cur_pos0:", robot.robot_state_pkg.tl_cur_pos[0])
16print("tl_cur_pos1:", robot.robot_state_pkg.tl_cur_pos[1])
17print("tl_cur_pos2:", robot.robot_state_pkg.tl_cur_pos[2])
18print("tl_cur_pos3:", robot.robot_state_pkg.tl_cur_pos[3])
19print("tl_cur_pos4:", robot.robot_state_pkg.tl_cur_pos[4])
20print("tl_cur_pos5:", robot.robot_state_pkg.tl_cur_pos[5])
21print("flange_cur_pos0:", robot.robot_state_pkg.flange_cur_pos[0])
22print("flange_cur_pos1:", robot.robot_state_pkg.flange_cur_pos[1])
23print("flange_cur_pos2:", robot.robot_state_pkg.flange_cur_pos[2])
24print("flange_cur_pos3:", robot.robot_state_pkg.flange_cur_pos[3])
25print("flange_cur_pos4:", robot.robot_state_pkg.flange_cur_pos[4])
26print("flange_cur_pos5:", robot.robot_state_pkg.flange_cur_pos[5])
27print("actual_qd0:", robot.robot_state_pkg.actual_qd[0])
28print("actual_qd1:", robot.robot_state_pkg.actual_qd[1])
29print("actual_qd2:", robot.robot_state_pkg.actual_qd[2])
30print("actual_qd3:", robot.robot_state_pkg.actual_qd[3])
31print("actual_qd4:", robot.robot_state_pkg.actual_qd[4])
32print("actual_qd5:", robot.robot_state_pkg.actual_qd[5])
33print("actual_qdd0:", robot.robot_state_pkg.actual_qdd[0])
34print("actual_qdd1:", robot.robot_state_pkg.actual_qdd[1])
35print("actual_qdd2:", robot.robot_state_pkg.actual_qdd[2])
36print("actual_qdd3:", robot.robot_state_pkg.actual_qdd[3])
37print("actual_qdd4:", robot.robot_state_pkg.actual_qdd[4])
38print("actual_qdd5:", robot.robot_state_pkg.actual_qdd[5])
39print("target_TCP_CmpSpeed0:", robot.robot_state_pkg.target_TCP_CmpSpeed[0])
40print("target_TCP_CmpSpeed1:", robot.robot_state_pkg.target_TCP_CmpSpeed[1])
41print("target_TCP_Speed0:", robot.robot_state_pkg.target_TCP_Speed[0])
42print("target_TCP_Speed1:", robot.robot_state_pkg.target_TCP_Speed[1])
43print("target_TCP_Speed2:", robot.robot_state_pkg.target_TCP_Speed[2])
44print("target_TCP_Speed3:", robot.robot_state_pkg.target_TCP_Speed[3])
45print("target_TCP_Speed4:", robot.robot_state_pkg.target_TCP_Speed[4])
46print("target_TCP_Speed5:", robot.robot_state_pkg.target_TCP_Speed[5])
47print("actual_TCP_CmpSpeed0:", robot.robot_state_pkg.actual_TCP_CmpSpeed[0])
48print("actual_TCP_CmpSpeed1:", robot.robot_state_pkg.actual_TCP_CmpSpeed[1])
49print("actual_TCP_Speed0:", robot.robot_state_pkg.actual_TCP_Speed[0])
50print("actual_TCP_Speed1:", robot.robot_state_pkg.actual_TCP_Speed[1])
51print("actual_TCP_Speed2:", robot.robot_state_pkg.actual_TCP_Speed[2])
52print("actual_TCP_Speed3:", robot.robot_state_pkg.actual_TCP_Speed[3])
53print("actual_TCP_Speed4:", robot.robot_state_pkg.actual_TCP_Speed[4])
54print("actual_TCP_Speed5:", robot.robot_state_pkg.actual_TCP_Speed[5])
55print("jt_cur_tor0:", robot.robot_state_pkg.jt_cur_tor[0])
56print("jt_cur_tor1:", robot.robot_state_pkg.jt_cur_tor[1])
57print("jt_cur_tor2:", robot.robot_state_pkg.jt_cur_tor[2])
58print("jt_cur_tor3:", robot.robot_state_pkg.jt_cur_tor[3])
59print("jt_cur_tor4:", robot.robot_state_pkg.jt_cur_tor[4])
60print("jt_cur_tor5:", robot.robot_state_pkg.jt_cur_tor[5])
61print("tool:", robot.robot_state_pkg.tool)
62print("user:", robot.robot_state_pkg.user)
63print("cl_dgt_output_h:", robot.robot_state_pkg.cl_dgt_output_h)
64print("cl_dgt_output_l:", robot.robot_state_pkg.cl_dgt_output_l)
65print("tl_dgt_output_l:", robot.robot_state_pkg.tl_dgt_output_l)
66print("cl_dgt_input_h:", robot.robot_state_pkg.cl_dgt_input_h)
67print("cl_dgt_input_l:", robot.robot_state_pkg.cl_dgt_input_l)
68print("tl_dgt_input_l:", robot.robot_state_pkg.tl_dgt_input_l)
69print("cl_analog_input0:", robot.robot_state_pkg.cl_analog_input[0])
70print("cl_analog_input1:", robot.robot_state_pkg.cl_analog_input[1])
71print("tl_anglog_input:", robot.robot_state_pkg.tl_anglog_input)
72print("ft_sensor_raw_data0:", robot.robot_state_pkg.ft_sensor_raw_data[0])
73print("ft_sensor_raw_data1:", robot.robot_state_pkg.ft_sensor_raw_data[1])
74print("ft_sensor_raw_data2:", robot.robot_state_pkg.ft_sensor_raw_data[2])
75print("ft_sensor_raw_data3:", robot.robot_state_pkg.ft_sensor_raw_data[3])
76print("ft_sensor_raw_data4:", robot.robot_state_pkg.ft_sensor_raw_data[4])
77print("ft_sensor_raw_data5:", robot.robot_state_pkg.ft_sensor_raw_data[5])
78print("ft_sensor_data0:", robot.robot_state_pkg.ft_sensor_data[0])
79print("ft_sensor_data1:", robot.robot_state_pkg.ft_sensor_data[1])
80print("ft_sensor_data2:", robot.robot_state_pkg.ft_sensor_data[2])
81print("ft_sensor_data3:", robot.robot_state_pkg.ft_sensor_data[3])
82print("ft_sensor_data4:", robot.robot_state_pkg.ft_sensor_data[4])
83print("ft_sensor_data5:", robot.robot_state_pkg.ft_sensor_data[5])
84print("ft_sensor_active:", robot.robot_state_pkg.ft_sensor_active)
85print("EmergencyStop:", robot.robot_state_pkg.EmergencyStop)
86print("motion_done:", robot.robot_state_pkg.motion_done)
87print("gripper_motiondone:", robot.robot_state_pkg.gripper_motiondone)
88print("mc_queue_len:", robot.robot_state_pkg.mc_queue_len)
89print("collisionState:", robot.robot_state_pkg.collisionState)
90print("trajectory_pnum:", robot.robot_state_pkg.trajectory_pnum)
91print("safety_stop0_state:", robot.robot_state_pkg.safety_stop0_state)
92print("safety_stop1_state:", robot.robot_state_pkg.safety_stop1_state)
93print("gripper_fault_id:", robot.robot_state_pkg.gripper_fault_id)
94print("gripper_fault:", robot.robot_state_pkg.gripper_fault)
95print("gripper_active:", robot.robot_state_pkg.gripper_active)
96print("gripper_position:", robot.robot_state_pkg.gripper_position)
97print("gripper_speed:", robot.robot_state_pkg.gripper_speed)
98print("gripper_current:", robot.robot_state_pkg.gripper_current)
99print("gripper_tmp:", robot.robot_state_pkg.gripper_tmp)
100print("gripper_voltage:", robot.robot_state_pkg.gripper_voltage)
101print("auxState.servoId:", robot.robot_state_pkg.auxState.servoId)
102print("auxState.servoErrCode:", robot.robot_state_pkg.auxState.servoErrCode)
103print("auxState.servoState:", robot.robot_state_pkg.auxState.servoState)
104print("auxState.servoPos:", robot.robot_state_pkg.auxState.servoPos)
105print("auxState.servoVel:", robot.robot_state_pkg.auxState.servoVel)
106print("auxState.servoTorque:", robot.robot_state_pkg.auxState.servoTorque)
107for i in range(4):
108 print("extAxisStatus.pos:", i, robot.robot_state_pkg.extAxisStatus[i].pos)
109 print("extAxisStatus.vel:", i, robot.robot_state_pkg.extAxisStatus[i].vel)
110 print("extAxisStatus.errorCode:", i, robot.robot_state_pkg.extAxisStatus[i].errorCode)
111 print("extAxisStatus.ready:", i, robot.robot_state_pkg.extAxisStatus[i].ready)
112 print("extAxisStatus.inPos:", i, robot.robot_state_pkg.extAxisStatus[i].inPos)
113 print("extAxisStatus.alarm:", i, robot.robot_state_pkg.extAxisStatus[i].alarm)
114 print("extAxisStatus.flerr:", i, robot.robot_state_pkg.extAxisStatus[i].flerr)
115 print("extAxisStatus.nlimit:", i, robot.robot_state_pkg.extAxisStatus[i].nlimit)
116 print("extAxisStatus.pLimit:", i, robot.robot_state_pkg.extAxisStatus[i].pLimit)
117 print("extAxisStatus.mdbsOffLine:", i, robot.robot_state_pkg.extAxisStatus[i].mdbsOffLine)
118 print("extAxisStatus.mdbsTimeout:", i, robot.robot_state_pkg.extAxisStatus[i].mdbsTimeout)
119 print("extAxisStatus.homingStatus:", i, robot.robot_state_pkg.extAxisStatus[i].homingStatus)
120for i in range(8):
121 print("extDIState:", i, robot.robot_state_pkg.extDIState[i])
122 print("extDOState:", i, robot.robot_state_pkg.extDOState[i])
123for i in range(4):
124 print("extAIState:", i, robot.robot_state_pkg.extAIState[i])
125 print("extAOState:", i, robot.robot_state_pkg.extAOState[i])
126print("rbtEnableState:", robot.robot_state_pkg.rbtEnableState)
127print("jointDriverTorque0:", robot.robot_state_pkg.jointDriverTorque[0])
128print("jointDriverTorque1:", robot.robot_state_pkg.jointDriverTorque[1])
129print("jointDriverTorque2:", robot.robot_state_pkg.jointDriverTorque[2])
130print("jointDriverTorque3:", robot.robot_state_pkg.jointDriverTorque[3])
131print("jointDriverTorque4:", robot.robot_state_pkg.jointDriverTorque[4])
132print("jointDriverTorque5:", robot.robot_state_pkg.jointDriverTorque[5])
133print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[0])
134print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[1])
135print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[2])
136print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[3])
137print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[4])
138print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[5])
139print("year:", robot.robot_state_pkg.year)
140print("mouth:", robot.robot_state_pkg.mouth)
141print("day:", robot.robot_state_pkg.day)
142print("hour:", robot.robot_state_pkg.hour)
143print("minute:", robot.robot_state_pkg.minute)
144print("second:", robot.robot_state_pkg.second)
145print("millisecond:", robot.robot_state_pkg.millisecond)
146print("softwareUpgradeState:", robot.robot_state_pkg.softwareUpgradeState)
147print("endLuaErrCode:", robot.robot_state_pkg.endLuaErrCode)
148print("cl_analog_output[0]:", robot.robot_state_pkg.cl_analog_output[0])
149print("cl_analog_output[1]:", robot.robot_state_pkg.cl_analog_output[1])
150print("tl_analog_output:", robot.robot_state_pkg.tl_analog_output)
151print("gripperRotNum:", robot.robot_state_pkg.gripperRotNum)
152print("gripperRotSpeed:", robot.robot_state_pkg.gripperRotSpeed)
153print("gripperRotTorque:", robot.robot_state_pkg.gripperRotTorque)
154print("jt_tgt_tor:", robot.robot_state_pkg.jt_tgt_tor)
155print("smartToolState:", robot.robot_state_pkg.smartToolState)
156print("wideVoltageCtrlBoxTemp:", robot.robot_state_pkg.wideVoltageCtrlBoxTemp)
157print("wideVoltageCtrlBoxFanCurrent:", robot.robot_state_pkg.wideVoltageCtrlBoxFanCurrent)
158print("toolCoord0:", robot.robot_state_pkg.toolCoord[0])
159print("toolCoord1:", robot.robot_state_pkg.toolCoord[1])
160print("toolCoord2:", robot.robot_state_pkg.toolCoord[2])
161print("toolCoord3:", robot.robot_state_pkg.toolCoord[3])
162print("toolCoord4:", robot.robot_state_pkg.toolCoord[4])
163print("toolCoord5:", robot.robot_state_pkg.toolCoord[5])
164print("wobjCoord0:", robot.robot_state_pkg.wobjCoord[0])
165print("wobjCoord1:", robot.robot_state_pkg.wobjCoord[1])
166print("wobjCoord2:", robot.robot_state_pkg.wobjCoord[2])
167print("wobjCoord3:", robot.robot_state_pkg.wobjCoord[3])
168print("wobjCoord4:", robot.robot_state_pkg.wobjCoord[4])
169print("wobjCoord5:", robot.robot_state_pkg.wobjCoord[5])
170print("extoolCoord0:", robot.robot_state_pkg.extoolCoord[0])
171print("extoolCoord1:", robot.robot_state_pkg.extoolCoord[1])
172print("extoolCoord2:", robot.robot_state_pkg.extoolCoord[2])
173print("extoolCoord3:", robot.robot_state_pkg.extoolCoord[3])
174print("extoolCoord4:", robot.robot_state_pkg.extoolCoord[4])
175print("extoolCoord5:", robot.robot_state_pkg.extoolCoord[5])
176print("exAxisCoord0:", robot.robot_state_pkg.exAxisCoord[0])
177print("exAxisCoord1:", robot.robot_state_pkg.exAxisCoord[1])
178print("exAxisCoord2:", robot.robot_state_pkg.exAxisCoord[2])
179print("exAxisCoord3:", robot.robot_state_pkg.exAxisCoord[3])
180print("exAxisCoord4:", robot.robot_state_pkg.exAxisCoord[4])
181print("exAxisCoord5:", robot.robot_state_pkg.exAxisCoord[5])
182print("load:", robot.robot_state_pkg.load)
183print("loadCog0:", robot.robot_state_pkg.loadCog[0])
184print("loadCog1:", robot.robot_state_pkg.loadCog[1])
185print("loadCog2:", robot.robot_state_pkg.loadCog[2])
186print("lastServoTarget0:", robot.robot_state_pkg.lastServoTarget[0])
187print("lastServoTarget1:", robot.robot_state_pkg.lastServoTarget[1])
188print("lastServoTarget2:", robot.robot_state_pkg.lastServoTarget[2])
189print("lastServoTarget3:", robot.robot_state_pkg.lastServoTarget[3])
190print("lastServoTarget4:", robot.robot_state_pkg.lastServoTarget[4])
191print("lastServoTarget5:", robot.robot_state_pkg.lastServoTarget[5])
192print("servoJCmdNum:", robot.robot_state_pkg.servoJCmdNum)
2.7. Aufzählungstyp der Roboterstatus-Rückmeldungskonfigurationsliste
1# ==================== RobotState Konfigurationslisten-Aufzählung ====================
2class RobotState(enum.Enum):
3 """CNDE-Statusart-Aufzählung"""
4 FrameHead = 0
5 FrameCnt = 1
6 DataLen = 2
7 ProgramState = 3
8 RobotState = 4
9 MainCode = 5
10 SubCode = 6
11 RobotMode = 7
12 JointCurPos = 8
13 ToolCurPos = 9
14 FlangeCurPos = 10
15 ActualJointVel = 11
16 ActualJointAcc = 12
17 TargetTCPCmpSpeed = 13
18 TargetTCPSpeed = 14
19 ActualTCPCmpSpeed = 15
20 ActualTCPSpeed = 16
21 ActualJointTorque = 17
22 Tool = 18
23 User = 19
24 ClDgtOutputH = 20
25 ClDgtOutputL = 21
26 TlDgtOutputL = 22
27 ClDgtInputH = 23
28 ClDgtInputL = 24
29 TlDgtInputL = 25
30 ClAnalogInput = 26
31 TlAnglogInput = 27
32 FtSensorRawData = 28
33 FtSensorData = 29
34 FtSensorActive = 30
35 EmergencyStop = 31
36 MotionDone = 32
37 GripperMotiondone = 33
38 McQueueLen = 34
39 CollisionState = 35
40 TrajectoryPnum = 36
41 SafetyStop0State = 37
42 SafetyStop1State = 38
43 GripperFaultId = 39
44 GripperFault = 40
45 GripperActive = 41
46 GripperPosition = 42
47 GripperSpeed = 43
48 GripperCurrent = 44
49 GripperTemp = 45
50 GripperVoltage = 46
51 AuxState = 47
52 ExtAxisStatus = 48
53 ExtDIState = 49
54 ExtDOState = 50
55 ExtAIState = 51
56 ExtAOState = 52
57 RbtEnableState = 53
58 JointDriverTorque = 54
59 JointDriverTemperature = 55
60 RobotTime = 56
61 SoftwareUpgradeState = 57
62 EndLuaErrCode = 58
63 ClAnalogOutput = 59
64 TlAnalogOutput = 60
65 GripperRotNum = 61
66 GripperRotSpeed = 62
67 GripperRotTorque = 63
68 WeldingBreakOffState = 64
69 TargetJointTorque = 65
70 SmartToolState = 66
71 WideVoltageCtrlBoxTemp = 67
72 WideVoltageCtrlBoxFanCurrent = 68
73 ToolCoord = 69
74 WobjCoord = 70
75 ExtoolCoord = 71
76 ExAxisCoord = 72
77 Load = 73
78 LoadCog = 74
79 LastServoTarget = 75
80 ServoJCmdNum = 76
81 TargetJointPos = 77
82 TargetJointVel = 78
83 TargetJointAcc = 79
84 TargetJointCurrent = 80
85 ActualJointCurrent = 81
86 ActualTCPForce = 82
87 TargetTCPPos = 83
88 CollisionLevel = 84
89 SpeedScaleManual = 85
90 SpeedScaleAuto = 86
91 LuaLineNum = 87
92 AbnomalStop = 88
93 CurrentLuaFileName = 89
94 ProgramTotalLine = 90
95 SafetyBoxSingal = 91
96 WeldVoltage = 92
97 WeldCurrent = 93
98 WeldTrackVel = 94
99 TpdException = 95
100 AlarmRebootRobot = 96
101 ModbusMasterConnect = 97
102 ModbusSlaveConnect = 98
103 BtnBoxStopSignal = 99
104 DragAlarm = 100
105 SafetyDoorAlarm = 101
106 SafetyPlaneAlarm = 102
107 MotonAlarm = 103
108 InterfaceAlarm = 104
109 UdpCmdState = 105
110 WeldReadyState = 106
111 AlarmCheckEmergStopBtn = 107
112 TsTmCmdComError = 108
113 TsTmStateComError = 109
114 CtrlBoxError = 110
115 SafetyDataState = 111
116 ForceSensorErrState = 112
117 CtrlOpenLuaErrCode = 113
118 StrangePosFlag = 114
119 Alarm = 115
120 DriverAlarm = 116
121 AliveSlaveNumError = 117
122 SlaveComError = 118
123 CmdPointError = 119
124 IOError = 120
125 GripperError = 121
126 FileError = 122
127 ParaError = 123
128 ExaxisOutLimitError = 124
129 DriverComError = 125
130 DriverError = 126
131 OutSoftLimitError = 127
132 AxleGenComData = 128
133 SocketConnTimeout = 129
134 SocketReadTimeout = 130
135 TsWebStateComErr = 131
136 exaxisCoordID = 132
137 CheckSum = 133