11. Urządzenia peryferyjne robota

11.1. Konfiguracja chwytaka

Prototyp

SetGripperConfig(company,device,softversion=0,bus=0)

Opis

Konfiguracja chwytaka

Parametry wymagane

  • company: Producent chwytaka, 1-Robotiq, 2-Huiling, 3-Tianji, 4-Dahuan, 5-Zhixing;

  • device: Numer urządzenia, Robotiq(0-2F-85 series), Huiling(0-NK series,1-Z-EFG-100), Tianji(0-TEG-110), Dahuan(0-PGI-140), Zhixing(0-CTPM2F20)

Parametry domyślne

  • softversion: Numer wersji oprogramowania, tymczasowo nieużywane, domyślnie 0;

  • bus: Pozycja magistrali końcowej urządzenia, tymczasowo nieużywane, domyślnie 0;

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.2. Pobieranie konfiguracji chwytaka

Prototyp

GetGripperConfig()

Opis

Pobieranie konfiguracji chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • [number,company,device,softversion]: number, Numer chwytaka; company, Producent chwytaka, 1-Robotiq, 2-Huiling, 3-Tianji, 4-Dahuan, 5-Zhixing; device, Numer urządzenia, Robotiq(0-2F-85 series), Huiling(0-NK series,1-Z-EFG-100), Tianji(0-TEG-110), Dahuan(0-PGI-140), Zhixing(0-CTPM2F20); softvesion, Numer wersji oprogramowania, tymczasowo nieużywane, domyślnie 0.

11.3. Aktywacja chwytaka

Prototyp

ActGripper(index,action)

Opis

Aktywacja chwytaka

Parametry wymagane

  • index: Numer chwytaka;

  • action: 0-reset, 1-aktywacja

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.4. Sterowanie chwytakiem

Prototyp

MoveGripper(index,pos,vel,force,maxtime,block,type,rotNum,rotVel,rotTorque)

Opis

Sterowanie chwytakiem

Parametry wymagane

  • index: Numer chwytaka;

  • pos: Procent pozycji, zakres [0~100];

  • vel: Procent prędkości, zakres [0~100];

  • force: Procent momentu, zakres [0~100];

  • maxtime: Maksymalny czas oczekiwania, zakres [0~30000], jednostka [ms];

  • block: 0-blokujący, 1-nieblokujący;

  • type: Typ chwytaka, 0-chwytak równoległy; 1-chwytak obrotowy;

  • rotNum: rotNum Liczba obrotów;

  • rotVel: Procent prędkości obrotowej [0-100];

  • rotTorque: Procent momentu obrotowego [0-100].

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.5. Pobieranie stanu ruchu chwytaka

Prototyp

GetGripperMotionDone()

Opis

Pobieranie stanu ruchu chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • [fault,status]: Stan ruchu chwytaka, fault:0-brak błędu, 1-jest błąd; status:0-ruch niezakończony, 1-ruch zakończony

11.6. Pobieranie stanu aktywacji chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperActivateStatus()

Opis

Pobieranie stanu aktywacji chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • gripper_active: bit0~bit15 odpowiada numerom chwytaka 0~15, bit=0 oznacza nieaktywny, bit=1 oznacza aktywny

11.7. Pobieranie pozycji chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperCurPosition()

Opis

Pobieranie pozycji chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • position: Procent pozycji, zakres 0~100%

11.8. Pobieranie prędkości chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperCurSpeed()

Opis

Pobieranie prędkości chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • speed: Procent prędkości, zakres 0~100%

11.9. Pobieranie prądu chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperCurCurrent()

Opis

Pobieranie prądu chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • current: Procent prądu, zakres 0~100%

11.10. Pobieranie napięcia chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperVoltage()

Opis

Pobieranie napięcia chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • voltage: Napięcie, jednostka 0.1V

11.11. Pobieranie temperatury chwytaka

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetGripperTemp()

Opis

Pobieranie temperatury chwytaka

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • temp: Temperatura, jednostka ℃

11.12. Obliczenie punktu wstępnego chwytania - wizja

Prototyp

ComputePrePick(desc_pos, zlength, zangle)

Opis

Obliczenie punktu wstępnego chwytania - wizja

Parametry wymagane

  • desc_pos: Pozycja kartezjańska punktu chwytania;

  • zlength: Przesunięcie osi Z;

  • zangle: Przesunięcie obrotu wokół osi Z

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • pre_pos: Pozycja kartezjańska punktu wstępnego

11.13. Obliczenie punktu wycofania - wizja

Prototyp

ComputePostPick(desc_pos, zlength, zangle)

Opis

Obliczenie punktu wycofania - wizja

Parametry wymagane

  • desc_pos: Pozycja kartezjańska punktu chwytania;

  • zlength: Przesunięcie osi Z;

  • zangle: Przesunięcie obrotu wokół osi Z

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • post_pos: Pozycja kartezjańska punktu wycofania

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

Nowe w wersji python: SDK-v2.0.7

Prototyp

GetGripperRotNum()

Opis

Pobieranie liczby obrotów chwytaka obrotowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • num: Liczba obrotów

11.16. Pobieranie procentu prędkości obrotowej chwytaka obrotowego

Nowe w wersji python: SDK-v2.0.7

Prototyp

GetGripperRotSpeed()

Opis

Pobieranie procentu prędkości obrotowej chwytaka obrotowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • speed: Procent prędkości obrotowej

11.17. Pobieranie procentu momentu obrotowego chwytaka obrotowego

Nowe w wersji python: SDK-v2.0.7

Prototyp

GetGripperRotTorque()

Opis

Pobieranie procentu momentu obrotowego chwytaka obrotowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • fault: 0-brak błędu, 1-jest błąd

  • torque: Procent momentu obrotowego

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

ConveyorStartEnd(status)

Opis

Uruchomienie, zatrzymanie przenośnika taśmowego

Parametry wymagane

  • status: Stan przenośnika, 1-uruchom, 0-zatrzymaj

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.20. Rejestracja punktu detekcji IO

Prototyp

ConveyorPointIORecord()

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

ConveyorPointARecord()

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

ConveyorRefPointRecord()

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

ConveyorPointBRecord()

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

ConveyorIODetect(max_t)

Opis

Detekcja IO przedmiotu na przenośniku

Parametry wymagane

  • max_t: Maksymalny czas detekcji, jednostka ms

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.25. Pobieranie bieżącej pozycji przedmiotu

Prototyp

ConveyorGetTrackData(mode)

Opis

Pobieranie bieżącej pozycji przedmiotu

Parametry wymagane

  • mode: 1-śledzenie i chwytanie 2-śledzenie ruchu 3-śledzenie TPD

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.26. Rozpoczęcie śledzenia przenośnika

Prototyp

ConveyorTrackStart(status)

Opis

Rozpoczęcie śledzenia przenośnika

Parametry wymagane

  • status: Stan, 1-uruchom, 0-zatrzymaj

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.27. Zatrzymanie śledzenia przenośnika

Prototyp

ConveyorTrackEnd()

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

ConveyorSetParam(param, followType, startDis, endDis)

Opis

Konfiguracja parametrów przenośnika

Parametry wymagane

  • param: = [encChannel,resolution,lead,wpAxis,vision,speedRadio]
    • encChannel: Kanał enkodera 1-2

    • resolution: Rozdzielczość enkodera - liczba impulsów na jeden obrót enkodera

    • lead: Przełożenie mechaniczne - odległość przejścia przenośnika na jeden obrót enkodera

    • wpAxis: Numer układu przedmiotu dla funkcji śledzenia ruchu wybierz numer układu przedmiotu, dla śledzenia chwytania, śledzenia TPD ustaw na 0

    • vision: Czy z wizją 0-nie 1-tak,

    • speedRadio: Współczynnik prędkości - dla śledzenia chwytania przenośnika zakres prędkości (1-100), dla śledzenia ruchu, śledzenia TPD ustaw na 1

  • followType: Typ śledzenia ruchu, 0-śledzenie ruchu; 1-śledzenie kontrolne

Parametry domyślne

  • startDis: Należy ustawić dla śledzenia kontrolnego, Odległość początkowa śledzenia, -1: automatyczne obliczenie (automatyczne śledzenie kontrolne po dotarciu przedmiotu pod robota), jednostka mm, wartość domyślna 0

  • endDis: Należy ustawić dla śledzenia kontrolnego, Odległość końcowa śledzenia, jednostka mm, wartość domyślna 100

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.29. Kompensacja punktu chwytania przenośnika

Prototyp

ConveyorCatchPointComp(cmp)

Opis

Kompensacja punktu chwytania przenośnika

Parametry wymagane

  • cmp: Pozycja kompensacji [x,y,z]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.30. Ruch liniowy

Prototyp

