Recorro mais uma vez ao fórum para pedir esclarecimentos.
Alguém já utilizou o Arduino como Slave e o ScadaBR como Master em uma rede Master/Slave utilizando como protocolo o Modbus Serial, tendo como meio físico o barramento RS-232?
Procurei em diversos tópicos, mas o que encontrei foi apenas para barramento RS-485.
Bem eu não sou parte da equipe MCA, normalmete costumo trabalhar no LDG e lá eu sou o help desk "não oficial" do forum com scadabr $=).
Mas como usualmente passo por aqui pra ver as novidades do scadabr,vou aproveitar pra responder alguma coisa por aqui também.
sinceramente as diferenças entre o RS232 e o RS 485 são minimas pois ambos são seriais, la no laboratorio de garagem focamos no Rs 485 por ser uma rede fisica barata e de grande extensão, podendo ter até 32 dispositivo s no mesmo barramento, chegando a uma distancia que passa de 1 Km, já rs232 se chegar a 15metros é demais ,Caso esteja falando besteira que os colegas da MCA me corrijam. Para resolver nosso problema de comunicação rápida e simples sem toda a fuleragem do rs485 usamos o usb que é tão bom quanto o rs232 é ja vem integrado no arduino, por sinal foi por ai que iniciamos nosso projeto do post laboratorio de garagem.logo abaixo vai o link do post.
Bom, em topologia de hardware funciona assim: O microcontrolador tem 2-3 pinos, Tx, Rx e Direção (só RS485); O código funciona utilizando esta lógica a diferença entre RS232, USB-Serial e RS485 é só o chip de driver que é colocado no final.
A diferença do RS485 para o RS232 é bem gritante! O RS485 utiliza para comunicação um par trançado diferencial, que equivale a um fio de dados, logo ele utiliza "apenas um fio" para comunicação bi-direcional de uma rede inteira. Já o RS232 utiliza dois fios de dados, um para TX e um para RX que utiliza tensão referente ao fio de terra, logo são dois fios de dados. Então, se o código foi implementado para RS485 ele precisa garantir que nunca terá colisão, consequentemente ele funciona também utilizando USB ou RS232. Porém código para RS232 possivelmente não funcionará em RS485!
O arduino já possui um conversor serial-TTL para USB, se quiser utilizar RS232 ou RS485 é só comprar um chip de driver, pregar na protoboard e mandar ver!
Agradeço muito pela resposta e fico muito satisfeito por sua atenção.
Estou me baseando justamente neste link que você me passou. Muitas dúvidas solucionei por lá. Contudo, meu problema é na parte física. O barramento RS-232 é do tipo full-duplex pois possue o par RX/TX, já o barramento RS-485 é half-duplex possuindo o par diferencial de sinais -A/+B (as libraries Modbus do Arduino baseiam-se em half-duplex) e é com este enlace físico que os colegas do LDG trabalharam.
Nas dezenas de pesquisas que fiz, não encontrei como fazer a conexão física entre ScadaBR+BarramentoRS-232+Arduino. Mais especificamente o problema é o seguinte:
- Que pinos conectar entre o Arduino e o MAX232 (conversor TTL-RS232)?
- Que pinos conectar entre o barramento e o conversor RS-232 para USB (conversor RS232-TTL)?
Este é meu problema.
Não sei se fui claro, mas se alguém tiver um pequeno esclarecimento, será de grande valia.
Para montar o MAX232 você precisa dar uma olhada no datasheet, ele precisa de 4 capacitores eletrolíticos conectados igual fala no datasheet para funcionar. Para utilizar ele possui dois drivers full duplex. Aqui tem um esquema extraído do datasheet que vai te clarificar:
http://www.maximintegrated.com/images/qv/1798.gif
Já no conversor RS232-USB você vai usar apenas os pinos 2,3 e 5, respectivamente RX, TX e GND. Na figura abaixo tem a pinagem certinha.
Recomendo sempre que for trabalhar com um novo protocolo, antes faça um teste simples com um programinha de poucas linhas para ver se o byte que está sendo enviado está chegando direitinho.