2. Opis struktur danych

2.1. Typ danych pozycji stawów

1/**
2* @brief Typ danych pozycji stawów
3*/
4struct JointPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
7    public double[] jPos;   /* Sześć pozycji stawów, jednostka deg */
8}

2.2. Typ danych pozycji w przestrzeni kartezjańskiej

1/**
2* @brief Typ danych pozycji w przestrzeni kartezjańskiej
3*/
4struct DescTran
5{
6    public double x;    /* Współrzędna osi X, jednostka mm  */
7    public double y;    /* Współrzędna osi Y, jednostka mm  */
8    public double z;    /* Współrzędna osi Z, jednostka mm  */
9}

2.3. Typ danych orientacji w kątach Eulera

1/**
2* @brief Typ danych orientacji w kątach Eulera
3*/
4struct Rpy
5{
6public double rx;   /* Kąt obrotu wokół stałej osi X, jednostka: deg  */
7public double ry;   /* Kąt obrotu wokół stałej osi Y, jednostka: deg  */
8public double rz;   /* Kąt obrotu wokół stałej osi Z, jednostka: deg  */
9}

2.4. Typ danych pozycji i orientacji w przestrzeni kartezjańskiej

1/**
2*@brief Typ pozycji i orientacji w przestrzeni kartezjańskiej
3*/
4struct DescPose
5{
6    public DescTran tran;     /* Pozycja w przestrzeni kartezjańskiej  */
7    public Rpy rpy;                 /* Orientacja w przestrzeni kartezjańskiej  */
8}

2.5. Typ danych pozycji osi rozszerzonej

1/**
2* @brief Typ danych pozycji osi rozszerzonej
3*/
4struct ExaxisPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
7    public double[] ePos;   /* Pozycje czterech osi rozszerzonych, jednostka mm */
8}

2.6. Typ danych czujnika siły i momentu obrotowego

 1/**
 2* @brief Składowe siły i momentu obrotowego czujnika siły
 3*/
 4struct ForceTorque
 5{
 6    public double fx;  /* Składowa siły wzdłuż osi X, jednostka N  */
 7    public double fy;  /* Składowa siły wzdłuż osi Y, jednostka N  */
 8    public double fz;  /* Składowa siły wzdłuż osi Z, jednostka N  */
 9    public double tx;  /* Składowa momentu obrotowego wokół osi X, jednostka Nm */
10    public double ty;  /* Składowa momentu obrotowego wokół osi Y, jednostka Nm */
11    public double tz;  /* Składowa momentu obrotowego wokół osi Z, jednostka Nm */
12}

2.7. Typ danych parametrów spirali

 1public struct SpiralParam
 2{
 3    public int circle_num;           /* Liczba zwojów spirali  */
 4    public float circle_angle;         /* Kąt nachylenia spirali  */
 5    public float rad_init;             /* Początkowy promień spirali, jednostka mm  */
 6    public float rad_add;              /* Przyrost promienia  */
 7    public float rotaxis_add;          /* Przyrost kierunku osi obrotu  */
 8    public uint rot_direction;  /* Kierunek obrotu, 0-zgodnie z ruchem wskazówek zegara, 1-przeciwnie do ruchu wskazówek zegara  */
 9    public int velAccMode;      // Tryb parametrów prędkości i przyspieszenia: 0-stała prędkość kątowa; 1-stała prędkość liniowa
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. Typ stanu osi rozszerzonej

Nowe w wersji C#SDK-v1.0.6.

 1/**
 2* @brief  Typ stanu osi rozszerzonej
 3*/
 4[StructLayout(LayoutKind.Sequential, Pack = 1)]
 5public struct ROBOT_AUX_STATE
 6{
 7    public byte servoId;           // Numer ID serwonapędu
 8    public int servoErrCode;       // Kod usterki serwonapędu
 9    public int servoState;         // Stan serwonapędu
10    public double servoPos;        // Bieżąca pozycja serwa
11    public float servoVel;         // Bieżąca prędkość serwa
12    public float servoTorque;      // Bieżący moment obrotowy serwa
13}

2.9. Stan przerwania spawania

1[StructLayout(LayoutKind.Sequential, Pack = 1)]
2public struct WELDING_BREAKOFF_STATE
3{
4    public byte breakOffState;  // Stan przerwania spawania
5    public byte weldArcState;   // Stan przerwania łuku spawalniczego
6}

2.10. Typ struktury informacji zwrotnej o stanie robota

Nowe w wersji C#SDK-V1.1.4: Web-3.8.3

  1/**
  2* @brief  Typ struktury informacji zwrotnej o stanie robota
  3*/
  4[StructLayout(LayoutKind.Sequential, Pack = 1)]
  5public class ROBOT_STATE_PKG
  6{
  7    public UInt16 frame_head;           // Nagłówek ramki 0x5A5A
  8    public byte frame_cnt;              // Licznik ramek
  9    public UInt16 data_len;             // Długość danych  5
 10    public byte program_state;          // Stan działania programu, 1-zatrzymany; 2-działa; 3-wstrzymany;
 11    public byte robot_state;            // Stan ruchu robota, 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciąganie
 12    public int main_code;               // Główny kod usterki
 13    public int sub_code;                // Podrzędny kod usterki
 14    public byte robot_mode;             // Tryb robota, 1-tryb ręczny; 0-tryb automatyczny;
 15
 16    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 17    public double[] jt_cur_pos;         // Bieżące pozycje 6 stawów, jednostka deg
 18    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 19    public double[] tl_cur_pos;         // Bieżąca pozycja narzędzia
 20    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 21    public double[] flange_cur_pos;     // Bieżąca pozycja kołnierza końcowego
 22    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 23    public double[] actual_qd;          // Bieżące prędkości 6 stawów, jednostka deg/s
 24    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 25    public double[] actual_qdd;         // Bieżące przyspieszenia 6 stawów, jednostka deg/s^2
 26    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 27    public double[] target_TCP_CmpSpeed;// Prędkość złożona instrukcji TCP (pozycja, orientacja)
 28    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 29    public double[] target_TCP_Speed;   // Prędkość instrukcji TCP
 30    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 31    public double[] actual_TCP_CmpSpeed;// Rzeczywista prędkość złożona TCP
 32    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 33    public double[] actual_TCP_Speed;   // Rzeczywista prędkość TCP
 34    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 35    public double[] jt_cur_tor;         // Bieżące momenty obrotowe 6 stawów, jednostka N·m
 36
 37    public int tool;                    // Numer zastosowanego układu współrzędnych narzędzia
 38    public int user;                    // Numer zastosowanego układu współrzędnych przedmiotu
 39    public byte cl_dgt_output_h;        // Wyjście cyfrowe I/O skrzynki sterowniczej 15-8
 40    public byte cl_dgt_output_l;        // Wyjście cyfrowe I/O skrzynki sterowniczej 7-0
 41    public byte tl_dgt_output_l;        // Wyjście cyfrowe I/O narzędzia 7-0, tylko bit0-bit1 są aktywne
 42    public byte cl_dgt_input_h;         // Wejście cyfrowe I/O skrzynki sterowniczej 15-8
 43    public byte cl_dgt_input_l;         // Wejście cyfrowe I/O skrzynki sterowniczej 7-0
 44    public byte tl_dgt_input_l;         // Wejście cyfrowe I/O narzędzia 7-0, tylko bit0-bit1 są aktywne
 45
 46    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 47    public UInt16[] cl_analog_input;        // Wejście analogowe skrzynki sterowniczej
 48    public UInt16 tl_anglog_input;          // Wejście analogowe narzędzia
 49
 50    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 51    public double[] ft_sensor_raw_data; // Surowe dane czujnika siły i momentu
 52    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 53    public double[] ft_sensor_data;     // Dane czujnika siły i momentu
 54    public byte ft_sensor_active;       // Stan aktywacji czujnika siły i momentu, 0-reset, 1-aktywacja
 55
 56    public byte EmergencyStop;          // Znacznik awaryjnego zatrzymania, 0-niewciśnięty, 1-wciśnięty
 57    public int motion_done;             // Sygnał osiągnięcia pozycji, 1-osiągnięto, 0-nie osiągnięto
 58    public byte gripper_motiondone;     // Sygnał zakończenia ruchu chwytaka, 0-nie zakończono, 1-zakończono (nie wykryto obiektu), 2-ruch zakończony (wykryto obiekt)
 59    public int mc_queue_len;            // Długość kolejki instrukcji ruchu
 60    public byte collisionState;         // Wykrywanie kolizji, 1-kolizja, 0-brak kolizji
 61    public int trajectory_pnum;         // Numer punktu trajektorii
 62    public byte safety_stop0_state;     // Sygnał bezpiecznego zatrzymania SI0
 63    public byte safety_stop1_state;     // Sygnał bezpiecznego zatrzymania SI1
 64    public byte gripper_fault_id;       // Numer uszkodzonego chwytaka
 65    public UInt16 gripper_fault;     /* Błąd chwytaka */
 66    public UInt16 gripper_active;    /* Stan aktywacji chwytaka */
 67    public byte gripper_position;       // Pozycja chwytaka
 68    public byte gripper_speed;       /* Prędkość chwytaka */
 69    public byte gripper_current;     /* Prąd chwytaka */
 70    public int gripper_temp;            // Temperatura chwytaka
 71    public int gripper_voltage;         // Napięcie chwytaka
 72
 73    public ROBOT_AUX_STATE auxState;   // Stan osi rozszerzonej 485
 74
 75    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 76    public EXT_AXIS_STATUS[] extAxisStatus; // Stan osi rozszerzonej UDP
 77
 78    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 79    public UInt16[] extDIState;        // Wejście rozszerzone DI
 80    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 81    public UInt16[] extDOState;        // Wyjście rozszerzone DO
 82    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 83    public UInt16[] extAIState;        // Wejście rozszerzone AI
 84    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 85    public UInt16[] extAOState;        // Wyjście rozszerzone AO
 86
 87    public int rbtEnableState;          // Stan załączenia robota
 88
 89    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 90    public double[] jointDriverTorque;      // Moment obrotowy napędu stawu robota
 91    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 92    public double[] jointDriverTemperature; // Temperatura napędu stawu robota
 93
 94    public ROBOT_TIME robotTime;        // Czas systemowy robota
 95    public int softwareUpgradeState;    // Stan aktualizacji oprogramowania robota
 96    public UInt16 endLuaErrCode;    // Stan działania LUA końcówki
 97
 98    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 99    public  UInt16[] cl_analog_output;  // Wyjście analogowe skrzynki sterowniczej
100    public UInt16 tl_analog_output;     // Wyjście analogowe narzędzia
101
102    public float gripperRotNum;         // Bieżąca liczba obrotów chwytaka obrotowego
103    public byte gripperRotSpeed;        // Bieżący procent prędkości obrotowej chwytaka obrotowego
104    public byte gripperRotTorque;       // Bieżący procent momentu obrotowego chwytaka obrotowego
105
106    public WELDING_BREAKOFF_STATE weldingBreakOffState; // Stan przerwania spawania
107
108    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
109    public double[] jt_tgt_tor;         // Instrukcja momentu obrotowego stawu
110    public int smartToolState;          // Stan przycisków uchwytu SmartTool
111    public float wideVoltageCtrlBoxTemp; // Temperatura skrzynki sterowniczej szerokiego napięcia
112    public UInt16 wideVoltageCtrlBoxFanVel;   // Prąd wentylatora skrzynki sterowniczej szerokiego napięcia (mA)
113
114    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
115    public double[] toolCoord;          // Wartości bieżącego układu współrzędnych narzędzia; x,y,z,rx,ry,rz
116    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
117    public double[] wobjCoord;          // Wartości bieżącego układu współrzędnych przedmiotu; x,y,z,rx,ry,rz
118    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
119    public double[] extoolCoord;        // Wartości bieżącego zewnętrznego układu współrzędnych narzędzia; x,y,z,rx,ry,rz
120    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
121    public double[] exAxisCoord;        // Wartości bieżącego układu współrzędnych osi rozszerzonej; x,y,z,rx,ry,rz
122
123    public double load;                 // Masa ładunku
124    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
125    public double[] loadCog;            // Środek ciężkości ładunku
126    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
127    public double[] lastServoTarget;    // Ostatnia docelowa pozycja ServoJ w kolejce
128    public int servoJCmdNum;            // Licznik instrukcji servoJ
129
130    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
131    public double[] targetJointPos;     // Instrukcje pozycji 6 stawów, jednostka °
132    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
133    public double[] targetJointVel;     // Instrukcje prędkości 6 stawów, jednostka °/s
134    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
135    public double[] targetJointAcc;     // Instrukcje przyspieszeń 6 stawów, jednostka °/s²
136    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
137    public double[] targetJointCurrent; // Instrukcje prądu 6 stawów, jednostka A
138    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
139    public double[] actualJointCurrent; // Bieżące prądy 6 stawów, jednostka A
140    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
141    public double[] actualTCPForce;     // Moment końcowy robota Nm; x,y,z,rx,ry,rz
142    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
143    public double[] targetTCPPos;       // Instrukcje pozycji TCP robota mm; x,y,z,rx,ry,rz
144    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
145    public byte[] collisionLevel;       // Poziom kolizji robota
146
147    public double speedScaleManual;     // Procent prędkości globalnej w trybie ręcznym
148    public double speedScaleAuto;       // Procent prędkości globalnej w trybie automatycznym
149    public int luaLineNum;              // Bieżący numer linii programu lua
150    public byte abnomalStop;            // 0-brak nieprawidłowości; 1-występuje nieprawidłowość
151
152    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
153    public byte[] currentLuaFileName;   // Nazwa bieżącego programu lua
154    public byte programTotalLine;       // Całkowita liczba linii programu lua
155    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
156    public byte[] safetyBoxSingal;      // Stan przycisków panelu przyciskowego robota
157
158    public double weldVoltage;          // Napięcie spawania V
159    public double weldCurrent;          // Prąd spawania
160    public double weldTrackVel;         // Prędkość śledzenia spoiny mm/s
161
162    public byte tpdException;           // Przekroczenie limitu liczby załadowanych trajektorii TPD, 0-nie przekroczono, 1-przekroczono
163    public byte alarmRebootRobot;       // Ostrzeżenie, 1-zwolnij przycisk awaryjnego zatrzymania, wyłącz i włącz ponownie skrzynkę sterowniczą, 2-nieprawidłowa komunikacja stawów, wyłącz i włącz ponownie skrzynkę sterowniczą
164    public byte modbusMasterConnect;    /* Stan połączenia masterów ModbusTCP 0-7, bity bit0-bit7, 0-odłączony, 1-połączony */
165    public byte modbusSlaveConnect;     /* Stan połączenia slave ModbusTCP, 0-odłączony; 1-połączony */
166    public byte btnBoxStopSignal;       /* Sygnał awaryjnego zatrzymania panelu przyciskowego, 0-zwolniony; 1-wciśnięty */
167    public byte dragAlarm;              /* Ostrzeżenie przeciągania, aktualnie w trybie automatycznym, 0-brak alarmu, 1-alarm, 2-nieprawidłowość pozycji sprzężenia zwrotnego, brak przełączania */
168    public byte safetyDoorAlarm;        /* Ostrzeżenie drzwi bezpieczeństwa; 0-drzwi bezpieczeństwa zamknięte; 1-drzwi bezpieczeństwa otwarte */
169    public byte safetyPlaneAlarm;       /* Ostrzeżenie wejścia w ścianę bezpieczeństwa; 0-nie weszło w ścianę bezpieczeństwa; 1-weszło w ścianę bezpieczeństwa */
170    public byte motonAlarm;             /* Ostrzeżenie ruchu */
171    public byte interfaceAlarm;         /* Ostrzeżenie wejścia w strefę interferencji */
172    public int udpCmdState;             /* Stan połączenia komunikacji UDP na porcie 20007 */
173    public byte weldReadyState;         /* Stan gotowości spawarki */
174    public byte alarmCheckEmergStopBtn; /* 0-normalny; 1-nieprawidłowość komunikacji, sprawdź, czy przycisk awaryjnego zatrzymania jest zwolniony */
175    public byte tsTmCmdComError;        /* 0-normalny; 1-błąd komunikacji instrukcji momentu */
176    public byte tsTmStateComError;      /* 0-normalny; 1-błąd komunikacji stanu momentu */
177    public int ctrlBoxError;            /* Błąd skrzynki sterowniczej */
178    public byte safetyDataState;        /* Znacznik stanu danych bezpieczeństwa, 0-normalny, 1-nieprawidłowy */
179    public byte forceSensorErrState;    /* Błąd przekroczenia limitu czasu połączenia czujnika siły; bit0-bit1 odpowiadają ID1-ID2 czujnika siły */
180
181    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
182    public byte[] ctrlOpenLuaErrCode;   /* 4 kody błędów protokołu otwartego urządzeń peryferyjnych kontrolera (kod błędu 500) */
183
184    public byte strangePosFlag;         /* Znacznik bieżącej osobliwej pozycji; 0-normalny; 1-osobliwa pozycja */
185    public byte alarm;                  /* Ostrzeżenie */
186    public byte driverAlarm;            /* Numer osi alarmu napędu */
187    public byte aliveSlaveNumError;     /* Błąd liczby aktywnych stacji podrzędnych, 0: normalny; 1: błąd liczby */
188
189    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
190    public byte[] slaveComError;        /* Błąd stacji podrzędnej, 0: normalny; 1: utrata połączenia ze stacją podrzędną; 2: stan stacji podrzędnej niezgodny z ustawioną wartością; 3: stacja podrzędna nieskonfigurowana; 4: błąd konfiguracji stacji podrzędnej; 5: błąd inicjalizacji stacji podrzędnej; 6: błąd inicjalizacji komunikacji e-mail stacji podrzędnej */
191
192    public byte cmdPointError;          /* Błąd punktu instrukcji */
193    public byte IOError;                /* Błąd I/O */
194    public byte gripperError;           /* Błąd chwytaka */
195    public byte fileError;              /* Błąd pliku */
196    public byte paraError;              /* Błąd parametru */
197    public byte exaxisOutLimitError;    /* Błąd przekroczenia miękkiego limitu osi rozszerzonej */
198
199    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
200    public byte[] driverComError;       /* Błąd komunikacji z napędem */
201    public byte driverError;            /* Numer osi błędu komunikacji napędu */
202    public byte outSoftLimitError;      /* Błąd przekroczenia miękkiego limitu */
203
204    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 130)]
205    public byte[] axleGenComData;       /* Dane zwrotne transmisji transparentnej końcówki robota */
206
207    public byte socketConnTimeout;     /* Znacznik przekroczenia limitu czasu połączenia socket */
208    public byte socketReadTimeout;     /* Znacznik przekroczenia limitu czasu odczytu socket */
209    public byte tsWebStateComErr;      /* ts_web_state_com_err */
210    public byte exaxisCoordID;         /* Numer układu współrzędnych osi rozszerzonej */
211    public UInt16 check_sum;         /* Suma kontrolna */
212
213    // Konstruktor: inicjalizuje wszystkie pola tablicowe
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. Typ wyliczeniowy konfiguracji informacji zwrotnej o stanie robota

  1/**
  2* @brief  Wyliczenie konfigurowalnych stanów robota, zakres 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 connection timeout, bit0-bit4: socketID 1-4
136    SocketReadTimeout = 130,     // socket read timeout, bit0-bit4: socketID 1-4
137    TsWebStateComErr = 131,     // web-torque communication failure; 0-normal; 1-failure
138    ExaxisCoordID = 132          // Numer układu współrzędnych osi rozszerzonej
139}