2. Descrição das Estruturas de Dados
2.1. Tipo de Estrutura de Feedback de Estado do Robô
1class ROBOT_AUX_STATE(Structure):
2 _pack_ = 1
3 _fields_ = [
4 ("servoId", c_uint8), # Número de ID do driver servo
5 ("servoErrCode", c_int), # Código de falha do driver servo
6 ("servoState", c_int), # Estado do driver servo
7 ("servoPos", c_double), # Posição atual do servo
8 ("servoVel", c_float), # Velocidade atual do servo
9 ("servoTorque", c_float), # Torque atual do servo
10 ]
11
12class EXT_AXIS_STATUS(Structure):
13 _pack_ = 1
14 _fields_ = [
15 ("pos", c_double), # Posição do eixo de extensão
16 ("vel", c_double), # Velocidade do eixo de extensão
17 ("errorCode", c_int), # Código de falha do eixo de extensão
18 ("ready", c_uint8), # Servo pronto
19 ("inPos", c_uint8), # Servo na posição
20 ("alarm", c_uint8), # Alarme do servo
21 ("flerr", c_uint8), # Erro de seguimento
22 ("nlimit", c_uint8), # Limite negativo atingido
23 ("pLimit", c_uint8), # Limite positivo atingido
24 ("mdbsOffLine", c_uint8), # Barramento 485 do driver offline
25 ("mdbsTimeout", c_uint8), # Timeout de comunicação 485 entre placa de controle e caixa de controle
26 ("homingStatus", c_uint8), # Status de homing do eixo de extensão
27 ]
28
29class WELDING_BREAKOFF_STATE(Structure):
30 _pack_ = 1
31 _fields_ = [
32 ("breakOffState", c_uint8), # Estado de interrupção da soldagem
33 ("weldArcState", c_uint8), # Estado de interrupção do arco de soldagem
34 ]
35
36# ==================== Estrutura Completa de Estado do Robô ====================
37class RobotStatePkg(Structure):
38 """
39 Pacote de dados de feedback de estado do robô
40 """
41 _pack_ = 1
42 _fields_ = [
43 # Informações do cabeçalho do quadro
44 ("frame_head", c_uint16), # Cabeçalho do quadro, acordado como 0x5A5A
45 ("frame_cnt", c_uint8), # Contagem de quadros, contagem cíclica 0-255
46 ("data_len", c_uint16), # Comprimento do conteúdo dos dados
47 ("program_state", c_uint8), # Estado de execução do programa, 1-parado; 2-em execução; 3-pausado
48 ("robot_state", c_uint8), # Estado de movimento do robô, 1-parado; 2-em movimento; 3-pausado; 4-arrastando
49 ("main_code", c_int), # Código de falha principal
50 ("sub_code", c_int), # Código de falha secundário
51 ("robot_mode", c_uint8), # Modo do robô, 1-manual; 0-automático
52
53 # Posições e velocidades das juntas
54 ("jt_cur_pos", c_double * 6), # Posições atuais das juntas de 6 eixos, unidade deg
55 ("tl_cur_pos", c_double * 6), # Posição atual da ferramenta [x,y,z,rx,ry,rz]
56 ("flange_cur_pos", c_double * 6), # Posição atual da flange final [x,y,z,rx,ry,rz]
57 ("actual_qd", c_double * 6), # Velocidades atuais de 6 juntas, unidade deg/s
58 ("actual_qdd", c_double * 6), # Acelerações atuais de 6 juntas, unidade deg/s^2
59 ("target_TCP_CmpSpeed", c_double * 2), # Velocidade de comando composta TCP [posição mm/s, orientação deg/s]
60 ("target_TCP_Speed", c_double * 6), # Velocidade de comando TCP [x,y,z,rx,ry,rz]
61 ("actual_TCP_CmpSpeed", c_double * 2), # Velocidade efetiva composta TCP [posição mm/s, orientação deg/s]
62 ("actual_TCP_Speed", c_double * 6), # Velocidade efetiva TCP [x,y,z,rx,ry,rz]
63 ("jt_cur_tor", c_double * 6), # Torques atuais de 6 eixos, unidade N·m
64
65 # Sistemas de coordenadas da ferramenta e peça
66 ("tool", c_int), # Número do sistema de coordenadas da ferramenta aplicado
67 ("user", c_int), # Número do sistema de coordenadas da peça aplicado
68
69 # I/O digital
70 ("cl_dgt_output_h", c_uint8), # Saída IO digital da caixa de controle 15-8
71 ("cl_dgt_output_l", c_uint8), # Saída IO digital da caixa de controle 7-0
72 ("tl_dgt_output_l", c_uint8), # Saída IO digital da ferramenta 7-0, apenas bit0-bit1 válidos
73 ("cl_dgt_input_h", c_uint8), # Entrada IO digital da caixa de controle 15-8
74 ("cl_dgt_input_l", c_uint8), # Entrada IO digital da caixa de controle 7-0
75 ("tl_dgt_input_l", c_uint8), # Entrada IO digital da ferramenta 7-0, apenas bit0-bit1 válidos
76
77 # I/O analógico
78 ("cl_analog_input", c_uint16 * 2), # Entrada analógica da caixa de controle [0],[1]
79 ("tl_anglog_input", c_uint16), # Entrada analógica da ferramenta
80
81 # Sensor de força/torque
82 ("ft_sensor_raw_data", c_double * 6), # Dados brutos do sensor de força/torque
83 ("ft_sensor_data", c_double * 6), # Dados do sensor de força/torque
84 ("ft_sensor_active", c_uint8), # Estado de ativação do sensor de força/torque
85
86 # Sinais de estado
87 ("EmergencyStop", c_uint8), # Flag de parada de emergência, 0-não pressionada, 1-pressionada
88 ("motion_done", c_int), # Sinal de movimento concluído, 1-concluído, 0-não concluído
89 ("gripper_motiondone", c_uint8), # Sinal de movimento da garra concluído, 1-concluído, 0-não concluído
90 ("mc_queue_len", c_int), # Comprimento da fila de comandos de movimento
91 ("collisionState", c_uint8), # Detecção de colisão, 1-colisão, 0-sem colisão
92 ("trajectory_pnum", c_int), # Número do ponto de trajetória
93 ("safety_stop0_state", c_uint8), # Sinal de parada de segurança SI0
94 ("safety_stop1_state", c_uint8), # Sinal de parada de segurança SI1
95
96 # Informações da garra
97 ("gripper_fault_id", c_uint8), # Número da garra com falha
98 ("gripper_fault", c_uint16), # Falha da garra
99 ("gripper_active", c_uint16), # Estado de ativação da garra
100 ("gripper_position", c_uint8), # Posição da garra
101 ("gripper_speed", c_int8), # Velocidade da garra
102 ("gripper_current", c_int8), # Corrente da garra
103 ("gripper_temp", c_int), # Temperatura da garra
104 ("gripper_voltage", c_int), # Tensão da garra
105
106 # Estado dos eixos de extensão
107 ("aux_axis_state", ROBOT_AUX_STATE * 25), # Estado dos eixos de extensão 485 (25)
108 ("extAxisStatus", EXT_AXIS_STATUS * 4), # Estado dos eixos de extensão UDP (4)
109
110 # Estado de I/O estendido
111 ("extDIState", c_uint16 * 8), # Entrada DI estendida
112 ("extDOState", c_uint16 * 8), # Saída DO estendida
113 ("extAIState", c_uint16 * 4), # Entrada AI estendida
114 ("extAOState", c_uint16 * 4), # Saída AO estendida
115
116 # Estado do robô e das juntas
117 ("rbtEnableState", c_int), # Estado de habilitação do robô
118 ("jointDriverTorque", c_double * 6), # Torque do driver das juntas do robô
119 ("jointDriverTemperature", c_double * 6), # Temperatura do driver das juntas do robô
120
121 # Tempo do robô
122 #("robotTime", c_int * 7), # Tempo do sistema do robô [ano,mês,dia,hora,minuto,segundo,milissegundo]
123 ("year", ctypes.c_uint16), # Ano
124 ("mouth", ctypes.c_uint8), # Mês
125 ("day", ctypes.c_uint8), # Dia
126 ("hour", ctypes.c_uint8), # Hora
127 ("minute", ctypes.c_uint8), # Minuto
128 ("second", ctypes.c_uint8), # Segundo
129 ("millisecond", ctypes.c_uint16), # Milissegundo
130
131 ("softwareUpgradeState", c_int), # Estado de atualização do software do robô
132 ("endLuaErrCode", c_uint16), # Estado de execução Lua da extremidade
133
134 # Saída analógica
135 ("cl_analog_output", c_uint16 * 2), # Saída analógica da caixa de controle [0],[1]
136 ("tl_analog_output", c_uint16), # Saída analógica da ferramenta
137
138 # Garra rotativa
139 ("gripperRotNum", c_float), # Número de rotações atual da garra rotativa
140 ("gripperRotSpeed", c_uint8), # Porcentagem de velocidade de rotação atual da garra rotativa
141 ("gripperRotTorque", c_uint8), # Porcentagem de torque de rotação atual da garra rotativa
142
143 # Estado de interrupção da soldagem - usando estrutura
144 ("weldingBreakOffState", WELDING_BREAKOFF_STATE), # Estado de interrupção da soldagem
145
146 # Torque da junta alvo
147 ("jt_tgt_tor", c_double * 6), # Torque de comando da junta
148
149 ("smartToolState", c_int), # Estado do botão da manopla SmartTool
150 ("wideVoltageCtrlBoxTemp", c_float), # Temperatura da caixa de controle de ampla tensão
151 ("wideVoltageCtrlBoxFanCurrent", c_uint16), # Corrente do ventilador da caixa de controle de ampla tensão (mA)
152
153 # Valores do sistema de coordenadas
154 ("toolCoord", c_double * 6), # Valores atuais do sistema de coordenadas da ferramenta; x,y,z,rx,ry,rz
155 ("wobjCoord", c_double * 6), # Valores atuais do sistema de coordenadas da peça; x,y,z,rx,ry,rz
156 ("extoolCoord", c_double * 6), # Valores atuais do sistema de coordenadas da ferramenta externa; x,y,z,rx,ry,rz
157 ("exAxisCoord", c_double * 6), # Valores atuais do sistema de coordenadas dos eixos de extensão; x,y,z,rx,ry,rz
158
159 # Carga
160 ("load", c_double), # Massa da carga
161 ("loadCog", c_double * 3), # Centro de gravidade da carga
162
163 # Comandos servo
164 ("lastServoTarget", c_double * 6), # Última posição alvo ServoJ na fila
165 ("servoJCmdNum", c_int), # Contagem de comandos ServoJ
166
167 # Dados da junta alvo
168 ("targetJointPos", c_double * 6), # Posição de comando de 6 juntas, unidade °
169 ("targetJointVel", c_double * 6), # Velocidade de comando de 6 juntas, unidade °/s
170 ("targetJointAcc", c_double * 6), # Aceleração de comando de 6 juntas, unidade °/s2
171 ("targetJointCurrent", c_double * 6), # Corrente de comando de 6 juntas, unidade A
172 ("actualJointCurrent", c_double * 6), # Corrente atual de 6 juntas, unidade A
173 ("actualTCPForce", c_double * 6), # Torque do end-effector do robô Nm; x,y,z,rx,ry,rz
174 ("targetTCPPos", c_double * 6), # Posição de comando TCP do robô mm; x,y,z,rx,ry,rz
175
176 ("collisionLevel", c_uint8 * 6), # Nível de colisão do robô
177 ("speedScaleManual", c_double), # Porcentagem de velocidade global no modo manual
178 ("speedScaleAuto", c_double), # Porcentagem de velocidade global no modo automático
179 ("luaLineNum", c_int), # Número da linha atual do programa Lua em execução
180 ("abnomalStop", c_uint8), # 0-sem anormalidade; 1-anormalidade presente
181 ("currentLuaFileName", c_uint8 * 256), # Nome do programa Lua atualmente em execução
182 ("programTotalLine", c_uint8), # Número total de linhas do programa Lua
183 ("safetyBoxSingal", c_uint8 * 6), # Estado dos botões da caixa de botões do robô
184
185 # Dados de soldagem
186 ("weldVoltage", c_double), # Tensão de soldagem V
187 ("weldCurrent", c_double), # Corrente de soldagem
188 ("weldTrackVel", c_double), # Velocidade de rastreamento da junta de solda mm/s
189
190 ("tpdException", c_uint8), # Contagem de carregamento de trajetória TPD excedida, 0-não excedida, 1-excedida
191 ("alarmRebootRobot", c_uint8), # Aviso, 1-solte o botão de parada de emergência e reinicie a caixa de controle, 2-anomalia de comunicação da junta, reinicie a caixa de controle
192 ("modbusMasterConnect", c_uint8), # bit0-7 correspondem ao estado de conexão dos mestres ModbusTCP 0-7
193 ("modbusSlaveConnect", c_uint8), # Estado de conexão escrava ModbusTCP
194 ("btnBoxStopSignal", c_uint8), # Sinal de parada de emergência da caixa de botões
195 ("dragAlarm", c_uint8), # Aviso de arrasto
196 ("safetyDoorAlarm", c_uint8), # Aviso de porta de segurança
197 ("safetyPlaneAlarm", c_uint8), # Aviso de entrada na parede de segurança
198 ("motonAlarm", c_uint8), # Aviso de movimento
199 ("interfaceAlarm", c_uint8), # Aviso de entrada na área de interferência
200 ("udpCmdState", c_int), # Estado de conexão de comunicação UDP da porta 20007
201 ("weldReadyState", c_uint8), # Estado de prontidão da máquina de solda
202 ("alarmCheckEmergStopBtn", c_uint8), # 0-normal; 1-anomalia de comunicação, verifique se o botão de parada de emergência está liberado
203 ("tsTmCmdComError", c_uint8), # 0-normal; 1-falha de comunicação do comando de torque
204 ("tsTmStateComError", c_uint8), # 0-normal; 1-falha de comunicação do estado de torque
205 ("ctrlBoxError", c_int), # Erro da caixa de controle
206 ("safetyDataState", c_uint8), # Flag de estado dos dados de segurança
207 ("forceSensorErrState", c_uint8), # Falha de tempo limite de conexão do sensor de força
208 ("ctrlOpenLuaErrCode", c_uint8 * 4), # 4 códigos de erro do protocolo aberto do controlador periférico
209 ("strangePosFlag", c_uint8), # Flag de postura singular atual
210 ("alarm", c_uint8), # Aviso
211 ("driverAlarm", c_uint8), # Número do eixo com alarme do driver
212 ("aliveSlaveNumError", c_uint8), # Erro de contagem de escravos ativos
213 ("slaveComError", c_uint8 * 8), # Estado de erro do escravo
214 ("cmdPointError", c_uint8), # Erro de ponto de comando
215 ("IOError", c_uint8), # Erro de IO
216 ("gripperError", c_uint8), # Erro da garra
217 ("fileError", c_uint8), # Erro de arquivo
218 ("paraError", c_uint8), # Erro de parâmetro
219 ("exaxisOutLimitError", c_uint8), # Erro de limite suave do eixo externo excedido
220 ("driverComError", c_uint8 * 6), # Falha de comunicação do driver
221 ("driverError", c_uint8), # Número do eixo com falha de comunicação do driver
222 ("outSoftLimitError", c_uint8), # Falha de limite suave excedido
223 ("axleGenComData", c_uint8 * 130), # Dados de comunicação geral de eixos não periódicos
224 ("socketConnTimeout", c_uint8), # Timeout de conexão do socket
225 ("socketReadTimeout", c_uint8), # Timeout de leitura do socket
226 ("tsWebStateComErr", c_uint8), # Erro de comunicação de estado TS_WEB
227 ("check_sum", c_uint16) # Checksum
228 ]
2.2. Pacote de Dados de Retroalimentação de Estado do Controlador
Novo na versão python: SDK-v2.1.7
Variável |
Significado |
|---|---|
program_state |
Estado de execução do programa, 1-parado; 2-em execução; 3-pausado |
robot_state |
Estado de movimento do robô, 1-parado; 2-em movimento; 3-pausado; 4-arrasto |
main_code |
Código de falha principal |
sub_code |
Código de falha secundário |
robot_mode |
Modo do robô, 0-modo automático; 1-modo manual |
jt_cur_pos[i] |
Posições atuais das juntas, em graus, i:0~5 |
tl_cur_pos[i] |
Pose atual da ferramenta, em graus e mm, i:0~5 |
flange_cur_pos[i] |
Pose atual do flange da extremidade, em graus e mm, i:0~5 |
actual_qd[i] |
Velocidades atuais das juntas do robô, em graus/s, i:0~5 |
actual_qdd[i] |
Acelerações atuais das juntas do robô, em graus/s², i:0~5 |
target_TCP_CmpSpeed[i] |
Velocidade de comando sintética do TCP do robô, em mm/s e graus/s, i:0~1 |
target_TCP_Speed[i] |
Velocidade de comando do TCP do robô, em mm/s e graus/s, i:0~5 |
actual_TCP_CmpSpeed[i] |
Velocidade real sintética do TCP do robô, em mm/s e graus/s, i:0~1 |
actual_TCP_Speed[i] |
Velocidade real do TCP do robô, em mm/s e graus/s, i:0~5 |
jt_cur_tor[i] |
Torques atuais, em N·m, i:0~5 |
tool |
Número do sistema de coordenadas da ferramenta aplicado |
user |
Número do sistema de coordenadas da peça aplicado |
cl_dgt_output_h |
Saída digital da caixa de controle 15-8 |
cl_dgt_output_l |
Saída digital da caixa de controle 7-0 |
tl_dgt_output_l |
Saída digital da ferramenta 7-0, apenas bits 0-1 são válidos |
dgt_input_h |
Entrada digital da caixa de controle 15-8 |
cl_dgt_input_l |
Entrada digital da caixa de controle 7-0 |
tl_dgt_input_l |
Entrada digital da ferramenta 7-0, apenas bits 0-1 são válidos |
cl_analog_input[i] |
Entrada analógica da caixa de controle, i:0~2 |
tl_anglog_input |
Entrada analógica da ferramenta |
ft_sensor_raw_data |
Dados brutos do sensor de torque, em N e Nm, i:0~5 |
ft_sensor_data |
Dados do sensor de torque, em N e Nm, i:0~5 |
ft_sensor_active |
Estado de ativação do sensor de torque, 0-reset, 1-ativado |
EmergencyStop |
Sinalizador de parada de emergência, 0-parada de emergência não pressionada, 1-parada de emergência pressionada |
motion_done |
Sinal de movimento concluído, 1-concluído, 0-não concluído |
gripper_motiondone |
Sinal de movimento concluído da garra, 1-concluído, 0-não concluído |
mc_queue_len |
Comprimento da fila de instruções de movimento |
collisionState |
Detecção de colisão, 1-colisão, 0-sem colisão |
trajectory_pnum |
Número do ponto de trajetória |
safety_stop0_state |
Sinal de parada de segurança SI0 |
safety_stop1_state |
Sinal de parada de segurança SI1 |
gripper_fault_id |
Número da garra com falha |
gripper_fault |
Falha da garra |
gripper_active |
Estado de ativação da garra, 0-não ativada, 1-ativada |
gripper_position |
Posição da garra (percentagem) |
gripper_speed |
Velocidade da garra (percentagem) |
gripper_current |
Corrente da garra (percentagem) |
gripper_tmp |
Temperatura da garra, em °C |
gripper_voltage |
Tensão da garra, em V |
auxState.servoId |
Eixo estendido 485, número de ID do servo driver, i:0~3 |
auxState.servoErrCode |
Eixo estendido 485, código de falha do servo driver, i:0~3 |
auxState.servoState |
Eixo estendido 485, estado do servo driver, i:0~3 |
auxState.servoPos |
Eixo estendido 485, posição atual do servo, i:0~3 |
auxState.servoVel |
Eixo estendido 485, velocidade atual do servo, i:0~3 |
auxState.servoTorque |
Eixo estendido 485, torque atual do servo, i:0~3 |
extAxisStatus[i].pos |
Eixo estendido UDP, posição, i:0~3 |
extAxisStatus[i].vel |
Eixo estendido UDP, velocidade, i:0~3 |
extAxisStatus[i].errorCode |
Eixo estendido UDP, código de falha, i:0~3 |
extAxisStatus[i].ready |
Eixo estendido UDP, servo pronto, i:0~3 |
extAxisStatus[i].inPos |
Eixo estendido UDP, servo no lugar, i:0~3 |
extAxisStatus[i].alarm |
Eixo estendido UDP, alarme do servo, i:0~3 |
extAxisStatus[i].flerr |
Eixo estendido UDP, erro de seguimento, i:0~3 |
extAxisStatus[i].nlimit |
Eixo estendido UDP, limite negativo atingido, i:0~3 |
extAxisStatus[i].pLimit |
Eixo estendido UDP, limite positivo atingido, i:0~3 |
extAxisStatus[i].mdbsOffLine |
Eixo estendido UDP, driver offline no barramento 485 |
extAxisStatus[i].mdbsTimeout |
Eixo estendido UDP, tempo limite de comunicação 485 entre placa de controle e caixa de controle |
extAxisStatus[i].homingStatus |
Eixo estendido UDP, estado de retorno à origem |
extDIState |
Estado de entrada digital estendida |
extDOState |
Estado de saída digital estendida |
extAIState |
Estado de entrada analógica estendida |
extAOState |
Estado de saída analógica estendida |
rbtEnableState |
Estado de habilitação do robô |
jointDriverTorque |
Torque atual do driver articular |
jointDriverTemperature |
Temperatura atual do driver articular |
year |
Ano |
mouth |
Mês |
day |
Dia |
hour |
Hora |
minute |
Minuto |
second |
Segundo |
millisecond |
Milissegundo |
softwareUpgradeState |
Estado de atualização de software do robô |
endLuaErrCode |
Estado de execução do LUA da extremidade |
cl_analog_output[i] |
Saída analógica da caixa de controle, i:0~1 |
tl_analog_output |
Saída analógica da ferramenta |
gripperRotNum |
Número atual de rotações da garra rotativa |
gripperRotSpeed |
Percentagem da velocidade atual de rotação da garra rotativa |
gripperRotTorque |
Percentagem do torque atual de rotação da garra rotativa |
weldingBreakOffState |
Estado de interrupção da soldagem |
jt_tgt_tor |
Torque de comando das juntas |
smartToolState |
Estado do botão do SmartTool |
wideVoltageCtrlBoxTemp |
Temperatura da caixa de controle de larga tensão |
wideVoltageCtrlBoxFanCurrent |
Corrente da ventoinha da caixa de controle de larga tensão (mA) |
toolCoord[i] |
Sistema de coordenadas da ferramenta, i:0~5 |
wobjCoord[i] |
Sistema de coordenadas da peça, i:0~5 |
extoolCoord[i] |
Sistema de coordenadas da ferramenta externa, i:0~5 |
exAxisCoord[i] |
Sistema de coordenadas do eixo estendido, i:0~5 |
load |
Massa da carga |
loadCog[i] |
Centro de massa da carga, i:0~2 |
lastServoTarget[i] |
Última posição alvo do ServoJ na fila, i:0~5 |
servoJCmdNum |
Contagem de instruções ServoJ |
2.3. Estado do Controlador Servo
Novo na versão python: SDK-v2.1.3
Variável |
Significado |
|---|---|
servoId |
Número de ID do servo driver |
servoErrCode |
Código de falha do servo driver |
servoState |
Estado do servo driver |
servoPos |
Posição atual do servo |
servoVel |
Velocidade atual do servo |
servoTorque |
Torque atual do servo |
2.4. Estado do Eixo Estendido
Novo na versão python: SDK-v2.1.3
Variável |
Significado |
|---|---|
pos |
Posição do eixo estendido |
vel |
Velocidade do eixo estendido |
errorCode |
Código de falha do eixo estendido |
ready |
Servo pronto |
inPos |
Servo no lugar |
alarm |
Alarme do servo |
flerr |
Erro de seguimento |
nlimit |
Limite negativo atingido |
pLimit |
Limite positivo atingido |
mdbsOffLine |
Driver offline no barramento 485 |
mdbsTimeout |
Tempo limite de comunicação 485 entre placa de controle e caixa de controle |
homingStatus |
Estado de retorno à origem do eixo estendido |
2.5. Estado de Interrupção da Soldagem
Novo na versão python: SDK-v2.1.3
Variável |
Significado |
|---|---|
breakOffState |
Estado de interrupção da soldagem |
weldArcState |
Estado de interrupção do arco de soldagem |
2.6. Exemplo de Código
1from fairino import Robot
2# Estabelece conexão com o controlador do robô, retorna um objeto robô se a conexão for bem-sucedida
3robot = Robot.RPC('192.168.58.2')
4print("program_state:", robot.robot_state_pkg.program_state)
5print("robot_state:", robot.robot_state_pkg.robot_state)
6print("main_code:", robot.robot_state_pkg.main_code)
7print("sub_code:", robot.robot_state_pkg.sub_code)
8print("robot_mode:", robot.robot_state_pkg.robot_mode)
9print("jt_cur_pos0:", robot.robot_state_pkg.jt_cur_pos[0])
10print("jt_cur_pos1:", robot.robot_state_pkg.jt_cur_pos[1])
11print("jt_cur_pos2:", robot.robot_state_pkg.jt_cur_pos[2])
12print("jt_cur_pos3:", robot.robot_state_pkg.jt_cur_pos[3])
13print("jt_cur_pos4:", robot.robot_state_pkg.jt_cur_pos[4])
14print("jt_cur_pos5:", robot.robot_state_pkg.jt_cur_pos[5])
15print("tl_cur_pos0:", robot.robot_state_pkg.tl_cur_pos[0])
16print("tl_cur_pos1:", robot.robot_state_pkg.tl_cur_pos[1])
17print("tl_cur_pos2:", robot.robot_state_pkg.tl_cur_pos[2])
18print("tl_cur_pos3:", robot.robot_state_pkg.tl_cur_pos[3])
19print("tl_cur_pos4:", robot.robot_state_pkg.tl_cur_pos[4])
20print("tl_cur_pos5:", robot.robot_state_pkg.tl_cur_pos[5])
21print("flange_cur_pos0:", robot.robot_state_pkg.flange_cur_pos[0])
22print("flange_cur_pos1:", robot.robot_state_pkg.flange_cur_pos[1])
23print("flange_cur_pos2:", robot.robot_state_pkg.flange_cur_pos[2])
24print("flange_cur_pos3:", robot.robot_state_pkg.flange_cur_pos[3])
25print("flange_cur_pos4:", robot.robot_state_pkg.flange_cur_pos[4])
26print("flange_cur_pos5:", robot.robot_state_pkg.flange_cur_pos[5])
27print("actual_qd0:", robot.robot_state_pkg.actual_qd[0])
28print("actual_qd1:", robot.robot_state_pkg.actual_qd[1])
29print("actual_qd2:", robot.robot_state_pkg.actual_qd[2])
30print("actual_qd3:", robot.robot_state_pkg.actual_qd[3])
31print("actual_qd4:", robot.robot_state_pkg.actual_qd[4])
32print("actual_qd5:", robot.robot_state_pkg.actual_qd[5])
33print("actual_qdd0:", robot.robot_state_pkg.actual_qdd[0])
34print("actual_qdd1:", robot.robot_state_pkg.actual_qdd[1])
35print("actual_qdd2:", robot.robot_state_pkg.actual_qdd[2])
36print("actual_qdd3:", robot.robot_state_pkg.actual_qdd[3])
37print("actual_qdd4:", robot.robot_state_pkg.actual_qdd[4])
38print("actual_qdd5:", robot.robot_state_pkg.actual_qdd[5])
39print("target_TCP_CmpSpeed0:", robot.robot_state_pkg.target_TCP_CmpSpeed[0])
40print("target_TCP_CmpSpeed1:", robot.robot_state_pkg.target_TCP_CmpSpeed[1])
41print("target_TCP_Speed0:", robot.robot_state_pkg.target_TCP_Speed[0])
42print("target_TCP_Speed1:", robot.robot_state_pkg.target_TCP_Speed[1])
43print("target_TCP_Speed2:", robot.robot_state_pkg.target_TCP_Speed[2])
44print("target_TCP_Speed3:", robot.robot_state_pkg.target_TCP_Speed[3])
45print("target_TCP_Speed4:", robot.robot_state_pkg.target_TCP_Speed[4])
46print("target_TCP_Speed5:", robot.robot_state_pkg.target_TCP_Speed[5])
47print("actual_TCP_CmpSpeed0:", robot.robot_state_pkg.actual_TCP_CmpSpeed[0])
48print("actual_TCP_CmpSpeed1:", robot.robot_state_pkg.actual_TCP_CmpSpeed[1])
49print("actual_TCP_Speed0:", robot.robot_state_pkg.actual_TCP_Speed[0])
50print("actual_TCP_Speed1:", robot.robot_state_pkg.actual_TCP_Speed[1])
51print("actual_TCP_Speed2:", robot.robot_state_pkg.actual_TCP_Speed[2])
52print("actual_TCP_Speed3:", robot.robot_state_pkg.actual_TCP_Speed[3])
53print("actual_TCP_Speed4:", robot.robot_state_pkg.actual_TCP_Speed[4])
54print("actual_TCP_Speed5:", robot.robot_state_pkg.actual_TCP_Speed[5])
55print("jt_cur_tor0:", robot.robot_state_pkg.jt_cur_tor[0])
56print("jt_cur_tor1:", robot.robot_state_pkg.jt_cur_tor[1])
57print("jt_cur_tor2:", robot.robot_state_pkg.jt_cur_tor[2])
58print("jt_cur_tor3:", robot.robot_state_pkg.jt_cur_tor[3])
59print("jt_cur_tor4:", robot.robot_state_pkg.jt_cur_tor[4])
60print("jt_cur_tor5:", robot.robot_state_pkg.jt_cur_tor[5])
61print("tool:", robot.robot_state_pkg.tool)
62print("user:", robot.robot_state_pkg.user)
63print("cl_dgt_output_h:", robot.robot_state_pkg.cl_dgt_output_h)
64print("cl_dgt_output_l:", robot.robot_state_pkg.cl_dgt_output_l)
65print("tl_dgt_output_l:", robot.robot_state_pkg.tl_dgt_output_l)
66print("cl_dgt_input_h:", robot.robot_state_pkg.cl_dgt_input_h)
67print("cl_dgt_input_l:", robot.robot_state_pkg.cl_dgt_input_l)
68print("tl_dgt_input_l:", robot.robot_state_pkg.tl_dgt_input_l)
69print("cl_analog_input0:", robot.robot_state_pkg.cl_analog_input[0])
70print("cl_analog_input1:", robot.robot_state_pkg.cl_analog_input[1])
71print("tl_anglog_input:", robot.robot_state_pkg.tl_anglog_input)
72print("ft_sensor_raw_data0:", robot.robot_state_pkg.ft_sensor_raw_data[0])
73print("ft_sensor_raw_data1:", robot.robot_state_pkg.ft_sensor_raw_data[1])
74print("ft_sensor_raw_data2:", robot.robot_state_pkg.ft_sensor_raw_data[2])
75print("ft_sensor_raw_data3:", robot.robot_state_pkg.ft_sensor_raw_data[3])
76print("ft_sensor_raw_data4:", robot.robot_state_pkg.ft_sensor_raw_data[4])
77print("ft_sensor_raw_data5:", robot.robot_state_pkg.ft_sensor_raw_data[5])
78print("ft_sensor_data0:", robot.robot_state_pkg.ft_sensor_data[0])
79print("ft_sensor_data1:", robot.robot_state_pkg.ft_sensor_data[1])
80print("ft_sensor_data2:", robot.robot_state_pkg.ft_sensor_data[2])
81print("ft_sensor_data3:", robot.robot_state_pkg.ft_sensor_data[3])
82print("ft_sensor_data4:", robot.robot_state_pkg.ft_sensor_data[4])
83print("ft_sensor_data5:", robot.robot_state_pkg.ft_sensor_data[5])
84print("ft_sensor_active:", robot.robot_state_pkg.ft_sensor_active)
85print("EmergencyStop:", robot.robot_state_pkg.EmergencyStop)
86print("motion_done:", robot.robot_state_pkg.motion_done)
87print("gripper_motiondone:", robot.robot_state_pkg.gripper_motiondone)
88print("mc_queue_len:", robot.robot_state_pkg.mc_queue_len)
89print("collisionState:", robot.robot_state_pkg.collisionState)
90print("trajectory_pnum:", robot.robot_state_pkg.trajectory_pnum)
91print("safety_stop0_state:", robot.robot_state_pkg.safety_stop0_state)
92print("safety_stop1_state:", robot.robot_state_pkg.safety_stop1_state)
93print("gripper_fault_id:", robot.robot_state_pkg.gripper_fault_id)
94print("gripper_fault:", robot.robot_state_pkg.gripper_fault)
95print("gripper_active:", robot.robot_state_pkg.gripper_active)
96print("gripper_position:", robot.robot_state_pkg.gripper_position)
97print("gripper_speed:", robot.robot_state_pkg.gripper_speed)
98print("gripper_current:", robot.robot_state_pkg.gripper_current)
99print("gripper_tmp:", robot.robot_state_pkg.gripper_tmp)
100print("gripper_voltage:", robot.robot_state_pkg.gripper_voltage)
101print("auxState.servoId:", robot.robot_state_pkg.auxState.servoId)
102print("auxState.servoErrCode:", robot.robot_state_pkg.auxState.servoErrCode)
103print("auxState.servoState:", robot.robot_state_pkg.auxState.servoState)
104print("auxState.servoPos:", robot.robot_state_pkg.auxState.servoPos)
105print("auxState.servoVel:", robot.robot_state_pkg.auxState.servoVel)
106print("auxState.servoTorque:", robot.robot_state_pkg.auxState.servoTorque)
107for i in range(4):
108 print("extAxisStatus.pos:", i, robot.robot_state_pkg.extAxisStatus[i].pos)
109 print("extAxisStatus.vel:", i, robot.robot_state_pkg.extAxisStatus[i].vel)
110 print("extAxisStatus.errorCode:", i, robot.robot_state_pkg.extAxisStatus[i].errorCode)
111 print("extAxisStatus.ready:", i, robot.robot_state_pkg.extAxisStatus[i].ready)
112 print("extAxisStatus.inPos:", i, robot.robot_state_pkg.extAxisStatus[i].inPos)
113 print("extAxisStatus.alarm:", i, robot.robot_state_pkg.extAxisStatus[i].alarm)
114 print("extAxisStatus.flerr:", i, robot.robot_state_pkg.extAxisStatus[i].flerr)
115 print("extAxisStatus.nlimit:", i, robot.robot_state_pkg.extAxisStatus[i].nlimit)
116 print("extAxisStatus.pLimit:", i, robot.robot_state_pkg.extAxisStatus[i].pLimit)
117 print("extAxisStatus.mdbsOffLine:", i, robot.robot_state_pkg.extAxisStatus[i].mdbsOffLine)
118 print("extAxisStatus.mdbsTimeout:", i, robot.robot_state_pkg.extAxisStatus[i].mdbsTimeout)
119 print("extAxisStatus.homingStatus:", i, robot.robot_state_pkg.extAxisStatus[i].homingStatus)
120for i in range(8):
121 print("extDIState:", i, robot.robot_state_pkg.extDIState[i])
122 print("extDOState:", i, robot.robot_state_pkg.extDOState[i])
123for i in range(4):
124 print("extAIState:", i, robot.robot_state_pkg.extAIState[i])
125 print("extAOState:", robot.robot_state_pkg.extAOState[i])
126print("rbtEnableState:", robot.robot_state_pkg.rbtEnableState)
127print("jointDriverTorque0:", robot.robot_state_pkg.jointDriverTorque[0])
128print("jointDriverTorque1:", robot.robot_state_pkg.jointDriverTorque[1])
129print("jointDriverTorque2:", robot.robot_state_pkg.jointDriverTorque[2])
130print("jointDriverTorque3:", robot.robot_state_pkg.jointDriverTorque[3])
131print("jointDriverTorque4:", robot.robot_state_pkg.jointDriverTorque[4])
132print("jointDriverTorque5:", robot.robot_state_pkg.jointDriverTorque[5])
133print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[0])
134print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[1])
135print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[2])
136print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[3])
137print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[4])
138print("jointDriverTemperature:", robot.robot_state_pkg.jointDriverTemperature[5])
139print("year:", robot.robot_state_pkg.year)
140print("mouth:", robot.robot_state_pkg.mouth)
141print("day:", robot.robot_state_pkg.day)
142print("hour:", robot.robot_state_pkg.hour)
143print("minute:", robot.robot_state_pkg.minute)
144print("second:", robot.robot_state_pkg.second)
145print("millisecond:", robot.robot_state_pkg.millisecond)
146print("softwareUpgradeState:", robot.robot_state_pkg.softwareUpgradeState)
147print("endLuaErrCode:", robot.robot_state_pkg.endLuaErrCode)
148print("cl_analog_output[0]:", robot.robot_state_pkg.cl_analog_output[0])
149print("cl_analog_output[1]:", robot.robot_state_pkg.cl_analog_output[1])
150print("tl_analog_output:", robot.robot_state_pkg.tl_analog_output)
151print("gripperRotNum:", robot.robot_state_pkg.gripperRotNum)
152print("gripperRotSpeed:", robot.robot_state_pkg.gripperRotSpeed)
153print("gripperRotTorque:", robot.robot_state_pkg.gripperRotTorque)
154print("jt_tgt_tor:", robot.robot_state_pkg.jt_tgt_tor)
155print("smartToolState:", robot.robot_state_pkg.smartToolState)
156print("wideVoltageCtrlBoxTemp:", robot.robot_state_pkg.wideVoltageCtrlBoxTemp)
157print("wideVoltageCtrlBoxFanCurrent:", robot.robot_state_pkg.wideVoltageCtrlBoxFanCurrent)
158print("toolCoord0:", robot.robot_state_pkg.toolCoord[0])
159print("toolCoord1:", robot.robot_state_pkg.toolCoord[1])
160print("toolCoord2:", robot.robot_state_pkg.toolCoord[2])
161print("toolCoord3:", robot.robot_state_pkg.toolCoord[3])
162print("toolCoord4:", robot.robot_state_pkg.toolCoord[4])
163print("toolCoord5:", robot.robot_state_pkg.toolCoord[5])
164print("wobjCoord0:", robot.robot_state_pkg.wobjCoord[0])
165print("wobjCoord1:", robot.robot_state_pkg.wobjCoord[1])
166print("wobjCoord2:", robot.robot_state_pkg.wobjCoord[2])
167print("wobjCoord3:", robot.robot_state_pkg.wobjCoord[3])
168print("wobjCoord4:", robot.robot_state_pkg.wobjCoord[4])
169print("wobjCoord5:", robot.robot_state_pkg.wobjCoord[5])
170print("extoolCoord0:", robot.robot_state_pkg.extoolCoord[0])
171print("extoolCoord1:", robot.robot_state_pkg.extoolCoord[1])
172print("extoolCoord2:", robot.robot_state_pkg.extoolCoord[2])
173print("extoolCoord3:", robot.robot_state_pkg.extoolCoord[3])
174print("extoolCoord4:", robot.robot_state_pkg.extoolCoord[4])
175print("extoolCoord5:", robot.robot_state_pkg.extoolCoord[5])
176print("exAxisCoord0:", robot.robot_state_pkg.exAxisCoord[0])
177print("exAxisCoord1:", robot.robot_state_pkg.exAxisCoord[1])
178print("exAxisCoord2:", robot.robot_state_pkg.exAxisCoord[2])
179print("exAxisCoord3:", robot.robot_state_pkg.exAxisCoord[3])
180print("exAxisCoord4:", robot.robot_state_pkg.exAxisCoord[4])
181print("exAxisCoord5:", robot.robot_state_pkg.exAxisCoord[5])
182print("load:", robot.robot_state_pkg.load)
183print("loadCog0:", robot.robot_state_pkg.loadCog[0])
184print("loadCog1:", robot.robot_state_pkg.loadCog[1])
185print("loadCog2:", robot.robot_state_pkg.loadCog[2])
186print("lastServoTarget0:", robot.robot_state_pkg.lastServoTarget[0])
187print("lastServoTarget1:", robot.robot_state_pkg.lastServoTarget[1])
188print("lastServoTarget2:", robot.robot_state_pkg.lastServoTarget[2])
189print("lastServoTarget3:", robot.robot_state_pkg.lastServoTarget[3])
190print("lastServoTarget4:", robot.robot_state_pkg.lastServoTarget[4])
191print("lastServoTarget5:", robot.robot_state_pkg.lastServoTarget[5])
192print("servoJCmdNum:", robot.robot_state_pkg.servoJCmdNum)
2.7. Tipo de Enumeração da Lista de Configuração de Feedback de Estado do Robô
1# ==================== Enumeracao da Lista de Configuração RobotState ====================
2class RobotState(enum.Enum):
3 """Enumeracao do tipo de estado CNDE"""
4 FrameHead = 0
5 FrameCnt = 1
6 DataLen = 2
7 ProgramState = 3
8 RobotState = 4
9 MainCode = 5
10 SubCode = 6
11 RobotMode = 7
12 JointCurPos = 8
13 ToolCurPos = 9
14 FlangeCurPos = 10
15 ActualJointVel = 11
16 ActualJointAcc = 12
17 TargetTCPCmpSpeed = 13
18 TargetTCPSpeed = 14
19 ActualTCPCmpSpeed = 15
20 ActualTCPSpeed = 16
21 ActualJointTorque = 17
22 Tool = 18
23 User = 19
24 ClDgtOutputH = 20
25 ClDgtOutputL = 21
26 TlDgtOutputL = 22
27 ClDgtInputH = 23
28 ClDgtInputL = 24
29 TlDgtInputL = 25
30 ClAnalogInput = 26
31 TlAnglogInput = 27
32 FtSensorRawData = 28
33 FtSensorData = 29
34 FtSensorActive = 30
35 EmergencyStop = 31
36 MotionDone = 32
37 GripperMotiondone = 33
38 McQueueLen = 34
39 CollisionState = 35
40 TrajectoryPnum = 36
41 SafetyStop0State = 37
42 SafetyStop1State = 38
43 GripperFaultId = 39
44 GripperFault = 40
45 GripperActive = 41
46 GripperPosition = 42
47 GripperSpeed = 43
48 GripperCurrent = 44
49 GripperTemp = 45
50 GripperVoltage = 46
51 AuxState = 47
52 ExtAxisStatus = 48
53 ExtDIState = 49
54 ExtDOState = 50
55 ExtAIState = 51
56 ExtAOState = 52
57 RbtEnableState = 53
58 JointDriverTorque = 54
59 JointDriverTemperature = 55
60 RobotTime = 56
61 SoftwareUpgradeState = 57
62 EndLuaErrCode = 58
63 ClAnalogOutput = 59
64 TlAnalogOutput = 60
65 GripperRotNum = 61
66 GripperRotSpeed = 62
67 GripperRotTorque = 63
68 WeldingBreakOffState = 64
69 TargetJointTorque = 65
70 SmartToolState = 66
71 WideVoltageCtrlBoxTemp = 67
72 WideVoltageCtrlBoxFanCurrent = 68
73 ToolCoord = 69
74 WobjCoord = 70
75 ExtoolCoord = 71
76 ExAxisCoord = 72
77 Load = 73
78 LoadCog = 74
79 LastServoTarget = 75
80 ServoJCmdNum = 76
81 TargetJointPos = 77
82 TargetJointVel = 78
83 TargetJointAcc = 79
84 TargetJointCurrent = 80
85 ActualJointCurrent = 81
86 ActualTCPForce = 82
87 TargetTCPPos = 83
88 CollisionLevel = 84
89 SpeedScaleManual = 85
90 SpeedScaleAuto = 86
91 LuaLineNum = 87
92 AbnomalStop = 88
93 CurrentLuaFileName = 89
94 ProgramTotalLine = 90
95 SafetyBoxSingal = 91
96 WeldVoltage = 92
97 WeldCurrent = 93
98 WeldTrackVel = 94
99 TpdException = 95
100 AlarmRebootRobot = 96
101 ModbusMasterConnect = 97
102 ModbusSlaveConnect = 98
103 BtnBoxStopSignal = 99
104 DragAlarm = 100
105 SafetyDoorAlarm = 101
106 SafetyPlaneAlarm = 102
107 MotonAlarm = 103
108 InterfaceAlarm = 104
109 UdpCmdState = 105
110 WeldReadyState = 106
111 AlarmCheckEmergStopBtn = 107
112 TsTmCmdComError = 108
113 TsTmStateComError = 109
114 CtrlBoxError = 110
115 SafetyDataState = 111
116 ForceSensorErrState = 112
117 CtrlOpenLuaErrCode = 113
118 StrangePosFlag = 114
119 Alarm = 115
120 DriverAlarm = 116
121 AliveSlaveNumError = 117
122 SlaveComError = 118
123 CmdPointError = 119
124 IOError = 120
125 GripperError = 121
126 FileError = 122
127 ParaError = 123
128 ExaxisOutLimitError = 124
129 DriverComError = 125
130 DriverError = 126
131 OutSoftLimitError = 127
132 AxleGenComData = 128
133 SocketConnTimeout = 129
134 SocketReadTimeout = 130
135 TsWebStateComErr = 131
136 CheckSum = 132