2. Descrição das Estruturas de Dados

2.1. Tipo de Dados de Posição Articular

 1/**
 2* @brief Tipo de dados de posição articular
 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 de Dados de Posição no Espaço Cartesiano

 1/**
 2* @brief Tipo de dados de posição no espaço cartesiano
 3*/
 4public class DescTran
 5{
 6  public double x = 0.0;    /* Coordenada do eixo X, em mm */
 7  public double y = 0.0;    /* Coordenada do eixo Y, em mm */
 8  public double z = 0.0;    /* Coordenada do eixo Z, em 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 de Dados de Atitude de Ângulos de Euler

 1/**
 2* @brief Tipo de dados de atitude de ângulos de Euler
 3*/
 4public class Rpy
 5{
 6  public double rx = 0.0;   /* Ângulo de rotação em torno do eixo X fixo, em graus */
 7  public double ry = 0.0;   /* Ângulo de rotação em torno do eixo Y fixo, em graus */
 8  public double rz = 0.0;   /* Ângulo de rotação em torno do eixo Z fixo, em graus */
 9  public Rpy(double rotateX, double rotateY, double rotateZ)
10  {
11    rx = rotateX;
12    ry = rotateY;
13    rz = rotateZ;
14  }
15}

2.4. Tipo de Dados de Pose no Espaço Cartesiano

 1/**
 2*@brief Tipo de pose no espaço cartesiano
 3*/
 4public class DescPose
 5{
 6  public DescTran tran = new DescTran(0.0, 0.0, 0.0);      /* Posição no espaço cartesiano */
 7  public Rpy rpy = new Rpy(0.0, 0.0, 0.0);                 /* Atitude no espaço 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 de Dados de Posição do Eixo Estendido

 1/**
 2* @brief Tipo de dados de posição do eixo estendido
 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 de Dados do Sensor de Torque

 1/**
 2* @brief Componentes de força e torque do sensor de força
 3*/
 4public class ForceTorque
 5{
 6  public double fx;  /* Componente de força ao longo do eixo X, em N */
 7  public double fy;  /* Componente de força ao longo do eixo Y, em N */
 8  public double fz;  /* Componente de força ao longo do eixo Z, em N */
 9  public double tx;  /* Componente de torque em torno do eixo X, em Nm */
10  public double ty;  /* Componente de torque em torno do eixo Y, em Nm */
11  public double tz;  /* Componente de torque em torno do eixo Z, em 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 de Dados de Parâmetros da Espiral

 1/**
 2* @brief Tipo de dados de parâmetros da espiral
 3*/
 4public class SpiralParam
 5{
 6    public int circle_num;           /* Número de voltas da espiral */
 7    public double circle_angle;      /* Ângulo de inclinação da espiral */
 8    public double rad_init;          /* Raio inicial da espiral, em mm */
 9    public double rad_add;           /* Incremento do raio */
10    public double rotaxis_add;       /* Incremento na direção do eixo de rotação */
11    public int rot_direction;        /* Direção de rotação, 0-horário, 1-anti-horário */
12    public int velAccMode;           /* Modo de parâmetro de velocidade/aceleração: 0-velocidade angular constante; 1-velocidade linear constante */
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 de Estado do Eixo Estendido

 1/**
 2* @brief Tipo de estado do eixo estendido
 3*/
 4public class EXT_AXIS_STATUS
 5{
 6 public double pos = 0;        // Posição do eixo estendido
 7 public double vel = 0;        // Velocidade do eixo estendido
 8 public int errorCode = 0;     // Código de falha do eixo estendido
 9 public int ready = 0;         // Servo pronto
10 public int inPos = 0;         // Servo no lugar
11 public int alarm = 0;         // Alarme do servo
12 public int flerr = 0;         // Erro de seguimento
13 public int nlimit = 0;        // Limite negativo atingido
14 public int pLimit = 0;        // Limite positivo atingido
15 public int mdbsOffLine = 0;   // Driver offline no barramento 485
16 public int mdbsTimeout = 0;   // Tempo limite de comunicação 485 entre placa de controle e caixa de controle
17 public int homingStatus = 0;  // Status de retorno à origem do eixo estendido
18}

2.9. Tipo de Sensor

 1/**
 2* @brief Tipo de sensor
 3*/
 4public class DeviceConfig
 5{
 6  int company = 0;          // Fabricante
 7  int device = 0;           // Tipo/número do dispositivo
 8  int softwareVersion = 0;  // Versão do software
 9  int bus = 0;              // Local de montagem
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. Configuração do Eixo Estendido 485

 1/**
 2* @brief Configuração do eixo estendido 485
 3*/
 4public class Axis485Param
 5{
 6  int servoCompany;           // Fabricante do servo driver, 1-Dynatec
 7  int servoModel;             // Modelo do servo driver, 1-FD100-750C
 8  int servoSoftVersion;       // Versão do software do servo driver, 1-V1.0
 9  int servoResolution;        // Resolução do codificador
10  double axisMechTransRatio;  // Relação de transmissão mecânica
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. Estado do Controlador Servo

 1/**
 2* @brief Estado do controlador servo
 3*/
 4public class ROBOT_AUX_STATE
 5{
 6  public int servoId = 0;           // Número de ID do servo driver
 7  public int servoErrCode = 0;      // Código de falha do servo driver
 8  public int servoState = 0;        // Estado do servo driver
 9  public double servoPos = 0;       // Posição atual do servo
10  public float servoVel = 0;        // Velocidade atual do servo
11  public float servoTorque = 0;     // Torque atual do servo
12}

2.12. Estado de Interrupção da Soldagem

1/**
2* @brief Estado de interrupção da soldagem
3*/
4public class WELDING_BREAKOFF_STATE
5{
6  public int breakOffState = 0;  // Estado de interrupção da soldagem
7  public int weldArcState = 0;   // Estado de interrupção do arco de soldagem
8}

2.13. Parâmetros de Comunicação UDP do Eixo Estendido

 1/**
 2* @brief Parâmetros de comunicação UDP do eixo estendido
 3*/
 4public class UDPComParam
 5{
 6  public String ip = "192.168.58.88"; // Endereço IP
 7  public int port = 2021;            // Número da porta
 8  public int period = 2;             // Período de comunicação (ms, padrão 2, não modifique este parâmetro)
 9  public int lossPkgTime = 50;       // Tempo de detecção de perda de pacote (ms)
10  public int lossPkgNum = 2;         // Número de perdas de pacote
11  public int disconnectTime = 100;   // Duração para confirmação de desconexão da comunicação
12  public int reconnectEnable = 0;    // Ativação da reconexão automática em caso de desconexão 0-desativar 1-ativar
13  public int reconnectPeriod = 100;  // Intervalo do período de reconexão (ms)
14  public int reconnectNum = 3;       // Número de tentativas de reconexão
15  public int selfConnect = 0;        // Estabelecer conexão automaticamente após reinicialização com perda de energia; 0-não estabelecer; 1-estabelecer
16}

2.14. Tipo de Estrutura de Retroalimentação de Estado do Robô

  1/**
  2* @brief  Tipo de estrutura de feedback de estado do robô
  3*/
  4public class ROBOT_STATE_PKG {
  5    public int frame_head;                      // Cabeçalho do quadro
  6    public int frame_cnt;                       // Contagem de quadros
  7    public int data_len;                        // Comprimento dos dados
  8    public int program_state;                   // Estado do programa - 1-parado; 2-em execução; 3-pausado
  9    public int robot_state;                     // Estado de movimento do robô - 1-parado; 2-em movimento; 3-pausado; 4-arrastando
 10    public int main_code;                       // Código de falha principal
 11    public int sub_code;                        // Código de falha secundário
 12    public int robot_mode;                      // Modo do robô - 1-manual; 0-automático
 13    public double[] jt_cur_pos = new double[6]; // Posições atuais das juntas de 6 eixos, unidade deg
 14    public double[] tl_cur_pos = new double[6]; // Posição atual da ferramenta - [x,y,z,rx,ry,rz]
 15    public double[] flange_cur_pos = new double[6]; // Posição atual da flange final - [x,y,z,rx,ry,rz]
 16    public double[] actual_qd = new double[6];  // Velocidades atuais de 6 juntas, unidade deg/s
 17    public double[] actual_qdd = new double[6]; // Acelerações atuais de 6 juntas, unidade deg/s^2
 18    public double[] target_TCP_CmpSpeed = new double[2]; // Velocidade de comando composta TCP - [posição mm/s, orientação deg/s]
 19    public double[] target_TCP_Speed = new double[6]; // Velocidade de comando TCP - [vx,vy,vz,wx,wy,wz]
 20    public double[] actual_TCP_CmpSpeed = new double[2]; // Velocidade efetiva composta TCP - [posição mm/s, orientação deg/s]
 21    public double[] actual_TCP_Speed = new double[6]; // Velocidade efetiva TCP - [vx,vy,vz,wx,wy,wz]
 22    public double[] jt_cur_tor = new double[6]; // Torque atual da junta
 23    public int tool;                            // ID da ferramenta
 24    public int user;                            // ID da peça
 25    public int cl_dgt_output_h;                 // Byte alto da saída digital do armário de controle
 26    public int cl_dgt_output_l;                 // Byte baixo da saída digital do armário de controle
 27    public int tl_dgt_output_l;                 // Byte baixo da saída digital da ferramenta
 28    public int cl_dgt_input_h;                  // Byte alto da entrada digital do armário de controle
 29    public int cl_dgt_input_l;                  // Byte baixo da entrada digital do armário de controle
 30    public int tl_dgt_input_l;                  // Byte baixo da entrada digital da ferramenta
 31    public int[] cl_analog_input = new int[2];  // Entrada analógica do armário de controle
 32    public int tl_anglog_input;                 // Entrada analógica da ferramenta
 33    public double[] ft_sensor_raw_data = new double[6]; // Dados brutos do sensor de força
 34    public double[] ft_sensor_data = new double[6]; // Dados do sensor de força
 35    public int ft_sensor_active;                // Estado de ativação do sensor de força
 36    public int EmergencyStop;                   // Estado de parada de emergência
 37    public int motion_done;                     // Movimento concluído
 38    public int gripper_motiondone;              // Sinal de conclusão de movimento da garra, 0-não concluído, 1-concluído (nenhum objeto detectado), 2-movimento concluído (objeto detectado)
 39    public int mc_queue_len;                    // Comprimento da fila de movimentos
 40    public int collisionState;                  // Estado de colisão
 41    public int trajectory_pnum;                 // Número de sequência do ponto de trajetória
 42    public int safety_stop0_state;              // Estado de parada de segurança 0
 43    public int safety_stop1_state;              // Estado de parada de segurança 1
 44    public int gripper_fault_id;                // ID de falha da garra
 45    public int gripper_fault;                   // Falha da garra
 46    public int gripper_active;                  // Ativação da garra
 47    public int gripper_position;                // Posição da garra
 48    public int gripper_speed;                   // Velocidade da garra
 49    public int gripper_current;                 // Corrente da garra
 50    public int gripper_temp;                    // Temperatura da garra
 51    public int gripper_voltage;                 // Tensão da garra
 52    public AuxState aux_state = new AuxState(); // Estado dos eixos auxiliares internos
 53    public EXT_AXIS_STATUS[] extAxisStatus = new EXT_AXIS_STATUS[4]; // Matriz de estado dos eixos de extensão
 54    public short[] extDIState = new short[8];   // I/O estendidos
 55    public short[] extDOState = new short[8];   // I/O estendidos
 56    public short[] extAIState = new short[4];   // I/O estendidos
 57    public short[] extAOState = new short[4];   // I/O estendidos
 58    public int rbtEnableState;                  // Estado de habilitação do robô
 59    public double[] jointDriverTorque = new double[6]; // Torque do driver da junta
 60    public double[] jointDriverTemperature = new double[6]; // Temperatura do driver da junta
 61    public ROBOT_TIME robotTime = new ROBOT_TIME(); // Objeto de tempo do robô
 62    public int softwareUpgradeState;            // Estado de atualização do software
 63    public int endLuaErrCode;                   // Código de erro Lua da extremidade
 64    public int[] cl_analog_output = new int[2]; // Saída analógica do armário de controle
 65    public int tl_analog_output;                // Saída analógica da ferramenta
 66    public float gripperRotNum;                 // Número de rotações da garra rotativa
 67    public int gripperRotSpeed;                 // Velocidade da garra rotativa
 68    public int gripperRotTorque;                // Torque da garra rotativa
 69    public WELDING_BREAKOFF_STATE weldingBreakOffState = new WELDING_BREAKOFF_STATE(); // Estado de interrupção da soldagem
 70    public double[] jt_tgt_tor = new double[6]; // Torque da junta alvo
 71    public int smartToolState;                  // Estado da ferramenta inteligente
 72    public float wideVoltageCtrlBoxTemp;        // Temperatura do armário de controle de ampla tensão
 73    public int wideVoltageCtrlBoxFanCurrent;    // Corrente do ventilador do armário de controle de ampla tensão
 74    public double[] toolCoord = new double[6];  // Sistema de coordenadas da ferramenta
 75    public double[] wobjCoord = new double[6];  // Sistema de coordenadas da peça
 76    public double[] extoolCoord = new double[6]; // Sistema de coordenadas da ferramenta externa
 77    public double[] exAxisCoord = new double[6]; // Sistema de coordenadas do eixo de extensão
 78    public double load;                         // Carga
 79    public double[] loadCog = new double[3];    // Centro de gravidade da carga
 80    public double[] lastServoTarget = new double[6]; // Última posição alvo servo J
 81    public int servoJCmdNum;                    // Número de comandos servo J
 82    public double[] targetJointPos = new double[6]; // Posição da junta alvo
 83    public double[] targetJointVel = new double[6]; // Velocidade da junta alvo
 84    public double[] targetJointAcc = new double[6]; // Aceleração da junta alvo
 85    public double[] targetJointCurrent = new double[6]; // Corrente da junta alvo
 86    public double[] actualJointCurrent = new double[6]; // Corrente efetiva da junta
 87    public double[] actualTCPForce = new double[6]; // Força TCP efetiva
 88    public double[] targetTCPPos = new double[6]; // Posição TCP alvo
 89    public int[] collisionLevel = new int[6];   // Nível de colisão
 90    public double speedScaleManual;              // Escala de velocidade manual
 91    public double speedScaleAuto;                // Escala de velocidade automática
 92    public int luaLineNum;                       // Número da linha Lua
 93    public int abnomalStop;                      // Parada anormal
 94    public String currentLuaFileName;            // Nome do arquivo Lua atual
 95    public int programTotalLine;                 // Linhas totais do programa
 96    public int[] safetyBoxSingal = new int[6];   // Sinal da caixa de segurança
 97    public double weldVoltage;                   // Tensão de soldagem
 98    public double weldCurrent;                   // Corrente de soldagem
 99    public double weldTrackVel;                  // Velocidade de rastreamento de soldagem
100    public int tpdException;                     // Exceção TPD
101    public int alarmRebootRobot;                 // Reinicialização do robô por alarme
102    public int modbusMasterConnect;              // Conexão master Modbus
103    public int modbusSlaveConnect;               // Conexão slave Modbus
104    public int btnBoxStopSignal;                 // Sinal de parada da caixa de botões
105    public int dragAlarm;                        // Alarme de arrasto
106    public int safetyDoorAlarm;                  // Alarme de porta de segurança
107    public int safetyPlaneAlarm;                 // Alarme de plano de segurança
108    public int motonAlarm;                       // Alarme de movimento
109    public int interfaceAlarm;                   // Alarme de interferência
110    public int udpCmdState;                      // Estado do comando UDP
111    public int weldReadyState;                   // Estado de prontidão da soldagem
112    public int alarmCheckEmergStopBtn;           // Botão de parada de emergência de verificação de alarme
113    public int tsTmCmdComError;                  // Erro de comunicação de comando
114    public int tsTmStateComError;                // Erro de comunicação de estado
115    public int ctrlBoxError;                     // Erro do armário de controle
116    public int safetyDataState;                  // Estado dos dados de segurança
117    public int forceSensorErrState;              // Estado de erro do sensor de força
118    public int[] ctrlOpenLuaErrCode = new int[4]; // Código de erro Lua de controle aberto
119    public int strangePosFlag;                   // Flag de posição singular
120    public int alarm;                            // Alarme
121    public int driverAlarm;                      // Alarme do driver
122    public int aliveSlaveNumError;               // Erro de número de escravos ativos
123    public int[] slaveComError = new int[8];     // Erro de comunicação do escravo
124    public int cmdPointError;                    // Erro de ponto de comando
125    public int IOError;                          // Erro de IO
126    public int gripperError;                     // Erro da garra
127    public int fileError;                        // Erro de arquivo
128    public int paraError;                        // Erro de parâmetro
129    public int exaxisOutLimitError;              // Erro de limite suave do eixo de extensão excedido
130    public int[] driverComError = new int[6];    // Erro de comunicação do driver
131    public int driverError;                      // Erro do driver
132    public int outSoftLimitError;                // Erro de limite suave excedido
133    public byte[] axleGenComData = new byte[130]; // Dados de comunicação do eixo geral
134    public int check_sum;                        // Checksum
135    public int socketConnTimeout;                // Tempo limite de conexão do socket
136    public int socketReadTimeout;                // Tempo limite de leitura do socket
137    public int tsWebStateComErr;                 // Erro de comunicação de estado TS Web
138    public int exaxisCoordID;                  //ID do sistema de coordenadas do eixo estendido
139}

2.15. Classe de Resultado da Configuração de Feedback de Estado do Robô

1/**
2* Classe de resultado da configuração de feedback de estado do robô, contendo lista de estados e período
3*/
4public static class StateConfigResult {
5  public final List<RobotState> stateList;
6  public final int period;
7}

2.16. Tipo de Enumeração da Configuração de Feedback de Estado do Robô

  1/**
  2* Tipo de enumeração de estado do robô
  3* Usado para configuração de feedback de estado em tempo real
  4*/
  5enum class RobotState
  6{
  7    ProgramState,           // Estado de execução do programa, 1-parado; 2-em execução; 3-em pausa
  8    RobotState,             // Estado de movimento do robô, 1-parado; 2-em movimento; 3-em pausa; 4-arrasto
  9    MainCode,               // Código de falha principal
 10    SubCode,                // Código de falha secundário
 11    RobotMode,              // Modo do robô, 1-modo manual; 0-modo automático
 12    JointCurPos,            // Posições atuais das juntas de 6 eixos, unidade deg
 13    ToolCurPos,             // Posição atual da ferramenta: [0]posição ao longo do eixo x(mm), [1]ao longo do eixo y(mm), [2]ao longo do eixo z(mm), [3]rotação em torno do X fixo(deg), [4]em torno do Y fixo(deg), [5]em torno do Z fixo(deg)
 14    FlangeCurPos,           // Posição atual da flange final: [0]ao longo do eixo x(mm), [1]ao longo do eixo y(mm), [2]ao longo do eixo z(mm), [3]rotação em torno do X fixo(deg), [4]em torno do Y fixo(deg), [5]em torno do Z fixo(deg)
 15    ActualJointVel,         // Velocidades atuais de 6 juntas, unidade deg/s
 16    ActualJointAcc,         // Acelerações atuais de 6 juntas, unidade deg/s²
 17    TargetTCPCmpSpeed,      // Velocidade composta de comando TCP: [0]posição(mm/s), [1]orientação(deg/s)
 18    TargetTCPSpeed,         // Velocidade de comando TCP: [0]ao longo do eixo x(mm/s), [1]ao longo do eixo y(mm/s), [2]ao longo do eixo z(mm/s), [3]velocidade angular em torno do X(deg/s), [4]em torno do Y(deg/s), [5]em torno do Z(deg/s)
 19    ActualTCPCmpSpeed,      // Velocidade composta real TCP: [0]posição(mm/s), [1]orientação(deg/s)
 20    ActualTCPSpeed,         // Velocidade real TCP: [0]ao longo do eixo x(mm/s), [1]ao longo do eixo y(mm/s), [2]ao longo do eixo z(mm/s), [3]velocidade angular em torno do X(deg/s), [4]em torno do Y(deg/s), [5]em torno do Z(deg/s)
 21    ActualJointTorque,      // Torques atuais de 6 juntas, unidade N·m
 22    Tool,                   // Número do sistema de coordenadas da ferramenta aplicado
 23    User,                   // Número do sistema de coordenadas da peça aplicado
 24    ClDgtOutputH,           // Saída IO digital da caixa de controle 15-8
 25    ClDgtOutputL,           // Saída IO digital da caixa de controle 7-0
 26    TlDgtOutputL,           // Saída IO digital da ferramenta 7-0, apenas bit0-bit1 válidos
 27    ClDgtInputH,            // Entrada IO digital da caixa de controle 15-8
 28    ClDgtInputL,            // Entrada IO digital da caixa de controle 7-0
 29    TlDgtInputL,            // Entrada IO digital da ferramenta 7-0, apenas bit0-bit1 válidos
 30    ClAnalogInput,          // Entrada analógica da caixa de controle: [0]canal 0, [1]canal 1
 31    TlAnalogInput,          // Entrada analógica da ferramenta
 32    FtSensorRawData,        // Dados brutos do sensor de força/torque: [0]força ao longo do eixo x(N), [1]ao longo do eixo y(N), [2]ao longo do eixo z(N), [3]torque em torno do eixo x(Nm), [4]em torno do eixo y(Nm), [5]em torno do eixo z(Nm)
 33    FtSensorData,           // Dados do sensor de força/torque (processados): [0]força ao longo do eixo x(N), [1]ao longo do eixo y(N), [2]ao longo do eixo z(N), [3]torque em torno do eixo x(Nm), [4]em torno do eixo y(Nm), [5]em torno do eixo z(Nm)
 34    FtSensorActive,         // Estado de ativação do sensor de força/torque, 0-reset, 1-ativo
 35    EmergencyStop,          // Flag de parada de emergência, 0-parada de emergência não pressionada, 1-parada de emergência pressionada
 36    MotionDone,             // Sinal de movimento concluído, 1-concluído, 0-não concluído
 37    GripperMotiondone,      // Sinal de movimento da garra concluído, 1-concluído, 0-não concluído
 38    McQueueLen,             // Comprimento da fila de comandos de movimento
 39    CollisionState,         // Detecção de colisão, 1-colisão, 0-sem colisão
 40    TrajectoryPnum,         // Número do ponto de trajetória
 41    SafetyStop0State,       // Sinal de parada de segurança SI0
 42    SafetyStop1State,       // Sinal de parada de segurança SI1
 43    GripperFaultId,         // Número da garra com falha
 44    GripperFault,           // Falha da garra
 45    GripperActive,          // Estado de ativação da garra
 46    GripperPosition,        // Posição da garra
 47    GripperSpeed,           // Velocidade da garra
 48    GripperCurrent,         // Corrente da garra
 49    GripperTemp,            // Temperatura da garra
 50    GripperVoltage,         // Tensão da garra
 51    AuxState,               // Estado do eixo estendido 485
 52    ExtAxisStatus,          // Estado do eixo estendido UDP (4 eixos)
 53    ExtDIState,             // Entrada DI estendida (8)
 54    ExtDOState,             // Saída DO estendida (8)
 55    ExtAIState,             // Entrada AI estendida (4)
 56    ExtAOState,             // Saída AO estendida (4)
 57    RbtEnableState,         // Estado de habilitação do robô
 58    JointDriverTorque,      // Torque do driver da junta do robô (6 juntas)
 59    JointDriverTemperature, // Temperatura do driver da junta do robô (6 juntas)
 60    RobotTime,              // Tempo do sistema do robô
 61    SoftwareUpgradeState,   // Estado de atualização de software do robô
 62    EndLuaErrCode,          // Estado de execução LUA da extremidade
 63    ClAnalogOutput,         // Saída analógica da caixa de controle (2)
 64    TlAnalogOutput,         // Saída analógica da ferramenta
 65    GripperRotNum,          // Número atual de rotações da garra rotativa
 66    GripperRotSpeed,        // Percentual de velocidade atual da garra rotativa
 67    GripperRotTorque,       // Percentual de torque atual da garra rotativa
 68    WeldingBreakOffState,   // Estado de interrupção da soldagem
 69    TargetJointTorque,      // Torque de comando da junta (6 juntas)
 70    SmartToolState,         // Estado do botão da alça SmartTool
 71    WideVoltageCtrlBoxTemp, // Temperatura da caixa de controle de ampla tensão
 72    WideVoltageCtrlBoxFanCurrent, // Corrente do ventilador da caixa de controle de ampla tensão (mA)
 73    ToolCoord,              // Valores atuais das coordenadas da ferramenta: x,y,z,rx,ry,rz
 74    WobjCoord,              // Valores atuais das coordenadas da peça: x,y,z,rx,ry,rz
 75    ExtoolCoord,            // Valores atuais das coordenadas da ferramenta externa: x,y,z,rx,ry,rz
 76    ExAxisCoord,            // Valores atuais das coordenadas do eixo estendido: x,y,z,rx,ry,rz
 77    Load,                   // Massa da carga
 78    LoadCog,                // Centro de gravidade da carga: x,y,z
 79    LastServoTarget,        // Última posição alvo do ServoJ na fila (6 juntas)
 80    ServoJCmdNum,           // Contagem de comandos servoJ
 81    TargetJointPos,         // Posições de comando de 6 juntas, unidade °
 82    TargetJointVel,         // Velocidades de comando de 6 juntas, unidade °/s
 83    TargetJointAcc,         // Acelerações de comando de 6 juntas, unidade °/s²
 84    TargetJointCurrent,     // Correntes de comando de 6 juntas, unidade A
 85    ActualJointCurrent,     // Correntes atuais de 6 juntas, unidade A
 86    ActualTCPForce,         // Torque da extremidade do robô: x,y,z,rx,ry,rz, unidade Nm
 87    TargetTCPPos,           // Posição de comando TCP do robô: x,y,z,rx,ry,rz, unidade mm
 88    CollisionLevel,         // Nível de colisão do robô (6)
 89    SpeedScaleManual,       // Percentual global de velocidade no modo manual
 90    SpeedScaleAuto,         // Percentual global de velocidade no modo automático
 91    LuaLineNum,             // Número da linha atual do programa lua em execução
 92    AbnomalStop,            // 0-sem anormalidade; 1-com anormalidade
 93    CurrentLuaFileName,     // Nome do programa lua atualmente em execução
 94    ProgramTotalLine,       // Linhas totais do programa lua
 95    SafetyBoxSingal,        // Estado dos botões da caixa de botões do robô (6)
 96    WeldVoltage,            // Tensão de soldagem V
 97    WeldCurrent,            // Corrente de soldagem
 98    WeldTrackVel,           // Velocidade de rastreamento da solda mm/s
 99    TpdException,           // Limite de carregamento de trajetórias TPD excedido, 0-não excedido, 1-excedido
100    AlarmRebootRobot,       // Aviso: 1-ciclo de energia necessário após liberar parada de emergência, 2-anormalidade de comunicação da junta requer ciclo de energia
101    ModbusMasterConnect,    // bit0-7 correspondem ao status de conexão do mestre ModbusTCP 0-7, 0-não conectado, 1-conectado
102    ModbusSlaveConnect,     // Status de conexão do escravo ModbusTCP, 0-não conectado, 1-conectado
103    BtnBoxStopSignal,       // Sinal de parada de emergência da caixa de botões, 0-parada de emergência liberada, 1-parada de emergência pressionada
104    DragAlarm,              // Aviso de arrasto: 0-sem alarme, 1-alarme, 2-anormalidade de feedback de posição sem troca
105    SafetyDoorAlarm,        // Aviso de porta de segurança: 0-fechada, 1-aberta
106    SafetyPlaneAlarm,       // Aviso de parede de segurança: 0-não entrou, 1-entrou
107    MotonAlarm,             // Aviso de movimento
108    InterfaceAlarm,         // Aviso de entrada em zona de interferência
109    UdpCmdState,            // Status da conexão de comunicação UDP da porta 20007
110    WeldReadyState,         // Estado de prontidão da soldadora
111    AlarmCheckEmergStopBtn, // 0-normal; 1-anormalidade de comunicação, verificar botão de parada de emergência
112    TsTmCmdComError,        // 0-normal; 1-falha de comunicação do comando de torque
113    TsTmStateComError,      // 0-normal; 1-falha de comunicação do estado de torque
114    CtrlBoxError,           // Erro da caixa de controle
115    SafetyDataState,        // Estado dos dados de segurança, 0-normal, 1-anormal
116    ForceSensorErrState,    // Tempo limite de conexão do sensor de força, bit0-bit1 correspondem ao ID1-ID2
117    CtrlOpenLuaErrCode,     // Códigos de erro de protocolo de periféricos do controlador (código de erro 500)
118    StrangePosFlag,         // Flag de pose singular: 0-normal, 1-pose singular
119    Alarm,                  // Alarme
120    DriverAlarm,            // Número do eixo com alarme do driver
121    AliveSlaveNumError,     // Erro de contagem de escravos ativos: 0-normal, 1-erro de contagem
122    SlaveComError,          // Erro de escravo: 0-normal, 1-offline, 2-inconsistência de estado, 3-não configurado, 4-erro de configuração, 5-erro de inicialização, 6-erro de inicialização de comunicação de caixa postal
123    CmdPointError,          // Erro de ponto de comando
124    IOError,                // Erro de IO
125    GripperError,           // Erro da garra
126    FileError,              // Erro de arquivo
127    ParaError,              // Erro de parâmetro
128    ExaxisOutLimitError,    // Erro de limite suave excedido no eixo externo
129    DriverComError,         // Falha de comunicação com o driver (6 eixos)
130    DriverError,            // Número do eixo com falha de comunicação do driver
131    OutSoftLimitError,      // Falha de limite suave excedido
132    AxleGenComData,         // Dados de feedback transparente da extremidade do robô
133    SocketConnTimeout,      // Tempo limite de conexão socket, bit0-bit4 correspondem ao socketID 1-4
134    SocketReadTimeout,      // Tempo limite de leitura socket, bit0-bit4 correspondem ao socketID 1-4
135    TsWebStateComErr,       // Falha de comunicação web-torque: 0-normal, 1-falha
136    ExaxisCoordID           // ID do sistema de coordenadas do eixo estendido
137};