Artigo Científico - Condicionamento de Sinais Analógicos para

Propaganda
CONDICIONAMENTO DE SINAIS ANALÓGICOS PARA
APLICAÇÕES INDUSTRIAIS
Lucas da Silva Candido1, Leandro Zeidan Toquetti2
1
2
Tecnologia em Automação Industrial, FATEC-SBC, São Bernardo do Campo, Brasil
Professor do Departamento de Ensino Geral da FATEC São Paulo e Diretor da FATEC São Bernardo do Campo
[email protected], [email protected]
Resumo
A tendência da tecnologia de aperfeiçoar métodos,
com intuito de reduzir custos e tempos de cíclo gastos
em processos, tem estimulado a interconexão entre
dispositivos de automação. Esta interconexão representa
a confiabilidade do processo, uma vez que os padrões
aceitos são comparados com os valores monitorados em
tempo real. Visando proporcionar um controle
integrado, os conceitos aqui propostos, permitem a
interação de sinais analógicos entre dispositivos de um
determinado processo.
1. Introdução
Dados os avanços tecnológicos, a cada dia torna-se
mais inaceitável que qualquer processo tenha sua
confiabilidade ameaçada pela falta de monitoramento
das variáveis inerentes a ele.
Tomemos como exemplo o funcionamento de uma
caldeira, representado na Figura 1:
Figura 1 - Caldeira [1]
A queima de combustível aquece a água que é
continuamente depositada no interior da caldeira.
Conforme a temperatura aumenta, a água passa do
estado sólido para o gasoso, e a pressão interna começa
a subir [2]. Com isso, para garantir condições seguras de
operação, um sistema de controle deve ser capaz de
monitorar a pressão interna da caldeira, e estar apto para
interferir no processo – abrindo, fechando válvulas, de
maneira proporcional (analógica), ou digital.
Para isso, um elemento sensor de pressão, capaz de
transmitir um sinal equivalente em grandeza elétrica –
geralmente miliampere[mA], ou volt[V] – deve ser
integrado ao processo. Um CLP com capacidade de ler
grandezas elétricas analógicas, deve interpretar, por
intermédio de interpolação, qual a pressão no interior da
caldeira.
Em muitos casos, é comum possuir um elemento
sensor que transmite sinal elétrico diferente do que o
CLP está preparado para ler. Nesta situação, o
integrador do sistema geralmente opta por uma das
opções citadas na Tabela I:
Tabela I - Opções para integração de sinais.
Opção
Vantagem
Desvantagem
Adquirir um novo
Alto custo, prazo de
Precisão
sensor
entrega
Adquirir módulo
que leia o sinal
adequado ao
sensor (CLP
modular)
Condicionar o
sinal do sensor,
para interligá-lo ao
CLP
Precisão
Alto custo, prazo de
entrega, adequação
do hardware e
software
Baixo
custo
Precisão depende
dos componentes
empregados, e do
projeto eletrônico
Para início da análise, consideremos um sensor de
pressão com transmissão de sinal 4-20mA que deve
permitir o controle da variável física em um
determinado processo, e sabendo que o CLP, ou
microcontrolador, possui entradas analógicas capazes de
ler tensão, na faixa de 0-5Vcc apenas, este artigo tem
como objetivo proporcionar uma condição de
interconexão entre os dois dispositivos. Essa análise se
inicia na saída do sinal do transmissor, e se encerra na
interpretação dos dados dentro do software de
programação.
2. O sensor existente
Para integração correta entre os sinais analógicos,
faz-se necessário uma análise das características
técnicas de cada um dos dispositivos em questão. A
Figura 2, é uma foto da etiqueta de identificação do
sensor de pressão existente. Nela podemos verificar
alguns dados importantes para a execução da nossa
análise. Outros dados, podem ser rastreados junto ao
fabricante, por intermédio do número de série (Serial
No).
3.1. Entrada analógica
Figura 2 - Sensor pressão SMAR
Modelo: LD301M – transmissor indicador de
pressão manométrica com controle de PID incorporado
– HART.
Faixa de medição de pressão: A faixa de medição
de pressão do sensor existente, Figura 2, foi
representada na tabela II. A faixa de pressão nas
unidades, psi e mbar, também foram calculadas, pois
são unidades mais comuns nos processos industriais
brasileiros.
Precisão: 0,04%
Sinal de saída analógico: 4-20mA
Alimentação: 24Vcc (2 fios)
Tabela II - Faixa de medição do sensor de pressão, e sua
equivalência psi e mbar.
inH2O
8,33 – 1000
psi
0,30 – 36,13
mbar
20,75 – 2490,89
O sinal de saída provido pelo sensor, de 4-20mA,
varia conforme a pressão na conexão de entrada de ar do
sensor. Assim, podemos implementar a Tabela 2, com o
sinal de corrente (ver Tabela 3), onde é mostrada a
variação da corrente em função da pressão:
As 16 entradas analógicas do Arduino Mega 2560
têm resolução de 10bits. Por padrão, o fundo de escala
da entrada analógica é 5Vcc, medidos com referência ao
terra (0Vcc) da placa.
O conversor ADC (Analog Digital Converter) do
microcontrolador
ATmega2560,
através
de
comparações e aproximações, providencia em registros
específicos os valores correspondentes as tensões
aplicadas em cada entrada analógica, conforme
Equação 1 [4].
ADC =
V I N .1024
V REF
(1)
Onde V I N é a tensão aplicada na entrada
analógica em questão e V REF a tensão de referência
selecionada – neste caso, 5Vcc.
Note que o resulta ADC é adimensional, e todo
processo de conversão, para a unidade desejada, deve
ser desenvolvido pelo integrador via software de
programação.
3.2. Interpretação dos dados analógicos
Podemos, por intermédio de interpolação linear,
relacionar o valor que o conversor ADC provê (0-1023
admensional) com cada um dos valores de processo que
desejamos, nas grandezas correspondentes (corrente,
pressão).
O Gráfico 1, ilustra o processo de interpolação de
duas grandezas distintas.
Tabela III - Faixa de medição do sensor de pressão, e
sua equivalência psi e mbar.
Mínimo
Médio
Máximo
mA
4
12
20
inH2O
8,33
504,165
1000
psi
0,30
18,215
36,13
mbar
20,75
1255,82
2490,89
3. O controlador
O dispositivo receptor do sinal analógico utilizado
nesta análise, tem sido muito utilizado alvo de
estudantes de graduação em diversos setores da
indústria. Isso devido seu custo, flexibilidade, e
capacidade de integração com outros dispositivos.
O Arduino Mega 2560 é uma placa microcontrolada
baseada no ATmega2560. Ele tem 54 pontos digitais de
I/O (dos quais 15 podem ser usados como saídas PWM),
16 entradas analógicas, 4 UARTs (porta serial), 1 cristal
de 16MHz, uma conexão USB, um conector de
alimentação, leitor ICSP, e um botão de reset [3].
Gráfico 1 - Processo de interpolação linear
Do Gráfico 1, podemos extrair a seguinte equação
(Equação 2):
y− y 0 y1− y 0
=
x−x 0 x1− x0
(2)
Da Equação 2, podemos extrair a equação para
encontrar os valores de y, em função de x (Equação 3):
y=
y 1− y 0
. ( x− x 0 )+ y 0
x 1−x 0
(3)
Na Equação 3, substituindo os valores nos eixos das
abscissas e ordenadas, conforme as unidades em análise,
é possível determinar os valores analógicos envolvidos
no processo (tensão, corrente, pressão), como veremos
mais adiante.
4. Condicionamento do sinal analógico
Como proposto inicialmente em nossa análise, o
sensor de pressão LD301M, possui saída de sinal
analógico
de
4-20mA.
O
microcontrolador
ATmega2560, montado na placa do Arduino Mega2560,
possui entrada analógica de 0-5Vcc.
O condicionamento do sinal pode ser feito através de
um divisor de tensão (Figura 3).
(Circuito Integrado) a tensão de saída varie de diversas
formas em função da tensão de entrada, ajuste de ganho,
casamento de impedâncias, custo relativamente baixo,
entre outros benefícios.
Devido a alimentação do sensor ser de 24Vcc,
utilizaremos o amplificador operacional LM358
(Figura 4) [5] da Texas Instruments - que possui dois
amplificadores operacionais - que pode ser alimentado
por uma fonte de tensão não simétrica, na faixa de 332Vcc.
Figura 4 - LM 358
As principais características destes amplificadores
operacionais são:
Tensão de alimentação,
V CC : ± 16 ou 32V
Tensão de entrada diferencial, V ID : ± 32V
Tensão de entrada, V I (uma das): -0,3 a 32V
Tensão offset de entrada: 3mV (típico)
Taixa de variação no ganho unitário: 3V/μs
(típico)
Simbologia: A simbologia, para cada amplificador
operacional, está ilustrada na Figura 5.
Figura 3 - Divisor de tensão
A queda de tensão no resistor R2, é calculada pela
Equação 4.
V =R . I
(4)
Substituindo, o mínimo e o máximo valor de tensão
que podemos medir neste circuito está expresso nas
Equações 5 e 6, respectivamente.
V min=250 [Ω]. 4[ mA]=1[V ]
(5)
V máx=250[Ω].20 [ mA]=5[V ]
(6)
Apesar de os valores já estarem condicionados para
a faixa de tensão aceitável pelo microcontrolador,
implementaremos este circuito básico inserindo um
amplificador operacional.
Circuitos condicionadores de sinais implementados
com amplificadores operacionais são os mais comuns,
pois são flexíveis, possibilitam que, com um único CI
Figura 5-Simbologia
amplificador operacional
O amplificador operacional será inserido no circuito,
de maneira que, a tensão de entrada seja igual a tensão
de saída (ganho unitário). Devido a alta impedância da
entrada não-inversora e a possibilidade de obtenção do
ganho unitário ao curto-circuitar a entrada inversora à
saída do amplificador. A implementação será da
seguinte maneira (Figura 6):
Figura 6-Amplificador
operacional em ganho unitário
O ganho do amplificador operacional na
configuração não inversora (Figura 6), é unitário, ou
seja, V out =V i n .
O esquema eletrônico final, com o divisor de tensão
e a implementação do amplificador operacional, fica
conforme mostrado na Figura 7.
Figura 8 - Modelo de teste em laboratório
Nos testes realizados em laboratório, para uma
tensão de entrada V i n=4,985[V ] (Figura 9), é
medido uma tensão de saída
(Figura 10).
V out =4,984 [V ]
Figura 7 - Circuito eletrônico, com divisor
de tensão e amplificador operacional
Testes realizados com auxílio do software ISIS
Professional, resultaram em um erro de +0,01V na saída
do LM358, devido desbalanceamento das entradas
inversora e não-inversora. Este valor é característico, e
esperado. O erro de +0,01V representa 0,2% do fundo
de escala de saída, FSO (Full Scale Output), e pode ser
calculado conforme Equação 7.
(V out −V i n )[V ]
.100[ %]
FSO [V ]
(7)
Figura 9 - Medição da V i n no circuito
eletrônico
Substituindo na Equação 7 os valores obtidos via
software, encontraremos o erro previsto (Equação 8).
(5,08−5,07)[V ]
.100 [%]=0,2 [ %]
5 [V ]
(8)
4.1. Teste em laboratório
Após equacionamento e testes via software – quando
possível - o condicionador de sinal foi levado a um
laboratório com o intuito de obter resultados que
pudessem comprovar a sua qualidade. Os testes práticos
possibilitaram qualificar o projeto como satisfatório.
Caso o resultado obtido fosse insatisfatório, seria
necessário buscar outras alternativas que agregassem
maior precisão ao projeto, como outros CIs ou outros
circuitos eletrônicos.
O circuito testado em laboratório, foi montado
conforme Figura 8.
Figura 10 - Medição da V out no circuito
eletrônico
Substituindo na Equação 7 os valores medidos em
laboratório, encontramos o erro obtido (Equação 9).
(4,985−4,984)[V ]
.100 [ %]=0,02[ %]
5[V ]
(9)
Após a validação do circuito condicionador de sinal,
foi conectado à sua entrada o sinal de 4-20mA
proveniente do sensor de pressão, e a saída do
condicionador de sinal foi conectada à entrada analógica
do Arduino, e desenvolvida a programação.
5. O programa
Algumas técnicas de programação um pouco mais
especificas foram utilizadas com intuito de minimizar o
programa. A função Interp_ClpToEng, é responsável
por interpolar todas as unidades de engenharia,
conforme equações a seguir.
Tensão em V conforme Equação 10.
y[V ]=
5−0
.(x−0)+0
1023−0
(10)
Corrente em mA conforme Equação 11.
y[mA ]=
20−4
.(x−204,6)+4
1023−204,6
(11)
Pressão em inH2O conforme Equação 12.
y[inH 2 O ]=
1000−8,33
.( x−204,6)+8,33
1023−204,6
(12)
Pressão em psi conforme Equação 13.
y[ psi ]=
36,13−0,3
.( x−204,6)+0,3
1023−204,6
(13)
Pressão em mbar conforme Equação 14.
y[mbar ]=
2490,89−20,75
.( x−204,6)+20,75
1023−204,6
(14)
O valor da entrada analógica A0, não é interpolado
(Equação 15).
ADC = A0
(15)
O valor da variável EA0 (Entrada Analógica 0), é a
média de duas mil aquisições da entrada A0.
A seguir, pode-se ler o programa utilizado para
leitura da entrada analógica do arduino, interpolação
com as unidades de engenharia, e exibição dos valores.
//---------------------------------------------------- INICIO
int EA0;
float Corrente, Tensao, Pressao_inH2O, Pressao_psi,
Pressao_mbar;
const int QtAquisicoes = 2000;
long AuxEA0 = 0;
int AuxMedia = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
ENTRADAS();
MEDIA_ENTRADA_ANALOGICA();
}
void ENTRADAS(){
EA0 = analogRead(A0);
}
void MEDIA_ENTRADA_ANALOGICA(){
if (AuxMedia < QtAquisicoes){
AuxEA0 = AuxEA0 + EA0;
AuxMedia = AuxMedia + 1;
}
else{
EA0 = AuxEA0 / QtAquisicoes;
Corrente = Interp_ClpToEng(EA0, 204.6, 1023,
4, 20);
Tensao = Interp_ClpToEng(EA0, 0, 1023, 0, 5);
Pressao_inH2O = Interp_ClpToEng(EA0, 204.6,
1023, 8.33, 1000);
Pressao_psi = Interp_ClpToEng(EA0, 204.6,
1023, 0.30, 36.13);
Pressao_mbar = Interp_ClpToEng(EA0, 204.6,
1023, 20.75, 2490.89);
EXIBE_SERIAL();
AuxEA0 = 0;
AuxMedia = 0;
}
}
void EXIBE_SERIAL(){
char FloatValue[40];
String AuxMsg;
String Msg;
AuxMsg = "ADC EA0(0-1023): ";
dtostrf(EA0,1,2,FloatValue);
Msg = AuxMsg + FloatValue + "[]";
Serial.println(Msg);
AuxMsg = "Tensao(0-5V): ";
dtostrf(Tensao,1,2,FloatValue);
Msg = AuxMsg + FloatValue + "[V]";
Serial.println(Msg);
AuxMsg = "Corrente(4-20mA): ";
dtostrf(Corrente,1,2,FloatValue);
Msg = AuxMsg + FloatValue + "[mA]";
Serial.println(Msg);
AuxMsg = "Pressao: ";
dtostrf(Pressao_inH2O,1,2,FloatValue);
Msg = AuxMsg + FloatValue + "[inH2O]";
AuxMsg = " = ";
dtostrf(Pressao_psi,1,2,FloatValue);
Msg = Msg + AuxMsg + FloatValue +
"[psi]";
AuxMsg = " = ";
dtostrf(Pressao_mbar,1,2,FloatValue);
Msg = Msg + AuxMsg + FloatValue +
"[mbar]";
Serial.println(Msg);
Serial.println("----- Valores atualizados...");
}
float Interp_ClpToEng(int EA, float MinClp, float
MaxClp, float MinEng, float MaxEng){
float Resultado;
return Resultado = (((MaxClp-EA)/(MaxClpMinClp)*(MaxEng-MinEng))-MaxEng)*-1;
}
//-------------------------------------------------------- FIM
Com auxílio de uma das ferramentas disponíveis no
software de programação do arduino, chamada Serial
Monitor, é possível testar as funções de conversão e
controle utilizadas pelo programador.
Verificar novamente os valores das grandezas físicas
convertidas via software, com auxílio de outros
equipamentos de medição que o integrador tenha à mão
é de suma importância, pois essa verificação, sendo
realizada com critério, auxilia a detecção de erros na
instalação, digitação no programa, e comprova a
veracidade das informações obtidas a partir dos dados
iniciais.
Os valores exibidos são atualizados toda vez que o
arduino executa a função EXIBE_SERIAL. Esta função
é executada após a aquisição, somatória de 2000 valores
de A0, e após e execução das funções de interpolação. O
resultado do serial monitor pode ser visto na Figura 11.
Figura 11: Monitoramento das variáveis via
Serial Monitor
6. Conclusões
Após a verificação dos resultados satisfatórios sensor de pressão saída 4-20mA, conectado com o
controlador entrada 0-5V por intermédio de um circuito
eletrônico condicionador de sinal - fica a cargo do
programador, através dos conhecimentos que possui a
respeito das peculiaridades do processo que está
controlando, implementar lógicas de segurança,
sinalização, disponibilização e parametrização de
setpoints flexíveis, e o que mais for conveniente.
7. Referências Bibliográficas
[1] Marcos Sergio de Oliveira Filho, Projeto Academia
de Ciência
http://www.academiadeciencia.org.br/site/2012/06/28/c
aldeira-ou-gerador-de-vapor/
[2] Princípio de funcionamento de uma caldeira
http://www.youtube.com/watch?v=DcMqQfcUp1Y
[3] Site oficial
http://arduino.cc/
[4] Datasheet do microcontrolador ATmel2560
Atmel-2549-8-bit-AVR-Microcontroller-ATmega6401280-1281-2560-2561_datasheet
[5] Datasheet do amplificador operacional
http://www.ti.com/lit/ds/symlink/lm358.pdf
Download