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