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) */
        
                
                
                   
}

Exibições: 2598

Responder esta

Respostas a este tópico

Caraca, tem como fazer por USB direto????

Puxa, que alívio!!!

Estou com o tempo muito curto para fazer o protótipo, vou chegar em casa hoje já detonando com o Scadabr e o arduino na comunicação via USB.

 

 

Vc instalou a biblioteca na pasta certa? Acho que é isso.

Sidney.

Você tem alguma versão mais recente do scadaBR  que tem a possibilidade de importar e exportar projetos?

A versão que estou usando é a 1.0. Ele exporta mas não é tudo.

Poderia passar um link para download? 

Vou instalar e do um feedback.

HTTP Status 404 -


type Status report

message

description The requested resource () is not available.


Apache Tomcat/6.0.26

Tomcat rodando normalmente e retorna esse erro. Tenho uma versão antiga e não consegui exportar. Estou trabalhando numa aplicação com ESP8266 rodando protocolo modbus TCP/IP e se comunicando com o scadaBR. Gostaria de gerar o executável pra disponibilizar pra download.

Foi.

Baixei novamente. Essa versão parece ser mais estável (Até empolgou). Amanha testo a exportação e importação de projetos. Também irei implementar as funçoes write e read silngle register no ESP. 

Anexos

Jucelei,

quero testar isso também. Me ajuda. Qual o software vc colocou no ESP8266?

Lembre-se que ao compilar para o arduino, vc está com uma versão com extensao .pde e isso significa que é para arduino 0.23. Depois que mudou para versão 1.0 da ide do arduino/esp muita coisa mudou.

Olha direitinho isso.

Lembre-se de a usar versão do java 6.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço