Leer datos seriales a través de comunicación RTU con RS485 y Arduino UNO

Hola a todos:

El asunto es el siguiente, estoy intentando "hackear" un sistema de BMS, el cual tiene un servidor central que envía señales a los diferentes controladores para que hagan sus respectivas tareas.
Tengo entendido que está enviando señales en serial (RTU) y no ASCII, a través del protocolo RS485, lo que quiero hacer es entender que tipo de datos está enviando el servidor central a un controlador en específico en el que centraré mi atención. Estoy casi seguro de que lo que manda es un número, tan solo un número.

Por lo tanto, lo que quiero es que usando un MAX 485 y un Arduino UNO, desarrollar un código que lea esos seriales, los interprete (los haga legibles) y los presente en pantalla (serial).

En este caso tengo entendido que el arduino trabajará como esclavo (slave) y el servidor central como master, sin embargo, para combropar que está llegando requiero que arduino presente el valor en pantalla a través del monitor serial.

Alguien tiene una sugerencia de por donde puedo empezar o si alguien ha desarrollado un proyecto algo similiar me podría ayudar con el código.
No tengo códigos desarrollados para mostrar.

Agradezco mucho la ayuda

Pero eso esta hecho amigo, usa el MAX485 y con una aplicación de PC la usas como monitor.
Busca : Monitor RS485 o la inversa en inglés.
Configuras al RS485 como escucha o sea RX y ves todas las tramas.
No recuerdo el nombre, Modbus Poll o algo asi era uno pero tenes que buscar versiones nuevas porque son de la época XP y no se si funcionen.
El programa que te menciono o los programas porque varios permiten ver las tramas, separan la información y la hacen legible para tu caso, y no importa si es RTU o ACII, al igual que todo tipo de configuración que puedas tener.
Todo es seleccionable. Vi que has consultado en inglés asi que no tendrás problema en encontrarlo.

Gracias por la información mi estimado, es muy útil, lo consultaré ahora mismo.

Saludos !

Encontré un código parecido que me podría permitir resolver mi problema pero no parece haberlo hecho, adjunto el código, no estoy seguro de si lo estoy haciendo bien, podrían ayudarme.

Adjunto también una foto de las conecciones que tiene arduino y MAX 485 al cual entran las señales diferenciales con protocolo RS485.

Necesito que los valores que llegan se impriman en la pantalla de la computadora, en otras palabras, debe decodificar la señal y hacerla legible.

Gracias

El siguiente código corresponde al arduino UNO que hace de slave de un servidor central.

#include <SoftwareSerial.h>

#define SSerialRX 10
#define SSerialTX 11

#define SSerialTxControl 12

SoftwareSerial RS485Serial(SSerialRX, SSerialTX);

int data_received;


void setup()
{
  Serial.begin(9600);
  RS485Serial.begin(9600);

  pinMode(SSerialTxControl, OUTPUT);

  digitalWrite(SSerialTxControl, LOW);
  
}

void loop()
{
 if(RS485Serial.available()>0)
 {
  data_received = RS485Serial.read();

  if  (Serial.available()>0)
  {
    Serial.println(data_received);
  }       
 }
}

Foto adjunta

**Las fotos deben verse en tu post, no adjuntarse. Editalo y usa el tag de imagenes (junto al eslabón, el que tiene forma de pantalla). **

Que tal todos:

Pongamosle de esta manera, hice que el Arduino MEGA lea los seriales que la BMS está mandando a través de conección RS485, para eso utilicé el transceiver MAX 485 y lo activé unicamente como escucha; yo pensaba que lo que iba a leer era un número o algo legible, pero no lo es, son caracteres ASCII de 130 para arriba, lee alrededor de 9 por comando, es decir, mando un comando desde la BMS y lee 9 caracteres, mando otro y vuelve a leer otros 9; me imagino que esos 9 corresponden a los estructura (frame) del protocolo de comunicación, ustedes saben inicio, data, fin, etc. bla bla

La verdad no encuentro explicación y quería utilizar un analizador lógico para determinar la naturaleza del protocolo que se está usando ustedes saben: modbus (rtu o ascii), i2c, y toda la letanía. Con ese analizador espero intentar encontrar que rayos está mandando la BMS al controlador y reemplazar el controlador actual con un arduino mega, el cual ya está programado para hacer su función (controlar un DC). Lo único que me falta es saber "en que idioma están hablando la BMS y el controlador actual", alguien tiene idea o ha trabajado en un proyecto similar, algún hardware/software que me recomienden? O si talvez conocen algo de los protocolos que usa Siemens ? No soy ingeniero electrónico por lo que no tengo idea de como resolverlo.

Alguna idea ?

Gracias anticipadas

Acá dice que los protocolos son BACNet & LonWorks

Communication protocol mostly used for BMS application are BACnet ( Building Automation Controller network ),LONtalk ( Local Operating Network ), Modbus.

Si es ModBus es Modbus TCP/IP

NOTA: no lo sabía, lo investigué. Google: Building management system protocol y sigue la búsqueda o profundízala