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 !!!!
Tags:
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
aqui alguns links informativos
http://labdegaragem.com/forum/topics/informa-es-sobre-scadabr
video explicativo do código usado em uma IDE 0.23
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
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
Oi meu firefox está com problema devido a uma atualização porcaria,por causa disso respondir em um texto e anexei aqui no post
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+++
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por