Você está na página 1de 74

Universidade de Aveiro

2007
Departamento de Engenharia
Mecnica








Rui Cancela Extenso e flexibilizao da interface de controlo
de um manipulador robtico FANUC

































Universidade de Aveiro
2007
Departamento de Engenharia
Mecnica








Rui Cancela Extenso e flexibilizao da interface de controlo
de um manipulador robtico FANUC





Dissertao apresentada Universidade de Aveiro para
cumprimento dos requisitos necessrios obteno do grau de
Mestre em Engenharia Mecnica, realizada sob a orientao
cientfica do Prof. Dr. Vtor Santos, Professor Associado do
Departamento de Engenharia Mecnica da Universidade de
Aveiro



















Mestrado em Engenharia Mecnica









































jri

presidente
Prof. Dr. J os J oaquim de Almeida Grcio
Professor Catedrtico | Dept. de Engenharia Mecnica | Universidade de Aveiro


Prof. Dr. Fernando Macedo Ribeiro
Professor Associado | Dept. de Electrnica Industrial | Universidade do Minho


Prof. Dr. Vtor Manuel Ferreira dos Santos
Professor Associado | Dept. de Engenharia Mecnica | Universidade de Aveiro

Mestrado em Engenharia Mecnica





































agradecimentos

Ao Prof. Vtor Santos pela orientao, apoio e inspirao no s neste trabalho
mas nos ltimos anos ligados robtica.
Ao Miguel e ao David por todo o apoio e imprescindvel ajuda nas longas noites.
Ao Germano por todas as horas passadas a conversar sobre robtica.
Carla pela imensa pacincia e compreenso.
E aos meus pais por terem tornado possvel ter chegado at aqui.

Motofil Robotics, S.A. na pessoa do Sr. J oo Carlos Novo, pela
disponibilizao do equipamento sobre o qual foi desenvolvido este trabalho.

Rui Cancela
Setembro | 2007
Mestrado em Engenharia Mecnica











































Rob industrial

Mquina manipuladora com vrios graus de liberdade
controlada automaticamente, reprogramvel em posio,
velocidade e acelerao, que pode estar fixa ou mvel e
destinada a tarefas de automatizao industrial.

In ISO 8373:1994 [19]

Mestrado em Engenharia Mecnica



Mestrado em Engenharia Mecnica










palavras-chave

Clulas flexveis de fabrico, manipulador industrial, programao, comunicao


resumo


ainda hoje relativamente pouco explorado na prtica o
desenvolvimento de solues que impliquem conectividade, interface homem-
mquina e gesto de clulas de fabrico utilizando equipamentos robotizados,
nomeadamente quando utilizados em conjuno com outros equipamentos
produtivos. Uma maior e melhor interactividade e conectividade com os
controladores bastante interessante e, por isso, pertinente de explorar e
desenvolver. Os robs industriais ainda no so utilizados em diversas
aplicaes tipicamente encontradas em PMEs, dadas as complexas
configuraes das clulas de fabrico, restries do ambiente operativo e
dificuldades na programao dinmica de tarefas. A flexibilidade , sem dvida,
o mote da robtica industrial actual.
Assim, este trabalho adopta o caso particular do controlador FANUC,
com grande expresso no parque industrial Ibrico, e pretendeu explorar e
desenvolver interfaces para a conectividade com outros equipamentos,
incluindo computadores ou outras mquinas industriais, utilizando as
ferramentas e hardware disponibilizados pelo fabricante.
No mbito deste trabalho foram desenvolvidas ferramentas de software
para o controlador FANUC RJ3iC actuando como entidade servidora de uma
arquitectura cliente-servidor baseada em ethernet e sockets TCP/IP e
implementando uma linguagem, tambm ela desenvolvida no mbito deste
trabalho, de suporte programao e comunicao entre dispositivos clientes e
o servidor.
Foi tambm desenvolvida uma aplicao cliente para PC actuando como
dispositivo cliente remoto de forma a validar a aplicao e demonstrar a
robustez, versatilidade e eficincia do processo de comunicao e
programao.
Os resultados obtidos demonstram que a abordagem e a estratgia
utilizada na implementao da ferramenta desenvolvida so adequadas e
contribuem para melhorar a comunicao entre dispositivos, disponibilizando
um interface de programao de robs industriais a dispositivos remotos
baseados em PC com total independncia de plataforma e utilizando redes de
comunicao convencionais ethernet.

Mestrado em Engenharia Mecnica










key words

Flexible work cells, industrial manipulator, programming, communication


abstract

The development of solutions that imply connectivity, man machine
interface and work cell management using robotics equipments is still relatively
unexplored in practice, namely when used in conjunction with other production
equipments. More and better interactivity and connectivity with the robots is
interesting and, thus, pertinent to explore and develop. Industrial robots are still
not used in several applications typically found in the SMEs given the complex
work cell configurations, operating environment restrictions and difficulties in
dynamic task programming. Flexibility is, undoubtedly, the keyword of current
industrial robotics.
Thus this work adopts the particular case of the FANUC controller, which
has great expression in the Iberian industrial park and aims to explore and
develop interfaces for the connectivity with other equipments, including
computers or other industrial machines, using the tools and hardware made
available by the manufacturer.
Software tools for the FANUC RJ3iC controller were developed, this
acting as server entity of ethernet client-server architecture and TCP/IP sockets
and implementing a language, it too developed along this work, that supports
programming and communication between client entities and the server.
A client PC application was also developed, acting as a remote client, in
order to validate the application and demonstrate the robustness, versatility and
efficiency of the communication and programming process
The results obtained show that the adopted concept and strategy for the
developed tool contributes to enhance the communication between equipments,
making available an industrial robots programming interface to remote PC
based equipments, with full platform independence and using ethernet
conventional communication networks.



Mestrado em Engenharia Mecnica

9|74

















ndice de figuras

Figura 1 Instalaes de robs industriais por pais ...............................................17
Figura 2 Instalaes de robs industriais 2002-2003 e previso 2004-2007.......17
Figura 3 Evoluo do preo de robs industriais 1990-2003 ...............................17
Figura 4 O futuro da robtica industrial em 1981.................................................18
Figura 5 Programao on-line............................................................................22
Figura 6 Programao offline.............................................................................22
Figura 7 Linguagem KUKA

KRL

.......................................................................22
Figura 8 Linguagem ABB

RAPID

......................................................................22
Figura 9 Linguagem FANUC

TPE

.....................................................................23
Figura 10 Exemplo de linha de programao FANUC

TP ..................................23
Figura 11 Programao offline de trajectrias FANUC

Roboguide

................24
Figura 12 Deteco automtica de arestas - FANUC

Roboguide

.....................24
Figura 13 Programao offline com dispositivos perifricos de interface.............24
Figura 14 Simulao de clula flexvel de fabrico ................................................24
Figura 15 Programao offline DS DELMIA......................................................25
Figura 16 Consola FANUC

iPendant

[12]........................................................28
Figura 17 Consola YASKAWA

XRC

[12] ..........................................................28
Figura 18 Distribuio de tipos de programao de robs na indstria [12].........29
Figura 19 Distribuio de utilizao de robs por tipo de operador [12]...............29
Figura 20 Dispositivos tpicos numa clula de soldadura.....................................29
Figura 21 Robs industriais em redes de comunicao.......................................30
Figura 22 Modelo OSI Sete camadas [22].........................................................31
Figura 23 Modelo OSI Conectividade entre camadas [12]................................31
Figura 24 O modelo cliente servidor para aplicaes [12]....................................33
Figura 25 Protocolo TCP/IP [12]...........................................................................35
Figura 26 Diagrama de estados do protocolo TCP ..............................................36
Figura 27 Etapas e procedimentos de um servidor de sockets genrico.............37
Figura 28 Algoritmo genrico em pseudo-cdigo.................................................37
Figura 29 Etapas e procedimentos de um cliente de sockets genrico................38
Figura 30 Algoritmo genrico em pseudo-cdigo.................................................38
Figura 31 Exemplo de implementao de cliente ( C#).......................................38
Figura 32 Unidade mecnica FANUC

M6iB [10] ................................................41


Mestrado em Engenharia Mecnica

10|74

Figura 33 Volume de trabalho FANUC

M6iB/6S [8]............................................41
Figura 34 Controlador FANUC

System RJ 3iC [8]...............................................42


Figura 35 Aspecto interior do controlador FANUC

RJ 3iC [8]..............................42
Figura 36 Conectividade do controlador FANUC RJ 3iC [8]..................................42
Figura 37 Explorador HTML integrado.................................................................42
Figura 38 Servidor HTTP......................................................................................42
Figura 39 Implementao da plataforma em LAN................................................44
Figura 40 Abordagem cliente-servidor ................................................................44
Figura 41 Modelo OSI Camadas de aplicao e de transporte [22]..................44
Figura 42 Etapas e procedimentos da arquitectura cliente servidor utilizada.......45
Figura 43 robCOMM

Ecran inicial....................................................................46
Figura 44 robCOMM

- Menu inicial.....................................................................46
Figura 45 robCOMMCliente Aspecto da interface grfica..............................47
Figura 46 robCOMMCliente Exemplo de menu de configurao...................47
Figura 47 Exemplo da linguagem robCOMM.......................................................47
Figura 48 robCOMM

Ligao e execuo de uma instruo...........................49


Figura 49 robCOMM

Cliente - Instruo e recepo de resultados....................49


Figura 50 Implementao industrial tpica de um sistema de viso .....................50
Figura 51 Conveno D-H [18].............................................................................51
Figura 52 Mariz transformao de sistema de coordenadas [17].........................51
Figura 53 Composio de ponto cartesiano [7]....................................................54
Figura 54 Configurao [7]...................................................................................54
Figura 55 Redundncias [7].................................................................................54
Figura 56 Composio de configurao de juntas [7] ..........................................55
Figura 57 Movimento em junta [7]........................................................................55
Figura 58 Movimento linear [7].............................................................................55
Figura 59 Ecran TP com posio de juntas [7].....................................................56
Figura 60 Ecran TP com posio cartesiana [7]...................................................56
Figura 61 Posio actual do TCP [7]....................................................................56
Figura 62 Exemplo de volume de trabalho de um manipulador industrial [7].......57
Figura 63 Cinemtica directa e inversa [17].........................................................58
Figura 64 Instruo movThPth.............................................................................59
Figura 65 Instruo setToolFrm [7] ......................................................................62
Figura 66 TCP - Tool Center Point [7]..................................................................62
Figura 67 Instruo setToolFrm...........................................................................62
Figura 68 Parmetros setAio / setDio...................................................................62
Figura 69 Diagrama de aceleraes [7] ...............................................................62
Figura 70 Instruo setSpeed..............................................................................63
Figura 71 Parmetros setSpeed...........................................................................63
Figura 72 Instruo stopServ...............................................................................63
Figura 73 Parmetros stopServ............................................................................63


Mestrado em Engenharia Mecnica

11|74



















ndice de tabelas

Tabela 1 Comparao entre redes de comunicao [8].......................................30
Tabela 2 Especificaes FANUC

M6iB/6S [8]....................................................41
Tabela 3 Tarefa, servio, instruo e parmetros ................................................48
Tabela 4 Resumo de intrues robCOMM language ...........................................53
Tabela 5 Instrues movToCPos / movToJ Pos ...................................................55
Tabela 6 Parmetros movToCPos / movToJ Pos .................................................55
Tabela 7 Instrues getCrcPos / getCrjPos..........................................................56
Tabela 8 Parmetros getCrcPos / getCrjPos........................................................56
Tabela 9 Instruo checkCPos /checkJ Pos .........................................................57
Tabela 10 Parmetros checkCPos / checkJ Pos...................................................57
Tabela 11 Instrues getdirkin / getrevkin............................................................58
Tabela 12 Parmetros getdirkin / getrevkin..........................................................58
Tabela 13 Instruo getReg.................................................................................58
Tabela 14 Parmetros getReg.............................................................................58
Tabela 15 Instrues listTp / runTp......................................................................59
Tabela 16 Parmetros listTp / runTp....................................................................59
Tabela 17 Instruo setPath / movThPth.............................................................60
Tabela 18 Parmetros setPath / movThPth..........................................................60
Tabela 19 Instrues listTp / runTp......................................................................60
Tabela 20 Parmetros listTp / runTp....................................................................60
Tabela 21 Instrues getAio / getDio ...................................................................61
Tabela 22 Parmetros getAio / getDio ................................................................61
Tabela 23 Instrues setAio / setDio....................................................................61
Tabela 24 Parmetros setAio / setDio..................................................................61

Mestrado em Engenharia Mecnica

12|74



















ndice


1. Introduo...........................................................................................................16
1.1. Objectivos genricos.....................................................................................16
1.2. Mtodo..........................................................................................................16
2. Enquadramento...................................................................................................17
2.1. I&D em robtica industrial.............................................................................17
2.2. Robotizao de tarefas industriais................................................................18
2.3. A robtica na industria..................................................................................18
2.4. Manipuladores industriais em clulas flexveis de fabrico.............................19
3. Programao e interface de robs industriais .....................................................21
3.1. Linguagens e tcnicas de programao: estado da arte..............................21
3.1.1. Programao online: Linguagens proprietrias......................................22
3.1.2. Programao offline...............................................................................23
3.2. Controladores e dispositivos de interface.....................................................27
3.2.1. Controladores industriais: Estado da arte ..............................................27
3.2.2. Consolas de programao.....................................................................28
3.3. Comunicao................................................................................................29
3.3.1. Modelo OSI e protocolos de comunicao.............................................31
3.3.2. Modelo cliente-servidor..........................................................................33
3.3.3. Sockets TCP/IP......................................................................................34
3.3.4. Protocolos e endereamento .................................................................34
3.3.5. Endereamento......................................................................................35
3.3.6. Modos de operao................................................................................36
3.3.7. Implementao de servidor...................................................................37
3.3.8. Implementao de cliente ......................................................................37
4. Abordagem..........................................................................................................40
4.1. Objectivos.....................................................................................................40
4.2. Plataforma utilizada......................................................................................40
4.2.1. FANUC M6iB/6S RJ 3iC..........................................................................40
4.2.3. Sistema operativo - FANUC Handling Tool ............................................43
Mestrado em Engenharia Mecnica

13|74

4.2.4. Linguagens de programao..................................................................43
4.2.5. Implementao em LAN.........................................................................43
4.3. Arquitectura e estratgia...............................................................................44
4.4. Implementao.............................................................................................45
4.4.1.Desenvolvimento de um servidor............................................................46
4.4.2. Desenvolvimento de um cliente .............................................................46
4.4.3. Desenvolvimento de uma linguagem.....................................................47
5. robCOMM

..........................................................................................................48
5.1. Fundamentos e enquadramento...................................................................48
5.2. Arquitectura e definies ..............................................................................48
5.3. Exemplo de aplicao...................................................................................49
5.4. Servios disponveis.....................................................................................50
5.4.1. Servios de movimento..........................................................................50
5.4.2. Servios de manipulao de dados........................................................50
5.4.3. Servios de clculo................................................................................51
5.4.4. Servios de execuo de programas .....................................................51
5.4.5. Gesto de erros......................................................................................52
6. A linguagem robCOMM

.....................................................................................53
6.1. Fundamentos................................................................................................53
6.2. Instrues disponveis ..................................................................................54
6.2.1. MOVTOCPOS e MOVTOJ POS..............................................................54
6.2.2. GETCRCPOS e GETCRJ POS...............................................................56
6.2.3. CHECKCPOS e CHECKJ POS...............................................................57
6.2.4. GETDIRKIN e GETREVKIN...................................................................58
6.2.5. GETREG................................................................................................58
6.2.6. SETREG ................................................................................................59
6.2.7. SETPATH e MOVTHPTH.......................................................................59
6.2.8. LISTTPP e RUNTPP ..............................................................................60
6.2.9. GETDIO e GETAIO................................................................................60
6.2.10. SETDIO e SETAIO...............................................................................61
6.2.11. SETTOOLFRM.....................................................................................61
6.2.12. SETSPEED..........................................................................................62
6.2.13. STOPSERV..........................................................................................63
7. Concluses e trabalho futuro...............................................................................64
7.1. Concluses...................................................................................................64
7.2. Trabalho futuro .............................................................................................64
7.2.1. Extenso do servidor e da linguagem....................................................64
7.2.2. Plataforma multi-cliente..........................................................................65
7.2.2. Portabilidade da aplicao cliente..........................................................65
7.2.3. Encapsulamento de instrues robCOMM.............................................65
8. Referencias .........................................................................................................66
Anexos ....................................................................................................................68
Anexo A. Unidade FANUC M6iB RJ 3iC...............................................................69
Anexo B. Controlador FANUC RJ 3iC ..................................................................71
Anexo C. Lista de funes robCOMM.................................................................72
Anexo D. Cliente de sockets em modo sncrono ( C#.NET ) [32]......................74

Mestrado em Engenharia Mecnica

14|74
















acrnimos e siglas

AP Access point
CAD - Computer-aided design
CAM - Computer-aided manufacturing
CIM - Computer-integrated manufacturing
DeviceNet Rede de campo
DHCP - Dynamic Host Configuration Protocol
DOF Degrees Of Freedom
EtherNet/IP Ethernet Industrial Protocol
FTP File Transfer protocol
HTTP Hypertext Transfer Protocol
I&DT Investigao e desenvolvimento tecnolgico
I/O Inputs / Outputs
IANA - Internet Assigned Numbers Authority
Interbus Phoenix Contact bus
IP Internet Protocol
ISO - International Standard Organization
LAN Local rea Network
OSI - Open System Interconnect
PC Personal computer
PCMCIA Personal Computer Memory Card International Association
PLC Programmable Logic Controller
PME Pequenas e mdias empresas
Profibus Process Field Bus
RISC - Reduced instruction set computer
SME - Small and medium enterprise
SSID Service set identifier
TCP Tool Center Point
TCP Transfer Control Protocol
UDP User Datagram Protocol
UNECE - United Nations Economic Commission for Europe
USB Universal Serial Bus
WiFi IEEE 802.11 - Wi-Fi Alliance - Redes sem fios
Mestrado em Engenharia Mecnica

15|74



















marcas

ABB

Asea Brown Boveri Robotics - Fabricante de manipuladores industriais com


marca registada
Chrysler

- Chrysler Corporation Construtor automvel norte-americano




DS

DELMIA

Dassault Systemes DELMIA Software de programao offline


paramtrico com aplicaes CAD do mesmo fabricante
FANUC

- Fabricante de manipuladores industriais com marca registada
FlexPendant

- Consola de programao de manipuladores industriais ABB


Inform

- Linguagem de programao de manipuladores industriais YASKAWA


Interbus Rede de campo
iPendant

- Consola de programao de manipuladores industriais ABB


ISO - International Standard Organization
KCP

- Consola de programao de manipuladores industriais KUKA


KRL

Linguagem de programao de manipuladores industriais KUKA


KUKA

Fabricante de manipuladores industriais com marca registada


Rapid

- Linguagem de programao de manipuladores industriais ABB


TPE

, KAREL

- Linguagem de programao de manipuladores industriais FANUC


XRC

- Consola de programao de manipuladores industriais YASKAWA


YASKAWA

Fabricante de manipuladores industriais com marca registada


Mestrado em Engenharia Mecnica

16|74

1. Introduo

Verifica-se que a robtica industrial , de facto, um mercado em expanso.
Em consequncia, existem largos recursos junto dos integradores disponveis para
alocar a I&D, especialmente em aplicaes industriais por explorar, criando uma
oportunidade valiosa para quem pretenda enveredar pela robtica industrial.

1.1. Objectivos genricos

O desenvolvimento deste trabalho tem por objectivo principal contribuir, de
alguma forma, para aumentar a quantidade e diversidade de tarefas industriais
robotizveis, apresentando a robtica como cada vez mais uma alternativa a outro
tipo de solues. Para isto, pretendem-se desenvolver ferramentas,
essencialmente de software, que aproximem o mundo dos controladores de
manipuladores industriais, proprietrios e fechados, ao mundo dos PCs, resolvendo
uma questo preponderante, a comunicao entre ambos.

1.2. Mtodo

O mtodo utilizado neste trabalho poder ser resumido em 5 partes com a
seguinte ordem cronolgica:

a. Levantamento do estado da arte de sistemas de interface e comunicao
com o controlador de robs industriais FANUC.

b. Levantamento das solues para comunicao e controlo remoto de robs
industriais, e respectivas extenses desenvolvidas para problemas similares de
outros fabricantes.

c. Desenvolvimento de ferramentas de comunicao entre um computador
pessoal e o controlador FANUC RJ-3iC sobre TCP/IP

d. Implementao de uma biblioteca de funes que permita o
desenvolvimento de aplicaes integradas entre manipuladores FANUC e sistemas
perifricos baseados em PC ou similares.

e. Desenvolvimento de uma aplicao ilustrativa das funcionalidades da
biblioteca utilizando um rob real e uma aplicao concreta integrvel num
processo de fabrico.

Mestrado em Engenharia Mecnica

17|74

2. Enquadramento

2.1. I&D em robtica industrial

O investimento em I&DT em robtica industrial extremamente interessante
na medida em que um mercado enorme e em contnua expanso. Segundo a
World Robotics 2004, publicada pela UNECE - United Nations Economic
Commission for Europe [2], calcula-se que estejam em operao pelo menos
800.000 robs industriais em todo o mundo, dos quais cerca 350.000 apenas no
J apo, 112.000 nos Estados Unidos e 250.000 na Europa [ Figura 1 ].


Figura 1 Instalaes de robs industriais por pais

Prev-se que este nmero cresa para cerca de 1 milho de unidades at
finais de 2007, sendo que o maior incremento ser na Europa.
Na ltima dcada verificou-se uma melhoria extraordinria nas
caractersticas tcnicas e desempenho dos manipuladores industriais e um
decrscimo no seu preo comercial [Figura 3]. Um manipulador mdio em 2003
custava j um quarto do seu equivalente vendido em 1990. Pensa-se, no entanto,
que o preo deste tipo de equipamentos atingir o seu equilibro em breve dado que,
em condies tpicas, possvel atingir o break-even do seu custo entre o primeiro
e segundo ano de operao.
A eficincia e o custo competitivo de uma unidade robotizada face aos
custos escalveis da mo-de-obra em paralelo com a racionalizao constante nos
meios industriais explicam a forte penetrao no mercado.

Figura 2 Instalaes de robs industriais 2002-2003 e
previso 2004-2007
Figura 3 Evoluo do preo de robs industriais 1990-2003
Mestrado em Engenharia Mecnica

18|74

2.2. Robotizao de tarefas industriais

Muito embora exista aquela imagem romntica de um rob industrial [ Figura
4 ], nem sempre possvel utilizar um rob industrial isolado, ou seja, sem fazer
uso em paralelo de outras tecnologias que possibilitem a resoluo da tarefa. A
ttulo de exemplo, para manipular e paletizar peas sada de um equipamento
produtivo, utilizando um manipulador, poder ser necessrio utilizar um sistema de
viso artificial para localizar a pea a manipular, o que j ter um custo tecnolgico
bastante mais elevado tanto na aplicao das tecnologias como na sua interligao.


Figura 4 O futuro da robtica industrial em 1981

Estas questes so exactamente aquelas que motivam o desafio de
perseguir e reinventar a utilizao de manipuladores industriais que so, hoje em
dia, utilizados em tarefas de baixo teor tecnolgico, mas que detm por si um
potencial enorme aplicvel em industrias to dspares como a alimentar e a
metalomecnica. Estas podem tambm ser vistas como as oportunidades futuras
no mercado da robtica industrial dado que os mercados convencionais, tal como a
soldadura, comeam a ficar saturados.

2.3. A robtica na industria

A robtica enquanto segmento industrial poder ser segmentada em 3
grupos distintos: fabricantes, integradores e utilizadores.
Os primeiros so, tipicamente, grandes empresas multinacionais produtoras dos
elementos mecnicos, electrnicos e de software, e que tm por misso
comercializar produtos robotizados para integrao em clulas de fabrico e cujo
canal de distribuio termina, normalmente, nos integradores.
O segundo grupo, os integradores, reporta-se normalmente a parceiros dos
fabricantes, integrando apenas elementos mono marca, especializando o seu
quadro de tcnicos na tecnologia desse fabricante. Tm por misso desenvolver,
produzir e comercializar equipamentos produtivos mais ou menos estandardizados
dedicados a solues para problemas industriais.
O terceiro grupo, caracteriza-se por utilizadores normalmente ligados s
equipas de manuteno das organizaes onde se encontram as clulas que
integram manipuladores. So, tipicamente, operadores das consolas de
programao, dedicando-se apenas a ajustes na programao de trajectrias e
Mestrado em Engenharia Mecnica

19|74

afinaes de processo. No dispem, normalmente, de conhecimentos de robtica
terica e tendem a encarar os manipuladores como equipamentos para resolver
problemas repetitivos e sem grande interaco tanto com o utilizador como com o
processo produtivo.
O verdadeiro campo de desenvolvimento de solues industrias, sob a forma
de clulas de fabrico est, essencialmente, na mo dos integradores na medida em
que so estes que procuram o mercado, conhecem as necessidades, criam,
projectam, fabricam e integram todos os componentes.
O grande desafio na robtica industrial o desenvolvimento de solues que
impliquem conectividade, interface homem-mquina e gesto de clulas de fabrico
utilizando equipamentos robotizados, nomeadamente quando utilizados em
conjuno com outros equipamentos produtivos e, ainda hoje, mais ou menos
revolucionrios.
As economias modernas dependem cada vez mais da sua capacidade de
fabricar produtos competitivos e inovadores o que implica uma enorme flexibilidade
das unidades fabris e, por conseguinte, nas clulas de fabrico. exactamente aqui
que os manipuladores industriais desempenham um papel muito importante na
medida em que so, por definio, mquinas altamente versteis e eficientes e que
conseguem desempenhar tarefas tipicamente desempenhadas por humanos.
A maioria dos resultados de I&D na rea da robtica industrial foi obtida
durante a dcada de 80. Alguns exemplos so o controlo de fora e o planeamento
de trajectrias. Agora, cerca de 20 anos depois, muitas destas tecnologias
acompanhadas pelo desenvolvimento e consequente reduo de custo do
hardware, a utilizao e aplicabilidade industrial. A questo agora coloca-se em
saber se esta situao poder ser melhorada tecnologicamente e em termos da
sua aplicao prtica.
Os robs industriais ainda no so utilizados em diversas aplicaes
tipicamente encontradas em PMEs dadas as complexas configuraes das clulas
de fabrico, restries do ambiente operativo e dificuldades na programao
dinmica de tarefas. A flexibilidade , sem dvida, o mote da robtica industrial dos
nossos dias. necessrio modificar de forma simples, rpida e eficaz, parmetros
do software de controlo do equipamento com vista eficaz adaptao s tarefas.

2.4. Manipuladores industriais em clulas flexveis de fabrico

Uma configurao tpica de uma clula de fabrico envolve a utilizao de um
PLC como componente central. este equipamento que normalmente controla
todos os elementos escravos tais como sensores, actuadores mecnicos ou
pneumticos, ou mesmo um manipulador atravs dos seus barramentos de I/O
digitais ou analgicas. Dado que os controladores dos manipuladores se encontram
optimizados para o movimento e respectivo planeamento de trajectrias e as
respectivas unidades mecnicas so utilizadas apenas para realizar os movimentos
repetitivos, no efectuado grande investimento no desenvolvimento em interface
e sistemas de comunicao. Esta soluo extremamente comum e, muito embora
robusta e estvel, limitada sempre que existir necessidade de conectividade e
ligao a sistemas baseados em PC.
Dadas as necessidades dos dias de hoje, em especial relativamente
conectividade, seria interessante colocar no centro nevrlgico da clula de fabrico,
em alternativa ou mesmo em paralelo com um PLC, um PC. O PC poderia elevar a
fasquia tecnolgica das aplicaes e potenciar a resoluo de muitos problemas
Mestrado em Engenharia Mecnica

20|74

que so hoje de difcil resoluo implicando muitas vezes o abandono do projecto
ou o contornar das dificuldades de forma tecnicamente incorrecta.
As ultimas geraes dos controladores dos fabricantes lderes de mercado j
dispem da possibilidade de manipulao de redes de campo ( DeviceNet, Interbus,
Profibus, etc.), sistemas de viso ou mesmo sensores de fora. No entanto, volta-
se a cair no problema da arquitectura fechada e de todos os problemas que dai
advm.
Uma clula de fabrico baseada num PC poder facilmente, e com custos
reduzidos, no s fazer tudo aquilo que um controlador proprietrio e fechado faz,
mas muito mais. Poder ser utilizado para comunicar com um controlador
proprietrio de um manipulador, e fazer uso das funcionalidades ligadas ao
movimento das unidades mecnicas de que dispe, mas acima de tudo, poder ser
utilizado para cumprir outro tipo de tarefas, que no seriam possveis cumprir com
um controlador, por no dispor de tais funcionalidades ou que se tornaram de tal
forma complicadas de instalar, configurar e operar que no justifica sequer o
investimento necessrio.
hoje em dia consensual que grande parte das aplicaes industriais que
incluem manipuladores industriais requerem alguma inteligncia, ou seja, nem
sempre suficiente incluir um manipulador pr-programado que executa uma
qualquer tarefa de posicionamento e que trabalha isolado do resto da clula onde
se encontra instalado. Em muitas aplicaes industriais torna-se necessrio
recorrer a algum controlo em malha fechada seja incluindo viso artificial para, por
exemplo, detectar a posio e orientao do objecto a manipular, seja controlo de
fora para operaes de polimento onde necessrio corrigir a trajectria do rob
em funo de um feedback de um sensor externo.
No passado, este tipo de problema era resolvido de formas engenhosas,
muitas vezes utilizando dispositivos mecnicos complexos para, por exemplo,
garantir que o objecto a manipular se encontra sempre com a posio e orientao
preestabelecida, eliminando a necessidade de inteligncia. Este tipo de
aproximao alm de muito pouco flexvel, exigindo um enorme investimento de
tempo de set-up sempre que o objecto, por fora das necessidades produtivas,
muda de forma, torna-se muito caro para as exigncias da indstria dos dias de
hoje.

Mestrado em Engenharia Mecnica

21|74

3. Programao e interface de robs industriais

3.1. Linguagens e tcnicas de programao: estado da arte

A programao de robs industriais, forma de instruir um rob a executar
uma dada tarefa, comeou quase no mesmo instante em que estes apareceram.
Existem vrias abordagens programao de robs industriais. Lozano
Perez [20] dividiu as linguagens de programao de robs industriais em 3
categorias: sistemas de guiamento, programao ao nvel do rob e programao
ao nvel da tarefa.
A mais difundida de todas denominada de guiamento ou ensino por
demonstrao. Consiste em levar manualmente o rob a vrios pontos, nos quais a
configurao de juntas gravada. Assim, um programa desta linguagem no
mais do que uma movimentao do rob por uma sequncia de vrios pontos
gravados no espao. Adicionalmente, em cada ponto, podem ser enviadas
instrues para equipamento externo, tais como fechar a garra, comear a soldar,
etc. Esta tcnica muito simples de implementar tendo no entanto algumas
limitaes que derivam do facto de no possibilitar uma movimentao
condicionada por informao vinda de sensores externos.
Existem algumas linguagens que no s disponibilizam o acesso a sensores
como permitem especificar as movimentaes do rob com base nesse feedback
externo. So denominadas linguagens ao nvel do rob e tm a vantagem de
poderem lidar com tarefas mais complicadas onde, por exemplo, existe incerteza
em relao ao posicionamento dos objectos a manipular. Como desvantagens tm
o facto de necessitarem de peritos que estejam aptos a desenvolver estratgias de
movimentao baseadas em sensores, competncias raramente encontradas num
normal operrio fabril.
Uma das abordagens que procuram obviar esta limitao a programao
ao nvel de tarefas, onde se definem objectivos para o posicionamento de objectos,
em vez de se especificarem as movimentaes adequadas para cumprir esse
objectivo. Este tipo de linguagem pretende ser independente do tipo de rob, pois
no necessrio lidar com trajectrias, cinemtica e geometria do rob, entre
outras. [20].
Hoje em dia, a categoria mais utilizada a de programao ao nvel do rob
utilizando linguagens proprietrias de alto-nvel
Quanto tcnica de programao utilizada os robs industriais so, hoje em
dia, programados utilizando uma de duas tcnicas possveis: programao online
ou offline.
A programao online [Figura 5] pressupe criar programas rob
directamente na consola ligada ao controlador do rob, movimentando-o para as
posies desejadas atravs de teclas de direco ou joysticks e memorizando-as
com a vantagem da independncia da potencial falta de preciso absoluta do
equipamento mas sendo um processo moroso, implicando a paragem produtiva do
equipamento.
Com tcnicas de programao offline [ Figura 6 ], os programas-rob so
gerados utilizando aplicaes para PC, no implicando a utilizao do equipamento
real mas levantando problemas de calibrao entre o mundo real e o virtual.
Mestrado em Engenharia Mecnica

22|74

Ao longo deste captulo sero abordadas ambas as tcnicas referidas
evidenciando as suas vantagens e desvantagens.


Figura 5 Programao on-line Figura 6 Programao offline

3.1.1. Programao online: Linguagens proprietrias

A programao de manipuladores industriais recorrendo a linguagens
proprietrias o mtodo convencional e o mais utilizado para a programao de
manipuladores industriais.
Estas linguagens possuem, normalmente, uma sintaxe muito simples
permitindo uma rpida aprendizagem e, na esmagadora maioria das aplicaes de
touch-up, apresenta versatilidade suficiente para cumprir os objectivos. [ Figura 7 e
Figura 8 ]


Figura 7 Linguagem KUKA

KRL

Figura 8 Linguagem ABB

RAPID



Estas linguagens, alm de pequenas alteraes, melhorias e adio de
funcionalidade extra, pouco evoluram desde o seu desenvolvimento original.
Um bom exemplo deste tipo de linguagens a utilizada pela FANUC para a
programao em consola dos seus sistemas, a linguagem TP [ Figura 9 ]. Os
programas escritos nesta linguagem podem correr em controladores ou em
ferramentas de simulao offline deste fabricante.

Mestrado em Engenharia Mecnica

23|74


Figura 9 Linguagem FANUC

TPE


Figura 10 Exemplo de linha de programao FANUC

TP

Este tipo de linguagens proprietrias e especficas de cada fabricante possui
algumas desvantagens entre as quais as mais relevantes so a ausncia absoluta
de universalidade entre linguagens com a consequente necessidade de know-how
especfico e alguma limitao na potencialidade da linguagem que, para simplificar
a sua utilizao , muitas vezes, orientada em funo da aplicao do equipamento
complicando outro tipo de tarefas menos prximas de aces ligadas ao
movimento.
Uma linha de instruo deste tipo de linguagens , tipicamente, uma
composio engenhosa de comandos seleccionados de listas, incluindo instrues
de muito alto nvel relativas aplicao a que se destina [Figura 10].
Alguns fabricantes dispem, tambm, de linguagens de mdio nvel. Alm da
linguagem base utilizada em consola, estas linguagens, tipicamente compiladas,
pretendem estender o potencial das linguagens de consola, acrescentando, por
exemplo, funcionalidades ligadas comunicao. Um bom exemplo a linguagem
KAREL da FANUC Robotics que, em paralelo com a linguagem TP, disponibilizam
ao programador um maior controlo sobre o equipamento.
3.1.2. Programao offline

Programao offline pode definir-se como um conjunto de tcnicas para a
programao de robs sem a utilizao de um rob real.
Estas aplicaes contam tambm com ferramentas avanadas que, entre
muitas outras funcionalidades, permitem modelar quer a unidade rob quer os
componentes perifricos da clula de fabrico, permitem estimar tempos de ciclo,
calcular alcances e volumes de trabalho, optimizar trajectrias, detectar colises,
com claros benefcios em aplicaes industriais, tornando possvel, por exemplo,
dimensionar o manipulador necessrio para uma dada aplicao, ajudar a projectar
ferramentas e, at, calcular a estrutura de custos de uma instalao fabril.
Em clulas complexas, seja pela utilizao de vrios manipuladores [ Figura
11 ] e posicionadores, seja porque o processo tecnolgico obriga a movimentos
complexos [ Figura 12 ], a programao com consola de programao seria alm
de muito morosa, bastante mais difcil. Experimentar estratgias, optimizar
trajectrias e calcular tempos de ciclo so tarefas mais fceis e rpidas de executar
numa aplicao PC em ambiente calmo e onde os erros no so penalizados com
custos reais.

Mestrado em Engenharia Mecnica

24|74



Figura 11 Programao offline de trajectrias FANUC


Roboguide


Figura 12 Deteco automtica de arestas -
FANUC

Roboguide



Os ambientes de simulao oferecem uma emulao quase perfeita do
controlador real. Assim, possvel utilizar a mesma linguagem disponvel na
consola de programao tornando-os at numa ferramenta formativa bastante
ponderosa. Treinar operadores numa aplicao deste tipo tem um custo e uma
rentabilidade muito mais elevada e diminui a necessidade de disponibilidade de
equipamentos reais [ Figura 13 e Figura 14 ].





Figura 13 Programao offline com dispositivos
perifricos de interface
Figura 14 Simulao de clula flexvel de fabrico

Hoje em dia, todos os fabricantes de manipuladores dispem de aplicaes
de programao offline e existem at aplicaes CAD que j dispe de ambientes
de simulao de robs integrados de forma paramtrica no sistema CAD, este
ltimos com a vantagem de alguma independncia das linguagens proprietrias
dos fabricantes, pois os programas rob so gerados atravs de um ps-
processador semelhante aos disponveis em aplicao de CAM no mundo das
mquinas-ferramenta [ Figura 15 ].

Mestrado em Engenharia Mecnica

25|74



Figura 15 Programao offline DS DELMIA

Fazendo um paralelo com o mundo das mquinas-ferramenta, onde uma
aplicao de CAD gera o desenho-pea e, normalmente, uma outra aplicao CAM
gera a trajectria a cumprir para obter o contorno criado.
Com as tradicionais consolas de programao os equipamentos tm que ser
retirados de produo, implicando percas directas de produtividade.
Em estudos efectuados verifica-se que a utilizao de aplicaes de
programao offline podem reduzir o tempo em que o equipamento est fora de
produo at 85%. Uma demonstrao nas instalaes fabris da Chrysler, mostrou
redues reais entre os 50 e os 60% [4].
No entanto, este tipo de programao possui um conjunto de desvantagens.
Ao programar utilizando uma tradicional consola de programao e tcnicas de
touch-up, ou seja, conduzir o manipulador at aos pontos desejados e s ento
guard-los, apenas se faz uso do potencial de repetitibilidade, ou seja, da
capacidade que o equipamento tem de se posicionar num mesmo ponto
repetidamente. Programar utilizando tcnicas offline, torna necessrio recorrer
tambm ao potencial de preciso, ou seja, da capacidade que o manipulador tem
de posicionamento absoluto. O posicionamento de um manipulador , no limite,
fruto do clculo matemtico que posiciona as suas juntas de forma a obter uma
dada posio cartesiana do seu end-effector.
Factores como as tolerncias construtivas da unidade mecnica, as
propriedades do material utilizado no brao, a resoluo e preciso dos
codificadores utilizados, folgas e desgastes mecnicos e a dificuldade de
repetitibilidade dos mtodos de calibrao, impem a cada manipulador industrial
caractersticas nicas mesmo entre pares [4].
Todas estas questes so muito difceis seno impossveis de modelar
numa aplicao PC. Assim e dado que por um lado o modelo cinemtico do rob
no consegue, no limite, proporcionar um posicionamento absolutamente correcto
e, por outro lado, o modelo cinemtico utilizado na aplicao no consegue
modelar com exactido o equipamento real, um programa-rob gerado desta forma
poder revelar diferenas mais ou menos significativas face ao programado.
Mestrado em Engenharia Mecnica

26|74

Reduzir o impacto da necessidade de preciso absoluta, implica calibrar os
programas gerados em offline na clula real ou mesmo retocar os pontos do
programa gerado.
Desta forma, verifica-se que muitas vezes as ferramentas de programao
offline so muito mais teis ou como ferramenta de engenharia no desenvolvimento
da clula de fabrico ou utilizadas como forma de estruturar o programa rob em
termos de estratgia e menos como uma ferramenta capaz de gerar programas
chavena-mo.


Mestrado em Engenharia Mecnica

27|74

3.2. Controladores e dispositivos de interface

3.2.1. Controladores industriais: Estado da arte

Os controladores de manipuladores industriais so, hoje em dia e na
essncia, dispositivos de controlo de posio, fechados e algo limitados quando
comparados com os computadores actuais [1].
No passado popularizaram-se sistemas completamente abertos em que a
malha de controlo do hardware bem como o acesso a todas as variveis era
acessvel. No entanto, este tipo de acesso de baixo nvel deixou de ser potenciado
pelos fabricantes dos robs industriais actuais. A maioria dos fabricantes deste tipo
de equipamentos ( FANUC, ABB, Kuka, MotoMan ) dispe nos seus controladores
de interfaces para controlo de movimento.
Muito embora j existam fabricantes que dispem de controladores
baseados em PC, a maioria ainda continua a utilizar controladores proprietrios, ou
seja, controladores baseados em componentes de hardware no standard e de que
o fabricante detm todo o know-how e tecnologia de fabrico.
Por oposio, controladores baseados em PCs so baseados em
componentes de hardware disponveis no mercado, existindo vantagens bvias tais
como a disponibilidade e facilidade de integrao e substituio de componentes,
baixo custo, escalabilidade, etc.
Pode mesmo fazer-se uma analogia com meios de transporte. Enquanto que
controladores proprietrios se assemelham a um comboio, em que o utilizador tem
um nmero limitado de opes e tem que respeitar horrios predeterminados e
estanques, controladores baseados em PC assemelham-se a automveis em que o
mesmo utilizador por um lado ter que aprender a conduzir mas que, em
contrapartida, passa a dispor de liberdade de destino e horrio, podendo mesmo
escolher funcionalidades extras como sistemas de udio e navegao GPS de
marcas que no da do fabricante do automvel.
Com controladores abertos, de facto, existe uma questo preponderante que
fica mais prxima de ficar resolvida: a comunicao.
No futuro, todos os fabricantes devero possuir controladores baseados em
PC mas at l, e por forma a diminuir a limitao do que um controlador
proprietrio, importante desenvolver ferramentas que possibilitem a conectividade
de controladores com outros equipamentos, nomeadamente PCs.

Mestrado em Engenharia Mecnica

28|74

3.2.2. Consolas de programao

As consolas de programao so os dispositivos mais utilizados para
programar manipuladores industriais. Estes dispositivos so portteis, leves e
ergonmicos e permitem operar, programar e configurar o rob [ Figura 16 ]
[ Figura 17 ].
Tipicamente dispem de teclados alfanumricos e de teclas de funo que
permitem aceder a menus e digitar linhas de programao, bem como dispositivos
de segurana tais como botoneiras e interruptores de emergncia.
Dispem tambm de ecrs, em alguns casos coloridos e de alta resoluo e
at tcteis, aumentando o potencial de interaco com o utilizador.
Permitem de uma forma fcil e intuitiva aceder a todas as funcionalidades
ligadas ao movimento de um rob, incluindo tarefas de programao de trajectrias
bem como parametrizao de todos os elementos internos ou perifricos ao
equipamento, sem comprometer a portabilidade necessria sua utilizao em
ambiente real. Actualmente as consolas de programao dispem at de
ferramentas grficas e exploradores web que permitem desenvolver aplicaes de
software para, por exemplo, interagir com o utilizador ou monitorizar o processo em
tempo real.



Figura 16 Consola FANUC

iPendant

[12] Figura 17 Consola YASKAWA

XRC

[12]

um dispositivo de extrema utilidade, permitindo que o programador se
movimente sem restries e em segurana ao executar tarefas de programao e
configurao.
Estudos realizados em finais da dcada de 90 nos Estados Unidos, mostram
que cerca de 70% da programao de robs industriais feita recorrendo nica e
exclusivamente a este tipo de dispositivos [ Figura 18 ].
A utilizao deste tipo de dispositivo , no entanto, transversal numa
organizao, ou seja, tipicamente a utilizao destes dispositivos para operaes
de configurao e programao est reservada a pessoas tecnicamente melhor
formadas, enquanto operadores tecnicamente inferiores utilizam-nas apenas para
efectuar movimentos simples em modos manuais e para rearmes aps paragens
motivadas por problemas de processo [ Figura 19 ].
Mestrado em Engenharia Mecnica

29|74



Figura 18 Distribuio de tipos de programao de
robs na indstria [12]
Figura 19 Distribuio de utilizao de robs por tipo
de operador [12]

Este tipo de dispositivos possui, no entanto, algumas desvantagens. No
estudo referido, faz-se notar o peso ainda assim elevado para utilizao intensiva,
o design que, por vezes, no ergonomicamente correcto, contribuindo para
doenas profissionais e, muito embora alguns fabricantes j disponham de
solues sem fios, o cabo que liga a consola ao controlador alm de incomodo
pode causar alguns acidentes.

3.3. Comunicao

Uma grande componente do desafio de utilizar controladores convencionais
para aplicaes de elevado teor tecnolgico passa pela comunicao controlador /
PC.
A conectividade com os controladores de manipuladores industriais poder
ser segmentada em 3 categorias. Na primeira categoria poderia ser agrupada a
conectividade com equipamentos perifricos tais como equipamentos de soldadura.
Este tipo de conectividade , normalmente conseguida recorrendo a redes de
campo e I/O digitais e analgicas convencionais [ Figura 20 ].


Figura 20 Dispositivos tpicos numa clula de soldadura
Mestrado em Engenharia Mecnica

30|74


Numa segunda categoria poderia agrupar-se todo o hardware de
comunicao que tipicamente utilizado apenas para carregamento ou
descarregamento de programas efectuados na consola de programao: portas
srie, USB, slots PCMCIA, etc.
Para uma terceira categoria resta a comunicao ethernet, sobre a qual
podem ser implementados servidores Http e FTP mas tambm pode servir de meio
de comunicao de alto dbito com um PC externo [ Figura 21 ].


Figura 21 Robs industriais em redes de comunicao

Alguns dos maiores desenvolvimentos na tecnologia ethernet tais como o
switching, e o full-duplex aumentaram muito o potencial desta tecnologia em redes
de comunicao utilizadas em aplicaes e para dispositivos industriais.
Entre as vantagens da utilizao de ethernet para comunicaes em rede
contam-se a disponibilidade de componentes de hardware de elevadas
performances a preos muito baixos, possibilidade de utilizao de redes
estruturadas j implementadas e a robustez de uma tecnologia completamente
validada nas mais diversas aplicaes, nas mais diversas condies e suportada
pelos mais diversos equipamentos.
Ao utilizar ethernet passa a ser possvel a utilizao de protocolos internet
tais como FTP e HTTP, o que, dada a facilidade de implementao em software
adquire uma vantagem muito interessante face a outras solues para a
interligao de dispositivos.
A performance e a largura de banda comercialmente disponvel hoje para
ethernet , tambm, claramente superior a outras redes de campo comercialmente
disponveis [ Tabela 1 ].


Tabela 1 Comparao entre redes de comunicao [8]
Mestrado em Engenharia Mecnica

31|74

Existem, no entanto, algumas desvantagens tais como a necessidade de
energia para a sua operao, alguma inadaptao a ambientes industriais e,
essencialmente, a caracterstica no determinstica desta tecnologia, na medida em
que no possvel determinar se os pacotes de dados chegaram ou no com
atraso, nem medir esse mesmo atraso. Este comportamento provocado pela
prpria natureza da tecnologia em que a quantidade de colises pode atrasar a
entrega de pacotes de dados. Assim, e muito embora o problema das colises
possa ser reduzido aumentando a largura de banda da ligao, a utilizao de
ethernet para aplicaes em tempo-real fica comprometida, sendo necessrio
adoptar variaes ao protocolo original, como o ethernet/IP, para contornar este
tipo de problema [13].

3.3.1. Modelo OSI e protocolos de comunicao

O modelo OSI um modelo conceptual composto por sete camadas em que
cada uma especifica uma funcionalidade de rede e descreve a forma como a
informao transportada de um aplicao de software de um qualquer dispositivo
para uma outra aplicao noutro dispositivo remoto [ Figura 22 ].
Este modelo foi desenvolvido em 1984 pela International Organization for
Standardization, ISO, e sobre este modelo que a maioria das redes de
comunicao so baseadas, sendo considerado como a arquitectura de eleio
para a comunicao entre computadores e computao distribuda.
O modelo OSI segmenta a tarefa genrica de enviar dados entre dispositivos
em sete subtarefas, atribuindo a cada uma delas uma das sete camadas
disponveis [22] [23].
Cada camada de tal forma estanque que permite que a sua
implementao seja independente das outras [ Figura 23 ].



Figura 22 Modelo OSI Sete camadas [22] Figura 23 Modelo OSI Conectividade entre camadas [12]

Enquanto que as camadas inferiores so responsveis por disponibilizar
comunicao ponto a ponto, garantindo a ausncia de erros, as camadas
superiores so responsveis por tarefas mais complexas e geralmente
Mestrado em Engenharia Mecnica

32|74

implementadas apenas em software. A camada mais elevada, a da aplicao, a
mais prxima do utilizador e responsvel pela interface.
O modelo OSI , tal como discutido, um modelo conceptual para a
interligao de computadores mas no um mtodo de comunicao em si.
Assim foi necessrio desenvolver um conjunto de regras, convenes e
formalismos que especificassem a forma como os computadores trocam
informao sobre uma rede fsica. Estes conjuntos de regras so chamados de
protocolos de rede e podem implementar uma ou mais camadas do modelo OSI.
Mestrado em Engenharia Mecnica

33|74

3.3.2. Modelo cliente-servidor

O modelo cliente-servidor descreve a relao entre dois dispositivos em que
um dos dispositivos, o cliente, um consumidor de servios, fazendo pedidos de
servio a um outro dispositivo, o servidor, este fornecedor de servios [ Figura 24 ].
A aplicao servidora dever estar sempre disponvel para aceitar pedidos
de servio por parte de clientes, clientes esses que a contacta sempre que
necessitam de um servio por ele disponibilizado.
Entre as vantagens deste tipo de modelo, contam-se a disponibilidade de
protocolos assimtricos em que existe uma relao de muitos-para-um entre
clientes e um dado servidor, onde o cliente que inicia a ligao com um servidor
passivamente escuta, o encapsulamento de servios em que o servidor sempre
o dispositivo responsvel por executar um dado servio em funo da mensagem
recebida, integridade do servidor face individualizao dos clientes.
Muito embora o processo relativo execuo de um servidor possa coexistir
num mesmo dispositivo com a aplicao cliente, este conceito realmente
interessante para comunicaes sobre redes de dados em que os dispositivos
esto disponveis atravs de um par endereo/porta.


Figura 24 O modelo cliente servidor para aplicaes [12]

Os sistemas baseados numa lgica cliente-servidor so, normalmente,
tolerantes falha na medida em que o servidor pode falhar e recuperar sem que
seja posta em causa toda a integridade do sistema.
Uma outra vantagem deste tipo de aproximao comunicao entre
dispositivos a potencial independncia de plataformas. As aplicaes cliente e
servidor podero ser desenvolvidas em plataformas diferentes e operar em
hardware distinto. Este tipo de modelo , tambm, altamente escalvel seja nos
dispositivos cliente, quantidade e tipo de plataforma, seja nos servidores,
relativamente aos servios disponibilizados e plataforma utilizada.
A especificao da conversao ter que ser baseada num qualquer
protocolo entendido por ambos, o servidor e o cliente. Para comunicar com
sucesso ambas as aplicaes tero que falar a minha linguagem, seguir o mesmo
protocolo, ou seja, conhecer as regras e o conjunto de mensagens a esperar um do
Mestrado em Engenharia Mecnica

34|74

outro de forma a agir em concordncia. Alm disso ambas as aplicaes tero que
saber quando podem ou devem proceder ao envio ou recepo de dados.
Assim, um servidor web escrito numa dada linguagem e para uma dada
plataforma poder comunicar com um cliente web escrito numa outra qualquer
linguagem a correr numa outra plataforma. Basta apenas que ambos utilizem o
mesmo protocolo de transporte, por exemplo TCP/IP, e o mesmo protocolo de
aplicao, como por exemplo HTTP:

3.3.3. Sockets TCP/IP

O conceito de socket de Berkeley uma abstraco utilizada para
representar o elemento terminal de uma ligao entre dois dispositivos. Como que
um cabo ligado a cada socket mas em que o aspecto fsico e de hardware no
relevante e onde os elementos terminais em ambos os extremos importa conhecer.
O objectivo criar uma camada de abstraco em que no seja necessrio
conhecer pormenores da ligao fsica entre dois dispositivos. Basta apenas
implementar os tais elementos terminais e deixar que a infra-estrutura de rede,
camadas fsicas e de transporte, se encarreguem de conduzir a informao a trocar
entre dispositivos.
Os sockets, de Berkeley, devem o seu nome ao facto de terem sido
desenvolvidos na Universidade de Berkeley, Estados Unidos da Amrica, nos
meados da dcada de 80. O conceito foi inicialmente desenvolvido como mais um
mtodo de comunicao mas cedo evoluiu para o que viria a ser a tecnologia mais
utilizada para a comunicao em rede.
Este tipo de aproximao comunicao em rede pressupe que os
processos de comunicao decorram entre dois extremos ou sockets, que podem
existir em distintos dispositivos anfitries ou mesmo entre processos a correr num
mesmo dispositivo.
Todos os sistemas operativos e linguagens de programao modernas
dispem de algum tipo de implementao deste tipo de tecnologia dado que se
tornou no mtodo standard para a ligao de computadores pessoais Internet.
3.3.4. Protocolos e endereamento

Os protocolos de comunicao [ Figura 25 ] encontram-se divididos em duas
classes diferentes: os protocolos sem ligao e os orientados por ligao.
Enquanto que os protocolos sem ligao, dos quais o UDP um bom
exemplo, apenas passam a informao no dispondo de funcionalidades de
reconstruo de pacotes nem de retransmisso de pacotes extraviados, implicando
que os pacotes de dados podero chegar desordenados ou mesmo nem sequer
chegar.
Esta questo de grande importncia dado que se o protocolo de transporte
no assegurar a correcta entrega de informao, as camadas OSI superiores,
nomeadamente as de aplicao, tero de garantir que as mensagens chegam
inteiras e na sequncia correcta. Em regra, os protocolos deste tipo acabam por
impor um baixo nvel de performance e robustez aplicao.

Mestrado em Engenharia Mecnica

35|74

Figura 25 Protocolo TCP/IP [12]

Num protocolo orientado por ligao, como o TCP, a ligao de dados
possui estados associados a ambos os extremos da ligao, implicando um
procedimento de handshaking para o estabelecimento da comunicao e que
poder ser mantido enquanto a ligao se mantiver.
Este tipo de protocolo resolve internamente os procedimentos de
handshaking e possuiu funcionalidades de correco de erros e ordenao da
informao. Divide as mensagens em pacotes numerados que sero reordenados
na sequncia correcta no seu destino e consegue gerir pedidos de retransmisso
de pacotes que por alguma razo no chegaram ao destino. O TCP adiciona os
cabealhos apropriados para garantir a entrega eficiente dos pacotes de
informao no seu destino.
O protocolo TCP , assim, aquele que uma maior estabilidade na troca de
infirmao entre dois sistemas assegura, oferecendo robustez e velocidade.
Dadas as vantagens descritas, ser com base neste protocolo que sero
desenvolvidas as ferramentas no decorrer deste trabalho.

3.3.5. Endereamento

O endereamento deste tipo de comunicao efectuado tendo em conta
que os dispositivos intervenientes possuem endereos IP nicos e que a cada
servio corresponder uma e uma s porta. As portas so nmeros de 16 bits
independentes para UDP e TCP, sendo que alguns destes nmeros esto j
reservados para alguns servios. Esta standardizao, regulada pela IANA [28],
reserva as portas de 1024 a 49151 para utilizao de convenincia dos utilizadores.
A implementao da etapa de ligao ( connect() ) sobre TCP utiliza o
chamado three-way handshake em que o cliente envia um bit de controlo do tipo
SYN (sincronizar nmeros de sequncia) ao servidor que, por sua vez, responde
com um ACK (Acknowledgement) indicando que recebeu correctamente o pedido,e
envia o seu SYN. De seguida o cliente devolve um ACK ao SYN do servidor e a
ligao estabelecida.
Mestrado em Engenharia Mecnica

36|74



Figura 26 Diagrama de estados do protocolo TCP

Para a terminao da ligao, o dispositivo que termina a ligao envia um
FIN ao outro dispositivo que devolve um ACK indicando que recebeu
correctamente o pedido de finalizao e, assim que possvel, responder com um
FIN, terminando ento e definitivamente a ligao, o que ser confirmado com um
ultimo ACK do dispositivo que tomou a iniciativa.

3.3.6. Modos de operao

Na utilizao de sockets para comunicao, possvel a implementao de
dois cenrios distintos: bloqueante e no bloqueante.
O primeiro cenrio chamado de operao em modo bloqueante, pois o
programa ficar bloqueado at que sejam recebidos dados, ou seja, a tarefa de
leitura do socket no ser terminada at que sejam enviados dados do sistema
remoto.
O segundo cenrio chamado de operao em modo no bloqueante dado
que a aplicao consegue reconhecer a ausncia de informao a ser lida e gerir
adequadamente a situao.
Em modo no bloqueante poder-se- utilizar uma de duas estratgias
possveis: polling e notificao assncrona. Enquanto que a primeira estratgia
Mestrado em Engenharia Mecnica

37|74

passa por tentar consecutivamente ler ou escrever no socket, tipicamente
recorrendo a um temporizador, a segunda estratgia, e mais utilizada, implica o
conceito de evento e a utilizao de multi-tarefa, ou seja, existir uma tarefa que
est constantemente a monitorizar o estado do socket, mas que se encontra em
execuo paralela ao programa principal. Se o dispositivo remoto escrever dados
no socket monitorizado, ser gerado um evento que despoletar a execuo de
uma dada tarefa, como por exemplo, uma rotina de interpretao da trama de
dados recebida.

3.3.7. Implementao de servidor

O diagrama de fluxo da [Figura 27] representa a implementao de um tpico
servidor de sockets sobre TCP/IP em que o servidor instncia um socket, ligado a
uma dada porta e fica escuta da mesma at que um cliente remoto a ele se ligue.
De seguida processa-se a troca de dados servidor-cliente e, por fim, encerrada a
ligao, em princpio, por iniciativa do dispositivo cliente.
A implementao de um servidor TCP envolve, ento, as seguintes etapas
[Figura 28] :

. Criao do socket ( socket() )
. Ligao do socket a uma porta ( bind() )
. Escutar a porta e aguardar por ligaes ( listen() )
. Aceitar uma ligao de um cliente ( accept() )
. Troca de dados com o cliente ( write() / read() )
. Terminar o servidor encerrando o socket ( close() )




Figura 27 Etapas e procedimentos de um servidor de sockets genrico Figura 28 Algoritmo genrico em
pseudo-cdigo

3.3.8. Implementao de cliente

Mestrado em Engenharia Mecnica

38|74

O diagrama de fluxo da [Figura 29] representa a implementao de um tpico
cliente de sockets sobre TCP/IP em que inicialmente o cliente instancia um socket
e tenta uma ligao a um par IP/Porta onde se espera que um servidor se encontre
escuta. Se a ligao for estabelecida, processa-se a troca de dados servidor-
cliente e, por fim, encerrada a ligao.







Figura 29 Etapas e procedimentos de um cliente de sockets genrico Figura 30 Algoritmo
genrico em pseudo-cdigo

A implementao de um cliente TCP envolve, ento, as seguintes etapas
[ Figura 30 ]:

. Criao de um socket ( socket() )
. Ligar a um servidor escuta num par IP / porta ( connect (IP/port) )
. Troca de dados com o servidor ( write() / read() )
. Encerramento da conexo com o servidor ( close() )

O exemplo descrito resumidamente na Figura 31 e exposto alargadamente
no Anexo D a este trabalho desenvolvido sobre a plataforma .NET, implementa o
cliente em modo sncrono. Foram utilizados os namespaces System.Net e
System.Net.Sockets. So as classes e os mtodos disponibilizados por estes
namespaces que permitem a implementao de sockets TCP/IP.


Socket ( Addr essFami l y. I nt er Net wor k, Socket Type. St r eam, Pr ot ocol Type. Tcp)
Syst em. Net . I PEndPoi nt r emEndPt o = new I PEndPoi nt ( i pAdd, por t )
sCl i ent . Connect ( r emEndPt o)
sCl i ent . Send( dat aToSend)
i nt msgRx = sCl i ent . Recei ve ( msg)

Figura 31 Exemplo de implementao de cliente ( C# )

O cliente implementado no mbito deste trabalho foi, no entanto,
desenvolvido numa perspectiva assncrona. A implementao em modo assncrono,
Mestrado em Engenharia Mecnica

39|74

bastante mais interessante do ponto de vista funcional, implica acrescentar uma
aproximao multi-tarefa ao conceito de implementao descrito.
Fazendo uso das potencialidades de chamadas assncronas disponveis na
plataforma .NET possvel conceber um cliente capaz de gerir mais do que apenas
a tarefa de comunicao com o servidor. Para uma aplicao poder ser
importante, por exemplo, a aplicao conseguir gerir a interface com o utilizador e,
em simultneo, as tarefas relativas comunicao.
Mestrado em Engenharia Mecnica

40|74

4. Abordagem

Neste captulo ser descrita a abordagem utilizada para resolver o problema
proposto. Ser apresentada a plataforma utilizada, as suas caractersticas e as
razes da sua seleco bem como a estratgia utilizada e o software desenvolvido.

4.1. Objectivos

O objectivo principal deste trabalho era o de desenvolver uma plataforma
que permitisse interligar um controlador de um manipulador industrial a outro tipo
de dispositivos utilizando uma tecnologia aberta e relativamente fcil de
implementar, disponibilizando servios representativos de tarefas tpicas
desempenhadas por um manipulador industrial a dispositivos remotos, tais como
um PC. Pretendeu-se acrescentar a possibilidade de utilizar dispositivos externos,
tais como cmaras ou sensores, para fornecer algum nvel de inteligncia a um
manipulador industrial de forma a ser possvel desempenhar tarefas que de outra
forma no seriam possveis.

4.2. Plataforma utilizada

O sistema utilizado neste trabalho consiste nos seguintes componentes:

a. Manipulador industrial - Unidade mecnica e controlador
b. PC
c. Ponto de acesso WiFi
d. Sistema operativo do manipulador, suas componentes e algumas opes
especiais
e. Sistema operativo e aplicaes para PC

Relativamente ao manipulador industrial, foi utilizada uma plataforma
FANUC, em particular um controlador FANUC RJ3iC e uma unidade mecnica
FANUC M6iB/6S. A escolha recaiu nesta plataforma por vrias razes das quais se
destacam o elevado potencial tecnolgico e a disponibilidade do equipamento. E
um bom exemplar daquilo que hoje um manipulador industrial disponvel no
mercado, com as caractersticas do estado da arte nesta rea.
O PC utilizado uma plataforma WININTEL ( Intel Centrino e Windows XP )
e a implementao de rede baseada num AP WiFi.

4.2.1. FANUC M6iB/6S RJ3iC

Foi utilizada uma unidade mecnica FANUC M6iB/6S [ Figura 32 ], um
manipulador industrial, parte do segmento de manipuladores utilizados
preferencialmente em aplicaes de manipulao industrial, de 6 DOF com
capacidade de carga nominal de 6 Kg. capaz de repetibilidades de 0,08mm e
possuiu um alcance de 951mm [ Tabela 2].
Mestrado em Engenharia Mecnica

41|74

Esta unidade provou ser uma boa escolha para uma unidade utilizada em
laboratrio dado que dispe de caractersticas mecnicas e performances ao nvel
do estado da arte da robtica industrial [ Figura 33 ].





Figura 32 Unidade mecnica FANUC

M6iB [10] Tabela 2 Especificaes FANUC

M6iB/6S [8]



Figura 33 Volume de trabalho FANUC

M6iB/6S [8]

Quanto ao controlador o FANUC System RJ3iC, a 6 gerao de
controladores deste fabricante. baseado numa arquitectura multi-processador
RISC de 16 bits dispondo de processadores separados para as tarefas de
movimento e comunicao. Este controlador capaz de controlar at 40 eixos
divididos em 8 grupos de movimento e dispe de capacidades avanadas de
comunicao e conectividade. Implementa a maioria das redes de campos actuais
bem como portas de comunicao srie e ethernet [Figura 34] [Figura 35] [Figura
36].
Mestrado em Engenharia Mecnica

42|74





Figura 34 Controlador FANUC


System RJ3iC [8]
Figura 35 Aspecto interior do controlador FANUC

RJ3iC [8]



Figura 36 Conectividade do controlador FANUC RJ3iC [8]

Este controlador dispe de clientes e servidores HTTP e FTP implementados
de base, disponibilizando servios de transferncia de ficheiros e monitorizao de
variveis [ Figura 38 ] assim como um explorador web integrado e disponvel
atravs da consola TP [ Figura 37 ]. O servidor FTP foi a funcionalidade utilizada
para trocar ficheiros com o controlador no decorrer deste trabalho. Foi tambm
desenvolvida uma pgina HTML especfica para monitorizao de alguns aspectos
do manipulador no decorrer deste trabalho.


Figura 37 Explorador HTML integrado Figura 38 Servidor HTTP
Mestrado em Engenharia Mecnica

43|74

4.2.3. Sistema operativo - FANUC Handling Tool

O sistema operativo disponvel no controlador poder-se- dividir em 3
grupos: o sistema operativo base, a aplicao relativa ao processo e opes
especiais.
O primeiro grupo diz respeito camada de aplicao que disponibiliza
funcionalidades bsicas de operao e programao e inerente ao controlador e
respectiva unidade mecnica. Neste caso estava disponvel a verso 6.34, a mais
recente data de incio deste trabalho.
O segundo grupo diz respeito camada de aplicao que corre sobre o
sistema operativo base e que disponibiliza funcionalidades especficas para a
aplicao industrial em questo. Dentro desta famlia esto disponveis aplicaes
especialmente direccionadas para aplicaes industriais de soldadura,
manipulao, pintura, entre outras. Neste caso estava disponvel a aplicao de
manipulao, FANUC Handling Tool.
O ltimo grupo diz respeito a opes de software instaladas sobre o sistema
operativo base que pretendem facilitar a utilizao do equipamento e permitem
incluir funcionalidades avanadas como, por exemplo, comunicao com
dispositivos externos, comandos avanados de movimento, entre outras, numa
extensa lista de opes disponveis. Neste caso foram instaladas algumas opes
especiais que implementam algumas funcionalidades necessrias a este trabalho e
no disponveis no sistema operativo base, das quais se destacam:

. KAREL command language and runtimes
Interpretador de linguagem KAREL
. Ethernet package
Funcionalidades relativas utilizao da porta ethernet
. DNS, FTP and WEB server
Servidores DNS, FTP e HTTP

4.2.4. Linguagens de programao

No decorrer deste trabalho foi utilizada a linguagem KAREL no
desenvolvimento da aplicao servidora sobre TCP/IP para a plataforma FANUC
RJ3iC e C# no desenvolvimento da aplicao cliente sobre TCP/IP para PC. Foi
tambm utilizada linguagem FANUC TP no desenvolvimento de programas TP para
execuo de tarefas de movimento.
A aplicao cliente foi desenvolvida sobre a plataforma Microsoft

.NET
Framework 2.0, fazendo uso da vasta livraria de classes dedicadas comunicao
TCP/IP disponveis na plataforma.
4.2.5. Implementao em LAN

A implementao do sistema utilizado passou pela sua interligao numa
LAN WiFi [ Figura 39 ]. Foi utilizado um vulgar AP / router ligado ao controlador por
uma ligao de cobre a 10/100Mbps que, por sua vez, disponibiliza uma rede WiFi,
( SSID fawifi ) protegida. Foi atribudo um IP fixo ao controlador e endereamento
dinmico DHCP por parte do AP aos dispositivos clientes WiFi.
Mestrado em Engenharia Mecnica

44|74



Figura 39 Implementao da plataforma em LAN

Foi seleccionado este tipo de ligao pela flexibilidade que permite, na
medida em que o WiFi hoje uma tecnologia disponvel em qualquer dispositivo
mvel e que se pretendia permitir o acesso a qualquer dispositivo cliente sem que
fosse necessrio alterar ou reconfigurar a rede local ou os dispositivos clientes,
sendo apenas necessrio conhecer o IP do controlador servidor.

4.3. Arquitectura e estratgia

Foi seleccionada uma abordagem cliente servidor [ Figura 40 / Figura 40 ]
baseada no modelo OSI. Pretendeu-se implementar uma plataforma que permitisse
algum grau de computao distribuda quando aplicada a casos prticos da
utilizao de manipuladores industriais em clulas de fabrico reais, ou seja,
pretendeu-se que a aplicao servidora fosse a responsvel pela gesto do
manipulador, garantindo independncia da aplicao cliente cuja implementao
deveria estar voltada para o fim a que se destina.
Por outro lado possvel que diferentes clientes sejam implementados para
desempenhar diferentes tarefas e que recorram ao servidor apenas e s para fazer
uso do tipo de servios passveis de serem disponibilizados por um manipulador
industrial.





Figura 40 Abordagem cliente-servidor Figura 41 Modelo OSI Camadas de aplicao e de transporte
[22]

Algumas das questes tipicamente apontadas como fragilidades deste tipo
de arquitectura, tais como a sobrecarga da largura de banda e dependncia
Mestrado em Engenharia Mecnica

45|74

efectiva do servidor provaram, no decorrer deste trabalho, ser de importncia
menor.
Por um lado, a largura de banda das redes locais actuais e o tipo de situao
em que um sistema destes pode operar dificilmente gerar congestionamento.
Dada a impossibilidade fsica do controlo de um manipulador ser efectuado
em simultneo por mais do que um cliente, implica que no faz sentido que um
servidor deste tipo, na essncia um servidor de operaes de um manipulador
industrial, possa, efectivamente, ser acedido por um numero tal de clientes que se
gere congestionamento.
A implementao desta arquitectura dividiu-se entre dois grandes grupos
das camadas do modelo OSI, camadas de aplicao, e, num nvel inferior,
camadas de transporte [Figura 41 ].
Para as camadas de aplicao foi desenvolvido um servidor em KAREL do
lado do controlador e uma aplicao cliente do lado do PC. Quanto s camadas de
transporte foi seleccionada uma implementao de sockets de Berkeley sobre
TCP/IP cujo funcionamento se expe no diagrama da Figura 42.



Figura 42 Etapas e procedimentos da arquitectura cliente servidor utilizada

A escolha recaiu sobre o protocolo TCP/IP essencialmente e para alm das
vantagens de ndole tcnica apresentadas atrs pela versatilidade que oferece,
nomeadamente na portabilidade da implementao do conceito de cliente para
diversas plataformas, nomeadamente para plataformas mveis. Este aspecto
discutido no captulo relativo a trabalho futuro.

4.4. Implementao

Nos pontos seguintes descreve-se, sumariamente, a implementao de
software efectuada no decorrer deste trabalho.
O software desenvolvido divide-se em dois grupos, o desenvolvimento da
aplicao servidora e da aplicao cliente, sendo que o primeiro o foco deste
trabalho.
Mestrado em Engenharia Mecnica

46|74

4.4.1.Desenvolvimento de um servidor

Foi desenvolvida uma aplicao servidora para o controlador do manipulador,
aplicao esta responsvel por disponibilizar um conjunto de servios a dispositivos
remotos [ Figura 43 / Figura 44 ].
Esta aplicao , por um lado, um parser de uma linguagem proprietria
tambm desenvolvida no decorrer deste trabalho e por outro um gestor de
operaes ao nvel do controlador, capaz de gerir o fluxo dos pedidos remotos e de
responder convenientemente ao dispositivo remoto.


Figura 43 robCOMM

Ecran inicial Figura 44 robCOMM

- Menu inicial

Esta aplicao foi completamente desenvolvida sobre a linguagem KAREL e
corre sobre o sistema operativo do controlador FANUC.
O servidor foi desenvolvido numa perspectiva mono-cliente. Os clientes
poder-se-o ligar e desligar livremente admitindo que apenas um cliente est ligado
de cada vez. Esta implementao poder evoluir para uma plataforma multi-cliente,
tal como discutido mais frente no captulo relativo ao trabalho futuro.
A implementao de sockets seleccionada para este trabalho, implica que o
cliente escute continuamente uma porta at que um cliente remoto a ele se ligue.
4.4.2. Desenvolvimento de um cliente

Foi desenvolvida uma aplicao cliente para PC para correr num dispositivo
remoto, enviando instrues aplicao servidora solicitando a execuo de
tarefas [ Figura 45 / Figura 46 ].
Esta aplicao foi desenvolvida em C# sobre a plataforma Microsoft

.NET
Framework.

Mestrado em Engenharia Mecnica

47|74


Figura 45 robCOMM Cliente Aspecto da interface
grfica
Figura 46 robCOMM Cliente Exemplo de menu de
configurao

Dado que os clientes se ligam atravs de sockets TCP/IP, podero ser
implementados e correr sobre qualquer plataforma que suporte sockets ( Windows,
Linux, Mac ). Na verdade, a aplicao cliente foi implementada como um cliente de
sockets TCP/IP no como foco e objecto deste trabalho mas apenas como forma
de demonstrar o conceito, validar o funcionamento da aplicao servidora e
exemplificar a sua implementao numa qualquer linguagem de programao por
objectos.

4.4.3. Desenvolvimento de uma linguagem

Para a concretizao deste trabalho, tornou-se bvio que seria necessrio
desenvolver um protocolo que permitisse que quer o cliente, o dispositivo remoto,
quer o servidor, falassem a mesma linguagem, tornando possvel a comunicao.
Assim, a necessidade do desenvolvimento de um simples protocolo, cedo se tornou
na necessidade de uma linguagem dado que se verificou que as instrues
remotas teriam que ser caracterizadas e convenientemente parametrizadas.
Foi, portanto, desenvolvida uma linguagem de programao a que se
chamou robCOMM language no seguimento do nome da aplicao servidora.
Esta linguagem especifica um conjunto de instrues devidamente
caracterizadas que indicam ao servidor que tipo de tarefa realizar [ Figura 47 ].


string MOVTOCPOS x y z w p r Flip Cfg2 Cfg3 Turn1 Turn2 Turn3 WaitMode

Figura 47 Exemplo da linguagem robCOMM

Mestrado em Engenharia Mecnica

48|74

5. robCOMM



5.1. Fundamentos e enquadramento

Tal como descrito no captulo anterior, foi desenvolvida uma aplicao
servidora a que se chamou robCOMM, de robotic communication, para o
controlador do manipulador responsvel por disponibilizar um conjunto de servios
a dispositivos remotos.
As solues existentes para resolver este problema implicam, tipicamente, a
aquisio de pacotes auxiliares de software quer para o controlador do robot quer
para o PC. Este tipo de soluo, alm do custo de aquisio e licenciamento,
implica um conjunto de desvantagens tais como a dependncia da plataforma do
software PC e a limitao s funcionalidades pr-implementadas pelo fabricante. A
soluo proposta atravs do robCOMM completamente independente da
plataforma PC, no exige qualquer mdulo avanado de software especfico para o
controlador e escalvel ao nvel do utilizador.
O robCOMM impe tambm uma camada de abstraco interessante na
utilizao de um manipulador industrial j que o utilizador remoto no precisa de
conhecer as especificaes do equipamento robotizado nem to pouco as
linguagens de programao nativas para o utilizar, o que confere boas
possibilidades de independncia de plataforma. pois possvel que o programador
de aplicaes da clula de fabrico, conhecendo apenas a linguagem utilizada pelo
robCOMM e o endereamento do equipamento na rede, possa usufruir do conjunto
alargado de funcionalidades implementadas.

5.2. Arquitectura e definies

Esta aplicao servidora foi desenvolvida numa lgica cliente-servidor, e
implementa sockets TCP/IP para realizar a comunicao.
Para melhor compreenso dos captulos seguintes, importante definir as
seguintes palavras-chave, sobre as quais assentam conceptualmente a
implementao do robCOMM [ Tabela 3 ].

Tarefa
Aco ou conjunto de aces a desempenhar pelo sistema
Materializao real de um servio

Servio
Funcionalidade disponibilizada pelo servidor a um dispositivo remoto
Implementao em software de tarefas reais

Instruo
Servio devidamente caracterizado pelos respectivos parmetros

Comando
Implementao em linguagem de programao de um servio

Parmetros
Caracterizadores de um servio
Tabela 3 Tarefa, servio, instruo e parmetros
N

v
e
l

d
e

l
i
n
g
u
a
g
e
m


Mestrado em Engenharia Mecnica

49|74

tambm importante definir o conceito utilizado para servios sncronos e
assncronos e explicitar a sua diferena. Assim, entende-se por servio sncrono
um servio que s retorna o resultado da operao que lhe est associada aps a
execuo integral do mesmo, ou seja, a execuo do servidor aguardar que a
tarefa solicitada seja cumprida antes de continuar a sua execuo e retornar o
resultado.
Entende-se por servio assncrono, um servio que retorna o resultado da
operao logo aps a tarefa ter sido iniciada, ou seja, a execuo do servidor no
aguardar pela completa execuo da tarefa para continuar a execuo.
A ttulo de exemplo um servio de movimento bsico pode, mediante um
dos seus parmetros, ser executado em modo sncrono ou assncrono, o que,
neste caso, significar que assim que o servidor receba a instruo de movimento
ordenar ao controlador que inicie o movimento da unidade mecnica mas, em
modo sncrono, aguardar que o manipulador chegue posio de destino para
retornar o resultado da operao, enquanto que em modo assncrono retornar de
imediato o resultado da operao.
Esta funcionalidade extremamente til e acrescenta um enorme potencial
aplicao desenvolvida pois permite que o servidor continue a aceitar solicitaes,
colocando as instrues numa pilha de tarefas a executar em modo FIFO. Para o
caso de servios relacionados com movimento, permite, por exemplo, que um dado
movimento em execuo seja interrompido antes do seu destino e, por exemplo,
reorientado.

5.3. Exemplo de aplicao

De seguida, descreve-se um exemplo de aplicao. Foi iniciada uma ligao
com o servidor robCOMM [ Figura 48 ] e foi enviada a instruo GETCRCPOS a
partir da aplicao cliente. Esta instruo foi validada e executada pelo servidor,
que devolveu aplicao cliente a informao solicitada.


Figura 48 robCOMM

Ligao e execuo de uma


instruo
Figura 49 robCOMM

Cliente - Instruo e recepo


de resultados

Neste caso, a instruo em causa, solicita ao servidor a posio actual do
TCP do robot em coordenadas cartesianas, informao esta que foi recebida com
sucesso [ Figura 49 ].

Mestrado em Engenharia Mecnica

50|74

5.4. Servios disponveis

Os servios disponibilizados pelo robCOMM agrupam-se em 4 grupos:
servios de movimento, servios de manipulao de dados, servios de clculo e
servios de execuo de programas.
De seguida descrevem-se os grupos de servios e o tipo de funcionalidade
que disponibilizam.
5.4.1. Servios de movimento

Os servios de movimento so, porventura, os servios mais relevantes e
significativos na utilizao de um manipulador industrial. Em ltima anlise, aquilo
que se espera de um equipamento deste gnero , de facto, a execuo de tarefas
que incluam movimento e, como tal, este tipo de servio foi aquele que mais
relevncia teve no desenvolvimento deste trabalho.
As aplicaes reais deste tipo de servio so inmeras. A ttulo de exemplo,
uma aplicao de manipulao de objectos em que se pretende que a informao
relativa ao posicionamento dos objectos a manipular seja obtida a partir de um
sistema de viso artificial, faria uso de um destes servios, enviando para o
servidor uma instruo de movimento, fazendo passar como parmetros a posio
cartesiana e orientao do objecto [ Figura 50 ].




Figura 50 Implementao industrial tpica de um sistema de viso

Um outro exemplo, este mais elaborado, seria uma aplicao de polimento
em que se pretende gerar uma trajectria a cumprir pelo manipulador, composta
por um qualquer nmero de nodos, trajectria esta gerada a partir uma aplicao a
correr num PC cujo input poderia ser, por exemplo, um modelo CAD.
5.4.2. Servios de manipulao de dados

Mestrado em Engenharia Mecnica

51|74

A implementao deste tipo de servios tornou possvel, por um lado, a troca
de valores de registos, quer numricos quer de posio, com o controlador e por
outro a interaco com os dispositivos de I/O disponveis no controlador.

5.4.3. Servios de clculo

um exerccio recorrente em aulas de robtica industrial, desafiar os alunos
a calcular as cinemticas de um manipulador industrial. Tipicamente so utilizados
modelos e algoritmos sistemticos como forma de descrever a relao cinemtica
entre os elos do manipulador. Um dos mtodos mais utilizados a notao de
Denavit-Hartenberg em que a posio e orientao dos corpos rgidos definida
numa matriz 4x4 [ Figura 51 / Figura 52 ].
Esta funcionalidade intrnseca do prprio manipulador na medida em que
exactamente como base na determinao das cinemticas directas e inversas que
possvel posicionar o manipulador.
Pretendeu-se, portanto, disponibilizar estas funcionalidades a um utilizador
remoto como ferramenta de verificao do modelo terico utilizado, ou seja, poder-
se- utilizar um qualquer mtodo terico, tal como a notao de Denavit-
Hartenberg, para determinar as posies de junta de cada eixo e comparar os
resultados com aqueles calculados pelo controlador do manipulador.






Figura 51 Conveno D-H [18] Figura 52 Mariz transformao de sistema de
coordenadas [17]

5.4.4. Servios de execuo de programas

A funcionalidade de execuo remota de programas TP em conjugao com
os servios de manipulao de registos numricos e de posio, geram uma
enorme versatilidade j que possvel criar programas TP-tipo que utilizem
registos para obter informao fornecida remotamente.
Por outro lado, as funcionalidades de execuo de programas TP do
aplicao uma versatilidade interessante. Existem um sem numero de opes
disponibilizadas pelo fabricante, de tal forma que a tarefa de implementar todas as
possibilidades no servidor seria, alm de extremamente morosa, provavelmente
intil no sentido em seria sempre possvel que o fabricante lanasse um nova
funcionalidade no disponvel data de criao do servidor.
Mestrado em Engenharia Mecnica

52|74

Assim, torna-se possvel construir programas TP que podero fazer uso de
todas as funcionalidades disponveis no controlador e torn-las disponveis
aplicao servidora de uma forma transparente.
A ttulo de exemplo, imagine-se uma nova opo de movimento no
contemplada e portanto no disponvel enquanto servio, mas que, em ltima
anlise, faz mover o rob do ponto A para o ponto B com um conjunto de
caractersticas tornadas possveis de especificar pela tal opo. Seria apenas
necessrio criar um simples programa TP com 2 linhas de movimento utilizando a
tal opo, e cujos pontos fossem quaisquer registos de posio. De seguida seria
possvel executar o tal programa TP criado e cujos pontos seriam registos tambm
eles possveis de especificar remotamente.
Esta funcionalidade reveste-se, pois, de importncia na medida em que
potencia o alargamento quase ilimitado das funcionalidades da aplicao
desenvolvida.

5.4.5. Gesto de erros

Todos as rotinas implementadas possuem um validao interna que
assegura que, na eventualidade da instruo solicitada no puder por qualquer
razo ser cumprida, gerado um cdigo de erro que passado para o dispositivo
cliente e que, dependendo do servio, pode ou no informar sobre o problema que
lhe deu origem.
Esta gesto de erros funciona a dois nveis. Num primeiro nvel validada a
disponibilidade do servio solicitado e verificado se a sintaxe dos parmetros do
mesmo se encontram na especificao do protocolo.
Num segundo nvel e depois de validado o comando, o servidor tenta
executar o servio associado avaliando o seu resultado. Se por qualquer razo no
for possvel execut-lo com sucesso, passado um cdigo de erro que em
alguns casos traduzido e, em ltima anlise, devolvido ao dispositivo remoto afim
de informar o utilizador do estado de execuo da instruo.
A ttulo de exemplo, no caso de uma instruo de movimento simples e alm
de validado a sintaxe do comando e respectivos parmetros, averiguado se a
posio destino se encontra dentro do volume de trabalho e se atingvel pelo
manipulador. Com isto pretende-se evitar que o utilizador s se aperceba que a
posio destino solicitada no vlida depois do comando de movimento j ter
sido despoletado, dando origem a um erro de sistema no controlador, cujo rearme
implicaria necessariamente operar a consola TP pondo em causa a robustez da
plataforma.

Mestrado em Engenharia Mecnica

53|74

6. A linguagem robCOMM



6.1. Fundamentos

As linguagens de programao, tal como as linguagens humanas, so
definidas atravs de um conjunto de regras morfolgicas, que determinam a sua
estrutura, e semnticas que determinam o significado. So utilizadas para facilitar a
comunicao homem-mquina, a manipulao de dados e a explicitao de
algoritmos.
O objectivo deste trabalho passa, tambm, por desenvolver uma forma de
controlar o comportamento do dispositivo robtico utilizado.
Pretendeu-se criar uma linguagem cujo conjunto de regras pudesse definir
comportamentos do equipamento, tornando possvel o seu controlo a partir de
dispositivos remotos. Assim, a implementao do robCOMM, enquanto servidor,
implicou tambm o desenvolvimento de uma linguagem que implementasse os
servios concebidos e possibilitasse a interaco de dispositivos remotos.
Foi, ento, desenvolvida a robCOMM language, linguagem de
implementao do servidor robCOMM [ Tabela 4 ].


MOVTOCPOS Movimento cartesiano
MOVTOJPOS Movimento em junta
GETCRCPOS Posio actual do TCP
GETCRJPOS Configurao actual das juntas
CHECKCPOS Verifica posies cartesianas
CHECKJPOS Verifica configuraes de junta
GETDIRKIN Calcula cinemtica directa
GETREVKIN Calcula cinemtica inversa
GETREG Obtm valores de registos
SETREG Escreve em registos
SETPATH Compe um caminho
MOVTHPTH Move ao longo de um caminho
LISTTPP Obtm a lista de programas TP
RUNTPP Executa programas TP
GETDIO Devolve o estado de I/O digitais
GETAIO Devolve o estado de I/O analgicas
SETDIO Actua I/O digitais
SETAIO Actua I/O analgicas
SETTOOLFRM Especifica uma Tool frame
SETUSERFRM Especifica um User frame
SETLSPEED Especifica velocidade linear
MOTIONSTOP Para o movimento
STOPSERV Termina o servidor
Tabela 4 Resumo de intrues robCOMM language
Mestrado em Engenharia Mecnica

54|74

6.2. Instrues disponveis

6.2.1. MOVTOCPOS e MOVTOJPOS

Sempre que se pensa num manipulador, pensa-se em movimento,
fazendo do conjunto de instrues disponveis, as mais emblemticas deste
trabalho. Permitem instruir o servidor a efectuar movimentos de tipo variado e
utilizando como destinos posies cartesianas ou configuraes angulares das
juntas.
Relativamente instruo MOVTOCPOS, necessrio fornecer os valores
para as coordenadas cartesianas e as respectivas orientaes [ Figura 53 ].



Figura 53 Composio de ponto cartesiano [7]

No entanto, no espao cartesiano, tambm necessrio especificar qual a
configurao desejada para uma dada posio [ Figura 54 ], configurao esta que
informao suficiente para ultrapassar qualquer situao de redundncia [ Figura
55 ].


Figura 54 Configurao [7]

Figura 55 Redundncias [7]
Mestrado em Engenharia Mecnica

55|74

Relativamente instruo MOVTOJPOS, necessrio apenas fornecer os
valores angulares para cada junta [ Figura 56 ].



Figura 56 Composio de configurao de juntas [7]


input
arg
descrio tipo
X Y Z w
p r
Posio
cartesiana
String
Cfg1
Cfg2
Cfg3
Configurao String


Turn1
Turn2
Turn3
Voltas String
J 1 J 2 J 3
J 4 J 5 J 6
J 7
Posio angular
das juntas
String



output Descrio tipo
MOVTOCPOS X Y Z w p r
Cfg1 Cfg2 Cfg3 Turn1
Turn2 Turn3

MOVTOJPOS J 1 J 2 J 3 J 4 J 5
J 6

Tabela 5 Instrues movToCPos / movToJPos Tabela 6 Parmetros movToCPos / movToJPos

, tambm, possvel pr configurar o servidor para efectuar movimentos em
junta por oposio ao movimento linear pr definido.




Figura 57 Movimento em junta [7] Figura 58 Movimento linear [7]
Mestrado em Engenharia Mecnica

56|74

6.2.2. GETCRCPOS e GETCRJPOS

Estes servios permitem obter a posio actual do TCP do manipulador quer
em coordenadas cartesianas, GETCRCPOS, quer em posies angulares de junta,
GETCRJPOS.


Figura 59 Ecran TP com posio de juntas [7] Figura 60 Ecran TP com posio cartesiana [7]


Figura 61 Posio actual do TCP [7]

De salientar que as coordenadas cartesianas so relativas ao sistema de
coordenadas base do manipulador muito embora seja possvel configurar o
servidor de modo a que as coordenadas cartesianas sejam relativas a qualquer
outro sistema de coordenadas.

input
arg
descrio tipo



output Descrio tipo
X Y Z w
p r
Posio
cartesiana
String
GETCRCPOS
GETCRJPOS
J 1 J 2 J 3
J 4 J 5 J 6
J 7
Posio angular
das juntas
String


Tabela 7 Instrues getCrcPos / getCrjPos Tabela 8 Parmetros getCrcPos / getCrjPos

Para estes comandos no existem argumentos de entrada e o dado de sada
uma cadeia de texto com os valores numricos da posio actual.

Mestrado em Engenharia Mecnica

57|74

6.2.3. CHECKCPOS e CHECKJPOS

Este servio implementa a validao de posies ou configuraes de juntas
sobre o volume de trabalho do manipulador.


Figura 62 Exemplo de volume de trabalho de um manipulador industrial [7]

Esta validao efectuada sempre que se executa um comando de
movimento individual, MOVTOCPOS ou MOVTOJPOS, mas no se o comando de
movimento for um movimento composto atravs de um caminho, MOVTHPTH.
Assim, dependendo do objectivo ou da necessidade de garantir que uma dada
posio destino est dentro do volume de trabalho e alcanvel pelo manipulador,
importante executar este servio fornecendo as coordenadas cartesianas e
orientaes da posio a testar, CHECKCPOS, ou a configurao de juntas,
CHECKJPOS.
De salientar que a configurao utilizada para o clculo a configurao
actual do manipulador, ou seja, dever-se- mover previamente o rob para o
quadrante da configurao sobre a qual se pretende testar a validade de uma dada
posio cartesiana ou configurao de juntas.

input arg descrio tipo

X Y Z
Posio
cartesiana a
verificar
Real

w p r
Orientao da
posio a
verificar
Real
J 1 J 2 J 3 J 4
J 5 J 6
Configurao
de juntas a
verificar
Real


output Descrio tipo
CHECKCPOS Validao String ( OK /
NOK )
CHECKCPOS X Y Z w p r
CHECKJ POS J 1 J 2 J 3 J 4 J 5 J 6
CHECKJ POS Validao String ( OK /
NOK )

Tabela 9 Instruo checkCPos /checkJPos Tabela 10 Parmetros checkCPos / checkJPos
Mestrado em Engenharia Mecnica

58|74

6.2.4. GETDIRKIN e GETREVKIN

Estes servios permitem obter as solues de cinemtica directa para uma
dada configurao de juntas ou de cinemtica inversa para uma dada posio
cartesiana [ Figura 63 ].



Figura 63 Cinemtica directa e inversa [17]


input arg descrio tipo

X Y Z w p r
Posio e
orientao
cartesiana
Real
J 1 J 2 J 3 J 4 J 5
J 6
Configurao
de juntas
Real

output Descrio tipo
GETDIRKIN J 1 J 2 J 3 J 4 J 5
GETREVKIN X Y Z w p r
GETDIRKIN Posio
cartesiana
String

GETREVKIN Configurao
de juntas
String

Tabela 11 Instrues getdirkin / getrevkin Tabela 12 Parmetros getdirkin / getrevkin


6.2.5. GETREG

Este servio permite obter os valores de registos. possvel obter os valores
de registos de posio e de registos numricos mediante a especificao do tipo e
nmero do registo cujos dados se pretende obter.

input arg descrio tipo
regType Tipo de registo
a obter
Real
regIndex Numero do
registo a obter

Real
output Descrio tipo
GETREG regType
regIndex
GETREG Valor do registo String

Tabela 13 Instruo getReg Tabela 14 Parmetros getReg

Mestrado em Engenharia Mecnica

59|74

6.2.6. SETREG

Este servio permite atribuir valores a registos. possvel atribuir valores a
registos de posio e registos numricos mediante a especificao do tipo e
nmero do registo cujos dados se pretende obter.

input
arg
descrio tipo
tpPrg Nome de
programa TP a
executar
String

output Descrio tipo

LISTTP
Lista de
programas
String
LISTTP
RUNTP tpPrg
RUNTP Status String

Tabela 15 Instrues listTp / runTp Tabela 16 Parmetros listTp / runTp

6.2.7. SETPATH e MOVTHPTH

Estes servios permitem configurar um dado caminho, ie trajectria, atravs
de um conjunto de nodos, ie pontos de passagem, e, posteriormente, mover o TCP
do manipulador atravs desse mesmo caminho.



Figura 64 Instruo movThPth

Relativamente ao SETPATH, possvel especificar a posio cartesiana e
respectivas orientaes de cada nodo, mas de notar que a configurao utilizada
ao longo do movimento a configurao do manipulador na altura da execuo do
movimento.
Quanto instruo MOVTHPTH, possvel especificar a velocidade a
utilizar para o movimento atravs do caminho. Este valor deve ser considerado em
mm/s com o mximo de 2000 mm/s e de notar que passa a ser utilizado como o
valor de velocidade utilizado para quaisquer tipos de movimentos seguintes.

input arg descrio tipo

X Y Z
Posio
cartesiana a
verificar
Real
SETPATH X Y Z w p r
MOVTHPTH pathSpeed

w p r Orientao da
posio a
Real
Mestrado em Engenharia Mecnica

60|74

verificar
pathSpeed Velocidade Real


output Descrio tipo
SETPATH Status String
MOVTHPTH Status String

Tabela 17 Instruo setPath / movThPth Tabela 18 Parmetros setPath / movThPth

6.2.8. LISTTPP e RUNTPP

Estes servios permitem obter uma lista dos programas TP disponveis no
sistema de ficheiros do controlador e executar um qualquer programa.

input
arg
descrio tipo
tpPrg Nome de
programa TP a
executar
String

output Descrio tipo

LISTTP
Lista de
programas
String
LISTTP
RUNTP tpPrg
RUNTP Status String

Tabela 19 Instrues listTp / runTp Tabela 20 Parmetros listTp / runTp

O comando LISTTP, devolve a lista de programas disponvel e no dispe
de qualquer argumento de entrada.
Quanto ao comando RUNTP, o nico parmetro de entrada o nome do
programa TP que se pretende executar. Devolver o estado de execuo do
comando como OK se tiver sido possvel executar o programa solicitado e como
NOK se o programa no existir ou no estiver disponvel. possvel configurar o
servidor de modo a executar este comando de modo sncrono, em que a resposta
s devolvida aps a completa execuo do programa TP, ou de modo assncrono,
em que a resposta devolvida logo depois do programa ter sido iniciado.

6.2.9. GETDIO e GETAIO

Estes servios permitem obter o estado ou o valor analgico de entradas
digitais ou analgicas respectivamente.

input
arg
descrio tipo
ioId Id da I/O Inteiro

output descrio tipo
GETDIO Estado digital String ( 1/0 )
GETDIO ioId
GETAIO ioId
GETAIO Valor analgico String ( 0
10000 )
Mestrado em Engenharia Mecnica

61|74


Tabela 21 Instrues getAio / getDio Tabela 22 Parmetros getAio / getDio

O nico parmetro de entrada o identificador da entrada de que se
pretende obter o respectivo estado ou valor enquanto que o dado de sada um
estado digital se se tratar de uma entrada digital mas, relativamente a entradas
analgicas, esta funcionalidade utiliza uma razo proporcional com a resoluo de
1/10000 para especificar o respectivo valor. A real amplitude do valor depender da
forma como a entrada em questo se encontre configurada mas pretendeu-se que
esta questo no fosse tornada transparente ao utilizador remoto que no
precisar de conhecer a configurao do hardware para poder obter um valor
analgico num intervalo conhecido.

6.2.10. SETDIO e SETAIO

Estes servios permitem atribuir um estado ou um valor analgico a sadas
digitais ou analgicas respectivamente.

input
arg
descrio tipo
ioId Id da I/O Inteiro
ioBool Estado digital 1 / 0
ioVal Valor analgico Inteiro (0
10000)

output descrio tipo
SETDIO Status string
SETDIO ioId ioBool
SETAIO ioId ioVal
SETAIO Status String (OK/NOK)

Tabela 23 Instrues setAio / setDio Tabela 24 Parmetros setAio / setDio

Os argumentos so o identificador da sada e o estado digital ou valor
analgico a impor enquanto que o retorno o estado de execuo do comando.
Conforme a configurao do servidor, retornar OK ou NOK consoante a operao
tenha sido realizada com ou sem sucesso.
De notar que se se tratar de uma sada analgica, esta funcionalidade utiliza
uma razo proporcional com a resoluo de 1/10000 para especificar o respectivo
valor. A real amplitude do valor depender da forma como a sada em questo se
encontre configurada. Pretendeu-se que esta questo no fosse tornada
transparente ao utilizador remoto que no precisar de conhecer a configurao do
hardware para poder impor um valor analgico num intervalo conhecido.

6.2.11. SETTOOLFRM

Este servio permite configurar o TCP do manipulador.
Esta uma funcionalidade essencial na operao de manipuladores
industriais e um parmetro de importncia crucial pois sobre este ponto que as
cinemticas so calculadas e todos os pontos referenciados.

Mestrado em Engenharia Mecnica

62|74



Figura 65 Instruo setToolFrm [7] Figura 66 TCP - Tool Center Point [7]


input arg descrio tipo

toolId
Id da
ferramenta
Inteiro

X Y Z
Offset
cartesiano da
ferramenta
relativamente
ao TCP0
Real

w p r
Orientao da
ferramenta
relativamente
ao sistema de
coordenadas
World
Real
output descrio tipo
SETTOOLFRM toolId X Y Z w
p r
SET^TOOLFRM Status String

Figura 67 Instruo setToolFrm Figura 68 Parmetros setAio / setDio

6.2.12. SETSPEED

Este servio permite especificar a velocidade para movimentos simples,
lineares ou de junta. O valor de velocidade especificado valido at ser sobrescrito
por este mesmo comando e ser sempre atribudo um valor por defeito reduzido da
inicializao da aplicao.


Figura 69 Diagrama de aceleraes [7]

Mestrado em Engenharia Mecnica

63|74

Em movimentos de tipo linear, o valor deve ser considerado em mm/s com o
mximo de 2000 mm/s, enquanto que em movimento de junta, o valor de
velocidade calculado como uma razo proporcional com a resoluo de 1/2000
entre o valor atribudo e o valor mximo atingvel. De notar que o movimento
respeitar um perfil de acelerao / velocidade com rampas pr-definidas. [ Figura
69 ].

input arg descrio tipo
speed Velocidade Real

output descrio tipo
SETSPEED speed
SETSPEED Status String

Figura 70 Instruo setSpeed Figura 71 Parmetros setSpeed

6.2.13. STOPSERV

Este servio permite terminar de forma unilateral e definitiva a aplicao
servidora, no existindo qualquer possibilidade de recuperar sem que seja utilizada
a consola de programao.

input arg descrio tipo




output descrio tipo
STOPSERV
STOPSERV Status String

Figura 72 Instruo stopServ Figura 73 Parmetros stopServ

Mestrado em Engenharia Mecnica

64|74

7. Concluses e trabalho futuro

7.1. Concluses

No mbito deste trabalho foi desenvolvida e validada uma plataforma
servidora para um controlador de um manipulador industrial. O valor acrescentado
deste trabalho passa pela demonstrao do potencial de aplicao do controlo
remoto de um manipulador industrial.
Com o robCOMM foi conseguido um nvel de abstraco que permite que o
utilizador remoto no seja obrigado a conhecer as especificaes do equipamento
robotizado nem as suas linguagens de programao nativas.
A aproximao utilizada envolve uma estratgia baseada no modelo cliente -
servidor, em que o controlador do manipulador actua como servidor,
disponibilizando servios a um dispositivo remoto. A implementao do software
passou por uma implementao de sockets de Berkeley sobre TCP/IP com base no
modelo OSI. Esta estratgia implica uma total independncia de plataforma,
ferramentas e linguagens de programao na ptica do programador remoto. A
aplicao cliente do servidor robCOMM poder ser desenvolvida como parte
integrante duma aplicao de gesto de uma clula de fabrico sem que existam as
restries comuns s ferramentas comercialmente disponveis.
Conseguiu-se desenvolver uma plataforma capaz de oferecer servios de
vrios tipos, com especial relevncia para os servios relacionados com movimento.
Com o robCOMM provou-se ser possvel controlar e monitorizar remotamente um
manipulador industrial, disponibilizando servios de controlo de movimento,
manipulao de dados, registos e I/O, clculo de cinemticas e execuo remota
de programas, tornando poderosa e simples a sua implantao numa clula real de
fabrico.
Verificou-se que este trabalho pode ser muito til na redefinio do que
uma clula de fabrico convencional, passando um PC a desempenhar um papel
central e de interligao entre todos os elementos da clula de fabrico

7.2. Trabalho futuro

De seguida so discutidas algumas das evolues consideradas relevantes
e com potencial de evoluo para o autor, verificadas no decorrer deste trabalho.
Depois de validada a plataforma e o conceito, seria relativamente fcil desenvolver
os conceitos desenvolvidos.
7.2.1. Extenso do servidor e da linguagem

A extenso da linguagem como forma de ampliar potencial do equipamento
, sem dvida, a tarefa mais significativa.
Os servios disponibilizados pelo servidor devero ser estendidos at que se
considere que a funcionalidade do equipamento est completamente explorada e a
implementao. A funcionalidade dos servios j disponveis deve ser questionada
e melhorada. So disso exemplo os servios de leitura e escrita de registos visto
que foram implementados apenas os mais relevantes e aqueles disponveis em
Mestrado em Engenharia Mecnica

65|74

todas as variantes do sistema operativo dos controladores FANUC, registos de
posio e registos numricos, mas poder ser interessante estender esta
funcionalidade a todos os registos especficos das variantes de sistemas operativos
disponveis. Seria tambm interessante tornar mais amplo e verstil o controlo de
velocidade do movimento. data de concluso deste documento, possvel
especificar a velocidade de comandos de movimento mas podia ser facilmente
estendido de forma a incluir a velocidade como parmetro na definio de um nodo,
por forma a controlar a velocidade de deslocamento entre nodos de um dado
caminho.
Seria tambm interessante permitir a construo de mais do que um
caminho, armazenando a informao dos nodos localmente no controlador, e por
outro permitir a edio de um qualquer nodo de um dado caminho, em alternativa a
ter que reenviar todo o caminho sempre que se pretenda efectuar uma alterao
em apenas um dos ns. Uma hiptese seria a de rearranjar a estruturao da
aplicao para que novas instrues pudessem ser adicionadas sem que fosse
necessrio alterar e recompilar o cdigo do servidor.

7.2.2. Plataforma multi-cliente

Seria interessante evoluir a plataforma servidora para um cenrio
completamente multi-socket / multi-cliente. Esta hiptese no foi explorada no
decorrer deste trabalho mas entende-se que seria uma melhoria relevante.
Desta forma seria possvel por um lado gerir pedidos remotos de mais do
que um cliente e por outro lado permitiria que um cliente remoto pudesse dispor de
um socket para a comunicao e troca de informao e um outro para gerir um
canal de emergncia.
O cenrio multi-cliente pode ser contemplado na arquitectura cliente-servidor
utilizando sockets TCP/IP utilizada neste trabalho, recorrendo ao conceito de multi-
threathing em que uma dada tarefa bifurca sempre que existir a necessidade de
executar mais do que uma tarefa em simultneo.

7.2.2. Portabilidade da aplicao cliente

A implementao de um cliente robCOMM em dispositivos mveis alm de
conceptualmente simples, introduziria uma nova rea de aplicabilidade do trabalho
desenvolvido. Numa lgica CIM, seria interessante, por exemplo, monitorizar a
operao de equipamentos robotizados atravs de PDAs por parte dos
responsveis de produo de uma dada instalao fabril.
7.2.3. Encapsulamento de instrues robCOMM

De forma a poder utilizar as funcionalidades de intellisensing [29] das
plataformas de desenvolvimento actuais, faria sentido encapsular as instrues
disponibilizadas pelo robCOMM num componente a ser utilizado ao nvel do
programador em linguagens orientadas por objectos. Seja um componente activeX
[30] ou mesmo uma classe da mais recente WFC [31], este tipo de encapsulamento
permitiria uma utilizao mais simples e eficaz das potencialidades do robCOMM.
Mestrado em Engenharia Mecnica

66|74

8. Referencias

[1] Pires, N., S da Costa, J ., Running an Industrial Robot from a typical
Personal Computer, 1998, IEEE International Conference on Electronics,
Circuits and Systems, Volume 1, Issue , 1998 Page(s):267 - 270 vol.1
[2] United Nations, World Robotics 2004 Statistics, Market Analysis,
Forecasts, Case Studies and Profitability of Robot Investment, 2004, United
Nations
[3] Hirchfeld, R.A., Aghazadeh, F., Chapleski, R.C., Survey of robot safety
in industry, The International Journal of Human Factors in Manufacturing,
Vol. 3 No. 4, 1993, pp 369-79.
[4] Young, K., Pickin, C. , Accuracy assessment of the modern industrial
robot, Industrial Robot: An International Journal Vol. 27 N6, 2000, MCB
University press
[5] FANUC Robotics America, Inc., 2003, Robotics SYSTEM R-J 3iB
Controller KAREL Reference Manual, 2003
[6] FANUC Robotics America, Inc., 2002, FANUC R-J 3iB Ethernet
Operator Manual, 2002
[7] FANUC Robotics America, Inc., 2002, FANUC Robot series ARC
TOOL Operators Manual, 2002
[8] FANUC Robotics, 2002, FANUC M-6iB Series
[9] FANUC Robotics America, Inc., 2001, FANUC R-J 3iB Maintenance
Manual for Europe, 2001
[10] FANUC Robotics America, Inc., 2001, FANUC ARC Mate 100iB/M6iB
Maintenance Manual, 2001
[11] FANUC Robotics, RJ3iC Training Manual
[12] IBM, 1998, TCP/IP Tutorial and Technical Overview, International
Technical Support Organization, 1998
[13] Nordin , J ohnny, Persson, Marie, Industrial Ethernet - EtherNet/IP,
Department of Computer Science and Engineering, 2003
[14] EtherNet/IPBM, 1998, TCP/IP Tutorial and Technical Overview,
International Technical Support Organization, 1998
[15] Dagalakis, Nicholas G., Industrial Robotics Standards, National
Institute of Standards and Technology, Intelligent Systems Division,
Maryland, U.S.A.
[16] Cederberg, Per 2004, On Sensor-Controlled Robotized One-off
Manufacturing, PhD Thesis, Department of Mechanical Engineering - Lund
Institute of Technology, 2004
[17] Santos, V.S. 2003, Robtica Industrial Apontamentos Tericos,
Departamento de Engenharia Mecnica, Universidade de Aveiro, 2003
Mestrado em Engenharia Mecnica

67|74

[18] K. Fu, R. Gonzalez, C. Lee, Robotics: control, sensing, vision, and
intelligence, Mcgraw-hill, 1987
[19] ISO Standard 8373:1994, Manipulating Industrial Robots
[20] Lozano-Perez, Tomas, Robot programming, Procedings of the IEEE,
Vol. 71, No. 7, July 1983
[21] http://en.wikipedia.org/wiki/Programming_language, Wikipedia, lido em
J ulho de 2007
[22] http://en.wikipedia.org/wiki/OSI_model, Wikipedia, lido em J ulho de
2007
[23] Zimmermsnn, Hubert, The OSI Model of Architecture for Open
Systems Interconnection, IEEE Transactions on communications, Vol. 28, No.
4, April 1980
[24] http://www.fanucrobotics.com, FANUC Robotics
[25] http://www.abb.com, ABB Asea Brown Boveri Ltd,
[26] http://www.yaskawa.co.jp, Yaskawa Electric Company
[27] http://www.kuka.com, KUKA Roboter GmbH
[28] http://www.iana.org/assignments/port-numbers, Internet Assigned
Numbers Authority ( IANA ), lido em J ulho de 2007
[29] http://msdn2.microsoft.com/en-us/library/43f44291(VS.71).aspx,
Microsoft Corporation, lido em J ulho de 2007
[30] http://en.wikipedia.org/wiki/Component_Object_Model, Wikipedia, lido
em J ulho de 2007
[31] http://en.wikipedia.org/wiki/Windows_Communication_Foundation,
Wikipedia, lido em J ulho de 2007
[32] http://msdn2.microsoft.com/en-us/library/, Microsoft Corporation, lido
em J ulho de 2007

Mestrado em Engenharia Mecnica

68|74

Anexos


Mestrado em Engenharia Mecnica

69|74

Anexo A. Unidade FANUC M6iB RJ3iC

Mestrado em Engenharia Mecnica

70|74




Mestrado em Engenharia Mecnica

71|74

Anexo B. Controlador FANUC RJ3iC


Mestrado em Engenharia Mecnica

72|74

Anexo C. Lista de funes robCOMM

string MOVTOCPOS x y z w p r Flip Cfg2 Cfg3 Turn1 Turn2 Turn3 WaitMode
Moves to a given cartesian position

string MOVTOJPOS J 1 J 2 J 3 J 4 J 5 J 6
Moves to a given joint configuration

string GETCRCPOS
Returns the current TCP cartesian position

string GETCRJPOS
Returns the current joint configuration

string CHECKCPOS x y z w p r
Verifies if a given cartesian position is in the work envelope and if it is
reachable

string CHECKJPOS J 1 J 2 J 3 J 4 J 5 J 6
Verifies if a given joint configuration is in the work envelope and if it is
reachable

string GETDIRKIN J 1 J 2 J 3 J 4 J 5 J 6
Returns the direct kinematics for a given joint configuration

string GETREVKIN x y z w p r
Returns the reverse kinematics for a given cartesian position

string GETREG regType regIndex
Returns a register data (R or PR regs)

string SETREG regType regIndex
Writes data in a register (R or PR regs)

string SETPATH x y z w p r ( n nodes )
Builds a path given its nodes

string MOVTHPTH pathSpeed
Moves along a previously set path

string LISTTPP
Returns a TP programs list

string RUNTPP tpPrg
Runs a TP program given its name

string GETDIO ioIndex
Returns a digital I/O current status
Mestrado em Engenharia Mecnica

73|74


string GETAIO ioIndex
Returns an analog I/O current value

string SETDIO ioIndex digIoValue
Sets a digital I/O status

string SETAIO ioIndex analogIoValue
Sets an analog I/O value

string SETTOOLFRM x y z w p r
Sets a Tool frame

string SETUSERFRM x y z w p r
Sets a User frame

string SETLSPEED linSpeed
Sets linear motion speed for next motion instruction

string MOTIONSTOP
Motion all stop

string STOPSERV
Terminates server


Mestrado em Engenharia Mecnica

74|74

Anexo D. Cliente de sockets em modo sncrono ( C# .NET ) [32]

usi ng Syst em;
usi ng Syst em. Net ;
usi ng Syst em. Net . Socket s;
usi ng Syst em. Text ;

publ i c cl ass Socket Cl i ent {
publ i c st at i c voi d St ar t Cl i ent ( ) {
/ / Dat a buf f er f or i ncomi ng dat a.
byt e[ ] byt es = new byt e[ 1024] ;
/ / Connect t o a r emot e devi ce.
t r y {
/ / Remot e endpoi nt
I PHost Ent r y i pHost I nf o = Dns. Resol ve( Dns. Get Host Name( ) )
I PAddr ess i pAddr ess = i pHost I nf o. Addr essLi st [ 0] ;
I PEndPoi nt r emot eEP = new I PEndPoi nt ( i pAddr ess, 11000) ;

/ / Cr eat e a TCP/ I P socket .
Socket sender = new Socket ( Addr essFami l y. I nt er Net wor k,
Socket Type. St r eam, Pr ot ocol Type. Tcp ) ;

/ / Connect t he socket t o t he r emot e endpoi nt
t r y {
sender . Connect ( r emot eEP) ;
Consol e. Wr i t eLi ne( " Socket connect ed t o {0}" ,
sender . Remot eEndPoi nt . ToSt r i ng( ) ) ;

byt e[ ] msg = Encodi ng. ASCI I . Get Byt es( " Test e<EOF>" ) ;

/ / Send dat a
i nt byt esSent = sender . Send( msg) ;

/ / Recei ve r esponse
i nt byt esRec = sender . Recei ve( byt es) ;
Consol e. Wr i t eLi ne( " Echoed t est = {0}" ,
Encodi ng. ASCI I . Get St r i ng( byt es, 0, byt esRec) ) ;

/ / Rel ease t he socket
sender . Shut down( Socket Shut down. Bot h) ;
sender . Cl ose( ) ;

} cat ch ( Ar gument Nul l Except i on ane) {
} cat ch ( Socket Except i on se) {
} cat ch ( Except i on e) {
}
} cat ch ( Except i on e) {
}
}
publ i c st at i c i nt Mai n( St r i ng[ ] ar gs) {
St ar t Cl i ent ( ) ;
r et ur n 0;
}
}

Você também pode gostar