Você está na página 1de 10

Projeto e montagem de um Controlador Lgico Programvel baseado em FPGA

Rodrigo de Faria Romero


Instituto Federal de So Paulo - IFSP
rfromero@hotmail.com

Ricardo Pires
Instituto Federal de So Paulo IFSP
ricardopires@ieee.org

Resumo - Controladores Lgico Programveis (CLPs) so dispositivos eletrnicos


largamente utilizados tanto em controle de processos quanto em automao industrial,
porm devido a sua arquitetura baseada em microprocessador h restries quanto
melhora de sua eficincia. O intuito desse artigo desenvolver um CLP, composto por
software e hardware, baseado em um chip reconfigurvel do tipo FPGA (Field
Programmable Gate Array), conferindo ao dispositivo melhor desempenho e flexibilidade
e com a mesma facilidade de uso de um CLP convencional. O software desenvolvido
capaz de interpretar um programa em Structured Text (ST), reconhecer as possibilidades
de paralelismos e gerar um arquivo em VHDL, sem interveno por parte do
programador.
Palavras-chave: CLP. FPGA. VHDL. Structured Text. Paralelismo.
Abstract - Programmable Logic Controllers (PLCs) are electronic devices widely used in
both process control and in industrial automation, but due to its architecture based
microprocessor are no restrictions regarding the improvement of its efficiency. The
purpose of this paper is to develop a PLC, composed of hardware and software, based on a
reconfigurable chip-type FPGA (Field Programmable Gate Array), giving better device
performance and flexibility and with the same ease of use of a conventional PLC. The
developed software is able to interpret a program in Structured Text (ST), recognize the
possibilities for parallelism and generate a file in VHDL without intervention from the
programmer.
Keywords: PLC. FPGA. VHDL. Structured Text. Parallelism.
1

INTRODUO

Controladores Lgico Programveis (CLPs) so dispositivos eletrnicos largamente


utilizados tanto em controle de processos quanto em automao industrial, porm devido
sua arquitetura baseada em microprocessador h restries quanto melhora de sua
eficincia (DU, 2010).
Tradicionalmente os CLPs possuem um microprocessador que executa um programa
escrito em uma das cinco linguagens normatizadas pela IEC61131-3, que so: Instruction

List, Structured Text (linguagens escritas), Ladder, Function Block, Sequential Function
Chart (linguagens grficas).
O funcionamento da unidade central de processamento de um CLP convencional
explicado por (COSTA, 2009) o microprocessador interpreta os sinais de entrada, executa
a lgica de controle segundo as instrues do programa de aplicao, realiza clculos,
executa operaes lgicas, para, em seguida, enviar os sinais apropriados s sadas. No
ciclo de instruo o microprocessador busca as instrues armazenadas na memria e
executa cada uma delas. A execuo do programa consiste na repetio sequencial do
processo de busca e execuo das instrues.
Nota-se que o ciclo de instruo igual soma do ciclo de busca com o ciclo de
execuo, sendo que apenas o segundo est diretamente relacionado com o controle de um
processo. (COSTA, 2009) constata que o ciclo de busca de instrues em memria consome
cerca de 40% do tempo envolvido no ciclo de instruo e representa um tempo de
processamento perdido e que no pode ser eliminado devido arquitetura interna dos
microprocessadores, j que eles no permitem reconfigurao por hardware ou software.
Frente essa limitao diversos autores propuseram substituir o microprocessador
por um FPGA (Field Programmable Gate Array), chip constitudo por elementos lgicos
programveis conectados a uma rede de interconexes programvel. Os elementos lgicos
podem ser programados para otimizar qualquer operao lgica primitiva e as interconexes
para combin-los adequadamente. Os FPGAs no necessitam executar o ciclo de busca de
instrues executado pelos microprocessadores, alm de serem capazes de realizar muitas
operaes simultaneamente, mais do que os processadores usuais. Projetos desenvolvidos
com FPGAs oferecem baixo custo de implementao, alta flexibilidade e alto ganho de
performance em relao a softwares (ECONOMAKOS, 2010).
Entretanto o maior desafio em contruir um CLP utilizando FPGA est em converter o
programa feito para CLP em uma linguagem que possa ser compreendida pelo FPGA, como
VHDL (VHSIC Hardware Description Language) e Verilog. A partir dessa dificuldade
surgiram diversos trabalhos propondo solues a fim de viabilizar tal projeto.
(MIYAZAWA, 1999) e (IKESHITA, 1999) desenvolveram uma ferramenta capaz de
converter um programa descrito em Sequential Function Chart (SFC) para VHDL. Essa
ferramenta composta por uma biblioteca de funes em SFC e seu correspondente em
linguagem VHDL. Porm a referida ferramenta no utiliza o potencial de simultaneidade do
FPGA. O mesmo foi feito por (ALONSO, 2009) para converter diagramas Ladder para
VHDL.
Em seu trabalho (WELCH, 2000) realiza a converso de diagramas Ladder para a
arquitetura de um FPGA, levando em considerao sua estrutura interna. Como resultado foi
possvel eliminar a converso do diagrama Ladder para lgebra boolena e otimizar as
conexes dos blocos lgicos, utilizando para isso tcnicas heursticas de alocao e
roteamento dentro do FGPA.
(CHEN e PATYRA, 1994) projetaram modelos em VHDL capazes de reproduzir o
funcionamento dos principais componentes de um programa Ladder. (ABDEL-HAMID ,
2004) e (KUUSILINNA, 2001) propuseram um algoritmo para converter uma mquina de
estados finitos em VHDL. (ADAMSKI, 2000) escolheu modelos em redes de Petri como
substitutos aos diagramas Ladder.

