Alguém conhece o scadabr e sabe como usa-lo, caso conheça por favor entre em contato pois preciso de algumas informações.

Uma delas é o protocolo modbus pois queria saber como comunicar um sensor,atuador,etc como o supervisor por meio de um microcontrolador ou coisa paracida, me parece que para poder acionar ou receber informações o supervisorio precisa de um clp (que é caro) ou por um microcontrolador?

se alguém tiver informações sobre como usar e implementar ou pelo menos mostrar o caminho das pedras já agradeço.

adriano

Exibições: 97572

Responder esta

Respostas a este tópico

Oi Adriano será que alguém pode montar uma lista bem bonitinha do que é necessário para montar essa ttl? quando se fala em max 485 tem várias versões mas parece que o SN75176 é mais barato e tem muitas outrras vesrões. Ai para mim complica as coisas. Vou pedir a um amigo colocar na loja dele. Ele sempre faz um preço muito legal para vários equipamentos. A galera do arduino bsb conhece ele.

oi marcos no geral o a plaquinha de TTL/RS485 são as plaquinhas que cada escravo necessita para se comunicar no barramento RS485, o nosso amigo Marcos trabalhou com excelência em uma plaquinha desse tipo que agora pretendemos confeccionar eu já até montei o layout da placa mas nao vou colocar aqui no post pois que ver se a montagem fica correta,se vc for na folha 34 desse post vc vai encontrar lá o esquema e um pouco depois uma montagem no fritizing (não sei se é esse o nome), vc LTC485,MAX485 e se não me engano esse que vc tem tb e todos tem a mesma pinagem, logo te confirmo o ultimo.

Bem, logo te mando mais detalhes, mas como falei nesse mesmo post na folha 34 vc encontra o esquema, mas caso for vou te fazer uma lista logo.

Adriano, meu favorito é esse aqui:

http://www.comm5.com.br/1S-USB-485--CONVERSOR-USB-PARA-SERIAL-RS485

Pessoal do LdG me desculpe se isso infringir os termos de serviço, mas por ser de utilidade pública lancei o post aqui, não é propaganda não heim :-D

Nem ganho comissão lá com eles!!! hehehe

abração

Oi Vitor,

Esse seu conversor parece ser tudo de bom, mas o preço deve ser salgado, e aqui ja ta virando moda usarmos nossa criatividade pra conseguir um "EQUIVALENTE", além de que temos tido um otimo apoio de todo grupo e de vc e do Wiechert que tem contribuindo muito com a grupo

Oi Adriano,

Eu procurei saber o preço, R$165,00 no ml.

Abraço.

Olá Pessoal,

Segue o esquema e o material do conversor TTL/RS485.

Componentes:

01 Circuito integrado MAX485 ou SN75176 ou LTC485, outros equivalentes devem ser verificados através da comparação dos datasheets;

02 Leds de 3mm;

01 Resistor de 120R x 1/8W;

02 Resistor de 560R x 1/8W;

02 Resistor de 2k2 x 1/8W;

01 Capacitor cerâmico de 100nF x 50V;

01 Borne de parafuso de 3 vias;

01 microswich de duas vias;

01 barra de conector de 5 vias; (igual ao usado nos pinos de I/O do arduino)

01 pedaço de placa de circuito impresso com ilhas furos, conhecida como placa universal.

Diagrama:

 

Abraços

 

ola amigo, estou com esse circuito e montei certinho igual vc fez, agora me da um help, preciso saber onde ligar essa pinagem no arduino, e qual a linha de codigo para que eu possa usar com scadabr para ler os dados das entradas analogicas.. por favor, ficarei grato se puder me ajudar.

olha o que eu fiz:  instalei a biblioteca do jpmzometa no arduino 022.

com este codigo:

#include <ModbusSlave.h>  
      
/* First step MBS: create an instance */  
ModbusSlave mbs;  
/* slave registers */  
enum {          
            MB_REG0,  
            MB_CTRL,        /* Led control on, off or blink */  
            MB_CTRL1,        /* Led control on, off or blink */  
            MB_CTRL2,        /* Led control on, off or blink */  
            MB_TIME,        /* blink time in milliseconds */  
            MB_CNT,        /* count the number of blinks */  
            MB_REGS     /* total number of registers on slave */  
};  
      
