2. Beschreibung der Datenstrukturen

2.1. Datentyp für Gelenkpositionen

 1/**
 2* @brief Datentyp für Gelenkpositionen.
 3*/
 4public class JointPos
 5{
 6  double J1;
 7  double J2;
 8  double J3;
 9  double J4;
10  double J5;
11  double J6;
12
13  public JointPos(double j1, double j2, double j3, double j4, double j5, double j6)
14  {
15    J1 = j1;
16    J2 = j2;
17    J3 = j3;
18    J4 = j4;
19    J5 = j5;
20    J6 = j6;
21  }
22
23  public JointPos()
24  {
25
26  }
27}

2.2. Datentyp für Positionen im kartesischen Raum

 1/**
 2* @brief Datentyp für Positionen im kartesischen Raum.
 3*/
 4public class DescTran
 5{
 6  public double x = 0.0;    /* x-Achsen-Koordinate, Einheit mm  */
 7  public double y = 0.0;    /* y-Achsen-Koordinate, Einheit mm  */
 8  public double z = 0.0;    /* z-Achsen-Koordinate, Einheit mm  */
 9  public DescTran(double posX, double posY, double posZ)
10  {
11    x = posX;
12    y = posY;
13    z = posZ;
14  }
15
16  public DescTran()
17  {
18
19  }
20
21}

2.3. Datentyp für Euler-Winkel-Ausrichtung

 1/**
 2* @brief Datentyp für Euler-Winkel-Ausrichtung.
 3*/
 4public class Rpy
 5{
 6  public double rx = 0.0;   /* Rotationswinkel um die feste X-Achse, Einheit: deg  */
 7  public double ry = 0.0;   /* Rotationswinkel um die feste Y-Achse, Einheit: deg  */
 8  public double rz = 0.0;   /* Rotationswinkel um die feste Z-Achse, Einheit: deg  */
 9  public Rpy(double rotateX, double rotateY, double rotateZ)
10  {
11    rx = rotateX;
12    ry = rotateY;
13    rz = rotateZ;
14  }
15}

2.4. Datentyp für Posen im kartesischen Raum

 1/**
 2* @brief Datentyp für Posen im kartesischen Raum.
 3*/
 4public class DescPose
 5{
 6  public DescTran tran = new DescTran(0.0, 0.0, 0.0);      /* Position im kartesischen Raum  */
 7  public Rpy rpy = new Rpy(0.0, 0.0, 0.0);                  /* Ausrichtung im kartesischen Raum  */
 8
 9  public DescPose()
10  {
11
12  }
13
14  public DescPose(DescTran descTran, Rpy rotateRpy)
15  {
16    tran = descTran;
17    rpy = rotateRpy;
18  }
19
20  public DescPose(double tranX, double tranY, double tranZ, double rX, double ry, double rz)
21  {
22    tran.x = tranX;
23    tran.y = tranY;
24    tran.z = tranZ;
25    rpy.rx = rX;
26    rpy.ry = ry;
27    rpy.rz = rz;
28  }
29
30  public String toString()
31  {
32    return String.valueOf(tran.x) + "," +  String.valueOf(tran.y) + "," +String.valueOf(tran.z) + "," +String.valueOf(rpy.rx) + "," +String.valueOf(rpy.ry) + "," +String.valueOf(rpy.rz);
33  }
34}

2.5. Datentyp für Positionen der Erweiterungsachse

 1/**
 2* @brief Datentyp für Positionen der Erweiterungsachse.
 3*/
 4public class ExaxisPos
 5{
 6  public double axis1 = 0.0;
 7  public double axis2 = 0.0;
 8  public double axis3 = 0.0;
 9  public double axis4 = 0.0;
10
11  public ExaxisPos()
12  {
13
14  }
15  public ExaxisPos(double[] exaxisPos)
16  {
17    axis1 = exaxisPos[0];
18    axis2 = exaxisPos[1];
19    axis3 = exaxisPos[2];
20    axis4 = exaxisPos[3];
21  }
22
23  public ExaxisPos(double pos1, double pos2, double pos3, double pos4)
24  {
25    axis1 = pos1;
26    axis2 = pos2;
27    axis3 = pos3;
28    axis4 = pos4;
29  }
30}

2.6. Datentyp für Kraft-/Drehmomentsensor

 1/**
 2* @brief Kraftkomponenten und Drehmomentkomponenten des Kraftsensors.
 3*/
 4public class ForceTorque
 5{
 6  public double fx;  /* Kraftkomponente entlang der x-Achse, Einheit N  */
 7  public double fy;  /* Kraftkomponente entlang der y-Achse, Einheit N  */
 8  public double fz;  /* Kraftkomponente entlang der z-Achse, Einheit N  */
 9  public double tx;  /* Drehmomentkomponente um die x-Achse, Einheit Nm */
10  public double ty;  /* Drehmomentkomponente um die y-Achse, Einheit Nm */
11  public double tz;  /* Drehmomentkomponente um die z-Achse, Einheit Nm */
12  public ForceTorque(double fX, double fY, double fZ, double tX, double tY, double tZ)
13  {
14    fx = fX;
15    fy = fY;
16    fz = fZ;
17    tx = tX;
18    ty = tY;
19    tz = tZ;
20  }
21}

2.7. Datentyp für Spiralparameter

 1/**
 2* @brief Datentyp für Spiralparameter.
 3*/
 4public class SpiralParam
 5{
 6    public int circle_num;           /* Anzahl der Windungen  */
 7    public double circle_angle;      /* Neigungswinkel der Spirale  */
 8    public double rad_init;          /* Anfangsradius der Spirale, Einheit mm  */
 9    public double rad_add;           /* Radiusinkrement  */
10    public double rotaxis_add;       /* Inkrement in Richtung der Drehachse  */
11    public int rot_direction;        /* Drehrichtung, 0-im Uhrzeigersinn, 1-gegen Uhrzeigersinn  */
12    public int velAccMode;           /* Modus für Geschwindigkeit/Beschleunigung: 0-Winkelgeschwindigkeit konstant; 1-Lineargeschwindigkeit konstant */
13    public SpiralParam(int circleNum, double circleAngle, double radInit, double radAdd, double rotaxisAdd, int rotDirection, int vel_AccMode)
14    {
15        circle_num = circleNum;
16        circle_angle = circleAngle;
17        rad_init = radInit;
18        rad_add = radAdd;
19        rotaxis_add = rotaxisAdd;
20        rot_direction = rotDirection;
21        velAccMode = vel_AccMode;
22    }
23}

2.8. Datentyp für Erweiterungsachsen-Status

 1/**
 2* @brief Datentyp für den Status der Erweiterungsachse.
 3*/
 4public class EXT_AXIS_STATUS
 5{
 6 public double pos = 0;        // Erweiterungsachsenposition
 7 public double vel = 0;        // Erweiterungsachsengeschwindigkeit
 8 public int errorCode = 0;     // Fehlercode der Erweiterungsachse
 9 public int ready = 0;         // Servo bereit
10 public int inPos = 0;         // Servo in Position
11 public int alarm = 0;         // Servoalarm
12 public int flerr = 0;         // Folgefehler
13 public int nlimit = 0;        // Negative Endlage erreicht
14 public int pLimit = 0;        // Positive Endlage erreicht
15 public int mdbsOffLine = 0;   // Antriebs-485-Bus offline
16 public int mdbsTimeout = 0;   // Kommunikationstimeout zwischen Steuerkarte und Steuerschrank (485)
17 public int homingStatus = 0;  // Referenzpunktfahrt-Status der Erweiterungsachse
18}

2.9. Sensortyp

 1/**
 2* @brief Sensortyp.
 3*/
 4public class DeviceConfig
 5{
 6  int company = 0;          // Hersteller
 7  int device = 0;           // Typ / Gerätenummer
 8  int softwareVersion = 0;  // Softwareversion
 9  int bus = 0;              // Montageposition (Bus)
10
11  public DeviceConfig()
12  {
13
14  }
15
16  public DeviceConfig(int company, int device, int softwareVersion, int bus)
17  {
18    this.company = company;
19    this.device = device;
20    this.softwareVersion = softwareVersion;
21    this.bus = bus;
22  }
23}

2.10. 485-Erweiterungsachsen-Konfiguration

 1/**
 2* @brief 485-Erweiterungsachsen-Konfiguration.
 3*/
 4public class Axis485Param
 5{
 6  int servoCompany;           // Hersteller des Servoantriebs, 1-DYNATEC
 7  int servoModel;             // Modell des Servoantriebs, 1-FD100-750C
 8  int servoSoftVersion;       // Softwareversion des Servoantriebs, 1-V1.0
 9  int servoResolution;        // Encoderauflösung
10  double axisMechTransRatio;  // Mechanisches Übersetzungsverhältnis
11
12  public Axis485Param(int company, int model, int softVersion, int resolution, double mechTransRatio)
13  {
14    servoCompany = company;
15    servoModel = model;
16    servoSoftVersion = softVersion;
17    servoResolution = resolution;
18    axisMechTransRatio = mechTransRatio;
19  }
20
21  public Axis485Param()
22  {
23
24  }
25}

2.11. Servocontroller-Status

 1/**
 2* @brief Servocontroller-Status.
 3*/
 4public class ROBOT_AUX_STATE
 5{
 6  public int servoId = 0;           // Servoantriebs-ID-Nummer
 7  public int servoErrCode = 0;      // Fehlercode des Servoantriebs
 8  public int servoState = 0;        // Status des Servoantriebs
 9  public double servoPos = 0;       // Aktuelle Position des Servos
10  public float servoVel = 0;        // Aktuelle Geschwindigkeit des Servos
11  public float servoTorque = 0;     // Aktuelles Drehmoment des Servos
12}

2.12. Schweißunterbrechungsstatus

1/**
2* @brief Schweißunterbrechungsstatus.
3*/
4public class WELDING_BREAKOFF_STATE
5{
6  public int breakOffState = 0;  // Schweißunterbrechungsstatus
7  public int weldArcState = 0;   // Lichtbogenunterbrechungsstatus beim Schweißen
8}

2.13. UDP-Erweiterungsachsen-Kommunikationsparameter

 1/**
 2* @brief UDP-Erweiterungsachsen-Kommunikationsparameter.
 3*/
 4public class UDPComParam
 5{
 6  public String ip = "192.168.58.88";// IP-Adresse
 7  public int port = 2021;            // Portnummer
 8  public int period = 2;             // Kommunikationszyklus (ms, Standard 2, diesen Parameter nicht ändern)
 9  public int lossPkgTime = 50;       // Paketverlust-Erkennungszeit (ms)
10  public int lossPkgNum = 2;         // Anzahl der Paketverluste
11  public int disconnectTime = 100;   // Bestätigungsdauer für Kommunikationsunterbrechung
12  public int reconnectEnable = 0;    // Automatische Wiederverbindung bei Kommunikationsunterbrechung aktivieren? 0-deaktivieren, 1-aktivieren
13  public int reconnectPeriod = 100;  // Wiederverbindungsintervall (ms)
14  public int reconnectNum = 3;       // Anzahl der Wiederverbindungsversuche
15  public int selfConnect = 0;        // Automatische Verbindung nach Neustart? 0-keine Verbindung; 1-Verbindung herstellen
16}

2.14. Strukturtyp für Roboterstatus-Rückmeldung

  1/**
  2* @brief  Roboterstatus-Rückmeldungsstrukturtyp
  3*/
  4public class ROBOT_STATE_PKG {
  5    public int frame_head;                      // Rahmenkopf
  6    public int frame_cnt;                       // Rahmenzählung
  7    public int data_len;                        // Datenlänge
  8    public int program_state;                   // Programmstatus - 1-gestoppt; 2-läuft; 3-pausiert
  9    public int robot_state;                     // Roboterbewegungsstatus - 1-gestoppt; 2-läuft; 3-pausiert; 4-ziehen
 10    public int main_code;                       // Hauptfehlercode
 11    public int sub_code;                        // Unterfehlercode
 12    public int robot_mode;                      // Robotermodus - 1-Handmodus; 0-Automatikmodus
 13    public double[] jt_cur_pos = new double[6]; // Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
 14    public double[] tl_cur_pos = new double[6]; // Aktuelle Werkzeugposition - [x,y,z,rx,ry,rz]
 15    public double[] flange_cur_pos = new double[6]; // Aktuelle Endflanschposition - [x,y,z,rx,ry,rz]
 16    public double[] actual_qd = new double[6];  // Aktuelle Geschwindigkeiten von 6 Gelenken, Einheit deg/s
 17    public double[] actual_qdd = new double[6]; // Aktuelle Beschleunigungen von 6 Gelenken, Einheit deg/s^2
 18    public double[] target_TCP_CmpSpeed = new double[2]; // TCP zusammengesetzte Befehlgeschwindigkeit - [Position mm/s, Orientierung deg/s]
 19    public double[] target_TCP_Speed = new double[6]; // TCP Befehlgeschwindigkeit - [vx,vy,vz,wx,wy,wz]
 20    public double[] actual_TCP_CmpSpeed = new double[2]; // TCP zusammengesetzte tatsächliche Geschwindigkeit - [Position mm/s, Orientierung deg/s]
 21    public double[] actual_TCP_Speed = new double[6]; // TCP tatsächliche Geschwindigkeit - [vx,vy,vz,wx,wy,wz]
 22    public double[] jt_cur_tor = new double[6]; // Aktuelles Gelenkmoment
 23    public int tool;                            // Werkzeug-ID
 24    public int user;                            // Werkstück-ID
 25    public int cl_dgt_output_h;                 // Digitaler Ausgang des Schaltschranks High-Byte
 26    public int cl_dgt_output_l;                 // Digitaler Ausgang des Schaltschranks Low-Byte
 27    public int tl_dgt_output_l;                 // Digitaler Werkzeugausgang Low-Byte
 28    public int cl_dgt_input_h;                  // Digitaler Eingang des Schaltschranks High-Byte
 29    public int cl_dgt_input_l;                  // Digitaler Eingang des Schaltschranks Low-Byte
 30    public int tl_dgt_input_l;                  // Digitaler Werkzeugeingang Low-Byte
 31    public int[] cl_analog_input = new int[2];  // Analoger Eingang des Schaltschranks
 32    public int tl_anglog_input;                 // Analoger Werkzeugeingang
 33    public double[] ft_sensor_raw_data = new double[6]; // Rohdaten des Kraftsensors
 34    public double[] ft_sensor_data = new double[6]; // Daten des Kraftsensors
 35    public int ft_sensor_active;                // Aktivierungsstatus des Kraftsensors
 36    public int EmergencyStop;                   // Not-Halt-Status
 37    public int motion_done;                     // Bewegung abgeschlossen
 38    public int gripper_motiondone;              // Greiferbewegung abgeschlossen
 39    public int mc_queue_len;                    // Bewegungswarteschlangenlänge
 40    public int collisionState;                  // Kollisionsstatus
 41    public int trajectory_pnum;                 // Bahnpunkt-Sequenznummer
 42    public int safety_stop0_state;              // Sicherheitsstopp 0 Status
 43    public int safety_stop1_state;              // Sicherheitsstopp 1 Status
 44    public int gripper_fault_id;                // Greiferfehler-ID
 45    public int gripper_fault;                   // Greiferfehler
 46    public int gripper_active;                  // Greiferaktivierung
 47    public int gripper_position;                // Greiferposition
 48    public int gripper_speed;                   // Greifergeschwindigkeit
 49    public int gripper_current;                 // Greiferstrom
 50    public int gripper_temp;                    // Greifertemperatur
 51    public int gripper_voltage;                 // Greiferspannung
 52    public AuxState aux_state = new AuxState(); // Interner Hilfsachsenstatus
 53    public EXT_AXIS_STATUS[] extAxisStatus = new EXT_AXIS_STATUS[4]; // Erweiterungsachsenstatus-Array
 54    public short[] extDIState = new short[8];   // Erweiterte E/A
 55    public short[] extDOState = new short[8];   // Erweiterte E/A
 56    public short[] extAIState = new short[4];   // Erweiterte E/A
 57    public short[] extAOState = new short[4];   // Erweiterte E/A
 58    public int rbtEnableState;                  // Roboter-Aktivierungsstatus
 59    public double[] jointDriverTorque = new double[6]; // Gelenktreibermoment
 60    public double[] jointDriverTemperature = new double[6]; // Gelenktreibertemperatur
 61    public ROBOT_TIME robotTime = new ROBOT_TIME(); // Roboterzeitobjekt
 62    public int softwareUpgradeState;            // Software-Upgrade-Status
 63    public int endLuaErrCode;                   // End-Lua-Fehlercode
 64    public int[] cl_analog_output = new int[2]; // Analoger Ausgang des Schaltschranks
 65    public int tl_analog_output;                // Analoger Werkzeugausgang
 66    public float gripperRotNum;                 // Drehzahl des rotierenden Greifers
 67    public int gripperRotSpeed;                 // Geschwindigkeit des rotierenden Greifers
 68    public int gripperRotTorque;                // Drehmoment des rotierenden Greifers
 69    public WELDING_BREAKOFF_STATE weldingBreakOffState = new WELDING_BREAKOFF_STATE(); // Schweißunterbrechungsstatus
 70    public double[] jt_tgt_tor = new double[6]; // Soll-Gelenkmoment
 71    public int smartToolState;                  // Smart-Tool-Status
 72    public float wideVoltageCtrlBoxTemp;        // Weitspannungs-Steuerkastentemperatur
 73    public int wideVoltageCtrlBoxFanCurrent;    // Weitspannungs-Steuerkasten-Lüfterstrom
 74    public double[] toolCoord = new double[6];  // Werkzeugkoordinatensystem
 75    public double[] wobjCoord = new double[6];  // Werkstückkoordinatensystem
 76    public double[] extoolCoord = new double[6]; // Externes Werkzeugkoordinatensystem
 77    public double[] exAxisCoord = new double[6]; // Erweiterungsachsenkoordinatensystem
 78    public double load;                         // Last
 79    public double[] loadCog = new double[3];    // Lastschwerpunkt
 80    public double[] lastServoTarget = new double[6]; // Letzte Servo-J-Sollposition
 81    public int servoJCmdNum;                    // Servo-J-Befehlszähler
 82    public double[] targetJointPos = new double[6]; // Soll-Gelenkposition
 83    public double[] targetJointVel = new double[6]; // Soll-Gelenkgeschwindigkeit
 84    public double[] targetJointAcc = new double[6]; // Soll-Gelenkbeschleunigung
 85    public double[] targetJointCurrent = new double[6]; // Soll-Gelenkstrom
 86    public double[] actualJointCurrent = new double[6]; // Tatsächlicher Gelenkstrom
 87    public double[] actualTCPForce = new double[6]; // Tatsächliche TCP-Kraft
 88    public double[] targetTCPPos = new double[6]; // Soll-TCP-Position
 89    public int[] collisionLevel = new int[6];   // Kollisionsstufe
 90    public double speedScaleManual;              // Manueller Geschwindigkeitsmaßstab
 91    public double speedScaleAuto;                // Automatischer Geschwindigkeitsmaßstab
 92    public int luaLineNum;                       // Lua-Zeilennummer
 93    public int abnomalStop;                      // Abnormaler Stopp
 94    public String currentLuaFileName;            // Aktueller Lua-Dateiname
 95    public int programTotalLine;                 // Programmgesamtzeilen
 96    public int[] safetyBoxSingal = new int[6];   // Sicherheitskastensignal
 97    public double weldVoltage;                   // Schweißspannung
 98    public double weldCurrent;                   // Schweißstrom
 99    public double weldTrackVel;                  // Schweißnahtverfolgungsgeschwindigkeit
100    public int tpdException;                     // TPD-Ausnahme
101    public int alarmRebootRobot;                 // Alarm-Roboter-Neustart
102    public int modbusMasterConnect;              // Modbus-Master-Verbindung
103    public int modbusSlaveConnect;               // Modbus-Slave-Verbindung
104    public int btnBoxStopSignal;                 // Tastenfeld-Stoppsignal
105    public int dragAlarm;                        // Ziehalarm
106    public int safetyDoorAlarm;                  // Sicherheitstüralarm
107    public int safetyPlaneAlarm;                 // Sicherheitsebenenalarm
108    public int motonAlarm;                       // Bewegungsalarm
109    public int interfaceAlarm;                   // Interferenzalarm
110    public int udpCmdState;                      // UDP-Befehlsstatus
111    public int weldReadyState;                   // Schweißbereitschaftsstatus
112    public int alarmCheckEmergStopBtn;           // Alarmprüfung Not-Halt-Taste
113    public int tsTmCmdComError;                  // Befehlskommunikationsfehler
114    public int tsTmStateComError;                // Statuskommunikationsfehler
115    public int ctrlBoxError;                     // Steuerkastenfehler
116    public int safetyDataState;                  // Sicherheitsdatenstatus
117    public int forceSensorErrState;              // Kraftsensorfehlerstatus
118    public int[] ctrlOpenLuaErrCode = new int[4]; // Steuerungs-Open-Lua-Fehlercode
119    public int strangePosFlag;                   // Singuläre Positionskennzeichnung
120    public int alarm;                            // Alarm
121    public int driverAlarm;                      // Treiberalarm
122    public int aliveSlaveNumError;               // Fehler bei Anzahl aktiver Slaves
123    public int[] slaveComError = new int[8];     // Slave-Kommunikationsfehler
124    public int cmdPointError;                    // Befehlspunktfehler
125    public int IOError;                          // IO-Fehler
126    public int gripperError;                     // Greiferfehler
127    public int fileError;                        // Dateifehler
128    public int paraError;                        // Parameterfehler
129    public int exaxisOutLimitError;              // Fehler bei Überschreitung der Weichgrenze der Erweiterungsachse
130    public int[] driverComError = new int[6];    // Treiberkommunikationsfehler
131    public int driverError;                      // Treiberfehler
132    public int outSoftLimitError;                // Fehler bei Überschreitung der Weichgrenze
133    public byte[] axleGenComData = new byte[130]; // Allgemeine Achskommunikationsdaten
134    public int check_sum;                        // Prüfsumme
135    public int socketConnTimeout;                // Socket-Verbindungszeitüberschreitung
136    public int socketReadTimeout;                // Socket-Lesezeitüberschreitung
137    public int tsWebStateComErr;                 // TS-Web-Zustandskommunikationsfehler
138    public int exaxisCoordID;                  // Kennung des erweiterten Achskoordinatensystems
139}

