Bom dia.

Estou tentando ligar alguns sensores no arduino e monitorar os mesmos com o scadabr.

Mais por ser iniciante nem imagino como começar. Espero conseguir uma ajudinha de vocês com sempre...kkkk

No arduino esta ligado:

# 1 sensor K  e para a devida leitura e correção da junta fria e tals usei o integrado AD595

# 1 Sensor J  e para a devida leitura e correção da junta fria e tals usei o integrado AD594

# 1 Sensor PT100 (ainda estou esperando o mesmo chegar) usarei uma ponte wheatstone

Tentei usar a  mbslave_pde_example.pde, 22 KB que nosso grande amigo  Marcos Daniel Wiechert postou em 4 de abril de 2012. mais não tenho a minima ideia de onde começar.

 

Grato.

 

Exibições: 3583

Responder esta

Respostas a este tópico

Estarei usando a porta serial com a USB mesmo

Oi Fabiano,

toda informação que vc precisa se encontra no post scadabr aqui mesmo no ldg,infelizmente agora to um pouco enrrolado aqui no trabalho e ta dificil de te dar o passo a passo, mas te falo que é muito facil.Pricipalmente ser for por usb, logo que chegar em casa se um dos nossos colegas que trabalham lá no post não tiver te  respondido, eu passo no detalhe pra vc.

Logo que vc conseguir este projeto coloque no post do scadabr pra dissiminar mais e mais trabalhos com scadabr.

grande abraço

Opa muito obrigado mesmo....

Qual a função desse i?ntegrado AD595? O que é correção da junta fria?

gostei da pergunta sidney eu tb nao sei o que é esses sensores J e K e nem pra que serve

Adriano  e Sidney esses sensores são termopares, sensores largamente usados nas industrias para medir temperatura.

Basicamente um termopar é uma junção entre 2 metais diferentes que quando aquecido produz uma corrente na casa dos milivolts (Efeito de Seebeck), por exemplo um sensor K (Ni90%Cr10% conhecido como Cromel e Ni95%Mn2%Si1%Al2% tambem conhecido Alumel ) tem uma sensibilidade de 41µV/ºC portanto se aquecido a 300ºC ira produzir 12,2 mV.

Porem se apenas ligarmos o voltimetro ao termopar teremos uma leitura incorreta, pois a junta formada pela junção do voltímetro interfere na junção do termopar. Para termos leituras precisas temos que compensar esse fenômeno e a técnica usada para isso é conhecida como junta fria.

"Todas as tabelas normalizadas dão os valores da tensão de saída do termopar considerando que a segunda junção do termopar (a junção fria) é mantida a exactamente zero graus Celsius. Antigamente isto conseguia-se conservando a junção em gelo fundente (daqui o termo compensação por junção fria). Contudo a manutenção do gelo nas condições necessárias não era fácil, logo optou-se por medir a temperatura da junção fria e compensar a diferença para os zero graus Celsius.

Tipicamente a temperatura da junção fria é medida por um termístor de precisão. A leitura desta segunda temperatura, em conjunto com a leitura do valor da tensão do próprio termopar é utilizada para o cálculo da temperatura verificada na extremidade do termopar. Em aplicações menos exigentes, a compensaçao da junção fria é feita por um semicondutor sensor de temperatura, combinando o sinal do semicondutor com o do termopar.

É importante a compreensão da compensação por junção fria; qualquer erro na medição da temperatura da junção fria irá ocasionar igualmente erros na medição da temperatura da extremidade do termopar."  ( Fonte: Wikipédia)


Outra informação importante é que a leitura não é linear, infelizmente o valor 41µV/ºC é apenas uma media, sendo preciso fazer uma linearização por hardware ou software para se ter uma precisão.


Os integrados em questão fazem a correção da junta fria, alem de amplificar o sinal que é baixo de mais para ser reconhecido por um microprocessador e se não me engano também ja faz a linearização dos valores lidos. 

No meu projeto inicial eu usava amplificadores operacionais para pre-amplificar o sinal, depois comparava com a leitura de um LM35 para fazer a compensação da junta fria e depois amplificava novamente para ser  lido pelo arduino (fiquei 1 mês inteiro tentando fazer funcionar. E ate agora num funciono). Quando ligei o AD595 o projeto funcionou de primeira.

Acredito que essa minha pesquisa sera util para vocês pois praticamente num ambiente industrial todas leituras termicas são feitas por termopares.

Olá  Fabiano,

Agora vou te explicar como vc faz pra integrar seus sensores com o scadabr, no caso, usamos o modbus serial rtu e no geral é somente usar um código do jpmzometa e se possível, o código postado pelo Wiechert(que estou anexando), abaixo vc vê parte do codigo modbus na parte referente a "enum"