ConveyorTrackMoveL(name,tool,wobj,vel=20,acc=100,ovl=100,blendR=-1.0)

Opis

Ruch liniowy

Parametry wymagane

  • name: cvrCatchPoint lub cvrRaisePoint

  • tool: Numer narzędzia

  • wobj: Numer przedmiotu

Parametry domyślne

  • vel: Prędkość domyślnie 20

  • acc: Przyspieszenie domyślnie 100

  • ovl: Współczynnik skalowania prędkości domyślnie 100

  • blendR: [-1.0]-ruch do pozycji (blokujący), [0~1000]-promień wygładzania (nieblokujący), jednostka [mm] domyślnie -1.0

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.31. Detekcja wejścia komunikacyjnego przenośnika

Nowe w wersji python: SDK-v2.1.1

Prototyp

ConveyorComDetect(timeout)

Opis

Detekcja wejścia komunikacyjnego przenośnika

Parametry wymagane

  • timeout: Czas oczekiwania na timeout ms

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.32. Wyzwolenie detekcji wejścia komunikacyjnego przenośnika

Nowe w wersji python: SDK-v2.1.1

Prototyp

ConveyorComDetectTrigger()

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 czujnika końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

AxleSensorConfig(idCompany, idDevice, idSoftware, idBus)

Opis

Konfiguracja czujnika końcowego

Parametry wymagane

  • idCompany: Producent, 18-JUNKONG; 25-HUIDE

  • idDevice: Typ, 0-JUNKONG/RYR6T.V1.0

  • idSoftware: Wersja oprogramowania, 0-J1.0/HuiDe1.0 (tymczasowo niedostępne)

  • idBus: Pozycja podłączenia, 1-port końcowy 1; 2-port końcowy 2…8-port końcowy 8 (tymczasowo niedostępne)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.35. Pobieranie konfiguracji czujnika końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

AxleSensorConfigGet()

Opis

Pobieranie konfiguracji czujnika końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • idCompany: Producent, 18-JUNKONG; 25-HUIDE

  • idDevice: Typ, 0-JUNKONG/RYR6T.V1.0

11.36. Aktywacja czujnika końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

AxleSensorActivate(actFlag)

Opis

Aktywacja czujnika końcowego

Parametry wymagane

actFlag: 0-reset; 1-aktywacja

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • coord: Wartość układu współrzędnych [x,y,z,rx,ry,rz]

11.37. Zapis do rejestru czujnika końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

AxleSensorRegWrite(devAddr, regHAddr, regLAddr, regNum, data1, data2, isNoBlock)

Opis

Zapis do rejestru czujnika końcowego

Parametry wymagane

  • devAddr: Numer adresu urządzenia 0-255

  • regHAddr: Adres rejestru wysoki 8 bitów

  • regLAddr: Adres rejestru niski 8 bitów

  • regNum: Liczba rejestrów 0-255

  • data1: Wartość do zapisu do rejestru 1

  • data2: Wartość do zapisu do rejestru 2

  • isNoBlock: Czy blokować 0-blokujący; 1-nieblokujący

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.38. 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.39. Pobieranie protokołu urządzeń peryferyjnych robota

Nowe w wersji python: SDK-v2.0.3

Prototyp

GetExDevProtocol()

Opis

Pobieranie protokołu urządzeń peryferyjnych robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode;

  • protocol: Numer protokołu urządzeń peryferyjnych robota 4096-karta sterująca osią rozszerzenia; 4097-ModbusSlave; 4098-ModbusMaster

11.40. Ustawianie protokołu urządzeń peryferyjnych robota

Nowe w wersji python: SDK-v2.0.3

Prototyp

SetExDevProtocol(protocol)

Opis

Ustawianie protokołu urządzeń peryferyjnych robota

Parametry wymagane

  • protocol: Numer protokołu urządzeń peryferyjnych robota 4096-karta sterująca osią rozszerzenia; 4097-ModbusSlave; 4098-ModbusMaster

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.41. 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.42. Pobieranie parametrów komunikacji końcowej

Nowe w wersji python: SDK-v2.0.5

Prototyp

GetAxleCommunicationParam()

Opis

