Development of a low cost programmable logic controller

Transcrição

Development of a low cost programmable logic controller
Development of a low cost programmable logic
controller
Marcel Seiji Kay∗ , Fábio Iaione∗ , Andréa Teresa Riccio Barbosa∗∗ , Rodrigo Porfírio da Silva Sacchi†
e Valguima Victoria Viana Aguiar Odakura†
∗ Faculdade
de Computação, **Centro de Ciências Exatas e Tecnologia
Universidade Federal de Mato Grosso do Sul - UFMS, Campo Grande, Mato Grosso do Sul 79070–900
Telefone: (67) 3345–7455, Fax: (67) 3345–7518
† Faculdade de Ciências Exatas e Tecnologia
Universidade Federal da Grande Dourados - UFGD, Dourados, Mato Grosso do Sul 79804–970
Telefone/Fax: (67) 3410–2072
Resumo—Some Brazilian regions have an agricultural vocation
and are undergoing on a significant industrialization process,
which is mainly caused by the installation of biofuel industries.
Therefore, demand for agricultural and industrial automation
will be great in the next years. The aim of this study is to
develop a low cost small module (hardware card), for use in the
automation of simple machines and equipments. This programmable logic controller (PLC) will be part of an open platform
that also contains a free software tool for programming PLC
in C language, and an online tutorial with detailed instructions
about building and programming the system. Thus, students and
professionals can automate machinery and equipment in a simple
and low cost way. This article shows the electronic design of the
PLC, its programming and tests results of the breadboard setup.
I. I NTRODUÇÃO
A automação quando utilizada em uma determinada máquina ou processo, possui como objetivos: aumento da sua
eficiência, maximização da produção reduzindo o consumo de
energia e/ou matérias-primas, menor emissão de resíduos, melhores condições de segurança (incluindo a segurança material,
humana ou das informações referentes ao processo), e redução
da interferência humana sobre o processo ou máquina [1]. Para
alcançar tais objetivos, os CLPs são amplamente utilizados
[2][3][4][5].
O aumento da procura pelos biocombustíveis no mundo
deve-se principalmente a três fatores: segurança energética,
proteção do meio-ambiente e inclusão social, pois as safras
geram renda para os produtores rurais [6][7]. A cana-de-açúcar
tem se mostrado um fenômeno, pois apesar de ocupar apenas
2% das terras aráveis do Brasil, fechou 2007 como o terceiro
item em termos de valor bruto da produção agropecuária. No
Mato Grosso do Sul (MS), o cenário dos biocombustíveis é
muito favorável devido à logística, à disponibilidade de áreas
agrícolas e aos incentivos fiscais, resultando em dezenas de
indústrias de biocombustíveis já instaladas ou em instalação,
e em milhares de vagas de empregos diretos [6][7][8][9].
Assim, o Estado está passando por um significativo processo
de industrialização que gera uma demanda por automação
industrial e agrícola será grande nessa região nos próximos anos. Além dessas novas instalações, frequentemente
necessita-se automatizar máquinas relativamente antigas que
estão em operação, e que ainda permanecerão em operação
por vários anos. Nesses casos, a utilização de CLPs existentes
no mercado geralmente não é viável financeiramente, e a
utilização de módulos de desenvolvimento para uso geral,
como o Arduíno, apresenta algumas desvantagens, como a
inexistência de interfaces de potência on-board e o fato desses
módulos não serem acondicionados em caixas adequadas.
Diante dessas informações, o objetivo do trabalho foi desenvolver um pequeno módulo (placa de hardware) de baixo
custo, para ser utilizado na automação de máquinas e equipamentos simples. Pretende-se que o sistema desenvolvido
seja uma opção intermediária entre um CLP comercial e
um sistema construído com um módulo de uso geral todo
adaptado. Ou seja, pretende-se desenvolver uma espécie de
Arduíno específico para automação.
II. M ATERIAIS E M ÉTODOS
Inicialmente realizou-se um levantamento das características
e funcionalidades de CLPs existentes no mercado, sendo selecionados para uma análise mais minuciosa apenas os módulos
menores (dimensões inferiores a 220x120x120 mm), resultando em dezessete (17) CLPs, os quais tiveram suas especificações levantadas (custo variou de R$290,00 a R$995,00).
Após análise dos dados obtidos, definiu-se as especificações
técnicas para o CLP a ser construído, selecionou-se o microcontrolador e elaborou-se o diagrama de blocos (Figura 1).
O microcontrolador selecionado foi o C8051F320 [10] que
possui um núcleo compatível com o conjunto de instruções
da família MCS-51. Esse núcleo possui um pipeline que
proporciona uma aceleração de aproximadamente 12 vezes
em relação ao núcleo original MCS-51. Além dos recursos
originais da família MCS-51, o C8051F320 apresenta em seu
interior: oscilador de 24,5 MHz, memória de dados (RAM) de
2304 Bytes (256 B originais, 1 kB de RAM a mais), FLASH
para programa de 16 kB programável no sistema, portas SPI
e SMBus, interface USB 2.0, 2 temporizadores/contadores
adicionais, conversor A/D com referência de tensão (10 bits,
200 ksps, 17 entradas multiplexadas), regulador de tensão de
Figura 2.
Circuito eletrônico de uma saída digital do CLP.
(sem fornecimento de corrente elétrica), e a saídas digitais
que fornecem corrente.
Figura 1. Diagrama de blocos do controlador lógico programável projetado.
3,3 V, detector de brown-out, sensor de temperatura e crossbar
que permite configurar a função de cada pino de E/S.
Os demais circuitos integrados selecionados para o CLP
foram: CNY74-2H (Acoplador óptico), LMC6484IN (Amplificador operacional), ULN2003A (Buffer de corrente), M24C64
(Memória EEPROM de 8kB) e LM385Z (Referência de tensão).
Para programação em C do microcontrolador foi utilizado
o ambiente integrado de desenvolvimento (IDE) Proview32
(instalado no Windows XP)[11].
A partir do diagrama de blocos do CLP, definiu-se um
primeiro esquema eletrônico que foi parcialmente montado em
matriz de contatos para realização de testes e alterações do
circuito. Para gravação dos programas (firmwares) no microcontrolador utilizou-se um firmware bootloader [12], previamente gravado utilizando-se o adaptador serial EC2 (Silicon
Laboratories), e o aplicativo USBbootloader instalado em um
IBM-PC (Windows XP), ambos fornecidos pelo fabricante do
microcontrolador. O firmware bootloader ocupa 5 kB da memória de programa do microcontrolador e permite a gravação
de firmwares utilizando-se a porta USB do computador.
A elaboração da placa de circuito impresso (PCI) do módulo
foi realizada utilizando-se aplicativo open-source KiCad [13].
Figura 3.
Circuito eletrônico de uma entrada digital do CLP.
Nos testes, a entrada digital funcionou com tensões de 3
V a 12 V. Cabe observar que a tecla em paralelo com o
transistor do opto-acoplador pode ser usada para entrada de
dados (interface homem-máquina - IHM) quando a respectiva
entrada não estiver sendo utilizada por um sensor (como são
6 entradas digitais, existem 6 teclas).
A Figura 4 mostra o circuito de uma entrada analógica,
constituída de um amplificador diferencial cuja saída está
referenciada à metade da tensão de referência (Vref) do
conversor A/D. Esse amplificador tem um ganho de 0,11 (é um
atenuador) permitindo as seguintes faixas de entrada: 0 V a +5
V, -5 V a +5 V, 0 V a +10 V, -10 V a +10 V, 0 V a + 20 V e 0
a 20 mA (utilizando-se o resistor de 220 ohms para converter
a corrente em tensão). Devido às diferentes faixas de entrada,
o sistema possui duas tensões de referência para o conversor
A/D, uma disponível internamente no microcontrolador (2,44
V) e outra externa (1,24 V), sendo a comutação entre as duas
realizada através de um registrador de função especial do
microcontrolador. Na saída do amplificador existe um filtro
RC passa-baixas de primeira ordem (Fcorte=340 Hz), cuja
função é eliminar ruídos de alta frequência do sinal que será
digitalizado. Cabe observar que essas entradas são adequadas
apenas para sinais analógicos de baixa frequência, tais como
os gerados por sensores analógicos.
III. R ESULTADOS E D ISCUSSÃO
A Figura 2 mostra o circuito de uma saída digital, onde
pode-se perceber que o nível lógico gerado pelo pino de E/S
do microcontrolador é aplicado a um buffer de corrente que
controla a bobina do relé (12 V). As saídas desse buffer são
protegidas por diodos internos contra sobretensões que podem
surgir no desligamento da bobina.
Para que o buffer de corrente funcionasse, foi necessário
configurar a saída digital do microcontrolador como pushpull. A Figura 3 mostra o circuito de uma entrada digital, que
pode ser conectada a saídas digitais do tipo aberto/fechado
Figura 4.
Circuito eletrônico de uma entrada analógica do CLP.
Nos testes foram aplicadas algumas tensões conhecidas na
entrada e verificados os valores fornecidos pelo conversor A/D,
tendo-se obtido os resultados esperados.
A Figura 5 mostra o circuito de uma saída analógica,
formada por um filtro RC de primeira ordem e um seguidor
de tensão que age como buffer de corrente. Para geração de
uma tensão analógica, utiliza-se um modulador de largura de
pulso (PWM) que aplica os pulsos no filtro RC, gerando uma
tensão diretamente proporcional à duração dos pulsos.
Figura 7.
Figura 5.
Circuito eletrônico de uma saída analógica do CLP.
A Figura 6 mostra a conexão da memória EEPROM e do
RTC ao microcontrolador, através do barramento SMBus/I2C.
Percebe-se na memória a presença de dois resistores de pull-up
nas duas linhas do barramento SMBus e de um circuito RC no
pino WP. Esse circuito só libera a memória para escrita depois
de alguns milissegundos, evitando assim eventuais escritas
errôneas quando a energia é ligada.
Percebe-se também a presença de um cristal oscilador de
quartzo de 32768 Hz, usado para gerar a base de tempo do
RTC, e de uma bateria de 3 V que mantém o RTC funcionando
mesmo quando a energia do CLP é desligada. A Figura 7
mostra o circuito da interface para comunicação RS-485. Os
pinos P0_4 e P0_5 são configurados para serem TXD e RXD e
o pino P0_6 define se ocorrerá transmissão ou recepção através
do par de fios (sistema half-duplex). O resistor de 120 ohms
pode ser conectado entre as linhas de comunicação através de
um jumper (JP1), caso o CLP esteja em uma extremidade da
rede RS-485.
Figura 6.
Conexão da memória EEPROM e do RTC ao microcontrolador.
O CLP possui ainda alguns LEDS (pode-se colocar até 6) e
um pequeno buzzer para serem utilizados como uma simples
IHM, em conjunto com as 6 teclas, caso necessário.
Interface serial RS-485 para conexão do CLP em uma rede.
O circuito eletrônico do CLP foi parcialmente montado
(uma saída digital, uma entrada digital, uma entrada analógica,
uma saída analógica, EEPROM e RTC) em uma matriz de
contatos.
Os programas desenvolvidos para os testes com a montagem
experimental foram elaborados tendo como base um firmware
e um aplicativo fornecidos pelo fabricante do microcontrolador.
O aplicativo TestPanel foi modificado (utilizou-se o códigofonte em Visual Basic 6) e foi transformado em um terminal
que mostra os dados recebidos pela USB e envia os dados digitados no teclado pela USB. Com essa funcionalidade, mostrar
dados (caracteres de texto) enviados pelo microcontrolador e
enviar dados digitados para o microcontrolador, obteve-se uma
IHM simples e eficiente para realizar os testes.
O firmware TestPanel foi modificado (utilizou-se o códigofonte em C) para adequar-se ao circuito eletrônico do CLP.
Além disso, foram acrescentadas funções para ler e escrever
na memória EEPROM e no RTC. Para facilitar o envio de
dados (texto) para o aplicativo rodando no PC, criou-se a
função printf_USB, que utiliza a função sprintf disponível
na biblioteca stdio para colocar os caracteres formatados
em um vetor, que depois é enviado pela USB utilizandose rotinas fornecidas pelo fabricante do microcontrolador. A
partir dos dados enviados pelo microcontrolador através da
função printf_USB, inicialmente, o usuário deve digitar a tecla
“m” para que o microcontrolador envie o menu de opções, tais
como: leitura de uma entrada digital (P0_2) de forma contínua,
leitura do canal 0 do conversor A/D (P2_0), inversão do nível
lógico de uma saída digital (P1_0), gravação e verificação de
dados na memória EEPROM, mudança de tensão de referência
do conversor A/D, acionamento e ajuste do RTC, visualização
da data e horário do RTC, e outros.
Cabe observar que as funções para utilizar a USB no
microcontrolador (inicializar, enviar e receber dados, e outras)
estão disponíveis compiladas no próprio código do bootloader,
gravado nos endereços 0 a 5 kB da memória de programa do
microcontrolador. Portanto, o firmware desenvolvido (gravado
do endereço 5 kB em diante) faz chamadas para essas rotinas
do bootloader, evitando-se redundância de código. Como o
bootloader fornecido pelo fabricante foi compilado com um
compilador diferente do usado nesse trabalho, foram necessá-
rias algumas modificações para que o firmware desenvolvido
pudesse chamar rotinas do bootloader. A diferença que mais
consumiu tempo e esforços para ser adaptada foi a relativa aos
ponteiros. Nos compiladores para família MCS-51, normalmente os ponteiros são armazenados utilizando-se 3 bytes, um
que identifica o tipo de memória (código, dados interna, dados
externa, entre outros) onde localiza-se a variável apontada, e
dois que indicam o endereço da variável. A diferença ocorria
nos valores usados pelos dois compiladores para identificar
os diferentes tipos de memória. Como por exemplo, um
compilador usa 255 para identificar memória de código e o
outro usa 5.
A Figura 8 mostra o layout obtido para a placa de circuito
impresso (PCI).
Devido à pequena quantidade de componentes eletrônicos
e ao baixo custo (aproximadamente R$95,00) acredita-se que
esse módulo será uma boa opção para estudantes e profissionais da área de informática que desejarem realizar pequenos
trabalhos na área de automação, sem precisar recorrer a um
computador desktop, a um CLP vendido comercialmente ou a
um módulo adaptado.
Os trabalhos futuros incluem a fabricação da PCI do
módulo; a montagem de um protótipo completo; o teste e
a organização de um conjunto de ferramentas de software
gratuitas, para programação do CLP em linguagem C (o
fabricante do microcontrolador disponibiliza uma IDE que
pode ser configurada para usar um compilador C gratuito http://sdcc.sourceforge.net/); e a elaboração de tutoriais com
instruções sobre a construção e programação do módulo
desenvolvido.
AGRADECIMENTOS
Ao CNPq, à UFGD e à UFMS, pelo apoio financeiro através
de bolsas e recursos para material de consumo e serviços.
R EFERÊNCIAS
Figura 8.
Layout da PCI do CLP desenvolvido (150 x 80 mm).
A caixa escolhida (Figura 9) possui um formato padrão para
fixação em trilho DIN, o que permite sua fixação dentro de
painéis/quadros ou em qualquer superfície, utilizando-se um
trilho DIN fixado com parafusos.
Figura 9. Caixa plástica escolhida para acondicionar o módulo desenvolvido,
medindo 159x90x70 mm.
IV. C ONCLUSÃO
Dado o exposto, percebe-se que o presente trabalho envolveu a especificação, o projeto e a montagem experimental de
um pequeno módulo CLP, além da elaboração de um firmware
e de um aplicativo para realização de testes.
[1] A. S. Berger, Embedded Systems Design: An Introduction to Processes,
Tools and Techniques, 1st ed. CMP Books, 2001.
[2] A. D.C. Peres, (2012, Set. 14) Módulo de Controle Aplicado
à Automação Agrícola.
Trabalho de Conclusão de Curso
UFC. [Online]. Available: http://www.dee.ufc.br/anexos/TFCs/2011-1/
Monografia%20-%20Antonio%20Daniel%20Catunda%20Peres.pdf.
[3] C. K. Umezu and N. L. Capelli, (2012, Set. 12) Utilização de Ambientes Gráficos de Programação para o Desenvolvimento de Sistemas
de Controle em Máquinas e Equipamentos Agrícolas.
Anais do IV
Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à
Agropecuária e à Agroindústria (IV SBIAGRO). [Online]. Available:
http://www.sbiagro.org.br/pdf/iv_congresso/art037.pdf.
[4] J. C.A. Cansado and A. M. Saraiva, (2012, Set. 10) Agrilogic - Sistema
Experimental para Controle Climático de Casas de Vegetação. Anais do
IV Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada
à Agropecuária e à Agroindústria (IV SBIAGRO). [Online]. Available:
http://sbiagro.110mb.com/pdf/iv_congresso/art077.pdf.
[5] C. K. Umezu and N. L. Capelli, (2012, Set. 13) Controle da
Produção em uma Indústria Sucroalcooleira com CCM Inteligente.
Dissertação de Mestrado UNITAU.
[Online].
Available: http:
//taubate.unitau.br/cursos/pos-graduacao/mestrado/engenharia-mecanica/
dissertacoes/arquivos/2010/Renan%20Piazzon%20Peres.pdf.
[6] Diário MS. (2012, Sep. 09) MS terá R$ 8,9 bi de investimento em
biocombustível. Diário MS. [Online]. Available: http://www.diarioms.
com.br/leitura.php?can_id=35&id=50991.
[7] R. França, "70 Questões para Entender o Etanol", Revista Veja, ed.41,
n.11, pp. 104, Mar. 2008.
[8] Mídia Max. (2012, Sep. 09) Setor da cana abre 3 mil vagas de empregos
em MS. Mídia Max. [Online]. Available: http://www.midiamax.com.
br/noticias/739217-setor+cana+abre+3+mil+vagas+empregos+ms.html.
[9] DouradosNews. (2012, Sep. 10) Exportações de industrializados já
apresentam crescimento de 21,8% no ano em MS.
Dourados
News. [Online]. Available: http://www.douradosnews.com.br/economia/
exportacoes-de-industrializados-apresentam-aumento-de-21-8-em-ms.
[10] SILABS. (2012, Sep. 14) Datasheet C8051F32X. Silabs. [Online].
Available: http://www.silabs.com/Support%20Documents/TechnicalDocs/
c8051f32x.pdf.
[11] PROVIEW32. (2012, Sep. 10)ProView32 Download. Fsinc. [Online].
Available: http://www.fsinc.com/devtools/products/DS-PRV.htm.
[12] SILABS. (2012, Sep. 14) AN200: USB Bootloader with Shared
R Library.
USBXpress
Silabs.
[Online]. Available: http://www.
silabs.com/Support%20Documents/TechnicalDocs/AN200.pdf.
[13] Kicad. (2012, Sep. 10) KiCad [Online].
Available: http://www.
kicad-pcb.org/display/KICAD/KiCad+EDA+Software+Suite.