desenvolvimento de um micro clp com softwares supervisao programacao em fdb renan rodrigues ribeiro

75
FACULDADE NOVO MILÊNIO COORDENADORIA DE ENGENHARIA ELÉTRICA PROJETO DE GRADUAÇÃO DESENVOLVIMENTO DE UM MICRO-CLP COM SOFTWARES DE SUPERVISÃO E PROGRAMAÇÃO EM FBD RENAN RODRIGUES RIBEIRO VILA VELHA – ES DEZ/2010

Upload: fernanda-ataulo

Post on 29-Jul-2015

180 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

FACULDADE NOVO MILÊNIO

COORDENADORIA DE ENGENHARIA ELÉTRICA PROJETO DE GRADUAÇÃO

DESENVOLVIMENTO DE UM MICRO-CLP COM SOFTWARES DE SUPERVISÃO E

PROGRAMAÇÃO EM FBD

RENAN RODRIGUES RIBEIRO

VILA VELHA – ES DEZ/2010

Page 2: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

RENAN RODRIGUES RIBEIRO

DESENVOLVIMENTO DE UM MICRO-CLP COM SOFTWARES DE SUPERVISÃO E

PROGRAMAÇÃO EM FBD Parte manuscrita do Projeto de Graduação do aluno Renan Rodrigues Ribeiro, apresentado a Coordenadoria de Engenharia Elétrica da Faculdade Novo Milênio, para obtenção do grau de Engenheiro Eletricista.

VILA VELHA – ES

DEZ/2010

Page 3: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

RENAN RODRIGUES RIBEIRO

DESENVOLVIMENTO DE UM MICRO-CLP E SOFTWARES DE SUPERVISÃO E

PROGRAMAÇÃO EM FBD

COMISSÃO EXAMINADORA: ___________________________________ Prof. MsC. Ralf Luis de Moura Orientador ___________________________________ Prof. Adjuto Martins Vasconcelos Júnior Examinador ___________________________________ Prof. Jan Jensen Examinador

Vila Velha - ES, 13, Dezembro, 2010

Page 4: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

i

DEDICATÓRIA

À minha família, à minha namorada e aos meus amigos.

Page 5: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

ii

AGRADECIMENTOS

Agradeço a Deus por sempre estar presente em minha vida, a minha família

que foi fundamental para minha formação, aos professores por todos os ensinamentos

e aos amigos da VALE por todo apoio e incentivo durante o desenvolvimento do

projeto.

Page 6: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

iii

LISTA DE FIGURAS

Figura 1 – Estrutura Básica de um CLP. ..................................................................... 15

Figura 2 – Estrutura Básica do Sistema de Memória. ................................................. 17

Figura 3 – Possíveis entradas e saídas de um CLP. ..................................................... 17

Figura 4 – Estados de um CLP. ................................................................................... 18

Figura 5 – Fluxograma de funcionamento de um CLP em modo de operação. .......... 19

Figura 6 – Lógica em Diagrama de Blocos de Função. ............................................... 21

Figura 7 – Arquitetura geral de um microcontrolador. ................................................ 24

Figura 8 – Pinagem do PIC16F877A ........................................................................... 26

Figura 9 – Distancia x Taxa de transmissão. ............................................................... 27

Figura 10 – Transmissão do conteúdo binário no barramento RS-485. ...................... 28

Figura 11 – Visão geral do sistema. ............................................................................. 29

Figura 12 – Visão geral da arquitetura do módulo CPU. ............................................ 30

Figura 13 – Comunicação I2C. .................................................................................... 31

Figura 14 – Aplicação típica da rede RS-485. ............................................................. 33

Figura 15 – Circuito elétrico das entradas. .................................................................. 35

Figura 16 – Circuito elétrico das saídas. ...................................................................... 36

Figura 17 – Circuito conversor RS-232/RS-485. ........................................................ 37

Figura 18 – Mapa de conectores e leds dos módulos. ................................................. 37

Figura 19 – Fluxograma da comunicação durante o carregamento do micro-CLP. .... 45

Figura 20 – Fluxo de execução do firmware. .............................................................. 46

Figura 21 – Funcionamento do controle do Scan Time. .............................................. 48

Figura 22 – Layout final do software de programação em FBD. ................................ 53

Figura 23 – Blocos funcionais desenvolvidos. ............................................................ 54

Figura 24 – Representação gráfica das entradas e saídas. ........................................... 55

Figura 25 – Layout final do software de programação em FBD. ................................ 56

Figura 26 – Etapas de compilação e carregamento do programa de aplicação. .......... 57

Figura 27 – Layout final do software de supervisão. .................................................. 59

Figura 28 – Fluxograma do funcionamento básico do software de supervisão. ......... 61

Figura 29 – Programa FBD do controle da coluna lavadora. ...................................... 64

Page 7: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

iv

Figura 30 – Telas de supervisão da coluna lavadora. .................................................. 64

Figura 31 – Plataforma de testes. ................................................................................. 65

Figura 32 – Plataforma de testes. ................................................................................. 67

Page 8: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

v

LISTA DE TABELAS

Tabela 1 – Classificação das linguagens de programação. .......................................... 20

Tabela 2 – Tabela de estados lógicos de um transceptor RS-485. .............................. 27

Tabela 3 – Formato das instruções internas do micro-CLP. ........................................ 40

Tabela 4 – Lista de instruções. .................................................................................... 41

Tabela 5 – Modos de endereçamento. ......................................................................... 41

Tabela 6 – Valores utilizados no controle de envio de dados. .................................... 44

Tabela 7 – Valores utilizados no controle de recebimento de dados........................... 44

Tabela 8 – Descrição das entradas do micro-CLP. ...................................................... 63

Tabela 9 – Descrição das saídas do micro-CLP. ......................................................... 63

Page 9: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

vi

GLOSSÁRIO

FBD - Function Block Diagram

PID - Proporcional-Integral-Derivativo

PIC - Peripheral Interface Controller

GM - General Motors

CPU - Central Processing Unit

EEPROM - Electrically-Erasable Programmable Read-Only Memory

IL - Instruction List

ST - Structured Text

LD - Ladder Diagram

SFC - Sequential Flow Chart

RISC - Reduced Instruction Set Computer

CCP - Capture, Compare e PWM

I2C - Inter Integrated Circuit

RTS - Request To Send

CP - Contador de Programa

OOP - Object Oriented Programming

IDE - Integrated Development Enviroments

RAD - Rapid Application Development

Page 10: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

vii

SUMÁRIO

DEDICATÓRIA........................................................................................................... I

AGRADECIMENTOS ...............................................................................................II

LISTA DE FIGURAS ............................................................................................... III

LISTA DE TABELAS ................................................................................................ V

GLOSSÁRIO ............................................................................................................. VI

SUMÁRIO ................................................................................................................ VII

RESUMO ..................................................................................................................... X

1 INTRODUÇÃO .............................................................................................. 11

1.1 Motivação.......................................................................................................... 11

1.2 Objetivo ............................................................................................................. 12

1.3 Metodologia ...................................................................................................... 12

1.4 Organização do Texto ....................................................................................... 13

2 CONTROLADOR LÓGICO PROGRAMÁVEL ....................................... 14

2.1 Historia do CLP ................................................................................................ 14

2.2 Arquitetura do CLP ........................................................................................... 15

2.3 Principio de Funcionamento do CLP ................................................................ 18

2.4 Linguagens de Programação ............................................................................. 20

2.4.1 Linguagem FBD ...................................................................................... 21

3 DESENVOLVIMENTO DO HARDWARE ................................................ 23

3.1 Microcontroladores ........................................................................................... 23

3.1.1 O PIC16F877A ........................................................................................ 25

3.2 O Padrão RS485 ................................................................................................ 26

3.3 Definições do Projeto ........................................................................................ 28

3.4 Módulo CPU ..................................................................................................... 29

3.4.1 Memória e Protocolo I2C ........................................................................ 30

3.4.2 Porta de comunicação .............................................................................. 32

3.5 Módulo de Entradas Digitais ............................................................................ 34

3.6 Módulo de Saídas Digitais ................................................................................ 35

3.7 Conversor RS-232/RS-485 ............................................................................... 36

Page 11: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

viii

3.8 Fonte de Alimentação ....................................................................................... 37

3.9 Mapa de Conectores e Leds Indicadores de Status ........................................... 37

4 DESENVOLVIMENTO DO FIRMWARE ................................................. 40

4.1 Instruções .......................................................................................................... 40

4.2 Cabeçalho .......................................................................................................... 42

4.3 Interrupções ....................................................................................................... 43

4.4 Comunicação ..................................................................................................... 43

4.5 Principais Rotinas ............................................................................................. 46

5 DESENVOLVIMENTO DOS SOFTWARES ............................................. 50

5.1 Linguagem C++ ................................................................................................ 50

5.2 Ambientes de Desenvolvimento ....................................................................... 51

5.2.1 O Ambiente de Desenvolvimento C++ Builder ...................................... 51

5.3 Software de Programação em FBD................................................................... 52

5.3.1 Definição do Layout ................................................................................ 52

5.3.2 Funções Projetadas .................................................................................. 54

5.3.3 Canais Disponíveis para a Programação ................................................. 55

5.3.4 Desenhando o FBD ................................................................................. 56

5.3.5 Compilação e Carregamento ................................................................... 56

5.4 Software Supervisório ....................................................................................... 58

5.4.1 Sistema de Supervisão e Aquisição de Dados ......................................... 58

5.4.2 Definições ................................................................................................ 59

5.4.3 Comunicação com o CLP ........................................................................ 60

6 TESTES E RESULTADOS ........................................................................... 62

6.1 Sistema de Despoeiramento .............................................................................. 62

6.2 Programação da Lógica em FBD ...................................................................... 62

6.3 Criação da Tela de Supervisão .......................................................................... 64

6.4 Resultados ......................................................................................................... 65

7 CONCLUSÕES .............................................................................................. 68

APÊNDICE A – CIRCUITO DO MÓDULO CPU ................................................ 69

APÊNDICE B – CIRCUITO DO MÓDULO DE ENTRADAS ............................ 70

Page 12: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

ix

APÊNDICE C – CIRCUITO DO MÓDULO DE SAÍDAS ................................... 71

REFERÊNCIAS BIBLIOGRÁFICAS..................................................................... 72

Page 13: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

x

RESUMO

Este trabalho consiste no estudo e desenvolvimento de três elementos

fundamentais nos sistemas de automação de baixa complexidade, os quais são: micro-

CLP, software de supervisão e software de programação em linguagem FBD.

Para isso, foi necessário realizar um estudo do funcionamento dos CLPs, bem