float temperatura = 0;  
int regs[MB_REGS];  
int ledPin = 13;  
int ledPin1 = 4;
int ledPin2 = 5;

void setup() {  
/* the Modbus slave configuration parameters */  
const unsigned char SLAVE = 1;  
const long BAUD = 9600;  
const char PARITY = 'n';  
const char TXENPIN = 1;  

/* Second step MBS: configure */  
mbs.configure(SLAVE,BAUD,PARITY,TXENPIN);  

pinMode(ledPin, OUTPUT);  
pinMode(ledPin1, OUTPUT);  
pinMode(ledPin2, OUTPUT);  
pinMode(2, INPUT);  
}  
      
void loop()  
{  

       temperatura=analogRead(1); //porta 1 analogica
       temperatura = (temperatura * 0.00488);  // 5V / 1023 = 0.00488 (precisão do A/D)
       temperatura = temperatura * 100; //Converte milivolts para graus celcius, lembrando que a cada 10mV equivalem a 1 grau celcius
       regs[MB_REG0]=temperatura;  

    if(regs[MB_CTRL]==0){
                digitalWrite(ledPin, LOW);
                  
            }
          else {
                digitalWrite(ledPin, HIGH);}
       

    if(regs[MB_CTRL1]==0){
                digitalWrite(ledPin1, LOW);}
          else {
                digitalWrite(ledPin1, HIGH);}
        
    if(regs[MB_CTRL2]==0){
                digitalWrite(ledPin2, LOW);}
          else {
                digitalWrite(ledPin2, HIGH);}

        
     /* Third and las step MBS: update in loop*/  
      mbs.update(regs, MB_REGS);

E os leds não funcionam para piscar pelo scadabr apesar da temperatura aparecer. Os números no watch ficam piscando mas os leds não. Se eu colocar os leds dentro de um case ficam ligados, se for um if ficam desligados.

Marcos,

bom o seu trabalho. Depois você poderia descrever qual a finalidade. Ajuda a entendermos o que planejou.

Agora sobre as imagens tenho algo para lhe falar. Você percebeu que todos os datapoints estão com o mesmo offset? Não pode ser assim. Cada datapoint tem um offset partindo do zero. então o CTRL é o offset 0, o CRTL1 te que ter o offset 1, e assim sucessivamente até terminar seus registradores.

Lembrar também que seu datasource, pela foto, está desligado pois tem uma bolinha vermelha no canto superior direito da tela.

Entendeu? Estamos à disposição.

Oi Marcus,

o "Offset" no ScadaBR se refere à tabela de registradores que vc criou no Arduino. Não coloque todos em zero não, faça assim::

MB_REG0,  = offset 0
MB_CTRL,   = offset 1
MB_CTRL1,    = offset 2
MB_CTRL2,      = offset 3
MB_TIME,  = offset 4
MB_CNT,  = offset 5

Por isso a temperatura funcionou :-D

abç

Perfeito, foi isso mesmo. Valeu Victor e Sidney, acho que eu não entendia muito bem o que esse offset servia apesar de ter lido muito sobre ele. Mudei os offsets e ficou belezinha. Eu ficava parando e indo para ele poder funcionar. Eu estava tentando ver se ele poderia funcionar para o 1 mas realmente não dá. Tem que arrumar muito a lib. Valeu. Fica ai agora esse manual para sempre que eu quiser ver não me esquecer mais :D

Oi Caros colegas,

Estou tentando comunicar meu conveersor com o RS485/TTL e passar o codigo pra teste no escravo modbus, uma das duvidas é porque tem dois resistores 560 oms  em serie com o resistor terminador de 120oms no circuito do Marcos.Afinal não é só 120oms num ponto inicial e 120 oms no extremo da rede?.

Eu estou lendo toda sequencia do post pra encontrar detalhes que possam ajudar.Como o post tem muita informação sobre RS485 ainda estou a ler tudo.

ps: é o mesmo converosr do marcos

agradeço desde já a ajuda de todos.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço