Ola pessoa tudo bem???? esse eh o meu primeiro post aqui no LDG...to aprendendo scadabr + modbus + arduino e estou com uma duvida..

O que gostaria de fazer é definir um valor na representação grafica do scadabr e esse valor fosse passado para o arduino que iria ativar um rele pelo tempo que eu definir na representação grafica ( ou no watchlist)

Ja sei fazer um led (ou rele) acender via modbus pelo scadabr definindo valor de escrita 1 e apagando definindo valor 0 pelo watchlist e pela representação grafica pelo codigo:

switch(regs[MB_PINO_13]) {
case 1:

 
digitalWrite(ledPin13, HIGH);
break;

default: /* apagado */
digitalWrite(ledPin13, LOW);

}

O que tentei essemcodigo e nao funcionou, to fazendo alguma coisa errada, pode ser o tipo de dados:

if(regs[MB_PINO_13] == 3){

digitalWrite(ledPin13, HIGH);

delay(3000); //espera 3 segundo e desliga o led

digitalWrite(ledPin13, LOW);

}else if(regs[MB_PINO_13] == 5){

digitalWrite(ledPin13, HIGH);

delay(5000); //espera 5 segundo e desliga o led

digitalWrite(ledPin13, LOW);

}else{

digitalWrite(ledPin13, LOW);

}

E que tipo de dados eu uso?? to usando do tipo binario....nao sei qual outro usar??

A rezão disso é controlar a vazao de ração pelo tempo que eu definir na representação grafica( o tempo que ficara aberto e a ração caindo)...ele tbem le a temperatura(mais esta certo ja)

espero ter sido claro...abraçosss e obrigado !!!!

Exibições: 1867

Anexos

Responder esta

Respostas a este tópico

Realmente você está usando o dado errado.

No scadabr você deve setar no datapoint registrador de holding no campo faixa de registro nos detalhes do datapoint. e no tipo de dados vc escolhe inteiro de 2bytes sem sinal.

assim a informação poderá ir para o  registrador do arduino.

Agora descreve sua aplicação para entendermos. Vc está criando um alimentador de animais controlado via scadabr?

Eu gostei da ideia.

eai brother fmz

entao a aplicação é para uma pisicultura, alimentar os peixes abrindo e fechando a ração que esta em um silo nos tanques....estou pretendendo no projeto usar o scadabr + arduino + os modulos modem zigbee/xbee, LINK REMOVIDO POR DESCUMPRIR OS TERMOS DE USO, os tanques ficaram no maximo a 600 metros, alem de ler a temperatura da agua e tbem o nivel de oxigenio..

vou mudar aqui , obrigado pelo ajuda e qualquer coisa se quiser trocar ideias estamos ai

abraçosss

eai Sidney blz????  e ai pessoal!!!

entao eu mudei la no datapoint e usei esse codigo aqui

....

switch(regs[MB_PINO_13]) {
case 1:
digitalWrite(ledPin13, HIGH);
delay(1000);
// digitalWrite(ledPin13, LOW);
break;
case 2:
digitalWrite(ledPin13, HIGH);
delay(2000);
// digitalWrite(ledPin13, LOW);
break;
case 3:
digitalWrite(ledPin13, HIGH);
delay(3000);
// digitalWrite(ledPin13, LOW);
break;
case 4:
digitalWrite(ledPin13, HIGH);
delay(4000);
// digitalWrite(ledPin13, LOW);
break;
case 5:
digitalWrite(ledPin13, HIGH);
delay(5000);
// digitalWrite(ledPin13, LOW);
break;
case 6:
digitalWrite(ledPin13, HIGH);
delay(6000);
// digitalWrite(ledPin13, LOW);
break;
case 7:
digitalWrite(ledPin13, HIGH);
delay(7000);
// digitalWrite(ledPin13, LOW);
break;
case 8:
digitalWrite(ledPin13, HIGH);
delay(8000);
// digitalWrite(ledPin13, LOW);
break;
default: /* apagado */
digitalWrite(ledPin13, LOW);
}

E TBEM ESSE CODIGO