como seus principais conceitos e aplicações. Alem disso, são estudadas as principais

características da linguagem FBD apresentando seus principais blocos funcionais.

No desenvolvimento do micro-CLP, são analisadas as principais

características do microcontrolador PIC16F877A, escolhido para desempenhar as

funções de processamento e gerenciamento da comunicação. Alem disso, é descrito o

funcionamento do padrão RS-485 utilizado na implementação da comunicação entre o

micro-CLP e os softwares de programação e supervisão.

De posse dos conhecimentos obtidos através do embasamento teórico,

iniciam-se as definições da arquitetura de hardware e o desenvolvimento dos módulos

do micro-CLP. Também é elaborado o firmware responsável pela execução do

programa de aplicação.

Em seguida, é realizado um estudo sobre o ambiente de desenvolvimento

Borland C++ Builder e a linguagem de programação C++, os quais são utilizados

durante o desenvolvimento dos softwares de programação e supervisão.

Page 14: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

11

1 INTRODUÇÃO

Este Projeto de Graduação tem como pressuposto a proposta de integrar o

conhecimento adquirido durante o curso de Engenharia Elétrica com habilitação em

computação, com um projeto interessante e de grande utilidade.

1.1 Motivação

A necessidade de aumentar a qualidade e a produtividade das indústrias

automobilísticas da década de 60 proporcionou o desenvolvimento dos primeiros

Controladores Lógicos Programáveis (CLP). A partir daí, o CLP se tornou um dos

equipamentos mais utilizados na implementação de sistemas automatizados.

A ampla utilização dos CLPs vem impulsionando o desenvolvimento de novas

funcionalidades. Atualmente, os processadores utilizados nos CLPs possuem uma alta

capacidade computacional, capaz de realizar tarefas complexas através de co-

processadores e controlar uma grande quantidade de variáveis analógicas e digitais.

Em contrapartida, toda esta capacidade disponível nos CLPs de grande porte

possui um preço que inviabiliza sua aplicação para sistemas com baixo nível de

complexidade, tais como as plataformas de uso didático.

Por outro lado, no estagio atual da tecnologia, dispositivos de alto desempenho

e baixo custo como os microcontroladores vêm sendo amplamente utilizados na

construção de sistemas mais compactos e versáteis, com um custo relativamente baixo.

Portanto, a fim de criar alternativas com desempenho que atenda os requisitos

de controle dos sistemas de baixa complexidade e custo mais acessível, é apresentado

nesse projeto o desenvolvimento de um micro-CLP de baixo custo com 8 entradas e 8

saídas digitas e uma porta de comunicação para programação e supervisão através do

padrão RS-485.

A Linguagem de Diagrama de Blocos está bastante difundida no controle de

processos industriais devido à facilidade de aprendizado e utilização. Neste sentido, o

projeto aqui apresentado contempla o desenvolvimento de um software de

programação em linguagem FBD contendo os principais blocos funcionais para

aplicações discretas.

Page 15: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

12

1.2 Objetivo

O objetivo deste projeto é desenvolver um micro-CLP com softwares de

supervisão e programação em FBD, a fim de proporcionar uma solução de baixo custo

para a implementação de sistemas automatizados com nível de complexidade baixo,

tais como aplicações didáticas para ensino de automação e controle.

1.3 Metodologia

Inicialmente foram analisadas diversas idéias e possibilidades de arquiteturas

do projeto. Arquiteturas simples e complexas foram pesquisadas, assim como a

disponibilidade de material para desenvolvimento do projeto, componentes e exemplos

de códigos. Estes foram os principais pontos para o início do desenvolvimento do

trabalho.

Na primeira etapa de desenvolvimento, fez-se o uso intenso do software

Proteus 7 para a simulação do funcionamento do microcontrolador quanto a execução

das rotinas do micro-CLP e a comunicação serial com os softwares de programação e

supervisão. Apenas quando verificado em simulação todo o funcionamento do micro-

CLP, os módulos foram criados e testados.

A idéia de implementar canais analógicos e funções complexas como ao

controle PID mostraram-se interessantes a princípio, contudo foi descartada durante a

fase de desenvolvimento do firmware, devido a sua alta complexidade. A

implementação de canais digitais e blocos funcionais básicos mostrou-se mais atrativa

e facilitou a finalização da primeira fase do projeto.

A segunda etapa do desenvolvimento voltou-se para uma implementação em

conjunto do firmware e do software. Antes, entretanto, foi necessário decidir qual seria

a plataforma de desenvolvimento utilizada, assim como a linguagem de programação.

Optou-se pela linguagem C e a plataforma de desenvolvimento mikroC PRO,

da empresa Mikroelektronika, devido aos exemplos de códigos pré-existentes para

esta plataforma.

Page 16: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

13

Quanto aos softwares de programação e supervisão, optou-se pelo Borland

C++ Builder 6, devido às facilidades gráficas da plataforma e devido à grande

variedade de componentes disponíveis.

Com o hardware simulado, firmware e softwares operando, iniciou-se a etapa

de confecção das placas de circuito impresso dos módulos.

A etapa final do projeto foi focada em uma bateria de testes e comparação

entre os resultados esperados e os resultados obtidos.

1.4 Organização do Texto

O trabalho está organizado em sete capítulos e três apêndices.

O segundo capítulo aborda o estudo dos CLPs, apresentando sua historia,

arquitetura e principio básico de funcionamento. Este capítulo também descreve os

conceitos de linguagem de programação, enfatizando a linguagem FBD.

O terceiro capítulo mostra o estudo e o desenvolvimento do projeto do micro-

CLP. São descritas as principais características do microcontrolador PIC16F877A e do

padrão RS-485. Posteriormente, é mostrado todas as etapas de definição e

implementação do hardware do micro-CLP.

O quarto capítulo apresenta o desenvolvimento do firmware, descrevendo todo

o seu funcionamento.

O quinto capítulo inicialmente descreve os principais conceitos da linguagem

C++ e apresenta as características do ambiente de desenvolvimento C++ Builder. Após

a abordagem teórica, o capitulo descreve todas as etapas de desenvolvimento dos

softwares de supervisão e programação em FBD.

O sexto capítulo apresenta os testes realizados buscando a validação do

funcionamento do sistema.

Por fim, no sétimo capítulo, avaliam-se os resultados obtidos e são

apresentadas sugestões para trabalhos futuros.

Page 17: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

14

2 CONTROLADOR LÓGICO PROGRAMÁVEL

Controlador Lógico Programável (CLP) é um dispositivo eletrônico de estado

sólido, baseado em um microprocessador, projetado para controlar sistemas

automatizados, capaz de armazenar e executar instruções definidas num software

aplicativo pelo usuário [1].

Segundo a National Electrical Manufactures Association (NEMA), o CLP é

um aparelho eletrônico digital que utiliza uma memória programável para armazenar

internamente instruções e implementar funções específicas, tais como: lógica,

seqüenciamento, temporização, contagem e aritmética, controlando, por meio de

módulos de entradas e saídas, vários tipos de máquinas ou processos [2].

2.1 Historia do CLP

Os primeiros CLPs surgiram na década de 60, como conseqüência das

necessidades das indústrias automotivas de aumentarem a qualidade e produtividade

de suas linhas de produção. Antes dos CLPs, todas as tarefas de controle de processos

industriais eram feitas através de painéis de controle a relés, que necessitavam ser

reconstruídos a cada vez que se modificava a lógica de controle. Como estas

modificações ocorriam freqüentemente, fazia-se necessário encontrar uma alternativa

para tornar os sistemas de controle mais flexíveis e facilmente reutilizáveis.

Em 1968, a primeira especificação para o projeto do CLP foi elaborada pela

General Motors (GM), com o objetivo de produzir um equipamento com preço

competitivo com os sistemas de relés, dispositivos de entrada e saída facilmente

substituíveis, funcionamento em ambiente industrial, facilidade de programação e

manutenção por técnicos e engenheiros e repetibilidade de operação e uso. Então, em

1969, foi desenvolvido pela Gould Modicon o primeiro controlador a atender as

especificações elaboradas pela GM [1].

Inicialmente, os CLPs eram utilizados apenas em aplicações de controle

discreto, porém, diferentemente dos sistemas a relés, eram facilmente instalados,

economizando espaço e energia, possuíam indicadores de diagnósticos e as alterações

Page 18: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

15

na lógica de controle eram realizadas em pouco tempo, apenas com alteração no

programa, sem precisar alterar as ligações elétricas.

Na década de 70, os CLPs passaram por varias etapas de aprimoramento. Em

1972, incorporaram funções de temporização e contagem, em 1973 surgiu o primeiro

sistema de comunicação que permitia que os CLPs trocassem informações com outros

computadores, já em 1975 passou a incorporar maior capacidade de memória,

controles analógicos e controle PID, em 1979 surgiram os módulos de I/O remotos.

Nos anos 80, os CLPs são aperfeiçoados, possibilitando a comunicação em

rede, que hoje é um recurso indispensável na indústria.

As atuais gerações de CLPs possuem funções avançadas de controle, grande

numero de pontos de entradas e saídas, módulos remotos, softwares de programação

em ambiente Windows, maior velocidade de processamento e pequenos e micros CLPs

que oferecem vários recursos encontrados nos grandes CLPs [1].

2.2 Arquitetura do CLP

Os CLPs são constituídos basicamente por quatro blocos, mostrados na Figura

1, os quais são: CPU, módulos de I/O, fonte de alimentação e Base [1].

Figura 1 – Estrutura Básica de um CLP.

• CPU (Central Processing Unit – Unidade Central de Processamento): é o

elemento principal do controlador, compreendendo o processador, que pode

ser um microprocessador, microcontrolador ou processador dedicado. O

Page 19: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

16

sistema de memória (ROM e RAM) e os circuitos auxiliares de controle

também estão contidos neste bloco;

• Módulos ou Circuitos de E/S (Entrada/Saída): é o meio físico de conexão

do CLP aos sensores e atuadores do processo. As entradas e saídas podem

ser do tipo discreto, assumindo os níveis lógicos: 0 ou 1, ligado ou

desligado, através de sinais de tensão, contatos normalmente abertos e

contatos normalmente fechados. Outro tipo são as entradas e saídas

continuas que são padronizados para trabalhar numa faixa, normalmente, de

4 a 20 mA ou 0 a 10 Vdc. A diferença básica entre módulos e circuitos de

E/S deve-se ao tipo de CLP. No caso dos CLPs compactos onde a CPU e as

E/S estão contidas em um único invólucro, é usado o termo Circuitos de

E/S. Para CLPs Modulares, onde as E/S estão disponíveis de forma

