5. Roboter-I/O

5.1. Digitalausgang des Steuerkastens setzen

Prototyp

SetDO(id, status, smooth=0, block=0)

Beschreibung

Digitalausgang des Steuerkastens setzen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~15]

  • status: 0 = aus, 1 = ein

Standardparameter

  • smooth: 0 = nicht glätten, 1 = glätten, Standard = 0

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.2. Digitalausgang des Werkzeugs setzen

Prototyp

SetToolDO(id, status, smooth=0, block=0)

Beschreibung

Digitalausgang des Werkzeugs setzen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

  • status: 0 = aus, 1 = ein

Standardparameter

  • smooth: 0 = nicht glätten, 1 = glätten, Standard = 0

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.3. Analogausgang des Steuerkastens setzen

Prototyp

SetAO(id, value, block=0)

Beschreibung

Analogausgang des Steuerkastens setzen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

  • value: Prozentwert des Stroms oder der Spannung, Bereich [0~100%] entspricht [0~20mA] oder [0~10V]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.4. Analogausgang des Werkzeugs setzen

Prototyp

SetToolAO(id, value, block=0)

Beschreibung

Analogausgang des Werkzeugs setzen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0]

  • value: Prozentwert des Stroms oder der Spannung, Bereich [0~100%] entspricht [0~20mA] oder [0~10V]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.5. Codebeispiel zum Setzen von Digital- und Analogausgängen

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5status = 1
 6smooth = 0
 7block = 0
 8for i in range(16):
 9    robot.SetDO(i, status, smooth, block)
10    time.sleep(0.3)
11status = 0
12for i in range(16):
13    robot.SetDO(i, status, smooth, block)
14    time.sleep(0.3)
15status = 1
16for i in range(2):
17    robot.SetToolDO(i, status, smooth, block)
18    time.sleep(1)
19status = 0
20for i in range(2):
21    robot.SetToolDO(i, status, smooth, block)
22    time.sleep(1)
23for i in range(100):
24    robot.SetAO(0, i, block)
25    time.sleep(0.03)
26for i in range(100):
27    robot.SetToolAO(0, i, block)
28    time.sleep(0.03)
29robot.CloseRPC()

5.6. Digitaleingang des Steuerkastens abrufen

Prototyp

GetDI(id, block=0)

Beschreibung

Digitaleingang des Steuerkastens abrufen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~15]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • di: 0 = niedriger Pegel, 1 = hoher Pegel

5.7. Digitaleingang des Werkzeugs abrufen

Prototyp

GetToolDI(id, block=0)

Beschreibung

Digitaleingang des Werkzeugs abrufen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • di: 0 = niedriger Pegel, 1 = hoher Pegel

5.8. Analogeingang des Steuerkastens abrufen

Prototyp

GetAI(id, block=0)

Beschreibung

Analogeingang des Steuerkastens abrufen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • value: Prozentwert des Eingangsstroms oder der -spannung, Bereich [0~100] entspricht [0~20mA] oder [0~10V]

5.9. Analogeingang des Werkzeugs abrufen

Prototyp

GetToolAI(id, block=0)

Beschreibung

Analogeingang des Endeffektors abrufen

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0]

Standardparameter

  • block: 0 = blockierend, 1 = nicht blockierend, Standard = 0

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • value: Prozentwert des Eingangsstroms oder der -spannung, Bereich [0~100] entspricht [0~20mA] oder [0~10V]

5.10. Status der Aufnahmetaste am Roboterende abrufen

Prototyp

GetAxlePointRecordBtnState()

Beschreibung

Status der Aufnahmetaste am Roboterende abrufen

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • buttonstatus: Tastenstatus, 0 = gedrückt, 1 = losgelassen

5.11. Ausgangszustand des Werkzeug-DO abrufen

Prototyp

GetToolDO()

Beschreibung

Ausgangszustand des Werkzeug-DO abrufen

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • do_state: DO-Ausgangszustand, do0~do1 entsprechen Bit1~Bit2, beginnend bei Bit0

5.12. Ausgangszustand des Robotercontroller-DO abrufen

Prototyp

GetDO()

Beschreibung

Ausgangszustand des Robotercontroller-DO abrufen

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • do_state_h: DO-Ausgangszustand, co0~co7 entsprechen Bit0~Bit7

5.13. Codebeispiel zum Abrufen von DI- und DO-Status

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5block = 0
 6error,di = robot.GetDI(0, block)
 7print(f"di0: {di}")
 8error,tool_di = robot.GetToolDI(1, block)
 9print(f"tool_di1: {tool_di}")
