Você está na página 1de 67

Robô SCARA

Manual de Operação Periférica


Periférico
Manual de Operação

1
Histórico de Revisão

Edição Data Observações


V1.0 2015/05/18 Publicação Original
V1.1 2015/06/04 Modificar tabela de recursos
V1.2 2016/03/08 Remover a página de Driver, revisar a descrição da E/S

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

1. Clique com o botão direito do mouse em ReconIntegrater.exe na pasta ReconIntegrater.


Depois clique em “Propriedades” e, em seguida, clique em “Abrir Local do Arquivo” para
abrir o Recon.ini na pasta que o bloco de notas será exibido, como mostrado na figura. Copie
o Start In da caixa vermelha 1 para a caixa vermelha 2 e salve para conclusão. Em seguida,
vá para o canto superior direito do ReconIntegrater para ler as pastas estabelecidas no
diretório raiz.

2. A parte do idioma é mostrada como a caixa de diálogo no ícone (Recon.ini). Configurar


idioma, Index=0 indica quando Recon é aberto, o idioma é chinês tradicional. Se desejar
configurar como chinês simplificado ou inglês, só precisará alterar o Index=0 (chinês
tradicional) para 1 (chinês simplificado) ou 2 inglês) e, em seguida, salve para concluir a
atualização.

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.

2. A abordagem de modificação é clicar duas vezes na caixa vermelha 1 para exibir


Modificar o número de ID do software definido pelo usuário (consulte o documento de E/S
suave) e pressione Enter para substituir. Em seguida, clique na caixa vermelha 2 para
atualizar. A conexão NPN é usada para pinos. ENTRADA corresponde a N24, SAÍDA
corresponde a P24.

8
Definições de pinos de interface
Descrição do pino da interface do robô (E/S) (D-Sub 25Pin)

1 ENTRADA14 6 ENTRADA31* 11 16 SAÍDA15 21


2 ENTRADA15 7 ENTRADA32* 12 P24-2* 17 SAÍDA26* 22
3 ENTRADA16 8 ENTRADA33* 13 N24-2* 18 SAÍDA27* 23
4 ENTRADA29* 9 14 SAÍDA13 19 SAÍDA28* 24 P24
5 ENTRADA30* 10 15 SAÍDA14 20 SAÍDA29* 25 N24

※ (*) 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 ENTRADA (D-Sub 25Pin)

1 ENTRADA1 6 ENTRADA6 11 ENTRADA23* 16 ENTRADA28* 21


2 ENTRADA2 7 ENTRADA7 12 ENTRADA24* 17 22
3 ENTRADA3 8 ENTRADA8 13 ENTRADA25* 18 23 N24*
4 ENTRADA4 9 ENTRADA21* 14 ENTRADA26* 19 24 N24*
5 ENTRADA5 10 ENTRADA22* 15 ENTRADA27* 20 25 N24

※ (*) 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

1. Parte da caixa vermelha 1 são os vários dados do arquivo dentro do controlador.


2. Parte da caixa vermelha 2 é a pasta de arquivos selecionada no caminho do diretório raiz.
3. Parte da caixa vermelha 3 é o caminho do arquivo.
4. Parte da caixa vermelha 4 são as pastas de cada arquivo. Como:
(1).Data é a pasta para armazenar arquivos de programas.
(2).NCFile é a pasta para armazenar arquivos de programa NC.
(3).OpenHMI é a pasta para armazenar programas de interface homem-máquina.
(4).Macro armazena o número de identificação do fabricante_macro_g e o número de
identificação do fabricante_func_ins_macro.
(5).PLC armazena o programa PLC_ladder dentro do controlador.
(6).Machine armazena o arquivo de configuração de parâmetros do controlador.
(7).Setup armazena o arquivo de atualização do sistema para o controlador.
(8).Security armazena arquivo de segurança para o controlador (Se estiver faltando, não
será possível iniciar o dispositivo de ensino)
(9).Image armazena o arquivo do ícone de inicialização e o arquivo de ícone da interface
homem-máquina.
(10).Log armazena as informações de Alarme.
(11).Language armazena o arquivo de idioma.

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.

 A caixa vermelha 2 é os dados do arquivo selecionado. Será necessário selecionar primeiro


a pasta estabelecida por você mesmo. R no lado esquerdo é para redefinir a ação da pasta,
O é usado para abrir a pasta.

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

1. Esta página é usada principalmente para exibir os valores de I、O、C、S、A、R、RBit


dentro do controlador. O objetivo é aprender os valores internos e os valores alterados.
Clique duas vezes na caixa vermelha 1 para exibir a caixa vermelha 2 e, em seguida, insira
o valor-R e pressione Enter. Em seguida, clique em Atualizar. O valor dentro do valor-R
atual será exibido na caixa vermelha 3. Atualizar é usado para atualizar o valor alterado.

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

1. A caixa vermelha 1 é o endereço inicial do valor-R. A caixa vermelha 2 é a contagem. A


caixa vermelha 3 é o arquivo de exportação e importação. Por exemplo, endereço inicial
5000 contagem 2000, ou seja, exporte o valor R 5000~7000. Clique em Exportar, o arquivo
txt exportado será exibido na caixa vermelha 3. Volte para a pasta ReconIntegrater
novamente para abrir a pasta lida (caixa vermelha 4). A pasta do ImportR aparecerá no
arquivo txt exportado.

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

2.1 Lista de Funções


Entrada Comentar Descrição
Ponto de Fornecer para o sinal de ENTRADA
I1~I39
ENTRADA do cliente
I44 Reiniciar Redefinir e apagar o estado do alarme
I51 Início NC Arquivo de Início NC
I52 Início de Ensino Iniciar o procedimento atual
I53 Manter Manter caminho
Reiniciar
I54 Reinicia o caminho
Caminho
I55 Iniciar Gravação Inicia o registro selecionado por lista
Retorno à Página Procedimento de interrupção
I47
Inicial Mecânico instantânea e execução de macro
I65 ENTRADA1
I66 ENTRADA2 ENTRADA 4 ea (4bit) seleciona 16
I67 ENTRADA3 tipos CASO
I68 ENTRADA4
I83 Lista ENTRADA1
I84 Lista ENTRADA2
Lista de seleção de registro
I85 Lista ENTRADA3
I86 Lista ENTRADA4

Saída Comentar Descrição


Fornecer para o sinal de SAÍDA do
O1~39 Ponto de SAÍDA
cliente
O40 Saída de Alarme Sinal de alarme
O65 Bit 0
O66 Bit 1
SAÍDA 4 ea (4bit) saída 16 ea CASO
O67 Bit 2
O68 Bit 3

16
2.2 Descrição de Uso

2.2.1 Retorno à Página Inicial Mecânico I47


Primeiro, vá para Recon configuração do ES de software I47 para corresponder ao ES de hardware.
Depois disso, use o bloco de notas para editar o arquivo maker_func_ins_macro119 na pasta
macro_maker. Depois de concluir a configuração, o procedimento de interrupção I47 é capaz de
usar e executar os programas no macro. Sob certas circunstâncias, sua finalidade é interromper o
procedimento na ação atual imediatamente quando o sinal é acionado e a máquina executa outro
procedimento de retorno à posição de segurança simultaneamente. O sistema usa o sinal do retorno
mecânico I47. Enquanto isso, também permite que os outros sistemas acionem o sinal de retorno
à página inicial mecânico através do modo de comunicação.

2.2.2 4 Bit (ENTRADA) Seleciona 16 Tipos CASO:


I65 corresponde a Bit0. I66 corresponde a Bit1. I67 corresponde a Bit2. I68 corresponde a Bit3.

Bit3 Bit2 Bit1 Bit0 Total


23 22 21 20
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
1 1 1 1 15

*O valor total será salvo no número R501.

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.

Bit3 Bit2 Bit1 Bit0 Lista


23 22 21 20
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
1 1 1 1 15

Etapas de seleção de lista de 4 bits:


1. Clique em I83~I86 para selecionar qual das listas a serem compostas e, em seguida, clique
em I55 (início do registro).

2.2.4 Saída de 4 bits (SAÍDA) 16 Conjuntos de Sinal


O65 corresponde a Bit0. O66 corresponde a Bit1. O67 corresponde a Bit2. O68 corresponde a
Bit3.
Bit3 Bit2 Bit1 Bit0 Lista
23 22 21 20
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
1 1 1 1 15
Pode usar o valor R (R502) para emitir 16 conjuntos de sinal.
Por exemplo: Entrada 5 em R502, a correspondência para O65, O67 será 1 (estado ON).

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

#1 = R_REG(100) ;Leia o valor de R100 e atribua à Variável#1

IF( #1 == 1 ) ;Quando #1 == 1, digite 1 em R50


W_REG(50, 1)
ELSEIF (#1 == 2) ;Quando #1 == 2, digite 1 em R51
W_REG(51, 1)
ELSE ;Quando o número 1 não atende as condições acima, digite 1 em
R52 W_REG(52, 1)
END_IF ;Encerrar IF condicional

SELECIONAR
Selecione o bloco de execução com base nos parâmetros
Exemplo
#1 = R_REG(100)

SELECT(#1) ;Parâmetro de asserção #1


CASE 0: ;Quando o #1 é zero, execute G01 X10
G01X10
CASE 1: ;Quando o #1 é 1, execute G01 X20
G01X20
CASE 3,4,5: ;Quando o #1 é 3, 4, 1, execute G01 X30
G01X30
CASE_ELSE ;Quando o número 1 não atende as condições acima, execute
G01 X40
G01X40
END_SELECT

20
3.2 Comando de Fluxo (IF…GOTO)
Salto Condicional, Salto Incondicional

Exemplo

IF( #1 == 100) GOTO 200 ;Quando #1=100, pule para


N200
G01 X30
END_IF
GOTO 100 ;Pule para N100

N100
G01 X20

N200
G01 X10

3.3 Loop (FOR、DO…UNTIL、WHILE)

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

WHILE(#1<20) ;Quando o número 1 for menor que 20, execute os programas


no loop
IF( #1 ==10) ;#1 = 10 saia do WHILE loop
EXIT_WHILE
END_IF
G04 X1 ;Aguarde 1 segundo
#1 = #1 + 1
END_WHILE

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

SUB”HIWIN” ;Subrotina ”HIWIN”


IF(#1 == 1) ;Quando #1=1, saia da sub-rotina e retorne ao programa principal
EXIT_SUB
END_IF
G01 X5
END_SUB

3.5 Chamada de Programa Macro


Uma seção de programas pode ser salva como programa de macro. No programa principal, use as
chamadas de código G para uso. (Salvar nome pode ser em numérico minúsculo inglês, armazenar
em ncfiles<no need extension>da pasta do projeto).

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

Ligar para o Código G Auto-definido


Uma seção de programas pode ser salva como programa de macro. No programa principal, use
as chamadas de código G para uso. (Salvar nome maker_macro_gXXX, armazenar em
<macro_maker> da pasta do projeto)
O intervalo definido de código G auto-definido é G401~G700

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

Descrição do M99: Finalizar o modo de retorno da sub-rotina

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.

Tabela de Correspondência Variável:

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

3.6 Registro de Leitura/Gravação/Valor de


Entrada/Saída
Ler ou gravar endereço de registro/entrada/saída
O intervalo de parâmetro definido pelo usuário de valor de R R1001~R5999, R8000~R9999

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:

#1 = 10000 ;Configuração de velocidade em movimento

G00 L3 X-90 Y90 Z0 A0 F#1 ; Mover para coordenada conjunta

WHILE(1) ; Execute o loop infinito

G20 I3 S1 T100 F0 ; Aguarde a entrada I3 antes de continuar a execução

IF(R_MLC_I(1) == 1) ; Afirmar se I1 é entrada ou não


G01 T5 L0 X-300 Y400 Z192.8 C0 F#1
G04 P100
ELSEIF(R_MLC_I(2) == 1) ; Afirmar se I2 é entrada ou não
G01 T5 L0 X300 Y400 Z192.8 C0 F#1
G04 P100
ELSE ; Execute quando ambos I1, I2 não
G01 T5 L0 X0 Y400 Z192.8 C0 F#1 tiverem entrada
G04 P100
END_IF

SELECT (R_REG(7000)) ; Leia o valor do Registro 7000 e defina a


seleção

CASE 0: ; Registre 7000 = 0 execute


CALL_SUB ”PROG1” ; Chame sub-rotina PROG1
CASE 1 ;Registre 7000 = 1 execute
G301 ;Chame G código 301
CASE 2,3,4: ;Registre 7000 = 2, 3, 4 execute
G00 L3 X-90 Y90 Z0 A0 F#1
G04 P100
END_SELECT

FOR #2 = 1 TO 5 ; Execute FOR loop 5 vezes A0 F#1


G00 L3 X-90 Y90 Z0

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

SUB “PROG1” ; Sub-rotina PROG1


G01 L0 X300 Y400 Z100 C0 F#1
G01 L0 S2 X0 Y590 Z100 C0 F#1
G01 L0 S4 X-300 Y400 Z100 C0 F#1
END_SUB

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

Especificação de Cada Conexão


Número de Fila de Pesquisa: 64
Número da Fila Direta: 64

Descrição do Conceito de Direto e Pesquisa:


Comando Direto: Este tipo de comando será salvo em “Fila Direta”. Depois que a biblioteca
executa com êxito o comando nessa fila, ele removerá esse comando da fila. Ou seja, esse comando
só será executado uma vez.
Pesquisa: Este tipo de comando será salvo em “Fila de Pesquisa”. A biblioteca executará
repetidamente o comando nessa fila, até que o programa principal coloque “clear queue command
scif_cmd_ClearAll”.

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.

O comando de comunicação é o parâmetro na configuração dos dados de comunicação.


Quando o comando de comunicação é configurado como SC_POLLING_CMD, os dados de
endereço configurados para leitura serão atualizados continuamente. Se o comando de
comunicação estiver configurado como SC_DIRECT_CMD, os dados de endereço configurados
para leitura/gravação serão executados apenas uma vez. Na biblioteca, as funções usadas para
gravar dados no controlador, o comando de comunicação padrão são todos SC_DIRECT_CMD.

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

5.5.1 Descrição do Planejamento de Recursos


Ao gravar a API de comunicação do controlador SCARA, exceto certas funções que
possuem outros recursos, na verdade, é para ler ou gravar o local da memória planejada dentro do
controlador. Alguns locais de memória são definidos e usados pelo usuário. Os outros locais de
memória já foram definidos dentro do controlador. Portanto, quando executamos uma ação de
leitura ou gravação, o SCARA fornecerá a resposta relativa ao usuário com base nos locais e
comandos de memória recebidos.

5.5.2Descrição Exemplo - Conexão e Ações


Básicas
#include "stdafx.h"
#define ___VC
#include <windows.h>
#include "scif.h"
#include <iostream>
#include <cstdlib>

int _tmain(int argc, _TCHAR* argv[])


{
//-----Inicialização da Biblioteca
int rt;
DLL_USE_SETTING DllSetting;
DllSetting.SoftwareType = 5;
DllSetting.TalkInfoNum = 10;
DllSetting.MemSizeI = I_NUM;
DllSetting.MemSizeO = O_NUM;
DllSetting.MemSizeC = C_NUM;
DllSetting.MemSizeS = S_NUM;
DllSetting.MemSizeA = A_NUM;

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;
}

//----Configurar controlador de conexão


int ok;
ok = scif_LocalConnectIP(0,"192.168.19.43");
if(ok != 1)
{
printf("Connection Setting is Failed!\n");
return 0;
}
printf("Connection Setting is Sccessful!\n");

//-----Configurar dados a serem lidos continuamente


scif_cmd_ClearAll(SC_POLLING_CMD, 0);
//-----Coloca os dados a serem continuamente lidos de volta entre scif_StartCombineSet e
scif_FinishCombineSet
scif_StartCombineSet(0);
//-----Alarme, Aviso, ES REMOTA Detecção de Anormalidade
scif_cmd_ReadS(SC_POLLING_CMD, 0, 3000, 4);
//-----Seção de Dados Auto-definidos
scif_cmd_ReadR(SC_POLLING_CMD, 0, 3000, 360);
scif_cmd_ReadR(SC_POLLING_CMD, 0, 6300, 100);
scif_cmd_ReadR(SC_POLLING_CMD, 0, 6000, 100);
scif_cmd_ReadO(SC_POLLING_CMD, 0, 0, 100);

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

//------Ler o status da conexão


int ConnStatus = scif_GetTalkMsg(0, SCIF_CONNECT_STATE);

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

//-------Ler dados auto-definidos


for (int i = 1; i < 21; i++)
{
dataO[i - 1] = scif_ReadO(i);
}

for (int i = 1; i < 21; i++)


{
dataI[i - 1] = scif_ReadI(i);
}

//-------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]);
}

//-------Configurar para gravar dados contínuos para o controlador


Tick1++;
if (Tick1>100)
{
Tick1=0;
unsigned int Addr1, Num1, Data1[360];
Addr1 = 3000;
Num1 = 360;
for (int i = 0; i < Num1; i++)Data1[i] = 1 + i;
scif_cmd_WriteMultiR(0, Addr1, Num1, Data1);

40
}

//-------Configurar para gravar dados discretos para o controlador


Tick2++;
if (Tick2>120)
{
Tick2=0;
unsigned int Addr2[180], Num2, Data2[180];
Num2 = 180;
for (int i=0; i<Num2; i++)
{
Addr2[i] = 4000+2*i;
Data2[i] = 1+i;
}
scif_cb_WriteR(0, Num2, Addr2, Data2);

}
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

6.1 Operação de Posição de Segurança

I. Tome a coordenada mundial como exemplo:

+ é o valor máximo, - é o valor mínimo

Faixa de Segurança de C
Faixa de Segurança de Y

(-90~90)
Faixa de Segurança de Z

Faixa Móvel do ROBÔ


Faixa Móvel do ROBÔ

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.

2. Vá para a posição de segurança para configurar o intervalo. Digite o código GM no


programa para asserção. Chame maker_macro_g300 para afirmar se está na posição de
segurança.

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.

G13A0 // G13 é a posição de segurança. Chame para o código GM. A0 é o conjunto 0.


IF(@40!=1)
ALARM(“Position check fail!!”)
ELSE_IF
END_IF
PROG_END

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

Adicione um novo arquivo de texto (txt) primeiro. O nome do arquivo é


maker_func_ins_macro119. Em seguida, passe este arquivo de texto para macro_maker na pasta
lida por Recontool. Chame o número de macro correspondente maker_func_ins_macro119 do I-
point I47 fornecido na tabela de E/S.

1. Abra a pasta macro_maker na pasta. Clique em maker_func_ins_macro119 e abra com o


bloco de notas. Grave programa lá.

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

Registro usado para asserção

Use o salto para a legenda

Salto de I
Número I usado para asserção

Use o salto para a legenda

48
Salto

Use o salto para a legenda

Legenda

Use legenda como ELSE


início ou final de asserção

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

Estrutura de Asserção de Condição:

Salto R ou salto I (se for verdade, execute para baixo,


falso, salte) SE (Condição)

Legenda (Início ELSEIF)


Salto R ou salto I (Asserção de condição de ELSEIF)
ELSEIF (Condição)

Salto (Ir para legenda final de declaração)

Legenda (Início ELSE)


… ELSE
Salto (Ir para legenda final de declaração)

Legenda (Esta é a legenda do final da asserção) ENDIF

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.

Conteúdo dos Dados do


Valor de Postback.

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.

Conteúdo dos Dados do


Valor de Postback.

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.

Valor de Postback Nenhum.

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

As especificações deste catálogo estão sujeitas a alterações sem notificação

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

Você também pode gostar