independente da CPU, usa-se o termo: Módulo de E/S;

• Fonte de Alimentação: é encarregada de fornecer alimentação ao

barramento do CLP, com proteção contra picos de tensão, garantindo a

operação normal da CPU e dos módulos e circuitos de E/S;

• Base: realiza a sustentação mecânica dos elementos que compõe o CLP e

contem o barramento de conexão elétrico responsável pela alimentação e

comunicação entre a CPU e os módulos de E/S.

O sistema de memória da CPU de um CLP divide-se em memória de aplicação

e memória do sistema de operação.

A memória de aplicação armazena o programa com a lógica de controle

desenvolvida pelo usuário, e pode ser do tipo EEPROM, EPROM ou RAM com

bateria de segurança [1].

A memória do sistema de operação, também conhecida como Firmware,

armazena o programa desenvolvido pelo fabricante do CLP, que realiza as atividades

de operação, tais como: execução do programa de aplicação e atualização dos módulos

Page 20: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

17

de E/S. Essa é uma memória não volátil, do tipo ROM. Na Figura 2 pode-se ver a

estrutura básica do sistema de memória de um CLP.

Figura 2 – Estrutura Básica do Sistema de Memória.

As CPUs possuem pelo menos uma porta de comunicação serial para

configuração do CLP e troca de dados com dispositivos externos, porem está porta

pode não ser adequada a determinadas aplicações, sendo necessário incluir módulos

especiais de comunicação [1].

A figura 3 apresenta algumas entradas e saídas típicas de um CLP, bem como

a utilização de um microcomputador como dispositivo de programação.

Figura 3 – Possíveis entradas e saídas de um CLP.

Page 21: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

18

Os CLPs podem ser classificados de acordo com a quantidade de pontos de

E/S que a CPU pode controlar e a quantidade de memória disponível para o programa

de aplicação [1].

• Micro-CLPs: até 64 pontos de E/S e até 2Kwords de memória.

• Pequenos CLPs: de 64 a 512 pontos de E/S e até 4Kwords de memória.

• CLPs médios: de 256 a 2048 pontos de E/S e dezenas de Kwords de

memória.

• Grandes CLPs: acima de 2048 pontos de E/S e centenas de Kwords de

memória.

2.3 Principio de Funcionamento do CLP

De maneira geral, os CLPs podem assumir três estados de funcionamento:

estado de espera, estado de execução e erro.

Figura 4 – Estados de um CLP.

O CLP assume o estado de espera quando está em modo de programação.

Nesse modo, o CLP não executa o programa de aplicação, aguardando a requisição do

software de programação para o carregamento do programa de aplicação com a lógica

de controle definida pelo usuário.

Page 22: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

19

Quando está no estado de execução, também chamado de modo de operação, o

CLP trabalha executando continuamente os ciclos de varredura (Scan), cuja duração

(Scan Time) está diretamente relacionada à quantidade de pontos de entrada, tamanho

do programa de aplicação, tipos de instruções utilizadas e quantidade de pontos de

saídas. O ciclo de varredura compreende as etapas de atualização das entradas,

execução do programa de Aplicação e atualização das saídas. Na figura 5 pode-se ver

o fluxograma de funcionamento de um CLP em modo de operação [1].

Figura 5 – Fluxograma de funcionamento de um CLP em modo de operação.

O CLP realiza a leitura do estado de cada uma das entradas e armazena na

tabela de imagem das entradas, localizada numa região da memória de aplicação

chamada Tabela de Dados.

Durante a execução do programa de aplicação, a CPU consulta a tabela de

imagem das entradas, e atualiza a tabela de imagem das saídas, de acordo com as

instruções da lógica definida pelo usuário.

Após a execução do programa de aplicação, o CLP atualiza o estado de cada

uma das saídas com o conteúdo da tabela de imagem das saídas, gerada a partir da

lógica executada. Inicia-se então, um novo ciclo de varredura [1].

Page 23: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

20

2.4 Linguagens de Programação

O fator responsável pela flexibilidade de um CLP é a sua capacidade de ser

facilmente programado através de um microcomputador. Ao longo dos anos, com a

evolução dos CLPs, surgiram diversas linguagens de programação, possibilitando o

desenvolvimento de programas melhor estruturados, de alto nível e com recursos

gráficos cada vez mais avançados.

A Comissão Eletrotécnica Internacional (IEC - International Electrotechnical

Committee) é a responsável pela padronização dessas linguagens de programação. A

norma IEC 61131-3 define cinco linguagens de programação, divididas em duas

classes, conforme é apresentado na Tabela 1 [3].

Classes Linguagens

Textuais IL (Instruction List)

ST (Structured Text)

Gráficas

LD (Ladder Diagram)

SFC (Sequential Flow Chart)

FBD (Function Block Diagram)

Tabela 1 – Classificação das linguagens de programação.

A Linguagem de diagramas de contato, mais conhecida por linguagem Ladder,

foi a primeira linguagem criada para programação dos CLPs. Por ser uma linguagem

baseada na representação gráfica da lógica de relés, o Ladder foi determinante para a

aceitação do CLP por técnicos e engenheiros acostumados com o sistema de controle a

relés [1].

Outra linguagem de programação para CLPs bastante familiar para os técnicos

e engenheiros, é a Linguagem FBD que atualmente é uma das linguagens de

programação mais utilizada nas indústrias de processo por se parecer com o sistema

em termos do fluxo de sinais entre elementos de processamento tornando mais clara a

programação e inspeção do programa.

Page 24: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

21

2.4.1 Linguagem FBD

A Linguagem FBD (Function Block Diagram – Diagrama de Blocos de

Função), mais conhecida por Diagrama de Blocos, é uma linguagem gráfica de alto

nível que permite descrever um processo através de um conjunto de blocos

interconectados por linhas de fluxo, caracterizando-se por uma grande semelhança

com os circuitos eletrônicos digitais [3].

As interconexões entre os blocos devem seguir a convenção utilizada para

linguagens gráficas. Nesta convenção, o lado esquerdo é destinado para os sinais de

entradas do bloco, enquanto o lado direito é reservado para os sinais de saída do bloco.

Na Figura 6 é apresentada uma lógica em linguagem FBD que produz o resultado: S1

= E3 AND ( E1 OR E2 ).

Figura 6 – Lógica em Diagrama de Blocos de Função.

Cada bloco tem um número fixo de pontos de conexão de entrada e de saída, e

é representado por um simples retângulo. A saída de um bloco pode ser conectada a

entrada de outro bloco, desta forma, os sinais se propagam das saídas dos blocos para

as entradas de outros blocos e as saídas são atualizadas como um resultado do

processamento dos blocos.

Os blocos Funcionais padrões da linguagem FBD são:

• Blocos Lógicos: OR, AND, XOR, NOT;

• Blocos Biestáveis: RS e SR;

• Blocos Temporizadores: TON e TOF;

Page 25: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

22

• Blocos Contadores: CTU, CTD, CTUD;

• Blocos Detectores de Borda: R_TRIG e F_TRIG;

• Blocos Comparadores: EQ, NE, LT, LE, GT e GE.

Page 26: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

23

3 DESENVOLVIMENTO DO HARDWARE

Neste capítulo serão descritas todas as etapas do desenvolvimento do hardware

do micro-CLP, desde os aspectos teóricos relacionado ao projeto até a construção dos

circuitos eletrônicos.

3.1 Microcontroladores

Os microcontroladores estão revolucionando o projeto de equipamentos

eletrônicos. Não somente os sistemas convencionais estão se tornando mais

sofisticados e baratos, como novas funcionalidades estão sendo possíveis de serem

implementadas a um custo compatível com o mercado.

Tipicamente, os microcontroladores possuem integrados em uma única

pastilha, a CPU, memória RAM, memória EPROM (ou suas variantes EEPROM,

ROM e PROM), entradas e saídas digitais e analógicas, temporizadores e

controladores de interrupção, enfatizando a auto-suficiência, em contraste com um

microprocessador de propósito geral, que requer circuitos especiais, como chips

externos para prover a comunicação com os periféricos. A arquitetura geral de um

microcontrolador pode ser vista na Figura 7 [6].

Page 27: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

24

Figura 7 – Arquitetura geral de um microcontrolador.

Existem diversas empresas fabricantes de microcontroladores, entre elas, a

Microchip Technology Inc. que criou a família de microcontroladores Peripheral

Interface Controller (PIC). Trata-se de microcontroladores com arquitetura Harvard

que prevê várias vias de comunicação entre a CPU e os periféricos, permitindo a

realização de várias operações simultaneamente, o que implica em um aumento

considerável na velocidade de execução e permite ainda que a memória de dados e o

programa tenham tamanhos diferentes [6].

O PIC possui tecnologia Reduced Instruction Set Computer (RISC), isto

significa dizer que estes microcontroladores possuem um número reduzido de

instruções, como é o caso do PIC16F877A que possui apenas 35 instruções [8].

Page 28: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

25

3.1.1 O PIC16F877A

O PIC16F877A é um microcontrolador de baixo custo e suficientemente

robusto fabricado pela Microchip Technology, com palavras de dados de 8 bits de

tamanho, e palavras de instrução de 14 bits. Suas principais características são [8]:

• 40 pinos, o que possibilita a montagem de um hardware capaz de interagir

com diversos recursos e funções ao mesmo tempo;

• Conjunto de instruções RISC com 35 instruções;

• 33 portas configuráveis como entrada ou saída;

• Conversor analógico-digital de 10 bits de resolução e 8 canais de entrada;

• Memória de programação EEPROM, permitindo a gravação rápida do

programa diversas vezes no mesmo chip, sem a necessidade de apagá-lo por

meio de luz ultravioleta;

• Memória de programa com 8kwords, com capacidade de escrita e leitura

pelo próprio código interno;

• Memória EEPROM interna com 256 bytes;

• Memória RAM com 368 bytes;

• Comunicações seriais: SPI, I2C e USART;

• Dois módulos CCP (Capture, Compare e PWM).

• Dois temporizadores de 8 bits programável, com pré-divisor;

• Um temporizador de 16 bits;

• Operação em tensões de 2 a 5,5 volts;

• Freqüência de operação (clock) de até 20MHz.

Para manter o número de terminais pequeno e ao mesmo tempo comportar o

grande numero de periféricos, vários pinos do PIC16F877A são multiplexados, ou

seja, estes pinos possuem mais de uma função. A seleção da função depende do modo

de operação do PIC [8].

Page 29: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

26

A definição dos terminais do PIC16F877A é apresentada na Figura 9 [6]:

Figura 8 – Pinagem do PIC16F877A

3.2 O Padrão RS485

O padrão RS-485 é administrado pela Telecommunication Industry

Association (TIA) que é responsável pelo setor de comunicação da Electronic

Industries Alliance (EIA). Ele é chamado normalmente de RS485, entretanto seu

nome oficial é EIA-485, que reflete o nome do comitê que no ano 1998 o padronizou.

O padrão RS-485 tem como propósito garantir a imunidade do sinal quanto às

questões de ruído e distância, desta forma é o padrão mais utilizado em ambiente

industrial nos dias de hoje.

O funcionamento físico do padrão RS485 é baseado na transmissão diferencial

de dados, sendo um padrão ideal para transmissão em altas velocidades, longas

distâncias e em ambientes propícios a interferências eletromagnéticas. Este padrão

representa um baixo custo de implantação e pode transmitir dados a uma velocidade de

até 10 Mbps e podendo suportar distâncias de 1200 metros. Porém quanto maior for

esta distância, menor será sua taxa de transmissão, conforme é mostrado no gráfico da

Figura 9 [4].

Page 30: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

27

Figura 9 – Distancia x Taxa de transmissão.

Outra grande vantagem do padrão RS-485 é a facilidade de conversão do

padrão RS-232 ao RS-485, simplesmente utilizando um circuito integrado e poucos

componentes, com isso a compatibilidade com dispositivos já existentes no mercado é

mantida, visto que a maioria dos computadores possui portas de comunicação serial

RS-232.

O padrão RS-485 não define e nem recomenda nenhum protocolo de

comunicação [7].

A comunicação RS-485 é realizada através de dois fios, sendo um deles

chamado de A e o outro de B. Na Tabela 2 são descritos os estados lógicos de A e B

de acordo com o dado que o transmissor precisa enviar:

Tabela 2 – Tabela de estados lógicos de um transceptor RS-485.

Nota-se que quando o transmissor (INPUT D) fica em alto, a linha A fica mais

positiva que a B e o inverso ocorre quando o estado inverte. Há também uma linha de

Page 31: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

28

controle chamada DE (habilitação da transmissão) e quando a mesma fica em nível

lógico baixo, o barramento fica em alta-impedância.

Para que o receptor identifique um sinal válido, a diferença entre os terminais

A e B deve ser maior que 200 mV.

Na Figura 10 pode-se visualizar o gráfico que mostra a transmissão do

conteúdo binário 01001 a uma taxa de 9600 bps no barramento RS-485.

Figura 10 – Transmissão do conteúdo binário no barramento RS-485.

3.3 Definições do Projeto

O primeiro passo antes da implementação do hardware foi a elaboração de um

esboço de uma aplicação básica utilizando o micro-CLP. Neste esboço são definidos

os elementos envolvidos no processo e os padrões de comunicação a serem utilizados.

Uma idéia genérica pode ser observada na Figura 11.

Page 32: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

29

Figura 11 – Visão geral do sistema.

Com a visão geral do sistema em mente, o próximo passo foi definir a

arquitetura básica do hardware do micro-CLP de forma que atendesse os requisitos

para o perfeito funcionamento da aplicação apresentada na Figura 11.

Foram definidas as seguintes características para o hardware do CLP:

• 8 entradas digitais de 24V;

• 8 saídas digitais a relé;

• 1 porta de comunicação RS-485;

• 5 leds de indicação de status de sistema;

• 1 chave de controle de modo de operação.

3.4 Módulo CPU

No desenvolvimento do módulo CPU, utilizou-se um microcontrolador

PIC16F877A, um circuito integrado MAX485, uma memória EEPROM 24C16A,

Page 33: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

30

alem dos componentes auxiliares, tais como capacitores, resistores, cristal, conectores

e chaves. Uma visão geral da arquitetura do modulo CPU pode ser vista na Figura 12.

Figura 12 – Visão geral da arquitetura do módulo CPU.

O microcontrolador PIC16F877A é o principal elemento deste módulo,

responsável pela leitura das entradas, processamento do programa de aplicação,

atualização das saídas, além de gerenciar toda a comunicação entre o CLP e o

computador.

O modulo CPU é alimentado por uma fonte externa com tensão continua de

5V, cuja função é alimentar o circuito interno e fornecer a alimentação necessária aos

módulos de entradas e saídas. Um cristal oscilador 8Mhz está ligado ao

microcontrolador determinando a sua freqüência de operação.

3.4.1 Memória e Protocolo I2C

Para que os dados configurados pelo usuário não sejam perdidos quando

ocorre uma queda de energia no sistema, os mesmos devem ser gravados numa

memória não volátil.

Page 34: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

31

Na etapa de definição do projeto, uma idéia inicial foi a de utilizar a memória

EEPROM do microcontrolador para armazenar o programa de aplicação. Tal idéia

logo se mostrou insuficiente, pois haveria pouco espaço de memória de aplicação.

Cada instrução do programa de aplicação ocupa 4 bytes e a memória EEPROM do

microcontrolador possui 256 Bytes, desta forma, o usuário poderia escrever

programas, que compilados, gerasse um código com apenas 64 instruções.

A idéia de utilizar uma memória EEPROM 24C16A foi a solução que

possibilitou maior espaço para armazenamento do programa de aplicação

desenvolvido pelo usuário, alem de possibilitar a expansibilidade de memória do

sistema.

A comunicação entre o microcontrolador e a memória EEPROM 24C16A

presente no módulo CPU é feita com o uso do protocolo I2C.

Por ser um meio de comunicação síncrono, é fácil seu entendimento. O

controle é feito apenas sobre duas vias de comunicação, o SDA e SCL. A primeira

representa a via onde os dados serão transportados e a segunda porta o sinal de clock

responsável por controlar a transferência de informações entre os dispositivos.

Toda vez que é preciso realizar uma comunicação através do protocolo I2C, é

necessário que seja enviar um sinal de start sinalizando que esta está pronta para

efetuar a transmissão. Assim como o inicio da transmissão, o seu encerramento deve

ser indicado através de um sinal de stop. A Figura 13 ilustra o formato de transmissão

do protocolo I2C para gravar um byte na memória EEPROM [9].

Figura 13 – Comunicação I2C.

Page 35: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

32

Durante a comunicação, por serem sinais freqüentemente utilizados, foram

utilizadas funções pré-definidas no código do firmware para o envio dos sinais de start

e stop no barramento I2C. Outra função utilizada para a configuração da memória,

envia um fluxo de 8 bits através do barramento I2C, permitindo assim o envio de

valores através do barramento, possibilitando a configuração, envio de endereços e de

dados para a memória externa.

Ao final do envio de cada byte a memória exige que o dispositivo atuando

como master no circuito gere um nono pulso de clock para realizar a confirmação de

que os dados foram enviados. Esta confirmação acontece quando a memória abaixa o

nível de tensão do SDA durante o nono ciclo de clock gerado pelo microcontrolador

[9].

3.4.2 Porta de comunicação

A escolha do padrão RS-485 como meio físico de comunicação apresenta

várias vantagens, dentre elas, a construção de barramento simples, confiável e de baixo

custo. O transceptor escolhido, modelo MAX485 da Maxim, pode ser encontrado no

mercado com bastante facilidade.

Neste projeto, a taxa de transmissão adotada foi a de 9600 Kbps de forma que

a limitação da distância não foi um problema para esta aplicação.

As interpretações das especificações e as características do padrão variam de

fabricante para fabricante, porém essas especificações devem ser seguidas pelos

fabricantes dos chips que implementam o padrão RS-485. Uma aplicação típica da

rede é mostrada na Figura 14.

Page 36: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

33

Figura 14 – Aplicação típica da rede RS-485.

O meio físico implementado neste projeto é constituído por uma linha RS-485

que conecta o micro-CLP ao computador por meio de um conversor de comunicação

RS-232 / RS-485.

A rede desenvolvida suporta apenas comunicação half-duplex, ou seja, a

comunicação ocorre em uma direção por vez, numa configuração ponto a ponto.

Para ser possível a troca de mensagens via RS-485 entre o micro-CLP e o

computador, foi necessário a introdução do transceptor MAX485 como citado

anteriormente. A ligação física deste chip ao microcontrolador é feita ligando-se os

pinos 1 e 4 do MAX485 respectivamente nos pinos TX e RX do PIC16F877A.

O pino RC2 é configurado como sendo uma saída digital no microcontrolador,

e está conectado aos pinos 2 e 3 do MAX485 realizando o controle do fluxo de dados.

Enquanto o micro-CLP está em modo de execução, o computador é colocado

em modo de recepção por todo o tempo. Quando o micro-CLP é posto em modo de

programação, o microcontrolador envia uma mensagem permitindo que seja feito o

carregamento do programa de aplicação, então o mesmo é colocado em modo de

recepção e o computador passa a ser o transmissor.

A alimentação deste chip é feita de acordo com sua folha de dados [10].

Page 37: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

34

3.5 Módulo de Entradas Digitais

Este módulo foi desenvolvido de acordo com a definição feita na seção 3.3.

Ele possui 8 entradas digitais com um nível máximo de tensão de 24V.

Todo o circuito do modulo de entrada está eletricamente isolado dos

dispositivos externos através dos opto acopladores 4N25.

O circuito possui um conector, cujo cabo é conectado ao modulo CPU e pelo

qual recebe uma tensão contínua de 5V para sua alimentação. Por esse cabo, também,

em outras 8 vias, trafegam os dados para a comunicação com o microcontrolador.

As entradas estão configuradas como sinking de forma que os dispositivos de

campo precisam fornecer corrente ao circuito de entradas quando estão ativos.

Tomando como exemplo a entrada E1 da Figura 15, pode-se descrever o

comportamento do circuito quando é aplicada uma tensão de 24V a uma das entradas.

1. O led de indicação de status da entrada E1 acende, demonstrando que a

entrada está recebendo sinal do dispositivo externo.

2. É estabelecida uma corrente no led do opto acoplador proporcionando um

nível de luz suficiente para saturar o foto-transistor

3. O modulo de entrada envia através de um flat cable, nível lógico 1 para o

pino RB0 do microcontrolador localizado no modulo CPU.

Page 38: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

35

Figura 15 – Circuito elétrico das entradas.

3.6 Módulo de Saídas Digitais

Este módulo foi implementado seguindo as definições de projeto feitas na

seção 3.3. Foram projetadas 8 saídas digitais a relé com contatos normalmente abertos.

O circuito também é isolado de interferências externas por meio de opto acopladores.

O circuito possui um conector, cujo cabo é conectado ao modulo CPU e pelo

qual recebe uma tensão contínua de 5V para sua alimentação. Por esse cabo, também,

em outras 8 vias, trafegam os dados para a comunicação com o microcontrolador.

Pode-se descrever o comportamento do circuito quando a CPU habilita a saída

S1 da Figura 16.

1. O microcontrolador coloca nível alto de tensão (5V) ao pino RD0 que está

ligado ao canal 1 do módulo de saída.

2. É estabelecida uma corrente no led do opto acoplador proporcionando um

nível de luz no foto-transistor.

3. Ocorre a saturação do foto-transistor e conseqüentemente a saturação do

transistor BC549.

4. Então, são conduzidos 5V para a bobina do relé que imediatamente fecha o

contato da saída S1.

Page 39: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

36

Figura 16 – Circuito elétrico das saídas.

3.7 Conversor RS-232/RS-485

Para viabilizar os testes durante o desenvolvimento do projeto, possibilitando

a comunicação entre o micro-CLP e o computador, foi construído um conversor RS-

232/RS-485. Esta conversão exigiu o uso de um transceptor MAX232 para realizar a

conversão RS-232/TTL e outro transceptor MAX485 para converter TTL/RS-485.

Uma vez que a comunicação RS-485 escolhida é half-duplex, faz-se

necessário o uso de um sinal extra para controlar o fluxo entre o dispositivo

transmissor e o receptor, de modo a estabelecer uma sincronia no barramento,

possibilitando a comunicação. Para o computador, o sinal utilizado para controle de

fluxo é o RTS (Request To Send) disponível em um dos pinos da porta serial. Este

sinal é colocado em nível baixo (3 a 15 volts negativos) para receber dados do micro-

CLP. Quando o computador precisa transmitir dados, o RTS e colocado em nivel alto

(3 a 15 volts positivos), e então é possível iniciar o envio de dados para o micro-CLP.

Estes sinais do padrão RS-232 são convertidos para sinais TTL por meio do

circuito integrado MAX232 e ligado nas portas 6 e 7 do transceptor MAX485 que

implementa a comunicação com o micro-CLP através do padrão RS-485.

Page 40: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

37

Figura 17 – Circuito conversor RS-232/RS-485.

3.8 Fonte de Alimentação

Este projeto não contempla a construção de uma fonte de alimentação. A

alimentação de 5V necessária para a alimentação dos módulos do micro-CLP é

fornecida por uma fonte de computador.

3.9 Mapa de Conectores e Leds Indicadores de Status

Os módulos possuem pontos de entrada e saída de sinal, jumpers, conectores e

leds indicadores de status. A Figura 15 apresenta os módulos desenvolvidos com

todos os pontos mencionados acima, destacados e numerados. Em seguida, cada item

é apresentado em detalhe mostrando-se o que representam e como são utilizados. Os

elementos semelhantes dos diferentes canais são apresentados apenas uma vez.

Figura 18 – Mapa de conectores e leds dos módulos.

Page 41: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

38

1. Entrada do canal: Recebe sinal dos dispositivos externos.

2. Led indicador de canal ativo: Acende quando o canal é ativado por um

dispositivo externo.

3. Led indicador de módulo ligado: Indica que o módulo está sendo

alimentado.

4. Pinos de alimentação e dados: Pinos cujo cabo é conectado aos pinos

marcados com o numero 11 no módulo CPU. Dos 10 pinos, 8 são para

dados e 2 para a alimentação.

5. Jumper de escolha do modo de operação: Seleciona o modo de operação do

micro-CLP. Uma chave pode ser conectada a este jumper de forma que ao

fechar a chave, o micro-CLP entre em modo de execução, e ao abri-la o

micro-CLP entre no modo de programação.

6. Led indicador do modo de operação: Acende quando o micro-CLP está em

modo de execução.

7. Led indicador do modo de operação: Acende quando o micro-CLP está em

modo de programação.

8. Led indicador de status: Acende quando o micro-CLP está sendo

programado.

9. Led indicador de status: Acende durante a inicialização do sistema.

10. Conector de alimentação: É o ponto de entrada da alimentação que é

fornecida a todo o circuito.

11. Pinos de alimentação e dados: Pinos cujo cabo é conectado aos pinos

marcados com o numero 4 no módulo de entradas.

12. Pinos de alimentação e dados: Pinos cujo cabo é conectado aos pinos

marcados com o numero 14 no módulo de saída.

13. Conector de comunicação: Possui dois canais, A e B, sendo os canais de

comunicação RS-485 com o dispositivo externo.

Page 42: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

39

14. Pinos de alimentação e dados: Pinos cujo cabo é conectado aos pinos

marcados com o numero 12 no módulo CPU. Dos 10 pinos, 8 são para

dados e 2 para a alimentação.

15. Led indicador de módulo ligado: Indica que o módulo está sendo

alimentado.

16. Led indicador de canal ativo: Acende sempre que o canal está acionado.

17. Saída do canal: Bornes ligados diretamente aos terminais dos relés.

Page 43: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

40

4 DESENVOLVIMENTO DO FIRMWARE

O firmware foi desenvolvido em linguagem C para microcontroladores, para

tanto, utilizou-se a ferramenta mikroC PRO, compilador desenvolvido pela empresa

Mikroelektronika.

O firmware está localizado na memória ROM do microcontrolador e tem por

finalidade determinar como o micro-CLP deve operar, incluindo a execução do

programa de aplicação, gerenciamento da comunicação I2C com a memória EEPROM

e atualização dos módulos de E/S. Também têm como função gerenciar a comunicação

RS-485 através da interface de comunicação USART do microcontrolador.

4.1 Instruções

A elaboração das instruções internas do micro-CLP foi baseada na

configuração do hardware e definida de acordo com as funções projetadas na seção

5.3.2. O formato das instruções é apresentado na Tabela 3.

Byte 0 Byte 1 Byte 2 Byte 3

Opcode Operando 1 Operando 2 Operando 3 Tabela 3 – Formato das instruções internas do micro-CLP.

Cada instrução é composta por 4 bytes, o primeiro byte é o código da

operação, denominado Opcode, e contem o código da operação a ser realizada. Os

bytes seguintes são os operandos e podem especificar endereços de E/S, dados literais

ou endereços de memória. Na Tabela 4 são apresentadas todas as instruções projetadas

para o micro-CLP.

Page 44: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

41

Operação Instrução

Byte 0 (Opcode) Byte 1 Byte 2 Byte 3

AND 00000001 Op1 Op2 Op3

OR 00000010 Op1 Op2 Op3

XOR 00000011 Op1 Op2 Op3

NOT 00000100 Op1 Op2 --

FF-SR 00000111 Op1 Op2 Op3

MOVE 00001000 Op1 Op2 --

FF-RS 00001001 Op1 Op2 Op3

TON 12 ~ 133 Op1 Op2 --

TOF 134 ~ 254 Op1 Op2 -- Tabela 4 – Lista de instruções.

O modo de endereçamento de cada operando é definido de acordo com seu

valor. A Tabela 5 apresenta a relação dos modos de endereçamento de acordo os

valores do operando.

Valor do operando Modo de endereçamento Descrição

1 ~ 8 Direto E/S do micro-CLP 128 ~ 192 Indireto Endereços de posição no vetor

auxiliar de memória 240 e 241 Constante literal 240 = falso

241 = Verdadeiro Tabela 5 – Modos de endereçamento.

Quando o valor do operando corresponde ao modo de endereçamento direto, o

microcontrolador faz a leitura ou a escrita diretamente nas entradas e saídas do micro-

CLP. Se o valor do operando corresponde ao modo de endereçamento indireto, o

microcontrolador faz a leitura ou escrita em uma das 64 posições de memória

reservada para manipulação da operação MOVE.

Operandos com o conteúdo 240 e 241 representam respectivamente os valores

verdadeiro e falso. Este valor é atribuído diretamente à operação.

Page 45: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

42

Sendo que cada instrução é composta por 4 bytes e a capacidade máxima de

armazenamento da memória EEPROM é de 2048 bytes, é possível o carregamento de

um programa de aplicação com até 512 instruções.

As instruções cujo opcode possui valores entre 12 e 133 são interpretadas

pelo microcontrolador como sendo uma instrução do tipo TON com o tempo pré-

selecionado equivalente a expressão (opcode - 12). Da mesma forma, instruções com

opcode contendo valores entre 134 a 254 são interpretados pelo microcontrolador

como sendo uma instrução do tipo TOF com o tempo pré-selecionado equivalente a

expressão (opcode - 134). Isto significa que podemos pré-selecionar valores de tempo

limitados a 120 segundos.

O operando 3 dos temporizadores poderá ser útil para o desenvolvimento

futuro de funções de temporização com pré-seleção de tempos superiores a 120

segundos.

4.2 Cabeçalho

Para a manipulação das funções de temporização, reservou-se uma estrutura

de dados com capacidade de armazenamento de até 10 temporizadores. Para o

armazenamento dos valores dos operandos em modo de endereçamento indireto,

reservou-se 64 bytes na memória de operação. A estas posições reservadas na memória

do microcontrolador deu-se o nome de cabeçalho.

As operações de escrita e leitura do cabeçalho ocorrem ao longo da execução

das instruções. Quando o ciclo de varredura é executado pela primeira vez, todas as

instruções de temporização são identificadas e atribuídas a uma das estruturas

reservadas para os temporizadores, passando o valor de tempo pré-selecionado para

determinados parâmetros da estrutura. A partir de então, todas as operações

necessárias para temporização, tais como o incremento e decremento dos

temporizadores são baseados na escrita e leitura de valores nessas estruturas.

A variável reservada para os operandos endereçados indiretamente é acessada

toda a vez que uma instrução contém um operando correspondente ao modo de

Page 46: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

43

endereçamento indireto, podendo ser lida ou escrita a qualquer momento durante a

execução do programa de aplicação.

4.3 Interrupções

Uma interrupção é um evento que força uma chamada a uma seqüência de

dados que normalmente é definida como uma rotina ou serviço de interrupção. Essas

interrupções podem ser geradas por eventos externos ou internos. Fontes típicas de

interrupção pode ser um sinal externo ligado ao pino RB0 previamente configurado,

uma mudança de estado nas entradas RB4 à RB7, recepção de um dado pelo periférico

USART ou o overflow de algum contador na mudança de valor de 0xFF para 0x00. Na

interrupção, o processador salva o endereço de retorno na pilha e o controle de

programa é redirecionado à rotina de serviço de interrupção [8].

Quando ocorre uma interrupção no microcontrolador, o programa sempre

desvia para o mesmo endereço. Porem, na implementação do firmware foram

utilizadas duas interrupções, sendo uma pela USART e outra pelo TIMER1. Portanto

fez-se necessário identificar qual fonte gerou a interrupção, para que seja feito o seu

