5. IO do Robô
5.1. Definir Saída Digital do Painel de Controle
1/**
2* @brief Define a saída digital do painel de controle
3* @param [in] id Número do IO, faixa [0~15]
4* @param [in] status 0-desligar, 1-ligar
5* @param [in] smooth 0-não suave, 1-suave
6* @param [in] block 0-bloqueante, 1-não bloqueante
7* @return Código de erro
8*/
9int SetDO(int id, int status, int smooth, int block);
5.2. Definir Saída Digital da Ferramenta
1/**
2* @brief Define a saída digital da ferramenta
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] status 0-desligar, 1-ligar
5* @param [in] smooth 0-não suave, 1-suave
6* @param [in] block 0-bloqueante, 1-não bloqueante
7* @return Código de erro
8*/
9int SetToolDO(int id, int status, int smooth, int block);
5.3. Definir Saída Analógica do Painel de Controle
1/**
2* @brief Define a saída analógica do painel de controle
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] value Porcentagem do valor de corrente ou tensão, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
5* @param [in] block 0-bloqueante, 1-não bloqueante
6* @return Código de erro
7*/
8int SetAO(int id, double value, int block);
5.4. Definir Saída Analógica da Ferramenta
1/**
2* @brief Define a saída analógica da ferramenta
3* @param [in] id Número do IO, faixa [0]
4* @param [in] value Porcentagem do valor de corrente ou tensão, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
5* @param [in] block 0-bloqueante, 1-não bloqueante
6* @return Código de erro
7*/
8int SetToolAO(int id, double value, int block);
5.5. Exemplo de Código para Definir Saídas Digitais e Analógicas
1public static int TestAODO(Robot robot)
2{
3
4 int status = 1;
5 int smooth = 0;
6 int block = 0;
7
8 for (int i = 0; i < 16; i++)
9 {
10 robot.SetDO(i, status, smooth, block);
11 robot.Sleep(300);
12 }
13
14 status = 0;
15
16 for (int i = 0; i < 16; i++)
17 {
18 robot.SetDO(i, status, smooth, block);
19 robot.Sleep(300);
20 }
21
22 status = 1;
23
24 for (int i = 0; i < 2; i++)
25 {
26 robot.SetToolDO(i, status, smooth, block);
27 robot.Sleep(1000);
28 }
29
30 status = 0;
31
32 for (int i = 0; i < 2; i++)
33 {
34 robot.SetToolDO(i, status, smooth, block);
35 robot.Sleep(1000);
36 }
37
38 for (int i = 0; i < 100; i++)
39 {
40 robot.SetAO(0, i, block);
41 robot.Sleep(30);
42 }
43
44 for (int i = 0; i < 100; i++)
45 {
46 robot.SetToolAO(0, i, block);
47 robot.Sleep(30);
48 }
49
50 robot.CloseRPC();
51 return 0;
52}
5.6. Obter Entrada Digital do Painel de Controle
1/**
2* @brief Obtém a entrada digital do painel de controle
3* @param [in] id Número do IO, faixa [0~15]
4* @param [in] block 0-bloqueante, 1-não bloqueante
5* @param [out] level 0-nível baixo, 1-nível alto
6* @return Código de erro
7*/
8int GetDI(int id, int block, int[] level);
5.7. Obter Entrada Digital da Ferramenta
1/**
2* @brief Obtém a entrada digital da ferramenta
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] block 0-bloqueante, 1-não bloqueante
5* @param [out] level 0-nível baixo, 1-nível alto
6* @return Código de erro
7*/
8int GetToolDI(int id, int block, int[] level);
5.8. Obter Entrada Analógica do Painel de Controle
1/**
2* @brief Obtém a entrada analógica do painel de controle
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] block 0-bloqueante, 1-não bloqueante
5* @param [out] percent Porcentagem do valor de corrente ou tensão de entrada, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
6* @return Código de erro
7*/
8int GetAI(int id, int block, double[] percent)
5.9. Obter Entrada Analógica da Ferramenta
1/**
2* @brief Obtém a entrada analógica da ferramenta
3* @param [in] id Número do IO, faixa [0]
4* @param [in] block 0-bloqueante, 1-não bloqueante
5* @param [out] percent Porcentagem do valor de corrente ou tensão de entrada, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
6* @return Código de erro
7*/
8int GetToolAI(int id, int block, double[] percent)
5.10. Obter Estado do Botão de Gravação de Ponto da Extremidade do Robô
1/**
2* @brief Obtém o estado do botão de gravação de ponto da extremidade do robô
3* @param [out] state Estado do botão, 0-pressionado, 1-solto
4* @return Código de erro
5*/
6int GetAxlePointRecordBtnState(int[] state)
5.11. Obter Estado da Saída DO da Extremidade do Robô
1/**
2* @brief Obtém o estado da saída DO da extremidade do robô
3* @param [out] do_state Estado da saída DO, do0~do1 correspondem aos bits 1~2, começando do bit0
4* @return Código de erro
5*/
6int GetToolDO(int[] do_state)
5.12. Obter Estado da Saída DO do Controlador do Robô
1/**
2* @brief Obtém o estado da saída DO do controlador do robô
3* @param [out] do_state_h Estado da saída DO, co0~co7 correspondem aos bits 0~7
4* @param [out] do_state_l Estado da saída DO, do0~do7 correspondem aos bits 0~7
5* @return Código de erro
6*/
7int GetDO(int[] do_state_h, int[] do_state_l)
5.13. Exemplo de Código para Obter Estados DI e DO do Robô
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
11 robot.GetDI(0, block, di);
12 System.out.println("di0:"+di[0]);
13
14 robot.GetToolDI(1, block, tool_di);
15 System.out.println("tool_di1:"+ tool_di[0]);
16
17 robot.GetAI(0, block, ai);
18 System.out.println("ai0:"+ ai[0]);
19
20 robot.GetToolAI(0, block, tool_ai);
21 System.out.println("tool_ai0:"+ tool_ai[0]);
22
23 int[] _button_state=new int[]{0};
24 robot.GetAxlePointRecordBtnState(_button_state);
25 System.out.println("_button_state is: "+ _button_state[0]);
26
27 int[] tool_do_state=new int[]{0};
28 robot.GetToolDO(tool_do_state);
29 System.out.println("tool DO state is: "+ tool_do_state[0]);
30
31 int[] do_state_h=new int[]{0};
32 int[] do_state_l=new int[]{0};
33 robot.GetDO(do_state_h, do_state_l);
34 System.out.println("DO state high is: "+do_state_h[0]+", DO state low is: "+ do_state_l[0]);
35
36 return 0;
37}
5.14. Aguardar Entrada Digital do Painel de Controle
1/**
2* @brief Aguarda a entrada digital do painel de controle
3* @param [in] id Número do IO, faixa [0~15]
4* @param [in] status 0-desligar, 1-ligar
5* @param [in] max_time Tempo máximo de espera, unidade ms
6* @param [in] opt Estratégia após tempo limite, 0-parar o programa e indicar tempo limite, 1-ignorar o aviso de tempo limite e continuar a execução, 2-aguardar indefinidamente
7* @return Código de erro
8*/
9int WaitDI(int id, int status, int max_time, int opt);
5.15. Aguardar Múltiplas Entradas Digitais do Painel de Controle
1/**
2* @brief Aguarda múltiplas entradas digitais do painel de controle
3* @param [in] mode 0-E lógico (AND) para múltiplos canais, 1-Ou lógico (OR) para múltiplos canais
4* @param [in] id Número do IO, bit0~bit7 correspondem a DI0~DI7, bit8~bit15 correspondem a CI0~CI7
5* @param [in] status 0-desligar, 1-ligar
6* @param [in] max_time Tempo máximo de espera, unidade ms
7* @param [in] opt Estratégia após tempo limite, 0-parar o programa e indicar tempo limite, 1-ignorar o aviso de tempo limite e continuar a execução, 2-aguardar indefinidamente
8* @return Código de erro
9*/
10int WaitMultiDI(int mode, int id, int status, int max_time, int opt);
5.16. Aguardar Entrada Digital da Ferramenta
1/**
2* @brief Aguarda a entrada digital da ferramenta
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] status 0-desligar, 1-ligar
5* @param [in] max_time Tempo máximo de espera, unidade ms
6* @param [in] opt Estratégia após tempo limite, 0-parar o programa e indicar tempo limite, 1-ignorar o aviso de tempo limite e continuar a execução, 2-aguardar indefinidamente
7* @return Código de erro
8*/
9int WaitToolDI(int id, int status, int max_time, int opt);
5.17. Aguardar Entrada Analógica do Painel de Controle
1/**
2* @brief Aguarda a entrada analógica do painel de controle
3* @param [in] id Número do IO, faixa [0~1]
4* @param [in] sign 0-maior que, 1-menor que
5* @param [in] value Porcentagem do valor de corrente ou tensão de entrada, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
6* @param [in] max_time Tempo máximo de espera, unidade ms
7* @param [in] opt Estratégia após tempo limite, 0-parar o programa e indicar tempo limite, 1-ignorar o aviso de tempo limite e continuar a execução, 2-aguardar indefinidamente
8* @return Código de erro
9*/
10int WaitAI(int id, int sign, double value, int max_time, int opt);
5.18. Aguardar Entrada Analógica da Ferramenta
1/**
2* @brief Aguarda a entrada analógica da ferramenta
3* @param [in] id Número do IO, faixa [0]
4* @param [in] sign 0-maior que, 1-menor que
5* @param [in] value Porcentagem do valor de corrente ou tensão de entrada, faixa [0~100] corresponde a corrente [0~20mA] ou tensão [0~10V]
6* @param [in] max_time Tempo máximo de espera, unidade ms
7* @param [in] opt Estratégia após tempo limite, 0-parar o programa e indicar tempo limite, 1-ignorar o aviso de tempo limite e continuar a execução, 2-aguardar indefinidamente
8* @return Código de erro
9*/
10int WaitToolAI(int id, int sign, double value, int max_time, int opt);
5.19. Exemplo de Código para Aguardar Sinais de Entrada Digital e Analógica do Painel de Controle
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. Definir se a Saída do DO do Painel de Controle é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do DO do painel de controle é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetCtlBoxDO(int resetFlag, int reloadFlag)
5.21. Definir se a Saída do AO do Painel de Controle é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do AO do painel de controle é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetCtlBoxAO(int resetFlag, int reloadFlag)
5.22. Definir se a Saída do DO da Ferramenta de Extremidade é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do DO da ferramenta de extremidade é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetAxleDO(int resetFlag, int reloadFlag)
5.23. Definir se a Saída do AO da Ferramenta de Extremidade é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do AO da ferramenta de extremidade é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetAxleAO(int resetFlag, int reloadFlag)
5.24. Definir se a Saída do DO de Extensão é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do DO de extensão é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetExtDO(int resetFlag, int reloadFlag)
5.25. Definir se a Saída do AO de Extensão é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do AO de extensão é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetExtAO(int resetFlag, int reloadFlag)
5.26. Definir se a Saída do SmartTool é Reiniciada Após Parada/Pausa
1/**
2* @brief Define se a saída do SmartTool é reiniciada após parada/pausa
3* @param resetFlag 0-não reiniciar; 1-reiniciar
4* @param reloadFlag Se recarrega após retomar da pausa, 0-não carregar; 1-carregar
5* @return Código de erro
6*/
7public int SetOutputResetSmartToolDO(int resetFlag, int reloadFlag)
5.27. Exemplo de Código para Definir Reinicialização da Saída Após Parada/Pausa do Programa 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("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. Definir Função da Porta CI Configurável do Painel de Controle
1/**
2* @brief Define a função da porta CI configurável do painel de controle
3* @param config Códigos de função CI0-CI7;
4* 0-Nenhum;1-Sucesso de partida de arco;2-Fonte de solda pronta;3-Detecção de esteira;4-Pausar;5-Retomar;6-Iniciar;7-Parar;
58-Pausar/Retomar;9-Iniciar/Parar;10-Arrastagem por pedal;11-Mover para ponto de operação;12-Alternar manual/automático;
613-Sucesso da busca de posição do arame;14-Interrupção de movimento;15-Iniciar programa principal;16-Iniciar rebobinagem;17-Confirmar início;
718-Sinal de detecção fotoelétrica X;19-Sinal de detecção fotoelétrica Y;20-Sinal de entrada de parada de emergência externa 1;21-Sinal de entrada de parada de emergência externa 2;
822-Modo de redução nível 1;23-Modo de redução nível 2;24-Modo de redução nível 3 (parada);25-Recuperar soldagem;26-Terminar soldagem;
927-Ativar arrastagem assistida;28-Desativar arrastagem assistida;29-Ativar/Desativar arrastagem assistida;30-Limpar todos os erros;
1031-Alternar manual/automático (nível alto/baixo);32-Habilitar;33-Desabilitar;34-Habilitar/Desabilitar (borda de subida/descida);35-Iniciar/Parar rastreamento pontual
11* @return Código de erro
12*/
13public int SetDIConfig(int[] config)
5.29. Obter Função da Porta CI Configurável do Painel de Controle
1/**
2* @brief Obtém a função da porta CI configurável do painel de controle
3* @param config Códigos de função CI0-CI7;
4* 0-Nenhum;1-Sucesso de partida de arco;2-Fonte de solda pronta;3-Detecção de esteira;4-Pausar;5-Retomar;6-Iniciar;7-Parar;
58-Pausar/Retomar;9-Iniciar/Parar;10-Arrastagem por pedal;11-Mover para ponto de operação;12-Alternar manual/automático;
613-Sucesso da busca de posição do arame;14-Interrupção de movimento;15-Iniciar programa principal;16-Iniciar rebobinagem;17-Confirmar início;
718-Sinal de detecção fotoelétrica X;19-Sinal de detecção fotoelétrica Y;20-Sinal de entrada de parada de emergência externa 1;21-Sinal de entrada de parada de emergência externa 2;
822-Modo de redução nível 1;23-Modo de redução nível 2;24-Modo de redução nível 3 (parada);25-Recuperar soldagem;26-Terminar soldagem;
927-Ativar arrastagem assistida;28-Desativar arrastagem assistida;29-Ativar/Desativar arrastagem assistida;30-Limpar todos os erros;
1031-Alternar manual/automático (nível alto/baixo);32-Habilitar;33-Desabilitar;34-Habilitar/Desabilitar (borda de subida/descida);35-Iniciar/Parar rastreamento pontual
11* @return Código de erro
12*/
13public int GetDIConfig(int[] config)
5.30. Definir Função da Porta CO Configurável do Painel de Controle
1/**
2* @brief Define a função da porta CO configurável do painel de controle
3* @param config Códigos de função CO0-CO7;
4* 0-Nenhum;1-Erro do robô;2-Robô em movimento;3-Iniciar/Parar pintura;4-Limpeza da pistola de pintura;5-Sinal de fluxo de gás;6-Sinal de partida de arco;7-Alimentação de arame ponto a ponto;
58-Alimentação de arame reversa;9-Porta de entrada JOB 1;10-Porta de entrada JOB 2;11-Porta de entrada JOB 3;12-Controle de início/parada da esteira;13-Robô em pausa;14-Ponto de operação atingido;
615-Área de interferência atingida;16-Controle de início/parada da busca de posição do arame;17-Início do robô concluído;18-Início/Parada do programa;19-Modo automático/manual;20-Sinal de saída de parada de emergência 1 - seguro;
721-Sinal de saída de parada de emergência 2 - seguro;22-Execução/Parada do programa de script LUA;23-Saída de estado seguro - seguro;24-Saída de estado de parada protetiva - seguro;
825-Robô em movimento - seguro;26-Modo de redução do robô - seguro;27-Modo não reduzido do robô - seguro;28-Robô não parado;29-Erro do robô - erro de ponto de comando;
930-Erro do robô - erro do driver;31-Erro do robô - erro de limite flexível excedido;32-Erro do robô - erro de colisão;33-Erro do robô - erro no número de escravos ativos;
1034-Erro do robô - erro de escravo;35-Erro do robô - erro de IO;36-Erro do robô - erro da garra;37-Erro do robô - erro de arquivo;38-Erro do robô - erro de pose singular;
1139-Erro do robô - erro de comunicação do driver;40-Erro do robô - erro de parâmetro;41-Erro do robô - erro de limite flexível do eixo externo excedido;42-Aviso do robô - aviso;
1243-Aviso do robô - aviso de porta de segurança;44-Aviso do robô - aviso de movimento;45-Aviso do robô - aviso de área de interferência;46-Aviso do robô - aviso de parede de segurança;
1347-Estado de habilitação;48-Elevação automática por desconexão em andamento;49-Aviso de interferência do cuboide 1;50-Aviso de interferência do cuboide 2;51-Aviso de interferência do cuboide 3;52-Aviso de interferência do cuboide 4;
14* @return Código de erro
15*/
16public int SetDOConfig(int[] config)
5.31. Obter Função da Porta CO Configurável do Painel de Controle
1/**
2* @brief Obtém a função da porta CO configurável do painel de controle
3* @param config Códigos de função CO0-CO7;
4* 0-Nenhum;1-Erro do robô;2-Robô em movimento;3-Iniciar/Parar pintura;4-Limpeza da pistola de pintura;5-Sinal de fluxo de gás;6-Sinal de partida de arco;7-Alimentação de arame ponto a ponto;
58-Alimentação de arame reversa;9-Porta de entrada JOB 1;10-Porta de entrada JOB 2;11-Porta de entrada JOB 3;12-Controle de início/parada da esteira;13-Robô em pausa;14-Ponto de operação atingido;
615-Área de interferência atingida;16-Controle de início/parada da busca de posição do arame;17-Início do robô concluído;18-Início/Parada do programa;19-Modo automático/manual;20-Sinal de saída de parada de emergência 1 - seguro;
721-Sinal de saída de parada de emergência 2 - seguro;22-Execução/Parada do programa de script LUA;23-Saída de estado seguro - seguro;24-Saída de estado de parada protetiva - seguro;
825-Robô em movimento - seguro;26-Modo de redução do robô - seguro;27-Modo não reduzido do robô - seguro;28-Robô não parado;29-Erro do robô - erro de ponto de comando;
930-Erro do robô - erro do driver;31-Erro do robô - erro de limite flexível excedido;32-Erro do robô - erro de colisão;33-Erro do robô - erro no número de escravos ativos;
1034-Erro do robô - erro de escravo;35-Erro do robô - erro de IO;36-Erro do robô - erro da garra;37-Erro do robô - erro de arquivo;38-Erro do robô - erro de pose singular;
1139-Erro do robô - erro de comunicação do driver;40-Erro do robô - erro de parâmetro;41-Erro do robô - erro de limite flexível do eixo externo excedido;42-Aviso do robô - aviso;
1243-Aviso do robô - aviso de porta de segurança;44-Aviso do robô - aviso de movimento;45-Aviso do robô - aviso de área de interferência;46-Aviso do robô - aviso de parede de segurança;
1347-Estado de habilitação;48-Elevação automática por desconexão em andamento;49-Aviso de interferência do cuboide 1;50-Aviso de interferência do cuboide 2;51-Aviso de interferência do cuboide 3;52-Aviso de interferência do cuboide 4;
14* @return Código de erro
15*/
16public int GetDOConfig(int[] config)
5.32. Definir Função da Porta End-CI Configurável da Extremidade
1/**
2* @brief Define a função da porta End-CI configurável da extremidade
3* @param config Códigos de função End CI0-CI1;
4* 0-Nenhum;1-Interruptor da ferramenta de arrastagem de ensino;2-Sinal de gravação de ponto;3-Alternar manual/automático (sinal de pulso);4-Iniciar/Parar gravação TPD;5-Pausar movimento;
56-Retomar movimento;7-Iniciar;8-Parar;9-Pausar/Retomar;10-Iniciar/Parar;11-Ativar arrastagem assistida por sensor de força;12-Desativar arrastagem assistida por sensor de força;
613-Ativar/Desativar arrastagem assistida por sensor de força;14-Sinal de detecção a laser X;15-Sinal de detecção a laser Y;16-Movimento PTP para ponto de operação;17-Interrupção de movimento, parar o movimento atual com base no sinal;
718-Iniciar programa principal;19-Iniciar rebobinagem;20-Confirmar início;21-Recuperar soldagem;22-Terminar soldagem;23-Limpar erro;24-Alternar manual/automático (nível alto/baixo)
825-Habilitar;26-Desabilitar;27-Habilitar/Desabilitar;28-Sinal de início/parada de rastreamento servo a laser;
9* @return Código de erro
10*/
11public int SetToolDIConfig(int[] config)
5.33. Obter Função da Porta End-CI Configurável da Extremidade
1/**
2* @brief Obtém a função da porta End-CI configurável da extremidade
3* @param config Códigos de função End CI0-CI1;
4* 0-Nenhum;1-Interruptor da ferramenta de arrastagem de ensino;2-Sinal de gravação de ponto;3-Alternar manual/automático (sinal de pulso);4-Iniciar/Parar gravação TPD;5-Pausar movimento;
56-Retomar movimento;7-Iniciar;8-Parar;9-Pausar/Retomar;10-Iniciar/Parar;11-Ativar arrastagem assistida por sensor de força;12-Desativar arrastagem assistida por sensor de força;
613-Ativar/Desativar arrastagem assistida por sensor de força;14-Sinal de detecção a laser X;15-Sinal de detecção a laser Y;16-Movimento PTP para ponto de operação;17-Interrupção de movimento, parar o movimento atual com base no sinal;
718-Iniciar programa principal;19-Iniciar rebobinagem;20-Confirmar início;21-Recuperar soldagem;22-Terminar soldagem;23-Limpar erro;24-Alternar manual/automático (nível alto/baixo)
825-Habilitar;26-Desabilitar;27-Habilitar/Desabilitar;28-Sinal de início/parada de rastreamento servo a laser;
9* @return Código de erro
10*/
11public int GetToolDIConfig(int[] config)
5.34. Definir Estado Ativo da CI Configurável do Painel de Controle
1/**
2* @brief Define o estado ativo da porta CI configurável do painel de controle
3* @param config Estado ativo das portas CI0-CI7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int SetDIConfigLevel(int[] config)
5.35. Obter Estado Ativo da CI Configurável do Painel de Controle
1/**
2* @brief Obtém o estado ativo da porta CI configurável do painel de controle
3* @param config Estado ativo das portas CI0-CI7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int GetDIConfigLevel(int[] config)
5.36. Definir Estado Ativo da CO Configurável do Painel de Controle
1/**
2* @brief Define o estado ativo da porta CO configurável do painel de controle
3* @param config Estado ativo das portas CO0-CO7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int SetDOConfigLevel(int[] config)
5.37. Obter Estado Ativo da CO Configurável do Painel de Controle
1/**
2* @brief Obtém o estado ativo da porta CO configurável do painel de controle
3* @param config Estado ativo das portas CO0-CO7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int GetDOConfigLevel(int[] config)
5.38. Definir Estado Ativo da CI Configurável da Extremidade
1/**
2* @brief Define o estado ativo da porta CI configurável da extremidade
3* @param config Estado ativo das portas CI0-CI1; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int SetToolDIConfigLevel(int[] config)
5.39. Obter Estado Ativo da CI Configurável da Extremidade
1/**
2* @brief Obtém o estado ativo da porta CI configurável da extremidade
3* @param config Estado ativo das portas CI0-CI1; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int GetToolDIConfigLevel(int[] config)
5.40. Definir Estado Ativo do DI Padrão do Painel de Controle
1/**
2* @brief Define o estado ativo do DI padrão do painel de controle
3* @param config Estado ativo das portas DI0-DI7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int SetStandardDILevel(int[] config)
5.41. Obter Estado Ativo do DI Padrão do Painel de Controle
1/**
2* @brief Obtém o estado ativo do DI padrão do painel de controle
3* @param config Estado ativo das portas DI0-DI7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int GetStandardDILevel(int[] config)
5.42. Definir Estado Ativo do DO Padrão do Painel de Controle
1/**
2* @brief Define o estado ativo do DO padrão do painel de controle
3* @param config Estado ativo das portas DO0-DO7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int SetStandardDOLevel(int[] config)
5.43. Obter Estado Ativo do DO Padrão do Painel de Controle
1/**
2* @brief Obtém o estado ativo do DO padrão do painel de controle
3* @param config Estado ativo das portas DO0-DO7; 0-nível alto ativo; 1-nível baixo ativo
4* @return Código de erro
5*/
6public int GetStandardDOLevel(int[] config)
5.44. Exemplo de Código de Configuração de IO do Robô
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}