Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Histórico de Revisão
2
Manual de Operação Periférica Robótica SCARA
Publicado por: Hiwin Technology Corp.
Endereço: 40852 Taichung Precision Machinery Park Jing-ke Road na 7ª
Publicação data: Abril de 2015
Telefone: + 886-4-23594510
Fax: + 886-4-23594420
E-mail: business@hiwin.tw
Website: http://www.hiwin.tw
Direitos Autorais: Este manual é autorizado somente para informar clientes e fornecedores
legítimos sobre este manual de aprendizagem, referência e uso.
Não-Technology Co., Ltd. pelo Banco devidamente autorizado, não pode ser reproduzido em
qualquer forma, copiar, reimprimir ou distribuir o seu conteúdo através da Internet.
Todos os direitos reservados
3
Índice
Índice ....................................................................................................................................4
1 Método usando ReconIntegrador .................................................................................6
1.2 Configuração de Conexão ......................................................................................7
1.3 Página de E/S de hard ............................................................................................8
1.4 Arquivos .............................................................................................................. 11
1.5 Path (Caminho) .................................................................................................... 13
1.6 Recursos .............................................................................................................. 14
1.7 Importar R ........................................................................................................... 15
2 Tabela de E/S ............................................................................................................ 16
2.1 Lista de Funções .................................................................................................. 16
2.2 Descrição de Uso ................................................................................................. 17
2.2.1 Retorno à Página Inicial Mecânico I47 ..................................................... 17
2.2.2 4 Bit (ENTRADA) Seleciona 16 Tipos CASO: ........................................ 17
2.2.3 Listar o procedimento de seleção de lista de 4 bits: ................................... 19
2.2.4 Saída de 4 bits (SAÍDA) 16 Conjuntos de Sinal ........................................ 19
3 NC Comumente Usado, Comandos de Macro ............................................................ 20
3.1 Declaração Seletiva (IF…ELSE, SELECT) .......................................................... 20
3.2 Comando de Fluxo (IF…GOTO) ......................................................................... 21
3.3 Loop (FOR、DO…UNTIL、WHILE) ................................................................ 21
3.4 Sub-rotina de chamada (CALL_SUB) .................................................................. 23
3.5 Chamada de Programa Macro .............................................................................. 23
3.6 Registro de Leitura/Gravação/Valor de Entrada/Saída .......................................... 24
3.7 Exemplo de Gravação NCFile .............................................................................. 25
4 Tabela de Planejamento de Recursos ......................................................................... 27
5 API de Comunicação ................................................................................................. 30
5.1 Conceito de Uso e Descrição da Biblioteca de Conexão do Controlador ............... 30
5.2 Configuração de Dados de Comunicação e Método de Leitura ............................. 33
5.3 Descrição do Padrão de Comando de Comunicação ............................................. 34
5.4 Suplemento para Configuração de Conjunto de Pacotes ....................................... 35
5.5 Exemplos ............................................................................................................. 36
5.5.1 Descrição do Planejamento de Recursos ................................................... 36
5.52 Descrição Exemplo - Conexão e Ações Básicas ................................................... 36
5.5.3 Descrição Exemplo-Função e Coordenada de Leitura de JOG de Braço .... 42
5.5.4 Exemplo de Execução do Ciclo de Descrição ........................................... 44
4
6 Perguntas e respostas ................................................................................................. 45
6.1 Operação de Posição de Segurança ...................................................................... 45
6.2 Macro de Chamada de Ponto I ............................................................................. 47
6.3 Implementação de Asserção de Condições ........................................................... 48
6.4 Atualizar Sistema e Backup/Restauração.............................................................. 51
Apêndice A Descrição da Função de Comunicação do Controlador ............................. 53
5
1 Método usando ReconIntegrador
1.1 Configuração Básica
6
1.2 Configuração de Conexão
Abrir
Programa:
1. Clique em conexão desativada, aparece detecção de conexão e atribui -> clique em Detectar.
Abaixo aparece o controlador IP que você conectou. -> Após selecionar, clique em
Conectar. Se nenhum endereço IP aparecer abaixo depois de clicar em Detectar, verifique a
página da rede no dispositivo de ensino se for a mesma rede e clique para redefinir a rede.
2. Se a conexão for concluída com sucesso, ela se tornará um plano de fundo azul com as
palavras “Conexão
7
1.3 Página de E/S de hard
1. O suporte frontal E/S 8 ea corresponde à caixa de controle elétrico 8in/8out. Suporte traseiro
3 ea correspondem ao corpo principal 3in/3out. Com base no menu de E/S fornecido no
Capítulo 2, você pode corresponder o número de ID do software das funções necessárias à
E/S de hardware.
8
Definições de pinos de interface
Descrição do pino da interface do robô (E/S) (D-Sub 25Pin)
※ (*) Opcional
Observação: Fonte de alimentação interna P24, N24 para a caixa de controle elétrico, fonte de
alimentação não externa.
※ (*) Opcional
Observação: Fonte de alimentação interna P24, N24 para a caixa de controle elétrico, fonte de
alimentação não externa. Descrição do pino da interface de SAÍDA (D-Sub 25Pin)
9
1 SAÍDA1 6 SAÍDA6 11 SAÍDA19* 16 SAÍDA24* 21
2 SAÍDA2 7 SAÍDA7 12 SAÍDA20* 17 22
3 SAÍDA3 8 SAÍDA8 13 SAÍDA21* 18 23 P24*
4 SAÍDA4 9 SAÍDA17* 14 SAÍDA22* 19 24 P24*
5 SAÍDA5 10 SAÍDA18* 15 SAÍDA23* 20 25 P24
※ (*) Opcional
Observação: Fonte de alimentação interna P24, N24 para a caixa de controle elétrico, fonte de
alimentação não externa.
10
1.4 Arquivos
11
5. Parte da caixa vermelha 5 são os arquivos das pastas do diretório raiz.
6. Página do arquivo. Se for necessário atualizar o software do sistema, clique em Configurar
na caixa vermelha 4 e, em seguida, clique em Fazer upload de tudo. Depois de reinicializar
o controlador, entre nessa página novamente e, em seguida, faça o upload dos arquivos
restantes. Após o upload do PLC, clique em Rerun PLC, Security, Language, Exe & Log
para não fazer o upload.
7. Se o backup do arquivo de configuração for necessário, será necessário fazer o download
de todos os arquivos da Máquina.
8. A parte superior esquerda tem as opções de idioma, incluindo chinês tradicional, chinês
simplificado e inglês. Só é preciso clicar para abrir e selecionar o idioma exigido por você
para concluir a alteração. Reiniciar homem-máquina para reiniciar o dispositivo de ensino.
Depois de clicar em Calibrar Toque, há quatro (4) pontos aparecendo e um ponto vermelho
aparece no ponto. Siga a sequência para clicar no ponto vermelho, o controlador será
reiniciado automaticamente. Se a configuração for salva, ela será exibida novamente. No
lado direito tem os botões de atualização e exclusão. A parte superior está dentro do
controlador, parte inferior está nos arquivos nas pastas lidas pelo computador.
12
1.5 Path (Caminho)
1. O Path (Caminho) é para monitorar a variável atual e o local onde o programa pode ser
executado.
Ele também pode clicar na caixa vermelha 1 na página do caminho para selecionar o
arquivo de caminho e, em seguida, ir para a caixa vermelha 2 para iniciar, manter, redefinir
ou ajustar a velocidade.
13
1.6 Recursos
2. A caixa vermelha 4 é usada para exibir a quantidade (por exemplo: Num é 2, depois de
clicar em Atualizar, a caixa vermelha 3 aparece 9999 e 10000). A caixa vermelha 5
aparecerá na caixa vermelha 3 somente depois de verificar a marca de seleção.
14
1.7 Importar R
2. Carregar dados ImportR para a caixa vermelha 3. Clique em Fresh primeiro e, em seguida,
clique em Importar para enviar. Neste momento, o valor alterado feito pelo arquivo txt será
importado para cada valor-R para fazer alterações.
15
2 Tabela de E/S
16
2.2 Descrição de Uso
17
Exemplo de seleção de caminho de 4 bits e etapas (consulte a descrição no capítulo 3 para a sintaxe
de seleção):
1. Primeiro, adicione o arquivo de documento para editar a ação necessária CASO 0~15.
2. Carregue o arquivo txt na pasta ncfile.
3. Vá para a página NC do dispositivo de ensino e clique no arquivo txt carregado.
4. Selecione o CASO composto de I65~I68 e, em seguida, clique em I51 (NC start).
18
2.2.3 Listar o procedimento de seleção de lista de 4
bits:
I83 corresponde a Bit0. I84 corresponde a Bit1. I85 corresponde a Bit2. I86 corresponde a Bit3.
19
3 NC Comumente Usado, Comandos de
Macro
3.1 Declaração Seletiva (IF…ELSE, SELECT)
IF…ELSE
Execute quando a instrução condicional for atendida. Caso contrário, saia.
Exemplo
SELECIONAR
Selecione o bloco de execução com base nos parâmetros
Exemplo
#1 = R_REG(100)
20
3.2 Comando de Fluxo (IF…GOTO)
Salto Condicional, Salto Incondicional
Exemplo
FOR
Use o acúmulo de parâmetros para ativar loops de execução
Exemplo
FOR #1 = 1 PARA 10 ;#1 = 1 vá para 10
G00 X#1
#2 = R_MLC_I(55)
IF(#2 == 1) ;#2 == 1 saia de FOR loop
EXIT_FOR
END_IF
END_FOR ;Quando #1 == 10 encerre FOR loop
21
DO UNTIL
Se for afirmado que a instrução condicional não é atendida, execute o loop repetidamente
Exemplo
DO
IF(#1 == 8) ;Quando #1 = 8, saia do loop
EXIT_DO
END_IF
G0 X#1
#1 = #1 + 1
UNTIL(#1 >= 20) Quando #1 >= 20 encerre loop
WHILE
Se for afirmado que a instrução condicional é atendida, execute o loop repetidamente
Exemplo
22
3.4 Sub-rotina de Chamada (CALL_SUB)
Chama a função no mesmo programa (CALL_SUB”Nome da Função“ dentro da cadeia
pode estar em chinês/inglês e digital também)
Exemplo
#1 = R_REG(555) ;Informação lida
CALL_SUB”HIWIN” ;Chamada de sub-rotina "HIWIN”
G04 P500
PROG_END ;Fim do programa
G04 X5
Chame a macro (hiwin) executando duas vezes e traga
G65 “hiwin” L2 A1 B2 C3;
argumentos #1=1、
#2=2、#3=3
;Sub-rotina termina M99 de volta a esta linha e continua a
G01 X30
executar
23
G04 X5
G500 A1 B2 C3 ;Chamar macro (maker_macro_g500) e trazer argumentos #1=1、
#2=2、#3=3
G01 X30 ; Sub-rotina termina M99 de volta para esta linha e continua a executar
Quando o NC executa até M99 no programa principal, ele volta para a frente do programa e
reexecuta o programa. Na sub-rotina, ele terá que usar M99 como o final do programa e executar
o programa para retornar ao programa principal.
Endereço NC A B C D E F G H I J
Variável Local #1 #2 #3 #4 #5 #6 #8 #9 #10
Endereço NC K L M N O P Q R S T
Variável Local #11 #12 #13 #15 #16 #17 #18 #19 #20
Endereço NC U V W X Y Z
Variável Local #21 #22 #23 #24 #25 #26
G01 X30
#1=R_REG(9527) ;#1 é para ler o valor de Registro 9527
#2=R_MLC_I(2) ;#2 é para ler o conteúdo de I(2)
IF (#1 == 1)
W_REG(9528,1) ;Quando R9527 é 1, digite 1 em R9528
W_MLC_O(7,1) Quando R9527 é 1, O(7) está Ligado
ELSE
W_REG(9528,0) ;Quando R9527 não é 1, digite 1 em R9528
W_MLC_O(7,0) Quando o R9527 não é 1, O(7) está Desligado
END_IF
24
3.7 Exemplo de Gravação NCFile
O exemplo de gravação usando NCFile dos comandos comumente usados acima é mostrado
como segue:
25
G00 L3 X0 Y0 Z0 A-100 F#1
G00 L3 X90 Y-90 Z0 A0 F#1
G00 L3 X0 Y0 Z0 A-100 F#1
END_FOR
END_WHILE
26
4 Tabela de Planejamento de Recursos
Registro Comentar Descrição
R1001 Fornecer para o Estes 4999 ea de registros não serão
a cliente definir salvos após o desligamento da energia.
R5999 seus próprios
dados dinâmicos
em execução
R8001~ Fornecer para o Estes 1999 ea dos registros serão salvos
R8999 cliente definir após o desligamento da energia.
seus próprios
parâmetros
R6011 Modo de 0 uma rodada, 1 um ciclo, 2 etapa única
Usinagem
R6039 Manutenção, Modos:
Automático, 0 Manutenção, 1 Automático, 2
Modo de Ensino Ensino (para exibição)
(R)
R6300 Tipo de Configuração do Sistema de
Coordenada Coordenadas:
0 Sistema de Coordenadas Mundiais, 1
Trabalho
R6301 Seleção de Número de Coordenadas,
Sistema de direção do eixo 1~6
2 Coordenadas
Direção do Eixo Número Correspondente: 1 2 3 4 5 6
de Ferramentas
Coordenada Mundial:
Sistema, 3 Sistema de X YZABC
Coordenadas
Trabalho
Conjuntas
Coordenada: X Y Z A B C Ferramenta
Coordenada: X Y Z A B C Junta
R6302 Modo de Modo de Ensino
Coordenada: deJ3Movimento:
J1 J2 J4 J5 J6 0
Movimento Incremental, 1 Contínuo
R6303 Configuração de Quando 6302=0, a unidade é de 0,01
Distância / mm, múltipla pelo valor presente;
Velocidade quando 6302=1, o valor presente é % de
R6321 Coordenada X velocidade.
Coordenada Mundial Atual
R6322 Coordenada Y
27
R6323 Coordenada Z
R6326 Coordenada C
R6331 Coordenada X
R6332 Coordenada Y
Coordenada de trabalho atual
R6333 Coordenada Z
R6336 Coordenada C
R6341 Coordenada X
R6342 Coordenada Y
Coordenada de Ferramenta Atual
R6343 Coordenada Z
R6346 Coordenada C
R6351 Coordenada J1
R6352 Coordenada J2
Coordenada de Junta Atual
R6353 Coordenada J3
R6354 Coordenada J4
R17003 Status de Status:
Caminho 0 Não Preparado, 1 Preparado, 2 Ciclo
Iniciar, 3 Manter, 4 Parar
R17004 Controle Macro Insira o nome do macro. A recuperação
de macros irá ler a pasta macro_maker.
Recuperar nome é
maker_func_ins_macro99. Indica
R17004=99.
R48109 Relação de Use R para modificar a velocidade. O
Velocidade valor 10000 é 100%, 5000 é 50% e assim
por diante.
C0 Iniciar Início Geral
C1 Manter Manter
C22 Iniciar Macro Use para acionar o início da macro
C3000 Reiniciar Reiniciar e Limpar Alarme
A803 Modo de Acionar por sinal de pulso
Manutenção (W)
28
A804 Automático Acionar por sinal de pulso
Modo (W)
A805 Ensino Acionar por sinal de pulso
Modo (W)
29
5 API de Comunicação
5.1 Conceito de Uso e Descrição da
Biblioteca de Conexão do Controlador
Número Máximo de Conexões: 256
Prioridade do Comando
A prioridade de "Direto" é maior que "Pesquisa". Portanto, somente após o “Direto” ter sido
executado completamente, há a oportunidade de executar “Pesquisa”.
30
Descrição da Inicialização da Biblioteca:
A fim de controlar a fabricação para ser capaz de se conectar somente ao controlador pertencente
algumas outras configurações, a biblioteca deve executar a ação de inicialização primeiro. O
conteúdo da inicialização inclui:
1. Conexão do controlador usado 1~5: Cada controlador pode suportar simultaneamente até
cinco (5) conexões. Quando conectar o software, será necessário configurar o número de ID
da conexão a ser conectado por esse software.
2. Número de conexões: Número de controladores de conexão. Quando usado para monitorar
ou usar dois controladores simultaneamente para compor um sistema, será necessário
conectar-se a vários controladores. Este valor indica o número de controladores a serem
conectados.
3. Número usado de vários recursos: Para facilitar o uso pela biblioteca, uma memória
espelhada será estabelecida para cada conexão na extremidade do PC para armazenar os
dados lidos de volta do controlador. Isso declara o tamanho da memória a ser aberta. Quando
houver um grande número de conexões, preste atenção especial a este valor de configuração
para evitar consumir completamente a memória do PC.
4. Cadeia de caracteres de identificação do fabricante: Use para confirmar a identidade do
fabricante para certificar-se de que a fabricação só é capaz de se conectar ao controlador
pertencente. Se a sequência de senha estiver incorreta, a inicialização falhará e a biblioteca
não poderá funcionar corretamente. Depois que a inicialização for bem-sucedida, a
biblioteca poderá estabelecer o encadeamento de comunicação.
31
Inicialização
Fluxo Geral do
Programa
Conexão
Configurar
Pesquisa
Ler Dados de
Memória Espelhada Configurar Direto
Encerrar Biblioteca
32
5.2 Configuração de Dados de
Comunicação e Método de Leitura
Esta seção descreve como estabelecer o comando de comunicação entre controladores e divisões
em dois tipos de modos de comunicação, ou seja, contínuos e discretos, de acordo com os
requisitos do usuário. A configuração de comunicação contínua significa ler a configuração do
endereço de intervalo contínuo (como o intervalo de endereço é 0~10). No entanto, o modo de
comunicação discreta é capaz de introduzir a configuração do endereço discreto de uma só vez
(como configurar o endereço como 1, 4, 13) e fornecer dois tipos de modos, ou seja, memória
espelhada e estrutura de índice para ler os dados necessários. Para lidar com os dados de
comunicação, se o endereço do valor de leitura está muito disperso, o volume de leitura é muito
menor quando configurar a função de leitura, o que faz com que a função de leitura seja chamada
várias vezes para ler o valor do controlador. Nesse caso, ele causará um grande número de pacotes
de comunicação e terá menos eficácia quando os dados da pesquisa. Portanto, fornecemos a função
de montagem de pacotes para reduzir efetivamente o número de pacotes de comandos. Quanto à
leitura de dados, a função também é fornecida para montar os dados de recuperação, a fim de
fornecer melhor eficácia no processamento de dados.
33
5.3 Descrição do Padrão de Comando de
Comunicação
SC_POLLING_CMD:
Use para atualizar de forma contínua e sincronizada os dados do controlador e do PC.
SC_DIRECT_CMD:
Este tipo de comando será apagado após a execução uma vez e será priorizado.
34
5.4 Suplemento para Configuração de
Conjunto de Pacotes
Depois de chamar scif_StartComboin, mas antes de chamar scif_FinishComboin, se o
número de entrada for muito pequeno em scif_cmd_Readxxx, o conteúdo desse comando será
colocado em um Buf temporal. Quando chamar scif_FinishComboin, o conteúdo do Buf será
atualizado automaticamente para reduzir o número de pacotes. O tamanho de cada pacote de
montagem é de 1440 bytes. Se for a função de dados continuamente configurada, como
scif_cmd_ReadI, scif_cmd_ReadR etc., o volume de dados lido por essas funções pode ser
calculado através de seu número de endereço de leitura configurado e padrão de dados. Se o padrão
de postagem dos dados ReadI for char, use somente 1 byte; se o padrão de postagem dos dados
ReadR for unsigned int, use 4 bytes. Se for a função de dados discretos configurados, como
scif_cb_ReadI, scif_cb_ReadR etc., uma vez que seus dados discretos serão adicionados com o
valor de postback correspondente ao seu endereço no pacote de montagem, e um endereço usará
4 bytes. Portanto, o padrão de postback de dados discretos do ReadI usa totalmente o byte (4+1);
o padrão de postagem de dados discretos de ReadR usa (4+4) bytes.
No exemplo, o volume total de dados de postback é 100*1 + 50*4 + 10*(4+1) + 20*(4+4) = 510
bytes. Portanto, ele pode colocar todos esses dados de postagem em um pacote de montagem para
reduzir o número de pacotes.
Exemplo
char serverindex;
unsigned int addr[32];
scif_StartCombineSet(serverindex);
scif_cmd_ReadI(SC_POLLING_CMD, serverindex, 0, 100);
scif_cmd_ReadR(SC_POLLING_CMD, serverindex, 10, 50);
scif_cb_ReadI(SC_POLLING_CMD, serverindex, 10, addr);
scif_cb_ReadR(SC_POLLING_CMD, serverindex, 20, addr);
scif_FinishCombineSet(serverindex);
35
5.5 Exemplos
36
DllSetting.MemSizeTT = TT_NUM;
DllSetting.MemSizeCT = CT_NUM;
DllSetting.MemSizeR = R_NUM;
DllSetting.MemSizeTS = TS_NUM;
DllSetting.MemSizeTV = TV_NUM;
DllSetting.MemSizeCS = CS_NUM;
DllSetting.MemSizeCV = CV_NUM;
DllSetting.MemSizeF = F_NUM;
rt = scif_Init(&DllSetting,
23594510 ,"0B9287F3AE9D949A7751D8C8E51A50BE46FBA406D7E9CE0B");
if (rt!=100)
{
printf("Library initialization is failed!");
return 0;
}
37
scif_cmd_ReadI(SC_POLLING_CMD, 0, 0, 120);
scif_FinishCombineSet(0);
int Tick1 = 0;
int Tick2 = 0;
int freq = 0;
int dataI[100] = { 0 };
int dataO[100] = { 0 };
int i,j;
//-----Confirmar se a conexão é bem-sucedida
while (1)
{
if (scif_GetTalkMsg(0, SCIF_CONNECT_STATE)==SC_CONN_STATE_OK)
{
printf("Cannection is successful!\n");
break;
}
Sleep(100);
}
//-----Configurar sistema de coordenadas
int Coordinate;
Coordinate = scif_cmd_WriteR(0, 6300, 0);
if (Coordinate != 0);
{
printf("Configuration of world coordinate system is successful\n");
}
//-----Configurar modo de ação
int OperationMode;
OperationMode = scif_cmd_WriteR(0, 6302, 1);
if (OperationMode != 0);
{
printf("Configuration of continuous mode is successful\n");
}
//-----Botão Automático
int AutoMode;
AutoMode = scif_cmd_WriteR(0, 17002, 1);
if (AutoMode != 0);
{
38
printf("Configuration of automatic mode is successful\n");
}
//-----Gravar Saída, acende a luz do controlador
int Status;
Status = scif_cmd_WriteO(0, 11, 1);
if (Status != 0);
{
printf("Data write is successful\n");
}
//-----execute macro, descrição da ação: Após chegar no ponto A->aguarde 3000ms->ponto
B-> definir O
//-----Conteúdo de macro
G00 L0 M0 X0 Y500 Z0 C0 F20000
G04 P3000
G00 L0 M0 X250 Y300 Z0 C0 F20000
W_MLC_O(5,1)
M99
scif_cmd_WriteR(0, 17004, 300);
scif_cmd_WriteC(0, 22, 1);
Sleep(100);
scif_cmd_WriteC(0, 22, 0);
Sleep(100);
while (1)
{
Sleep(15);
//Contagem de Bibliotecas: uma vez por segundo
int LoopCounter = scif_GetTalkMsg(0, SCIF_LOOP_COUNT);
//Pesquisas já executadas
int LoopNum = scif_GetTalkMsg(0, SCIF_LOOP_QUEUE_PKG_COUNT);
//Números de Pesquisas
int DirectNum = scif_GetTalkMsg(0, SCIF_DIRECT_QUEUE_PKG_COUNT);
//Números de pacotes diretos ainda não executados
39
//-------Ler dados ler de volta
char AlarmStatus = scif_ReadS(3000);//Ler sinal de alarme do sistema
char WarningStatus = scif_ReadS(3001);//Ler sinal de alerta
//-------Monitorar status de ES
freq++;
if ((freq % 500) == 0)
{
printf("=======================================\n");
for (int i = 1; i < 21; i++)
{
printf("In%2.0d = %d Out%2.0d = %d\n",i, dataI[i-1],i,dataO[i-1]);
}
40
}
}
scif_Destroy();
return 1;}
41
5.5.3 Descrição Exemplo-Função e Coordenada
de Leitura de JOG de Braço
A função JOG unidirecional requer apenas a utilização de 4 locais de memória para concluir
(R6300, R6301, R6302 e R6304. Consulte o Capítulo 4 Definição de Registro). O exemplo a seguir
demonstrará a gravação da função JOG em todas as direções.
1. Mover coordenada mundial direção +X
Antes de clicar no botão:
scif_cmd_WriteR(0, 6301, 0);//O braço não se move para nenhuma direção de eixo
Ao pressionar e segurar o botão: (O braço moverá continuamente para direção +X)
scif_cmd_WriteR(0, 6302, 1);//Configurar como modo contínuo
scif_cmd_WriteR(0, 6303, 5);//5 é a porcentagem de caminho/velocidade de movimento
da página de ajuste.
Velocidade de Caminho: Velocidade de movimento sob a coordenada mundial
(mm/min)
Velocidade de Movimento: Velocidade de movimento sob a coordenada da junta
(graus/min)
scif_cmd_WriteR(0, 6300, 0);//Configurar como sistema de coordenada mundial
scif_cmd_WriteR(0, 6301, 1);//Direção X
※O comando de velocidade deve ser colocado antes do comando de seleção da direção do
eixo, pois o braço começará a se mover após a direção do eixo ser selecionada. Se a
velocidade não tiver sido configurada antecipadamente, o braço se moverá de acordo com
a velocidade atual do controlador.
2. Mover coordenada mundial direção -X
Antes de clicar no botão:
scif_cmd_WriteR(0, 6301, 0);
Ao pressionar e segurar o botão: (O braço se moverá continuamente para direção -X)
scif_cmd_WriteR(0, 6302, 1);
scif_cmd_WriteR(0, 6303, -5);//Se a entrada for negativa, o braço se moverá para a
direção oposta da direção do eixo selecionado. Isto é, –direção X neste exemplo.
scif_cmd_WriteR(0, 6300, 0);
scif_cmd_WriteR(0, 6301, 1);
3. Mover coordenada mundial direção +Y
Antes de clicar no botão:
scif_cmd_WriteR(0, 6301, 0);
42
Ao pressionar e segurar o botão: (O braço irá correr para direção +Y)
scif_cmd_WriteR(0, 6302, 0);//Modo Incremental
scif_cmd_WriteR(0, 6303, 10);//Se for modo incremental, a figura de entrada indica a
distância móvel e a negativa indica direção oposta.
scif_cmd_WriteR(0, 6300, 0);
scif_cmd_WriteR(0, 6301, 2);//Direção Y
4. Mover coordenada mundial direção -Y
Antes de clicar no botão:
scif_cmd_WriteR(0, 6301, 0);
Ao pressionar e segurar o botão: (O braço irá correr para direção -Y)
scif_cmd_WriteR(0, 6302, 0);//Modo Incremental
scif_cmd_WriteR(0, 6303, -10);// Se for modo incremental, a figura de entrada indica
a distância móvel e a negativa indica direção oposta.
scif_cmd_WriteR(0, 6300, 0);
scif_cmd_WriteR(0, 6301, 2);
5. A função JOG do eixo Z e a direção de rotação C podem ser acionadas de acordo com o
modo indicado acima.
Os locais de memória dentro do controlador também permitem que o usuário leia o endereço de
coordenadas de cada sistema de coordenadas SCARA (R6320~R6349). O exemplo a seguir
descreverá como obter o ponto de coordenada atual de cada eixo do sistema de coordenadas
mundiais do SCARA.
int ab = 100000;
float World_X,World_Y,World_Z,World_C;
World_X = (float)(int)scif_Read(6321))/ab;//Como os valores de coordenadas
armazenados na memória do controlador são 100.000 vezes dos valores reais das coordenadas, os
valores de coordenadas lidos dos locais da memória devem ser divididos por 100.000 para se
tornar os valores reais das coordenadas.
World_X = (float)(int)scif_Read(6322))/ab;
World_X = (float)(int)scif_Read(6323))/ab;
World_X = (float)(int)scif_Read(6326))/ab;
Printf(“WorldCoordinate_X = %f\n” ,World_X);
Printf(“WorldCoordinate_Y = %f\n” ,World_Y);
Printf(“WorldCoordinate_Z = %f\n”, World_Z);
Printf(“WorldCoordinate_C = %f\n”,World_C);
43
5.5.4 Exemplo de Execução do Ciclo de Descrição
O exemplo a seguir descreve como usar a macro de chamada de programa e concluir uma ação de
CycleRu. Descrição das ações:
1. Depois que o braço chegar ao ponto A-> espere 300ms-> mova para o ponto B-> defina a
saída.
//-----Conteúdo de macro
G00 L0 M0 X0 Y500 Z0 C0 F20000
G04 P300
G00 L0 M0 X250 Y300 Z0 C0 F20000
W_MLC_O(5,1)
M99
scif_cmd_WriteR(0, 17004, 300);//R17004 inseriu macro. 300 é o nome de arquivo de
macro. Por exemplo: Se o nome de arquivo de macro é maker_func_ins_macro300, insira
300 no programa.
scif_cmd_WriteC(0, 22, 1);//C22 notifica para inserir o macro selecionado e acionar o
Início do Ciclo Sleep(100);
scif_cmd_WriteC(0, 22, 0);
2. Suponha que a posição do ponto de movimento de SCARA é obtida através de cálculo,
depois de escrever a posição do ponto para o local de memória definido pelo usuário, depois
ler por macro e passar para esse ponto.
scif_cmd_WriteR(0, 8503, X);//Escreva a coordenada X projetada para mover o SCARA
para a memória
scif_cmd_WriteR(0, 8504, Y); // Escreve a coordenada Y projetada para mover o SCARA
para a memória
scif_cmd_WriteR(0, 8505, Z); // Escreve a coordenada Z projetada para mover o SCARA
para a memória
//-----Conteúdo de macro
#1=(R_REG(8503)/1000); //Coordenada de X
#2=(R_REG(8504)/1000); //Coordenada de Y
#3=(R_REG(8505)/1000); //Coordenada de Z
G01 L1 X#1 Y#2 Z#3 F20000
G04 P300
G00 L0 M0 X250 Y300 Z0 C0 F20000
W_MLC_O(5,1)
M99
scif_cmd_WriteR(0, 17004, 300);//Depois que a coordenada é gravada na memória, inicie
macro para mover.
scif_cmd_WriteC(0, 22, 1);
Sleep(100);
scif_cmd_WriteC(0, 22, 0);
44
6 Perguntas e Respostas
Faixa de Segurança de C
Faixa de Segurança de Y
(-90~90)
Faixa de Segurança de Z
Faixa de Segurança de X
45
I. Etapas
1. Vá para a posição de segurança e indique os valores máximo e mínimo de cada eixo.
E o código GM do g300 que está no maker_macro_g300 da pasta já foi aberto pelo arquivo txt.
Exemplo é mostrado como segue.
3. Exemplo de Procedimento
1. Código GM (G300)
2. Legenda 1
3. Caminho de Linha Reta
4. Caminho de Linha Reta
.
.
10. Caminho de Linha Reta
11. Salto (ID Número1)
46
6.2 Macro de Chamada de Ponto I
2. Como mostrado na figura. Altere o ponto I 4 do software ponto 2 para o ponto macro I (I47)
fornecido pela tabela de E/S. Em seguida, clique em Atualizar para concluir a atualização.
A abordagem de ação é: Fornecer sinal para a Sequência 3 na figura correspondente a I4 de
fora. Após o sinal ser dado, ele acionará o I47 alterado anteriormente para chamar a macro
correspondente.
47
6.3 Implementação de Asserção de Condições
A seguir estão os comandos de ação necessários para implementar a asserção de condição.
Salto de R
Salto de I
Número I usado para asserção
48
Salto
Legenda
49
Tabela Correspondente da Asserção Lógica:
IF Salto I ou salto R
ELSE Legenda
ELSEIF Legenda + salto I ou salto R
ENDIF Legenda
50
6.4 Atualizar Sistema e Backup/Restauração
1. Extraia o arquivo de atualização primeiro.
51
2. Coloque todos os arquivos na pasta própria de configuração do Recon e faça o upload de
todos. Reinicie a alimentação para concluir a atualização.
3. Backup/Restauração
Faça o download de todas as pastas Machine no controlador para a pasta própria como
backup. Se houver qualquer restauração subsequente, faça o upload de todas as pastas da
Máquina anteriormente armazenadas em backup e reinicie a caixa de controle elétrico para
restaurar o original.
52
Anexo A Descrição da Função de
Comunicação do Controlador
A.1.1. scif_Init
Essa função é para construir a memória espelhada necessária e encadear no endpoint local e usada
como a configuração de uso da biblioteca com base nos parâmetros fornecidos.
Sintaxe
int scif_Init (DLL_USE_SETTING *pUseSetting, int MakerID, char
*pEncString);
Parâmetros
pUseSetting:
A configuração de uso da biblioteca é capaz de encontrar seu conteúdo de struct no arquivo
scif_define.h. Em que, SoftwareType indica o tipo de software, TalkInfoNum indica o número de
conexões.
MakerID:
Número de identificação do fabricante. Este parâmetro será fornecido pelo Adventech-LNC
original.
pEncString:
Cadeia criptografada. As informações incluídas são MakerID, função de detecção de rede de área
local, se usar memória de espelho, se capaz de gravar dados, se tem função de transferência de
arquivos. Este parâmetro também será fornecido pelo Adventech-LNC original.
Valor de Postback
0: A inicialização falhou.
10: A inicialização é bem-sucedida, mas a cadeia de função criptografada falhou.
100: Bem-sucedido.
53
A.1.2. scif_Destroy
Esta função é destruir a memória interna e o encadeamento.
Sintaxe
void scif_Destroy();
Parâmetro
Nenhum.
Valor de Postback
Nenhum.
A.1.3. scif_LocalConnectIP
Esta função serve para inserir diretamente o IP do controlador para realizar a configuração da
conexão. Executar com sucesso esta função indica somente que a configuração da conexão foi
bem-sucedida. Se a conexão é realmente build-up que terá que chamar a função scif_GetTalkMsg
para verificar o status da conexão.
Sintaxe
int scif_LocalConnectIP(char ServerIdx, char *IP);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada.
IP:
IP do controlador a ser conectado.
Valor de Postback:
0: O comando de configuração falhou.
1: O comando de configuração é aceito.
54
A.1.4. scif_GetTalkMsg
Chame esta função capaz de obter as informações de comunicação de conexão.
Sintaxe
unsigned int scif_GetTalkMsg(char ServerIdx, char id);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada.
Id:
O arquivo scif_define.h possui informações id que podem ser preenchidas. Por exemplo, preencher
SCIF_CONNECT_STATE para obter o status da conexão.
Valor de Postback:
Conteúdo da informação. O arquivo scif_define.h possui o significado representado pelo conteúdo
da informação de postback.
55
A.1.5. scif_cmd_ReadI、scif_cmd_ReadO、scif_cmd_ReadC
Essas funções são usadas como configuração de leitura para dados contínuos. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_cmd_ReadI como exemplo para ilustração.
Sintaxe
int scif_cmd_ReadI(char type, char ServerIdx, unsigned int addr, unsigned int num);
Parâmetros
Tipo:
Padrão de comando SC_DEFAULT_CMD, SC_POLLING_CMD, SC_DEFAULT_CMD.
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
Addr:
Endereço inicial.
Num:
Ler números. O valor máximo de num é MAX_BIT_NUM (Definir arquivo inscif_define.h).
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou. (Se essa configuração tiver que ser remontada, o valor postbakc será 1. Depois
disso, não será possível afirmar se esse comando é executado ou não.)
56
A.1.6. scif_cmd_ReadR
Essas funções são usadas como configuração de leitura para dados contínuos. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_cmd_ReadR como exemplo para ilustração.
Sintaxe
int scif_cmd_ReadR(char type, char ServerIdx, unsigned int addr, unsigned int num);
Parâmetros
Tipo:
Padrão de comando SC_DEFAULT_CMD, SC_POLLING_CMD, SC_DEFAULT_CMD.
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
Addr:
Endereço inicial.
Num:
Ler números. O valor máximo de num é MAX_INT_NUM (Definir arquivo inscif_define.h).
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou. (Se essa configuração tiver que ser remontada, o valor postbakc será 1. Depois
disso, não será possível afirmar se esse comando é executado ou não.)
57
A.1.7. scif_cb_ReadI、scif_cb_ReadO、scif_cb_ReadC、
Essas funções são usadas como configuração de leitura para dados discretos. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_cb_ReadI como exemplo para ilustração.
Sintaxe
int scif_cb_ReadI(char type, char ServerIdx, unsigned int num, unsigned int
*addr);
Parâmetros
Tipo:
Padrão de comando SC_DEFAULT_CMD, SC_POLLING_CMD, SC_DEFAULT_CMD.
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
num:
Ler números. O valor máximo de num é MAX_CB_BIT_NUM (Definir arquivo scif_define.h
file).
Addr:
Endereço do índice de matriz a ser lido. Preencha o endereço dos dados a serem lidos na matriz.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou. (Se essa configuração tiver que ser remontada, o valor postbakc será 1. Depois
disso, não será possível afirmar se esse comando é executado ou não.)
58
A.1.8. scif_cb_ReadR
Essas funções são usadas como configuração de leitura para dados discretos. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_cb_ReadR como exemplo para ilustração.
Sintaxe
int scif_cb_ReadR(char type, char ServerIdx, unsigned int num, unsigned int
*addr);
Parâmetros
Tipos:
Padrão de comando SC_DEFAULT_CMD, SC_POLLING_CMD, SC_DEFAULT_CMD.
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
num:
Ler números. O valor máximo de num é MAX_CB_INT_NUM (Definir arquivo scif_define.h
file).
Addr:
Endereço do índice de matriz a ser lido. Preencha o endereço dos dados a serem lidos na matriz.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou. (Se essa configuração tiver que ser remontada, o valor postback será 1. Depois
disso, não será possível afirmar se esse comando é executado ou não.)
59
A.1.9. scif_ReadI、scif_ReadO、scif_ReadC
Essas funções são usadas para ler o valor dos dados da memória espelhada. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função scif_ReadI
como exemplo para ilustração. Sob a situação de considerar a conexão com vários controladores,
antes de chamar essas funções para ler dados, a função scif_SetMirror deve ser chamada primeiro,
para selecionar a memória espelhada do controlador a ser lida.
Sintaxe
char scif_ReadI(unsigned int addr );
Parâmetros
Endereço:
Endereço de dados.
A.1.10. scif_ReadR
Essas funções são usadas para ler o valor dos dados da memória espelhada. De acordo com os
diferentes tipos de armazenamento, ele será dividido em diferentes funções para leitura. No
entanto, o significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_ReadR como exemplo para ilustração. Sob a situação de considerar a conexão com vários
controladores, antes de chamar essas funções para ler dados, a função scif_SetMirror deve ser
chamada primeiro, para selecionar a memória espelhada do controlador a ser lida.
Sintaxe
unsigned int scif_ReadR( unsigned int addr );
Parâmetros
Endereço:
Endereço de dados.
60
A.1.11. scif_cmd_WriteI、scif_cmd_WriteO、scif_cmd_WriteC
Essas funções são usadas para gravar os dados individuais. De acordo com os diferentes tipos de
armazenamento, ele será dividido em diferentes funções para gravar valor. No entanto, o
significado dos parâmetros de entrada necessários é o mesmo. Tome a função scif_cmd_WriteI
como exemplo para ilustração.
Sintaxe
int scif_cmd_WriteI(char ServerIdx, unsigned int addr, char val);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
Addr:
Endereço a ser gravado.
Val:
Valor a ser gravado.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou.
61
A.1.12. scif_cmd_WriteR
Essas funções são usadas para gravar os dados individuais. De acordo com os diferentes tipos de
armazenamento, ele será dividido em diferentes funções para gravar valor. No entanto, o
significado dos parâmetros de entrada necessários é o mesmo. Tome a função scif_cmd_WriteR
como exemplo para ilustração.
Sintaxe
int scif_cmd_WriteR(char ServerIdx, unsigned int addr, unsigned int val);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
Endereço::
Endereço a ser gravado.
Val:
Valor a ser escrito.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou.
62
A.1.13. scif_cmd_WriteMultiR
Essas funções são usadas para gravar os dados contínuos. De acordo com os diferentes tipos de
armazenamento, ele será dividido em diferentes funções para gravar valor. No entanto, o
significado dos parâmetros de entrada necessários é o mesmo. Tome a função
scif_cmd_WriteMultiR como exemplo para ilustração.
Sintaxe
int scif_cmd_WriteMultiR(char ServerIdx, unsigned int addr, unsigned int num, unsigned int
*data);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
Endereço:
Endereço a ser gravado.
Num:
Números a serem gravados. O valor máximo é MAX_INT_NUM (Definir arquivo scif_define.h
file).
Dados:
Índice de matriz do valor a ser gravado.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou.
63
A.1.14. scif_cb_WriteR
Essas funções são usadas para gravar os dados discretos. De acordo com os diferentes tipos de
armazenamento, ele será dividido em diferentes funções para gravar valor. No entanto, o
significado dos parâmetros de entrada necessários é o mesmo. Tome a função scif_cb_WriteR
como exemplo para ilustração.
Sintaxe
int scif_cb_WriteR(char ServerIdx, unsigned int num, unsigned int *addr, unsigned int *data);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada. -1 indica que todas as conexões devem aplicar essa
configuração.
num:
Números a serem gravados. O valor máximo é MAX_CB_INT_NUM (Definir arquivo
inscif_define.h).
Endereço:
Índice de matriz a ser gravado.
Dados:
Índice de matriz do valor a ser gravado.
Valor de Postback
Índice do pacote de comunicação. Se o valor de postback for 0, indicando que a configuração do
comando falhou.
64
A.1.15. scif_StartCombineSet
Esta função é usada para configurar os dados de sincronização. Chame essa função para configurar
o sinalizador de montagem automática. Depois de chamar esta função, será necessário chamar a
função scif_FinishCombineSet para concluir a configuração da montagem de pacotes.
Sintaxe
void scif_StartCombineSet(char ServerIdx);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada.
Valor de Postback
Nenhum.
A.1.16. scif_FinishCombineSet
Esta função é para completar a configuração da montagem automática e começar a gerar o pacote
de montagem. Antes de chamar esta função, será necessário chamar scif_StartCombineSet
antecipadamente.
Sintaxe
void scif_FinishCombineSet(char ServerIdx);
Parâmetros
ServerIdx:
O usuário pode se autodefinir o índice de conexão usado. No entanto, esse valor deve ser menor
que o número de conexões configuradas pelo TalkInfoNum em struct DLL_USE_SETTING
quando a função scif_Init é inicializada.
65
HIWIN TECHNOLOGIES CORP.
Nº. 7, Jingke Road,
Taichung Precision Machinery Park
Taichung 40852, Taiwan
Tel : 04-23594510
Fax: 04-23594420
www.hiwin.tw
business@hiwin.tw
1. HIWIN é a marca registrada da HIWIN Technologies Corp.. Evite comprar os produtos falsificados de fontes desconhecidas para proteger seus direitos.
2. 2.Os produtos reais podem ser diferentes das especificações e fotos deste catálogo, e as diferenças nas aparências ou especif icações podem ser causadas, 2016 FORM C07UE402-1605
entre outras coisas, por melhorias no produto.
3. A HIWIN não irá vender ou exportar essas técnicas e produtos restritos sob o "Ato de Comércio Exterior” e regulamentos relevantes. Qualquer exportação de
(IMPRESSO EM TAIWAN)
produtos restritos deve ser aprovada pelas autoridades competentes de acordo com as leis relevantes, e não deve ser usada para fabricar ou desenvolver armas
nucleares, bioquímicas, de mísseis e outras armas militares.
4. Site da HIWIN para o diretório de produtos patenteado: http://www.hiwin.tw/Products/Products_patents.aspx