11. Urządzenia peryferyjne robota
11.1. Konfiguracja chwytaka
Prototyp |
|
|---|---|
Opis |
Konfiguracja chwytaka |
Parametry wymagane |
|
Parametry domyślne |
|
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.2. Pobieranie konfiguracji chwytaka
Prototyp |
|
|---|---|
Opis |
Pobieranie konfiguracji chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.3. Aktywacja chwytaka
Prototyp |
|
|---|---|
Opis |
Aktywacja chwytaka |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.4. Sterowanie chwytakiem
Prototyp |
|
|---|---|
Opis |
Sterowanie chwytakiem |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.5. Pobieranie stanu ruchu chwytaka
Prototyp |
|
|---|---|
Opis |
Pobieranie stanu ruchu chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.6. Pobieranie stanu aktywacji chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie stanu aktywacji chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.7. Pobieranie pozycji chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie pozycji chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.8. Pobieranie prędkości chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie prędkości chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.9. Pobieranie prądu chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie prądu chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.10. Pobieranie napięcia chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie napięcia chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.11. Pobieranie temperatury chwytaka
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie temperatury chwytaka |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.12. Obliczenie punktu wstępnego chwytania - wizja
Prototyp |
|
|---|---|
Opis |
Obliczenie punktu wstępnego chwytania - wizja |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.13. Obliczenie punktu wycofania - wizja
Prototyp |
|
|---|---|
Opis |
Obliczenie punktu wycofania - wizja |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.14. Przykład kodu operacji chwytakiem robota
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')
4company = 4
5device = 0
6softversion = 0
7bus = 2
8index = 2
9act = 0
10max_time = 30000
11block = 0
12status = 0
13fault = 0
14active_status = 0
15current_pos = 0
16current = 0
17voltage = 0
18temp = 0
19speed = 0
20robot.SetGripperConfig(company, device, softversion, bus)
21time.sleep(1)
22error,[company, device, softversion, bus] = robot.GetGripperConfig()
23print(f"gripper config:{company},{device},{softversion},{bus}")
24robot.ActGripper(index, act)
25time.sleep(1)
26act = 1
27robot.ActGripper(index, act)
28time.sleep(1)
29error = robot.MoveGripper(index, 90, 50, 50, max_time, block, 0, 0, 0, 0)
30print(f"MoveGripper retval is:{error}")
31time.sleep(1)
32error = robot.MoveGripper(index, 30, 50, 0, max_time, block, 0, 0, 0, 0)
33print(f"MoveGripper retval is:{error}")
34error, [fault, status] = robot.GetGripperMotionDone()
35print(f"motion status:{fault},{status}")
36error, [fault, active_status] = robot.GetGripperActivateStatus()
37print(f"gripper active fault is:{fault},status is:{active_status}")
38error, [fault, current_pos] = robot.GetGripperCurPosition()
39print(f"fault is:{fault},current position is:{current_pos}")
40error, [fault, current] = robot.GetGripperCurCurrent()
41print(f"fault is:{fault},current current is:{current}")
42error, [fault, voltage] = robot.GetGripperVoltage()
43print(f"fault is:{fault},current voltage is:{voltage}")
44error, [fault, temp] = robot.GetGripperTemp()
45print(f"fault is:{fault},current temperature is:{temp}")
46error, [fault, speed] = robot.GetGripperCurSpeed()
47print(f"fault is:{fault},current speed is:{speed}")
48retval = 0
49prepick_pose = [0.0]*6
50postpick_pose = [0.0]*6
51p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
52p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
53retval, prepick_pose = robot.ComputePrePick(p1Desc, 10, 0)
54print(f"ComputePrePick retval is:{retval}")
55print(f"xyz is:{prepick_pose[0]},{prepick_pose[1]},{prepick_pose[2]};rpy is:{prepick_pose[3]},{prepick_pose[4]},{prepick_pose[5]}")
56retval, postpick_pose = robot.ComputePostPick(p2Desc, -10, 0)
57print(f"ComputePostPick retval is:{retval}")
58print(f"xyz is:{postpick_pose[0]},{postpick_pose[1]},{postpick_pose[2]};rpy is:{postpick_pose[3]},{postpick_pose[4]},{postpick_pose[5]}")
59robot.CloseRPC()
11.15. Pobieranie liczby obrotów chwytaka obrotowego
Dodane w wersji python: SDK-v2.0.7
Prototyp |
|
|---|---|
Opis |
Pobieranie liczby obrotów chwytaka obrotowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.16. Pobieranie procentu prędkości obrotowej chwytaka obrotowego
Dodane w wersji python: SDK-v2.0.7
Prototyp |
|
|---|---|
Opis |
Pobieranie procentu prędkości obrotowej chwytaka obrotowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.17. Pobieranie procentu momentu obrotowego chwytaka obrotowego
Dodane w wersji python: SDK-v2.0.7
Prototyp |
|
|---|---|
Opis |
Pobieranie procentu momentu obrotowego chwytaka obrotowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.18. Przykład kodu pobrania stanu chwytaka obrotowego
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')
4fault = 0
5rotNum = 0.0
6rotSpeed = 0
7rotTorque = 0
8error,fault, rotNum = robot.GetGripperRotNum()
9error,fault, rotSpeed = robot.GetGripperRotSpeed()
10error,fault, rotTorque = robot.GetGripperRotTorque()
11print(f"gripper rot num:{rotNum},gripper rotSpeed:{rotSpeed},gripper rotTorque:{rotTorque}")
12robot.CloseRPC()
11.19. Uruchomienie, zatrzymanie przenośnika taśmowego
Prototyp |
|
|---|---|
Opis |
Uruchomienie, zatrzymanie przenośnika taśmowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.20. Rejestracja punktu detekcji IO
Prototyp |
|
|---|---|
Opis |
Rejestracja punktu detekcji IO |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.21. Rejestracja punktu A
Prototyp |
|
|---|---|
Opis |
Rejestracja punktu A |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.22. Rejestracja punktu odniesienia
Prototyp |
|
|---|---|
Opis |
Rejestracja punktu odniesienia |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.23. Rejestracja punktu B
Prototyp |
|
|---|---|
Opis |
Rejestracja punktu B |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.24. Detekcja IO przedmiotu na przenośniku
Prototyp |
|
|---|---|
Opis |
Detekcja IO przedmiotu na przenośniku |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.25. Pobieranie bieżącej pozycji przedmiotu
Prototyp |
|
|---|---|
Opis |
Pobieranie bieżącej pozycji przedmiotu |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.26. Rozpoczęcie śledzenia przenośnika
Prototyp |
|
|---|---|
Opis |
Rozpoczęcie śledzenia przenośnika |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.27. Zatrzymanie śledzenia przenośnika
Prototyp |
|
|---|---|
Opis |
Zatrzymanie śledzenia przenośnika |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.28. Konfiguracja parametrów przenośnika
Prototyp |
|
|---|---|
Opis |
Konfiguracja parametrów przenośnika |
Parametry wymagane |
|
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.29. Kompensacja punktu chwytania przenośnika
Prototyp |
|
|---|---|
Opis |
Kompensacja punktu chwytania przenośnika |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.30. Ruch liniowy
Prototyp |
|
|---|---|
Opis |
Ruch liniowy |
Parametry wymagane |
|
Parametry domyślne |
|
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.31. Detekcja wejścia komunikacyjnego przenośnika
Dodane w wersji python: SDK-v2.1.1
Prototyp |
|
|---|---|
Opis |
Detekcja wejścia komunikacyjnego przenośnika |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.32. Wyzwolenie detekcji wejścia komunikacyjnego przenośnika
Dodane w wersji python: SDK-v2.1.1
Prototyp |
|
|---|---|
Opis |
Wyzwolenie detekcji wejścia komunikacyjnego przenośnika |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.33. Przykład kodu operacji przenośnika robota
1from fairino import Robot
2import time
3import threading
4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
5robot = Robot.RPC('192.168.58.2')
6retval = robot.ConveyorStartEnd(1)
7print(f"ConveyorStartEnd retval is:{retval}")
8retval = robot.ConveyorPointIORecord()
9print(f"ConveyorPointIORecord retval is:{retval}")
10retval = robot.ConveyorPointARecord()
11print(f"ConveyorPointARecord retval is:{retval}")
12retval = robot.ConveyorRefPointRecord()
13print(f"ConveyorRefPointRecord retval is:{retval}")
14retval = robot.ConveyorPointBRecord()
15print(f"ConveyorPointBRecord retval is:{retval}")
16retval = robot.ConveyorStartEnd(0)
17print(f"ConveyorStartEnd retval is:{retval}")
18param = [1.0, 10000.0, 200.0, 0.0, 0.0, 20.0]
19retval = robot.ConveyorSetParam(param,0)
20print(f"ConveyorSetParam retval is:{retval}")
21cmp = [0.0, 0.0, 0.0]
22retval = robot.ConveyorCatchPointComp(cmp)
23print(f"ConveyorCatchPointComp retval is:{retval}")
24index = 1
25max_time = 30000
26block = 0
27retval = 0
28p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
29p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
30retval = robot.MoveCart(p1Desc, 1, 0, 100.0)
31print(f"MoveCart retval is:{retval}")
32retval = robot.WaitMs(1)
33print(f"WaitMs retval is:{retval}")
34retval = robot.ConveyorIODetect(10000)
35print(f"ConveyorIODetect retval is:{retval}")
36retval = robot.ConveyorGetTrackData(1)
37print(f"ConveyorGetTrackData retval is:{retval}")
38retval = robot.ConveyorTrackStart(1)
39print(f"ConveyorTrackStart retval is:{retval}")
40retval = robot.ConveyorTrackMoveL("cvrCatchPoint", 1, 0, 100)
41print(f"TrackMoveL retval is:{retval}")
42retval = robot.MoveGripper(index, 51, 40, 30, max_time, block, 0, 0, 0, 0)
43print(f"MoveGripper retval is:{retval}")
44retval = robot.ConveyorTrackMoveL("cvrRaisePoint", 1, 0, 100)
45print(f"TrackMoveL retval is:{retval}")
46retval = robot.ConveyorTrackEnd()
47print(f"ConveyorTrackEnd retval is:{retval}")
48robot.MoveCart(p2Desc, 1, 0, 100.0, 100.0)
49retval = robot.MoveGripper(index, 100, 40, 10, max_time, block, 0, 0, 0, 0)
50print(f"MoveGripper retval is:{retval}")
51robot.CloseRPC()
11.34. Konfiguracja Parametrów Śledzenia w Miejscu na Taśmie Transportowej
Dodane w wersji python: SDK-V3.9.8
Prototyp |
|
|---|---|
Opis |
Konfiguruje parametry śledzenia w miejscu na taśmie transportowej |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.35. Oczekiwanie na Zakończenie Ruchu Pustego w Miejscu
Dodane w wersji python: SDK-V3.9.8
Prototyp |
|
|---|---|
Opis |
Oczekuje na zakończenie ruchu pustego w miejscu |
Parametry Wymagane |
Brak |
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.36. Przykład Kodu Ruchu Śledzenia w Miejscu na Taśmie Transportowej
Dodane w wersji python: SDK-V3.9.8
1from fairino import Robot
2import time
3
4
5def main():
6 robot = Robot.RPC('192.168.58.2')
7 time.sleep(0.5)
8 j1 = [-35.146, -102.684, 120.805, -100.401, -90.295, 150.105]
9 d1 = [-121.814, -348.341, 209.978, -173.152, -3.585, -5.446]
10
11 ex = [0.0, 0.0, 0.0, 0.0]
12 zeroOff = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
13
14 tool = 1
15 workpiece = 1
16
17 para = [0, 10000, 200, 0, 0, 10]
18
19 rtn = robot.ConveyorSetParam(para= para)
20 print(f"ConveyorSetParam rtn is {rtn}")
21
22 robot.MoveJ(joint_pos=j1, desc_pos=d1, tool=tool, user=workpiece,
23 vel=100, acc=100, ovl=100, exaxis_pos=ex,
24 blendT=-1, offset_flag=0, offset_pos=zeroOff)
25
26 print("--- Step 1: SetDO(6,1) ---")
27 rtn = robot.SetDO(6, 1, 0, 0)
28 print(f" SetDO(6,1) rtn={rtn}")
29
30 print("--- Step 2: ConveyorTrackStart(2) ---")
31 rtn = robot.ConveyorTrackStart(2)
32 print(f" ConveyorTrackStart(2) rtn={rtn}")
33
34 print("--- Step 3: ConveyorIODetect(10000) ---")
35 rtn = robot.ConveyorIODetect(10000)
36 print(f" ConveyorIODetect(10000) rtn={rtn}")
37
38 print("--- Step 4: ConveyorGetTrackData(2) ---")
39 rtn = robot.ConveyorGetTrackData(2)
40 print(f" ConveyorGetTrackData(2) rtn={rtn}")
41
42 print("--- Step 5: SetStationaryTrackPara(0,5,5) ---")
43 rtn = robot.SetStationaryTrackPara(0, 5, 5)
44 print(f" SetStationaryTrackPara(0,5,5) rtn={rtn}")
45
46 print("--- Step 6: MoveStationary() ---")
47 rtn = robot.MoveStationary()
48 print(f" MoveStationary() rtn={rtn}")
49
50 rtn = robot.WaitStationaryMotionDone()
51 print(f" WaitStationaryMotionDone() rtn={rtn}")
52
53 print("--- Step 7: ConveyorTrackEnd() ---")
54 rtn = robot.ConveyorTrackEnd()
55 print(f" ConveyorTrackEnd() rtn={rtn}")
56
57 print("--- Step 8: SetDO(6,0) ---")
58 rtn = robot.SetDO(6, 0, 0, 0)
59 print(f" SetDO(6,0) rtn={rtn}")
60
61 robot.CloseRPC()
62
63
64if __name__ == "__main__":
65 main()
11.37. Konfiguracja czujnika końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Konfiguracja czujnika końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.38. Pobieranie konfiguracji czujnika końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobieranie konfiguracji czujnika końcowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.39. Aktywacja czujnika końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Aktywacja czujnika końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.40. Zapis do rejestru czujnika końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Zapis do rejestru czujnika końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.41. Przykład kodu czujnika końcowego
1from fairino import Robot
2import time
3import threading
4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
5robot = Robot.RPC('192.168.58.2')
6robot.AxleSensorConfig(18, 0, 0, 1)
7error, company, type = robot.AxleSensorConfigGet()
8print(f"company is:{company},type is:{type}")
9rtn = robot.AxleSensorActivate(1)
10print(f"AxleSensorActivate rtn is:{rtn}")
11time.sleep(1)
12rtn = robot.AxleSensorRegWrite(1, 4, 6, 1, 0, 0, 0)
13print(f"AxleSensorRegWrite rtn is:{rtn}")
14robot.CloseRPC()
11.42. Pobieranie protokołu urządzeń peryferyjnych robota
Dodane w wersji python: SDK-v2.0.3
Prototyp |
|
|---|---|
Opis |
Pobieranie protokołu urządzeń peryferyjnych robota |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.43. Ustawianie protokołu urządzeń peryferyjnych robota
Dodane w wersji python: SDK-v2.0.3
Prototyp |
|
|---|---|
Opis |
Ustawianie protokołu urządzeń peryferyjnych robota |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.44. Przykład kodu ustawiania protokołu urządzeń peryferyjnych robota
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')
4protocol = 4096
5rtn = robot.SetExDevProtocol(protocol)
6print(f"SetExDevProtocol rtn:{rtn}")
7rtn, protocol = robot.GetExDevProtocol()
8print(f"GetExDevProtocol rtn:{rtn},protocol is:{protocol}")
9robot.CloseRPC()
11.45. Pobieranie parametrów komunikacji końcowej
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobieranie parametrów komunikacji końcowej |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.46. Ustawianie parametrów komunikacji końcowej
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Ustawianie parametrów komunikacji końcowej |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.47. Ustawianie typu transferu pliku końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Ustawianie typu transferu pliku końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.48. Ustawianie włączenia wykonania LUA końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Ustawianie włączenia wykonania LUA końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.49. Odnowienie błędu wyjątkowego pliku LUA końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Odnowienie błędu wyjątkowego pliku LUA końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.50. Pobieranie stanu włączenia wykonania LUA końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobieranie stanu włączenia wykonania LUA końcowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.51. Ustawianie włączonych typów urządzeń końcówki dla LUA
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Ustawia włączone typy urządzeń końcówki dla LUA |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.52. Pobieranie włączonych typów urządzeń końcówki dla LUA
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobiera włączone typy urządzeń końcówki dla LUA |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.53. Pobieranie aktualnie skonfigurowanych urządzeń końcówki
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobiera aktualnie skonfigurowane urządzenia końcówki |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.54. Ustawianie włączonych funkcji sterowania ruchem chwytaka
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Ustawia włączone funkcje sterowania ruchem chwytaka |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.55. Pobieranie włączonych funkcji sterowania ruchem chwytaka
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Pobiera włączone funkcje sterowania ruchem chwytaka |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.56. Zapis pliku węzła podrzędnego Ethercat robota
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Zapis pliku węzła podrzędnego Ethercat robota |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.57. Przesłanie pliku protokołu otwartego LUA końcowego
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Przesłanie pliku protokołu otwartego LUA końcowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.58. Wprowadzenie węzła podrzędnego Ethercat robota w tryb boot
Dodane w wersji python: SDK-v2.0.5
Prototyp |
|
|---|---|
Opis |
Wprowadzenie węzła podrzędnego Ethercat robota w tryb boot |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.59. Przykład kodu operacji na pliku LUA końcowego robota
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')
4robot.AxleLuaUpload("D://zUP/AXLE_LUA_End_DaHuan.lua")
5param = [7, 8, 1, 0, 5, 3, 1] # parametry odpowiadające AxleComParam
6robot.SetAxleCommunicationParam(7, 8, 1, 0, 5, 3, 1)
7error,getParam0,getParam1,getParam2,getParam3,getParam4,getParam5,getParam6 = robot.GetAxleCommunicationParam()
8print(f"GetAxleCommunicationParam param is:{getParam0} {getParam1} {getParam2} {getParam3} {getParam4} {getParam5} {getParam6}")
9robot.SetAxleLuaEnable(1)
10error,luaEnableStatus = robot.GetAxleLuaEnableStatus()
11robot.SetAxleLuaEnableDeviceType(0, 1, 0)
12error,forceEnable, gripperEnable, ioEnable = robot.GetAxleLuaEnableDeviceType()
13print(f"GetAxleLuaEnableDeviceType param is:{forceEnable} {gripperEnable} {ioEnable}")
14func = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
15robot.SetAxleLuaGripperFunc(1, func)
16error,getFunc = robot.GetAxleLuaGripperFunc(1)
17error,getforceEnable, getgripperEnable, getioEnable = robot.GetAxleLuaEnableDevice()
18print("\ngetforceEnable status:", end=" ")
19for i in range(8):
20 print(f"{getforceEnable[i]},", end="")
21print("\ngetgripperEnable status:", end=" ")
22for i in range(8):
23 print(f"{getgripperEnable[i]},", end="")
24print("\ngetioEnable status:", end=" ")
25for i in range(8):
26 print(f"{getioEnable[i]},", end="")
27print()
28robot.ActGripper(1, 0)
29time.sleep(2)
30robot.ActGripper(1, 1)
31time.sleep(2)
32robot.MoveGripper(1, 90, 10, 100, 50000, 0, 0, 0, 0, 0)
33while True:
34 error,pkg = robot.GetRobotRealTimeState()
35 print(f"gripper pos is:{pkg.gripper_position}")
36 time.sleep(0.1)
37robot.CloseRPC()
11.60. Pobieranie stanu przycisków SmartTool
Dodane w wersji python: SDK-v2.1.2
Prototyp |
|
|---|---|
Opis |
Pobieranie stanu przycisków SmartTool |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.61. Przykład kodu przycisków SmartTool
1from fairino import Robot
2import time
3# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
4robot = Robot.RPC('192.168.58.2')
5while True:
6 error,state = robot.GetSmarttoolBtnState()
7 print(f"{state:016b}")
8 time.sleep(0.1)
11.62. Ustawianie wykrywania siły obciążenia przed włączeniem przeciągania
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Ustawianie wykrywania siły obciążenia przed włączeniem przeciągania |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.63. Funkcja włączania/wyłączania urządzenia peryferyjnego laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Funkcja włączania/wyłączania urządzenia peryferyjnego laserowego |
Parametry wymagane |
|
Parametry domyślne |
|
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.64. Funkcja rozpoczęcia/zakończenia śledzenia laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Funkcja rozpoczęcia/zakończenia śledzenia laserowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.65. Poszukiwanie pozycji laserowej - stały kierunek
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Poszukiwanie pozycji laserowej - stały kierunek |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.66. Poszukiwanie pozycji laserowej - dowolny kierunek
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Poszukiwanie pozycji laserowej - dowolny kierunek |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.67. Konfiguracja IP lasera
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Konfiguracja IP lasera |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.68. Konfiguracja okresu próbkowania urządzenia peryferyjnego laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Konfiguracja okresu próbkowania urządzenia peryferyjnego laserowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.69. Ładowanie sterownika urządzenia peryferyjnego laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Ładowanie sterownika urządzenia peryferyjnego laserowego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.70. Rozładowanie sterownika urządzenia peryferyjnego laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Rozładowanie sterownika urządzenia peryferyjnego laserowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.71. Rejestracja ścieżki spoiny laserowej
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Rejestracja ścieżki spoiny laserowej |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.72. Odtwarzanie ścieżki spoiny laserowej
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Odtwarzanie ścieżki spoiny laserowej |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.73. Odtwarzanie śledzenia laserowego
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Odtwarzanie śledzenia laserowego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.74. Odtwarzanie ścieżki spoiny laserowej
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Odtwarzanie ścieżki spoiny laserowej |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.75. Ruch do początku zapisu ścieżki spoiny
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Ruch do początku zapisu ścieżki spoiny |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.76. Ruch do końca zapisu ścieżki spoiny
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Ruch do końca zapisu ścieżki spoiny |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.77. Ruch do punktu poszukiwanego przez czujnik laserowy
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Ruch do punktu poszukiwanego przez czujnik laserowy |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.78. Pobieranie informacji o współrzędnych punktu poszukiwanego przez czujnik laserowy
Dodane w wersji python: SDK-v2.1.6
Prototyp |
|
|---|---|
Opis |
Pobieranie informacji o współrzędnych punktu poszukiwanego przez czujnik laserowy |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.79. Przykład kodu konfiguracji parametrów i debugowania urządzenia peryferyjnego laserowego
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')
4robot.LaserTrackingSensorConfig("192.168.58.20", 5020)
5robot.LaserTrackingSensorSamplePeriod(20)
6robot.LoadPosSensorDriver(101)
7robot.LaserTrackingLaserOnOff(0, 0)
8time.sleep(3)
9robot.LaserTrackingLaserOnOff(1, 0)
10robot.CloseRPC()
11.80. Przykład kodu skanowania i odtwarzania ścieżki laserowej
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')
4robot.OpenLuaUpload("D://zUP/CtrlDev_laser_ruiniu-0117.lua")
5time.sleep(2)
6robot.SetCtrlOpenLUAName(0, "CtrlDev_laser_ruiniu-0117.lua")
7robot.UnloadCtrlOpenLUA(0)
8robot.LoadCtrlOpenLUA(0)
9time.sleep(8)
10i = 0
11while i<10:
12 startjointPos = [56.205, -117.951, 141.872, -118.149, -94.217, -122.176]
13 startdescPose = [-97.552, -282.855, 26.675, 174.182, -1.338, -91.707]
14 exaxisPos = [0.0] * 4
15 offdese = [0.0] * 6
16 robot.MoveL(desc_pos=startdescPose,tool= 1,user= 0,vel= 100,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
17 robot.LaserSensorRecord1(2, 10)
18 endjointPos = [68.809, -87.100, 121.120, -127.233, -95.038, -109.555]
19 enddescPose = [-103.555, -464.234, 13.076, 174.179, -1.344, -91.709]
20 robot.MoveL(desc_pos=enddescPose,tool= 1,user= 0,vel= 50,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
21 robot.LaserSensorRecord1(0, 10)
22 robot.MoveToLaserRecordStart(1, 30)
23 robot.LaserSensorReplay(10, 100)
24 robot.MoveLTR()
25 robot.LaserSensorRecord1(0, 10)
26 i = i+1
27robot.CloseRPC()
11.81. Przykład kodu poszukiwania pozycji laserowej i śledzenia w czasie rzeczywistym
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')
4robot.OpenLuaUpload("D://zUP/CtrlDev_laser_ruiniu-0117.lua")
5time.sleep(2)
6robot.SetCtrlOpenLUAName(0, "CtrlDev_laser_ruiniu-0117.lua")
7robot.UnloadCtrlOpenLUA(0)
8robot.LoadCtrlOpenLUA(0)
9time.sleep(8)
10time.sleep(8)
11i = 0
12while i < 10:
13 startjointPos = [56.205, -117.951, 141.872, -118.149, -94.217, -122.176]
14 startdescPose = [-97.552, -282.855, 26.675, 174.182, -1.338, -91.707]
15 exaxisPos = [0.0] * 4
16 offdese = [0.0] * 6
17 directionPoint = [0.0] * 3
18 robot.MoveL(desc_pos=startdescPose,tool= 1,user= 0,vel= 100,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
19 robot.LaserTrackingSearchStart_xyz(3, 100, 300, 1000, 3)
20 robot.LaserTrackingSearchStop()
21 robot.MoveToLaserSeamPos(1, 30, 0, 0, 0, offdese)
22 robot.LaserTrackingTrackOnOff(1, 3)
23 endjointPos = [68.809, -87.100, 121.120, -127.233, -95.038, -109.555]
24 enddescPose = [-103.555, -464.234, 13.076, 174.179, -1.344, -91.709]
25 robot.MoveL(desc_pos=enddescPose,tool= 1,user= 0,vel= 20,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
26 robot.LaserTrackingTrackOnOff(0, 3)
27 i = i + 1
28 print(i)
29robot.CloseRPC()
11.82. Przykład kodu śledzenia laserowego z osią rozszerzenia synchronicznie z robotem
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')
4startexaxisPos = [0.0, 0.0, 0.0, 0.0]
5seamexaxisPos = [-10.0, 0.0, 0.0, 0.0]
6endexaxisPos = [-30.0, 0.0, 0.0, 0.0]
7offdese = [0.0] * 6
8seamjointPos = [0.0] * 6
9seamdescPose = [0.0] * 6
10i=0
11while i < 10:
12 startjointPos = [58.337, -119.628, 146.037, -116.358, -92.224, -117.654]
13 startdescPose = [-53.375, -255.363, 0.919, 178.054, 1.077, -94.026]
14 robot.ExtAxisSyncMoveJ(joint_pos=startjointPos, tool=1,user= 0,vel= 100,acc= 100, ovl=100,exaxis_pos= startexaxisPos,blendT= -1,offset_flag= 0,offset_pos= offdese)
15 ret = robot.LaserTrackingSearchStart_xyz(3, 100, 300, 1000, 2)
16 robot.LaserTrackingSearchStop()
17 tool = 0
18 user = 0
19 rnte, seamjointPos, seamdescPose, tool, user, startexaxisPos = robot.GetLaserSeamPos(0, offdese)
20 print(f"{seamjointPos[0]},{seamjointPos[1]},{seamjointPos[2]},{seamjointPos[3]},{seamjointPos[4]},{seamjointPos[5]},{seamdescPose[0]},{seamdescPose[1]},{seamdescPose[2]},{seamdescPose[3]},{seamdescPose[4]},{seamdescPose[5]}")
21 if ret == 0:
22 robot.ExtAxisSyncMoveJ(joint_pos=seamjointPos, tool=1,user= 0,vel= 100,acc= 100, ovl=100,exaxis_pos= seamexaxisPos,blendT= -1,offset_flag= 0,offset_pos= offdese)
23 robot.LaserTrackingTrackOnOff(1, 2)
24 endjointPos = [70.580, -90.918, 126.593, -125.154, -92.162, -105.403]
25 enddescPose = [-53.375, -419.020, 0.920, 178.054, 1.076, -94.026]
26 robot.ExtAxisSyncMoveL(desc_pos=enddescPose, tool=1,user= 0,vel= 20,acc= 100, ovl=100,blendR= -1,exaxis_pos= endexaxisPos,offset_pos= offdese)
27 robot.LaserTrackingTrackOnOff(0, 2)
28 i = i+1
29 print(i)
30robot.CloseRPC()
11.83. Sterowanie matrycową przyssawką
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Sterowanie matrycową przyssawką |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.84. Pobieranie stanu matrycowej przyssawki
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Pobieranie stanu matrycowej przyssawki |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.85. Oczekiwanie na stan przyssawki
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Oczekiwanie na stan przyssawki |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.86. Przykład kodu instrukcji sterowania matrycową przyssawką
Dodane w wersji python: SDK-v2.1.5
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')
4robot.OpenLuaUpload("C://项目/外设SDK/CtrlDev_sucker.lua")
5time.sleep(2)
6robot.UnloadCtrlOpenLUA(1)
7robot.LoadCtrlOpenLUA(1)
8time.sleep(1)
9ctrl = bytearray(20)
10ctrl[0] = 1
11robot.SetSuckerCtrl(0, 1, ctrl)
12for i in range(100):
13 rtn, state, press_value, error = robot.GetSuckerState(1)
14 print(f"sucker1 state is {state}, pressValue is {press_value}, error num is {error}")
15 rtn, state, press_value, error = robot.GetSuckerState(12)
16 print(f"sucker12 state is {state}, pressValue is {press_value}, error num is {error}")
17 time.sleep(0.1)
18ret = robot.WaitSuckerState(1, 1, 100)
19print(f"WaitSuckerState result is {ret}")
20ctrl[0] = 3
21robot.SetSuckerCtrl(1, 1, ctrl)
22robot.SetSuckerCtrl(12, 1, ctrl)
23robot.CloseRPC()
11.87. Przesłanie pliku LUA protokołu otwartego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Przesłanie pliku LUA protokołu otwartego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.88. Pobieranie parametrów karty węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Pobieranie parametrów karty węzła podrzędnego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.89. Zapis DO węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Zapis DO węzła podrzędnego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.90. Zapis AO węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Zapis AO węzła podrzędnego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.91. Odczyt DI węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Odczyt DI węzła podrzędnego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.92. Odczyt AI węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Odczyt AI węzła podrzędnego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
|
11.93. Oczekiwanie na wejście rozszerzonego DI
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Oczekiwanie na wejście rozszerzonego DI |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.94. Oczekiwanie na wejście rozszerzonego AI
Dodane w wersji python: SDK-v2.1.5
Prototyp |
|
|---|---|
Opis |
Oczekiwanie na wejście rozszerzonego AI |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.95. Przykład kodu instrukcji interfejsów trybu węzła podrzędnego
Dodane w wersji python: SDK-v2.1.5
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')
4robot.OpenLuaUpload("D://zUP/外设/CtrlDev_field.lua")
5time.sleep(2)
6robot.SetCtrlOpenLUAName(3,"CtrlDev_field.lua")
7robot.UnloadCtrlOpenLUA(3)
8robot.LoadCtrlOpenLUA(3)
9time.sleep(8)
10rtn,type, version, conn_state = robot.GetFieldBusConfig()
11print(f"type is {type}, version is {version}, connState is {conn_state}")
12# Zapis wyjść cyfrowych
13ctrl = [1, 0, 1] # DO0=1, DO1=0, DO2=1
14robot.FieldBusSlaveWriteDO(0, 3, ctrl)
15# Zapis wyjścia analogowego
16ctrl_ao = [0x1000] # AO2 = 0x1000
17robot.FieldBusSlaveWriteAO(2, 1, ctrl_ao)
18for i in range(100):
19 rtn,di = robot.FieldBusSlaveReadDI(0, 4)
20 print(f"DI0 is {di[0]}, DI1 is {di[1]}, DI2 is {di[2]}, DI3 is {di[3]}")
21 rtn, ai = robot.FieldBusSlaveReadAI(0, 3)
22 print(f"AI0 is {ai[0]}, AI1 is {ai[1]}, AI2 is {ai[2]}")
23 time.sleep(0.01)
24ret = robot.FieldBusSlaveWaitDI(0, 1, 100)
25print(f"FieldBusSlaveWaitDI result is {ret}")
26ret = robot.FieldBusSlaveWaitAI(0, 0, 400.00, 100)
27print(f"FieldBusSlaveWaitAI result is {ret}")
28robot.CloseRPC()
11.96. Interfejs SDK włączania/wyłączania funkcji przezroczystej transmisji końcowej
Prototyp |
|
|---|---|
Opis |
Włączenie ogólnej funkcji przezroczystej transmisji końcowej |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.97. Interfejs SDK wysyłania i odbierania danych aperiodycznych funkcji przezroczystej transmisji końcowej
Prototyp |
|
|---|---|
Opis |
Wysłanie danych aperiodycznych przez końcówkę i oczekiwanie na odpowiedź |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.98. Przykład kodu komunikacji danych aperiodycznych głowicy moxibuscyjnej Beiyikang w oparciu o funkcję przezroczystej transmisji końcowej
1from time import sleep
2from fairino import Robot
3from ctypes import sizeof
4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
5robot = Robot.RPC('192.168.58.2')
6
7import time
8
9
10def testAxleGenCom(self):
11
12 led_on = [0xAB, 0xBA, 0x12, 0x01, 0x01, 0x79]
13 led_off = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
14 version = [0xAB, 0xBA, 0x11, 0x00, 0x76]
15 state = [0xAB, 0xBA, 0x1B, 0x01, 0xAA, 0x2B]
16 cycleState = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
17 cnt = 1
18
19 p1Joint = [88.708, -86.178, 140.989, -141.825, -89.162, -49.879]
20 p1Desc = [188.007, -377.850, 260.207, 178.715, 2.823, -131.466]
21 p2Joint = [112.131, -75.554, 126.989, -139.027, -88.044, -26.477]
22 p2Desc = [368.003, -377.848, 260.211, 178.715, 2.823, -131.465]
23
24 exaxisPos = [0, 0, 0, 0]
25 offdese = [0, 0, 0, 0, 0, 0]
26
27 # Włączenie funkcji przezroczystej transmisji końcowej
28 robot.SetAxleGenComEnable(1)
29 robot.SetAxleLuaEnable(1)
30
31 while cnt <= 10000:
32 # Odczyt numeru wersji
33 ret,rcvdata = robot.SndRcvAxleGenComCmdData(len_snd=5, sndBuff=version, len_rcv=10)
34 print(ret)
35 print(rcvdata)
36 print(f"hard version : {rcvdata[4]},hard code:{rcvdata[5]}, soft version:{rcvdata[6]} {rcvdata[7]}, soft code:{rcvdata[8]}")
37 if ret != 0:
38 break
39 time.sleep(1)
40 # Odczyt stanu obecności głowicy moxibuscyjnej
41 ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, state, 6)
42 print(f"state : {rcvdata[4]} ")
43 time.sleep(1)
44 # Włączenie lasera głowicy moxibuscyjnej
45 ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, led_on, 6)
46 print(f"led on rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
47 robot.MoveJ(joint_pos=p1Joint, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=exaxisPos, blendT=-1,
48 offset_flag=0, offset_pos=offdese)
49 time.sleep(4)
50 # Wyłączenie lasera głowicy moxibuscyjnej
51 ret, rcvdata = robot.SndRcvAxleGenComCmdData(6, led_off, 6)
52 print(f"led off rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
53 robot.MoveJ(joint_pos=p2Joint, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=exaxisPos, blendT=-1,offset_flag=0, offset_pos=offdese)
54 time.sleep(1)
55 print(f"***********************complate No. {cnt} SDK test*****************************")
56 cnt = cnt + 1
57
58 robot.CloseRPC()
59 return 0
60
61testAxleGenCom(robot)
11.99. Pobranie pliku LUA protokołu otwartego
Prototyp |
|
|---|---|
Opis |
Pobranie pliku LUA protokołu otwartego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.100. Usunięcie określonego pliku LUA protokołu otwartego
Prototyp |
|
|---|---|
Opis |
Usunięcie określonego pliku LUA protokołu otwartego |
Parametry wymagane |
|
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.101. Usunięcie wszystkich plików LUA protokołu otwartego
Prototyp |
|
|---|---|
Opis |
Usunięcie wszystkich plików LUA protokołu otwartego |
Parametry wymagane |
Brak |
Parametry domyślne |
Brak |
Wartość zwracana |
Kod błędu sukces-0 błąd- errcode |
11.102. Przykład kodu SDK operacji na pliku lua protokołu otwartego
1from time import sleep
2import time
3from fairino import Robot
4
5# Połączenie z kontrolerem robota
6robot = Robot.RPC('192.168.58.2')
7
8
9def TestCtrlOpenLuaOperate(self):
10 # Przesłanie pliku Lua do robota
11 rtn = robot.OpenLuaUpload("D://zUP/openlua/CtrlDev_WELDING_A.lua")
12 print(f"OpenLuaUpload rtn is {rtn}")
13
14 rtn = robot.OpenLuaUpload("D://zUP/openlua/CtrlDev_SWDPOLISH.lua")
15 print(f"OpenLuaUpload rtn is {rtn}")
16
17 # Pobranie pliku Lua z robota
18 rtn = robot.OpenLuaDownload("CtrlDev_WELDING_A.lua", "D://zDOWN/")
19 print(f"OpenLuaDownload rtn is {rtn}")
20
21 rtn = robot.OpenLuaDownload("CtrlDev_SWDPOLISH.lua", "D://zDOWN/")
22 print(f"OpenLuaDownload rtn is {rtn}")
23
24 # Ustawienie nazwy pliku Lua otwartego sterowania
25 rtn = robot.SetCtrlOpenLUAName(0, "CtrlDev_WELDING_A.lua")
26 print(f"SetCtrlOpenLUAName rtn is {rtn}")
27
28 rtn = robot.SetCtrlOpenLUAName(1, "CtrlDev_SWDPOLISH.lua")
29 print(f"SetCtrlOpenLUAName rtn is {rtn}")
30
31 # Pobranie nazwy pliku Lua otwartego sterowania
32 rtn, name = robot.GetCtrlOpenLUAName()
33 print(f"ctrl open lua names : {name[0]}, {name[1]}, {name[2]}, {name[3]}")
34
35 # Załadowanie Lua otwartego sterowania
36 rtn = robot.LoadCtrlOpenLUA(1)
37 print(f"LoadCtrlOpenLUA rtn is {rtn}")
38 time.sleep(2)
39
40 # Rozładowanie Lua otwartego sterowania
41 rtn = robot.UnloadCtrlOpenLUA(1)
42 print(f"UnloadCtrlOpenLUA rtn is {rtn}")
43
44 # Usunięcie określonego pliku Lua
45 rtn = robot.OpenLuaDelete("CtrlDev_WELDING_A.lua")
46 print(f"OpenLuaDelete rtn is {rtn}")
47
48 # Usunięcie wszystkich plików Lua
49 rtn = robot.AllOpenLuaDelete()
50 print(f"AllOpenLuaDelete rtn is {rtn}")
51
52 # Zamknięcie połączenia
53 robot.CloseRPC()
54 time.sleep(1)
55
56
57# Wywołanie funkcji testowej
58TestCtrlOpenLuaOperate(robot)
11.103. Sterowanie Ruchem Dłoni
Prototyp |
|
|---|---|
Opis |
Sterowanie ruchem dłoni |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.104. Sterowanie Resetem i Aktywacją Dłoni
Prototyp |
|
|---|---|
Opis |
Sterowanie resetem i aktywacją dłoni |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.105. Czyszczenie Błędu Dłoni
Prototyp |
|
|---|---|
Opis |
Czyszczenie błędu dłoni |
Parametry Wymagane |
Brak |
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.106. Ustawianie Włączonych Funkcji Sterowania Ruchem Dłoni
Prototyp |
|
|---|---|
Opis |
Ustawia włączone funkcje sterowania ruchem dłoni |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.107. Pobieranie Włączonych Funkcji Sterowania Ruchem Dłoni
Prototyp |
|
|---|---|
Opis |
Pobiera włączone funkcje sterowania ruchem dłoni |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.108. Przykład Kodu Konfiguracji i Ruchu Dłoni na Końcówce Robota
1from fairino import Robot
2import time
3robot = Robot.RPC('192.168.58.2')
4
5def main(self):
6
7 id = 1
8 slaveNum = 4
9 max_time = 8000
10 speed = [0] * 16
11 force = [0] * 16
12
13 for i in range(16):
14 force[i] = 50 if i < 4 else 0
15
16 def set_positions(v1, v2, v3, v4):
17 pos = [0.0] * 16
18 pos[0] = v1
19 pos[1] = v2
20 pos[2] = v3
21 pos[3] = v4
22 return pos
23
24 j1 = [-53.426,-85.916,109.280,-86.236,-96.663,-28.560]
25 j2 = [-91.877,-85.917,109.281,-86.236,-96.663,-28.560]
26 epos = [0, 0, 0, 0]
27 offset_pos = [0, 0, 0, 0, 0, 0]
28
29 ret = robot.ClearDexterousHandsError()
30 print(f"ClearDexterousHandsError -> {ret}")
31
32 setFunc = [0] * 32
33 setFunc[2] = 1
34 setFunc[4] = 1
35 setFunc[9] = 1
36 setFunc[10] = 1
37 setFunc[11] = 1
38 setFunc[22] = 1
39
40 ret = robot.SetDexterousHandsFunc(id, setFunc)
41 print(f"SetDexterousHandsFunc(włączono init + funkcje pozycji/momentu) -> {ret}")
42
43 ret, getFunc = robot.GetDexterousHandsFunc(id)
44 print(f"GetDexterousHandsFunc -> {ret}")
45 if ret == 0:
46 print("GetDexterousHandsFunc :")
47 for i in range(len(getFunc)):
48 print(f" [{i}]={getFunc[i]}", end="")
49 if (i + 1) % 8 == 0:
50 print()
51 elif i < len(getFunc) - 1:
52 print(", ", end="")
53 if len(getFunc) % 8 != 0:
54
55 ret = robot.SetDexterousHandsAct(id, 1)
56 print(f"SetDexterousHandsAct() -> {ret}")
57 if ret != 0:
58 return
59 pos = set_positions(20, 20, 20, 20)
60 ret = robot.SetDexterousHandsMove(id, slaveNum, pos, speed, force, max_time)
61 print(f"ret: {ret}")
62 time.sleep(5)
63
64 for iteration in range(1, 11):
65 robot.MoveJ(joint_pos=j1, tool=1, user=0, vel=100, acc=100, ovl=100,
66 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
67
68 pos = set_positions(10, 10, 10, 10)
69 ret = robot.SetDexterousHandsMove(id, slaveNum, pos, speed, force, max_time)
70 time.sleep(1)
71
72 robot.MoveJ(joint_pos=j2, tool=1, user=0, vel=100, acc=100, ovl=100,
73 exaxis_pos=epos, blendT=-1, offset_flag=0, offset_pos=offset_pos)
74
75 pos = set_positions(50, 50, 50, 50)
76 ret = robot.SetDexterousHandsMove(id, slaveNum, pos, speed, force, max_time)
77 time.sleep(1)
78
79main(robot)
11.109. Oczekiwanie na Status Ruchu Chwytaka
Prototyp |
|
|---|---|
Opis |
Oczekiwanie na status ruchu chwytaka |
Parametry Wymagane |
|
Parametry Domyślne |
Brak |
Wartość Zwracana |
Kod błędu, 0-sukces; niezerowy-błąd |
11.110. Przykład Kodu Oczekiwania na Status Ruchu Chwytaka
1from fairino import Robot
2import time
3
4
5def main():
6 # Nawiązanie połączenia z kontrolerem robota
7 robot = Robot.RPC('192.168.58.2')
8 time.sleep(0.5) # Oczekiwanie na połączenie i odbiór danych
9
10 print("========== Test oczekiwania na zakończenie ruchu chwytaka ==========")
11
12 # ========== Chwytak otwarty ==========
13 rtn = robot.MoveGripper(1, 0, 100, 100, 30000, 0, 0, 0, 0, 0)
14 print(f"MoveGripper(otwórz) ret={rtn}")
15 time.sleep(4)
16
17 # ========== Chwytak zamknięty ==========
18 rtn = robot.MoveGripper(1, 90, 100, 100, 30000, 0, 0, 0, 0, 0)
19 print(f"MoveGripper(zamknij) ret={rtn}")
20
21 # ========== Oczekiwanie na zakończenie ruchu (brak wykrycia obiektu, timeout 30s, zatrzymaj z błędem) ==========
22 rtn = robot.GripperWaitMotionDone(1, 30000, 0, 0)
23 print(f"GripperWaitMotionDone(oczekiwanie na zakończenie bez wykrycia obiektu) ret={rtn}")
24
25 # ========== Chwytak otwarty ==========
26 rtn = robot.MoveGripper(1, 0, 100, 100, 30000, 0, 0, 0, 0, 0)
27 print(f"MoveGripper(otwórz) ret={rtn}")
28
29 print("========== Test zakończony ==========")
30
31 # Zamknięcie połączenia
32 robot.CloseRPC()
33
34
35if __name__ == "__main__":
36 main()
11.111. Przykład Kodu Odtwarzania Rejestracji Laserowej + Asynchroniczny Ruch Osi Rozszerzonych + Splot w Punktach Stałych
1def test_laser_record_replay_exaxis_with_wave():
2print("\n========== Odtwarzanie Rejestracji Laserowej + Asynchroniczny Ruch Osi Rozszerzonych + Splot w Punktach Stałych ==========")
3
4startjointPos = [105.600,-65.393,-93.638,-79.687,79.175,134.046]
5startdescPose = [42.376,533.597,362.564,-34.957,-0.564,169.063]
6endjointPos = [105.600,-65.393,-93.638,-79.687,79.175,134.046]
7enddescPose = [42.376,533.597,362.564,-34.957,-0.564,169.063]
8offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
9
10# MoveJ do punktu bezpiecznego (Oś rozszerzona 0,134.296,0,0)
11rtn = robot.MoveJ(joint_pos=startjointPos, desc_pos=startdescPose, tool=5, user=0,
12 vel=100, acc=100, ovl=50, exaxis_pos=[0, 134.296, 0, 0],
13 blendT=-1, offset_flag=0, offset_pos=offdese)
14print(f"MoveJ start: {rtn}")
15
16# Asynchroniczny ruch osi rozszerzonej do punktu początkowego 74.335
17rtn = robot.ExtAxisMove([0, 74.335, 0, 0], 50, -1)
18print(f"ExtAxisMove 74.335: {rtn}")
19time.sleep(3)
20
21# MoveL do punktu początkowego
22rtn = robot.MoveL(joint_pos=endjointPos, desc_pos=enddescPose, tool=5, user=0,
23 vel=100, acc=100, ovl=50, blendR=-1, offset_flag=0,
24 exaxis_pos=[0, 74.335, 0, 0], search=0,
25 offset_pos=offdese)
26print(f"MoveL end: {rtn}")
27
28# Rozpocznij rejestrację laserową
29rtn = robot.LaserSensorRecord1(2, 10)
30print(f"LaserSensorRecord start: {rtn}")
31
32# Oś rozszerzona przesuwa się do 134.296 podczas rejestracji
33rtn = robot.ExtAxisMove([0, 134.296, 0, 0], 50, -1)
34print(f"ExtAxisMove 134.296: {rtn}")
35time.sleep(3)
36
37# Zatrzymaj rejestrację laserową
38rtn = robot.LaserSensorRecord1(0, 10)
39print(f"LaserSensorRecord stop: {rtn}")
40
41# Oś rozszerzona wraca do 74.335, MoveL powrót do punktu początkowego
42rtn = robot.ExtAxisMove([0, 74.335, 0, 0], 50, -1)
43print(f"ExtAxisMove back: {rtn}")
44
45# MoveL do punktu początkowego
46rtn = robot.MoveL(joint_pos=endjointPos, desc_pos=enddescPose, tool=5, user=0,
47 vel=100, acc=100, ovl=50, blendR=-1, offset_flag=0,
48 exaxis_pos=[0, 74.335, 0, 0], search=0,
49 offset_pos=offdese)
50print(f"MoveL back: {rtn}")
51
52# Ruch PTP do początku ścieżki zarejestrowanej laserowo
53rtn = robot.MoveToLaserRecordStart(0, 30)
54print(f"MoveToLaserRecordStart: {rtn}")
55
56# Rozpocznij odtwarzanie
57rtn = robot.LaserSensorRecord1(3, 10)
58print(f"LaserSensorRecord replay: {rtn}")
59
60# Rozpocznij splot w punktach stałych
61refPoint = [49.381,533.608,362.556,-34.961,-0.564,169.062]
62rtn = robot.OriginPointWeaveStart(0, 1, refPoint, 5)
63print(f"OriginPointWeaveStart: {rtn}")
64
65# Oś rozszerzona przesuwa się do 134.296 podczas splotu
66rtn = robot.ExtAxisMove([0, 134.296, 0, 0], 50, -1)
67print(f"ExtAxisMove replay: {rtn}")
68
69# Zakończ splot
70rtn = robot.OriginPointWeaveEnd()
71print(f"OriginPointWeaveEnd: {rtn}")
72
73# Zatrzymaj odtwarzanie
74rtn = robot.LaserSensorRecord1(0, 10)
75print(f"LaserSensorRecord stop: {rtn}")
11.112. Przykład Kodu Odtwarzania Rejestracji Laserowej + Splot Normalny
1def test_laser_reproduce_normal_weave():
2print("\n========== Odtwarzanie Rejestracji Laserowej + Splot Normalny ==========")
3
4startjointPos = [68.930,-70.217,-121.821,-75.522,91.216,137.289]
5startdescPose = [216.097,304.517,34.164,-3.871,0.792,132.864]
6endjointPos = [58.092,-78.843,-115.569,-73.420,91.662,126.457]
7enddescPose = [296.276,307.453,34.803,-3.868,0.783,132.864]
8offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
9
10time.sleep(1)
11
12# MoveL do pozycji początkowej (Oś rozszerzona 0,174.957,0,0)
13rtn = robot.MoveL(joint_pos=startjointPos, desc_pos=startdescPose, tool=5, user=0,
14 vel=100, acc=100, ovl=100, blendR=-1, offset_flag=0,
15 exaxis_pos=[0, 174.957, 0, 0], search=0,
16 offset_pos=offdese)
17print(f"MoveL start: {rtn}")
18
19# Rozpocznij rejestrację laserową
20rtn = robot.LaserSensorRecord1(2, 10)
21print(f"LaserSensorRecord start: {rtn}")
22
23# MoveL do pozycji końcowej
24rtn = robot.MoveL(joint_pos=endjointPos, desc_pos=enddescPose, tool=5, user=0,
25 vel=100, acc=100, ovl=100, blendR=-1, offset_flag=0,
26 exaxis_pos=[0, 174.957, 0, 0], search=0,
27 offset_pos=offdese)
28print(f"MoveL end: {rtn}")
29
30# Zatrzymaj rejestrację laserową
31rtn = robot.LaserSensorRecord1(0, 10)
32print(f"LaserSensorRecord stop: {rtn}")
33
34# MoveL powrót do pozycji początkowej
35rtn = robot.MoveL(joint_pos=startjointPos, desc_pos=startdescPose, tool=5, user=0,
36 vel=100, acc=100, ovl=100, blendR=-1, offset_flag=0,
37 exaxis_pos=[0, 174.957, 0, 0], search=0,
38 offset_pos=offdese)
39print(f"MoveL back: {rtn}")
40
41# Ruch LIN do początku ścieżki zarejestrowanej laserowo
42rtn = robot.MoveToLaserRecordStart(1, 30)
43print(f"MoveToLaserRecordStart: {rtn}")
44
45# Rozpocznij splot normalny
46rtn = robot.WeaveStart(0)
47print(f"WeaveStart: {rtn}")
48
49# Rozpocznij odtwarzanie rejestracji
50rtn = robot.LaserSensorRecord1(3, 10)
51print(f"LaserSensorRecord replay: {rtn}")
52
53# Ruch odtwarzania śledzenia laserowego
54rtn = robot.MoveLTR()
55print(f"MoveLTR: {rtn}")
56time.sleep(3)
57
58# Zatrzymaj odtwarzanie rejestracji
59rtn = robot.LaserSensorRecord1(0, 10)
60print(f"LaserSensorRecord stop: {rtn}")
61
62# Zakończ splot normalny
63rtn = robot.WeaveEnd(0)
64print(f"WeaveEnd: {rtn}")