Você está na página 1de 13

Projetando Controladores Digitais com FPGA

Csar da Costa

Novatec Editora

Captulo 1
Introduo

No primeiro captulo feita uma introduo geral sobre controladores digitais baseados em microprocessador tradicional, seu princpio de funcionamento, ciclo de trabalho da CPU, tempos tpicos de processamento, tempos de atraso, tcnicas de programao e a linguagem Ladder. O objetivo deste captulo no ensinar o leitor a projetar controladores digitais microprocessados, mas sim apresentar algumas caractersticas de seu funcionamento, que auxiliaro os leitores no desenvolvimento de sistemas de controle digitais.

1.1 Controladores digitais tradicionais


Podem-se dividir os controladores digitais tradicionais em dois tipos: controladores digitais dedicados e controladores lgicos programveis, tambm conhecidos como CLPs. Os controladores digitais dedicados so basicamente aplicaes de microcontroladores em tarefas de controle, cujo propsito especfico executar um algoritmo de controle gravado em sua memria ROM e, em geral, comunicar-se com dispositivos externos para troca de informaes e atuao neles. So, por exemplo, a medio e o controle de temperatura, ligar /desligar motores, ler um teclado em sua entrada etc. Programa-se a ROM com cdigos de mquina ou linguagem Assembler. O projetista deve conhecer bem o conjunto de instrues do microcontrolador utilizado, seu hardware e a tarefa de controle a ser realizada. O desenvolvimento de software em linguagem de baixo nvel (Assembler), para controladores digitais dedicados, muito intuitivo e pessoal; raramente os projetistas envolvidos desenvolvem seus programas dentro das regras de programao estruturada.

15

16

Projetando Controladores Digitais com FPGA

Tal fato destaca a dificuldade de alterao do projeto pelo usurio final; sempre h necessidade da presena do projetista original, o que comercialmente pode ter suas vantagens para o fabricante do controlador. Entretanto, do ponto de vista tcnico, contraria a grande flexibilidade oferecida pelos controladores lgicos programveis (CLPs), ou seja, para um mesmo hardware existe uma infinidade de aplicaes especificadas em software, passveis de alteraes pelo usurio final. O desenvolvimento dos controladores lgicos programveis (CLPs) comeou em 1968, em resposta a uma requisio de engenharia da Diviso Hidramtica da General Motors (GM). Naquela poca, a GM freqentemente passava dias, ou at semanas, alterando os sistemas de controle baseados em rels, sempre que ocorriam mudanas em um modelo de carro ou eram introduzidas modificaes na linha de montagem. Para reduzir o alto custo de instalao decorrente dessas alteraes, a especificao do controlador digital necessitava de um sistema de estado slido, microprocessado, com a flexibilidade de um computador, mas que pudesse ser programado e mantido pelos engenheiros e tcnicos do cho de fbrica. Tambm era preciso que suportasse o ar poludo, a vibrao, o rudo eltrico e os extremos de umidade e temperatura encontrados normalmente num ambiente industrial. O CLP um dispositivo de estado slido, microprocessado, capaz de armazenar instrues para a implementao de funes de controle, tais como seqncia lgica, temporizao e contagem, alm de realizar operaes lgicas e aritmticas, manipulao de dados e comunicao em rede. A Figura 1.1 ilustra a arquitetura bsica de um CLP, formado por uma fonte de alimentao, uma Unidade Central de Processamento (CPU), um sistema de memria e circuitos de entrada e sada.
VCC

Isolamento ptico Fonte de alimentao


X0

Isolamento ptico Y0 Unidade Central de Processamento (CPU) S A D A S Y1 Y2

P X1

X2

E N T R A D A S

GND

Elementos de entrada

Sistema de memria

Elementos de sada

Figura 1.1 Arquitetura bsica de um CLP .

Captulo 1 Introduo

17

A fonte de alimentao o componente responsvel pelo fornecimento adequado de energia eltrica para a CPU e para os circuitos de entrada e sada. Os circuitos de entrada formam a interface pela qual os dispositivos enviam informaes de campo para o CLP. As entradas podem ser digitais ou analgicas e so provenientes de elementos de campo, como sensores, botes, pressostatos, chaves fim-de-curso etc. Os dispositivos de sada, tais como solenides, rels, contatores, vlvulas, luzes indicadoras e alarmes, esto conectados aos circuitos de sada do CLP. As sadas, de maneira similar s entradas, podem ser digitais ou analgicas e so geralmente isoladas do campo por meio de isoladores galvnicos, como acopladores pticos e rels. O sistema de memrias constitudo tipicamente por memrias ROM e RAM. O programa e os dados armazenados no sistema de memria so geralmente descritos a partir dos seguintes conceitos: Memria residente (ROM): contm os programas considerados parte integrante do sistema, permanentemente armazenados, que supervisionam e executam a seqncia de operaes, as atividades de controle e a comunicao com os dispositivos perifricos, bem como outras atividades. Memria do usurio (RAM): armazena o programa aplicativo do usurio, ou seja, o programa de aplicao. Memria de dados ou tabela de dados (RAM): nessa rea so armazenados os dados associados ao programa de controle, tais como valores de temporizadores, contadores, constantes etc. Memria imagem das entradas e sadas (RAM): rea que reproduz o estado de todos os dispositivos de entrada e sada conectados ao CLP. A CPU do CLP formada pelo microprocessador e seus circuitos de controle e comunicao. O microprocessador o elemento principal da arquitetura do controlador digital e tem como funes o controle dos barramentos, o gerenciamento das comunicaes com a memria e os dispositivos de entrada e sada, e a execuo das instrues. O microprocessador interpreta os sinais de entrada, executa a lgica de controle segundo as instrues do programa de aplicao, realiza clculos e executa operaes lgicas, para, em seguida, enviar os sinais apropriados s sadas. De um modo simplificado, o ciclo de instruo do microprocessador utiliza a seqncia de atividades apresentadas na Figura 1.2.

18

Projetando Controladores Digitais com FPGA


Incio

Reset Carrega o PC com o endereo inicial PC = 00

Busca a instruo na memria, cujo endereo o contedo do PC

Incrementa o PC PC = PC + 1

Decodifica a instruo

Executa a instruo Busca a prxima instruo

Figura 1.2 Ilustrao do ciclo de busca e execuo de instruo.

Durante o ciclo de instruo, o microprocessador busca as instrues armazenadas na memria e executa cada uma delas. A execuo do programa consiste na repetio seqencial do processo de busca e execuo das instrues. Pode-se justificar a diviso do processamento da instruo em dois principais estgios, da seguinte forma: 1. a busca da instruo uma operao comum para cada instruo, consiste na leitura de uma localizao de memria e o posterior carregamento do seu contedo no registro de instruo; 2. a execuo da instruo pode envolver vrias operaes e depende da natureza da instruo. A Figura 1.3 apresenta um diagrama de tempos envolvidos na execuo de um ciclo de instruo. Nota-se que o ciclo de instruo igual soma do ciclo de busca com o ciclo de execuo; o ciclo de mquina M corresponde ao tempo que o microprocessador leva para acessar um endereo de memria ou um dispositivo de entrada e sada, e o estado T um perodo de tempo que est vinculado ao clock do sistema. Tambm a unidade de tempo que determina o tempo consumido na execuo do ciclo de instruo.

Captulo 1 Introduo
M1 M2 M3 M4 M5 M6

19

T1

T2

T3

T4

T5

T6

T7

T8

T9

T10

T11

T12

Ciclo de busca

Ciclo de execuo

Figura 1.3 Tempos envolvidos no ciclo de instruo.

Ao se analisar o diagrama de tempo da Figura 1.3, verifica-se que o ciclo de busca consome cerca de 40% dos estados totais de um ciclo de instruo, em uma tarefa que no est diretamente relacionada com o controle do processo, no qual o microprocessador est inserido. Para melhor entendimento do tempo gasto com o ciclo de busca, vejamos a execuo da soma de dois nmeros pelo microprocessador, conforme mostra a Figura 1.4. Considerando-se a utilizao de um clock de 4 MHz pelo microprocessador, ser gerado um estado T com perodo de 0,25 s.
Incio A 04 h

