Escolar Documentos
Profissional Documentos
Cultura Documentos
EDUARDO HARBS
Joinville
2012
UNIVERSIDADE DO ESTADO DE SANTA CATARINA – UDESC
CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT
DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA – PPGEEL
EDUARDO HARBS
Joinville
2012
EDUARDO HARBS
Esta Dissertação foi julgada adequada para a obtenção do título de Mestre em Engenharia Elétrica
e aprovada em sua forma final pelo Curso de Mestrado Profissional em Engenharia Elétrica do
CCT/UDESC.
Banca Examinadora:
Orientador/
Presidente:
Ao meu orientador, professor Roberto Silvio Ubertino Rosso Jr., pela sua colaboração,
incentivo e conversas esclarecedoras no desenvolvimento deste trabalho. Ao professor Marcelo
da Silva Hounsell, coorientador, pelo apoio e questionamentos.
Aos meus pais Lodemar Harbs e Maria Harbs pelo grande amor e incentivo dados.
À minha esposa Tatiane pelo incentivo, amor e compreensão nos momentos de dificuldade
ao longo dessa caminhada.
Ao Sr. Dietmar Erich Bernhard Lilie pela doação da estrutura mecânica da máquina junto ao
Prof. Fernando Lafratta.
Ao bolsista Gabriel Negri pelo apoio e trabalho desenvolvido na construção das ferramentas
de visualização e execução aderentes a IEC 61499.
Aos colegas de laboratório Yuri K. Lopes, Lucas H. Negri, Rodrigo Trentini, Renan Sebem
e Thiago Oliveira.
Uma máquina pode fazer o trabalho
de 50 pessoas comuns. Nenhuma
máquina pode fazer o trabalho de
uma pessoa extraordinária.
– Elbert Hubbard
RESUMO
HARBS, Eduardo. CNC-C2 : Um Controlador Aderente às Normas ISO 14649 e IEC 61499.
2012. 156 f. Dissertação (Mestrado Profissional em Engenharia Elétrica – Área: Automação
de Sistemas) – Universidade do Estado de Santa Catarina, Programa de Pós-Graduação em
Engenharia Elétrica, Joinville, 2012.
A indústria tem enfrentado dificuldades quanto à flexibilidade das máquinas CNC, devido
à norma utilizada atualmente para a programação CNC, a ISO 6983 ou código G/M. Com
objetivo de substituição desta norma, desenvolveu-se a ISO 14649 ou STEP-NC, que é um
novo modelo de transferência de dados unificado entre sistemas CAD/CAM e CNC. Para
atender os novos requisitos de automação e controle de sistemas, desenvolveu-se a norma
IEC 61499, visando o uso de objetos de software, os function blocks (FBs). Neste trabalho
integraram-se as normas STEP-NC e IEC 61499 para a construção de uma nova geração de
CNCs, onde STEP-NC fornece o modelo de dados completo, porém sem funcionalidade, e os
FBs fornecem as funcionalidades ao modelo de dados para o controle da máquina-ferramenta.
Para tal, foi desenvolvido um controlador para uma máquina CNC protótipo aderente às normas
STEP-NC e IEC 61499. Este protótipo é constituído de uma fresadora 2,5D, acionada por
um conjunto de três servoacionamentos com CLPs integrados. Um conjunto de software foi
desenvolvido para compilação do arquivo STEP-NC e geração automática de modelos IEC
61499, visualização, edição e execução de FBs e rede de FBs além de uma biblioteca de
modelos IEC 61499. Teste do software e do protótipo foi realizado com a usinagem de uma peça
exemplo, alcançando o objetivo proposto e provendo as características individuais das normas
no controlador, como: interoperabilidade, portabilidade, uso de features, configurabilidade,
distribuição e adaptabilidade.
HARBS, Eduardo. CNC-C2 : Um Controlador Aderente às Normas ISO 14649 e IEC 61499.
2012. 156 f. Dissertação (Mestrado Profissional em Engenharia Elétrica – Área: Automação
de Sistemas) – Universidade do Estado de Santa Catarina, Programa de Pós-Graduação em
Engenharia Elétrica, Joinville, 2012.
The industry has found difficulties towards CNC machines flexibility, due to the CNC program-
ming current standard, the ISO 6983 or G/M code. The ISO 14649 or STEP-NC was developed
to replace the current standard. It is a new unified data transfer model between CAD/CAM and
CNC systems. To satisfy the new automation and control systems requirements, the IEC 61499
standard was developed, aiming the use of software objects, called function blocks (FBs). In this
work, the standards STEP-NC and IEC 61499 were integrated to build a new generation of CNC,
where STEP-NC supplies the complete data model without functionality, and the FBs provide
the functionalities to the data model for the machine tool command. In this context, a controller
for a CNC machine prototype, compliant to STEP-NC and IEC 61499 standards was developed.
The prototype consists of a 2,5D milling machine, driven by a group of three servomotors drivers
with integrated PLCs. A set of software was developed for compiling STEP-NC files and the
automatic generation of IEC 61499 models, viewing, editing and executing FBs and FB networks,
and further a library with IEC 61499 models. Test on software and prototype was performed
machining an example workpiece, achieving the proposed goal and providing the individual
characteristics of the standards in the controller, such as: interoperability, portability, use of
features, configurability, distribution and adaptability.
2.2 Diferença de fluxo de informação com o uso do código G/M e com o uso de
STEP-NC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.20 Interface gráfica do editor desenvolvido neste trabalho (aba selecionada FB Básico)112
6.21 Caixa de texto para visualização da estrutura XML gerada pelo editor desenvolvido113
6.28 Estrutura de dados específicos por eixo construída para comunicação CAN . . . 119
AP Application Protocol
CL Cutter Location
IA Inteligência Artificial
MVC Model-View-Control
STEP STandard for the Exchange of Product model data (ISO 10303)
STEP-NC STandard for the Exchange of Product model data for Numerical Control (ISO
14649)
TO Transaction Objects
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 AUTOMAÇÃO DA MANUFATURA . . . . . . . . . . . . . . . . . . . . . . . . . 43
4 TECNOLOGIAS CORRELATAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2 COMPILADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3 SERVOACIONAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1 Servomotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.2 Servoconversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.4.3 Ferramenta aderente a IEC 61499 junto com IEC 61131 - ISaGRAF . . . . . . . . 69
4.4.7 FBench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5 TRABALHOS RELACIONADAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.1 TRABALHOS RELACIONADOS AO USO DO MODELO DE DADOS STEP-NC 74
5.3.6 Integração das normas ISO 14649 e IEC 61499 para a construção de um CNC
interoperável . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.4 DISCUSSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
1 Introdução
Uma série de mudanças revolucionárias na configuração de sistemas de manufatura ocorreram
desde o sistema de produção artesanal até os sistemas utilizados atualmente. No início do
século XX surgiu a mais conhecida e tradicional configuração de um sistema de manufatura, o
sistema de produção em massa (transfer line), o qual permite uma alta eficiência (quantidade)
e um baixo custo de produção (XU; NEWMAN, 2006). Na década de 1950 foi desenvolvida
a primeira máquina NC (Controle Numérico) no Massachussets Institute of Technology, onde
possibilitava a reprogramação para usinagem de diferentes peças. Durante os anos de 1980,
percebeu-se um consumidor mais sofisticado e um aumento na concorrência internacional, o
que fez com que os fabricantes tivessem que mudar o seu foco. Consumidores mais exigentes
começaram a buscar produtos com mais variedades, baixo preço e alta qualidade. Isto resultou na
mudança dos conceitos dos fabricantes, onde buscaram não somente uma produção eficiente, mas
acrescentaram flexibilidade à produção e capacidade de resposta aos anseios dos consumidores.
Estas características são essenciais para a indústria atual, que necessita possuí-las para se manter
competitiva no mercado globalizado (CHOUINARD; BRENNAN, 2006; WANG; JIN; FENG,
2006).
Na busca por um sistema flexível de produção, o CNC (Computer Numerical Control - Con-
trolador Numérico Computadorizado) tornou-se o elemento central dos sistemas de manufatura,
tais como linhas de transferência flexível, FMC (Flexible Manufacturing Cells - Célula Flexível
de Manufatura), FMS (Flexible Manufacturing Systems - Sistemas Flexíveis de Manufatura) e
também de maneira isolada. O CNC proporcionou à indústria mais agilidade na produção de
pequenos lotes de diferentes tipos de peças por possibilitar a reprogramação para usinagem.
Desde a década de 1970 o CNC teve uma evolução significativa, tonando-se mais automático e
confiável, adicionando novos processos e proporcionando a capacidade de produção multi-eixos,
multi-ferramentas e multi-processos (ROSSO Jr.; ALLEN; NEWMAN, 2002; CALABRESE;
CELENTANO, 2007). A caracterítica conceitual do CNC de ser flexível e a evolução estrutural
das máquinas-ferramentas, têm revelado à indústria uma deficiência na questão da programação
CNC. A norma atual para programas NC (Numerical Control - Controlador Numérico) utiliza
comandos que não mudaram de maneira significativa desde a década de 1950 quando a primeira
máquina NC foi desenvolvida no MIT (Massachusetts Institute of Technology). Assim como
1 Introdução 20
as primeiras máquinas NC, as atuais máquinas CNC continuam a usar o mesmo padrão de
programação, normalizado pela ISO 6983:1982, conhecidos como códigos G/M que se baseiam
na descrição dos movimentos da ferramenta. Pelo uso desta linguagem estagnada e antiga, o
controlador do CNC atual é considerado rígido e proprietário, contendo extensões especiais de
cada fabricante de máquina CNC (FINKE Jr., 2011).
A norma ISO 6983 limita a portabilidade do programa por três razões. Primeiramente, a
linguagem foca na programação do caminho do centro da ferramenta em relação aos eixos
da máquina, ao invés do processo de usinagem com relação a peça. Segundo, o padrão define
a sintaxe das instruções do programa, mas na maioria dos casos resulta em uma semântica
ambígua. Terceiro, fabricantes das máquinas CNC complementam a linguagem com exten-
sões não abrangidas no escopo da ISO 6983. Estes programas, quando processados em um
sistema CAM (Computer Aided Manufacturing - Manufatura Auxiliada por Computador) por
um pós-processador específico, tornam-se dependentes da máquina (XU; WANG; RONG, 2006).
Consequentemente, uma máquina CNC pode somente aceitar seu código G/M proprietário, o
qual dificulta e/ou impede a flexibilidade e a interoperabilidade das informações de usinagem
(MINHAT; XU; VYATKIN, 2009).
De maneira a alterar o cenário atual, devido aos problemas existentes, pesquisas dentro da
área de manufatura integrada, CIM (Computer Integrated Manufacturing - Manufatura Integrada
por Computador), tem buscado soluções com o intuito de proporcionar às empresas de fabricação
um sistema com as características acima. Pesquisas estas em nível de sistema bem como em
nível de componente, por exemplo, controle e máquina.
Cada vez mais, o CNC deve ser flexível, exigindo o controle de sistemas distribuídos, onde
existam vários dispositivos com poder de processamento incorporados em rede para diferentes
áreas de atuação da máquina-ferramenta. Tendo que ser facilmente integrado em sistemas
de automação, interoperar com CLP (Controlador Lógico Programável), outros CNC, robôs,
1 Introdução 22
dispositivos de controle integrado, etc (VYATKIN, 2007). Mesmo tendo uma evolução na
tecnologia de controle de sistemas, como a robótica avançada e os CNC, a complexidade dos
sistemas mostrou a existência de algumas barreiras impostas pelas técnicas de controle atuais
quando se busca a flexibilidade em sistemas cada vez mais distribuídos. O resultado é, muitas
vezes, um conjunto de “ilhas de automação”, faltando uma integração que é necessária para um
comportamento estável e eficiente. Como resultado, novas abordagens de controle de software e
hardware são necessárias para realizar um sistema que seja flexível, capaz de reconfiguração e
sensível à falhas (CHOUINARD; BRENNAN, 2006).
A integração das normas ISO 14649 e IEC 61499 pode ser a chave para alcançar um CNC in-
teroperável, e é o grande desafio, possuindo as características citadas de cada norma. A integração
das normas deve ocorrer de forma automática, onde os dados STEP-NC devem ser representados
em redes de FBs em um formato aderente à norma IEC 61499. Essas redes construídas a partir do
modelo de dados STEP-NC, fornecem funcionalidades a esses dados, podendo então comandar
uma máquina ferramenta, eliminando o uso do código G/M, o qual tem dificultado as indústrias
de aproveitarem as vantagens de agilidade nos processos, não utilizando completamente de
avançados recursos computacionais no planejamento, gerenciamento e controle da manufatura.
Tanto a STEP-NC quanto a IEC 61499 são alvo de projetos acadêmicos e da indústria, porém
existem diferentes abordagens não consolidadas utilizando a integração das normas. Há alguns
anos, a pesquisa sobre interoperabilidade na manufatura está em andamento, tanto em nível
de sistema (controle), como em nível de componentes (máquina) (XU; WANG; RONG, 2006).
Vários trabalhos relacionados descrevem tipos de arquiteturas e estruturas visando prover uma
máquina ferramenta CNC cada vez mais flexível e interoperável. Pesquisas apresentam protótipos
que utilizam o padrão STEP-NC como modelo de dados da peça, porém fazem a tradução para
código G/M, podendo assim utilizar de máquinas comerciais existentes (YUSOF; CASE, 2010).
Outras abordagens que utilizam a ISO 14649, porém sem a tradução para linguagem proprietária,
é apresentada por Zhu, Wang e Fu (2006) na construção de uma ferramenta de simulação de
usinagem e apresentada por Calabrese e Celentano (2007) e Pacheco et al. (2011) no acionamento
direto de uma máquina protótipo CNC. Uma estrutura mais recente agrega ao modelo de dados
STEP-NC uma arquitetura na construção do controlador da máquina, que é o uso da IEC 61499
(XU; WANG; RONG, 2006; WANG; XU; TEDFORD, 2007). Esta nova arquitetura, a IEC 61499,
permite seu uso na área de planejamento de processo adaptativo Wang et al. (2009) e da usinagem,
como apresentado em Wang, Holm e Adamson (2010). Outros trabalhos trazem uma verificação
formal do comportamento do sistema aderente a IEC 61499 (GERBER; IVANOVA-VASILEVA;
HANISCH, 2008; IVANOVA-VASILEVA; GERBER; HANISCH, 2008; GERBER; HANISCH,
2010). O uso em conjunto das normas ISO 14649 e IEC 61499 tem perspectivas promissoras no
desenvolvimento da nova geração de CNC, onde a aplicação de controle da máquina é construída
1 Introdução 24
a partir dos dados STEP-NC (MINHAT; XU; VYATKIN, 2009; FINKE Jr. et al., 2011).
Assim, nota-se a necessidade de uma implementação conjunta das normas ISO 14649 e IEC
61499 que demonstre aos fabricantes das máquinas ferramentas os benefícios e a confiabilidade
de seu uso. A junção das duas normas pode ser vista como natural, onde a STEP-NC fornece um
modelo de dados completo, porém sem funcionalidades de comando e controle de máquina, e os
FBs fornecem as funcionaldades ao modelo de dados (XU; WANG; RONG, 2006). Eliminar a
distância entre os projetos desenvolvidos e principalmente fabricantes é um dos pontos fundamen-
tais para disseminar novas tecnologias, onde para tal, é necessário possuir softwares e protótipos
confiáveis e transparentes capazes de demonstrar suas funcionalidades. Este trabalho se baseia na
proposta de uma nova estrutura, comparadas coms as estruturas encontradas na literatura, para a
implementação das normas, no desenvolvimento de softwares capazes de atender as normas foco
deste trabalho e necessidades desta pesquisa. É importante ressaltar que este trabalho tem foco
no desenvolvimento do controlador CNC, visando a atenção dos fabricantes de controladores
CNC e não sob ponto de vista dos usuários das máquinas ferramenta.
Para a construção dos FBs e suas redes são necessários softwares para auxiliar o trabalho. Os
softwares encontradas nas literaturas, aderentes à norma IEC 61499, possuem limitações/falhas
que dificultam o uso. Uma hipótese é a construção de ferramentas para execução, visualização,
criação e edição de FBs e rede de FBs. Outro problema encontrado na questão da integração das
normas está na forma de representação dos dados STEP-NC em FBs. Uma hipótese é reunir,
em FBs de serviço de comunicação dentro de um resource, todos os dados referente de um
executable, como dados da feature e dados do processo associado. Esse bloco de serviço de
comunicação, possuindo todos os dados, invocará a instância do resource do tipo de executable,
constituinte da bibliteca de FBs, e executará os cálculos do caminho da ferramenta e uso dos
parâmetros. Como saída, a hipótese é a criação de equações de movimentos (linear, circular, entre
1.1 Objetivos do Trabalho 25
outros) que poderão ser enviados para o controlador de baixo nível e/ou simuladores gráficos.
Neste trabalho será usada a expressão “controlador de baixo nível” para representar o CLP ou
microcontrolador responsável por controlar o acionamento dos drivers de potência dos motores.
Vale destacar também a busca pela característica de interoperabilidade, onde neste trabalho é
buscada a interoperabilidade de informação entre o setor de projeto e o chão de fábrica e a porta-
bilidade do código STEP-NC entre os controladores CNC, características garantidas pela norma
ISO 14649 com o uso do modelo de dados STEP-NC. É buscada também a interoperabilidade
no nível de controle do CNC, onde a aderência a estrutura de controle à norma IEC 61499 traz
essa característica ao controlador.
Desenvolver um controlador CNC que utilize diretamente o arquivo STEP-NC, sem o uso de
código G/M, tendo como arquitetura para comando de máquina o uso de Blocos de Função
aderentes à IEC 61499 e que o controlador possua as características de: portabilidade, interopera-
bilidade, configurabilidade, uso de features, autonomia, distribuição e adaptabilidade.
• Desenvolver um compilador para ler o arquivo STEP-NC de entrada e gerar como saída
arquivos no formato XML contendo instâncias FBs e de modelos IEC 61499;
• Construir uma biblioteca de tipos de blocos de funções e modelos IEC 61499, que deve
possuir um modelo de recurso para cada executável da norma ISO 14649;
Essa pesquisa se classifica, segundo Silva e Menezes (2001), no tipo da pesquisa aplicada
por sua natureza, onde objetiva gerar conhecimentos para aplicação prática dirigidos à solução
de problemas específicos. Quanto à forma de abordagem do problema, o tipo quantitativo é
mais destacado, mas também a abordagem qualitativa é adotada. A classificação quanto aos
objetivos, será utilizada a pesquisa exploratória para descrição do problema de forma a torná-
lo explícito, envolvendo levantamento bibliográfico nesta fase. Contudo, na parte prática do
trabalho, esta pesquisa possui características da pesquisa explicativa, utilizando de um método
experimental (protótipo) para provar os objetivos. E por último, quanto aos procedimentos
técnicos de uma pesquisa, este trabalho se utiliza de: pesquisa bibliográfica, pois utiliza de
materiais já publicados; pesquisa experimental, onde possui o objetivo de estudo determinado e
busca nos padrões as variáveis capazes de influenciar o objetivo alvo; estudo de caso onde se
aprofunda no detalhamento das características individuais das normas.
Neste trabalho, as normas ISO 14649 ou STEP-NC e a IEC 61499 ou FBs são objetos da
pesquisa. A integração das normas, de forma automática, é buscada para a construção de um
controlador CNC interoperável. Neste trabalho o controlador utiliza como entrada de informações
o arquivo STEP-NC no formato ISO10303-21. Não é objetivo desta pesquisa a construção deste
tipo de arquivo, não provendo de editor ou gerador de arquivo STEP-NC. Visa implementação
de um controlador CNC com um número limitado de features prismáticas e processos da norma
ISO 14649, perante a grande quantidade de features descritas na norma. As operações analisadas
são para uma fresadora CNC 2,5D, cujos eixos são comandados por servoacionamentos.
Hoje, o software e hardware disponíveis nas máquinas ferramenta CNC tornam possível
simular graficamente o movimento da ferramenta e a remoção do material, controlar a vida útil
2.2 Troca de Dados nos Sistemas de Manufatura 29
da ferramenta e realizar controle adaptativo em tempo de execução para melhoria dos processos
de usinagem. O maior desenvolvimento do CNC ocorreu com a aplicação de controladores de
software, os CLP, onde a lógica é implementada em software em vez de hardware.
O papel básico de um sistema CAD é definir com precisão a geometria de um projeto de uma
peça. Essa definição, realizada no CAD, é fundamental para todas as atividades subsequentes do
ciclo do produto. Como cada sistema CAD tem seu próprio método de descrever a geometria,
matematicamente e estruturalmente, há sempre alguma perda de informação ao traduzir os dados
de um formato de dados CAD para outro, e para outros sistemas auxiliados por computador
como o CAM (WANG, 2009).
Desde o início dos sistemas CAD/CAM, o problema da portabilidade dos modelos entre
sistemas foi umas das questões chaves a dificultar a disseminação destas ferramentas. Muitas
soluções foram propostas na direção de padronização e uso de normas para a troca de dados,
tais como SET (Standard d’Exchange et de Transfer), VDA (Verdand des Automobilindustrie)
e IGES (Initial Graphics Exchange Standard), os quais obtiveram sucesso parcial pois não
supriram plenamente as necessidades da indústria (XU; WANG; RONG, 2006; ROSSO Jr.;
ALLEN; NEWMAN, 2002). Para resolver o problema de falta de um padrão internacional aceito
pela maior parte dos usúarios, a ISO desenvolveu o padrão para intercâmbio de modelos de
dados de produtos, a ISO 10303 ou STEP. Esta norma possibilita a troca de dados, através de um
sistema neutro, entre os programas utilizados no desenvolvimento de produtos de engenharia e
será melhor detalhada na seção 2.3 deste trabalho.
2.3 ISO 10303 ou STEP 30
Embora esses esforços permitiram a criação de tradutores STEP pelos fornecedores, seu uso
na cadeia de manufatura era limitado. Um grande obstáculo tem sido a falta de interligação dos
sistemas computacionais CAD/CAM com o CNC, isso devido às capacidades de programação
limitada do código G/M utilizada nos controladores CNC (ROSSO Jr., 2005).
A norma ISO 10303 possui suporte ao desenvolvimento durante toda a cadeia de processo, de
maneira que as informações permaneçam íntegras e consistentes durante todo o ciclo de vida
do produto. Isso faz com que a troca de dados se torne eficiente entre os diversos setores da
empresa, fabricantes e fornecedores. A norma STEP proporciona esse padrão de armazenamento
de dados através da criação de vários AP (Application Protocol) dirigidas a diferentes domínios
de aplicações, seja ele de projeto, usinagem ou manutenção (WANG, 2009). O padrão STEP é
um padrão neutro que é adequado para as necessidades industriais, diferente de outros padrões
como SET, VDA e IGES que, como dito anteriormente, obtiveram um sucesso parcial (ROSSO
Jr.; NEWMAN, 2003).
Um dos aspectos mais importantes da norma STEP é a sua extensibilidade. Essa extensibi-
lidade é obtida através do uso de uma linguagem formal para a modelagem de dados, a qual é
aplicada utilizando a linguagem EXPRESS (ROSSO Jr., 2005). Melhorias futuras para STEP
podem introduzir outros métodos de descrição, mas EXPRESS é o instrumento fundamental
utilizado para descrever os modelos de informações e protocolos de aplicação que são a maior
parte da norma.
2.3 ISO 10303 ou STEP 31
2.3.2 Estrutura STEP
O padrão STEP está dividido em muitas partes. Estas partes abrangem temas como métodos
utilizados para descrever a norma, arquiteturas de implementação, os procedimentos de testes
de conformidade, modelos de informação de recursos e protocolos de aplicação (LOFFREDO,
2000).
A estrutura desta norma é descrita na ISO 10303 Parte 1 (ISO, 1994a), como segue (ROSSO
Jr., 2005; WANG, 2009):
1. Visão geral e princípios fundamentais (Parte 1): Este é um documento simples, dando uma
visão geral de STEP e uma exposição de seus princípios fundamentais;
5. Recursos integrados genéricos (Partes 41 a 99): fornece um meio flexível para criar a
integração entre diferentes aplicativos;
6. Recursos integrados de aplicação (Partes 101 a 199): estes são os modelos de informação
EXPRESS com um foco mais específico;
7. Protocolos de aplicação (Partes 201 a 299): Estas são as partes destinadas à aplicação na
indústria. Especificam os requisitos para dados de aplicações de um domínio específico da
engenharia. Descrevem as estruturas de dados para um modelo de produto.
Um pacote de software CAM é usado para criar dados, tais como o caminho de ferramenta e
especificar ferramentas de corte que serão utilizados na usinagem da peça. Uma vez criado o
caminho da ferramenta em dados CL (Cutter Location), estes são pós-processados em códigos
de máquina que contêm os movimentos da máquina. O pós-processador é desenvolvido para
uma máquina específica, onde contém códigos proprietários de um único modelo máquina CNC.
Em geral o código G/M é o padrão de dados utilizado para descrever para um CNC como fazer
uma peça. Essa característica traz um problema de interoperabilidade de código entre máquinas.
Durante o processo de transição do CAM para o CNC, não é dada qualquer informação ao CNC
sobre o que ele está fazendo ou porque as instruções têm de ser executadas na ordem dada
(ROSSO Jr., 2005).
A Figura 2.1 mostra um exemplo de umaa linha de programa em cógigo G/M (ISO 6983).
Alguns problemas enfrentados pelo uso da ISO 6983 estão resumidos a seguir (WANG,
2009):
• O arquivo gerado contendo o código G/M tem que ser gerado por um pós-processador
para uma máquina específica, para obter o conjunto de comandos de baixo nível. Essa
transição para o baixo nível pode desprezar de dados que a princípio não são relevantes,
mas dificulta ou até mesmo impede a verificação e simulação;
• A norma suporta apenas uma forma de fluxo de informações, isto é, do projeto para a
fabricação. Assim, mudanças feitas no chão de fábrica não podem ser enviadas de volta
ao setor de projeto, acarretando em que as experiências sobre o chão de fábrica não são
preservadas;
• O código G/M define apenas três modos de movimentos (linear e circulares). O código
G/M não suporta curvas spline, o que o torna incapaz de interpretar dados de superfícies
complexas diretamente.
Apesar do desenvolvimento que tem melhorado a arquitetura dos softwares e das máquinas-
ferramenta CNC, os fabricantes e usuários procuravam uma infraestrutura comum para os
sistemas CAD, CAE, CAPP, CAM e CNC que integrasse e traduzisse a informação de cada um
dos estágios da cadeia. Com o propósito de prover um padrão consistente e de qualidade para
a manufatura baseada em CNC é que a ISO 14649, também conhecida como STEP-NC, foi
desenvolvida (ROSSO Jr.; NEWMAN, 2003).
Contrária à atual norma ISO 6983, a STEP-NC não é um método para programação da peça
e normalmente não descreve o movimento da ferramenta para a máquina CNC. Em vez disto,
provê um modelo de dados orientado a objeto para CNC com uma interface de dados detalhada
e estruturada que incorpora a programação baseada em features, onde uma série de informações
são representadas, como as features a serem usinadas, tipos de ferramentas usadas, as operações
a executar, e a sequência de operações a ser seguida (BENAVENTE, 2011).
A Figura 2.2 mostra a diferença do fluxo de informaçôes entre o cenário atual da manufatura
baseada em CNC usando a ISO 6983 onde o fluxo de informação é unidirecional entre os sistemas
CAD/CAM e CNC (lado esquerdo da figura) e o fluxo bidirecional com o uso da STEP-NC
(lado direito da figura). Além disso, algumas informações disponíveis nos sistemas CAD/CAM
são parcialmente perdidas quando pós-processadas para código G/M, pois o padrão não fornece
suporte para a maioria das informações (ROSSO Jr., 2005).
O lado esquerdo da Figura 2.2 revela a deficiência existente com o uso dos CNC convencio-
nais, onde o sentido do fluxo de informação é único, do setor de projeto para o chão de fábrica
e sem a possibilidade de rotorno de informações. Além disso, a informação transmitida possui
comandos específicos para uma máquina específica, não sendo possível a troca de máquina sem
alteração no código. Já o lado direito revela uma troca de informações de alto nível, possuindo
termos de manufatura na estrutura do arquivo.
Segundo Zhu, Wang e Fu (2006) e Xu e Newman (2006), alguns dos maiores benefícios do
uso da STEP-NC podem ser resumidos em:
• Tanto a descrição baseada em features como o modelo da estrutura na ISO 14649 são
2.5 ISO 14649 ou STEP-NC 36
Figura 2.2: Diferença de fluxo de informação com o uso do código G/M e com o uso de STEP-NC
• Seus elementos de dados são suficientes para descrever os dados da tarefa NC;
• Os tempos de usinagem podem ser reduzidos, pois otimizações inteligentes podem ser
construídas dentro do controlador STEP-NC;
2.5 ISO 14649 ou STEP-NC 37
• Arquivos XML podem ser usados para transportar informações, permitindo manufatura
distribuída baseada em Web.
Outro aspecto importante é que o uso de STEP-NC significa trabalhar com formalismo
NC único para qualquer software de máquina-ferramenta, já que nenhuma operação de póspro-
cessamento é necessária. O formalismo STEP-NC, consequentemente, aumenta a eficácia dos
equipamentos de manufatura através da possibilidade do desenvolvimento de abordagens de
programação inteligente, IA (Inteligência Artificial), e tornando esses equipamentos e softwa-
res mais interoperáveis através da troca de dados de alto nível em toda a cadeia de dados da
manufatura (RAUCH et al., 2009).
Efetivamente, STEP-NC define um padrão de dado de entrada para sistemas CNC. Como a STEP-
NC é uma extensão da STEP para tratamento de processos NC, ela segue estritamente o padrão
STEP (WANG, 2009). O modelo de dados baseado em STEP-NC contém dados geométricos,
características de usinagem, dados do processo de usinagem e dados de ferramentas. Os dados
geométricos são originados do CAD, e descritos na ISO 10303 AP2032 , incluindo todas as
informações necessárias para definir a geometria final da peça. Dados das features de usinagem
e dados do processo de usinagem são gerados pelo CAM (AP2243 , AP2144 ), onde definem os
parâmetros tecnológicos e as ferramentas a serem usadas durante processo que são normalizadas
pela ISO 14649. No modelo de dados ISO 14649 os objetos Workingsteps, um para cada feature,
associam ferramentas e parâmetros tecnológicos, e a sequência desses Workingsteps é posta em
um plano de trabalho (ISO, 2003a). A Figura 2.3 mostra uma descrição geral do modelo de
dados.
Existem dois métodos para implementar um programa de dados STEP-NC. O padrão ISO
14649 é um ARM (Application Reference Model), enquanto a ISO 10303-238 é um protocolo
de aplicação (AP) que implementa o AIM (Application Interpreted Model) em um contexto
STEP-NC, permitindo melhor integração com outros protocolos de aplicação da ISO 10303. O
modelo ARM, que é a implementação utilizando a ISO 14649, é mais simples e apropriada para
2
AP203 Protocolo de Aplicação: Configuração controlada de projetos 3D de peças mecânicas e montagens.
3
AP224 Protocolo de Aplicação: Definição de produto mecânico para planos de processo utilizando recursos de
usinagem.
4
AP214 Protocolo de Aplicação: Dados básicos para projetos mecânico automotivo.
2.5 ISO 14649 ou STEP-NC 38
A norma ISO 14649 segue a estrutura STEP onde há um padrão geral para as diretrizes e mui-
tas partes que descrevem cada ramo de tecnologia ou processo, como fresamento, torneamento,
EDM (Electrical Discharge Machining), como mostrado na Figura 2.4.
A Figura 2.4 mostra as relações entre os protocolos de aplicações STEP e ISO 14649 e
também a estrutura da ISO 14649. Pode-se perceber na figura que a ponte para transformar um
modelo de produto em um programa de usinagem são as features tecnológicas descritas na ISO
10303 AP224 (ROSSO Jr., 2005).
Entity: é o tipo de dado, construtor, mais importante da EXPRESS. Ele faz uso de atributos para
definir suas propriedades. Uma entidade pode se relacionar com outras de duas formas:
hierarquicamente sendo “SUBTYPE”/ “SUPERTYPE”, ou por atributos. A entidade
“SUPERTYPE” pode ter múltiplas “SUBTYPE”, podendo ser ou não “ABSTRACT”. Os
dados presentes na entidade podem ser restringidos, fazendo uso de “WHERE RULES”,
onde são expressões que precisam cumprir as regras para o código ser aceito;
Enumeration: define pedaços de textos específicos, como por exemplo: “TRUE” ou “FALSE”
para o tipo “BOOLEAN”;
Defined: especializa tipos de dados declarados anteriormente, como por exemplo, quando se
precisa do tipo INTEGER” > 0;
Select: define uma escolha entre duas entidades ou dois tipos, por exemplo: um atributo “TOLE-
RANCE_SELECT” pode ser uma entidade “PLUS_MINUS_VALUE” ou uma entidade
“LIMITS_AND_FITS”;
Simple: os tipos simples podem ser equivalentes aos tipos primitivos de linguagens como Java,
esses são: “STRING”, “BINARY”, “BOOLEAN”, “LOGICAL”, “NUMBER”, “INTE-
GER” e “REAL”;
Um arquivo físico STEP-NC pode ser implementado de várias formas, que mapeiam as
estruturas EXPRESS em formatos de implementação, dentre elas destacam-se: XML (ISO,
2007), formato textual simples (ISO, 1994b) e Java (ISO, 2000). Neste trabalho será tratado o
arquivo STEP-NC implementado de acordo com estrutura definida pela ISO10303-21, muitas
vezes chamada apenas de Parte 21. A Parte 21 é composta por duas grandes seções: a primeira
intitulada “HEADER” e uma segunda seção nomeada “DATA”. Na seção HEADER têm-se
informações e observações gerais da peça, que são dados como: nome do arquivo, autor, data
do projeto, esquema, organização, entre outros. A segunda e mais importante seção, “DATA”,
contém todas as informações sobre a geometria, características e tarefas de usinagem.
Pode-se dividir a segunda parte em três grupos: “Identificação da peça, plano de trabalho e
executáveis”, “Descrição da tecnologia” e “Descrição de geometria e topologia” (ROSSO Jr.,
2005). A Figura 2.5 mostra a estrutura de um arquivo STEP-NC, e será melhor detalhado a
seguir.
3 Automação da Manufatura
Neste capítulo será tratada outra área que fundamenta esta pesquisa, a área de automação da
manufatura. É apresentada a situação atual da tecnologia de automação industrial em que se
encontram as indústrias de transformação, onde são destacadas as dificuldades enfrentadas com
a atual arquitetura. E com o intuito de apontar uma solução para esse problema, é apresentada a
norma IEC 61499.
• Primeira Geração: nesta primeira geração, em torno do anos de 1950, os controladores eram
constituídos basicamente de contatos e bobinas conectados por cabos elétricos. Qualquer
alteração na aplicação exigia uma mudança na disposição dos circuitos elétricos;
• Quarta Geração: essa geração conta com a arquitetura baseada em redes distribuídas,
onde todos os dispositivos são vistos como nós independentes na rede. Para alcançar este
3.2 Programação de CLP 44
nível de flexibilidade, cada um dos dispositivos deve ser equipado com uma interface
para comunicações com a rede. Como resultado, os dispositivos são conectados todos
a uma mesma rede, onde a adição de um novo dispositivo à rede não requer a adição
de mais fiação. Isto torna a reconfigurabilidade do sistema muito mais fácil comparada
com o sistema centralizado. Com essa arquitetura a fiação não limita a localização dos
dispositivos, podendo assim os dispositivos serem distribuídos conforme a necessidade.
E ainda, que as próximas gerações serão caracterizadas pelo uso de componentes verdadeira-
mente inteligentes, capazes de criar “sociedades” e reconhecer as capacidades uns dos outros
e da “sociedade” como um todo. A facilidade de integração dos componentes é um benefício
imediato, mesmo para componentes muito simples. Outros benefícios podem surgir a partir do
comportamento autônomo dos componentes que podem reagir melhor às mudanças no ambiente
em que se encontram.
O CLP tem sido utilizado como plataforma para implementação de algoritmos de controle
em aplicações industriais (HUEMEI, 2010). Após a sua inserção no mercado, várias empresas
desenvolveram CLPs com diferentes linguagens de programação, sistemas operacionais e ambi-
entes de execução. Para reduzir a complexidade para o usuário de CPLs, a IEC elaborou a norma
IEC 61131. A parte 3 (INTERNATIONAL ELECTROTECHNICAL COMMISSION, 2003)
do padrão foi publicada inicialmente em 1992, e especifica cinco linguagens de programação
para CLP, tendo como base as linguagens já existentes, contudo abstrai as peculiaridades propri-
etárias. As cinco linguagens definidas se dividem em duas categorias. As linguagens textuais
são Instruction List (IL) e Structured Text (ST). Outra categoria são as linguagens gráficas, a
linguagem chamada (FBD) Function Block Diagram, Ladder Diagram (LD) e a Sequential
Function Chart (SFC). Com a padronização das linguagens diminuiu o esforço de treinamento
(OTTO; HELLMANN, 2009). Apesar destes avanços da IEC 61131-3, o reaproveitamento direto
de elementos de software ainda não era possível, pela adoção apenas parcial da norma ou pelas
extensões realizadas por alguns fabricantes.
Embora a norma IEC 61131 tenha provado a sua adequação para a programação de aplicações
de CLPs independentes, ela não fornece suporte conveniente para a concepção e implementação
de aplicações de automação distribuídas (FAY; ZURAWSKI, 2009). Nestas aplicações, vários
3.3 Comparativo entre as normas IEC 61131 e IEC 61499 45
controladores (e, além disso, sensores e atuadores com capacidades embutidas de controle) estão
interligados, e a comunicação entre eles deve ser garantida. Como consequência, a norma IEC
61499 foi concebida em antecipação à crescente demanda por automação distribuída. Não se
destina a substituir o padrão IEC 61131, mas propõe uma linguagem em nível de sistema para
sistemas de automação distribuídos, fazendo assim a ponte entre as linguagens de programação
para CLP apoiada pela IEC 61131 e os requisitos de projeto de sistemas distribuídos.
A norma IEC 61499 foi desenvolvida baseada na já consolidada norma IEC 61131, para
aumentar a qualidade e confiabilidade do software e reduzir o tempo de desenvolvimento para
aplicações de controle distribuídos na automação industrial. A seguir são destacadas as diferenças
entre os modelos de blocos de função,function block (FB), das normas IEC 61131-3 e IEC 61499
(LEWIS, 2001).
Uma das deficiências existentes no conceito de FB introduzido pela norma IEC 61131 está
na ordem de execução dos FBs. A ordem de execução é determinada pela dependência de outros
blocos, normalmente da esquerda para a direita, porque os blocos da direita dependem dos
valores de saída dos blocos da esquerda. O problema enfrentado devido a essa dependência
está em sistemas com redes complexas, onde ocorrem realimentações, pois é muito difícil a
determinação da ordem de execução da rede. No intuito de contornar essa dificuldade, os sistemas
de programação oferecem formas adicionais, não abrangidas pelo escopo da norma IEC 61131,
para determinação da ordem de execução da rede de FBs. O modelo de FBs da IEC 61131
define ainda variáveis globais, pelas quais é possível transferir dados e sinais de controle entre
programas rodando em diferentes recursos. A transferência de dados entre processos utilizando
variáveis globais é uma forma ruim e muitas vezes insegura, pois a identificação de onde e
quando as variáveis foram atualizadas fica difícil. Além do mais, as formas oferecidas dentro da
configuração para manipular a inicialização de variáveis globais não são definidas na norma.
Outra característica deficiente da norma IEC 61131-3 está na existência das variáveis de
acesso. Estes são um subconjunto de variáveis dentro de uma configuração e podem ser acessadas
através da interface de comunicação de outro CLP utilizando FB de comunicação. Um modelo
de comunicação mais consistente foi necessário para que pudesse ser utilizado não somente para
comunicação entre os CLP, mas também em todo tipo de dispositivos distribuídos através de
uma rede industrial.
3.4 IEC 61499 - Modelos e Conceitos 46
Na Tabela 3.1 tem-se um comparativo entre as normas IEC 61131 e IEC 61499.
Tabela 3.1: Comparação das Características entre IEC 61131 e IEC 61499. Adaptado de Zoitl et
al. (2009)
A partir desta tabela, pode-se conhecer as principais diferenças entre as normas, onde
percebe-se que a IEC 61499 é uma extensão da IEC 61131.
A base de toda a arquitetura da norma IEC 61499 consiste no modelo de bloco de função
(LEWIS, 2001). O bloco de função é uma abstração que representa um componente que pode ser
implementado usualmente em forma de software, mas também pode ser implementado na forma
de hardware (VYATKIN, 2007). As principais características de um FB são (LEWIS, 2001):
• Cada FB tem o nome do tipo e um nome de instância. Sempre devem ser mostrados quando
o bloco é visualizado graficamente;
• Cada bloco possui um conjunto de eventos de entrada, os quais podem receber eventos de
outros blocos via conexões de eventos;
• Existe um ou mais eventos de saída, os quais podem ser usados para propagar eventos para
outros blocos;
• Há um conjunto de entrada de dados que permite que os valores dos dados sejam passados
a partir de outros blocos;
• Cada bloco pode ter um conjunto de variáveis internas que são usadas para armazenar
valores retidos entre a chamada dos algoritmos;
é uma simplificação da Sequential Function Charts definida pela IEC 1131-3 (VYATKIN;
HANISCH, 2000).
No “corpo” do bloco de função, onde são conectados os dados de entrada e saída, contém
os algoritmos e dados internos que ficam ocultos dentro do bloco. O fato dos algoritmos e
dados internos ficarem ocultos dentro do bloco faz com que o usuário do FB não necessite ter o
conhecimento de sua concepção interna para utilizá-lo (LEWIS, 2001).
Um importante conceito na IEC 61499 está na capacidade de definir o tipo de bloco de função,
que define o comportamento e interfaces das instâncias dos blocos de funções que são criados a
partir do tipo (LEWIS, 2001; IEC, 2005a). Uma instância de um bloco de função é caracterizada
pelo nome do tipo e nome da instância, um conjunto de dados de entrada/saída, um conjunto
de eventos de entrada/saída, um grafo de controle de execução, dados internos, e algoritmos
internos. Os nomes do tipo e da instância são usados unicamente para identificação do bloco de
função, os dados e eventos de entrada e saída são necessários para a interconexão de diferentes
blocos de funções para formar um sistema, enquanto o controle de execução, os dados internos,
e os algoritmos internos descrevem o comportamente do bloco de função (LUDER et al., 2005).
Neste trabalho serão estudados os três principais tipos de blocos: básico, composto e de
3.4 IEC 61499 - Modelos e Conceitos 49
serviço de interface.
FBs do tipo básico são estruturas de software projetadas para implementar funções básicas de
controle, como cálculos simples, tratamento de eventos, entre outros (VYATKIN, 2007). O seu
comportamento é definido em termos dos algoritmos que são invocados em resposta a eventos
de entrada. Após a execução do algoritmo, eventos de saída são disparados. O mapeamento
dos eventos para os algoritmos é expresso usando uma notação especial de transição de estado,
chamada de Execution Control Chart ou ECC (LEWIS, 2001).
Um bloco de função básico, como o da Figura 3.2, possui uma interface, uma função de
controle de execução ECC, algoritmos, e variáveis internas. As variáveis internas de um bloco de
função não podem ser acessados de fora e podem ser usados somente por algortimos internos de
um bloco de função particular. Os números de 1 a 8 é a representação para sequência de tempos
que define a execução do FB e será descrita em seguida.
Os algoritmos contidos dentro do bloco de função básico são estruturas de códigos operando
sobre entradas, saídas e dados internos. A norma recomenda que o algoritmo pode ser programado
em uma das cinco linguagens definidas pela norma IEC 61131 ou podem ser escritos em qualquer
outra linguagem suportada pelo ambiente de execução (FINKE Jr., 2011).
A norma define a execução de um FB básico como uma sequência de oito tempos (internos),
conforme representado pelos números na Figura 3.2 (DUNBININ; VYATKIN, 2008):
1 - Os valores das variáveis de entrada relevantes para o evento de entrada se tornam disponíveis;
5 - O algoritmo completa a computação dos valores para as variáveis de saída associadas com o
evento de saída;
É importante notar que há uma série de restrições sobre este modelo de execução. Estas
fases de tempo não podem se sobrepor e devem ocorrer na ordem prescrita para que o bloco de
função seja executado corretamente. No entanto, em algumas implementações, algumas fases
podem ser de tão curta duração que podem ser consideradas instantâneas. A IEC 61499 não
define limites para nenhuma dessas fases. No entanto, ela afirma que, em qualquer modelo de
bloco de função deve ser possível definir a duração das diferentes fases, a fim de modelar com
precisão as características de tempo da rede completa (LEWIS, 2001).
3.4 IEC 61499 - Modelos e Conceitos 51
3.4.2.2 Bloco de Função Tipo Composto
Um FB composto não possui variáveis internas, exceto para armazenagem dos valores dos
eventos e dados de entrada e saída. Os membros da rede de blocos de funções dentro do bloco
composto podem ser ligados uns aos outros e com a interface do bloco composto através de
conexões de dados e eventos (VYATKIN, 2007). Ao contrário dos FBs básicos, o FB composto
não possui função de controle de execução (ECC). A lógica particular de chamada dos FBs
na rede de blocos dentro do FB composto pode ser implementada usando um bloco de função
externo do tipo básico, como um supervisor, onde este bloco supervisor poderia emitir eventos
para ativar os blocos da rede (VYATKIN, 2007).
3.4 IEC 61499 - Modelos e Conceitos 52
3.4.2.3 FB Tipo Serviço de Interface
A norma IEC 61499 não define padrões para tipos específicos de blocos de função de serviço
de interface, mas estipula que esses devam ser definidos usando um padrão para as variáveis
de entrada e saída e para eventos de entrada e saída (LEWIS, 2001). Dentro dos blocos de
funções de serviço de interface, a comunicação é especialmente importante, onde a norma se
refere a dois padrões genéricos: os PUBLISH/SUBSCRIBE para comunicação unidirecional e
CLIENT/SERVER para comunicação bidirecional. Estes padrões podem ser ajustados para o
mecanismo de comunicação de uma implementação particular (VYATKIN, 2007). Deve-se notar
que o padrão não faz nenhuma tentativa de definir FBs específicos de serviço de interface, pois é
claro que cada sistema terá seus próprios requisitos particulares (LEWIS, 2001). Entretanto, a
norma padroniza os principais parâmetros de entrada e saída do FB, embora nem todos precisam
necessariamente ser utilizados na definição do tipo do FB (LEWIS, 2001). Dois exemplos de
blocos de função de serviço de interface são mostrados nas Figuras 3.4 e 3.5.
entre dois blocos de função, o valor PARAMS (endereço IP, por exemplo) deve ser o mesmo em
ambos. No exemplo apresentado, ambos os blocos de função, PUBLISH e SUBSCRIBE, são
inicializados pelo evento INIT+ conforme mostrado no diagrama temporal da Figura 3.6.
Uma aplicação é uma rede de intâncias de FBs interconectados por eventos e dados (VYATKIN;
DUNBININ, 2006). Ela define completamente a funcionalidade desejada do sistema, mas não
especifica a estrutura do sistema em termos dos dispositivos computacionais onde os FBs serão
executados (VYATKIN; DUNBININ, 2006; VYATKIN, 2007). É por isso que uma aplicação
geralmente não inclui FBs que implementem transferência de dados através de redes, bem como
outras funções dependentes de hardware, como a leitura de sinais de entradas (VYATKIN;
DUNBININ, 2006).
Recurso é uma unidade funcional contida dentro de um dispositivo que possui controle indepen-
dente de suas operações, e que provê vários serviços para as aplicações, incluindo sequenciamento
e execução de algoritmos (VYATKIN; HANISCH, 2000). Um recurso pode ser considerado
como um contêiner para uma rede de FBs o qual suporta fragmentos da aplicação distribuída
(VLAD et al., 2010). Cada recurso possui controle independente de suas operações. Isto significa
que um recurso pode ser criado, configurado, parametrizado, inicializado, apagado, etc., sem
afetar outros recursos dentro do dispositivo (VYATKIN, 2007; LEWIS, 2001).
A função de um recurso é aceitar dados e/ou eventos do ambiente, por exemplo sensores,
3.4 IEC 61499 - Modelos e Conceitos 56
e/ou interface de comunicação, dados e/ou eventos do processo, e retornar dados e/ou eventos
para o ambiente e/ou interfaces de comunicação, como especificado pela aplicação que utiliza o
recurso (VYATKIN, 2007).
Dentro do recurso é mostrada uma rede interconectada de blocos de funções conectados por
ligações de dados e eventos. A função de sequenciamento provida pelos recursos garante que
os algoritmos encapsulados dentro dos blocos de funções sejam executados na ordem correta
(LEWIS, 2001). Os FBs de serviço de interface foram melhor explicado em subseção 3.4.2.3.
Um dispositivo representa uma unidade de controle, o qual pode possuir zero, um ou mais
recursos, juntos com interfaces de processos e interfaces de comunicação (VLAD et al., 2010;
LEWIS, 2001). O dispositivo é um elemento atômico de um sistema. O modelo de dispositivo é
mostrado na Figura 3.10.
A Classe 1 representa dispositivos de programação simples, o qual pode criar novas instân-
cias de blocos de funções a partir de uma biblioteca de tipos de blocos de funções, conforme
visualizado na Figura 3.12.
A Classe 2 representa a completa reprogramação dos dispositivos onde a biblioteca dos tipos
de blocos de funções pode ser extendida, conforme visualizado na Figura 3.13.
3.4 IEC 61499 - Modelos e Conceitos 58
O sistema representa a estrutura mais complexa da arquitetura da IEC 61499 e é definida como
um conjunto de dispositivos onde os FBs das aplicações são alocados (VLAD et al., 2010).
Ela define ainda a relação de comunicação de dispositivos e aplicações (LEWIS, 2001). Os
dispositivos são conectados uns aos outros, tanto dentro de redes de comunicação, e também
com o processo controlado, por meio de interfaces de processo (VLAD et al., 2010).
A Figura 3.14 ilustra o conceito geral de um sistema distribuído genérico da IEC 61499, em
que os dispositivos podem comunicar-se uns com os outros sobre um ou mais links de comunica-
ção e possíveis interfaces com máquinas e processos a controlar. Isto pode ser reconhecido como
3.4 IEC 61499 - Modelos e Conceitos 59
Um sistema pode ser dito realizável se cada dispositivo contiver e suportar os tipos de FBs
que são mapeados nele, ou seja, deverá conter os tipos de FBs instanciados na biblioteca do
dispositivo. Caso contrário, o bloco não será instanciado, e o sistema não executará (VYATKIN,
2007).
4 Tecnologias Correlatas
Neste capítulo serão abordados temas que serão utilizados no decorrer deste trabalho e necessitam
ser descritos para melhor compreensão por parte do leitor.
Existem atualmente três principais tipos de controladores para uma máquina CNC (CA-
PELLI, 2006), são eles:
• Cartão de controle do movimento com PC: este sistema possui uma placa de controle de
movimentação adicionada em um microcomputador. Essa placa, geralmente baseada em
circuito com DSP (Digital Signal Processor), executa as tarefas de movimentação. Com
isso o computador fica com as funções que não necessitam de processamento em tempo
real.
O primeiro tipo de controlador apresentado permite uma integração e garante grande com-
patibilidade, porém é uma arquitetura completamente proprietária, não sendo aberta e nem
reconfigurável. O segundo controlador apresentado, onde a parte fundamental é o NC, é uma
caixa preta, possuindo códigos completamente proprietários. Já o terceiro controlador, também
pode ser nomeado de controlador numérico baseado em PC (personal computer - computador
pessoal), possui maior flexibilidade do que um sistema proprietário NC, porém essa arquitetura
ainda não é totalmente aberta, possuindo cartões de controle proprietários.
4.2 Compilador 62
Ainda segundo Capelli (2006), a Figura 4.1 consiste em uma arquitetura típica de um CNC
e seus periféricos para uma fresadora de três eixos. Nesta arquitetura, todo o processamento é
realizado no CNC.
Já na Figura 4.2 tem-se uma nova arquitetura CNC, onde um CLP foi adicionado para
realizar o controle e monitoramento dos sensores e atuadores. Com isso, o CNC fica responsável
apenas pelo tratamento do programa de usinagem e interpolação.
A diferença principal entre as duas arquiteturas é a presença do CLP, que permite um melhor
desempenho na máquina-ferramenta a CNC pois, ao invés de ter um processamento local, tem
um processamento separado.
4.2 Compilador
Um compilador é um programa que pode ler outro programa escrito em uma linguagem -
a linguagem fonte - e gerar um programa equivalente em outra linguagem - a linguagem alvo
(AHO; SETHI; ULLMAN, 1986).
4.3 Servoacionamento 63
Um compilador utiliza um modelo típico de fases que transformam a representação da
linguagem fonte em alvo, seguindo uma ordem, conforme são detalhadas a seguir (AHO; SETHI;
ULLMAN, 1986):
Análise sintática: Faz o agrupamento dos tokens em uma árvore sintática representando a
estrutura gramatical da linguagem.
Gerador de código alvo: Recebe como entrada o código intermediário e o mapeia para a
linguagem alvo.
A front-end agrupa todas as fases de análise do código fonte de uma linguagem, enquanto
a back-end faz a síntese e geração de código conforme a aplicação desejada. A interface entre
as partes é um código intermediário gerado pela front-end, onde qualquer back-end atrelada a
qualquer conjunto hardware/software possa interpretar. Essa estrutura permite que diferentes
linguagens trabalhem com uma linguagem alvo, trocando apenas a front-end, ou que uma única
linguagem funcione com distintas linguagens alvo, trocando apenas as back-ends.
4.3 Servoacionamento
4.3.1 Servomotor
O servomotor é uma máquina síncrona composta por um estator bobinado e um rotor constituído
de imãs permanentes. Sua alimentação, apesar de trifásica, não pode ser efetuada através da rede
4.3 Servoacionamento 64
convencional, pois possui um bobinamento totalmente especial, confeccionado para proporcio-
nar uma alta dinâmica ao motor através de um fluxo eletromagnético totalmente diferente do
proporcionado pela rede. O valor deste fluxo eletromagnético é calculado pelo servoconversor
através de um modelamento matemático que leva em consideração todas as características do
servomotor. Na subseção seguinte será detalhado o servoconversor WEG (2010a).
• Isolamento Classe F;
Algumas características fazem do servomotor uma ótima opção para o controle de uma
máquina ferramenta. Podem-se citar alguns tópicos vantajosos com o seu uso:
4.3.2 Servoconversor
• Alto desempenho;
• Porta USB;
Um fator que torna o controle com servoacionamentos preciso, é a realimentação feita através
do resolver para o servoconversor. O resolver é um transformador de alta frequência, onde o
primário está no rotor e dois secundários no estator. Ele funciona como um gerador, onde seu
rotor é acoplado ao eixo do servomotor e faz com que a interação do campo eletromagnético atue
sobre o bobinamento do estator. As amplitudes e fases das tensões induzidas nos secundários são
funções da posição do rotor. Os secundários estão defasados 90o entre si, para a geração de sinais
senoidais, estes serão condicionados e transformados em funções de realimentação do sistema
através de circuitos eletrônicos dispostos no servoconversor para verificação do posicionamento
final.
A Parte 2 da norma IEC 61499 intitulada “Software tool requirements” (IEC, 2005b), define
os requisitos que as ferramentas de software devem suportar segundo as especificações da norma.
Um requisito fundamental abordado na Parte 2, que se aplica a qualquer sistema de engenharia
compatível com a IEC 61499, é a capacidade de criar e armazenar elementos em uma biblioteca
de FBs.
• implementar determinados elementos de uma biblioteca, por exemplo, criar uma instância
de um bloco de função em um determinado resource;
• validar as definições dos elementos da biblioteca, por exemplo, ser capaz de verificar a
especificação de um bloco de função composto e assegurar que todas as ligações internas
estejam entre pontos de tipos de dados compatíveis;
• produzir formas compiláveis dos blocos de função adequados para qualquer firmware ou
carregar em dispositivos, e também de ser capaz de produzir ligações entre instâncias do
bloco de funções de uma forma que pode ser estabelecida através de uma rede.
Segundo os autores estas ferramentas foram aplicadas com sucesso em muitos projetos
de automação, mas principalmente no meio acadêmico. No entanto, existe uma barreira de
utilizá-los na indústria. As ferramentas comerciais fornecem um alto nível de projeto e suporte à
depuração remota que é difícil de competir. Alcançar esse nível de maturidade, aceitável para a
indústria, requer anos de desenvolvimento e melhorias (VYATKIN, 2011).
Em seguida, são mostradas algumas das ferramentas de software aderentes à IEC 61499 já
desenvolvidas.
Todos os arquivos salvos pela ferramenta CORFU FBDK estão no formato XML para
facilitar a leitura e intercambialidade. Porém, o CORFU FBDK não utiliza a estrutura de arquivos
proposta pela norma IEC 61499, uma vez que armazena em arquivos com extenções proprietários
informações adicionais, apenas os arquivos com extensão .fbt que descrevem os tipos de FBs são
totalmente compatíveis com a IEC 61499 (THRAMBOULIDIS; TRANORIS, 2003).
• Editor FB Types: este editor é principalmente utilizado para editar FBs existentes e criar
novos FBs;
• Editor da rede de FBs: este editor é utilizado para editar redes de FBs existentes e criar
novas redes;
• Editor de camadas do sistema: pode fazer uma distribuição preliminar da aplicação, arras-
tando a instância do FB da rede de blocos de função e distribuir pelos dispositivos (device)
compatíveis e editar suas propriedades;
4.4 Programas de computador existentes aderentes a norma IEC 61499 69
• Transfomação UML para rede de FBs: para automatizar o processo de transformação de
diagramas UML para diagramas de rede FB, foi concebido e implementado no FBDK
CORFU o “Transformation Facility Manager (TFM)”.
4.4.3 Ferramenta aderente a IEC 61499 junto com IEC 61131 - ISaGRAF
ISaGRAF (ISAGRAF, 2009) é um ambiente de trabalho para CLP aderente à IEC 61131-3, que
em 2005 foi incluído o suporte à IEC 61499, tornando-se o primeiro software de automação
a ser aderente às normas industriais IEC 61131 e a IEC 61499. Esta ferramenta suporta uma
forma transparente de distribuição de código para os dispositivos de rede. O ambiente de trabalho
automaticamente insere código de comunicação onde é necessário, enquanto o usuário vê apenas
a imagem global de toda a aplicação distribuída.
Uma vez que a aplicação completa tenha sido desenvolvida na ferramenta, a mesma pode
ser gerada em linguagem C ou em código independente de plataforma-alvo, chamado Target
Independent Code – TIC. No primeiro caso, o código-fonte deve ser compilado e ligado (linked)
às bibliotecas necessárias para ser executado em um dispositivo. Já através do uso do TIC, o
software pode ser executado em qualquer ambiente que implemente a máquina virtual necessária
para interpretação desse código-fonte. A filosofia por trás da TIC é proporcionar ao usuário
maior flexibilidade de hardware alvo. Mais especificamente, a tecnologia TIC permite que o
mecanismo de controle possa ser implementado em qualquer plataforma de hardware ou em
qualquer sistema operacional.
A principal vantagem deste programa está em realizar a execução das redes de FBs básicos.
Entretanto, a ferramenta possui algumas limitações como: os algoritmos dos FBs devem ser
obrigatoriamente implementados em Java; os tipos de FBs compostos não são avaliados; não há
suporte à distribuição de aplicação entre diversos recursos; e não possui interface gráfica, sendo
controlada por uma interface de linha de comandos.
Essa ferramenta faz parte de um grande projeto entre empresas, o que implica um esforço
conjunto de pesquisa e indústria. Tal ferramenta tenta cobrir desde o projeto com blocos funcio-
nais até a implementação e, embora seus recursos ainda sejam limitados, é apenas uma questão
de tempo até que mais funcionalidades sejam adicionadas. Um modelo ainda não suportado
pela ferramenta é o FB composto, portanto os FBs podem ser ou do tipo básico ou do tipo
de serviço de comunicação. Outro fator que impossibilitou a utilização desta ferramenta é a
não possibilidade de edição dos recursos, possuindo apensa quatro categorias existentes na
ferramenta.
“Function block development kit” (FBDK) (Holobloc Inc., 2008) é uma ferramenta de software
amplamente usada em projetos relacionados com a IEC 61499. A ferramenta permite o desen-
volvimento gráfico de blocos de função e de sistemas baseados em blocos de função. FBDK
compila os tipos de blocos de função desenvolvidos em linguagem de programação Java. A
natureza orientada a objetos desta linguagem permite a implementação consistente de blocos de
função. Além disso, a independência de plataforma da linguagem Java leva à portabilidade do
controlador.
O uso de FBDK pode ser combinado com outras ferramentas de desenvolvimento Java,
por exemplo, ambiente de desenvolvimento integrado Eclipse (ECLIPSE, 2011), especialmente
quando o código Java é sofisticado, como por exemplo na visualização em 3D ou interface de
dispositivos periféricos que precisam ser encapsulados em blocos de função. As aplicações do
bloco de funções, projetados usando FBDK, são executados com a máquina virtual Java e o
ambiente de execução FBRT (Function Block Run Time) dos elementos da biblioteca. Entretanto,
segungo Ceschini (2008), o FBDK ainda apresenta algumas inconsistências do ponto de vista
de erros de programação (CESCHINI, 2008). Outro fator agravante é a falta de apoio contínuo,
onde sua última atualização foi realizada no ano de 2008.
4.4 Programas de computador existentes aderentes a norma IEC 61499 72
4.4.7 FBench
Apesar de ser uma ferramenta para iniciar os estudos sobre a norma IEC 61499, o FBench
apresenta alguns erros de programação que o tornam, por vezes, complicado de usar e não possui
uma interface amigável com o usuário. Suas funcionalidades e vários aspectos se assemelham
4.4 Programas de computador existentes aderentes a norma IEC 61499 73
à ferramenta FDBK. E assim como o FBDK, a ferramenta FBench também não está tendo um
apoio contínuo, pois no início de 2009 foi feita a última atualização.
74
5 Trabalhos Relacionadas
Neste capítulo serão apresentados trabalhos relacionados com STEP/STEP-NC (ISO 14649)
e FB (IEC 61499). Este capítulo está dividido em três seções, onde a primeira seção trata de
pesquisas que utilizam STEP/STEP-NC como fundamento do trabalho. Na seção 5.2 serão
relatadas pesquisas que utilizam a norma IEC 61499 no desenvolvimento do trabalho. A seção
5.3 trata de trabalhos que discutem e utilizam as normas ISO 14649 e IEC 61499 e sua integração.
Yusof e Case (2010) descrevem um sistema CAD/CAPP/CAM compatível a STEP para manufa-
tura de peças em centros de torneamento, descrevendo os modelos de informação que o sistema
suporta juntamente com o modelo de dados STEP-NC usado para criação dos programas NC.
O ambiente computacional proposto para o sistema compatível a STEP-NC para operações de
torneamento, SCSTO (STEP-NC Compliant System for Turning Operations), foi desenvolvido
para gerar um arquivo STEP Part 21 com base nas features de usinagem. O sistema foi construído
usando uma metodologia estruturada para o planejamento do processo e métodos orientados a
objetos para a implementação. Como entrada para o sistema SCSTO são necessários parâmetros
geométricos da peça, suas features e um plano de operação, que podem ser criados ou editados
interativamente pelo usuário. Os parâmetros geométricos podem ser importados de um CAD em
STEP AP 203. Após isso, o usuário pode gerar o programa STEP-NC da peça. Um estudo de
caso foi testado para demonstrar que a nova abordagem (STEP-NC) pode gerar um código que é
comparável com o atualmente utilizado código G, com vantagens, tais como a eliminação do
pós-processador, uso do conceito de features, entre outras. Apenas um ambiente computacional
foi desenvolvido, não chegando a construir um CNC apto a receber este arquivo STEP-NC gerado
e realizar o controle de uma máquina real.
5.1 Trabalhos Relacionados ao Uso do Modelo de Dados STEP-NC 75
5.1.2 STEP-NC para a geração atual de CNC
Em Zhang, Nassehi e Newman (2011) é apresentada uma ferramenta chamada UPCi (Universal
Process Comprehension interface) que tem como objetivo permitir a interoperabilidade no chão
de fábrica e obter uma troca de informações bidirecional entre as máquinas CNC e os recursos
computacionais. Devido ao número crescente de sistemas CAx e o uso de formatos de dados
proprietários, o problema de interoperabilidade se tornou cada vez mais importante e caro.
Segundo os autores, a maioria das pesquisas tem sido focadas na integração de informações
em sistemas de alto nível, deixando o chão de fábrica como uma ilha isolada de informações.
Os programas CNCs gerados para as máquinas não podem, em geral, ser trocados devido
às informações serem pós-processadas para máquinas específicas. Portanto, há uma maior
necessidade de considerar a interoperabilidade de informações entre CNCs diferentes e também
entre CNCs e sistemas CAx.
Este trabalho traz benefícios para a interoperabilidade, porém a proposta não elimina o uso
dos pós-processadores e acrescenta mais um tradutor na cadeia. Quando existe a necessidade de
tradução de informação ocorre, na maioria dos casos, perda de informação. Além da necessidade
de reconhecer novos dialetos a cada máquina CNC lançada no mercado.
5.1 Trabalhos Relacionados ao Uso do Modelo de Dados STEP-NC 76
5.1.3 Simulador de Fresadora baseado em STEP-NC
Zhu, Wang e Fu (2006) descreveram um sistema de simulação 3-D para fresamento baseado em
STEP-NC. A partir da análise do modelo de dados de um arquivo STEP-NC, os autores propõem
uma arquitetura para o projeto do software simulador. A ferramenta de software, chamado de
3-DMMSS, é composta de módulos que são: [Interpreting module:] responsável pela leitura
do arquivo STEP-NC e extração das informações. A saída deste módulo é uma sequência de
instâncias de estrutura de dados, das quais cada uma representa uma entidade e é representada
em um mesmo formato; [Recognizing module:] a função deste módulo é reconhecer todas as
entidades em conformidade com a ISO 14649 e conjuntos de valores dos atributos de cada
entidade. Depois de reconhecidas, as entidades são salvas em uma entidade chamada DB (Data
Base); [Modelling module:] constrói um modelo de classes C++, cujos dados são provenientes
da entidade DB, obtendo classes hierarquicamente organizadas. Cada classe C++ é o reflexo
de uma entidade definida pelo padrão STEP-NC; [Planning module:] considerado o elemento
central da ferramenta, este módulo planeja a sequência de usinagem em caso do uso de instruções
condicionais ou em outro caso, segue a sequência determinada no workplan do arquivo STEP-NC.
Outra função deste módulo é a geração do caminho da ferramenta, onde utiliza as classes C++
criadas pelo módulo anterior e gera informações sobre o caminho que a ferramenta irá percorrer
salvando no DB; [Simulation module:] é projetado para simular o processo de usinagem para o
usuário o qual pode ser utilizado para verificação do processo.
Esse sistema de simulação foi validado com a execução do exemplo 1 da norma STEP-NC
de uma peça prismática. Esta pesquisa mostrou uma arquitetura clara, onde a função e o projeto
de cada módulo foram bem detalhados e uma ferramenta que utilizou dados de alto nível STEP-
NC na geração do caminho da ferramenta. No entanto, não foi implementado em hardware,
em uma máquina CNC real, mas os autores afirmam que seria possível usar o mesmo sistema
para controlar o CNC real juntamente com a simulação. Porém, a arquitetura de construção do
controlador, onde são gerados os caminhos da ferramenta e uso dos parâmetros de processo, não
possui nenhuma padronização ou metodologia apresentada.
Low-Level Controller: envia sinais adequados para os drivers dos motores de passo e para a
ferramenta da máquina conforme a trajetória especificada pelo módulo anterior;
No trabalho relatado em Pacheco et al. (2011), foi construída uma arquitetura CNC aberta de
software e hardware aderente a STEP-NC. Um protótipo de uma fresadora com três eixos
comandados por motores de passo foi construída. A arquitetura é composta por quatro blocos:
“Compiler”; “Table”; “Microcontroller”; “Serial comunication, motors drives and machine
drives”. Segundo os autores a função de cada bloco pode ser descrita como segue:
Microcontroller: fica responsável por receber as informações do bloco Table e enviar os coman-
dos para os drives dos motores da máquina;
Serial comunication, motors drives and machine drives: possui as seguintes características,
respectivamente: troca de dados entre o computador e a placa controladora (microcontrola-
dor), acionar os motores de passo, e acionar o eixo árvore da máquina.
5.1 Trabalhos Relacionados ao Uso do Modelo de Dados STEP-NC 79
A Figura 5.2 mostra a arquitetura utilizada no trabalho, destacando os sentidos do fluxo de
informação.
Os pontos fortes deste trabalho estão na utilização direta do arquivo STEP-NC no aciona-
mento da máquina, sem utilização de código G/M. Juntamente com o tratamento dos dados
em alto nível com uma geração automática do caminho da ferramenta. Onde nessa geração
existe uma otimização do caminho da ferramenta, permitindo a atualização do arquivo STEP-NC
mantendo a integridade das informações ao longo da cadeia. Contudo, a estrutura de dados em
forma de tabela utilizada para transferir as informações a serem usinadas dificulta a expansão
5.2 Trabalhos Relacionados ao Uso da Norma IEC 61499 80
desta ferramenta para a implementação de novas features, onde foram utilizados e tratados um
número baixo e limitado de parâmetros provenientes do arquivo STEP-NC. No caso de novas
features que necessitem um número maior de dados para a máquina realizar o cálculo do caminho
da ferramenta, fica inviável a representação em tabela. Este trabalho também não utiliza ou
descreve nenhuma metodologia ou norma na construção do controlador de baixo nível.
Uma estrutura com duas camadas foi proposta, a qual permite a tomada de decisões para um
planejamento supervisório genérico no nível de fábrica e planejamento de operações específicas
no nível de máquina. O planejamento supervisório é feito apenas uma vez, com antecedência, ao
nível da fábrica para gerar planos de processo para uma máquina neutra, enquanto o planejamento
da operação é realizado em tempo de execução no nível de máquina para determinar operações
específicas de uma máquina escolhida. Um plano de processo de alto nível é, portanto, também
portável para diferentes máquinas, proporcionando com isso um balanceamento na linha de
produção ou para a recuperação rápida de falhas, onde um plano de operação de baixo nível pode
ser gerado após uma máquina ser finalmente escolhida.
Para obter uma ferramenta que permita um planejamento com essas características, os autores
propuseram a utilização de blocos de função (IEC 61499) para converter tarefas de planejamento
de processo em tomada de decisões orientada a objetos. Dentro do planejamento de processo
distribuído, cada recurso de usinagem pode ser representado por um FB básico. Assim, um grupo
de features de usinagem sequenciados gerados pela ferramenta pode ser encapsulado como uma
série de funções de usinagem básicas e mapeados em uma rede de blocos de função. O fluxo
5.2 Trabalhos Relacionados ao Uso da Norma IEC 61499 81
de eventos entre os blocos de função determina sua seqüência de usinagem. Normalmente, o
plano de processo de uma peça pode ser constituído por mais de um conjunto. Neste caso, cada
conjunto irá formar um FB composto.
Em Wang, Jin e Feng (2006) um protótipo do editor de FB foi desenvolvido em Java para
ajudar os planejadores do processo a realizar o projeto do FB e criação de plano genérico de
processo. O editor de FB tem quatro componentes: editor de dados e eventos, editor do algoritmo
interno, editor do ECC e editor do tipo de FB. Quinze tipos de FBs correspondente para as quinze
features típicas de usinagem, que são pré-definidas, foram desenvolvidos e armazenados em
uma biblioteca de FBs. Planejadores de processo experientes podem usar esses editores para
definir novos tipos de FBs ou modificar um plano de processo (rede de blocos de função) que
foi gerado automaticamente. A entrada para o editor de FB é uma lista de recursos de usinagem
sequenciados. As features de usinagem na lista são mapeadas uma a uma, para blocos de função
correspondentes, que são interligadas e parcialmente sequenciadas através da aplicação de cinco
regras de raciocínio definidos. Com o uso de blocos de função, os autores mostram que a máquina
torna-se autônoma nas tomadas de decisões e possui facilidade para alterações dos algoritmos
internos.
Em Wang, Cai e Feng (2009) os autores apresentam uma abordagem adaptativa para planejamento
de processo, pesquisa que dá continuidade ao trabalho apresentado na subseção anterior, e
acrescenta uma ferramenta para monitoramento da execução que utiliza blocos de função. Em
Wang (2011), foi apresentada uma abordagem integrada para o desenvolvimento de um sistema
baseado em web com maior adaptabilidade, incluindo planejamento de processo distribuído,
monitoramento em tempo real e acrescentando aos trabalhos de Wang, Jin e Feng (2006),
Wang, Cai e Feng (2009) e Wang, Holm e Adamson (2010) a usinagem remota que utiliza a
arquitetura de blocos de função. O objetivo foi desenvolver uma nova metodologia e algoritmos de
processamento para melhorar a adaptabilidade na produção digital. Um exemplo de planejamento
de processos distribuídos para a usinagem remota foi escolhido como um estudo de caso para
5.3 Trabalhos relacionados ao uso integrado das normas STEP-NC e IEC 61499 82
demonstrar a eficácia desta abordagem para a fabricação remota.
Xu, Wang e Rong (2006) apresentaram um trabalho que introduz os dois padrões, STEP-NC e IEC
61499. O foco dos autores está em analisar, em profundidade, os padrões do ponto de vista de suas
funcionalidades como: fluxo de informação bidirecional entre CAD/CAM, compartilhamento de
dados através da Internet, o uso do conceito de usinagem baseada em features, modularidade e
reusabilidade, CNC autônomo e inteligente e portabilidade entre recursos. Segundo os autores,
ambos os padrões, embora independentes, suportam a manufatura interoperável, onde STEP-
NC é adequada no suporte do fluxo bidirecional de informação entre CAD/CAM e CNC,
compartilhamento de dados pela Internet, uso do conceito de usinagem baseada em features,
modularidade, reusabilidade e portabilidade entre recursos. Já os FBs por outro lado, fornecem
uma arquitetura útil para o desenvolvimento de controladores CNC interoperáveis e estratégias
de controle. Os autores vêem a combinação desses dois padrões como promissora e acreditam
que pesquisas posteriores terão como foco o uso de STEP-NC como sendo o compositor do
trabalho, contendo todas as informações necessárias, enquanto que os FBs serão vistos como os
fazedores do trabalho, executando os comandos de usinagem. Entretanto, não foi implementado
nenhum trabalho prático neste artigo, apresentando apenas conceitos e possíveis maneiras de
aplicação.
Em Rauch et al. (2009) são discutidos os problemas existentes na atualidade com relação
à troca e padronização de dados em todo o ciclo de vida do produto. Os autores destacam
as melhorias com o uso da norma STEP-NC, que permite o desenvolvimento de abordagens
avançadas de programação NC e a melhoria da interoperabilidade entre CAD/CAM e CNC.
Porém, eles mostram a limitação encontrada quanto a implementação da STEP-NC nas indústrias,
onde acreditam ser necessária a abordagem da STEP-NC com os equipamentos existentes, que
5.3 Trabalhos relacionados ao uso integrado das normas STEP-NC e IEC 61499 83
possuem os sistemas legados, para demonstrar seus benefícios.
São discutidas questões centrais e introduz uma associação de duas plataformas de produção,
que têm sido propostas para encontrar uma manufatura eficiente e as necessidades de interopera-
bilidade. A primeira abordagem está em nível de chão de fábrica: a plataforma SPAIM (STEP-NC
Plataform for Advanced and Intelligent Manufacturing) torna real a abordagem da programação
STEP-NC. A segunda abordagem é em nível de negócios: a plataforma IIMP (Intelligent and
Interoperable Manufacturing Plataform) que realiza a portabilidade de dados heterogêneos entre
formatos proprietários e utiliza como arquitetura os FBs da IEC 61499.
Minhat et al. (2009) apresentaram a implementação de uma nova arquitetura aberta CNC
baseada no modelo de dados STEP-NC e blocos de funções da IEC 61499. A arquitetura
do CNC desenvolvida é em camadas, responsáveis pelo processamento, armazenamento de
dados e execução e utiliza o padrão de projeto MVC (Model-View-Control) em sua construção.
A vantagem descrita no trabalho, em separar as funções em camadas, está na flexibilidade
de adaptação do controlador. As camadas desenvolvidas foram divididas em duas categorias,
chamadas de: “Input Model and FB Generic Data Program” e “Machine Specifc or Native
Program”. Dentro da primeira categoria se enquadram as seguintes camadas: Camada 5 é
para fornecer as definições como Security Plane, Cutting Tool, Workplan, Workpiece, Clamping
Position e assim por diante; a Camada 4, chamada de Machining features, é implementada por
uma biblioteca de blocos de funções que parametrizam características e dados de usinagem.
Nesta camada é gerado o caminho da ferramenta para cada feature; a Camada 3, chamada de
Store, armazena todos os pontos e velocidades necessárias para executar a tarefa na máquina
ferramenta. Na segunda categoria, segundo a classificação, tem-se então a Camada 2, onde os
blocos de funções fazem e recebem pedidos de pontos armazenados em memória e calculam as
velocidades para cada eixo; e a Camada 1 é responsável por ativar o controle de movimento da
5.3 Trabalhos relacionados ao uso integrado das normas STEP-NC e IEC 61499 84
máquina acionando os drivers.
O protótipo com a arquitetura CNC proposta pelos autores foi implementado e testado em
um computador que controla uma máquina fresadora vertical de três eixos. O microcomputador
é usado na execução da aplicação dos FBs baseado em Java que foram construídos utilizando a
ferramenta FBDK e foram executados utilizando o FBRT.
Uma das contribuições está na tradução dos dados STEP-NC para a construção da aplicação
de FB. A ferramenta utilizada para a criação de código fonte C++, a ferramenta ST-Developer,
porém é uma ferramenta comercial, não é livre, impossibilitando assim a reprodução deste
trabalho que busca uma arquitetura aberta. E outra característica não detalhada está na transcrição
da estrutura de dados em C++ para FBs, não deixando clara a metodologia utilizada, nem o
formato dos arquivos dos FBs.
O projeto desenvolvido por Minhat e Xu (2009) examina uma fresadora CNC vertical operada
usando modelo de dados ISO 14649 e utilizando a tecnologia IEC 61499 FBs no controle.
Segundo os autores, em vez de codificar a trajetória da ferramenta para uma máquina CNC
diretamente, STEP-NC apenas fornece as informações necessárias das tarefas de usinagem.
Portanto, uma máquina CNC aderente a STEP-NC deve ser capaz de gerar o caminho da
ferramenta, sendo transferido a tarefa de gração do caminho da ferramenta para o controlador
no chão de fábrica. Um controlador aderente à STEP-NC foi desenvolvido com base em um
computador pessoal. A tecnologia de blocos de função é utilizada para desenvolver um modelo
para uma fresadora CNC vertical que converte os dados de um arquivo STEP-NC em um conjunto
de FBs.
A camada “View” é desenvolvida para mostrar a simulação em tempo real. Esta camada em
conjunto com a “Machine Model” servem como uma plataforma de experimentação. A camada
5.3 Trabalhos relacionados ao uso integrado das normas STEP-NC e IEC 61499 87
“Control” é projetada para manter funções generalizadas de controle que não são relacionadas
com uma máquina específica. Uma arquitetura de cinco camadas foi modelada para analisar os
dados da STEP-NC em FBs, onde as camadas mais altas são informações mais genéricas, como
Workplan, plano de segurança e as features de usinagem, e as camadas mais baixas são operações
de mais baixo nível, como movimentação de eixos e saídas analógicas.
Neste trabalho foi provado que os blocos de função são um meio viável para o desenvol-
vimento de um controlador STEP-NC. As normas STEP-NC e blocos de função se encaixam
bem no fornecimento de uma arquitetura aberta de controle de um sistema CNC. O controlador
aderente a STEP-NC desenvolvido foi testado em simulação e na máquina real, utilizando o
exemplo 1 e 2 da norma ISO 14649-11, obtendo o modelo idêntico da peça usinada. No futuro,
mais FBs podem ser desenvolvidos para representar recursos de usinagem complexos e gerar
o caminho da ferramenta correspondente. É de valia destacar a não descrição da transcrição
do modelo de dados STEP-NC para blocos de função e como foram feitas as conexões entre
os FBs. Apenas é citado de como o desenvolvimento dos blocos de função foram feitos na
plataforma Java, existe a possibilidade de desenvolver um tradutor STEP-NC para Java, havendo
uma interligação com o editor de blocos de função, porém não foi descrito como foi feito.
5.3.6 Integração das normas ISO 14649 e IEC 61499 para a construção
de um CNC interoperável
No trabalho de FINKE Jr. et al. (2011) foi apresentado um sistema que utiliza os padrões
STEP-NC e IEC 61499 para desenvolver um controlador CNC. Isto é conseguido usando a
STEP-NC como modelo de dados, e a partir dela, gerar aplicativos baseados na norma IEC
61499, encapsulando os Workingsteps em blocos de função que são definidos em uma biblioteca
do controlador CNC. O controlador CNC possui um ambiente de execução para os FBs e uma
biblioteca de FBs Workingstep com algoritmos para a máquina com suas características de
usinagem associados. O arquivo STEP-NC é convertido automaticamente em estruturas de dados
e uma rede de instâncias de FBs que são executados conforme definidos na entidade Workplan.
A biblioteca de FBs que é utilizada durante a execução da aplicação é composta por FBs de
serviço de interface que implementam a comunicação e FBs básicos representando os Workings-
tep. Nesta fase da pesquisa, os autores construíram a estrutura dos blocos de função utilizando a
linguagem C.
Foi também proposta uma arquitetura em duas camadas, na qual uma delas contém FBs
de Workingsteps responsáveis pela geração da trajetória e na segunda camada é realizado o
posicionamento e comunicação da máquina-ferramenta. Através desta arquitetura, as alterações
dos dispositivos de controle da máquina podem ser realizadas sem alteração do programa de
controle. Esta arquitetura também permite a mudança da estratégia de controle através da
reprogramação da rede de FBs de comunicação e controle.
Uma das deficiências deste trabalho está na construção das estruturas dos blocos de funções,
as quais são desenvolvidas em linguagem C, onde a norma IEC 61499 prevê que a estrutura dos
blocos devem ser desenvolvidas utilizando a linguagem XML permitindo uma maior portabili-
dade e facilidade de transferência de bibliotecas através da Internet. Outra deficiência está no
ambiente de execução que executa rede de FBs com estrutura em linguagem C, não aderindo à
norma.
5.4 Discussões
A integração das normas STEP-NC e IEC 61499 é a proposta, de forma automática, sem a
necessidade de interferência humana, na construção da rede de controle utilizando FBs a partir
do arquivo de entrada STEP-NC. O modelo de dados STEP-NC utilizado como entrada para o
CNC será convertido em um modelo de sistema aderente à IEC 61499, o qual será responsável
pela execução da usinagem utilizando o máximo de parâmetros STEP-NC de acordo com a
estrutura da máquina protótipo. Dentro do modelo do sistema gerado, deverá conter todas as
informações dos executáveis disponibilizadas pelo arquivo STEP-NC.
Tendo em vista a necessidade de geração dinâmica do modelo de sistema IEC 61499 referente
ao arquivo de entrada STEP-NC, o controlador deverá conter uma ferramenta de software capaz
de realizar essa tradução. A proposta é desenvolver um compilador, onde o código fonte é
um arquivo STEP-NC e o código alvo são arquivos aderentes à norma IEC 61499 no formato
XML contendo as informações STEP-NC e toda a estratégia de controle da máquina-ferramenta
representada em redes de FBs.
O controlador CNC-C2 (CNC Compliant to STEP-NC and Compliant to IEC 61499) foi
desenvolvido baseado em PC (Personal Computer) e implementa a estrutura proposta, conforme
apresentada na Figura 6.1. No PC estão os principais softwares desenvolvidos neste trabalho.
Cada item desta estrutura será relatado nesta seção.
A front-end faz a análise sintática do código fonte STEP-NC e em seguida a análise semântica.
Caso nenhum erro seja encontrado, o usuário receberá as instâncias em Java dos objetos definidos
no código fonte de entrada.
Para que o compilador consiga relacionar as entidades da STEP-NC com objetos Java, ele
precisa ser carregado com um esquema de classes. Esse esquema é um conjunto de classes
Java definindo modelos de dados EXPRESS quaisquer, inclusive STEP-NC. Essas classes
instanciadas serão a saída da front-end, pois elas são fáceis de serem manipuladas por qualquer
tipo de aplicação. Um exemplo básico de como um modelo EXPRESS é representado em Java
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 95
pode ser visto na Figura 6.2. No diagrama desta imagem, o pacote family é providenciado pelo
usuário, enquanto o pacote datatypes é parte da front-end. Neste exemplo, aparece apenas a
classe TYPE<?> no pacote datatypes, mas outros dados já estão implementados, como LIST<?>
e Enumeration.
Figura 6.2: Representação de um modelo EXPRESS e um modelo UML usado para mapear Java
Uma visão geral da front-end pode ser vista na arquitetura apresentada na Figura 6.3. Esta
arquitetura mostra: duas classes instanciáveis pelos usuários, a StepNCCompiler e a StepNCLoa-
der, a separação da análise sintática com a análise semântica, o uso de TO (Transaction Objects)
para troca de dados entre elas, e um conjunto de exceptions.
A Figura 6.4 mostra os objetos usados para trocar informações entre os componentes do
compilador e o usuário. EntityTO é a representação interna de uma entidade da STEP-NC,
onde ela armazena o número, o nome, a linha da declaração e uma lista de atributos. Fora do
compilador ela é usada apenas para representar os tipos da seção de cabeçalho.
Durante a execução do compilador, podem ser encontrados erros. Esses erros podem ser como
um arquivo de esquema corrompido, ou erros sintáticos e/ou semânticos no código fonte. Quando
algum tipo de erro ocorrer, o compilador gera uma exceção. Na Figura 6.5 é mostrada uma
imagem onde em InternalStepNCCompilerException são listados os erros juntamente com seus
identificadores. Essa exception contém informações suficientes para informar ao usuário onde o
erro ocorreu, facilitando a depuração. As Exceptions também podem ser lançadas de dentro das
classes de um esquema, para isso se usa a SchemaStepNCCompilerException, sendo útil para
replicar os efeitos das WHERE RULES, ou seja, restrições para os dados introduzidos, como por
exemplo, o tipo POSITIVE_LENGTH_MEASURE da STEP-NC tem uma WHERE RULE que
impõe que o valor numérico de entrada seja obrigatoriamente positivo. Se for introduzido um
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 96
A componente da análise semântica pode ser vista na Figura 6.8. O construtor da classe
SemanticAnalysis depende do StepNCLoader pois nessa fase todas as EntityTO da seção de
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 97
Figura 6.4: Objetos usados para trocar mensagens entre componentes do compilador e o usuário
dados serão convertidas em instâncias das classes Java do esquema usado. Neste processo de
conversão iniciado pelo método runSemanticAnalysis, várias verificações semânticas são feitas.
Caso algum erro seja encontrado, uma exceção interna será lançada, conforme Figura 6.5. Este
método irá retornar o objeto final que será repassado ao usuário, que é uma instância da classe
CompilerResultTO, vista na Figura 6.4.
A última fase da compilação é marcada pelo método runSemanticAnalysis, Figura 6.14. Este
método recebe como entrada o resultado do método runSyntacticAnalysis e retorna a linguagem
alvo. Ele mantém uma lista de entidades que ainda não foram instanciadas e enquanto existirem
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 100
entidades nesta lista, ele vai escolher uma delas e fazer várias verificações nela. Caso todas as
verificações estejam de acordo, ele irá então instanciar essa entidade e retirá-la desta lista. Esse
processo pode ser entendido como uma conversão entre um objeto EntityTO para uma classe
equivalente do esquema do programador.
A segunda parte do compilador, chamada back-end, está ligada diretamente com a primeira parte,
a front-end. Nesta etapa do projeto desenvolveu-se uma aplicação onde suas principais funções
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 101
A rede de FBs que irá compor a aplicação alvo fará uso dos parâmetros contidos no arquivo fonte
STEP-NC para cálculo de caminho de ferramenta e troca de informações com o controlador de
baixo nível. Para cada arquivo STEP-NC de entrada, tem-se uma nova configuração da rede de
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 103
FBs para controle da máquina. Esse dinamismo requer uma geração de estruturas aderentes a
IEC 61499 a partir do arquivo STEP-NC de entrada. Neste trabalho desenvolveu-se como saída
do compilador, três arquivos gerados no formato XML. Esses três arquivos gerados, juntamente
com a biblioteca de FBs e modelos de resources desenvolvidos neste trabalho, compõem a rede
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 104
de FBs para a aplicação final. Esta rede é responsável pelo uso das informações STEP-NC para
cálculo do caminho da ferramenta, uso das informações tecnológicas e troca de dados com o
controlador de baixo nível. Segue uma descrição de cada arquivo gerado.
Figura 6.16: Exemplo de um arquivo system genérico da linguagem de marcação XML gerado a
partir do back-end do compilador
3. Arquivo FBType SWITCH: tem como função chavear em sequência os eventos para a
execução dos publishers contidos no resource STEP-NC_DATA. Essa sequência é pre-
determinada pela sequência de executáveis listados na entidade WORKPLAN do arquivo
STEP-NC. Baseado nesta sequência é gerado o arquivo XML que representa este FB. O
ECC interno deste FB contém estados com os nomes das instâncias de todos os resources
contidos no system gerado. Quando o evento INIT é chaveado, o FB chaveia o primeiro
evento, o evento SETUP. Esse evento está conectado ao bloco publisher SETUP e con-
sequentemente inicializa a execução do resource SETUP. Ao término da execução do
resource SETUP, o FB subscribe contido no resource STEP-NC_DATA recebe uma String
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 108
informando o nome da instância do resource que encerrou a execução. A string recebida é
utilizada para seleção do próximo estado no ECC do bloco SWITCH. Com isso, o próximo
resource é inicializado e esse processo ocorre até o término de todos os resources contidos
no modelo system gerado, sendo que o último resource será o COMMUNICATION que é
responsável pelo envio das informações geradas pelos outros resources para o controlador
de baixo nível. O bloco COMMUNICATION será melhor detalhado na seção 6.2.6.
Uma ferramenta para visualização e execução de FBs e rede de FBs foi desenvolvida e tem como
funcionalidades de visualização:
Figura 6.18: Interface gráfica para utilização do compilador desenvolvido, integrado com o
ambiente de visualização
Figura 6.19: Ambiente de visualização de FBs e rede de FBs desenvolvido neste trabalho
• FB: é responsável por executar o parser para importação dos dados do XML referente aos
tipos de blocos básico, composto ou serviço de interface. Após a importação dos dados,
é identificado o tipo do bloco para direcionar para a classe específica. A identificação é
realizada pela análise do arquivo XML. Se o XML contém o elemento ECC, é direcionado
para a classe do tipo básico (basicFB). Se for detectado no XML uma rede de FBs,
tem-se um FB do tipo composto, então é direcionado para a classe do tipo composto
(compositeFB). Caso exista o elemento BaseFile no arquivo XML, este identifica que é do
tipo serviço de interface, direcionado então para a classe de serviço de interface (SI);
• Resource: a classe referente ao resource possui muita semelhança com a classe Composi-
teFB. A diferença está na necessidade do resource possuir serviço de interface, devido ao
fato de que o resource não possui eventos de entrada ou saída para a troca de informações.
A classe possui função de agendamento de dados e eventos (scheduler) que corresponde a
uma fila do tipo FIFO (First In, First Out), para um recurso single threaded (GERBER;
HANISCH, 2010);
• Device: instancia as classes de nível mais baixo seguindo a hierarquia dos modelos da IEC
61499;
• System: instancia as classes de nível mais baixo seguindo a hierarquia dos modelos da IEC
61499.
Um editor aderente à norma IEC 61499 foi desenvolvido com o intuito de permitir a construção
e edição de FBs e redes de FBs com facilidade e possuir uma interface gráfica amigável com
o usuário. O desenvolvimento de um editor de FBs foi necessário visto que as ferramentas
existentes possuem algumas limitações/problemas que dificultam o uso. Algumas dessas não
possuem código aberto e em muitas a falta de documentação impossibilita o uso.
• Criar ou editar:
– FB: permite a edição textual das informações como: nome de eventos e dados de
entrada e saída, relação de dados com eventos, comentários, nome do autor, data de
criação ou modificação e controle de versão. Os FBs devem ser de um dos três tipos:
∗ Básico: para o tipo básico, o editor permite a edição: dos algoritmos através
de uma janela para inserção textual do algoritmo e do ECC adicionando ou
excluindo estados (textualmente) e realizando as transições através da interface
gráfica;
O arquivo XML pode ser previamente visualizado pelo usuário através da ferramenta, que
disponibiliza uma caixa de texto contendo a estrutura gerada, conforme pode ser visto na Figura
6.21. No Apêndice A pode ser encontrado um guia do usuário do GASR FB Editor desenvolvido.
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 112
Figura 6.20: Interface gráfica do editor desenvolvido neste trabalho (aba selecionada FB Básico)
Projetada para armazenar os tipos de FBs e resources necessários, a biblioteca é acessada pelas
ferramentas desenvolvidas para instanciar o tipo solicitado. Os blocos de função e resources
constituintes foram desenvolvidos utilizando o editor descrito na subseção anterior. Os modelos
de resources construídos para a biblioteca são:
• SETUP: projetado com a função de realizar a configuração da máquina para a peça a ser
usinada;
Figura 6.21: Caixa de texto para visualização da estrutura XML gerada pelo editor desenvolvido
A rede interna dos resources desenvolvidos possui FBs básicos, compostos e serviço de
interface. Todos esses blocos estão contidos na biblioteca desenvolvida e foram construídos
com o auxílio do editor GASR FB Editor. Com a biblioteca, foi alcançada a característica de
expansibilidade para o controlador CNC desenvolvido, podendo expandir a biblioteca com a
adição de novos modelos IEC 61499.
Figura 6.22: Proposta de utilização da rede CAN para comunicação entre os equipamentos
constituintes da rede.
comunicação entre os CLPs, também inclusos no pacote padrão. Na Figura 6.24 é mostrada como
é efetuada a troca de dados entre os equipamentos, descrevendo a interface e o protocolo utilizado
em cada estágio. Os FBs de serviço de comunicação implementados no PC se comunicam com o
gerenciador de comunicação através do protocolo MODBUS TCP/IP (MODBUS, 2005). Outros
possibilidades de porotocolos de comunicação podem ser adotadas com a utilização de outros
modelos de CLPs onde a solução aqui adotada foi em função do CLP utilizado neste trabalho.
Na solução adotada, a comunicação entre o CLP mestre e os escravos utiliza-se a rede CAN
com o protocolo CANOpen. Dentro deste protocolo, a troca de dados pode ser efetuada através
de pacotes de dados chamados de PDOs (Process Data Objects). Cada CLP possui um número
limite de oito PDOs de transmissão (TxPDO), mais oito PDOs de recepção (RxPDO) de dados.
A configuração da rede construída neste trabalho utiliza os oito pacotes PDOs de transmissão
do mestre. Os oito pacotes são divididos em: dois pacotes de dados gerais enviados para o CLP
escravo 1, três pacotes de dados de eixo também para o CLP escravo 1 e os outros três pacotes
PDOs de dados específicos de eixo para o CLP escravo 2. Outros pacotes de recepção de dados
foram utilizados no CLP mestre. O diagrama, mostrado na Figura 6.25, mostra todos os PDOs
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 116
Figura 6.23: Proposta de utilização da rede RS485 para comunicação entre os equipamentos
constituintes da rede.
utilizados para troca de dados entre os CLPs dos servoacionadores da rede, conforme descrito no
texto.
O conjunto de hardware mecânico utilizado foi obtido através da doação de uma estrutura
mecânica rígida. Neste trabalho, foi feita a troca dos motores de passo por servoacionamentos.
Algumas adaptações mecânicas foram realizadas para fixação dos servomotores na estrutura
6.2 Estrutura da Máquina-Ferramenta e CNC-C2 117
da máquina. Acoplamentos foram projetados e usinados para conexão dos fusos com o eixo
do motor. Os servoacionamentos SCA-06 adquiridos são fabricado pela empresa WEG (WEG,
2010a).
Para melhor manuseio dos equipamentos, foi construída uma bancada para fixação dos
servoconversores juntamente com os disjuntores, o relé e uma fonte de alimentação. Na Figura
6.26 é apresentada a máquina protótipo construída, onde tem-se no grupo 1 da figura a estrutura
mecânica da máquina, onde estão os três servomotores que acionam os eixos X,Y,Z e uma
retificadora manual portátil que é o acionamento do eixo árvore. No grupo 2, tem-se os três
servoconversores, uma fonte de alimentação em 24Vcc para alimentação da parte de controle do
servoconversor, o relé acoplador para acionamento da retificadora manual portátil e os disjuntores
de proteção. E, por fim, o grupo 3 que é o computador onde estão as ferramentas de software
desenvolvidas para controle da máquina.
O servomotor utilizado neste trabalho é o modelo SWA 40-1.6-30 fabricado pela empresa
WEG (2010a), conforme descrito na seção 4.3.1.
Figura 6.28: Estrutura de dados específicos por eixo construída para comunicação CAN
7 Testes e Discussões
Neste capítulo é apresentado o teste realizado e os resultados obtidos a partir de um estudo
de caso. Para esse estudo será utilizado um arquivo STEP-NC gerado, que descreve uma peça
exemplo. Na Figura 7.1 é mostrado o projeto da peça utilizada para a realização do teste. O
arquivo STEP-NC pode ser encontrado no Apêndice B.
A partir do arquivo STEP-NC, tem-se como objetivo a usinagem da peça utilizando as ferra-
mentas desenvolvidas neste trabalho. A peça contém: dois executáveis do tipo PLANAR_FACE,
sendo um com o plano inclinado; cinco executáveis do tipo SLOT e três executáveis do tipo
ROUND_HOLE. A seguir serão detalhados os resultados de cada fase para melhor compreensão,
7.1 Arquivo de entrada STEP-NC, Compilador e Arquivos XML gerados 122
observando que todas as fases estão integradas.
Dado como entrada para o compilador o arquivo STEP-NC, o compilador executou todas
as fases de análise. No arquivo de entrada para o teste, foi adicionado um erro proposital para
a realização do teste com o compilador. Durante a compilação ocorreram três exceptions. As
exceptions foram referentes à mesma entidade da STEP-NC, onde foi detectado um número
diferente de parâmetros declarados comparado com o número de parâmentros esperado pelo
modelo de dados da STEP-NC. Na Figura 7.2 é mostrada a saída que o compilador gerou. Nas
outras duas exceptions que ocorreram apenas alteravam do valor da entidade e da linha, mas com
a mesma mensagem de erro.
Internal
CODE: 113
ENTITY : 127
LINE : 117
MESSAGE : The number o f p a r a m e t e r s do n o t match . : D e c l a r e d : 4 | E x p e c t e d : 5
ENTITY c u t t i n g _ c o m p o n e n t ;
tool_offset_length : length_measure ;
its_material : OPTIONAL m a t e r i a l ;
technological_data : OPTIONAL c u t t i n g _ e d g e _ t e c h n o l o g i c a l _ d a t a ;
expected_tool_life : OPTIONAL t i m e _ m e a s u r e ;
its_technology : OPTIONAL t e c h n o l o g y ;
END_ENTITY ;
Para a construção da biblioteca de FBs e resources foi utilizado o editor desenvolvido neste
trabalho. A construção dos arquivos XML aderentes a IEC 61499 foi facilmente realizada através
da interface desenvolvida. A biblioteca possui:
• FB types:
– Básico: 65;
– Composto: 26;
• Resources:
– SETUP;
– STEP-NC_DATA;
– COMMUNICATION;
– DRILLING-ROUND_HOLE_RES;
– MILLING-SLOT- SIMPLE_RES;
– MILLING-PLANAR_FACE-SIMPLE_RES.
• Device:
– PC.
7.3 Visualizador e Ambiente de Execução 124
Dentre os FBs básicos, tem-se: FBs de manipulação de eventos, operações matemáticas
simples, operações vetoriais, entre outros. Os FBs de serviço de interface implementados são de:
comunicação local, comunicação MODBUS TCP/IP e FB para inicialização da execução (FB
STARTER).
A partir da execução da rede de FBs, uma das saídas do bloco de comunicação redireciona
para o software Gmsh (GEUZAINE; REMACLE, 2010) que permite a visualização gráfica das
trajetórias da ferramenta. A trajetória resultante para a peça teste é mostrada na Figura 7.4.
7.5 Peça Usinada 125
Na peça usinada estão presentes todos os executáveis (features) que estão listados no arquivo
7.6 Discussões 126
STEP-NC de entrada, obtendo-se assim a peça usinada como resultado final conforme o esperado.
Pode ser observado que não foi realizado o acabamento da peça pois não está implementada a
operação de acabamento.
7.6 Discussões
8 Conclusão
Neste trabalho foi apresentado o desenvolvimento de um controlador CNC aderente às normas
ISO 14649 (STEP-NC) e IEC 61499 (FB), chamado de CNC-C2 (CNC Compliant to STEP-NC
and Compliant to IEC 61499). A busca pela alteração do cenário atual foi um dos objetivos, onde
modernas máquinas-ferramenta CNC, apesar das inúmeras funcionalidades, ainda possuem a falta
de adaptabilidade, portabilidade e interoperabilidade. Esta pesquisa apresentou um método de
implementação de especificações em STEP-NC para IEC 61499 na construção de um controlador
aderente a estas normas e provê ferramentas de software capazes de cumprir com os requisitos
deste trabalho na busca por um CNC interoperável. Em um controlador CNC aderente às
normas ISO 14649 e IEC 61499, tem-se as características das normas como: portabilidade,
interoperabilidade, configurabilidade, uso de features, autonomia, distribuição e adaptabilidade.
A IEC 61499 define um modelo geral e metodologia para descrever os blocos de função em
um formato independente da implementação. Ela permite a definição de um sistema através de
blocos de função conectados, que podem ser distribuídos em diferentes dispositivos. Os blocos
de função encapsulam os algoritmos necessários para cálculo do caminho da ferramenta para os
executáveis STEP-NC e comunicação entre usuário, controlador e máquina.
8 Conclusão 129
O controlador desenvolvido neste trabalho demonstrou a factibilidade do uso de STEP-
NC, provendo interoperabilidade na cadeia de manufatura. Ainda, o uso do modelo de dados
STEP-NC traz o uso do conceito de features, dando significado aos modelos geométricos no
controlador. Contudo, houve a necessidade do desenvolvimento de um compilador para leitura
e interpretação do arquivo de entrada transformando-o em uma aplicação alvo. Como saída, o
compilador gerou arquivos contendo redes de FBs para compor o modelo System, o qual contém
todas as informações STEP-NC e instâncias de modelos IEC 61499, em formato XML como
prevê a norma, facilitando a troca de bibliotecas entre ferramentas e a transferência via Internet.
A geração dos FBs e a geração de redes de FBs em arquivos XML foram realizadas de forma
automática, sem a necessidade de interferência humana na geração destes arquivos, diminuindo
a ocorrência de erros causados pelo operador.
Com o System que contém o conjunto de tarefas a serem executadas e juntamente com a
biblioteca de FBs e resources desenvolvida, foi possível a execução da rede de FBs e a usinagem
da peça de teste. Com a utilização de FBs e dados STEP-NC para a geração de trajetórias
dinamicamente foi atingido no controlador CNC o poder de tomada de decisões e autonomia,
podendo agregar diversos métodos computacionais avançados para otimização dos cálculos.
Neste trabalho, foi construída para cada entidade executable STEP-NC, um modelo de
resource IEC 61499 e foi alcançada maior facilidade para futuras melhorias no cálculo da
trajetória comparado com os trabalhos encontrados na literatura. Isto possibilita maior liberdade
ao projetista de agregar ou retirar FBs da rede para alterar a estratégia de controle. Para representar
os dados STEP-NC em FBs, foi criado dentro do resource STEP-NC_DATA um FB de serviço de
comunicação local contendo os dados para cada executable implementado neste trabalho. Perante
o grande número de dados STEP-NC existentes para cada executable, obteve-se FBs com muitas
variáveis para serem transmitidas a seus resources, porém, como se trata de comunicação local,
não ocorrem maiores dificuldades nesta transmissão. Como saída dos resources, foi criada uma
estrutura de dados comum a todos os resources, que são equações geométricas e não posições no
plano cartesiano. Essas equações geométricas são enviadas para o controlador de baixo nível,
que interpreta esses dados e realiza o acionamento do motor. Com isto, é alcançada a distribuição
de fragmentos de código pelos dispositivos da máquina com capacidade de processar essas
equações.
Um ambiente de visualização gráfica aderente à IEC 61499 foi desenvolvido, e tem como
finalidade a visualização dos modelos IEC 61499 e das redes de FBs. Um ambiente de execução
também foi desenvolvido e integrado ao ambiente de visualização. A inicialização da execução
da rede pode ocorrer via ambiente de visualização, onde foi implementada uma interface com o
usuário para iniciar a execução da aplicação.
Com o CNC-C2 tem-se disponível uma máquina CNC que utiliza modelos IEC 61499 em
níveis de controle da máquina ferramenta oriundos da compilação de um arquivo STEP-NC
diretamente, sem o uso de código G/M, em uma arquitetura modular, expansível, aderente às
normas, interoperável e adaptável.
• Construção de um controlador CNC para uma fresadora 2,5D eixos aderente às normas
ISO 14649 e IEC 61499;
• Cálculo das trajetórias geradas dinamicamente pelos FBs, permitindo que decisões possam
ser tomadas em tempo de execução;
• Reconhecimento dos vários níveis de dados STEP-NC e utilização de modelos IEC 61499
de todos os tipos e níveis para controle.
8.1 Trabalhos Futuros 131
Limitações do trabalho:
Este trabalho resultou em um artigo: (no prelo) ROSSO Jr., R. S. U. ; FINKE, Hermann
J. ; HARBS, E. ; HASEGAWA, A. Y. ; HOUNSELL, Marcelo da S. ; LAFRATTA, Fernando
H. .STEP-NC Compliant Compiler, Microcontroller driven Function Blocks as a PC Open
Architecture for CNC Controller. International Journal of Computer Integrated Manufacturing,
2012.
4DIAC. Framework for distributed industrial automation (4DIAC). 2010. Disponível em:
<http://www.fordiac.org>. Acesso em: 10/11/12.
AHO, A. V.; SETHI, R.; ULLMAN, J. D. COMPILERS: principles, techniques, and tools. Boston,
MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1986. ISBN 0-201-10088-6.
CALABRESE, F.; CELENTANO, G. Design and realization of a step-nc compliant cnc embedded
controller. In: 12th IEEE Conference on Emerging Technologies and Factory Automation (ITFA).
Praga, Republica Checa: International Conference on Emerging Technologies and Factory
Automation, 2007. p. 1010–1017.
CENGIC, G.; LJUNGKRANTZ, O.; AKESSON, K. Formal Modeling of Function Block Ap-
plications Running in IEC 61499 Execution Runtime. In: 11th IEEE International Conference
on Emerging Technologies and Factory Automation (ETFA’2006). Patras, Grécia: International
Conference on Emerging Technologies and Factory Automation, 2006. p. 1269 –1276.
CHOUINARD, J.; BRENNAN, R. Software for Next Generation Automation and Control. In:
4th IEEE International Conference on Industrial Informatics (INDIN’06). Singapura: IEEE
International Conference on Industrial Informatics, 2006. p. 886–891.
FAY, A.; ZURAWSKI, R. Progress in industrial automation programming and design: from a
primitive to a simple solution. Industrial Electronics Magazine, IEEE, v. 3, n. 4, p. 24 –25, dec.
2009. ISSN 1932-4529.
FBENCH. Open source function block engineering tool. 2008. Disponível em: <http://oooneida-
fbench.sourceforge.net/>. Acesso em: 10/11/12.
FINKE Jr., H. Controle Numérico Computadorizado aderente às Normas STEP-NC e IEC 61499.
Joinville - SC: Universidade do Estado de Santa Catarina, 2011. Monografia - Especialização em
Computação Aplicada.
FINKE Jr., H.; ROSSO Jr. R. S. U.; HARBS, E.; HASEGAWA, A. Y.; HOUNSELL, M. d. S.;
LAFRATTA, F. H. Implementing ISO14649 and IEC61499 to Fulfill Interoperability in CNC. In:
6o COBEF - Congresso Brasileiro de Engenharia de Fabricação. Caxias do Sul - RS: Congresso
Brasileiro de Engenharia de Fabricação, 2011. p. 1–10.
GERBER, C.; HANISCH, H.-M. Does portability of IEC 61499 mean that once programmed
control software runs everywhere? In: 10th IFAC Workshop on Intelligent Manufacturing Systems.
[S.l.: s.n.], 2010. p. 29–34.
GERBER, C.; IVANOVA-VASILEVA, I.; HANISCH, H.-M. A Data processing Model of IEC
61499 Function Blocks with Integer-Valued Data Types. In: IMS’08: 9th IFAC Workshop on
Intelligent Manufacturing Systems. Szczecin, Poland: [s.n.], 2008. p. 239–244.
GRABMAIR, G.; ZOITL, A.; STRASSER, T.; FROSCHAUER, R. Modelling Real-time Cons-
traints Regarding Reconfiguration Aspects for IEC 61499 Control Applications. In: 5th IEEE
Internacional Conference on Industrial Informatics (INDIN 2007). Vienna, Austria: IEEE Inter-
national Conference on Industrial Informatics, 2007. v. 2, p. 1089 –1094. ISSN 1935-4576.
HASEGAWA, A. Y.; HARBS, E.; JARENTCHUK, G.; ROSSO Jr., R. S. U. Controlador numérico
de interface aberta step-nc. In: Relatório de Iniciação Científica (relatório interno). UDESC:
[s.n.], 2011.
REFERÊNCIAS 135
Holobloc Inc. Function block development kit (FBDK). 2008. Disponível em:
<http://www.holobloc.org>. Acesso em: 10/11/12.
ISAGRAF. Workbench v.5.0. 2009. Disponível em: <www.isagraf.com>. Acesso em: 10/11/12.
IVANOVA-VASILEVA, I.; GERBER, C.; HANISCH, H.-M. Basics of modelling iec 61499
function blocks with integer-valued data types. In: IMS’08: 9th IFAC Workshop on Intelligent
Manufacturing Systems. Szczecin, Poland: [s.n.], 2008. p. 233–238.
JAVACC. 2012. Java Compiler Compiler. Disponível em: <http://javacc.java.net/>. Acesso em:
10/11/12.
LEWIS, R. Modelling Control Systems Using IEC 61499 - Applying function blocks to distributed
systems. [S.l.]: The Institution of Engineering and Technology, 2001. (Iee Control Engineering
Series). ISBN 9780852967966.
LUDER, A.; SCHWAB, C.; TANGERMANN, M.; PESCHKE, J. Formal models for the ve-
rification of iec 61499 function block based control applications. In: Emerging Technologies
and Factory Automation, 2005. ETFA 2005. 10th IEEE Conference on. [S.l.: s.n.], 2005. v. 1, p.
105–112.
REFERÊNCIAS 137
MINHAT, M.; VYATKIN, V.; XU, X.; WONG, S.; AL-BAYAA, Z. A novel open CNC architec-
ture based on STEP-NC data model and IEC 61499 function blocks. Robotics and Computer-
Integrated Manufacturing, NY, USA, v. 25, n. 3, p. 560 – 569, Junho 2009. ISSN 0736-5845.
MINHAT, M.; XU, X. Feature-based machining using function block technology. In: IEEE
International Conference on Control and Automation, 2009. ICCA 2009. Christchurch, New
Zealand: IEEE International Conference on Control and Automation, 2009. p. 2398 –2403.
MINHAT, M.; XU, X.; VYATKIN, V. STEPNCMillUoA - A CNC System Based STEP-NC and
Function Block Architecture. International Journal of Mechatronics and Manufacturing Systems
(IJMMS), v. 2, n. 1/2, p. 3–19, 2009. ISSN 1753-1047.
NEWMAN, S.; NASSEHI, A.; XU, X.; Rosso Jr., R.; WANG, L.; YUSOF, Y.; ALI, L.; LIU,
R.; ZHENG, L.; KUMAR, S.; VICHARE, P.; DHOKIA, V. Strategic advantages of intero-
perability for global manufacturing using cnc technology. Robotics and Computer-Integrated
Manufacturing, v. 24, n. 6, p. 699–708, 2008.
OTTO, A.; HELLMANN, K. IEC 61131: A general overview and emerging trends. Industrial
Electronics Magazine, IEEE, v. 3, n. 4, p. 27 –31, dec. 2009. ISSN 1932-4529.
PACHECO, N. de O.; HARBS, E.; ROSSO Jr., R. S. U.; HOUNSELL, M. S.; LEAL, A. B.;
FERREIRA, J. C. E. Application of the STEP-NC standard in a computer numerical controlled
machining device. In: 21st Brazilian Congress of Mechanical Engineering - COBEM 2011. Natal
- RN: Anais do 21st Brazilian Congress of Mechanical Engineering, 2011.
RAUCH, M.; LAGUIONIE, R.; HASCOET, J.-Y.; XU, X. Enhancing CNC Manufacturing
Interoperability with STEP-NC. Journal of Machine Engineering, v. 4, p. 26–37, 2009.
ROSSO Jr., R.; ALLEN, R.; NEWMAN, S. Future Issues for CAD/CAM and Intelligent CNC
Manufacture. In: Proceedings of the International Manufacturing Conference. Belfast, UK: [s.n.],
2002. p. 115–124.
REFERÊNCIAS 138
ROSSO Jr., R. S. U. STEP Compliant CAD/CAPP/CAM System For Rotational Asymmetric Parts.
176 p. Tese (Doutorado) — Loughborough University, Loughborough, Inglaterra, 2005.
ROSSO Jr., R. S. U.; NEWMAN, S. T. Estrutura de dados para sistemas cad/cam aderente à
step. In: VI Congresso Ibero-Americano de Engenharia Mecânica. Universidade de Coimbra,
Coimbra, Portugal: [s.n.], 2003. p. 1019–1024.
SANTOS, A. A.; SOUSA, M. de. Replicação em Sistemas Distribuidos utilizando o Standard IEC
61499. In: XVII Congresso Brasileiro de Automática. Juiz de Fora - MG: Congresso Brasileiro
de Automática, 2008.
THRAMBOULIDIS, K.; TRANORIS, C. CORFU FBDK - Quick Start Guide. 0.7.0. ed.
[S.l.], 2003. Disponível em: <seg.ece.upatras.gr/Corfu/dev/CORFU_FBDK_Quick_Guide.pdf>.
Acesso em: 12/02/2011.
VLAD, V.; GRAUR, A.; TURCU, C. E.; FILOTE, C. Using Hierarchically Structured IEC 61499
Applications for Modeling Holonic Control Systems. Mediamira Science Publisher, v. 51, n. 2,
p. 119 – 127, 2010.
VYATKIN, V. IEC 61499 Function Blocks for Embedded and Distributed Control Systems
Design. [S.l.]: O3 neida and Instrumentation Society of America (ISA), 2007.
VYATKIN, V. The IEC 61499 Standard and its Semantics. Industrial Electronics Magazine,
IEEE, v. 3, n. 4, p. 40 –48, dec. 2009. ISSN 1932-4529.
VYATKIN, V.; DUNBININ, V. Execution Model of IEC 61499 Function Block based on Sequen-
tial Hypothesis. 2006. Private communication.
REFERÊNCIAS 139
VYATKIN, V.; HANISCH, H.-M. Modeling of IEC 61499 Function Blocks a Clue to their
Verification. In: Design and optimization of intelligent machine tools, Proceedings. Karpacz,
Poland: [s.n.], 2000. p. 59–68.
WANG, H. New Control Strategy for CNC Machines Via STEP-NC. Tese (Doutorado) — The
University Auckland, 2009.
WANG, H.; XU, X.; TEDFORD, J. D. An adaptable cnc system based on step-nc and function
blocks. International Journal of Production Research, v. 45, n. 17, p. 3809–3829, Setembro
2007.
WANG, L.; CAI, N.; FENG, H.-Y. Function blocks enabled dynamic set-up dispatching and
execution monitoring. International Journal of Computer Integrated Manufacturing, v. 22, n. 1,
p. 3–12, 2009.
WANG, L.; FENG, H.-Y.; SONG, C.; JIN, W. Function block design for adaptive execution
control of job shop machining operations. International Journal of Production Research, v. 47,
n. 12, p. 3413–3434, Junho 2009.
WANG, L.; HOLM, M.; ADAMSON, G. Embedding a Process Plan in Function Blocks for
Adaptive Machining. CIRP Annals – Manufacturing Technology, v. 59, n. 1, p. 433–436, 2010.
WANG, L.; JIN, W.; FENG, H. Y. Embedding machining features in function blocks for distribu-
ted process planning. International Journal of Computer Integrated Manufacturing, n. 19: 5, p.
443 – 452, 2006.
WEG. Automação - Servoconversor SCA06 e Servomotor SWA. [S.l.], 2010. Disponível em:
<http://www.weg.net/>. Acesso em: 10/11/12.
WEG. Software WLP - Manual do Usuário. [S.l.], 2010. Disponível em: <http://www.weg.net/>.
Acesso em: 10/11/12.
WEI, Y. Implementation of IEC 61499 Distributed Function Block Architecture for Industrial Me-
asurement and Control Systems (IPMCS). Tese (Doutorado) — National University of Singapore,
2002.
XU, X. W.; WANG, L.; RONG, Y. STEP-NC and function blocks for interoperable manufacturing.
IEEE Transactions on Automation Science and Engineering, v. 3, n. 3, 2006.
YUSOF, Y.; CASE, K. Design of a step compliant system for turning operations. In: 19th Interna-
tional Conference on Flexible Automation and Intelligent Manufacturing - Lean manufacturing
and Services. Robotics and Computer-Integrated Manufacturing: [s.n.], 2010. v. 26, p. 753–758.
YUSOF, Y.; TAN, N. Z. Z.; KASIM, N. Exploring the ISO 14649 (STEP-NC) for Intelligent
Manufacturing System. European Journal of Scientific Research, v. 36, n. 3, p. 445–457, 2009.
ZHANG, X.; NASSEHI, A.; NEWMAN, S. Process comprehension for interoperable cnc manu-
facturing. In: Computer Science and Automation Engineering (CSAE), 2011 IEEE International
Conference on. [S.l.: s.n.], 2011. v. 4, p. 225 –229.
ZHU, X.; WANG, Y.; FU, H. A 3-D Simulation System for Milling Machining Based on STEP-
NC. In: The Sixth World Congree on Intelligent Control and Automation - WCICA. [S.l.: s.n.],
2006. v. 2, p. 6137–6141. ISSN 1-4244-0332-4.
ZOITL, A.; STRASSER, T.; SUNDER, C.; BAIER, T. Is IEC 61499 in harmony with IEC 61131-
3? Industrial Electronics Magazine, IEEE, v. 3, n. 4, p. 49 –55, dec. 2009. ISSN 1932-4529.
141
•Tela Inicial - Aba Basic: Ao executar o programa, uma interface inicial é mostrada para
o usuário, conforme mostra a figura a seguir.
–New block: utilizada para a criação de um novo bloco ou modelo aderente à IEC
61499. Ao cliclar nesta função, uma janela é aberta (conforme figura a seguir) e o
usuário pode inserir o nome do FB a ser criado e seleciona o tipo de modelo IEC
61499.
–Load XML block: esta função serve para abrir um FB ou modelo já existente para
editá-lo.
–Settings: esta função é utilizada para selecionar o caminho em que o arquivo XML
gerado deve ser salvo. Este caminho deve indicar o diretório onde está localizada a
bliblioteca de FBs. Uma tela é aberta para facilitar a seleção do diretório, conforme
mostra a figura a seguir.
–Generate XML: esta função realiza a geração do arquivo no formato XML a partir das
informações editadas na interface gráfica referente ao modelo IEC 61499 selecionado
nas abas do programa.
–View XML: esta função mostra em uma janela o código XML gerado.
–Comment: comentário;
Na tela inicial do GASR FB Editor, a aba selecionada é a aba Basic onde existem campos
a serem preenchidos/editados para a criação ou edição de um FB do tipo básico. Na coluna
da esquerda da tela, tem-se a possibilidade de editar os dados e eventos de entrada e saída.
Essa coluna é semelhante para o bloco do tipo básico, composto e serviço de interface
e é onde são editadas informações referente a estrutura dos blocos. Os eventos e dados
de entrada e saída podem ser adicionados por botões dispostos na interface gráfica onde
existem os campos correspondentes a serem preenchidos de forma bem prática e fácil,
apenas seguindo o detalhamento existente na tela. Na coluna da esquerda da tela, na aba
Basic existem um quadro onde são adicionado algoritmos e esses podem ser editados em
uma janela separadamente. Outro quadro é referente ao controle de execução, o Execution
Control Char, onde possui botões para que o usúário crie estados e transições adicionando
as ações a serem tomadas em cada estado com a seleção do algoritmo a ser executado.
Após editadas todas a informações do bloco, o usuário deve gerar o arquivo XML, podendo
vizualiza-lo posteriormente.
•Aba Composite: Na aba para criação e edição do FB do tipo composto, existe de forma
semelhante à aba Basic já apresenta, uma coluna para criação e edição de dados e eventos
de entrada e saída para a construção da estrutura do bloco. Já na coluna da direita, existe
um quadro chamado Funtion Blocks Network onde são adicionados blocos do tipo básico,
composto e/ou serviço de interface para formarem a rede interna ao FB composto. Neste
quadro também possui campos onde são feitas as conexões de eventos e dados entre
os blocos constituintes da rede e a estrutura do bloco composto a ser criado ou editado,
conforme pode ser visualizado na figura a seguir.
APÊNDICE A - GASR FB Editor: Guia do Usuário 144
•Aba Service Interface: essa aba é utilizada para criação ou edição de FB do tipo serviço
de interface. Da mesma forma como para o FB do tipo básico e composto, essa aba possui
a coluna da esquerda (conforme figura a seguir) para a criação e edição dos dados e
eventos de entrada e saída do bloco, construindo assim a estrutura do FB. Na coluna da
direita, a interface dispoinibiliza um quadro para a inclusão do arquivo base do FB, qual
contém o algoritmo necessário para executar a função para que o bloco se destina com
características do hardware onde será implementado o FB. Outro quadro, chamado de
Service (Time-sequence diagram) editing serve para criar ou editar a sequência temporal
APÊNDICE A - GASR FB Editor: Guia do Usuário 145
do FB conforme tratado na IEC 61499.
•Aba Resorce: esta aba tem a finalidade de criação ou edição do modelo de recurso da
IEC 61499. Nela encontra-se campos para a adição de blocos do tipo básico, composto
e/ou serviço de interface que irão compor a rede interna do recurso, fazendo a conexão de
eventos e dados, conforme mostra a figura a seguir.
•Aba Device: esta aba tem a finalidade de criação e edição do modelo de dispositivo da
IEC 61499. Esta aba está em desenvolvimento.
•Aba System: esta aba tem a finalidade de criação e edição do modelo de sistema da IEC
61499. Esta aba está em desenvolvimento.
APÊNDICE A - GASR FB Editor: Guia do Usuário 146
ISO −10303−21;
HEADER;
FILE_DESCRIPTION ( ( ’ P i e c e f o r FRANK’ ,
’ ’) , ’1 ’);
FILE_NAME ( ’ Peca_FRANK . s t p ’ , ’2012 −06 −20 ’ ,
( ’G . A . S . R . a t S a n t a C a t a r i n a S t a t e U n i v e r s i t y ’ ) , $ ,
’ ISO 1 4 6 4 9 ’ , $ ) ;
FILE_SCHEMA ( ( ’ MACHINING_SCHEMA’ , ’ MILLING_SCHEMA ’ ) ) ;
ENDSEC ;
DATA;
#1= PROJECT ( ’ EXECUTE_SLOTS ’ , # 2 , ( # 7 ) , $ , $ , $ ) ;
#2= WORKPLAN( ’MAIN WORKPLAN’ , ( # 4 0 , # 4 1 , # 4 2 , # 4 3 , # 4 4 , # 4 9 , # 4 5 , # 4 6 , # 4 7 , # 4 8 ) , $ , # 1 4 , $ ) ;
#7= WORKPIECE( ’FOAM PIECE ’ , # 1 3 , 0 . 0 1 , $ , $ , $ , $ ) ;
#13= MATERIAL( ’FOAM’ , ’FOAM ’ , ( ) ) ;
#14= SETUP ( ’ SETUP OF WORKPIECE’ , # 1 0 0 , # 1 0 4 , ( # 1 6 ) ) ;
#16= WORKPIECE_SETUP ( # 7 , # 3 5 0 , $ , $ , ( ) ) ;
#132= LINEAR_PATH ( # 1 3 3 , # 1 3 5 , # 1 3 6 ) ;
#133= AXIS2_PLACEMENT_3D ( ’ SLOT1 : TRAVEL_PATH_PLACEMENT’ , # 1 3 4 , $ , $ ) ;
#134= CARTESIAN_POINT ( ’ SLOT1 : TRAVEL_PATH_PLACEMENT ’ , ( 5 . 0 , 0 . 0 , 0 . 0 ) ) ;
#135= TOLERANCED_LENGTH_MEASURE ( 3 0 . 0 , # 1 3 9 ) ;
#136= DIRECTION ( ’ ’ , ( 1 . 0 , 0 . 0 , 0 . 0 ) ) ;
#137= SQUARE_U_PROFILE ( $ , # 1 3 8 , $ , $ , $ , $ ) ;
#138= TOLERANCED_LENGTH_MEASURE ( 6 . 0 , # 1 3 9 ) ;
#139= PLUS_MINUS_VALUE ( 0 . 1 , 0 . 1 , 3 ) ;
#140= OPEN_SLOT_END_TYPE ( ) ;
ENDSEC ;
END−ISO −10303−21;
153
S t a r t e r −−− START_WORK e x e c u t i o n c o m p l e t e d
S t a r t e r −−− START_WORK r e t u r n e d e v e n t : s t a r t
RESOURCE−−− STEP−NC_DATA1 −> s t a r t e d w i t h START_WORK . s t a r t
BasicFB−−− "EXECUTABLE_SWITCH" s t a r t e d w i t h e v e n t : START
BasicFB−−−I s on s t a t e : START
BasicFB−−−E v e n t : START i n c o m i n g
BasicFB−−−Changed t o s t a t e : SETUP
BasicFB−−−A c t i o n No . : 1
BasicFB−−−A l g o r i t h m = a l g
BasicFB−−−E v e n t o u t = SETUP
BasicFB−−−A c t i o n c o m p l e t e d
BasicFB−−−I s on s t a t e : SETUP
BasicFB−−−No e v e n t i n c o m i n g
BasicFB−−−Changed t o s t a t e : START
BasicFB−−−I s on s t a t e : START
BasicFB−−−No e v e n t i n c o m i n g
BasicFB−−− "EXECUTABLE_SWITCH" e x e c u t i o n c o m p l e t e d
BasicFB−−− "EXECUTABLE_SWITCH" r e t u r n e d e v e n t : SETUP
SIFB_Publ−−− Publ_8_SETUP1 s t a r t e d w i t h e v e n t : REQ
SIFB_Publ−−− S e r v i c e −> D a t a t r a n s f e r from l o c a l p u b l i s h e r t o l o c a l s u b s c r i b e r
SIFB_Subl−−− Subl_8_SETUP s t a r t e d w i t h e v e n t : IND
RESOURCE−−− SETUP_FRANK −> s t a r t e d w i t h Subl_8_SETUP . IND
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_1 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_2 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_3 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_4 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_5 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_6 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_7 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : Subl_8_SETUP . RD_8 s t o r e d on B u f f e r −R e s o u r c e
F i l e W r i t e r : o r d e r _ m a c h i n e _ h o m e _ p o s i t i o n i n i t i a l i z e d w i t h e v e n t : REQ
F i l e W r i t e r : order_machine_home_position execution complete
F i l e W r i t e r : o r d e r _ m a c h i n e _ h o m e _ p o s i t i o n r e t u r n e d e v e n t RSP
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . d e s t i n a t i o n l o a d e d on b l o c k t a b l e : 02 AF5210
BasicFB−−− " m o v e t o _ w o r k p i e c e _ o r i g i n " s t a r t e d w i t h e v e n t : I n i t
APÊNDICE D - Trecho do Arquivo Relatório do Ambiente de Execução 156
F i l e W r i t e r : o r d e r _ m a c h i n e _ h o m e _ p o s i t i o n r e t u r n e d e v e n t RSP
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . d e s t i n a t i o n l o a d e d on b l o c k t a b l e : 02 AF5210
BasicFB−−− " m o v e t o _ w o r k p i e c e _ o r i g i n " s t a r t e d w i t h e v e n t : I n i t
BasicFB−−−I s on s t a t e : START
BasicFB−−−E v e n t : I n i t i n c o m i n g
BasicFB−−−Changed t o s t a t e : INIT
BasicFB−−−A c t i o n No . : 1
BasicFB−−−A l g o r i t h m = l i n e _ e q u a t i o n
BasicFB−−−E v e n t o u t = Send
BasicFB−−−A c t i o n c o m p l e t e d
BasicFB−−−I s on s t a t e : INIT
BasicFB−−−No e v e n t i n c o m i n g
BasicFB−−−Changed t o s t a t e : START
BasicFB−−−I s on s t a t e : START
BasicFB−−−No e v e n t i n c o m i n g
BasicFB−−− " m o v e t o _ w o r k p i e c e _ o r i g i n " e x e c u t i o n c o m p l e t e d
BasicFB−−− " m o v e t o _ w o r k p i e c e _ o r i g i n " r e t u r n e d e v e n t : Send
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . e q _ i d s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . c o e f _ a s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . c o e f _ b s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . t 0 s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . t s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . f i n a l _ p o s s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . o u t _ s p e e d s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : m o v e t o _ w o r k p i e c e _ o r i g i n . v _ c o e f s t o r e d on B u f f e r −R e s o u r c e
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P0 l o a d e d on b l o c k 1
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P1 l o a d e d on b l o c k t a b l e : 02AF36E0
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P2 l o a d e d on b l o c k t a b l e : 02 AF3758
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P3 l o a d e d on b l o c k 0
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P4 l o a d e d on b l o c k 1
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P5 l o a d e d on b l o c k t a b l e : 02 AF37F8
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P6 l o a d e d on b l o c k 0 . 0 4
RESOURCE−−−∗∗∗Var : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n . P7 l o a d e d on b l o c k t a b l e : 02AF38C0
F i l e W r i t e r : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n i n i t i a l i z e d w i t h e v e n t : REQ
F i l e W r i t e r : order_moveto_workpiece_origin execution complete
F i l e W r i t e r : o r d e r _ m o v e t o _ w o r k p i e c e _ o r i g i n r e t u r n e d e v e n t RSP
BasicFB−−− " m o v e t o _ w o r k p i e c e _ o r i g i n " s t a r t e d w i t h e v e n t : Req
BasicFB−−−I s on s t a t e : START
BasicFB−−−E v e n t : Req i n c o m i n g
BasicFB−−−Changed t o s t a t e : REQ
...
...