5. I/O del Robot
5.1. Impostazione uscita digitale del pannello di controllo
1/**
2* @brief Imposta l'uscita digitale del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~15]
4* @param [in] status 0-Spegnimento, 1-Accensione
5* @param [in] smooth 0-Non smooth, 1-Smooth
6* @param [in] block 0-Blocco, 1-Non bloccante
7* @return Codice errore
8*/
9int SetDO(int id, int status, int smooth, int block);
5.2. Impostazione uscita digitale del tool
1/**
2* @brief Imposta l'uscita digitale del tool
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] status 0-Spegnimento, 1-Accensione
5* @param [in] smooth 0-Non smooth, 1-Smooth
6* @param [in] block 0-Blocco, 1-Non bloccante
7* @return Codice errore
8*/
9int SetToolDO(int id, int status, int smooth, int block);
5.3. Impostazione uscita analogica del pannello di controllo
1/**
2* @brief Imposta l'uscita analogica del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] value Percentuale del valore di corrente o tensione, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
5* @param [in] block 0-Blocco, 1-Non bloccante
6* @return Codice errore
7*/
8int SetAO(int id, double value, int block);
5.4. Impostazione uscita analogica del tool
1/**
2* @brief Imposta l'uscita analogica del tool
3* @param [in] id Numero IO, intervallo [0]
4* @param [in] value Percentuale del valore di corrente o tensione, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
5* @param [in] block 0-Blocco, 1-Non bloccante
6* @return Codice errore
7*/
8int SetToolAO(int id, double value, int block);
5.5. Esempio di codice per impostazione uscite digitali/analogiche
1public static int TestAODO(Robot robot)
2{
3 int status = 1;
4 int smooth = 0;
5 int block = 0;
6
7 for (int i = 0; i < 16; i++)
8 {
9 robot.SetDO(i, status, smooth, block);
10 robot.Sleep(300);
11 }
12
13 status = 0;
14
15 for (int i = 0; i < 16; i++)
16 {
17 robot.SetDO(i, status, smooth, block);
18 robot.Sleep(300);
19 }
20
21 status = 1;
22
23 for (int i = 0; i < 2; i++)
24 {
25 robot.SetToolDO(i, status, smooth, block);
26 robot.Sleep(1000);
27 }
28
29 status = 0;
30
31 for (int i = 0; i < 2; i++)
32 {
33 robot.SetToolDO(i, status, smooth, block);
34 robot.Sleep(1000);
35 }
36
37 for (int i = 0; i < 100; i++)
38 {
39 robot.SetAO(0, i, block);
40 robot.Sleep(30);
41 }
42
43 for (int i = 0; i < 100; i++)
44 {
45 robot.SetToolAO(0, i, block);
46 robot.Sleep(30);
47 }
48
49 robot.CloseRPC();
50 return 0;
51}
5.6. Acquisizione ingresso digitale del pannello di controllo
1/**
2* @brief Acquisisce l'ingresso digitale del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~15]
4* @param [in] block 0-Blocco, 1-Non bloccante
5* @param [out] level 0-Livello basso, 1-Livello alto
6* @return Codice errore
7*/
8int GetDI(int id, int block, int[] level);
5.7. Acquisizione ingresso digitale del tool
1/**
2* @brief Acquisisce l'ingresso digitale del tool
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] block 0-Blocco, 1-Non bloccante
5* @param [out] level 0-Livello basso, 1-Livello alto
6* @return Codice errore
7*/
8int GetToolDI(int id, int block, int[] level);
5.8. Acquisizione ingresso analogico del pannello di controllo
1/**
2* @brief Acquisisce l'ingresso analogico del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] block 0-Blocco, 1-Non bloccante
5* @param [out] persent Percentuale del valore di corrente o tensione in ingresso, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
6* @return Codice errore
7*/
8int GetAI(int id, int block, double[] persent);
5.9. Acquisizione ingresso analogico del tool
1/**
2* @brief Acquisisce l'ingresso analogico del tool
3* @param [in] id Numero IO, intervallo [0]
4* @param [in] block 0-Blocco, 1-Non bloccante
5* @param [out] persent Percentuale del valore di corrente o tensione in ingresso, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
6* @return Codice errore
7*/
8int GetToolAI(int id, int block, double[] persent);
5.10. Acquisizione stato del pulsante di registrazione punto terminale del robot
1/**
2* @brief Acquisisce lo stato del pulsante di registrazione punto terminale del robot
3* @param [out] state Stato del pulsante, 0-Premuto, 1-Rilasciato
4* @return Codice errore
5*/
6int GetAxlePointRecordBtnState(int[] state);
5.11. Acquisizione stato uscita DO del terminale del robot
1/**
2* @brief Acquisisce lo stato dell'uscita DO del terminale del robot
3* @param [out] do_state Stato uscita DO, do0~do1 corrisponde a bit1~bit2, a partire da bit0
4* @return Codice errore
5*/
6int GetToolDO(int[] do_state);
5.12. Acquisizione stato uscita DO del controller del robot
1/**
2* @brief Acquisisce lo stato dell'uscita DO del controller del robot
3* @param [out] do_state_h Stato uscita DO, co0~co7 corrisponde a bit0~bit7
4* @param [out] do_state_l Stato uscita DO, do0~do7 corrisponde a bit0~bit7
5* @return Codice errore
6*/
7int GetDO(int[] do_state_h, int[] do_state_l);
5.13. Esempio di codice per acquisizione stati DI, DO del robot
1public static int TestGetDIAI(Robot robot)
2{
3 int status = 1;
4 int smooth = 0;
5 int block = 0;
6 int[] di = new int[]{0}, tool_di = new int[]{0};
7 double[] ai = new double[]{0}, tool_ai = new double[]{0};
8 double value = 0.0;
9
10 robot.GetDI(0, block, di);
11 System.out.println("di0:" + di[0]);
12
13 robot.GetToolDI(1, block, tool_di);
14 System.out.println("tool_di1:" + tool_di[0]);
15
16 robot.GetAI(0, block, ai);
17 System.out.println("ai0:" + ai[0]);
18
19 robot.GetToolAI(0, block, tool_ai);
20 System.out.println("tool_ai0:" + tool_ai[0]);
21
22 int[] _button_state = new int[]{0};
23 robot.GetAxlePointRecordBtnState(_button_state);
24 System.out.println("_button_state is: " + _button_state[0]);
25
26 int[] tool_do_state = new int[]{0};
27 robot.GetToolDO(tool_do_state);
28 System.out.println("tool DO state is: " + tool_do_state[0]);
29
30 int[] do_state_h = new int[]{0};
31 int[] do_state_l = new int[]{0};
32 robot.GetDO(do_state_h, do_state_l);
33 System.out.println("DO state high is: " + do_state_h[0] + ", DO state low is: " + do_state_l[0]);
34
35 return 0;
36}
5.14. Attesa ingresso digitale del pannello di controllo
1/**
2* @brief Attesa ingresso digitale del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~15]
4* @param [in] status 0-Spegnimento, 1-Accensione
5* @param [in] max_time Tempo massimo di attesa, unità ms
6* @param [in] opt Strategia dopo timeout, 0-Programma si ferma e segnala timeout, 1-Ignora timeout e programma continua, 2-Attesa continua
7* @return Codice errore
8*/
9int WaitDI(int id, int status, int max_time, int opt);
5.15. Attesa ingressi digitali multipli del pannello di controllo
1/**
2* @brief Attesa ingressi digitali multipli del pannello di controllo
3* @param [in] mode 0-AND multiplo, 1-OR multiplo
4* @param [in] id Numero IO, bit0~bit7 corrisponde a DI0~DI7, bit8~bit15 corrisponde a CI0~CI7
5* @param [in] status 0-Spegnimento, 1-Accensione
6* @param [in] max_time Tempo massimo di attesa, unità ms
7* @param [in] opt Strategia dopo timeout, 0-Programma si ferma e segnala timeout, 1-Ignora timeout e programma continua, 2-Attesa continua
8* @return Codice errore
9*/
10int WaitMultiDI(int mode, int id, int status, int max_time, int opt);
5.16. Attesa ingresso digitale del tool
1/**
2* @brief Attesa ingresso digitale del tool
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] status 0-Spegnimento, 1-Accensione
5* @param [in] max_time Tempo massimo di attesa, unità ms
6* @param [in] opt Strategia dopo timeout, 0-Programma si ferma e segnala timeout, 1-Ignora timeout e programma continua, 2-Attesa continua
7* @return Codice errore
8*/
9int WaitToolDI(int id, int status, int max_time, int opt);
5.17. Attesa ingresso analogico del pannello di controllo
1/**
2* @brief Attesa ingresso analogico del pannello di controllo
3* @param [in] id Numero IO, intervallo [0~1]
4* @param [in] sign 0-Maggiore di, 1-Minore di
5* @param [in] value Percentuale del valore di corrente o tensione in ingresso, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
6* @param [in] max_time Tempo massimo di attesa, unità ms
7* @param [in] opt Strategia dopo timeout, 0-Programma si ferma e segnala timeout, 1-Ignora timeout e programma continua, 2-Attesa continua
8* @return Codice errore
9*/
10int WaitAI(int id, int sign, double value, int max_time, int opt);
5.18. Attesa ingresso analogico del tool
1/**
2* @brief Attesa ingresso analogico del tool
3* @param [in] id Numero IO, intervallo [0]
4* @param [in] sign 0-Maggiore di, 1-Minore di
5* @param [in] value Percentuale del valore di corrente o tensione in ingresso, intervallo [0~100] corrispondente a corrente [0~20mA] o tensione [0~10V]
6* @param [in] max_time Tempo massimo di attesa, unità ms
7* @param [in] opt Strategia dopo timeout, 0-Programma si ferma e segnala timeout, 1-Ignora timeout e programma continua, 2-Attesa continua
8* @return Codice errore
9*/
10int WaitToolAI(int id, int sign, double value, int max_time, int opt);
5.19. Esempio di codice per attesa segnali ingresso digitale/analogico del pannello di controllo
1public static int TestWaitDIAI(Robot robot)
2{
3 int rtn = -1;
4
5 int status = 1;
6 int smooth = 0;
7 int block = 0;
8 int di = 0, tool_di = 0;
9 double ai = 0.0, tool_ai = 0.0;
10 double value = 0.0;
11
12 rtn = robot.WaitDI(0, 1, 1000, 1);
13 System.out.println("WaitDI over; rtn is: " + rtn);
14
15 robot.WaitMultiDI(1, 3, 3, 1000, 1);
16 System.out.println("WaitDI over; rtn is: " + rtn);
17
18 robot.WaitToolDI(1, 1, 1000, 1);
19 System.out.println("WaitDI over; rtn is: " + rtn);
20
21 robot.WaitAI(0, 0, 50, 1000, 1);
22 System.out.println("WaitDI over; rtn is: " + rtn);
23
24 robot.WaitToolAI(0, 0, 50, 1000, 1);
25 System.out.println("WaitDI over; rtn is: " + rtn);
26 return 0;
27}
5.20. Imposta Se Output DO Scatola Controllo Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output DO della scatola di controllo si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetCtlBoxDO(int resetFlag, int reloadFlag)
5.21. Imposta Se Output AO Scatola Controllo Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output AO della scatola di controllo si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetCtlBoxAO(int resetFlag, int reloadFlag)
5.22. Imposta Se Output DO Utensile Terminale Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output DO dell'utensile terminale si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetAxleDO(int resetFlag, int reloadFlag)
5.23. Imposta Se Output AO Utensile Terminale Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output AO dell'utensile terminale si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetAxleAO(int resetFlag, int reloadFlag)
5.24. Imposta Se Output DO Esteso Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output DO esteso si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetExtDO(int resetFlag, int reloadFlag)
5.25. Imposta Se Output AO Esteso Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output AO esteso si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetExtAO(int resetFlag, int reloadFlag)
5.26. Imposta Se Output SmartTool Si Ripristina Dopo Stop/Pausa
1/**
2* @brief Imposta se l'output SmartTool si ripristina dopo stop/pausa
3* @param resetFlag 0-Non ripristina; 1-Ripristina
4* @param reloadFlag Se ricaricare dopo ripresa pausa, 0-Non caricare; 1-Carica
5* @return Codice errore
6*/
7public int SetOutputResetSmartToolDO(int resetFlag, int reloadFlag)
5.27. Esempio Codice Impostazione Ripristino Output Dopo Stop/Pausa Programma Lua
1public static void TestDOReset(Robot robot)
2{
3 for (int i = 0; i < 16; i++)
4 {
5 robot.SetDO(i, 1, 0, 0);
6 robot.Sleep(200);
7 }
8 int resetFlag = 1;
9 int resumeReloadFlag = 1;
10 int rtn = robot.SetOutputResetCtlBoxDO(resetFlag, resumeReloadFlag);
11 robot.SetOutputResetCtlBoxAO(resetFlag, resumeReloadFlag);
12 robot.SetOutputResetAxleDO(resetFlag, resumeReloadFlag);
13 robot.SetOutputResetAxleAO(resetFlag, resumeReloadFlag);
14 robot.SetOutputResetExtDO(resetFlag, resumeReloadFlag);
15 robot.SetOutputResetExtAO(resetFlag, resumeReloadFlag);
16 robot.SetOutputResetSmartToolDO(resetFlag, resumeReloadFlag);
17 robot.ProgramLoad("/fruser/test.lua");
18 robot.ProgramRun();
19 robot.Sleep(2000);
20 robot.PauseMotion();
21 robot.Sleep(2000);
22 robot.ResumeMotion();
23 robot.Sleep(2000);
24 robot.CloseRPC();
25}
5.28. Impostare le Funzioni delle Porte CI Configurabili del Box di Controllo
1/**
2* @brief Imposta le funzioni delle porte CI configurabili del box di controllo
3* @param config Codici funzione CI0-CI7;
4* 0-Nessuna;1-Avvio arco riuscito;2-Saldatrice pronta;3-Rilevamento nastro trasportatore;4-Pausa;5-Riprendi;6-Avvio;7-Arresto;
58-Pausa/Riprendi;9-Avvio/Arresto;10-Trascinamento a pedale;11-Spostamento a origine lavoro;12-Commutazione manuale/automatica;
613-Ricerca filo riuscita;14-Interruzione movimento;15-Avvio programma principale;16-Avvio riavvolgimento;17-Conferma avvio;
718-Segnale rilevamento fotoelettrico X;19-Segnale rilevamento fotoelettrico Y;20-Segnale ingresso arresto emergenza esterno 1;21-Segnale ingresso arresto emergenza esterno 2;
822-Modalità riduzione livello 1;23-Modalità riduzione livello 2;24-Modalità riduzione livello 3 (Arresto);25-Riprendi saldatura;26-Termina saldatura;
927-Abilita trascinamento assistito;28-Disabilita trascinamento assistito;29-Abilita/Disabilita trascinamento assistito;30-Cancella tutti gli errori;
1031-Commutazione manuale/automatica (livello alto/basso);32-Abilita;33-Disabilita;34-Abilita/Disabilita (fronte di salita/discesa);35-Avvio/ fine inseguimento punto fisso
11* @return Codice di errore
12*/
13public int SetDIConfig(int[] config)
5.29. Ottenere le Funzioni delle Porte CI Configurabili del Box di Controllo
1/**
2* @brief Ottiene le funzioni delle porte CI configurabili del box di controllo
3* @param config Codici funzione CI0-CI7;
4* 0-Nessuna;1-Avvio arco riuscito;2-Saldatrice pronta;3-Rilevamento nastro trasportatore;4-Pausa;5-Riprendi;6-Avvio;7-Arresto;
58-Pausa/Riprendi;9-Avvio/Arresto;10-Trascinamento a pedale;11-Spostamento a origine lavoro;12-Commutazione manuale/automatica;
613-Ricerca filo riuscita;14-Interruzione movimento;15-Avvio programma principale;16-Avvio riavvolgimento;17-Conferma avvio;
718-Segnale rilevamento fotoelettrico X;19-Segnale rilevamento fotoelettrico Y;20-Segnale ingresso arresto emergenza esterno 1;21-Segnale ingresso arresto emergenza esterno 2;
822-Modalità riduzione livello 1;23-Modalità riduzione livello 2;24-Modalità riduzione livello 3 (Arresto);25-Riprendi saldatura;26-Termina saldatura;
927-Abilita trascinamento assistito;28-Disabilita trascinamento assistito;29-Abilita/Disabilita trascinamento assistito;30-Cancella tutti gli errori;
1031-Commutazione manuale/automatica (livello alto/basso);32-Abilita;33-Disabilita;34-Abilita/Disabilita (fronte di salita/discesa);35-Avvio/ fine inseguimento punto fisso
11* @return Codice di errore
12*/
13public int GetDIConfig(int[] config)
5.30. Impostare le Funzioni delle Porte CO Configurabili del Box di Controllo
1/**
2* @brief Imposta le funzioni delle porte CO configurabili del box di controllo
3* @param config Codici funzione CO0-CO7;
4* 0-Nessuna;1-Errore robot;2-Robot in movimento;3-Avvio/arresto spruzzatura;4-Pulizia pistola spruzzo;5-Segnale gas;6-Segnale avvio arco;7-Alimentazione filo a impulsi;
58-Alimentazione filo inversa;9-Ingresso JOB 1;10-Ingresso JOB 2;11-Ingresso JOB 3;12-Controllo avvio/arresto nastro trasportatore;13-Robot in pausa;14-Origine lavoro raggiunta;
615-Area di interferenza raggiunta;16-Controllo avvio/arresto ricerca filo;17-Avvio robot completato;18-Avvio/arresto programma;19-Modalità automatica/manuale;20-Segnale uscita arresto emergenza 1-Sicurezza;
721-Segnale uscita arresto emergenza 2-Sicurezza;22-Esecuzione/arresto programma script Lua;23-Uscita stato sicurezza-Sicurezza;24-Uscita stato arresto protettivo-Sicurezza;
825-Robot in movimento-Sicurezza;26-Modalità ridotta robot-Sicurezza;27-Modalità non ridotta robot-Sicurezza;28-Robot non arrestato;29-Errore robot-Errore punto istruzione;
930-Errore robot-Errore driver;31-Errore robot-Limite software superato;32-Errore robot-Errore collisione;33-Errore robot-Errore numero slave attivi;
1034-Errore robot-Errore slave;35-Errore robot-Errore IO;36-Errore robot-Errore gripper;37-Errore robot-Errore file;38-Errore robot-Errore posa singolare;
1139-Errore robot-Errore comunicazione driver;40-Errore robot-Errore parametro;41-Errore robot-Asse esterno limite software superato;42-Avviso robot-Avviso;
1243-Avviso robot-Avviso porta sicurezza;44-Avviso robot-Avviso movimento;45-Avviso robot-Avviso area interferenza;46-Avviso robot-Avviso parete sicurezza;
1347-Stato abilitazione;48-Sollevamento automatico durante disconnessione;49-Avviso interferenza cubo 1;50-Avviso interferenza cubo 2;51-Avviso interferenza cubo 3;52-Avviso interferenza cubo 4;
14* @return Codice di errore
15*/
16public int SetDOConfig(int[] config)
5.31. Ottenere le Funzioni delle Porte CO Configurabili del Box di Controllo
1/**
2* @brief Ottiene le funzioni delle porte CO configurabili del box di controllo
3* @param config Codici funzione CO0-CO7;
4* 0-Nessuna;1-Errore robot;2-Robot in movimento;3-Avvio/arresto spruzzatura;4-Pulizia pistola spruzzo;5-Segnale gas;6-Segnale avvio arco;7-Alimentazione filo a impulsi;
58-Alimentazione filo inversa;9-Ingresso JOB 1;10-Ingresso JOB 2;11-Ingresso JOB 3;12-Controllo avvio/arresto nastro trasportatore;13-Robot in pausa;14-Origine lavoro raggiunta;
615-Area di interferenza raggiunta;16-Controllo avvio/arresto ricerca filo;17-Avvio robot completato;18-Avvio/arresto programma;19-Modalità automatica/manuale;20-Segnale uscita arresto emergenza 1-Sicurezza;
721-Segnale uscita arresto emergenza 2-Sicurezza;22-Esecuzione/arresto programma script Lua;23-Uscita stato sicurezza-Sicurezza;24-Uscita stato arresto protettivo-Sicurezza;
825-Robot in movimento-Sicurezza;26-Modalità ridotta robot-Sicurezza;27-Modalità non ridotta robot-Sicurezza;28-Robot non arrestato;29-Errore robot-Errore punto istruzione;
930-Errore robot-Errore driver;31-Errore robot-Limite software superato;32-Errore robot-Errore collisione;33-Errore robot-Errore numero slave attivi;
1034-Errore robot-Errore slave;35-Errore robot-Errore IO;36-Errore robot-Errore gripper;37-Errore robot-Errore file;38-Errore robot-Errore posa singolare;
1139-Errore robot-Errore comunicazione driver;40-Errore robot-Errore parametro;41-Errore robot-Asse esterno limite software superato;42-Avviso robot-Avviso;
1243-Avviso robot-Avviso porta sicurezza;44-Avviso robot-Avviso movimento;45-Avviso robot-Avviso area interferenza;46-Avviso robot-Avviso parete sicurezza;
1347-Stato abilitazione;48-Sollevamento automatico durante disconnessione;49-Avviso interferenza cubo 1;50-Avviso interferenza cubo 2;51-Avviso interferenza cubo 3;52-Avviso interferenza cubo 4;
14* @return Codice di errore
15*/
16public int GetDOConfig(int[] config)
5.32. Impostare le Funzioni delle Porte End-CI Configurabili dell’End-Effector
1/**
2* @brief Imposta le funzioni delle porte End-CI configurabili dell'end-effector
3* @param config Codici funzione End CI0-CI1;
4* 0-Nessuna;1-Interruttore strumento insegnamento a trascinamento;2-Segnale registrazione punto;3-Commutazione manuale/automatica (segnale impulsivo);4-Avvio/arresto registrazione TPD;5-Pausa movimento;
56-Riprendi movimento;7-Avvio;8-Arresto;9-Pausa/Riprendi;10-Avvio/Arresto;11-Abilita trascinamento assistito sensore di forza;12-Disabilita trascinamento assistito sensore di forza;
613-Abilita/Disabilita trascinamento assistito sensore di forza;14-Segnale rilevamento laser X;15-Segnale rilevamento laser Y;16-Movimento PTP verso origine lavoro;17-Interruzione movimento, arresta movimento corrente in base al segnale;
718-Avvio programma principale;19-Avvio riavvolgimento;20-Conferma avvio;21-Riprendi saldatura;22-Termina saldatura;23-Cancella errore;24-Commutazione manuale/automatica (livello alto/basso);
825-Abilita;26-Disabilita;27-Abilita/Disabilita;28-Segnale avvio/arresto inseguimento servocomando laser;
9* @return Codice di errore
10*/
11public int SetToolDIConfig(int[] config)
5.33. Ottenere le Funzioni delle Porte End-CI Configurabili dell’End-Effector
1/**
2* @brief Ottiene le funzioni delle porte End-CI configurabili dell'end-effector
3* @param config Codici funzione End CI0-CI1;
4* 0-Nessuna;1-Interruttore strumento insegnamento a trascinamento;2-Segnale registrazione punto;3-Commutazione manuale/automatica (segnale impulsivo);4-Avvio/arresto registrazione TPD;5-Pausa movimento;
56-Riprendi movimento;7-Avvio;8-Arresto;9-Pausa/Riprendi;10-Avvio/Arresto;11-Abilita trascinamento assistito sensore di forza;12-Disabilita trascinamento assistito sensore di forza;
613-Abilita/Disabilita trascinamento assistito sensore di forza;14-Segnale rilevamento laser X;15-Segnale rilevamento laser Y;16-Movimento PTP verso origine lavoro;17-Interruzione movimento, arresta movimento corrente in base al segnale;
718-Avvio programma principale;19-Avvio riavvolgimento;20-Conferma avvio;21-Riprendi saldatura;22-Termina saldatura;23-Cancella errore;24-Commutazione manuale/automatica (livello alto/basso);
825-Abilita;26-Disabilita;27-Abilita/Disabilita;28-Segnale avvio/arresto inseguimento servocomando laser;
9* @return Codice di errore
10*/
11public int GetToolDIConfig(int[] config)
5.34. Impostare lo Stato Attivo CI Configurabile del Box di Controllo
1/**
2* @brief Imposta lo stato attivo CI configurabile del box di controllo
3* @param config Stato attivo porte CI0-CI7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int SetDIConfigLevel(int[] config)
5.35. Ottenere lo Stato Attivo CI Configurabile del Box di Controllo
1/**
2* @brief Ottiene lo stato attivo CI configurabile del box di controllo
3* @param config Stato attivo porte CI0-CI7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int GetDIConfigLevel(int[] config)
5.36. Impostare lo Stato Attivo CO Configurabile del Box di Controllo
1/**
2* @brief Imposta lo stato attivo CO configurabile del box di controllo
3* @param config Stato attivo porte CO0-CO7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int SetDOConfigLevel(int[] config)
5.37. Ottenere lo Stato Attivo CO Configurabile del Box di Controllo
1/**
2* @brief Ottiene lo stato attivo CO configurabile del box di controllo
3* @param config Stato attivo porte CO0-CO7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int GetDOConfigLevel(int[] config)
5.38. Impostare lo Stato Attivo CI Configurabile dell’End-Effector
1/**
2* @brief Imposta lo stato attivo CI configurabile dell'end-effector
3* @param config Stato attivo porte CI0-CI1; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int SetToolDIConfigLevel(int[] config)
5.39. Ottenere lo Stato Attivo CI Configurabile dell’End-Effector
1/**
2* @brief Ottiene lo stato attivo CI configurabile dell'end-effector
3* @param config Stato attivo porte CI0-CI1; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int GetToolDIConfigLevel(int[] config)
5.40. Impostare lo Stato Attivo DI Standard del Box di Controllo
1/**
2* @brief Imposta lo stato attivo DI standard del box di controllo
3* @param config Stato attivo porte DI0-DI7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int SetStandardDILevel(int[] config)
5.41. Ottenere lo Stato Attivo DI Standard del Box di Controllo
1/**
2* @brief Ottiene lo stato attivo DI standard del box di controllo
3* @param config Stato attivo porte DI0-DI7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int GetStandardDILevel(int[] config)
5.42. Impostare lo Stato Attivo DO Standard del Box di Controllo
1/**
2* @brief Imposta lo stato attivo DO standard del box di controllo
3* @param config Stato attivo porte DO0-DO7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int SetStandardDOLevel(int[] config)
5.43. Ottenere lo Stato Attivo DO Standard del Box di Controllo
1/**
2* @brief Ottiene lo stato attivo DO standard del box di controllo
3* @param config Stato attivo porte DO0-DO7; 0-attivo alto; 1-attivo basso
4* @return Codice di errore
5*/
6public int GetStandardDOLevel(int[] config)
5.44. Esempio di Codice di Configurazione IO del Robot
1public static int TestIOConfig(Robot robot) {
2 int[] setDIConfig = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
3 int[] getDIConfig = new int[8];
4 int rtn = robot.SetDIConfig(setDIConfig);
5 System.out.println("SetDIConfig rtn is " + rtn);
6 rtn = robot.GetDIConfig(getDIConfig);
7 System.out.println("GetDIConfig rtn is " + rtn + ", value is " +
8 getDIConfig[0] + " " + getDIConfig[1] + " " + getDIConfig[2] + " " + getDIConfig[3] + " " +
9 getDIConfig[4] + " " + getDIConfig[5] + " " + getDIConfig[6] + " " + getDIConfig[7]);
10
11 int[] setDOConfig = new int[]{9, 10, 11, 12, 13, 14, 15, 16};
12 int[] getDOConfig = new int[8];
13 rtn = robot.SetDOConfig(setDOConfig);
14 System.out.println("SetDOConfig rtn is " + rtn);
15 rtn = robot.GetDOConfig(getDOConfig);
16 System.out.println("GetDOConfig rtn is " + rtn + ", value is " +
17 getDOConfig[0] + " " + getDOConfig[1] + " " + getDOConfig[2] + " " + getDOConfig[3] + " " +
18 getDOConfig[4] + " " + getDOConfig[5] + " " + getDOConfig[6] + " " + getDOConfig[7]);
19
20 int[] setToolDIConfig = new int[]{17, 18};
21 int[] getToolDIConfig = new int[2];
22 rtn = robot.SetToolDIConfig(setToolDIConfig);
23 System.out.println("SetToolDIConfig rtn is " + rtn);
24 rtn = robot.GetToolDIConfig(getToolDIConfig);
25 System.out.println("GetToolDIConfig rtn is " + rtn + ", value is " + getToolDIConfig[0] + " " + getToolDIConfig[1]);
26
27 int[] setDIConfigLevel = new int[]{1, 1, 1, 1, 0, 0, 0, 0};
28 int[] getDIConfigLevel = new int[8];
29 rtn = robot.SetDIConfigLevel(setDIConfigLevel);
30 System.out.println("SetDIConfigLevel rtn is " + rtn);
31 rtn = robot.GetDIConfigLevel(getDIConfigLevel);
32 System.out.println("GetDIConfigLevel rtn is " + rtn + ", value is " +
33 getDIConfigLevel[0] + " " + getDIConfigLevel[1] + " " + getDIConfigLevel[2] + " " + getDIConfigLevel[3] + " " +
34 getDIConfigLevel[4] + " " + getDIConfigLevel[5] + " " + getDIConfigLevel[6] + " " + getDIConfigLevel[7]);
35
36 int[] setDOConfigLevel = new int[]{0, 0, 0, 0, 1, 1, 1, 1};
37 int[] getDOConfigLevel = new int[8];
38 rtn = robot.SetDOConfigLevel(setDOConfigLevel);
39 System.out.println("SetDOConfigLevel rtn is " + rtn);
40 rtn = robot.GetDOConfigLevel(getDOConfigLevel);
41 System.out.println("GetDOConfigLevel rtn is " + rtn + ", value is " +
42 getDOConfigLevel[0] + " " + getDOConfigLevel[1] + " " + getDOConfigLevel[2] + " " + getDOConfigLevel[3] + " " +
43 getDOConfigLevel[4] + " " + getDOConfigLevel[5] + " " + getDOConfigLevel[6] + " " + getDOConfigLevel[7]);
44
45 int[] setToolDIConfigLevel = new int[]{1, 0};
46 int[] getToolDIConfigLevel = new int[2];
47 rtn = robot.SetToolDIConfigLevel(setToolDIConfigLevel);
48 System.out.println("SetToolDIConfigLevel rtn is " + rtn);
49 rtn = robot.GetToolDIConfigLevel(getToolDIConfigLevel);
50 System.out.println("GetToolDIConfigLevel rtn is " + rtn + ", value is " + getToolDIConfigLevel[0] + " " + getToolDIConfigLevel[1]);
51
52 int[] setStandardDILevel = new int[]{1, 1, 1, 1, 0, 0, 0, 0};
53 int[] getStandardDILevel = new int[8];
54 rtn = robot.SetStandardDILevel(setStandardDILevel);
55 System.out.println("SetStandardDILevel rtn is " + rtn);
56 rtn = robot.GetStandardDILevel(getStandardDILevel);
57 System.out.println("GetStandardDILevel rtn is " + rtn + ", value is " +
58 getStandardDILevel[0] + " " + getStandardDILevel[1] + " " + getStandardDILevel[2] + " " + getStandardDILevel[3] + " " +
59 getStandardDILevel[4] + " " + getStandardDILevel[5] + " " + getStandardDILevel[6] + " " + getStandardDILevel[7]);
60
61 int[] setStandardDOLevel = new int[]{0, 0, 0, 0, 1, 1, 1, 1};
62 int[] getStandardDOLevel = new int[8];
63 rtn = robot.SetStandardDOLevel(setStandardDOLevel);
64 System.out.println("SetStandardDOLevel rtn is " + rtn);
65 rtn = robot.GetStandardDOLevel(getStandardDOLevel);
66 System.out.println("GetStandardDOLevel rtn is " + rtn + ", value is " +
67 getStandardDOLevel[0] + " " + getStandardDOLevel[1] + " " + getStandardDOLevel[2] + " " + getStandardDOLevel[3] + " " +
68 getStandardDOLevel[4] + " " + getStandardDOLevel[5] + " " + getStandardDOLevel[6] + " " + getStandardDOLevel[7]);
69
70 robot.Sleep(2000);
71 return 0;
72}