Pobieranie parametrów komunikacji końcowej

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • baudRate: Prędkość transmisji: obsługiwane 1-9600, 2-14400, 3-19200, 4-38400, 5-56000, 6-67600, 7-115200, 8-128000

  • dataBit: Bity danych: obsługiwane (8,9), obecnie często używane 8

  • stopBit: Bity stopu: 1-1, 2-0.5, 3-2, 4-1.5, obecnie często używane 1

  • verify: Bit parzystości: 0-None, 1-Odd, 2-Even, obecnie często używane 0

  • timeout: Czas timeout: 1~1000 ms, wartość ta musi być odpowiednio dostosowana do urządzenia peryferyjnego

  • timeoutTimes: Liczba timeoutów: 1~10, głównie do ponownego wysyłania po czasie, aby zmniejszyć sporadyczne anomalie i poprawić doświadczenie użytkownika

  • period: Odstęp czasu instrukcji okresowych: 1~1000 ms, głównie dla odstępu czasu każdego wysyłania instrukcji okresowych

11.43. Ustawianie parametrów komunikacji końcowej

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetAxleCommunicationParam(baudRate, dataBit, stopBit, verify, timeout, timeoutTimes, period)

Opis

Ustawianie parametrów komunikacji końcowej

Parametry wymagane

  • baudRate: Prędkość transmisji: obsługiwane 1-9600, 2-14400, 3-19200, 4-38400, 5-56000, 6-67600, 7-115200, 8-128000

  • dataBit: Bity danych: obsługiwane (8,9), obecnie często używane 8

  • stopBit: Bity stopu: 1-1, 2-0.5, 3-2, 4-1.5, obecnie często używane 1

  • verify: Bit parzystości: 0-None, 1-Odd, 2-Even, obecnie często używane 0

  • timeout: Czas timeout: 1~1000 ms, wartość ta musi być odpowiednio dostosowana do urządzenia peryferyjnego

  • timeoutTimes: Liczba timeoutów: 1~10, głównie do ponownego wysyłania po czasie, aby zmniejszyć sporadyczne anomalie i poprawić doświadczenie użytkownika

  • period: Odstęp czasu instrukcji okresowych: 1~1000 ms, głównie dla odstępu czasu każdego wysyłania instrukcji okresowych

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.44. Ustawianie typu transferu pliku końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetAxleFileType(type)

Opis

Ustawianie typu transferu pliku końcowego

Parametry wymagane

  • type: 1-plik aktualizacji MCU, 2-plik LUA

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.45. Ustawianie włączenia wykonania LUA końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetAxleLuaEnable(enable)

Opis

Ustawianie włączenia wykonania LUA końcowego

Parametry wymagane

  • enable: 0-niewłączony; 1-włączony

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.46. Odnowienie błędu wyjątkowego pliku LUA końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetRecoverAxleLuaErr(enable)

Opis

Odnowienie błędu wyjątkowego pliku LUA końcowego

Parametry wymagane

  • status: 0-nie odnawiaj; 1-odnów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.47. Pobieranie stanu włączenia wykonania LUA końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

GetAxleLuaEnableStatus()

Opis

Pobieranie stanu włączenia wykonania LUA końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • enable: 0-niewłączony; 1-włączony

11.48. Ustawianie typu włączenia urządzenia końcowego LUA

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetAxleLuaEnableDeviceType(forceSensorEnable, gripperEnable, IOEnable)

Opis

Ustawianie typu włączenia urządzenia końcowego LUA

Parametry wymagane

  • forceSensorEnable: Stan włączenia czujnika siły, 0-niewłączony; 1-włączony

  • gripperEnable: Stan włączenia chwytaka, 0-niewłączony; 1-włączony

  • IOEnable: Stan włączenia urządzenia IO, 0-niewłączony; 1-włączony

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.49. Pobieranie typu włączenia urządzenia końcowego LUA

Nowe w wersji python: SDK-v2.0.5

Prototyp

GetAxleLuaEnableDeviceType()

Opis

Pobieranie typu włączenia urządzenia końcowego LUA

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • forceSensorEnable: Stan włączenia czujnika siły, 0-niewłączony; 1-włączony

  • gripperEnable: Stan włączenia chwytaka, 0-niewłączony; 1-włączony

  • IOEnable: Stan włączenia urządzenia IO, 0-niewłączony; 1-włączony

11.50. Pobieranie aktualnie skonfigurowanego urządzenia końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

GetAxleLuaEnableDevice()

Opis

Pobieranie aktualnie skonfigurowanego urządzenia końcowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • forceSensorEnable[8]: Stan włączenia czujnika siły, 0-niewłączony; 1-włączony

  • gripperEnable[8]: Stan włączenia chwytaka, 0-niewłączony; 1-włączony

  • IOEnable[8]: Stan włączenia urządzenia IO, 0-niewłączony; 1-włączony

11.51. Ustawianie włączenia funkcji sterowania ruchem chwytaka

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetAxleLuaGripperFunc(id, func)

Opis

Ustawianie włączenia funkcji sterowania ruchem chwytaka

Parametry wymagane

  • id: Numer urządzenia chwytaka

  • func: 0-włączenie chwytaka; 1-inicjalizacja chwytaka; 2-ustawienie pozycji; 3-ustawienie prędkości; 4-ustawienie momentu; 6-odczyt stanu chwytaka; 7-odczyt stanu inicjalizacji; 8-odczyt kodu błędu; 9-odczyt pozycji; 10-odczyt prędkości; 11-odczyt momentu, 12-15 zarezerwowane

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.52. Pobieranie włączenia funkcji sterowania ruchem chwytaka

Nowe w wersji python: SDK-v2.0.5

Prototyp

GetAxleLuaGripperFunc(id)

Opis

Pobieranie włączenia funkcji sterowania ruchem chwytaka

Parametry wymagane

  • id: Numer urządzenia chwytaka

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • func: 0-włączenie chwytaka; 1-inicjalizacja chwytaka; 2-ustawienie pozycji; 3-ustawienie prędkości; 4-ustawienie momentu; 6-odczyt stanu chwytaka; 7-odczyt stanu inicjalizacji; 8-odczyt kodu błędu; 9-odczyt pozycji; 10-odczyt prędkości; 11-odczyt momentu, 12-15 zarezerwowane

11.53. Zapis pliku węzła podrzędnego Ethercat robota

Nowe w wersji python: SDK-v2.0.5

Prototyp

SlaveFileWrite(type,slaveID,fileName)

Opis

Zapis pliku węzła podrzędnego Ethercat robota

Parametry wymagane

  • type: Typ pliku węzła podrzędnego, 1-plik aktualizacji węzła podrzędnego; 2-plik konfiguracyjny węzła podrzędnego

  • slaveID: Numer węzła podrzędnego

  • fileName: Nazwa przesyłanego pliku

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.54. Przesłanie pliku protokołu otwartego LUA końcowego

Nowe w wersji python: SDK-v2.0.5

Prototyp

AxleLuaUpload(filePath)

Opis

Przesłanie pliku protokołu otwartego LUA końcowego

Parametry wymagane

  • filePath: Ścieżka lokalnego pliku lua …/AXLE_LUA_End_DaHuan.lua

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.55. Wprowadzenie węzła podrzędnego Ethercat robota w tryb boot

Nowe w wersji python: SDK-v2.0.5

Prototyp

SetSysServoBootMode(filePath)

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.56. 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.57. Pobieranie stanu przycisków SmartTool

Nowe w wersji python: SDK-v2.1.2

Prototyp

GetSmarttoolBtnState()

Opis

Pobieranie stanu przycisków SmartTool

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • state: Stan przycisków uchwytu SmartTool; (bit0:0-komunikacja normalna; 1-utrata komunikacji; bit1-cofnij operację; bit2-wyczyść program; bit3-przycisk A; bit4-przycisk B; bit5-przycisk C; bit6-przycisk D; bit7-przycisk E; bit8-przycisk IO; bit9-ręczny/automatyczny; bit10-start)

11.58. 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.59. Ustawianie wykrywania siły obciążenia przed włączeniem przeciągania

Nowe w wersji python: SDK-v2.1.6

Prototyp

SetTorqueDetectionSwitch(flag)

Opis

Ustawianie wykrywania siły obciążenia przed włączeniem przeciągania

Parametry wymagane

  • flag: 0-wyłączone; 1-włączone

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.60. Funkcja włączania/wyłączania urządzenia peryferyjnego laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingLaserOnOff(OnOff, weldId)

Opis

Funkcja włączania/wyłączania urządzenia peryferyjnego laserowego

Parametry wymagane

  • OnOff: 0-wyłączone; 1-włączone

Parametry domyślne

  • weldId: ID spoiny domyślnie 0

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.61. Funkcja rozpoczęcia/zakończenia śledzenia laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingTrackOnOff(OnOff, coordId)

Opis

Funkcja rozpoczęcia/zakończenia śledzenia laserowego

Parametry wymagane

  • OnOff: 0-wyłączone; 1-włączone

  • coordId: Numer układu narzędzia urządzenia peryferyjnego laserowego

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.62. Poszukiwanie pozycji laserowej - stały kierunek

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingSearchStart_xyz(direction, vel, distance, timeout, posSensorNum)

Opis

Poszukiwanie pozycji laserowej - stały kierunek

Parametry wymagane

  • direction: 0-x+ 1-x- 2-y+ 3-y- 4-z+ 5-z-

  • vel: Prędkość jednostka%

  • distance: Maksymalna odległość poszukiwania jednostka mm

  • timeout: Czas timeout poszukiwania jednostka ms

  • posSensorNum: Numer narzędzia skalibrowanego lasera

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.63. Poszukiwanie pozycji laserowej - dowolny kierunek

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingSearchStart_point(directionPoint, vel, distance, timeout, posSensorNum)

Opis

Poszukiwanie pozycji laserowej - dowolny kierunek

Parametry wymagane

  • directionPoint: Współrzędne xyz punktu wejściowego poszukiwania, [x,y,z]

  • vel: Prędkość jednostka%

  • distance: Maksymalna odległość poszukiwania jednostka mm

  • timeout: Czas timeout poszukiwania jednostka ms

  • posSensorNum: Numer narzędzia skalibrowanego lasera

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.64. Konfiguracja IP lasera

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingSensorConfig(ip, port)

Opis

Konfiguracja IP lasera

Parametry wymagane

  • ip: Adres IP urządzenia peryferyjnego laserowego

  • port: Numer portu urządzenia peryferyjnego laserowego

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.65. Konfiguracja okresu próbkowania urządzenia peryferyjnego laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserTrackingSensorSamplePeriod(period)

Opis

Konfiguracja okresu próbkowania urządzenia peryferyjnego laserowego

Parametry wymagane

  • period: Okres próbkowania urządzenia peryferyjnego laserowego jednostka ms

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.66. Ładowanie sterownika urządzenia peryferyjnego laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

LoadPosSensorDriver(type)

Opis

Ładowanie sterownika urządzenia peryferyjnego laserowego

Parametry wymagane

  • type: Typ protokołu sterownika urządzenia peryferyjnego laserowego 101-RuiNiu 102-ChuangXiang 103-QuanShi 104-TongZhou 105-AoTai

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.67. Rozładowanie sterownika urządzenia peryferyjnego laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

UnLoadPosSensorDriver()

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.68. Rejestracja ścieżki spoiny laserowej

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserSensorRecord1(status, delayTime)

Opis

Rejestracja ścieżki spoiny laserowej

Parametry wymagane

  • status: 0-zatrzymaj rejestrację 1-śledzenie w czasie rzeczywistym 2-rozpocznij rejestrację

  • delayTime: Czas opóźnienia jednostka ms

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.69. Odtwarzanie ścieżki spoiny laserowej

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserSensorReplay(delayTime, speed)

Opis

Odtwarzanie ścieżki spoiny laserowej

Parametry wymagane

  • delayTime: Czas opóźnienia jednostka ms

  • speed: Prędkość jednostka%

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.70. Odtwarzanie śledzenia laserowego

Nowe w wersji python: SDK-v2.1.6

Prototyp

MoveLTR()

Opis

Odtwarzanie śledzenia laserowego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.71. Odtwarzanie ścieżki spoiny laserowej

Nowe w wersji python: SDK-v2.1.6

Prototyp

LaserSensorRecordandReplay(delayMode, delayTime, delayDisExAxisNum, delayDis, sensitivePara, int trackMode, int triggerMode, double runTime, speed)

Opis

Odtwarzanie ścieżki spoiny laserowej

Parametry wymagane

  • delayMode: Tryb 0-czas opóźnienia 1-odległość opóźnienia

  • delayTime: Czas opóźnienia jednostka ms

  • delayDisExAxisNum: Numer osi rozszerzenia opóźnienia

  • delayDis: Odległość opóźnienia jednostka mm

  • sensitivePara: Współczynnik czułości kompensacji

  • trackMode: Typ śledzenia punktowego. 0-ruch asynchroniczny osi rozszerzenia; 1-robot

  • triggerMode: Sposób wyzwalania śledzenia punktowego. 0-czas śledzenia; 1-IO

  • runTime: Czas śledzenia punktowego robota (s)

  • speed: Prędkość jednostka%

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.72. Ruch do początku zapisu ścieżki spoiny

Nowe w wersji python: SDK-v2.1.6

Prototyp

MoveToLaserRecordStart(moveType, ovl)

Opis

Ruch do początku zapisu ścieżki spoiny

Parametry wymagane

  • moveType: 0-PTP 1-LIN

  • ovl: Prędkość jednostka%

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.73. Ruch do końca zapisu ścieżki spoiny

Nowe w wersji python: SDK-v2.1.6

Prototyp

MoveToLaserRecordEnd(moveType, ovl)

Opis

Ruch do końca zapisu ścieżki spoiny

Parametry wymagane

  • moveType: 0-PTP 1-LIN

  • ovl: Prędkość jednostka%

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.74. Ruch do punktu poszukiwanego przez czujnik laserowy

Nowe w wersji python: SDK-v2.1.6

Prototyp

MoveToLaserSeamPos(moveFlag, ovl, dataFlag, plateType, trackOffectType, offset)

Opis

Ruch do punktu poszukiwanego przez czujnik laserowy

Parametry wymagane

  • moveFlag: Typ ruchu: 0-PTP; 1-LIN

  • ovl: Współczynnik skalowania prędkości, 0-100

  • dataFlag: Wybór danych bufora spoiny: 0-wykonaj dane planowania; 1-wykonaj dane zapisu

  • plateType: Typ blachy: 0-blacha falista; 1-blacha trapezowa; 2-blacha ogrodzeniowa; 3-beczka; 4-stal pancerzowa falista

  • trackOffectType: Typ przesunięcia czujnika laserowego: 0-bez przesunięcia; 1-przesunięcie w układzie bazowym; 2-przesunięcie w układzie narzędzia; 3-przesunięcie surowych danych czujnika laserowego

  • offset: Wartość przesunięcia

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.75. Pobieranie informacji o współrzędnych punktu poszukiwanego przez czujnik laserowy

Nowe w wersji python: SDK-v2.1.6

Prototyp

GetLaserSeamPos(trackOffectType, offset)

Opis

Pobieranie informacji o współrzędnych punktu poszukiwanego przez czujnik laserowy

Parametry wymagane

  • trackOffectType: Typ przesunięcia czujnika laserowego: 0-bez przesunięcia; 1-przesunięcie w układzie bazowym; 2-przesunięcie w układzie narzędzia; 3-przesunięcie surowych danych czujnika laserowego

  • offset: Wartość przesunięcia

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • jPos: Pozycja przegubów [°]

  • descPos: Pozycja kartezjańska [mm]

  • tool: Układ narzędzia

  • user: Układ przedmiotu

  • exaxis: Pozycja osi rozszerzenia [mm]

11.76. 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.77. 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.78. 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.79. 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.80. Sterowanie matrycową przyssawką

Nowe w wersji python: SDK-v2.1.5

Prototyp

SetSuckerCtrl(slaveID, len, ctrlValue)

Opis

Sterowanie matrycową przyssawką

Parametry wymagane

  • slaveID: Numer węzła podrzędnego

  • len: Długość

  • ctrlValue: Wartość sterowania 1-zassanie z maksymalnym podciśnieniem 2-zassanie z ustawionym podciśnieniem 3-zatrzymanie zassania

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.81. Pobieranie stanu matrycowej przyssawki

Nowe w wersji python: SDK-v2.1.5

Prototyp

GetSuckerState(slaveID)

Opis

Pobieranie stanu matrycowej przyssawki

Parametry wymagane

  • slaveID: Numer węzła podrzędnego

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • state: Stan przyssania 0-zwolnienie przedmiotu 1-wykryto pomyślne przyssanie przedmiotu 2-brak przyssania przedmiotu 3-oderwanie przedmiotu

  • pressValue: Bieżące podciśnienie jednostka kpa

  • error: Bieżący kod błędu przyssawki

11.82. Oczekiwanie na stan przyssawki

Nowe w wersji python: SDK-v2.1.5

Prototyp

WaitSuckerState(slaveID, state, ms)

Opis

Oczekiwanie na stan przyssawki

Parametry wymagane

  • slaveID: Numer węzła podrzędnego

  • state: Stan przyssania 0-zwolnienie przedmiotu 1-wykryto pomyślne przyssanie przedmiotu 2-brak przyssania przedmiotu 3-oderwanie przedmiotu

  • ms: Maksymalny czas oczekiwania

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.83. Przykład kodu instrukcji sterowania matrycową przyssawką

Nowe 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.84. Przesłanie pliku LUA protokołu otwartego

Nowe w wersji python: SDK-v2.1.5

Prototyp

OpenLuaUpload(filePath)

Opis

Przesłanie pliku LUA protokołu otwartego

Parametry wymagane

  • filePath: Ścieżka lokalnego pliku lua protokołu otwartego

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.85. Pobieranie parametrów karty węzła podrzędnego

Nowe w wersji python: SDK-v2.1.5

Prototyp

GetFieldBusConfig()

Opis

Pobieranie parametrów karty węzła podrzędnego

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • type: 0-Ethercat, 1-CClink, 3-Ethercat, 4-EIP

  • version: Wersja protokołu

  • connState: 0-niepołączony 1-połączony

11.86. Zapis DO węzła podrzędnego

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveWriteDO(DOIndex, wirteNum, status)

Opis

Zapis DO węzła podrzędnego

Parametry wymagane

  • DOIndex: Numer DO

  • wirteNum: Liczba do zapisu

  • status: Wartości do zapisu, maksymalnie 8

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.87. Zapis AO węzła podrzędnego

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveWriteAO(AOIndex, wirteNum, status)

Opis

Zapis AO węzła podrzędnego

Parametry wymagane

  • AOIndex: Numer AO

  • wirteNum: Liczba do zapisu

  • status: Wartości do zapisu, maksymalnie 8

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.88. Odczyt DI węzła podrzędnego

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveReadDI(DOIndex, readeNum)

Opis

Odczyt DI węzła podrzędnego

Parametry wymagane

  • DOIndex: Numer DI

  • readeNum: Liczba do odczytu

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • status[8]: Odczytane wartości, maksymalnie 8

11.89. Odczyt AI węzła podrzędnego

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveReadAI(AOIndex, readeNum)

Opis

Odczyt AI węzła podrzędnego

Parametry wymagane

  • AOIndex: Numer AI

  • readeNum: Liczba do odczytu

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • status[8]: Odczytane wartości, maksymalnie 8

11.90. Oczekiwanie na wejście rozszerzonego DI

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveWaitDI(DIIndex, status, waitMs)

Opis

Oczekiwanie na wejście rozszerzonego DI

Parametry wymagane

  • DIIndex: Numer DI

  • status: 0-niski poziom; 1-wysoki poziom

  • waitMs: Maksymalny czas oczekiwania (ms)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.91. Oczekiwanie na wejście rozszerzonego AI

Nowe w wersji python: SDK-v2.1.5

Prototyp

FieldBusSlaveWaitAI(AIIndex, waitType, value, waitMs)

Opis

Oczekiwanie na wejście rozszerzonego AI

Parametry wymagane

  • AIIndex: Numer AI

  • waitType: 0-większe niż; 1-mniejsze niż

  • value: Wartość AI

  • waitMs: Maksymalny czas oczekiwania (ms)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.92. Przykład kodu instrukcji interfejsów trybu węzła podrzędnego

Nowe 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.93. Interfejs SDK włączania/wyłączania funkcji przezroczystej transmisji końcowej

Prototyp

SetAxleGenComEnable(mode)

Opis

Włączenie ogólnej funkcji przezroczystej transmisji końcowej

Parametry wymagane

  • mode: Włączenie, 0-wyłączone, 1-włączone

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.94. Interfejs SDK wysyłania i odbierania danych aperiodycznych funkcji przezroczystej transmisji końcowej

Prototyp

SndRcvAxleGenComCmdData( len_snd, sndBuff, len_rcv)

Opis

Wysłanie danych aperiodycznych przez końcówkę i oczekiwanie na odpowiedź

Parametry wymagane

  • len_snd: Długość wysyłania;

  • sndBuff[]: Dane wysyłane;

  • len_rcv: Wybór długości odbioru;

  • rcvBuff[]: Dane odpowiedzi;

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.95. 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.96. Pobranie pliku LUA protokołu otwartego

Prototyp

OpenLuaDownload(fileName, savePath)

Opis

Pobranie pliku LUA protokołu otwartego

Parametry wymagane

  • fileName: Nazwa pliku protokołu otwartego CtrlDev_XXX.lua;

  • savePath: Ścieżka zapisu pliku protokołu otwartego;

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.97. Usunięcie określonego pliku LUA protokołu otwartego

Prototyp

OpenLuaDelete(fileName)

Opis

Usunięcie określonego pliku LUA protokołu otwartego

Parametry wymagane

  • fileName: Nazwa pliku lua protokołu otwartego do usunięcia CtrlDev_XXX.lua

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

11.98. Usunięcie wszystkich plików LUA protokołu otwartego

Prototyp

AllOpenLuaDelete()

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.99. 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)