Tengo alrededor de 60-70 inversores con los que quiero hablar usando arduino sobre RS-485. La conexión que estoy haciendo con arduino está de acuerdo con la imagen adjunta.
¡Ahora creo que mi parte de conexión está bien! Donde me estoy quedando atrás es la parte de codificación, supongo. En cuanto a cada solicitud, no puedo hacer ni una sola solicitud exitosa.
LabibliotecademodbusqueestoyusandoesSimpleModbusLibrary,aquíestáelenlace:
El formato de datos que utiliza el fabricante del inversor es el siguiente: byte de inicio, dirección de esclavo, código de función, datos, verificación, byte final.
Mientras que la solicitud que estoy enviando a través de mi dispositivo maestro se ve así:
paquete1- > id = 25; packet1- > function = READ_HOLDING_REGISTERS; paquete1- > dirección = 3000; packet1- > no_of_registers = 3; packet1- > register_array = regs;
No estoy incluyendo ningún byte de inicio o final. ¿Es la razón por la que no puedo recibir ninguna respuesta del dispositivo esclavo? ¿O es porque también tengo que programar la respuesta de los dispositivos esclavos?
A partir de ahora solo estoy jugando con el código del dispositivo maestro y no he descubierto cómo recibir la respuesta del esclavo y cómo descodificarlo. Cada biblioteca modubs parece tener dos tipos de programas uno para el maestro y otro para el esclavo. Mientras que solo uso el código maestro para enviar solicitudes a los esclavos.
¿También tengo que programar para esclavos? Si es así, ¿cómo programar tanto el maestro como los esclavos en mi dispositivo maestro arduino que está hablando con mis inversores?
Soy nuevo en arduino pero tengo experiencia en programación. Solo falta algunos conceptos básicos en electrónica y modubs protorcol sobre RS-485. Por favor ayúdame por favor
Gracias de antemano.
P.S: He conectado todos mis inversores a través de los puertos RS_485 correctamente, estoy conectando el extremo negativo al pin 7 en el chip RS-485 y el cable positivo al pin 6 en el chip