Estados Endereos Mnemnico

Operando

Comentrios

7 7 4 5

0000 0002 0004 0005

MVI MVI ADD HLT

A, 04 B, 03 B

Move 04 para A Move 03 para B Soma A e B para A Pra.

B 03 h

A A + B

Fim

Clock = 4 Mhz

Tempo de estado = 0,25 s

Figura 1.4 Execuo da soma de dois nmeros pelo microprocessador.

Como a operao de somar os dois nmeros consome um total de 23 estados, temos um ciclo total de instruo de 5,75 s, sendo que cerca de 2,3 s (40% do ciclo total) so gastos com ciclos de busca de instrues em memria. O ciclo de busca um tempo de processamento perdido, presente em todos os ciclos de instrues dos controladores digitais microprocessados, que no pode ser eliminado, pois a arquitetura interna dos microprocessadores tradicionais no permite a sua reconfigurao por hardware ou software. Este assunto, reconfigurao de hardware, voltar a ser abordado no Captulo 3.

20

Projetando Controladores Digitais com FPGA

1.2 Princpio de funcionamento


O CLP funciona segundo um programa permanentemente armazenado em memria ROM, que executa um ciclo de scan chamado scan time e consiste de uma srie de operaes realizadas de forma seqencial e repetida. A Figura 1.5 apresenta, em forma de fluxograma, as principais fases do ciclo de scan de um CLP. Os elementos mais importantes de um ciclo de scan so: Atualizao das entradas: durante a varredura das entradas, o CLP examina os dispositivos externos de entrada quanto presena ou ausncia de tenso, isto , um estado energizado ou desenergizado O estado das . entradas atualizado e armazenado temporariamente em uma regio da memria chamada tabela imagem das entradas . Execuo do programa: durante a execuo do programa, o CLP examina as instrues do programa de controle (armazenado na memria RAM), usa o estado das entradas armazenadas na tabela imagem das entradas e determina se uma sada ser ou no energizada O estado resultante das . sadas armazenado em uma regio da memria RAM chamada tabela imagem das sadas . Atualizao das sadas: baseado nos estados dos bits da tabela imagem das sadas o CLP energiza ou desenergiza seus circuitos de sada, que , exercem controle sobre dispositivos externos. Realizao de diagnsticos: ao final de cada ciclo de scan, a CPU verifica as condies do CLP, ou seja, se ocorreu qualquer falha em algum de seus componentes internos (fonte, circuitos de entrada e sada, memria etc.).
Incio L as entradas (tabela imagem das entradas) Executa o programa de aplicao Atualiza as sadas (tabela imagem das sadas)

Realiza diagnsticos

Figura 1.5 Fluxograma bsico de um ciclo de scan.

Captulo 1 Introduo

21

1.2.1 Ciclo de trabalho da CPU


O CLP executa cada linha do programa de forma seqencial e no volta atrs para executar a linha anterior, at que se faa a prxima varredura do programa. Ele no executa loops ou desvios, como na programao tradicional. Seu processamento segue a seqncia do ciclo de scan apresentado na Figura 1.5, que no permite retroceder na seqncia de execuo do programa. As linhas so normalmente ordenadas de forma a configurar uma seqncia de eventos, ou seja, a linha mais acima o primeiro evento e, assim, sucessivamente. A Figura 1.6 exibe uma seqncia de eventos em um programa em linguagem Ladder, que controla um estacionamento de veculos. Tanto nos diagramas eltricos quanto nos programas em linguagem Ladder, o estado das instrues de entrada (condio) de cada linha determina a seqncia em que as sadas so acionadas.

Figura 1.6 Seqncia de eventos em programa Ladder.

A Tabela 1.1 ilustra os tempos tpicos de execuo de algumas instrues da linguagem Ladder, por exemplo, de um CLP fabricado pela empresa Allen Bradley. Segundo a Allen Bradley, o tempo em microssegundos para executar uma instruo quando sua condio verdadeira maior que o tempo necessrio para executar a mesma instruo quando sua condio falsa.

22

Projetando Controladores Digitais com FPGA Tabela 1.1 Tempos tpicos de execuo de instrues do CLP
Tipo de instruo Verificar se uma entrada est "energizada" Verificar se uma entrada est "desenergizada" "Energizar" uma sada Temporizador (ON) Contador (UP) Contador (DOWN) Comparao igual Comparao maior que Tempo de execuo (s) Tempo de execuo (s) (instruo falsa) (instruo verdadeira) 1,54 1,54 4,43 30,38 26,67 27,22 6,60 6,60 1,72 1,72 4,43 38,34 29,28 32,19 21,52 23,60

1.2.2 Tempos tpicos de processamento


O tempo de processamento o espao de tempo que o CLP leva para detectar uma entrada e energizar a sada correspondente. Os componentes do tempo de processamento incluem: tempo de atualizao das entradas, tempo de execuo do programa, tempo de atualizao das sadas e tempo de housekeeping da CPU. O tempo de housekeeping da CPU o tempo, a cada incio de ciclo de scan, que a CPU verifica as condies iniciais do CLP, ou seja, se ocorreu alguma falha em um dos seus componentes internos (fonte, circuito de E/S, memria etc.). A Tabela 1.2 apresenta um exemplo dos tempos tpicos envolvidos no processamento de um ciclo de scan de um micro CLP, da empresa Allen Bradley .
Tabela 1.2 Tempos tpicos de um ciclo de scan
Descrio do processamento Tempo de atualizao das entradas Tempo de execuo do programa Tempo de atualizao das sadas Tempo de housekeeping (diagnsticos) Tempo total de processamento (mximo) Tempo mximo (s) 8,0 9,7 8,0 18,0 43,75

Captulo 1 Introduo

23

1.2.3 Tempos de atraso no processamento


O ciclo de scan muitas vezes pode ocasionar problemas graves no controle de processos industriais, por no reconhecer uma entrada durante seu ciclo de funcionamento. Isso pode ocorrer com sinais de entrada de resposta rpida, como, por exemplo, sensores com resposta em torno de 10 kHz. Dependendo do tempo de variao do estado lgico dos sinais de entrada, o CLP pode demorar mais tempo para acionar a sada ou mesmo nunca reconhecer uma entrada. Para ilustrar essa situao, a Figura 1.7 mostra a variao de trs sensores de resposta rpida (sensor 1, sensor 2 e sensor 3) ligados na entrada de um CLP. As variaes ocorrem durante trs ciclos de varredura (scan).
Sensor 1
ON

Sensor 2

Sensor 3

OFF IN Execuo do OUT IN Execuo do OUT IN Execuo do OUT

Scan 1

Scan 2

Scan 3

Figura 1.7 Sensores de resposta rpida durante os ciclos de scan.

No primeiro ciclo de scan, o sensor 1 muda do estado desligado para ligado, durante a fase de execuo do programa. Dessa forma, a transio do sensor 1 no reconhecida nesse ciclo, sendo reconhecida somente na fase de leitura das entradas no segundo ciclo de scan. O sensor 2 muda de estado na fase de atualizao das sadas do segundo ciclo de scan; sua transio no reconhecida durante esse ciclo, mas sim durante o terceiro ciclo de scan, durante a fase de atualizao das entradas desse ciclo. A mudana de estado do sensor 3 no ser reconhecida em nenhum desses ciclos, porque tem resposta muito rpida e ocorre durante a fase de execuo do programa no terceiro ciclo de scan. Para evitar esse tipo de problema, o tempo do ciclo de scan do CLP deve ser menor que os tempos de amostragens dos sinais envolvidos no sistema.

24

Projetando Controladores Digitais com FPGA

1.3 Programao
A programao do CLP pode ser elaborada em vrias linguagens de programao. A organizao internacional IEC (International Electrotechnical Commission) a responsvel pela padronizao das linguagens de programao para CLP, sendo a norma IEC 61131-3 Programing Languages a responsvel pela classificao dessas linguagens, conforme ilustra a Tabela 1.3.
Tabela 1.3 Classificao das linguagens de programao
Classes Tabulares Textuais Grficas Linguagens Tabela de Deciso IL (Instruction List) ST (Structured Text) LD (Diagrama de Rels) FBD (Function Block Diagram) SFC (Sequential Flow Chart)

