Boa tarde, 

Tenho um trabalho da faculdade para construir, preciso construir uma rede RS485 utilizando o scadabr como supervisório e um arduino como escravo. Estou aos poucos lendo o material que tem aqui no fórum e descobri que eu vou precisar além do conversor USB/RS485 um conversor RS485/TTL, então enquanto espero este ultimo chegar estou tentando fazer a comunicação do scada com o arduino somente pelo cabo usb mesmo mas está bem difícil, já tentei tudo e não consigo.

Estou tentando a princípio mudar apenas o estado de uma entrada digital de 0 para 1 e visualizar isso no scada, não sei se estou fazendo certo mas acho que ao ligar 5 v na entrada digital 9 deveria mudar o estado do data point de 0 para 1, mas não estou conseguindo fazer nada. Se alguém puder me ajudar onde estou errando vou continuar tentando criar o que preciso. 

Segue o código que estou usando foi adaptado de um que baixe da internet, está compilando corretamente: 


#include <ModbusRtu.h>

#define TXEN 4

uint16_t au16data[16] = {
3, 1415, 9265, 4, 2, 7182, 28182, 8, 0, 0, 0, 0, 0, 0, 1, -1 };


Modbus slave(1,0,TXEN); // this is slave @1 and RS-485


enum {
MB_SLAVE = 1, /* modbus slave id */
};
/* slave registers example */
enum {
MB_REG0,
MB_REG1,
MB_REG2,
MB_REG3,
MB_REG4,
MB_REG5,
MB_REG6,
MB_REG7,
MB_REG8,
MB_REG9,
MB_REG10,
MB_REG11,
MB_REG12,
MB_REG13,
MB_REGS

/* total number of registers on slave */
};
int regs[MB_REGS]; /* this is the slave's modbus data map */
int pin9=9;

void setup() {
slave.begin( 9600 ); // baud-rate at 19200

pinMode(9,INPUT);
}

void loop() {
slave.poll( au16data, 16 );

regs[MB_REG9]=digitalRead(9);
}

E como estou configurando o scada: 

O arduino está na com 3 e também configurei o scada na com 3, na imagem não está pois já havia desconectado, mas não sei se eles devem estar na mesma com. 

Exibições: 936

Responder esta

Respostas a este tópico

Oi Alan, utilize essa lib aqui:

https://github.com/andresarmento/modbus-arduino

É mais nova e eu posso te ajudar se for preciso ;)

Tem tambem uma mega thread sobre ScadaBR+Arduino aqui:

http://labdegaragem.com/forum/topics/scadabr?id=6223006%3ATopic%3A1...

Olá professor obrigado pela ajuda vou ler o artigo e tentar mais um pouco.

Alan,

primeiro quero te parabenizar, pois vc está com sorte. O primeiro a te ajudar foi nosso mentor, prof. Andre Sarmento.

A biblioteca que ele publicou é muito boa. Sugiro seguir ela. Já estamos trabalhando nesse assunto faz algum tempo.

Você tem algum laboratório a sua disposição? Minha pergunta tem motivo.

Estamos precisando entender, através de medições, especialmente um osciloscópio, como as coisas se comunicam.

O principal são os tempos. Assunto legal para vc abordar no seu trabalho.

Todos os envolvidos na comunicação tem limites de tempo. E conhece-los é essencial. As vezes ao ligar um led vc não tem problemas, mas quando vc coloca uma lib especial, ou faz o arduino fazer alguma função vc perde a comunicação e dai fica louco para resolver.

Se topar te ajudamos e ainda queremos que publique. Topa?

Olá Sidney, eu estou montando um laboratório aos poucos, eu comprei um osciloscópio mas o mesmo está apresentando alguns problemas acho que vou ter que mandar para a assistência. Quando o mesmo retornar e com a orientação de vocês posso fazer os testes que precisarem sem problema e publico sim os resultados aqui. Obrigado desde já.

Alan,

isso mesmo. Tentando não, você conseguirá. Vamos fazer a coisa profissionalmente.

Vou ajudar com algumas opiniões.

Bom dia,

O projeto está evoluindo graças a ajuda de vocês, já estou conseguindo ler no scada um sensor de luminosidade, um sensor de chuva, e um sensor de vento (que por enquanto é só uma chave), e acionar um motor de acordo com a condição dos sensores.

Eu já criei uma interface gráfica que está mostrando o estado dos sensores. Eu criei um botão de escrita que liga e desliga o motor, mas eu preciso que este botão ligue o motor durante um tempo, ou seja, ao clicar o botão liga o motor por 1 segundo e depois desliga sozinho.

Outra questão existe como eu criar uma variável que me sinalize se o motor já foi acionado ou não?

Basta adicionar um gif binário, escolher o desenho e associar ao data point do motor.

Prof Andre, bom dia.

Estou utilizando sua biblioteca modbus TCP com mega2560 + W5100 + ScadaBR, gostaria de perguntar se tem como subir uma string de 12 caracteres do arduino para o scadabr .

Caso isso seja possível, qual seria a dica ?

SDS,

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço