2. Opis struktur danych

2.1. Typ danych pozycji stawów

 1/**
 2* @brief Typ danych pozycji stawów
 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. Typ danych pozycji w przestrzeni kartezjańskiej

 1/**
 2* @brief Typ danych pozycji w przestrzeni kartezjańskiej
 3*/
 4public class DescTran
 5{
 6  public double x = 0.0;    /* współrzędna osi X, jednostka mm  */
 7  public double y = 0.0;    /* współrzędna osi Y, jednostka mm  */
 8  public double z = 0.0;    /* współrzędna osi Z, jednostka 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. Typ danych orientacji kątów Eulera

 1/**
 2* @brief Typ danych orientacji kątów Eulera
 3*/
 4public class Rpy
 5{
 6  public double rx = 0.0;   /* kąt obrotu wokół stałej osi X, jednostka: deg  */
 7  public double ry = 0.0;   /* kąt obrotu wokół stałej osi Y, jednostka: deg  */
 8  public double rz = 0.0;   /* kąt obrotu wokół stałej osi Z, jednostka: deg  */
 9  public Rpy(double rotateX, double rotateY, double rotateZ)
10  {
11    rx = rotateX;
12    ry = rotateY;
13    rz = rotateZ;
14  }
15}

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

 1/**
 2*@brief Typ danych pozy i orientacji w przestrzeni kartezjańskiej
 3*/
 4public class DescPose
 5{
 6  public DescTran tran = new DescTran(0.0, 0.0, 0.0);      /* pozycja w przestrzeni kartezjańskiej  */
 7  public Rpy rpy = new Rpy(0.0, 0.0, 0.0);                 /* orientacja w przestrzeni kartezjańskiej  */
 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. Typ danych pozycji osi rozszerzonej

 1/**
 2* @brief Typ danych pozycji osi rozszerzonej
 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. Typ danych czujnika siły/momentu

 1/**
 2* @brief Składowe siły i momentu czujnika siły
 3*/
 4public class 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 wokół osi X, jednostka Nm */
10  public double ty;  /* składowa momentu wokół osi Y, jednostka Nm */
11  public double tz;  /* składowa momentu wokół osi Z, jednostka 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. Typ danych parametrów spirali

 1/**
 2* @brief  Typ danych parametrów spirali
 3*/
 4public class SpiralParam
 5{
 6    public int circle_num;           /* liczba zwojów spirali  */
 7    public double circle_angle;         /* kąt nachylenia spirali  */
 8    public double rad_init;             /* początkowy promień spirali, jednostka mm  */
 9    public double rad_add;              /* przyrost promienia  */
10    public double rotaxis_add;          /* przyrost w kierunku osi obrotu  */
11    public int rot_direction;  /* kierunek obrotu, 0-zgodny z ruchem wskazówek zegara, 1-przeciwny do ruchu wskazówek zegara  */
12    public int velAccMode;     /* tryb parametrów prędkości i przyspieszenia: 0-stała prędkość kątowa; 1-stała prędkość liniowa */
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. Typ stanu osi rozszerzonej

 1/**
 2* @brief  Typ stanu osi rozszerzonej
 3*/
 4public class EXT_AXIS_STATUS
 5{
 6 public double pos = 0;        // pozycja osi rozszerzonej
 7 public double vel = 0;        // prędkość osi rozszerzonej
 8 public int errorCode = 0;     // kod błędu osi rozszerzonej
 9 public int ready = 0;        // serwo gotowe
10 public int inPos = 0;        // serwo na pozycji
11 public int alarm = 0;        // alarm serwa
12 public int flerr = 0;        // błąd śledzenia
13 public int nlimit = 0;       // osiągnięto ujemnego ogranicznika
14 public int pLimit = 0;       // osiągnięto dodatniego ogranicznika
15 public int mdbsOffLine = 0;  // magistrala 485 sterownika rozłączona
16 public int mdbsTimeout = 0;  // przekroczenie czasu komunikacji 485 między kartą sterującą a szafą sterowniczą
17 public int homingStatus = 0; // stan powrotu osi rozszerzonej do zera
18}

2.9. Typ czujnika

 1/**
 2* @brief  Typ czujnika
 3*/
 4public class DeviceConfig
 5{
 6  int company = 0;          // producent
 7  int device = 0;           // typ/numer urządzenia
 8  int softwareVersion = 0;  // wersja oprogramowania
 9  int bus = 0;              // pozycja montażu
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. Konfiguracja osi rozszerzonej 485

 1/**
 2* @brief  Konfiguracja osi rozszerzonej 485
 3*/
 4public class Axis485Param
 5{
 6  int servoCompany;           // producent serwonapędu, 1-Dynatect
 7  int servoModel;             // model serwonapędu, 1-FD100-750C
 8  int servoSoftVersion;       // wersja oprogramowania serwonapędu, 1-V1.0
 9  int servoResolution;        // rozdzielczość enkodera
10  double axisMechTransRatio;  // mechaniczne przełożenie transmisyjne
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. Stan sterownika serwonapędu

 1/**
 2* @brief  Stan sterownika serwonapędu
 3*/
 4public class ROBOT_AUX_STATE
 5{
 6  public int servoId = 0;           // ID serwonapędu
 7  public int servoErrCode = 0;       // kod błędu serwonapędu
 8  public int servoState = 0;         // stan serwonapędu
 9  public double servoPos = 0;        // bieżąca pozycja serwa
10  public float servoVel = 0;         // bieżąca prędkość serwa
11  public float servoTorque = 0;      // bieżący moment serwa    25
12}

2.12. Stan przerwania spawania

1/**
2* @brief  Stan przerwania spawania
3*/
4public class WELDING_BREAKOFF_STATE
5{
6  public int breakOffState = 0;  // stan przerwania spawania
7  public int weldArcState = 0;   // stan przerwania łuku spawania
8}

2.13. Parametry komunikacji UDP osi rozszerzonej

 1/**
 2* @brief  Parametry komunikacji UDP osi rozszerzonej
 3*/
 4public class EXTERNAL_AXIS_UDP_PARAM
 5{
 6  public String ip = "192.168.58.88";// adres IP
 7  public int port = 2021;            // numer portu
 8  public int period = 2;             // okres komunikacji (ms, domyślnie 2, nie modyfikować tego parametru)
 9  public int lossPkgTime = 50;       // czas wykrywania utraty pakietów (ms)
10  public int lossPkgNum = 2;         // liczba utraconych pakietów
11  public int disconnectTime = 100;   // czas potwierdzenia przerwania komunikacji
12  public int reconnectEnable = 0;    // włączenie automatycznego ponownego łączenia po przerwaniu komunikacji 0-nie włączone 1-włączone
13  public int reconnectPeriod = 100;  // odstęp między próbami ponownego łączenia (ms)
14  public int reconnectNum = 3;       // liczba prób ponownego łączenia
15  public int selfConnect =0;         // czy automatycznie nawiązać połączenie po ponownym uruchomieniu zasilania; 0-nie nawiązuj; 1-nawiąż
16}

2.14. Typ struktury sprzężenia zwrotnego stanu robota

  1/**
  2* @brief  Typ struktury sprzężenia zwrotnego stanu robota
  3* /
  4public class ROBOT_STATE_PKG {
  5    public int frame_head;                      // nagłówek ramki
  6    public int frame_cnt;                       // licznik ramek
  7    public int data_len;                        // długość danych
  8    public int program_state;                   // stan programu - 1-zatrzymany; 2-działa; 3-wstrzymany
  9    public int robot_state;                     // stan ruchu robota - 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciągany
 10    public int main_code;                       // główny kod błędu
 11    public int sub_code;                        // podrzędny kod błędu
 12    public int robot_mode;                      // tryb robota - 1-tryb ręczny; 0-tryb automatyczny
 13    public double[] jt_cur_pos = new double[6]; // bieżące pozycje stawów 6 osi, jednostka deg
 14    public double[] tl_cur_pos = new double[6]; // bieżąca pozycja narzędzia - [x,y,z,rx,ry,rz]
 15    public double[] flange_cur_pos = new double[6]; // bieżąca pozycja kołnierza końcowego - [x,y,z,rx,ry,rz]
 16    public double[] actual_qd = new double[6];  // bieżące prędkości 6 stawów, jednostka deg/s
 17    public double[] actual_qdd = new double[6]; // bieżące przyspieszenia 6 stawów, jednostka deg/s^2
 18    public double[] target_TCP_CmpSpeed = new double[2]; // zadana prędkość wypadkowa TCP - [pozycja mm/s, orientacja deg/s]
 19    public double[] target_TCP_Speed = new double[6]; // zadana prędkość TCP - [vx,vy,vz,wx,wy,wz]
 20    public double[] actual_TCP_CmpSpeed = new double[2]; // rzeczywista prędkość wypadkowa TCP - [pozycja mm/s, orientacja deg/s]
 21    public double[] actual_TCP_Speed = new double[6]; // rzeczywista prędkość TCP - [vx,vy,vz,wx,wy,wz]
 22    public double[] jt_cur_tor = new double[6]; // bieżące momenty stawów
 23    public int tool;                            // ID narzędzia
 24    public int user;                            // ID obiektu
 25    public int cl_dgt_output_h;                 // wysoki bajt wyjścia cyfrowego szafy sterowniczej
 26    public int cl_dgt_output_l;                 // niski bajt wyjścia cyfrowego szafy sterowniczej
 27    public int tl_dgt_output_l;                 // niski bajt wyjścia cyfrowego narzędzia
 28    public int cl_dgt_input_h;                  // wysoki bajt wejścia cyfrowego szafy sterowniczej
 29    public int cl_dgt_input_l;                  // niski bajt wejścia cyfrowego szafy sterowniczej
 30    public int tl_dgt_input_l;                  // niski bajt wejścia cyfrowego narzędzia
 31    public int[] cl_analog_input = new int[2];  // wejście analogowe szafy sterowniczej
 32    public int tl_anglog_input;                 // wejście analogowe narzędzia
 33    public double[] ft_sensor_raw_data = new double[6]; // surowe dane czujnika siły
 34    public double[] ft_sensor_data = new double[6]; // dane czujnika siły
 35    public int ft_sensor_active;                // stan aktywacji czujnika siły
 36    public int EmergencyStop;                   // stan awaryjnego zatrzymania
 37    public int motion_done;                     // ruch zakończony
 38    public int gripper_motiondone;              // Sygnał zakończenia ruchu chwytaka, 0-nie zakończono, 1-zakończono (nie wykryto obiektu), 2-ruch zakończony (wykryto obiekt)
 39    public int mc_queue_len;                    // długość kolejki ruchu
 40    public int collisionState;                  // stan kolizji
 41    public int trajectory_pnum;                 // numer punktu trajektorii
 42    public int safety_stop0_state;              // stan bezpiecznego zatrzymania 0
 43    public int safety_stop1_state;              // stan bezpiecznego zatrzymania 1
 44    public int gripper_fault_id;                // ID błędu chwytaka
 45    public int gripper_fault;                   // błąd chwytaka
 46    public int gripper_active;                  // aktywacja chwytaka
 47    public int gripper_position;                // pozycja chwytaka
 48    public int gripper_speed;                   // prędkość chwytaka
 49    public int gripper_current;                 // prąd chwytaka
 50    public int gripper_temp;                    // temperatura chwytaka
 51    public int gripper_voltage;                 // napięcie chwytaka
 52    public AuxState aux_state = new AuxState(); // stan wewnętrznej osi pomocniczej
 53    public EXT_AXIS_STATUS[] extAxisStatus = new EXT_AXIS_STATUS[4]; // tablica stanów osi rozszerzonej
 54    public short[] extDIState = new short[8];   // rozszerzone IO - DI
 55    public short[] extDOState = new short[8];   // rozszerzone IO - DO
 56    public short[] extAIState = new short[4];   // rozszerzone IO - AI
 57    public short[] extAOState = new short[4];   // rozszerzone IO - AO
 58    public int rbtEnableState;                  // stan włączenia robota
 59    public double[] jointDriverTorque = new double[6]; // momenty sterowników stawów
 60    public double[] jointDriverTemperature = new double[6]; // temperatury sterowników stawów
 61    public ROBOT_TIME robotTime = new ROBOT_TIME(); // obiekt czasu robota
 62    public int softwareUpgradeState;            // stan aktualizacji oprogramowania
 63    public int endLuaErrCode;                   // kod błędu Lua końcówki
 64    public int[] cl_analog_output = new int[2]; // wyjście analogowe szafy sterowniczej
 65    public int tl_analog_output;                // wyjście analogowe narzędzia
 66    public float gripperRotNum;                 // liczba obrotów chwytaka obrotowego
 67    public int gripperRotSpeed;                 // prędkość chwytaka obrotowego
 68    public int gripperRotTorque;                // moment chwytaka obrotowego
 69    public WELDING_BREAKOFF_STATE weldingBreakOffState = new WELDING_BREAKOFF_STATE(); // stan przerwania spawania
 70    public double[] jt_tgt_tor = new double[6]; // docelowe momenty stawów
 71    public int smartToolState;                  // stan inteligentnego narzędzia
 72    public float wideVoltageCtrlBoxTemp;        // temperatura szafy sterowniczej z szerokim zakresem napięcia
 73    public int wideVoltageCtrlBoxFanCurrent;    // prąd wentylatora szafy sterowniczej z szerokim zakresem napięcia
 74    public double[] toolCoord = new double[6];  // układ współrzędnych narzędzia
 75    public double[] wobjCoord = new double[6];  // układ współrzędnych obiektu
 76    public double[] extoolCoord = new double[6]; // zewnętrzny układ współrzędnych narzędzia
 77    public double[] exAxisCoord = new double[6]; // układ współrzędnych osi rozszerzonej
 78    public double load;                         // obciążenie
 79    public double[] loadCog = new double[3];    // środek ciężkości obciążenia
 80    public double[] lastServoTarget = new double[6]; // poprzednia docelowa pozycja servoJ
 81    public int servoJCmdNum;                    // liczba poleceń servoJ
 82    public double[] targetJointPos = new double[6]; // docelowa pozycja stawów
 83    public double[] targetJointVel = new double[6]; // docelowa prędkość stawów
 84    public double[] targetJointAcc = new double[6]; // docelowe przyspieszenie stawów
 85    public double[] targetJointCurrent = new double[6]; // docelowy prąd stawów
 86    public double[] actualJointCurrent = new double[6]; // rzeczywisty prąd stawów
 87    public double[] actualTCPForce = new double[6]; // rzeczywista siła TCP
 88    public double[] targetTCPPos = new double[6]; // docelowa pozycja TCP
 89    public int[] collisionLevel = new int[6];   // poziom kolizji
 90    public double speedScaleManual;              // proporcja prędkości w trybie ręcznym
 91    public double speedScaleAuto;                // proporcja prędkości w trybie automatycznym
 92    public int luaLineNum;                       // numer linii Lua
 93    public int abnomalStop;                      // zatrzymanie awaryjne
 94    public String currentLuaFileName;            // bieżąca nazwa pliku Lua
 95    public int programTotalLine;                 // całkowita liczba linii programu
 96    public int[] safetyBoxSingal = new int[6];   // sygnały skrzynki bezpieczeństwa
 97    public double weldVoltage;                   // napięcie spawania
 98    public double weldCurrent;                   // prąd spawania
 99    public double weldTrackVel;                  // prędkość śledzenia spawania
100    public int tpdException;                     // wyjątek TPD
101    public int alarmRebootRobot;                 // alarm - restart robota
102    public int modbusMasterConnect;              // połączenie mastera Modbus
103    public int modbusSlaveConnect;               // połączenie slave'a Modbus
104    public int btnBoxStopSignal;                 // sygnał zatrzymania z przycisku
105    public int dragAlarm;                        // alarm przeciągania
106    public int safetyDoorAlarm;                  // alarm drzwi bezpieczeństwa
107    public int safetyPlaneAlarm;                 // alarm płaszczyzny bezpieczeństwa
108    public int motonAlarm;                       // alarm ruchu
109    public int interfaceAlarm;                   // alarm interferencji
110    public int udpCmdState;                      // stan polecenia UDP
111    public int weldReadyState;                   // stan gotowości spawania
112    public int alarmCheckEmergStopBtn;           // alarm - sprawdzenie przycisku awaryjnego zatrzymania
113    public int tsTmCmdComError;                  // błąd komunikacji polecenia
114    public int tsTmStateComError;                // błąd komunikacji stanu
115    public int ctrlBoxError;                     // błąd szafy sterowniczej
116    public int safetyDataState;                  // stan danych bezpieczeństwa
117    public int forceSensorErrState;              // stan błędu czujnika siły
118    public int[] ctrlOpenLuaErrCode = new int[4]; // kod błędu otwarcia Lua sterowania
119    public int strangePosFlag;                   // flaga osobliwej pozycji
120    public int alarm;                            // alarm
121    public int driverAlarm;                      // alarm sterownika
122    public int aliveSlaveNumError;               // błąd liczby aktywnych stacji podrzędnych
123    public int[] slaveComError = new int[8];     // błąd komunikacji stacji podrzędnej
124    public int cmdPointError;                    // błąd punktu polecenia
125    public int IOError;                          // błąd IO
126    public int gripperError;                     // błąd chwytaka
127    public int fileError;                        // błąd pliku
128    public int paraError;                        // błąd parametru
129    public int exaxisOutLimitError;              // błąd przekroczenia miękkiego ograniczenia osi rozszerzonej
130    public int[] driverComError = new int[6];    // błąd komunikacji ze sterownikiem
131    public int driverError;                      // błąd sterownika
132    public int outSoftLimitError;                // błąd przekroczenia miękkiego ograniczenia
133    public byte[] axleGenComData = new byte[130]; // dane komunikacji ogólnej osi
134    public int check_sum;                        // suma kontrolna
135    public int socketConnTimeout;                // przekroczenie czasu połączenia socket
136    public int socketReadTimeout;                // przekroczenie czasu odczytu socket
137    public int tsWebStateComErr;                 // błąd komunikacji stanu TS Web
138    public int exaxisCoordID;                  // numer układu współrzędnych osi rozszerzonej
139}

2.15. Klasa wyniku konfiguracji sprzężenia zwrotnego stanu robota

1/**
2* Klasa wyniku konfiguracji sprzężenia zwrotnego stanu robota, zawiera listę stanów i okres
3*/
4public static class StateConfigResult {
5  public final List<RobotState> stateList;
6  public final int period;
7}

2.16. Typ wyliczeniowy konfiguracji sprzężenia zwrotnego stanu robota

  1/**
  2* Typ wyliczeniowy stanu robota
  3* Używany do konfiguracji sprzężenia zwrotnego stanu w czasie rzeczywistym
  4*/
  5enum class RobotState
  6{
  7    ProgramState,           // Stan programu, 1-zatrzymany; 2-działa; 3-wstrzymany
  8    RobotState,             // Stan ruchu robota, 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciągany
  9    MainCode,               // Główny kod błędu
 10    SubCode,                // Podrzędny kod błędu
 11    RobotMode,              // Tryb robota, 1-tryb ręczny; 0-tryb automatyczny
 12    JointCurPos,            // Bieżące pozycje stawów 6 osi, jednostka deg
 13    ToolCurPos,             // Bieżąca pozycja narzędzia: [0] pozycja wzdłuż osi X (mm), [1] wzdłuż osi Y (mm), [2] wzdłuż osi Z (mm), [3] obrót wokół stałej osi X (deg), [4] obrót wokół stałej osi Y (deg), [5] obrót wokół stałej osi Z (deg)
 14    FlangeCurPos,          // Bieżąca pozycja kołnierza końcowego: [0] wzdłuż osi X (mm), [1] wzdłuż osi Y (mm), [2] wzdłuż osi Z (mm), [3] obrót wokół stałej osi X (deg), [4] obrót wokół stałej osi Y (deg), [5] obrót wokół stałej osi Z (deg)
 15    ActualJointVel,        // Bieżące prędkości 6 stawów, jednostka deg/s
 16    ActualJointAcc,        // Bieżące przyspieszenia 6 stawów, jednostka deg/s^2
 17    TargetTCPCmpSpeed,     // Zadana prędkość wypadkowa TCP: [0] pozycja (mm/s), [1] orientacja (deg/s)
 18    TargetTCPSpeed,        // Zadana prędkość TCP: [0] wzdłuż osi X (mm/s), [1] wzdłuż osi Y (mm/s), [2] wzdłuż osi Z (mm/s), [3] prędkość kątowa wokół X (deg/s), [4] wokół Y (deg/s), [5] wokół Z (deg/s)
 19    ActualTCPCmpSpeed,     // Rzeczywista prędkość wypadkowa TCP: [0] pozycja (mm/s), [1] orientacja (deg/s)
 20    ActualTCPSpeed,        // Rzeczywista prędkość TCP: [0] wzdłuż osi X (mm/s), [1] wzdłuż osi Y (mm/s), [2] wzdłuż osi Z (mm/s), [3] prędkość kątowa wokół X (deg/s), [4] wokół Y (deg/s), [5] wokół Z (deg/s)
 21    ActualJointTorque,     // Bieżące momenty 6 stawów, jednostka N·m
 22    Tool,                  // Numer zastosowanego układu współrzędnych narzędzia
 23    User,                  // Numer zastosowanego układu współrzędnych obiektu
 24    ClDgtOutputH,          // Wyjście cyfrowe IO szafy sterowniczej 15-8
 25    ClDgtOutputL,          // Wyjście cyfrowe IO szafy sterowniczej 7-0
 26    TlDgtOutputL,          // Wyjście cyfrowe IO narzędzia 7-0, tylko bity 0-1 są ważne
 27    ClDgtInputH,           // Wejście cyfrowe IO szafy sterowniczej 15-8
 28    ClDgtInputL,           // Wejście cyfrowe IO szafy sterowniczej 7-0
 29    TlDgtInputL,           // Wejście cyfrowe IO narzędzia 7-0, tylko bity 0-1 są ważne
 30    ClAnalogInput,         // Wejście analogowe szafy sterowniczej: [0] kanał 0, [1] kanał 1
 31    TlAnalogInput,         // Wejście analogowe narzędzia
 32    FtSensorRawData,       // Surowe dane czujnika siły/momentu: [0] siła wzdłuż osi X (N), [1] siła wzdłuż osi Y (N), [2] siła wzdłuż osi Z (N), [3] moment wokół osi X (Nm), [4] moment wokół osi Y (Nm), [5] moment wokół osi Z (Nm)
 33    FtSensorData,          // Dane czujnika siły/momentu (przetworzone): [0] siła wzdłuż osi X (N), [1] siła wzdłuż osi Y (N), [2] siła wzdłuż osi Z (N), [3] moment wokół osi X (Nm), [4] moment wokół osi Y (Nm), [5] moment wokół osi Z (Nm)
 34    FtSensorActive,        // Stan aktywacji czujnika siły/momentu, 0-reset, 1-aktywacja
 35    EmergencyStop,         // Flaga awaryjnego zatrzymania, 0-awaryjne zatrzymanie niewciśnięte, 1-awaryjne zatrzymanie wciśnięte
 36    MotionDone,            // Sygnał osiągnięcia pozycji, 1-osiągnięto, 0-nie osiągnięto
 37    GripperMotiondone,     // Sygnał zakończenia ruchu chwytaka, 1-zakończono, 0-nie zakończono
 38    McQueueLen,            // Długość kolejki instrukcji ruchu
 39    CollisionState,        // Wykrywanie kolizji, 1-kolizja, 0-brak kolizji
 40    TrajectoryPnum,        // Numer punktu trajektorii
 41    SafetyStop0State,      // Sygnał bezpiecznego zatrzymania SI0
 42    SafetyStop1State,      // Sygnał bezpiecznego zatrzymania SI1
 43    GripperFaultId,        // Numer chwytaka z błędem
 44    GripperFault,          // Błąd chwytaka
 45    GripperActive,         // Stan aktywacji chwytaka
 46    GripperPosition,       // Pozycja chwytaka
 47    GripperSpeed,          // Prędkość chwytaka
 48    GripperCurrent,        // Prąd chwytaka
 49    GripperTemp,           // Temperatura chwytaka
 50    GripperVoltage,        // Napięcie chwytaka
 51    AuxState,              // Stan osi rozszerzonej 485
 52    ExtAxisStatus,         // Stan osi rozszerzonej UDP (4 osie)
 53    ExtDIState,            // Rozszerzone wejście DI (8)
 54    ExtDOState,            // Rozszerzone wyjście DO (8)
 55    ExtAIState,            // Rozszerzone wejście AI (4)
 56    ExtAOState,            // Rozszerzone wyjście AO (4)
 57    RbtEnableState,        // Stan włączenia robota
 58    JointDriverTorque,     // Moment sterownika stawów robota (6 stawów)
 59    JointDriverTemperature,// Temperatura sterownika stawów robota (6 stawów)
 60    RobotTime,             // Czas systemowy robota
 61    SoftwareUpgradeState,  // Stan aktualizacji oprogramowania robota
 62    EndLuaErrCode,         // Stan wykonania LUA końcówki
 63    ClAnalogOutput,        // Wyjście analogowe szafy sterowniczej (2)
 64    TlAnalogOutput,        // Wyjście analogowe narzędzia
 65    GripperRotNum,         // Bieżąca liczba obrotów chwytaka obrotowego
 66    GripperRotSpeed,       // Bieżący procent prędkości obrotowej chwytaka obrotowego
 67    GripperRotTorque,      // Bieżący procent momentu obrotowego chwytaka obrotowego
 68    WeldingBreakOffState,  // Stan przerwania spawania
 69    TargetJointTorque,     // Docelowy moment stawów (6 stawów)
 70    SmartToolState,        // Stan przycisków uchwytu SmartTool
 71    WideVoltageCtrlBoxTemp,// Temperatura szafy sterowniczej z szerokim zakresem napięcia
 72    WideVoltageCtrlBoxFanCurrent, // Prąd wentylatora szafy sterowniczej z szerokim zakresem napięcia (mA)
 73    ToolCoord,             // Wartości bieżącego układu współrzędnych narzędzia: x, y, z, rx, ry, rz
 74    WobjCoord,             // Wartości bieżącego układu współrzędnych obiektu: x, y, z, rx, ry, rz
 75    ExtoolCoord,           // Wartości bieżącego zewnętrznego układu współrzędnych narzędzia: x, y, z, rx, ry, rz
 76    ExAxisCoord,           // Wartości bieżącego układu współrzędnych osi rozszerzonej: x, y, z, rx, ry, rz
 77    Load,                  // Masa obciążenia
 78    LoadCog,               // Środek ciężkości obciążenia: x, y, z
 79    LastServoTarget,       // Ostatnia docelowa pozycja ServoJ w kolejce (6 stawów)
 80    ServoJCmdNum,          // Licznik instrukcji servoJ
 81    TargetJointPos,        // Docelowa pozycja 6 stawów, jednostka °
 82    TargetJointVel,        // Docelowa prędkość 6 stawów, jednostka °/s
 83    TargetJointAcc,        // Docelowe przyspieszenie 6 stawów, jednostka °/s²
 84    TargetJointCurrent,    // Docelowy prąd 6 stawów, jednostka A
 85    ActualJointCurrent,    // Bieżący prąd 6 stawów, jednostka A
 86    ActualTCPForce,        // Moment na końcówce robota: x, y, z, rx, ry, rz, jednostka Nm
 87    TargetTCPPos,          // Docelowa pozycja TCP robota: x, y, z, rx, ry, rz, jednostka mm
 88    CollisionLevel,        // Poziom kolizji robota (6)
 89    SpeedScaleManual,      // Globalny procent prędkości w trybie ręcznym
 90    SpeedScaleAuto,        // Globalny procent prędkości w trybie automatycznym
 91    LuaLineNum,            // Numer bieżącej linii programu lua
 92    AbnomalStop,           // 0-brak wyjątku; 1-wystąpił wyjątek
 93    CurrentLuaFileName,    // Nazwa bieżącego uruchomionego programu lua
 94    ProgramTotalLine,      // Całkowita liczba linii programu lua
 95    SafetyBoxSingal,       // Stan przycisków skrzynki przycisków robota (6)
 96    WeldVoltage,           // Napięcie spawania V
 97    WeldCurrent,           // Prąd spawania
 98    WeldTrackVel,          // Prędkość śledzenia spawiny mm/s
 99    TpdException,          // Przekroczenie limitu ładowania trajektorii TPD, 0-nie przekroczono, 1-przekroczono
100    AlarmRebootRobot,      // Ostrzeżenie: 1-po zwolnieniu awaryjnego zatrzymania wymagane odcięcie zasilania i restart, 2-nieprawidłowa komunikacja stawów wymagane odcięcie zasilania i restart
101    ModbusMasterConnect,   // bity 0-7 odpowiadają stanom połączenia masterów Modbus TCP 0-7, 0-niepołączony, 1-połączony
102    ModbusSlaveConnect,    // Stan połączenia slave'a Modbus TCP, 0-niepołączony, 1-połączony
103    BtnBoxStopSignal,      // Sygnał awaryjnego zatrzymania skrzynki przycisków, 0-zwolniony awaryjny stop, 1-wciśnięty awaryjny stop
104    DragAlarm,            // Ostrzeżenie przeciągania: 0-brak alarmu, 1-alarm, 2-nieprawidłowe sprzężenie zwrotne pozycji - brak przełączania
105    SafetyDoorAlarm,      // Ostrzeżenie drzwi bezpieczeństwa: 0-zamknięte, 1-otwarte
106    SafetyPlaneAlarm,     // Ostrzeżenie ściany bezpieczeństwa: 0-nie wchodzono, 1-wchodzono
107    MotonAlarm,           // Ostrzeżenie ruchu
108    InterfaceAlarm,       // Ostrzeżenie wejścia w obszar interferencji
109    UdpCmdState,          // Stan połączenia komunikacji UDP na porcie 20007
110    WeldReadyState,       // Stan gotowości spawarki
111    AlarmCheckEmergStopBtn, // 0-normalny; 1-nieprawidłowa komunikacja, sprawdź przycisk awaryjnego zatrzymania
112    TsTmCmdComError,      // 0-normalny; 1-nieudana komunikacja polecenia momentu
113    TsTmStateComError,    // 0-normalny; 1-nieudana komunikacja stanu momentu
114    CtrlBoxError,         // Błąd szafy sterowniczej
115    SafetyDataState,      // Stan danych bezpieczeństwa, 0-normalny, 1-nieprawidłowy
116    ForceSensorErrState,  // Przekroczenie czasu połączenia czujnika siły, bity 0-1 odpowiadają ID1-ID2
117    CtrlOpenLuaErrCode,   // Kody błędów 4 protokołów urządzeń peryferyjnych sterownika (kod błędu 500)
118    StrangePosFlag,       // Flaga osobliwej pozy i orientacji: 0-normalny, 1-osobliwa pozy i orientacja
119    Alarm,                // Ostrzeżenie
120    DriverAlarm,          // Numer osi z alarmem sterownika
121    AliveSlaveNumError,   // Błąd liczby aktywnych stacji podrzędnych: 0-normalny, 1-błąd liczby
122    SlaveComError,        // Błąd stacji podrzędnej: 0-normalny, 1-rozłączona, 2-niezgodność stanu, 3-nieskonfigurowana, 4-błąd konfiguracji, 5-błąd inicjalizacji, 6-błąd inicjalizacji komunikacji e-mail
123    CmdPointError,        // Błąd punktu instrukcji
124    IOError,              // Błąd IO
125    GripperError,         // Błąd chwytaka
126    FileError,            // Błąd pliku
127    ParaError,            // Błąd parametru
128    ExaxisOutLimitError,  // Błąd przekroczenia miękkiego ograniczenia osi zewnętrznej
129    DriverComError,       // Błąd komunikacji ze sterownikiem (6 osi)
130    DriverError,          // Numer osi z błędem komunikacji sterownika
131    OutSoftLimitError,    // Błąd przekroczenia miękkiego ograniczenia
132    AxleGenComData,       // Dane sprzężenia zwrotnego transmisji przez końcówkę robota
133    SocketConnTimeout,    // Przekroczenie czasu połączenia socket, bity 0-4 odpowiadają socketID 1-4
134    SocketReadTimeout,    // Przekroczenie czasu odczytu socket, bity 0-4 odpowiadają socketID 1-4
135    TsWebStateComErr,     // Nieudana komunikacja momentu web: 0-normalny, 1-nieudana
136    ExaxisCoordID          // numer układu współrzędnych osi rozszerzonej
137};