A forma de programao pode ser remota (off-line) ou local (on-line), por meio de teclados especiais, interfaces grficas ou por de microcomputador padro IBM PC. A programao executada e posteriormente transferida para o CLP, via porta de comunicao RS232C ou RS485.

1.3.1 Linguagem de diagrama de rels (Ladder)


Apesar das tentativas de padronizao da norma IEC 61131-3, ainda no existe uma padronizao rigorosa para programao em linguagem de diagrama de rels (Ladder Diagram). Em outras palavras, a linguagem Ladder de um fabricante de CLP no funciona no CLP de outro fabricante; o que existe uma semelhana na representao grfica dos diversos fabricantes, que representa esquematicamente o diagrama eltrico de fcil entendimento, com boa aceitao do mercado. A linguagem de diagrama de rels (Ladder) uma simbologia construda por linhas numa planilha grfica, na qual cada elemento representado como uma clula. Cada clula ou elemento grfico uma macroinstruo desenvolvida a partir de instrues do microprocessador. A Figura 1.8 apresenta um painel de smbolos grficos utilizados na programao Ladder pelo software FPWIN GR, configurador dos CLPs FP0, FP1 e FP-M, fabricados pela empresa japonesa Matsushita Electric Works.

Captulo 1 Introduo

25

Figura 1.8 Painel de programao Ladder do software FPWIN.

Um programa em linguagem Ladder assemelha-se bastante a um diagrama de contatos eltricos, em que os smbolos grficos representam os dispositivos reais e a maneira como esto conectados. O programa em linguagem Ladder utiliza smbolos semelhantes: nesse caso, os smbolos grficos representam macroinstrues lgicas do programa de aplicao, armazenado na memria do usurio (RAM). No existe barra de alimentao, nem o fluxo de corrente ao longo do programa. Outra diferena que em um diagrama eltrico descrevem-se os dispositivos como abertos ou fechados (energizados ou desenergizados). No programa em linguagem de diagrama de rels, as macroinstrues so condies lgicas verdadeiras ou falsas. A Figura 1.9 apresenta um trecho de um programa em linguagem Ladder. As macroinstrues mais freqentemente usadas so chamadas de Normalmente Aberto (NA),Normalmente Fechado(NF) e Energizar Sada(OUT). Elas so representadas na forma de smbolos grficos colocados nas linhas do programa, sendo por isso tambm conhecidas como simbologia de contatos de rels .

Figura 1.9 Trecho do programa em linguagem Ladder.

26

Projetando Controladores Digitais com FPGA

1.4 Teste de avaliao


1. Quais as diferenas bsicas (hardware e software) entre um controlador digital dedicado baseado em microcontrolador e um controlador lgico programvel (CLP)? 2. O que um ciclo de instruo do microprocessador? 3. Descreva por que o ciclo de busca um tempo de processamento perdido, presente em todos os ciclos de instrues dos controladores digitais microprocessados. 4. Explique como funciona um ciclo de scan (scan time) de um CLP. 5. Apesar de sua flexibilidade, por que a arquitetura interna de um microcontrolador no pode ser reconfigurada pelo usurio final? 6. O que uma linguagem Ladder? 7. Apesar de padronizada pela norma IEC 61131-3, por que a linguagem Ladder de um fabricante no funciona no CLP de outro fabricante? 8. Durante a execuo de um ciclo de scan de um CLP, um sensor ligado em uma de suas entradas atuado. Entretanto, o CLP no detecta a sua atuao. Explique o que pode ter ocorrido. 9. Seguindo a linguagem Ladder macroinstruo normalmente aberta ( ), normalmente fechada ( ) e energizar sada ( ) , programe as seguintes expresses algbricas:
a) BC + CD + AD b) AB + BC c) BC + CD + ABD

Você também pode gostar