Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação do robô 3
Edição: 17.10.2012
© Copyright 2012
KUKA Roboter GmbH
Zugspitzstraße 140
D-86165 Augsburg
Alemanha
Este documento ou excertos do mesmo não podem ser reproduzidos ou disponibilizados a terceiros
sem autorização expressa da KUKA Roboter GmbH.
Outras funções de comando não descritas nesta documentação poderão ser postas em prática. No
entanto, não está previsto qualquer tipo de reclamação quanto a estas funções em caso de nova re-
messa ou de serviço.
Verificamos que o conteúdo do prospecto é compatível com o software e com o hardware descrito.
Porém, não são de excluir exceções, de forma que não nos responsabilizamos pela total compatibi-
lidade. Os dados contidos neste prospecto serão verificados regulamente e as correções necessá-
rias serão incluídas na próxima edição.
Sob reserva de alterações técnicas sem influenciar na função.
Tradução da documentação original
KIM-PS5-DOC
Índice
1 Programação estruturada ........................................................................... 5
1.1 Objetivo de um método de programação padronizado .............................................. 5
1.2 Recursos auxiliares para a criação de programas de robô estruturados .................. 5
1.3 Como é elaborado um fluxograma do programa ....................................................... 9
Índice ............................................................................................................ 93
1 Programação estruturada
INI
END
DEF PICK_CUBE()
INI
END
Descomentário:
Se uma parte do código for excluído provisoriamente mas posteriormente
reinserido, ele será descomentado. A parte do código, depois de embalado no
comentário, no ponto de vista não é mais código, ou seja, já não existe mais.
DEF Palletize()
INI
PICK_CUBE()
;CUBE_TO_TABLE()
CUBE_TO_MAGAZINE()
END
Que exemplos há Na unidade de comando KUKA pastas já são usadas, como padrão, pelo sis-
para o uso de tema, por exemplo, na exibição de formulários Inline. As pastas simplificam a
pastas? visibilidade dos valores introduzidos no formulário Inline, ocultando partes do
programa não relevantes para o operador.
Além disso, o usuário (a partir do grupo de usuários peritos) tem a possibili-
dade de criar pastas próprias. Essas pastas podem ser usadas pelo progra-
mador, por exemplo, para comunicar ao operador algo que ocorre em uma
determinada posição do programa, porém, mantendo a sintaxe KRL efetiva
em segundo plano.
Inicialmente as pastas em geral são exibidas fechadas após a sua criação.
DEF Main()
...
INI ; PASTA KUKA fechada
END
DEF Main()
...
INI ; PASTA KUKA fechada
END
DEF Main()
...
INI ; PASTA KUKA fechada
END
LOOP
GET_PEN()
PAINT_PATH()
PEN_BACK()
GET_PLATE()
GLUE_PLATE()
PLATE_BACK()
ENDLOOP
END
Fig. 1-1
Fig. 1-2
Ramificação
Fig. 1-3
Fig. 1-4
Acesso ao subprograma
Fig. 1-5
Instrução de entrada/saída
Fig. 1-6
Exemplo PAP
Fig. 1-7
Como é Partindo da ideia do usuário o problema é detalhado passo a passo, até que
elaborado um os componentes elaborados sejam suficientemente visualizáveis, para poder
PAP realizá-los no KRL.
As minutas geradas nos passos subsequentes de desenvolvimento se destin-
guem pela crescente profundidade de detalhes.
1. Desmembramento grosseiro de todo o processo em aprox. 1 - 2 páginas
2. Divisão da tarefa total em diversas tarefas parciais
3. Classificação geral das tarefas parciais
4. Detalhamento da classificação das tarefas parciais
5. Transposição em código KRL
2 Interpretador Submit
O interpretador de comando
pode ser iniciado automática ou manualmente
também pode ser parado ou desselecionado manualmente
pode assumir funções de operação e de comando no ambiente do robô
como padrão está criado com o nome SPS.sub no diretório R1/SYSTEM
pode ser programado com o conjunto de comandos KRL
não pode processar nenhum comando KRL, que esteja relacionado com
movimentos de robô
permite movimentos assíncronos de eixos adicionais
pode acessar variáveis de sistema lendo e gravando
pode acessar entradas/saídas lendo e gravando
Correlações na
Atenção!
programação do O Interpretador Submit não pode ser usado para aplica-
Interpretador ções críticas de tempo! Para estes casos é necessário usar um PLC. Moti-
Submit vos:
O Interpretador Submit divide a capacidade do sistema com o Interpre-
tador de robô e a gestão de IO, que têm prioridades maiores. Por isto, o
Interpretador Submit não operará regularmente no ciclo de interpolação
da unidade de comando do robô de 12ms.
Além disso, o tempo de execução do Interpretador Submit é inconstante.
O tempo de execução do Interpretador Submit é influenciado pelo núme-
ro das linhas no SUB-programa. Também as linhas de comentário e va-
zias exercem um efeito.
Aviso!
Não é verificado, se o Interpretador do robô ou o Inter-
pretador Submit acessam simultaneamente a mesma saída, uma vez que
isto pode ser desejado em determinados casos.
Por isso, a atribuição das saídas deve ser cuidadosamente verificada pelo
usuário. Caso contrário, podem ocorrer sinais de saída inesperados, p.ex.,
em dispositivos de segurança. Pode ocorrer morte, lesões corporais graves
ou danos materiais significativos.
Aviso!
Não processar sinais relevantes de segurança, sinais
críticos de tempo e variáveis através do Interpretador Submit.
Descrição Espaços de trabalho "seguros para pessoas" e "não seguros para pessoas"
Espaços de trabalho seguros para pessoas servem para a proteção pes-
soal e somente podem ser instalados com a opção adicional SafeOpera-
tion.
Com o software de sistema 8.x da KUKA podem ser configurados espa-
ços de trabalho para o robô. Estes servem somente para a proteção do
equipamento.
Espaços de trabalho/proteção de equipamentos "não seguros para pessoas"
Estes espaços de trabalho apropriados apenas para a proteção de máqui-
nas são configurados diretamente no software de sistema KUKA.
Podem ser criados 8 espaços de trabalho específicos dos eixos.
Fig. 3-6
Fig. 3-10
Pos. Descrição
1 Saídas para o monitoramento dos espaços de trabalho cartesia-
nos
2 Saídas para o monitoramento dos espaços de trabalho específi-
cos dos eixos
Quando não deve ser ativada uma saída em caso de violação do espaço
de trabalho, deve ser inserido FALSE.
5. No grupo Específico do eixo: Junto ao número do espaço de trabalho,
inserir a saída que deve ser ativada em caso de violação do espaço de
trabalho.
6. Pressionar Salvar.
7. Fechar a janela.
Configurar espaços de trabalho cartesianos
1. No menu principal, selecionar Configuração > Extras > Monitoramento
do espaço de trabalho > Configuração.
A janela Espaços de trabalho cartesianos abre-se.
2. Introduzir os valores e pressionar Salvar.
3. Pressionar Sinal. A janela Sinais abre-se.
4. No grupo Cartesiano: Junto ao número do espaço de trabalho, inserir a
saída que deve ser ativada em caso de violação do espaço de trabalho.
5. Pressionar Salvar.
6. Fechar a janela.
Exemplos de espaços de trabalho cartesianos
Se o ponto "P2" se situar na origem do espaço de trabalho, é necessário
apenas determinar as coordenadas de "P1".
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Configuração de espaços de trabalho
Utilização dos diferentes modos em espaços de trabalho
Curto-circuitamento do monitoramento do espaço de trabalho
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
conhecimentos teóricos sobre o monitoramento do espaço de trabalho
Fig. 3-22
Tarefa parcial 2
1. Configure o espaço de trabalho 3 como bloco com o comprimento de
aresta de 400 mm e 200 mm.
2. Bloqueie a entrada neste espaço de trabalho e transmita um sinal. Use
para isto a saída 16.
3. Teste este espaço de trabalho e compare as informações com as exibi-
ções no painel de operação.
4. Para sair deste espaço de trabalho, curto-circuite o mesmo com o item de
menu previsto para isto.
Fig. 3-23
.............................................................
2. Quais possibilidades de ajuste para o MODO você tem na configuração do
espaço de trabalho?
.............................................................
.............................................................
3. A qual sistema de coordenadas se refere a ORIGEM na configuração de
espaço de trabalho cartesiana?
.............................................................
.............................................................
4. Quais vantagens oferece um bloqueio de robô, que foi realizado através de
acoplamento direto de E/S e tempo de monitoramento?
.............................................................
.............................................................
5. Quais desvantagens ocorrem no caso acima (pergunta 4), quando é traba-
lhado sem tempo de monitoramento?
.............................................................
.............................................................
Ícone Tipo
Mensagem de confirmação
Mensagem de estado
Mensagem de informação
Mensagem de espera
Princípio da
programação de
mensagens
definida pelo
usuário:
Variáveis/Estru-
turas
handle == -1: A mensagem não pôde ser emitida (p. ex. porque
o buffer de mensagens está lotado).
handle > 0: A mensagem foi emitida com sucesso e é adminis-
trada com o respectivo número de identificação no buffer de men-
sagens.
Um diálogo sempre pode ser emitido somente depois que não houver
mais nenhum outro diálogo.
A função simplesmente emite o diálogo. Ela não aguarda até que ele
tenha sido respondido.
Verificação de um diálogo
Com a função Exists_KrlDlg( ) pode ser verificado, se um determi-
nado diálogo ainda existe. Portanto, é verificado se este diálogo ainda se
encontra no buffer de mensagens.
Funções build-in para a verificação de uma mensagem
DEFFCT BOOL Exists_KrlDlg(INT nHandle:IN, INT Answer:OUT)
DECL INT nHandle, answer
A função não aguarda até que o diálogo esteja respondido, mas sim-
plesmente faz uma busca no buffer pelo diálogo com este handle.
Portanto, a consulta no programa KRL deve ocorrer ciclicamente, até
que o diálogo tenha sido respondido ou excluído de outra forma.
Descrição de uma
mensagem de
informação
definida pelo
usuário
Função de uma Mensagens de informação são apropriadas, para exibir informações ge-
mensagem de rais.
informação Uma mensagem de informação somente é criada. Eventualmente verifi-
definida pelo ca-se, se a mensagem chegou com sucesso.
usuário Uma vez que as mensagens de informação não são administradas, po-
dem ser criadas aprox. 3 milhões de mensagens.
Objetivo do Após a conclusão com êxito deste exercício, você está em condições de exe-
exercício cutar as seguintes atividades:
Programar mensagens de informação próprias
Emitir parâmetros quaisquer em mensagens
Requisitos Os seguintes requisitos são necessários para realizar o exercício com êxito.
Conhecimentos da linguagem de programação KRL
Conhecimentos teóricos sobre a programação de mensagens
.............................................................
.............................................................
2. Qual parte integrante da estrutura de mensagens é responsável pelo "dis-
paro" do texto de mensagem?
.............................................................
.............................................................
Descrição de uma
mensagem de
estado definida
pelo usuário
Objetivo do Após a conclusão com êxito deste exercício, você está em condições de exe-
exercício cutar as seguintes atividades:
programar mensagens de estado próprias
emitir parâmetros quaisquer em mensagens
Requisitos Os seguintes requisitos são necessários para realizar o exercício com êxito:
Conhecimentos da linguagem de programação KRL
Conhecimentos teóricos sobre a programação de mensagens
Descrição de uma
mensagem de
confirmação
definida pelo
usuário
;Loop para parar até que esta mensagem tenha sido excluída
REPEAT
present=Exists_KrlMsg(handle)
UNTIL NOT(present)
Objetivo do Após a conclusão com êxito deste exercício, você está em condições de exe-
exercício cutar as seguintes atividades:
Programar mensagens de confirmação próprias
Emitir parâmetros quaisquer em mensagens
Requisitos Os seguintes requisitos são necessários para realizar o exercício com êxito:
Conhecimentos da linguagem de programação KRL
Conhecimentos teóricos sobre a programação de mensagens
Descrição de uma
mensagem de
espera definida
pelo usuário
Função de uma Mensagens de espera são apropriadas para aguardar um estado e exibir
mensagem de nisto o símbolo de espera.
espera definida São administradas, no máximo, 100 mensagens no buffer de mensagens.
pelo usuário o programa, por exemplo, é retido até que o seja obtido o estado pelo qual
está se esperando.
A mensagem de espera é excluída novamente através da função
Clear_KrlMsg( ).
Objetivo do Após a conclusão com êxito deste exercício, você está em condições de exe-
exercício cutar as seguintes atividades:
Programar mensagens de espera próprias
Emitir parâmetros quaisquer em mensagens
Requisitos Os seguintes requisitos são necessários para realizar o exercício com êxito:
Conhecimentos da linguagem de programação KRL
Conhecimentos teóricos sobre a programação de mensagens
Definição de 1. Crie uma mensagem de espera com o texto "Esperando por entrada do
tarefas operador" e ative a mesma através da entrada 12.
2. Apague a mensagem de espera, resetando a entrada 12.
3. Teste o seu programa conforme a prescrição.
O que você deveria saber agora:
1. Qual é a diferença entre uma mensagem "STATE" e uma mensagem "WAI-
TING"?
.............................................................
.............................................................
Descrição de um
diálogo definido
por usuário
Um diálogo sempre pode ser emitido somente depois que não houver
mais nenhum outro diálogo.
Os diálogos podem ser excluídos através de uma softkey, cuja inscrição
é definida pelo programador.
Podem ser definidas até 7 softkeys.
Função de um Diálogos são apropriados para exibir perguntas, que o usuário precisar
diálogo definido responder.
pelo usuário Com a função Set_KrlDlg( ) é emitido um diálogo.
A função simplesmente emite o diálogo.
Ela não aguarda até que ele tenha sido respondido.
Com a função Exists_KrlDlg( ) pode ser verificado, se um determi-
nado diálogo ainda existe.
Também esta função não aguarda, até que o diálogo esteja respondido,
mas simplesmente faz uma busca no buffer pelo diálogo com este handle.
Portanto, a consulta no programa KRL deve ocorrer ciclicamente, até que
o diálogo tenha sido respondido ou excluído de outra forma.
A continuidade da execução do programa pode ser tornada dependente
de qual softkey o usuário seleciona.
Objetivo do Após a conclusão com êxito deste exercício, você está em condições de exe-
exercício cutar as seguintes atividades:
programar mensagens próprias de informação, status e confirmação
programar consultas próprias de diálogo
Emitir parâmetros quaisquer em mensagens
Requisitos Os seguintes requisitos são necessários para realizar o exercício com êxito:
Conhecimentos da linguagem de programação KRL
Conhecimentos teóricos sobre a programação de mensagens
5 Programação de Interrupt
Descrição de
rotinas de cance-
lamento
Global
Um Interrupt é reconhecido apenas a partir do nível no qual está de-
clarado.
Prio: Prioridade
Estão disponíveis as prioridades 1, 2, 4 - 39 e 81 - 128.
As prioridades 3 e 40 - 80 estão reservadas para o uso pelo sistema.
Eventualmente o Interrupt 19 está pré-ocupado para o teste dos
freios.
Se vários Interrupts ocorrerem simultaneamente, é processado pri-
meiro o Interrupt com a máxima prioridade, depois os Interrupts com
menor prioridade. (1 = máxima prioridade)
Programa Interrupt
Nome do programa Interrupt, que deve ser processado.
Este subprograma é chamado de programa Interrupt.
As variáveis de tempo de execução não podem ser entregues como
parâmetro ao programa Interrupt
São permitidas variáveis, que estão declaradas em uma lista de da-
dos.
Exemplo: Declaração de um Interrupt
INTERRUPT DECL 23 WHEN $IN[12]==TRUE DO INTERRUPT_PROG(20,VALUE)
Descrição ligar/ Após uma declaração de Interrupt, este deve ser ativado em seguida.
desligar/ Possibilidades através do comando INTERRUPT ...
bloquear/liberar
Ativa um Interrupt.
Interrupt
Desativa um Interrupt.
Bloqueia um Interrupt.
Libera um Interrupt.
Sintaxe
INTERRUPT Ação <Número>
Ação
ON: Ativa um Interrupt.
OFF: Desativa um Interrupt.
DISABLE: Bloqueia um Interrupt ativado.
ENABLE: Libera um Interrupt bloqueado.
Número
Número (=prioridade) do Interrupt, ao qual a ação deve se referir.
O número pode ser suprimido.
Neste caso ON ou OFF referem-se a todos os Interrupts declarados,
DISABLE ou ENABLE a todos os Interrupts ativos.
Interrupt - ativar e desativar
INTERRUPT DECL 20 WHEN $IN[22]==TRUE DO SAVE_POS( )
...
INTERRUPT ON 20
;O Interrupt é detectado e executado (flanco positivo)
...
INTERRUPT OFF 20 ; Interrupt está desligado
O robô é parado com BRAKE e deve executar uma nova trajetória após o
término da rotina de Interrupt. Isto pode ser realizado com o comando RE-
SUME.
O robô é parado com BRAKE e deslocado na rotina de Interrupt. Após o
término da rotina de Interrupt, a trajetória atual não deve mais ser conti-
nuada e deve ser realizado um novo planejamento de trajetória. Isto tam-
bém pode ser realizado com o comando RESUME.
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
END
_________________________________________________
DEF ERROR()
END
DEF MY_PROG( )
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
...
...
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
PTP HOME Vel=100% DEFAULT
PTP P1 Vel=100% PDAT1
PTP P2 Vel=100% PDAT2
PTP HOME Vel=100% DEFAULT
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
$OUT[20]=FALSE
$OUT[21]=TRUE
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
...
...
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
END
DEF MY_PROG( )
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
PTP HOME Vel=100% DEFAULT
PTP P1 Vel=100% PDAT1
PTP P2 Vel=100% PDAT2
PTP HOME Vel=100% DEFAULT
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
BRAKE
$OUT[20]=FALSE
$OUT[21]=TRUE
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
...
END
_________________________________________________
DEF ERROR()
...
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
SEARCH()
END
_________________________________________________
DEF SEARCH()
INTERRUPT ON 25
PTP HOME Vel=100% DEFAULT
PTP P1 Vel=100% PDAT1
PTP P2 Vel=100% PDAT2
PTP HOME Vel=100% DEFAULT
WAIT SEC 0 ; Parar o ponteiro de avanço
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
...
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
SEARCH()
END
_________________________________________________
DEF SEARCH()
INTERRUPT ON 25
PTP HOME Vel=100% DEFAULT
PTP P1 Vel=100% PDAT1
PTP P2 Vel=100% PDAT2
PTP HOME Vel=100% DEFAULT
WAIT SEC 0 ; Parar o ponteiro de avanço
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
BRAKE
PTP $POS_INT
RESUME
END
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Declaração de um Interrupt
Criação de um subprograma Interrupt
Avaliação e edição de Interrupts na execução do programa
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
Conhecimentos da linguagem de programação KRL
conhecimentos teóricos sobre a programação de Interrupts
............................................................
2. Qual é a diferença entre INTERRUPT OFF 99 e INTERRUPT DISABLE 99?
............................................................
............................................................
............................................................
............................................................
3. Quando é acessado o subprograma Interrupt?
............................................................
............................................................
4. O que faz o comando INTERRUPT OFF no início de um subprograma In-
terrupt?
............................................................
............................................................
5. Qual área de prioridade para o Interrupt não está liberada?
............................................................
............................................................
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Declaração de um Interrupt
Criação de um subprograma Interrupt
Avaliação e edição de Interrupts na execução do programa
Frear o movimento do robô com comando KRL
Frear e cancelar o movimento do robô com comandos KRL
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
Conhecimentos da linguagem de programação KRL
conhecimentos teóricos sobre a programação de Interrupts
conhecimentos teóricos sobre os comandos KRL para frear e cancelar
movimentos do robô e o seu uso correto
RESUME
END
3. Quando é acionado um Interrupt?
............................................................
............................................................
O que é uma Após a criação de um programa de execução e o seu teste no uso prático,
estratégia de sempre se faz adicionalmente a pergunta de como o programa reage a falhas.
retrocesso? Naturalmente, o desejado em caso de uma falha é a reação automática do
sistema.
Para isto se usam estratégias de retrocesso.
Por uma estratégia de retrocesso entendem-se movimentos de retrocesso
que o robô executa em caso de uma falha para, por exemplo, poder voltar au-
tomaticamente à posição inicial, independente de onde ele se encontra no
momento.
Estes movimentos de retrocesso devem ser livremente programados pelo
programador.
Onde são As estratégias de retrocesso são usadas lá onde se deseja atingir uma auto-
aplicadas estra- mação plena de uma célula de produção (também em caso de uma falha).
tégias de retro- Uma estratégia de retrocesso corretamente programada oferece ainda ao
cesso? operador somente a possibilidade de decidir, o que deve ocorrer na continui-
dade da execução.
Assim é possível contornar um deslocamento manual para sair de uma situa-
ção de risco.
Fig. 6-1
Fig. 6-2
Fig. 6-3
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Programação de movimentos de retrocesso automáticos
Inclusão de mensagens em um processo de trabalho
Identificação de falhas sob utilização de Interrupts
finalização do movimento do robô em função do processo
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
Conhecimentos da linguagem de programação KRL
Fig. 6-4
.............................................................
.............................................................
2. Como é o comando KRL para a finalização imediata de um subprograma e
de um subprograma Interrupt?
.............................................................
.............................................................
3. Qual é o sentido de um deslocamento SAK?
.............................................................
.............................................................
4. Com qual variável você pode influenciar o override de programa?
.............................................................
.............................................................
5. O que pode ser comutado adicionalmente com o comando trigger em com-
paração com o formulário Inline SYNOUT?
.............................................................
.............................................................
Descrição
value = $ANIN[2]
...
value = sensor
...
Elemento Descrição
Valor Tipo: REAL
Em Valor é gravado o resultado da leitura cíclica. Valor
pode ser uma variável ou um nome do sinal para uma
saída.
Fator Tipo: REAL
Fator qualquer. Pode ser uma constante, uma variável ou
um nome do sinal.
Nome do Tipo: REAL
sinal
Indica a entrada analógica. Nome do sinal deve ter sido
declarado anteriormente com SINAL. Não é possível indi-
car, em vez do nome do sinal, diretamente a entrada ana-
lógica $ANIN[x].
Os valores de uma entrada analógica $ANIN[x] movem-se
entre +1.0 e -1.0 e representam uma tensão de +10 V até
-10 V.
Offset Tipo: REAL
Pode ser uma constante, uma variável ou um nome do
sinal.
DEF myprog( )
SIGNAL sensor $ANIN[3]
...
ANIN ON value = 1.99*sensor-0.75
...
ANIN OFF sensor
Exemplo 2
DEFDAT myprog
DECL REAL value = 0
DECL REAL corr = 0.25
DECL REAL offset = 0.45
ENDDAT
DEF myprog( )
SIGNAL sensor $ANIN[7]
...
ANIN ON value = corr*sensor-offset
...
ANIN OFF sensor
Procedimento na
O pré-requisito para o uso dos sinais analógicos é uma
programação projeção correta do sistema de bus com os sinais analó-
com entradas gicos conectados.
analógicas
Programação de ANIN ON /OFF
1. Seleção da entrada analógica correta
2. Realização do acordo de sinais
3. Declaração das variáveis necessárias em uma lista de dados
4. Ligar: Programação da instrução ANIN ON
Descrição
Função
Podem ser utilizadas no máximo 8 saídas analógicas
(estáticas e dinâmicas) ao mesmo tempo. ANOUT ativa
uma parada de avanço.
Pos. Descrição
1 Número da saída analógica
CHANNEL_1 … CHANNEL_32
2 Fator para a tensão
0 … 1 (Escalonamento: 0.01)
Elemento Descrição
Nome do Tipo: REAL
sinal
Indica a saída analógica. Nome do sinal deve ter sido decla-
rado anteriormente com SINAL . Não é possível indicar,
em vez do nome do sinal, diretamente a saída analógica
$ANOUT[x].
Os valores de uma saída analógica $ANOUT[x] movem-se
entre +1.0 e -1.0 e representam uma tensão de +10 V até
-10 V.
Fator Tipo: REAL
Fator qualquer. Pode ser uma constante, uma variável ou
um nome do sinal.
Elemento Tipo: REAL
regulador
Pode ser uma constante, uma variável ou um nome do
sinal.
Offset Tipo: REAL
Pode ser uma constante, uma variável ou um nome do
sinal.
Horário Tipo: REAL
Unidade: Segundos. Com a palavra-chave DELAY e uma
indicação de tempo positiva ou negativa o sinal de saída
pode ser emitido com retardo (+) ou antecipado (-).
Valor mínimo, Tipo: REAL
Valor máximo
Tensão mínima e/ou máxima, que deve estar aplicada na
saída. Não fica abaixo nem é ultrapassada, mesmo que os
valores calculados estejam abaixo ou acima.
Valores admissíveis: -1.0 até +1.0 (corresponde a -10 V
até +10 V).
Pode ser uma constante, uma variável, um componente
estrutural ou um elemento de campo. Em todo o caso, o
valor mínimo deve ser menor que o valor máximo. A
sequência das palavras-chave MÍNIMO e MÁXIMO deve
ser mantida.
Exemplo 2
DEFDAT myprog
DECL REAL corr = 1.45
DECL REAL offset = 0.25
ENDDAT
DEF myprog( )
SIGNAL motor $ANOUT[7]
...
ANOUT ON motor = corr*$VEL_ACT-offset
...
ANOUT OFF motor
Procedimento na
O pré-requisito para o uso dos sinais analógicos é uma
programação projeção correta do sistema de bus com os sinais analó-
com entradas gicos conectados.
analógicas
Programação de ANOUT ON /OFF
1. Seleção da saída analógica correta
2. Realização do acordo de sinais
3. Declaração das variáveis necessárias em uma lista de dados
4. Ligar: Programação da instrução ANOUT ON
5. Teste para verificar se, no máximo, 4 saídas dinâmicas estão ativas
6. Desligar: Programação da instrução ANOUT OFF
Exemplo:
DEF myprog( )
SIGNAL motor $ANOUT[3]
...
ANOUT ON motor = 3.375*$VEL_ACT MINIMUM=0.30 MAXIMUM=0.97
...
ANOUT OFF motor
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Uso de acordos de sinais em entradas/saídas
inclusão estática ou dinâmica de entradas analógicas em processos de
trabalho
inclusão estática ou dinâmica de saídas analógicas em processos de tra-
balho
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
conhecimentos teóricos de acordos de sinais
conhecimentos teóricos sobre a inclusão de entradas/saídas analógicas
Definição de Configure o seu sistema de tal forma, que você possa alterar o override de
funções programa através da entrada analógica. Adicionalmente a velocidade de robô
efetivamente percorrida deve controlar uma saída analógica.
Tarefa parcial 1
1. Crie um programa com o nome Velocidade.
2. Use a entrada analógica 1, que é controlada pelo potenciômetro.
3. Adapte o override de programa no Interpretador Submit.
4. Teste o seu programa conforme a prescrição.
Tarefa parcial 2
1. Expanda o seu programa com movimentos de trajetória (velocidade: até
2 m/s), que estão em um loop sem fim.
2. Use a saída analógica 1, da indicação do painel.
3. Use a variável de sistema $VEL_ACT para a velocidade atualmente exe-
cutada.
4. Teste o seu programa conforme a prescrição.
5. Adicionalmente: Se a velocidade for menor que 0,2 m/s a saída deve mes-
mo assim ser sujeitada com 1,0 V e se a velocidade foi maior que 1,8 m/
s a saída não deve emitir mais que 9,0 V.
............................................................
............................................................
Descrição
Entrada Função
Valor negativo Paridade ímpar
0 Sem avaliação
Valor positivo Paridade par
Fig. 8-7
Pré-requisitos
$USER_SAF - Porta de proteção fechada
$ALARM_STOP - Não há parada de emergência
$I_O_ACTCONF - Automático externo está ativo
$MOVE_ENABLE - Liberação de movimento existente
$DRIVER_OFF - Acionamentos desligados não está ativado
Ligar os acionamentos
$DRIVES_ON - Ligar acionamentos por pelo menos 20ms
Acionamentos preparados
$PERI_RDY - Tão logo chegue o feedback para acionamentos, é cance-
lado o sinal $DRIVES_ON
Confirmar mensagens
Fig. 8-11
Pré-requisitos
$STOPMESS - Há uma mensagem de parada
Confirmar mensagem
$CONF_MESS - Confirmar mensagem
Mensagens confirmáveis estão excluídas
$STOPMESS - A mensagem de parada não existe mais, $CONF_MESS
agora pode ser cancelado
Iniciar programa (CELL.SRC) externamente
Fig. 8-16
Pré-requisitos
$PERI_RDY - Acionamentos estão preparados
$IN_HOME - Robô está na posição HOME
sem $STOPMESS - Não há mensagem de parada
Partida externa
$EXT_START- Ligar partida externa (flanco positivo)
Programa CELL em execução
$PRO_ACT - Informa programa CELL em execução
$ON_PATH - Tão logo o robô se encontre em sua trajetória programa-
da, o sinal $EXT_START é cancelado
Processar transferência de número de programa e programa aplicativo
Fig. 8-23
Pré-requisitos
$PERI_RDY - Acionamentos estão preparados
$PRO_ACT - Programa CELL em execução
$ON_PATH - Robô sobre a trajetória
$IN_HOME - Robô está na posição HOME, não necessário na reini-
cialização
PGNO_REQ - Há uma consulta de número de programa
Transmissão de número de programa e confirmação
Entrega de número de programa
Pos. Descrição
1 Número
2 Nome de texto descritivo da entrada/saída
3 Tipo
Verde: Entrada/Saída
Amarelo: Variável ou variável de sistema ($...)
4 Nome do sinal ou da variável
Pos. Descrição
5 Número de entrada/saída ou número de canal
6 As saídas são divididas nas guias de acordo com o tema.
Objetivo do Após a conclusão com êxito deste exercício, você estará em condições de
exercício executar as seguintes atividades:
Inclusão objetiva de um programa de robô no modo Automático externo
Adaptação do programa "Cell"
Configuração da interface Automático externo
Conhecer a execução do modo Automático externo
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
Conhecimentos sobre o processamento do programa "Cell"
Conhecimentos sobre a configuração da interface Automático externo
conhecimentos teóricos sobre o fluxo de técnica de sinais no Automático
externo
Descrição
Pos. Descrição
1 O botão mostra o estado de um movimento.
vermelho: O movimento atual não é monitorado.
verde: O movimento atual é monitorado.
laranja: Foi pressionada uma tecla para o ajuste de valores
à esquerda e à direita do valor numérico para torque ou
momento de impulso. A janela pára no movimento e o off-
set pode ser alterado. A alteração pode ser assumida com
Salvar.
selecionado: Normalmente um programa deve ser execu-
tado 2 a 3 vezes, até que a unidade de comando do robô
tenha determinado uma faixa de tolerância útil na prática.
Enquanto a unidade de comando do robô se encontrar
nesta fase de aprendizado, o botão é exibido como sele-
cionado.
2 Número das variáveis TMx
Para cada conjunto de movimentos no qual o parâmetro detec-
ção de colisão está em TRUE, a unidade de comando do robô
cria uma variável TMx. TMx contém todos os valores para a faixa
de tolerância deste conjunto de movimentos. Se dois conjuntos
de movimentos se referirem ao mesmo ponto Px, a unidade de
comando do robô cria 2 variáveis TMx.
3 Caminho e nome do programa selecionado.
4 Nome do ponto
Pos. Descrição
5 Este campo somente está ativo no modo "Automático externo".
Caso contrário, ele está cinza.
MonOn: A detecção de colisão foi ativada pelo PLC.
Se a detecção de colisão é ativada pelo PLC, o PLC transmite o
sinal de entrada sTQM_SPSACTIVE à unidade de comando do
robô. A unidade de comando do robô responde com o sinal de
saída sTQM_SPSSTATUS. Os sinais estão definidos no arquivo
$config.dat.
Nota: No modo Automático externo a detecção de colisão
somente está ativa se, tanto o campo PLC como também o
campo KCP, exibirem o registro MonOn.
6 MonOn: A detecção de colisão foi ativada a partir do KCP.
Nota: No modo Automático externo a detecção de colisão
somente está ativa se, tanto o campo PLC como também o
campo KCP, exibirem o registro MonOn.
7 Offset para o torque. Quanto menor for o offset, maior será a sen-
sibilidade de reação da detecção de colisão. Valor padrão: 20.
A janela pára no movimento e o offset pode ser alterado. A altera-
ção pode ser assumida com Salvar.
N.A.: Para este movimento a opção Detecção de colisão no for-
mulário Inline está em FALSE.
8 Offset para o momento de impulso. Quanto menor for o offset,
maior será a sensibilidade de reação da detecção de colisão.
Valor padrão: 30.
A janela pára no movimento e o offset pode ser alterado. A altera-
ção pode ser assumida com Salvar.
N.A.: Para este movimento a opção Detecção de colisão no for-
mulário Inline está em FALSE.
Botão Descrição
Ativar Ativa a detecção de colisão.
Este botão não é exibido, se o torque ou momen-
to de impulso foi alterado, mas as alterações ain-
da não foram salvas.
Desativar Desativa a detecção de colisão.
Este botão não é exibido, se o torque ou momen-
to de impulso foi alterado, mas as alterações ain-
da não foram salvas.
Salvar Assume alterações no torque e/ou momento de
impulso.
Cancelar Rejeita alterações no torque e/ou momento de
impulso.
Procedimento
Alternativamente pode-se excluir as linhas com o monitoramento de
torque e em vez disso usar a detecção de colisão nestes programas.
A detecção de colisão não pode ser usada junto com o monitoramen-
to de torque em um programa.
A adaptação de aceleração está ligada, quando a variável de sistema
$ADAP_ACC for diferente de #NONE. (Este é o ajuste padrão.) A variável
de sistema se encontra no arquivo C:\KRC\Roboter\KRC\R1\MaDa\$ROB-
COR.DAT.
Pos. Descrição
1 Selecionar a ferramenta.
Quando True no campo TCP externo: selecionar a peça.
Faixa de valores: [1] … [16]
2 Selecionar a base.
Quando True no campo TCP externo: selecionar a ferramenta fi-
xa.
Faixa de valores: [1] … [32]
3 Modo de interpolação
False: A ferramenta está montada no flange de monta-
gem.
True: A ferramenta é uma ferramenta fixa.
4 True: para este movimento a unidade de comando do robô
determina os momentos do eixo. Eles são necessários
para a detecção de colisão.
False: para este movimento a unidade de comando do
robô não determina nenhum momento do eixo. Portanto,
uma detecção de colisão para este movimento não é pos-
sível.
3. Fechar o movimento
Determinar a faixa de tolerância e ativar a detecção de colisão
1. No menu principal, selecionar Configuração > Extras > Detecção de co-
lisão.
(>>> Fig. 9-2 )
2. No campo KCP deve constar o registro MonOff. Se este não for o caso,
pressionar Desativar.
3. Iniciar o programa e deixá-lo rodar várias vezes. Após 2 a 3 execuções a
unidade de comando do robô determinou uma faixa de tolerância útil na
prática.
4. Pressionar Ativar. Na janela Detecção de colisão consta agora no cam-
po KCP o registro MonOn.
Salvar a configuração com Fechar.
Índice
Símbolos Monitoramento do espaço de trabalho 27
$ADAP_ACC 90 Monitoramento do espaço de trabalho, exercício
27
A
Automático externo 77 N
Nomes de dados 9
C Número da mensagem 30
Comentário 5
Configuração 77 P
Configurar Automático externo, exercício 85 PAP 9
Pasta 7
D Ponto raiz da mão 21
Declarar Interrupt, exercício 60 Prioridade 52
Detecção de colisão 87, 91 Programação estruturada 5
Detecção de colisão (item de menu) 91, 92 Programar diálogo, exercício 50
Detecção de colisão, Automático externo 90 Programar mensagem de estado, exercício 40
Detecção de colisão, variável 89 Programar mensagem de informação, exercício
Diálogo 47 37
Programar mensagens de confirmação,
E exercício 43
E/Ss analógicas, exercício 74 Programar mensagens de espera, exercício 46
EKrlMsgType 30
Emitente 30 S
Entradas analógicas 69 Saídas analógicas 71
Espaços de trabalho 17 Sinais analógicos 69
Espaços de trabalho, modo 20 Submit 13
Estratégia de retrocesso, exercício 66 Subprogramas 8
Estratégias de retrocesso 65
Exemplo PAP 11 T
Tensão 72
F Texto de mensagem 30
Fluxograma do programa, PAP 9 tipo de mensagem 30
tm_useraction 87
G TMx 89
Global 52 Torque 88
I Z
Interpretador Submit 13 Ícones PAP 10
Interrupt 51
Interrupt Cancelar movimentos de deslocamen-
to, exercício 62
K
KrlMsg_T 30
KrlMsgDlgSK_T 32
KrlMsgOpt_T 32
M
Mensagem de confirmação 29, 42
Mensagem de diálogo 29
Mensagem de espera 29, 45
Mensagem de estado 29, 39
Mensagem de informação 29, 36
Mensagens 29
Mensagens de usuário 29
Método de programação, exemplo PAP 11
Modo de interpolação 91
Momento de impulso 88