Buscar

Treinamento do Robô Kuka Nível 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 147 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 147 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 147 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Training
Programação do robô 2
KUKA System Software 8
Documento de treinamento
KUKA Roboter GmbH
Edição: 17.10.2012
Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
 
Programação do robô 2
2 / 147 Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
© 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
Publicações: Pub COLLEGE P2KSS8 Roboterprogrammierung 2 (PDF-COL) pt
Estrutura do livro: P2KSS8 Roboterprogrammierung 2 V3.1
Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
Índice
Índice
1 Programação estruturada ........................................................................... 5
1.1 Visão geral ................................................................................................................. 5
1.2 Objetivo de um método de programação padronizado .............................................. 5
1.3 Recursos auxiliares para a criação de programas de robô estruturados .................. 5
1.4 Como é elaborado um fluxograma do programa ....................................................... 10
1.5 Exercício: Criar um processo do programa ............................................................... 12
2 Introdução no nível de perito ..................................................................... 15
2.1 Visão geral ................................................................................................................. 15
2.2 Usar nível de perito .................................................................................................... 15
2.3 Exercício: Medição de ferramentas e base ................................................................ 17
2.4 Exercício: Navigator perito loop sem fim ................................................................... 19
3 Variáveis e acordos ..................................................................................... 21
3.1 Visão geral ................................................................................................................. 21
3.2 Manutenção de dados no KRL .................................................................................. 21
3.3 Trabalhar com tipos de dados simples ...................................................................... 24
3.3.1 Declaração de variáveis ....................................................................................... 24
3.3.2 Inicialização de variáveis com simples tipos de dados ......................................... 27
3.3.3 Manipulação de valores de variáveis de tipos de dados simples com KRL ......... 28
3.3.4 Exercício: Tipos de dados simples ....................................................................... 32
3.4 Arrays / Campos com KRL ........................................................................................ 33
3.5 Exercício: Campos com tipos de dados simples e loop de contagem ....................... 36
3.6 Estruturas com KRL ................................................................................................... 38
3.7 Exercício: criar estruturas com KRL .......................................................................... 40
3.8 O tipo de dados de enumeração ENUM .................................................................... 42
3.9 Exercício: Criar tipos de enumeração com KRL ........................................................ 43
4 Subprogramas e funções .......................................................................... 45
4.1 Visão geral ................................................................................................................. 45
4.2 Trabalhar com subprogramas locais .......................................................................... 45
4.3 Trabalhar com subprogramas globais ....................................................................... 47
4.4 Transmitir parâmetros a subprogramas ..................................................................... 49
4.5 Exercício: Subprogramas com transferência de parâmetros ..................................... 52
4.6 Programação de funções ........................................................................................... 54
4.7 Trabalhar com funções padrão KUKA ....................................................................... 56
5 Programação de movimento com KRL ..................................................... 59
5.1 Visão geral ................................................................................................................. 59
5.2 Programar movimentos com KRL .............................................................................. 59
5.3 Programar movimentos relativos através do KRL ..................................................... 67
5.4 Calcular ou manipular posições de robô .................................................................... 74
5.5 Modificar exatamente bits de Status e Turn .............................................................. 75
5.6 Exercício: Paletizar e despaletizar ............................................................................. 78
6 Trabalho com variáveis de sistema ........................................................... 83
6.1 Visão geral ................................................................................................................. 83
6.2 Medição do tempo de ciclo com temporizador .......................................................... 83
3 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
4 / 147
Programação do robô 2
6.3 Exercício: Medição de ciclo e otimização .................................................................. 84
7 Aplicação de Controles de execução de programa ................................. 87
7.1 Visão geral ................................................................................................................. 87
7.2 Consultar ou programar ramificações ....................................................................... 87
7.3 Programar distribuidor ............................................................................................... 89
7.4 Programar comando de salto .................................................................................... 92
7.5 Programar loops ........................................................................................................ 93
7.5.1 Programar loop sem-fim ....................................................................................... 93
7.5.2 Programar loop de contagem ............................................................................... 94
7.5.3 Programar o loop de rejeição ............................................................................... 96
7.5.4 Programar loop não rejeitante .............................................................................. 98
7.6 Programar funções de espera ................................................................................... 99
7.6.1 Função de espera dependente do tempo ............................................................ 99
7.6.2 Função de espera dependente do sinal ...............................................................100
7.7 Exercício: Técnicas de loop ....................................................................................... 102
8 Funções de comutação KRL ...................................................................... 105
8.1 Visão geral ................................................................................................................. 105
8.2 Programação das funções de comutação simples .................................................... 105
8.3 Programação de funções de comutação referentes à trajetória TRIGGER WHEN DISTANCE 
109
8.4 Programação de funções referentes à trajetória TRIGGER WHEN PATH .................. 112
8.5 Exercício: Funções de controle de trajetória em KRL ............................................... 115
9 Programação com WorkVisual ................................................................... 117
9.1 Visão geral ................................................................................................................. 117
9.2 Gerenciar projeto com o WorkVisual ......................................................................... 117
9.2.1 Abrir projeto com WorkVisual ............................................................................... 117
9.2.2 Comparar projetos com WorkVisual ..................................................................... 121
9.2.3 Transmitir o projeto na unidade de comando do robô (instalar) ........................... 126
9.2.4 Ativar o projeto na unidade de comando do robô ................................................. 130
9.3 Processar programas KRL com WorkVisual ............................................................. 133
9.3.1 Importar manuseio de arquivos ............................................................................ 133
9.3.2 Manuseio com o editor KRL ................................................................................. 139
Índice ............................................................................................................ 145
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
1 Programação estruturada
1 Programação estruturada
1.1 Visão geral
Nesta unidade de aprendizagem são repassados os seguintes conteú-
dos:
 metodologia de programação padronizada
 Recursos auxiliares para a criação de programas de robô estruturados
 Fluxograma do programa
1.2 Objetivo de um método de programação padronizado
Objetivo do 
método de 
programação 
padronizado
Um método de programação padronizado serve para:
 dominar mais facilmente os problemas complexos com uma estrutura ri-
gorosamente desmembrada
 representar o procedimento básico de forma compreensível (sem ter co-
nhecimentos mais profundos de programação)
 aumentar a eficiência na manutenção, alteração e ampliação de progra-
mas
O planejamento antecipado do programa leva ao seguinte:
 definições de tarefas complexas podem ser divididas em tarefas simples
 o tempo total aplicado na programação é reduzido
 permite-se a intercambiabilidade dos componentes com o mesmo desem-
penho
 se podem desenvolver componentes separadamente
As 6 exigências para um programa do robô:
1. Eficiência
2. Ausência de erros
3. Compreensão
4. Facilidade de manutenção
5. Visibilidade
6. Economia
1.3 Recursos auxiliares para a criação de programas de robô estruturados
Qual é o sentido 
de um comen-
tário?
Comentários são complementos/notas dentro das linguagens de programa-
ção. Todas as linguagens de programação consistem de instruções para o 
computador (código) e notas para os processadores de textos (comentários). 
Se um texto fonte for processado (compilado, interpretado, etc.), os comentá-
rios são ignorados pelo software de processamento e não têm influência so-
bre o resultado.
Na unidade de comando KUKA são usados comentários de linhas, ou seja, os 
comentários terminam automaticamente no final da linha.
Comentários por si só não podem tornar um programa legível, mas podem au-
mentar consideravelmente a legibilidade de programas bem estruturados. 
Com os comentários, o programador tem a possibilidade de incluir notas, ex-
plicações no programa, sem que estas sejam registradas pela unidade de co-
mando como sintaxe.
O programador tem a responsabilidade de garantir que o conteúdo dos co-
mentários corresponda ao estado atual das orientações de programação. Em 
5 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
6 / 147
Programação do robô 2
caso de alterações de programa também os comentários deverão ser verifi-
cados e, se necessário, adaptados.
O conteúdo de um comentário e, portanto, também a sua utilidade, pode ser 
livremente selecionado pelo processador e não tem sintaxe obrigatória. Ge-
ralmente, comentários são registrados em linguagem "humana", na lingua 
materna do autor ou em um idioma comum. 
 Notas sobre o conteúdo ou a função de um programa
 Conteúdo ou utilidade são livremente selecionáveis
 Melhoram a legibilidade de um programa
 Contribuem para a estruturação de um programa
 A responsabilidade pela atualidade é do programador
 A KUKA usa comentários de linhas
 Os comentários não são registrados pela unidade de comando como sin-
