Eu estou usando um arduino para receber as informações de um modulo RFID.

Uso esta biblioteca e os pinos 0 para RX e 1 para TX no Arduino.

#include <SoftwareSerial.h>
SoftwareSerial pendrive(0,1);

Consigo ler os valores das TAG's e visualizá-los pelo Serial Monitor.

Agora gostaria de usar o banco de dados do scadabr para armazenar o valor das TAGS.

Como eu sou iniciante no uso do Arduino e Scadabr, gostaria que me ajudassem.

Estou usando Modbus Serial, mas até agora não encontrei nenhuma solução.

Exibições: 1134

Responder esta

Respostas a este tópico

cara,

Tem um tutorial  para uso do Mysql com o scadabr e normalmente já tem um BD chamado Derby (acho que é esse o nome). no geral é só criar as tabelas e relacionar o Bd com o scadabr pra quando vc solicitar o dado encontra-lo naturalmente sem problemas.De repente se vc explicar melhor o que vc quer, posso até dar uma olhada mas não vou me comprometer, devido o bando de coisas que tenho que fazer.

Agradeço pela atenção,

Eu fiz uma breve leitura no manual do scadabr sobre BD, mas ainda estou empacado na comunicação modbus então nem me aprofundei nesse assunto.

Estou tentando fazer uma rede sensores RFID para controle de processos, onde cada elemento do processo terá uma Tag RFID e conforme estes elementos iram passando pelos processos, (EX. uma linha de produção) informações serão geradas e armazenadas em um BD e pelo o scadabr o gestor da área poderá tomar decisões a respeito de tempo de produção controle de auditoria e coisas do tipo.

Este é o firmware para leitura das TAGs, tentei integrar com o exemplo modbus mas não funciona.

O scada comunica com o arduino, mas eu não sei como meu datapoint vai ler os registradores do Arduino.

#include <SoftwareSerial.h>

#include <modbus.h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>

modbusDevice regBank;// Dados acumulados serão armazenados aqui.
modbusSlave slave;// Cria o manipulador de protocolo Modbus escravo.
SoftwareSerial pendrive(2,3);// Utiliza as portas serial RX/TX do Arduino.

void setup ()
{
  Serial.begin(9600);// Velocidade da porta USB.
  pendrive.begin(9600);// Velocidade dos pinos Serial.
  regBank.setId(1);// Atribui o dispositivo ID para Modbus.
  regBank.add(10001);// Registrador para entrada digital.
  slave._device = &regBank;// Este é o lugar onde o manipulador de protocolo ficará a ler e escrever dados do registrar.
  slave.setBaud(9600);//Inicializa a porta serial para coms em 9600.
}

void loop()
  {
    char entrada = 0; // Variavel para leitura da TAG.
    String resposta = ""; // Variavel String.
    while (pendrive.available())// Quando disponivel dados nos pinos RX/TX.
      {
        entrada = pendrive.read();// Le TAG e armazena em entrada.
        if (entrada > 0)
        resposta += entrada;
       }
          pendrive.flush();// Quando não conseguir ler TAG.
            if ( !resposta.equals(""))
            Serial.println(resposta);
            delay(100);
            
            regBank.set (10001, resposta);// Loca a variavel resposta no registrador 10001
            slave.run();
   }  

A variavel resposta é apenas um exemplo nem sei se posso trabalhar uma string desta forma.

Adriano,

que bom vê-lo novamente por aqui. O grupo ficou muito carente de um especialista em MODBUS. Como você estudou este assunto massivamente era o nosso guru para solução de problemas.

Não nos deixe!

Armando,

adorei seu projeto. Então vamos por partes. Primeiro, qual é este pacote de bibliotecas que está usando? Assim posso fazer o mesmo caminho quando tiver dúvidas.

Segundo, a TAG que está usando é um número grande não é? Vc está armazenando ela adequadamente? Não deu para ler o código todo. Mas durante a noite vou dar uma olhada e talvez faça um teste.

Vou dizer o motivo que gostei da ideia. Você está fazendo o scadabr ser um software de gestão da produção, coisa que me apaixona.

Vou contribuir ao máximo para ver este projeto andar.

Então Sidney achei interessante trabalhar com SCADABR desta forma, porem não tenho a mínima ideia se é possível fazer isso.

 Deixei a biblioteca em anexo caso você queira usar o exemplo. Eu não me lembro de onde fiz o download, mas quando eu tiver um tempo vou procurar.

A Tag que estou lendo é composta por 12 caracteres em Hexadecimal. A duvida é como eu vou colocar esse valor nos registradores e como meu datapoint ira ler esses registradores.

Agradeço pela atenção.

Anexos

Armando o Link está fora do ar

Então,

dei uma estudada e conversei com um amigo fera nessa área e ele disse que tem jeito sim. Vc pode usar as funções do arduino para ler a tag, transforma-la em numeros ou codigos melhores e ler no scadabr.

Bem, como eu estou cheio de coisas pra fazer (será que um dia eu vou ter um pouco de sossego?) vou deixar vc se vira com a comunicação modbus, até porque esse assunto já foi intensamente analisado por mim e pelo sidney.Vou focar no BD, não sei se vc tem algum conhecimento no assunto, mas vou trata-lo como se não soubesse, por uma questão didática.

primeiro de tudo e definir o modelo conceitual que vem do minimundo(o que te interessa realmente, que o BD de dados faça)a parti do minimundo vc vai modelar as entidades do banco e depois é só criar as tabelas em qualquer BD por exemplo MySQL.Como as informações que vc deu são vagas não consigo fazer um modelo conceitual e logico pra vc, teria que ter mais detalhes.

 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço