Dissertação de Mestrado - DESENVOLVIMENTO DE UM SUPERVISÓRIO MODULAR PARA UMA CÉLULA FLEXÍVEL DE MANUFATURA PDF
Dissertação de Mestrado - DESENVOLVIMENTO DE UM SUPERVISÓRIO MODULAR PARA UMA CÉLULA FLEXÍVEL DE MANUFATURA PDF
Dissertação de Mestrado - DESENVOLVIMENTO DE UM SUPERVISÓRIO MODULAR PARA UMA CÉLULA FLEXÍVEL DE MANUFATURA PDF
Dissertação submetida à
ii
UNIVERSIDADE FEDERAL DE SANTA CATARINA
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA MECÂNICA
MESTRE EM ENGENHARIA
ESPECIALIDADE ENGENHARIA MECÂNICA
____________________________________ ________________________________
Prof. João Carlos Espíndola Ferreira, Ph.D. Prof. Marcelo Teixeira dos Santos, Dr.
Orientador - UFSC Co-Orientador - IST
__________________________________
Prof. Fernando Cabral, Ph.D.
Coordenador do Curso
BANCA EXAMINADORA
__________________________________
Prof. Jonny Carlos da Silva, Dr.
UFSC
__________________________________ _________________________________
Prof. Ricardo José Rabelo, Dr. Prof. Victor Juliano De Negri, Dr.
UFSC UFSC
iii
AGRADECIMENTOS
iv
DEDICATÓRIA
v
RESUMO
procedimentos para integrar, de forma física e lógica, um grupo de máquinas CNC, um robô
Manufacturing Cell - FMC). Em primeiro lugar foi feita a modelagem da célula, com base na
SCADA). Cada módulo foi concebido com interfaces suficientes para permitir a integração de
A comunicação entre os diversos módulos é realizada utilizando a tecnologia OPC (OLE for
Process Control), que possibilita a troca de dados entre gerenciadores em tempo real e de
forma aberta. A integração entre os gerenciadores e seus respectivos equipamentos é feita por
(IHM) foram desenvolvidas para permitir que usuários locais e remotos (fisicamente
distantes) possam inserir e monitorar seus pedidos de fabricação na célula. Todos os códigos
utilizados na construção dos gerenciadores são descritos neste trabalho, além dos programas
hardware necessários para a integração dos diferentes equipamentos que compõem a célula.
vi
ABSTRACT
This work aims at proposing and implementing a set of instructions and procedures to
integrate, physical and logically, a group of CNC (Computer Numerical Control) machines,
an industrial robot and an Automatic Storage and Retrieval System (AS/RS), in order to form
a Flexible Manufacturing Cell (FMC). First of all, the cell was modeled based on a definition
of a set of minimum interfaces for each piece of equipment, using Petri Nets. After
completing the modeling of the cell, it was proposed and implemented an integration model,
based on management modules developed with a monitoring and control software (Elipse
SCADA - Supervisory Control and Data Acquisition). Each module was conceived with
ensures flexibility in the cell configuration. The communication between the several modules
is made using OPC (OLE for Process Control) technology, which allows the data exchange
between the management modules real time and in an open way. The integration between
managers and their equipments is done by a PLC (Programmable Logic Controller). The
system admits to simulate a piece family manufacturing without any operator interference.
HMIs (Human Machine Interfaces) were developed to allow local and remote (physically
distant) users to insert their manufacture order and to monitor them. All codes used in the
development of the management modules are described in this work, and so the robot
movement programs, the programs developed for the CLPs, and the hardware
implementations necessary for the integration of the different pieces of equipment that
vii
RESUMEN
y procedimientos para integrar, de forma física y lógica, un grupo de máquinas CNC, un robot
Manufacturing Cell – FMC). En primer lugar se efectuó el modelado de la celda, con base en
la definición previa de un conjunto de interfaces mínimas para cada equipo y con el auxilio
del mecanismo formal de descripción de las Redes de Petri. A partir del modelado de la celda,
entre los diversos módulos se realiza utilizando la tecnología OPC (OLE for Process
Control), que permite el intercambio de datos entre módulos de gerencia en tiempo real y de
forma abierta. La integración entre los módulos de gerencia y sus respectivos equipos se
Hombre-Máquina (IHM) son desarrolladas para permitir que usuarios locales y remotos
Todos los códigos utilizados en la construcción de los módulos de gerencia son detallados en
este trabajo, además de los programas de movimiento del robot, programas desarrollados para
viii
SUMÁRIO
1. INTRODUÇÃO ................................................................................................................................. 1
ix
2.5 SISTEMAS SCADA COM OPC .............................................................................................. 33
x
5.4.1 Aplicativo gerenciador do robô no Elipse SCADA .......................................................... 91
A1. Redes de Petri Interpretadas da integração da mesa1 do AS/RS com o torno .................. 135
A2. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com o torno .................. 136
A3. Redes de Petri Interpretadas da integração da mesa1 do AS/RS com a fresadora ............ 136
A4. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com a fresadora ............. 137
A5. Redes de Petri Interpretadas da integração da mesa1 do AS/RS com o CNC R1 ............ 137
A6. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com o CNC R1 .............138
A7. Redes de Petri Interpretadas da integração das mesas do AS/RS com o torno ................. 138
A8. Redes de Petri Interpretadas da integração do torno com a mesa1 do AS/RS .................. 139
A9. Redes de Petri Interpretadas da integração do torno com a mesa2 do AS/RS ................... 139
A10. Redes de Petri Interpretadas da integração das mesas do AS/RS com a fresadora ........ 140
A11. Redes de Petri Interpretadas da integração da fresadora com a mesa1 do AS/RS .......... 141
A12. Redes de Petri Interpretadas da integração da fresadora com a mesa2 do AS/RS ........... 141
xi
A13. Redes de Petri Interpretadas da integração das mesas do AS/RS com o CNC R1 .......... 142
A14. Redes de Petri Interpretadas da integração do CNC R1 com a mesa1 do AS/RS .......... 143
A15. Redes de Petri Interpretadas da integração do CNC R1 com a mesa2 do AS/RS .......... 143
xii
ÍNDICE DE FIGURAS
Figura 2.7. Características de capacidade produtiva e flexibilidade dos sistemas de produção ........... 25
Figura 2.11. Arquitetura entre Cliente OPC e diversos Servidores OPC ............................................ 34
Figura 3.6. Evolução histórica das arquiteturas dos sistemas de controle .......................................... 48
xiii
Figura 4.4. Interfaces do robô .............................................................................................................. 58
Figura 4.7. RdPI simplificada para movimentação de peças da mesa1 até o torno ............................. 64
Figura 5.3. Configuração das tags OPC no organizer do Elipse SCADA ........................................... 72
Figura 5.10. Cilindro pneumático, porta do torno e banco de relés auxiliares (no detalhe) ................. 81
Figura 5.15. Arquitetura da troca de informações entre gerenciador, CLP Moeller e torno ................. 85
Figura 5.18. Interface com o operador do gerenciador da fresadora e tags do organizer ..................... 88
Figura 5.22. Tags utilizadas pelo gerenciador do robô e parametrização do driver Prodave ............... 95
Figura 5.26. Posições da trajetória do robô, CLP Siemens e controlador do robô ............................ 104
xiv
Figura 5.28. Berços de usinagem, saída/rejeito e entrada .................................................................. 107
Figura 5.33. Script para atualização da tag ProgUsinagem após o início da usinagem ..................... 112
Figura 5.34. Estruturas dos servidores OPC e uma tela do gerenciador FMC .................................... 113
Figura 5.35. Estrutura desmembrada das tags OPC e tela principal do aplicativo .............................. 114
Figura 5.37. Estrutura das tags do gerenciador remoto e interface com usuário................................. 116
Figura 5.39. Arquitetura das conexões na célula e recursos de software ............................................ 118
xv
ÍNDICE DE TABELAS
Tabela 2.1. Comparativo entre sistemas para diferentes volumes de produção ................................... 24
Tabela 5.8. Relação entre tags, sinais do CLP Moeller e programas .................................................. 83
Tabela 5.13. Relação entre tags, mesa de usinagem, CNC e programa do robô ............................... 94
Tabela 5.14. Configuração dos Parâmetros “N” para o driver Prodave .............................................. 96
Tabela 5.16. Relação entre tags PLC e I/Os digitais do robô .............................................................. 99
Tabela 5.18. Programas de carga e descarga do torno a partir da mesa1 ........................................... 101
Tabela 5.19. Relação entre a tag AuxiliarProg, mesa de usinagem e programa do robô .................. 106
Tabela 5.20. Conversão de interfaces do armazém e FMC para tags ................................................ 108
Tabela 5.22. Conversão de interfaces do gerenciador remoto para tags ............................................. 115
xvi
LISTA DE SÍMBOLOS, NOMENCLATURAS E ABREVIAÇÕES
BD - Banco de Dados
xvii
1. INTRODUÇÃO
A manufatura, termo que originalmente significa “fazer a mão” vem sendo afetada por
profundas mudanças nas últimas décadas. A competição globalizada, um fenômeno recente, somada à
crescente demanda da sociedade por novidades, produtos personalizados, qualidade elevada e preços
menores, obriga as empresas a modernizarem seus métodos produtivos. Estas mudanças não se
processam mais como um diferencial de uma empresa em relação à outra, mas sim como fator de
corporações detinham no passado, e que lhes permitia produzir determinados produtos com
características únicas, é cada vez mais raro nos dias atuais. No passado o consumidor se adaptava aos
produtos oferecidos pelas empresas. Atualmente são as empresas que necessitam entender e adaptar-se
Sistemas produtivos que priorizam o volume de produção, com custo baixo e pequena
variedade, estão enfrentando o desafio de flexibilizar sua produção e diversificar seus produtos, sem
originar um acréscimo significativo nos custos. Para pequenos e medianos lotes de produção, os
Sistemas Flexíveis de Manufatura (FMS) são uma alternativa viável de resposta aos desafios de
O conceito de FMS envolve um alto nível de automação, onde a fabricação é realizada por
centros de usinagem automatizados e a transferência entre as máquinas é feita por veículos auto-
guiados, ou esteiras automatizadas. O posicionamento e movimentação das peças são realizados por
automático. Os recursos produtivos estão ligados a um sistema computacional que coordena todas as
ações, capacitando o sistema a produzir diferentes tipos de peças, utilizando os mesmos equipamentos
objetivo deste trabalho é oferecer uma contribuição ao desenvolvimento dessa nova tecnologia, através
Educacional de Santa Catarina), para a construção de uma Célula Flexível de Manufatura (FMC).
1.1 PROBLEMA DE PESQUISA
características que limitam o uso de Sistemas Flexíveis de Manufatura, afirma que tais sistemas são
caros para projetar, além de complexos de analisar e controlar. A maior parcela da dificuldade do
desenvolvimento de sistemas de controle na indústria de manufatura flexível pode ser atribuída aos
se conseguir definir a forma de integração dos sistemas de chão-de-fábrica, afirma Friedrich (1996).
Ainda segundo o autor, os equipamentos de produção, como máquinas ferramentas, robôs e armazéns
automáticos, assim como computadores e redes de comunicação, são encontrados com facilidade,
contudo o software de controle e o modelo de integração para estes equipamentos não está
comunicação. Para Lepikson (2005), as empresas que pretendem atuar na área de manufatura
moderna, atendendo a um mercado consumidor cada vez mais exigente e ávido de novidades,
precisam estabelecer novos princípios para seus sistemas produtivos, entre os quais: modularidade,
Atualmente há duas soluções possíveis para quem deseja instalar um FMS. A primeira delas é
outras. Neste caso, geralmente não ocorre a transferência de tecnologia para o usuário, pois os
sistemas são proprietários e fechados. A segunda opção é construir um FMS a partir da integração
esteiras automatizadas) e armazenamento (armazém automático). Para este segundo caso é necessário
de controle e um sistema computacional que gerencie todo o sistema e cumpra a função de interface
com o usuário. Esta dissertação propõe e implementa um modelo para construção de um FMS nos
2
Nos últimos anos, muitos e meritórios trabalhos foram publicados a respeito de flexibilidade e
flexibilidade (de produto, sequenciamento, volume, processo, produção, etc.). Em contrapartida, raras
são as publicações que descrevem em detalhes como integrar efetivamente os diversos recursos
propostas para encontrar a solução para um problema, e que a pesquisa aplicada tem como objetivo
gerar conhecimentos para aplicação prática e dirigidos à solução de problemas específicos, segundo
afirmam Silva e Menezes (2005), pode-se formular o problema de pesquisa desta dissertação da
seguinte forma:
SOCIESC, utilizando uma filosofia modular, aberta e expansível para formar uma Célula
Flexível de Manufatura que possa simular a fabricação de uma família de peças de forma
autônoma?
forma física e lógica os equipamentos existentes no laboratório da SOCIESC e construir uma Célula
Flexível de Manufatura que esteja apta a fabricar uma família de peças de forma autônoma. O sistema
deve controlar a movimentação de materiais entre o armazém automático, o robô e as máquinas CNC,
o sincronismo das ações necessárias para a efetiva fabricação das peças, assim como o controle dos
estados de cada equipamento. Usuários locais e remotos (isto é, aqueles que se encontram fisicamente
A integração é realizada através da conexão física e lógica dos equipamentos que compõem a
célula. São desenvolvidos módulos ditos gerenciadores, um para cada equipamento (armazém
automático, robô e CNCs), um para a célula (FMC) e outro para o usuário remoto. Os módulos são
construídos como aplicativos do software supervisório Elipse SCADA (Supervisory Control and Data
Aquisition – http://www.elipse.com.br) e trocam dados entre si em tempo real através de uma rede
Ethernet, utilizando o padrão de comunicação industrial OPC (OLE for Process Control). A
3
comunicação dos gerenciadores com os equipamentos de produção, movimentação e fornecimento de
Para atingir o objetivo principal do projeto, foram definidos os seguintes objetivos específicos:
módulo gerenciador para toda a FMC, utilizando o software supervisório Elipse SCADA;
fixação);
segurança operacional e evitem riscos de colisão entre as partes móveis dos equipamentos;
¾ Integrar os diversos gerenciadores por meio de uma rede Ethernet, utilizando o padrão de
¾ Criar uma interface homem-máquina que permita ao usuário do sistema inserir pedidos de
processos de transformação;
¾ Permitir que usuários fisicamente distantes também possam inserir seus pedidos de
4
¾ Simular a fabricação de uma família de peças na Célula Flexível de Manufatura,
compostas pelas peças que compõem o jogo de xadrez (peão, torre, cavalo, bispo, dama e
rei);
¾ Gerar uma bibliografia que reúna revisão bibliográfica, informações de cada equipamento,
1.4 JUSTIFICATIVA
Este trabalho pode ser justificado pelas óticas da relevância e da contribuição. Do ponto de
vista da relevância, destaca-se o número de instituições de ensino e pesquisa que estão atualmente
instalando laboratórios de manufatura flexível, tanto no país quanto no exterior. Também é grande o
do assunto para a área acadêmica e para a indústria (ZHOU e VENKATESH, 2000), (COINBRA et al,
2004), (LEPIKSON, 2005), (PINA et al, 2006), (VIEIRA, 1996), (RIBEIRO e ELVAS, 2004),
(BOARETTO et al, 2004), (TEIXEIRA, 2005 e 2006), (FERREIRA, 2003_a e 2003_b), (FONSECA,
equipamentos necessários para a formação de uma FMC, de fato não possuía nenhum tipo de
integração que permitisse a operação conjunta e autônoma dos equipamentos. Com a integração da
Célula Flexível de Manufatura. Os principais elementos utilizados para projetar e construir a FMC
utilizando um sistema de supervisão e controle (SCADA) e a integração destes módulos, por meio do
são utilizadas para modelar sistemas a eventos discretos, como é o caso de FMCs e FMSs (MUŠIČ e
MATKO, 1998), (ZHOU e VENKATESH, 2000), (VIEIRA, 1996), (TENG e ZHANG, 1993),
5
(RIBEIRO e ELVAS, 2004) e (TEIXEIRA, 2006). Os sistemas supervisórios são amplamente
utilizados para controle de processos industriais (ALVES et al, 2003), (BARROS, 2005), (PIRES et al,
ganha importância e é cada vez mais utilizado na indústria por permitir que aplicações de software
troquem dados entre si de forma aberta e simplificada, assim como aplicações gerenciais e dados de
chão-de-fábrica (OPC Foundation, 1998), (FONSECA, 2002), (GAIDZINSKI, 2003), (ALVES et al,
heterárquico (PELS et al, 1997), FRIEDRICH (1996) e (TEIXEIRA, 2006) permite um elevado grau
de autonomia aos diferentes módulos gerenciadores, que atuam todos no mesmo nível hierárquico e
em estreita cooperação.
Todos os elementos utilizados para efetuar a integração física e lógica dos equipamentos já
são conhecidos no meio industrial e acadêmico, assim como o uso de CLPs para integrar módulos
detalhado roteiro para formação de uma FMC modular, aberta, expansível, com ambiente distribuído e
heterogêneo.
1.5 METODOLOGIA
Segundo Silva e Menezes (2000), existem várias formas de classificar a pesquisa. As formas
¾ Quanto à natureza: do ponto de vista da natureza a pesquisa pode ser básica ou aplicada
(SILVA e MENEZES, 2000). Esta dissertação é aplicada porque tem o objetivo de integrar de
6
¾ Quanto à forma de abordagem do problema: do ponto de vista da abordagem do problema a
pesquisa pode ser quantitativa ou qualitativa (SILVA e MENEZES, 2000). Este trabalho de
pesquisa é eminentemente qualitativo, pois utiliza o ambiente natural como fonte de dados. A
¾ Quanto aos objetivos: em relação aos seus objetivos, uma pesquisa pode ser exploratória,
de uma pesquisa explicativa, pois visa aprofundar o conhecimento sobre elementos envolvidos
FMS e FMC. As fontes de consulta utilizadas foram livros, revistas técnicas, anais de
dados da CAPES e diversos sites na Internet. Em relação aos procedimentos técnicos, esta
técnicos, este trabalho pode também ser considerado como uma pesquisa-ação, pois foi
laboratório da SOCIESC para formação de uma FMC) e foi realizado com a participação
7
1.5.2 Pressupostos básicos
Os pressupostos básicos deste trabalho se referem aos elementos que fornecem um ponto de
coordena todas as ações, capacitando o sistema a produzir diferentes tipos de peças, utilizando
equipamentos utilizados pela indústria, ou seja, não contam com recursos adicionais
direcionados à integração.
usinagem CNC. O número máximo de equipamentos CNC na célula será determinado pela
pode ser utilizado para a construção de outras Células Flexíveis de Manufatura, compostas por
8
¾ Os princípios aplicados na construção da FMC sustentam-se na idéia de que o sistema
resultante deve ser modular, aberto, expansível, com ambiente distribuído e deve suportar
equipamentos heterogêneos.
¾ Pesquisa bibliográfica a respeito dos principais tópicos necessários para integração da FMC:
robô ABB, redes de comunicação, padrão de comunicação OPC, software Elipse SCADA,
programas de usinagem);
SCADA;
¾ Integração dos gerenciadores aos seus respectivos equipamentos, utilizando CLPs quando
necessário;
9
1.6 DELIMITAÇÕES DO TRABALHO
Este trabalho não tem por objetivo discutir a necessidade ou não da implantação de FMSs e
FMCs nas empresas que atuam na área da manufatura. Corrêa e Slack (1994), Chase et al. (2000) e
Slack (2002) discorrem com muita propriedade sobre as necessidades, as vantagens e desvantagens
das empresas flexibilizarem seus métodos produtivos. Este trabalho tem o objetivo de apresentar de
forma detalhada uma alternativa para aquelas empresas, ou entidades de ensino, que queiram montar
simula a fabricação de um conjunto de peças que compõem o jogo de xadrez (peão, torre, cavalo,
bispo, dama e rei). A simulação segue todo o roteiro de fabricação normal de uma peça: cadastro do
código da peça, cadastro da matéria-prima necessária para fabricação da peça, o armazém automático
envia a peça para usinagem, o robô efetua o carregamento da matéria-prima no equipamento CNC
peça, o robô retira a peça pronta do CNC e a devolve ao armazém automático, que finaliza o processo
disponibilizando a peça ao usuário. Para uma efetiva fabricação da peça, basta inserir o programa de
A limitação da família de peças que a célula pode produzir é dada pela capacidade de
transporte da garra do robô, pela capacidade de carga do pallet do armazém automático e pela
produtivos são semelhantes aos encontrados na indústria, sem nenhum tipo de adaptação prévia
visando à integração.
simulação de usinagem nos equipamentos CNC. Os gerenciadores não transferem programas aos
equipamentos, apenas indicam qual programa residente deve ser executado. Todos os processos de
usinagem devem ser cadastrados no banco de dados do gerenciador da célula, assim como a matéria-
10
O gerenciador remoto permite que usuários fisicamente distantes insiram seus pedidos de
fabricação na célula. Estes usuários devem estar dentro da rede local de computadores. O gerenciador
remoto não permite que usuários insiram pedidos de fabricação utilizando a Internet.
peças cadastradas no banco de dados, sendo que os pedidos de fabricação são realizados a partir do
gerenciador FMC e do gerenciador remoto. Não é objetivo deste trabalho formular o melhor plano de
são pré-determinados pelo usuário, e o sequenciamento é determinado pela estratégia FIFO (First In,
Esta dissertação é composta por seis capítulos, quatro apêndices e um anexo em CD-ROM. O
primeiro capítulo realiza a introdução geral do trabalho, apresenta a metodologia e os objetivos gerais
e específicos do projeto.
fabricação mais comuns na atualidade são apresentadas, com especial ênfase nos Sistemas Flexíveis de
dos sistemas de supervisão e controle também são desmembrados neste capítulo, assim como os
principais recursos do software supervisório Elipse SCADA, que será utilizado para a construção dos
troca de informações entre os diferentes gerenciadores, também são detalhadas neste capítulo.
proposta são aprofundadas, assim como a revisão bibliográfica de alguns aspectos específicos que
discretos da célula flexível de manufatura, utilizando o mecanismo formal de descrição das redes de
11
O capítulo 5 relata em detalhes a construção dos gerenciadores da célula, a integração dos
integração de todos os gerenciadores, por meio do padrão de comunicação OPC, também é descrita de
forma pormenorizada.
nos diferentes capítulos, como: a totalidade das redes de Petri desenvolvidas para a FMC; os
software Elipse SCADA; os drivers; os programas desenvolvidos para os CLPs Moeller e Siemens; o
projeto da garra angular para o robô; as tags utilizadas, e a descrição das tabelas do banco de dados, no
gerenciador AS/RS e FMC; os fluxogramas dos processos de entrada, saída e usinagem e o modelo de
12
2. REVISÃO BIBLIOGRÁFICA: HISTÓRICO, SISTEMAS, OPC E SUPERVISÓRIOS
Este capítulo realiza uma revisão bibliográfica a respeito dos principais tópicos que serão
desenvolvimento dos sistemas de fabricação, mostra a evolução histórica dos sistemas até a atualidade.
detalhes os principais sistemas empregados atualmente, com especial ênfase aos Sistemas Flexíveis de
simplesmente supervisórios, são cada vez mais utilizados na automação de processos industriais. O
sistema SCADA será um dos pilares da integração da Célula Flexível de Manufatura, e por isso
diferentes gerenciadores. Para cumprir esta função será utilizado o padrão de comunicação OPC, que
permite que aplicações de supervisão e controle troquem dados entre si de forma aberta e simplificada.
Antes do advento da revolução industrial, toda a produção existente era fruto da ação manual
de mestres, artesãos, artífices e aprendizes. Os produtos eram manufaturados, ou seja, eram realmente
feitos à mão. A revolução industrial iniciou uma mudança radical nos processos de manufatura.
Inicialmente utilizou-se a energia hidráulica, razão pela qual muitas fábricas fixaram-se perto de rios.
A força da água movimentava um eixo, que por sua vez movimentava as máquinas. Mais tarde, com a
invenção da máquina a vapor, as fábricas ganharam flexibilidade quanto à sua localização (FAYET,
13
A disposição física das máquinas foi herdada dos sistemas manuais de produção. As máquinas
eram agrupadas de forma funcional, pela velocidade em que precisavam operar e pelo tipo de trabalho
necessárias. Operadores desenvolviam habilidades específicas para trabalhar com cada tipo de
Com a invenção do motor elétrico, cada máquina ganhou autonomia de funcionamento. Isto
possibilitou uma flexibilização a respeito da localização de cada máquina dentro das fábricas. Assim,
puderam ser criados arranjos físicos funcionais que facilitassem a movimentação das peças durante o
processo de fabricação. Surgiram assim os primeiros layouts dos novos sistemas de manufatura
No início do século passado, Henry Ford idealizou a linha de montagem para fabricação de
automóveis, o que possibilitou a produção seriada. Este novo método permitia fabricar grandes
progressão do produto através do processo produtivo é planejada, ordenada e contínua. O trabalho vai
natural da linha de montagem de Henry Ford. Com este método de manufatura, produtos padronizados
de alta qualidade são disponibilizados em grande quantidade a um preço acessível para o mercado
mudanças nesta linha não são fáceis de serem implementadas. Quando o mercado ficava saturado de
Isto trouxe naturalmente a necessidade de incorporar certo grau de flexibilidade nos sistemas de
manufatura, pois possibilitou que os controladores das máquinas ganhassem certa capacidade de
reprogramação e aumentou o número de produtos que elas podiam fabricar (CECCONELLO, 2002) e
(FERREIRA, 1998).
controle numérico (CN) nos laboratórios do MIT (Massachusetts Institute of Technology). A nova
tecnologia permitiu a usinagem de peças complexas em pequena escala, fornecendo uma elevada
flexibilidade aos sistemas de manufatura. O CN foi a primeira unidade de controle de máquinas que
14
aliou a capacidade de programação com o hardware. A integração do transistor na forma de circuitos
processamento, e softwares de controle, tornaram as fábricas mais flexíveis e ágeis nos seus processos
uma sociedade que exige constantemente produtos novos, acessíveis, personalizados e com qualidade,
abrem as portas para o desenvolvimento de métodos produtivos cada vez mais elaborados e
complexos.
especificadas as funções dos componentes, suas interfaces, interações e restrições. Ela tem a função de
mais simples (WYNS et al, apud BATOCCHIO e FIORONI, 2006). A definição de uma arquitetura
fornece uma abstração do sistema complexo de forma simples e auxilia o projetista a definir as
interfaces e interações entre os diversos recursos produtivos. Ela também permite identificar as áreas e
mudanças ao apontar onde o processo pode ser modificado, de forma tópica, e quais componentes não
Alguns dos principais benefícios concedidos pela adoção de uma arquitetura de sistema de
manufatura são: estabelecimento de uma terminologia unificada, sem ambigüidades e que seja
de sua arquitetura; maior qualidade e robustez no desenvolvimento dos sistemas, por estarem baseados
identificação das soluções utilizadas, pois a arquitetura precisa indicar e justificar de forma clara e
15
concisa quando e como cada estágio do desenvolvimento recebeu implementações de engenharia
ferramentas que o auxiliavam a realizar tarefas. Entre os sistemas de manufatura mais utilizados na
atualidade estão o sistema funcional, o sistema em linha, o sistema celular e os sistemas flexíveis. A
demanda imposta pelos anseios do mercado faz com que a proposta e o desenvolvimento de novos
sistemas de produção sejam incessantes. Entre essas novas propostas destacam-se o sistema de
O sistema funcional, também conhecido por job shop, caracteriza-se por agrupar os recursos
fabris da empresa, que desempenham a mesma função, em setores. A matéria-prima transita entre os
Para a produção de cada tipo de peça no job shop são estabelecidos roteiros que indicam a
seqüência de máquinas que serão utilizadas para processar o pedido. As peças são movimentadas entre
os diferentes setores com a ajuda de pequenos carros ou empilhadeiras. A figura 2.1 apresenta o layout
O job shop apresenta grande flexibilidade de produção. Qualquer operação pode ser feita em
qualquer ordem. O sistema é robusto, pois a eventual quebra de uma máquina dificilmente ocasiona a
16
parada de todo o sistema, e o agrupamento de funções facilita o treinamento dos funcionários. Entre as
características negativas do job shop, pode-se destacar o alto tempo de fabricação devido ao setup e
baixo tempo produtivo, dificuldade na manutenção da qualidade do produto e alto custo de produção.
O sistema funcional é muito utilizado para fabricação de lotes pequenos, produtos muito
diversificados ou que sofrem constantes mudanças, e prazos de entrega curtos (FERREIRA, 1998),
O sistema em linha, também conhecido como flow shop, é um layout utilizado nas linhas de
No flow shop os diferentes recursos produtivos estão posicionados na seqüência das operações
exigidas para a fabricação do produto. Desta forma o sistema apresenta boa velocidade de fabricação,
permitindo atender rapidamente ao pedido de grandes lotes de um mesmo produto. A figura 2.2
normalmente é muito alto, o que o torna viável somente nos casos em que a empresa possui vários
produtos similares e com tempo de vida elevado. Outro problema reside no fato de que uma única
máquina quebrada pode interromper completamente a produção (FERREIRA, 1998), (SLACK, 2002),
17
2.2.3 Sistema Celular
O sistema celular pode ser utilizado na fabricação de pequenos lotes de peças que apresentam
similaridades entre si. Este sistema é aplicado atualmente na manufatura enxuta (Lean
a fabricação de um grupo – ou família de peças – formando uma célula. As peças poderão ser
processadas por algumas, ou todas as máquinas da célula. A figura 2.3 mostra uma célula de
obra; permitir a manutenção de altos níveis de qualidade. Entre as desvantagens apresentadas pelo
sistema está a dependência em relação ao bom funcionamento das máquinas. Qualquer imprevisto,
como manutenção ou quebra, pode paralisar toda a célula. A flexibilidade é também relativamente
baixa, pois está restrita a um grupo de peças. Se houver a necessidade de introduzir uma mudança
significativa no desenho da peça a ser fabricada, a célula poderá não ser capaz de produzi-la
apresentada por Kaltwasser (in SEVERIANO FILHO, 1995), sustenta a idéia de que os FMSs são
18
sistemas de produção altamente automatizados, capazes de produzir uma grande variedade de
diferentes peças e produtos usando o mesmo equipamento e o mesmo sistema de controle. Já Slack et
al. (2002) afirma que os FMSs combinam diferentes tecnologias em um sistema único, e apresenta a
seguinte definição: “uma configuração controlada por computador de estações de trabalho semi-
É comum encontrar na literatura grandes variações sobre a definição de FMS. Muitos aspectos
deste sistema ainda estão em discussão. Segundo Sanches (2006), sob uma determinada ótica, os
FMSs podem ser consideradas como um conjunto interligado de Células Flexíveis de Manufatura
(FMCs). Por outro lado, um grupo de máquinas dedicadas a um único propósito, dotado de
máquinas para processar a matéria-prima, também é considerado um FMS por alguns especialistas.
transferência entre as máquinas é feita por AGVs (Veículos Auto-Guiados) ou esteiras automatizadas.
O posicionamento e movimentação das peças são realizados por robôs ou similares. Os produtos já
armazém automático. Todos os componentes estão ligados a um sistema computacional que coordena
19
MacCarthy e Liu (1993) sugeriram uma classificação abrangente para os FMSs. Esta proposta
capacidade operacional, layout e níveis de controle. A classificação proposta pelos autores abarca de
forma geral a existência de três subsistemas nos FMSs: processamento, manuseio e armazenamento
comando numérico computadorizado (CNC), com capacidade para troca de ferramentas. Esses
atribuindo-lhe flexibilidade;
Alguns dos benefícios relatados por usuários de FMS são (SLACK et al, 2002):
uniforme ao longo da fábrica, com menos formação de filas de materiais esperando usinagem;
relativamente baixo, já que muito tempo é gasto esperando que produtos sejam colocados nas
¾ Número de máquinas ou operações reduzido (derivado da integração física das operações nas
máquinas);
de 20 a 90%;
20
serviço), ciclos de inovação da produção mais rápidos e capacidade melhorada de fazer
protótipos.
Entre os aspectos negativos dos FMS, o principal, sem dúvida, é o alto custo de implantação.
implantação deste sistema somente a empresas com grande capacidade financeira. Um resumo das
principais características dos Sistemas Flexíveis de Manufatura é descrito por Ferreira (1998):
“Tais sistemas são caros para projetar, e são complexos de analisar e controlar....
Quase todos estes sistemas são encontrados em empresas bem grandes que podem
dedicadas....O computador que controla o FMS deve lidar com a(s) esteira(s), manter
Uma Célula Flexível de Manufatura (FMC) pode ser considerada como um módulo do
Sistema Flexível de Manufatura (FMS). Na FMC ocorre efetivamente a fabricação das peças; é a
nas empresas. O uso cada vez maior de computadores nas empresas e o desenvolvimento de softwares
para CAE (Computer Aided Engineering), CAD (Computer Aided Design), CAM (Computer Aided
21
Manufacturing) e CAPP (Computer Aided Process Planning) permitiu a integração de diversos
(por exemplo, vendas, compras, projeto, planejamento, administração, finanças e produção) através de
desejado, quantidade, prazo de entrega etc. Essas informações são repassadas para a engenharia de
projetos, onde o projetista avalia as especificações do produto. Com o auxílio do CAD, o produto é
A partir dos modelos geométricos gerados pelo CAD, o CAPP elabora um roteiro (plano de
processo) que torne possível a fabricação do produto, considerando as características dos recursos
22
A utilização do CIM permite aumentar a eficiência produtiva da empresa, pois reduz a
redundância de informações e a interferência do operador. Ela também permite melhoria dos serviços
Um resumo macro do CIM pode ser visto na representação formal dada pelo diagrama
com ênfase naqueles utilizados nos processos de fabricação discretos, possibilita visualizar a posição
23
2.2.6 Comparativo entre os sistemas de manufatura
diferenciam em relação a volume de produção, custo, flexibilidade, etc. A tabela 2.1 apresenta um
quadro comparativo das características principais dos sistemas, para diferentes volumes de produção.
de seus produtos. São eles que determinarão a filosofia de produção, desde o layout ao tipo de
máquinas que serão utilizadas, passando pelo tamanho de lote ideal, política de estoques, flexibilidade,
Os sistemas que se caracterizam por grandes taxas de produção, normalmente não possuem
flexibilidade para fabricar diferentes tipos de peças. Já os sistemas que apresentam grande
flexibilidade, não conseguem produzir lotes médios com preços econômicos. Os FMSs incorporam
algumas das características de ambos sistemas, como a alta taxa de utilização dos recursos produtivos,
nível de participação dos produtos feitos em massa é de 25% do total. Nesses mesmos países, os
produtos fabricados em volumes médios de produção representam 40% do total (CHASE et al, 2000).
Nos Estados Unidos, por exemplo, 75% dos produtos eram fabricados em lotes de no máximo 50
unidades, segundo Lorini (1993) e Zhou e Venkatesh (2000). A figura 2.7 apresenta um quadro
24
comparativo entre a taxa de produção típica dos diversos sistemas analisados e a variedade de peças
Os sistemas supervisórios também são chamados de SCADA (Supervisory Control and Data
Aquisition). Daneels e Salter (2000) explicam que os softwares supervisórios permitem que sejam
informações são coletadas por meio de equipamentos de aquisição de dados, manipuladas, analisadas,
decompostas, armazenadas e exibidas ao usuário. Pires et al. (2005), ao analisar o grau de importância
“Os sistemas SCADA são de importância estratégica já que são adotados na maioria
25
SCADA alcançam praticamente todo o espectro do setor produtivo. Para
inteligentes e tráfego”.
variáveis recebem o nome de “tags” e representam pontos de entrada e saída do processo que está
Existem atualmente no mercado vários softwares supervisórios, dentre estes, Barros (2005)
apresenta a descrição detalhada das principais características do supervisório Legato, da Gefasoft, que
gerencia as células automatizadas da linha de produção de uma das plantas da Volkswagen do Brasil.
Gaidzinski (2003) realizou uma pesquisa comparativa entre alguns supervisórios disponíveis no
mercado, dentre os quais o Axeda Supervisor e Wizcon, da Axeda Systems Inc; iFIX, da Intellution;
dos softwares anteriormente mencionados, também foram pesquisados os seguintes produtos SCADA
disponíveis no mercado:
distribuição de dados.
programação compatível com o MS Windows. Também é compatível com a norma IEC 1131-
26
¾ WizFactory, da eMation (http://www.emation.com/). Apresenta uma solução completa para
automação. Possui módulos que permitem interagir com os processos via Internet, utilizando
tecnologias como OBDC (Open Data Base Connectivity), ActiveX e OPC. É utilizado em
todas as unidades da General Electric como uma norma corporativa para monitorar os
processos de melhoria baseados em Seis Sigma. Possui funções que permitem a conexão com
base de dados relacionais (Access, SQL Server e Oracle), assim como com sistemas ERP
que incorpora tecnologias como OPC, ActiveX e programação em VBA (Visual Basic).
Interage com facilidade com banco de dados e permite controle de processos via Internet.
SCADA para automação que constitui uma das soluções mais poderosas disponíveis no
Permite criar interfaces para instrumentação virtual (osciloscópios, geradores de função, etc.),
ambiente totalmente gráfico, que podem ser executados em rede ou pela Internet.
poderoso e ao mesmo tempo flexível que incorpora tecnologias Activex, OPC, COM
(Component Object Model) e DCOM (Distributed Component Object Model). A mesma base
de dados criada para o sistema de controle é utilizada para configurar I/Os, telas de operador e
27
comunicação serial e de rede. OptoDisplay é o módulo IHM, com recursos multimídias.
¾ HYBREX (Hybrid Expert System), WinCC HMI, Web Control Center (webCC), SIMATIC
WinAC ODK (Open Developer Kit), SIMATIC WinAC (Windows Automation Center), da
robusto e poderoso que opera na plataforma Windows. É capaz de armazenar e integrar dados
controladores e dispositivos de I/O. Fácil de usar, conta com uma grande biblioteca de
símbolos que facilitam a construção de aplicativos. Possui uma base de dados relacional
controle de arquitetura aberta que permite projetar, criar, testar e executar aplicativos para
Intouch, IndustrialSQL e I/O Servers do FactorySuite, e permite que o usuário tenha acesso
aos dados através da Internet. O supervisório é totalmente compatível com a tecnologia XML.
28
Para construção dos diversos gerenciadores da FMC no laboratório da SOCIESC foi escolhido
o software Elipse SCADA. São várias as razões que levaram a esta decisão, entre elas:
supervisório, como IHM (Interface Homem-Máquina), ODBC (Open Data Base Connectivity)
que permite troca de dados com a base de dados Access, incorpora a tecnologia OPC para
aquisição de dados de CLPs e troca de informações com outros aplicativos SCADA em tempo
Michelin, General Motors, Mercedes Benz, Fiat, Vokswagen, Ford, Dana Albarus, Petrobrás,
Stihl, Sadia, Ceval, Perdigão, Nestlé, Batavo, Gerdau, CSN, Cia. Vale do Rio Doce, Usiminas,
Sabesp, Copel e por estar presente em paises como Alemanha, Estados Unidos, Índia, Taiwan,
Rússia, Bielo-Rússia, Malásia, Portugal, Suécia, Porto Rico, Argentina, Colômbia e Chile,
¾ Por ser um software com boa documentação e com suporte técnico disponível;
detalhes no item 2.6 deste capítulo, assim como particularidades dos objetos de tela, tipos de tags,
em campo. Grandezas físicas como temperatura, pressão e velocidade, assim como presença de uma
29
peça na esteira, ou a porta aberta de um torno CNC, são convertidos em sinais digitais ou analógicos
para as estações remotas. Os atuadores têm a função de atuar sobre o sistema monitorado, basicamente
utilizadas em processos industriais, que têm a função de processar os dados recebidos dos elementos
em campo, efetuar cálculos ou ações de controle e atualizar saídas (DANEELS e SALTER, 2000).
A rede de computação é o meio por onde circulam as informações das estações remotas para o
sistema SCADA, assim como entre diferentes sistemas SCADA. Elas podem ser implementadas por
meio de cabos metálicos, fibras óticas, links de rádio, etc (DAYTON-KNIGHT, 2006).
(Master Terminal Unit). Ela é a responsável por receber as informações das estações remotas,
processá-las e interferir nos processos. A estação de monitoração central pode estar centralizada em
Geralmente os sistemas SCADA dividem suas principais tarefas internas em módulos, que
30
necessidade do sistema, segundo Silva e Salvador (2005). Numa análise macro, essas tarefas podem
ser divididas em: núcleo de processamento, comunicação com CLPs e RTUs, gerenciamento de
alarmes, histórico e banco de dados, lógica de programação interna (scripts) ou controle, interface
gráfica, relatórios, comunicação com outras estações SCADA e comunicação com sistemas externos.
As informações coletadas em campo são enviadas para o núcleo principal do software, que é o
responsável por distribuir e coordenar o fluxo destas informações para os outros módulos. Cada
módulo processa as informações pertinentes até que as mesmas estejam disponíveis ao operador do
operador tem acesso à representação gráfica, na forma de ícones, dos processos que estão sendo
ao operador também sob a forma de gráficos, relatórios, animações, alarmes visuais e auditivos.
O padrão de comunicação OPC foi escolhido neste trabalho para integrar os diversos
gerenciadores pelas seguintes razões: (a) A primeira delas é que a tecnologia OPC permite a troca de
dados entre aplicativos, e entre aplicativos e CLPs, em tempo real e sem a necessidade de uso de
drivers proprietários, que é uma das propostas iniciais deste projeto de pesquisa. (b) A segunda razão
está no fato de que o software de supervisão e controle utilizado na construção do sistema (isto é, o
Elipse SCADA) incorpora a tecnologia OPC como servidor e como cliente. (c) O padrão OPC está se
tornando rapidamente o padrão de comunicação adotado pelo mercado de automação industrial e pela
utilizam OPC como condição inicial para comunicação de dados, segundo afirma Fonseca (2002). Isto
industrial, criado com a colaboração de vários dos mais importantes fornecedores de hardware e
software para automação, em conjunto com a Microsoft. O padrão permite que aplicações de software
troquem dados entre si de forma aberta e simplificada, assim como aplicações gerenciais e dados de
31
A OPC Foundation é a organização que gerencia o padrão OPC e conta com mais de 300
membros, incluindo alguns dos maiores fornecedores mundiais de sistemas de controle e automação.
A primeira versão do padrão OPC surgiu em 1996 e foi desenvolvida sobre uma plataforma Microsoft
pelos precursores da OPC Foundation, a saber: Fisher-Rosemount, Rockwell Software, Opto 22,
desenvolver um padrão de comunicação aberto e flexível, que permita aos usuários escolher entre uma
Object Model) e DCOM (Distributed Component Object Model) da Microsoft, e definiu padrões de
manufatura. O objetivo para criação do padrão é criar um meio comum para que aplicativos de
diferentes camadas do processo possam trocar dados e interagir de forma mais fácil possível (OPC
arquitetura OPC.
32
Segundo relata Fonseca (2002), a publicação das especificações para o padrão OPC, pela OPC
Resource Planning);
tempo real.
figura 2.10 apresenta as relações entre estes níveis de funções (coluna da esquerda) e as tecnologias de
33
Uma análise inicial da arquitetura do sistema de gerenciamento apresentado mostra que o
padrão OPC (coluna da direita) é o responsável por estabelecer a interface entre o sistema SCADA e o
módulo controlador. A tecnologia OLE (Object Linking Embedding) permite que uma aplicação crie
informações e as apresente através de uma segunda aplicação (PIRES et al, 2005). O objeto criado na
aplicação original pode ser conectado à segunda aplicação, que se referencia à aplicação original por
meio de um ponteiro. O objeto também pode ser embarcado na segunda aplicação, e neste caso ele é
copiado da aplicação original para a secundária. Na prática, o módulo OPC funciona como uma API
para serem incorporados ao servidor OPC do supervisório. Geralmente os módulos OPC são
Protocol). A figura 2.11 descreve a arquitetura entre uma aplicação cliente e servidores OPC de
diferentes fabricantes.
As conexões entre diferentes sistemas SCADA normalmente são baseadas em uma rede local
CLPs, o módulo de Comunicação de Campo utiliza comunicação ponto-a-ponto, como por exemplo, o
34
As interfaces OPC podem ser utilizadas de diversas formas dentro de uma aplicação de
supervisão e controle, embora inicialmente tenham sido concebidas para acessar dados de uma
aplicação servidora. A figura 2.12 mostra um exemplo dessa diversidade de relacionamentos entre
servidores e clientes OPC. No campo, dados podem ser adquiridos de sensores, transdutores e
atuadores para um sistema SCADA, que ao mesmo tempo se comunica com a aplicação, também
através do padrão OPC. Diversos aplicativos, ou sistemas SCADA, podem trocar dados dentro de uma
rede, mesmo envolvendo diferentes fornecedores.
supervisão e controle, que permite a criação e execução de aplicativos IHM e SCADA para uma
controle, os operadores podem monitorar e controlar todos os processos de chão-de-fábrica, bem como
máquinas e recursos, gerenciando de forma interativa e transparente toda a produção. Os dados são
apresentados de forma gráfica em tempo real, permitindo o tratamento das informações de forma
simples e organizada. O Elipse SCADA pode trocar dados com vários equipamentos de aquisição de
dados, como CLPs e RTUs, e com outros sistemas SCADA, através da comunicação OPC. Ela possui
ainda a ferramenta ODBC, para troca de dados com bancos de dados relacionais.
35
servidor e cliente DDE (Dynamic Data Exchange). Esta é a versão mais simples do Elipse
SCADA;
¾ Elipse MMI: além das funções oferecidas pela versão View, possui banco de dados
Estatístico do Processo (CEP). É a versão indicada para qualquer porte de sistema, onde não
haja necessidade de conexão com bancos de dados externos via ODBC ou Data Access
Objects (DAO), ou quando não seja necessário enxergar outras estações através da rede;
¾ Elipse PRO: além das funções disponibilizadas na versão MMI, permite trocar dados em
tempo real com outras estações através do servidor Elipse TCP/IP, conectar-se com bancos de
dados, realizar comandos e programar setpoints através de rede local ou linha discada. Permite
a comunicação com equipamentos e sistemas via OPC e conexão com softwares de controle
SoftPLC de terceiros;
¾ Elipse Power: esta versão foi desenvolvida para aplicação em sistemas de geração,
transmissão e distribuição de energia. Possui recursos avançados como a conexão com IDEs e
RTUs através de protocolos como IEC 870-5 e DNP 3.0. O Elipse Power permite o
módulo Runtime, ou módulo ativo, permite apenas a execução dos aplicativos. Os módulos Master e
(http://www.elipse.com.br/elipse/downloads.aspx?id_produto=2&titulo_secao=Elipse%20SCADA). A
versão utilizada para o desenvolvimento dos gerenciadores nesta dissertação é a v2.28 build 024.
Os aplicativos desenvolvidos no Elipse SCADA utilizam uma série de objetos de tela (slider,
button, setpoint, gauge, text, display, bar, animation, browser, etc). Cada objeto possui um conjunto
de propriedades que pode ser configurado pelo usuário. A figura 2.13 mostra o conjunto de objetos na
36
Figura 2.13. Barra de tarefas e propriedades do objeto botão.
tags. Os objetos de tela se associam às tags para oferecer uma interface ao usuário, de tal forma que
este possa interagir com o processo monitorado. Através do organizer, que é uma janela do Elipse
SCADA que permite visualizar toda a estrutura do aplicativo, é possível visualizar as tags utilizadas,
os objetos de tela, os drivers configurados, os servidores OPC, etc. A figura 2.14 mostra o organizer
37
O supervisório permite a comunicação com equipamentos externos, como CLPs ou RTUs.
Também é possível trocar dados com outras aplicações SCADA através de uma rede de comunicação.
Em ambos os casos, é necessário atribuir e configurar um driver (fornecido pela Elipse) que permita a
troca de dados de forma correta entre o aplicativo e o equipamento externo. A figura 2.15 mostra a
O Elipse SCADA pode atuar como cliente OPC, e também permite que a base de dados criada
em servidores OPC seja importada para uma base de dados interna. Várias conexões podem ser feitas
com diferentes servidores OPC. Segundo Maciel (2005), a tecnologia OPC implementa um
mecanismo que provê dados de algum dispositivo para uma base de dados configurada em um
servidor OPC, e permite que qualquer aplicação cliente tenha acesso à mesma base de dados.
A figura 2.15 mostra na árvore do organizer o item OPCServers. Ao selecionar esta opção,
abre-se uma segunda tela que permite procurar e configurar os servidores OPCs presentes na rede de
38
comunicação. A figura 2.16 apresenta um exemplo de servidores OPCs presentes em uma rede de
39
Se o sistema operacional utilizado no servidor, ou no cliente OPC, for o Windows XP SP2
(Service Pack 2), será necessário alterar algumas configurações originais do Windows para permitir a
correta troca de dados via OPC. Hiller (2004) relata com detalhes todas as modificações necessárias
para habilitar a comunicação entre aplicações OPC no software Elipse SCADA. De forma resumida
¾ Se não for possível desativar o Firewall, então é necessário incluir na lista de exceções do
ED_OPC.exe.
COM (figura 2.18). Neste ponto é necessário editar os novos limites de “Permissões de
40
3. DESCRIÇÃO GERAL DO TRABALHO
Este capítulo apresenta o laboratório onde foi realizado o projeto de construção da FMC, seus
são aprofundados, além das motivações que levaram a escolha do tema e a relevância do assunto, tanto
O uso de uma arquitetura aberta e modular para a integração da célula, baseada no uso de
gerenciadores desenvolvidos a partir de sistemas SCADA, o uso de CLPs para integração dos recursos
produtivos e a comunicação entre os gerenciadores utilizando o padrão OPC, são algumas das
3.1 O LABORATÓRIO
da SOCIESC em Joinville, SC. A figura 3.1 apresenta uma vista parcial do laboratório.
O laboratório conta com equipamentos suficientes para a configuração de uma Célula Flexível
de Manufatura, porém antes do início do projeto de pesquisa não havia nenhum tipo de integração que
permitisse movimentar a matéria-prima e produzir peças nos CNCs de forma autônoma. Nos últimos
41
anos diversos trabalhos de pesquisa, e outros de conclusão de curso de graduação, foram realizados no
sentido de reunir informações e realizar melhorias no laboratório, sempre direcionados a uma futura
integração da célula. Este trabalho de pesquisa, em relação aos procedimentos técnicos adotados, é
considerado também como uma pesquisa-ação, justamente porque foi concebido como resolução de
uma FMC) e foi realizado com a participação cooperativa de outros trabalhos de pesquisa realizados
no mesmo laboratório.
layout. O armazém automático ocupa a maior parte do espaço físico. O torno e o centro de usinagem
CNC foram agrupados próximos às mesas dos berços de usinagem do armazém, e o robô industrial
ABB foi fixado eqüidistante das portas das máquinas CNC. O espaço de trabalho do robô alcança as
mesas dos berços de usinagem do armazém e o interior das máquinas CNC. A figura 3.1 permite
Os recursos computacionais do laboratório são compostos por dois CLPs e seis computadores,
O armazém automático é composto por uma estrutura porta-pallet, esteiras de entrada, esteiras
cadastrado e o número do pallet (identificado em código de barras). O operador também pode solicitar
a saída do material armazenado, bastando para isso informar o código do material desejado. Para o
processo de usinagem, o operador digita o código do produto final (já processado). O sistema verifica
qual é a matéria-prima necessária para a fabricação do produto e a encaminha às mesas dos berços de
42
A movimentação entre as esteiras e a estrutura porta-pallet é realizada pelo transelevador, um
robô cartesiano que se movimenta sobre um trilho ao longo de todo o armazém. Atualmente os pallets
têm a capacidade de acomodar somente uma peça. O armazém comporta um total de 48 pallets.
O robô industrial ABB, modelo IRB 2400/10 é o responsável por movimentar as cargas desde
robô deve retirar as peças do interior das máquinas CNC e reconduzi-las aos berços de usinagem do
armazém. Para carregar as peças, o robô conta com uma garra de acionamento pneumático, que foi
programas do robô podem ser inseridos no controlador por meio de um disquete, ou pela unidade de
carga total de 10 kg. A figura 3.3 apresenta o controlador do robô e a unidade de programação.
43
Figura 3.3. Controlador e unidade de programação do robô.
intermediários ou acabados. O laboratório conta com um torno CNC, marca Feeler, modelo FTC10 e
um centro de usinagem também Feeler, modelo FV600. O estudo detalhado do espaço físico restante
do robô alcança esta hipotética terceira máquina, razão pela qual ela será incluída na modelagem da
célula (com o nome de CNC R1), apesar de não estar fisicamente presente.
O torno possui um trocador de ferramentas tipo revólver, com capacidade para até 8
ferramentas. Já o centro de usinagem, de três eixos, está equipado com um sistema de troca de
44
3.3 O DESAFIO DA INTEGRAÇÃO
O maior problema para a formação de uma Célula Flexível de Manufatura, sem dúvida, está na
integração dos diferentes equipamentos. Individualmente estas máquinas apresentam poucos recursos
de comunicação com o meio externo, exceção feita ao armazém automático. O robô, as máquinas
comunicação. Ressalte-se o fato de que os equipamentos do laboratório são todos semelhantes aos
encontrados na indústria, sem nenhum dispositivo extra, ou seja, não foram preparados para a
integração e necessitam ser modificados para permitir um mínimo de interatividade entre eles. Na
com finalidade didática: a dissertação de Guilherme Vieira que trata da construção de uma FMC
didática (VIEIRA, 1996); a construção da FMC do laboratório GRACO, da UnB (TEIXEIRA, 2006);
CEFET-PR (BOARETTO et al, 2004); os FMSs na Yamazaki Mazak (SLACK et al, 2002). Alguns
relatos contendo descrições sumárias e fotos de FMCs podem ser encontrados na Internet, entre os
quais:
(http://atlas.puj.edu.co/ftp/centros/cap/manual_fms.pdf.);
http://www.sp.senai.br/mecatronica/Index.Asp?LinkPage=EscolaLabs,
http://www.joinville.senai.br/pags/laboratorios.php?lab= robô);
(http://www.produtronica.pucpr.br/Intranet/ laboratorios/lista-labs.php#LAS01);
(http://www.isa.uniovi.es/genia/spanish/publicaciones/celula.pdf);
(http://www.engr.psu.edu/cim/FAME/CIMLAB/cim_home.html).
45
¾ A modelagem, simulação e controle de Sistemas Flexíveis de Manufatura (MUŠIČ e
(TORRICO e CURY, 2004), (PINA et al, 2006). Estes trabalhos apresentam um cunho
controle adotados. Em alguns casos, apenas fotos dos laboratórios são mostradas.
diversas empresas, como: Yamazaki Mazak (SLACK et al, 2002), Detroit Diesel Allison,
Vought Aircraft (FERREIRA, 1998), General Electric, GM, Hughes Aircraft, Allen Bradley,
Chrysler, Pratt and Whitney’s (ZHOU e VENKATESH, 2000). Alguns dos principais
Muitos e meritórios trabalhos foram publicados a respeito do quê são as Células e os Sistemas
contrapartida, poucos são os trabalhos encontrados que descrevem como integrar efetivamente os
diversos recursos produtivos para a formação de uma Célula, ou Sistema Flexível de Manufatura. Uma
exceção a esta regra é o trabalho realizado por Evandro Teixeira, na modelagem e integração de um
robô, um centro de torneamento CNC e um micrômetro laser, para a formação de uma FMC, na UnB
(TEIXEIRA, 2006). Os FMSs e FMCs comerciais normalmente são construídos sobre plataformas
proprietárias, ou seja, adotam um padrão de hardware e software onde o domínio da tecnologia não é
fornecedor do equipamento.
46
O projeto de pesquisa para integração da Célula Flexível de Manufatura da SOCIESC parte da
premissa de construir um sistema aberto, em que os diferentes recursos produtivos sejam reduzidos a
módulos, representados por um conjunto mínimo de interfaces. Gerenciadores serão construídos para
comandar as ações dos módulos, e trocarão dados entre si, por meio de um padrão de comunicação
industrial aberto e que não exija o uso de protocolos proprietários. Como contribuição científica
resultante da integração dos equipamentos, apresenta-se uma diretriz, composta por um conjunto de
instruções e procedimentos, para formação de uma FMC. Neste caso, a pesquisa aplicada tem como
objetivo gerar conhecimentos para aplicação prática e é dirigido à solução do problema específico de
como integrar de forma física e lógica os equipamentos do laboratório da SOCIESC, para formação de
uma FMC. Mantendo a devida coerência com os objetivos inicialmente propostos, esta dissertação
permitindo utilizá-lo não somente como uma metodologia de propósito geral, mas também como um
Para a construção dos gerenciadores, um para cada equipamento presente na célula, será
(CLPs) farão a ligação entre os gerenciadores e os CNCs, que possuem somente uma porta serial para
aquisição de programas de usinagem. O robô, que está equipado com um cartão de comunicação
padrão Profibus, utilizará este recurso para a comunicação com um CLP, que por sua vez, estará
conectado ao gerenciador. O armazém automático já possui uma interface com o usuário (IHM), que
será modificada para cumprir o papel de gerenciador. A figura 3.5 apresenta um resumo da arquitetura
47
Cada equipamento da célula necessita de adaptações em maior ou menor grau, visando a
integração. O torno e o centro de usinagem, por exemplo, possuem portas que são operadas
manualmente. Para que estas máquinas possam receber a matéria-prima carregada pelo robô, as portas
deverão ser automatizadas. Os equipamentos CNC foram construídos originalmente para funcionar
com a ajuda de um operador. Modificações de hardware e de software devem ser realizadas para
autonomia operacional aos equipamentos. Pelini (2001) relata uma adaptação semelhante, realizada
Caxias do Sul.
O primeiro passo para a integração da célula é determinar que tipo de controle será adotado.
Segundo Pels et al. (1997), a evolução dos sistemas de controle se caracteriza por um marcante
aumento da autonomia dos módulos de controle, pelo enfraquecimento das relações mestre-escravo e
pela redução do fluxo de informação entre os módulos controladores. A figura 3.6 apresenta um
de controle. O processamento é realizado por um único módulo de controle que também centraliza
48
todo o fluxo de informações. As principais vantagens desta arquitetura são o gerenciamento e controle
otimizados.
elementos de controle em uma estrutura piramidal e multicamadas, desta forma o processamento deixa
de ser centralizado e passa a ser distribuído. Na arquitetura hierárquica estabelece-se uma relação
mestre-escravo entre as diferentes camadas de controle, ou seja, o processo decisório inicia-se de cima
para baixo (top-down) e os resultados decorrentes das ações são repassados de baixo para cima
arquitetura hierárquica e acrescenta interações entre os módulos que estão dispostos em um mesmo
nível hierárquico. Este arranjo permite diminuir as perturbações, pois reduz o tráfego de informações
no controlador principal.
controladores é substituída por uma relação cooperativa, onde todos os elementos de controle atuam
no mesmo nível e a tomada de decisão é local e autônoma. Segundo Friedrich (1996), este tipo de
composto por entidades inteligentes que cooperam para realizar seus objetivos. A descentralização do
processo decisório permite uma maior autonomia e desempenho do sistema, apesar de dificultar a
análise geral do sistema, pela falta de uma relação hierárquica entre os módulos de controle
(TEIXEIRA, 2006).
mesmo nível, com autonomia de decisão e agindo de forma cooperativa. Estas características são
desejáveis, pois cada módulo deve possuir o máximo de autonomia possível, de maneira a efetuar
interfaces para cada gerenciador. A filosofia de funcionamento dos gerenciadores prevê o máximo de
autonomia possível para cada um deles. O robô, por exemplo, deverá estar com todos os programas de
movimentação previamente carregados. O gerenciador apenas indicará qual programa deve ser
executado. A mesma regra vale para os CNCs. Desta forma é possível reduzir o número de mensagens
circulando entre os diversos gerenciadores. Para definir um número mínimo de interfaces para os
49
sincronismos necessários entre as ações. A interdependência entre elas e o grau de autonomia de cada
Com a definição do tipo de controle a ser utilizado, e das interfaces para cada gerenciador, a
etapa seguinte é efetuar a modelagem da célula. A modelagem a eventos discretos, utilizando Redes de
Petri Interpretadas, fornece um modelo fiel do comportamento dinâmico e das relações de dependência
entre os recursos, servindo de base para o desenvolvimento dos códigos do controle supervisório no
software Elipse SCADA. As condições necessárias para o disparo de cada transição na modelagem são
representadas por um conjunto de eventos no software Elipse SCADA, que, se satisfeitos, disparam a
A integração da célula, baseada nos gerenciadores, será feita em duas etapas. A primeira delas,
denominada integração horizontal, deve conectar cada gerenciador a seu respectivo equipamento. O
robô e os equipamentos CNC necessitam de um CLP para trocar informações com os gerenciadores. O
armazém automático já possui uma interface com o usuário, mas que precisa de alterações na estrutura
peças para carga e descarga das máquinas CNC deverão ser escritos. O CLP que faz a ligação entre o
gerenciador e o robô também deverá ser configurado e programado. A necessidade das máquinas CNC
é semelhante ao robô, com o acréscimo de alterações nas características de hardware, tais como:
automatização das portas, reprogramação do CLP interno, inclusão de válvulas, sensores, atuadores e
banco de relés.
gerenciadores numa rede de comunicação Ethernet. Nesta etapa os gerenciadores devem trocar
informações entre si, utilizando o padrão de comunicação industrial OPC, para estabelecer os
Dois novos gerenciadores serão desenvolvidos, além daqueles que comandam os recursos
produtivos da célula, para fazerem o papel de interface com os usuários. O primeiro deles, o
gerenciador FMC, deve fornecer ao usuário todas as informações sobre os estados dos equipamentos,
dos pedidos efetuados, emitir relatórios, alarmes e permitir que o usuário insira seus pedidos de
fabricação na FMC. O segundo, chamado de gerenciador remoto, tem a função de permitir que um
usuário que se encontre fisicamente distante da célula, porém dentro da rede de comunicação, possa
também inserir seus pedidos de fabricação. A figura 3.6 apresenta um resumo da proposta de
50
Figura 3.7. Arquitetura para integração da FMC
Para validar a integração da FMC, será simulada a fabricação das peças do jogo de xadrez
(peão, torre, cavalo, bispo, dama e rei). As peças brancas serão fabricadas com um tipo de matéria-
prima (alumínio – código MP001), enquanto as pretas utilizarão o cobre ou latão (código MP002),
como matéria-prima para a fabricação. A transformação da matéria-prima nas peças de xadrez será
realizada pelo torno e pelo centro de usinagem CNC. As duas mesas do berço de usinagem do
armazém serão as responsáveis por fornecer os pallets contendo a matéria-prima para processamento
nas máquinas CNC. A distribuição da fabricação das peças entre o torno e o centro de usinagem foi
feita de forma a mostrar a flexibilidade do sistema, e não considerando a melhor estratégia real de
fabricação para cada peça. A tabela 3.1 apresenta a relação entre os códigos de matéria-prima, peças,
51
O CNC R1 não está fisicamente presente na célula, porém a área onde ele hipoteticamente
seria instalado está delimitada. O robô foi programado para transportar peças das mesas dos berços de
usinagem do armazém, até o CNC R1, enquanto as peças já processadas são retornadas para o pallet
correspondente. Dois códigos são os responsáveis por esta movimentação: (a) M1R1 executa o
carregamento da máquina CNC R1, a partir da mesa1; e (b) M2R1: carregamento da mesma máquina a
partir da mesa2.
52
4. MODELAGEM DA FMC
estado. Também são analisados os relacionamentos entre os diferentes recursos produtivos da célula,
através do envio e recebimento de mensagens, os eventos gerados a partir dessas informações, os pré-
FMC. Em decorrência desta análise são definidas as interfaces mínimas de comunicação entre os
diferentes recursos da célula. A partir da modelagem é possível visualizar o sistema em sua totalidade,
técnica utilizada para modelar a célula é a modelagem a eventos discretos, adotando o mecanismo
A disposição física dos equipamentos que compõem a FMC já estava definida antes do início
restrições de espaço. Apesar de o laboratório contar com os equipamentos necessários para a formação
de uma Célula Flexível de Manufatura, não havia nenhum tipo de integração entre os equipamentos
que possibilitasse uma ação autônoma e coordenada para a produção de peças. A figura 4.1 apresenta
(fresadora) e um terceiro CNC virtual, denominado CNC R1. O robô é o responsável pelo manuseio e
fornecer a matéria-prima para ser processada nos equipamentos CNC. Todos os materiais são
53
’
deve conduzir o pallet contendo a matéria-prima apropriada até a mesa1, ou mesa2, dos berços de
usinagem. Quando o pallet chegar à mesa, o robô deve pegar a peça e conduzi-la até o torno, fresadora
ou CNC R1, conforme determinado pelo controle computacional. Após carregar o CNC, o robô deve
movimentação. Ao término da usinagem, o robô retira a peça pronta do interior do equipamento CNC
e a devolve ao pallet na mesa1 ou mesa2. Nesse momento o armazém automático encaminha o pallet
4.2 INTERFACES
troquem dados entre si. Para Vieira (1996), o maior problema na integração de sistemas de manufatura
por fabricantes diferentes. Esta afirmação é completamente pertinente para a célula em questão. O
torno e o centro de usinagem (fresadora) não possuem nenhum meio de comunicação que permita
54
alguma interatividade com o meio externo. Ambos CNCs possuem apenas uma porta serial RS232 que
possui um cartão Profibus e uma porta serial RS232 para comunicação com dispositivos externos, mas
não possui os protocolos necessários para implementação de aplicativos que interajam com o meio
supervisório SCADA.
SCADA. Os diferentes gerenciadores trocam mensagens entre si utilizando uma rede de comunicação
Ethernet. Cada gerenciador troca informações com seu respectivo equipamento através de CLPs. A
A definição das mensagens necessárias para a modelagem da célula está alicerçada na fusão de
dois tópicos principais. O primeiro deles se refere à escolha da arquitetura de controle heterárquica,
controle a tomada de decisão é local e autônoma (TEIXEIRA, 2006). Entre os diferentes gerenciadores
construídos para a integração da célula nenhum deles possui um nível hierárquico superior ao outro.
segundo ponto se refere ao uso do controle modular de Sistemas a Eventos Discretos (SEDs), proposto
inicialmente por Wonham e Ramadge, que permite que problemas complexos possam ser
decompostos em módulos mais simples, para depois voltar a montar as soluções numa estrutura
55
modular (WONHAM e RAMADGE, 1989). Torrico e Cury (2004) propõem um aprofundamento
deste modelo num controle supervisório hierárquico modular por agregação de estados. Neste controle
a hierarquia é dividida em dois níveis, um nível associado ao operador e um outro nível associado ao
gerente. A aplicação desta arquitetura permite um comportamento consistente e não bloqueante, entre
Para definir as interfaces mínimas necessárias para a integração de cada equipamento da célula
possíveis para cada equipamento. Desta forma é possível desmembrar a totalidade de eventos em um
conjunto de ações. Internamente cada gerenciador estabelece dois níveis de hierarquia. O primeiro
condições e regras que compõem o processo decisório. O segundo nível, que está associado ao
operador, são os elementos de execução, que são responsáveis pela efetiva integração dos
Uma análise prévia do layout da célula indica que o robô é o responsável pelo carregamento e
descarregamento de peças no torno CNC, centro de usinagem CNC e CNC R1. O gerenciador da
célula é quem deve informar cada equipamento CNC qual programa de usinagem deve ser carregado.
Após decompor horizontalmente todas as ações possíveis dos equipamentos CNC dentro da
célula, e levando em consideração que cada módulo gerenciador deverá ter a maior autonomia
diretamente pelo gerenciador do robô e indicam se o robô está livre ou em algum procedimento de
carga ou descarga, se colocou ou retirou alguma peça no dispositivo de fixação das máquinas CNC e,
finalmente, se o robô se encontra dentro de uma área considerada segura para operação das máquinas
As informações que os CNCs devem fornecer ao sistema, neste caso ao gerenciador da célula
diferentes equipamentos CNC na FMC, desde que estas se encontrem fisicamente dentro da área de
trabalho do robô. A forma com que os equipamentos CNC fornecem estas informações ao sistema será
considerando que o robô movimenta as peças entre o armazém automático e os equipamentos CNC
para usinagem, e realiza o caminho inverso ao fim do processamento, pode-se definir o conjunto de
Todos os equipamentos CNC (torno, fresadora e CNC R1) devem fornecer ao robô indicações
sobre se estão livres ou usinando, a condição de suas portas e seus dispositivos de fixação. O armazém
automático informa ao robô sobre a presença de peças a serem usinadas na mesa1 ou na mesa2 dos
berços de usinagem. O gerenciador da FMC deve indicar qual programa o robô deve executar.
posição para carregamento ou descarregamento nos dispositivos de fixação dos equipamentos CNC, a
retirada ou devolução de peças no pallet presente na mesa1 ou na mesa2 dos berços de usinagem, a
presença dentro dos limites considerados como área segura de operação e a condição de anormalidade
operacional ou emergência. Os receptores das respectivas mensagens, assim como uma análise mais
57
detalhada da troca de informações entre os componentes da FMC serão analisados em detalhes no
capítulo 5.
Com este conjunto de interfaces, o robô está apto a fornecer e receber as informações
material na FMC.
processada. Após a usinagem, o armazém pode estocar o produto pronto ou encaminha-lo à esteira de
saída, para posterior transporte e entrega ao cliente final. A decomposição horizontal das ações
58
Figura 4.5. Interfaces do armazém automático.
respeito de quais peças foram selecionadas para usinagem, a quantidade e o destino do produto já
FMC. O retorno das peças, provenientes dos equipamentos CNC, para a mesa1 ou para a mesa2, é
chegada do pallet, com peças a serem processadas, na mesa1 ou mesa2 dos berços de usinagem, e às
Além das interfaces descritas até o momento, existem outras associadas ao armazém como,
por exemplo, a entrada e a estocagem de matéria-prima. Estas interfaces não são analisadas à luz da
decomposição das ações possíveis do armazém, para determinar um pacote mínimo de informações,
porque elas não são essenciais para o sincronismo e integração da célula. Essas interfaces são
responsáveis pela troca de dados entre o gerenciador do armazém e seu banco de dados, ou seja, são
O gerenciador FMC tem a função primária de servir de interface com o operador local e
remoto, permitindo que os mesmos insiram pedidos de fabricação de peças, indiquem a estratégia de
principais eventos associados aos equipamentos da célula, determinar e comunicar a escolha dos
59
programas de usinagem e de movimentação do robô. Hierarquicamente o gerenciador FMC se
encontra no mesmo nível que os outros gerenciadores da célula. A decomposição horizontal das ações
relevantes para o gerenciador FMC é o resumo dos eventos mais importantes dos demais
Para efetuar a modelagem de uma Célula Flexível de Manufatura, várias ferramentas podem
ser utilizadas, entre elas os Autômatos Finitos, ou Máquinas de Estado; as Redes de Petri; e o SFC
(Sequential Function Chart), também conhecido como Grafcet (GRAphe Fonctionnel de Commande
Para Friedrich (1996), o formalismo das Redes de Petri e o formalismo dos Autômatos Finitos
são considerados métodos baseados em modelos orientados a transição que seguem uma abordagem
executável. O modelo pode ser matematicamente verificado através do uso de análise estática e
validado a partir de sua execução. As duas abordagens (RdP e Autômatos Finitos) são aplicáveis à
maior que os Autômatos, ou máquina de Estados. Segundo Mušič e Matko (1998), um dos maiores
controle em processos industriais reais, é o problema da explosão de estados. Neste sentido as RdP se
60
destacam, especialmente no que se refere à possibilidade de modelagem de aspectos referentes à
O SFC, ou Grafcet, é uma linguagem gráfica que proporciona uma representação em forma de
diagrama da modelagem de um sistema a eventos discretos. Ela foi definida como padrão para a
programação de CLPs pela norma IEC 1131-3 (MALER, 1999). O Grafcet herdou muitas das
características da teoria das RdP, e evoluiu como uma simplificação desta na modelagem de
comportamento das entradas e saídas nas RdP, segundo Mušič e Matko (1998). Os autores também
apresentam uma metodologia para conversão segura de sistemas modelados em RdP para SFC. Lino e
Gomes (2005) apresentam outra metodologia que sugere utilizar inicialmente as potencialidades das
RdP para modelagem e verificação formal das propriedades do modelo, e posterior tradução para SFC.
Manufatura foi o mecanismo formal de descrição das Redes de Petri. Esta escolha foi feita em razão
de existir uma boa base bibliográfica que recomenda seu uso em sistemas a eventos discretos, como é
o caso dos Sistemas Flexíveis de Manufatura (TENG e ZHANG, 1993), (VIEIRA, 1996), (MUŠIČ e
MATKO, 1998), (GUSTIN, 1999), (ZHOU e VENKATESH, 2000), (RIBEIRO e ELVAS, 2004),
(LINO e GOMES, 2005), (MARRANGHELLO, 2005) e (TEIXEIRA, 2006). Além disso, as RdPI
descrevem em detalhes as características das condições necessárias para o disparo de cada transição, e
a correspondente execução das ações necessárias para o funcionamento do sistema. Esta descrição de
condições e ações é transposta de forma quase literal para a geração dos códigos de controle
As Redes de Petri (RdP) foram criadas a partir da apresentação da tese de doutorado de Carl
Darmstadt, na Alemanha, em 1962. As RdP originalmente foram utilizadas para representar sistemas a
eventos discretos.
Os elementos básicos que permitem a definição de uma RdP são: Lugar, Transição e Ficha
¾ O lugar é representado por um círculo e pode indicar uma condição, uma espera, um estado
61
¾ As transições são representadas por um retângulo e indicam um evento ou ação que ocorre no
¾ As fichas são representadas por um ponto, dentro de um lugar, e significam que a condição
associada ao lugar é verificada, ou seja, que o predicado associado ao lugar é verdadeiro. Por
exemplo, uma ficha no lugar “robô em movimento” significa que o robô está efetivamente em
movimento.
Os estados de uma RdP (lugares) representam a parte estática do sistema modelado, ou seja,
todos os estados elementares pelos quais o sistema pode passar em alguma fase do seu funcionamento.
As ações (transições) representam a parte dinâmica do sistema modelado, isto é, cada operação que o
sistema pode executar durante seu funcionamento. Lugares e transições são vértices do grafo
associados às RdP e estão ligados por meio de arcos direcionados. Os arcos que ligam lugares a
transições, representam relações entre condições verdadeiras e possibilitam que ações sejam
Onde:
alcançáveis;
Uma rede é dita viva quando não apresenta deadlocks (bloqueios mortais);
62
¾ Reversibilidade – é a capacidade da rede em retornar à marcação inicial a partir de qualquer
marcação;
Segundo Zhou e Venkatesh (2000), a RdP é uma ferramenta matemática e gráfica que oferece
um ambiente uniforme para modelagem, análise e projeto de sistemas a eventos discretos. Ainda
segundo os autores, algumas das características que fazem das RdP uma poderosa ferramenta para
das relações de dependência entre recursos; facilidade para gerar os códigos de controle supervisório
deadlock no sistema; a capacidade de modelar e simular Sistemas a Eventos Discretos (SEDs). Cury
(2001) define SEDs como “... um sistema dinâmico que evolui de acordo com a ocorrência abrupta de
De acordo com Teng e Zhang (1993), o uso de RdPs se adapta muito bem ao controle de
complexos sistemas de manufatura, ou sistemas dinâmicos a eventos discretos, como é o caso dos
Sistemas Flexíveis de Manufatura - FMS. As RdPs fornecem modelos fiéis e métodos eficientes de
Na modelagem da célula foi utilizada a Rede de Petri Interpretada (RdPI). A característica das
RdPI é a de apresentar dois grupos de parênteses associados a cada transição. O primeiro grupo indica
uma condição a ser satisfeita antes do disparo da transição. Se a transição estiver sensibilizada, porém
sem atender a condição imposta, a transição não ocorre. Neste caso, diz-se que a transição está
sensibilizada, porém não está habilitada. O segundo grupo de parênteses representa as ações
decorrentes do disparo da transição. A figura 4.7 apresenta a estrutura da RdPI que modela e interpreta
os estados dos recursos; as transições modelam a seqüência de ações (eventos) que modificam os
estados dos recursos; os arcos direcionados representam o fluxo do processo; as fichas indicam que o
predicado associado ao lugar é verdadeiro. A volta da peça já processada pelo torno para o pallet
presente na mesa1 do berço de usinagem é descrita por outra RdPI. Todas as RdPI desenvolvidas na
63
Figura 4.7. RdPI simplificada para movimentação de peças da mesa1 até o torno.
Uma análise preliminar dessa rede de Petri indica que ela é composta por:
¾ 12 lugares: Mesa1
Robô OK
TORNO OK
¾ 9 transições: t1_01; t1_02; t1_03; t1_04; t1_05; t1_06; t1_07; t1_08; t1_09.
64
AuxiliarProg (código do programa do robô)
castanha do torno)
Esta rede apresenta a movimentação de uma peça a ser usinada e que chegou à mesa1 do berço
coluna produto, da tabela de usinagem (número 05) do banco de dados. Esta ação ocasionará a
carregado for igual ao código PBR (Peão Branco, como ilustrado na tabela 3.1), a transição dispara
da transição 2 inicia o movimento do robô para buscar a matéria-prima na mesa1. A transição t1_03
somente dispara quando o robô chega ao ponto p1 (p1=1). Nesse momento o gerenciador do robô
sinaliza que o robô está em movimento (ROBO_PHOME=0) e que o robô já não se encontra no
habilita-se o disparo da transição t1_04, que executa a ação DO11_8=1 (fecha a garra do robô sobre a
peça do pallet). Após pegar a peça, o robô leva a mesma até o torno, que está livre e aguardando. O
ponto p4=1, que habilita o disparo da transição t1_06, significa que o robô colocou a peça na castanha
65
do torno. Com o disparo da transição também é executada a ação representada por
para fechá-la. O disparo da transição t1_07 somente ocorre quando o torno indica que fechou a
ordem para fechamento da castanha) e DO11_8=0, que abre a garra do robô. Cumprida a etapa de
carregamento do torno, o robô sai do interior do CNC e quando alcança o ponto p5 (p5=1), dispara a
quando o robô alcança sua posição de repouso (phome=1). Nesse momento o gerenciador do robô
indica ao sistema que o robô está livre (ROBO_PHOME=1). Dois lugares derivam da última
transição: o primeiro indica que a peça está sendo usinada no torno, e o outro disponibiliza o robô para
condições e as ações associadas a cada transição já estão no formato de tags, que serão detalhadas em
discreto. Esta característica é utilizada como condição de disparo de cada transição definida na
modelagem da célula. O script de programação, sempre associado a um evento, contém os códigos que
representam as ações a serem executadas pelo sistema. O controle da evolução dos estados no
supervisório está centralizado nos eventos que acionam os disparos das transições. A figura 4.8
apresenta um exemplo da conversão da modelagem em RdPI para geração dos controles supervisórios,
66
pallet na mesa1 dos berços de usinagem do armazém (evento OnValueChanged – dispara sempre que
Gerenciador do Robô
Gerenciador da FMC
Gerenciador do Torno
Gerenciador da FMC
67
5. INTEGRAÇÃO DA CÉLULA
Este capítulo trata com detalhes a integração da FMC, a partir da modelagem da célula por
uma arquitetura, que utiliza gerenciadores para cada equipamento existente na célula. A construção
dos gerenciadores e a integração destes com CLPs e respectivos equipamentos (robô, armazém
drivers, redes e os softwares desenvolvidos para CLPs, CNCs e o robô. O software utilizado para a
construção dos gerenciadores da célula é o supervisório Elipse SCADA, versão v2.28 build 024.
gerenciadores para cada recurso produtivo da célula, mais um gerenciador da FMC e um gerenciador
remoto. Os gerenciadores trocam informações por meio de uma rede local Ethernet, utilizando o
padrão de comunicação OPC. Todos os gerenciadores são servidores e clientes OPC. Os gerenciadores
dos equipamentos CNC (torno, fresadora e CNC R1) estão conectados a seus respectivos
equipamentos por meio de CLPs, assim como o gerenciador do robô. Já o gerenciador do armazém
automático está conectado diretamente a um CLP master, que por sua vez utiliza um CLP secundário,
denominado slave.
e os respectivos CLPs, foram previamente definidas na modelagem da célula. A figura 5.1 exemplifica
68
Figura 5.1. Arquitetura da FMC.
A construção do gerenciador dos equipamentos CNC (torno, centro de usinagem e CNC R1)
determinação das interfaces de cada equipamento. A modelagem utilizando RdPI permite visualizar o
do princípio de que os equipamentos CNC devem ter a maior autonomia possível. Desta forma os
interfaces definidas no capítulo 4.2.1 para os CNCs, e realizando a conversão para tags que serão
69
Tabela 5.1. Conversão de interfaces do torno para tags
INTERFACES TAG
PROGRAMA A EXECUTAR ProgUsinagem
ROBÔ LIVRE/EM MOVIMENTO ROBO_PHOME
ROBÔ CARREGOU/DESCARREGOU PEÇA ROBO_PECA_NA_CASTANHA
ROBÔ EM ÁREA SEGURA/CARREGANDO CNC ROBO_AREA_SEGURA
CNC LIVRE/USINANDO TORNO_OK
PORTA ABERTA/FECHADA TORNO_PORTA
DISPOSITIVO DE FIXAÇÃO ABERTO/FECHADO TORNO_CASTANHA
Com exceção da tag ProgUsinagem, que assume valores alfanuméricos, as outras tags
somente podem assumir valores binários. A tabela 5.2 apresenta o significado de cada tag conforme o
valor assumido.
alfanumérico, qual programa de usinagem previamente cadastrado está sendo solicitado pelo usuário
local ou usuário remoto. O gerenciador do robô envia ao gerenciador do torno um conjunto de três
TORNO_PORTA e TORNO_CASTANHA.
do torno via padrão de comunicação OPC. Neste caso os gerenciadores que fornecem informações se
comportam como servidores OPC; já o gerenciador do torno assume o papel de cliente OPC. A figura
70
Figura 5.2. Tags utilizadas pelo gerenciador do torno.
única tag OPC denominada SINAIS_DO_ROBÔ. Cada uma das três tags desmembradas equivale a
um bit da tag OPC. Este recurso reduz o número de tags e, por conseguinte de mensagens, que
circulam pela rede de comunicação. A tag ProgUsinagem, recebida do servidor OPC da FMC, é
comunicação com o torno, via CLP, são utilizadas duas tags PLC, uma para enviar dados, e outra para
de tags do gerenciador, utiliza-se a tag RAM ComunicTorno_robô, para enviar informações dos
definição das tags apresentada pela figura 5.2. Inicialmente são configuradas as tags OPC. A figura
71
Figura 5.3. Configuração das tags OPC no organizer do Elipse SCADA.
O gerenciador da FMC, configurado como OPC ServerFMC, teve sua tag ProgUsinagem
importada do computador “ifm03” da rede. O quadro “ID do Servidor” mostra o servidor OPC
selecionado no endereço da rede. Neste caso o gerenciador do torno assume o papel de cliente OPC e o
gerenciador FMC, o de servidor OPC. A mesma análise é válida em relação ao gerenciador do robô,
configurado como OPC ServerRobo. A diferença está no fato de que a tag importada
atualiza as tags internas AuxiliarProgTorno, Bit0, Bit1 e Bit2. A execução do script está condicionada
à ocorrência do evento OnValueChanged, ou seja, cada vez que o conteúdo da tag ProgUsinagem
sofrer uma atualização, o script será executado. Na modelagem da célula por RdPI, a mudança do
72
valor da tag é representativa da condição de disparo da transição, enquanto o script é representado
A configuração das demais tags pertencentes ao gerenciador do torno é apresentada pela figura
5.4.
73
Figura 5.4. Tags do gerenciador do torno.
referentes ao processo de usinagem do torno. A tag é atualizada pelo script associado à tag OPC
ProgUsinagem, conforme mostrado pela tabela 5.3. A relação entre o código recebido através da tag
Para comunicação do gerenciador com o CLP, neste caso um Moeller modelo PS4 201 -
módulo MM1, foram configurados as tags CLP Moeller_Torno e Torno_Moeller. A primeira tem a
74
função de enviar ao torno as informações necessárias para a integração com o gerenciador e é
desmembrada em: Bit0 (bit 0), Bit1 (bit 1), Bit2 (bit 2), Area_Segura (bit 4) e Castanha (bit 5). Já a tag
TORNO_OK (bit 8), TORNO_CASTANHA (bit9) e TORNO_PORTA (bit 10). Um script associado
ComunicTorno_Robo, que será responsável de comunicar dados do torno ao robô, via servidor OPC.
A atualização da tag CLP Torno_Moeller, e por conseqüência das três tags desmembradas,
informação dos estados do torno, transformando a combinação binária das tags TORNO_OK (bit
significativo).
75
A interface gráfica do gerenciador do torno, mostrada na figura 5.5, contém as principais
informações que o operador do sistema necessita para identificar de forma fácil e rápida o estado dos
A integração do gerenciador do torno com o CLP Moeller ocorre através das tags CLP
configurado um driver específico, fornecido pela Elipse, como mostrado na tela do organizer, na
figura 5.6.
76
Figura 5.6. Driver e configuração do CLP Klockner Moeller.
A comunicação entre gerenciador e o CLP foi configurada para utilizar a porta serial COM2,
com velocidade de 9600 bps, 8 bits de dados, sem paridade e 2 bits de parada. Todos os parâmetros
“P” foram deixados com valores nulos (igual a zero), dessa forma a parametrização do driver fica por
conta dos parâmetros “N”, diretamente na tag CLP, como mostra a figura 5.7.
77
Figura 5.7. Parâmetros “N” da configuração do CLP Klockner Moeller.
A parametrização adotada é idêntica para as duas tags CLP. Para que o CLP Moeller possa
escrever um programa utilizando o software de programação Sucosoft S40, versão 5.0. O programa
para o CLP Moeller pode ser visto na figura 5.8. Todos os programas desenvolvidos para integração
78
Figura 5.8. Programa do CLP Moeller do torno.
Comentários foram inseridos para documentar o programa. Assim, é possível observar que as
variáveis “MEMORIA” e “SAIDA” são do tipo “BYTE”, assumem valor inicial igual a zero e ocupam
tipo “BOOL”, todas com valor inicial igual a zero: castanha (i0.0.0.0.0), mem_cas (m0.0.1.0.0), porta
primeiras linhas. A primeira carrega o valor da variável “MEMORIA” através do comando “LD”
(Load), e na linha seguinte transfere este valor para a variável “SAIDA”, através do comando “ST”
(Storage).
O programa que transfere dados do torno para o gerenciador é similar ao anterior, com a
diferença de que são três as variáveis lidas do torno (castanha, porta e livre). Após carregar o conteúdo
das variáveis, estas são transferidas para saídas (mem_cas, mem_porta e mem_livre). A figura 5.9
exemplifica o programa do CLP Moeller, apresentando também as conexões entre o CLP e o torno,
79
Figura 5.9. Esquema de conexões do CLP Moeller.
A última etapa da integração é a conexão entre o CLP Moeller e o torno. O torno CNC Feeler,
modelo FTC10, originalmente não está preparado para trocar dados com nenhum outro equipamento.
Para realizar esta tarefa foram introduzidas mudanças no hardware e na programação do seu CLP, um
Mitsubishi Meldas 50M. Estas modificações foram realizadas em 2004, por dois formandos do curso
conclusão de curso (HAAS e DETTRUZ, 2004). Para que seja possível acompanhar o complemento
da integração do CLP Moeller com o torno, será apresentado um breve resumo das modificações
desta dissertação.
O passo inicial foi automatizar a porta do torno, que a princípio era acionada manualmente
pelo operador. Para tanto foi instalado um cilindro pneumático com suas respectivas válvulas e um
banco auxiliar de relés. Todos os sinais trocados entre o CLP Moeller e o CLP Meldas são
eletricamente isolados. Isto se faz necessário devido ao fato de que existem diferenças de potenciais
elétricos nas saídas dos CLPs. São utilizados dois bancos de relés auxiliares para efetuar o isolamento
80
Figura 5.10. Cilindro pneumático, porta do torno e banco de relés auxiliares (no detalhe).
A atuação das válvulas do cilindro pneumático é realizada por meio dos contatos RL2 (fechar
porta) e RL3 (abrir porta). Os contatos do relé são acionados pelas saídas do CLP Meldas Y27 (abrir
porta) e Y29 (fechar porta). As funções de abrir e fechar a porta já estavam previstas nas funções
auxiliares M (miscellaneous) do torno, como M17 e M18 respectivamente, porém não estavam
M617, para a saída Y27, e M618, para a saída Y29. A Figura 5.11 exemplifica estas implementações.
81
O estado do torno é informado através do sinal TORNO OK/OUT. Para implementar este sinal
foi necessário utilizar a saída Y2C do CLP Meldas, ligado ao relé auxiliar RL6. Quando o torno
carrega positivamente um programa e inicia o processo de usinagem, a saída apresenta um nível zero
(Y2C=0). Quando o torno estiver livre, ou seja sem programa carregado, com a porta e a castanha
aberta, a saída apresentará um nível alto (Y2C=1), indicando que o torno está apto a receber uma
solicitação de usinagem. O sinal de que o torno está apto a receber a carga de um novo programa
exigiu, por questões de segurança, uma redundância no seu intertravamento. Somente com a indicação
de que a porta está aberta, fornecida pela entrada interna X38=1 e que a castanha também está aberta
(Y2B=0), é que a saída Y2C pode se acionada, indicando que o torno está livre conforme mostra o
Quando o robô carrega uma peça para usinagem, ele indica que a peça está na posição através da
entrada XB do CLP Meldas. Este sinal foi colocado em paralelo com a chave S1/H2, que é o pedal
onde o operador efetua esta operação de forma manual. A lógica de abertura e fechamento da castanha
utiliza apenas um pulso para a mudança do seu estado inicial. O primeiro pulso abre, e o segundo
fecha a castanha. O relé RL5 indica a condição da castanha através da saída Y2B do CLP Meldas, que
está conectado à entrada I0.1 do CLP Moeller. A figura 5.13 mostra o Ladder de indicação de castanha
aberta ou fechada. A memória M713 é utilizada pela lógica da castanha e indica que a mesma está
82
Figura 5.13. Ladder da castanha aberta/fechada.
(Fonte: HAAS e DETTRUZ, 2004)
Após a carga da peça a ser usinada, o torno aguarda a informação de que o robô se encontra
em área segura, sinal proveniente da saída Q0.4 do CLP Moeller e entrada X24 do CLP Meldas.
Somente após receber esta confirmação é que o robô fecha a porta e inicia a usinagem. O torno utiliza
a saída X11 para indicar a partida (start) do programa de usinagem, no modo automático. Para indicar
que o torno pode iniciar o procedimento de usinagem, quando o robô estiver em área segura, colocou-
se um contato da entrada X24 em paralelo com a entrada X11, atuando a memória M201, que é o sinal
realizada pela combinação BCD (Binary Coded Decimal) de três bits proveniente do CLP Moeller.
Estes bits estão conectados nas entradas X08, X2F e X31 do CLP Meldas. A tabela 5.8 mostra a
relação entre a tag ProgUsinagem, a tag AuxiliarProgTorno, a combinação BCD na saída do CLP
83
O programa para usinagem de um peão branco ou um peão preto é exatamente o mesmo. Esta
lógica é válida também para o bispo e a dama, que completam a família de peças direcionadas para
utilizada pelo armazém no fornecimento de matéria-prima. No caso das peças denominadas “brancas”
utiliza-se o alumínio como matéria-prima. Já no caso das peças “pretas” pode-se utilizar latão ou
cobre. De qualquer forma, a escolha de diferentes cores para a mesma peça foi empregada somente
como um recurso para comprovar a flexibilidade oferecida pelo sistema no que se refere ao número de
diferentes peças que podem ser processadas pelo torno. Para aumentar o número de combinações de
programas basta aumentar o número de bits na combinação BCD. A limitação neste caso se dará pelo
número de portas de saída disponíveis no CLP, ou pela capacidade de memória para programas do
torno.
As entradas X08, X2F e X31 do CLP Meldas estão ligadas, via programação Ladder, a
posições de memórias auxiliares do torno. Estas memórias estão inseridas dentro do programa
usinagem, que são previamente carregados, fazem parte de um único programa principal. A chamada
de cada programa ocorre de forma semelhante à chamada de uma sub-rotina, disparada pelo desvio
condicional da instrução IF. Se a condição for verdadeira, o programa executa a instrução GOTO, indo
até a linha onde inicia o programa desejado. Ao fim da usinagem o programa retorna ao corpo
principal do programa mestre, aguardando a próxima instrução válida, dada pela ativação das
A integração entre o gerenciador do torno, o CLP Moeller e o torno possibilita que este
conjunto se integre como um recurso produtivo da FMC. As figuras 5.15 e 5.16 mostram
84
Figura 5.15. Arquitetura da troca de informações entre gerenciador, CLP Moeller e torno.
A construção dos gerenciadores do Centro de Usinagem Feeler, modelo FV600, e do CNC R1,
seguiu todos os passos adotados para o torno. As interfaces foram definidas, os aplicativos foram
desenvolvidos no Elipse SCADA e os programas do CLP também foram escritos. A fresadora não
pode efetivamente ser incorporada à célula porque não possui um sistema de fixação automático, que
85
poderia ser uma morsa hidráulica. Sem este dispositivo não é possível a operação autônoma do CNC,
pois exigiria um operador para fixar a peça a ser usinada, o que também invalida a ação do robô, pois a
será apresentado de forma resumida, pois possui grande similaridade com o gerenciador do torno.
No caso do CNC R1, não existe de fato nenhuma máquina. Ela será simulada para testar as
gerenciadores é semelhante para todos os equipamentos CNC, pois está baseado em um conjunto de
interfaces mínimas que atendem às especificações de um grande número de CNCs. Outra razão para
incluir esta máquina “virtual” na célula deve-se ao fato de que o espaço de trabalho do robô poderia,
hipoteticamente, atender a uma terceira máquina CNC, que pode no futuro vir a ser efetivamente
instalada.
Partindo da definição das interfaces mínimas para a fresadora e para o CNC R1, e
O significado das tags que serão utilizados para construção dos gerenciadores da fresadora e
86
Um resumo das tags utilizadas para a construção do gerenciador do centro de usinagem
paralelismo entre os gerenciadores dos equipamentos CNC. Isto não é coincidência, mas resultado da
mais uma máquina CNC, independente de ser um torno ou um centro de usinagem, esta teria
exatamente a mesma estrutura, mudando apenas o nome e o dispositivo de fixação (morsa, castanha,
pinça, etc.). Desta forma, a construção dos gerenciadores no supervisório Elipse SCADA, os scripts,
Em razão desta padronização, ou modularidade, somente serão analisados na seqüência deste trabalho
87
Tabela 5.11. Relação entre tags e ações correspondentes
ProgUsinagem AuxiliarProgTorno AuxiliarProgR1 Significado
““ 0 0 AGUARDANDO INSTRUÇÃO
TBR 1 FRESADORA USINA TORRE BRANCA
TPR 2 FRESADORA USINA TORRE PRETA
CBR 3 FRESADORA USINA CAVALO BRANCO
CPR 4 FRESADORA USINA CAVALO PRETO
RBR 5 FRESADORA USINA REI BRANCO
RPR 6 FRESADORA USINA REI PRETO
M1R1 1 CNC R1 RECEBE DA MESA1
M2R1 2 CNC R1 RECEBE DA MESA2
EMERG 15 15 EMERGÊNCIA ACIONADA
A interface com o usuário, neste caso do gerenciador da fresadora, assim como algumas das
88
5.4 GERENCIADOR DO ROBÔ
retorno das peças usinadas para o armazém automático. No item 4.2.2 definiram-se as interfaces
mínimas para o robô. As mesmas são apresentadas pela tabela 5.12 com a respectiva conversão para as
sincronismos das ações de carregamento e descarregamento. Ao mesmo tempo também informa aos
gerenciadores dos CNCs seus próprios estados (coloca/retira peça no dispositivo de fixação dos CNCs,
informa da chegada de pallet com carga na mesa1 ou mesa2 dos berços de usinagem, e é informado
sobre a devolução das peças já usinadas nas mesmas mesas, por parte do gerenciador do robô. Com o
gerenciador da FMC, a troca de mensagens se resume à indicação de que o robô está livre ou usinando
O conjunto de tags utilizados pelo gerenciador do robô está representado pela figura 5.19.
89
Figura 5.19. Conjunto de tags utilizado pelo gerenciador do robô.
90
As informações são recebidas dos outros gerenciadores por meio de tags OPC. Neste caso o
aplicativo do gerenciador do robô comporta-se como cliente OPC, enquanto os demais gerenciadores
assumem o papel de servidores OPC. Observa-se que não existe na configuração das tags um servidor
OPC do armazém automático. Isto se deve ao fato de que o aplicativo gerenciador do armazém e o
gerenciador FMC foram desenvolvidos em um único aplicativo, por razões que são abordadas no item
5.5. Desta forma, tanto as informações provenientes do armazém como do gerenciador FMC, são
O gerenciador do robô utiliza três tags do tipo RAM como auxiliares. A tag
presença de pallet na mesa1 ou mesa2 dos berços de usinagem. A informação original está na tag
detalhados no Apêndice D). As tags AuxiliarProg e AuxiliarUsi tem a função de alimentar objetos do
tipo texto na interface do operador, para indicar qual programa de usinagem está sendo solicitado e
qual programa de movimentação o robô está executando. Estas tags também são atualizadas por script,
Para comunicação do gerenciador com o CLP são utilizados dois conjuntos de tags tipo PLC.
do robô no software Elipse SCADA. A figura 5.20 apresenta a interface do gerenciador com o
operador.
91
Figura 5.20. Interface do gerenciador do robô com operador.
A configuração das tags OPC foi realizada de forma semelhante ao gerenciador do torno. O
gerenciador do robô funciona como cliente OPC, e os demais gerenciadores que fornecem
informações ao robô, atuam como servidores OPC. A figura 5.21 mostra a estrutura das tags OPC,
importadas dos outros gerenciadores assim como um detalhe parcial do script, disparado pelo evento
OnValueChanged da tag ProgUsinagem, que atualiza as tags tipo Ram AuxiliarUsi e AuxiliarProg.
92
Figura 5.21. Estrutura das tags OPC e detalhe de um script.
A tag ProgUsinagem contém a informação do código da peça que o usuário solicita para
fabricação. A partir dela são carregados os programas de usinagem nos equipamentos CNC, o
armazém para as mesas de usinagem. A tabela 5.13 complementa as informações parciais da figura
anterior (5.21), referente ao script associado à tag ProgUsinagem, e também relaciona o código de
usinagem solicitado, à mesa em que o armazém automático apresentará o pallet com a matéria-prima,
o CNC que processará a peça e o programa do robô para carregamento dos equipamentos CNC.
93
Tabela 5.13. Relação entre tags, mesa de usinagem, CNC e programa do robô.
ProgUsinagem AuxiliarUsi AuxiliarProg Mesa CNC Programa Robô
““ 0 0
PBR 1 1 1 Torno M1T1
PPR 7 1 1 Torno M1T1
TBR 2 7 2 Fresadora M2F1
TPR 8 7 2 Fresadora M2F1
CBR 3 5 1 Fresadora M1F1
CPR 9 5 1 Fresadora M1F1
BBR 4 3 2 Torno M2T1
BPR 10 3 2 Torno M2T1
DBR 5 1 1 Torno M1T1
DPR 11 1 1 Torno M1T1
RBR 6 7 2 Fresadora M2F1
RPR 12 7 2 Fresadora M2F1
M1R1 13 9 1 CNC R1 M1R1
M2R1 14 11 2 CNC R1 M2R1
EMERG 15 15
do servidor OPC FMC não são essenciais ao gerenciador do robô, mas fornecem informações sobre
estados intermediários que ajudaram no desenvolvimento do sistema. Como existe a possibilidade que
a pesquisa tenha continuidade, optou-se pela permanência destas tags no aplicativo, para facilitar a
Os estados dos equipamentos CNC são coletados através das tags OPC ComunicTorno_Robo,
A figura 5.22 apresenta o restante das tags utilizadas pelo gerenciador do robô, ressaltando no
detalhe a parametrização (parâmetros “N”) do driver Prodave, associado à tag tipo PLC
SINAIS_PARA_ROBO1, que envia informações do gerenciador para o controlador do robô, por meio
94
Figura 5.22. Tags utilizadas pelo gerenciador do robô e parametrização do driver Prodave.
Para que o gerenciador do robô pudesse trocar informações com o controlador do robô, foi
necessário utilizar um CLP, neste caso um Siemens, modelo S7-300. O gerenciador precisa receber do
robô informações referentes a seus estados e posições. O gerenciador também necessita enviar ao robô
as informações sobre estados dos equipamentos CNC, presença de pallet nas mesas de usinagem do
driver Prodave, fornecido pela Elipse. Na configuração do software Prodave versão 5.00, para os
“Parâmetros de Estação” instalou-se uma interface padrão “MPI”, endereço “1”, “Timeout“ de 30s e
“Transmission rate” de 187,5 Kbps. Na janela de “Conexão Local”, configurou-se a porta serial
COM2, com velocidade de 19200 bps. Já na configuração do driver Prodave, os parâmetros “P” foram
95
mantidos com valores iguais a zero, desta forma a parametrização será realizada pelos parâmetros “N”,
N3=0, N4=33) e da tag SINAIS_DO_ROBO: (N1=0, N2=15, N3=0, N4=16). O significado destes
Para que o CLP Siemens possa processar e transferir as informações recebidas do gerenciador
para o torno, e vice-versa, desenvolveu-se um programa para o CLP utilizando o software Simatic
96
O programa é composto por dois blocos e se baseia parcialmente em um programa
desenvolvido anteriormente por dois formandos de graduação do IST (CHAVES e ALBANO, 2006).
O primeiro bloco do programa recebe as informações provenientes do robô através da rede Profibus.
Estas informações de entrada têm o formato de bytes e são recebidas sequencialmente a partir da porta
ID16, conforme configurado no driver Prodave. Após receber as entradas, o programa carrega esta
informação em uma memória (MD50) e a transfere para o aplicativo do gerenciador do robô, via rede
MPI (Message Passing Interface). Há um conjunto de 16 IDs, o que totaliza um total de 128 bits
disponíveis para entrada de dados no CLP. A tag SINAIS_DO_ROBO utiliza 8 bits de dados para
comunicar os estados e posições do robô ao gerenciador, todos agrupados na ID16 do CLP Siemens.
enviam seus dados via rede MPI para as portas QD32 e QD33. Estes dados são movidos para a
memória MD84, que as transfere para o robô, utilizando a rede Profibus. Neste caso também estão
disponíveis 16 conjuntos de QDs, com 128 bits de saída no total. As duas tags de saída utilizam 15
bits de dados para comunicação entre o gerenciador e o torno. A figura 5.24 exemplifica as conexões
entre gerenciador, CLP Siemens e robô, detalhando a decomposição em bits das tags PLC e as
correspondências destas com as entradas e saídas digitais do controlador do robô, que serão
97
5.4.3 Integração entre CLP Siemens e o robô
A conexão entre o CLP Siemens e o controlador do robô se faz por meio de uma rede Profibus
DP (Periferia Descentralizada), interligando o CLP com um cartão modelo DSQC 352 instalado no
controlador do robô.
é orientada pelo modelo de referência OSI (Open System Interconnection) em conformidade com a
norma internacional ISO 7498. Neste modelo, todas as camadas geram tarefas de transmissão
Camada 2 (ligação de dados) define o protocolo de acesso à rede. A Camada 7 (aplicação) define as
O Perfil de Comunicação Profibus DP, utilizado na conexão CLP-robô, foi projetado para a
troca de dados ao nível de campo. O dispositivo central (neste caso o CLP Siemens) comunica-se com
os dispositivos de campo distribuídos (neste caso o cartão DSQC 352) através de uma ligação série.
Cada dispositivo de campo recebe um endereço na rede. O controlador do robô foi endereçado como
utilizador. As camadas de 3 a 7 não são utilizadas. Este tipo de arquitetura assegura a transmissão
rápida e eficiente de dados. O Direct Data Link Mapper (DDLM) fornece ao usuário a interface de
comportamento do sistema e dos vários tipos de dispositivos DP, são especificados nessa interface. No
Profibus FMSp (protocolo universal de comunicações) é dada uma particular importância às camadas
Specification - FMSp) e da interface de camada mais baixa (Lower Layer Interface - LLI). O FMSp
98
define um grande número de serviços de comunicação mestre-mestre e comunicação mestre-escravo.
controlador do robô. As tags tipo PLC utilizadas no aplicativo de gerenciador são decompostas em bits
e têm uma correspondência com entradas e saídas digitais (DI e DO) do controlador do robô. A tabela
99
Gerenciador do torno I/O digitais do robô
Tag tipo PLC Desmembramento da tag Bit Entradas Saídas
CARGA_PROG_BIT0 0 DI10_9
CARGA_PROG_BIT1 1 DI10_10
CARGA_PROG_BIT2 2 DI10_11
SINAIS_PARA_ROBO2 CARGA_PROG_BIT3 3 DI10_12
R1_OK 4 DI10_13
R1_DISP_FIX 5 DI10_14
R1_PORTA 6 DI10_15
ROBO_PHOME 0 DO10_1
ROBO_PECA_NA_CASTANHA 1 DO10_2
ROBO_PECA_NA_MORSA 2 DO10_3
SINAIS_DO_ROBO ROBO_PECA_NA_R1 6 DO10_7
ROBO_M1 3 DO10_4
ROBO_M2 4 DO10_5
ROBO_AREA_SEGURA 5 DO10_6
ROBO_EMERGENCIA 7 DO10_8
Com base na tabela anterior, que mapeia a relação de entradas e saídas, foi possível construir o
programa de movimentação do robô, utilizando a linguagem RAPID, fornecida pela fabricante ABB.
A versão utilizada pelo controlador do robô é a S4. O conjunto de quatro tags responsáveis pela carga
diretamente ligado às entradas digitais DI10_9, _10, _11 e _12, respectivamente. Estas entradas
digitais foram configuradas no controlador do robô como um grupo, denominado “Comando”. A partir
O programa inicia testando o grupo de entradas denominado “Comando”. Se o grupo, que está
ligada à combinação BCD dos quatro primeiros bits da tag SINAIS_PARA_ROBO2, for igual a um
(CASE 1), então o programa executa um desvio para a rotina denominada m1t1, que é o programa do
100
robô que busca a peça na mesa1 do armazém e a conduz ao torno1. A relação entre os códigos dos
mostrada na tabela 5.13, no item 5.4.1. Se a combinação de entrada for igual a 2 (CASE 2) será
executado o programa t1m1, que retira a peça já processada do interior do torno1 e a devolve à mesa1.
O programa contempla todas as combinações entre a mesa1 e a mesa2, com os três CNCs disponíveis
na célula (torno, fresadora e CNC R1), tanto no carregamento de matéria-prima, quanto no retorno das
A análise da escolha do programa a ser executado é semelhante para todos eles. A combinação de
entrada igual a 15 (CASE 15) está reservada para parada de emergência. A combinação BCD nula na
entrada (Comando=0) não executa nenhum desvio para programas de movimentação, mas força o loop
(retorno) para um novo teste do grupo Comando. Este processo pode se repetir indefinidamente até
que haja uma combinação válida na entrada. As combinações BCD 13 e 14 também forçam o retorno
ao teste do grupo Comando. Elas não são utilizadas pelo sistema e podem ser consideradas como
mostra os programas m1t1 (da mesa1 para o torno1) e t1m1 (do torno1 para a mesa1).
101
Programa mesa1-torno1 Programa torno1-mesa1
17 SingArea\Wrist; Set DO11_8;
18 MoveJ p16,v200,fine,tool0; WaitTime 1;
19 MoveL p5,v200,fine,tool0; ! envia pulso para abrir castanha
20 ! espera sinal de confirmação da porta do Set DO10_2;
21 WaitDI DI10_3,1; ! espera sinal de castanha aberta
22 ! espera sinal de confirmação da castanha do WaitDI DI10_2,0;
23 WaitDI DI10_2,0; ! encerra pulso para fechar a castanha
24 MoveL p6,v200,fine,tool0; Reset DO10_2;
25 MoveL p4,v80,fine,tool0; MoveL p6,v200,fine,tool0;
26 ! envia sinal para fechar a castanha (pulso) MoveL p5,v200,fine,tool0;
27 Set DO10_2; ! envia sinal de robô em área segura
28 ! espera sinal de castanha fechada Set DO10_6;
29 WaitDI DI10_2,1; MoveJ p16,v200,z100,tool0;
30 ! encerra pulso para fechar a castanha MoveJ p2,v200,z100,tool0;
31 Reset DO10_2; MoveL p3,v100,fine,tool0;
32 ! abre a garra para deixar a peça no torno WaitTime 1;
33 Reset DO11_8; ! devolve a peça para o palete 1
34 WaitTime 1; Reset DO11_8;
35 MoveL p6,v200,fine,tool0; WaitTime 1;
36 MoveL p5,v200,fine,tool0; MoveJ p2,v200,z80,tool0;
37 ! envia sinal de robô em área segura ! envia sinal ao AS/AR para retorno do
38 Set DO10_6; Set DO10_4;
39 MoveAbsJ jposhome,v200,z80,tool0; MoveJ p1,v200,z80,tool0;
40 ! envia sinal de robô em Phome MoveAbsJ jposhome,v200,z80,tool0;
41 Set DO10_1; ! envia sinal de robô em Phome
42 ENDIF Set DO10_1;
43 ENDPROC ! aguarda confirmação do AS/AR de retorno
44 WaitDI DI10_7,0;
45 ! encerra pulso para retorno da M1
46 Reset DO10_4;
47 ENDIF
48 ENDPROC
determinadas linhas. Elas não fazem parte da lista de programação. Os programas contêm comentários
robô. Pode-se afirmar que a seqüência de eventos dos programas é uma representação fiel da
modelagem em RdPI.
O programa m1t1 é o responsável por buscar a matéria-prima que chegou na mesa1 dos berços
após a carga do programa é verificar se o torno carregou o programa de usinagem e abriu a porta (IF
DI10_1=1). Em caso afirmativo, o robô inicia sua movimentação, iniciando pelo ponto P1 de onde
102
informa que já não se encontra mais em Phome (linha 7 - Reset DO10_1). Esta informação sinaliza ao
sistema que o robô não está mais disponível, mas executando um programa de movimentação. Na
seqüência o robô se desloca até o ponto P2 e informa que já não está mais em área segura (linha 10 -
Reset DO10_6), pois se aproxima do pallet da mesa1. Ao chegar ao ponto P3 (no pallet da mesa1), o
robô fecha a garra sobre a peça (linha 14 - Set DO11_8) e a conduz em direção ao torno através dos
pontos P2, P16 e P5 (na frente da porta do torno), onde aguarda a confirmação redundante de que a
porta do torno está aberta (linha 21 - WaitDI DI10_3,1) e que a castanha também está aberta (linha 23
(posição da peça dentro da castanha). Nesse momento o robô indica que a peça está em posição na
castanha (linha 27 - Set DO10_2). Este comando autoriza o torno a fechar a castanha. O robô aguarda
a confirmação de que a castanha está efetivamente fechada (linha 29 - WaitDI DI10_2,1) para encerrar
a ordem anterior (linha 31 - Reset DO10_2). Após o fechamento da castanha, o robô abre a garra
(linha 33 - Reset DO11_8) deixando a peça no torno e sai do mesmo, seguindo os pontos P6, P5 (na
frente da porta do torno), onde informa que se encontra novamente em área segura (linha 38 - Set
DO10_6). Este sinal será a indicação para o torno fechar a porta e iniciar o ciclo de usinagem.
Finalmente o robô retorna ao seu ponto de origem, Phome, e comunica que está novamente disponível
para executar outro programa (linha 41 - Set DO10_1). Ao fim do programa m1t1, há um retorno
automático ao programa principal, que lê ciclicamente o grupo Comando a espera de uma instrução
primeira instrução do programa verifica se o torno finalizou o ciclo de usinagem (IF DI10_1=1). Se
esta condição foi atendida, então o programa aguarda a indicação de que a porta do torno está
realmente aberta (linha 5 - WaitDI DI10_3,1). Ao receber a confirmação, o robô inicia seu
deslocamento em direção ao torno indo até o ponto P16, onde informa que saiu de Phome (linha 9 –
Reset DO10_1) e ponto P5, onde sinaliza que já não se encontra mais em área segura (linha 12 - Reset
DO10_6). O robô continua seu deslocamento através dos pontos P6 e P4 (posição na castanha), onde
fecha a garra sobre a peça já processada (linha 17 – Set DO11_8). Nesse momento o robô necessita
enviar um pulso para abrir a castanha do torno (linha 20 – Set DO10_2). Quando a confirmação da
abertura da castanha é recebida (linha 22 – Wait DI10_2,0), o robô encerra o pulso de abertura (linha
24 – Reset DO10_2). Com a peça presa na garra e a castanha do torno aberta, o robô inicia a retirada
através dos pontos P6 e P5 (ponto na frente da porta do torno) onde informa que retornou a uma área
segura (linha 28 – Set DO10_6). O caminho do robô em direção ao pallet da mesa1 continua pelos
103
pontos P16, P2 e P3 (no pallet). Ao chegar ao pallet, o robô abre a garra para soltar a peça (linha34 –
Reset DO11_8) e inicia seu retorno para Phome, iniciando pelo ponto P2, de onde envia um sinal para
que o armazém retorne o pallet da mesa1 (linha 38 – Set DO10_4). Na seqüência da movimentação
estão os pontos P1 e, finalmente Phome, onde o robô envia a informação de que está novamente
disponível para executar outro programa (linha 42 – Set DO10_1). Antes de encerrar o programa, o
robô necessita receber a confirmação do retorno do pallet da mesa1 ao armazém (linha 44 – WaitDI
DI10_7,0) para encerrar o pulso que comanda o retorno (linha 46 – Reset DO10_4).
A figura 5.26 mostra as posições dos pontos da trajetória do robô, utilizados na programação,
assim como a interface de usuário do gerenciador, o CLP Siemens, o controlador do robô e o Teach
Pendant. Uma tabela contendo a sequência de pontos de todos os programas de movimentação do robô
A integração do aplicativo gerenciador do torno, o CLP Siemens e o robô, permite que o robô
execute suas funções de carregamento e descarregamento dos CNC com grande autonomia. Há uma
104
preocupação constante pela segurança operacional do robô, pois ele é o recurso da célula com maior
desenvolvido para o robô permite que ele não fique preso à operação de usinagem. Após a carga da
matéria-prima nos CNCs, o robô retorna ao Phome, ficando disponível para a futura operação de
descarga correspondente, ou qualquer operação solicitada por outro CNC da célula. A seqüência de
pedidos.
O disparo dos programas de carga dos equipamentos CNC é realizado pela atualização da tag
AuxiliarProg, ligada por meio de script à tag ProgUsinagem, conforme mostrado pela tabela 5.13. Os
programas de retorno das peças processadas nos CNCs é disparada pela abertura da porta dos CNCs,
ação que indica o fim do ciclo de usinagem. A figura 5.27 mostra o script associado à tag OPC
ComunicTorno_Robô que aciona a descarga de peça no torno. Após a figura, a tabela 5.19 estabelece a
relação entre a tag AuxiliarProg, a mesa para onde a peça deverá retornar após o processo de usinagem
105
Tabela 5.19. Relação entre a tag AuxiliarProg, mesa de usinagem e programa do robô
AuxiliarProg Mesa Programa do Robô
0 - -
1 1 M1T1
7 2 M2F1
5 1 M1F1
3 2 M2T1
1 1 M1T1
7 2 M2F1
9 1 M1R1
11 2 M2R1
2 1 T1M1
4 2 T1M2
6 1 F1M1
8 2 F1M2
10 1 R1M1
12 2 R1M2
Após o início da movimentação do robô para retornar a peça ao pallet da mesa de usinagem, é
necessário zerar a tag AuxiliarProg, pois se ela estiver com o mesmo conteúdo quando o robô finalizar
o movimento, o robô voltará a executar o mesmo programa indevidamente. O momento em que o robô
pega a peça no dispositivo de fixação do CNC, é o evento que atualiza a tag (AuxiliarProg =0), através
Elipse SCADA, antes do início do projeto. Este aplicativo foi alterado e ampliado para cumprir o
papel de gerenciador do armazém e da FMC. Esta decisão foi tomada no intuito de simplificar a
construção do gerenciador FMC, já que o aplicativo que comanda o armazém automático necessita de
poucas adaptações para tornar-se o gerente desejado. Toda a estrutura de programação de scripts, CLP
e Banco de Dados (BD) será aproveitada. Seria inviável construir integralmente um novo aplicativo
para o armazém dentro da proposta deste trabalho, dada a complexidade do mesmo. As modificações
introduzidas no aplicativo Elipse original permitem que o armazém troque informações com o
gerenciador do robô e o gerenciador FMC. Este capítulo abordará somente as modificações que foram
106
introduzidas no software do armazém. Informações adicionais a respeito do funcionamento geral do
armazém automático (AS/RS - Automatic Storage/Retrieval System) fabricado pela Scheffer, poderão
ser obtidas em duas monografias do IST, que descrevem em detalhes hardware e software do
pallets solicitados das prateleiras; encaminhar os pallets para as mesas nos berços de usinagem; e
retornar os pallets das mesas nos berços de usinagem. A figura 5.28 apresenta vistas parciais do
armazém.
A figura da esquerda mostra os berços de usinagem, com a mesa1 e mesa2. A figura da direita
mostra parcialmente o berço de usinagem; ao centro, o berço de saída ou rejeito (com um pallet); à
direita, o berço de entrada de pallets. Ao fundo tem-se uma visão parcial da estrutura porta-pallet e do
transelevador
107
Dentro da proposta de construir os dois gerenciadores dentro de um único aplicativo, podemos
unificar as interfaces de entrada e saída. A conversão para tags, que é o primeiro passo para a
Com base na definição das tags necessárias e contando com o aplicativo original do armazém,
iniciou-se a construção dos gerenciadores da FMC e do AS/RS. Apesar de fazerem parte do mesmo
aplicativo, a função desempenhada por cada gerenciador é bem definida. O gerenciador do AS/RS
deve comandar as ações de entrada de pallet contendo matéria-prima ou peças, armazenamento dos
pallets, condução de peças para os berços de usinagem, retorno das peças dos berços de usinagem e
material nos pallets e a colocação dos mesmos na esteira de entrada. Esta tarefa também pode ser
realizada por um AGV (Veículo Auto-Guiado), inclusive o aplicativo do armazém prevê esta
condição, porém ele não será utilizado porque o laboratório não conta com este recurso. Ao realizar a
entrada de uma matéria-prima no armazém, o operador necessita informar um código, referente ao tipo
de material a ser armazenado. Estes códigos são previamente cadastrados no banco de dados do
gerenciador, assim como o código de usinagem, que precisa de uma matéria-prima correspondente e
108
uma mesa de usinagem pré-determinada. O banco de dados utilizado é o Access 2003, da Microsoft. A
A peça descrita como “Cilindro de Alumínio” foi cadastrada no BD do armazém com o código
“MP001”, na tabela de “Cadastro de Peças”. Ela será a matéria-prima para fabricação do produto
“CBR” (cavalo branco), que utilizará a mesa1 dos berços de usinagem, conforme a tabela “Cadastro de
Processos”. Todas as peças brancas do jogo de xadrez serão produzidas a partir da matéria-prima
“MP001” Já as peças pretas serão feitas da matéria-prima “MP002”. Sempre que houver um acréscimo
na família de peças que a célula irá fabricar, será necessário atualizar os cadastros de peças e
processos.
Para solicitar a fabricação de uma peça o usuário da célula deve inserir o código da peça
pronta (CBR, por exemplo), indicar quantas unidades da peça serão produzidas, para onde será
conduzida a peça após o retorno da usinagem e a prioridade da operação (normal ou urgente). A figura
5.31 mostra a tela de movimentação e um pedido de fabricação na célula. A tabela 5.21 fornece a
relação de peças cadastradas para a célula, suas respectivas matérias-primas e mesas de usinagem,
109
Tabela 5.21. Relação de código de peças
ProgUsinagem Matéria-prima Mesa CNC
PBR MP001 1 Torno
PPR MP002 1 Torno
TBR MP001 2 Fresadora
TPR MP002 2 Fresadora
CBR MP001 1 Fresadora
CPR MP002 1 Fresadora
BBR MP001 2 Torno
BPR MP002 2 Torno
DBR MP001 1 Torno
Figura 5.31. Tela de solicitação de usinagem. DPR MP002 1 Torno
RBR MP001 2 Fresadora
RPR MP002 2 Fresadora
M1R1 MP001 1 CNC R1
M2R1 MP002 2 CNC R2
A tag MovPeca, do gerenciador do armazém, está associada a um objeto tipo Setpoint onde o
usuário digita o código da peça a ser usinada. No momento em que o usuário aperta a tecla
“Confirmar”, o conteúdo da tag MovPeca é copiado para várias tabelas do Banco de Dados. Quando a
tarefa for executada, e o pallet chegar a uma das mesas dos berços de usinagem, a tag ProgUsinagem é
carregada com o valor da tag MovPeca, através de uma leitura do BD. A caixa “Saída” seleciona,
indica que o pallet será conduzido ao berço de saída, e não às prateleiras de armazenagem, ao fim do
processo de usinagem. Utilizando como exemplo a solicitação apresentada na figura 5.31, temos que,
para produzir uma peça do cavalo branco (CBR), utiliza-se a matéria-prima MP001. O pallet será
levado pelo armazém até a mesa1 e o robô conduzirá a peça até a fresadora. A figura 5.32 mostra o
script associado à tag presença_mesa1 (acionada pelo evento da chegada do pallet na mesa1),
associada ao evento OnValueChanged. Este script atualiza a tag ProgUsinagem que será lida por todos
os equipamentos da célula via padrão de comunicação OPC. Decorrente da leitura desta tag, o
gerenciador do robô carregará o programa de movimentação m1f1 (da mesa1 para a fresadora1) e a
110
Figura 5.32. Script associado à tag presença_mesa1
utilizada pelo gerenciador do armazém para seqüenciar a lista de tarefas de usinagem. O usuário do
sistema pode solicitar vários pedidos de usinagem ao mesmo tempo. Cada solicitação será inserida na
lista de tarefas da tabela. O artifício de atualizar a tag ProgUsinagem, a partir da tabela de usinagem,
permite sincronizar a movimentação do robô e a carga do programa nos CNCs com a chegada do
pallet contendo a matéria-prima nas mesas de usinagem. A tag código_retorno_M1 recebe um valor
numérico que indica de qual equipamento CNC a peça retornará para a mesa1 e em que fase do
processo a peça se encontra. O primeiro dígito indica o CNC que está processando o pedido (torno=1,
fresadora=2 e CNC R1=3). Se o segundo dígito for igual a zero, significa que a peça está sendo
carregada no CNC. No exemplo adotado, se a tag ProgUsinagem for igual a CBR, então a tag
código_retorno_M1=20 (peça está sendo carregada na fresadora). Se o segundo dígito estiver ausente,
significa que o processo de usinagem foi iniciado ou que o robô já está em movimento para devolver a
peça ao pallet da mesa1. Após a atualização da tag ProgUsinagem, ocasionada pela chegada do pallet
111
na mesa1, o robô executa o programa m1f1 e conduz a matéria-prima até a fresadora para fabricação
do cavalo branco. Quando a usinagem da peça for iniciada, a tag ProgUsinagem deve imediatamente
ser atualizada, sob risco do programa de movimentação do robô repetir a solicitação inicial. Para
cumprir esta função, utiliza-se o fechamento da porta da fresadora (que inicia o ciclo de usinagem)
para atualizar a tag ProgUsinagem. Desta forma, quando o robô retornar para Phome, ele estará apto a
executar uma nova solicitação de movimentação. A figura 5.33 apresenta as tags envolvidas e o script
responsável pela indicação de que a fresadora foi carregada com sucesso e iniciou o ciclo de usinagem.
Figura 5.33. Script para atualização da tag ProgUsinagem após o início da usinagem.
O script, que é disparado pelo evento OnValueChanged, monitora cada mudança de valor na
tag que agrupa os estados da fresadora. Sempre que houver uma mudança na tag, o script verifica se a
112
castanha está fechada (Fresa_Morsa=1). Bastaria monitorar a condição da porta somente, mas optou-se
pela redundância para aumentar o nível de segurança do sistema. Satisfeita a condição inicial, o script
verifica se o código de retorno da peça é da fresadora para a mesa1, ou para a mesa2, para então
codigo_retorno_M1 ou codigo_retorno_M2 (de 20 para 2). Esta mudança, apontada pelo código de
retorno, indica que a peça iniciou o processo de usinagem. Se, paralelamente houver outra solicitação
de usinagem em curso, para o torno ou para o CNC R1, o script preserva o conteúdo da tag
ProgUsinagem.
usinagem, é uma atribuição do gerenciador do robô e foi descrito no item 5.4.4. Quando o robô
depositar a peça já usinada de volta no pallet correspondente (por exemplo, o da mesa1), a tag
codigo_retorno_M1 deve ser zerada, indicando o fim do processo de descarga e o início do retorno do
pallet ao armazém. Este procedimento é executado por um script OnValueChanged associado à tag
informações dos demais gerenciadores, conforme definido pelas interfaces. A figura 5.34 mostra a
estrutura dos servidores OPC no organizer do aplicativo e uma das telas do gerenciador FMC.
Figura 5.34. Estruturas dos servidores OPC e uma tela do gerenciador FMC
113
A tela “Gerenciador” tem a função de oferecer ao usuário do sistema um resumo dos estados
dos recursos da célula. As informações dos equipamentos CNC, do robô e do gerenciador remoto são
coletadas dos servidores OPC. Já as do armazém estão diretamente ligadas às tags do gerenciador do
AS/RS. As tags OPC são decompostas através de scripts e organizadas em um grupo de tags (Pulgus),
que contém os seguintes grupos de tag secundários: Auxiliares, CNCR1, Fresadora, Robô e Torno. A
figura 5.35 mostra os detalhes da estrutura das tags decompostas dos diversos servidores OPC e
utilizadas pelos gerenciadores FMC e do armazém. A figura também apresenta a tela principal do
Figura 5.35. Estrutura desmembrada das tags OPC e tela principal do aplicativo.
A função do gerenciador remoto é permitir que um usuário remoto possa inserir seu pedido de
fabricação de peças na célula (no gerenciador FMC). É necessário que este usuário se encontre dentro
da rede local de comunicação. A conexão entre o gerenciador remoto e a FMC é feita via padrão de
comunicação OPC.
114
A definição das mínimas interfaces necessárias para o gerenciador remoto é apresentada pela
figura 5.36.
A transformação das interfaces em tags, que serão utilizadas para construção do aplicativo no
figura 5.37 apresenta a estrutura das tags no organizer e a interface com o usuário.
115
Figura 5.37. Estrutura das tags do gerenciador remoto e interface com usuário.
Na tela da interface o usuário remoto digita o código e o número de peças desejadas. Dois
objetos tipo Setpoint associados às tags RemotoPeca e RemotoUnit registram a solicitação. O código
da peça solicitada deve constar no cadastro de peças do gerenciador FMC. Caso a peça não esteja
cadastrada, o usuário receberá uma mensagem negando o pedido de fabricação. Estas tags estão
através do padrão de comunicação OPC e o uso de script de programação. Após inserir o pedido o
usuário pressiona o botão “ENVIAR PEDIDO”. Este botão está associado à tag RemotoReq, que por
sua vez disparará a confirmação do pedido de usinagem no gerenciador FMC. O script responsável
pela ação se encontra no Apêndice D desta dissertação. Em conjunto com a confirmação do pedido, o
gerenciador remoto também fornece ao gerenciador FMC a informação da identidade do usuário que
está requisitando a fabricação. O nome do usuário (tag RemotoUser) é atualizado quando o mesmo se
autentica no gerenciador remoto por meio de senha. A identidade do usuário será registrada no BD do
gerenciador FMC, atrelado ao pedido de fabricação. A figura 5.38 mostra o cadastro de usuários no
116
Figura 5.38. Cadastro de usuários e autenticação da aplicação.
O usuário remoto não tem a opção de solicitar prioridade para fabricação de peças, seus
conexão do usuário remoto foi limitado a 180 segundos (este tempo é configurável) para que o mesmo
de outro usuário remoto. Sempre que um usuário remoto entra no sistema, seu status ativo é sinalizado
são informados ao usuário remoto, assim como mensagens que confirmam a inserção dos pedidos de
fabricação na célula.
A união dos gerenciadores dos recursos produtivos da célula, com o gerenciador FMC e o
gerenciador remoto permite a formação de uma Célula Flexível de Manufatura. A figura 5.39
117
Figura 5.39. Arquitetura das conexões na célula e recursos de software.
Todos os gerenciadores estão conectados por meio de uma rede de comunicação local
Ethernet. Cada gerenciador desempenha o papel de servidor e cliente OPC ao mesmo tempo. Quando
um aplicativo fornece informações para outros gerenciadores, ele é um servidor OPC, já quando ele
Diversas versões do sistema operacional Windows foram utilizadas nos gerenciadores (NT,
2000, XP-HOME e XP-SP2) que rodavam em diversos computadores, com hardwares variando desde
Pentium 200 MMX até P4 2.8 MHz. Todos os computadores contam com placas de rede padrão
Ethernet e, aqueles que se comunicam com CLPs, com pelo menos uma porta serial RS232; exceção
feita ao gerenciador FMC/armazém que possui duas portas seriais (uma utilizada para comunicação
com o CLP Moeller master e outra com os scanners de leitura do código de barra dos pallets). O
controlador do robô possui um cartão de rede Profibus, modelo DSQC 352, utilizado para
118
5.8 FUNCIONAMENTO DA CÉLULA
Após a integração dos gerenciadores, a célula está apta a produzir as peças previamente
ativa e todos os equipamentos e CLPs da célula com seus programas carregados e ativos.
realiza o cadastro de peças e processos, efetua a entrada e saída de matéria-prima no AS/RS e solicita a
realizado por meio de senha, por razões de segurança. O gerenciador FMC/armazém também permite
estados dos recursos produtivos da célula, emitir relatórios sobre peças produzidas e estocadas e
gerenciador. Neste caso, o CLP utilizado para integrar o gerenciador com os equipamentos deveria
contar com portas de entrada e saída suficientes para processar todos os sinais necessários.
O gerenciador remoto é o único dos gerenciadores que não necessita estar ativo durante todo o
tempo de funcionamento da célula. Quando o usuário remoto desejar inserir um pedido de fabricação
de peças, ele inicia o aplicativo mediante autenticação de senha. O gerenciador localiza e se conecta
A limitação da família de peças que a célula pode fabricar é dada pela conjugação de diversos
formato da garra, além da capacidade de carga total do robô (10 kg); as dimensões dos dispositivos de
conforme previsto na modelagem da célula baseada em RdPI. Para validar a experiência, simulou-se a
fabricação de todas as peças cadastradas no BD do gerenciador, o que ocorreu com sucesso. O torno é
o único equipamento CNC da célula capacitado a produzir efetivamente, já que o centro de usinagem
não conta com nenhum dispositivo de fixação automático e o CNC R1 é um equipamento virtual. Um
119
único programa de usinagem foi utilizado no torno para a simulação da fabricação das peças. Este
A movimentação das peças a partir das mesas de usinagem até os equipamentos CNC é um
dos pontos críticos do sistema, pois exige grande precisão posicional das peças no pallet e estabilidade
dos equipamentos CNC também requer uma apreciação minuciosa, pois dependendo das dimensões e
da geometria final da peça, pode ocorrer que a garra do robô não consiga prender de forma satisfatória
a peça processada.
Foram utilizados dois tipos de CLPs (Moeller e Siemens) para efetuar a integração dos
gerenciadores com os equipamentos CNC e com o robô. Outras marcas de CLPs podem ser utilizados
para cumprir a mesma função, desde que apresentem um número suficiente de I/Os (Inputs/Outputs).
O robô ABB, modelo IRB 2400/10, de seis graus de liberdade, foi dotado de uma garra para
versa. Qualquer outro tipo de robô pode ser usado na integração da célula, contanto que seu espaço de
trabalho alcance as mesas dos berços de usinagem do armazém e o interior dos equipamentos CNC;
que o mesmo esteja dotado de uma ferramenta (garra) apropriada para manipulação e transporte dos
necessárias compreendem a automatização das portas e dos dispositivos de fixação (morsa, pinça,
castanha, etc.) e da reserva de um conjunto de memórias internas para indicação de carga dos
programas de usinagem. Outras marcas e modelos de CNCs podem ser utilizados na FMC, desde que
equipamentos.
A inclusão de um novo equipamento CNC na célula seria feita de forma bastante simples. Não
é necessário realizar uma nova modelagem da célula, basta construir um novo gerenciador semelhante
aos gerenciadores do torno, fresadora e CNC R1. Também devem ser gerados os programas de
movimentação do robô para o novo CNC e alterados os scripts de programação associados às tags
OPC.
120
No caso da inclusão de um sistema de medição, que poderia ser um micrômetro laser ou um
sistema de medição por visão, seria necessário definir um conjunto de interfaces para a construção do
novo gerenciador. Neste caso também não seria necessário modelar novamente a célula. A
movimentação do robô, efetuando o descarregamento dos equipamentos CNC, seria alterada para levar
inicialmente a peça até o sistema de medição. Caso a peça fosse aprovada, o robô completaria o
movimento de retorno da peça ao pallet da mesa de usinagem. Em caso de rejeição, o robô conduziria
possibilidade do uso da FMC via Internet. Esta proposta foi temporariamente abandonada em razão de
que o módulo de operação do software Elipse SCADA via Internet permite apenas monitorar o
processo, e não interagir com ele. Um novo gerenciador poderia ser construído, numa eventual
continuidade do projeto, com o software Elipse E3, que possui um módulo web para operações via
Internet que interage com o processo, e é compatível com os aplicativos desenvolvidos no Elipse
SCADA.
Diversas fotos da FMC, além de um filme que mostra os principais eventos na simulação da
121
6. CONCLUSÕES, CONTRIBUIÇÕES E TRABALHOS FUTUROS
do projeto de pesquisa.
6.1. CONCLUSÕES
A relevância atual da manufatura flexível pode ser mensurada pela quantidade significativa de
instituições de ensino estão instalando laboratórios na área da manufatura integrada por computador,
uma proposta que não é recente, porém com implementação complexa e cara. Normalmente são duas
as soluções adotadas para a implantação destes laboratórios: a compra de soluções prontas, onde não
transporte e processamento) fornecido por diferentes fabricantes, para a formação de uma FMC ou
FMS. Neste caso, todo o processo de integração deve ser construído, desde a modelagem até o sistema
de controle, passando pela programação de CNCs, CLPs, robôs, alterações de hardware dos
para a integração dos diferentes equipamentos. A modelagem da célula em rede de Petri Interpretada
software Elipse SCADA. As ações decorrentes do disparo das transições, definidas na modelagem,
122
instruções e procedimentos para a construção de uma FMC. Há na literatura técnica uma grande
domínio destas tecnologias guardam a “sete chaves” seus segredos industriais, pois eles representam
desenvolvimento do projeto de pesquisa, várias foram as vezes em que foi necessário contatar os
fabricantes dos equipamentos para dirimir dúvidas, ou complementar alguma informação técnica
essencial para o projeto. Raras foram as vezes em que os fabricantes forneceram algum tipo de
informação válida, antes, o comportamento comum foi tentar vender a informação solicitada. Os
manuais técnicos que acompanham os equipamentos também apresentam grandes deficiências, pois
via de regra eles podem ser considerados apenas como manuais operacionais. Como exemplo deste
caso, pode-se mencionar o caso do torno CNC da Feeler que utiliza internamente um conjunto de
CLP/CNC da Mitsubishi. Os manuais que acompanham o torno não contêm nenhuma informação
técnica mais profunda a respeito do CLP/CNC da Mitsubishi. Neste caso foi necessário adquirir os
projeto de pesquisa.
Em razão das dificuldades do acesso às informações técnicas sobre equipamentos, e sendo fiel
à pergunta de pesquisa inicialmente formulada (Como integrar de forma física e lógica os diversos
expansível...?), esta dissertação também apresenta de forma detalhada todos os aspectos de engenharia
envolvidos no projeto de pesquisa. Estes aspectos técnicos se estendem a detalhes de hardware dos
O anexo em CD-ROM traz informações técnicas adicionais, na forma de tabelas, listas, figuras,
equipamentos CNC da Feeler e os CLPs Moeller e Siemens. Sem estas informações técnicas
detalhadas, a aplicação prática das diretrizes propostas pode ser comprometida, justamente pela
utilizado em diversas disciplinas dos cursos de graduação e pós-graduação. A filosofia utilizada para a
os diversos gerenciadores sendo realizada via OPC, resulta em um sistema aberto, modular e
123
expansível. Melhorias e modificações poderão ser realizadas no futuro por trabalhos de conclusão de
6.2. CONTRIBUIÇÕES
A maior contribuição deste projeto de pesquisa é oferecer uma diretriz para construção de uma
FMC, a partir da integração física e lógica de equipamentos heterogêneos. O roteiro desta proposta
utilizando CLPs, e a integração dos gerenciadores por meio do padrão de comunicação industrial OPC.
¾ Construção dos gerenciadores dos equipamentos CNC: foram construídos três gerenciadores
(torno, fresadora e CNC R1), que cumprem a função de controlar e integrar os CNCs à célula
e servir de interface gráfica com o usuário, fornecendo informações a respeito dos principais
¾ Construção do gerenciador do robô: controla e integra o robô na FMC, além de fornecer uma
estados do robô.
processos no banco de dados, além de servir como interface com o usuário da célula,
permitindo que sejam inseridos pedidos de fabricação. O gerenciador remoto permite que um
usuário, que se encontra dentro da rede, também possa inserir seus pedidos de fabricação.
124
do CLP master, foram minimizados ou resolvidos, mediante a construção do gerenciador do
armazém.
CLP do robô, um Mitsubishi Meldas 50. Novos programas de CLP foram escritos, enquanto
RAPID. A conexão entre o CLP Siemens e as I/Os digitais do robô utiliza o padrão Profibus,
fato que abre a possibilidade futura de conexão direta entre o gerenciador e o robô utilizando
este padrão, já que o laboratório conta com um computador equipado com uma placa de rede
padrão Profibus.
as tags, configurações, parâmetros e scripts; além dos programas dos CLPs e do robô. Os
máquinas CNC. Porém, pode-se afirmar que, diante do potencial do laboratório e da importância do
tema, apenas o primeiro passo foi dado. Há muitos aspectos que podem ser melhorados, e outros que
devem ser construídos, para avançar no sentido apontado pela filosofia CIM. Algumas considerações
¾ Implementar uma morsa hidráulica no centro de usinagem CNC, para possibilitar sua total
125
fixar automaticamente as peças fornecidas pelo robô. Por enquanto, a usinagem destas peças
¾ Um novo gerenciador FMC deve ser construído, utilizando o supervisório Elipse E3, que
Elipse SCADA, além de possibilitar e a operação remota da FMC via Internet. O software
Elipse SCADA possui um módulo de operação através da Internet, porém este não permite
interagir com o processo, mas apenas monitorá-lo. O novo gerenciador da FMC deverá ser
¾ O desenho atual do pallet permite o transporte de apenas uma peça. Um novo modelo deve ser
desenvolvido, com maior estabilidade dimensional e capacidade de carga de várias peças. Esta
¾ Construção de uma garra angular para o robô. A garra utilizada atualmente apresenta
problemas para transportar peças cilíndricas com estabilidade. Já existe um projeto (mostrado
¾ Implantação de um sistema de medição das peças produzidas, para controle de qualidade. Este
sistema pode ser composto por um micrômetro laser ou um sistema de reconhecimento por
visão;
na memória dos CNCs. Com a transferência direta, a célula ganha em flexibilidade, pois novas
instalar antecipadamente os programas nos CNCs. Este item foi testado, porém não chegou a
gerenciador dos equipamentos CNC foram desenvolvidos e testados com sucesso, porém este
126
REFERÊNCIAS BIBLIOGRÁFICAS
ALVES, Raul; NORMEY-RICO, Júlio E; MERINO, Alejandro; PRADA, César de. Un SCADA via
OPC aplicado a una planta piloto. 2º Congresso Brasileiro de P&D em Petróleo & Gás. Rio de
Janeiro, 2003.
CARDOSO, Janette; VALETTE, R. Redes de Petri. Editora da UFSC, Florianópolis, 1997, 212 p.
CERVO, Amado Luiz; BERVIAN, Pedro Alcino. Metodologia científica. 3ª edição, McGraw-Hill do
Brasil, São Paulo, 1983.
127
CHASE, Richard B.; AQUILANO, Nicholas J.; JACOBS, F. Robert. Administración de producción
y operaciones. Manufactura y servicios. Irwin Mc Graw-Hill, Madrid, 2000.
CHAVES, Charles da Silva; ALBANO, Sidnei José. Implantação de comunicação via rede
Profibus entre PC e robô. Monografia. IST, 2006.
COINBRA, Bernhar Gobbi Rocha; BARBOSA, Henrique Damiani Santana; SOUZA JÚNIOR, José
Leonardo Neves de. Construção de um sistema de produção flexível. Monografia.Universidade
Católica de Goiás, 2004.
COSTA, Luis Sergio Salles; CAULLIRAUX, Heitor M. Manufatura integrada por computador:
estratégia, organização, tecnologia e recursos humanos. Editora Campus, SENAI, COPPE/UFRJ,
Rio de Janeiro, 1995, 450p.
CURY, José Eduardo Ribeiro. Teoria de Controle Supervisório de Sistemas a Eventos Discretos. V
Simpósio Brasileiro de Automação Inteligente. Apostila, DAS, UFSC, 2001.
DANEELS, Alex; SALTER, Wayne. What is SCADA? CERN - European Organization for Nuclear
Research, CNL-2000-003, Vol. XXXV, issue no 3.
DE NEGRI, Victor Juliano. Introdução aos Sistemas para Automação e Controle Industrial.
Apostila, LASHIP, EMC, UFSC, Florianópolis, 2004.
ELIPSE SCADA. Manual do Usuário, HMI/Scada Software, Versão 2.28, 2006, 351 p.
FAYET, Eduardo Alves. Sistemas Logísticos Integrados: um rol de critérios para análise.
Dissertação de mestrado, UFSC, Florianópolis, 2002.
FEELER. Manual elétrico para CNC com controle Meldas M50 para torno FTC-10. Manual
fornecido pelo fabricante.
128
FERREIRA, João Carlos Espíndola. Integração de uma Célula Flexível de Manufatura e seu uso
na Fabricação Local e Remota de Peças. Florianópolis, 2001. Projeto Integrado de Pesquisa –
Departamento de Engenharia Mecânica da UFSC.
FERREIRA, João Carlos Espíndola. Planejamento do processo assistido por computador (CAPP).
Apostila, GRIMA/GRUCON/UFSC, Florianópolis, 2005.
FERREIRA, João Carlos Espíndola; SANTOS, Marcelo Teixeira dos; SCHIRMER, Léo; et al. Um
Método para a Fabricação de Peças à Distância via Internet num Sistema Flexível de
Manufatura - FMS. In: revista do IST, Joinville, ano 3, no04, p. 25-30. Outubro de 2003 (a).
FERREIRA, João Carlos Espíndola; SANTOS, Marcelo Teixeira dos; ÁLVARES, Alberto José; et al.
A Procedure For Integrating Automated Equipment In A Flexible Manufacturing System And
Their Use For The Remote Manufacture Of Parts Through The Internet. Anais do COBEM,
2003 (b).
129
GUSTIN, Gladys Deifan Bastidas. Aplicação de Redes de Petri Interpretadas na Modelagem de
Sistemas de Elevadores em Edifícios Inteligentes. Dissertação de Mestrado, Escola Politécnica da
Universidade de São Paulo, 1999.
HAAS, Fernando; DETTRUZ, Giovanni. Integração de um torno CNC para a formação de uma
Célula Flexível de Manufatura. Monografia. IST, 2004.
HILLER, Diogo. Configurando o Windows XP Service Pack 2 para aplicações Elipse. Artigo
atualizado em 08/09/2004, disponível em <http://www.elipse.com.br/elipse /artigos.aspx>. Acesso em
23/01/2006.
LINO, Rui; GOMES, Luis. Detecção de falhas de sensores em sistemas de automação utilizando
Redes de Petri. 3ª Jornada de Engenharia de Electrônica e Telecomunicações e de Computadores,
Lisboa, 2005
MAcCARTHY, B.L. e LIU, J. A new classification scheme for flexible manufacturing Systems,
International Journal of Production Research, 31(2), 299-309, 1993.
MACIEL, Paulo Henrique Soares. Elipse SCADA como cliente OPC. Artigo atualizado em
24/01/2005, disponível em <http://www.elipse.com.br/elipse/artigos.aspx>. Acesso em 25/01/2006.
130
MARTINS, Petrônio Garcia; LAUGENI, Fernando Piero. Administração da produção. Editora
Saraiva, São Paulo, 1998.
MUŠIČ, G; MATKO, D. Petri net based supervisory control of flexible batch plants. 8th
IFAC/IFORS/IMACS/IFIP Symposium on Large Scale System, Greece, Vol.2, pp. 989-994, 1998.
ORTIZ, Luis E. C.; LIMA, Antonio M. A.; MUZZI JUNIOR, José J. Alternativas brasileiras para
viabilização de FMS – Tendências e problemas. In: Revista A&C, Março 1991, p. 15-20 e Abril
1991, p.23-26.
131
PINA, Israel Benítez; VILCHEZ, José Ruben Sicchar; SANSONE, José Luiz; DEL RIO, Daniel
Guzman. Modelagem de automação de Sistemas Flexíveis de Manufatura com PN GHENESYS
IEC61131 compatível. Anais do Congresso Brasileiro de Automática – CBA 2006.
PIRES, Paulo Sérgio Motta; OLIVEIRA, Luiz Affonso H. Guedes de; BARROS, Diogo Nascimento.
Aspectos de segurança em sistemas SCADA – Uma visão geral. 4º Congresso Internacional de
Automação, Sistemas e Instrumentação. In: Controle & Instrumentação, Maio de 2005, p.112-119.
PROFIBUS. Descrição Técnica do Process FieldBus. São Paulo, Associação Profibus Brasil,
Outubro 2000.
QUEIROZ, Max H. de; CURY, José Eduardo Ribeiro. Controle Supervisório modular de sistemas
de manufatura. In: Controle & Automação vol.13, n2, p. 123-133, Maio/Agosto 2002.
RIBEIRO, Hélder; ELVAS, Ricardo. Supervisão de Sistemas de Automação com aplicação a uma
Célula de Fabricação Flexível. Monografia. Universidade Técnica de Lisboa, 2004.
SAVARIS, Charles Edsom; POSSAMAI, Osmar. Modelo para identificação dos recursos que
limitam a flexibilidade da manufatura. Anais do 3º COBEF, Joinville, 2005.
132
SEGURA, Ricardo Bonfim; MIELLI, Fábio Marcelus. O Ethernet TCP/IP Modbus. In: Controle &
Instrumentação, Outubro 2005, p. 117-120.
SEIXAS FILHO, Constantino. A produção em foco. In: Scantech News, Rio de Janeiro, Setembro
1999, p. 26-30.
SIEMENS. Simatic Net DPC1 Programming Interface. Manual fornecido pelo fabricante.
SILVA, Ana Paula da; SALVADOR, Marcelo. O que são sistemas Supervisórios? Artigo atualizado
em 20/12/2005, disponível em: <http://www.elipse.com.br/elipse/artigos.aspx>. Acesso em
17/01/2006.
SILVA, Edna Lúcia da; MENEZES, Estera Muszkat. Metodologia da pesquisa e elaboração da
dissertação. 4ª edição revisada e atualizada, Florianópolis, UFSC, 2005.
TEIXEIRA, Evandro Leonardo S.; CANO, Carlos E. Villanueva; ÁLVARES, Alberto J. Modeling
and implementation of a flexible manufacturing cell (FMC). Anais do COBEM, Ouro Preto, 2005.
133
VARELA, César E.; ACOSTA, José E.; SASTRÓN, Francisco. Modelo orientado a objetos del
género equipo para su integración en sistemas de manufactura. Instituto Tecnológico de
Chihuahua, México. In: Electro 2001, p. 315-320.
WONHAM, W.; RAMADGE, P. The control of discrete event system. Proceeding of the IEEE
77(1):81-98, 1989.
134
APÊNDICE
135
A2. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com o torno
136
A4. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com a fresadora
137
A6. Redes de Petri Interpretadas da integração da mesa2 do AS/RS com o CNC R1
A7. Redes de Petri Interpretadas da integração das mesas do AS/RS com o torno
138
A8. Redes de Petri Interpretadas da integração do torno com a mesa1 do AS/RS
139
A10. Redes de Petri Interpretadas da integração das mesas do AS/RS com a fresadora
140
A11. Redes de Petri Interpretadas da integração da fresadora com a mesa1 do AS/RS
141
A13. Redes de Petri Interpretadas da integração das mesas do AS/RS com o CNC R1
142
A14. Redes de Petri Interpretadas da integração do CNC R1 com a mesa 1 do AS/RS
143
APÊNDICE B – DIAGRAMAS ELÉTRICOS MODIFICADOS NO TORNO
X24
-k11.6
-k11.3 (CLP MOELLER
-S1/D6 -S2/D6 (CLP MOELLER Q0.4//RL1)
Q0.3//RL8)
DC24V
MEMOR COOLAN GERENC. TORNO. GERENC. TORNO
AUT CARGA ROBÔ EM ÁREA
PROGRAMA SEGURA
(OPCIONAL)
DC24V
REFERENCE REFERENCE DOO GEREN. TORNO QUILL FOOT FEEDER
INTER ABRIR/FECHAR ALAR
SWITCH SWITCH LOC CASTANHA (OPTION) (OPTION)
144
X26 X25 X08 X2F X31
XDI-L-B: XDI-R-B: XDI-L-B: XDI-R-B: XDI-R-A: XDI-L-B:
DC24V
LUBE HYD COOLAN GERENC. TORNO GERENC. TORNO GERENC. TORNO
ALAR PRES ALAR SELEÇÃO DE SELEÇÃO DE SELEÇÃO DE
ALAR PROGRAMA-BIT 0 PROGRAMA-BIT 1 PROGRAMA-BIT 2
V39610002
DC24V
X-AXIS AUTO PORTA COOLANT PROGRAM CASTANHA
FREE LUBE ABERTA STOP FECHADA
RELAY MOTOR RELAY
145
1 2 3 4 5 6 7 8
A A
NC
C
C
COM
DC24V
DC 24V
RESERVA FECHAR ABRIR RESERVA CASTANHA TORNO
E PORTA PORTA ABERTA=0 E
FECHADA=1 OUT=0
V39610002
DC24V
RESERVA PORTA PORTA RESERVA RESERVA RESERVA
FECHADA ABERTA
AUTO QUILL QUILL
M30/M97
POWER OUT IN
CONUNT
OFF RELAY RELAY
RELAY
146
APÊNDICE C – PROGRAMAÇÃO DO ROBÔ
147
C3. Fluxograma dos programas de movimentação do robô
148
C4. Programas do robô
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE HUGO
CONST robtarget p18:=[[606.62,-462.36,1011.12],[0.010666,0.579894,0.814622,-0.00032],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget
p17:=[[762.01,32.87,1011.12],[0.010124,0.26815,0.963319,0.003318],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E
+09,9E+09]];
CONST robtarget p19:=[[-804.01,833.68,957.32],[0.009193,0.892006,-0.45169,-
0.014751],[1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p16:=[[534.43,544.17,1011.12],[0.008169,-
0.103929,0.994528,0.006807],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p20:=[[946.5,724.06,1010.96],[0.008553,-
0.028575,0.999536,0.006257],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p15:=[[-1178.18,185.54,763.9],[0.013379,0.989011,-0.146823,-
0.011068],[1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p14:=[[-1178.14,185.5,957.23],[0.013381,0.989007,-0.146849,-
0.01109],[1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p13:=[[-973.97,185.5,957.29],[0.013372,0.989007,-0.146849,-
0.011089],[1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p12:=[[37.87,-1241.24,840.09],[0.009979,0.817031,0.576495,-0.003878],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p11:=[[37.91,-1241.2,1013.62],[0.009953,0.817045,0.576475,-0.003867],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p10:=[[33.09,-643.98,1013.41],[0.009941,0.819173,0.573448,-0.00391],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p9:=[[-152.62,1102.47,1287.64],[0.007688,-0.712373,0.701718,0.007661],[1,-
1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p8:=[[-152.67,1148.05,957.37],[0.007771,-0.712373,0.701716,0.007652],[1,-
1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p7:=[[-152.67,1148,827.39],[0.007788,-0.712377,0.701713,0.007638],[1,-
1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p6:=[[1162.06,-23.74,650.85],[0.698281,0.160342,0.68203,0.146729],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p5:=[[845.68,-20.14,1097.61],[0.685335,0.210388,0.66851,0.197859],[-
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget
p4:=[[1167.28,46.67,650.74],[0.695076,0.145843,0.685331,0.161001],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E
+09,9E+09]];
CONST robtarget p3:=[[210.43,1156.81,783.2],[0.007852,-0.707042,0.707087,0.007657],[0,0,-
1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p2:=[[210.41,1153.81,943.03],[0.007773,-0.707015,0.707116,0.007618],[0,0,-
1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p1:=[[210.47,1098.33,1275.66],[0.007724,-0.707031,0.707099,0.00761],[0,0,-
1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST jointtarget jposhome:=[[90,-30,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
149
MoveJ p16,v200,fine,tool0; ! envia sinal ao AS/AR para retorno do palete mesa1
MoveL p5,v200,fine,tool0; Set DO10_4;
! espera sinal de confirmação da porta do torno aberta MoveJ p1,v200,z80,tool0;
WaitDI DI10_3,1; MoveAbsJ jposhome,v200,z80,tool0;
! espera sinal de confirmação da castanha aberta ! envia sinal de robô em Phome
WaitDI DI10_2,0; Set DO10_1;
MoveL p6,v200,fine,tool0; ! aguarda confirmação do AS/AR de retorno da M1
MoveL p4,v80,fine,tool0; WaitDI DI10_7,0;
! envia sinal para fechar a castanha (pulso) ! encerra pulso para retorno da M1
Set DO10_2; Reset DO10_4;
! espera sinal de castanha fechada ENDIF
WaitDI DI10_2,1; ENDPROC
! encerra pulso para fechar a castanha
Reset DO10_2; PROC m2t1()
! abre a garra para deixar a peça no torno ! Verifica se o torno está OK
Reset DO11_8; IF DI10_1=1 THEN
WaitTime 1; ! inicio do programa mesa2-torno1
MoveL p6,v200,fine,tool0; MoveAbsJ jposhome,v200,z80,tool0;
MoveL p5,v200,fine,tool0; SingArea\Wrist;
! envia sinal de robô em área segura MoveL p9,v200,z100,tool0;
Set DO10_6; ! informa que robô está fora de Phome
MoveAbsJ jposhome,v200,z80,tool0; Reset DO10_1;
! envia sinal de robô em Phome MoveL p8,v200,z100,tool0;
Set DO10_1; ! informa que robô está fora de Área Segura
ENDIF Reset DO10_6;
ENDPROC MoveJ p7,v100,fine,tool0;
WaitTime 1;
PROC t1m1() ! fecha a garra para pegar a peça no palete 2
!Verifica se o torno está OK Set DO11_8;
IF DI10_1=1 THEN WaitTime 1;
! inicio do programa torno1-mesa1 MoveL p8,v200,fine,tool0;
! espera sinal de porta aberta MoveJ p2,v200,z80,tool0;
WaitDI DI10_3,1; MoveJ p16,v200,fine,tool0;
SingArea\Wrist; SingArea\Wrist;
MoveJ p16,v200,z100,tool0; MoveL p5,v200,fine,tool0;
! informa que robô está fora de Phome ! espera sinal de confirmacao de porta aberta do torno
Reset DO10_1; WaitDI DI10_3,1;
MoveL p5,v200,fine,tool0; ! espera sinal de confirmação da castanha aberta
! informa que robô está fora de Área Segura WaitDI DI10_2,0;
Reset DO10_6; MoveL p6,v200,fine,tool0;
MoveL p6,v200,fine,tool0; MoveL p4,v80,fine,tool0;
MoveL p4,v80,fine,tool0; ! envia pulso para fechar a castanha
WaitTime 1; Set DO10_2;
! fecha a garra para pegar peça ! espera confirmação de castanha fechada
Set DO11_8; WaitDI DI10_2,1;
WaitTime 1; ! encerra pulso para fechar a castanha
! envia pulso para abrir castanha Reset DO10_2;
Set DO10_2; ! abre a garra para deixar a peça no torno
! espera sinal de castanha aberta Reset DO11_8;
WaitDI DI10_2,0; WaitTime 1;
! encerra pulso para fechar a castanha MoveL p6,v200,fine,tool0;
Reset DO10_2; MoveL p5,v200,fine,tool0;
MoveL p6,v200,fine,tool0; ! indica robô em área segura
MoveL p5,v200,fine,tool0; Set DO10_6;
! envia sinal de robô em área segura MoveAbsJ jposhome,v200,z80,tool0;
Set DO10_6; ! envia sinal de robô em Phome
MoveJ p16,v200,z100,tool0; Set DO10_1;
MoveJ p2,v200,z100,tool0; ENDIF
MoveL p3,v100,fine,tool0; ENDPROC
WaitTime 1;
! devolve a peça para o palete 1 PROC t1m2()
Reset DO11_8; ! Verifica se o torno está OK
WaitTime 1; IF DI10_1=1 THEN
MoveJ p2,v200,z80,tool0; ! inicio do programa torno1-mesa2
150
! espera sinal de porta aberta MoveJ p2,v200,z80,tool0;
WaitDI DI10_3,1; SingArea\Wrist;
SingArea\Wrist; MoveJ p16,v200,z80,tool0;
MoveJ p16,v200,z80,tool0; MoveJ p17,v200,z80,tool0;
! informa que robô está fora de Phome MoveJ p18,v200,z80,tool0;
Reset DO10_1; MoveL p10,v200,fine,tool0;
MoveL p5,v200,z80,tool0; ! espera sinal de confirmação da porta da fresa aberta
! informa que robô está fora de Área Segura WaitDI DI10_6,1;
Reset DO10_6; ! espera sinal de confirmação da morsa da fresa aberta
MoveL p6,v200,fine,tool0; WaitDI DI10_5,0;
MoveL p4,v80,fine,tool0; MoveL p11,v200,fine,tool0;
WaitTime 1; MoveL p12,v100,fine,tool0;
! fecha a garra para pegar a peça ! envia sinal para fechar a morsa da fresadora (pulso)
Set DO11_8; Set DO10_3;
WaitTime 1; ! espera sinal de morsa fechada
! envia pulso para abrir a castanha WaitDI DI10_5,1;
Set DO10_2; ! encerra pulso para fechar a morsa
! espera sinal de castanha aberta Reset DO10_3;
WaitDI DI10_2,0; ! abre a garra para deixar a peça na fresadora
! encerra pulso para fechar a castanha Reset DO11_8;
Reset DO10_2; WaitTime 1;
WaitTime 1; MoveL p11,v200,fine,tool0;
MoveL p6,v200,fine,tool0; MoveL p10,v200,fine,tool0;
MoveL p5,v200,fine,tool0; ! envia sinal de robô em área segura
! envia sinal de robô em área segura Set DO10_6;
Set DO10_6; MoveAbsJ jposhome,v200,z80,tool0;
MoveJ p16,v200,z100,tool0; ! envia sinal de robô em Phome
MoveJ p2,v200,z100,tool0; Set DO10_1;
MoveL p8,v200,z100,tool0; ENDIF
MoveJ p7,v100,fine,tool0; ENDPROC
WaitTime 1;
! abre a garra para devolver a peça ao palete mesa 2 PROC f1m1()
Reset DO11_8; !Verifica se a fresadora está OK
WaitTime 1; IF DI10_4=1 THEN
MoveL p8,v200,fine,tool0; ! inicio do programa fresa1-mesa1
! envia sinal ao AS/AR para retorno do palete mesa 2 ! espera sinal de porta aberta
Set DO10_5; WaitDI DI10_6,1;
MoveL p9,v200,z100,tool0; MoveJ p17,v200,z100,tool0;
MoveAbsJ jposhome,v200,z80,tool0; ! informa que robô está fora de Phome
! envia sinal de robô em Phome Reset DO10_1;
Set DO10_1; MoveL p18,v200,z100,tool0;
! aguarda confirmação do AS/AR de retorno da M2 MoveL p10,v200,z80,tool0;
WaitDI DI10_8,0; ! informa que robô está fora de Área Segura
! encerra pulso para retorno da M1 Reset DO10_6;
Reset DO10_5; MoveL p11,v200,fine,tool0;
ENDIF MoveL p12,v100,fine,tool0;
ENDPROC WaitTime 1;
! fecha a garra para pegar peça
PROC m1f1() Set DO11_8;
!Verifica se a fresadora está OK WaitTime 1;
IF DI10_4=1 THEN ! envia pulso para abrir a morsa da fresadora
! inicio do programa mesa1-fresa1 Set DO10_3;
MoveAbsJ jposhome,v200,z80,tool0; ! espera sinal de morsa aberta
MoveJ p1,v200,z100,tool0; WaitDI DI10_5,0;
! informa que robô está fora de Phome ! encerra pulso para fechar a morsa
Reset DO10_1; Reset DO10_3;
MoveJ p2,v200,z100,tool0; MoveL p11,v200,fine,tool0;
! informa que robô está fora de Área Segura MoveL p10,v200,fine,tool0;
Reset DO10_6; ! informa que robô está em Área Segura
MoveL p3,v100,fine,tool0; Set DO10_6;
WaitTime 1; MoveL p18,v200,z80,tool0;
! fecha a garra para pegar a peça no palete da mesa1 MoveL p17,v200,z80,tool0;
Set DO11_8; MoveL p16,v200,z80,tool0;
WaitTime 1; MoveJ p2,v200,z80,tool0;
151
MoveL p3,v100,fine,tool0; Set DO10_1;
WaitTime 1; ENDIF
! devolve a peça para o palete 1 ENDPROC
Reset DO11_8;
WaitTime 1; PROC f1m2()
MoveJ p2,v200,z100,tool0; ! Verifica se a fresadora está OK
! envia sinal ao AS/AR para retorno do palete mesa1 IF DI10_4=1 THEN
Set DO10_4; ! inicio do programa fresa1-mesa2
MoveJ p1,v200,z100,tool0; ! espera sinal de porta aberta da fresadora
MoveAbsJ jposhome,v200,z80,tool0; WaitDI DI10_6,1;
! envia sinal de robô em Phome SingArea\Wrist;
Set DO10_1; MoveJ p17,v200,z80,tool0;
! aguarda confirmação do AS/AR de retorno da M1 ! informa que robô está fora de Phome
WaitDI DI10_7,0; Reset DO10_1;
! encerra pulso para retorno da M1 MoveL p18,v200,z80,tool0;
Reset DO10_4; MoveL p10,v200,fine,tool0;
ENDIF ! informa que robô está fora de Área Segura
ENDPROC Reset DO10_6;
MoveL p11,v200,fine,tool0;
PROC m2f1() MoveL p12,v100,fine,tool0;
! Verifica se a fresadora está OK WaitTime 1;
IF DI10_4=1 THEN ! fecha a garra para pegar peça
! inicio do programa mesa2-fresa1 Set DO11_8;
MoveAbsJ jposhome,v200,z80,tool0; WaitTime 1;
SingArea\Wrist; ! envia pulso para abrir a morsa da fresadora
MoveL p9,v200,z100,tool0; Set DO10_3;
! informa que robô está fora de Phome ! espera sinal de morsa aberta
Reset DO10_1; WaitDI DI10_5,0;
MoveL p8,v200,z80,tool0; ! encerra pulso para fechar a morsa
! informa que robô está fora de Área Segura Reset DO10_3;
Reset DO10_6; MoveL p11,v200,fine,tool0;
MoveJ p7,v100,fine,tool0; MoveL p10,v200,fine,tool0;
WaitTime 1; ! informa que robô está em Área Segura
! fecha a garra para pegar a peça no palete 2 Set DO10_6;
Set DO11_8; MoveL p18,v200,z80,tool0;
WaitTime 1; MoveL p17,v200,z80,tool0;
MoveL p8,v200,fine,tool0; MoveL p16,v200,z80,tool0;
MoveJ p2,v200,z80,tool0; MoveJ p2,v200,z80,tool0;
SingArea\Wrist; MoveL p8,v200,z80,tool0;
MoveJ p16,v200,z80,tool0; MoveJ p7,v100,fine,tool0;
MoveJ p17,v200,z80,tool0; WaitTime 1;
MoveJ p18,v200,z80,tool0; ! abre a garra para devolver a peça ao palete mesa 2
MoveL p10,v200,fine,tool0; Reset DO11_8;
! espera sinal de confirmação da porta da fresa aberta WaitTime 1;
WaitDI DI10_6,1; MoveL p8,v200,z80,tool0;
! espera sinal de confirmação da morsa da fresa aberta ! envia sinal ao AS/AR para retorno do palete mesa 2
WaitDI DI10_5,0; Set DO10_5;
MoveL p11,v200,fine,tool0; MoveL p9,v200,z100,tool0;
MoveL p12,v100,fine,tool0; MoveAbsJ jposhome,v200,z80,tool0;
! envia sinal para fechar a morsa da fresadora (pulso) ! envia sinal de robô em Phome
Set DO10_3; Set DO10_1;
! espera sinal de morsa fechada ! aguarda confirmação do AS/AR de retorno da M2
WaitDI DI10_5,1; WaitDI DI10_8,0;
! encerra pulso para fechar a morsa ! encerra pulso para retorno da M1
Reset DO10_3; Reset DO10_5;
! abre a garra para deixar a peça na fresadora ENDIF
Reset DO11_8; ENDPROC
WaitTime 1;
MoveL p11,v200,fine,tool0; PROC m1r1()
MoveL p10,v200,z80,tool0; !Verifica se o CNC1 está OK
! envia sinal de robô em área segura IF DI10_13=1 THEN
Set DO10_6; ! inicio do programa mesa1-r1
MoveAbsJ jposhome,v200,z80,tool0; MoveAbsJ jposhome,v200,z80,tool0;
! envia sinal de robô em Phome MoveJ p1,v200,z80,tool0;
152
! informa que robô está fora de Phome MoveL p14,v200,fine,tool0;
Reset DO10_1; MoveL p13,v200,fine,tool0;
MoveJ p2,v200,z80,tool0; ! informa que robô está em Área Segura
! informa que robô está fora de Área Segura Set DO10_6;
Reset DO10_6; MoveJ p19,v200,z80,tool0;
MoveL p3,v100,fine,tool0; MoveL p8,v200,z80,tool0;
WaitTime 1; MoveJ p2,v200,z80,tool0;
! fecha a garra para pegar a peça no palete da mesa1 MoveL p3,v100,fine,tool0;
Set DO11_8; WaitTime 1;
WaitTime 1; ! devolve a peça para o palete 1
MoveJ p2,v200,z80,tool0; Reset DO11_8;
MoveL p8,v200,z80,tool0; WaitTime 1;
MoveJ p19,v200,z80,tool0; MoveJ p2,v200,z80,tool0;
SingArea\Wrist; ! envia sinal ao AS/AR para retorno do palete mesa1
MoveL p13,v200,fine,tool0; Set DO10_4;
! espera sinal de confirmação porta do CNC1 aberta MoveJ p1,v200,z80,tool0;
WaitDI DI10_15,1; MoveAbsJ jposhome,v200,z80,tool0;
! espera sinal de confirmação do disp de fix aberto ! envia sinal de robô em Phome
WaitDI DI10_14,0; Set DO10_1;
MoveL p14,v200,fine,tool0; ! aguarda confirmação do AS/AR de retorno da M1
MoveL p15,v100,fine,tool0; WaitDI DI10_7,0;
! envia sinal para fechar o dispositivo de fix do CNC1 ! encerra pulso para retorno da M1
Set DO10_7; Reset DO10_4;
! espera sinal de dispositivo fixação fechado ENDIF
WaitDI DI10_14,1; ENDPROC
! encerra pulso para fechar o dispositivo de fixação
Reset DO10_7; PROC m2r1()
! abre a garra para deixar a peça no CNC1 ! Verifica se o CNC1 está OK
Reset DO11_8; IF DI10_13=1 THEN
WaitTime 1; ! inicio do programa mesa2-r1
MoveL p14,v200,fine,tool0; MoveAbsJ jposhome,v200,z80,tool0;
MoveL p13,v200,fine,tool0; SingArea\Wrist;
! envia sinal de robô em área segura MoveL p9,v200,z80,tool0;
Set DO10_6; ! informa que robô está fora de Phome
MoveAbsJ jposhome,v200,z80,tool0; Reset DO10_1;
! envia sinal de robô em Phome MoveL p8,v200,z80,tool0;
Set DO10_1; ! informa que robô está fora de Área Segura
ENDIF Reset DO10_6;
ENDPROC MoveJ p7,v100,fine,tool0;
WaitTime 1;
PROC r1m1() ! fecha a garra para pegar a peça no palete 2
!Verifica se o CNC1 está OK Set DO11_8;
IF DI10_13=1 THEN WaitTime 1;
! inicio do programa r1-mesa1 MoveL p8,v200,z80,tool0;
! espera sinal de porta aberta MoveJ p9,v200,z80,tool0;
WaitDI DI10_15,1; SingArea\Wrist;
! informa que robô está fora de Phome MoveL p13,v200,fine,tool0;
Reset DO10_1; ! espera sinal de confirmação porta do R11 aberta
SingArea\Wrist; WaitDI DI10_15,1;
MoveL p13,v200,z100,tool0; ! espera sinal de confirmação do disp de fix aberto
! informa que robô está fora de Área Segura WaitDI DI10_14,0;
Reset DO10_6; MoveL p14,v200,fine,tool0;
MoveL p14,v200,fine,tool0; MoveL p15,v100,fine,tool0;
MoveL p15,v100,fine,tool0; ! envia sinal para fechar o disp de fixação do R1
WaitTime 1; Set DO10_7;
! fecha a garra para pegar peça ! espera sinal de dispositivo fixação fechado
Set DO11_8; WaitDI DI10_14,1;
WaitTime 1; ! encerra pulso para fechar o dispositivo de fixação
! envia pulso para abrir dispositivo de fixação Reset DO10_7;
Set DO10_7; ! abre a garra para deixar a peça no R1
! espera sinal de dispositivo de fixação aberto Reset DO11_8;
WaitDI DI10_14,0; WaitTime 1;
! encerra pulso para fechar o dispositivo de fixação MoveL p14,v200,fine,tool0;
Reset DO10_7; MoveL p13,v200,fine,tool0;
153
! envia sinal de robô em área segura PROC main()
Set DO10_6; inicio:
MoveAbsJ jposhome,v200,z80,tool0; TEST Comando
! envia sinal de robô em Phome CASE 1:
Set DO10_1; m1t1;
ENDIF CASE 2:
ENDPROC t1m1;
CASE 3:
PROC r1m2() m2t1;
! Verifica se o CNC1 está OK CASE 4:
IF DI10_13=1 THEN t1m2;
! inicio do programa r1-mesa2 CASE 5:
! espera sinal de porta aberta do R11 m1f1;
WaitDI DI10_15,1; CASE 6:
SingArea\Wrist; f1m1;
! informa que robô está fora de Phome CASE 7:
Reset DO10_1; m2f1;
MoveL p13,v200,fine,tool0; CASE 8:
! informa que robô está fora de Área Segura f1m2;
Reset DO10_6; CASE 9:
MoveL p14,v200,fine,tool0; m1r1;
MoveL p15,v100,fine,tool0; CASE 10:
WaitTime 1; r1m1;
! fecha a garra para pegar a peça CASE 11:
Set DO11_8; m2r1;
WaitTime 1; CASE 12:
! envia pulso para abrir o disp de fixação de R1 r1m2;
Set DO10_7; CASE 15:
! espera sinal de dispositivo de fixação aberto emer;
WaitDI DI10_14,0; CASE 0,13,14:
! encerra pulso para fechar o dispositivo de fixação GOTO inicio;
Reset DO10_7; ENDTEST
WaitTime 1; GOTO inicio;
MoveL p14,v200,fine,tool0; ENDPROC
MoveL p13,v200,fine,tool0; ENDMODULE
! informa que robô está em Área Segura
Set DO10_6;
MoveJ p19,v200,z80,tool0;
MoveL p8,v200,z80,tool0;
MoveJ p7,v100,fine,tool0;
WaitTime 1;
! abre a garra para devolver a peça ao palete mesa 2
Reset DO11_8;
WaitTime 1;
MoveL p8,v200,fine,tool0;
! envia sinal ao AS/AR para retorno do palete mesa 2
Set DO10_5;
MoveL p9,v200,z80,tool0;
MoveAbsJ jposhome,v200,z80,tool0;
! envia sinal de robô em Phome
Set DO10_1;
! aguarda confirmação do AS/AR de retorno da M2
WaitDI DI10_8,0;
! encerra pulso para retorno da M1
Reset DO10_5;
ENDIF
ENDPROC
PROC emer()
! envia sinal de emergência
Stop;
ENDPROC
154
APÊNDICE D – SCRIPTS DE PROGRAMAÇÃO
//Gerenciador_Robo.Tags.AuxiliarProg (OnValueChanged)
//
SINAIS_PARA_ROBO2=AuxiliarProg+(ComunicR1_Robo*16)
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robo.Tags.ENTRADAS.SINAIS_DO_ROBO.ROBO_PECA_NA_CASTANHA
(OnValueChanged)
//Este script reseta o retorno de usinagem do torno
IF (codigo_retorno_M1 == 1 OR codigo_retorno_M2 == 1)
AuxiliarProg=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robo.Tags.ENTRADAS.SINAIS_DO_ROBO.ROBO_PECA_NA_MORSA
(OnValueChanged)
//Este script reseta o retorno de usinagem da fresa
IF (codigo_retorno_M1 == 2 OR codigo_retorno_M2 == 2)
AuxiliarProg=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robo.Tags.ENTRADAS.SINAIS_DO_ROBO.ROBO_PECA_NA_R1
(OnValueChanged)
//Este script reseta o retorno de usinagem do CNC1
IF (codigo_retorno_M1 == 3 OR codigo_retorno_M2 == 3)
AuxiliarProg=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robô.OPCServer.ServerCNC1.ComunicR1_Robô (OnValueChanged)
//
SINAIS_PARA_ROBO2=AuxiliarProg+(ComunicR1_Robo*16)
//Este script seta o retorno da usinagem (prog r1m1 e r1m2) do CNC1 para M1 ou M2
IF (R1_OK == 0 AND R1_Disp_Fix == 1 AND R1_Porta == 1)
IF codigo_retorno_M1 == 1
AuxiliarProg=2 //seta o prog t1m1
ELSEIF codigo_retorno_M2 == 1
AuxiliarProg=4 //seta o prog t1m2
ENDIF
ENDIF
155
//Gerenciador_Robô.OPCServer.ServerFresadora.ComunicFresa_Robô (OnValueChanged)
//
SINAIS_PARA_ROBO1=ComunicTorno_Robo+(ComunicFresa_Robo*8)+(presenca_mesa1*64)+(p
resenca_mesa2*128)
//Este script seta o retorno da usinagem (prog f1m1 e f1m2) da fresa para M1 ou M2
IF (FRESA_OK == 0 AND FRESA_MORSA == 1 AND FRESA_PORTA == 1)
IF codigo_retorno_M1 == 2
AuxiliarProg=6 //seta o prog m1f1
ELSEIF codigo_retorno_M2 == 2
AuxiliarProg=8 //seta o prog m2f1
ENDIF
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robô.OPCServer.ServerTorno.ComunicTorno_Robô (OnValueChanged)
//
SINAIS_PARA_ROBO1=ComunicTorno_Robo+(ComunicFresa_Robo*8)+(presenca_mesa1*64)+(p
resenca_mesa2*128)
//Este script seta o retorno da usinagem (prog t1m1 e t1m2) do torno para M1 ou M2
IF (TORNO_OK == 0 AND TORNO_CASTANHA == 1 AND TORNO_PORTA == 1)
IF codigo_retorno_M1 == 1
AuxiliarProg=2 //seta o prog t1m1
ELSEIF codigo_retorno_M2 == 1
AuxiliarProg=4 //seta o prog t1m2
ENDIF
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robô.OPCServer.ServerFMC.MovPeca (OnValueChanged)
//
IF MovPeca == "MP001"
AuxiliarUsi=16
AuxiliarProg=16
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robô.OPCServer.ServerFMC.ProgUsinagem (OnValueChanged)
//
IF ProgUsinagem==" "
AuxiliarUsi=0
AuxiliarProg=0
ELSEIF ProgUsinagem=="PBR"
AuxiliarUsi=1
AuxiliarProg=1
ELSEIF ProgUsinagem=="TBR"
AuxiliarUsi=2
AuxiliarProg=7
ELSEIF ProgUsinagem=="CBR"
AuxiliarUsi=3
AuxiliarProg=5
ELSEIF ProgUsinagem=="BBR"
AuxiliarUsi=4
AuxiliarProg=3
ELSEIF ProgUsinagem=="DBR"
AuxiliarUsi=5
AuxiliarProg=1
ELSEIF ProgUsinagem=="RBR"
156
AuxiliarUsi=6
AuxiliarProg=7
ELSEIF ProgUsinagem=="PPR"
AuxiliarUsi=7
AuxiliarProg=1
ELSEIF ProgUsinagem=="TPR"
AuxiliarUsi=8
AuxiliarProg=7
ELSEIF ProgUsinagem=="CPR"
AuxiliarUsi=9
AuxiliarProg=5
ELSEIF ProgUsinagem=="BPR"
AuxiliarUsi=10
AuxiliarProg=3
ELSEIF ProgUsinagem=="DPR"
AuxiliarUsi=11
AuxiliarProg=1
ELSEIF ProgUsinagem=="RPR"
AuxiliarUsi=12
AuxiliarProg=7
ELSEIF ProgUsinagem=="M1R1"
AuxiliarUsi=13
AuxiliarProg=9
ELSEIF ProgUsinagem=="M2R1"
AuxiliarUsi=14
AuxiliarProg=11
ELSEIF ProgUsinagem=="EMERG"
AuxiliarUsi=15
AuxiliarProg=15
ELSEIF AuxiliarUsi=0
AuxiliarProg=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Robô.OPCServer.ServerFMC.s_scanner2 (OnValueChanged)
//
AuxiliarMesasUsinagem=s_scanner2
SINAIS_PARA_ROBO1=ComunicTorno_Robo+(ComunicFresa_Robo*8)+(presenca_mesa1*64)+(p
resenca_mesa2*128)
//--------------------------------------------------------------------------------------------------------------
// Gerenciador_Fresadora.Tags.Fresa_Moeller (OnValueChanged)
//
IF Fresa_Moeller<256
FRESA_OK=0
FRESA_CASTANHA=0
FRESA_PORTA=0
ComunicFresa_Robo=0
ENDIF
IF Fresa_Moeller>=256
IF Fresa_Moeller<512
FRESA_OK=1
FRESA_CASTANHA=0
FRESA_PORTA=0
ComunicFresa_Robo=1
157
ENDIF
ENDIF
IF Fresa_Moeller>=512
IF Fresa_Moeller<768
FRESA_OK=0
FRESA_CASTANHA=1
FRESA_PORTA=0
ComunicFresa_Robo=2
ENDIF
ENDIF
IF Fresa_Moeller>=768
IF Fresa_Moeller<1024
FRESA_OK=1
FRESA_CASTANHA=1
FRESA_PORTA=0
ComunicFresa_Robo=3
ENDIF
ENDIF
IF Fresa_Moeller>=1024
IF Fresa_Moeller<1280
FRESA_OK=0
FRESA_CASTANHA=0
FRESA_PORTA=1
ComunicFresa_Robo=4
ENDIF
ENDIF
IF Fresa_Moeller>=1280
IF Fresa_Moeller<1536
FRESA_OK=1
FRESA_CASTANHA=0
FRESA_PORTA=1
ComunicFresa_Robo=5
ENDIF
ENDIF
IF Fresa_Moeller>=1536
IF Fresa_Moeller<1792
FRESA_OK=0
FRESA_CASTANHA=1
FRESA_PORTA=1
ComunicFresa_Robo=6
ENDIF
ENDIF
IF Fresa_Moeller>=1792
IF Fresa_Moeller<2048
FRESA_OK=1
FRESA_CASTANHA=1
FRESA_PORTA=1
ComunicFresa_Robo=7
ENDIF
ENDIF
//--------------------------------------------------------------------------------------------------------------
// Gerenciador_Fresadora.OPCServers.ServerFMC.ProgUsinagem (OnValueChanged)
//
IF ProgUsinagem == " "
AuxiliarProgFresa=0
Bit0=0
Bit1=0
Bit2=0
ELSEIF ProgUsinagem == "TBR"
158
AuxiliarProgFresa=1
Bit0=1
Bit1=1
Bit2=1
ELSEIF ProgUsinagem == "TPR"
AuxiliarProgFresa=2
Bit0=1
Bit1=1
Bit2=1
ELSEIF ProgUsinagem == "CBR"
AuxiliarProgFresa=3
Bit0=1
Bit1=0
Bit2=1
ELSEIF ProgUsinagem == "CPR"
AuxiliarProgFresa=4
Bit0=1
Bit1=0
Bit2=1
ELSEIF ProgUsinagem == "RBR"
AuxiliarProgFresa=5
Bit0=1
Bit1=1
Bit2=1
ELSEIF ProgUsinagem == "RPR"
AuxiliarProgFresa=6
Bit0=1
Bit1=1
Bit2=1
ELSEIF ProgUsinagem=="EMERG"
AuxiliarProgFresa=15
Bit0=0
Bit1=0
Bit2=0
ELSEIF AuxiliarProgFresa=16
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Fresadora.OPCServers.ServerRobo.SINAIS_DO_ROBO.ROBO_PECA_NA_M
ORSA (OnValueChanged)
//
IF ROBO_PECA_NA_MORSA==0
Morsa=0
ELSEIF ROBO_PECA_NA_MORSA==1
Morsa=1
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Fresadora.OPCServers.ServerRobo.SINAIS_DO_ROBO.ROBO_AREA_SEGU
RA (OnValueChanged)
//
IF ROBO_AREA_SEGURA==0
Area_Segura=0
ELSEIF ROBO_AREA_SEGURA==1
Area_Segura=1
ENDIF
//--------------------------------------------------------------------------------------------------------------
159
D3. SCRIPT DE PROGRAMAÇÃO DO GERENCIADOR REMOTO
//Gerenciador_Remoto.Aplicação (OnStartRunning)
//
DIM tentativas
Login = 0
tentativas = 0
// Enquanto não se logar e não exceder três tentativas
WHILE Login == 0 AND tentativas < 3
Login = Aplicação.Login()
IF not Login // Se houver erro de login
MessageBox("Login inválido!","ERRO")
ENDIF
tentativas +=1
WEND
IF Login == 0 // Se excedeu as três tentativas
Aplicação.StopRunning() // Encerra a aplicação
ELSE // Se obteve sucesso no login
RemotoUser=Aplicação.userLogin
StatusRemoto1=1
Tela1.Activate()
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Remoto.Aplicação (OnKeyPressEsc)
//
StatusRemoto1=0
RemotoUser=Aplicação.userLogin
Aplicação.StopRunning()
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Remoto.Tags.RemotoUser (OnValueChanged)
//
Aplicação.userLogin
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Remoto.Tags.TimeRemoto1 (OnIncrement)
//
AuxiliarCrono=180-TimeRemoto1.acum
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Remoto.Tags.TimeRemoto1 (OnPreset)
//
StatusRemoto1=0
Aplicação.StopRunning()
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Remoto.OPCServer.ServerFMC.MovEntrada (OnValueChanged)
//Gerenciador_Remoto.OPCServer.ServerFMC.MovSaida (OnValueChanged)
//Gerenciador_Remoto.OPCServer.ServerFMC.MovUsinagem (OnValueChanged)
//
IF MovUsinagem == 1
StatusPulgus=1
Pedido.visible=0
ENDIF
160
IF MovEntrada == 1
StatusPulgus=2
Pedido.visible=0
ENDIF
IF MovSaida == 1
StatusPulgus=3
Pedido.visible=0
ENDIF
//Gerenciador_Pulgus.Tags.Bloco2.s_scanner3_robot.retorno_robot_mesa1 (OnValueChanged)
IF retorno_robot_mesa1==1
Aplicação.Telas.Movimentação.Usinagem.visible=1
tab05_usinagem.Requery()
tab05_usinagem.SQLQuery("","")
IF tab05_usinagem.Find("pk_numpallet=" + Str(pallet_mesa11),1)==1
IF tab05_usinagem.status==16
tab05_usinagem.BeginTrans()
tab05_usinagem.status=18
tab05_usinagem.CommitTrans()
//grava log
tab08_log.BeginTrans()
tab08_log.numpallet=tab05_usinagem.pk_numpallet
tab08_log.operacao="USI"
tab08_log.descricao="Registro atualizado na TAB05 status=18"
tab08_log.data=GetTime()
IF tab08_log.AddRecord()
tab08_log.CommitTrans()
ELSE
MessageBox("Não foi possível inserir o registro na TAB08")
tab08_log.RollBack()
ENDIF
tab03_armario.Requery()
tab03_armario.SQLQuery("","")
IF tab03_armario.Find("tab03_armario.numpallet=" + Str(tab05_usinagem.pk_numpallet),1)==1
161
tab03_armario.BeginTrans()
tab03_armario.fk_coditem=tab05_usinagem.produto
tab03_armario.CommitTrans()
//grava log
tab08_log.BeginTrans()
tab08_log.numpallet=tab03_armario.numpallet
tab08_log.operacao="USI"
tab08_log.descricao="Registro atualizado na TAB03 fk_coditem=" + tab05_usinagem.produto
tab08_log.data=GetTime()
IF tab08_log.AddRecord()
tab08_log.CommitTrans()
ELSE
MessageBox("Não foi possível inserir o registro na TAB08")
tab08_log.RollBack()
ENDIF
ENDIF
//Gerenciador_Pulgus.Tags.Bloco2.s_scanner2.presenca_mesa1 (OnValueChanged)
Dim var_pal_rec_clp
Dim var_ber_rec_clp
IF presenca_mesa1==1
var_pal_rec_clp=Str(Nro_pallet_rec_clp)
var_ber_rec_clp=Nro_bercousi_rec_clp
tab05_usinagem.Requery()
tab05_usinagem.SQLQuery("","")
IF tab05_usinagem.Find("pk_numpallet=" + Str(pallet_mesa11),1)
162
pallet_mesa1=tab05_usinagem.pk_numpallet
IF tab05_usinagem.status==14
IF tab05_usinagem.mesa==1
tab05_usinagem.BeginTrans()
tab05_usinagem.status=16
tab05_usinagem.CommitTrans()
//Atualiza a tag codigo_retorno_M1 (torno=1, fresa=2 e r1=3) + 0 (fase inicial da usinagem) xxx
IF (ProgUsinagem == "PBR" OR ProgUsinagem == "PPR" OR ProgUsinagem == "DBR" OR
ProgUsinagem == "DPR")
codigo_retorno_M1=10
ELSEIF (ProgUsinagem == "CBR" OR ProgUsinagem == "CPR")
codigo_retorno_M1=20
ELSEIF (ProgUsinagem == "M1R1")
codigo_retorno_M1=30
ENDIF
//grava log
tab08_log.BeginTrans()
tab08_log.numpallet=pallet_mesa11
tab08_log.operacao="USI"
tab08_log.descricao="Pallet chegou na mesa 1"
tab08_log.data=GetTime()
IF tab08_log.AddRecord()
tab08_log.CommitTrans()
ELSE
MessageBox("Não foi possível inserir o registro na TAB08")
tab08_log.RollBack()
ENDIF
ENDIF
ELSE
MessageBox("Pallet não executou o procedimento esperado!")
ENDIF
ELSE
MessageBox("O processo não foi executado! Pallet não esperado")
ENDIF
end_mesa11=0
ENDIF
ENDIF
//--------------------------------------------------------------------------------------------------------------
163
//Gerenciador_Pulgus.Tag.Pulgus.Fresadora.Sinais_Fresa_ASAR (OnValueChanged)
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.OPCServer.ServerRemoto.RemotoReq (OnValueChanged)
DIM num_registros, i
DIM m_numpallet, m_dt_sist, m_coditem, m_pkcelula
DIM m_destino, m_mesa, m_ala, priori, m_alascan
IF StatusRemoto1 == 1
IF RemotoReq == 1
Mensagem="Usuário Remoto1 Solicitando Usinagem"
Aplicação.Telas.Movimentação.Activate()
MovUsinagem=1
MovPeca=ServerRemoto.RemotoPeca
MovUnidades=ServerRemoto.RemotoUnit
ENDIF
ENDIF
164
IF MovPeca == " " // Se não especificar o código da peça resultante da usinagem
MessageBox("Para executar um processo de usinagem, é necessário especificar o código da peça
resultante.","Movimentação", 0030h)
return
ENDIF
tab07_processo.Requery()
tab07_processo.SQLQuery("", "")
m_coditem = tab07_processo.mat_prima
m_mesa = tab07_processo.mesa
tab03_armario.Requery()
num_registros = tab03_armario.SQLQuery(locate, "")
IF MovUrgente == 1
priori = "U"
ELSE
priori = "N"
ENDIF
// Loop que gera ordem de movimentação para cada peça a ser usinada
FOR i = 1 TO num_registros
locate = ("fk_coditem = '" + m_coditem + "' and status = " + Str(OCUPADO))
tab03_armario.Requery()
165
tab03_armario.SQLQuery(locate, "")
tab03_armario.Find(locate, 1)
m_numpallet = tab03_armario.numpallet
m_dt_sist = tab03_armario.dt_sist
m_alascan = tab03_armario.ala
tab03_armario.MoveFirst()
m_numpallet = tab03_armario.numpallet
m_pkcelula = tab03_armario.pk_celula
m_coditem = tab03_armario.fk_coditem
m_ala = tab03_armario.ala
IF MovRetSaida == 1
m_destino = "S01" // berco de saida
ELSE
m_destino = m_pkcelula
ENDIF
166
tab05_usinagem.AddRecord()
tab05_usinagem.CommitTrans()
NEXT
ENDIF
RetSaida.visible = 0
MovSaida = 0
MovEntrada = 0
MovUsinagem = 0
MovUrgente = 0
MovPallet = 0
MovPeca = " "
MovCelula = " "
MovUnidades = 1
DescUnidades.visible = 1
DescPallet.visible = 0
DescCelula.visible = 0
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.OPCServer.ServerFresadora.ComunicFresa_Robo (OnValueChanged)
Sinais_Fresa_ASAR=ComunicFresa_Robo
//--------------------------------------------------------------------------------------------------------------
167
//Gerenciador_Pulgus.OPCServer.ServerR1.ComunicR1_Robo (OnValueChanged)
Sinais_R1_ASAR=ComunicR1_Robo
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.OPCServer.ServerTorno.ComunicTorno_Robo (OnValueChanged)
Sinais_Torno_ASAR=ComunicTorno_Robo
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.OPCServer.ServerRobo.SINAIS_DO_ROBO (OnValueChanged)
Sinais_Robo_ASAR=SINAIS_DO_ROBO
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.OPCServer.ServerRemoto.StatusRemoto1 (OnValueChanged)
IF StatusRemoto1 == 1
Mensagem="Usuário Remoto1 Conectado"
ELSEIF StatusRemoto1 == 0
Mensagem=" "
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.Pulgus.Robo.Robo_M1 (OnValueChanged)
IF Robo_M1==1
retorno_robot_mesa1=1
ELSEIF Robo_M1==0
retorno_robot_mesa1=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
//Gerenciador_Pulgus.Pulgus.Robo.Robo_M2 (OnValueChanged)
IF Robo_M2==1
retorno_robot_mesa2=1
ELSEIF Robo_M2==0
retorno_robot_mesa2=0
ENDIF
//--------------------------------------------------------------------------------------------------------------
168
ANEXO EM CD-ROM
169