tratamento adequado.

Utilizou-se a interrupção pela USART, para que, quando uma solicitação de

carregamento do programa de aplicação for efetuada pelo software de programação, a

mensagem com a solicitação seja imediatamente armazenada no microcontrolador,

sem correr o risco da mensagem ser perdida total ou parcialmente por estar o

microcontrolador ocupado com outra tarefa. A interrupção pelo TIMER1, ocorre a

cada 5ms, e é utilizada para determinar o tempo do ciclo de varredura.

4.4 Comunicação

Conforme mencionado na seção 4.3, a comunicação entre o computador e o

microcontrolador gera uma interrupção pela USART, que imediatamente armazena o

conteúdo dos dados da mensagem enviada pelo computador em uma variavel.

As mensagens vindas do computador possuem 7 bytes, porém apenas 2 deles

contém efetivamente os dados recebidos, um deles contém o valor a ser gravado na

Page 47: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

44

memória EEPROM durante a programação do micro-CLP e o segundo realiza o

controle de recebimento de dados (CR). A Tabela 6 mostra os valores utilizados para o

controle de envio de dados.

Valor de CR Descrição

0xFD Solicitação de Carregamento

0xFF Inicia o carregamento das instruções.

0xFE Fim da gravação das instruções

Tabela 6 – Valores utilizados no controle de envio de dados.

As mensagens enviadas pelo micro-CLP ao computador são formadas por 4

bytes de conteúdo de dados, o primeiro contém o modo de operação atual, o segundo

realiza o controle de envio de dados (CE), o terceiro informa os valores das entradas e

o quarto informa os valores atuais das saídas do micro-CLP. A Tabela 7 mostra os

valores utilizados para o controle de envio de dados.

Valor de CE Descrição

0x40 Permissão de Carregamento

0x01 Indica o envio dos valores de E/S e

modo de operação.

0x3F Confirma o fim da gravação das

instruções

Tabela 7 – Valores utilizados no controle de recebimento de dados.

A comunicação entre o micro-CLP e o computador durante o carregamento do

programa de aplicação é mostrada no fluxograma da Figura 19.

Page 48: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

45

Figura 19 – Fluxograma da comunicação durante o carregamento do micro-CLP.

Page 49: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

46

4.5 Principais Rotinas

Nesta seção analisaremos algumas das principais rotinas do firmware

executado pelo microcontrolador. A Figura 20 apresenta o fluxo de execução do

firmware do micro-CLP.

Figura 20 – Fluxo de execução do firmware.

Inicialmente são configurados alguns parâmetros de hardware do

microcontrolador e periféricos a serem utilizados, tais como a comunicação I2C,

TIMER1 e o módulo UART responsável pela comunicação serial com o transceptor

MAX485.

Page 50: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

47

Na rotina principal são inicializados os conteúdos das variáveis, é feita a

inicialização do micro-CLP desativando todas as saídas, e os leds de indicação são

seqüencialmente acionados, um a cada vez, indicando ao usuário a inicialização do

micro-CLP. Então é realizada a primeira leitura das entradas armazenando-as na

variável de imagem das entradas.

Depois de inicializar e ler todas as entradas segue-se para o trecho em que é

feita a verificação da posição da chave de seleção do modo de operação. Se esta chave

encontra-se em modo de execução, inicia-se o ciclo de varredura executando os

seguintes passos.

1. O Contador de Programa (CP) recebe o endereço da primeira instrução.

2. A instrução contida no endereço apontado por CP é transferido da memória

EEPROM externa para a memória RAM do microcontrolador.

3. O Opcode da instrução é reconhecido direcionando o programa para o

trecho de tratamento da operação.

4. É identificado o modo de endereçamento de cada operando.

5. Os valores apontados pelos operandos são passados como parâmetros da

operação a ser realizada.

6. O resultado da operação é armazenado no bit da variável de imagem das

saídas indicado pelo operando.

7. A saída do micro-CLP é atualizada de acordo com a variável de imagem

das saídas.

8. O microcontrolador envia uma mensagem para o computador, cujo

conteúdo é composto pelos estados das entradas e saídas e o modo de

operação.

9. O CP é automaticamente incrementado apontando para o endereço da

próxima instrução a ser executada.

Page 51: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

48

O contador de programa é automaticamente incrementado para cada ciclo de

instrução de forma que as instruções são executadas seqüencialmente até que seja

encontrado o fim do programa identificado por uma seqüência de 4 bytes com valores

zero. Então, o CP retorna a zero fazendo com que a primeira instrução do programa de

aplicação seja novamente executada.

Para o controle do tempo de varredura (scan time) do micro-CLP, utilizou-se a

interrupção pelo TIMER1 do microcontrolador. Configurou-se o TIMER1 para gerar

uma interrupção que executa uma rotina cuja função é incrementar uma variável

chamada CONT a cada 5ms. O programa entra em estado de espera enquanto esta

variável possui valor menor que 40. Quando CONT é igual a 40, o programa

prossegue com a execução das rotinas seguintes, garantindo que cada ciclo de

varredura seja executado exatamente em 200ms.

Se a varredura do programa de aplicação é concluída em um tempo inferior ao

scan time, o microcontrolador fica em espera até que se passe 200ms, para então

realizar a atualização das saídas e o envio das mensagens para o computador. Ao final

de cada ciclo de varredura a variável CONT é zerada para que o ciclo seguinte seja

concluído com o mesmo tempo, 200ms. O fluxograma da Figura 21 ilustra o

funcionamento do controle do Scan Time.

Figura 21 – Funcionamento do controle do Scan Time.

Page 52: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

49

Ao final de cada ciclo de varredura, é realizada uma nova verificação da

posição da chave de modo de operação. Se a chave encontra-se em modo de

programação, as etapas seguintes são realizadas.

1. As saídas recebem valor zero e é enviado o modo de operação atual para a

porta de comunicação avisando que o micro-CLP está pronto para ser

programado.

2. O programa de execução entra em estado de espera aguardando pela

solicitação de programação enviada pelo software de programação.

3. O software de programação solicita o carregamento do programa de

execução.

4. O microcontrolador concede a autorização de carregamento e o led de

indicação de carregamento acende sinalizando o inicio da programação,

neste momento, todos os bytes enviados pelo software de programação são

armazenados na memória EEPROM até que o software sinalize o fim do

carregamento.

5. São carregados 4 bytes com valor zero na memória, logo após a ultima

instrução carregada sinalizando que naquele ponto está o fim do programa

de execução.

6. O microcontrolador envia uma mensagem sinalizando a fim do

carregamento e o sucesso da operação, conseqüentemente o software emite

uma mensagem sinalizando que o carregamento foi concluído com êxito.

A partir deste ponto, o programa de aplicação está completamente carregado

na memória EEPROM e o micro-CLP pronto para entrar em modo de execução.

Page 53: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

50

5 DESENVOLVIMENTO DOS SOFTWARES

O primeiro passo para o desenvolvimento dos softwares de supervisão e

programação foi a definição da linguagem de programação a ser utilizada.

A escolha da linguagem de programação para realizar a interface com o

usuário foi baseada em uma das principais características do C++, o suporte a

programação orientada a objetos. Desta forma, é possível o desenvolvimento de

softwares que proporcionam uma aparência sofisticada e ao mesmo tempo uma

interface fácil, intuitiva e amigável ao usuário.

5.1 Linguagem C++

O C++ foi desenvolvido por Bjarne Stroustrup durante a década de 1980 com

o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade

com esta linguagem. A linguagem C serviu de inspiração para o desenvolvimento da

linguagem C++ por possuir uma proposta de uso genérico, ser rápida e portável para

diversas plataformas.

A linguagem C++ pode ser considerada como uma linguagem de nível

intermediário, pois apensar de utilizar um dialeto de nível alto, possibilita ao

programador facilidades para se trabalhar em nível baixo, como manipulação de bits,

bytes e endereços de memória de maneira direta, sem recorrer a abstrações

apresentadas por outras linguagens de alto nível [11].

As principais vantagens do C++ são listadas a seguir:

• Possibilidade de programação de alto e baixo nível.

• Alta flexibilidade, portabilidade e consistência.

• Compatibilidade com C, resultando em vasta base de códigos.

• Ampla disponibilidade e suporte, devido principalmente à grande base de

desenvolvedores.

• Não está sob o domínio de uma empresa, ao contrario de linguagens como

Java (Sun) e Visual Basic (Microsoft).

Page 54: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

51

A linguagem C++ é uma das linguagens que suportam vários paradigmas.

Sendo uma evolução da linguagem C, ela suporta inteiramente o paradigma da

programação estruturada. Além disso, ela suporta outros paradigmas como a

programação procedural, a programação genérica, abstração de dados e a programação

orientada a objetos [11].

Dentre estes paradigmas, o mais utilizado atualmente é a Programação

Orientada a Objetos, ou simplesmente OOP (Object Oriented Programming).

A idéia básica da OOP é criar um conjunto de objetos para modelar um

sistema. Estes objetos são independentes entre si, possuindo responsabilidades e

funções distintas no programa como um todo, mas que se comunicam entre si através

do envio e recebimento de mensagens. A OOP é especialmente útil para grandes

programas que se beneficiam com a modularidade oferecida por este paradigma,

dividindo o programa em vários módulos independentes, aumenta-se a flexibilidade e

a facilidade para manutenção do programa como um todo [11].

5.2 Ambientes de Desenvolvimento

Ambientes de Desenvolvimento Integrado (IDE - Integrated Development

Enviroments) são programas que auxiliam os desenvolvedores no processo de criação

de aplicativos. Esses aplicativos podem ser desenvolvidos utilizando apenas um editor

de texto e um compilador de linha de comando, mas, até mesmo para pequenas

aplicações, gerar interfaces gráficas e código repetitivo tornam a tarefa extremamente

cansativa e passível de erros. Os IDEs comumente oferecem, entre outras facilidades,

fácil acesso às bibliotecas de componentes gráficos através de barras de ferramentas

que permitem arrastar e soltar os objetos nos formulários, verificação e colorização de

sintaxe e compilação automatizada [12].

5.2.1 O Ambiente de Desenvolvimento C++ Builder

O C++ Builder é um ambiente de desenvolvimento de aplicações baseado no

conceito denominado RAD (Rapid Application Development – Desenvolvimento

Page 55: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

52

Rápido de Aplicação), isto permite ao programador criar todas as telas do aplicativo de

uma forma totalmente visual, apenas adicionando os objetos gráficos ao formulário.

Após a criação da interface do aplicativo, o programador pode desenvolver a

lógica e o processamento das informações do usuário através da inclusão do código de

programação em C++.

Alem das características acima, por ser totalmente orientado a objeto, o C++

Builder possibilita a reutilização de códigos em varias outras aplicações através de

recursos que permitem transformar essas rotinas em componentes.

Os arquivos executáveis gerados pelo C++ Builder são auto-suficientes, ou

seja, não precisam de bibliotecas de ligação dinâmica (DLL – Dynamic link library)

para interpretar o código compilado [12].

5.3 Software de Programação em FBD

Todo o software de programação foi desenvolvido em linguagem C++,

utilizando-se o ambiente de desenvolvimento Borland C++ Builder 6.

Para a implementação dos recursos gráficos oferecidos pela linguagem FBD

utilizou-se a VCL (Visual Component Library - Biblioteca de Componentes Visuais)

disponível no C++ Builder, alem de componentes externos.

O uso de componentes facilitou a programação, visto que todos os objetos já

estão prontos, disponibilizando mais tempo para o desenvolvimento da lógica.

O componente ComPort 3.0 foi utilizado para estabelecer a comunicação

serial entre o PC e o micro-CLP. Ele oferece todo o suporte necessário para realizar a

comunicação serial, com um equipamento externo, inclusive o controle do sinal

Request to Send (RTS), utilizado para o controle de sentido de transmissão de

dados necessário para emprego do padrão RS485.

5.3.1 Definição do Layout

O desenvolvimento de qualquer programa criado a partir de uma linguagem

orientada a objetos torna necessária uma definição inicial do layout do aplicativo.

Page 56: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

53

Para a definição do layout, foram analisadas diversas características desejadas

em um software de programação de CLP, obedecendo aos padrões de interface

estabelecidos pela norma IEC 61131-3.

Na Figura 22 é mostrado o layout final do software de programação.

Figura 22 – Layout final do software de programação em FBD.

O software é composto por três formulários. O primeiro formulário

corresponde a janela principal do aplicativo, o segundo possui a área de

desenvolvimento do programa em FBD e o terceiro contêm as propriedades de

comunicação e carregamento do programa de aplicação no micro-CLP.

Uma vez definido o layout, foi necessário encontrar uma solução que

possibilitasse desenhar os blocos funcionais e as ligações entre eles, assim como as

atribuições das variáveis e o preenchimento de parâmetros em determinados blocos.

Após pesquisar e analisar diversos componentes do C++ builder disponíveis

na rede mundial de computadores, optou-se por utilizar a versão 1.7 do componente

Page 57: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

54

Diagram Studio da TMS software. Esse componente fornece todas as ferramentas

necessárias para a criação dos diagramas de blocos e linhas de conexão em tempo de

execução do programa [13].

5.3.2 Funções Projetadas

Na seção 2.4.1 foi apresentado o conjunto básico de blocos funcionais da

linguagem FBD. Estes blocos são freqüentemente utilizados na definição de blocos

mais complexos.

Neste projeto, foram desenvolvidos apenas os blocos funcionais básicos,

conforme é mostrado na Figura 23.

Figura 23 – Blocos funcionais desenvolvidos.

Optou-se por utilizar nomenclaturas de funções em inglês devido ao fato de

ser a mais comumente utilizada nos softwares de programação de CLP disponíveis no

mercado.

Também foram definidas as variáveis de representação direta, ou seja,

variáveis de leitura e escrita de dados em posições conhecidas de memória, tais como

entradas, saídas e constantes discretas.

Page 58: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

55

Os blocos funcionais e as variáveis de entradas e saídas foram desenvolvidos

com base em um método disponível no objeto atDiagram do componete Diagram

Studio. Este método possibilita a criação de um arquivo com todos os objetos do

diagrama em formato de texto.

Desta forma, para cada bloco funcional, foram criados arquivos com todos os

parâmetros do objeto FBD. Nestes parâmetros é informado o nome do bloco, titulo do

bloco, dimensão, posição, pontos de conexão e nome dos pontos de conexão.

Quando um bloco funcional é adicionado ao diagrama de blocos pelo usuário,

é executada a função ADD_BLOCK(). Esta função executa o método que salva o

desenho atual em um arquivo temporário em formato de texto, em seguida adiciona no

final deste arquivo os parâmetros contidos no arquivo fonte do bloco escolhido, e para

finalizar a inserção do novo bloco, executa outro método do atDiagram que permite a

importação do arquivo temporário e todos os objetos nele declarado, concluindo a

inserção do novo bloco funcional ao formulário de desenho.

5.3.3 Canais Disponíveis para a Programação

Com base na arquitetura definida na seção 3.3, foram criados 8 variáveis de

entrada e 8 variáveis de saídas, além de constantes do tipo booleano.

A Figura 24 mostra a representação gráfica dessas variáveis no software de

programação. Os valores reconhecidos pelas variáveis são descritos a seguir.

• E1 à E8 – Entradas físicas do micro-CLP;

• S1 à S8 – Saídas físicas do micro-CLP;

• B0 e B1 – Constantes do tipo booleano;

Figura 24 – Representação gráfica das entradas e saídas.

Page 59: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

56

5.3.4 Desenhando o FBD

Os objetos da linguagem FBD, tais como funções, variáveis e linhas de

conexão podem ser adicionados ao formulário de desenho através do menu mostrado

da Figura 25. Este menu é exibido ao clicar com o botão direito do mouse sobre

qualquer parte do formulário de desenho através do evento OnMouseDown do objeto

atDiagram. Alem disso, este menu disponibiliza as ferramentas básicas de edição, tais

como editar e excluir.

Figura 25 – Layout final do software de programação em FBD.

Os blocos funcionais podem ser interligados através da ferramenta LINHA,

permitindo a composição da lógica de controle desejada.

5.3.5 Compilação e Carregamento

A compilação é a etapa em que o software lê o programa fonte escrito em

linguagem FBD e o traduz para outro programa equivalente, porém escrito em uma

linguagem de seqüência de bytes, chamado programa objeto.

Todo o processo de compilação é baseado na identificação e interpretação das

linhas de conexão.

Quando uma conexão entre objetos é efetuada, é criada uma instância da

classe atDiagramLine, onde os nomes dos dois objetos interligados são guardados em

uma propriedade deste objeto chamada LinkPoint.

Page 60: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

57

Ao iniciar a compilação, a função Compilar_Prog() primeiramente utiliza o

método SaveToFile(arquivo) do componente Diagram Studio para criar um arquivo

temporário contendo todos os objetos FBD inseridos pelo usuário, inclusive as

instancias de atDiagramLine que contem todas as informações de interligação entre

objetos. A partir de então, o processo de compilação é dividido em varias partes, como

é mostrado na Figura 26.

Interface de programação em

linguagem FBD

Analise Léxica

Analise Sintática

Analise Semântica

Geração do programa em código

de máquina

Envio do código de máquina pela

porta de comunicação serial

Figura 26 – Etapas de compilação e carregamento do programa de aplicação.

Na análise léxica o analisador léxico recebe como entrada o próprio programa

fonte e identifica os elementos mais básicos do programa, como nomes das variáveis e

funções. O resultado deste processo é um vetor de tokens, onde cada um dos tokens é

um representante de um dos objetos do programa fonte.

Na análise sintática o analisador sintático recebe como entrada o vetor de

tokens gerado pelo analisador léxico. Sua função é identificar as interligações entre os

objetos FBD e agrupar os tokens de acordo com estas interligação, determinando a

estrutura do programa-fonte.

Na análise semântica o analisador semântico recebe como entrada os dados

estruturados pela analise sintática. Nessa etapa são realizadas todas as verificações no

Page 61: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

58

programa, como por exemplo, a verificação se um operador recebeu o número correto

de operando.

Por ultimo, na fase de geração do código, os dados já processados pelas fases

anteriores são subdivididos em instruções de 4 bytes, cuja estrutura é apresentada na

seção 4.1.

Com o programa objeto criado, inicia-se a etapa de carregamento no micro-

CLP. Nessa etapa, os bytes do programa objeto são enviados um a um para a memória

EEPROM do micro-CLP através da comunicação serial estabelecida pelo componente

Com Port 3.0.

5.4 Software Supervisório

O software supervisório foi desenvolvido no ambiente de desenvolvimento

Borland C++ Builder 6 utilizando a linguagem C++.

Assim como no desenvolvimento do software de programação, utilizou-se a

VCL do C++ Builder, alem de componentes adicionais provendo todos os recursos

necessários, facilitando o desenvolvimento das funcionalidades básicas de um software

de supervisão.

5.4.1 Sistema de Supervisão e Aquisição de Dados

Os sistemas SCADA (Supervisory Control and Data Acquisition) são sistemas

destinados à supervisão, controle e aquisição de dados de plantas industriais,

fornecendo ao operador a interação com o processo através de suas interfaces gráficas

[3].

O sistema supervisório possui dois modos de funcionamento, o modo de

desenvolvimento e o modo de execução.

No modo de desenvolvimento é disponibilizado um ambiente para criação de

telas gráficas onde as representações do processo poderão ser desenhadas e as

variáveis de processo poderão ser vinculadas a um objeto gráfico.

Page 62: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

59

Em modo de execução, todas as telas e funcionalidades programadas no modo

de desenvolvimento são executadas interagindo com o CLP em tempo real, mostrando

o sistema em operação [3].

5.4.2 Definições

A definição das funcionalidades básicas é o ponto principal no

desenvolvimento do supervisório. Embora os atuais softwares de supervisão permitir o

controle das variáveis de processo, dentre muitos outros recursos avançados, optou-se

em implementar apenas os recursos de supervisão devido ao fato do projeto

contemplar apenas variáveis discretas, tornando desnecessários os ajustes de variáveis

em tempo real.

A interface final do software de supervisão é mostrada na Figura 27.

Figura 27 – Layout final do software de supervisão.

Toda a área de edição gráfica está baseada no componente Diagram Studio 1.7

da TMS software. Esse componente fornece todo o suporte necessário para o

desenvolvimento das telas de supervisão.

Page 63: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

60

Em modo de desenvolvimento, o componente Diagram Studio é configurado

para permitir a criação e a alteração dos objetos de desenho da interface gráfica. O

usuário pode então inserir, modificar e excluir qualquer objeto.

O principal recurso desenvolvido permite a inserção de variáveis no

supervisório, proporcionando o acompanhamento em tempo real dos valores das

entradas e saídas do micro-CLP. Em modo de execução, essas variáveis são animadas

alterando sua cor de acordo com o estado das E/S referenciadas.

5.4.3 Comunicação com o CLP

O software de supervisão, assim como o software de programação, utiliza o

componente ComPort 3.0 para realizar a comunicação entre o micro-CLP e o

computador.