if(regs[MB_PINO_13] == 3){
digitalWrite(ledPin13, HIGH);
delay(3000);
digitalWrite(ledPin13, LOW);
}else if(regs[MB_PINO_13] == 5){
digitalWrite(ledPin13, HIGH);
delay(5000);
digitalWrite(ledPin13, LOW);
}else if(regs[MB_PINO_13] == 7){
digitalWrite(ledPin13, HIGH);
delay(7000);
digitalWrite(ledPin13, LOW);
}else{
digitalWrite(ledPin13, LOW);
}

mais quando mudo a escrita o led acende , mais ai nao apaga mais , aparece escrito " Valor do ponto pode não ser confiável" ...segue anexo o erro e data point...

VLW

Anexos

aqui alguns links informativos

http://labdegaragem.com/forum/topics/informa-es-sobre-scadabr

video explicativo do código usado em uma IDE 0.23

http://labdegaragem.com/video/tutorial-scadabr-parte1

ei ai adriano tudo bem??

então já vi esses materiais , mais minha duvida vai alem do que foi ensinado neles.

mais vlw pela ajuda..

abraçoss

caro Vagner,

envie uma imagem do datasource

aguardo

Esse problema acontece quando o scadabr não encontra o nó, logo o bom é vc fazer o teste para ver se o scadabr está enxergando o nó

eai amigo tudo bem....

entao ele estava funcionando normal , ativando o led pelo watchlist e lendo a temperatura...

ativando o led com esse codigo:

switch(regs[MB_PINO_13]) {
case 1:

 
digitalWrite(ledPin13, HIGH);
break; 

default: /* apagado */
digitalWrite(ledPin13, LOW);

}

DEPOIS MUDEI PARA ESSE E NAO FUNCIONA, O NÓ É ENCONTRADO NA BUSCA

if(regs[MB_PINO_13] == 3){
digitalWrite(ledPin13, HIGH);
delay(3000);
digitalWrite(ledPin13, LOW);
}else if(regs[MB_PINO_13] == 5){
digitalWrite(ledPin13, HIGH);
delay(5000);
digitalWrite(ledPin13, LOW);
}else if(regs[MB_PINO_13] == 7){
digitalWrite(ledPin13, HIGH);
delay(7000);
digitalWrite(ledPin13, LOW);
}else{
digitalWrite(ledPin13, LOW);
}

SEGUE ANEXO O DATA POINT E O ERRO.ABRAÇOSS

Anexos

Caro Vagner,

você mandou a mesma coisa anterior, com isso não dá pra analisar por completo é necessario o screen do datasource o que está acima do datapoint e se possivel o codigo para analisar. normalmente o que acontece e que algum parametro do datasource ou ate mesmo do datapoint pode estar inadequado.

vi que no codigo está desse jeto:

 COMM_BPS = 9600, /* baud rate */
        MB_SLAVE = 1,     /* endereço do escravo modbus */
        PARITY = 'n'     /* paridade *

no scadabr deverá estar do mesmo jeito, acredito que seja o parametro do seu datasource que não está adquado.

eai amigo tudo bem. segue anexo prints de antes e depois da escrita e codigo do projeto.

fiz a pesquisa e ele acha normalmente o nó modbus.

aparece tudo certo, ai digito 3 na escrita e o led acende, deveria ficar aceso só por 3 segundos , mais ai ele nao apaga mais (independente do que eu escreva na escrita) e aparece " Valor do ponto pode não ser confiável " alguns segundos depois...

abraçoss

Anexos

Oi meu firefox está com problema devido a uma atualização porcaria,por causa disso respondir em um texto e anexei aqui no post

Anexos

Ola Adriano tudo joia...então to na luta aqui , ainda não funcionou , apesar de ter colocado  a faixa de registro em holding e o tipo de dados em inteiro de 2  bytes sem sinal.o led acende e não apaga mais....vou tentando aqui , qualquer novidade posto aqui...

se uma hora tivesse online ai daria para vc der uma olhada pelo teamViwer ai ficaria mais fácil descobrir o erro...se quiser so me add no face ai te passo o id e senha..

abraçoss t+++

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço