2. Beschreibung der Datenstrukturen

2.1. Rückgabewerttyp von Schnittstellenaufrufen

1typedef int errno_t;

2.2. Datentyp für Gelenkpositionen

1/**
2* @brief Datentyp für Gelenkpositionen.
3*/
4typedef struct
5{
6    double jPos[6];   /* Sechs Gelenkpositionen, Einheit deg */
7} JointPos;

2.3. Datentyp für Positionen im kartesischen Raum

1/**
2* @brief Datentyp für Positionen im kartesischen Raum.
3*/
4typedef struct
5{
6    double x;    /* x-Achsen-Koordinate, Einheit mm  */
7    double y;    /* y-Achsen-Koordinate, Einheit mm  */
8    double z;    /* z-Achsen-Koordinate, Einheit mm  */
9} DescTran;

2.4. Datentyp für Euler-Winkel-Ausrichtung

1/**
2* @brief Datentyp für Euler-Winkel-Ausrichtung.
3*/
4typedef struct
5{
6    double rx;   /* Rotationswinkel um die feste X-Achse, Einheit: deg  */
7    double ry;   /* Rotationswinkel um die feste Y-Achse, Einheit: deg  */
8    double rz;   /* Rotationswinkel um die feste Z-Achse, Einheit: deg  */
9} Rpy;

2.5. Datentyp für Posen im kartesischen Raum

1/**
2* @brief Datentyp für Posen im kartesischen Raum.
3*/
4typedef struct
5{
6    DescTran tran;      /* Position im kartesischen Raum  */
7    Rpy rpy;            /* Ausrichtung im kartesischen Raum  */
8} DescPose;

2.6. Datentyp für Positionen der Erweiterungsachse

1/**
2* @brief Datentyp für Positionen der Erweiterungsachse.
3*/
4typedef struct
5{
6    double ePos[4];   /* Positionen der vier Erweiterungsachsen, Einheit mm */
7} ExaxisPos;

2.7. Datentyp für Kraft-/Drehmomentsensor

 1/**
 2* @brief Kraftkomponenten und Drehmomentkomponenten des Kraftsensors.
 3*/
 4typedef struct
 5{
 6    double fx;  /* Kraftkomponente entlang der x-Achse, Einheit N  */
 7    double fy;  /* Kraftkomponente entlang der y-Achse, Einheit N  */
 8    double fz;  /* Kraftkomponente entlang der z-Achse, Einheit N  */
 9    double tx;  /* Drehmomentkomponente um die x-Achse, Einheit Nm */
10    double ty;  /* Drehmomentkomponente um die y-Achse, Einheit Nm */
11    double tz;  /* Drehmomentkomponente um die z-Achse, Einheit Nm */
12} ForceTorque;

2.8. Datentyp für Spiralparameter

 1/**
 2* @brief Datentyp für Spiralparameter.
 3*/
 4typedef struct
 5{
 6    int    circle_num;           /* Anzahl der Windungen  */
 7    float  circle_angle;         /* Neigungswinkel der Spirale  */
 8    float  rad_init;             /* Anfangsradius der Spirale, Einheit mm  */
 9    float  rad_add;              /* Radiusinkrement  */
10    float  rotaxis_add;          /* Inkrement in Richtung der Drehachse  */
11    int    rot_direction;        /* Drehrichtung, 0-im Uhrzeigersinn, 1-gegen Uhrzeigersinn  */
12    int    velAccMode;            /* Modus für Geschwindigkeit/Beschleunigung: 0-Winkelgeschwindigkeit konstant; 1-Lineargeschwindigkeit konstant */
13} SpiralParam;

2.9. Status-Rückmeldungspaket der Steuerung

Geändert in Version C++SDK-v2.1.4.0.

  1/**
  2 * @brief Status-Rückmeldungspaket der Steuerung.
  3 */
  4typedef struct _ROBOT_STATE_PKG
  5{
  6  uint16_t frame_head;   // Rahmenkopf, vereinbart als 0x5A5A
  7  uint8_t frame_cnt;    // Rahmenzählung, zyklischer Zähler 0-255
  8  uint16_t data_len;    // Länge des Dateninhalts
  9  uint8_t program_state;  // Programmstatus, 1-gestoppt; 2-läuft; 3-pausiert;
 10  uint8_t robot_state;   // Roboterbewegungsstatus, 1-gestoppt; 2-läuft; 3-pausiert; 4-ziehen
 11  int   main_code;    // Hauptfehlercode
 12  int   sub_code;    // Unterfehlercode
 13  uint8_t robot_mode;   // Robotermodus, 1-Handmodus; 0-Automatikmodus;
 14  double  jt_cur_pos[6];  // Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
 15  double  tl_cur_pos[6];  // Aktuelle Werkzeugposition
 16        // tl_cur_pos[0], Position entlang der x-Achse, Einheit mm,
 17        // tl_cur_pos[1], Position entlang der y-Achse, Einheit mm,
 18        // tl_cur_pos[2], Position entlang der z-Achse, Einheit mm,
 19        // tl_cur_pos[3], Drehwinkel um die feste X-Achse, Einheit deg
 20        // tl_cur_pos[4], Drehwinkel um die feste Y-Achse, Einheit deg
 21        // tl_cur_pos[5], Drehwinkel um die feste Z-Achse, Einheit deg
 22  double  flange_cur_pos[6]; // Aktuelle Endflanschposition
 23        // flange_cur_pos[0], Position entlang der x-Achse, Einheit mm,
 24        // flange_cur_pos[1], Position entlang der y-Achse, Einheit mm,
 25        // flange_cur_pos[2], Position entlang der z-Achse, Einheit mm,
 26        // flange_cur_pos[3], Drehwinkel um die feste X-Achse, Einheit deg
 27        // flange_cur_pos[4], Drehwinkel um die feste Y-Achse, Einheit deg
 28        // flange_cur_pos[5], Drehwinkel um die feste Z-Achse, Einheit deg
 29  double  actual_qd[6];   // Aktuelle Geschwindigkeiten von 6 Gelenken, Einheit deg/s
 30  double  actual_qdd[6];   // Aktuelle Beschleunigungen von 6 Gelenken, Einheit deg/s^2
 31  double  target_TCP_CmpSpeed[2];
 32        // target_TCP_CmpSpeed[0], TCP zusammengesetzte Befehlgeschwindigkeit (Position), Einheit mm/s
 33        // target_TCP_CmpSpeed[1], TCP zusammengesetzte Befehlgeschwindigkeit (Orientierung), Einheit deg/s */
 34  double  target_TCP_Speed[6];  // TCP Befehlgeschwindigkeit
 35          // target_TCP_Speed[0], Geschwindigkeit entlang der x-Achse, Einheit mm/s,
 36          // target_TCP_Speed[1], Geschwindigkeit entlang der y-Achse, Einheit mm/s,
 37          // target_TCP_Speed[2], Geschwindigkeit entlang der z-Achse, Einheit mm/s,
 38          // target_TCP_Speed[3], Winkelgeschwindigkeit um die feste X-Achse, Einheit deg/s
 39          // target_TCP_Speed[4], Winkelgeschwindigkeit um die feste Y-Achse, Einheit deg/s
 40          // target_TCP_Speed[5], Winkelgeschwindigkeit um die feste Z-Achse, Einheit deg/s */
 41  double  actual_TCP_CmpSpeed[2];
 42          // actual_TCP_CmpSpeed[0], TCP zusammengesetzte tatsächliche Geschwindigkeit (Position), Einheit mm/s
 43          // actual_TCP_CmpSpeed[1], TCP zusammengesetzte tatsächliche Geschwindigkeit (Orientierung), Einheit deg/s
 44  double  actual_TCP_Speed[6];  // TCP tatsächliche Geschwindigkeit
 45          // actual_TCP_Speed[0], Geschwindigkeit entlang der x-Achse, Einheit mm/s,
 46          // actual_TCP_Speed[1], Geschwindigkeit entlang der y-Achse, Einheit mm/s,
 47          // actual_TCP_Speed[2], Geschwindigkeit entlang der z-Achse, Einheit mm/s,
 48          // actual_TCP_Speed[3], Winkelgeschwindigkeit um die feste X-Achse, Einheit deg/s
 49          // actual_TCP_Speed[4], Winkelgeschwindigkeit um die feste Y-Achse, Einheit deg/s
 50          // actual_TCP_Speed[5], Winkelgeschwindigkeit um die feste Z-Achse, Einheit deg/s
 51  double  jt_cur_tor[6];   // Aktuelle Drehmomente von 6 Achsen, Einheit N·m
 52  int   tool;        // Angewandtes Werkzeugkoordinatensystem Nummer
 53  int   user;        // Angewandtes Werkstückkoordinatensystem Nummer
 54  uint8_t cl_dgt_output_h;  // Digitaler IO-Ausgang des Steuerkastens 15-8
 55  uint8_t cl_dgt_output_l;  // Digitaler IO-Ausgang des Steuerkastens 7-0
 56  uint8_t tl_dgt_output_l;  // Digitaler IO-Ausgang des Werkzeugs 7-0, nur bit0-bit1 gültig
 57  uint8_t cl_dgt_input_h;   // Digitaler IO-Eingang des Steuerkastens 15-8
 58  uint8_t cl_dgt_input_l;   // Digitaler IO-Eingang des Steuerkastens 7-0
 59  uint8_t tl_dgt_input_l;   // Digitaler IO-Eingang des Werkzeugs 7-0, nur bit0-bit1 gültig
 60  uint16_t cl_analog_input[2]; // cl_analog_input[0], Analoger Eingang des Steuerkastens 0
 61                //cl_analog_input[1], Analoger Eingang des Steuerkastens 1
 62  uint16_t tl_anglog_input;  // Analoger Werkzeugeingang
 63  double  ft_sensor_raw_data[6]; // Rohdaten des Kraft-/Drehmomentsensors
 64          // ft_sensor_raw_data[0], Kraft entlang der x-Achse, Einheit N
 65          // ft_sensor_raw_data[1], Kraft entlang der y-Achse, Einheit N
 66          // ft_sensor_raw_data[2], Kraft entlang der z-Achse, Einheit N
 67          // ft_sensor_raw_data[3], Drehmoment um die x-Achse, Einheit Nm
 68          // ft_sensor_raw_data[4], Drehmoment um die y-Achse, Einheit Nm
 69          // ft_sensor_raw_data[5], Drehmoment um die z-Achse, Einheit Nm
 70  double  ft_sensor_data[6];   // Daten des Kraft-/Drehmomentsensors,
 71          // ft_sensor_data[0], Kraft entlang der x-Achse, Einheit N
 72          // ft_sensor_data[1], Kraft entlang der y-Achse, Einheit N
 73          // ft_sensor_data[2], Kraft entlang der z-Achse, Einheit N
 74          // ft_sensor_data[3], Drehmoment um die x-Achse, Einheit Nm
 75          // ft_sensor_data[4], Drehmoment um die y-Achse, Einheit Nm
 76          // ft_sensor_data[5], Drehmoment um die z-Achse, Einheit Nm
 77  uint8_t ft_sensor_active;  // Aktivierungsstatus des Kraft-/Drehmomentsensors, 0-zurückgesetzt, 1-aktiviert
 78  uint8_t EmergencyStop;   // Not-Halt-Flag, 0-Not-Halt nicht gedrückt, 1-Not-Halt gedrückt
 79  int   motion_done;    // Bewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 80  uint8_t gripper_motiondone; // Greiferbewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 81  int   mc_queue_len;    // Länge der Bewegungskommando-Warteschlange
 82  uint8_t collisionState;   // Kollisionserkennung, 1-Kollision, 0-keine Kollision
 83  int   trajectory_pnum;  // Bahnpunktnummer
 84  uint8_t safety_stop0_state; // Sicherheitsstoppsignal SI0
 85  uint8_t safety_stop1_state; // Sicherheitsstoppsignal SI1
 86  uint8_t gripper_fault_id;  // Fehlerhafte Greifernummer
 87  uint16_t gripper_fault;   // Greiferfehler
 88  uint16_t gripper_active;   // Greifer-Aktivierungsstatus
 89  uint8_t gripper_position;  // Greiferposition
 90  int8_t  gripper_speed;   // Greifergeschwindigkeit
 91  int8_t  gripper_current;  // Greiferstrom
 92  int   gripper_temp;    // Greifertemperatur
 93  int   gripper_voltage;  // Greiferspannung
 94  robot_aux_state aux_state;  // 485 Erweiterungsachsenstatus
 95  EXT_AXIS_STATUS extAxisStatus[4]; // UDP Erweiterungsachsenstatus
 96  uint16_t extDIState[8];    // Erweiterter DI-Eingang
 97  uint16_t extDOState[8];    // Erweiterter DO-Ausgang
 98  uint16_t extAIState[4];    // Erweiterter AI-Eingang
 99  uint16_t extAOState[4];    // Erweiterter AO-Ausgang
100  int rbtEnableState;      // Roboter-Aktivierungsstatus
101  double  jointDriverTorque[6];    // Roboter-Gelenktreiber-Drehmoment
102  double  jointDriverTemperature[6];  // Roboter-Gelenktreiber-Temperatur
103  RobotTime robotTime;      // Roboter-Systemzeit
104  int softwareUpgradeState;   // Roboter-Software-Upgrade-Status
105  uint16_t endLuaErrCode;    // End-Lua-Status
106  uint16_t cl_analog_output[2]; // Analoger Ausgang des Steuerkastens
107  uint16_t tl_analog_output;   // Analoger Werkzeugausgang
108  float gripperRotNum;      // Aktuelle Drehzahl des rotierenden Greifers
109  uint8_t gripperRotSpeed;    // Aktuelle Drehzahl-Prozentsatz des rotierenden Greifers
110  uint8_t gripperRotTorque;   // Aktuelles Drehmoment-Prozentsatz des rotierenden Greifers
111  WELDING_BREAKOFF_STATE weldingBreakOffState; // Schweißunterbrechungsstatus
112  double jt_tgt_tor[6];         // Gelenkbefehls-Drehmoment
113  int smartToolState;          // SmartTool-Griffknopfstatus
114  float wideVoltageCtrlBoxTemp;     // Weitspannungs-Steuerkastentemperatur
115  uint16_t wideVoltageCtrlBoxFanCurrent;// Weitspannungs-Steuerkasten-Lüfterstrom (mA)
116  double toolCoord[6];    // Aktuelle Werkzeugkoordinatensystemwerte; x,y,z,rx,ry,rz
117  double wobjCoord[6];    // Aktuelle Werkstückkoordinatensystemwerte; x,y,z,rx,ry,rz
118  double extoolCoord[6];   // Aktuelle externe Werkzeugkoordinatensystemwerte; x,y,z,rx,ry,rz
119  double exAxisCoord[6];   // Aktuelle Erweiterungsachsenkoordinatensystemwerte; x,y,z,rx,ry,rz
120  double load;        // Lastmasse
121  double loadCog[3];     // Lastschwerpunkt
122  double lastServoTarget[6]; // Letzte ServoJ-Zielposition in der Warteschlange
123  int servoJCmdNum;      // ServoJ-Befehlszähler
124  double targetJointPos[6];  // 6 Gelenke Befehlsposition, Einheit °
125  double targetJointVel[6];  // 6 Gelenke Befehlgeschwindigkeit, Einheit °/s
126  double targetJointAcc[6];  // 6 Gelenke Befehlbeschleunigung, Einheit °/s2
127  double targetJointCurrent[6]; // 6 Gelenke Befehlstrom, Einheit A
128  double actualJointCurrent[6]; // 6 Gelenke aktueller Strom, Einheit A
129  double actualTCPForce[6];  // Roboter-Endeffektor-Drehmoment Nm; x,y,z,rx,ry,rz
130  double targetTCPPos[6];   // Roboter-TCP-Befehlsposition mm; x,y,z,rx,ry,rz
131  uint8_t collisionLevel[6]; // Roboter-Kollisionsstufe
132  double speedScaleManual;  // Handmodus globale Geschwindigkeitsprozentsatz
133  double speedScaleAuto;   // Automatikmodus globale Geschwindigkeitsprozentsatz
134  int luaLineNum;       // Aktuelle Lua-Programmzeilennummer
135  uint8_t abnomalStop;    // 0-keine Abnormalität; 1-Abnormalität vorhanden
136  char currentLuaFileName[256]; // Name des aktuell ausgeführten Lua-Programms
137  uint8_t programTotalLine;  // Gesamtzeilen des Lua-Programms
138  uint8_t safetyBoxSingal[6]; // Roboter-Tastenfeld-Tastenstatus
139  double weldVoltage;     // Schweißspannung V
140  double weldCurrent;     // Schweißstrom
141  double weldTrackVel;    // Schweißnahtverfolgungsgeschwindigkeit mm/s
142  uint8_t tpdException;    // TPD-Bahnladeanzahl überschritten, 0-nicht überschritten, 1-überschritten
143  uint8_t alarmRebootRobot;  // Warnung, 1-Not-Halt-Taste loslassen und Steuerkasten neu starten, 2-Gelenkkommunikationsstörung, Steuerkasten neu starten
144  uint8_t modbusMasterConnect; // bit0-bit7 entsprechen ModbusTCP-Master 0-7 Verbindungsstatus 0-nicht verbunden 1-verbunden
145  uint8_t modbusSlaveConnect;  // ModbusTCP-Slave-Verbindungsstatus 0-nicht verbunden; 1-verbunden
146  uint8_t btnBoxStopSignal;   // Tastenfeld-Not-Halt-Signal, 0-Not-Halt losgelassen; 1-Not-Halt gedrückt
147  uint8_t dragAlarm;      // Zieh-Warnung, aktuell im Automatikmodus, 0-keine Warnung, 1-Warnung, 2-Positionsrückmeldungsstörung, kein Wechsel
148  uint8_t safetyDoorAlarm;   // Sicherheitstürwarnung; 0-Sicherheitstür geschlossen; 1-Sicherheitstür geöffnet
149  uint8_t safetyPlaneAlarm;   // Eintritt in Sicherheitswand-Warnung; 0-nicht in Sicherheitswand eingetreten; 1-in Sicherheitswand eingetreten
150  uint8_t motonAlarm;      // Bewegungswarnung
151  uint8_t interfaceAlarm;    // Eintritt in Interferenzbereich-Warnung
152  int udpCmdState;       // Port 20007 UDP-Kommunikationsverbindungsstatus
153  uint8_t weldReadyState;    // Schweißgerät-Bereitschaftsstatus
154  uint8_t alarmCheckEmergStopBtn; // 0-normal; 1-Kommunikationsstörung, prüfen ob Not-Halt-Taste losgelassen ist
155  uint8_t tsTmCmdComError;   // 0-normal; 1-Drehmomentbefehl-Kommunikationsfehler
156  uint8_t tsTmStateComError;  // 0-normal; 1-Drehmomentstatus-Kommunikationsfehler
157  int ctrlBoxError;       // Steuerkastenfehler
158  uint8_t safetyDataState;   // Sicherheitsdatenstatus-Flag, 0-normal, 1-abnormal
159  uint8_t forceSensorErrState; // Kraftsensor-Verbindungszeitüberschreitungsfehler; bit0-bit1 entsprechen Kraftsensor ID1-ID2
160  uint8_t ctrlOpenLuaErrCode[4]; // 4 Controller-Peripherieprotokoll-Fehlercodes (500 Fehlercode)
161  uint8_t strangePosFlag; // Derzeit in singulärer Pose-Flag; 0-normal; 1-singuläre Pose
162  uint8_t alarm;      // Warnung
163  uint8_t driverAlarm;   // Treiber-Alarmachsenummer
164  uint8_t aliveSlaveNumError; // Aktiver Slave-Anzahlfehler, 0: normal; 1: Anzahlfehler
165  uint8_t slaveComError[8];  // Slave-Fehler, 0: normal; 1: Slave offline; 2: Slave-Status stimmt nicht mit eingestelltem Wert überein; 3: Slave nicht konfiguriert; 4: Slave-Konfigurationsfehler; 5: Slave-Initialisierungsfehler; 6: Slave-Mailbox-Kommunikationsinitialisierungsfehler
166  uint8_t cmdPointError;   // Befehlspunktfehler
167  uint8_t IOError;      // IO-Fehler
168  uint8_t gripperError;    // Greiferfehler
169  uint8_t fileError;     // Dateifehler
170  uint8_t paraError;     // Parameterfehler
171  uint8_t exaxisOutLimitError;  // Externe Achse Weichgrenzenüberschreitungsfehler
172  uint8_t driverComError[6];   // Treiberkommunikationsfehler
173  uint8_t driverError;      // Treiberkommunikationsfehler-Achsennummer
174  uint8_t outSoftLimitError;   // Weichgrenzenüberschreitungsfehler
175  char axleGenComData[130];   // Roboter-Endeffektor-Transparentübertragungs-Rückmeldedaten
176  uint8_t socketConnTimeout;   // Socket-Verbindungszeitüberschreitung, bit0-bit4: socketID 1-4
177  uint8_t socketReadTimeout;   // Socket-Lesezeitüberschreitung, bit0-bit4: socketID 1-4
178  uint8_t tsWebStateComErr;   // Web-Drehmoment-Kommunikationsfehler; 0-normal; 1-fehlgeschlagen
179  uint8_t exaxisCoordID;     //Kennung des erweiterten Achskoordinatensystems
180  uint16_t check_sum;     // Summenprüfung
181}ROBOT_STATE_PKG;

2.10. Aufzählungstyp für Roboterstatus-Rückmeldungskonfiguration

  1enum class RobotState
  2{
  3    ProgramState = 3,           // Programmstatus, 1-gestoppt; 2-läuft; 3-pausiert
  4    RobotState = 4,             // Roboterbewegungsstatus, 1-gestoppt; 2-läuft; 3-pausiert; 4-ziehen
  5    MainCode = 5,               // Hauptfehlercode
  6    SubCode = 6,                // Unterfehlercode
  7    RobotMode = 7,              // Robotermodus, 1-Handmodus; 0-Automatikmodus
  8    JointCurPos = 8,            // Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
  9    ToolCurPos = 9,             // Aktuelle Werkzeugposition: [0] entlang x-Achse (mm), [1] entlang y-Achse (mm), [2] entlang z-Achse (mm), [3] Drehung um feste X-Achse (deg), [4] um feste Y-Achse (deg), [5] um feste Z-Achse (deg)
 10    FlangeCurPos = 10,          // Aktuelle Endflanschposition: [0] entlang x-Achse (mm), [1] entlang y-Achse (mm), [2] entlang z-Achse (mm), [3] Drehung um feste X-Achse (deg), [4] um feste Y-Achse (deg), [5] um feste Z-Achse (deg)
 11    ActualJointVel = 11,        // Aktuelle Geschwindigkeiten von 6 Gelenken, Einheit deg/s
 12    ActualJointAcc = 12,        // Aktuelle Beschleunigungen von 6 Gelenken, Einheit deg/s^2
 13    TargetTCPCmpSpeed = 13,     // TCP zusammengesetzte Befehlgeschwindigkeit: [0] Position (mm/s), [1] Orientierung (deg/s)
 14    TargetTCPSpeed = 14,        // TCP Befehlgeschwindigkeit: [0] entlang x-Achse (mm/s), [1] entlang y-Achse (mm/s), [2] entlang z-Achse (mm/s), [3] Winkelgeschwindigkeit um X-Achse (deg/s), [4] um Y-Achse (deg/s), [5] um Z-Achse (deg/s)
 15    ActualTCPCmpSpeed = 15,     // TCP zusammengesetzte tatsächliche Geschwindigkeit: [0] Position (mm/s), [1] Orientierung (deg/s)
 16    ActualTCPSpeed = 16,        // TCP tatsächliche Geschwindigkeit: [0] entlang x-Achse (mm/s), [1] entlang y-Achse (mm/s), [2] entlang z-Achse (mm/s), [3] Winkelgeschwindigkeit um X-Achse (deg/s), [4] um Y-Achse (deg/s), [5] um Z-Achse (deg/s)
 17    ActualJointTorque = 17,     // Aktuelle Drehmomente von 6 Achsen, Einheit N·m
 18    Tool = 18,                  // Angewandtes Werkzeugkoordinatensystem Nummer
 19    User = 19,                  // Angewandtes Werkstückkoordinatensystem Nummer
 20    ClDgtOutputH = 20,          // Digitaler IO-Ausgang des Steuerkastens 15-8
 21    ClDgtOutputL = 21,          // Digitaler IO-Ausgang des Steuerkastens 7-0
 22    TlDgtOutputL = 22,          // Digitaler IO-Ausgang des Werkzeugs 7-0, nur bit0-bit1 gültig
 23    ClDgtInputH = 23,           // Digitaler IO-Eingang des Steuerkastens 15-8
 24    ClDgtInputL = 24,           // Digitaler IO-Eingang des Steuerkastens 7-0
 25    TlDgtInputL = 25,           // Digitaler IO-Eingang des Werkzeugs 7-0, nur bit0-bit1 gültig
 26    ClAnalogInput = 26,         // Analoger Eingang des Steuerkastens: [0] Kanal 0, [1] Kanal 1
 27    TlAnalogInput = 27,         // Analoger Werkzeugeingang
 28    FtSensorRawData = 28,       // Rohdaten des Kraft-/Drehmomentsensors: [0] Kraft entlang x-Achse (N), [1] entlang y-Achse (N), [2] entlang z-Achse (N), [3] Drehmoment um x-Achse (Nm), [4] um y-Achse (Nm), [5] um z-Achse (Nm)
 29    FtSensorData = 29,          // Daten des Kraft-/Drehmomentsensors (verarbeitet): [0] Kraft entlang x-Achse (N), [1] entlang y-Achse (N), [2] entlang z-Achse (N), [3] Drehmoment um x-Achse (Nm), [4] um y-Achse (Nm), [5] um z-Achse (Nm)
 30    FtSensorActive = 30,        // Aktivierungsstatus des Kraft-/Drehmomentsensors, 0-zurückgesetzt, 1-aktiviert
 31    EmergencyStop = 31,         // Not-Halt-Flag, 0-Not-Halt nicht gedrückt, 1-Not-Halt gedrückt
 32    MotionDone = 32,            // Bewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 33    GripperMotiondone = 33,     // Greiferbewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 34    McQueueLen = 34,            // Länge der Bewegungskommando-Warteschlange
 35    CollisionState = 35,        // Kollisionserkennung, 1-Kollision, 0-keine Kollision
 36    TrajectoryPnum = 36,        // Bahnpunktnummer
 37    SafetyStop0State = 37,      // Sicherheitsstoppsignal SI0
 38    SafetyStop1State = 38,      // Sicherheitsstoppsignal SI1
 39    GripperFaultId = 39,        // Fehlerhafte Greifernummer
 40    GripperFault = 40,          // Greiferfehler
 41    GripperActive = 41,         // Greifer-Aktivierungsstatus
 42    GripperPosition = 42,       // Greiferposition
 43    GripperSpeed = 43,          // Greifergeschwindigkeit
 44    GripperCurrent = 44,        // Greiferstrom
 45    GripperTemp = 45,           // Greifertemperatur
 46    GripperVoltage = 46,        // Greiferspannung
 47    AuxState = 47,              // 485 Erweiterungsachsenstatus
 48    ExtAxisStatus = 48,         // UDP Erweiterungsachsenstatus (4 Achsen)
 49    ExtDIState = 49,            // Erweiterter DI-Eingang (8)
 50    ExtDOState = 50,            // Erweiterter DO-Ausgang (8)
 51    ExtAIState = 51,            // Erweiterter AI-Eingang (4)
 52    ExtAOState = 52,            // Erweiterter AO-Ausgang (4)
 53    RbtEnableState = 53,        // Roboter-Aktivierungsstatus
 54    JointDriverTorque = 54,     // Roboter-Gelenktreiber-Drehmoment (6 Gelenke)
 55    JointDriverTemperature = 55,// Roboter-Gelenktreiber-Temperatur (6 Gelenke)
 56    RobotTime = 56,             // Roboter-Systemzeit
 57    SoftwareUpgradeState = 57,  // Roboter-Software-Upgrade-Status
 58    EndLuaErrCode = 58,         // End-Lua-Status
 59    ClAnalogOutput = 59,        // Analoger Ausgang des Steuerkastens (2)
 60    TlAnalogOutput = 60,        // Analoger Werkzeugausgang
 61    GripperRotNum = 61,         // Aktuelle Drehzahl des rotierenden Greifers
 62    GripperRotSpeed = 62,       // Aktuelle Drehzahl-Prozentsatz des rotierenden Greifers
 63    GripperRotTorque = 63,      // Aktuelles Drehmoment-Prozentsatz des rotierenden Greifers
 64    WeldingBreakOffState = 64,  // Schweißunterbrechungsstatus
 65    TargetJointTorque = 65,     // Gelenkbefehls-Drehmoment (6 Gelenke)
 66    SmartToolState = 66,        // SmartTool-Griffknopfstatus
 67    WideVoltageCtrlBoxTemp = 67,// Weitspannungs-Steuerkastentemperatur
 68    WideVoltageCtrlBoxFanCurrent = 68, // Weitspannungs-Steuerkasten-Lüfterstrom (mA)
 69    ToolCoord = 69,             // Aktuelle Werkzeugkoordinatensystemwerte: x,y,z,rx,ry,rz
 70    WobjCoord = 70,             // Aktuelle Werkstückkoordinatensystemwerte: x,y,z,rx,ry,rz
 71    ExtoolCoord = 71,           // Aktuelle externe Werkzeugkoordinatensystemwerte: x,y,z,rx,ry,rz
 72    ExAxisCoord = 72,           // Aktuelle Erweiterungsachsenkoordinatensystemwerte: x,y,z,rx,ry,rz
 73    Load = 73,                  // Lastmasse
 74    LoadCog = 74,               // Lastschwerpunkt: x,y,z
 75    LastServoTarget = 75,       // Letzte ServoJ-Zielposition in der Warteschlange (6 Gelenke)
 76    ServoJCmdNum = 76,          // ServoJ-Befehlszähler
 77    TargetJointPos = 77,        // 6 Gelenke Befehlsposition, Einheit °
 78    TargetJointVel = 78,        // 6 Gelenke Befehlgeschwindigkeit, Einheit °/s
 79    TargetJointAcc = 79,        // 6 Gelenke Befehlbeschleunigung, Einheit °/s²
 80    TargetJointCurrent = 80,    // 6 Gelenke Befehlstrom, Einheit A
 81    ActualJointCurrent = 81,    // 6 Gelenke aktueller Strom, Einheit A
 82    ActualTCPForce = 82,        // Roboter-Endeffektor-Drehmoment: x,y,z,rx,ry,rz, Einheit Nm
 83    TargetTCPPos = 83,          // Roboter-TCP-Befehlsposition: x,y,z,rx,ry,rz, Einheit mm
 84    CollisionLevel = 84,        // Roboter-Kollisionsstufe (6)
 85    SpeedScaleManual = 85,      // Handmodus globale Geschwindigkeitsprozentsatz
 86    SpeedScaleAuto = 86,        // Automatikmodus globale Geschwindigkeitsprozentsatz
 87    LuaLineNum = 87,            // Aktuelle Lua-Programmzeilennummer
 88    AbnomalStop = 88,           // 0-keine Abnormalität; 1-Abnormalität vorhanden
 89    CurrentLuaFileName = 89,    // Name des aktuell ausgeführten Lua-Programms
 90    ProgramTotalLine = 90,      // Gesamtzeilen des Lua-Programms
 91    SafetyBoxSingal = 91,       // Roboter-Tastenfeld-Tastenstatus (6)
 92    WeldVoltage = 92,           // Schweißspannung V
 93    WeldCurrent = 93,           // Schweißstrom
 94    WeldTrackVel = 94,          // Schweißnahtverfolgungsgeschwindigkeit mm/s
 95    TpdException = 95,          // TPD-Bahnladeanzahl überschritten, 0-nicht überschritten, 1-überschritten
 96    AlarmRebootRobot = 96,      // Warnung: 1-Not-Halt-Taste loslassen und Steuerkasten neu starten, 2-Gelenkkommunikationsstörung, Steuerkasten neu starten
 97    ModbusMasterConnect = 97,   // bit0-7 entsprechen ModbusTCP-Master 0-7 Verbindungsstatus, 0-nicht verbunden, 1-verbunden
 98    ModbusSlaveConnect = 98,    // ModbusTCP-Slave-Verbindungsstatus, 0-nicht verbunden, 1-verbunden
 99    BtnBoxStopSignal = 99,      // Tastenfeld-Not-Halt-Signal, 0-Not-Halt losgelassen, 1-Not-Halt gedrückt
100    DragAlarm = 100,            // Zieh-Warnung: 0-keine Warnung, 1-Warnung, 2-Positionsrückmeldungsstörung, kein Wechsel
101    SafetyDoorAlarm = 101,      // Sicherheitstürwarnung: 0-geschlossen, 1-geöffnet
102    SafetyPlaneAlarm = 102,     // Sicherheitswandwarnung: 0-nicht eingetreten, 1-eingetreten
103    MotonAlarm = 103,           // Bewegungswarnung
104    InterfaceAlarm = 104,       // Eintritt in Interferenzbereich-Warnung
105    UdpCmdState = 105,          // Port 20007 UDP-Kommunikationsverbindungsstatus
106    WeldReadyState = 106,       // Schweißgerät-Bereitschaftsstatus
107    AlarmCheckEmergStopBtn = 107, // 0-normal; 1-Kommunikationsstörung, prüfen ob Not-Halt-Taste losgelassen ist
108    TsTmCmdComError = 108,      // 0-normal; 1-Drehmomentbefehl-Kommunikationsfehler
109    TsTmStateComError = 109,    // 0-normal; 1-Drehmomentstatus-Kommunikationsfehler
110    CtrlBoxError = 110,         // Steuerkastenfehler
111    SafetyDataState = 111,      // Sicherheitsdatenstatus, 0-normal, 1-abnormal
112    ForceSensorErrState = 112,  // Kraftsensor-Verbindungszeitüberschreitung, bit0-bit1 entsprechen ID1-ID2
113    CtrlOpenLuaErrCode = 113,   // 4 Controller-Peripherieprotokoll-Fehlercodes (500 Fehlercode)
114    StrangePosFlag = 114,       // Singuläre Posenkennzeichnung: 0-normal, 1-singuläre Pose
115    Alarm = 115,                // Warnung
116    DriverAlarm = 116,          // Treiber-Alarmachsenummer
117    AliveSlaveNumError = 117,   // Aktiver Slave-Anzahlfehler: 0-normal, 1-Anzahlfehler
118    SlaveComError = 118,        // Slave-Fehler: 0-normal, 1-offline, 2-Status inkonsistent, 3-nicht konfiguriert, 4-Konfigurationsfehler, 5-Initialisierungsfehler, 6-Mailbox-Kommunikationsinitialisierungsfehler
119    CmdPointError = 119,        // Befehlspunktfehler
120    IOError = 120,              // IO-Fehler
121    GripperError = 121,         // Greiferfehler
122    FileError = 122,            // Dateifehler
123    ParaError = 123,            // Parameterfehler
124    ExaxisOutLimitError = 124,  // Externe Achse Weichgrenzenüberschreitungsfehler
125    DriverComError = 125,       // Treiberkommunikationsfehler (6 Achsen)
126    DriverError = 126,          // Treiberkommunikationsfehler-Achsennummer
127    OutSoftLimitError = 127,    // Weichgrenzenüberschreitungsfehler
128    AxleGenComData = 128,       // Roboter-Endeffektor-Transparentübertragungs-Rückmeldedaten
129    SocketConnTimeout = 129,    // Socket-Verbindungszeitüberschreitung, bit0-bit4 entsprechen socketID 1-4
130    SocketReadTimeout = 130,    // Socket-Lesezeitüberschreitung, bit0-bit4 entsprechen socketID 1-4
131    TsWebStateComErr = 131,     // Web-Drehmoment-Kommunikationsfehler: 0-normal, 1-fehlgeschlagen
132    ExaxisCoordID = 132          //Kennung des erweiterten Achskoordinatensystems
133};