J no mbito comercial a fabricante National Intruments possui um CLP denominado


CompactRIO construdo com FPGA, entretanto sua programao deve ser feita atravs da
linguagem proprietria Labview.
Este artigo apresenta o desenvolvimento de uma conversor capaz de ler um programa
escrito em Structured Text, reconhecer as possibilidades de paralelismos e gerar um cdigo
em VHDL que execute exatamente as mesmas funes do ST. Porm, devido ao paralelismo,
a implementao usar o nmero mnimo possvel de ciclos para executar uma varredura
completa do cdigo Ladder equivalente. O reconhecimento de paralelismo realizado por
um algoritmo heurstico inicialmente desenvolvido por FALCIONE (1993) e posteriormente
aprimorado por DU (2010) denominado Condensed Simultaneity Graph (CSG).
2

DESENVOLVIMENTO

O CLP desenvolvido nesse trabalho dividido em duas partes: software e hardware.


O software utiliza como entrada um programa escrito na linguagem Structured Text,
reconhece as possibilidades de paralelismo e gera um arquivo VHDL, que disponibilizado
para o usurio configurar o FPGA. J o hardware composto por uma fonte de alimentao,
interfaces de entrada e sada e uma unidade central e seu circuito de configurao.
2.1 Software
Inicialmente definiu-se a linguagem Structured Text (ST) como elemento de entrada
para o software conversor devido sua estrutura organizada capaz de representar qualquer
uma das outras quatro linguagens do IEC61131-3 com exatido. Dessa forma pode-se
utilizar um software livre denominado Beremiz para programar o CLP em qualquer uma das
cinco linguagens, bastando converter o cdigo para ST.
Em seguida escolheu-se o Linux/GNU como base para elaborao do conversor por
ser uma Sistema Operacional desimpedido de contratos e licenas, alm da existncia de
ferramentas livres de scanning (Flex) e parsing (Bison) disponveis para uso.
Atravs de programao em C/C++ foi elaborado um software para realizar a leitura
(scanning) do cdigo em Structured Text. Cada momento que uma palavra-chave de ST
reconhecida gera-se um elemento de marcao, ou token. Ao final todos os tokens so
organizados e formam uma lista para ser utilizada pela segunda parte do conversor,
responsvel por aplicar o algoritmo para identificao de possveis simultaneidades dentro
do controle de processo.
indispensvel que a ordem com que as expresses booleanas permaneam da
mesma forma como aparecem no Structured Text, bem como o correto reconhecimento da
prioridade de execuo das funes lgicas, para isso utilizam-se parnteses envolvendo as
operaes secundrias.

Figura 1 Funes lgicas com prioridade.


2.1.1 Implementao do Algortimo
Nessa etapa implementa-se o algoritmo de verificao de paralelismo desenvolvido
por Du (2010), gerando um grafo de simultaneidade (Simultaneity Graph, ou SG), um grafo
de dependncia (Dependency Graph, ou DG) e o grafo de simultaneidade condensado
(Condensed Simultaneity Graph, ou CSG).
No SG so utilizadas linhas sem orientao para conectar dois estados, ou seja, duas
sadas de um rung do Ladder. Esse grafo contm um n para cada sada de rung e os arcos
conectam os ns correspondentes s sadas que podem ser verdadeiras simultaneamente em
um ciclo de varredura do Ladder. O grafo SG contem a informao sequencial do processo
que ser implementado em VHDL, pois algumas etapas devem ocorrer somente aps o
trmino de outras etapas que foram declaradas em rungs anteriores no diagrama Ladder.

Figura 2 Simultaneity Graph (SG)


O grafo DG usa linhas orientadas (vetores) para conectar dois estados que possuem
relao de dependncia devido a ordem dos rungs no diagrama Ladder. Assim como no SG o
DG possui um n para cada sada de rung porm os arcos implicam que o rung posicionado
no destino do vetor depende do rung da origem do vetor. Esse grafo contm a informao de
dependncia dos estados do processo para o modelo em VHDL e utilizado para
implementar operaes paralelas no FPGA, conferindo maior performance ao CLP.

Figura 3 Dependency Graph (DG)

Para integrar todas as informaes presentes nos dois grafos contrudo um terceiro,
o CSG, onde parte dos ns podem ser unidos caso seus estados estejam ligados no grafo de
dependncia. Os arcos no possuem orientao e devem seguir regras utilizadas na
confeco do grafo de simultaneidade.

Figura 4 Condensed Simultaneity Graph (CSG)


Nesse momento necessrio decompor o grafo recem criado para classificar os
componentes do diagrama Ladder em estrutura sequencial ou paralela. Para realizar a
decomposio utilizam-se duas tcnicas: a decomposio de conectividade total (Full
Connectivity Decomposition, ou FCD) e a decomposio de componentes conectados
(Connected Component Decomposition, ou CCD).
Na gerao do FCD verifica-se quais ns esto conectados a todos os outros e ento
isola-se esse estado dos demais. Esse processo repetido at que no haja mais ns com
todas as adjacncias conectadas.

Figura 5 Full Connectivity Decomposition (FCD)


Como resultado do processo anterior so criados diversos sub-grupos, sendo que
parte deles possuem apenas um n. Agora possvel determinar quais componentes faro
parte da estrutura paralela observando-se a sequncia com que os estados so declarados no
diagrama Ladder. O grafo CCD construdo repetindo esse mtodo enquanto houver subgrupos com mais de um n. O resultado melhor visualizado quando construi-se uma lista
que relacione a ordem de ativao dos ns (ou passos de execuo).

Figura 6 Lista do Connected Component Decomposition (CCD)

2.1.2 Gerao do VHDL


