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.