14. Soldagem do Robô
14.1. Definir Parâmetros da Curva do Processo de Soldagem
1/**
2* @brief Define os parâmetros da curva do processo de soldagem
3* @param [in] id Número do processo de soldagem (1-99)
4* @param [in] startCurrent Corrente de partida do arco (A)
5* @param [in] startVoltage Tensão de partida do arco (V)
6* @param [in] startTime Tempo de partida do arco (ms)
7* @param [in] weldCurrent Corrente de soldagem (A)
8* @param [in] weldVoltage Tensão de soldagem (V)
9* @param [in] endCurrent Corrente de parada do arco (A)
10* @param [in] endVoltage Tensão de parada do arco (V)
11* @param [in] endTime Tempo de parada do arco (ms)
12* @return Código de erro
13*/
14int WeldingSetProcessParam(int id, double startCurrent, double startVoltage, double startTime, double weldCurrent, double weldVoltage, double endCurrent, double endVoltage, double endTime);
14.2. Obter Parâmetros da Curva do Processo de Soldagem
1/**
2* @brief Obtém os parâmetros da curva do processo de soldagem
3* @param [in] id Número do processo de soldagem (1-99)
4* @param [out] startCurrent Corrente de partida do arco (A)
5* @param [out] startVoltage Tensão de partida do arco (V)
6* @param [out] startTime Tempo de partida do arco (ms)
7* @param [out] weldCurrent Corrente de soldagem (A)
8* @param [out] weldVoltage Tensão de soldagem (V)
9* @param [out] endCurrent Corrente de parada do arco (A)
10* @param [out] endVoltage Tensão de parada do arco (V)
11* @param [out] endTime Tempo de parada do arco (ms)
12* @return Código de erro
13*/
14int WeldingGetProcessParam(int id, ref double startCurrent, ref double startVoltage, ref double startTime, ref double weldCurrent, ref double weldVoltage, ref double endCurrent, ref double endVoltage, ref double endTime);
14.3. Definir Relação entre Corrente de Soldagem e Saída Analógica
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Define a relação entre corrente de soldagem e saída analógica
3* @param [in] currentMin Valor da corrente no ponto esquerdo da relação linear corrente de soldagem-saída analógica (A)
4* @param [in] currentMax Valor da corrente no ponto direito da relação linear corrente de soldagem-saída analógica (A)
5* @param [in] outputVoltageMin Valor da tensão de saída analógica no ponto esquerdo da relação linear corrente de soldagem-saída analógica (V)
6* @param [in] outputVoltageMax Valor da tensão de saída analógica no ponto direito da relação linear corrente de soldagem-saída analógica (V)
7* @return Código de erro
8*/
9int WeldingSetCurrentRelation(double currentMin, double currentMax, double outputVoltageMin, double outputVoltageMax);
14.4. Definir Relação entre Tensão de Soldagem e Saída Analógica
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Define a relação entre tensão de soldagem e saída analógica
3* @param [in] weldVoltageMin Valor da tensão de soldagem no ponto esquerdo da relação linear tensão de soldagem-saída analógica (A)
4* @param [in] weldVoltageMax Valor da tensão de soldagem no ponto direito da relação linear tensão de soldagem-saída analógica (A)
5* @param [in] outputVoltageMin Valor da tensão de saída analógica no ponto esquerdo da relação linear tensão de soldagem-saída analógica (V)
6* @param [in] outputVoltageMax Valor da tensão de saída analógica no ponto direito da relação linear tensão de soldagem-saída analógica (V)
7* @return Código de erro
8*/
9int WeldingSetVoltageRelation(double weldVoltageMin, double weldVoltageMax, double outputVoltageMin, double outputVoltageMax);
14.5. Obter Relação entre Corrente de Soldagem e Saída Analógica
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Obtém a relação entre corrente de soldagem e saída analógica
3* @param [out] currentMin Valor da corrente no ponto esquerdo da relação linear corrente de soldagem-saída analógica (A)
4* @param [out] currentMax Valor da corrente no ponto direito da relação linear corrente de soldagem-saída analógica (A)
5* @param [out] outputVoltageMin Valor da tensão de saída analógica no ponto esquerdo da relação linear corrente de soldagem-saída analógica (V)
6* @param [out] outputVoltageMax Valor da tensão de saída analógica no ponto direito da relação linear corrente de soldagem-saída analógica (V)
7* @return Código de erro
8*/
9int WeldingGetCurrentRelation(ref double currentMin, ref double currentMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.6. Obter Relação entre Tensão de Soldagem e Saída Analógica
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Obtém a relação entre tensão de soldagem e saída analógica
3* @param [out] weldVoltageMin Valor da tensão de soldagem no ponto esquerdo da relação linear tensão de soldagem-saída analógica (A)
4* @param [out] weldVoltageMax Valor da tensão de soldagem no ponto direito da relação linear tensão de soldagem-saída analógica (A)
5* @param [out] outputVoltageMin Valor da tensão de saída analógica no ponto esquerdo da relação linear tensão de soldagem-saída analógica (V)
6* @param [out] outputVoltageMax Valor da tensão de saída analógica no ponto direito da relação linear tensão de soldagem-saída analógica (V)
7* @return Código de erro
8*/
9int WeldingGetVoltageRelation(ref double weldVoltageMin, ref double weldVoltageMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.7. Definir Corrente de Soldagem
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Define a corrente de soldagem
3* @param [in] ioType Tipo de controle IO 0-IO do painel de controle;1-IO de extensão
4* @param [in] current Valor da corrente de soldagem (A)
5* @param [in] AOIndex Porta de saída analógica do painel de controle para corrente de soldagem (0-1)
6* @return Código de erro
7*/
8int WeldingSetCurrent(int ioType, double current, int AOIndex);
14.8. Definir Tensão de Soldagem
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Define a tensão de soldagem
3* @param [in] ioType Tipo de controle IO 0-IO do painel de controle;1-IO de extensão
4* @param [in] voltage Valor da tensão de soldagem (A)
5* @param [in] AOIndex Porta de saída analógica do painel de controle para tensão de soldagem (0-1)
6* @return Código de erro
7*/
8int WeldingSetVoltage(int ioType, double voltage, int AOIndex);
14.9. Definir Parâmetros de Oscilação
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Define os parâmetros de oscilação
3* @param [in] weaveNum Número de configuração dos parâmetros de oscilação
4* @param [in] weaveType Tipo de oscilação 0-Oscilação triangular plana;1-Oscilação triangular vertical tipo L;2-Oscilação circular horária;3-Oscilação circular anti-horária;4-Oscilação senoidal plana;5-Oscilação senoidal vertical tipo L;6-Oscilação triangular vertical;7-Oscilação senoidal vertical
5* @param [in] weaveFrequency Frequência de oscilação (Hz)
6* @param [in] weaveIncStayTime Modo de espera 0-ciclo não inclui tempo de espera;1-ciclo inclui tempo de espera
7* @param [in] weaveRange Amplitude de oscilação (mm)
8* @param [in] weaveLeftRange Comprimento da corda esquerda da oscilação triangular vertical (mm)
9* @param [in] weaveRightRange Comprimento da corda direita da oscilação triangular vertical (mm)
10* @param [in] additionalStayTime Tempo de espera no ponto do vértice da oscilação triangular vertical (mm)
11* @param [in] weaveLeftStayTime Tempo de espera à esquerda da oscilação (ms)
12* @param [in] weaveRightStayTime Tempo de espera à direita da oscilação (ms)
13* @param [in] weaveCircleRadio Razão de retorno da oscilação circular (0-100%)
14* @param [in] weaveStationary Espera na posição de oscilação, 0-posição continua se movendo durante o tempo de espera;1-posição parada durante o tempo de espera
15* @param [in] weaveYawAngle Ângulo de azimute da direção da oscilação (rotação em torno do eixo Z da oscilação), unidade °
16* @return Código de erro
17*/
18int WeaveSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, double weaveLeftRange, double weaveRightRange, int additionalStayTime, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary, double weaveYawAngle, double weaveRotAngle=0);
14.10. Exemplo de Código para Definir Parâmetros de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1private void button7_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetProcessParam(1, 177, 27, 1000, 178, 28, 176, 26, 1000);
4 robot.WeldingSetProcessParam(2, 188, 28, 555, 199, 29, 133, 23, 333);
5
6 double startCurrent = 0;
7 double startVoltage = 0;
8 double startTime = 0;
9 double weldCurrent = 0;
10 double weldVoltage = 0;
11 double endCurrent = 0;
12 double endVoltage = 0;
13 double endTime = 0;
14
15 robot.WeldingGetProcessParam(1, ref startCurrent, ref startVoltage, ref startTime, ref weldCurrent, ref weldVoltage, ref endCurrent, ref endVoltage, ref endTime);
16 Console.WriteLine("the Num 1 process param is " + startCurrent + " " + startVoltage + " " + startTime + " " + weldCurrent + " " + weldVoltage + " " + endCurrent + " " + endVoltage + " " + endTime);
17 robot.WeldingGetProcessParam(2, ref startCurrent, ref startVoltage, ref startTime, ref weldCurrent, ref weldVoltage, ref endCurrent, ref endVoltage, ref endTime);
18 Console.WriteLine("the Num 2 process param is " + startCurrent + " " + startVoltage + " " + startTime + " " + weldCurrent + " " + weldVoltage + " " + endCurrent + " " + endVoltage + " " + endTime);
19
20 int rtn = robot.WeldingSetCurrentRelation(0, 400, 0, 10, 0);
21 Console.WriteLine("WeldingSetCurrentRelation rtn is: " + rtn);
22
23 rtn = robot.WeldingSetVoltageRelation(0, 40, 0, 10, 1);
24 Console.WriteLine("WeldingSetVoltageRelation rtn is: " + rtn);
25
26 double current_min = 0;
27 double current_max = 0;
28 double vol_min = 0;
29 double vol_max = 0;
30 double output_vmin = 0;
31 double output_vmax = 0;
32 int curIndex = 0;
33 int volIndex = 0;
34 rtn = robot.WeldingGetCurrentRelation(ref current_min, ref current_max, ref output_vmin, ref output_vmax, ref curIndex);
35 Console.WriteLine("WeldingGetCurrentRelation rtn is: " + rtn);
36 Console.WriteLine("current min " + current_min + " current max " + current_max + " output vol min " + output_vmin + " output vol max " + output_vmax);
37
38 rtn = robot.WeldingGetVoltageRelation(ref vol_min, ref vol_max, ref output_vmin, ref output_vmax, ref volIndex);
39 Console.WriteLine("WeldingGetVoltageRelation rtn is: " + rtn);
40 Console.WriteLine("vol min " + vol_min + " vol max " + vol_max + " output vol min " + output_vmin + " output vol max " + output_vmax);
41
42 rtn = robot.WeldingSetCurrent(1, 100, 0, 0);
43 Console.WriteLine("WeldingSetCurrent rtn is: " + rtn);
44
45 System.Threading.Thread.Sleep(3000);
46
47 rtn = robot.WeldingSetVoltage(1, 10, 0, 0);
48 Console.WriteLine("WeldingSetVoltage rtn is: " + rtn);
49
50 rtn = robot.WeaveSetPara(0, 0, 2.000000, 0, 10.000000, 0.000000, 0.000000, 0, 0, 0, 0, 0, 60.000000);
51 Console.WriteLine("rtn is: " + rtn);
52
53 robot.WeaveOnlineSetPara(0, 0, 1, 0, 20, 0, 0, 0, 0);
54
55 rtn = robot.WeldingSetCheckArcInterruptionParam(1, 200);
56 Console.WriteLine("WeldingSetCheckArcInterruptionParam " + rtn);
57 rtn = robot.WeldingSetReWeldAfterBreakOffParam(1, 5.7, 98.2, 0);
58 Console.WriteLine("WeldingSetReWeldAfterBreakOffParam " + rtn);
59 int enable = 0;
60 double length = 0;
61 double velocity = 0;
62 int moveType = 0;
63 int checkEnable = 0;
64 int arcInterruptTimeLength = 0;
65 rtn = robot.WeldingGetCheckArcInterruptionParam(ref checkEnable, ref arcInterruptTimeLength);
66 Console.WriteLine("WeldingGetCheckArcInterruptionParam checkEnable " + checkEnable + " arcInterruptTimeLength " + arcInterruptTimeLength);
67 rtn = robot.WeldingGetReWeldAfterBreakOffParam(ref enable, ref length, ref velocity, ref moveType);
68 Console.WriteLine("WeldingGetReWeldAfterBreakOffParam enable = " + enable + ", length = " + length + ", velocity = " + velocity + ", moveType = " + moveType);
69
70 robot.SetWeldMachineCtrlModeExtDoNum(17);
71 for (int i = 0; i < 5; i++)
72 {
73 robot.SetWeldMachineCtrlMode(0);
74 Thread.Sleep(1000);
75 robot.SetWeldMachineCtrlMode(1);
76 Thread.Sleep(1000);
77 }
78
79}
14.11. Definir Parâmetros de Oscilação Online
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Define os parâmetros de oscilação online
3* @param [in] weaveNum Número de configuração dos parâmetros de oscilação
4* @param [in] weaveType Tipo de oscilação 0-Oscilação triangular plana;1-Oscilação triangular vertical tipo L;2-Oscilação circular horária;3-Oscilação circular anti-horária;4-Oscilação senoidal plana;5-Oscilação senoidal vertical tipo L;6-Oscilação triangular vertical;7-Oscilação senoidal vertical
5* @param [in] weaveFrequency Frequência de oscilação (Hz)
6* @param [in] weaveIncStayTime Modo de espera 0-ciclo não inclui tempo de espera;1-ciclo inclui tempo de espera
7* @param [in] weaveRange Amplitude de oscilação (mm)
8* @param [in] weaveLeftStayTime Tempo de espera à esquerda da oscilação (ms)
9* @param [in] weaveRightStayTime Tempo de espera à direita da oscilação (ms)
10* @param [in] weaveCircleRadio Razão de retorno da oscilação circular (0-100%)
11* @param [in] weaveStationary Espera na posição de oscilação, 0-posição continua se movendo durante o tempo de espera;1-posição parada durante o tempo de espera
12* @return Código de erro
13*/
14int WeaveOnlineSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary);
14.12. Definir Parâmetros de Detecção de Interrupção Acidental do Arco de Soldagem
1/**
2* @brief Define os parâmetros de detecção de interrupção acidental do arco de soldagem
3* @param [in] checkEnable Se habilita a detecção; 0-desabilitar; 1-habilitar
4* @param [in] arcInterruptTimeLength Duração de confirmação da interrupção do arco (ms)
5* @return Código de erro
6*/
7int WeldingSetCheckArcInterruptionParam(int checkEnable, int arcInterruptTimeLength)
14.13. Obter Parâmetros de Detecção de Interrupção Acidental do Arco de Soldagem
1/**
2* @brief Obtém os parâmetros de detecção de interrupção acidental do arco de soldagem
3* @param [out] checkEnable Se habilita a detecção; 0-desabilitar; 1-habilitar
4* @param [out] arcInterruptTimeLength Duração de confirmação da interrupção do arco (ms)
5* @return Código de erro
6*/
7int WeldingGetCheckArcInterruptionParam(ref int checkEnable, ref int arcInterruptTimeLength)
14.14. Definir Parâmetros de Recuperação de Interrupção de Soldagem
1/**
2* @brief Define os parâmetros de recuperação de interrupção de soldagem
3* @param[in] enable Se habilita a recuperação de interrupção de soldagem
4* @param[in] length Distância de sobreposição da solda (mm)
5* @param[in] velocity Porcentagem de velocidade do robô ao retornar ao ponto de reinício do arco (0-100)
6* @param[in] moveType Modo de movimento do robô até o ponto de reinício do arco; 0-LIN;1-PTP
7* @return Código de erro
8*/
9int WeldingSetReWeldAfterBreakOffParam(int enable, double length, double velocity, int moveType)
14.15. Obter Parâmetros de Recuperação de Interrupção de Soldagem
1/**
2* @brief Obtém os parâmetros de recuperação de interrupção de soldagem
3* @param [out] enable Se habilita a recuperação de interrupção de soldagem
4* @param [out] length Distância de sobreposição da solda (mm)
5* @param [out] velocity Porcentagem de velocidade do robô ao retornar ao ponto de reinício do arco (0-100)
6* @param [out] moveType Modo de movimento do robô até o ponto de reinício do arco; 0-LIN;1-PTP
7* @return Código de erro
8*/
9int WeldingGetReWeldAfterBreakOffParam(ref int enable, ref double length, ref double velocity, ref int moveType)
14.16. Definir Número da Porta DO de Extensão para Modo de Controle da Fonte de Solda
1/**
2* @brief Define o número da porta DO de extensão para o modo de controle da fonte de solda
3* @param DONum Porta DO do modo de controle da fonte de solda (0-127)
4* @return Código de erro
5*/
6int SetWeldMachineCtrlModeExtDoNum(int DONum);
14.17. Definir Modo de Controle da Fonte de Solda
1/**
2* @brief Define o modo de controle da fonte de solda
3* @param [in] mode Modo de controle da fonte de solda; 0-modo CC com unidade;1-modo pulsado com unidade;2-modo JOB;3-modo painel;4-modo separado;5-modo CC/CV;6-TIG;7-CMT
4* @param [in] ioType Tipo de controle; 0-IO do painel de controle;1-Protocolo de comunicação digital (UDP);2-Protocolo de comunicação digital (ModbusTCP)
5* @return Código de erro
6*/
7public int SetWeldMachineCtrlMode(int mode,int ioType = 1)
14.18. Início da Soldagem
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Início da soldagem
3* @param [in] ioType tipo de IO 0-IO do controlador; 1-IO de extensão
4* @param [in] arcNum Número do arquivo de configuração da fonte de solda
5* @param [in] timeout Tempo limite de partida do arco
6* @return Código de erro
7*/
8int ARCStart(int ioType, int arcNum, int timeout);
14.19. Fim da Soldagem
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Fim da soldagem
3* @param [in] ioType tipo de IO 0-IO do controlador; 1-IO de extensão
4* @param [in] arcNum Número do arquivo de configuração da fonte de solda
5* @param [in] timeout Tempo limite de extinção do arco
6* @return Código de erro
7*/
8int ARCEnd(int ioType, int arcNum, int timeout);
14.20. Início da Oscilação
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Início da oscilação
3* @param [in] weaveNum Número de configuração dos parâmetros de oscilação
4* @return Código de erro
5*/
6int WeaveStart(int weaveNum);
14.21. Fim da Oscilação
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Fim da oscilação
3* @param [in] weaveNum Número de configuração dos parâmetros de oscilação
4* @return Código de erro
5*/
6int WeaveEnd(int weaveNum);
14.22. Alimentação de Arame para Frente
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Alimentação de arame para frente
3* @param [in] ioType tipo de IO 0-IO do controlador;1-IO de extensão
4* @param [in] wireFeed Controle de alimentação de arame 0-parar alimentação;1-alimentar
5* @return Código de erro
6*/
7int SetForwardWireFeed(int ioType, int wireFeed);
14.23. Alimentação de Arame para Trás
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Alimentação de arame para trás
3* @param [in] ioType tipo de IO 0-IO do controlador;1-IO de extensão
4* @param [in] wireFeed Controle de alimentação de arame 0-parar alimentação;1-alimentar
5* @return Código de erro
6*/
7int SetReverseWireFeed(int ioType, int wireFeed);
14.24. Fluxo de Gás
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Fluxo de gás
3* @param [in] ioType tipo de IO 0-IO do controlador;1-IO de extensão
4* @param [in] airControl Controle de fluxo de gás 0-parar fluxo;1-ativar fluxo
5* @return Código de erro
6*/
7int SetAspirated(int ioType, int airControl);
14.25. Recuperar Soldagem Após Interrupção de Soldagem
1/**
2* @brief Recupera a soldagem após interrupção de soldagem
3* @return Código de erro
4*/
5int WeldingStartReWeldAfterBreakOff()
14.26. Abaortar Soldagem Após Interrupção de Soldagem
1/**
2* @brief Aborta a soldagem após interrupção de soldagem
3* @return Código de erro
4*/
5int WeldingAbortWeldAfterBreakOff()
14.27. Exemplo de Código
1private void button7_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetCurrent(1, 230, 0, 0);
4 robot.WeldingSetVoltage(1, 24, 0, 1);
5
6 DescPose p1Desc = new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint = new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc = new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint = new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
16 robot.ARCStart(1, 0, 10000);
17 robot.WeaveStart(0);
18 robot.MoveL (p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese);
19 robot.ARCEnd(1, 0, 10000);
20 robot.WeaveEnd(0);
21}
14.28. Início da Soldagem por Pontos
Novo na versão C#SDK-v1.0.4.
1/**
2* @brief Início da soldagem por pontos
3* @param [in] startDesePos Posição cartesiana do ponto inicial
4* @param [in] endDesePos Pose cartesiana do ponto final
5* @param [in] startJPos Pose articular do ponto inicial
6* @param [in] endJPos Pose articular do ponto final
7* @param [in] weldLength Comprimento do segmento soldado (mm)
8* @param [in] noWeldLength Comprimento do segmento não soldado (mm)
9* @param [in] weldIOType Tipo de IO de soldagem (0-IO do painel de controle;1-IO de extensão)
10* @param [in] arcNum Número do arquivo de configuração da fonte de solda
11* @param [in] weldTimeout Tempo limite de partida/parada do arco
12* @param [in] isWeave Se há oscilação
13* @param [in] weaveNum Número de configuração dos parâmetros de oscilação
14* @param [in] tool Número da ferramenta
15* @param [in] user Número da peça
16* @param [in] vel Porcentagem de velocidade, faixa [0~100]
17* @param [in] acc Porcentagem de aceleração, faixa [0~100], temporariamente não disponível
18* @param [in] ovl Fator de escala de velocidade, faixa [0~100]
19* @param [in] blendR [-1.0]-movimento concluído (bloqueado), [0~1000.0]-raio de suavização (não bloqueado), unidade mm
20* @param [in] epos Posição do eixo de extensão, unidade mm
21* @param [in] search 0-sem busca de posição do arame, 1-com busca de posição do arame
22* @param [in] offset_flag 0-sem deslocamento, 1-deslocamento no sistema de coordenadas base/sistema de coordenadas da peça, 2-deslocamento no sistema de coordenadas da ferramenta
23* @param [in] offset_pos Valor de deslocamento da pose
24* @return Código de erro
25*/
26int SegmentWeldStart(DescPose startDesePos, DescPose endDesePos, JointPos startJPos, JointPos endJPos, double weldLength, double noWeldLength, int weldIOType, int arcNum, int weldTimeout,bool isWeave, int weaveNum, int tool, int user, float vel, float acc, float ovl, float blendR, ExaxisPos epos, byte search, byte offset_flag, DescPose offset_pos);
14.29. Exemplo de Código de Soldagem por Pontos do Robô
Novo na versão C#SDK-v1.0.4.
1private void btnWeldStart_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetCurrent(1, 230, 0, 0);
4 robot.WeldingSetVoltage(1, 24, 0, 1);
5
6 DescPose p1Desc = new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint = new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc = new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint = new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 int rtn = robot.SegmentWeldStart( p1Desc, p2Desc, p1Joint, p2Joint, 20, 20, 0, 0, 5000, false, 0, 0, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
16 Console.WriteLine("SegmentWeldStart rtn is {0}", rtn);
17}
14.30. Início da Simulação de Oscilação
1/**
2* @brief Início da simulação de oscilação
3* @param [in] weaveNum Número do parâmetro de oscilação
4* @return Código de erro
5*/
6int WeaveStartSim(int weaveNum);
14.31. Fim da Simulação de Oscilação
1/**
2* @brief Fim da simulação de oscilação
3* @param [in] weaveNum Número do parâmetro de oscilação
4* @return Código de erro
5*/
6int WeaveEndSim(int weaveNum);
14.32. Início do Alerta de Detecção de Trajetória (Sem Movimento)
1/**
2* @brief Início do alerta de detecção de trajetória (Sem movimento)
3* @param [in] weaveNum Número do parâmetro de oscilação
4* @return Código de erro
5*/
6int WeaveInspectStart(int weaveNum);
14.33. Fim do Alerta de Detecção de Trajetória (Sem Movimento)
1/**
2* @brief Fim do alerta de detecção de trajetória (Sem movimento)
3* @param [in] weaveNum Número do parâmetro de oscilação
4* @return Código de erro
5*/
6int WeaveInspectEnd(int weaveNum);
14.34. Início da Transição Gradual da Oscilação
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Início da transição gradual da oscilação
3* @param [in] weaveChangeFlag 1-alterar parâmetros de oscilação;2-alterar parâmetros de oscilação + velocidade de soldagem
4* @param [in] weaveNum Número da oscilação
5* @param [in] velStart Velocidade inicial de soldagem (cm/min)
6* @param [in] velEnd Velocidade final de soldagem (cm/min)
7* @return Código de erro
8*/
9int WeaveChangeStart(int weaveChangeFlag, int weaveNum, double velStart, double velEnd);
14.35. Fim da Transição Gradual da Oscilação
1/**
2* @brief Fim da transição gradual da oscilação
3* @return Código de erro
4*/
5int WeaveChangeEnd()
14.36. Exemplo de Código de Soldagem com Transição Gradual de Oscilação
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
2{
3 DescPose p1Desc = new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
4 JointPos p1Joint = new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
5
6 DescPose p2Desc = new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
7 JointPos p2Joint = new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
8
9 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
11
12 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.WeaveStartSim(0);
14 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese);
15 robot.WeaveEndSim(0);
16 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
17 robot.WeaveInspectStart(0);
18 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese);
19 robot.WeaveInspectEnd(0);
20
21 robot.WeldingSetVoltage(1, 19, 0, 0);
22 robot.WeldingSetCurrent(1, 190, 0, 0);
23 robot.MoveL( p1Joint, p1Desc, 1, 1, 100, 100, 50, -1, exaxisPos, 0, 0, offdese);
24 robot.ARCStart(1, 0, 10000);
25 robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
26 robot.WeaveStart(0);
27 robot.WeaveChangeStart(1, 0, 50, 30);
28 robot.MoveL( p2Joint, p2Desc, 1, 1, 100, 100, 1, -1, exaxisPos, 0, 0, offdese);
29 robot.WeaveChangeEnd();
30 robot.WeaveEnd(0);
31 robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
32 robot.ARCEnd(1, 0, 10000);
33}
14.37. IO de Extensão - Configurar Sinal de Detecção de Gás da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de detecção de gás da fonte de solda
3* @param [in] DONum Número DO de extensão do sinal de detecção de gás
4* @return Código de erro
5*/
6int SetAirControlExtDoNum(int DONum);
14.38. IO de Extensão - Configurar Sinal de Partida de Arco da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de partida de arco da fonte de solda
3* @param [in] DONum Número DO de extensão do sinal de partida de arco da fonte de solda
4* @return Código de erro
5*/
6int SetArcStartExtDoNum(int DONum);
14.39. IO de Extensão - Configurar Sinal de Alimentação de Arame para Trás da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de alimentação de arame para trás da fonte de solda
3* @param [in] DONum Número DO de extensão do sinal de alimentação de arame para trás
4* @return Código de erro
5*/
6int SetWireReverseFeedExtDoNum(int DONum);
14.40. IO de Extensão - Configurar Sinal de Alimentação de Arame para Frente da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de alimentação de arame para frente da fonte de solda
3* @param [in] DONum Número DO de extensão do sinal de alimentação de arame para frente
4* @return Código de erro
5*/
6int SetWireForwardFeedExtDoNum(int DONum);
14.41. IO de Extensão - Configurar Sinal de Sucesso de Partida de Arco da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de sucesso de partida de arco da fonte de solda
3* @param [in] DINum Número DI de extensão do sinal de sucesso de partida de arco
4* @return Código de erro
5*/
6int SetArcDoneExtDiNum(int DINum);
14.42. IO de Extensão - Configurar Sinal de Prontidão da Fonte de Solda
1/**
2* @brief IO de extensão - Configurar sinal de prontidão da fonte de solda
3* @param [in] DINum Número DI de extensão do sinal de prontidão da fonte de solda
4* @return Código de erro
5*/
6int SetWeldReadyExtDiNum(int DINum);
14.43. IO de Extensão - Configurar Sinal de Recuperação de Interrupção de Soldagem
1/**
2* @brief IO de extensão - Configurar sinal de recuperação de interrupção de soldagem
3* @param [in] reWeldDINum Número DI de extensão do sinal de recuperação de soldagem após interrupção
4* @param [in] abortWeldDINum Número DI de extensão do sinal de abortagem de soldagem após interrupção
5* @return Código de erro
6*/
7int SetExtDIWeldBreakOffRecover(int reWeldDINum, int abortWeldDINum);
14.44. Exemplo de Código para Configurar Sinais de Soldagem com IO de Extensão
1private void button51_Click(object sender, EventArgs e)
2{
3 robot.SetArcStartExtDoNum(10);
4 robot.SetAirControlExtDoNum(20);
5 robot.SetWireForwardFeedExtDoNum(30);
6 robot.SetWireReverseFeedExtDoNum(40);
7
8 robot.SetWeldReadyExtDiNum(50);
9 robot.SetArcDoneExtDiNum(60);
10 robot.SetExtDIWeldBreakOffRecover(70, 80);
11 robot.SetWireSearchExtDIONum(0, 1);
12}
14.45. Controle de Rastreamento de Arco
1/**
2* @brief Controle de rastreamento de arco
3* @param [in] flag Interruptor, 0-desligar;1-ligar
4* @param [in] dalayTime Tempo de atraso, unidade ms
5* @param [in] isLeftRight Compensação de desvio horizontal
6* @param [in] klr Coeficiente de ajuste horizontal (sensibilidade)
7* @param [in] tStartLr Tempo de início da compensação horizontal cyc
8* @param [in] stepMaxLr Quantidade máxima de compensação por ciclo horizontal mm
9* @param [in] sumMaxLr Quantidade máxima total de compensação horizontal mm
10* @param [in] isUpLow Compensação de desvio vertical
11* @param [in] kud Coeficiente de ajuste vertical (sensibilidade)
12* @param [in] tStartUd Tempo de início da compensação vertical cyc
13* @param [in] stepMaxUd Quantidade máxima de compensação por ciclo vertical mm
14* @param [in] sumMaxUd Quantidade máxima total de compensação vertical
15* @param [in] axisSelect Seleção do sistema de coordenadas vertical, 0-oscilação;1-ferramenta;2-base
16* @param [in] referenceType Método de definição da corrente de referência vertical, 0-feedback;1-constante
17* @param [in] referSampleStartUd Início da contagem de amostragem da corrente de referência vertical (feedback), cyc
18* @param [in] referSampleCountUd Contagem do ciclo de amostragem da corrente de referência vertical (feedback), cyc
19* @param [in] referenceCurrent Corrente de referência vertical mA
20* @param [in] offsetType Tipo de rastreamento com deslocamento, 0-sem deslocamento;1-amostragem;2-porcentagem /version 3.7.9
21* @param [in] offsetParameter Parâmetro de deslocamento; amostragem (tempo de início da amostragem de deslocamento, padrão um ciclo); porcentagem (porcentagem de deslocamento (-100 ~ 100)) /version 3.7.9
22* @return Código de erro
23*/
24int ArcWeldTraceControl(int flag, double delaytime, int isLeftRight, double klr, double tStartLr, double stepMaxLr, double sumMaxLr, int isUpLow, double kud, double tStartUd, double stepMaxUd, double sumMaxUd, int axisSelect, int referenceType, double referSampleStartUd, double referSampleCountUd, double referenceCurrent, int offsetType, int offsetParameter);
14.46. Seleção da Faixa AI para Rastreamento de Arco
1/**
2* @brief Seleção da faixa AI para rastreamento de arco
3* @param [in] channel Seleção da faixa AI para rastreamento de arco, [0-3]
4* @return Código de erro
5*/
6int ArcWeldTraceExtAIChannelConfig(int channel);
14.47. Ativação da Compensação para Rastreamento de Arco + Múltiplas Camadas e Múltiplas Passadas
1/**
2* @brief Ativação da compensação para rastreamento de arco + múltiplas camadas e múltiplas passadas
3* @return Código de erro
4*/
5int ArcWeldTraceReplayStart();
14.48. Desativação da Compensação para Rastreamento de Arco + Múltiplas Camadas e Múltiplas Passadas
1 /**
2 * @brief Desativação da compensação para rastreamento de arco + múltiplas camadas e múltiplas passadas
3 * @return Código de erro
4 */
5int ArcWeldTraceReplayEnd();
14.49. Mudança de Coordenadas de Deslocamento - Soldagem de Múltiplas Camadas e Múltiplas Passadas
1 /**
2 * @brief Mudança de coordenadas de deslocamento - Soldagem de múltiplas camadas e múltiplas passadas
3 * @param [in] pointO Pose cartesiana do ponto base
4 * @param [in] pointX Pose cartesiana do ponto na direção de deslocamento X do ponto base
5 * @param [in] pointZ Pose cartesiana do ponto na direção de deslocamento Z do ponto base
6 * @param [in] dx Deslocamento na direção x (mm)
7 * @param [in] dy Deslocamento na direção z (mm)
8 * @param [in] db Deslocamento em torno do eixo y (°)
9 * @param [out] offset Deslocamento calculado
10 * @return Código de erro
11 */
12int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dy, double db, ref DescPose offset);
14.50. Exemplo de Código de Rastreamento de Arco para Soldagem de Múltiplas Camadas e Múltiplas Passadas
1private void button52_Click(object sender, EventArgs e)
2{
3 JointPos mulitilineorigin1_joint = new JointPos(-24.090, -63.501, 84.288, -111.940, -93.426, 57.669);
4 DescPose mulitilineorigin1_desc = new DescPose(-677.559, 190.951, -1.205, 1.144, -41.482, -82.577);
5
6 DescTran mulitilineX1_desc = new DescTran();
7 mulitilineX1_desc.x = -677.556;
8 mulitilineX1_desc.y = 211.949;
9 mulitilineX1_desc.z = -1.206;
10
11 DescTran mulitilineZ1_desc = new DescTran();
12 mulitilineZ1_desc.x = -677.564;
13 mulitilineZ1_desc.y = 190.956;
14 mulitilineZ1_desc.z = 19.817;
15
16 JointPos mulitilinesafe_joint = new JointPos(-25.734, -63.778, 81.502, -108.975, -93.392, 56.021);
17 DescPose mulitilinesafe_desc = new DescPose(-677.561, 211.950, 19.812, 1.144, -41.482, -82.577);
18 JointPos mulitilineorigin2_joint = new JointPos(-29.743, -75.623, 101.241, -116.354, -94.928, 55.735);
19 DescPose mulitilineorigin2_desc = new DescPose(-563.961, 215.359, -0.681, 2.845, -40.476, -87.443);
20
21 DescTran mulitilineX2_desc = new DescTran();
22 mulitilineX2_desc.x = -563.965;
23 mulitilineX2_desc.y = 220.355;
24 mulitilineX2_desc.z = -0.680;
25
26 DescTran mulitilineZ2_desc = new DescTran();
27 mulitilineZ2_desc.x = -563.968;
28 mulitilineZ2_desc.y = 215.362;
29 mulitilineZ2_desc.z = 4.331;
30
31 ExaxisPos epos = new ExaxisPos(0, 0, 0, 0);
32 DescPose offset = new DescPose(0, 0, 0, 0, 0, 0);
33
34 Thread.Sleep(10);
35 int error = robot.MoveJ( mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
36 Console.WriteLine("MoveJ return: {0}", error);
37
38 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
39 Console.WriteLine("MoveL return: {0}", error);
40
41 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
42 Console.WriteLine("MoveJ return: {0}", error);
43
44 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
45 Console.WriteLine("MoveL return: {0}", error);
46
47 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
48 Console.WriteLine("MoveJ return: {0}", error);
49
50 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
51 Console.WriteLine("MoveL return: {0}", error);
52
53 error = robot.ARCStart(1, 0, 3000);
54 Console.WriteLine("ARCStart return: {0}", error);
55
56 error = robot.WeaveStart(0);
57 Console.WriteLine("WeaveStart return: {0}", error);
58
59 error = robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
60 Console.WriteLine("ArcWeldTraceControl return: {0}", error);
61
62 error = robot.MoveL( mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 1, 100, 100, -1, epos, 0, 0, offset, 0, 100);
63 Console.WriteLine("MoveL return: {0}", error);
64
65 error = robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
66 Console.WriteLine("ArcWeldTraceControl return: {0}", error);
67
68 error = robot.WeaveEnd(0);
69 Console.WriteLine("WeaveEnd return: {0}", error);
70
71 error = robot.ARCEnd(1, 0, 10000);
72 Console.WriteLine("ARCEnd return: {0}", error);
73
74 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
75 Console.WriteLine("MoveJ return: {0}", error);
76
77 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 10.0, 0.0, 0.0, ref offset);
78 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
79
80 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 1, offset, 0, 100);
81 Console.WriteLine("MoveL return: {0}", error);
82
83 error = robot.ARCStart(1, 0, 3000);
84 Console.WriteLine("ARCStart return: {0}", error);
85
86 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 10, 0, 0, ref offset);
87 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
88
89 error = robot.ArcWeldTraceReplayStart();
90 Console.WriteLine("ArcWeldTraceReplayStart return: {0}", error);
91
92 error = robot.MoveL( mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1, epos, 0, 1, offset, 0, 100);
93 Console.WriteLine("MoveL return: {0}", error);
94
95 error = robot.ArcWeldTraceReplayEnd();
96 Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);
97
98 error = robot.ARCEnd(1, 0, 10000);
99 Console.WriteLine("ARCEnd return: {0}", error);
100
101 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
102 Console.WriteLine("MoveJ return: {0}", error);
103
104 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 0, 10, 0, ref offset);
105 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
106
107 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 1, offset, 0, 100);
108 Console.WriteLine("MoveL return: {0}", error);
109
110 error = robot.ARCStart(1, 0, 3000);
111 Console.WriteLine("ARCStart return: {0}", error);
112
113 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 0, 10, 0, ref offset);
114 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
115
116 error = robot.ArcWeldTraceReplayStart();
117 Console.WriteLine("MoveJ return: {0}", error);
118
119 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 1, 2, 100, 100, -1, epos, 1, 1, offset, 1, 100);
120 Console.WriteLine("MoveL return: {0}", error);
121
122 error = robot.ArcWeldTraceReplayEnd();
123 Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);
124
125 error = robot.ARCEnd(1, 0, 3000);
126 Console.WriteLine("ARCEnd return: {0}", error);
127
128 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
129 Console.WriteLine("MoveJ return: {0}", error);
130}
14.51. Seleção do Canal AI para Feedback de Corrente da Fonte de Solda no Rastreamento de Arco
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Seleção do canal AI para feedback de corrente da fonte de solda no rastreamento de arco
3* @param [in] channel Canal; 0-AI de extensão 0;1-AI de extensão 1;2-AI de extensão 2;3-AI de extensão 3;4-AI do painel de controle 0;5-AI do painel de controle 1
4* @return Código de erro
5*/
6int ArcWeldTraceAIChannelCurrent(int channel);
14.52. Seleção do Canal AI para Feedback de Tensão da Fonte de Solda no Rastreamento de Arco
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Seleção do canal AI para feedback de tensão da fonte de solda no rastreamento de arco
3* @param [in] channel Canal; 0-AI de extensão 0;1-AI de extensão 1;2-AI de extensão 2;3-AI de extensão 3;4-AI do painel de controle 0;5-AI do painel de controle 1
4* @return Código de erro
5*/
6int ArcWeldTraceAIChannelVoltage(int channel);
14.53. Parâmetros de Conversão do Feedback de Corrente da Fonte de Solda no Rastreamento de Arco
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Parâmetros de conversão do feedback de corrente da fonte de solda no rastreamento de arco
3* @param [in] AILow Limite inferior do canal AI, valor padrão 0V, faixa [0-10V]
4* @param [in] AIHigh Limite superior do canal AI, valor padrão 10V, faixa [0-10V]
5* @param [in] currentLow Valor da corrente da fonte de solda correspondente ao limite inferior do canal AI, valor padrão 0V, faixa [0-200V]
6* @param [in] currentHigh Valor da corrente da fonte de solda correspondente ao limite superior do canal AI, valor padrão 100V, faixa [0-200V]
7* @return Código de erro
8*/
9int ArcWeldTraceCurrentPara(float AILow, float AIHigh, float currentLow, float currentHigh);
14.54. Parâmetros de Conversão do Feedback de Tensão da Fonte de Solda no Rastreamento de Arco
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Parâmetros de conversão do feedback de tensão da fonte de solda no rastreamento de arco
3* @param [in] AILow Limite inferior do canal AI, valor padrão 0V, faixa [0-10V]
4* @param [in] AIHigh Limite superior do canal AI, valor padrão 10V, faixa [0-10V]
5* @param [in] voltageLow Valor da tensão da fonte de solda correspondente ao limite inferior do canal AI, valor padrão 0V, faixa [0-200V]
6* @param [in] voltageHigh Valor da tensão da fonte de solda correspondente ao limite superior do canal AI, valor padrão 100V, faixa [0-200V]
7* @return Código de erro
8*/
9int ArcWeldTraceVoltagePara(float AILow, float AIHigh, float voltageLow, float voltageHigh);
14.55. Exemplo de Código de Rastreamento de Arco
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
2{
3 DescPose safetydescPose = new DescPose(-504.043, 275.181, 40.908, -28.002, -42.025, -14.044);
4 JointPos safetyjointPos = new JointPos(-39.078, -76.732, 87.227, -99.47, -94.301, 18.714);
5 DescPose startdescPose = new DescPose(-473.86, 257.879, -20.849, -37.317, -42.021, 2.543);
6 JointPos startjointPos = new JointPos(-43.487, -76.526, 95.568, -104.445, -89.356, 3.72);
7
8
9
10 DescPose enddescPose = new DescPose(-499.844, 141.225, 7.72, -34.856, -40.17, 13.13);
11 JointPos endjointPos = new JointPos(-31.305, -82.998, 99.401, -104.426, -89.35, 3.696);
12
13 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
14 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
15 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
16
17 robot.WeldingSetCurrentRelation(0, 495, 1, 10, 0);
18 robot.WeldingSetVoltageRelation(10, 45, 1, 10, 1);
19 robot.WeldingSetVoltage(0, 25, 1, 0);// ----definir tensão
20 robot.WeldingSetCurrent(0, 260, 0, 0);// ----definir corrente
21
22 int rtn = robot.ArcWeldTraceAIChannelCurrent(4);
23 Console.WriteLine("ArcWeldTraceAIChannelCurrent rtn is " + rtn);
24 rtn = robot.ArcWeldTraceAIChannelVoltage(5);
25 Console.WriteLine("ArcWeldTraceAIChannelVoltage rtn is " + rtn);
26 rtn = robot.ArcWeldTraceCurrentPara((float)0, (float)5, (float)0, (float)500);
27 Console.WriteLine("ArcWeldTraceCurrentPara rtn is " + rtn);
28 rtn = robot.ArcWeldTraceVoltagePara((float)1.018, (float)10, (float)0, (float)50);
29 Console.WriteLine("ArcWeldTraceVoltagePara rtn is " + rtn);
30
31 robot.MoveJ(startjointPos, startdescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
32 robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
33 robot.ARCStart(0, 0, 10000);
34 robot.WeaveStart(0);
35 // robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, exaxisPos, 0, 0, offdese);
36 robot.ARCEnd(0, 0, 10000);
37 robot.WeaveEnd(0);
38 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
39 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
40}
14.56. Definir Portas IO de Extensão para Busca de Posição do Arame
1/**
2* @brief Define as portas IO de extensão para busca de posição do arame
3* @param searchDoneDINum Porta DO de sucesso da busca de posição do arame (0-127)
4* @param searchStartDONum Porta DO de controle de início/parada da busca de posição do arame (0-127)
5* @return Código de erro
6*/
7int SetWireSearchExtDIONum(int searchDoneDINum, int searchStartDONum);
14.57. Início da Busca de Posição do Arame
1/**
2* @brief Início da busca de posição do arame
3* @param [in] refPos 1-ponto de referência 0-ponto de contato
4* @param [in] searchVel Velocidade de busca %
5* @param [in] searchDis Distância de busca mm
6* @param [in] autoBackFlag Flag de retorno automático, 0-não automático;1-automático
7* @param [in] autoBackVel Velocidade de retorno automático %
8* @param [in] autoBackDis Distância de retorno automático mm
9* @param [in] offectFlag 1-busca com deslocamento;0-busca com ponto de ensino
10* @return Código de erro
11*/
12int WireSearchStart(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.58. Fim da Busca de Posição do Arame
1/**
2* @brief Fim da busca de posição do arame
3* @param [in] refPos 1-ponto de referência 2-ponto de contato
4* @param [in] searchVel Velocidade de busca %
5* @param [in] searchDis Distância de busca mm
6* @param [in] autoBackFlag Flag de retorno automático, 0-não automático;1-automático
7* @param [in] autoBackVel Velocidade de retorno automático %
8* @param [in] autoBackDis Distância de retorno automático mm
9* @param [in] offectFlag 1-busca com deslocamento;2-busca com ponto de ensino
10* @return Código de erro
11*/
12int WireSearchEnd(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.59. Calcular Deslocamento da Busca de Posição do Arame
1/**
2* @brief Calcular deslocamento da busca de posição do arame
3* @param [in] seamType Tipo de solda
4* @param [in] method Método de cálculo
5* @param [in] varNameRef Ponto de referência 1-6, "#" indica nenhum ponto variável
6* @param [in] varNameRes Ponto de contato 1-6, "#" indica nenhum ponto variável
7* @param [out] offectFlag 0-deslocamento aplicado diretamente ao ponto de instrução;1-deslocamento requer transformação de coordenadas no ponto de instrução
8* @param [out] offect Deslocamento da pose [x, y, z, a, b, c]
9* @return Código de erro
10*/
11int GetWireSearchOffset(int seamType, int method, string[] varNameRef, string[] varNameRes, ref int offsetFlag, ref DescPose offset);
14.60. Aguardar Conclusão da Busca de Posição do Arame
1/**
2* @brief Aguardar conclusão da busca de posição do arame
3* @return Código de erro
4*/
5int WireSearchWait(string name);
14.61. Escrever Ponto de Contato da Busca de Posição do Arame no Banco de Dados
1/**
2* @brief Escrever ponto de contato da busca de posição do arame no banco de dados
3* @param [in] varName Nome do ponto de contato “RES0” ~ “RES99”
4* @param [in] pos Dados do ponto de contato [x, y, x, a, b, c]
5* @return Código de erro
6*/
7int SetPointToDatabase(string varName, DescPose pos);
14.62. Exemplo de Código de Busca de Posição do Arame do Robô
1private void button53_Click(object sender, EventArgs e)
2{
3 DescPose toolCoord=new DescPose(0, 0, 200, 0, 0, 0);
4 robot.SetToolCoord(1, toolCoord, 0, 0, 1, 0);
5 DescPose wobjCoord=new DescPose(0, 0, 0, 0, 0, 0);
6 robot.SetWObjCoord(1, wobjCoord, 0);
7
8 int rtn0, rtn1, rtn2 = 0;
9 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
11
12 DescPose descStart = new DescPose(216.543, 445.175, 93.465, 179.683, 1.757, -112.641);
13 JointPos jointStart = new JointPos(-128.345, -86.660, 114.679, -119.625, -89.219, 74.303);
14
15 DescPose descEnd = new DescPose(111.143, 523.384, 87.659, 179.703, 1.835, -97.750);
16 JointPos jointEnd = new JointPos(-113.454, -81.060, 109.328, -119.954, -89.218, 74.302);
17
18 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
19 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
20
21 DescPose descREF0A = new DescPose(142.135, 367.604, 86.523, 179.728, 1.922, -111.089);
22 JointPos jointREF0A = new JointPos(-126.794, -100.834, 128.922, -119.864, -89.218, 74.302);
23
24 DescPose descREF0B = new DescPose(254.633, 463.125, 72.604, 179.845, 2.341, -114.704);
25 JointPos jointREF0B = new JointPos(-130.413, -81.093, 112.044, -123.163, -89.217, 74.303);
26
27 DescPose descREF1A = new DescPose(92.556, 485.259, 47.476, -179.932, 3.130, -97.512);
28 JointPos jointREF1A = new JointPos(-113.231, -83.815, 119.877, -129.092, -89.217, 74.303);
29
30 DescPose descREF1B = new DescPose(203.103, 583.836, 63.909, 179.991, 2.854, -103.372);
31 JointPos jointREF1B = new JointPos(-119.088, -69.676, 98.692, -121.761, -89.219, 74.303);
32
33 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
34 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //ponto inicial
35 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //ponto de direção
36 rtn1 = robot.WireSearchWait("REF0");
37 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
38
39 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
40 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //ponto inicial
41 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //ponto de direção
42 rtn1 = robot.WireSearchWait("REF1");
43 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
44
45 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
46 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //ponto inicial
47 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //ponto de direção
48 rtn1 = robot.WireSearchWait("RES0");
49 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
50
51 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
52 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //ponto inicial
53 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //ponto de direção
54 rtn1 = robot.WireSearchWait("RES1");
55 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
56
57 string[] varNameRef = { "REF0", "REF1", "#", "#", "#", "#" };
58 string[] varNameRes = { "RES0", "RES1", "#", "#", "#", "#" };
59 int offectFlag = 0;
60 DescPose offectPos = new DescPose(0, 0, 0, 0, 0, 0);
61 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, ref offectFlag, ref offectPos);
62 robot.PointsOffsetEnable(0, offectPos);
63 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
64 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese);
65 robot.PointsOffsetDisable();
66}
14.63. Início da Transição Gradual da Tensão de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Início da transição gradual da tensão de soldagem
3* @param [in] IOType Tipo de controle; 0-IO do painel de controle;1-Protocolo de comunicação digital (UDP);2-Protocolo de comunicação digital (ModbusTCP)
4* @param [in] voltageStart Tensão inicial de soldagem (V)
5* @param [in] voltageEnd Tensão final de soldagem (V)
6* @param [in] AOIndex Número da porta AO do painel de controle (0-1)
7* @param [in] blend Se é suave 0-não suave;1-suave
8* @return Código de erro
9*/
10int WeldingSetVoltageGradualChangeStart(int IOType, double voltageStart, double voltageEnd, int AOIndex, int blend);
14.64. Fim da Transição Gradual da Tensão de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Fim da transição gradual da tensão de soldagem
3* @return Código de erro
4*/
5int WeldingSetVoltageGradualChangeEnd();
14.65. Início da Transição Gradual da Corrente de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Início da transição gradual da corrente de soldagem
3* @param [in] IOType Tipo de controle; 0-IO do painel de controle;1-Protocolo de comunicação digital (UDP);2-Protocolo de comunicação digital (ModbusTCP)
4* @param [in] voltageStart Corrente inicial de soldagem (A)
5* @param [in] voltageEnd Corrente final de soldagem (A)
6* @param [in] AOIndex Número da porta AO do painel de controle (0-1)
7* @param [in] blend Se é suave 0-não suave;1-suave
8* @return Código de erro
9*/
10int WeldingSetCurrentGradualChangeStart(int IOType, double currentStart, double currentEnd, int AOIndex, int blend);
14.66. Fim da Transição Gradual da Corrente de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Fim da transição gradual da corrente de soldagem
3* @return Código de erro
4*/
5int WeldingSetCurrentGradualChangeEnd();
14.67. Exemplo de Código de Transição Gradual da Corrente e Tensão de Soldagem
Novo na versão C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
2{
3 DescPose startdescPose = new DescPose(-319.303, -240.689, 116.379, -175.879, -0.337, 148.239);
4 JointPos startjointPos = new JointPos(20.474, -103.554, 126.774, -116.682, -87.746, -37.709);
5
6 DescPose enddescPose = new DescPose(-454.166, -327.159, 62.217, 177.199, -2.276, 154.955);
7 JointPos endjointPos = new JointPos(27.176, -74.423, 104.557, -119.315, -93.514, -37.698);
8
9 DescPose safedescPose = new DescPose(-375.533, -543.319, 19.798, 177.486, -2.489, 175.825);
10 JointPos safejointPos = new JointPos(48.074, -59.714, 89.955, -119.777, -93.508, -37.683);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.WeldingSetCurrentRelation(0, 495, 1, 10, 0);
16 robot.WeldingSetVoltageRelation(10, 45, 1, 10, 1);
17
18 robot.WeldingSetVoltage(0, 25, 1, 0);//
19 robot.WeldingSetCurrent(0, 260, 0, 0);//
20
21 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
22
23 int rtn = robot.WeldingSetCurrentGradualChangeStart(0, 260, 220, 0, 0);
24 Console.WriteLine($"WeldingSetCurrentGradualChangeStart rtn is {rtn}");
25 rtn = robot.WeldingSetVoltageGradualChangeStart(0, 25, 22, 1, 0);
26 Console.WriteLine($"WeldingSetVoltageGradualChangeStart rtn is {rtn}");
27
28 rtn = robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
29 Console.WriteLine($"ArcWeldTraceControl rtn is {rtn}");
30
31 robot.MoveJ(startjointPos, startdescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
32
33 robot.ARCStart(0, 0, 10000);
34 robot.WeaveStart(0);
35 rtn = robot.WeaveChangeStart(2, 1, 24, 36);
36 Console.WriteLine($"WeaveChangeStart rtn is {rtn}");
37 //robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, exaxisPos, 0, 0, offdese);
38 robot.ARCEnd(0, 0, 10000);
39 robot.WeaveChangeEnd();
40 robot.WeaveEnd(0);
41 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
42 robot.WeldingSetCurrentGradualChangeEnd();
43 robot.WeldingSetVoltageGradualChangeEnd();
44}
14.68. Definir Parâmetros de Oscilação Personalizada
Novo na versão C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Definir parâmetros de oscilação personalizada
3 * @param [in] id Número da oscilação personalizada: 0-2
4 * @param [in] pointNum Número de pontos de oscilação 0-10
5 * @param [in] point Dados do ponto final de movimento x, y, z
6 * @param [in] stayTime Tempo de pausa da oscilação ms
7 * @param [in] frequency Frequência de oscilação Hz
8 * @param [in] incStayType Modo de espera: 0-ciclo não inclui tempo de espera;1-ciclo inclui tempo de espera
9 * @param [in] stationary Espera na posição de oscilação: 0-continua movimento durante o tempo de espera;1-posição parada durante o tempo de espera
10 * @return Código de erro
11 */
12public int CustomWeaveSetPara(int id, int pointNum, DescTran[] points, double[] stayTimes, double frequency, int incStayType, int stationary)
14.69. Obter Parâmetros de Oscilação Personalizada
Novo na versão C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Obter parâmetros de oscilação personalizada
3 * @param [in] id Número da oscilação personalizada: 0-2
4 * @param [out] pointNum Número de pontos de oscilação 0-10
5 * @param [out] point Dados do ponto final de movimento x, y, z
6 * @param [out] stayTime Tempo de pausa da oscilação ms
7 * @param [out] frequency Frequência de oscilação Hz
8 * @param [out] incStayType Modo de espera: 0-ciclo não inclui tempo de espera;1-ciclo inclui tempo de espera
9 * @param [out] stationary Espera na posição de oscilação: 0-continua movimento durante o tempo de espera;1-posição parada durante o tempo de espera
10 * @return Código de erro
11 */
12public int CustomWeaveGetPara(int id, ref int pointNum, ref DescTran[] points, ref double[] stayTimes, ref double frequency, ref int incStayType, ref int stationary)
14.70. Exemplo de Código de Parâmetros de Oscilação Personalizada
Novo na versão C#SDK-V1.1.8: Web-3.8.6
1public void TestCoordMain5()
2{
3 DescTran[] points = new DescTran[10];
4 for (int i = 0; i < 10; i++)
5 {
6 points[i] = new DescTran();
7 }
8 points[0].x = -3;
9 points[0].y = -3;
10 points[0].z = 0;
11 points[1].x = -6;
12 points[1].y = 0;
13 points[1].z = 0;
14 points[2].x = -3;
15 points[2].y = 3;
16 points[2].z = 0;
17 points[3].x = 0;
18 points[3].y = 0;
19 points[3].z = 0;
20 double[] stayTimes = new double[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
21 int rtn = robot.CustomWeaveSetPara(2, 4, points, stayTimes, 1.000, 0, 0);
22 Console.WriteLine($"CustomWeaveSetPara rtn is {rtn}");
23 System.Threading.Thread.Sleep(1000);
24 int pointNum = 0;
25 double frequency = 0;
26 int incStayType = 0;
27 int stationary = 0;
28 rtn = robot.CustomWeaveGetPara(2, ref pointNum, ref points, ref stayTimes, ref frequency, ref incStayType, ref stationary);
29 Console.WriteLine($"pointNum is {pointNum}");
30 for (int i = 0; i < pointNum; i++)
31 {
32 Console.WriteLine($"point {i}, point x y z {points[i].x:F6} {points[i].y:F6} {points[i].z:F6}");
33 }
34 Console.WriteLine($"fre is {frequency:F6}, stay is {incStayType} {stationary}");
35 robot.WeaveSetPara(0, 9, 1.000000, 1, 5.000000, 6.000000, 5.000000, 50, 100, 100, 0, 1, 0.000000, 0.000000);
36 DescPose desc_p1 = new DescPose(-288.650, 367.807, 288.404, 0.000, -0.001, 0.001);
37 DescPose desc_p2 = new DescPose(-431.714, 367.815, 288.415, 0.001, 0.001, 0.000);
38 DescPose desc_p3 = new DescPose(-348.666, 427.798, 288.404, -0.000, -0.000, 0.001);
39 JointPos j1 = new JointPos(140.656, -84.560, -91.707, -93.734, 90.000,50.655 );
40 JointPos j2 = new JointPos ( 149.873, -98.298, -77.599, -94.103, 90.000, 59.873 );
41 JointPos j3 = new JointPos (139.773, -96.173, -80.014, -93.814, 90.000, 49.772 );
42 ExaxisPos epos = new ExaxisPos(0,0,0,0);
43 DescPose offset_pos = new DescPose(0,0,0,0,0,0);
44 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
45 robot.WeaveStart(0);
46 robot.Circle(j3, desc_p3, 3, 0, 100, 100, epos, j2, desc_p2, 3, 0, 100, 100, epos, 10, -1, offset_pos, 100, -1, 0);
47 robot.WeaveEnd(0);
48 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
49 robot.WeaveStart(0);
50 robot.MoveC(j3, desc_p3, 3, 0, 100, 100, epos, 0, offset_pos, j2, desc_p2, 3, 0, 100, 100, epos, 0, offset_pos, 10, -1, 0);
51 robot.WeaveEnd(0);
52 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
53 robot.WeaveStart(0);
54 robot.MoveL(j2, desc_p2, 3, 0, 100, 100, 10, -1, epos, 0, 0, offset_pos, 0, 0, 10);
55 robot.WeaveEnd(0);
56}
14.71. Configuração de Parâmetros da Máquina de Solda a Laser
1/**
2* @brief Escreve os parâmetros de configuração para um dos 10 grupos de processo da máquina de solda a laser e configura a máquina de solda
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[in] num Número do grupo a ser definido (1~10)
5* @param[in] scanSpeed Velocidade de varredura
6* @param[in] scanWidth Largura de varredura
7* @param[in] peakPower Potência de pico
8* @param[in] dutyCycle Ciclo de trabalho
9* @param[in] freq Frequência
10* @return Código de erro
11*/
12public int SetLaserWeldingParam(int io_type, int num, int scanSpeed, int scanWidth, int peakPower, int dutyCycle, int freq)
14.72. Definir Início/Parada da Soldagem a Laser
1/**
2* @brief Liga/desliga a máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[in] status Palavra de controle 0-laser desligado 1-laser ligado
5* @param[in] max_waittime Tempo máximo de espera
6* @return Código de erro
7*/
8public int SetLaserWeldingStartEnd(int io_type, int status, int max_waittime)
14.73. Habilitar/Desabilitar Máquina de Solda a Laser
1/**
2* @brief Habilita/desabilita a máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[in] status 0-desabilitar 1-habilitar
5* @return Código de erro
6*/
7public int SetLaserWeldingEnable(int io_type, int status)
14.74. Redefinição de Falha da Máquina de Solda a Laser
1/**
2* @brief Redefine a falha da máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[in] status Palavra de controle 0-inválido 1-redefinição de falha
5* @return Código de erro
6*/
7public int ResetLaserWeldingErr(int io_type, int status)
14.75. Obter Estado de Funcionamento da Máquina de Solda a Laser
1/**
2* @brief Obtém o estado de funcionamento da máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[out] status Palavra de controle 0-parado 1-em funcionamento
5* @return Código de erro
6*/
7public int GetLaserWeldingRunningState(int io_type, ref int status)
14.76. Obter Estado de Falha da Máquina de Solda a Laser
1/**
2* @brief Obtém o estado de falha da máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[out] status 0-sem falha 1-falha presente
5* @return Código de erro
6*/
7public int GetLaserWeldingErrState(int io_type, ref int status)
14.77. Obter Parâmetros Configurados da Máquina de Solda a Laser
1/**
2* @brief Obtém os parâmetros de configuração para um dos 10 grupos de processo da máquina de solda a laser
3* @param[in] num Número do grupo a ser definido (1~10)
4* @param[out] scanSpeed Velocidade de varredura
5* @param[out] scanWidth Largura de varredura
6* @param[out] peakPower Potência de pico
7* @param[out] dutyCycle Ciclo de trabalho
8* @param[out] freq Frequência
9* @return Código de erro
10*/
11public int GetLaserWeldingParamTarget(int num, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.78. Obter Parâmetros de Configuração Atualmente Ativos da Máquina de Solda a Laser
1/**
2* @brief Obtém os parâmetros de configuração atualmente ativos da máquina de solda a laser
3* @param[in] io_type Tipo de comunicação 0-IO 1-UDP
4* @param[out] scanSpeed Velocidade de varredura
5* @param[out] scanWidth Largura de varredura
6* @param[out] peakPower Potência de pico
7* @param[out] dutyCycle Ciclo de trabalho
8* @param[out] freq Frequência
9* @return Código de erro
10*/
11public int GetLaserWeldingParamActual(int io_type, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.79. Configurar a Porta DO de Habilitação de IO Estendido da Máquina de Solda a Laser
1/**
2* @brief Define o IO estendido da máquina de solda a laser, porta DO de habilitação
3* @param[in] ctrlModeDONum Número da porta DO estendida para habilitação da máquina de solda a laser
4* @return Código de erro
5*/
6public int SetLaserWeldingEnableExtDoNum(int ctrlModeDONum)
14.80. Configurar a Porta DO de Início de IO Estendido da Máquina de Solda a Laser
1/**
2* @brief Define o IO estendido da máquina de solda a laser, porta DO de início
3* @param[in] ctrlModeDONum Número da porta DO estendida para início (laser ligado/desligado) da máquina de solda a laser
4* @return Código de erro
5*/
6public int SetLaserWeldingStartExtDoNum(int ctrlModeDONum)
14.81. Configurar a Porta DO de Redefinição de Falha de IO Estendido da Máquina de Solda a Laser
1/**
2* @brief Define o IO estendido da máquina de solda a laser, porta DO de redefinição de falha
3* @param[in] ctrlModeDONum Número da porta DO estendida para redefinição de falha da máquina de solda a laser
4* @return Código de erro
5*/
6public int SetLaserWeldingErrResetExtDoNum(int ctrlModeDONum)
14.82. Configurar o DI Estendido para Estado de Funcionamento (Estado Laser Ligado) da Máquina de Solda a Laser
1/**
2* @brief Configura o DI estendido para o estado de funcionamento (estado laser ligado) da máquina de solda a laser
3* @param[in] diNum Porta DI estendida para o estado de funcionamento (estado laser ligado) da máquina de solda a laser
4* @return Código de erro
5*/
6public int SetLaserWeldingRunningStateExtDiNum(int diNum)
14.83. Configurar a Porta DI de Estado de Falha de IO Estendido da Máquina de Solda a Laser
1/**
2* @brief Configura o DI estendido para o estado de falha da máquina de solda a laser
3* @param[in] diNum Porta DI estendida para o estado de falha da máquina de solda a laser
4* @return Código de erro
5*/
6public int SetLaserWeldingErrStateExtDiNum(int diNum)
14.84. Exemplo de Código de Soldagem a Laser
1private void btnLaserWeld_Click(object sender, EventArgs e)
2{
3
4 int rtn = -1;
5 // Carregar driver UDP
6 rtn = robot.ExtDevLoadUDPDriver();
7 if (rtn != 0)
8 {
9 Console.WriteLine("Failed to load UDP driver, error code: " + rtn);
10 }
11 Thread.Sleep(1000);
12
13 // Definir parâmetros de soldagem a laser: io_type=1, num=3, scanSpeed=2000, scanWidth=3, peakPower=1500, dutyCycle=100, freq=1000
14 rtn = robot.SetLaserWeldingParam(1, 3, 2000, 3, 1500, 100, 1000);
15 if (rtn != 0)
16 {
17 Console.WriteLine("SetLaserWeldingParam failed, error code: " + rtn);
18 }
19 else
20 {
21 Console.WriteLine("SetLaserWeldingParam success");
22 }
23
24 // Definir o número da porta DO de início
25 rtn = robot.SetLaserWeldingStartExtDoNum(1);
26 if (rtn != 0)
27 {
28 Console.WriteLine("SetLaserWeldingStartExtDoNum failed, error code: " + rtn);
29 }
30
31 // Definir modo 0 (modo de ensino)
32 rtn = robot.Mode(0);
33 if (rtn != 0)
34 {
35 Console.WriteLine("Set mode 0 failed, error code: " + rtn);
36 }
37 Thread.Sleep(1000);
38
39
40 DescPose desc_pos1 = new DescPose(-303.721, -206.960, 297.105, 152.209, 19.857, 109.166);
41 DescPose desc_pos2 = new DescPose(-301.575, -254.888, 284.786, 155.919, 26.946, 111.629);
42 DescPose desc_safe = new DescPose(-344.386, -280.830, 435.073, 173.835, 15.333, 124.931);
43
44
45 ExaxisPos exaxis = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
46 DescPose offset = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
47
48 // Mover para o primeiro ponto de soldagem
49 int error = robot.MoveL(desc_pos1, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
50 Console.WriteLine("MoveL to pos1 return: " + error);
51
52 // Iniciar laser (laser ligado)
53 rtn = robot.SetLaserWeldingStartEnd(1, 1, 10000);
54 if (rtn != 0)
55 {
56 Console.WriteLine("SetLaserWeldingStartEnd (start) failed, error code: " + rtn);
57 }
58 else
59 {
60 Console.WriteLine("Laser started");
61 }
62
63 // Mover para o segundo ponto de soldagem (durante a soldagem)
64 rtn = robot.MoveL(desc_pos2, 0, 0, 30, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
65 Console.WriteLine("MoveL to pos2 return: " + rtn);
66
67 Thread.Sleep(500);
68 // Parar laser (laser desligado)
69 rtn = robot.SetLaserWeldingStartEnd(1, 0, 10000);
70 if (rtn != 0)
71 {
72 Console.WriteLine("SetLaserWeldingStartEnd (stop) failed, error code: " + rtn);
73 }
74 else
75 {
76 Console.WriteLine("Laser stopped");
77 }
78
79 // Mover para ponto de segurança
80 rtn = robot.MoveL(desc_safe, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
81 Console.WriteLine("MoveL to safe_pos return: " + rtn);
82
83 // Definir modo 1 (modo remoto)
84 rtn = robot.Mode(1);
85 if (rtn != 0)
86 {
87 Console.WriteLine("Set mode 1 failed, error code: " + rtn);
88 }
89 Thread.Sleep(1000);
90
91 // Fechar conexão
92 robot.CloseRPC();
93 Thread.Sleep(1000);
94
95 Console.WriteLine("Test completed");
96
97 return ;
98}