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&deg/s, i:0~1

target_TCP_Speed[i]

Prędkość zadana TCP robota, jednostka mm/s&deg/s, i:0~5

actual_TCP_CmpSpeed[i]

Prędkość wypadkowa rzeczywista TCP robota, jednostka mm/s&deg/s, i:0~1

actual_TCP_Speed[i]

Prędkość rzeczywista TCP robota, jednostka mm/s&deg/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