Hola, buen día o tarde! hace algún tiempo estuve intentando comunicar un Arduino y un plc delta SS2 con el fin de crear una especie de ampliación de pines especialmente los análogos, pero debido a la falta de conocimiento y varios errores deje el proyecto, es por eso que me gustaría ver si alguno de ustedes sabe como trabajar en esta modalidad y me podría orientar un poco.
Aquí les dejo parte de lo que hice, que probablemente este malo, pero bueno algo se intentó:
#include <modbus.h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>
#define RS485TxEnablePin 2
#define RS485Baud 9600
#define RS485Format SERIAL_8E1
modbusDevice regBank;
modbusSlave slave;
void setup() {
slave._device = ®Bank;
slave.setBaud(&Serial1, RS485Baud, RS485Format, RS485TxEnablePin);
regBank.setId(1);
// Configurar pines digitales como entradas
for (int i = 2; i <= 13; i++) {
pinMode(i, INPUT);
regBank.add(40000 + i - 2); // Agregar registro para cada pin digital
}
// Configurar pines analógicos como entradas
for (int i = 0; i <= 5; i++) {
pinMode(A0 + i, INPUT);
regBank.add(40012 + i); // Agregar registro para cada pin analógico
}
}
void loop() {
// Leer valores de pines digitales y actualizar registros Modbus
for (int i = 2; i <= 13; i++) {
regBank.set(40000 + i - 2, digitalRead(i));
}
// Leer valores de pines analógicos y actualizar registros Modbus
for (int i = 0; i <= 5; i++) {
regBank.set(40012 + i, analogRead(A0 + i) / 4); // Dividir por 4 para ajustar al rango de 0-1023 a 0-255
}
// Ejecutar el esclavo Modbus
slave.run();
// Retardo para el loop
delay(2000);
}
La conexión del PLC y el Arduino fue mediante un Conversor TTL a RS485 MAX485CSA
En fin, el gran problema que tuve fue que nunca supe si realmente tuve comunicación entre el SS2- Delta y el Arduino, ya que se supone que las marcas M del PLC están en las direcciones 002049~003584 modbus y las Word o D estaban en las direcciones 404097~405376 pero por mucho que cambiara y cambiara valores nunca encontré algún cambio, si alguno tuviera algún dato o información adicional de como trabajar en esta modalidad me ayudaría muchísimo.
De ante mano muchas gracias!