vc vai definir pro scadabr quais são os datapoints(sensores da rede) que o scadabr vai controlar, abaixo tem um codigo de exemplo.como to achando complicado explicar por aqui vou fazer no world e anexa pra vc ver.

/* Aqui começa o código do exemplo */

/* Parâmetros Modbus RTU de comunicação, o Mestre e os escravos devem usar os mesmos parâmetros */
enum {
        COMM_BPS = 9600, /* baud rate */
        MB_SLAVE = 1,     /* endereço do escravo modbus */
        PARITY = 'n'     /* paridade */
};

/* registros do escravo (holding registers)
*
* Aqui ficam ordenados todos os registros de leitura e escrita
* da comunicação entre o mestre e o escravo (SCADA e arduino)
*
*/

enum {        
        MB_PINO_3,     /* Controle do Led no pino  3 (desliga=0 liga=1) */

        MB_REGS           /* número total de registros do escravo */
};

int regs[MB_REGS];
int ledPin3  =  3;


void setup()
{
        /* configura cominicação modbus
         * 9600 bps, 8N1, RS485 network */
        configure_mb_slave(COMM_BPS, PARITY, 2);
        
        pinMode(ledPin3,  OUTPUT);
        
}


void loop()
{
        /* verifica se há solicitações do mestre */
        update_mb_slave(MB_SLAVE, regs, MB_REGS);
               
                
         
        

        /* os valores dos registros são definidos pelo mestre modbus (SCADA) */
        
                switch(regs[MB_PINO_3]) {
        case 1:
                digitalWrite(ledPin3, HIGH);
                break;        
        default: /* apagado */
                digitalWrite(ledPin3, LOW);
        }
        
                   
}

Anexos

Adriano,

Estava seguindo teu tutorial e quando verifico o código da o seguinte erro:

“As of Arduino 1.0, the 'BYTE' keyword is no longer supported. Please use Serial.write() instead.”

Poderia me ajudar com esse erro?

Olá Guilherme,

O tutorial acima foi feito para uso com as versões até 23 da IDE do Arduino.

Você pode baixar a versão compativel da IDE (recomendo a 23 ou 22) e compilar normalmente.

Outra opção para que você possa continuar a usar a IDE 1.0 é consultar  e baixar o manual do shield RS485 aqui da loja do LDG.

No manual você vai encontrar um tutorial completo para usar o arduino como escravo modbus em conjunto com o SCADABR, mostrando o passo-a-passo de como fazer uma aplicação compativel com a versão 1.0 da IDE.

Também estão disponiveis no manual muitas informações sobre o padrão RS485, o protocolo MODBUS e um sketch para testar a comunicação entre o arduino e o PC via RS485 sem usar o modbus. 

O manual pode ser baixado gratuitamente, da mesma forma como todos os manuais de todos os produtos desenvolvidos pelo LDG, mais uma demonstração de apoio ao garagista por parte do LDG.

O link para o manual:

http://www.labdegaragem.com.br/loja/ManualdoUsu%C3%A1rio.2RS485.pdf

Abraços.

Complementando,

Aqui tem o video mostrando o projeto do tutorial do shield e do conversor (na época que foi gravado ainda um protótipo do kit) com os detalhes da montagem e das telas de configuração do SCADABR.

 

Abraço.

Fabiano,

realmente ao ler seu texto lembrei que todas as estufas industriais que eu trabalhei são com termopares. Por isso me chamou a atenção o PT100.

Hoje só tenho preocupação em ler temperaturas de ambiente, salvo um banho maria a 37°C que ainda vou fazer.

Compreendi perfeitamente o que mostrou.

O scadabr não é dificil.

sabendo que no inicio do sketch do arduino existe uma enum (enumeração) que é enchergada pelo scadabr como datapoints, então, tudo que vc colocar no enum será lido pelo scadabr.

Ex. se vc coloca uma enum assim: led1, led2, temp, umid,...

o primeiro datapoint será led1 que mostrará a situação do led1. Então vc coloca no datapoint do scadabr offset 0.

O segundo datapoint será o led2, vai mostrar a situação do led2. Vc coloca no scadabr, na configuração do datapoint offset 1.

e assim continuará , lembrando que o offset começa no 0, 1, 2, etc

Uma forma rápida que estamos ajudando os colegas é instalar o teamwiever e conectando as maquinas. Assim´podemos ir ensinando e arrumando. Senão demora muito.

Fica firme, pois temos muito a aprender contigo.

Ah, sabe que o scadabr seria muito legal nas estufas de secagem da área farmacêutica?

Muito obrigado  colegas...

Vamos caminhando... Hj vou tentar por o bicho pra roda no scadabr...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço