Olá Pessoal,
Estou desenvolvendo meu TCC utilizando um arduino comunicando via Modbus serial com o ScadaBR. Basicamentem estou lendo um valor de tensão e um valor de tensão e um valor de corrente e calculando o valor da potência elétrica. Preciso ler este valor de potência elétrica no ScadaBR. Porém, o ScadaBR só atualiza o valor uma única vez e o datapoint fica com o seguinte erro: Illegal data adress.
O código abaixo é só um exemplo onde eu quero ler o valor3. Alguém pode me ajudar?
Alguém já passou por isso?????
Segue parte do código:
void configure_mb_slave(long baud, char parity, char txenpin);
int update_mb_slave(unsigned char slave, int *regs,
unsigned int regs_size);
enum {
COMM_BPS = 9600, /* baud rate */
MB_SLAVE = 1, /* endereço do escravo modbus */
PARITY = 'n' /* paridade */
};
enum {
MB_PINO_3, /* Controle do Led no pino 3 (desliga=0 liga=1) */
MB_A0, /* Leitura da entrada analógica 0 (0 a 1023) */
MB_REGS /* número total de registros do escravo */
};
int regs[MB_REGS];
int valor1 = 0;
int valor2 = 200;
int valor3 = 0;
unsigned long wdog = 0; /* watchdog */
unsigned long tprev = 0; /* tempo anterior do último comando*/
unsigned long tanalogprev = 0; /* tempo anterior da leitura dos pinos analogicos*/
void setup()
{
/* configura cominicação modbus
* 9600 bps, 8N1, RS485 network */
configure_mb_slave(COMM_BPS, PARITY, 2);
}
void loop()
{
/* verifica se há solicitações do mestre */
if(update_mb_slave(MB_SLAVE, regs, MB_REGS))
wdog = millis();
if ((millis() - tanalogprev) > 1000) { /* atualiza as entradas analogica a cada 1 segundo */
regs[MB_A0] = analogRead(1); /* ler entrada analógica 0 */
valor1 = regs[MB_A0];
valor3 = valor1 - valor2;
regs[MB_PINO_3] = valor3;
tanalogprev = millis();
}
/* os valores dos registros são definidos pelo mestre modbus (SCADA) */
}
Tags:
Diego,
estava lendo o seu código e tentando entender o que você quer mas não bate com a descrição que fez anteriormente.
Esse é o código que está usando?
Vc quer que o arduino calcule a potencia ou o Scadabr faça isso?
Se for o arduino vc tem que fazer todos os calculos e depois salvar nos registradores.
Se for o scadabr vc terá que criar o script.
Explica melhor o que vc quer fazer que poderemos ajudar mais.
Olá Sidney,
De fato este não é o código da descrição... É somente um exemplo onde eu quero enviar o "valor3" para o ScadaBR. Os cálculos serão feitos no arduino e só os resultados dos calculos serão enviados para o ScadaBR.
Descosiderar os comentários das linhas de programação.
Diego, dou uma sugestão.
Coloca essa parte do código que vc tem aqui que olho e podemos fazer as correções. Dai vc fica com tudo pronto.
Falar uma teoria sem trabalhar no material que vc já tem é meio demorado e poderiamos ajudar mais rápido.
Se puder me ajudar mano... =]
OK
Aew jovem, eu estou desenvolvendo meu TCC com esse mesmo propósito... Não sei como fazer a comunicação do Scadabr com o Arduino... sinceramente, estou penando nessa parada. Vou incrementar com algumas coisas, mas basicamente é a mesma coisa que você.
Estou usando um transformador de corrente e um transformador de tensão, foto-acoplador para injetar nos analógicos do Arduino. Preciso comunicar com o scadabr e gerar planilhas de dados colhidos de tempo em tempo.
Também não sei se é melhor só colher os dados dos sensores e encaminhar ao scadabr ou se já coloco o próprio arduino para calcular tb.
Enfim galera, dá um help ae por favor!!!! Meu TCC é pra mês que vém e eu estou muito enrolado. Mandem mensagem ou algumas dicas, qualquer coisa tá valendo!!!
Cara,
Pra fazer a comunicação já tem códigos prontos. Dá uma olhada neste tutorial aqui. Eu estou colocando o arduino para fazer os cálculos e encaminhando as respostas para o Scada
blz mano!!! Estou vendo aqui.
Mas me diga uma coisa, vou ter que ter o tal RS485 - Usb mesmo??? Só queria mesmo era pegar os dados que já são supervisionados pelo próprio sftware do arduino e jogar no scadabr. Tem como fazer via usb direto ou tem que ter o bendito do conversor?
Tem como fazer com o usb. Não precisa de RS485.
OPA, MANDA PRA MIM AE O ESQUEMA... TEM COMO?
Puxa meu amigo, me ajudou muito!!!
Se puder me mandar um email do seu trabalho, eu ficarei agradecido e tenha ciência que seu nome será citado em meu TCC como fonte de pesquisa =]
eloilima@live.estacio.br
aqui tem nuita informaçao:
http://labdegaragem.com/forum/topics/scadabr
pode ser feita tranquilamente com usb, que por sinal é mais facil
aqui tem alguns videos resumidos
http://dino01.brinkster.net/teste2.htm (este link tem limite de acesso por ser gratuito)
aqui mais informaçoes detalhadas com exemplos
http://labdegaragem.com/forum/topics/comunica-o-entre-scadabr-e-ard...
aqui produtos feitos para ambiente scdabr:
http://www.labdegaragem.org/loja/index.php/31-shields/shield-rs485....
http://labdegaragem.com/forum/topics/m-dulo-para-automa-o-residenci...
estes produtos ja estao sendo comercializados para plataforma scadabr
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por