2. Descrição das Estruturas de Dados

2.1. Tipo de Dados para Posição das Juntas

1/**
2* @brief Tipo de dados para posição das juntas
3*/
4struct JointPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
7    public double[] jPos;   /* Posições das seis juntas, unidade deg */
8}

2.2. Tipo de Dados para Posição no Espaço Cartesiano

1/**
2* @brief Tipo de dados para posição no espaço cartesiano
3*/
4struct DescTran
5{
6    public double x;    /* Coordenada do eixo X, unidade mm  */
7    public double y;    /* Coordenada do eixo Y, unidade mm  */
8    public double z;    /* Coordenada do eixo Z, unidade mm  */
9}

2.3. Tipo de Dados para Postura em Ângulos de Euler

1/**
2* @brief Tipo de dados para postura em ângulos de Euler
3*/
4struct Rpy
5{
6public double rx;   /* Ângulo de rotação em torno do eixo X fixo, unidade: deg  */
7public double ry;   /* Ângulo de rotação em torno do eixo Y fixo, unidade: deg  */
8public double rz;   /* Ângulo de rotação em torno do eixo Z fixo, unidade: deg  */
9}

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

1/**
2*@brief Tipo de dados para pose no espaço cartesiano
3*/
4struct DescPose
5{
6    public DescTran tran;     /* Posição no espaço cartesiano  */
7    public Rpy rpy;                 /* Postura no espaço cartesiano  */
8}

2.5. Tipo de Dados para Posição dos Eixos Extensores

1/**
2* @brief Tipo de dados para posição dos eixos extensores
3*/
4struct ExaxisPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
7    public double[] ePos;   /* Posições dos quatro eixos extensores, unidade mm */
8}

2.6. Tipo de Dados para o Sensor de Força/Torque

 1/**
 2* @brief Componentes de força e torque do sensor de força
 3*/
 4struct ForceTorque
 5{
 6    public double fx;  /* Componente de força ao longo do eixo X, unidade N  */
 7    public double fy;  /* Componente de força ao longo do eixo Y, unidade N  */
 8    public double fz;  /* Componente de força ao longo do eixo Z, unidade N  */
 9    public double tx;  /* Componente de torque em torno do eixo X, unidade Nm */
10    public double ty;  /* Componente de torque em torno do eixo Y, unidade Nm */
11    public double tz;  /* Componente de torque em torno do eixo Z, unidade Nm */
12}

2.7. Tipo de Dados para Parâmetros da Espiral

 1public struct SpiralParam
 2{
 3    public int circle_num;           /* Número de voltas da espiral  */
 4    public float circle_angle;         /* Ângulo de inclinação da espiral  */
 5    public float rad_init;             /* Raio inicial da espiral, unidade mm  */
 6    public float rad_add;              /* Incremento do raio  */
 7    public float rotaxis_add;          /* Incremento na direção do eixo de rotação  */
 8    public uint rot_direction;  /* Direção de rotação, 0-horário, 1-anti-horário  */
 9    public int velAccMode;      // Modo do parâmetro de velocidade/aceleração: 0-velocidade angular constante; 1-velocidade linear constante
10    public SpiralParam(int num, float angle, float initRad, float addRad, float axisAdd, uint direction, int mode)
11    {
12        circle_num = num;
13        circle_angle = angle;
14        rad_init = initRad;
15        rad_add = addRad;
16        rotaxis_add = axisAdd;
17        rot_direction = direction;
18        velAccMode = mode;
19    }
20}

2.8. Tipo de Dados para Estado do Eixo Extensor

Novo na versão C#SDK-v1.0.6.

 1/**
 2* @brief  Tipo de dados para estado do eixo extensor
 3*/
 4[StructLayout(LayoutKind.Sequential, Pack = 1)]
 5public struct ROBOT_AUX_STATE
 6{
 7    public byte servoId;           // Número de ID do servo driver
 8    public int servoErrCode;       // Código de falha do servo driver
 9    public int servoState;         // Estado do servo driver
10    public double servoPos;        // Posição atual do servo
11    public float servoVel;         // Velocidade atual do servo
12    public float servoTorque;      // Torque atual do servo
13}

2.9. Estado de Interrupção da Soldagem

1[StructLayout(LayoutKind.Sequential, Pack = 1)]
2public struct WELDING_BREAKOFF_STATE
3{
4    public byte breakOffState;  // Estado de interrupção da soldagem
5    public byte weldArcState;   // Estado de interrupção do arco de soldagem
6}

2.10. Tipo de estrutura de feedback do estado do robô

Novo na versão C#SDK-V1.1.4: Web-3.8.3

  1/**
  2* @brief  Tipo de estrutura de feedback do estado do robô
  3*/
  4[StructLayout(LayoutKind.Sequential, Pack = 1)]
  5public class ROBOT_STATE_PKG
  6{
  7    public UInt16 frame_head;           // Cabeçalho do quadro 0x5A5A
  8    public byte frame_cnt;              // Contagem do quadro
  9    public UInt16 data_len;             // Comprimento dos dados 5
 10    public byte program_state;          // Estado de execução do programa, 1-parado; 2-em execução; 3-pausado;
 11    public byte robot_state;            // Estado de movimento do robô, 1-parado; 2-em execução; 3-pausado; 4-arrasto
 12    public int main_code;               // Código de falha principal
 13    public int sub_code;                // Código de falha secundário
 14    public byte robot_mode;             // Modo do robô, 1-modo manual; 0-modo automático;
 15
 16    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 17    public double[] jt_cur_pos;         // Posições atuais das 6 juntas, unidade deg
 18    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 19    public double[] tl_cur_pos;         // Posição atual da ferramenta (TCP)
 20    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 21    public double[] flange_cur_pos;     // Posição atual da flange final
 22    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 23    public double[] actual_qd;          // Velocidades atuais das 6 juntas, unidade deg/s
 24    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 25    public double[] actual_qdd;         // Acelerações atuais das 6 juntas, unidade deg/s^2
 26    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 27    public double[] target_TCP_CmpSpeed;// Velocidade de instrução composta TCP (posição, orientação)
 28    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 29    public double[] target_TCP_Speed;   // Velocidade de instrução TCP
 30    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 31    public double[] actual_TCP_CmpSpeed;// Velocidade real composta TCP
 32    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 33    public double[] actual_TCP_Speed;   // Velocidade real TCP
 34    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 35    public double[] jt_cur_tor;         // Torques atuais das 6 juntas, unidade N·m
 36
 37    public int tool;                    // Número do sistema de coordenada da ferramenta aplicado
 38    public int user;                    // Número do sistema de coordenada da peça aplicado
 39    public byte cl_dgt_output_h;        // Saída IO digital da caixa de controle 15-8
 40    public byte cl_dgt_output_l;        // Saída IO digital da caixa de controle 7-0
 41    public byte tl_dgt_output_l;        // Saída IO digital da ferramenta 7-0, apenas bits 0-1 válidos
 42    public byte cl_dgt_input_h;         // Entrada IO digital da caixa de controle 15-8
 43    public byte cl_dgt_input_l;         // Entrada IO digital da caixa de controle 7-0
 44    public byte tl_dgt_input_l;         // Entrada IO digital da ferramenta 7-0, apenas bits 0-1 válidos
 45
 46    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 47    public UInt16[] cl_analog_input;        // Entradas analógicas da caixa de controle
 48    public UInt16 tl_anglog_input;          // Entrada analógica da ferramenta
 49
 50    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 51    public double[] ft_sensor_raw_data; // Dados brutos do sensor de torque
 52    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 53    public double[] ft_sensor_data;     // Dados do sensor de torque
 54    public byte ft_sensor_active;       // Estado de ativação do sensor de torque, 0-reset, 1-ativado
 55
 56    public byte EmergencyStop;          // Flag de parada de emergência, 0-não pressionado, 1-pressionado
 57    public int motion_done;             // Sinal de movimento concluído, 1-concluído, 0-não concluído
 58    public byte gripper_motiondone;     // Sinal de conclusão do movimento da garra, 1-concluído, 0-não concluído
 59    public int mc_queue_len;            // Comprimento da fila de comandos de movimento
 60    public byte collisionState;         // Detecção de colisão, 1-colisão, 0-sem colisão
 61    public int trajectory_pnum;         // Número do ponto da trajetória
 62    public byte safety_stop0_state;     // Sinal de parada de segurança SI0
 63    public byte safety_stop1_state;     // Sinal de parada de segurança SI1
 64    public byte gripper_fault_id;       // ID da garra com erro
 65    public UInt16 gripper_fault;     /* Falha da garra */
 66    public UInt16 gripper_active;    /* Estado de ativação da garra */
 67    public byte gripper_position;       // Posição da garra
 68    public byte gripper_speed;       /* Velocidade da garra */
 69    public byte gripper_current;     /* Corrente da garra */
 70    public int gripper_temp;            // Temperatura da garra
 71    public int gripper_voltage;         // Tensão da garra
 72
 73    public ROBOT_AUX_STATE auxState;   // Estado do eixo de extensão 485
 74
 75    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 76    public EXT_AXIS_STATUS[] extAxisStatus; // Estado do eixo de extensão UDP
 77
 78    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 79    public UInt16[] extDIState;        // Entradas DI estendidas
 80    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
 81    public UInt16[] extDOState;        // Saídas DO estendidas
 82    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 83    public UInt16[] extAIState;        // Entradas AI estendidas
 84    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
 85    public UInt16[] extAOState;        // Saídas AO estendidas
 86
 87    public int rbtEnableState;          // Estado de habilitação do robô
 88
 89    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 90    public double[] jointDriverTorque;      // Torques do driver da junta do robô
 91    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 92    public double[] jointDriverTemperature; // Temperaturas do driver da junta do robô
 93
 94    public ROBOT_TIME robotTime;        // Tempo do sistema do robô
 95    public int softwareUpgradeState;    // Estado de atualização de software do robô
 96    public UInt16 endLuaErrCode;    // Estado de execução LUA da extremidade
 97
 98    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
 99    public  UInt16[] cl_analog_output;  // Saídas analógicas da caixa de controle
100    public UInt16 tl_analog_output;     // Saída analógica da ferramenta
101
102    public float gripperRotNum;         // Número atual de rotações da garra rotativa
103    public byte gripperRotSpeed;        // Percentual de velocidade atual da garra rotativa
104    public byte gripperRotTorque;       // Percentual de torque atual da garra rotativa
105
106    public WELDING_BREAKOFF_STATE weldingBreakOffState; // Estado de interrupção da soldagem
107
108    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
109    public double[] jt_tgt_tor;         // Torques de instrução da junta
110    public int smartToolState;          // Estado do botão do punho SmartTool
111    public float wideVoltageCtrlBoxTemp; // Temperatura da caixa de controle de ampla tensão
112    public UInt16 wideVoltageCtrlBoxFanVel;   // Corrente do ventilador da caixa de controle de ampla tensão (mA)
113
114    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
115    public double[] toolCoord;          // Valores atuais do sistema de coordenada da ferramenta; x,y,z,rx,ry,rz
116    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
117    public double[] wobjCoord;          // Valores atuais do sistema de coordenada da peça; x,y,z,rx,ry,rz
118    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
119    public double[] extoolCoord;        // Valores atuais do sistema de coordenada da ferramenta externa; x,y,z,rx,ry,rz
120    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
121    public double[] exAxisCoord;        // Valores atuais do sistema de coordenada do eixo de extensão; x,y,z,rx,ry,rz
122
123    public double load;                 // Massa da carga
124    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
125    public double[] loadCog;            // Centro de gravidade da carga
126    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
127    public double[] lastServoTarget;    // Última posição alvo do ServoJ na fila
128    public int servoJCmdNum;            // Contagem de comandos servoJ
129
130    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
131    public double[] targetJointPos;     // Posições de instrução das 6 juntas, unidade °
132    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
133    public double[] targetJointVel;     // Velocidades de instrução das 6 juntas, unidade °/s
134    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
135    public double[] targetJointAcc;     // Acelerações de instrução das 6 juntas, unidade °/s²
136    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
137    public double[] targetJointCurrent; // Correntes de instrução das 6 juntas, unidade A
138    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
139    public double[] actualJointCurrent; // Correntes atuais das 6 juntas, unidade A
140    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
141    public double[] actualTCPForce;     // Torque da extremidade do robô Nm; x,y,z,rx,ry,rz
142    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
143    public double[] targetTCPPos;       // Posição de instrução TCP do robô mm; x,y,z,rx,ry,rz
144    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
145    public byte[] collisionLevel;       // Níveis de colisão do robô
146
147    public double speedScaleManual;     // Percentual de velocidade global no modo manual
148    public double speedScaleAuto;       // Percentual de velocidade global no modo automático
149    public int luaLineNum;              // Número da linha do programa lua atualmente em execução
150    public byte abnomalStop;            // 0-sem anormalidade; 1-com anormalidade
151
152    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
153    public byte[] currentLuaFileName;   // Nome do programa lua atualmente em execução
154    public byte programTotalLine;       // Total de linhas do programa lua
155    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
156    public byte[] safetyBoxSingal;      // Estado dos botões da caixa de botões do robô
157
158    public double weldVoltage;          // Tensão de soldagem V
159    public double weldCurrent;          // Corrente de soldagem
160    public double weldTrackVel;         // Velocidade de rastreamento da solda mm/s
161
162    public byte tpdException;           // Excesso de limite de carregamento de trajetórias TPD, 0-não excedido, 1-excedido
163    public byte alarmRebootRobot;       // Aviso, 1-soltar botão de parada de emergência e reiniciar caixa de controle, 2-anomalia de comunicação da junta reiniciar caixa de controle
164    public byte modbusMasterConnect;    // bits 0-7 correspondem ao estado de conexão do mestre 0-7 ModbusTCP 0-não conectado 1-conectado
165    public byte modbusSlaveConnect;     // Estado de conexão do escravo ModbusTCP 0-não conectado; 1-conectado
166    public byte btnBoxStopSignal;       // Sinal de parada de emergência da botoeira, 0-parada de emergência solta; 1-parada de emergência pressionada
167    public byte dragAlarm;              // Aviso de arrasto, atualmente em modo automático, 0-sem alarme, 1-alarme, 2-anomalia de feedback de posição sem comutação
168    public byte safetyDoorAlarm;        // Aviso de porta de segurança; 0-porta de segurança fechada; 1-porta de segurança aberta
169    public byte safetyPlaneAlarm;       // Aviso de entrada no safety wall; 0-sem entrada no safety wall; 1-entrada no safety wall
170    public byte motonAlarm;             // Aviso de movimento
171    public byte interfaceAlarm;         // Aviso de entrada em área de interferência
172    public int udpCmdState;             // Estado de conexão de comunicação UDP na porta 20007
173    public byte weldReadyState;         // Estado de preparação da soldadora concluído
174    public byte alarmCheckEmergStopBtn; // 0-normal; 1-anomalia de comunicação, verificar se o botão de parada de emergência está solto
175    public byte tsTmCmdComError;        // 0-normal; 1-falha de comunicação do comando de torque
176    public byte tsTmStateComError;      // 0-normal; 1-falha de comunicação do estado de torque
177    public int ctrlBoxError;            // Erro da caixa de controle
178    public byte safetyDataState;        // Flag de estado dos dados de segurança, 0-normal, 1-anômalo
179    public byte forceSensorErrState;    // Falha de timeout de conexão do sensor de força; bits 0-1 correspondem aos IDs do sensor de força ID1-ID2
180
181    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
182    public byte[] ctrlOpenLuaErrCode;   // 4 códigos de erro de protocolo do periférico do controlador (código de erro 500)
183
184    public byte strangePosFlag;         // Flag de posição singular atual; 0-normal; 1-posição singular
185    public byte alarm;                  // Aviso
186    public byte driverAlarm;            // Número do eixo com alarme do driver
187    public byte aliveSlaveNumError;     // Erro no número de escravos ativos, 0: normal; 1: erro no número
188
189    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
190    public byte[] slaveComError;        // Erro do escravo, 0: normal; 1: escravo offline; 2: estado do escravo inconsistente com o valor definido; 3: escravo não configurado; 4: erro de configuração do escravo; 5: erro de inicialização do escravo; 6: erro de inicialização da comunicação da caixa postal do escravo
191
192    public byte cmdPointError;          // Erro no ponto de comando
193    public byte IOError;                // Erro de IO
194    public byte gripperError;           // Erro da garra
195    public byte fileError;              // Erro de arquivo
196    public byte paraError;              // Erro de parâmetro
197    public byte exaxisOutLimitError;    // Erro de limite suave do eixo externo excedido
198
199    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
200    public byte[] driverComError;       // Falha de comunicação com o driver
201    public byte driverError;            // Número do eixo com falha de comunicação do driver
202    public byte outSoftLimitError;      // Falha de limite suave excedido
203
204    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 130)]
205    public byte[] axleGenComData;       // Dados de feedback de transmissão transparente da extremidade do robô
206
207    public byte socketConnTimeout;     // Flag de timeout de conexão do socket
208    public byte socketReadTimeout;     // Flag de timeout de leitura do socket
209    public byte tsWebStateComErr;      // ts_web_state_com_err
210
211    public UInt16 check_sum;         /* Checksum */
212
213    // Construtor: inicializa todos os campos de array
214    public ROBOT_STATE_PKG()
215    {
216        jt_cur_pos = new double[6];
217        tl_cur_pos = new double[6];
218        flange_cur_pos = new double[6];
219        actual_qd = new double[6];
220        actual_qdd = new double[6];
221        target_TCP_CmpSpeed = new double[2];
222        target_TCP_Speed = new double[6];
223        actual_TCP_CmpSpeed = new double[2];
224        actual_TCP_Speed = new double[6];
225        jt_cur_tor = new double[6];
226        cl_analog_input = new ushort[2];
227        ft_sensor_raw_data = new double[6];
228        ft_sensor_data = new double[6];
229        extAxisStatus = new EXT_AXIS_STATUS[4];
230        extDIState = new ushort[8];
231        extDOState = new ushort[8];
232        extAIState = new ushort[4];
233        extAOState = new ushort[4];
234        jointDriverTorque = new double[6];
235        jointDriverTemperature = new double[6];
236        cl_analog_output = new ushort[2];
237        jt_tgt_tor = new double[6];
238        toolCoord = new double[6];
239        wobjCoord = new double[6];
240        extoolCoord = new double[6];
241        exAxisCoord = new double[6];
242        loadCog = new double[3];
243        lastServoTarget = new double[6];
244        targetJointPos = new double[6];
245        targetJointVel = new double[6];
246        targetJointAcc = new double[6];
247        targetJointCurrent = new double[6];
248        actualJointCurrent = new double[6];
249        actualTCPForce = new double[6];
250        targetTCPPos = new double[6];
251        collisionLevel = new byte[6];
252        currentLuaFileName = new byte[256];
253        safetyBoxSingal = new byte[6];
254        ctrlOpenLuaErrCode = new byte[4];
255        slaveComError = new byte[8];
256        driverComError = new byte[6];
257        axleGenComData = new byte[130];
258    }
259}

2.11. Enum de estado configurável do robô

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