2. Opis struktur danych
2.1. Typ struktury pakietu sprzężenia zwrotnego stanu robota
1class ROBOT_AUX_STATE(Structure):
2 _pack_ = 1
3 _fields_ = [
4 ("servoId", c_uint8), # Numer ID serwonapędu
5 ("servoErrCode", c_int), # Kod błędu serwonapędu
6 ("servoState", c_int), # Stan serwonapędu
7 ("servoPos", c_double), # Bieżąca pozycja serwonapędu
8 ("servoVel", c_float), # Bieżąca prędkość serwonapędu
9 ("servoTorque", c_float), # Bieżący moment obrotowy serwonapędu
10 ]
11
12class EXT_AXIS_STATUS(Structure):
13 _pack_ = 1
14 _fields_ = [
15 ("pos", c_double), # Pozycja osi rozszerzenia
16 ("vel", c_double), # Prędkość osi rozszerzenia
17 ("errorCode", c_int), # Kod błędu osi rozszerzenia
18 ("ready", c_uint8), # Serwonapęd gotowy
19 ("inPos", c_uint8), # Serwonapęd na pozycji
20 ("alarm", c_uint8), # Alarm serwonapędu
21 ("flerr", c_uint8), # Błąd śledzenia
22 ("nlimit", c_uint8), # Osiągnięto ujemnego ograniczenia
23 ("pLimit", c_uint8), # Osiągnięto dodatniego ograniczenia
24 ("mdbsOffLine", c_uint8), # Utrata połączenia magistrali 485 sterownika
25 ("mdbsTimeout", c_uint8), # Przekroczenie czasu komunikacji 485 między kartą sterującą a skrzynką kontrolną
26 ("homingStatus", c_uint8), # Stan powrotu do zera osi rozszerzenia
27 ]
28
29class WELDING_BREAKOFF_STATE(Structure):
30 _pack_ = 1
31 _fields_ = [
32 ("breakOffState", c_uint8), # Stan przerwania spawania
33 ("weldArcState", c_uint8), # Stan przerwania łuku spawalniczego
34 ]
35
36# ==================== Pełna struktura stanu robota ====================
37class RobotStatePkg(Structure):
38 """
39 Pakiet danych sprzężenia zwrotnego stanu robota
40 """
41 _pack_ = 1
42 _fields_ = [
43 # Informacje nagłówka ramki
44 ("frame_head", c_uint16), # Nagłówek ramki, ustalony na 0x5A5A
45 ("frame_cnt", c_uint8), # Licznik ramek, licznik cykliczny 0-255
46 ("data_len", c_uint16), # Długość zawartości danych
47 ("program_state", c_uint8), # Stan wykonania programu, 1-zatrzymany; 2-działa; 3-wstrzymany
48 ("robot_state", c_uint8), # Stan ruchu robota, 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciąganie
49 ("main_code", c_int), # Główny kod błędu
50 ("sub_code", c_int), # Podrzędny kod błędu
51 ("robot_mode", c_uint8), # Tryb robota, 1-tryb ręczny; 0-tryb automatyczny
52
53 # Pozycje i prędkości przegubów
54 ("jt_cur_pos", c_double * 6), # Bieżące pozycje 6 przegubów, jednostka deg
55 ("tl_cur_pos", c_double * 6), # Bieżąca pozycja narzędzia [x,y,z,rx,ry,rz]
56 ("flange_cur_pos", c_double * 6), # Bieżąca pozycja kołnierza końcowego [x,y,z,rx,ry,rz]
57 ("actual_qd", c_double * 6), # Bieżące prędkości 6 przegubów, jednostka deg/s
58 ("actual_qdd", c_double * 6), # Bieżące przyspieszenia 6 przegubów, jednostka deg/s^2
59 ("target_TCP_CmpSpeed", c_double * 2), # Prędkość wypadkowa zadana TCP [pozycja mm/s, postawa deg/s]
60 ("target_TCP_Speed", c_double * 6), # Prędkość zadana TCP [x,y,z,rx,ry,rz]
61 ("actual_TCP_CmpSpeed", c_double * 2), # Prędkość wypadkowa rzeczywista TCP [pozycja mm/s, postawa deg/s]
62 ("actual_TCP_Speed", c_double * 6), # Prędkość rzeczywista TCP [x,y,z,rx,ry,rz]
63 ("jt_cur_tor", c_double * 6), # Bieżące momenty obrotowe 6 przegubów, jednostka N·m
64
65 # Układy narzędzia i przedmiotu
66 ("tool", c_int), # Numer zastosowanego układu narzędzia
67 ("user", c_int), # Numer zastosowanego układu przedmiotu
68
69 # Wejścia/wyjścia cyfrowe
70 ("cl_dgt_output_h", c_uint8), # Wyjście IO cyfrowego skrzynki kontrolnej 15-8
71 ("cl_dgt_output_l", c_uint8), # Wyjście IO cyfrowego skrzynki kontrolnej 7-0
72 ("tl_dgt_output_l", c_uint8), # Wyjście IO cyfrowego narzędzia 7-0, tylko bit0-bit1 są ważne
73 ("cl_dgt_input_h", c_uint8), # Wejście IO cyfrowego skrzynki kontrolnej 15-8
74 ("cl_dgt_input_l", c_uint8), # Wejście IO cyfrowego skrzynki kontrolnej 7-0
75 ("tl_dgt_input_l", c_uint8), # Wejście IO cyfrowego narzędzia 7-0, tylko bit0-bit1 są ważne
76
77 # Wejścia/wyjścia analogowe
78 ("cl_analog_input", c_uint16 * 2), # Wejście analogowe skrzynki kontrolnej [0],[1]
79 ("tl_anglog_input", c_uint16), # Wejście analogowe narzędzia
80
81 # Czujnik momentu
82 ("ft_sensor_raw_data", c_double * 6), # Surowe dane czujnika momentu
83 ("ft_sensor_data", c_double * 6), # Dane czujnika momentu
84 ("ft_sensor_active", c_uint8), # Stan aktywacji czujnika momentu
85
86 # Sygnały stanu
87 ("EmergencyStop", c_uint8), # Flaga zatrzymania awaryjnego, 0-brak zatrzymania awaryjnego, 1-zatrzymanie awaryjne wciśnięte
88 ("motion_done", c_int), # Sygnał osiągnięcia pozycji ruchu, 1-osiągnięto, 0-nie osiągnięto
89 ("gripper_motiondone", c_uint8), # Sygnał zakończenia ruchu chwytaka, 1-zakończono, 0-nie zakończono
90 ("mc_queue_len", c_int), # Długość kolejki instrukcji ruchu
91 ("collisionState", c_uint8), # Wykrycie kolizji, 1-kolizja, 0-brak kolizji
92 ("trajectory_pnum", c_int), # Numer punktu trajektorii
93 ("safety_stop0_state", c_uint8), # Sygnał bezpiecznego zatrzymania SI0
94 ("safety_stop1_state", c_uint8), # Sygnał bezpiecznego zatrzymania SI1
95
96 # Informacje o chwytaku
97 ("gripper_fault_id", c_uint8), # Numer chwytaka z błędem
98 ("gripper_fault", c_uint16), # Usterka chwytaka
99 ("gripper_active", c_uint16), # Stan aktywacji chwytaka
100 ("gripper_position", c_uint8), # Pozycja chwytaka
101 ("gripper_speed", c_int8), # Prędkość chwytaka
102 ("gripper_current", c_int8), # Prąd chwytaka
103 ("gripper_temp", c_int), # Temperatura chwytaka
104 ("gripper_voltage", c_int), # Napięcie chwytaka
105
106 # Stan osi rozszerzenia
107 ("aux_axis_state", ROBOT_AUX_STATE * 25), # Stan osi rozszerzenia 485 (25)
108 ("extAxisStatus", EXT_AXIS_STATUS * 4), # Stan osi rozszerzenia UDP (4)
109
110 # Stan rozszerzonych IO
111 ("extDIState", c_uint16 * 8), # Wejście rozszerzonego DI
112 ("extDOState", c_uint16 * 8), # Wyjście rozszerzonego DO
113 ("extAIState", c_uint16 * 4), # Wejście rozszerzonego AI
114 ("extAOState", c_uint16 * 4), # Wyjście rozszerzonego AO
115
116 # Stan robota i przegubów
117 ("rbtEnableState", c_int), # Stan włączenia robota
118 ("jointDriverTorque", c_double * 6), # Moment obrotowy sterownika przegubu robota
119 ("jointDriverTemperature", c_double * 6), # Temperatura sterownika przegubu robota
120
121 # Czas robota
122 #("robotTime", c_int * 7), # Czas systemowy robota [rok,miesiąc, dzień, godzina, minuta, sekunda, ms]
123 ("year", ctypes.c_uint16), # Rok
124 ("mouth", ctypes.c_uint8), # Miesiąc
125 ("day", ctypes.c_uint8), # Dzień
126 ("hour", ctypes.c_uint8), # Godzina
127 ("minute", ctypes.c_uint8), # Minuta
128 ("second", ctypes.c_uint8), # Sekunda
129 ("millisecond", ctypes.c_uint16), # Milisekunda
130
131 ("softwareUpgradeState", c_int), # Stan aktualizacji oprogramowania robota
132 ("endLuaErrCode", c_uint16), # Stan wykonania LUA końcówki
133
134 # Wyjścia analogowe
135 ("cl_analog_output", c_uint16 * 2), # Wyjście analogowe skrzynki kontrolnej [0],[1]
136 ("tl_analog_output", c_uint16), # Wyjście analogowe narzędzia
137
138 # Chwytak obrotowy
139 ("gripperRotNum", c_float), # Bieżąca liczba obrotów chwytaka obrotowego
140 ("gripperRotSpeed", c_uint8), # Bieżący procent prędkości obrotowej chwytaka obrotowego
141 ("gripperRotTorque", c_uint8), # Bieżący procent momentu obrotowego chwytaka obrotowego
142
143 # Stan przerwania spawania - przy użyciu struktury
144 ("weldingBreakOffState", WELDING_BREAKOFF_STATE), # Stan przerwania spawania
145
146 # Docelowy moment obrotowy przegubów
147 ("jt_tgt_tor", c_double * 6), # Docelowy moment obrotowy przegubów
148
149 ("smartToolState", c_int), # Stan przycisków uchwytu SmartTool
150 ("wideVoltageCtrlBoxTemp", c_float), # Temperatura szerokonapięciowej skrzynki kontrolnej
151 ("wideVoltageCtrlBoxFanCurrent", c_uint16), # Prąd wentylatora szerokonapięciowej skrzynki kontrolnej (mA)
152
153 # Wartości układów współrzędnych
154 ("toolCoord", c_double * 6), # Bieżące wartości układu narzędzia; x,y,z,rx,ry,rz
155 ("wobjCoord", c_double * 6), # Bieżące wartości układu przedmiotu; x,y,z,rx,ry,rz
156 ("extoolCoord", c_double * 6), # Bieżące wartości zewnętrznego układu narzędzia; x,y,z,rx,ry,rz
157 ("exAxisCoord", c_double * 6), # Bieżące wartości układu osi rozszerzenia; x,y,z,rx,ry,rz
158
159 # Obciążenie
160 ("load", c_double), # Masa obciążenia
161 ("loadCog", c_double * 3), # Środek ciężkości obciążenia
162
163 # Instrukcje serwo
164 ("lastServoTarget", c_double * 6), # Ostatnia pozycja docelowa ServoJ w kolejce
165 ("servoJCmdNum", c_int), # Licznik instrukcji servoJ
166
167 # Dane docelowe przegubów
168 ("targetJointPos", c_double * 6), # Instrukcje pozycji 6 przegubów, jednostka °
169 ("targetJointVel", c_double * 6), # Instrukcje prędkości 6 przegubów, jednostka °/s
170 ("targetJointAcc", c_double * 6), # Instrukcje przyspieszenia 6 przegubów, jednostka °/s2
171 ("targetJointCurrent", c_double * 6), # Instrukcje prądu 6 przegubów, jednostka A
172 ("actualJointCurrent", c_double * 6), # Bieżące prądy 6 przegubów, jednostka A
173 ("actualTCPForce", c_double * 6), # Moment na końcówce robota Nm; x,y,z,rx,ry,rz
174 ("targetTCPPos", c_double * 6), # Instrukcja pozycji TCP robota mm; x,y,z,rx,ry,rz
175
176 ("collisionLevel", c_uint8 * 6), # Poziom kolizji robota
177 ("speedScaleManual", c_double), # Procent prędkości globalnej w trybie ręcznym
178 ("speedScaleAuto", c_double), # Procent prędkości globalnej w trybie automatycznym
179 ("luaLineNum", c_int), # Bieżący numer linii wykonania programu lua
180 ("abnomalStop", c_uint8), # 0-brak nieprawidłowości; 1-występuje nieprawidłowość
181 ("currentLuaFileName", c_uint8 * 256), # Nazwa bieżącego działającego programu lua
182 ("programTotalLine", c_uint8), # Całkowita liczba linii programu lua
183 ("safetyBoxSingal", c_uint8 * 6), # Stan przycisków na puszce przyciskowej robota
184
185 # Dane spawalnicze
186 ("weldVoltage", c_double), # Napięcie spawania V
187 ("weldCurrent", c_double), # Prąd spawania
188 ("weldTrackVel", c_double), # Prędkość śledzenia spoiny mm/s
189
190 ("tpdException", c_uint8), # Przekroczenie limitu ładowania trajektorii TPD, 0-nie przekroczono, 1-przekroczono
191 ("alarmRebootRobot", c_uint8), # Ostrzeżenie, 1-zwolnij przycisk zatrzymania awaryjnego i wyłącz zasilanie skrzynki kontrolnej, 2-nieprawidłowość komunikacji przegubu, wyłącz zasilanie skrzynki kontrolnej
192 ("modbusMasterConnect", c_uint8), # bity bit0-bit7 odpowiadają stanom połączenia mastera 0-7 ModbusTCP
193 ("modbusSlaveConnect", c_uint8), # Stan połączenia slave ModbusTCP
194 ("btnBoxStopSignal", c_uint8), # Sygnał zatrzymania awaryjnego puszki przyciskowej
195 ("dragAlarm", c_uint8), # Ostrzeżenie przeciągania
196 ("safetyDoorAlarm", c_uint8), # Ostrzeżenie drzwi bezpieczeństwa
197 ("safetyPlaneAlarm", c_uint8), # Ostrzeżenie wejścia w ścianę bezpieczeństwa
198 ("motonAlarm", c_uint8), # Ostrzeżenie ruchu
199 ("interfaceAlarm", c_uint8), # Ostrzeżenie wejścia w strefę interferencji
200 ("udpCmdState", c_int), # Stan połączenia komunikacyjnego UDP portu 20007
201 ("weldReadyState", c_uint8), # Stan gotowości spawarki
202 ("alarmCheckEmergStopBtn", c_uint8), # 0-normalny; 1-nieprawidłowość komunikacji, sprawdź czy przycisk zatrzymania awaryjnego jest zwolniony
203 ("tsTmCmdComError", c_uint8), # 0-normalny; 1-niepowodzenie komunikacji instrukcji momentu
204 ("tsTmStateComError", c_uint8), # 0-normalny; 1-niepowodzenie komunikacji stanu momentu
205 ("ctrlBoxError", c_int), # Błąd skrzynki kontrolnej
206 ("safetyDataState", c_uint8), # Flaga stanu danych bezpieczeństwa
207 ("forceSensorErrState", c_uint8), # Błąd timeout połączenia czujnika siły
208 ("ctrlOpenLuaErrCode", c_uint8 * 4), # Kody błędów protokołu 4 urządzeń peryferyjnych kontrolera
209 ("strangePosFlag", c_uint8), # Flaga bieżącej osobliwej pozy
210 ("alarm", c_uint8), # Ostrzeżenie
211 ("driverAlarm", c_uint8), # Numer osi z alarmem sterownika
212 ("aliveSlaveNumError", c_uint8), # Błąd liczby aktywnych węzłów podrzędnych
213 ("slaveComError", c_uint8 * 8), # Stan błędu węzła podrzędnego
214 ("cmdPointError", c_uint8), # Błąd punktu instrukcji
215 ("IOError", c_uint8), # Błąd IO
216 ("gripperError", c_uint8), # Błąd chwytaka
217 ("fileError", c_uint8), # Błąd pliku
218 ("paraError", c_uint8), # Błąd parametru
219 ("exaxisOutLimitError", c_uint8), # Błąd przekroczenia miękkiego ograniczenia osi zewnętrznej
220 ("driverComError", c_uint8 * 6), # Błąd komunikacji ze sterownikiem
221 ("driverError", c_uint8), # Numer osi z błędem komunikacji sterownika
222 ("outSoftLimitError", c_uint8), # Błąd przekroczenia miękkiego ograniczenia
223 ("axleGenComData", c_uint8 * 130), # Dane aperiodyczne ogólnej komunikacji osi
224 ("socketConnTimeout", c_uint8), # Przekroczenie czasu połączenia socket
225 ("socketReadTimeout", c_uint8), # Przekroczenie czasu odczytu socket
226 ("tsWebStateComErr", c_uint8), # Błąd komunikacji stanu TS_WEB
227 ("exaxisCoordID", c_uint8), # ID zewnętrznej osi rozszerzenia
228 ("check_sum", c_uint16) # Suma kontrolna
229 ]
2.2. Pakiet danych sprzężenia zwrotnego stanu kontrolera
Nowe w wersji python: SDK-v2.1.7
Zmienna |
Znaczenie |
|---|---|
program_state |
Stan wykonania programu, 1-zatrzymany; 2-działa; 3-wstrzymany |
robot_state |
Stan ruchu robota, 1-zatrzymany; 2-działa; 3-wstrzymany; 4-przeciąganie |
main_code |
Główny kod błędu |
sub_code |
Podrzędny kod błędu” |
robot_mode |
Tryb robota, 0-tryb automatyczny; 1-tryb ręczny |
jt_cur_pos[i] |
Bieżąca pozycja przegubów, jednostka deg, i:0~5 |
tl_cur_pos[i] |
Bieżąca poza narzędzia, jednostka deg&mm, i:0~5 |
flange_cur_pos[i] |
Bieżąca poza kołnierza końcowego, jednostka deg&mm, i:0~5 |
actual_qd[i] |
Bieżąca prędkość przegubów robota, jednostka deg/s, i:0~5 |
actual_qdd[i] |
Bieżące przyspieszenie przegubów robota, jednostka deg/s^2, i:0~5 |
target_TCP_CmpSpeed[i] |
Prędkość wypadkowa zadana TCP robota, jednostka mm/s°/s, i:0~1 |
target_TCP_Speed[i] |
Prędkość zadana TCP robota, jednostka mm/s°/s, i:0~5 |
actual_TCP_CmpSpeed[i] |
Prędkość wypadkowa rzeczywista TCP robota, jednostka mm/s°/s, i:0~1 |
actual_TCP_Speed[i] |
Prędkość rzeczywista TCP robota, jednostka mm/s°/s, i:0~5 |
jt_cur_tor[i] |
Bieżący moment obrotowy, jednostka N·m, i:0~5 |
tool |
Numer zastosowanego układu narzędzia |
user |
Numer zastosowanego układu przedmiotu |
cl_dgt_output_h |
Wyjście IO cyfrowego skrzynki kontrolnej 15-8 |
cl_dgt_output_l |
Wyjście IO cyfrowego skrzynki kontrolnej 7-0 |
tl_dgt_output_l |
Wyjście IO cyfrowego narzędzia 7-0, tylko bit0-bit1 są ważne |
dgt_input_h |
Wejście IO cyfrowego skrzynki kontrolnej 15-8 |
cl_dgt_input_l |
Wejście IO cyfrowego skrzynki kontrolnej 7-0 |
tl_dgt_input_l |
Wejście IO cyfrowego narzędzia 7-0, tylko bit0-bit1 są ważne |
cl_analog_input[i] |
Wejście analogowe skrzynki kontrolnej, i:0~2 |
tl_anglog_input |
Wejście analogowe narzędzia |
ft_sensor_raw_data |
Surowe dane czujnika momentu, jednostka N&Nm, i:0~5 |
ft_sensor_data |
Dane czujnika momentu, jednostka N&Nm, i:0~5 |
ft_sensor_active |
Stan aktywacji czujnika momentu, 0-reset, 1-aktywacja |
EmergencyStop |
Flaga zatrzymania awaryjnego, 0-brak zatrzymania awaryjnego, 1-zatrzymanie awaryjne wciśnięte |
motion_done |
Sygnał osiągnięcia pozycji ruchu, 1-osiągnięto, 0-nie osiągnięto |
gripper_motiondone |
Sygnał zakończenia ruchu chwytaka, 1-zakończono, 0-nie zakończono |
mc_queue_len |
Długość kolejki instrukcji ruchu |
collisionState |
Wykrycie kolizji, 1-kolizja, 0-brak kolizji |
trajectory_pnum |
Numer punktu trajektorii |
safety_stop0_state |
Sygnał bezpiecznego zatrzymania SI0 |
safety_stop1_state |
Sygnał bezpiecznego zatrzymania SI1 |
gripper_fault_id |
Numer chwytaka z błędem |
gripper_fault |
Usterka chwytaka |
gripper_active |
Stan aktywacji chwytaka, 0-nieaktywny, 1-aktywny |
gripper_position |
Pozycja chwytaka (procent) |
gripper_speed |
Prędkość chwytaka (procent) |
gripper_current |
Prąd chwytaka (procent) |
gripper_tmp |
Temperatura chwytaka, jednostka ℃ |
gripper_voltage |
Napięcie chwytaka, jednostka V |
auxState.servoId |
Oś rozszerzenia 485, numer ID serwonapędu, i:0~3 |
auxState.servoErrCode |
Oś rozszerzenia 485, kod błędu serwonapędu, i:0~3 |
auxState.servoState |
Oś rozszerzenia 485, stan serwonapędu, i:0~3 |
auxState.servoPos |
Oś rozszerzenia 485, bieżąca pozycja serwonapędu, i:0~3 |
auxState.servoVel |
Oś rozszerzenia 485, bieżąca prędkość serwonapędu, i:0~3 |
auxState.servoTorque |
Oś rozszerzenia 485, bieżący moment obrotowy serwonapędu, i:0~3 |
extAxisStatus[i].pos |
Oś rozszerzenia UDP, pozycja, i:0~3 |
extAxisStatus[i].vel |
Oś rozszerzenia UDP, prędkość, i:0~3 |
extAxisStatus[i].errorCode |
Oś rozszerzenia UDP, kod błędu, i:0~3 |
extAxisStatus[i].ready |
Oś rozszerzenia UDP, serwonapęd gotowy, i:0~3 |
extAxisStatus[i].inPos |
Oś rozszerzenia UDP, serwonapęd na pozycji, i:0~3 |
extAxisStatus[i].alarm |
Oś rozszerzenia UDP, alarm serwonapędu, i:0~3 |
extAxisStatus[i].flerr |
Oś rozszerzenia UDP, błąd śledzenia, i:0~3 |
extAxisStatus[i].nlimit |
Oś rozszerzenia UDP, osiągnięto ujemnego ograniczenia, i:0~3 |
extAxisStatus[i].pLimit |
Oś rozszerzenia UDP, osiągnięto dodatniego ograniczenia, i:0~3 |
extAxisStatus[i].mdbsOffLine |
Oś rozszerzenia UDP, utrata połączenia magistrali 485 sterownika |
extAxisStatus[i].mdbsTimeout |
Oś rozszerzenia UDP, przekroczenie czasu komunikacji 485 między kartą sterującą a skrzynką kontrolną |
extAxisStatus[i].homingStatus |
Oś rozszerzenia UDP, stan powrotu do zera |
extDIState |
Stan rozszerzonego wejścia cyfrowego |
extDOState |
Stan rozszerzonego wyjścia cyfrowego |
extAIState |
Stan rozszerzonego wejścia analogowego |
extAOState |
Stan rozszerzonego wyjścia analogowego |
rbtEnableState |
Stan włączenia robota |
jointDriverTorque |
Bieżący moment obrotowy sterownika przegubu |
jointDriverTemperature |
Bieżąca temperatura sterownika przegubu |
year |
Rok |
mouth |
Miesiąc |
day |
Dzień |
hour |
Godzina |
minute |
Minuta |
second |
Sekunda |
millisecond |
Milisekunda |
softwareUpgradeState |
Stan aktualizacji oprogramowania robota |
endLuaErrCode |
Stan wykonania LUA końcówki |
cl_analog_output[i] |
Wyjście analogowe skrzynki kontrolnej, i:0~1 |
tl_analog_output |
Wyjście analogowe narzędzia |
gripperRotNum |
Bieżąca liczba obrotów chwytaka obrotowego |
gripperRotSpeed |
Bieżący procent prędkości obrotowej chwytaka obrotowego |
gripperRotTorque |
Bieżący procent momentu obrotowego chwytaka obrotowego |
weldingBreakOffState |
Stan przerwania spawania |
jt_tgt_tor |
Docelowy moment obrotowy przegubów |
smartToolState |
Stan przycisków uchwytu SmartTool |
wideVoltageCtrlBoxTemp |
Temperatura szerokonapięciowej skrzynki kontrolnej |
wideVoltageCtrlBoxFanCurrent |
Prąd wentylatora szerokonapięciowej skrzynki kontrolnej (ma) |
toolCoord[i] |
Układ narzędzia, i:0~5 |
wobjCoord[i] |
Układ przedmiotu, i:0~5 |
extoolCoord[i] |
Zewnętrzny układ narzędzia, i:0~5 |
exAxisCoord[i] |
Układ osi rozszerzenia, i:0~5 |
load |
Masa obciążenia |
loadCog[i] |
Środek ciężkości obciążenia, i:0~2 |
lastServoTarget[i] |
Ostatnia pozycja docelowa ServoJ w kolejce, i:0~5 |
servoJCmdNum |
Licznik instrukcji ServoJ |
2.3. Stan serwonapędu
Nowe w wersji python: SDK-v2.1.3
Zmienna |
Znaczenie |
|---|---|
servoId |
Numer ID serwonapędu |
servoErrCode |
Kod błędu serwonapędu |
servoState |
Stan serwonapędu |
servoPos |
Bieżąca pozycja serwonapędu |
servoVel |
Bieżąca prędkość serwonapędu |
servoTorque |
Bieżący moment obrotowy serwonapędu |
2.4. Stan osi rozszerzenia
Nowe w wersji python: SDK-v2.1.3
Zmienna |
Znaczenie |
|---|---|
pos |
Pozycja osi rozszerzenia |
vel |
Prędkość osi rozszerzenia |
errorCode |
Kod błędu osi rozszerzenia |
ready |
Serwonapęd gotowy |
inPos |
Serwonapęd na pozycji |
alarm |
Alarm serwonapędu |
flerr |
Błąd śledzenia |
nlimit |
Osiągnięto ujemnego ograniczenia |
pLimit |
Osiągnięto dodatniego ograniczenia |
mdbsOffLine |
Utrata połączenia magistrali 485 sterownika |
mdbsTimeout |
Przekroczenie czasu komunikacji 485 między kartą sterującą a skrzynką kontrolną |
homingStatus |
Stan powrotu do zera osi rozszerzenia |
2.5. Stan przerwania spawania
Nowe w wersji python: SDK-v2.1.3
Zmienna |
Znaczenie |
|---|---|
breakOffState |
Stan przerwania spawania |
weldArcState |
Stan przerwania łuku spawalniczego |
2.6. Przykład kodu
1from fairino import Robot
2# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
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. Typ wyliczeniowy listy konfiguracyjnej sprzężenia zwrotnego stanu robota
1class RobotState(enum.Enum):
2 """Wyliczenie typów stanów CNDE"""
3 FrameHead = 0
4 FrameCnt = 1
5 DataLen = 2
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
133 SocketReadTimeout = 130
134 TsWebStateComErr = 131
135 ExaxisCoordID = 132
136 CheckSum = 133