10error,ai = robot.GetAI(0, block)
11print(f"ai0: {ai:.2f}")
12error,tool_ai = robot.GetToolAI(0, block)
13print(f"tool_ai0: {tool_ai:.2f}")
14error,button_state = robot.GetAxlePointRecordBtnState()
15print(f"_button_state is: {button_state}")
16error,tool_do_state = robot.GetToolDO()
17print(f"tool DO state: {tool_do_state}")
18error,[do_state_h, do_state_l] = robot.GetDO()
19print(f"DO state hight  : {do_state_h}")
20print(f"DO state low : {do_state_l}")
21robot.CloseRPC()

5.14. Auf Digitaleingang des Steuerkastens warten

Prototyp

WaitDI(id, status, maxtime, opt)

Beschreibung

Auf Digitaleingang des Steuerkastens warten

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~15]

  • status: 0 = aus, 1 = ein

  • maxtime: Maximale Wartezeit [ms]

  • opt: Strategie bei Timeout: 0 = Programm stoppen und Timeout melden, 1 = Timeout ignorieren und Programm fortsetzen, 2 = unbegrenzt warten

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.15. Auf mehrere Digitaleingänge des Steuerkastens warten

Prototyp

WaitMultiDI(mode, id, status, maxtime, opt)

Beschreibung

Auf mehrere Digitaleingänge des Steuerkastens warten

Erforderliche Parameter

  • mode: 0 = UND-Verknüpfung, 1 = ODER-Verknüpfung

  • id: IO-Nummern als Bitmaske: Bit0~Bit7 für DI0~DI7, Bit8~Bit15 für CI0~CI7

  • status: Erwarteter Zustand als Bitmaske: Bit0~Bit7 für DI0~DI7, Bit8~Bit15 für CI0~CI7, Bit = 0 = aus, Bit = 1 = ein

  • maxtime: Maximale Wartezeit [ms]

  • opt: Strategie bei Timeout: 0 = Programm stoppen und Timeout melden, 1 = Timeout ignorieren und Programm fortsetzen, 2 = unbegrenzt warten

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.16. Auf Digitaleingang des Werkzeugs warten

Prototyp

WaitToolDI(id, status, maxtime, opt)

Beschreibung

Auf Digitaleingang des Endeffektors warten

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

  • status: 0 = aus, 1 = ein

  • maxtime: Maximale Wartezeit [ms]

  • opt: Strategie bei Timeout: 0 = Programm stoppen und Timeout melden, 1 = Timeout ignorieren und Programm fortsetzen, 2 = unbegrenzt warten

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.17. Auf Analogeingang des Steuerkastens warten

Prototyp

WaitAI(id, sign, value, maxtime, opt)

Beschreibung

Auf Analogeingang des Steuerkastens warten

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0~1]

  • sign: 0 = größer als, 1 = kleiner als

  • value: Prozentwert des Eingangsstroms oder der -spannung, Bereich [0~100] entspricht [0~20mA] oder [0~10V]

  • maxtime: Maximale Wartezeit [ms]

  • opt: Strategie bei Timeout: 0 = Programm stoppen und Timeout melden, 1 = Timeout ignorieren und Programm fortsetzen, 2 = unbegrenzt warten

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.18. Auf Analogeingang des Werkzeugs warten

Prototyp

WaitToolAI(id, sign, value, maxtime, opt)

Beschreibung

Auf Analogeingang des Endeffektors warten

Erforderliche Parameter

  • id: IO-Nummer, Bereich [0]

  • sign: 0 = größer als, 1 = kleiner als

  • value: Prozentwert des Eingangsstroms oder der -spannung, Bereich [0~100] entspricht [0~20mA] oder [0~10V]

  • maxtime: Maximale Wartezeit [ms]

  • opt: Strategie bei Timeout: 0 = Programm stoppen und Timeout melden, 1 = Timeout ignorieren und Programm fortsetzen, 2 = unbegrenzt warten

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.19. Codebeispiel zum Warten auf digitale und analoge Eingangssignale

 1from fairino import Robot
 2# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 3robot = Robot.RPC('192.168.58.2')
 4status = 1
 5smooth = 0
 6block = 0
 7for i in range(16):
 8    robot.SetDO(i, status, smooth, block)
 9    time.sleep(0.3)
10status = 0
11for i in range(16):
12    robot.SetDO(i, status, smooth, block)
13    time.sleep(0.3)
14status = 1
15for i in range(2):
16    robot.SetToolDO(i, status, smooth, block)
17    time.sleep(1)
18status = 0
19for i in range(2):
20    robot.SetToolDO(i, status, smooth, block)
21    time.sleep(1)
22for i in range(100):
23    robot.SetAO(0, i, block)
24    time.sleep(0.03)
25for i in range(100):
26    robot.SetToolAO(0, i, block)
27    time.sleep(0.03)
28block = 0
29error,di = robot.GetDI(0, block)
30print(f"di0: {di}")
31error,tool_di = robot.GetToolDI(1, block)
32print(f"tool_di1: {tool_di}")
33error,ai = robot.GetAI(0, block)
34print(f"ai0: {ai:.2f}")
35error,tool_ai = robot.GetToolAI(0, block)
36print(f"tool_ai0: {tool_ai:.2f}")
37error,button_state = robot.GetAxlePointRecordBtnState()
38print(f"_button_state is: {button_state}")
39error,tool_do_state = robot.GetToolDO()
40print(f"tool DO state: {tool_do_state}")
41error, [do_state_h, do_state_l] = robot.GetDO()
42print(f"DO state high: {do_state_h}")
43print(f"DO state low: {do_state_l}")
44rtn = robot.WaitDI(0, 1, 1000, 1)
45print(f"WaitDI over; rtn is: {rtn}")
46rtn = robot.WaitMultiDI(1, 3, 3, 1000, 1)
47print(f"WaitDI over; rtn is: {rtn}")
48rtn = robot.WaitToolDI(1, 1, 1000, 1)
49print(f"WaitDI over; rtn is: {rtn}")
50rtn = robot.WaitAI(0, 0, 50, 1000, 1)
51print(f"WaitDI over; rtn is: {rtn}")
52rtn = robot.WaitToolAI(0, 0, 50, 1000, 1)
53print(f"WaitDI over; rtn is: {rtn}")
54robot.CloseRPC()

5.20. Festlegen, ob der Steuerkasten-DO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetCtlBoxDO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der Steuerkasten-DO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.21. Festlegen, ob der Steuerkasten-AO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetCtlBoxAO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der Steuerkasten-AO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.22. Festlegen, ob der Werkzeug-DO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetAxleDO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der Werkzeug-DO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.23. Festlegen, ob der Werkzeug-AO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetAxleAO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der Werkzeug-AO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.24. Festlegen, ob der erweiterte DO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetExtDO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der erweiterte DO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.25. Festlegen, ob der erweiterte AO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetExtAO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der erweiterte AO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.26. Festlegen, ob der SmartTool-DO nach Stopp/Pause zurückgesetzt wird

Neu in Version Python: SDK-v2.0.5

Prototyp

SetOutputResetSmartToolDO(resetFlag, reloadFlag)

Beschreibung

Festlegen, ob der SmartTool-DO nach Stopp/Pause zurückgesetzt wird

Erforderliche Parameter

  • resetFlag: 0 = nicht zurücksetzen, 1 = zurücksetzen

  • reloadFlag: Ob nach Pausenfortsetzung neu geladen wird: 0 = nicht laden, 1 = laden

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

5.27. Codebeispiel zum Festlegen des Ausgangs-Rücksetzverhaltens nach Stopp/Pause für LUA-Programme

 1from fairino import Robot
 2import time
 3robot = Robot.RPC('192.168.58.2')
 4for i in range(16):
 5    robot.SetDO(i, 1, 0, 0)
 6    time.sleep(0.2)
 7resetFlag = 0
 8resumeReloadFlag = 0
 9rtn = robot.SetOutputResetCtlBoxDO(resetFlag, resumeReloadFlag)
10robot.SetOutputResetCtlBoxAO(resetFlag, resumeReloadFlag)
11robot.SetOutputResetAxleDO(resetFlag, resumeReloadFlag)
12robot.SetOutputResetAxleAO(resetFlag, resumeReloadFlag)
13robot.SetOutputResetExtDO(resetFlag, resumeReloadFlag)
14robot.SetOutputResetExtAO(resetFlag, resumeReloadFlag)
15robot.SetOutputResetSmartToolDO(resetFlag, resumeReloadFlag)
16robot.ProgramLoad("/fruser/test.lua")
17robot.ProgramRun()
18time.sleep(2)
19robot.PauseMotion()
20time.sleep(2)
21robot.ResumeMotion()
22time.sleep(2)
23robot.CloseRPC()
24return 0