5. IO Robot
5.1. Impostare Uscite Digitali Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta uscite digitali box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.2. Impostare Uscite Digitali Utensile
Prototipo |
|
|---|---|
Descrizione |
Imposta uscite digitali utensile |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.3. Impostare Uscite Analogiche Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta uscite analogiche box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.4. Impostare Uscite Analogiche Utensile
Prototipo |
|
|---|---|
Descrizione |
Imposta uscite analogiche utensile |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.5. Esempio Codice Impostazione Uscite Digitali/Analogiche
1from fairino import Robot
2import time
3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
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. Ottenere Ingressi Digitali Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene ingressi digitali box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
|
5.7. Ottenere Ingressi Digitali Utensile
Prototipo |
|
|---|---|
Descrizione |
Ottiene ingressi digitali utensile |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
Codice errore successo-0 fallimento- errcode
- |
5.8. Ottenere Ingressi Analogici Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene ingressi analogici box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
|
5.9. Ottenere Ingressi Analogici Utensile
Prototipo |
|
|---|---|
Descrizione |
Ottiene ingressi analogici terminale |
Parametri Obbligatori |
|
Parametri Predefiniti |
|
Valore Ritorno |
|
5.10. Ottenere Stato Pulsante Registrazione Punto Terminale Robot
Prototipo |
|
|---|---|
Descrizione |
Ottiene stato pulsante registrazione punto terminale robot |
Parametri Obbligatori |
Nessuno |
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
|
5.11. Ottenere Stato Uscite DO Terminale Robot
Prototipo |
|
|---|---|
Descrizione |
Ottiene stato uscite DO terminale robot |
Parametri Obbligatori |
Nessuno |
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
|
5.12. Ottenere Stato Uscite DO Controller Robot
Prototipo |
|
|---|---|
Descrizione |
Ottiene stato uscite DO controller robot |
Parametri Obbligatori |
Nessuno |
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
|
5.13. Esempio Codice Stato DI, DO Robot
1from fairino import Robot
2import time
3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
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. Attendere Ingressi Digitali Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Attende ingressi digitali box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.15. Attendere Ingressi Digitali Multipli Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Attende ingressi digitali multipli box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.16. Attendere Ingressi Digitali Utensile
Prototipo |
|
|---|---|
Descrizione |
Attende ingressi digitali terminale |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.17. Attendere Ingressi Analogici Box Controllo
Prototipo |
|
|---|---|
Descrizione |
Attende ingressi analogici box controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.18. Attendere Ingressi Analogici Utensile
Prototipo |
|
|---|---|
Descrizione |
Attende ingressi analogici terminale |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore Ritorno |
Codice errore successo-0 fallimento- errcode |
5.19. Esempio Codice Attesa Segnali Input Digitali/Analogici Box Controllo
1from fairino import Robot
2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
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 hight : {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. Imposta Se Output DO Scatola Controllo Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output DO della scatola di controllo si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.21. Imposta Se Output AO Scatola Controllo Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output AO della scatola di controllo si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.22. Imposta Se Output DO Utensile Terminale Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output DO dell’utensile terminale si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.23. Imposta Se Output AO Utensile Terminale Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output AO dell’utensile terminale si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.24. Imposta Se Output DO Esteso Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output DO esteso si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.25. Imposta Se Output AO Esteso Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output AO esteso si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.26. Imposta Se Output SmartTool Si Ripristina Dopo Stop/Pausa
Nuovo nella versione python: SDK-v2.0.5
Prototipo |
|
|---|---|
Descrizione |
Imposta se l’output SmartTool si ripristina dopo stop/pausa |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice errore Successo-0 Fallimento- errcode |
5.27. Esempio Codice Impostazione Ripristino Output Dopo Stop/Pausa Programma Lua
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
5.28. Impostare le Funzioni delle Porte CI Configurabili
Prototipo |
|
|---|---|
Descrizione |
Imposta le funzioni delle porte CI configurabili |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.29. Ottenere le Funzioni delle Porte CI Configurabili del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene le funzioni delle porte CI configurabili del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.30. Impostare le Funzioni delle Porte CO Configurabili
Prototipo |
|
|---|---|
Descrizione |
Imposta le funzioni delle porte CO configurabili |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.31. Ottenere le Funzioni delle Porte CO Configurabili
Prototipo |
|
|---|---|
Descrizione |
Ottiene le funzioni delle porte CO configurabili |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.32. Impostare le Funzioni delle Porte End-CI Configurabili dell’End-Effector
Prototipo |
|
|---|---|
Descrizione |
Imposta le funzioni delle porte End-CI configurabili dell’end-effector |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.33. Ottenere le Funzioni delle Porte End-CI Configurabili dell’End-Effector
Prototipo |
|
|---|---|
Descrizione |
Ottiene le funzioni delle porte End-CI configurabili dell’end-effector |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.34. Impostare lo Stato Attivo CI Configurabile del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta lo stato attivo CI configurabile del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.35. Ottenere lo Stato Attivo CI Configurabile del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene lo stato attivo CI configurabile del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.36. Impostare lo Stato Attivo CO Configurabile del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta lo stato attivo CO configurabile del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.37. Ottenere lo Stato Attivo CO Configurabile del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene lo stato attivo CO configurabile del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.38. Impostare lo Stato Attivo CI Configurabile dell’End-Effector
Prototipo |
|
|---|---|
Descrizione |
Imposta lo stato attivo CI configurabile dell’end-effector |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.39. Ottenere lo Stato Attivo CI Configurabile dell’End-Effector
Prototipo |
|
|---|---|
Descrizione |
Ottiene lo stato attivo CI configurabile dell’end-effector |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.40. Impostare lo Stato Attivo DI Standard del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta lo stato attivo DI standard del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.41. Ottenere lo Stato Attivo DI Standard del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene lo stato attivo DI standard del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.42. Impostare lo Stato Attivo DO Standard del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Imposta lo stato attivo DO standard del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.43. Ottenere lo Stato Attivo DO Standard del Box di Controllo
Prototipo |
|
|---|---|
Descrizione |
Ottiene lo stato attivo DO standard del box di controllo |
Parametri Obbligatori |
|
Parametri Predefiniti |
Nessuno |
Valore di Ritorno |
Codice di errore Successo-0 Fallimento-errcode |
5.44. Esempio di Codice SDK per Configurazione IO
1from time import sleep
2import time
3from fairino import Robot
4
5# Stabilire la connessione con il controller del robot
6robot = Robot.RPC('192.168.58.2')
7
8
9def TestIOConfig(self):
10 # Imposta e ottiene configurazione DI
11 setDIConfig = [1, 2, 3, 4, 5, 6, 7, 8]
12 getDIConfig = [0] * 8
13 rtn = robot.SetDIConfig(setDIConfig)
14 print(f"SetDIConfig rtn is {rtn}")
15 rtn, getDIConfig = robot.GetDIConfig()
16 print(f"GetDIConfig rtn is {rtn}, value is {getDIConfig[0]} {getDIConfig[1]} {getDIConfig[2]} {getDIConfig[3]} {getDIConfig[4]} {getDIConfig[5]} {getDIConfig[6]} {getDIConfig[7]}")
17
18 # Imposta e ottiene configurazione DO
19 setDOConfig = [9, 10, 11, 12, 13, 14, 15, 16]
20 getDOConfig = [0] * 8
21 rtn = robot.SetDOConfig(setDOConfig)
22 print(f"SetDOConfig rtn is {rtn}")
23 rtn, getDOConfig = robot.GetDOConfig()
24 print(f"GetDOConfig rtn is {rtn}, value is {getDOConfig[0]} {getDOConfig[1]} {getDOConfig[2]} {getDOConfig[3]} {getDOConfig[4]} {getDOConfig[5]} {getDOConfig[6]} {getDOConfig[7]}")
25
26 # Imposta e ottiene configurazione DI utensile
27 setToolDIConfig = [17, 18]
28 getToolDIConfig = [0] * 2
29 rtn = robot.SetToolDIConfig(setToolDIConfig)
30 print(f"SetToolDIConfig rtn is {rtn}")
31 rtn, getToolDIConfig = robot.GetToolDIConfig()
32 print(f"GetToolDIConfig rtn is {rtn}, value is {getToolDIConfig[0]} {getToolDIConfig[1]}")
33
34 # Imposta e ottiene configurazione livello DI (0: attivo basso, 1: attivo alto)
35 setDIConfigLevel = [1, 1, 1, 1, 0, 0, 0, 0]
36 getDIConfigLevel = [0] * 8
37 rtn = robot.SetDIConfigLevel(setDIConfigLevel)
38 print(f"SetDIConfigLevel rtn is {rtn}")
39 rtn, getDIConfigLevel = robot.GetDIConfigLevel()
40 print(f"GetDIConfigLevel rtn is {rtn}, value is {getDIConfigLevel[0]} {getDIConfigLevel[1]} {getDIConfigLevel[2]} {getDIConfigLevel[3]} {getDIConfigLevel[4]} {getDIConfigLevel[5]} {getDIConfigLevel[6]} {getDIConfigLevel[7]}")
41
42 # Imposta e ottiene configurazione livello DO (0: attivo basso, 1: attivo alto)
43 setDOConfigLevel = [0, 0, 0, 0, 1, 1, 1, 1]
44 getDOConfigLevel = [0] * 8
45 rtn = robot.SetDOConfigLevel(setDOConfigLevel)
46 print(f"SetDOConfigLevel rtn is {rtn}")
47 rtn, getDOConfigLevel = robot.GetDOConfigLevel()
48 print(f"GetDOConfigLevel rtn is {rtn}, value is {getDOConfigLevel[0]} {getDOConfigLevel[1]} {getDOConfigLevel[2]} {getDOConfigLevel[3]} {getDOConfigLevel[4]} {getDOConfigLevel[5]} {getDOConfigLevel[6]} {getDOConfigLevel[7]}")
49
50 # Imposta e ottiene configurazione livello DI utensile
51 setToolDIConfigLevel = [1, 0]
52 getToolDIConfigLevel = [0] * 2
53 rtn = robot.SetToolDIConfigLevel(setToolDIConfigLevel)
54 print(f"SetToolDIConfigLevel rtn is {rtn}")
55 rtn, getToolDIConfigLevel = robot.GetToolDIConfigLevel()
56 print(f"GetToolDIConfigLevel rtn is {rtn}, value is {getToolDIConfigLevel[0]} {getToolDIConfigLevel[1]}")
57
58 # Imposta e ottiene configurazione livello DI standard
59 setStandardDILevel = [1, 1, 1, 1, 0, 0, 0, 0]
60 getStandardDILevel = [0] * 8
61 rtn = robot.SetStandardDILevel(setStandardDILevel)
62 print(f"SetStandardDILevel rtn is {rtn}")
63 rtn, getStandardDILevel = robot.GetStandardDILevel()
64 print(f"GetStandardDILevel rtn is {rtn}, value is {getStandardDILevel[0]} {getStandardDILevel[1]} {getStandardDILevel[2]} {getStandardDILevel[3]} {getStandardDILevel[4]} {getStandardDILevel[5]} {getStandardDILevel[6]} {getStandardDILevel[7]}")
65
66 # Imposta e ottiene configurazione livello DO standard
67 setStandardDOLevel = [0, 0, 0, 0, 1, 1, 1, 1]
68 getStandardDOLevel = [0] * 8
69 rtn = robot.SetStandardDOLevel(setStandardDOLevel)
70 print(f"SetStandardDOLevel rtn is {rtn}")
71 rtn, getStandardDOLevel = robot.GetStandardDOLevel()
72 print(f"GetStandsrdDOLevel rtn is {rtn}, value is {getStandardDOLevel[0]} {getStandardDOLevel[1]} {getStandardDOLevel[2]} {getStandardDOLevel[3]} {getStandardDOLevel[4]} {getStandardDOLevel[5]} {getStandardDOLevel[6]} {getStandardDOLevel[7]}")
73
74 # Attendi 2 secondi
75 time.sleep(2)
76
77 # Chiudi connessione
78 robot.CloseRPC()
79 time.sleep(1)
80
81# Chiama la funzione di test
82TestIOConfig(robot)