A lista disponibilizada como arquivo de texto (*.txt) e serve de entrada para o
gerador de VHDL, desenvolvido de forma independente do implementador de algoritmo. O
documento contendo os passos de execuo dos rungs lido da mesma forma do ST, no
entanto os token so organizados para fornecer as informaes necessrias para a construo
dos processos no VHDL.
Assim como proposto no artigo utilizado como referncia optou-se por implementar
uma Mquina de Estados Finitos (MEF) com o intuito de sincronizar as ativaes de cada
processo dentro do FPGA. A MEF utiliza do clock para produzir estados que excitam os
processos contendo as expresses lgicas correspondentes aos rungs do diagrama Ladder.
Quando todos os passos so contemplados gerado um arquivo no formato VHDL
(*.vhdl) disponvel para o programador configurar o FPGA, utilizando para isso o Ambiente
de Software EDA (Eletronic Design Automation) fornecido pelo fabricante do chip. Nesse
momento possvel simular o circuito e definir qual a disposio fsica dos pinos de entrada
e sada do CLP. Depois basta carregar a configurao no FPGA, que caso possua memria
retentiva ir carregar-se sempre que for energizado, dispensando a repetio do processo
toda vez que o CLP for reiniciado.
2.2 Hardware
O hardware desenvolvido apresenta trs partes: fonte de alimentao, interfaces de
entrada e sada e unidade central.
A fonte de alimentao responsvel por fornecer energia para o CLP. As tenses
escolhidas foram 5 Vdc (tenso de trabalho da placa FPGA) e 24 Vdc (tenso padro de
operao para dispositivos de campo).
As interfaces de entrada e sada so responsveis por isolar opticamente os terminais
do FPGA dos dispositivos de campo, evitando danos aos CLP. Os circuitos de interface so
bidirecionais, ou seja, podem ser utilizados tanto em uma porta de entrada quanto de sada.
Esse projeto indito confere maior flexibilidade ao CLP, pois o usurio pode configurar a
quantidade de portas conforme a sua necessidade, dispensando a utilizao de diversos
mdulos de expanso.

Figura 7 Interface bidirecional.

A unidade central composta por uma placa com FPGA Altera Cyclone II e mdulo
de configurao JTAG com converso para USB. A configurao feita atravs do software
Quartus II, disponibilizado pelo fabricante do FPGA.

Figura 8 Unidade central com FPGA.


3

RESULTADOS

Um exemplo, tambm utilizado por DU (2010), foi implementado com sucesso no


programa conversor a fim de validar seu funcionamento. Trata-se de um diagrama Ladder,
posteriormente convertido para Structured Text atravs do software Beremiz, projetado para
controlar uma planta industrial de neutralizao de substncias qumicas.

Figura 9 Planta de neutralizao de substncias qumicas


As vvulas v1 e v2 controlam, respectivamente, a entrada da substncia a ser
neutralizada e do neutralizador no reservatrio principal, onde feita a mistura atravs de

um motor m. Um aquecedor h, do tipo resistncia eltrica, fornece calor para a mistura,


favorecendo a reao de neutralizao.
Para monitorar as grandezas fsicas e qumicas dentro do reservatrio principal so
utilizados dois sensores: ts, para medir a temperatura (C), e as, para medir a acidez (pH).
Ainda h trs sensores, ls1, ls2 e ls3 que indicam qual o nvel da mistura no reservatrio.
Caso a mistura atenda as caractersticas de temperatura e acidez exigidas pelo
processo os indicadores tl (temperatura) e al (acidez) avisam que a neutralizao est
completa e a vlvula v3 se abre, liberando a sada do produto final para o prximo tanque,
que ir utiliz-lo. Se essas condies no forem satisfeitas a vlvula v4 encaminha o
conteudo do reservatrio principal para o tanque que contm a substncia a ser neutralizada.
Incluindo o boto de incio (start) o diagrama Ladder desenvolvido para controlar
esse processo conta com quatorze variveis, sendo seis entradas e oito sadas.

Figura 10 Diagrama Ladder para controle do processo.


O cdigo em Structured Text foi fornecido ao programa conversor desenvolvido
nesse artigo, que por sua vez gerou o cdigo VHDL j com os possveis paralelismos levados
em considerao. Tanto o Ladder original quanto o VHDL foram simulados em computador
atravs do softwares ZelioSoft e GHDL e seus resultados foram comparados.
Ambas as simulaes apresentaram o mesmo resultado, mostrando a equivalncia do
VHDL gerado pelo programa tradutor com o Ladder original. Entretanto o uso de um FPGA
necessitou de menos ciclos do que no microprocessador (quatro ciclos no FPGA contra oito
no microprocessador) comprovando sua melhor eficincia como unidade central de um CLP.
4

CONCLUSO

Nesse trabalho foi projetado e construdo o conjunto hardware/software que constitui


um CLP completo, capaz de realizar controles de processos e automao industrial com
vantagens em relao aos CLPs convencionais, tais como processar sinais de altssima
velocidade (como encoders e contadores) alm de possibilitar total customizao da
quantidade de portas de entrada e sada pelo programador.
O software funciona de forma completamente automtica, sem a necessidade de
adaptao por parte do usurio acostumado com a utilizao de CLPs convencionais
presentes no mercado.
Por fim, o intenso crescimento da automao em todo o mundo, aliado carncia de
controladores rpidos e precisos, representa a potencialidade de sucesso de um produto de
baixo custo, alta performance e flexibilidade e fcil utilizao, como proposto nesse artigo.
5

DIRECIONAMENTO PARA TRABALHOS FUTUROS

O algoritmo responsvel pela verificao de paralelismo carece de comprovao


matemtica (FACIONE, 1993). Outras funcionalidades como temporizadores, contadores e
protocolos de comunicao tornariam o CLP mais apto para uso acadmico e/ou comercial,
devido natureza dos processos que so controlados por tais dispositivos. Tambm seria
vlido mensurar qual o ganho de desempenho obtido com o CLP baseado em FPGA
comparado ao CLP microprocessado.
Devido fase de identificao de paralelismo, o tempo de execuo do programa
conversor de Structured Text para VHDL do tipo 2^V, sendo V o nmero de variveis
presentes no Ladder. Esse tempo de execuo poder ser reduzido atravs de mudanas no
algoritmo de verificao de paralelismos.
Devido essa caracterstica de crescimento exponencial do tempo o programa
somente aplicvel at vinte e cinco variveis, pois a partir desse nmero o tempo
necessrio para gerao do VHDL ultrapassa as vinte horas.

REFERNCIAS

DU, Daoshan; XU, Xiaodong; YAMAZAKI, Kazuo. A study on the generation of siliconbased hardware Plc by means of the direct conversion of the ladder diagram to circuit
design language. Int J Adv Manuf Technol, 2010.
COSTA, Cesar da. Projetando Controladores Digitais com FPGA. Novatec, So Paulo,
2006.
ECONOMAKOS, Christoforos; ECONOMAKOS, George; KOUTRAS, Ioannis. Automated
FPGA Implementation Methodology of PLC Programs with Floating Point Operation. IEEE,
2010.
MIYAZAWA, I.; NAGAO, T.; FUKAGAWA, M.; ITOH, Y.; MIZUYA, T.; SEKIGUCHI, T.
Implementation of ladder diagram for programmable controller using FPGA. IEEE,
Piscataway, NJ, USA, ETFA, 1999.
IKESHITA, M.; TAJEDA, Y.; MURAKOSHI, H.; FUNAKUBO, N.; MIYAZAWA, I.
Application of FPGA to high-speed programmable controller development of the
conversion program from SFC to Verilog. IEEE Symposium on Emerging Technologies and
factory Automation, IEEE, Piscataway, NJ, USA, 1999.
WELCH, J.T. Translating unrestricted relay ladder logic into Boolean form. Computers in
Industry, 1992.
CHEN, J.; PATYRA, M.J.; VHDL modeling of a multivariable fuzzy logic controller
hardware system. IEEE International Conference on Fuzzy Systems. IEEE, Piscataway, NJ,
USA, 1994.
ABDEL-HAMID, A.T.; ZAKI, M.; TAHAR, S. A tool converting finite state machine to
VHDL. Canadian Conference on Electrical and Computer engineering, 2004.
KUUSILINNA, K.; LAHTINEN, V.; HAMALAINEN, T.; SAARINEN, J. Finite state
machine encoding for VHDLsynthesis. Comput Digi Tech, 2001.
ADAMSKI, M.; MONTEIRO, J.L. From interpreted Petri net specification to
reprogrammable logic controller design. IEEE International Symposium on Industrial
Eletronics, 2000.
IEC, Programmable Controller Programming Languages, International Electrotechnical
Commission, IEC61131-3, 2nd Edition.

10

Você também pode gostar