Documente Academic
Documente Profesional
Documente Cultură
TUTORIAL Nº 1
PROGRAMAÇÃO OFFLINE E SIMULAÇÃO COM O ROBOTSTUDIO 6.04
Índice
1 Objetivos ................ ................. ................. ................ ................. ................ ................. ..............2
2 Introdução
Dada a complexidade no desenvolvimento de uma tarefa automatizada com recurso a robôs, é
imprescindível a utilização desoftware de simulação para uma maior produtividade. Além de reduzir
o tempo de desenvolvimento e possíveis erros de conceção, permite ainda reduzir o tempo de
Neste tutorial encontra uma descrição passo a passo dos principais elementos do RobotStudio, bem
como exemplos e/ou ligações para exemplos fornecidos pelos docentes e/ou juntamente com o
software. Este tutorial foi desenvolvido de modo a que os estudantes adquiram autonomia na
procura de soluções para problemas inesperados que possam surgir. Assim, ao longo deste
documento encontrará vários ponteiros para secções de ajuda do próprio RobotStudio. Todos os
elementos que não façam parte deste tutorial, ou não sejam fornecidos juntamente com o
RobotStudio, são disponibilizados no Moodle ou num sítio Web relacionado com o fabricante com
a respetiva ligação explicitamente indicada na respetiva secção deste tutorial.
3 Elementos Base
Tal como indicado nas aulas teóricas, a cada manipulador robótico está associado um controlador
e uma consola, tal mostra aFigura 1.
No caso da ABB são utilizadas as seguintes terminologias (robôs de outras marcas usam
terminologias semelhantes):
• RAPID – linguagem de programação utilizada para controlar os robôs da ABB;
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 2/45
• Robot manipulator – corresponde ao manipulador robótico em si;
• Control module – corresponde ao módulo responsável pelo controlo dos movimentos do
robô, normalmente constituído por um computador capaz de interpretar linguagem RAPID e
comunicar com os módulos de acionamento;
• Drive module – módulo que contém a eletrónica de potência, capaz de receber as indicações
do módulo de controlo e acionar os motores das juntas do manipulador. Tipicamente um
módulo de acionamento da ABB suporta até 9 juntas, pelo que é necessário um módulo por
robô (o qual tem tipicamente 6 juntas);
• FlexController – Corresponde à unidade denominada como “Controlador” naFigura 1, a qual
contém o módulo de controlo, o módulo de acionamento, e outros módulos necessários ao
•
funcionamento do ABB (por
FlexPendant – Consola exemplo, ligado
de comando de comunicação);
ao controlador. Com um ecrã, que poderá ser
tátil, e teclas, esta permite de uma forma fácil a programação e controlo do manipulador
online;
• Tool – Ferramenta utilizada no elemento terminal do robô. A título de exemplo, e tal como
poderá confirmar na Figura 1, poderá ser utilizada uma garra;
• RobotWare – designação utilizada pela ABB para se referir aosoftware utilizado para
controlar o robô, i.e., corresponde ao sistema instalado no controlador;
• Station – ambiente de trabalho, constituído por um ou mais manipuladores robóticos e
demais objetos e mecanismos.
Consola
Manipulador
Controlador
1 Note-se que um ambiente de trabalho no RobotStudio é composto por múltiplos ficheiros. A opção Pack &
Go permite criar um único ficheiro comprimido que inclui todos esses ficheiros.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 5/45
O RobotStudio inclui alguns exemplos completos que pode experimentar, dois dos quais se
descrevem de seguida.
-
Figura 5 – Exemplo de soldadura.
3. Proceda com as opções indicadas por omissão, exceto relativamente à opçãoLibrary
Handling, onde deverá escolher a opção Load files from Pack & Go. Quando clicar em Finish
ambiente de trabalho será carregado (note que o carregamento do ambiente de trabalho
usando a opção Unpack and Work pode demorar algum tempo, podendo surgir alguns
avisos, os quais podem ser ignorados). No final deverá surgir um ambiente semelhante ao
da Figura 5. No canto inferior direito pode visualizar C
“ ontroller status: 1/1”, sendo o dígito
da esquerda o número de controladores utilizados, e o dígito da direita o número de
controladores ativos.
NOTA: Procure utilizar e desenvolver um dado ambiente de trabalho sempre na mesma pasta, no
mesmo PC, para assim evitar gastar tempo com a operação Unpack and Work.
Neste ambiente encontra um manipulador robótico e um posicionador, estando o manipulador
equipado com uma ferramenta de soldadura ABICOR Binzel.
Para iniciar a simulação do sistema, escolha o menuSimulation e pressione a opção Play. Em
qualquer altura poderá utilizar o botão esquerdo do rato para selecionar objetos do ambiente de
trabalho e o botão direito para aceder a opções desses mesmos objetos. A roda do rato permite
aproximar e afastar, Ctrl + botão esquerdo do rato permite arrastar o ambiente e, finalmente, Ctrl +
Shift + botão esquerdo do rato permite rodar o ambiente.
Feche o ambiente clicando no menuFile seguido da opção Close. Note que sempre que executa
uma simulação ocorrem alterações no ambiente, incluindo configuração dos robôs, posição dos
• Solution with Empty Station – cria um novo ambiente de trabalho completamente vazio numa
pasta isolada;
• Solution with Station and Robot Controller – cria um novo ambiente de trabalho apenas com
um robô e um controlador, de acordo com o modelo escolhido, numa pasta isolada;
• Empty Station – cria um novo ambiente de trabalho completamente vazio.
A forma típica para criar o ambiente é utilizar a opção Solution with Station and Robot Controller,
selecionando o manipulador que se pretende (veremos outras opções posteriormente).
Existe um canal no YouTube criado pela ABB, o qual contém um conjunto de tutoriais e guias para
iniciar a utilização do RobotStudio, os quais complementam a documentação fornecida pelos
docentes e pela ajuda do RobotStudio. Poderá aceder a esse canal em
3
:
http://www.youtube.com/user/RobotStudio
Note no entanto que uma boa parte dos tutoriais disponibilizados naquele canal estão
desatualizados e não são aplicados diretamente na versão utilizadas nas aulas. De salientar ainda
que, para a realização dos trabalhos e conclusão da UC não é necessário consultar esses vídeos,
embora o possa fazer.
2 Para verificar quais os tipos de ficheiros suportados para importar objetos 3D para o RobotStudio, clique em
Home Import Geometry Browse for Geometry e confirme na nova janela as extensões suportadas. Note
que algumas geometrias não permitem operações de snap, como é o caso das criadas no Google SketchUp.
3 Poderá visualizar algumas reportagens sobre casos reais na utilização de manipuladores robóticos, em
4O nome do robô indica que este é um modelo com 6 kg de carga máxima suportada e 1.2 m de alcance
máximo.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 9/45
World Coordinate System – Este é o referencial do mundo, que serve de base a todo o
ambiente de trabalho. Sempre que alguma coordenada é especificada em coordenadas do
mundo, é a este referencial que se refere;
Task Frame Coordinate System – Este referencial, definido relativamente ao referencial
anterior, pode ser usado como referencial base de uma dada tarefa. É sobretudo útil se
houver múltiplas células de trabalho no mesmo ambiente, com múltiplos robôs ou
mecanismos a trabalhar numa mesma célula. Nessa situação poderá haver um mesmo
referencial base para os vários robôs ou mecanismos
5
;
Base Coordinate System – Sistema de coordenadas base associado a cada robô,
localizado por omissão no centro da base do mesmo, junto ao plano de apoio da sua base;
Tool Center Point Coordinate System (TCP) – Referencial associado à ferramenta.
Tipicamente o local onde a ferramenta deverá trabalhar será especificado para que o TCP
fique coincidente com essa postura, sendo essa postura a que é armazenada durante a
opção Teach Target(a descrever posteriormente). Cada robô tem um referencial por omissão
denominado tool0, inicialmente localizado no extremo do punho;
Workobject Coordinate System – O Workobject é um referencial auxiliar que pode servir
de base a uma qualquer zona de trabalho, facilitando a alteração e especificação de pontos
de trabalho com base em objetos existentes. Por omissão todos os robôs possuem
inicialmente um Workobject denominado wobj0, o qual é coincidente com o referencial base
do robô.
A título de exemplo pode observar um conjunto de referenciais na Figura 11 num ambiente
semelhante ao que irá criar ao longo deste tutorial. Neste exemplo os referências do mundo, de
base do robô, da tarefa, bem como o Workobject por omissão (wobj0) estão coincidentes. O
referencial da “ferramenta”
AW_Gun corresponde por omissão,
ao referencial
tool0, encontra-se no extremo do punho. O referencial
associado à ferramenta inserida no robô. Neste exemplo foi
ainda adicionado um novo Workobject (Workobject_1), associado a um hipotético espaço de
trabalho (neste caso a face superior do cubo exibido). Note que as cores dos eixos são sempre as
mesmas, isto é, os eixos X são vermelhos, os Y são verdes e os Z são azuis (XYZ ↔ RGB).
tool0 AW_Gun
Figura 10 – Relação entre os vários referenciais. Figura 11 – Examplo the referenciais utilizados.
5Note que não é obrigatória esta abordagem quando são utilizados múltiplos robôs. A abordagem típica é que
cada robô utilize o seu referencial base, sendo assim os movimentos independentes.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 10/45
espaço de trabalho, operações a efetuar e alcance necessário. Assim, a escolha do robô deverá ser
feita apenas depois de responder a estas questões. Em termos de alcançabilidade, isto é,
determinação do espaço de trabalho do robô, o RobotStudio possui uma ferramenta útil (note que
o alcance do robô, bem como a carga máxima e outros dados fazem parte das especificações
tipicamente disponibilizadas pelo fabricante).
Tendo por base a estação criada anteriormente (verFigura 9) clique, no separador Layout, com o
botão direito do rato no robô (IRB1600_6_120__02) e selecione a opçãoShow Work Envelope,
resultando no ambiente de trabalho ilustrado naFigura 12. Desta forma fica bem patente quais os
pontos que o robô consegue alcançar.
Note que esta informação só por si não é suficiente, pois o facto de o robô atingir um dado ponto
com uma determinada orientação não significa que o consiga com qualquer outra orientação. Assim,
se o robô irá conseguir ou não atingir uma determinada postura (posição mais orientação) irá
depender muito da orientação escolhida.
i. Clique num dos campos das coordenadas do ponto de srcem (Primary Point - From)
e depois clique num canto inferior do objeto. Depois clique num dos campos das
coordenadas do ponto destino P ( rimary Point - To) e clique um canto correspondente
6 Pode ainda aplicar uma operação de rotação seguindo passos similares com a opção de rotação/orientação.
7 Opções semelhantes às que encontra no AutoCAD ou outro qualquer software de desenho geométrico.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 13/45
do tabuleiro da mesa, à semelhança do ilustrado naFigura 22;
Relativamente aos objetos compostos apenas por figuras geométricas, o RobotStudio permite
importar um conjunto de formatos diferentes, nomeadamente sat, igs/iges, stp/step/p21, vda/vdafs,
model/exp, CATPart/CATProduct, prt/asm, ipt, wrl/vrml/vrml1/vrml2, jt, stl, ply, 3ds e dae (aceda à
lista completa fazendo Home Import Geometry Browse for Geometry). Note no entanto que
alguns formatos poderão necessitar de uma licença extra. Com a instalação do RobotStudio é ainda
disponibilizada uma ferramenta que permite converter conjuntos de ficheiros do AutoCAD numa
única operação, ferramenta essa denominada deCAD Converter.
Caso o estudante se sinta confortável com um destes formatos pode desenvolver o seu ambiente
de trabalho na aplicação correspondente e importá-la no RobotStudio. Caso contrário pode
desenvolver o ambiente no próprio RobotStudio, embora com bastantes limitações quando
comparado com aplicações específicas de modelação e desenho 3D. Lembre-se que o RobotStudio
é um software de simulação na área da Robótica, não é umsoftware de desenho.
Os passos seguintes descrevem a utilização básica do RobotStudio para criar figuras geométricas:
1. Abra a estação criada anteriormente, caso esteja fechada, e selecione a opção Modeling
Solid Box (ver Figura 25);
2. Como pode confirmar na Figura 26, na definição da posição e dimensão do paralelepípedo
tem a opção de escolher qual o referencial utilizado como base (por omissão é no referencial
do mundo). Neste caso pretende-se adicionar um paralelepípedo com 600 mm de lado,
centrado na posição (0, 1100, 0) [mm] e orientado segundo os eixos de coordenadas. Dado
que a especificação da posição do paralelepípedo se baseia num dos vértices deste, tem
que introduzir as coordenadas para o vértice (-300, 800, 0) [mm] e orientação (0,0,0) para
manter o alinhamento com o referencial de base. Relativamente à dimensão, se colocar
apenas o comprimento, o RobotStudio assume a mesma dimensão para todos os lados.
Corner
Point
Existe um conjunto de formas geométricas que pode criar, bem como um conjunto de operações
que pode efetuar, todas disponibilizadas a partir do menuModeling. Estas figuras geométricas e
operações são em tudo idênticas às existentes em aplicações de modelação 2D e 3D. Encontra
mais informação sobre as mesmas emRobotStudio Help Modeling Tab.
NOTA: Os nomes atribuídos aos vários elementos constituintes do ambiente de trabalho podem
facilmente ser editados clicando duas vezes com o botão esquerdo do rato nos mesmos, ou clicando
com o botão direito do rato seguido da opçãoRename. Procure atribuir sempre nomes sugestivos
aos vários elementos, permitindo assim uma mais fácil reutilização, depuração e avaliação do
trabalho desenvolvido.
4 Criar um Workobject
Tal como detalhado na ajuda do RobotStudio, na secção “How to program robots”, item
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 20/45
“Workobjects”, um Workobject consiste num referencial de coordenadas que é utilizado como
srcem na criação de um conjunto de posturas/caminhos tipicamente associados a um objeto, área
de trabalho e operação específicos. Considere que criou um caminho ao longo das arestas de um
dado objeto e que esse caminho tem por base umWorkobject. Caso pretenda processar a peça
numa postura diferente, tudo o que terá que fazer será reajustar o Workobject. Caso não tivesse
usado um Workobject nessa situação, seria necessário refazer todo o caminho e criar novamente
todas as posturas associadas. É fundamental a utilização de Workobjects para cada operação,
devendo sempre começar qualquer tarefa pela criação destes.
Outro conceito importante reside na escolha da configuração com que cada postura é atingida num
dado caminho. Embora tipicamente um manipulador, em particular um com seis juntas, seja capaz
de atingir a mesma postura com várias configurações distintas (valores diferentes de juntas), a
escolha das configurações é crucial para a execução do caminho com sucesso. Ao longo desta
secção ficará mais familiarizado com este conceito.
Realize os seguintes passos:
1. Abra o ambiente de trabalho gerado no tutorial anterior;
2. Selecione a peça em cima da mesa e centre-a no
separador de visualização, clicando na mesma com o
botão direito do rato e escolhendo a opçãoView Center.
Faça zoom à peça, resultando numa visualização
semelhante à da Figura 42;
3. Ative a opção Snap End ou Snap Object;
Figura 42 – Visualização da peça.
4. Clique em Home Other Create Workobject;
5. Modifique o nome do Workobject de Workobject_1 para MyWorkobject (procure sempre que
estes nomes sejam sugestivos);
Figura 45 – Criação de posturas num objeto. Figura 46 – Posturas criadas num objeto.
3. De modo a facilitar a perceção das posturas definidas é possível visualizar a ferramenta do
robô nestas. Para tal selecione todas as posturas do Workobject criado e ative a opção
Target Tools Modify View tool at target MyTool, resultando na informação disponível
na Figura 47.
Figura 48 – Posturas após primeira rotação. Figura 49 – Posturas após segunda rotação.
4. Tal como aFigura 47 mostra, as posturas escolhidas não são as ideais, pelo que têm de ser
alteradas. Para tal, mantendo todas as posturas selecionadas, clique emTarget Tools
180º, obtendo o .resultado
Modify Rotate Com o referencial local selecionado, selecione o eixo de rotação X e rode
ilustrado naFigura 48. Selecione agora o eixo de rotação Z e rode
novamente 180º, obtendo o resultado ilustrado naFigura 49;
8Poderá também aceder à opção Jump To Target clicando com o botão direito do rato na postura. Um número
razoável das opções disponíveis nos menus está também disponível por esta via.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 23/45
6. Ative a opção Target Tools Modify View Robot at Target de modo a visualizar o robô
na postura selecionada. Selecione uma postura de cada vez das 4 criadas para o Workobject
e escolha a configuração desejada, de preferência a mesma que na postura anterior ou
próxima desta. Após configurar todas as posturas feche a janela das configuraçõe
s e cancele
a opção View Robot at Target. Note que à medida que configura as posturas estas deixam
de ter um ponto de exclamação associado, indicando que a postura foi verificada e é
alcançável pelo robô;
7. Crie um novo caminho vazio e adicione estas 4 posturas a esse caminho, arrastando-as
para lá;
8. Teste a execução do caminho, selecionando o mesmo e clicando emPath Tools Modify
Move Along Path, obtendo a trajetória indicada na Figura 51;
9. Como pode verificar pelo resultado obtido, o robô não executa os movimentos sempre em
linha reta entre posturas consecutivas, embora o resultado seja bastante mais próximo do
que o esperado, comparativamente à utilização de movimentos de juntasMoveJ( ). Tal deve-
se aos parâmetros utilizados para o movimento. Como não efetuou qualquer alteração a
estes parâmetros, este terá sido definido com as características indicadas na barra inferior
da janela do RobotStudio, nomeadamente movimentos lineares(MoveL) com velocidade de
1000 mm/s (v1000), aproximação de 100 mm (z100), a ferramenta MyTool e o Workobject
MyWorkobject (pode confirmar estes parâmetros colocando o ponteiro do rato por cima de
cada instrução de movimento). Neste caso em concreto, como definiu uma aproximação de
100 mm, assim que o robô estiver a menos de 100 mm da próxima postura, este avança
para o movimento seguinte;
Figura 51 – Caminho executado com erro. Figura 52 – Caminho executado com precisão.
10. Para a trajetória a realizar, tem duas hipóteses: poderá apagar as instruções, alterar as
opções na barra inferior da janela do RobotStudio e voltar a adiciona-las; alternativamente
pode selecionar todos os movimentos no separadorPaths&Targets e, clicando com o botão
direito do rato, escolher a opção Edit Instruction. Na janela que aparece altere a opçãozone
de z100 para fine, a precisão máxima do robô. Clique emApply e feche a janela;
11. Aceda novamente à opção Simulation Monitor e clique na opçãoClear Trace para apagar
o traçado anterior e altere a cor para magenta para ser mais visível;
12. Corra novamente o caminho criado e verifique que a trajetória realizada pela ferramenta é a
apresentada na Figura 52. Verifique ainda que agora o robô para nos cantos da peça por
breves instantes, algo que não acontecia no movimento anterior;
13. Grave o ambiente criado.
z5
z10 5 mm
10 mm 8 mm
15 mm 8 mm
15 mm
z15 15 mm 23 mm 23 mm
z20 20 mm 30 mm 30 mm
z30 30 mm 45 mm 45 mm
z40 40 mm 60 mm 60 mm
z50 50 mm 75 mm 75 mm
z60 60 mm 90 mm 90 mm
z80 80 mm 120 mm 120 mm
z100 100 mm 150 mm 150 mm
z150 150 mm 225 mm 225 mm
z200 200 mm 300 mm 300 mm
Nesta secção
associados teve
aos oportunidade
objetos de confirmar
ou espaços as Caso
de trabalho. vantagens associadas
não tivesse à utilização
utilizado de
Workobjects
um Workobject nesta
situação, teria que ter criado novamente todos os pontos um a um e gerado o caminho novamente,
o que seria um processo mais moroso face à atualização doWorkobject, mesmo num caso simples
como este.
Figura 88 – Lista final de sinais do utilizador. Figura 89 – Simulador de E/S com lista de utilizador.
16. Inicie novamente a simulação (Simulation Play) e force a entrada diStartOperation a 1
para o sistema IRB_1600_6kg_1.2m. Verifique que o robô executa a trajetória e ativa a saída
diOperationEnded no final. Repita as operações para o outro robô e verifique o mesmo
comportamento;
17. Embora já seja possível controlar a operação de ambos os robôs, estes não executam ainda
as operações de forma coordenada, pois falta ainda interligar os robôs. Clique em
Simulation
Station Logic, resultando na janela da Figura 90. Esta janela permite definir a lógica de
funcionamento de alto nível da estação de trabalho, incluindo ligações entre controladores
e outros dispositivos;
18. Neste caso apenas existem dois controladores/robôs em termos de equipamento ativo, o
que pode ser confirmado clicando no separadorDesign, como mostra a Figura 91. Para
interligar os mesmos, aceda ao separadorSignals and Connections e clique em Add I/O
Connections. Na janela que aparece escolha as opções como mostra a Figura 92 e clique
em OK;
Nesta secção terá oportunidade de interagir diretamente com o código RAPID e ficar a conhecer as
principais funções deste. Para informação mais detalhada dessas e outras funções deverá consultar
a ajuda RAPID indicada acima.
Com os próximos passos pretende-se perceber como é feito o acesso ao código RAPID. O código
será ainda alterado para que o robô esteja a operar continuamente, sem que para tal seja necessário
alterar a configuração da simulação ou forçar manualmente uma entrada do robô.
1. Abra o ambiente criado na secção anterior, caso não esteja aberto;
2. Vá a Simulation Simulation Setup e confirme que a opção Single Cycle está selecionada
para ambos os controladores;
3. No I/O Simulator verifique que todas as entradas e saídas que foram adicionadas a ambos
os controladores estão a 0.
4. Arranque a simulação, situação em que os robôs deverão ficar parados à espera da entrada
digital a 1, como mostra a Figura 94;
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 37/45
5. Clique no menu RAPID, surgindo o ambiente ilustrado na Figura 94;
6. Selecione o menu Controller e faça duplo clique em IRB1600_6kg_1.2m_1 RAPID
T_ROB1 Module1, surgindo o programa em código RAPID associado ao móduloModule1
do controlador (ver Figura 95);
O módulo gerado automaticamente pelo RobotStudio com base nas posturas e caminhos criados
tem tipicamente atribuído o nomeModule1. A linha de códigoMODULE Module1 no início do ficheiro
identifica isso mesmo, isto é, o início do módulo denominadoModule1. Pode igualmente verificar
que o módulo é terminado com a instrução ENDMODULE.
Imediatamente após o início do módulo encontra a definição das posturas definidas no ambiente
gráfico do RobotStudio, sendo estas constantes ( CONST) do tipo robtarget. Estes valores não
deverão ser editados diretamente em código.
De seguida encontra procedimentos (funções), cujo início e fim estão identificados pelas instruções
PROC função() e ENDPROC, respetivamente. Estes procedimentos são o equivalente às funções
em linguagem C, podendo também ter argumentos. A funçãomain, tal como em linguagem C,
corresponde à função principal, sendo esta a função chamada quando o código arranca. Quando
esta função
pois não terminar
foi ainda o programa
definida, termina
dado que a sua aexecução.
foi definida Neste momento
função Path_Part_surf esta
como função
sendo não existe,
a função de
arranque (caso nada seja feito, por omissão a funçãomain é a função principal, de arranque).
8. No código gerado pode confirmar que existem uma função,Path_Part_surf(), a qual
corresponde exatamente aos caminhos criados anteriormente no ambiente gráfico;
9. Para resolver o problema de ser necessário ativar uma entrada para o sistema arrancar,
basta agora adicionar essa instrução diretamente no código RAPID. De facto, para ter
maiores garantias no arranque, devem sempre confirmar o estado inicial do sistema e
A conjugação da criação de caminhos no ambiente gráfico, com a edição direta do código RAPID,
permite criar simulações mais complexas, aliando uma fácil e prática criação de caminhos com a
utilização de um conjunto vasto de instruções disponibilizadas pela linguagem RAPID, à
semelhança de uma outra qualquer linguagem de programação (por exemplo, C). É assim possível
criar execuções alternativas com base em, por exemplo, informação de sensores ou ordens
externas.
11
Principais
Tal como InstruçõesemRAPID
indicado anteriormente, RobotStudio Help RAPID Instructions, Functions and Data
types encontra a descrição detalhada de todas as funções RAPID existentes. EmRobotStudio Help
Additional Resources RAPID Overview encontra uma introdução ao RAPID. Nesta secção
procura-se documentar as principais instruções, devendo consultar os documentos acima para mais
detalhes.
11.1.2 Constantes
Constantes são variáveis cujo valor é atribuído na declaração e não pode ser alterado
posteriormente.
11.1.3 Operadores
Tal como em C, estão disponíveis operadores numéricos e relacionais. Os operadores numéricos
básicos são os mesmos da linguagem C, isto é:
+: adição;
-: subtração;
*: multiplicação;
/: divisão.
Relativamente aos operadores relacionais, são em tudo semelhantes aos da linguagem C:
=: comparação de igualdade;
<: comparador menor;
>: comparador maior;
<=: comparador menor ou igual;
>=: comparador maior ou igual;
<>: comparador de não igualdade;
É também possível utilizar o operador “+” para concatenação de cadeias de caracteres
Neste exemplo o robô parte da postura onde se encontrar e realiza uma trajetória circular que passa
pela postura Target_90 e termina na postura Target_100.
Na primeira instrução utiliza-se a instruçãoOffs para movimentar o robô para uma postura 10 mm
acima em z relativamente à postura p2. Na segunda instrução é guardada na variávelp3 uma
postura definida relativamente à postura p1.
A instrução RelTool é semelhante à instruçãoOffs mas permite definir uma orientação além de um
deslocamento. Veja-se um exemplo.
2016/2017 – 2º Semestre, EEC, RVC Hugo Costelha e Carlos Simplício 43/45
EXEMPLO: Utilização da instrução Offs
MoveL RelTool (p1, 0, 0, 0 \Rx:=25 \Ry:=25 \Rz:=25), v100, fine, tool1;
As
ser principais
utilizadasinstruções para
diretamente emlerinstruções
e escreverrelacionais.
de sinais são SetDO e WaitDI. As entradas podem ainda
Veja-se os exemplos que se seguem.
Esta instrução atualiza o valor da saídadoMechanismControl para o valor 0. Note-se que é possível
incluir outros argumentos, como por exemplo um atraso. Consulte a documentação do RAPID para
mais informação.
Esta instrução bloqueia a execução do programa até que a entradadiDoorClosed tenha o valor 1.
É possível especificar um tempo máximo de espera (consulte a documentação do RAPID para mais
informação).
EXEMPLO: Teste de entradas
IF diDoorClosed = 1 THEN
MoveL p10, v1000, fine, tPen;
ENDIF
se, se possível,
gerando assim um que alterecom
ficheiro a extensão
uma taxaselecionada paraMP4
de compressão mais eelevada,
o CODEClogoutilizado para H.264,
mais pequeno.