Centro Universitário do Sul de Minas – UNIS-MG Bacharelado em Ciência da Computação
E E S O F T W A R E PARA PARA A IMPLEMENTAÇÃO DE UM
HARDWARE
CONTROLADOR LÓGICO PROGRAMÁVEL DIDÁTICO
Juliano Coêlho Miranda
Danilo Morais Pagano Wendell Fioravante da Silva Diniz
Varginha, 2009
Centro Universitário do Sul de Minas – UNIS-MG Bacharelado em Ciência da Computação
E E S O F T W A R E PARA PARA A IMPLEMENTAÇÃO DE UM
HARDWARE
CONTROLADOR LÓGICO PROGRAMÁVEL DIDÁTICO
Projeto apresentado
de ao
Conclusão programa
do
de
Curso
curso
de
Bacharelado em Ciência da Computação do Centro Universitário do Sul de Minas, como requisito parcial para a obtenção do título de Bacharel em Ciência da Computação
Varginha, 2009
FOLHA DE APROVAÇÃO Danilo Morais Pagano Wendell Fioravante da Silva Diniz HARDWARE E E SOFTWARE PARA PARA A IMPLEMENTAÇÃO DE
UM CONTROLADOR LÓGICO PROGRAMÁVEL DIDÁTICO Monografia apresentada ao curso de Ciência da Computação do Centro Universitário do Sul de Minas – UNIS/MG, como pré-requisito para obtenção do grau de bacharel pela Banca Examinadora composta pelos membros:
( ) Aprovado ( ) Reprovado Data:
/
/
______________________ _________________________________ ______________________ ______________________ _____________ __ Profº Ms Juliano Coêlho Miranda ______________________ _________________________________ ______________________ _______________________ ______________ Profº. Especialista Lázaro Eduardo da Silva ______________________ _________________________________ ______________________ ______________________ _____________ __ Profº. Ms Rafael Rodrigues de Souza
“ Há pessoas que nos falam e nem as escutamos, há pessoas que nos ferem e nem cicatrizes deixam, mas há pessoas que simplesmente aparecem em nossas vidas e nos marcam para sempre”. Dedico este trabalho à pessoa que apareceu na minha vida, e assim, tão e somente, deixou as únicas marcas que desejo guardar para sempre em meu coração. WFSD Dedico este trabalho de conclusão da graduação a Deus, pela saúde, fé e perseverança que tem me dado; aos meus pais, a quem honro pelo esforço com o qual mantiveram três filhos, permitindolhes condições de galgar êxito na sociedade letrada; a minhas irmãs as quais sempre me apoiaram
em
minhas
decisões;
a
minha
namorada que acompanhou e incentivou esta caminhada; aos meus amigos pelo incentivo a busca de novos conhecimentos; a todos os professores e professoras que muito contribuíram para a minha formação, dos quais tenho boas recordações. DMP
AGRADECIMENTOS Agradecemos a todas as pessoas que nos ajudaram durante o processo de desenvolvimento deste trabalho. Aos professores, colegas, orientador todos enfim, que possibilitaram esta realização. Agradecemos também a comunidade do software livre, que com sua costumeira solidariedade ajudou a solucionar muitas duvidas que impediam o andamento do projeto. Agrademos em especial ao orientador deste projeto, professor mestre Juliano Coêlho Miranda, que possibilitou e incentivou desde o principio, criando situações de desafio e colaborando para as soluções; ao professor especialista Agnus Horta que nos ensinou a programar desde simples algoritmos até complicados grafos, e com isto nos ajudou a modelar o software desenvolvido; ao coordenador do curso professor especialista Fabrício Pelloso Piurcosky por nos proporcionar oportunidades de participar de vários eventos que contribuíram para o engrandecimento de nossa visão como cientistas da computação. Agradecemos também a todos aqueles que contribuíram de alguma forma, mas que por falta de espaço, não puderam ser diretamente citados. A todos, nosso sincero obrigado.
Pensar é o trabalho mais difícil que existe. Talvez por isso tão poucos se dediquem a ele. Henry Ford. (1863-1945)
RESUMO PAGANO, Danilo Morais; DINIZ, Wendell Fioravante da Silva. Hardware e
. 2009. Softwar e para a i mpl ementação de um Contr olador L ógico Pr ogr amável didáti co Monografia (Bacharelado em Ciência da Computação) Centro Universitário do Sul de Minas – UNIS-MG, Varginha, 2009.
O presente trabalho apresenta a aplicação dos conhecimentos obtidos durante o curso, voltados para um projeto tão fascinante que é o desenvolvimento de um CLP, desde o hardware até
ao software. Tal projeto demonstra-se bem complexo, instigando o espírito
científico quanto ao uso da programação aplicada a dispositivos eletrônicos. Neste trabalho serão apresentadas as linguagens de programação de um CLP, o processo de criação de um equipamento a baixo custo para a implementação do hardware baseado num sistema microcontrolado e o desenvolvimento de um software capaz de criar, editar e simular um programa em linguagem Ladder, assim como gravá-lo na memória do hardware proposto e este
executar o programa.
Este trabalho também visa possibilitar que universidades e instituições de ensino profissional construam seu próprio sistema de CLP didático com a finalidade de integrar as aulas teóricas com as práticas.
Palavras chave: CLP, hardware, software, linguagem de programação de CLP, microcontrolador.
ABSTRACT This paper presents the application of knowledge obtained during the course, focused on a project so fascinating as the development of a PLC, from hardware to software. This project demonstrates is quite complex, prompting the scientific spirit as the use of programming applied to electronic devices. This work will be presented with the programming language of a PLC, the process of creating low-cost equipment for the implementation of hardware based on a system with microcontroller and development of software to create, edit and simulate a program in Ladder language, so to record it in memory of the proposed hardware and run this program. This work also aims to enable universities and vocational education institutions to build their own system of teaching PLC in order to integrate the theoretical with the practical.
Keywords: PLC, hardware, software, programming language PLC, microcontroller.
LISTA DE FIGURAS Figura 1 - Exemplo de um CLP comercial Fonte: Castro (2006) .............................. 24 Figura 2 - Esquema de funcionamento de um CLP ................................................... 24 Figura 3 Esquema básico de funcionamento.............................................................. 25 Figura 4 - Ciclo de processamento dos CLP's............................................................ 25 Figura 5 - Tabela Imagem de Saída ........................................................................... 26 Figura 6 - Terminal de Programação Fonte: Castro (2006) ....................................... 26 Figura 7 - Software de Programação CLP ................................................................. 27 Figura 8 – Representação da Linguagem Ladder ....................................................... 27 Figura 9 - Representações em Ladder ........................................................................ 28 Figura 10 - Diagrama Ladder ..................................................................................... 29 Figura 11 - Bloco de função com lógica invertida na entrada ................................... 30 Figura 12 - Bloco de função com lógica invertida na saída ....................................... 30 Figura 13 - Equivalência entre texto estruturado e FBD ........................................... 30 Figura 14 - Um bloco de função definido em texto estruturado ................................ 31 Figura 15 - Trecho de um programa em ST ............................................................... 31 Figura 16 - Correlação entre FBD e ST Fonte: Bryan, et al (1997) ........................... 32 Figura 17 - Exemplo de bloco de função em IL ........................................................ 32 Figura 18 - Conjunto de instruções em IL ................................................................. 33 Figura 19 - Programa em SFC ................................................................................... 34 Figura 20 - Resistor de fio.......................................................................................... 36 Figura 21 - Resistor de filme de carbono ................................................................... 36 Figura 22 - Significado das cores do resistor ............................................................. 37 Figura 23 - capacitor cerâmico................................................................................... 38 Figura 24 - Comparativo do tamanho dos LED's....................................................... 40 Figura 25 - Símbolo de transistores NPN e PNP ....................................................... 42 Figura 26 - Pinagem do PIC16F628A ....................................................................... 43 Figura 27 - Subsistemas digitais do PIC16F628A ..................................................... 44 Figura 28 - Diagrama esquemático do Sistema. ........................................................ 45 Figura 29 - Tela do software LDMicro em seu formato original. .............................. 46 Figura 30 - Janela do utilitário de gravação no microcontrolador. ............................ 47
Figura 31 - Diagrama esquemático do hardware. ...................................................... 49 Figura 32 - Circuito de comunicação serial. .............................................................. 50 Figura 33 - Circuito de gravação................................................................................ 50 Figura 34 - Circuito da fonte de alimentação. ............................................................ 51 Figura 35 - Circuito de entrada. ................................................................................. 52 Figura 36 - Circuito de saída. ..................................................................................... 52 Figura 37 - Circuito e subcircuitos do CLP. .............................................................. 53 Figura 38 - Visão do projeto em 3D e da placa montada........................................... 54 Figura 38 - Diagrama de casos de uso do software.................................................... 56 Figura 39 - Diagrama de classes do software. ........................................................... 57 Figura 40 - Circuito em ladder e sua representação na estrutura de dados utilizada. 59 Figura 41 - Circuito ladder representado no software desenvolvido. ........................ 60 Figura 42 - Dica sobre o botão exibindo sua tecla de atalho ..................................... 61 Figura 43 - Janela mostrando as propriedades editáveis do elemento ....................... 62 Figura 44 - Janela de informações do elemento......................................................... 63 Figura 45 - Tela do software LDMicro após recompilação (módulo de simulação). 64 Figura 46 - Programa de controle editado no software. ............................................. 65 Figura 47 - Circuito convertido em formato de texto. ............................................... 65 Figura 48 - Representação hexadecimal do programa de controle. ........................... 66 Figura 49 - Ativação do driver do IC-Prog para Windows. ....................................... 67 Figura 50 - Configuração da porta COM utilizada para gravação. ............................ 68 Figura 51 - Configuração do idioma da interface do IC-Prog. .................................. 69 Figura 52 - Operação de gravação no hardware em execução. .................................. 70 Figura 53 - Projeto do painel com o CLP e os demais dispositivos físicos. .............. 71 Figura 54 - Painel pré-montado. ................................................................................ 71
LISTA DE TABELAS Tabela 1 - Operações da linguagem IL ...................................................................... 33 Tabela 2 - Código de cores ........................................................................................ 37 Tabela 3 - Custos para a confecção do hardware ....................................................... 54 Tabela 4 – Custos para construção do painel ............................................................. 72
LISTA DE ABREVIATURAS E SIGLAS A/D – Analógico para digital AC – Alternate Current CA – Corrente Alternada CC – Corrente Continua CCP – Capture/Compare/PWM CI – Circuito Integrado CLP – Controlador Lógico Programável CPU – Central Processing Unit D/A – Digital para analógico DC – Direct Current Ddp – Diferença de potencial EEPROM – Electric Eraseable Programmable Read Only Memory EPROM – Electric Programmable Read Only Memory FBD – Function Block Diagram FET – Field Effect Transistor GM – General Motors GNU – GNU is Not Unix GPL – GNU Public License I/O – Input/Output IBM – Industrials Business Machineries IEC – International Electrotechnical Commission IL – Instruction List LD – Ladder Diagram LED – Light Emitting Diode PC – Programmable Controller PID – Proporcionais, integrais e derivativos PLC – Programmable Logic Controller PWM – Pulse Wide Modulation RAM – Random Access Memory RLL – Relay Ladder Logic ROM – Read Only Memory
SFC – Sequential Function Chart ST – Structured Text USART – Universal Synchronous Asynchronous Receiver Transmitter
SUMÁRIO 1.
INTRODUÇÃO ...................................................................................................................... 16 1.1
OBJETIVOS............................................................................................................................ 17
1.1.1 Objetivo Geral ................................................................................................................... 17 1.1.2 Objetivos Específicos ....................................................... .................................................. 17
1.2
JUSTIFICATIVA...................................................................................................................... 17
1.3
ORGANIZAÇÃO DA MONOGRAFIA ......................................................................................... 18
2.
CONTROLADORES LÓGICOS PROGRAMÁVEIS ........................................................ 19 2.1
HISTÓRICO DOS CLP’S ......................................................................................................... 19
2.2
ORGANIZAÇÃO E CONSTITUIÇÃO DOS CLP’S ........................................................................ 23
2.3
PRINCÍPIO DE FUNCIONAMENTO ........................................................................................... 24
2.4
AS LINGUAGENS UTILIZADAS NA PROGRAMAÇÃO DE CLP’S ............................................... 28
2.4.1. Linguagem Ladder (LD) ................................................................................................... 28 2.4.2. O Diagrama de Blocos de Funções (FBD) ............................................................. .......... 29 2.4.3 Texto Estruturado (ST) ...................................................................................................... 31 2.4.4 Linguagem Lista de Instruções (IL) .................................................... ............................... 32 2.4.5 Diagrama de Funções Sequenciais (SFC) .................................................... ..................... 34
3.
ELETRÔNICA ....................................................................................................................... 35 3.1
I NTRODUÇÃO ........................................................................................................................ 35
3.2
CIRCUITOS ELÉTRICOS ......................................................................................................... 35
3.3
COMPONENTES ELETRÔNICOS .............................................................................................. 35
3.3.1 Resistor .............................................................................................................................. 35 3.3.2 Capacitor ........................................................................................................................... 37 3.3.3 Transformadores ............................................................................................................... 38 3.3.4 Relé .................................................................................................................................... 39 3.3.5 Diodo semicondutor........................................................................................................... 39 3.3.6 LED.................................................................................................................................... 40 3.3.7 Transístor .......................................................................................................................... 41 3.3.8 Microprocessador PIC 16F628A.......................................................... ............................. 42
4.
DESENVOLVIMENTO....................................................... .................................................. 45 4.1
ESQUEMATIZAÇÃO DO PROJETO............................................................................................ 45
4.2
I NTERFACE DE SIMULAÇÃO .................................................................................................. 45
4.3
I NTERFACE DE GRAVAÇÃO ................................................................................................... 47
4.4
A LINGUAGEM C# ................................................................................................................ 48
4.5
COMPOSIÇÃO DO HARDWARE............................................................................................... 49
4.6
DESENVOLVIMENTO DO SOFTWARE...................................................................................... 55
4.6.1 Requisitos ........................................................... ............................................................ 55 4.6.2 Diagrama de Casos de Uso ............................................................... ............................. 56 4.6.3 Diagrama de Classes .............................................................. ....................................... 57 4.6.4 Desenvolvimento do software ............................................................ ............................. 58
4.7
5.
CONSTRUÇÃO DO PAINEL ..................................................................................................... 70
CONCLUSÃO ........................................................................................................................ 73 5.1
DIFICULDADES E NCONTRADAS ............................................................................................ 73
5.2
PROJETOS FUTUROS.............................................................................................................. 74
ANEXO A – DIAGRAMA DO CIRCUITO DO CLP DIDÁTICO ............................................... 76 BIBLIOGRAFIA........................................................... ........................................................... .......... 77
16
1.
INTRODUÇÃO
Desde o início da Revolução Industrial, que tem seu marco fixado no ano de 1750, os processos industriais vêm tornando-se cada vez menos dependentes de operadores humanos para seu funcionamento. Pode-se dizer então, que a disciplina de automação industrial surgiu, neste período, com os primeiros teares mecanizados automatizados, que, com a programação dos desenhos em cartões perfurados, permitiram que se fizesse de forma mais eficiente a produção em série de um número bem maior de peças, dispensando a intervenção contínua do mestre tecelão para configurar as agulhas que criariam os padrões nos tecidos. Desde esta época, a humanidade passou por vários estágios e novas tecnologias surgiram, através de muita pesquisa e, sobretudo, trabalho; estas tecnologias permitiram um avanço da automação tal, que, nos dias de hoje, é possível para os seres humanos até mesmo a exploração de outros planetas do sistema solar através de aparatos autônomos. Neste contexto, é interessante notar que uma das tecnologias que permitem a efetiva aplicação da automação que está mais próxima do cidadão comum, são os circuitos chamados CLP's ou Controladores Lógicos Programáveis. Estes aparelhos permitem o controle automatizado de circuitos externos através de uma programação realizada através de linguagens específicas, permitindo a montagem de circuitos complexos. Estes aparelhos são bastante usados hoje, sobretudo nas indústrias, pois permitem o acionamento de máquinas em condições específicas, que também podem ser monitoradas conhecendo-se previamente os estados que podem assumir. Assim, dominar o funcionamento e os métodos de programação destes aparelhos é de suma importância para o bom funcionamento de processos industriais e outros que demandem de tal automação. Portanto, com este trabalho, visa-se construir uma ferramenta didática, de baixo custo, que permita a instituições com poucos recursos estarem capacitadas para o ensino das técnicas que permitirão dominar o funcionamento dos CLP's, contribuindo para melhorar a qualificação da força de trabalho formada em tais instituições.
17
1.1 Objetivos 1.1.1 Objetivo Geral A construção de um sistema de hardware a baixo custo utilizando software livre que possibilite às escolas técnicas e universida des aperfeiçoarem o ensino da teoria dos CLP’s através de aulas práticas.
1.1.2 Objetivos Específicos
Diminuir os custos na aquisição da estrutura necessária para o estudo dos CLP’s através da possibilidade das escolas técnicas e universidades
construírem seus próprios aparelhos.
Desenvolver hardware e software que possibilite o uso de lógica digital combinatória e seqüencial, temporizadores e contadores, na simulação de sistemas automatizados.
Desenvolver software que possibilite a programação de CLP’s através da linguagem LADDER.
Disponibilizar toda a pesquisa gratuitamente para que tenha uma adesão de várias escolas tanto técnicas quanto em nível de graduação.
Utilizar computadores de baixo poder de processamento para a criação e simulação dos diagramas LADDER.
Desenvolver um sistema de comunicação serial entre o CLP e o software criado de forma que o programa criado pelo usuário possa ser executado por este CLP separadamente do computador.
Desenvolver um painel didático para interligação entre o CLP e os diversos dispositivos físicos.
1.2 Justificativa Segundo Machado (1994), “Conhecer é apreender o significado e apreender o
significado de um objeto ou de um acontecimento é vê-lo em suas relações com outros objetos ou acontecimentos. Assim, os significados constituem feixes de relações, que se articulam em
18 teias, em redes, construídas social e individualmente e em permanente estado de atualização”.
Ou seja, os estudos práticos são parte fundamental da construção do conhecimento científico, já que consolidam a teoria e permitem a troca de experiências entre professores e alunos, permitindo que este una à sua vontade de aprender a disposição do professor a ensinar, perfazendo assim um processo sólido de construção do conhecimento. Para a existência desta consolidação entre a teoria e a prática faz-se necessário a existência de uma estrutura física muito bem adaptada ao processo. A aquisição desta torna-se inviável quando se deseja um perfeito acoplamento entre ela e os alunos, onde a quantidade requisitada pode ser alta. Os custos da aquisição do material para a construção da estrutura mínima para apenas um aluno chega a ser desanimador. Portanto, a construção desta pela própria escola é, sem dúvidas, uma alternativa poderosa para aqueles que desejam diminuir os custos na implantação da estrutura necessária para uma boa prática profissional do uso dos CLP’s.
Para contribuir com esta consolidação entre a teoria e a prática, objetiva-se o desenvolvimento de um software capaz de simular um ambiente real de programação de CLP’s, distribuído sob a licença GNU Public License (GPL) ,
permitindo a adição de
aprimoramentos, estes desenvolvidos pelos próprios usuários. Do mesmo modo o hardware desenvolvido deverá oferecer meios de simular as principais funções encontradas no s CLP’s comerciais, permitindo assim a construção do conhecimento em sintonia com o que é praticado num ambiente de produção.
1.3 Organização da Monografia A monografia está dividida em seis capítulos principais, distribuídos em introdução, onde serão apresentados os temas, objetivos e justificativas do projeto; referencial teórico (um sobre CLP, um sobre eletrônica e um sobre a linguagem de programação utilizada) que compõe todo o material de pesquisa inerente ao projeto; o desenvolvimento, onde estão descritos os métodos utilizados na elaboração do hardware e do software para a implementação do CLP; e por fim a conclusão, finalizando as considerações dos autores, apresentando as dificuldades encontradas e sugerindo projetos futuros.
19
2.
CONTROLADORES LÓGICOS PROGRAMÁVEIS
2.1 Histórico dos CLP’s Segundo Bryan, et al.(1997), um CLP, Controlador Lógico Programável, pode ser definido como um “aparelho eletrônico digital que utiliza uma memória programável para o armazenamento interno de instruções para implementações específicas, tais como lógica, sequenciamento, temporização, contagem e aritmética, para controlar, através de módulos de entradas e saídas, vários tipos de máquinas ou processos”.
Ou seja, trata-se de um
equipamento microprocessado, capaz de acionar circuitos elétricos através de uma programação específica criada com base nos estados de entrada e saída do equipamento. De acordo com Filho (1999), o CLP nasceu dentro da General Motors, em 1968, devido à grande dificuldade de mudar a lógica de controle dos painéis de comando a cada mudança na linha de montagem. Tais mudanças implicavam em altos custos de tempo e dinheiro. Sob a liderança do engenheiro Richard Morley, foi preparada uma especificação que refletia as necessidades de muitos usuários de circuitos e relés, não só da indústria automobilística como de toda a indústria manufatureira. Nascia assim um equipamento bastante versátil e de fácil utilização, que vem se aprimorando constantemente, diversificando cada vez mais os setores industriais e suas aplicações, o que justifica hoje um mercado mundial estimado em quatro bilhões de dólares anuais. Anteriormente a isso, o hardware do controle sequencial era dominado principalmente pelos relés. No que concerne aos dispositivos de controle de sequência que utilizam os relés, apresentavam as desvantagens a seguir discriminadas: (Souza, 1999)
mau contato;
desgastes dos contatos;
necessidade de instalação de inúmeros relés, execução de fiação entre os inúmeros terminais de contatos e de bobinas;
complexidade na introdução de alteração na sequência;
necessidade de manutenções periódicas.
20
Apesar de apresentarem todas as desvantagens citadas, os relés se tornaram elementos principais do hardware de controle de sequência em razão de não haver, na época, elementos que pudessem substituí-los eficazmente (Souza, 1999). No final da década de 60, iniciou-se o desenvolvimento de microcomputadores, utilizando-se o circuito integrado (CI), e a universalidade da capacidade de processamento dos mesmos tornou-se o centro das atenções, aguardando-se com enorme expectativa o surgimento do hardware para controle dotado de grande versatilidade de processamento. Por outro lado, inicia-se a era da produção em grande escala, e os assuntos, como automação, incremento da produtividade, uniformidade na qualidade e outros, transformam-se em temas principais nas estações de trabalho, e a solução desses problemas era exigida também pelo lado da tecnologia de controle de sequência. Na época, a General Motors (GM – empresa automobilística americana) anunciou 10 itens relativos às condições que um novo dispositivo eletrônico de controle de sequência deveria atender para que pudesse substituir os tradicionais relés (Souza, 1999). Os itens são os seguintes: a) Facilidade de programação, de alteração do programa, inclusive nas estações de trabalho; b) Facilidade na manutenção, desejável que fosse totalmente do tipo de encaixar (plug-in unit); c) A confiabilidade na estação de trabalho deverá ser superior em relação ao painel de controle do tipo com relés; d) Deverá ser mais compacto que o painel de controle do tipo com relés; e) Possibilitar o envio direto de dados à unidade central de processamento de dados; f) Deverá ser economicamente competitivo com o painel de controle do tipo com relés; g) Possibilitar entradas com níveis de tensão alternada da ordem de 115V; h) As saídas deverão ser em 115VCA com capacidade superior a 2A de intensidade de corrente; deverá ainda possibilitar a operação das válvulas solenóides, comando para partida de motores e outros; i) Com um mínimo de alteração, possibilitar a ampliação do sistema básico; j) Deverá estar dotado de memória programável que possa ser ampliada até 4k word no mínimo.
21
Assim, baseando-se nesses 10 itens acima mencionados, a partir de 1969 foi lançada uma série de produtos denominados PLC (Programmable Logic Controller - Controlador Lógico Programável), através de diversas empresas americanas (Souza, 1999). Como pano de fundo tecnológico para o surgimento do PLC, houve a evolução das tecnologias de computação e semicondutores, especialmente a tecnologia de CIs, possibilitando a substituição do sistema de controle por relés, que havia atingido o seu limite de possibilidades (Souza, 1999). As características do PLC elaborado segundo as especificações dos 10 itens da GM são a seguir discriminadas:
como se trata de dispositivo que utiliza o elemento semicondutor em substituição aos relés, o controle será do tipo sem contato;
enquanto o conteúdo do controle dos sistemas convencionais se realiza pela execução de fiação entre os contatos dos relés, no caso do PLC será realizado através de programa;
embora seja o PLC um dispositivo que utiliza o semicondutor, poderá utilizar energia para entrada e saída nas faixas de 115[V] e 220[V], 2[A] diretamente em corrente alternada;
poderá adequar ao sistema a capacidade ideal do PLC, segundo a dimensão do controle a ser realizado. Originalmente, o PLC surgiu como um dispositivo de controle tipo universal, que
pudesse substituir os sistemas de relés e, posteriormente, com a evolução das tecnologias de computação e dos CI’s, desenvolveu -se
tornando possível a redução de custo, compactação,
elevação das funções e outros, até atingir a maturidade como sendo hardware principal para controle sequencial (Souza, 1999). Com a evolução, foi eliminado o termo l ogic do nome PLC, passando este dispositivo a ser chamado de PC - Controlador Programável (Programmable Controller). Com o passar do tempo os controladores programáveis passaram a tratar variáveis analógicas e no inicio dos anos oitenta incorporaram a função do controle de malhas de instrumentação, com algoritmos de controle proporcionais, integrais e derivativos (PID). Ainda na década de oitenta com a evolução dos microcomputadores e das redes de comunicação entre os PLC's, os quais passaram a elevar seu desempenho, permitindo que vários controladores
22
programáveis pudessem partilhar os dados em tempo real e que nesta mesma rede estivessem conectados vários microcomputadores, os quais através de um software de supervisão e controle, podiam monitorar, visualizar e comandar o processo como um todo a partir de uma sala de controle distante do processo (Souza, 1999). De acordo com Souza (1999), pode-se classificar historicamente o PLC como segue: 1 ª. Geração: Os PLCs de primeira geração se caracterizam pela programação intimamente ligada ao hardware do equipamento. A linguagem utilizada era o Assembly que variava de acordo com o processador utilizado no projeto do PLC, ou seja, para poder programar era necessário conhecer a eletrônica do projeto do PLC. Assim a tarefa de programação era desenvolvida por uma equipe técnica altamente qualificada, gravando-se o programa em memória EPROM, sendo realizada normalmente no laboratório junto com a construção do PLC. 2 ª. Geração: Aparecem as primeiras “Linguagens de Programação” não tão dependentes do hardware do equ ipamento, possíveis pela inclusão de um “Programa Monitor” no PLC, o qual converte (no jargão técnico, compila), as instruções do programa, verifica o estado das entradas, compara com as instruções do programa do usuário e altera os estados das saídas. Os Terminais de Programação (ou Maletas, como eram conhecidas) eram na verdade Programadores de Memória EPROM. As memórias depois de programadas eram colocadas no PLC para que o programa do usuário fosse executado. 3ª. Geração: Os PLC’s passam a ter uma Entra da de Programação, onde um Teclado ou Programador Portátil é conectado, podendo alterar, apagar, gravar o programa do usuário, além de realizar testes (Debug) no equipamento e no programa. A estrutura física também sofre alterações sendo a tendência para os Sistemas Modulares com Bastidores ou Racks. 4 ª. Geração: Com a popularização e a diminuição dos preços dos microcomputadores (normalmente clones do IBM PC), os PLCs passaram a incluir uma entrada para a comunicação serial. Com o auxílio dos microcomputadores a tarefa de programação passou a ser realizada nestes. As vantagens eram a utilização de várias representações das linguagens, possibilidade de simulações e testes, treinamento e ajuda por parte do software de programação, possibilidade de armazenamento de vários programas no micro, etc. 5 ª. Geração: Atualmente existe uma preocupação em padronizar protocolos de comunicação para os PLCs, de modo a proporcionar que o equipamento de um fabricante “converse” com o equipamento outro fabrica nte,
não só PLCs, como controladores de
processos, sistemas supervisores, redes internas de comunicação, dentre outros,
23
proporcionando uma integração a fim de facilitar a automação, gerenciamento e desenvolvimento de plantas industriais mais flexíveis e normalizadas, fruto da chamada Globalização. Existe uma Fundação Mundial para o estabelecimento de normas e protocolos de comunicação.
2.2 Organização e constituição dos CLP’s De acordo com Castro (2006), os principais blocos que compõem um CLP podem ser, de forma geral, os seguintes:
CPU (Central Processing Unit - Unidade Central de Processamento): compreende o processador (microprocessador, microcontrolador ou processador dedicado), o sistema de memória (ROM e RAM) e os circuitos auxiliares de controle;
Circuitos/Módulos de 1/0 (Input/Output - Entrada/Saída): podem ser discretos (sinais digitais: 12VDC, 110VAC, contatos normalmente abertos, contatos normalmente fechados) ou analógicos (sinais analógicos: 4-2OmA, 0-1 OVDC, termopar);
Fonte de Alimentação: responsável pela tensão de alimentação fornecida à CPU e aos Circuitos/Módulos de 1/0. Em alguns casos, proporciona saída auxiliar (baixa corrente);
Base ou Rack: proporciona conexão mecânica e elétrica entre a CPU, os Módulos de 1/0 e a Fonte de Alimentação. Contém o barramento de comunicação entre eles, no qual os sinais de dados, endereço, controle e tensão de alimentação estão presentes.
Isolamento Ótico: Uma tarefa importante que a seção de entrada de um PLC executa é o isolamento. A CPU do PLC deve ser protegida do mundo exterior, mas deve ser capaz de receber dados de entrada dele. O isolamento ótico executa tipicamente esta função. Nenhuma conexão elétrica existe entre o mundo exterior e a CPU, e os dois são separados oticamente. Entretanto, o mundo exterior fornece um sinal que liga uma luz na placa da entrada. A luz ilumina um receptor, e o receptor é ligado. A luz separa a CPU do mundo exterior até tensões muito altas. Mesmo se houver um surto grande da eletricidade, a CPU fica segura.
24
Naturalmente, se a tensão for extremamente grande, o isolamento poderia falhar e causar uma falha do circuito. O isolamento ótico é usado para entradas e saídas. As figuras a seguir mostram o esquema básico de construção de um CLP e a foto de um CLP comercial.
Figura 1 - Exemplo de um CLP comercial Fonte: Castro (2006)
Figura 2 - Esquema de funcionamento de um CLP Fonte: Castro (2006)
2.3 Princípio de Funcionamento Podemos apresentar a estrutura de funcionamento de um CLP dividida em três partes: entrada, processamento e saída (Filho, 1999). Segundo Filho (1999), os sinais de entrada e saída dos CLP’s podem ser digitais ou analógicos. Existem diversos tipos de módulos de entrada e saída que se adéquam as necessidades do sistema a ser controlado.
25
Figura 3 Esquema básico de funcionamento Fonte: Filho (1999)
Ainda conforme Filho (1999), os módulos de entrada e saídas são compostos de grupos de bits, associados em conjunto de 8 bits (1 byte) ou conjunto de 16 bits, de acordo com o tipo da CPU. As entradas analógicas são módulos conversores A/D, que convertem um sinal de entrada em um valor digital, normalmente de 12 bits (4096 combinações). As saídas analógicas são módulos conversores D/A, ou seja, um valor binário é transformado em um sinal analógico. Os sinais dos sensores são aplicados às entradas do controlador e a cada ciclo (varredura) todos esses sinais são lidos e transferidos para a unidade de memória interna denominada memória imagem de entrada. Estes sinais são associados entre si e aos sinais internos. Ao término do ciclo de varredura, os resultados são transferidos à memória imagem de saída e então aplicados aos terminais de saída. Este ciclo esta representado na figura abaixo (Filho, 1999).
Figura 4 - Ciclo de processamento dos CLP's Fonte: Filho (1999)
De acordo com Castro (2006), a CPU executa a leitura dos status (condições, estados) dos dispositivos de entrada por meio dos Circuitos/Módulos de I/O. Esses status são armazenados na memória (RAM) para serem processados pelo Programa de Aplicação
26
(desenvolvido pelo usuário e armazenado em memória RAM, EPROM ou EEPROM no PLC). Após a execução do programa de aplicação, o processador atualiza os status dos dispositivos de saída por meio dos circuitos e módulos de entrada e saída, realizando a lógica de controle. Na figura 5, temos um exemplo de como um PLC gerencia um módulo de saída. A memória da CPU contém uma seção chamada de Tabela Imagem de Saída, que por sua vez contém os estados lógicos de todas as saídas. Se há um 1 no bit correspondente à saída, esta saída é ligada. Se o bit contiver um 0, a saída é desligada (Castro, 2006).
Figura 5 - Tabela Imagem de Saída Fonte: Castro (2006)
A programação do PLC é feita por meio de uma Ferramenta de Programação que pode ser um Programador Manual (Terminal de Programação ou Handheld Programmer), ou um PC com software de programação específico (Castro, 2006).
Figura 6 - Terminal de Programação Fonte: Castro (2006)
27
Figura 7 - Software de Programação CLP Fonte: Castro (2006)
A Linguagem Ladder (RLL - Relay Ladder Logic, Lógica de Contatos de Relé), muito popular entre os usuários dos antigos sistemas de controle a relés, é a mais utilizada. Esta linguagem é a representação lógica da seqüência elétrica de operação, como ilustrado na figura a seguir. (Castro, 2006)
Figura 8 – Representação da Linguagem Ladder Fonte: Castro (2006)
A lógica implementada pelo PLC é muito similar à convencional, sendo que os dispositivos de entrada (elementos B0 e B1) são conectados ao Circuito/Módulo de Entrada e o dispositivo de saída (elemento LO), ao Circuito/Módulo de Saída. O Programa de Aplicação determina o acionamento da saída em função das entradas (B0 . B1 = L0). Qualquer alteração desejada nesta lógica é realizada por meio de alterações no programa, permanecendo as mesmas ligações (conexões) nos Circuitos/Módulos de I/0 (Castro, 2006).
28
2.4 As Linguagens Utilizadas na Programação de CLP’s De acordo com Bryan, et al.(1997), as linguagens de programação definidas para o uso com os CLP’s, são as seguintes:
LD (Ladder diagram, diagram Ladder);
FBD (Function block diagram, diagram de blocos de funções);
ST (Structured text, texto estruturado);
IL (Instruction list, lista de instruções);
SFC (Sequential function chart, tabela sequencial de funções).
2.4.1. Linguagem Ladder (LD) Mesmo tendo sido a primeira linguagem destinada especificamente à programação de PLCs, a Linguagem Ladder mantém-se ainda como a mais utilizada, estando presente praticamente em todos os PLCs disponíveis no mercado. Por ser uma linguagem gráfica, baseada em símbolos semelhantes aos encontrados nos esquemas elétricos (contatos e bobinas), as possíveis diferenças existentes entre os fabricantes de PLCs, quanto à representação das instruções, são facilmente assimiladas pelos usuários, como exemplificado na figura (Branqs Automação, 2007).
Figura 9 - Representações em Ladder Fonte: Branqs Automação (2007)
O nome Ladder deve-se à representação da linguagem se parecer com uma escada (ladder), na qual duas barras verticais paralelas são interligadas pela Lógica de Controle, formando os degraus (rungs) da escada. Portanto, a cada Lógica de Controle existente no Programa de Aplicação dá-se o nome de rung, a qual é composta por Colunas e Linhas, conforme apresentado na figura a seguir (Branqs Automação, 2007).
29
Figura 10 - Diagrama Ladder Fonte: Branqs Automação (2007)
A relação entre o símbolo gráfico da Linguagem Ladder e a Instrução a ser executada pode ser verificada nos Endereços 0 e 1 do Programa em Linguagem de Lista de Instruções. Neste caso, a representação em Linguagem Ladder para os Elementos XO e X2 são Contatos Normalmente Abertos idênticos. Porém, a localização de cada um na Lógica de Controle determina Instruções diferentes, ou seja, o Contato Normalmente Aberto de XO, por iniciar o rung, determina a Instrução 'Store' (STR XO) e o Contato Normalmente Aberto de X2 (com representação gráfica idêntica à de XO), por estar em paralelo com XO, determina a Instrução 'Or' (OR X2). Esta característica da Linguagem Ladder normalmente facilita o desenvolvimento do Programa de Aplicação, uma vez que o usuário precisa certificar-se apenas se a associação desejada é aceita pela CPU utilizada, não se prendendo à Instrução propriamente dita (Branqs Automação, 2007).
2.4.2. O Diagrama de Blocos de Funções (FBD) Conforme demonstrado por Jack (2007), o Diagrama de Blocos de Funções (FBD) é mais uma linguagem definida na IEC 61131-3. O conceito por trás do FBD é o fluxo de dados. Nos programas feitos nesta linguagem, os valores fluem das entradas para as saídas, através de blocos de funções. Um programa em FBD é constituído de blocos de funções que são conectados e estas conexões são o que define a troca de dados. As linhas devem conectar dados de tipos compatíveis em ambas as pontas. As entradas e saídas dos blocos de função podem ser invertidas. Normalmente, isto é feito adicionando-se um pequeno círculo no ponto onde a linha toca o bloco, como mostrado na figura abaixo (Jack, 2007).
30
Figura 11 - Bloco de função com lógica invertida na entrada Fonte: Jack (2007)
Figura 12 - Bloco de função com lógica invertida na saída Fonte: Jack (2007)
As funções básicas utilizadas em FBD sã equivalentes às usadas em ST (Structred Text, Texto Estruturado). Considere a função de adição, conforme exemplificado na figura abaixo. Na esquerda, temos uma instrução em texto estruturado em que A e B são somados e o resultado é armazenado em O. O bloco de função à direita é equivalente à instrução à esquerda. Por convenção, as entradas são posicionadas à esquerda e as saídas à direita do bloco de função (Jack, 2007).
Figura 13 - Equivalência entre texto estruturado e FBD Fonte: Jack (2007)
A figura 14 mostra uma função de divisão criada usando-se texto estruturado. Neste exemplo, a primeira linha declara um bloco de função chamado divide. As variáveis de entrada a e b e a variável de saída c são declaradas. Na função, o denominador é checado para ter certeza de que não é igual a zero. Se não, a divisão é realizada, caso contrário a saída será zero (Jack, 2007).
31
Figura 14 - Um bloco de função definido em texto estruturado Fonte: Jack (2007)
2.4.3 Texto Estruturado (ST) De acordo com Bryan, et al. (1997), texto estruturado é uma linguagem de alto nível que permite programação estruturada, significando que muitas tarefas complexas podem ser quebradas em tarefas menores. ST lembra algumas linguagens de computador, como BASIC ou PASCAL, as quais usam sub-rotinas para implementar diferentes partes de funções de controle e fazer a passagem de parâmetros e valores entre diferentes seções do programa. Assim como LD, FDB e IL, ST utiliza a definição de variáveis para identificar entradas e saídas e outras variáveis internas que são usadas no programa. ST também suporta iterações, como WHILE, DO, e REPEAT...UNTIL, assim como estruturas de decisão como IF...THEN...ELSE. Além disso, ST suporta operações booleanas (AND, OR, etc.) e uma variedade de dados específicos, como informações de data e hora.
Figura 15 - Trecho de um programa em ST Fonte: Bryan, et al (1997)
32
A linguagem estruturada é extremamente útil para execução de rotinas de geração de relatórios, onde instruções de alto nível explicam o que está sendo feito. Lembre-se que ST pode ser usado para encapsular ou criar blocos de função que irão realizar certa tarefa disparada pela lógica do controle. Esta rotina pode ser usada repetidamente durante o ciclo de vida do programa (Bryan, et al., 1997). ST é particularmente útil para aplicações que envolvem manipulação de dados, ordenação computacional e aplicações matemáticas utilizando valores de ponto flutuante. ST também é a melhor linguagem para a implementação de rotinas de Inteligência Artificial (IA), Lógica Fuzzy e tomada de decisões em circuitos CLP (Bryan, et al., 1997).
Figura 16 - Correlação entre FBD e ST Fonte: Bryan, et al (1997)
2.4.4 Linguagem Lista de Instruções (IL) Ainda segundo Bryan, et al (1997), a linguagem de Lista de Instruções (IL) é uma linguagem de baixo nível, bastante parecida com a linguagem Assembly, utilizada em microprocessadores. Este tipo de linguagem é útil para a criação de pequenas aplicações ou aplicações que necessitem de otimização na velocidade de execução ou rotinas específicas dentro de um programa maior. A IL pode ser usada, por exemplo, para a criação de blocos de função específicos. Um típico uso da IL envolve a inicialização ou retorno a zero (reset) de valores acumulados em registradores. Instruções
Comentários
LD AND ANDN ST
(resultado := TRUE) (resultado := b1 AND b2*) (resultado := b1 AND b2 AND NOT b3*) (b0 := resultado)
b1 b2 b3 b0
Nota: O resultado corrente é armazenado em um registrador de resultado. A última instrução armazena o valor do registrador de resultado como a variável b0.
Figura 17 - Exemplo de bloco de função em IL Fonte: Bryan, et al (1997)
33
Um importante conceito desta linguagem é a pilha de execução. A pilha tem a função de alterar a precedência das instruções. Normalmente, as expressões são avaliadas na ordem em que aparecem. Com o auxílio da pilha, é possível alterar esta ordem. Isto é indicado na linguagem com o uso de parênteses, conforme exemplificado na figura a seguir (Bryan, et al., 1997).
Figura 18 - Conjunto de instruções em IL Fonte: Bryan, et al (1997)
A seguir, temos uma tabela com as instruções em IL, conforme o padrão da norma IEC 61131. Tabela 1 - Operações da linguagem IL Fonte : Bryan, et al.(1997)
Operação
Modificadores
Tipos de Dados
LD
N
Vários
Seta o valor do resultado corrente
ST
N
Vários
Armazena o valor do resultado corrente na variável indicada
BOOL
Seta ou reseta um valor
S, R
Descrição
AND, &
N, (
BOOL
Operação E booleana
OR
N, (
BOOL
Operação OU booleana
XOR
N, (
BOOL
Operação OU EXCLUSIVO booleana
ADD
(
Vários
Adição matemática
SUB
(
Vários
Subtração matemática
MUL
(
Vários
Multiplicação matemática
DIV
(
Vários
Divisão matemática
GT
(
Vários
Comparação maior que (>)
GE
(
Vários
Comparação maior ou igual a (>=)
EQ
(
Vários
Comparação igual a (=)
NE
(
Vários
Comparação não igual (<>)
LE
(
Vários
Comparação menor ou igual (<=)
LT
(
Vários
Comparação menor que (<)
JMP
C, N
LABEL
Salta para o LABEL indicado
CAL
C, N
NAME
Chama a sub-rotina especificada em NAME
RET
C, N
)
Retorna de uma sub-rotina Retorna um valor da pilha
34
2.4.5 Diagrama de Funções Sequenciais (SFC) Segundo Bryan, et al.(1997), o Diagrama de Funções Sequenciais, ou SFC, é uma “linguagem gráfica” que provê uma representação diagramática das
sequências de controle
em um programa. Basicamente, SFC é um framework parecido com um fluxograma, que organiza os subprogramas ou sub-rotinas (programadas em LD, FBD, IL ou ST) que formam o programa de controle. O SFC é particularmente útil para operações de controle seqüenciais e/ou concorrentes, onde o programa flui de um passo para o outro quando certa condição for satisfeita (TRUE ou FALSE). O SFC também é conhecido como Grafcet ou IEC 848. Um passo é um estágio em um processo de controle. Por exemplo, a aplicação mostrada na figura a seguir possui três passos – o passo inicial, o passo de mistura e o passo de esvaziamento. Quando o programa de controle recebe uma entrada, ele irá executar cada um desses passos começando pelo passo 1. Cada passo pode ou não ter uma ação associada a ele. Uma ação é um conjunto de instruções de controle avisando ao CLP para executar certa função de controle durante aquele passo. Uma ação pode ser programada em qualquer uma das quatro linguagens definidas na IEC 61131-3. Após a execução de um passo/ação, o CLP deve receber uma transição antes que ele siga para o próximo passo. A transição pode tomar a forma de uma variável de entrada, o resultado de uma ação anterior ou uma estrutura condicional como o IF (Bryan, et al., 1997).
Figura 19 - Programa em SFC Fonte : Bryan, et al.(1997)
35
3.
ELETRÔNICA
3.1 Introdução Segundo Bartulani (2009), eletrônica é o campo da ciência e da engenharia que trata dos dispositivos eletrônicos e de sua utilização. É a parte da física que estuda e utiliza as variações de grandezas elétricas para captar, transmitir e processar informações. Trata dos circuitos elétricos e instrumentos constituídos por válvulas termiônicas, dispositivos semicondutores (tais como transistores e circuitos integrados), tubos de raios catódicos e outros componentes.
3.2 Circuitos Elétricos De acordo com Bartulani (2009), os circuitos elétricos são associações de componentes elétricos com a finalidade de transmitir controladamente a potência elétrica que lhes é aplicada. Os constituintes elementares dos circuitos elétricos são chamados de componentes.
3.3 Componentes Eletrônicos 3.3.1 Resistor De acordo com Massoi (2009), resistores são componentes eletrônicos cuja finalidade é oferecer oposição à passagem de corrente elétrica através de seu material feito de um condutor de alta resistividade elétrica, assim transformando energia elétrica em energia térmica (Efeito Joule). A essa oposição é dado o nome de resistência elétrica. Os resistores podem ser fixos ou variáveis. Os fixos são resistores cuja resistência elétrica não pode ser alterada (apresentam dois terminais). Já os resistores variáveis são aqueles cuja resistência elétrica pode ser alterada através de um eixo ou cursor, como por exemplo, o reostato e o potenciômetro (Capuano, et al., 2007). De acordo com Massoi (2009), os elementos resistivos podem ser:
Resistor de fio: consiste basicamente de um tubo cerâmico (ou vidro) que serve de suporte a um fio condutor de alta resistividade enrolado (níquel-cromo) sobre este
36
tubo. O comprimento e o diâmetro do fio determinam sua resistência elétrica. Os terminais são soldados nas extremidades do fio. Aplicada uma camada de material isolante para proteção.
Figura 20 - Resistor de fio Fonte: Massoi (2009)
Resistor de filme de carbono (grafite) : constitui-se de um tubo cerâmico (ou de vidro) coberto por um filme (película) de carbono, onde o valor da resistência elétrica é obtido mediante a formação de um sulco no filme, produzindo uma fita espiralada cuja largura e espessura define o valor da sua resistência. Os terminais são soldados na extremidade do filme e é aplicada uma camada de material isolante para proteção.
Figura 21 - Resistor de filme de carbono Fonte: Massoi (2009)
Resistor de filme metálico: este é semelhante ao de carbono. Porém o tubo cerâmico é coberto por um filme de uma liga metálica (níquel-cromo).
3.3.1.1 Código de cores para resistores Segundo Markus (2001), os resistores são fabricados em valores padronizados (resistência nominal). Os valores padronizados são determinados a partir de séries de valores (raízes), dos quais são determinados os múltiplos e submúltiplos. O código de cores determina o valor padrão (resistência nominal) dos resistores a partir dos anéis coloridos impressos no corpo do resistor. Normalmente os resistores vêm com quatro anéis coloridos, porém os resistores de precisão possuem 3 algarismos significativos e vêm com cinco anéis impressos. Em geral, o primeiro anel a ser lido é aquele mais próximo a um dos terminais do resistor,
37
desde que não seja da cor preta, ouro ou prata. A tolerância representa percentualmente a faixa de variação admissível para o valor da resistência do resistor.
Figura 22 - Significado das cores do resistor Tabela 2 - Código de cores Fonte: Google (2009)
3.3.2 Capacitor De acordo com Markus (2001), capacitores são dispositivos que armazenam energia elétrica na forma de campo elétrico, gerado pelas cargas armazenadas em suas armaduras. Forma-se então uma diferença de potencial (ddp) entre as armaduras. Esta ddp muda, sempre que a quantidade de cargas armazenadas é alterada. Esse movimento de cargas, para dentro e para fora das armaduras do capacitor, pode constituir uma corrente elétrica. Existe uma interdependência entre a variação da tensão e a corrente que atravessa o capacitor.
38
3.3.2.1 Capacitor Cerâmico Os capacitores cerâmicos, conforme a figura14 representa, apresentam impressos no próprio corpo, um conjunto de três algarismos e uma letra. Os dois primeiros algarismos representam os dois primeiros dígitos do valor do capacitor e o terceiro algarismo (algarismo multiplicador) representa o número de zeros à direita. A letra representa a tolerância (podendo ser omitida) do capacitor (Capuano, et al., 2007).
Figura 23 - capacitor cerâmico Fonte: Google (2009)
3.3.2.2 Capacitores eletrolíticos Consistem em uma folha de alumínio anodizada como armadura positiva, em que, por um processo eletrolítico, forma-se uma camada de óxido de alumínio que serve como dielétrico; e um fluido condutor, o eletrólito que impregnado em um papel poroso é colocado em contato com outra folha de alumínio de maneira a formar a armadura negativa. O conjunto é bobinado, sendo a folha de alumínio anodizada, ligada ao terminal positivo e outra ligada a uma caneca tubular, o encapsulamento do conjunto, e ao terminal negativo (Capuano, et al., 2007). De acordo com Markus (2001), os capacitores eletrolíticos, por apresentarem o dielétrico como uma fina camada de oxido de alumínio e em uma das armaduras um fluido, constituem uma serie de altos valores de capacitância, mas com limitados valores de tensão de isolação e terminais polarizados.
3.3.3 Transformadores Um transformador é um dispositivo destinado a transmitir energia elétrica ou potência elétrica de um circuito à outro, transformando tensões, correntes e ou de modificar os valores das impedância elétrica de um circuito elétrico. Trata-se de um dispositivo de corrente
39
alternada que opera baseado nos princípios eletromagnéticos da Lei de Faraday e da Lei de Lenz. (Markus, 2001) Segundo Markus (2001), o transformador consiste de duas ou mais bobinas ou enrolamentos e um circuito magnético que acopla essas bobinas. Há uma variedade de transformadores com diferentes tipos de circuito, mas todos operam sobre o mesmo princípio de indução eletromagnética. Markus (2001) ainda complementa que no caso dos transformadores de dois enrolamentos, é comum se denominá-los como enrolamento primário e secundário. A tensão do secundário obede a relação de espiras entre o primário e o secundário, de acordo com a tensão aplicada ao primário.
3.3.4 Relé Relé é um dispositivo eletromecânico ou não, com inúmeras aplicações possíveis em comutação de contatos elétricos, servindo para ligar ou desligar dispositivos. É normal o relé estar ligado a dois circuitos. No caso do relé eletro-mecânico, a comutação é realizada alimentando-se a bobina do mesmo. Quando uma corrente originada no primeiro circuito passa pela bobina, um campo eletromagnético é gerado, acionando o relé e possibilitando o funcionamento do segundo circuito. Sendo assim, uma das aplicabilidades do relé é utilizar-se de baixas correntes para o comando no primeiro circuito, protegendo o operador das possíveis altas correntes que irão circular no segundo circuito (contatos). Ao contrário do que a grande maioria das pessoas pensam, os relés não se limitam ao uso em carros. Pelo contrário, são largamente utilizados na indústria. Há também apliacações em automações residenciais e comerciais. (Capuano, et al., 2007)
3.3.5 Diodo semicondutor Diodo semicondutor é um dispositivo ou componente eletrônico composto de cristal semicondutor de silício ou germânio numa película cristalina cujas faces opostas são dopadas por diferentes gases durante sua formação. É o tipo mais simples de componente eletrônico semicondutor, muito usado como retificador de corrente elétrica (Bemarques, et al., 2007) Segundo Bemarques, et al, (2007), os diodos, assim como qualquer componente eletrônico, operam em determinadas correntes elétricas que são especificadas em seu invólucro ou são dadas pelo fabricante em folhetos técnicos. Além da corrente, a tensão
40
inversa (quando o diodo está polarizado inversamente) também é um fator que deve ser analisado para a montagem de um circuito e que tem suas especificidades fornecidas pelo fabricante. Se ele for alimentado com uma corrente ou tensão inversa superior a que ele suporta, o diodo pode danificar, ficando em curto ou em aberto. O fenômeno da condutividade em um só sentido é aproveitado como um chaveamento da corrente elétrica para a retificação de sinais senoidais, portanto, este é o efeito do diodo semicondutor tão usado na eletrônica, pois permite que a corrente flua entre seus terminais apenas numa direção. Esta propriedade é utilizada em grande número de circuitos eletrônicos e nos retificadores. (Wikipédia, 2001) Os retificadores são circuitos elétricos que convertem a tensão CA (AC) em tensão CC (DC). CA significa corrente alternada, significa que os elétrons circulam em dois sentidos, CC (DC) significa corrente contínua, isto é, os eléntrons circulam num só sentido (Wikipédia, 2001).
3.3.6 LED Segundo Bemarques, et al. (2007), LED é a sigla em inglês para Light Emitting Diode, ou Diodo Emissor de Luz. O LED é um diodo semicondutor (junção P-N) que quando energizado emite luz visível. A luz não é monocromática (como em um laser), mas consiste de uma banda espectral relativamente estreita e é produzida pelas interações energéticas do elétron. O processo de emissão de luz pela aplicação de uma fonte elétrica de energia é chamado eletroluminescência. Em qualquer junção P-N polarizada diretamente, dentro da estrutura, próximo à junção, ocorrem recombinações de lacunas e elétrons. Essa recombinação exige que a energia possuída por esse elétron, que até então era livre, seja liberada, o que ocorre na forma de calor ou fótons de luz.
Figura 24 - Comparativo do tamanho dos LED's Fonte: Wikipédia (2009)
41
Em geral, os leds operam com nível de tensão de 1,6 a 3,3V, sendo compatíveis com os circuitos de estado sólido. É interessante notar que a tensão é dependente do comprimento da onda emitida. Assim, os leds infravermelhos geralmente funcionam com menos de 1,5V, os vermelhos com 1,7V, os amarelos com 1,7V ou 2.0V, os verdes entre 2.0V e 3.0V, enquanto os leds azuis, violeta e ultra-violeta geralmente precisam de mais de 3V. A potência necessária está na faixa típica de 10 a 150 mW, com um tempo de vida útil de 100.000 ou mais horas. (Wikipédia, 2001)
3.3.7 Transístor O transistor é um componente eletrônico que começou a se popularizar na década de 1950 tendo sido o principal responsável pela revolução da eletrônica na década de 1960, e fer cujas funções principais são amplificar e chavear sinais elétricos. O termo vem de trans resistor (resistor de transferência), como era conhecido pelos seus inventores. (Bemarques, et
al., 2007) O transistor foi inventado nos Laboratórios da Bell Telephone por por Bardeen e Brattain em 1948, e inicialmente demonstrado em 23 de Dezembro de 1947 por John Bardeen, Walter Houser Brattain, e William Bradford Shockley, que foram laureados com o prêmio Nobel da Física em 1956. Ironicamente, eles pretendiam fabricar um transístor de efeito de campo (FET) idealizado por Julius Edgar Lilienfeld antes de 1925, mas acabaram por descobrir uma amplificação da corrente no ponto de contato do transístor, isso evoluiu posteriormente para converter-se no transístor de junção bipolar. O objetivo do projeto era criar um dispositivo compacto e barato para substituir as válvulas termoiônicas usadas nos sistemas telefônicos da época. (Wikipédia, 2001) O transístor é considerado por muitos uma das maiores descobertas ou invenções da história moderna, tendo tornado possível a revolução dos computadores e equipamentos eletrônicos. A chave da importância do transístor na sociedade moderna é a sua habilidade de ser produzido em enormes quantidades usando técnicas simples, resultando em preços irrisórios. É conveniente salientar que é praticamente impossível encontrarmos circuitos integrados que não possuam internamente centenas, milhares ou mesmo milhões de transístores, juntamente com outros componentes como resistências e condensadores. Por exemplo o microprocessador Cell do console PlayStation 3 tem aproximadamente 234 milhões de transístores, usando uma arquitectura de fabricação de 45 nanómetros, ou seja
42
cada transístor fica distanciado dos outros 45 milionésimos de um milímetro (Wikipédia, 2001).
Figura 25 - Símbolo de transistores NPN e PNP Fonte: Wikipédia (2001)
3.3.8 Microprocessador PIC 16F628A O PIC16F628a é um microcontrolador fabricado pela Microchip Technology, com as seguintes características (MICROCHIP, 2007):
·Composto de 18 pinos;
·Possui somente 35 instruções no seu microcódigo;
·Sinal de clock de freqüência até 20 MHz;
·Memória de programa do tipo Flash de 2048 words (1 word = 32 bits);
·224 bytes de memória RAM para dados;
·128 bytes de memória EEPROM para dados;
·Instruções de 14 bits com 200ns de tempo de execução;
·Dados de 8 bits por endereço de memória;
·15 registradores especiais;
·16 pinos os quais podem ser configurados como entrada e/ou saída;
·Outras características especiais como programação in-circuit serial, proteção por código, watchdog timer (temporizador cão de guarda), módulo CCP, comparador interno, USART, ...
43
A figura 26 mostra a pinagem do PIC:
Figura 26 - Pin agem do PIC16F 628A Fonte: Microchip (2007)
Os pinos de RA0 a RA7 e de RB0 a RB7 podem ser configurados como entradas ou saídas digitais. A alimentação se dá no pino Vdd, ligado normalmente em 5V com faixa de tolerância de 2 à 6V e o pino Vss é a referência de terra. O pino OSC1/CLKIN é utilizado para sinal de clock produzido por cristal ou um circuito externo e o pino OSC2/CLKOUT para sinal de clock por cristal (utilizado em conjunto com OSC1/CLKIN). O pino MCLR é uma entrada de sinal de reset em nível baixo (zero). O PIC16F628A é composto pelos subsistemas digitais conforme diagrama de blocos abaixo a fig.24 (MICROCHIP, 2007):
44
Figura 27 - Subsistemas digi tais do PI C16F628A Fonte: Microchip (2007)
3.3.8.1 Arquitetura Harvard O PIC16F628a possui uma arquitetura denominada Harvard para acesso aos dados e às instruções do programa, a qual é caracterizada por utilizar um bus (via de acesso) para comunicação dos dados e outro bus distinto para comunicação com o programa. A maioria dos microcomputadores e microcontroladores no mercado utilizam um único bus, tanto para dados quanto para instruções do programa. Nota-se a diferença no uso desta arquitetura na visualização da memória do microcontrolador PIC: existe uma memória para o programa e outra para os dados a serem utilizados. (Tecnology, 2007)
45
3.3.8.2 Portas de entrada e saída Os microcontroladores da linha PIC possuem pinos que podem ser configurados como entrada ou saída digital. Cada conjunto de oito destes pinos é denominado Port , geralmente classificado por uma letra do alfabeto (PortA, PortB, PortC,...). Para isto, existem implementados na memória RAM do PIC registradores especiais para configurar e ler/modificar o valor destes pinos. No PIC16F628a, dois destes registradores, o TRISA e o TRISB, são responsáveis pela configuração destes pinos para funcionamento como entrada ou saída digital. A abreviatura TRIS para estes registradores provem de tri-state (três estados) porque alguns pinos podem funcionar de três modos diferentes: como entrada digital, saída digital ou com outra função específica (Tecnology, 2007).
4.
DESENVOLVIMENTO
4.1 Esquematização do projeto O projeto compreende duas partes distintas e complementares: o hardware e o software. O hardware contém um circuito microcontrolado que irá receber o diagrama ladder
desenvolvido no software. O software contém funções para o desenho do programa de controle, simulação do circuito construído e compilação e gravação no hardware. O funcionamento do projeto pode ser representado pelo diagrama abaixo:
Edição Compilação
Execução
Gravação Software
Hardware Figura 28 - Diagrama esquemático do Sistema. Fonte: desenvolvido pelos autores
4.2 Interface de Simulação Para a interface de simulação foi utilizado um aplicativo chamado LDMicro.
46
O LDMicro é um projeto de código aberto mantido por Jonathan Westhues. Constitui-se de um editor de lógica ladder que também possui as funções de simulação e compilação para microcontroladores de 8 bits, entre eles o PIC 16F628A utilizado no corrente projeto. Assim, resolveu-se aproveitar este projeto, pois trazia as funcionalidades esperadas e por se tratar de um projeto de código aberto, sua utilização não apresenta restrições e também permitiu uma grande economia em tempo de desenvolvimento ao mesmo tempo em que permitiu adicionar funcionalidades desejáveis ao sistema.
Figura 29 - Tela do software LDMicro em seu formato original. Fonte: Elaborado pelos autores.
O LDMicro foi então modificado, pois apenas as rotinas de simulação e compilação eram necessárias neste projeto. Todas as outras funções foram desabilitadas. O módulo gerado foi adicionado ao projeto. Como o LDMicro originalmente foi desenvolvido na linguagem C++, não haveria tempo hábil para reescrevê-lo em C#. Desta forma, optou-se por mantê-lo como um módulo executável independente, que pode ser acessado através de chamadas de sistema de dentro do código do Projeto. A linha de comando para a ativação do módulo para simulação segue abaixo. ldmicro.exe nome_do_arquivo.ld
47
A linha de comando para a ativação do módulo para compilação segue abaixo. ldmicro.exe /c nome_do_arquivo.ld nome_do_arquivo.hex
4.3 Interface de Gravação Para executar a gravação do código compilado no microprocessador, foi utilizado um utilitário freeware, o IC-Prog. O IC-Prog é um utilitário para gravação em microcontroladores que utiliza comunicação serial através da interface RS232. Ele foi desenvolvido por Bonny Gijzen, que o mantém de forma independente.
Figura 30 - Janela do utilitário de gravação no microcontrolador. Fonte: Elaborado pelos autores.
Ele já possui todas as funções de gravação e acesso à porta serial e pode ser utilizado através de chamadas de sistema, de forma análoga ao LDMicro. Desta forma optou-se por utilizá-lo, para dar maior praticidade e flexibilidade ao sistema, permitindo inclusive, uma fácil transição para outros modelos de microcontrolador. A linha de comando específica para a função de gravação segue abaixo. icprog.exe -lnome_do_arquivo.hex -p -i -f3f10 -q
48
Os parâmetros utilizados têm as seguintes funções:
-lnome_do_arquivo.hex : especifica que será passado um arquivo no formato hexadecimal contendo o programa de controle;
-p : especifica a função de programação do microcontrolador; -i : informa o fim da programação; -f : palavra de configuração, define os parâmetros de gravação internos do microcontrolador.
-q : finaliza o icprog.exe
4.4 A Linguagem C# Para o desenvolvimento do software, foi necessário bastante esforço em pesquisa. Desde o início do projeto, observou-se que a falta de domínio de características específicas e particulares da linguagem, seria um diferencial para um melhor rendimento na construção do software. Porém,
em cursos de graduação, é extremamente difícil adquirir este nível de
domínio, pela própria característica generalista do curso. Assim, houve a necessidade de pesquisar e dominar recursos da linguagem. O ambiente de desenvolvimento utilizado, o Microsoft Visual Studio 2008, também possui várias características e especificidades que necessitaram ser pesquisadas para um melhor fluxo de trabalho. Por tratar-se de um ambiente com bastantes recursos, também se mostra difícil adquirir completo domínio da ferramenta sem um curso específico. Porém, este obstáculo foi contornado parcial e gradualmente durante o decorrer do desenvolvimento. Um dos recursos interessantes que foi utilizado é o Diagrama de Classes. Esta funcionalidade permite desenvolver os protótipos das classes de forma gráfica e de forma automática gerar o código das mesmas. Com isso, obteve-se um grande aumento na produtividade, uma vez que projetadas as classes, o único trabalho em geração de código, era a implementação dos métodos das mesmas. Como o sistema foi criado utilizando-se do paradigma da Orientação a Objetos, esta funcionalidade foi de grande valia para o andamento do projeto.
49
4.5 Composição do Hardware O hardware desenvolvido compreende um circuito lógico microcontrolado, um circuito de comunicação serial, um circuito de gravação para a transferência dos dados para o microcontrolador, um circuito de alimentação e os circuitos de entrada e saída.
Figura 31 - Diagrama esquemático do hardware. Fonte: Elaborado pelos autores.
O microcontrolador utilizado foi o PIC 16F628A. Foi escolhido por ser bastante versátil e por se adequar às exigências do projeto quanto ao número de entradas e saídas. O circuito de comunicação compreende uma interface de comunicação serial MAX232, responsável pela troca de mensagens entre unidades similares. Se for o microcontrolador for programado para enviar e receber mensagens, os pinos RB2(7) e RB1(8)
50
terão esta função e portanto não poderão ser usados como pinos de entrada e saída. Exatamente por esta razão, estes pinos ficaram reservados para troca de mensagens, forçando o PORTB, ou seja, a saída do CLP, a trabalhar com apenas 6 bits (6 saídas físicas).
Figura 32 - Circuito de comunicação serial. Fonte: Elaborado pelos autores.
O circuito de gravação está diretamente associado ao microcontrolador. Compreende um conector serial padrão (DB9) para a gravação do programa através da porta serial de qualquer micro. O microcontrolador pára de executar o programa que está em sua memória quando o pino 4 (RA5/MCLR) recebe um sinal de aproximadamente 13v, ficando apto a receber os dados de forma serial através dos pinos 12 e 13 (Clock e Dados).
Figura 33 - Circuito de gravação. Fonte: Elaborado pelos autores.
51
O circuito de alimentação contém uma fonte linear não estabilizada que retifica a tensão de entrada de 127V AC para os 12V DC necessários ao funcionamento do circuitos de saída (relés). Para o circuito do microcontrolador, esta tensão é estabilizada em 5V, através do regulador de tensão 7805. O conector J17 recebe a tensão alternada de 12v proveniente de um transformador. Este sinal é retificado através da ponte de diodos BR1, e filtrado através do capacitor C5, diminuindo a oscilação (variação) da tensão. O resistor R35 e o led D21 tem a finalidade de sinalizar presença de tensão elétrica, ou seja, que o circuito está ligado. O regulador de tensão U1 (7805) tem a finalidade de estabilizar a tensão fixando em 5v, necessário para o funcionamento do microcontrolador.
Figura 34 - Circuito da fonte de alimentação. Fonte: Elaborado pelos autores.
O circuito de entrada é composto de oito subcircuitos idênticos, constituídos por bornes de fixação, onde serão fixados os elementos acionadores (sensores, chaves representados pelo símbolo J2) isolados através de optoacopladores (U2). Esta medida visa dar segurança ao sistema, uma vez que possíveis sobrecargas serão isoladas, evitando que cheguem até o microcontrolador e o danifiquem. Cada subcircuito também possui um LED de monitoramento (D2), permitindo facilmente reconhecer o estado de ativação de cada entrada. Cada subcircuito está diretamente associado a um pino de entrada do microcontrolador, permitindo que se construa variados programas de controle. Todo o portal A (do pino 1 ao 4 e do pino 15 ao 18) do microcontrolador é utilizado na função de entrada.
52
Figura 35 - Circuito de entrada. Fonte: Elaborado pelos autores.
O circuito de saída, assim como o de entrada, é constituído de uma série de subcircuitos idênticos, totalizando seis. Cada subcircuito recebe um pulso de ativação originado em um dos pinos do microcontrolador (do pino 6 ao pino 13). Os pinos utilizados para a função de saída são todos os do portal B do microcontrolador, excetos os pinos RB1 e RB2 (6 e 7), que são reservados para transmissão e recepção de dados seriais. Este pulso é amplificado por um transistor (Q2) que por sua vez, energiza a bobina de um relé (RL1), onde serão ligados os elementos atuadores (motores, lâmpadas e outros), através de bornes similares aos utilizados na entrada (J10). Cada saída também possui um LED (D10) de monitoramento permitindo facilmente reconhecer o estado de ativação das mesmas.
Figura 36 - Circuito de saída. Fonte: Elaborado pelos autores.
Pode-se observar na figura abaixo, o hardware por completo, com todos os componentes interligados. Observa-se à esquerda os 8 subcircuitos de entrada, no centro o microcontrolador que irá atuar sobre as 6 saídas que se encontram á direita. Oberva-se na
53
parte superior os dois subcircuitos seriais, um para comunicação serial com outros dispositivos (acima e à esquerda) e o outro para a gravação dos dados de programa no microcontrolador através da porta serial do computador (acima no centro). Nota-se também o subcircuito da fonte de alimentação do sistema (acima e à direita).
Subcircuito
de
comunicação serial
Subcircuito de
Subcircuito da fonte
gravação
Microcontrolador
Subcircuito de entrada
Subcircuito de saída
Figura 37 - Circuito e subcircuitos do CLP. Fonte: Elaborado pelos autores.
O circuito está montado em uma placa de circuito impresso disponível comercialmente. Durante o desenvolvimento do circuito, verificou-se que o projeto desta era bastante similar ao que estava sendo desenvolvido. Desta forma, optou-se por esta placa
54
comercial para obter aparência mais profissional ao projeto e para maior praticidade.
Figura 38 - Visão do projeto em 3D e da placa montada. Fonte: Elaborado pelos autores.
A placa do circuito foi acondicionada numa caixa de madeira para maior proteção e isolamento. A caixa possui um tampo de acrílico transparente, permitindo a inspeção dos LEDs de monitoramento. Os custos para a construção da placa estão listados abaixo na Tabela 3. Tabela 3 - Custos para a confecção do hardware
Descrição
confecção da placa
Quantidade
Unitário
1 R$ 35,00
Total
R$ 35,00
resistores 1k
19 R$
0,10
R$
1,90
resistores 4k7
9 R$
0,10
R$
0,90
resistores 10k resistores 100k
7 R$ 2 R$
0,10 0,10
R$ R$
0,70 0,20
capacitor 220nF
2 R$
0,20
R$
0,40
capacitor 100nF
5 R$
0,20
R$
1,00
capacitor 100pF
2 R$
0,20
R$
0,40
capacitor eletrolítico 10uF
4 R$
0,40
R$
1,60
capacitor eletrolítico 47uF
1 R$
0,40
R$
0,40
capacitor eletrolítico 1000uf ponte retificadora
1 R$ 1 R$
0,80 1,00
R$ R$
0,80 1,00
14 R$
0,50
R$
7,00
rele 12v 1NA
6 R$
3,50
R$ 21,00
LED verde 5mm
1 R$
0,50
R$
optoacoplador 4n25
8 R$
2,00
R$ 16,00
buffer serial max232
1 R$
8,50
R$
8,50
regulador 7805
1 R$
1,20
R$
1,20
microcontrolador PIC16F628A
1 R$ 18,00
R$ 18,00
conector DB9 fêmea para placa
2 R$
5,50
R$ 11,00
borne de 2 terminais para placa borne de 3 terminais para placa
10 R$ 6 R$
2,00 2,00
R$ 20,00 R$ 12,00
LED vermelho 5mm
0,50
55 transistor bc337
7 R$
0,50
R$
3,50
diodo 1n4007 caixa de madeira 155x115x30
6 R$ 1 R$
0,20 5,00
R$ R$
1,20 5,00
placa de acrílico 155x115
1 R$ 12,00
R$ 12,00
parafuso m5 com porca
4 R$
0,50
R$
2,00
conector 5 pinos para placa
1 R$
2,00
R$
2,00
transformador 127vx12v 500mA
1 R$ 13,00
R$ 13,00
plugue para tomada 2P
1 R$
1,20
R$
1,20
cordão paralelo 1mm²
2 R$
1,00
R$
2,00
TOTAL
R$ 201,40
4.6 Desenvolvimento do software 4.6.1 Requisitos O software desenvolvido foi escrito com base no hardware proposto. Desta forma, ele deve oferecer:
Edição do programa de controle em lógica ladder;
Uma interface de simulação, para verificar o funcionamento do circuito;
Uma interface de gravação, para a transferência do programa editado para o hardware;
A possibilidade de salvar os arquivos.
O software desenvolvido seguiu o paradigma da Orientação a Objetos. A linguagem escolhida foi o C#, principalmente para aproveitar a produtividade oferecida pelo seu ambiente de desenvolvimento, o Microsoft Visual Studio 2008, e por oferecer diversos recursos necessários ao projeto nativamente, poupando esforço no desenvolvimento.
56
4.6.2 Diagrama de Casos de Uso
Figura 39 - Diagrama de casos de uso do software. Fonte: Elaborada pelos autores.
57
4.6.3 Diagrama de Classes
Figura 40 - Diagrama de classes do software. Fonte: Elaborada pelos autores.
58 4.6.4
Desenvolvimento do s o f t w a r e
O software desenvolvido pode ser dividido com base em suas funções da seguinte forma: Módulo de edição: parte responsável pela representação do programa de
controle em linguagem ladder; Módulo de simulação: parte responsável pela simulação do funcionamento do
programa de controle; Módulo de exportação/compilação/gravação: este módulo converte o
programa de controle para um arquivo de texto no formato utilizado pelo módulo de compilação, gera o código hexadecimal para o microcontrolador alvo e realiza a programação do microcontrolador através da porta serial.
4.6.4.1
Módulo de edição
O módulo de edição tem a função de permitir a construção do programa de controle na linguagem ladder. É o módulo que concentra o maior número de funções. Seu principal componente é a estrutura de dados utilizada para se armazenar o diagrama ladder. Para representar cada um dos possíveis elementos que podem ser utilizados na construção do programa de controle, optou-se por dividi-los em classes distintas. O componente mais externo da estrutura de dados é a classe Linha. Esta classe constitui-se de uma lista encadeada de objetos da classe Elemento. A classe Elemento é uma classe abstrata, da qual derivam as classes que definem cada elemento. O uso do paradigma da herança possibilitou a separação e a independência dos elementos, permitindo uma ágil reconfiguração e/ou adição de novos componentes. Dentre os vários elementos disponíveis, destacam-se dois: o ConectorParalalelo e o ConectorSerie . Estes elementos têm a função de servir como containers para subcircuitos.
São compostos por listas de objetos da classe Elemento , assim como a classe Linha . Desta forma, conseguiu-se manter a flexibilidade da linguagem ladder, permitindo várias configurações de componentes. Segue um exemplo de circuito na linguagem ladder e sua representação na estrutura de dados criada.
59
Figura 41 - Circuito em ladder e sua representação na estrutura de dados utilizada. Fonte: Elaborada pelos autores.
O elemento L representa a um objeto da classe Linha. Este objeto armazena seus elementos filhos em série, ou seja, os objetos deverão ser desenhados horizontalmente. Seguindo as setas a partir de L, percebe-se que a linha possui 4 elementos, nesta ordem: C,
Cp, C, B. O elemento Cp armazena seus elementos em paralelo, ou seja, devem ser desenhados verticalmente. O elemento Cp então, possui, de forma análoga a L, dois elementos: C e Cs. Por fim, o elemento Cs também armazena os elementos em série, analogamente à linha. Seus elementos são, então, C e C. Esta estrutura apresenta uma forte característica recursiva, uma vez que um conector pode conter outro conector. Uma característica interessante que foi observada nesta estrutura foi a de que um conector nunca irá conter outro conector do mesmo tipo. Uma vez criada a estrutura, passou-se para o desenvolvimento da rotina de desenho. Esta rotina deveria ser capaz de percorrer a estrutura de dados e representar graficamente o circuito. O método desenvolvido inicia o caminhamento através das linhas, iterando cada uma delas, percorrendo recursivamente cada um de seus elementos, ao mesmo tempo, adicionando suas representações gráficas em uma tabela (grid) de imagens. Este método é chamado cada vez que ocorre uma alteração na estrutura, redesenhando o circuito para refletir as alterações.
60
Figura 42 - Circuito ladder representado no software desenvolvido. Fonte: Elaborada pelos autores
Uma vez desenvolvida a rotina de desenho e verificado o seu funcionamento, foram adicionados os botões na barra de ferramentas para permitir a inserção dos outros elementos disponíveis, permitindo assim a construção de variados circuitos. Cada um dos elementos possui uma tecla de atalho que fará sua inserção no circuito em série com o elemento selecionado. Caso seja pressionada a tecla shift combinada com outra tecla de atalho, o comando é alterado para inserção em paralelo. Os elementos e suas respectivas teclas de atalho são:
Contato normalmente aberto (tecla de atalho: C)
Contato normalmente fechado (tecla de atalho: F)
Contato de borda de subida (tecla de atalho: Q)
Contato de borda de descida (tecla de atalho: W)
Temporizador na energização (tecla de atalho: T)
Temporizador na desenergização (tecla de atalho: Y)
Temporizador retentivo (tecla de atalho: U)
Contador ascendente (tecla de atalho: I)
61
Contador descendente (tecla de atalho: O)
Bobina (tecla de atalho: B)
Bobina Set (tecla de atalho: S)
Bobina Reset (tecla de atalho: R)
Bobina de Reset de temporizador e contador (tecla de atalho: E)
Figura 43 - Dica sobre o botão exibindo sua tecla de atalho
As linhas de circuito também podem ser inseridas por teclas de atalho. A tecla correspondente é a (L), que insere uma linha depois da linha selecionada. A tecla shift pressionada em conjunto modifica o comando para a inserção da linha após a linha selecionada. A tela de propriedades dos elementos pode ser acessada de duas formas: através de um duplo-clique no elemento correspondente ou através do pressionamento da tecla de espaço. Esta tela de propriedades varia conforme o tipo de elemento.
62
Figura 44 - Janela mostrando as propriedades editáveis do elemento
Na janela de propriedades, existe, para cada tipo de elemento, um botão de informações. Ao acioná-lo, é exibida uma janela contendo informações úteis ao usuário, para esclarecê-lo quanto ao funcionamento do elemento em questão.
63
Figura 45 - Janela de informações do elemento
4.6.4.2 Módulo de simulação O módulo de simulação foi desenvolvido a partir do código fonte da ferramenta LDMicro. O LDMicro é um editor e simulador de lógica ladder e também um compilador desta lógica para microcontroladores de oito bits. Trata-se de um projeto Open Source, ou seja, de código aberto, publicado sobre a licença Gnu Public License (GPL). Desta forma o uso, alteração, publicação e edição dos códigos fontes são permitidos para uso não comercial.
64
Figura 46 - Tela do software LDMicro após recompilação (módulo de simulação). Fonte: Elaborado pelos autores.
As característica de simulação e compilação do LDMicro atendiam prontamente os requisitos e objetivos deste projeto. Então, optou-se por utilizá-lo como base para a simulação e compilação dos programas de controle desenvolvidos no software. Inicialmente, pretendiase portar o código original na linguagem C para a linguagem C#, porém percebeu-se que não haveria tempo suficiente para concluir este porte, por tratar-se de uma aplicação bastante volumosa, em termos de código. Assim, o código fonte foi alterado, suprimindo algumas funções que não seriam necessárias, deixando apenas as partes de simulação e compilação. As cores originais também foram alteradas para ficarem consoantes com o padrão utilizado no sistema. O módulo alterado foi recompilado e o arquivo executável gerado foi adicionado ao caminho padrão de execução da ferramenta, permitindo que fosse utilizado através de chamadas de sistema, passando-se a linha de comando no formato adequado, ficando desta forma, seu funcionamento integrado ao programa principal, de forma transparente ao usuário. O módulo de simulação/compilação recebe um arquivo de texto contendo a representação da estrutura de dados que armazena o circuito em ladder. Este arquivo é gerado dinamicamente cada vez que o módulo de simulação/compilação é acionado. Assim, garantese a representação do último circuito desenvolvido. O módulo então é acionado e esse arquivo é carregado, transportando o circuito para o ambiente de simulação. Neste ambiente, pode-se
65
simular o funcionamento do circuito, ativando ou desativando os contatos e monitorando contadores, temporizadores e bobinas, permitindo dessa forma a verificação da correção da lógica desenvolvida. Quando ativados, a cor dos elementos torna-se vermelha e quando estão desativados, permanecem na cor azul.
4.6.4.3
Módulo de Exportação/Compilação/Gravação
O módulo de exportação/compilação/gravação utiliza o mesmo módulo recompilado a partir do LDMicro para gerar o arquivo de texto e para a compilação. Num primeiro momento, o módulo realizará um caminhamento recursivo, percorrendo toda a estrutura de dados que armazena o programa e realizando a transcrição para o formato utilizado pelo módulo de compilação. O arquivo gerado contém as informações e configurações referentes ao microcontrolador utilizado, as associações dos elementos do circuito aos respectivos pinos do microcontrolador e a representação textual do circuito elaborado. O arquivo é salvo em formato de texto puro. Nas figuras 46 e 47 temos respectivamente, um programa de controle editado no software e sua representação em texto.
Figura 47 - Programa de controle editado no software. Fonte: Elaborada pelos autores.
Figura 48 - Circuito convertido em formato de texto. Fonte: Elaborada pelos autores
66
O próximo passo é a compilação deste arquivo, gerando um novo arquivo, agora contendo a representação hexadecimal do programa de controle compilado na linguagem Assembly do microcontrolador utilizado. Neste ponto, o programa de controle está preparado para ser transferido para a memória do microcontrolador.
Figura 49 - Representação hexadecimal do programa de controle. Fonte: Elaborada pelos autores
A gravação é realizada pelo software IC-Prog. Trata-se de uma ferramenta para gravação de código hexadecimal em microcontroladores através de comunicação serial. A sua escolha aconteceu por atender aos requisitos do projeto e para dar uma maior quantidade de opções que o desenvolvimento desta gravação internamente não poderia oferecer, em face ao tempo disponível para o desenvolvimento. O hardware desenvolvido possui uma porta dedicada para gravação do circuito. Como o microcontrolador está montado num soquete, pode-se efetuar sua substituição facilmente, desde que o novo microcontrolador seja de um modelo compatível (família 16F da Microchip Tecnology). Desta forma, pode-se ajustar o hardware às necessidades do circuito, trocando por exemplo para um microcontrolador com mais memória, caso o programa gerado fique maior que a memória do modelo em uso. Usando-se o IC-Prog em conjunto com o LDMicro é possível, com poucos ajustes, adequar-se rapidamente a estas mudanças, o que não seria tão ágil, caso estes módulos fossem desenvolvidos especificamente. A reutilização de código é uma das principais vantagens da filosofia Open Source. Desta forma, conseguiuse agregar funções que não poderiam estar disponíveis, enriquecendo o projeto. O IC-Prog, para o correto funcionamento, deve ser configurado, quando de sua primeira utilização. Para esta configuração são necessários os seguintes passos. 1. Habilitar o driver Windows NT: no menu Configurações(Settings) do IC-Prog, habilitar o driver requerido no submenu Opções(Options), guia Diversos(Misc);
67
Figura 50 - Ativação do driver do IC-Prog para Windows. Fonte: Elaborado pelos autores
2. Ainda no menu Configurações(Settings), no submenu Hardware, deve-se marcar qual das portas virtuais COM estará ligado o hardware.
68
Figura 51 - Configuração da porta COM utilizada para gravação. Fonte: desenvolvido pelos autores
3. Opcionalmente, pode-se escolher o idioma Português, no menu Configurações (Settings), submenu Opções (Options), guia Linguagem (Language).
69
Figura 52 - Configuração do idioma da interface do IC-Prog. Fonte: desenvolvido pelos autores
Não é necessário configurar o dispositivo ou as opções de gravação, uma vez que esta configuração está adicionada diretamente no arquivo hexadecimal gerado pelo módulo de compilação. Uma vez feita esta configuração, ela é salva no arquivo de configuração do ICProg, não sendo necessário fazer novas alterações, a não ser que se altere a porta virtual (serial). Configuração feita, basta acionar o comando de gravação que o software irá fazer as operações de exportação, compilação e gravação, nesta ordem, deixando o hardware pronto para uso com a lógica de controle desejada.
70
Figura 53 - Operação de gravação no hardware em execução. Fonte: desenvolvido pelos autores
Uma vez o programa gravado, o hardware não depende mais do computador para executar o programa de controle.
4.7 Construção do Painel Após a montagem do hardware e desenvolvimento do software, o grupo deparou-se com a necessidade de construir um painel que pudesse acolher o CLP e também realizar testes com dispositivos físicos. Assim, o grupo levantou os elementos físicos que poderiam ser conectados ao sistema desenvolvido. Com isto, o grupo levantou um sistema através de um software para desenhos mecânicos que representasse o conjunto por completo. Após a realização do projeto, deu-se início a montagem do painel.
71
Figura 54 - Projeto do painel com o CLP e os demais dispositivos físicos. Fonte: Elaborado pelos autores.
Figura 55 - Painel pré-montado. Fonte: Elaborado pelos autores.
72
Neste painel foram alocados: seis lâmpadas de tensão contínua, um solenóide, uma sirene (buzzer ), uma chave fim de curso, quatro botões pulsadores, um motor de corrente contínua reversível acoplado a um eixo que possui um elemento móvel, um sensor magnético, uma chave fim de curso tipo rolete, um sensor ótico infravermelho funcionando como contador de voltas ( encoder ) e o CLP desenvolvido neste projeto. Os custos para a construção deste painel estão listados na Tabela 4. Tabela 4 – Custos para construção do painel
Descrição
Quantidade
Preço (R$)
Painel de aglomerado de madeira 60x60cm
1
9,90
Madeira roliça 35cm
2
1,20
Lâmpada sinaleiro verde 12v 22mm
2
5,90
Lâmpada sinaleiro vermelho 12v 22mm
2
5,90
Lâmpada sinaleiro amarelo 12v 22mm
2
6,70
Botão pulsador 1NA
4
5,00
Buzzer 12v
1
9,80
Solenóide 12v
1
10,00
Chave fim de curso 1NA
1
2,70
Borne banana fêmea
60
0,50
73
5.
CONCLUSÃO
Com a realização deste projeto, pôde-se perceber a importância da Teoria do Controle no âmbito da Automação, através de suas diversas aplicações e como os CLP’s exercem papel crucial neste ambiente. Desta forma, qualquer prática ou técnica que vise aperfeiçoar o domínio de seu funcionamento é bastante bem-vinda. Assim, o projeto contribui significativamente, oferecendo uma opção de baixo custo, mas capaz de cobrir uma parte extensa do universo dos CLP’s, permitindo ao aluno, dominar seus conceitos não só teóricos
como também práticos. Nota-se no trabalho que tanto o hardware quanto o software desenvolvido possibilitam o uso de lógica digital combinatória e sequencial, temporizadores e contadores, na simulação e execução de sistemas automatizados. Esta lógica pode ser desenvolvida e simulada no software em linguagem LADDER e então o CLP pode ser programado, ficando a executar tal lógica continuamente e separadamente do computador. Juntamente com o software e o hardware, tem-se o painel de elementos físicos para a execução do programa, permitindo ao aluno aluno uma interação mais abrangente quanto quanto ao uso dos dos CLP ’s. Assim, fica toda a pesquisa, materiais e métodos utilizados para esta magnífica construção para que qualquer instituição de ensino profissional possa fazer uso, facilitando o ensino e agregando valores. Verifica-se ainda que os custos podem ser reduzidos ainda mais, dependendo da disponibilidade dos componentes e volume de compra.
5.1 Dificuldades Encontradas Durante o transcorrer do projeto, surgiram várias dificuldades que necessitavam serem superadas. A mais destacada delas, foi a construção da interface do software. A programação desta parte consumiu tempo e recursos maiores que o previsto, devido à sua complexidade. Mas esta complexidade não estava clara num primeiro momento, visto que a estrutura de dados desenvolvida, que era a preocupação maior no momento inicial, foi sanada com muito mais agilidade. A rotina que faz a representação gráfica do circuito não é capaz de prover uma relação direta com a estrutura de dados, visto a limitação do uso de ponteiros na linguagem C#, de forma que a interação da interface com a estrutura consumiu bastante esforço. Porém,
74
com determinação e bastante estudo, conseguiu-se desenvolver um método que permitiu esta interação, sacrificando, porém, alguns recursos inicialmente desejados. Por fim, consideramos que este projeto atingiu seu objetivo, provendo uma plataforma de hardware e software integrados, que permitem a baixo custo, simular o funcionamento de um CLP, cobrindo suas principais funções, com custo bem mais baixo que opções comerciais.
5.2 Projetos Futuros Mesmo tendo atingido seu objetivo, o projeto oferece inúmeras oportunidades de aprimoramento. Publicando-o sob a licença GPL, objetiva-se, também, permitir a adição de novas funcionalidades. funcionalidades. Seria interessante acrescentar suporte para outras linguagens, além do ladder. Durante o desenvolvimento, observou-se que a estrutura de dados criada permite uma boa intercambialidade entre algumas linguagens. Através da aplicação de conceitos de Gramática Não Ambígua e Compiladores, Compiladores, pode-se desenvolver desenvolver um tradutor que converta converta o código ladder em outras linguagens compatíveis. Também podem ser desenvolvidas classes responsáveis pela comunicação entre módulos ou entre o módulo e o PC, através da interface serial. Esta capacidade já está implementada no hardware, ela não foi explorada por falta de tempo hábil. Como a linguagem utilizada inclusive já provê suporte nativo à comunicação serial, esta implementação não será difícil. Adicionalmente, podem-se desenvolver classes de comparação e armazenamento de variáveis, que juntamente com as classes de comunicação comunicação serial podem ser utilizadas para que vários dispositivos se comuniquem por uma rede RS232. Pode-se retirar o uso do software externo LDMicro através do desenvolvimento de uma rotina de simulação do sistema e outra rotina para a compilação do diagrama LADDER em código Assembly para o microcontrolador. Pode-se desenvolver um hardware mais completo que tenha a possibilidade de fazer leitura de sinais contínuos, assim como desenvolver as classes do software para tal situação, uma vez que tanto o ambiente de simulação quanto o de compilação já oferecem tal possibilidade. Pode-se também desenvolver um método de acesso à programação do hardware pela rede TCP/IP, uma vez que a compilação e gravação são executadas por softwares externos,
75
que são facilmente acessados por linguagens web como PHP e ASP, assim vários alunos podem programar programar com apenas 1 painel de CLP CLP no laboratório.
76
ANEXO A – Diagrama do circuito do CLP Didático
77
BIBLIOGRAFIA BARTULANI, Carlos. [Online] [Citado em: 20 de Maio de 2009.] http://www.if.ufrj.br. BEMARQUES, Angelo Eduardo, CRUZ, Eduardo Cesar Alves e JUNIOR, Salomão Chouere. 2007. Dispositi vos semi condutor es: diodos e tr ansistores. São Paulo : Erica, 2007. 978-85-7194-317-9. BRADLEY, Julia Case and MILLSPAUGH, Anita C. 2004. Programming i n C# .NET. New York : Mc Graw Hill, 2004. 0-07-121564-6.
BRANQS AUTOMAÇÃO. 2007. I ntr odu ção àAutomação I ndu strial . Santos : s.n., 2007. BRYAN, L. A. and BRYAN, E. A. 1997. Programmable Contr ollers - Th eory and Implementation. Second Edition. Atlanta : Industrial Text Company, 1997.
CAPUANO, Francisco Gabriel e MARINO, Maria Aparecida Mendes. 2007. L aboratório de Eletr icidade e Eletrôni ca - Teoria e Pr áti ca. s.l. : Editora Erica, 2007.
CASTRO, Eduardo Breviglieri Pereira de. 2006. Automação da Produção. Juiz de Fora : Universidade Federal de Juiz de Fora, 2006. Apostila utilizada na disciplina de Automação da Produção do curso de Engenharia de Produção.. FILHO, Bernardo Severo da Silva. 1999. Curso de Controladores Lógicos . Rio de Janeiro : Universidade do Estado do Rio de Janeiro, 1999. Pr ogr amáveis
JACK, Hugh. 2007. Au tomatin g M anuf actur in g Systems with PL C's . 2007. E book, versão 5.0, 4 de maio de 2007. MACHADO, J. N. 1994. Conhecimento como Rede: a metáfor a como paradigma e . São Paulo : Instituto de Estudos Avançados, 1994. como pr ocesso
MARKUS, Otavio. 2001. Ci rcui tos elé tr icos, cor rente con tínua e al ternada. s.l. : Erica, 2001. MASSOI, Luis Fernando. [Online] [Citado em: 21 de Maio de 2009.] www.cursofisica.com.br. 2004. PLC Tutor. PLC Tutor. [Online] 2004. [Citado em: 21 de Abril de 2009.] http://www.plctutor.com/. SOUZA, Flavio Morais de. 1999. I nstr umentação - Automação B ásica. Vitória : CTIIAF – Centro Técnico de Instrumentação Industrial Arivaldo Fontes, 1999.