2. Spiegazione della Struttura Dati

2.1. Tipo di Dati Posizione Giunti

 1/**
 2* @brief Tipo di dati posizione giunti
 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. Tipo di Dati Posizione Spazio Cartesiano

 1/**
 2* @brief Tipo di dati posizione spazio cartesiano
 3*/
 4public class DescTran
 5{
 6  public double x = 0.0;    /* Coordinata asse x, unità mm  */
 7  public double y = 0.0;    /* Coordinata asse y, unità mm  */
 8  public double z = 0.0;    /* Coordinata asse z, unità 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. Tipo di Dati Orientamento Angoli di Eulero

 1/**
 2* @brief Tipo di dati orientamento angoli di Eulero
 3*/
 4public class Rpy
 5{
 6  public double rx = 0.0;   /* Angolo di rotazione attorno all'asse X fisso, unità: deg  */
 7  public double ry = 0.0;   /* Angolo di rotazione attorno all'asse Y fisso, unità: deg  */
 8  public double rz = 0.0;   /* Angolo di rotazione attorno all'asse Z fisso, unità: deg  */
 9  public Rpy(double rotateX, double rotateY, double rotateZ)
10  {
11    rx = rotateX;
12    ry = rotateY;
13    rz = rotateZ;
14  }
15}

2.4. Tipo di Dati Posa Spazio Cartesiano

 1/**
 2* @brief Tipo posa spazio cartesiano
 3*/
 4public class DescPose
 5{
 6  public DescTran tran = new DescTran(0.0, 0.0, 0.0);      /* Posizione spazio cartesiano  */
 7  public Rpy rpy = new Rpy(0.0, 0.0, 0.0);                         /* Orientamento spazio cartesiano  */
 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. Tipo di Dati Posizione Assi Estesi

 1/**
 2* @brief Tipo di dati posizione assi estesi
 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. Tipo di Dati Sensore di Coppia/Forza

 1/**
 2* @brief Componenti forza e coppia del sensore di forza
 3*/
 4public class ForceTorque
 5{
 6  public double fx;  /* Componente forza lungo l'asse x, unità N  */
 7  public double fy;  /* Componente forza lungo l'asse y, unità N  */
 8  public double fz;  /* Componente forza lungo l'asse z, unità N  */
 9  public double tx;  /* Componente coppia attorno all'asse x, unità Nm */
10  public double ty;  /* Componente coppia attorno all'asse y, unità Nm */
11  public double tz;  /* Componente coppia attorno all'asse z, unità 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. Tipo di Dati Parametri Spirale

 1/**
 2* @brief Tipo di dati parametri spirale
 3*/
 4public class SpiralParam
 5{
 6    public int circle_num;           /* Numero di giri della spirale  */
 7    public double circle_angle;         /* Angolo di inclinazione della spirale  */
 8    public double rad_init;             /* Raggio iniziale della spirale, unità mm  */
 9    public double rad_add;              /* Incremento del raggio  */
10    public double rotaxis_add;          /* Incremento direzione asse di rotazione  */
11    public int rot_direction;  /* Direzione di rotazione, 0-orario, 1-antiorario  */
12    public int velAccMode;     /* Modalità parametri velocità/accelerazione: 0-velocità angolare costante; 1-velocità lineare costante */
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. Tipo di Stato Assi Estesi

 1/**
 2* @brief Tipo di stato assi estesi
 3*/
 4public class EXT_AXIS_STATUS
 5{
 6 public double pos = 0;        //Posizione asse esteso
 7 public double vel = 0;        //Velocità asse esteso
 8 public int errorCode = 0;     //Codice errore asse esteso
 9 public int ready = 0;        //Servo pronto
10 public int inPos = 0;        //Servo in posizione
11 public int alarm = 0;        //Allarme servo
12 public int flerr = 0;        //Errore di inseguimento
13 public int nlimit = 0;       //Al limite negativo
14 public int pLimit = 0;       //Al limite positivo
15 public int mdbsOffLine = 0;  //Driver bus 485 offline
16 public int mdbsTimeout = 0;  //Timeout comunicazione 485 scheda controllo/box controllo
17 public int homingStatus = 0; //Stato homing asse esteso
18}

2.9. Tipo di Sensore

 1/**
 2* @brief Tipo di sensore
 3*/
 4public class DeviceConfig
 5{
 6  int company = 0;          // Produttore
 7  int device = 0;           // Tipo/Numero dispositivo
 8  int softwareVersion = 0;  // Versione software
 9  int bus = 0;              // Posizione montaggio
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. Configurazione Assi Estesi 485

 1/**
 2* @brief Configurazione assi estesi 485
 3*/
 4public class Axis485Param
 5{
 6  int servoCompany;           // Produttore driver servo, 1-DynaTech
 7  int servoModel;             // Modello driver servo, 1-FD100-750C
 8  int servoSoftVersion;       // Versione software driver servo, 1-V1.0
 9  int servoResolution;        // Risoluzione encoder
10  double axisMechTransRatio;  // Rapporto trasmissione meccanico
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. Stato Controller Servo

 1/**
 2* @brief Stato controller servo
 3*/
 4public class ROBOT_AUX_STATE
 5{
 6  public int servoId = 0;           //ID driver servo
 7  public int servoErrCode = 0;       //Codice errore driver servo
 8  public int servoState = 0;         //Stato driver servo
 9  public double servoPos = 0;        //Posizione corrente servo
10  public float servoVel = 0;         //Velocità corrente servo
11  public float servoTorque = 0;      //Coppia corrente servo    25
12}

2.12. Stato Interruzione Saldatura

1/**
2* @brief Stato interruzione saldatura
3*/
4public class WELDING_BREAKOFF_STATE
5{
6  public int breakOffState = 0;  //Stato interruzione saldatura
7  public int weldArcState = 0;   //Stato interruzione arco saldatura
8}

2.13. Parametri Comunicazione Assi Estesi UDP

 1/**
 2* @brief Parametri comunicazione assi estesi UDP
 3*/
 4public class UDP_EXT_AXIS_PARAM
 5{
 6  public String ip = "192.168.58.88";//Indirizzo IP
 7  public int port = 2021;            //Porta
 8  public int period = 2;             //Periodo comunicazione (ms, default 2, non modificare)
 9  public int lossPkgTime = 50;       //Tempo rilevamento perdita pacchetti (ms)
10  public int lossPkgNum = 2;         //Numero perdite pacchetti
11  public int disconnectTime = 100;   //Durata conferma disconnessione comunicazione
12  public int reconnectEnable = 0;    //Abilita riconnessione automatica 0-disabilitato 1-abilitato
13  public int reconnectPeriod = 100;  //Intervallo periodo riconnessione (ms)
14  public int reconnectNum = 3;       //Numero tentativi riconnessione
15  public int selfConnect =0;         //Connessione automatica dopo riavvio alimentazione; 0-non connettere; 1-connetti
16}

2.14. Tipo Struttura Feedback Stato Robot

  1/**
  2* @brief  Tipo struttura di feedback dello stato del robot
  3*/
  4public class ROBOT_STATE_PKG {
  5    public int frame_head;                      // Intestazione del frame
  6    public int frame_cnt;                       // Conteggio frame
  7    public int data_len;                        // Lunghezza dati
  8    public int program_state;                   // Stato programma - 1-arrestato; 2-in esecuzione; 3-in pausa
  9    public int robot_state;                     // Stato movimento robot - 1-arrestato; 2-in movimento; 3-in pausa; 4-trascinamento
 10    public int main_code;                       // Codice guasto principale
 11    public int sub_code;                        // Codice guasto secondario
 12    public int robot_mode;                      // Modalità robot - 1-manuale; 0-automatica
 13    public double[] jt_cur_pos = new double[6]; // Posizioni articolari correnti di 6 assi, unità deg
 14    public double[] tl_cur_pos = new double[6]; // Posizione corrente utensile - [x,y,z,rx,ry,rz]
 15    public double[] flange_cur_pos = new double[6]; // Posizione corrente flangia terminale - [x,y,z,rx,ry,rz]
 16    public double[] actual_qd = new double[6];  // Velocità correnti di 6 giunti, unità deg/s
 17    public double[] actual_qdd = new double[6]; // Accelerazioni correnti di 6 giunti, unità deg/s^2
 18    public double[] target_TCP_CmpSpeed = new double[2]; // Velocità di comando composita TCP - [posizione mm/s, orientamento deg/s]
 19    public double[] target_TCP_Speed = new double[6]; // Velocità di comando TCP - [vx,vy,vz,wx,wy,wz]
 20    public double[] actual_TCP_CmpSpeed = new double[2]; // Velocità effettiva composita TCP - [posizione mm/s, orientamento deg/s]
 21    public double[] actual_TCP_Speed = new double[6]; // Velocità effettiva TCP - [vx,vy,vz,wx,wy,wz]
 22    public double[] jt_cur_tor = new double[6]; // Coppia articolare corrente
 23    public int tool;                            // ID utensile
 24    public int user;                            // ID pezzo
 25    public int cl_dgt_output_h;                 // Byte alto uscita digitale armadio di controllo
 26    public int cl_dgt_output_l;                 // Byte basso uscita digitale armadio di controllo
 27    public int tl_dgt_output_l;                 // Byte basso uscita digitale utensile
 28    public int cl_dgt_input_h;                  // Byte alto ingresso digitale armadio di controllo
 29    public int cl_dgt_input_l;                  // Byte basso ingresso digitale armadio di controllo
 30    public int tl_dgt_input_l;                  // Byte basso ingresso digitale utensile
 31    public int[] cl_analog_input = new int[2];  // Ingresso analogico armadio di controllo
 32    public int tl_anglog_input;                 // Ingresso analogico utensile
 33    public double[] ft_sensor_raw_data = new double[6]; // Dati grezzi sensore di forza
 34    public double[] ft_sensor_data = new double[6]; // Dati sensore di forza
 35    public int ft_sensor_active;                // Stato attivazione sensore di forza
 36    public int EmergencyStop;                   // Stato arresto di emergenza
 37    public int motion_done;                     // Movimento completato
 38    public int gripper_motiondone;              // Movimento pinza completato
 39    public int mc_queue_len;                    // Lunghezza coda movimenti
 40    public int collisionState;                  // Stato collisione
 41    public int trajectory_pnum;                 // Numero sequenza punto traiettoria
 42    public int safety_stop0_state;              // Stato arresto di sicurezza 0
 43    public int safety_stop1_state;              // Stato arresto di sicurezza 1
 44    public int gripper_fault_id;                // ID guasto pinza
 45    public int gripper_fault;                   // Guasto pinza
 46    public int gripper_active;                  // Attivazione pinza
 47    public int gripper_position;                // Posizione pinza
 48    public int gripper_speed;                   // Velocità pinza
 49    public int gripper_current;                 // Corrente pinza
 50    public int gripper_temp;                    // Temperatura pinza
 51    public int gripper_voltage;                 // Tensione pinza
 52    public AuxState aux_state = new AuxState(); // Stato assi ausiliari interni
 53    public EXT_AXIS_STATUS[] extAxisStatus = new EXT_AXIS_STATUS[4]; // Array stato assi di estensione
 54    public short[] extDIState = new short[8];   // I/O estesi
 55    public short[] extDOState = new short[8];   // I/O estesi
 56    public short[] extAIState = new short[4];   // I/O estesi
 57    public short[] extAOState = new short[4];   // I/O estesi
 58    public int rbtEnableState;                  // Stato abilitazione robot
 59    public double[] jointDriverTorque = new double[6]; // Coppia driver giunti
 60    public double[] jointDriverTemperature = new double[6]; // Temperatura driver giunti
 61    public ROBOT_TIME robotTime = new ROBOT_TIME(); // Oggetto tempo robot
 62    public int softwareUpgradeState;            // Stato aggiornamento software
 63    public int endLuaErrCode;                   // Codice errore Lua terminale
 64    public int[] cl_analog_output = new int[2]; // Uscita analogica armadio di controllo
 65    public int tl_analog_output;                // Uscita analogica utensile
 66    public float gripperRotNum;                 // Numero di giri pinza rotante
 67    public int gripperRotSpeed;                 // Velocità pinza rotante
 68    public int gripperRotTorque;                // Coppia pinza rotante
 69    public WELDING_BREAKOFF_STATE weldingBreakOffState = new WELDING_BREAKOFF_STATE(); // Stato interruzione saldatura
 70    public double[] jt_tgt_tor = new double[6]; // Coppia articolare target
 71    public int smartToolState;                  // Stato utensile intelligente
 72    public float wideVoltageCtrlBoxTemp;        // Temperatura armadio di controllo wide voltage
 73    public int wideVoltageCtrlBoxFanCurrent;    // Corrente ventola armadio di controllo wide voltage
 74    public double[] toolCoord = new double[6];  // Sistema di coordinate utensile
 75    public double[] wobjCoord = new double[6];  // Sistema di coordinate pezzo
 76    public double[] extoolCoord = new double[6]; // Sistema di coordinate utensile esterno
 77    public double[] exAxisCoord = new double[6]; // Sistema di coordinate assi di estensione
 78    public double load;                         // Carico
 79    public double[] loadCog = new double[3];    // Centro di gravità del carico
 80    public double[] lastServoTarget = new double[6]; // Ultima posizione target servo J
 81    public int servoJCmdNum;                    // Numero comandi servo J
 82    public double[] targetJointPos = new double[6]; // Posizione articolare target
 83    public double[] targetJointVel = new double[6]; // Velocità articolare target
 84    public double[] targetJointAcc = new double[6]; // Accelerazione articolare target
 85    public double[] targetJointCurrent = new double[6]; // Corrente articolare target
 86    public double[] actualJointCurrent = new double[6]; // Corrente articolare effettiva
 87    public double[] actualTCPForce = new double[6]; // Forza TCP effettiva
 88    public double[] targetTCPPos = new double[6]; // Posizione TCP target
 89    public int[] collisionLevel = new int[6];   // Livello collisione
 90    public double speedScaleManual;              // Scala velocità manuale
 91    public double speedScaleAuto;                // Scala velocità automatica
 92    public int luaLineNum;                       // Numero riga Lua
 93    public int abnomalStop;                      // Arresto anomalo
 94    public String currentLuaFileName;            // Nome file Lua corrente
 95    public int programTotalLine;                 // Righe totali programma
 96    public int[] safetyBoxSingal = new int[6];   // Segnale scatola di sicurezza
 97    public double weldVoltage;                   // Tensione saldatura
 98    public double weldCurrent;                   // Corrente saldatura
 99    public double weldTrackVel;                  // Velocità tracciamento saldatura
100    public int tpdException;                     // Eccezione TPD
101    public int alarmRebootRobot;                 // Riavvio robot allarme
102    public int modbusMasterConnect;              // Connessione master Modbus
103    public int modbusSlaveConnect;               // Connessione slave Modbus
104    public int btnBoxStopSignal;                 // Segnale stop scatola pulsanti
105    public int dragAlarm;                        // Allarme trascinamento
106    public int safetyDoorAlarm;                  // Allarme porta sicurezza
107    public int safetyPlaneAlarm;                 // Allarme piano sicurezza
108    public int motonAlarm;                       // Allarme movimento
109    public int interfaceAlarm;                   // Allarme interferenza
110    public int udpCmdState;                      // Stato comando UDP
111    public int weldReadyState;                   // Stato pronto saldatura
112    public int alarmCheckEmergStopBtn;           // Pulsante arresto emergenza controllo allarme
113    public int tsTmCmdComError;                  // Errore comunicazione comando
114    public int tsTmStateComError;                // Errore comunicazione stato
115    public int ctrlBoxError;                     // Errore armadio di controllo
116    public int safetyDataState;                  // Stato dati sicurezza
117    public int forceSensorErrState;              // Stato errore sensore di forza
118    public int[] ctrlOpenLuaErrCode = new int[4]; // Codice errore Lua open controllo
119    public int strangePosFlag;                   // Flag posizione singolare
120    public int alarm;                            // Allarme
121    public int driverAlarm;                      // Allarme driver
122    public int aliveSlaveNumError;               // Errore numero slave attivi
123    public int[] slaveComError = new int[8];     // Errore comunicazione slave
124    public int cmdPointError;                    // Errore punto comando
125    public int IOError;                          // Errore IO
126    public int gripperError;                     // Errore pinza
127    public int fileError;                        // Errore file
128    public int paraError;                        // Errore parametro
129    public int exaxisOutLimitError;              // Errore superamento limite morbido asse estensione
130    public int[] driverComError = new int[6];    // Errore comunicazione driver
131    public int driverError;                      // Errore driver
132    public int outSoftLimitError;                // Errore superamento limite morbido
133    public byte[] axleGenComData = new byte[130]; // Dati comunicazione assi generali
134    public int check_sum;                        // Checksum
135    public int socketConnTimeout;                // Timeout connessione socket
136    public int socketReadTimeout;                // Timeout lettura socket
137    public int tsWebStateComErr;                 // Errore comunicazione stato TS Web
138    public int exaxisCoordID;                  // ID sistema coordinate asse esteso
139}

2.15. Classe Risultato Configurazione Feedback Stato Robot

1/**
2* Classe risultato configurazione feedback stato robot, contiene lista stati e periodo
3*/
4public static class StateConfigResult {
5  public final List<RobotState> stateList;
6  public final int period;
7}

2.16. Tipo Enumerato Configurazione Feedback Stato Robot

  1/**
  2* Tipo enumerato stato robot
  3* Utilizzato per la configurazione del feedback di stato in tempo reale
  4*/
  5enum class RobotState
  6{
  7    ProgramState,           // Stato esecuzione programma, 1-arrestato; 2-in esecuzione; 3-in pausa
  8    RobotState,             // Stato movimento robot, 1-arrestato; 2-in movimento; 3-in pausa; 4-traino
  9    MainCode,               // Codice guasto principale
 10    SubCode,                // Codice guasto secondario
 11    RobotMode,              // Modalità robot, 1-modalità manuale; 0-modalità automatica
 12    JointCurPos,            // Posizioni attuali giunti di 6 assi, unità deg
 13    ToolCurPos,             // Posizione attuale utensile: [0]posizione lungo x(mm), [1]lungo y(mm), [2]lungo z(mm), [3]rotazione attorno X fisso(deg), [4]attorno Y fisso(deg), [5]attorno Z fisso(deg)
 14    FlangeCurPos,           // Posizione attuale flangia terminale: [0]lungo x(mm), [1]lungo y(mm), [2]lungo z(mm), [3]rotazione attorno X fisso(deg), [4]attorno Y fisso(deg), [5]attorno Z fisso(deg)
 15    ActualJointVel,         // Velocità attuali 6 giunti, unità deg/s
 16    ActualJointAcc,         // Accelerazioni attuali 6 giunti, unità deg/s²
 17    TargetTCPCmpSpeed,      // Velocità composita comando TCP: [0]posizione(mm/s), [1]orientamento(deg/s)
 18    TargetTCPSpeed,         // Velocità comando TCP: [0]lungo x(mm/s), [1]lungo y(mm/s), [2]lungo z(mm/s), [3]velocità angolare attorno X(deg/s), [4]attorno Y(deg/s), [5]attorno Z(deg/s)
 19    ActualTCPCmpSpeed,      // Velocità composita effettiva TCP: [0]posizione(mm/s), [1]orientamento(deg/s)
 20    ActualTCPSpeed,         // Velocità effettiva TCP: [0]lungo x(mm/s), [1]lungo y(mm/s), [2]lungo z(mm/s), [3]velocità angolare attorno X(deg/s), [4]attorno Y(deg/s), [5]attorno Z(deg/s)
 21    ActualJointTorque,      // Coppie attuali 6 giunti, unità N·m
 22    Tool,                   // Numero sistema coordinate utensile applicato
 23    User,                   // Numero sistema coordinate pezzo applicato
 24    ClDgtOutputH,           // Uscita IO digitale scatola di controllo 15-8
 25    ClDgtOutputL,           // Uscita IO digitale scatola di controllo 7-0
 26    TlDgtOutputL,           // Uscita IO digitale utensile 7-0, solo bit0-bit1 validi
 27    ClDgtInputH,            // Ingresso IO digitale scatola di controllo 15-8
 28    ClDgtInputL,            // Ingresso IO digitale scatola di controllo 7-0
 29    TlDgtInputL,            // Ingresso IO digitale utensile 7-0, solo bit0-bit1 validi
 30    ClAnalogInput,          // Ingresso analogico scatola di controllo: [0]canale 0, [1]canale 1
 31    TlAnalogInput,          // Ingresso analogico utensile
 32    FtSensorRawData,        // Dati grezzi sensore coppia-forza: [0]forza lungo x(N), [1]lungo y(N), [2]lungo z(N), [3]coppia attorno x(Nm), [4]attorno y(Nm), [5]attorno z(Nm)
 33    FtSensorData,           // Dati sensore coppia-forza (elaborati): [0]forza lungo x(N), [1]lungo y(N), [2]lungo z(N), [3]coppia attorno x(Nm), [4]attorno y(Nm), [5]attorno z(Nm)
 34    FtSensorActive,         // Stato attivazione sensore coppia-forza, 0-reset, 1-attivo
 35    EmergencyStop,          // Flag arresto emergenza, 0-arresto emergenza non premuto, 1-arresto emergenza premuto
 36    MotionDone,             // Segnale movimento completato, 1-completato, 0-non completato
 37    GripperMotiondone,      // Segnale completamento movimento pinza, 1-completato, 0-non completato
 38    McQueueLen,             // Lunghezza coda comandi movimento
 39    CollisionState,         // Rilevamento collisione, 1-collisione, 0-nessuna collisione
 40    TrajectoryPnum,         // Numero punto traiettoria
 41    SafetyStop0State,       // Segnale arresto sicurezza SI0
 42    SafetyStop1State,       // Segnale arresto sicurezza SI1
 43    GripperFaultId,         // Numero pinza guasta
 44    GripperFault,           // Guasto pinza
 45    GripperActive,          // Stato attivazione pinza
 46    GripperPosition,        // Posizione pinza
 47    GripperSpeed,           // Velocità pinza
 48    GripperCurrent,         // Corrente pinza
 49    GripperTemp,            // Temperatura pinza
 50    GripperVoltage,         // Tensione pinza
 51    AuxState,               // Stato asse esteso 485
 52    ExtAxisStatus,          // Stato asse esteso UDP (4 assi)
 53    ExtDIState,             // Ingresso DI esteso (8)
 54    ExtDOState,             // Uscita DO esteso (8)
 55    ExtAIState,             // Ingresso AI esteso (4)
 56    ExtAOState,             // Uscita AO esteso (4)
 57    RbtEnableState,         // Stato abilitazione robot
 58    JointDriverTorque,      // Coppia driver giunti robot (6 giunti)
 59    JointDriverTemperature, // Temperatura driver giunti robot (6 giunti)
 60    RobotTime,              // Tempo sistema robot
 61    SoftwareUpgradeState,   // Stato aggiornamento software robot
 62    EndLuaErrCode,          // Stato esecuzione LUA terminale
 63    ClAnalogOutput,         // Uscita analogica scatola di controllo (2)
 64    TlAnalogOutput,         // Uscita analogica utensile
 65    GripperRotNum,          // Giri correnti pinza rotante
 66    GripperRotSpeed,        // Percentuale velocità corrente pinza rotante
 67    GripperRotTorque,       // Percentuale coppia corrente pinza rotante
 68    WeldingBreakOffState,   // Stato interruzione saldatura
 69    TargetJointTorque,      // Coppia comando giunti (6 giunti)
 70    SmartToolState,         // Stato pulsanti maniglia SmartTool
 71    WideVoltageCtrlBoxTemp, // Temperatura scatola di controllo ampia tensione
 72    WideVoltageCtrlBoxFanCurrent, // Corrente ventola scatola di controllo ampia tensione (mA)
 73    ToolCoord,              // Valori coordinate utensile correnti: x,y,z,rx,ry,rz
 74    WobjCoord,              // Valori coordinate pezzo correnti: x,y,z,rx,ry,rz
 75    ExtoolCoord,            // Valori coordinate utensile esterno correnti: x,y,z,rx,ry,rz
 76    ExAxisCoord,            // Valori coordinate asse esteso correnti: x,y,z,rx,ry,rz
 77    Load,                   // Massa carico
 78    LoadCog,                // Baricentro carico: x,y,z
 79    LastServoTarget,        // Ultima posizione target ServoJ in coda (6 giunti)
 80    ServoJCmdNum,           // Conteggio comandi servoJ
 81    TargetJointPos,         // Posizioni comando 6 giunti, unità °
 82    TargetJointVel,         // Velocità comando 6 giunti, unità °/s
 83    TargetJointAcc,         // Accelerazioni comando 6 giunti, unità °/s²
 84    TargetJointCurrent,     // Correnti comando 6 giunti, unità A
 85    ActualJointCurrent,     // Correnti attuali 6 giunti, unità A
 86    ActualTCPForce,         // Coppia terminale robot: x,y,z,rx,ry,rz, unità Nm
 87    TargetTCPPos,           // Posizione comando TCP robot: x,y,z,rx,ry,rz, unità mm
 88    CollisionLevel,         // Livello collisione robot (6)
 89    SpeedScaleManual,       // Percentuale velocità globale modalità manuale
 90    SpeedScaleAuto,         // Percentuale velocità globale modalità automatica
 91    LuaLineNum,             // Numero riga programma lua in esecuzione
 92    AbnomalStop,            // 0-nessuna anomalia; 1-anomalia presente
 93    CurrentLuaFileName,     // Nome programma lua in esecuzione
 94    ProgramTotalLine,       // Righe totali programma lua
 95    SafetyBoxSingal,        // Stato pulsanti scatola pulsanti robot (6)
 96    WeldVoltage,            // Tensione saldatura V
 97    WeldCurrent,            // Corrente saldatura
 98    WeldTrackVel,           // Velocità inseguimento cordone mm/s
 99    TpdException,           // Superamento limite caricamento traiettorie TPD, 0-non superato, 1-superato
100    AlarmRebootRobot,       // Avviso: 1-ciclo di alimentazione necessario dopo rilascio arresto emergenza, 2-anomalia comunicazione giunto richiede ciclo alimentazione
101    ModbusMasterConnect,    // bit0-7 corrispondono stato connessione master ModbusTCP 0-7, 0-non connesso, 1-connesso
102    ModbusSlaveConnect,     // Stato connessione slave ModbusTCP, 0-non connesso, 1-connesso
103    BtnBoxStopSignal,       // Segnale arresto emergenza scatola pulsanti, 0-arresto emergenza rilasciato, 1-arresto emergenza premuto
104    DragAlarm,              // Avviso traino: 0-nessun allarme, 1-allarme, 2-anomalia feedback posizione nessun cambio
105    SafetyDoorAlarm,        // Avviso porta sicurezza: 0-chiusa, 1-aperta
106    SafetyPlaneAlarm,       // Avviso muro sicurezza: 0-non entrato, 1-entrato
107    MotonAlarm,             // Avviso movimento
108    InterfaceAlarm,         // Avviso ingresso zona interferenza
109    UdpCmdState,            // Stato connessione comunicazione UDP porta 20007
110    WeldReadyState,         // Stato pronto saldatrice
111    AlarmCheckEmergStopBtn, // 0-normale; 1-anomalia comunicazione, controllare pulsante arresto emergenza
112    TsTmCmdComError,        // 0-normale; 1-guasto comunicazione comando coppia
113    TsTmStateComError,      // 0-normale; 1-guasto comunicazione stato coppia
114    CtrlBoxError,           // Errore scatola di controllo
115    SafetyDataState,        // Stato dati sicurezza, 0-normale, 1-anomalo
116    ForceSensorErrState,    // Timeout connessione sensore di forza, bit0-bit1 corrispondono ID1-ID2
117    CtrlOpenLuaErrCode,     // Codici errore protocollo periferiche 4 controller (codice errore 500)
118    StrangePosFlag,         // Flag posizione singolare: 0-normale, 1-posizione singolare
119    Alarm,                  // Allarme
120    DriverAlarm,            // Numero asse allarme driver
121    AliveSlaveNumError,     // Errore conteggio slave attivi: 0-normale, 1-errore conteggio
122    SlaveComError,          // Errore slave: 0-normale, 1-offline, 2-incoerenza stato, 3-non configurato, 4-errore configurazione, 5-errore inizializzazione, 6-errore inizializzazione comunicazione mailbox
123    CmdPointError,          // Errore punto comando
124    IOError,                // Errore IO
125    GripperError,           // Errore pinza
126    FileError,              // Errore file
127    ParaError,              // Errore parametro
128    ExaxisOutLimitError,    // Errore superamento limite soft asse esterno
129    DriverComError,         // Guasto comunicazione driver (6 assi)
130    DriverError,            // Numero asse guasto comunicazione driver
131    OutSoftLimitError,      // Guasto superamento limite soft
132    AxleGenComData,         // Dati feedback trasmissione trasparente terminale robot
133    SocketConnTimeout,      // Timeout connessione socket, bit0-bit4 corrispondono socketID 1-4
134    SocketReadTimeout,      // Timeout lettura socket, bit0-bit4 corrispondono socketID 1-4
135    TsWebStateComErr,       // Guasto comunicazione web-coppia: 0-normale, 1-guasto
136    ExaxisCoordID           // ID sistema coordinate asse esteso
137};