2. Beschreibung der Datenstrukturen

2.1. Datentyp für Gelenkpositionen

1/**
2* @brief Datentyp für Gelenkpositionen.
3*/
4struct JointPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
7    public double[] jPos;   /* Sechs Gelenkpositionen, Einheit deg */
8}

2.2. Datentyp für Positionen im kartesischen Raum

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

2.3. Datentyp für Euler-Winkel-Ausrichtung

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

2.4. Datentyp für Posen im kartesischen Raum

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

2.5. Datentyp für Positionen der Erweiterungsachse

1/**
2* @brief Datentyp für Positionen der Erweiterungsachse.
3*/
4struct ExaxisPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
7    public double[] ePos;   /* Positionen der vier Erweiterungsachsen, Einheit mm */
8}

2.6. Datentyp für Kraft-/Drehmomentsensor

 1/**
 2* @brief Kraftkomponenten und Drehmomentkomponenten des Kraftsensors.
 3*/
 4struct 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}

2.7. Datentyp für Spiralparameter

 1public struct SpiralParam
 2{
 3    public int circle_num;           /* Anzahl der Windungen  */
 4    public float circle_angle;       /* Neigungswinkel der Spirale  */
 5    public float rad_init;            /* Anfangsradius der Spirale, Einheit mm  */
 6    public float rad_add;             /* Radiusinkrement  */
 7    public float rotaxis_add;         /* Inkrement in Richtung der Drehachse  */
 8    public uint rot_direction;        /* Drehrichtung, 0-im Uhrzeigersinn, 1-gegen Uhrzeigersinn  */
 9    public int velAccMode;            // Modus für Geschwindigkeit/Beschleunigung: 0-Winkelgeschwindigkeit konstant; 1-Lineargeschwindigkeit konstant
10    public SpiralParam(int num, float angle, float initRad, float addRad, float axisAdd, uint direction, int mode)
11    {
12        circle_num = num;
13        circle_angle = angle;
14        rad_init = initRad;
15        rad_add = addRad;
16        rotaxis_add = axisAdd;
17        rot_direction = direction;
18        velAccMode = mode;
19    }
20}

2.8. Datentyp für Erweiterungsachsen-Status

Neu in Version C#SDK-v1.0.6.

 1/**
 2* @brief Datentyp für den Status der Erweiterungsachse.
 3*/
 4[StructLayout(LayoutKind.Sequential, Pack = 1)]
 5public struct ROBOT_AUX_STATE
 6{
 7    public byte servoId;           // Servoantriebs-ID-Nummer
 8    public int servoErrCode;       // Fehlercode des Servoantriebs
 9    public int servoState;         // Status des Servoantriebs
10    public double servoPos;        // Aktuelle Position des Servos
11    public float servoVel;         // Aktuelle Geschwindigkeit des Servos
12    public float servoTorque;      // Aktuelles Drehmoment des Servos
13}

2.9. Schweißunterbrechungsstatus

1[StructLayout(LayoutKind.Sequential, Pack = 1)]
2public struct WELDING_BREAKOFF_STATE
3{
4    public byte breakOffState;  // Schweißunterbrechungsstatus
5    public byte weldArcState;   // Lichtbogenunterbrechungsstatus beim Schweißen
6}

2.10. Roboterstatus-Feedback-Strukturtyp

Neu in Version C#SDK-V1.1.4: Web-3.8.3

  1/**
  2* @brief  Roboterstatus-Feedback-Strukturtyp
  3*/
  4[StructLayout(LayoutKind.Sequential, Pack = 1)]
  5public class ROBOT_STATE_PKG
  6{
  7    public UInt16 frame_head;           // Rahmenkopf 0x5A5A
  8    public byte frame_cnt;              // Rahmenzählung
  9    public UInt16 data_len;             // Datenlänge 5
 10    public byte program_state;          // Programmausführungsstatus, 1-gestoppt; 2-läuft; 3-pausiert;
 11    public byte robot_state;            // Roboterbewegungsstatus, 1-gestoppt; 2-läuft; 3-pausiert; 4-Ziehen
 12    public int main_code;               // Hauptfehlercode
 13    public int sub_code;                // Unterfehlercode
 14    public byte robot_mode;             // Robotermodus, 1-Handmodus; 0-Automatikmodus;
 15
 16    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 17    public double[] jt_cur_pos;         // Aktuelle Gelenkpositionen von 6 Achsen, Einheit deg
 18    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 19    public double[] tl_cur_pos;         // Aktuelle Werkzeugposition (TCP)
 20    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 21    public double[] flange_cur_pos;     // Aktuelle Position des Endflansches
 22    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 23    public double[] actual_qd;          // Aktuelle Geschwindigkeiten von 6 Gelenken, Einheit deg/s
 24    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 25    public double[] actual_qdd;         // Aktuelle Beschleunigungen von 6 Gelenken, Einheit deg/s^2
 26    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 27    public double[] target_TCP_CmpSpeed;// TCP-Synthese-Sollgeschwindigkeit (Position, Orientierung)
 28    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 29    public double[] target_TCP_Speed;   // TCP-Sollgeschwindigkeit
 30    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 31    public double[] actual_TCP_CmpSpeed;// TCP-Synthese-Istgeschwindigkeit
 32    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 33    public double[] actual_TCP_Speed;   // TCP-Istgeschwindigkeit
 34    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 35    public double[] jt_cur_tor;         // Aktuelle Drehmomente von 6 Achsen, Einheit N·m
 36
 37    public int tool;                    // Angewandte Werkzeugkoordinatensystem-Nummer
 38    public int user;                    // Angewandte Werkstückkoordinatensystem-Nummer
 39    public byte cl_dgt_output_h;        // Digitale IO-Ausgabe des Steuerkastens 15-8
 40    public byte cl_dgt_output_l;        // Digitale IO-Ausgabe des Steuerkastens 7-0
 41    public byte tl_dgt_output_l;        // Digitale IO-Ausgabe des Werkzeugs 7-0, nur Bits 0-1 gültig
 42    public byte cl_dgt_input_h;         // Digitale IO-Eingabe des Steuerkastens 15-8
 43    public byte cl_dgt_input_l;         // Digitale IO-Eingabe des Steuerkastens 7-0
 44    public byte tl_dgt_input_l;         // Digitale IO-Eingabe des Werkzeugs 7-0, nur Bits 0-1 gültig
 45
 46    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 47    public UInt16[] cl_analog_input;        // Analogeingänge des Steuerkastens
 48    public UInt16 tl_anglog_input;          // Analogeingang des Werkzeugs
 49
 50    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 51    public double[] ft_sensor_raw_data; // Rohdaten des Drehmomentsensors
 52    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 53    public double[] ft_sensor_data;     // Daten des Drehmomentsensors
 54    public byte ft_sensor_active;       // Aktivierungsstatus des Drehmomentsensors, 0-Zurücksetzen, 1-aktiviert
 55
 56    public byte EmergencyStop;          // Not-Halt-Flag, 0-nicht gedrückt, 1-gedrückt
 57    public int motion_done;             // Bewegungsabschluss-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 58    public byte gripper_motiondone;     // Greiferbewegungsabschluss-Signal, 1-abgeschlossen, 0-nicht abgeschlossen
 59    public int mc_queue_len;            // Länge der Bewegungskommando-Warteschlange
 60    public byte collisionState;         // Kollisionserkennung, 1-Kollision, 0-keine Kollision
 61    public int trajectory_pnum;         // Trajektorienpunktnummer
 62    public byte safety_stop0_state;     // Sicherheitsstoppsignal SI0
 63    public byte safety_stop1_state;     // Sicherheitsstoppsignal SI1
 64    public byte gripper_fault_id;       // ID des fehlerhaften Greifers
 65    public UInt16 gripper_fault;     /* Greiferfehler */
 66    public UInt16 gripper_active;    /* Greiferaktivierungsstatus */
 67    public byte gripper_position;       // Greiferposition
 68    public byte gripper_speed;       /* Greifergeschwindigkeit */
 69    public byte gripper_current;     /* Greiferstrom */
 70    public int gripper_temp;            // Greifertemperatur
 71    public int gripper_voltage;         // Greiferspannung
 72
 73    public ROBOT_AUX_STATE auxState;   // 485 Erweiterungsachsenstatus
 74
 75    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 76    public EXT_AXIS_STATUS[] extAxisStatus; // UDP Erweiterungsachsenstatus
 77
 78    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 79    public UInt16[] extDIState;        // Erweiterte DI-Eingänge
 80    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 81    public UInt16[] extDOState;        // Erweiterte DO-Ausgänge
 82    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 83    public UInt16[] extAIState;        // Erweiterte AI-Eingänge
 84    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 85    public UInt16[] extAOState;        // Erweiterte AO-Ausgänge
 86
 87    public int rbtEnableState;          // Roboter-Freigabestatus
 88
 89    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 90    public double[] jointDriverTorque;      // Roboter-Gelenktreiber-Drehmomente
 91    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 92    public double[] jointDriverTemperature; // Roboter-Gelenktreiber-Temperaturen
 93
 94    public ROBOT_TIME robotTime;        // Roboter-Systemzeit
 95    public int softwareUpgradeState;    // Roboter-Software-Upgrade-Status
 96    public UInt16 endLuaErrCode;    // End-LUA-Ausführungsstatus
 97
 98    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 99    public  UInt16[] cl_analog_output;  // Analogausgänge des Steuerkastens
100    public UInt16 tl_analog_output;     // Analogausgang des Werkzeugs
101
102    public float gripperRotNum;         // Aktuelle Umdrehungszahl des rotierenden Greifers
103    public byte gripperRotSpeed;        // Aktuelle Geschwindigkeitsprozent des rotierenden Greifers
104    public byte gripperRotTorque;       // Aktuelles Drehmomentprozent des rotierenden Greifers
105
106    public WELDING_BREAKOFF_STATE weldingBreakOffState; // Schweißunterbrechungsstatus
107
108    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
109    public double[] jt_tgt_tor;         // Gelenk-Solldrehmomente
110    public int smartToolState;          // SmartTool-Griffknopfstatus
111    public float wideVoltageCtrlBoxTemp; // Temperatur des Weitspannungs-Steuerkastens
112    public UInt16 wideVoltageCtrlBoxFanVel;   // Lüfterstrom des Weitspannungs-Steuerkastens (mA)
113
114    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
115    public double[] toolCoord;          // Aktuelle Werkzeugkoordinatenwerte; x,y,z,rx,ry,rz
116    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
117    public double[] wobjCoord;          // Aktuelle Werkstückkoordinatenwerte; x,y,z,rx,ry,rz
118    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
119    public double[] extoolCoord;        // Aktuelle externe Werkzeugkoordinatenwerte; x,y,z,rx,ry,rz
120    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
121    public double[] exAxisCoord;        // Aktuelle Erweiterungsachsen-Koordinatenwerte; x,y,z,rx,ry,rz
122
123    public double load;                 // Lastmasse
124    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
125    public double[] loadCog;            // Lastschwerpunkt
126    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
127    public double[] lastServoTarget;    // Letzte ServoJ-Zielposition in der Warteschlange
128    public int servoJCmdNum;            // servoJ-Kommandozähler
129
130    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
131    public double[] targetJointPos;     // Sollpositionen von 6 Gelenken, Einheit °
132    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
133    public double[] targetJointVel;     // Sollgeschwindigkeiten von 6 Gelenken, Einheit °/s
134    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
135    public double[] targetJointAcc;     // Sollbeschleunigungen von 6 Gelenken, Einheit °/s²
136    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
137    public double[] targetJointCurrent; // Sollströme von 6 Gelenken, Einheit A
138    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
139    public double[] actualJointCurrent; // Istströme von 6 Gelenken, Einheit A
140    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
141    public double[] actualTCPForce;     // Roboters-Endeffektor-Drehmoment Nm; x,y,z,rx,ry,rz
142    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
143    public double[] targetTCPPos;       // Roboter-TCP-Sollposition mm; x,y,z,rx,ry,rz
144    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
145    public byte[] collisionLevel;       // Roboter-Kollisionsstufen
146
147    public double speedScaleManual;     // Globale Geschwindigkeitsprozent im Handmodus
148    public double speedScaleAuto;       // Globale Geschwindigkeitsprozent im Automatikmodus
149    public int luaLineNum;              // Aktuelle Zeilennummer des laufenden Lua-Programms
150    public byte abnomalStop;            // 0-keine Anomalie; 1-Anomalie vorhanden
151
152    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
153    public byte[] currentLuaFileName;   // Name des aktuell laufenden Lua-Programms
154    public byte programTotalLine;       // Gesamtzeilen des Lua-Programms
155    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
156    public byte[] safetyBoxSingal;      // Roboter-Tastenbox-Knopfstatus
157
158    public double weldVoltage;          // Schweißspannung V
159    public double weldCurrent;          // Schweißstrom
160    public double weldTrackVel;         // Schweißnahtverfolgungsgeschwindigkeit mm/s
161
162    public byte tpdException;           // TPD-Trajektorienladungsüberschreitung, 0-nicht überschritten, 1-überschritten
163    public byte alarmRebootRobot;       // Warnung, 1-Not-Halt-Taste loslassen und Steuerkasten neu starten, 2-Gelenkkommunikationsanomalie, Steuerkasten neu starten
164    public byte modbusMasterConnect;    // Bits 0-7 entsprechen ModbusTCP-Master 0-7 Verbindungsstatus 0-nicht verbunden 1-verbunden
165    public byte modbusSlaveConnect;     // ModbusTCP-Slave-Verbindungsstatus 0-nicht verbunden; 1-verbunden
166    public byte btnBoxStopSignal;       // Not-Halt-Signal der Tastenbox, 0-Not-Halt gelöst; 1-Not-Halt gedrückt
167    public byte dragAlarm;              // Zieh-Warnung, aktuell im Automatikmodus, 0-kein Alarm, 1-Alarm, 2-Positionsrückmeldeanomalie, keine Umschaltung
168    public byte safetyDoorAlarm;        // Sicherheitstür-Warnung; 0-Sicherheitstür geschlossen; 1-Sicherheitstür offen
169    public byte safetyPlaneAlarm;       // Sicherheitswand-Eintrittswarnung; 0-nicht in Sicherheitswand eingetreten; 1-in Sicherheitswand eingetreten
170    public byte motonAlarm;             // Bewegungswarnung
171    public byte interfaceAlarm;         // Interferenzbereich-Eintrittswarnung
172    public int udpCmdState;             // UDP-Kommunikationsverbindungsstatus auf Port 20007
173    public byte weldReadyState;         // Schweißgerät-Bereitschaftsstatus
174    public byte alarmCheckEmergStopBtn; // 0-normal; 1-Kommunikationsanomalie, prüfen, ob Not-Halt-Taste gelöst ist
175    public byte tsTmCmdComError;        // 0-normal; 1-Drehmomentbefehl-Kommunikationsfehler
176    public byte tsTmStateComError;      // 0-normal; 1-Drehmomentstatus-Kommunikationsfehler
177    public int ctrlBoxError;            // Steuerkastenfehler
178    public byte safetyDataState;        // Sicherheitsdatenstatus-Flag, 0-normal, 1-anomal
179    public byte forceSensorErrState;    // Kraftsensor-Verbindungszeitüberschreitungsfehler; Bits 0-1 entsprechen Kraftsensor-ID1-ID2
180
181    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
182    public byte[] ctrlOpenLuaErrCode;   // 4 Controller-Peripherieprotokoll-Fehlercodes (500-Fehlercode)
183
184    public byte strangePosFlag;         // Aktuelle singuläre Pose-Flag; 0-normal; 1-singuläre Pose
185    public byte alarm;                  // Warnung
186    public byte driverAlarm;            // Treiberalarm-Achsennummer
187    public byte aliveSlaveNumError;     // Fehler in der Anzahl aktiver Slaves, 0: normal; 1: Anzahlfehler
188
189    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
190    public byte[] slaveComError;        // 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
191
192    public byte cmdPointError;          // Befehlspunktfehler
193    public byte IOError;                // IO-Fehler
194    public byte gripperError;           // Greiferfehler
195    public byte fileError;              // Dateifehler
196    public byte paraError;              // Parameterfehler
197    public byte exaxisOutLimitError;    // Externe Achse außerhalb der Weichgrenze
198
199    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
200    public byte[] driverComError;       // Kommunikationsfehler mit Treiber
201    public byte driverError;            // Achsennummer des Treiberkommunikationsfehlers
202    public byte outSoftLimitError;      // Weichgrenzenüberschreitungsfehler
203
204    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 130)]
205    public byte[] axleGenComData;       // Roboter-Endeffektor-Transparentübertragungs-Feedbackdaten
206
207    public byte socketConnTimeout;     // Socket-Verbindungszeitüberschreitungs-Flag
208    public byte socketReadTimeout;     // Socket-Lesezeitüberschreitungs-Flag
209    public byte tsWebStateComErr;      // ts_web_state_com_err
210    public byte exaxisCoordID;         // Nummer des Erweiterungsachsen-Koordinatensystems
211    public UInt16 check_sum;         /* Checksumme */
212
213    // Konstruktor: Initialisiert alle Array-Felder
214    public ROBOT_STATE_PKG()
215    {
216        jt_cur_pos = new double[6];
217        tl_cur_pos = new double[6];
218        flange_cur_pos = new double[6];
219        actual_qd = new double[6];
220        actual_qdd = new double[6];
221        target_TCP_CmpSpeed = new double[2];
222        target_TCP_Speed = new double[6];
223        actual_TCP_CmpSpeed = new double[2];
224        actual_TCP_Speed = new double[6];
225        jt_cur_tor = new double[6];
226        cl_analog_input = new ushort[2];
227        ft_sensor_raw_data = new double[6];
228        ft_sensor_data = new double[6];
229        extAxisStatus = new EXT_AXIS_STATUS[4];
230        extDIState = new ushort[8];
231        extDOState = new ushort[8];
232        extAIState = new ushort[4];
233        extAOState = new ushort[4];
234        jointDriverTorque = new double[6];
235        jointDriverTemperature = new double[6];
236        cl_analog_output = new ushort[2];
237        jt_tgt_tor = new double[6];
238        toolCoord = new double[6];
239        wobjCoord = new double[6];
240        extoolCoord = new double[6];
241        exAxisCoord = new double[6];
242        loadCog = new double[3];
243        lastServoTarget = new double[6];
244        targetJointPos = new double[6];
245        targetJointVel = new double[6];
246        targetJointAcc = new double[6];
247        targetJointCurrent = new double[6];
248        actualJointCurrent = new double[6];
249        actualTCPForce = new double[6];
250        targetTCPPos = new double[6];
251        collisionLevel = new byte[6];
252        currentLuaFileName = new byte[256];
253        safetyBoxSingal = new byte[6];
254        ctrlOpenLuaErrCode = new byte[4];
255        slaveComError = new byte[8];
256        driverComError = new byte[6];
257        axleGenComData = new byte[130];
258    }
259}

2.11. Aufzählungstyp der Roboterstatus-Rückmeldungskonfiguration

  1/**
  2* @brief  Roboter konfigurierbare Statusaufzählung, Bereich 0~132
  3*/
  4public enum RobotState
  5{
  6    FrameHead = 0,
  7    FrameCnt = 1,
  8    DataLen = 2,
  9    ProgramState = 3,
 10    RobotState = 4,
 11    MainCode = 5,
 12    SubCode = 6,
 13    RobotMode = 7,
 14    JointCurPos = 8,
 15    ToolCurPos = 9,
 16    FlangeCurPos = 10,
 17    ActualJointVel = 11,
 18    ActualJointAcc = 12,
 19    TargetTCPCmpSpeed = 13,
 20    TargetTCPSpeed = 14,
 21    ActualTCPCmpSpeed = 15,
 22    ActualTCPSpeed = 16,
 23    ActualJointTorque = 17,
 24    Tool = 18,
 25    User = 19,
 26    ClDgtOutputH = 20,
 27    ClDgtOutputL = 21,
 28    TlDgtOutputL = 22,
 29    ClDgtInputH = 23,
 30    ClDgtInputL = 24,
 31    TlDgtInputL = 25,
 32    ClAnalogInput = 26,
 33    TlAnglogInput = 27,
 34    FtSensorRawData = 28,
 35    FtSensorData = 29,
 36    FtSensorActive = 30,
 37    EmergencyStop = 31,
 38    MotionDone = 32,
 39    GripperMotiondone = 33,
 40    McQueueLen = 34,
 41    CollisionState = 35,
 42    TrajectoryPnum = 36,
 43    SafetyStop0State = 37,
 44    SafetyStop1State = 38,
 45    GripperFaultId = 39,
 46    GripperFault = 40,
 47    GripperActive = 41,
 48    GripperPosition = 42,
 49    GripperSpeed = 43,
 50    GripperCurrent = 44,
 51    GripperTemp = 45,
 52    GripperVoltage = 46,
 53    AuxState = 47,
 54    ExtAxisStatus = 48,
 55    ExtDIState = 49,
 56    ExtDOState = 50,
 57    ExtAIState = 51,
 58    ExtAOState = 52,
 59    RbtEnableState = 53,
 60    JointDriverTorque = 54,
 61    JointDriverTemperature = 55,
 62    RobotTime = 56,
 63    SoftwareUpgradeState = 57,
 64    EndLuaErrCode = 58,
 65    ClAnalogOutput = 59,
 66    TlAnalogOutput = 60,
 67    GripperRotNum = 61,
 68    GripperRotSpeed = 62,
 69    GripperRotTorque = 63,
 70    WeldingBreakOffState = 64,
 71    TargetJointTorque = 65,
 72    SmartToolState = 66,
 73    WideVoltageCtrlBoxTemp = 67,
 74    WideVoltageCtrlBoxFanCurrent = 68,
 75    ToolCoord = 69,
 76    WobjCoord = 70,
 77    ExtoolCoord = 71,
 78    ExAxisCoord = 72,
 79    Load = 73,
 80    LoadCog = 74,
 81    LastServoTarget = 75,
 82    ServoJCmdNum = 76,
 83    TargetJointPos = 77,
 84    TargetJointVel = 78,
 85    TargetJointAcc = 79,
 86    TargetJointCurrent = 80,
 87    ActualJointCurrent = 81,
 88    ActualTCPForce = 82,
 89    TargetTCPPos = 83,
 90    CollisionLevel = 84,
 91    SpeedScaleManual = 85,
 92    SpeedScaleAuto = 86,
 93    LuaLineNum = 87,
 94    AbnomalStop = 88,
 95    CurrentLuaFileName = 89,
 96    ProgramTotalLine = 90,
 97    SafetyBoxSingal = 91,
 98    WeldVoltage = 92,
 99    WeldCurrent = 93,
100    WeldTrackVel = 94,
101    TpdException = 95,
102    AlarmRebootRobot = 96,
103    ModbusMasterConnect = 97,
104    ModbusSlaveConnect = 98,
105    BtnBoxStopSignal = 99,
106    DragAlarm = 100,
107    SafetyDoorAlarm = 101,
108    SafetyPlaneAlarm = 102,
109    MotonAlarm = 103,
110    InterfaceAlarm = 104,
111    UdpCmdState = 105,
112    WeldReadyState = 106,
113    AlarmCheckEmergStopBtn = 107,
114    TsTmCmdComError = 108,
115    TsTmStateComError = 109,
116    CtrlBoxError = 110,
117    SafetyDataState = 111,
118    ForceSensorErrState = 112,
119    CtrlOpenLuaErrCode = 113,
120    StrangePosFlag = 114,
121    Alarm = 115,
122    DriverAlarm = 116,
123    AliveSlaveNumError = 117,
124    SlaveComError = 118,
125    CmdPointError = 119,
126    IOError = 120,
127    GripperError = 121,
128    FileError = 122,
129    ParaError = 123,
130    ExaxisOutLimitError = 124,
131    DriverComError = 125,
132    DriverError = 126,
133    OutSoftLimitError = 127,
134    AxleGenComData = 128,
135    SocketConnTimeout = 129,     // Socket-Verbindungszeitüberschreitung, bit0-bit4: socketID 1-4
136    SocketReadTimeout = 130,     // Socket-Lesezeitüberschreitung, bit0-bit4: socketID 1-4
137    TsWebStateComErr = 131,     // Web-Drehmoment-Kommunikationsfehler; 0-normal; 1-fehlgeschlagen
138    ExaxisCoordID = 132          // Nummer des Erweiterungsachsen-Koordinatensystems
139}