A cada ciclo de varredura, o micro-CLP envia uma mensagem com

informações dos valores das E/S e o modo de operação a qual ele se encontra. Estas

mensagens são interpretadas e os valores das entradas, saídas e modo de operação do

micro-CLP são identificados e armazenados na variável de imagem no supervisório.

Caso ocorra timeout, ou seja, o supervisório não receba nenhuma mensagem originada

do micro-CLP durante um intervalo de 3 segundos, uma mensagem com uma

exclamação é exibida na tela sinalizando a falha de comunicação.

Para a atualização das telas do supervisório, foi utilizado um Timer que

executa uma rotina de atualização a cada 50ms. Nesta rotina de atualização, os valores

da variável de imagem são utilizados para atualização das cores dos objetos na tela do

supervisório.

O fluxograma da Figura 28 apresenta o funcionamento básico do software de

supervisão.

Page 64: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

61

Figura 28 – Fluxograma do funcionamento básico do software de supervisão.

Page 65: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

62

6 TESTES E RESULTADOS

Ao longo do desenvolvimento do hardware e dos softwares foram realizados

diversos testes individuas para validar o funcionamento de cada um deles. Neste

capitulo são apresentados os testes realizados com o objetivo de analisar o

funcionamento do sistema como um todo.

Para isso, utilizou-se uma aplicação de controle de um sistema de

despoeiramento simulado em uma maquete contendo os principais tipos de atuadores e

sensores utilizados no sistema de escala real.

As telas de supervisão e lógicas de controle foram desenvolvidas com base no

funcionamento dos sistemas de despoeiramento utilizados nas usinas de pelotização da

VALE.

6.1 Sistema de Despoeiramento

A maquete desenvolvida está baseada em um sistema de despoeiramento

denominado Coluna Lavadora.

A Coluna Lavadora é um equipamento anti-poluente, que tem por tarefa,

succionar material particulado nos pontos geradores, diluir em água e encaminhá-lo

para reaproveitamento em alguma parte do processo, possibilitando a redução da

emissão de particulados e a reciclagem do material capturado.

6.2 Programação da Lógica em FBD

Inicialmente, foram definidas as entradas e saídas a serem utilizadas no

controle do equipamento. A descrição das entradas e saídas são apresentadas na Tabela

8 e Tabela 9.

Page 66: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

63

Entrada do micro-CLP Sensor / Chave Componente do equipamento E1 Nível (25%) Tanque coletor E2 Nível (50%) Tanque coletor E3 Nível (75%) Tanque coletor E4 Nível (100%) Tanque coletor E5 Nível (40%) Tanque reservatório E6 Nível (70%) Tanque reservatório E7 Nível (90%) Tanque reservatório E8 Chave de Emergência --

Tabela 8 – Descrição das entradas do micro-CLP.

Saída do micro-CLP Atuador Componente do equipamento S1 Motor 1 Ventilador S2 Motor 2 Misturador de polpa S3 Bomba 1 Bomba de abastecimento de água ao tanque

coletor S4 Bomba 2 Bomba de recalque de polpa S5 Bomba 3 Bomba de abastecimento de água ao tanque

reservatório

Tabela 9 – Descrição das saídas do micro-CLP.

Após a definição da configuração das entradas e saídas, estudou-se a lógica de

funcionamento da coluna lavadora e desenvolveu-se o programa em linguagem FBD,

conforme é apresentado na Figura 29.

Page 67: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

64

Figura 29 – Programa FBD do controle da coluna lavadora.

6.3 Criação da Tela de Supervisão

A tela de supervisão foi desenhada com base na estrutura real da coluna

lavadora, podendo ser vista na Figura 30.

Figura 30 – Telas de supervisão da coluna lavadora.

Page 68: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

65

6.4 Resultados

Para a validação final do sistema, foi montada uma plataforma de teste

composta por todos os elementos desenvolvidos ao longo do projeto, tais como o

micro-CLP, o conversor RS-232/RS485, o software de supervisão e o software de

programação em FBD. Na Figura 31 pode-se visualizar a plataforma montada para a

realização dos testes.

Figura 31 – Plataforma de testes.

A maquete de simulação do sistema de despoeiramento foi projetada

utilizando bombas de aquário com potência de 3,8W e tensão de 127VAC, coolers de

12Vdc, além de sensores baseados na condutividade ligados a um circuito comparador

que gera 5V quando os sensores estão em contato com a água.

Durante os testes, constatou-se a ocorrência de interferências no canal de

comunicação do micro-CLP quando as cargas indutivas eram acionadas. Este

Page 69: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

66

problema logo foi solucionado com a utilização de snubbers, circuitos RC conectados

as saídas usadas para o acionamento das bombas.

O comportamento do sistema foi analisado e os resultados são descritos a

seguir.

• A bomba de abastecimento de água do tanque reservatório é acionada e só

desliga quando o nível atinge 90%, a partir deste ponto, ela só volta a ser

acionada quando o nível do tanque é inferior a 70%, caracterizando uma

histerese;

• Quando o tanque reservatório atinge 40%, o ventilador é ligado e após 10

segundos é acionada a bomba de abastecimento de água do tanque coletor;

• Quando o nível do tanque coletor atinge 25%, o misturador de polpa é

acionado.

• Quando o nível do tanque coletor atinge 75%, a bomba de recalque de

polpa é acionada e só desliga quando o nível do tanque coletor se encontrar

abaixo de 50%.

• Se por algum motivo o nível do tanque coletor alcançar 100%, a bomba de

abastecimento de água do tanque coletor é desligada.

• Quando a chave de emergência é pressionada por 8 segundos, inicia-se o a

seqüência de desligamento do sistema. O ventilador e as bombas são

desligados, porem o misturador de polpa e a bomba de recalque de polpa

continuam ligados até que o nível do tanque coletor se torne menor que

25%, que em seguida são desligados.

Pode-se perceber que os resultados apresentados pelo sistema durante a

realização dos testes são exatamente compatíveis com a lógica de controle

implementada na seção 6.2.

O software de supervisão possibilitou o acompanhamento do sistema em

tempo real e seu comportamento também foi exatamente como o esperado.

Page 70: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

67

Em um modo geral, o trabalho atingiu os seus objetivos, os resultados foram

satisfatórios. O correto funcionamento do sistema desenvolvido foi comprovado por

meio dos testes realizados.

O micro-CLP desenvolvido é apresentado na Figura 32.

Figura 32 – Plataforma de testes.

Page 71: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

68

7 CONCLUSÕES

Através deste trabalho foi possível constatar que o universo de aplicações dos

controladores lógicos programáveis está em grande expansão, impulsionando o estudo

e desenvolvimento de dispositivos que atendam a diversos tipos e níveis de

complexidade.

Neste projeto foi possível construir um micro-CLP com um custo reduzido e

desempenho capaz de satisfazer os requisitos de controle dos sistemas de baixa

complexidade. A utilização de um microcontrolador como o principal elemento do

sistema, mostrou-se suficientemente robusto e atendeu a todas as expectativas, mesmo

utilizando o mínimo seus recursos disponíveis.

O projeto também contemplou a construção de um software de supervisão e o

desenvolvimento de um software de programação em linguagem FBD.

Embora tenham sido projetadas apenas as funções básicas de um controlador

lógico programável, foi possível desenvolver lógicas de controle com níveis de

complexidade acima do previsto com resultados extremamente satisfatórios.

Este projeto reuniu uma enorme gama de conhecimentos adquirido ao longo

do curso de Engenharia Elétrica com habilitação em computação, dos quais podemos

citar os conhecimentos de eletrônica e sistemas embutidos ao construir o hardware,

estrutura de dados e compiladores, ao elaborar os softwares, automação e

instrumentação, ao realizar as definições e aplicações do projeto, entre outras

disciplinas que indiretamente contribuíram para o desenvolvimento do projeto.

De acordo com os resultados dos testes, pode-se dizer que o objetivo do

projeto foi alcançado. Entretanto, mesmo com os resultados satisfatório, este projeto

demonstra ter um grande potencial de aplicações, possibilitando a inclusão de diversos

novos recursos e ferramentas.

Desta forma sugere-se como projetos futuros a implementação de canais e

funções que manipulam dados analógicos, expansão do numero de entradas e saídas,

comunicação utilizando a tecnologia ethernet e compatibilidade com os protocolos de

redes industriais, como o Modbus.

Page 72: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

69

APÊNDICE A – CIRCUITO DO MÓDULO CPU

Page 73: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

70

APÊNDICE B – CIRCUITO DO MÓDULO DE ENTRADAS

Page 74: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

71

APÊNDICE C – CIRCUITO DO MÓDULO DE SAÍDAS

Page 75: Desenvolvimento de Um Micro CLP Com Softwares Supervisao Programacao Em FDB Renan Rodrigues Ribeiro

72

REFERÊNCIAS BIBLIOGRÁFICAS

[1] GEORGINI, Marcelo. Automação Aplicada – Descrição e Implementação de

Sistemas Seqüenciais com PLCs, 4ª Edição, Érica, 2003.

[2] NEMA. Disponível em <http://www.nema.org>. Acessado em 18/11/2010.

[3] Moraes, C.C. & Castrucci, P de L, Engenharia de Automação Industrial, LTC,

2007.

[4] MATIAS, Juliano. Entenda o protocolo elétrico RS-485. Mecatrônica Atual, São

Paulo, n. 4, Jun. 2002.

[5] AXELSON, Jan. Serial port complete - programming and circuits for RS-232 and

RS-485 links e networks. Third Edition, Madison, 2000.

[6] Microchip. Disponível em <http://www.microchip.com>. Acessado em

28/10/2010.

[7] National semiconductor, Application Note 409 - Transceivers and Repeaters

Meeting the EIA RS-485 Interface Standard, Disponível em

<http://www.national.com/an/AN/AN-409.pdf>. Acessado em 12/11/2010

[8] Souza, D.J. & Lavinia, N.C., Conectando o PIC: Recursos Avançados, 3ª Edição,

Érica.

[9] ATMEL, EEPROM 24C16A Datasheet, Disponível em <http://www.atmel.com>.

Acessado em 02/10/2010

[10] MAXIM, MAX485 Datasheet, Disponível em <http://www.maxim-ic.com>.

Acessado em 13/10/2010.

[11] STROUSTRUP, Bjarne, The C++ Programming Language, Third Edition,

Addison – Wesley. 1997.

[12] ALVES, Willian Pereira. C++ Builder 6 - Desenvolva Aplicações para Windows,

2ª Edição, Editora Érica, 2007.

[13] TMS Software, Diagram Studio. <www.tmssoftware.com>. Acessado em

05/01/2010.