taxe
Onde e quando 
são usados 
comentários?
Informações sobre todo o texto fonte: 
No início de um texto fonte o autor pode incluir comentários prévios, sob os 
quais seguem a indicação do autor, da licença, da data de criação, do ende-
reço de contato para perguntas, uma lista de outros arquivos necessários, etc. 
Classificação do texto fonte: 
Títulos e parágrafos podem ser identificados como tal. Aqui muitas vezes não 
são usados somente recursos linguísticos, mas também recursos gráficos, 
que podem ser convertidos através de textos. 
Explicação de uma única linha: 
Assim, o modo de trabalho ou o significado de uma parte de texto (por exem-
plo, linha de programa) podem ser explicados, para que outros ou o próprio 
autor possam compreender isso mais facilmente mais tarde. 
DEF PICK_CUBE()
;Este programa busca o cubo do magazine
;Autor: Max Mustermann
;Data de criação: 09.08.2011
INI
...
END
DEF PALLETIZE()
;*****************************************************
;*Este programa paletiza 16 cubos sobre a mesa*
;*Autor: Max Mustermann------------------------------*
;*Data de criação: 09.08.2011-----------------------*
;*****************************************************
INI
...
;------------Cálculo das posições----------------
...
;------------Paletização de 16 cubos---------------
...
;----------Despaletização de 16 cubos---------------
...
END
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
1 Programação estruturada
Nota sobre trabalhos a serem executados: 
Comentários podem identificar partes de código insuficientes ou ser variáveis 
para partes de código faltantes.
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.
Qual é o efeito do 
uso de pastas em 
um programa de 
robô?
 em PASTAS podem ser ocultadas partes do programa
 Conteúdos de PASTAS não são visíveis para o usuário
 Conteúdos de PASTAS são processados normalmente na execução do 
programa
 através do uso de pastas (folds) pode ser melhorada a legibilidade de um 
programa 
Que exemplos há 
para o uso de 
pastas?
Na unidade de comando KUKA pastas já são usadas, como padrão, pelo sis-
tema, por exemplo, na exibição de formulários Inline. As pastas simplificam a 
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. 
DEF PICK_CUBE()
INI
PTP HOME Vel=100% DEFAULT
PTP Pre_Pos ; A posição prévia para a coleta é acessada
LIN Grip_Pos ; Posição de coleta do cubo é acessada
...
END
DEF PICK_CUBE()
INI
;Aqui deve ser inserido ainda o cálculo das posições de paletes!
PTP HOME Vel=100% DEFAULT
PTP Pre_Pos ; A posição prévia para a coleta é acessada
LIN Grip_Pos ; Posição de coleta do cubo é acessada
;Aqui falta ainda o fechamento da garra
END
DEF Palletize()
INI
PICK_CUBE()
;CUBE_TO_TABLE()
CUBE_TO_MAGAZINE()
END
7 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
8 / 147
Programação do robô 2
Inicialmente as pastas em geral são exibidas fechadas após a sua criação.
Por que se 
trabalha com a 
técnica de 
subprogramas?
Na programação, os subprogramas são utilizados especialmente para permi-
tir um uso múltiplo de partes de tarefas iguais e com isso, conseguir evitar as 
repetições de códigos. Isso, entre outros, também economiza espaço de me-
mória.
Outro motivo importante para o uso de subprogramas é também a decorrente 
estruturação do programa.
Um subprograma deve resolver uma tarefa parcial completa em si e fácil de 
se descrever.
Os subprogramas hoje devem ser curtos e compreensíveis para facilitar a ma-
nutenção e eliminar erros de programação, uma vez que o dispêndio de tem-
po e a administração interna do computador praticamente não são mais 
importantes para acessar subprogramas em computadores modernos.
 Uso múltiplo possível
DEF Main()
...
INI ; PASTA KUKA fechada
SET_EA ; PASTA criada pelo usuário fechada
PTP HOME Vel=100% DEFAULT ; PASTA KUKA fechada
PTP P1 CONT Vel=100% TOOL[2]:Gripper BASE[2]:Table
...
PTP HOME Vel=100% Default
END
DEF Main()
...
INI ; PASTA KUKA fechada
SET_EA ; PASTA criada pelo usuário aberta
$OUT[12]=TRUE
$OUT[102]=FALSE
PART=0
Position=0
PTP HOME Vel=100% DEFAULT ; PASTA KUKA fechada
...
PTP P1 CONT Vel=100% TOOL[2]:Gripper BASE[2]:Table
PTP HOME Vel=100% Default
END
DEF Main()
...
INI ; PASTA KUKA fechada
SET_EA ; PASTA criada pelo usuário fechada
PTP HOME Vel=100% DEFAULT ; PASTA KUKA aberta
$BWDSSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100)
$H_POS=XHOME
PTP XHOME
...
PTP P1 CONT Vel=100% TOOL[2]:Gripper BASE[2]:Table
PTP HOME Vel=100% Default
END
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
1 Programação estruturada
 Evitar repetições de códigos 
 Economizar espaço de memória
 Componentes podem ser desenvolvidos separadamente
 A troca de componentes da mesma potência é possível a qualquer mo-
mento
 Estruturação do programa
 Tarefa total dividida em tarefas parciais
 Melhor manutenção e correção dos erros de programação 
Aplicação de 
subprogramas
O que provoca o 
recuo de linhas 
de comando?
Para mostrar a relação de componentes de programa, recomendamos fazer 
um recuo da margem em sequências de comandos encadeadas e escrever 
instruções na mesma profundidade de encadeamento diretamente na se-
quência.
O efeito obtido é meramente visual, ele se refere somente ao valor de um pro-
grama como recurso de comunicação de pessoa para pessoa.
O que se obtém 
através de uma 
identificação 
adequada de 
nomes de dados?
Para interpretar corretamente a função de dados e sinais em um programa do 
robô, recomendamos usar termos que fazem sentido na definição de nomes. 
A estes pertencem, p.ex.: 
 Nomes de textos descritivos para sinais de entrada e de saída
 Nomes de ferramentas e base
 Acordos de sinais para sinais de entrada e de saída
 Nomes de pontos
DEF MAIN()
INI
LOOP
 GET_PEN()
 PAINT_PATH()
 PEN_BACK()
 GET_PLATE()
 GLUE_PLATE()
 PLATE_BACK()
 IF $IN[1]== TRUE THEN
 EXIT
 ENDIF
ENDLOOP
END
DEF INSERT()
INT PART, COUNTER
INI
PTP HOME Vel=100% DEFAULT
LOOP
 FOR COUNTER = 1 TO 20
 PART = PART+1
 ;não é possível recuar formulários Inline!!!
PTP P1 CONT Vel=100% TOOL[2]:Gripper BASE[2]:Table
 PTP XP5 ; Movimento com KRL
 ENDFOR
...
ENDLOOP
9 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
10 / 147
Programação do robô 2
1.4 Como é elaborado um fluxograma do programa
O que é um PAP? Um fluxograma do programa (PAP) é um diagrama de execução para um pro-
grama que também é denominado de fluxograma ou plano de estrutura de 
programa. É uma representação gráfica para a realização de um algoritmo em 
um programa, descrevendo a consequência de operações para a solução da 
tarefa. Os ícones para fluxogramas do programa seguem a norma DIN 66001. 
Fluxogramas do programa muitas vezes são usados independente de progra-
mas de computador também para a representação de processos e atividades.
O algoritmo de programa é legível com maior facilidade em comparação com 
uma descrição baseada em código, uma vez que a representação gráfica per-
mite um reconhecimento melhor da estrutura.
Erros de estrutura e de programação são facilmente reconhecidos em uma re-
alização posterior em códigos de programa, uma vez que o uso correto do 
PAP permite uma realização direta em códigos de programação. Ao mesmo 
tempo, com a criação de um PAP, obtém-se uma documentação do programa 
a ser criado.
 Ferramenta para a estruturação da execução de um programa
 A execução de um programa é mais facilmente legível
 Erros estruturais podem ser reconhecidos com maior facilidade
 Documentação simultânea do programa
Ícones PAP Início ou fim de um processo ou programa
Integração de instruções e operações
Ramificação
Instruções gerais no código de programa
Fig. 1-1
Fig. 1-2
Fig. 1-3
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
1 Programação estruturada
Acesso ao subprograma
Instrução de entrada/saída
Exemplo PAP
Como é 
elaborado um 
PAP
Partindo da ideia do usuário o problema é detalhado passo a passo, até que 
os componentes elaborados sejam suficientemente visualizáveis, para poder 
realizá-los no KRL.
As minutas geradas nos passos subsequentes de desenvolvimento se destin-
guem pela crescente profundidade de detalhes.
Fig. 1-4
Fig. 1-5
Fig. 1-6
Fig. 1-7
11 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
12 / 147
Programação do robô 2
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
1.5 Exercício: Criar um processo do programa
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Dividir a tarefa total em tarefas parciais
 Detalhamento de uma classificação geral
 Criação de um PAP (fluxograma do programa)
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 conhecimentos teóricos sobre metodologia de programação
Definição de 
funções
Descrição da instalação
A tarefa do robô consiste da retirada de peças de plástico de uma máquina de 
injeção. As peças são levantadas com aspiradores de vácuo e empilhadas em 
uma esteira de ciclo ao lado da injetora.
Descrição do processo
1. Depois que a injetora (SGM) produziu uma peça, abre-se uma porta na 
sua frente.
2. Após o controle do interruptor de fim de curso da porta o robô se desloca 
até a posição de retirada e pega o componente.
3. O ejetor ejeta o componente da ferramenta.
4. O robô sai da máquina e o ejetor retorna.
5. Assim que o robô tiver deixado a máquina com segurança, a porta pode 
ser fechada e uma nova peça produzida.
6. Agora, o componente pronto é colocado no lugar livre na esteira de ciclo.
7. Depois a esteira é movimentada até a posição de depósito estar liberada 
novamente.Fig. 1-8
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
1 Programação estruturada
Definição de funções
1. Classifique a definição de funções em módulos de programa adequados.
2. Detalhe novamente a classificação geral.
3. Elabore um fluxograma do programa.
O que você deve saber agora:
1. Quais são as exigências para um programa?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
2. O que se entende por caderno de obrigações?
3. Quais são as vantagens de uma boa legibilidade de um programa?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
4. Quais são as vantagens no uso de pastas (folds)?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
13 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
14 / 147
Programação do robô 2
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
2 Introdução no nível de perito
2 Introdução no nível de perito
2.1 Visão geral
Nesta unidade de aprendizagem são repassados os seguintes conteú-
dos:
 Usar nível de perito
2.2 Usar nível de perito
Descrição A unidade de comando do robô oferece diferentes Grupos de usuários com 
diferentes funções. Podem ser selecionados os seguintes Grupos de usuá-
rios:
 Operador
Grupo de usuários para o operador. Este é o grupo de usuários padrão.
 Programador
Grupo de usuários para o operador. (Os grupos de usuários Operador e 
Usuário são criados como padrão para o mesmo grupo-alvo.)
 Peritos
Grupo de usuários para o programador. O grupo de usuários é protegido 
por uma senha.
 Administrador
Funções como no grupo de usuários Peritos. Além disso é possível a in-
tegração de plug-ins na unidade de comando do robô. O grupo de usuá-
rios é protegido por uma senha.
 Técnico de manutenção de segurança
Este usuário pode ativar uma configuração de segurança existente do 
robô através de um código de ativação. Se não for usada nenhuma opção 
Safe-Option, p.ex. KUKA.SafeOperation ou KUKA.SafeRangeMonitoring, 
o técnico de manutenção de segurança dispõe de direitos ampliados. Por 
exemplo, ele está autorizado a configurar as funções de segurança pa-
drão.
 Colocador em funcionamento de segurança
Este grupo de usuários somente é relevante, se for usado KUKA.SafeO-
peration ou KUKA.SafeRangeMonitoring. O grupo de usuários é protegido 
por uma senha.
Funções ampliadas do grupo de usuários Peritos:
 Protegido por senha (padrão: kuka)
 Programação no Editor é possível com KRL
 Vista detalhada para módulos disponível
 Exibir e ocultar linha DEF
 Abrir e fechar pastas (FOLD)
 Exibir vista detalhada no programa
 Na geração de programa podem ser selecionados templates pré-defini-
dos
 O grupo de usuários Peritos é abandonado automaticamente,
 ao mudar para o modo de operação AUT ou AUT EXT
 se durante um determinado período não houver ação na superfície do 
usuário (300 s)
15 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
16 / 147
Programação do robô 2
Funções Criar programas usando templates
 Cell: Programa de célula existente só pode ser substituído ou recriado 
com célula excluída.
 Peritos: módulo existente no arquivo SRC e DAT, no qual só há cabeça-
lho e fim de programa.
 Expert Submit: arquivo Submit (SUB) adicional que consiste de cabeça-
lho e fim de programa.
 Function: elaboração de função SRC, na qual só é criado o cabeçalho da 
função com uma variável BOOL O final da função existe, mas o retorno 
ainda deverá ser programado primeiro.
 Módulo: módulo consiste dos arquivos SRC e DAT, no qual existe o ca-
beçalho do programa, o fim e a estrutura básica (INI e 2x PTP HOME). 
 Submit: arquivo Submit (SUB) adicional que consiste de um cabeçalho e 
fim de programa e estrutura básica (DECLARATION, INI, LOOP/ENDLO-
OP).
O Filtro determina como os programas são exibidos na lista de arquivos. Es-
tão disponíveis os seguintes Filtros:
 Detalhe
Os programas são exibidos como arquivos SRC e DAT. (Ajuste predefini-
do)
 Módulos
Os programas são exibidos como módulos.
Fig. 2-1
Como Perito, estão disponíveis todas as funções no menuEditar.
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
2 Introdução no nível de perito
Exibir e ocultar Linha DEF
 A Linha DEF é ocultada por defeito. Em um programa só podem ser rea-
lizadas declarações, quando a Linha DEF é exibida.
 A Linha DEF é exibida e ocultada separadamente para programas aber-
tos e selecionados. Se a vista detalhada estiver ativada, a Linha DEF tor-
na-se visível e não precisa ser exibida separadamente.
Abrir/Fechar PASTA
 As PASTAs estão sempre fechadas para o usuário e podem ser abertas 
como Perito.
 O perito também pode programar PASTAs próprias.
 A sintaxe para uma pasta é:
;PASTA Nome
Instruções
;ENDFOLD <Nome>
As linhas ENDFOLD podem ser atribuídas com mais facilidade, se for in-
serido aqui o nome da pasta. As pastas (Folds) podem ser encadeadas.
Ativar procedi-
mento para nível 
de Perito e 
corrigir erros
Ativar nível de Peritos
1. Selecionar o menu principal Configuração > Grupo de usuários.
2. Login como Peritos: Clicar em Login. Marcar o grupo de usuários Peritos 
e confirmar com Login.
3. Inserir a senha requerida (padrão: kuka) e confirmar com Login.
Eliminar erros no programa. 
1. Selecionar módulo com erro no Navegador
2. Selecionar menu Lista de erros
3. A exibição de erros (nome de programa.ERR) abre
4. Selecionar erros, a descrição ampla é apresentada em baixo na exibição 
de erros
5. Na janela exibição de erros pressionar a tecla Exibir e saltar para o pro-
grama com defeitos
6. Corrigir erros
7. Fechar editor e salvar
2.3 Exercício: Medição de ferramentas e base
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Medição da ferramenta com o método XYZ 4-Pontos e o método World 5D
 Medição da ferramenta com introdução numérica de valor
Fig. 2-2: Programa com erro
17 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
18 / 147
Programação do robô 2
 Medição da base conforme o método 3 pontos
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 Conhecimentos teóricos sobre a medição de uma ferramenta
 Conhecimentos teóricos sobre a medição de uma base
Definição de 
funções
Medição de garras
 Medir a garra com ajuda da "introdução numérica".
 Atribua o número de ferramenta 3 e o nome "Garra".
 Os dados de medição são:
 Dados de carga da garra:
Medição de pino
 Use o pino superior do magazine de pinos e fixe-o manualmente na garra. 
 Meça o pino com o método XYZ 4-Pontos e o método ABC-World 5D. 
 Como número de ferramenta use o 2 e como nome "Pino 1"
Medição "base azul"
 A medição da BASE número 2 é realizada com o pino 1 e o método 3 pon-
tos. Como nome é usado "base azul".
O que você deve saber agora:
1. Quais são as vantagens da medição de uma base sobre a mesa?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Onde está o ponto de referência para a medição de uma ferramenta?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Quantos sistemas base diferentes o software KUKA comporta?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Qual é a diferença entre os métodos ABC-World 5D e 6D?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Onde há uma base não medida (estado de fornecimento)?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
X Y Z A B C
163 mm 146 mm 146 mm 45° 0° 180°
M X Y Z A B C
6,68 Kg 21 mm 21 mm 98 mm 0° 0° 0°
JX JY JZ
0,1 kgm2 0,4 kgm2 0,46 kgm2
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
2 Introdução no nível de perito
2.4 Exercício: Navigator perito loop sem fim
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Criação de módulos no plano de perícia
 Vínculo de determinados módulos em um programa principal
 Uso de um loop sem fim
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 Navigator no plano de peritos
 Conhecimentos teóricos sobre o uso de subprogramas globais
 Conhecimentos teóricos sobre um loop sem-fim 
Definição de 
funções
1. Antes do início da programação elabore um fluxograma do programa 
(PAP).
2. Crie dois módulos sensatos (Wuerfel_ab/Wuerfel_hol).
3. O acesso e o loop sem-fim deverão ser realizados no módulo MAGAZIN.
4. Teste o seu programa nos modos de operação T1, T2 e Automático. Aqui 
devem ser observadas as prescrições de segurança ensinadas.
O que você deve saber agora:
1. Na criação de um programa, qual é a diferença entre a seleção MODUL e 
EXPERT?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
2. O que se entende por tipo de execução do programa ISTEP?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
3. Qual a diferença entre SELECIONAR e ABRIR um programa?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
4. Como é a sintaxe para uma "dobra"?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
5. Quais são as consequências de uma alteração posterior da posição HO-
ME?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
19 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
20 / 147
Programação do robô 2
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
3 Variáveis e acordos
3.1 Visão geral
Nesta unidade de aprendizagem são repassados os seguintes conteú-
dos:
 Manutenção de dados no KRL
 Trabalhar com tipos de dados simples
 Campos
 Estruturas
 Tipo de dados de contagem
3.2 Manutenção de dados no KRL
Trabalhar com 
variáveis com 
KRL
Dados gerais sobre variáveis
 Na programação do robô com KRL, uma variável no sentido mais geral é 
simplesmente um recipiente para dimensões de cálculo ("valores") que 
ocorrem na execução processo do robô.
 Uma variável tem um determinado endereço atribuído na memória do 
computador.
 Uma variável é determinada com um nome, que não seja a palavra-chave 
da KUKA.
 Cada variável é vinculada a um determinado tipo de dados
 A declaração do tipo de dados é necessária antes do uso.
 Em KRL há diferenciação entre variáveis locais e globais.
Vida útil de variáveis em KRL
 Por vida útil subentende-se um período, no qual a variável reservou a me-
mória.
 A variável de vida útil libera a sua memória ao sair do programa ou da fun-
ção.
 Variáveis da lista de dados recebem o valor atual em sua memória a longo 
prazo.
Validade de variáveis em KRL
 Variáveis de declaração local estão disponíveis e visíveis somente nesse 
programa.
 Variáveis globais estão criadas em uma lista de dados central (global).
 Variáveis globais também podem ser criadas em uma lista de dados local 
e receber a palavra-chave global na declaração.
Tipos de dados com KRL
 Um tipo de dados descreve um resumo de objetos para uma quantidade
 Tipos de dados padrão pré-definidos
 Tipos de dados padrão definidos autonomamente
 Tipos de dados KUKA pré-definidos
Uso de variáveis 
com KRL
Convenções de nomes
 Nomes em KRL só podem ter um comprimento máximo de 24 caracteres.
 Nomes em KRL podem conter letras (A-Z), números (09) e os caracteres 
especiais '_' e '$',
 Nomes em KRL não podem começar com números.
 Nomes em KRL não podem ser palavras-chave.
21 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
22 / 147
Programação do robô 2
 Letras maiúsculas e minúsculas não são relevantes.
Tipos de dados com KRL
 Tipos de dados pré-definidos
 Campos /Array
 Salvar diversas variáveis do mesmo tipo de dados com índice
 Inicialização ou alteração de valor é realizada com índice
 O tamanho máximo do campo depende da necessidade de memória 
do tipo de dados
 Tipo de dados de enumeração
 Todos os valores do tipo de dados de enumeração são definidos com 
nomes (texto explícito) na criação
 O sistema define ainda a sequência
 O número máximo de elementos depende da memória
 Tipo de dados composto /estrutura
 Tipo de dados composto de componentes de diversos tipos de dados 
 Os componentes podem consistir de tipos de dados simples mas tam-
bém de estruturas
 Um acesso a determinados componentes é possível
Vida útil / Validade
 Variáveis criadas no arquivo SRC são denominadas variáveis de va-
lidade e
 não podem ser exibidas sempre
 só valem na parte de programa declarada
 liberam o seu local de memória ao alcançar a última linha do programa 
(linha END)
 Variáveis no arquivo local DAT
 podem ser exibidas sempre na execução do programa do respectivo 
SRC-File
 estão disponíveis no SRC-File completo inclusive nos subprogramas 
locais
 podem ser criadas também como variáveis globais
 contêm o valor atual no DAT-File e iniciam com o novo acesso com o 
valor salvo
 Variáveisno arquivo de sistema $CONFIG.DAT
 estão disponíveis em todos os programas (global),
Tipos de dados 
simples
Número 
inteiro
Número com 
vírgula alterável
Valores 
lógicos
Determi-
nado 
caractere
Palavra chave INT REAL BOOL CHAR
Faixa de valores -231 ... 
(231-1)
± 1.1 10-38... ± 
3.4 10+38
TRUE / 
FALSE
Conjunto 
de carac-
teres 
ASCII
Exemplos -199 ou 
56
-0,0000123 ou 
3,1415
TRUE ou 
FALSE
"A" ou "q" 
ou "7"
Voltage[10] = 12.75
Voltage[11] = 15.59
color = #red
Date = {day 14, month 12, year 1996}
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
 podem ser exibidas sempre, mesmo que não haja programa ativado,
 recebem o valor atual no $CONFIG.DAT.
Declarações duplas de variáveis
 Uma declaração dupla é criada sempre com o uso de uma sequência de 
caracteres igual (nome).
 O uso do mesmo nome em diferentes SRC-Files ou DAT-Files não repre-
senta declaração dupla
 Declarações duplas no mesmo arquivo SRC e DAT não são permitidas e 
geram uma mensagem de erro.
 Declarações duplas no SRC-File ou DAT e na $CONFIG.DAT são permi-
tidas:
 No processo da rotina do programa, no qual a variável foi declarada, 
é alterado somente o valor local e não o valor no $CONFIG.DAT.
 Na execução de uma rotina de programa "estranha" é acessado e al-
terado somente o valor de $CONFIG.DAT.
Dados de sistema KUKA
 Há dados de sistema KUKA como sendo
 tipo de dados de enumeração como modo de operação (mode_op)
 estrutura como sendo data/hora (date)
 Informações de sistema são obtidas das variáveis de sistema KUKA. Es-
tas
 leem as informações de sistema atuais,
 alteram as configurações de sistema atuais,
 são pré-definidas e começam com o símbolo "$"
 $DATE (horário e data atual)
 $POS_ACT (posição atual do robô)
 ...
23 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
24 / 147
Programação do robô 2
3.3 Trabalhar com tipos de dados simples
A seguir é explicada a elaboração, inicialização e a alteração de variáveis. 
Aqui são usados somente tipos de dados simples.
Tipos de dados simples com KRL
 Números inteiros (INT)
 Números de vírgula variável (REAL)
 Valores lógicos (BOOL)
 Caracter individual (CHAR)
3.3.1 Declaração de variáveis
Criação de 
variáveis
Declaração de variáveis
 A declaração deverá ser realizada sempre antes do uso
 A cada variável deverá ser atribuído um tipo de dados
 Na atribuição do nome deverão ser observadas as convenções de nomes
 A palavra-chave para a declaração é DECL
 A palavra-chave DECL pode ser descartada nos quatro tipos de dados 
simples
 Atribuições de valores são realizadas com o indicador de avanço
 A declaração de variáveis pode ser realizada de diferentes formas, mas 
indica a vida útil e a validade das respectivas variáveis
 Declaração no SRC-File
 Declaração no arquivo local DAT
 Declaração no $CONFIG.DAT
 Declaração no DAT-File com a palavra-chave "global"
 Criação de constantes
 Constantes são criadas com a palavra-chave CONST 
 Constantes só podem ser criadas em listas de dados
Princípio da 
declaração de 
variáveis
Estrutura de programa no SRC-File
 Na parte de declaração deverão ser declaradas variáveis 
 A parte de inicialização inicia com a primeira atribuição de valores, em ge-
ral com a linha "INI"
 Na parte de instruções os valores são atribuídos ou alterados 
Modificar vista padrão
 Apenas peritos podem exibir a linha DEF. 
 O procedimento é necessário para chegar à parte de declaração em mó-
dulos antes da linha "INI"
 Para poder visualizar as linhas DEF e END, importante também para a 
transferência de variáveis em subprogramas
DEF main( )
; Seção de declaração
...
; Seção de inicialização
INI
...
; Seção de instrução
PTP HOME Vel=100% DEFAULT
...
END
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
Planejar declaração de variáveis
 Definir vida útil
 SRC-File: a variável de tempo de execução "morre" no final da rotina 
do programa
 DAT-File: a variável é mantida após o término
 Definir validade/disponibilidade
 Local no SRC-File: somente disponível na rotina de programa, na qual 
esta foi declarada. Com isso a variável só é disponível entre a DEF lo-
cal e a linha END (programa principal ou subprograma local).
 Local no DAT-File: válido no programa completo, ou também nos sub-
programas locais.
 $CONFIG.DAT: disponível globalmente, ou seja, em todas as rotinas 
de programa é possível um acesso de leitura e escrita
 Local no DAT-File como variável global: disponibilidade global, em to-
das as rotinas de programa é possível um acesso de leitura e escrita, 
assim que o DAT-File for munido da palavra-chave PUBLIC e na de-
claração, adicionalmente, da palavra-chave GLOBAL. 
 Definir tipo de dados
 BOOL: resultados clássicos "SIM"/"NÃO"
 REAL: Resultados das operações de cálculo para poder evitar erros 
de arredondamento
 INT: variáveis de contagem clássicas para loops de contagem ou con-
tadores de unidades
 CHAR: somente um caracter
String ou texto só pode ser realizado como campo CHAR
 Atribuição de nome e declaração
 Usar DECL para facilitar a legibilidade do programa.
 Usar nomes de variáveis adequadas, auto-explicativas.
 Não colocar nomes criptografados ou abreviações.
 Usar comprimentos de nome adequados, ou seja, não usar sempre 24 
caracteres.
Procedimento na 
declaração de 
variáveis com 
tipos de dados 
simples
Criar variável no SRC-File
1. Grupo de usuários Peritos
2. Deixar exibir linha DEF
3. Abrir SRC-File no Editor
4. Realizar a declaração da variável
5. Fechar e salvar programas
Criar variável no DAT-File
1. Grupo de usuários Peritos
2. Abrir DAT-File no Editor
3. Realizar a declaração da variável
DEF MY_PROG ( )
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
INI
...
END
25 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
26 / 147
Programação do robô 2
4. Fechar e salvar lista de dados
Criar variável na $CONFIG.DAT
1. Grupo de usuários Peritos
2. Na pasta SYSTEM abrir o $CONFIG.DAT no Editor
3. Selecionar a pasta "USER GLOBALS" e abri-la com o softkey "Abr/Fech 
pasta"
4. Realizar a declaração da variável
5. Fechar e salvar lista de dados
Criar variável global no DAT-File
1. Grupo de usuários Peritos
2. Abrir DAT-File no Editor
3. Ampliar a lista de dados no cabeçalho do programa com a palavra-chave 
PUBLIC
4. Realizar a declaração da variável
5. Fechar e salvar lista de dados
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
...
ENDDAT
DEFDAT $CONFIG
BASISTECH GLOBALS
AUTOEXT GLOBALS
USER GLOBALS
ENDDAT
DEFDAT $CONFIG
...
;==================================
; Userdefined Types 
;==================================
;==================================
; Userdefined Externals 
;==================================
;==================================
; Userdefined Variables 
;==================================
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
...
ENDDAT
DEFDAT MY_PROG PUBLIC
DEFDAT MY_PROG PUBLIC
EXTERNAL DECLARATIONS
DECL GLOBAL INT counter
DECL GLOBAL REAL price
DECL GLOBAL BOOL error
DECL GLOBAL CHAR symbol
...
ENDDAT
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
3.3.2 Inicialização de variáveis com simples tipos de dados
Descrição da 
inicialização com 
KRL
 Após cada declaração uma variável só reservou uma memória, o valor é 
sempre um valor inválido.
 No SRC-File é realizada a declaração e a inicialização sempre em duas 
linhas separadas.
 No DAT-File é realizada a declaração e a inicialização sempre em uma li-
nha.
Uma constante deverá ser inicializada imediatamente na declaração.
 A parte da inicialização inicia com a primeira atribuição de valor.
Princípio da 
inicialização
Inicialização de números inteiros
 Inicialização de decimais Inicialização como número binário
Cálculo: 1*32+1*16+1*8+0*4+1*2+0*1 = 58
 Inicialização hexadecimal
Cálculo: 3*16 +10 = 58
Procedimento na 
inicialização com 
KRL
Declaração e inicialização no SRC-File
1. Abrir SRC-File no Editor
2. A declaração foi retornada
3. Realizar inicialização
4. Fechar e salvar programas
Declaração e inicialização no DAT-File
1. Abrir DAT-File no Editor
2. A declaração foi retornada
3. Realizar inicialização
value = 58
value = 'B111010'
Binário 25 24 23 22 21 20
Dez 32 16 8 4 2 1
value = 'H3A'
He
x
0 1 2 3 4 5 6 7 8 9 A B C D E F
De
z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DEF MY_PROG ( )
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
INI
counter = 10
price = 0.0
error = FALSE
symbol = "X"
...
END
27 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
28 / 147
Programação do robô 2
4. Fechar e salvar lista de dados
Declaração no DAT-File e inicialização no SRC-File
1. Abrir DAT-File no Editor
2. Realizar declaração
3. Fechar e salvar lista de dados
4. Abrir SRC-File no Editor
5. Realizar inicialização
6. Fechar e salvar programas
Declaração e inicialização de uma constante
1. Abrir DAT-File no Editor
2. Realizar declaração e inicialização
3. Fechar e salvar lista de dados
3.3.3 Manipulação de valores de variáveis de tipos de dados simples com KRL
Listagem de 
possibilidades 
para a alteração 
de valores de 
variáveis com 
KRL
Os valores de variáveis são alterados de forma distinta nas rotinas de progra-
ma (SRC-File) conforme a tarefa. A seguir são abordados os métodos mais 
comuns. A manipulação com operações bit e funções padrão é possível, mas 
não será detalhada.
Manipulação de dados através de
 Tipos de cálculo básico
 (+) Adição
 (-) Subtração
 (*) Multiplicação
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL INT counter = 10
DECL REAL price = 0.0
DECL BOOL error = FALSE
DECL CHAR symbol = "X"
...
ENDDAT
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
...
ENDDAT
DEF MY_PROG ( )
...
INI
counter = 10
price = 0.0
error = FALSE
symbol = "X"
...
END
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL CONST INT max_size = 99
DECL CONST REAL PI = 3.1415
...
ENDDAT
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
 (/) Divisão
 Operações comparativas
 (==) idêntico / igualdade
 (<>) desigual
 (>) maior
 (<) menor
 (>=) maior ou igual
 (<=) menor ou igual
 Operações lógicas
 (NOT) Inversão
 (AND) (E) lógico
 (OR) OU lógico
 (EXOR)OU exclusivo
 Operações Bit
 (B_NOT) Inversão de bit
 (B_AND) vinculação E de bits
 (B_OR) vinculação OU de bits
 (B_EXOR) vinculação OU exclusiva de bits
Funções padrão
 Função absoluta
 Função de raiz
 Função seno e coseno
 Função tangente
 Função arco seno
 Função arco tangente
 Diversas funções para a manipulação de strings
Contextos na 
manipulação de 
dados
Modificação de valores usando os tipos de dados REAL e INT
 Arredondar para cima/ para baixo
 Resultados de operações aritméticas (+;-;*)
; Declaração
DECL INT A,B,C
DECL REAL R,S,T
; Inicialização
A = 3 ; A=3
B = 5.5 ; B=6 (a partir de x.5 é arredondado para cima)
C = 2.25 ; C=2 (arredondar para baixo)
R = 4 ; R=4.0
S = 6.5 ; S=6.5
T = C ; T=2.0 (aplica-se o valor arredondado para baixo)
Operandos INT REAL
INT INT REAL
REAL REAL REAL
29 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
30 / 147
Programação do robô 2
 Resultados de operações aritméticas (/)
Particularidades das operações aritméticas com valores inteiros:
 Nos resultados intermediários de meras operações íntegras, todas as 
casas após a vírgula são cortadas.
 Nas atribuições de valores para uma variável íntegra o resultado é ar-
redondado conforme as regras normais de cálculo.
Operações comparativas
Com operações comparativas podem ser formadas expressões lógicas O re-
sultado de uma comparação é sempre o tipo de dados BOOL.
Operações lógicas
Com operações lógicas podem ser formadas expressões lógicas. O resultado 
dessa operação é sempre o tipo de dados BOOL.
; Declaração
DECL INT D,E
DECL REAL U,V
; Inicialização
D = 2
E = 5
U = 0.5
V = 10.6
; Seção de instrução (manipulação de dados)
D = D*E ; D = 2 * 5 = 10
E = E+V ; E= 5 + 10.6 = 15.6 -> arredondar para cima E=16
U = U*V ; U= 0.5 * 10.6 = 5.3
V = E+V ; V= 16 + 10.6 = 26.6
; Declaração
DECL INT F
DECL REAL W
; Inicialização
F = 10
W = 10.0
; Seção de instrução (manipulação de dados)
; INT / INT -> INT
F = F/2 ; F=5
F = 10/4 ; F=2 (10/4 = 2.5 -> Cortar a casa decimal)
; REAL / INT -> REAL
F = W/4 ; F=3 (10.0/4=2.5 -> arredondar para cima)
W = W/4 ; W=2.5
Operador/
KRL
Descrição Tipos de dados admissíveis
== idêntico/igual-
dade
INT, REAL, CHAR, BOOL
<> desigual INT, REAL, CHAR, BOOL
> maior INT, REAL, CHAR
< menor INT, REAL, CHAR
>= maior igual INT, REAL, CHAR
<= menor igual INT, REAL, CHAR
; Declaração
DECL BOOL G,H
; Inicialização/Seção de instrução
G = 10>10.1 ; G=FALSE
H = 10/3 == 3 ; H=TRUE
G = G<>H ; G=TRUE
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
Operadores são executados na sequência de suas prioridades
Procedimento na 
manipulação de 
dados
1. Definir tipo de dados para a(s) variável(eis)
2. Calcular a validade e vida útil das variáveis
3. Realizar a declaração das variáveis
4. Inicializar a variável
5. Nas rotinas de programa, ou seja, sempre no SRC-File, manipule a vari-
ável
6. Fechar e salvar SRC-File
Comando Stop O comando STOP para o programa. Contudo, a última instrução de movimen-
to percorrida ainda é executada por completo.
O programa somente pode ser continuado com a tecla Iniciar. Depois é exe-
cutada a próxima instrução após STOP.
Operações NOT A A AND B A OR B A 
EXOR 
B
A=TRUE B=TRUE FALSE TRUE TRUE FAL-
SE
A=TRUE B=FALS
E
FALSE FALSE TRUE TRUE
A=FALSE B=TRUE TRUE FALSE TRUE TRUE
A=FALSE B=FALS
E
TRUE FALSE FALSE FAL-
SE
; Declaração
DECL BOOL K,L,M
; Inicialização/Seção de instrução
K = TRUE
L = NOT K ; L=FALSE
M = (K AND L) OR (K EXOR L) ; M=TRUE
L = NOT (NOT K) ; L=TRUE
Prioridade Operador
1 NOT (B_NOT)
2 Multiplicação (*); Divisão (/)
3 Adição (+), Subtração (-)
4 AND (B_AND)
5 EXOR (B_EXOR)
6 OR (B_OR)
7 qualquer comparação (==; <>; ...)
; Declaração
DECL BOOL X, Y
DECL INT Z
; Inicialização/Seção de instrução
X = TRUE
Z = 4
Y = (4*Z+16 <> 32) AND X ; Y=FALSE
Em um programa Interrupt o programa somente é parado após a exe-
cução completa do avanço.
31 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
32 / 147
Programação do robô 2
3.3.4 Exercício: Tipos de dados simples
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Uso de tipos de dados simples
 Declaração, inicialização e uso de variáveis
 uso correto das variáveis em relação à sua vida útil 
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 conhecimentos teóricos sobre tipos de dados simples e seu manuseio 
Definição de 
funções
Amplie os seus programas criados com o seguinte:
 Uma variável conta o número dos módulos transportados desde a última 
seleção de programa. 
 Uma variável deverá salvar o número absoluto de todos os módulos até o 
momento transportados
 Uma variável deverá contar o peso total (em kg) dos módulos transporta-
dos. Um módulo pesa 0,329 kg.
 Uma variável, que no processo de retirada do módulo for TRUE, em ou-
tros momentos FALSE. 
 Uma variável, que com a garra aberta contém a letra "O" e com a garra 
fechada a letra "G". No estado não definido a variável receberá o valor "X". 
Use nomes de variáveis e tipos de dados adequados. É importante também 
declarar as variáveis no local correto. 
 Defina, onde as suas variáveis são declaradas.
 Amplieo seu fluxograma do programa existente, incluindo essas novas 
variáveis.
 Observe as diferentes inicializações das variáveis.
 Teste o seu programa nos modos de operação T1, T2 e Automático. Aqui 
devem ser observadas as prescrições de segurança ensinadas.
O que você deve saber agora:
1. Qual é o tamanho máximo de um nome da variável?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Quais tipos de dados simples existem?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Onde as variáveis são declaradas no SRC-File?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Que vida útil tem uma variável declarada na $CONFIG.DAT?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Declare um número com vírgula alterável com o nome "Value" no DAT-File 
com o valor 138,74.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
3.4 Arrays / Campos com KRL
Descrição de 
campos com KRL
Campos ou também Arrays oferecem espaço de memória para várias variá-
veis do mesmo tipo de dados, que são diferenciados através de index
 O espaço de memória para campos é finito, ou seja, o tamanho de campo 
máximo depende da necessidade de memória do tipo de dados
 na declaração devem ser conhecidos o tamanho de campo e o tipo de da-
dos
 O índice de partida no KRL sempre começa com 1
 Uma inicialização pode ser realizada sempre individualmente
 Uma inicialização no SRC-File também pode ser realizada através de loop
Dimensões de campo
 Campo unidimensional
 Campo bidimensional
 Campo tridimensional
 Um campo quadridimensional ou superior não é suportado pelo KRL
Contextos no uso 
de campos
A vida útil e a validade de variáveis de campos é igual, como no uso de vari-
áveis de um tipo de dados simples
Declaração de campo
 Criar no SRC_File
 Criação de uma lista de dados (inclusive $CONFIG.DAT)
Declarar e inicializar campo no SRC-File
 Cada campo individualmente com acesso de índice
dimension1[4]= TRUE
dimension2[2,1]= 3.25
dimension1[3,4,1]= 21
DEF MY_PROG ( )
DECL BOOL error[10]
DECL REAL value[50,2]
DECL INT parts[10,10,10]
INI
...
END
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL BOOL error[10]
DECL REAL value[50,2]
DECL INT parts[10,10,10]
...
ENDDAT
DECL BOOL error[10]
error[1]=FALSE
error[2]=FALSE
error[3]=FALSE
error[3]=FALSE
error[4]=FALSE
error[5]=FALSE
error[6]=FALSE
error[7]=FALSE
error[8]=FALSE
error[9]=FALSE
error[10]=FALSE
33 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
34 / 147
Programação do robô 2
 Com loops adequados
Inicializar o campo na lista de dados
 Cada campo individualmente com acesso de índice e posterior exibição 
de valor na lista de dados
 Declaração não permitida e inicialização na lista de dados 
Declarar campos na lista de dados e inicializar no SRC-File
 Se um campo for criado deste modo na lista de dados, os valores atuais 
não podem ser lidos na lista de dados; os valores atuais podem ser veri-
ficados somente com a exibição de variáveis.
DECL BOOL error[10]
DECL INT x
FOR x = 1 TO 10
error[x]=FALSE
ENDFOR
Após o término do loop x tem o valor 11
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL BOOL error[10]
error[1]=FALSE
error[2]=FALSE
error[3]=FALSE
error[4]=FALSE
error[5]=FALSE
error[6]=FALSE
error[7]=FALSE
error[8]=FALSE
error[9]=FALSE
error[10]=FALSE
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL BOOL error[10]
DECL INT size = 32
error[1]=FALSE
error[2]=FALSE
error[3]=FALSE
error[4]=FALSE
error[5]=FALSE
error[6]=FALSE
error[7]=FALSE
error[8]=FALSE
error[9]=FALSE
error[10]=FALSE
Gera dez mensagens de erro "Passo de valor inicial não está na se-
ção inicial"
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL BOOL error[10]
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
ou 
Inicialização através de loops 
 Campo unidimensional
 Campo bidimensional
 Campo tridimensional
Procedimento ao 
usar Arrays
1. Definir tipos de dados para o campo
2. Calcular a validade e vida útil do campo
3. Realizar declaração de campo
4. Inicializar elementos de campo
5. nas rotinas de programa, isto é, sempre no SRC-File, manipular o campo
6. Fechar e salvar SRC-File
DEF MY_PROG ( )
INI
error[1]=FALSE
error[2]=FALSE
error[3]=FALSE
...
error[10]=FALSE
DEF MY_PROG ( )
INI
FOR x = 1 TO 10
error[x]=FALSE
ENDFOR
DECL INT parts[15]
DECL INT x
FOR x = 1 TO 15
parts[x]= 4
ENDFOR
DECL INT parts_table[10,5]
DECL INT x, y
FOR x = 1 TO 10
 FOR y = 1 TO 5
 parts_table[x, y]= 6
 ENDFOR
ENDFOR
DECL INT parts_palette[5,4,3]
DECL INT x, y, z
FOR x = 1 TO 5
 FOR y = 1 TO 4
 FOR z = 1 TO 3
 parts_palette[x, y, z]= 12
 ENDFOR
 ENDFOR
ENDFOR
35 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
36 / 147
Programação do robô 2
3.5 Exercício: Campos com tipos de dados simples e loop de contagem
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Declarar e inicializar campos com tipos de dados simples
 editar elementos individuais de campo
 Trabalhar com a exibição de variáveis (configuração/exibição) 
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 Conhecimentos sobre tipos de dados simples 
 conhecimentos teóricos sobre campos 
 conhecimentos teóricos sobre loop FOR 
 conhecimentos teóricos sobre a exibição da variável
Definição de 
funções
Amplie os seus programas criados com o seguinte:
 Crie um campo unidimensional com o tamanho 12. O conteúdo dos cam-
pos deverá ser a letra "O" ou "X". 
 Antes do início da execução todos os campos devem estar pré-preenchi-
dos com "O". 
 Após a entrega do 1º módulo, o 1º campo deverá receber a letra "X". Para 
as demais entregas deve-se proceder da mesma forma.
 Verifique o index de campo atual e o conteúdo do campo. 
DEF MY_PROG ( )
DECL REAL palette_size[10]
DECL INT counter
INI
; Inicialização
FOR counter = 1 TO 10
 palette_size[counter] = counter * 1.5
ENDFOR
...
; Alterar o valor individualmente
palette_size[8] = 13
...
; Comparação de valores
IF palette_size[3] > 4.2 THEN
...
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
 Defina, onde as suas variáveis são declaradas. 
 Amplie o seu fluxograma do programa existente, incluindo esse campo. 
 Crie um novo grupo para a exibição das variáveis de campo necessárias. 
 Teste o seu programa nos modos de operação T1, T2 e Automático. Aqui 
devem ser observadas as prescrições de segurança ensinadas. 
O que você deve saber agora:
1. Onde o tamanho de um campo é dimensionado? 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
2. Qual é a diferença dadeclaração de um campo no SRC-File e no DAT-File?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
3. Qual mensagem de erro é exibida ao ultrapassar o index de campo?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
4. Declare um campo tridimensional com o nome preço do armário. O preço 
do armário é calculado com os componentes comprimento, largura e profun-
didade. A gama abrange 5 comprimentos diferentes, 3 larguras diferentes e 
duas profundidades diferentes? 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
5. O que pode ser ativado com o softkey "Info start." na exibição da variável?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
Fig. 3-1
37 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
38 / 147
Programação do robô 2
3.6 Estruturas com KRL
Variáveis com 
diversas infor-
mações indivi-
duais
Tipo de dados composto: estruturas
 Com campos podem ser combinadas variáveis do mesmo tipo de dados. 
No mundo real as variáveis geralmente consistem de tipos de dados dife-
rentes.
 Assim um carro tem uma potência de motor ou uma quilometragem do 
tipo Integer. Para o preço pode-se oferecer o tipo Real. Em comparação, 
a existência de um ar condicionado seria o tipo de dados Bool.
 Tudo junto descreve um carro.
 Uma estrutura pode ser definida com a própria palavra-chave STRUC.
 Uma estrutura é uma união de diferentes tipos de dados.
 Uma estrutura primeiro precisa ser definida, depois pode ser reutilizada.
Uso de uma 
estrutura
Disponibilidade/definição de uma estrutura
 Em uma estrutura podem ser usados os tipos de dados simples INT, RE-
AL, BOOL e CHAR.
 Em uma estrutura podem ser inseridos campos CHAR.
 Em uma estrutura também podem ser usadas estruturas conhecidas, 
como uma posição POS.
 Após a definição da estrutura é necessário declarar uma variável de tra-
balho para isto
Inicialização / Modificação de uma estrutura
 A inicialização pode ser realizada através de parênteses.
 Na inicialização com parênteses só podem ser usadas constantes (valo-
res fixos).
 A sequência da atribuição de valores não deve ser observada.
 Em uma estrutura não precisam ser indicados todos os elementos de es-
trutura.
 Uma estrutura é inicializada com um elemento de estrutura.
Fig. 3-2
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition, CHAR 
car_model[15]
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition, POS 
car_pos
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition
DECL CAR_TYPE my_car
my_car = {motor 50, price 14999.95, air_condition = TRUE}
my_car = {price 14999.95, motor 50, air_condition = TRUE}
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
 Valores não inicializados estão ou serão colocados em desconhecido.
 A inicialização também pode ser feita com separador de ponto.
 Na inicialização com separador de ponto também podem ser usadas va-
riáveis.
 Um elemento de estrutura pode ser alterado individualmente a qualquer 
momento através de separador de ponto.
Vida útil / Validade
 Estruturas locais são inválidas ao alcançar a linha END
 Estruturas usadas em vários programas, deverão ser declaradas na 
$CONFIG.DAT
Atribuição de nome
 Não podem ser usadas palavras-chave
 Tipos de enumeração definidos por conta própria deverão terminar com 
TYPE para facilitar o reconhecimento
A KUKA trabalha muito com estruturas pré-definidas depositadas no sistema. 
É possível encontrar exemplos nas posições e na programação da mensa-
gem.
Estruturas KUKA pré-definidas da área das posições
 AXIS: STRUC AXIS REAL A1, A2, A3, A4, A5, A6
 E6AXIS: STRUC E6AXIS REAL A1, A2, A3, A4, A5, A6, E1, E2, E3, E4, 
E5, E6
 FRAME: STRUC FRAME REAL X, Y, Z, A, B, C
 POS: STRUC POS REAL X, Y, Z, A, B, C INT S,T
 E6POS: STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4, E5, E6 
INT S,T
Inicialização de uma estrutura com uma posição
 Na inicialização com parênteses só podem ser usadas constantes (valo-
res fixos)
 A inicialização também poderá ser realizada com o separador de ponto
 Na inicialização com o separador de ponto também podem ser usadas va-
riáveis
Criação de uma 
estrutura
1. Definição da estrutura
my_car = {motor 75} ; nenhum preço conhecido
my_car.price = 9999.0
my_car.price = value_car
my_car.price = 12000.0
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition, POS 
car_pos
DECL CAR_TYPE my_car
my_car = {price 14999.95, motor 50, air_condition = TRUE, car_pos {X 
1000, Y 500, A 0}}
my_car.price = 14999.95
my_car.car_pos = {X 1000, Y 500, A 0}
my_car.price = 14999.95
my_car.car_pos.X = x_value
my_car.car_pos.Y = 750
STRUC CAR_TYPE INT motor, REAL price, BOOL air_condition
39 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
40 / 147
Programação do robô 2
2. Declaração das variáveis de trabalho
3. Inicialização das variáveis de trabalho
4. Modificação dos valores e/ou comparação de valores das variáveis de tra-
balho
3.7 Exercício: criar estruturas com KRL
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Geração de estruturas próprias (declaração, inicialização) 
 Trabalhar com o separador de pontos
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 conhecimentos teóricos sobre tipos de dados e estruturas simples 
Definição de 
funções
Crie um programa com o nome Estrutura.
 Gere uma estrutura com o nome BOX_Typ. Nessa estrutura deverão ser 