2.15. Roboterstatus-Feedback-Konfigurationsergebnisklasse

1/**
2* Roboterstatus-Feedback-Konfigurationsergebnisklasse, enthält Statusliste und Periode
3*/
4public static class StateConfigResult {
5  public final List<RobotState> stateList;
6  public final int period;
7}

2.16. Roboterstatus-Feedback-Konfigurationsaufzählungstyp

  1/**
  2* Roboterstatus-Aufzählungstyp
  3* Wird für die Echtzeitstatus-Feedback-Konfiguration verwendet
  4*/
  5enum class RobotState
  6{
  7    ProgramState,           // Programmstatus, 1-gestoppt; 2-läuft; 3-pausiert
  8    RobotState,             // Roboterbewegungsstatus, 1-gestoppt; 2-läuft; 3-pausiert; 4-Ziehen
  9    MainCode,               // Hauptfehlercode
 10    SubCode,                // Unterfehlercode
 11    RobotMode,              // Robotermodus, 1-Manualmodus; 0-Automatikmodus
 12    JointCurPos,            // Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
 13    ToolCurPos,             // Aktuelle Werkzeugposition: [0]Position entlang x-Achse(mm), [1]entlang y-Achse(mm), [2]entlang z-Achse(mm), [3]Rotation um festes X(deg), [4]um festes Y(deg), [5]um festes Z(deg)
 14    FlangeCurPos,           // Aktuelle Endflanschposition: [0]entlang x-Achse(mm), [1]entlang y-Achse(mm), [2]entlang z-Achse(mm), [3]Rotation um festes X(deg), [4]um festes Y(deg), [5]um festes Z(deg)
 15    ActualJointVel,         // Aktuelle 6 Gelenkgeschwindigkeiten, Einheit deg/s
 16    ActualJointAcc,         // Aktuelle 6 Gelenkbeschleunigungen, Einheit deg/s²
 17    TargetTCPCmpSpeed,      // TCP-Zusammengesetzte Befehlgeschwindigkeit: [0]Position(mm/s), [1]Orientierung(deg/s)
 18    TargetTCPSpeed,         // TCP-Befehlgeschwindigkeit: [0]entlang x-Achse(mm/s), [1]entlang y-Achse(mm/s), [2]entlang z-Achse(mm/s), [3]Winkelgeschwindigkeit um X(deg/s), [4]um Y(deg/s), [5]um Z(deg/s)
 19    ActualTCPCmpSpeed,      // TCP-Zusammengesetzte Istgeschwindigkeit: [0]Position(mm/s), [1]Orientierung(deg/s)
 20    ActualTCPSpeed,         // TCP-Istgeschwindigkeit: [0]entlang x-Achse(mm/s), [1]entlang y-Achse(mm/s), [2]entlang z-Achse(mm/s), [3]Winkelgeschwindigkeit um X(deg/s), [4]um Y(deg/s), [5]um Z(deg/s)
 21    ActualJointTorque,      // Aktuelle 6 Gelenkdrehmomente, Einheit N·m
 22    Tool,                   // Angewandte Werkzeugkoordinatensystemnummer
 23    User,                   // Angewandte Werkstückkoordinatensystemnummer
 24    ClDgtOutputH,           // Digitaler IO-Ausgang des Steuerschranks 15-8
 25    ClDgtOutputL,           // Digitaler IO-Ausgang des Steuerschranks 7-0
 26    TlDgtOutputL,           // Digitaler Werkzeug-IO-Ausgang 7-0, nur bit0-bit1 gültig
 27    ClDgtInputH,            // Digitaler IO-Eingang des Steuerschranks 15-8
 28    ClDgtInputL,            // Digitaler IO-Eingang des Steuerschranks 7-0
 29    TlDgtInputL,            // Digitaler Werkzeug-IO-Eingang 7-0, nur bit0-bit1 gültig
 30    ClAnalogInput,          // Analoger Eingang des Steuerschranks: [0]Kanal 0, [1]Kanal 1
 31    TlAnalogInput,          // Analoger Werkzeugeingang
 32    FtSensorRawData,        // Rohdaten des Kraft-Drehmoment-Sensors: [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)
 33    FtSensorData,           // Daten des Kraft-Drehmoment-Sensors (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)
 34    FtSensorActive,         // Aktivierungsstatus des Kraft-Drehmoment-Sensors, 0-Reset, 1-aktiv
 35    EmergencyStop,          // Not-Halt-Flag, 0-Not-Halt nicht gedrückt, 1-Not-Halt gedrückt
 36    MotionDone,             // Bewegungs-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 37    GripperMotiondone,      // Greiferbewegung-abgeschlossen-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 38    McQueueLen,             // Länge der Bewegungskommandowarteschlange
 39    CollisionState,         // Kollisionserkennung, 1-Kollision, 0-keine Kollision
 40    TrajectoryPnum,         // Trajektorienpunktnummer
 41    SafetyStop0State,       // Sicherheitsstoppsignal SI0
 42    SafetyStop1State,       // Sicherheitsstoppsignal SI1
 43    GripperFaultId,         // Fehlerhafte Greifernummer
 44    GripperFault,           // Greiferfehler
 45    GripperActive,          // Greiferaktivierungsstatus
 46    GripperPosition,        // Greiferposition
 47    GripperSpeed,           // Greifergeschwindigkeit
 48    GripperCurrent,         // Greiferstrom
 49    GripperTemp,            // Greifertemperatur
 50    GripperVoltage,         // Greiferspannung
 51    AuxState,               // 485 Erweiterter Achsenstatus
 52    ExtAxisStatus,          // UDP-Erweiterte Achsenstatus (4 Achsen)
 53    ExtDIState,             // Erweiterter DI-Eingang (8)
 54    ExtDOState,             // Erweiterter DO-Ausgang (8)
 55    ExtAIState,             // Erweiterter AI-Eingang (4)
 56    ExtAOState,             // Erweiterter AO-Ausgang (4)
 57    RbtEnableState,         // Roboter-Freigabestatus
 58    JointDriverTorque,      // Roboter-Gelenktreiber-Drehmoment (6 Gelenke)
 59    JointDriverTemperature, // Roboter-Gelenktreiber-Temperatur (6 Gelenke)
 60    RobotTime,              // Roboter-Systemzeit
 61    SoftwareUpgradeState,   // Roboter-Software-Upgrade-Status
 62    EndLuaErrCode,          // End-LUA-Ausführungsstatus
 63    ClAnalogOutput,         // Analoger Ausgang des Steuerschranks (2)
 64    TlAnalogOutput,         // Analoger Werkzeugausgang
 65    GripperRotNum,          // Aktuelle Rotationsumdrehungen des Drehgreifers
 66    GripperRotSpeed,        // Aktuelle Rotationsgeschwindigkeitsprozent des Drehgreifers
 67    GripperRotTorque,       // Aktuelles Rotationsdrehmomentprozent des Drehgreifers
 68    WeldingBreakOffState,   // Schweißunterbrechungsstatus
 69    TargetJointTorque,      // Gelenkbefehlsdrehmoment (6 Gelenke)
 70    SmartToolState,         // SmartTool-Griffknopfstatus
 71    WideVoltageCtrlBoxTemp, // Temperatur des Weitspannungs-Steuerschranks
 72    WideVoltageCtrlBoxFanCurrent, // Lüfterstrom des Weitspannungs-Steuerschranks (mA)
 73    ToolCoord,              // Aktuelle Werkzeugkoordinatenwerte: x,y,z,rx,ry,rz
 74    WobjCoord,              // Aktuelle Werkstückkoordinatenwerte: x,y,z,rx,ry,rz
 75    ExtoolCoord,            // Aktuelle externe Werkzeugkoordinatenwerte: x,y,z,rx,ry,rz
 76    ExAxisCoord,            // Aktuelle erweiterte Achsenkoordinatenwerte: x,y,z,rx,ry,rz
 77    Load,                   // Lastmasse
 78    LoadCog,                // Lastschwerpunkt: x,y,z
 79    LastServoTarget,        // Letzte ServoJ-Zielposition in Warteschlange (6 Gelenke)
 80    ServoJCmdNum,           // servoJ-Befehlszähler
 81    TargetJointPos,         // 6 Gelenkbefehlspositionen, Einheit °
 82    TargetJointVel,         // 6 Gelenkbefehlsgeschwindigkeiten, Einheit °/s
 83    TargetJointAcc,         // 6 Gelenkbefehlsbeschleunigungen, Einheit °/s²
 84    TargetJointCurrent,     // 6 Gelenkbefehlsströme, Einheit A
 85    ActualJointCurrent,     // 6 Gelenkistströme, Einheit A
 86    ActualTCPForce,         // Roboter-Enddrehmoment: x,y,z,rx,ry,rz, Einheit Nm
 87    TargetTCPPos,           // Roboter-TCP-Befehlsposition: x,y,z,rx,ry,rz, Einheit mm
 88    CollisionLevel,         // Roboter-Kollisionsstufe (6)
 89    SpeedScaleManual,       // Globale Geschwindigkeitsprozent im Handmodus
 90    SpeedScaleAuto,         // Globale Geschwindigkeitsprozent im Automatikmodus
 91    LuaLineNum,             // Aktuelle laufende Zeilennummer des Lua-Programms
 92    AbnomalStop,            // 0-keine Anomalie; 1-Anomalie vorhanden
 93    CurrentLuaFileName,     // Aktueller laufender Lua-Programmname
 94    ProgramTotalLine,       // Lua-Programm-Gesamtzeilen
 95    SafetyBoxSingal,        // Roboter-Tastenfeld-Tastenstatus (6)
 96    WeldVoltage,            // Schweißspannung V
 97    WeldCurrent,            // Schweißstrom
 98    WeldTrackVel,           // Nahtverfolgungsgeschwindigkeit mm/s
 99    TpdException,           // TPD-Trajektorien-Ladeanzahl überschritten, 0-nicht überschritten, 1-überschritten
100    AlarmRebootRobot,       // Warnung: 1-Stromzyklus nach Loslassen des Not-Halts erforderlich, 2-Gelenkkommunikationsanomalie erfordert Stromzyklus
101    ModbusMasterConnect,    // bit0-7 entsprechen ModbusTCP-Master 0-7 Verbindungsstatus, 0-nicht verbunden, 1-verbunden
102    ModbusSlaveConnect,     // ModbusTCP-Slave-Verbindungsstatus, 0-nicht verbunden, 1-verbunden
103    BtnBoxStopSignal,       // Not-Halt-Signal des Tastenfelds, 0-Not-Halt losgelassen, 1-Not-Halt gedrückt
104    DragAlarm,              // Ziehwarnung: 0-kein Alarm, 1-Alarm, 2-Positionsrückmeldungsanomalie kein Wechsel
105    SafetyDoorAlarm,        // Sicherheitstürwarnung: 0-geschlossen, 1-geöffnet
106    SafetyPlaneAlarm,       // Sicherheitswandwarnung: 0-nicht betreten, 1-betreten
107    MotonAlarm,             // Bewegungswarnung
108    InterfaceAlarm,         // Warnung beim Eintritt in Interferenzzone
109    UdpCmdState,            // UDP-Kommunikationsverbindungsstatus von Port 20007
110    WeldReadyState,         // Schweißgerät-Bereitschaftsstatus
111    AlarmCheckEmergStopBtn, // 0-normal; 1-Kommunikationsanomalie, Not-Halt-Knopf prüfen
112    TsTmCmdComError,        // 0-normal; 1-Drehmomentbefehlskommunikationsfehler
113    TsTmStateComError,      // 0-normal; 1-Drehmomentstatuskommunikationsfehler
114    CtrlBoxError,           // Steuerschrankfehler
115    SafetyDataState,        // Sicherheitsdatenstatus, 0-normal, 1-anomal
116    ForceSensorErrState,    // Kraftsensor-Verbindungszeitüberschreitung, bit0-bit1 entsprechen ID1-ID2
117    CtrlOpenLuaErrCode,     // 4 Controller-Peripherieprotokoll-Fehlercodes (500-Fehlercode)
118    StrangePosFlag,         // Singuläre-Pose-Flag: 0-normal, 1-singuläre Pose
119    Alarm,                  // Alarm
120    DriverAlarm,            // Treiber-Alarmachsenummer
121    AliveSlaveNumError,     // Aktive-Slave-Anzahlfehler: 0-normal, 1-Anzahlfehler
122    SlaveComError,          // Slave-Fehler: 0-normal, 1-offline, 2-Zustandsinkonsistenz, 3-nicht konfiguriert, 4-Konfigurationsfehler, 5-Initialisierungsfehler, 6-Mailbox-Kommunikationsinitialisierungsfehler
123    CmdPointError,          // Befehlspunktfehler
124    IOError,                // IO-Fehler
125    GripperError,           // Greiferfehler
126    FileError,              // Dateifehler
127    ParaError,              // Parameterfehler
128    ExaxisOutLimitError,    // Fehler wegen Überschreitung der weichen Grenze der externen Achse
129    DriverComError,         // Treiberkommunikationsfehler (6 Achsen)
130    DriverError,            // Achsnummer des Treiberkommunikationsfehlers
131    OutSoftLimitError,      // Fehler wegen Überschreitung der weichen Grenze
132    AxleGenComData,         // Roboter-End-Durchsatz-Feedbackdaten
133    SocketConnTimeout,      // Socket-Verbindungszeitüberschreitung, bit0-bit4 entsprechen socketID 1-4
134    SocketReadTimeout,      // Socket-Lesezeitüberschreitung, bit0-bit4 entsprechen socketID 1-4
135    TsWebStateComErr,       // web-Drehmomentkommunikationsfehler: 0-normal, 1-Fehler
136    ExaxisCoordID           // Kennung des erweiterten Achskoordinatensystems
137};