depositados os seguintes valores característicos:
 Comprimento
 Largura
 Altura
 Estado da esmaltagem (sim/não)
 Número de garrafas 
 Atribua à variável KISTE (CAIXA) a estrutura BOX_Typ e inicialize com os 
seguintes valores de início:
 Comprimento 25,2
 Largura 18,5
 Altura 5,0 
 Conteúdo: 4 garrafas 
 Não esmaltado
 No primeiro processo de usinagem ainda serão acrescentadas 8 garrafas. 
No 2º passo a KISTE (CAIXA) será ainda pintada. Entre o passo um e dois 
programe um período de espera de 3 segundos.
 Solicite a exibição do conteúdo da variável KISTE (CAIXA) durante o pro-
cedimento. 
 Defina, onde as suas variáveis são declaradas. 
 Amplie o seu fluxograma do programa existente, incluindo esse campo. 
 Crie um novo grupo para a exibição das variáveis de campo necessárias. 
 Teste o seu programa nos modos de operação T1, T2 e Automático. Aqui 
devem ser observadas as prescrições de segurança ensinadas. 
O que você deve saber agora:
DECL CAR_TYPE my_car
my_car = {motor 50, price 14999.95, air_condition TRUE}
my_car.price = 5000.0
my_car.price = value_car
IF my_car.price >= 20000.0 THEN
...
ENDIF
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
1. O que é uma estrutura?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
2. Que estruturasKUKA pré-definidas existem?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
3. Qual é a diferença entre uma estrutura POS e uma estrutura E6POS?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
4. Nomeie uma estrutura FRAME que você já conhece. 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
5. Para que precisamos do separador de ponto?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
41 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
42 / 147
Programação do robô 2
3.8 O tipo de dados de enumeração ENUM
Texto inequívoco 
como valor de 
variável
 O tipo de dados de enumeração consiste de uma quantidade limitada de 
constantes como verde, amarelo ou azul
 As constantes são nomes livremente selecionáveis
 As constantes são definidas pelo programador
 Um tipo de enumeração precisa primeiro ser definido, depois pode ser 
reutilizado
 Uma variável de trabalho como a cor da caixa do tipo COLOR_TYPE sem-
pre pode apenas ter o valor de uma constante
 A atribuição de valores de uma constante ocorre sempre com o símbolo #
Uso de um tipo de 
dados de enume-
ração
Disponibilidade / Uso
 Somente constantes conhecidas podem ser usadas
 Um tipo de enumeração pode ser ampliado à vontade
 um tipo de enumeração pode ser usado sozinho 
 Um tipo de enumeração pode ser incluído em uma estrutura 
Vida útil / Validade
 Tipos de dados de enumeração são inválidos ao alcançar a linha END
 Tipos de dados de enumeração usados em vários programas, deverão 
ser declarados na $CONFIG.DAT
Atribuição de nome
 Nomes de tipos de enumeração e suas constantes deverão ser auto-ex-
plicativos
 Não podem ser usadas palavras-chave
 Tipos de enumeração auto-explicativos deverão terminar com TYPE para 
facilitar o reconhecimento
Criação de um 
tipo de dados de 
enumeração
1. Definição das variáveis de enumeração e das constantes
2. Declaração das variáveis de trabalho
3. Inicialização das variáveis de trabalho
Fig. 3-3
ENUM COLOR_TYPE green, blue, red, yellow
ENUM COLOR_TYPE green, blue, red, yellow
ENUM COLOR_TYPE green, blue, red, yellow
STRUC CAR_TYPE INT motor, REAL price, COLOR_TYPE car_color
ENUM LAND_TYPE de, be, cn, fr, es, br, us, ch
DECL LAND_TYPE my_land
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
3 Variáveis e acordos
4. Comparação de valores das variáveis de trabalho
3.9 Exercício: Criar tipos de enumeração com KRL
Objetivo do 
exercício
Após a conclusão com êxito deste exercício, você estará em condições de 
executar as seguintes atividades:
 Gerar variáveis ENUM próprias (declaração) 
 Trabalhar com variáveis ENUM
Pré-requisitos São necessários os seguintes pré-requisitos para a conclusão com êxito des-
te exercício:
 conhecimentos teóricos sobre tipos de dados e estruturas simples 
 conhecimentos teóricos sobre variáveis ENUM simples 
Definição de 
funções
Amplie a sua estrutura de programa com o seguinte:
1. Gere uma variável ENUM cujo conteúdo inclua as cores vermelho, ama-
relo, verde e azul. 
2. Crie uma variável Lâmpada, à qual você atribui a cor azul.
3. No segundo passo, atribua à lâmpada a cor amarela. 
4. Amplie a sua estrutura BOX_Typ com o agregado cor e atribua à KISTE 
(CAIXA) no início a cor vermelha, depois amarela e no final a cor verde.
5. Exiba o conteúdo da variável KISTE (CAIXA) durante o procedimento. 
O que você deve saber agora:
1. Quem define a quantidade e os nomes das constantes no tipo de enume-
ração ENUM? 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
2. Quando é usado o ícone "#"?
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
3. O que está errado na seguinte geração? 
ENUM Tag_typ mo, di, mi, do, fr, sa, so
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
my_land = #be
IF my_land == #es THEN
...
ENDIF
43 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
44 / 147
Programação do robô 2
Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
4 Subprogramas e funções
4 Subprogramas e funções
4.1 Visão geral
Nesta unidade de aprendizagem são repassados os seguintes conteú-
dos:
 Subprogramas locais
 Subprogramas globais
 Transferência de parâmetros a subprogramas
 Programação de funções
4.2 Trabalhar com subprogramas locais
Definição de 
subprogramas 
locais
 Subprogramas locais estão após o programa principal e são caracteriza-
dos com DEF Nome_Subprograma( ) e END
 Um arquivo SRC pode consistir em até 255 subprogramas locais
 Subprogramas locais podem ser acessados diversas vezes
 Para os nomes de programas locais há necessidade de parênteses
Contextos no 
trabalho com 
subprogramas 
locais
 Após o processamento de um subprograma local é realizado o retorno no 
próximo comando na chamada do subprograma
 Podem ser colocados no máx. 20 subprogramas em cascata
 Coordenadas de pontos são salvas na respectiva lista DAT e estão dispo-
níveis para o arquivo completo
DEF MY_PROG( )
; este é o programa principal
...
END
_______________________________________
DEF LOCAL_PROG1( )
; este é o subprograma local 1
...
END
_______________________________________
DEF LOCAL_PROG2( )
; este é o subprograma local 2
...
END
_______________________________________
DEF LOCAL_PROG3( )
; este é o subprograma local 3
...
END
DEF MY_PROG( )
; este é o programa principal
...
LOCAL_PROG1( )
...
END
_______________________________________
DEF LOCAL_PROG1( )
...
LOCAL_PROG2( )
...
END
_______________________________________
DEF LOCAL_PROG2( )
...
END
45 / 147Edição: 17.10.2012 Versão: P2KSS8 Roboterprogrammierung 2 V2 pt (PDF-COL)
46 / 147
Programação do robô 2
 com RETURN pode ser concluído um subprograma, provocando um retor-
no para o componente de programa acessado
Procedimento ao 
criar subpro-
gramas locais
1. Grupo de usuários Peritos
2. Deixar exibir linha DEF
3. Abrir SRC-File no Editor
4. Saltar com o Cursor sob a linha END
5. Atribuir cabeçalho de programa local com DEF, nomes de programas e pa-
rênteses
6. Concluir novo subprograma com um comando END
DEF MY_PROG( )
; este é o programa principal
...
PTP P1 Vel=100% PDAT1
...
END
_______________________________________
DEF LOCAL_PROG1( )
...
; esta é a mesma posição que no programa principal
PTP P1 Vel=100% PDAT1
...
END
DEFDAT MY_PROG( )
...
DECL E6POS XP1={X 100, Z 200, Z 300 ... E6 0.0}
...
ENDDAT
DEF MY_PROG( )
; este é o programa principal
...
LOCAL_PROG1( )
...
END
_______________________________________
DEF LOCAL_PROG1( )
...
IF $IN[12]==FALSE THEN
RETURN ; retorno ao programa principal
ENDIF
...
END
DEF MY_PROG( )
...
END
DEF MY_PROG( )
...
END

Continue navegando