Excelente video, tengo una duda. Lo que pasa es que estoy usando una placa WT32 ( Un esp32 con interface ethernet). Mi pregunta es la siguiente ¿ Como debiese ser el ejemplo con un cable de red en vez de Wifi?
Hola Tomás, gracias. No se que IC tendrá la placa, pero la librería que use para WiFi tiene soporte para libreria Ethernet. Revise este enlace: github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-Ethernet Saludos desde Colombia
Hola buenas tardes, muchas gracias. Modbus es un protocolo "genérico" por así decirlo. Se debería cambiar las direcciones a los registros del nodo o RTU que se quiera leer, esto lo indica el manual del equipo o dispositivo. Saludos desde Colombia.
Hi, thank you. Basically, you can see the function uint16_t writeHreg(IPAddress ip, uint16_t offset, uint16_t value, cbTransaction cb = nullptr, uint8_t uint = MODBUSIP_UNIT); Please, see the examples for this function in the following link: github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-ESP Also, I made a code for a speed drive. Please traduce the comments to english (see the part : "mb1.writeHreg(ID_ESCLAVO,direccion,valor);" ID_ESCLAVO: SLAVE_ID Direccion: Address of your register Value: Value to write to the register github.com/Uniminutoarduino/CanalRUclips/blob/main/MODBUS/ESP32/VariadorVelocidadArduino.ino
Hola Gerardo, si esa dirección es de mi red que tengo con el router. Uno puede configurar la IP dependiendo del rango que tenga en la red de uno y ajustarla a la que tiene el ESP32, por defecto es la del video.
@@vincent4343 Esta es la dirección (offset) del registro que contendrá la información a donde se va a escribir o donde se va a leer en MODBUS dependiendo del ejemplo que seleccione en la libreria. Esta dirección puede ir hasta 9999. Por defecto la dirección es el 100.
Excelente video Profe. Estoy en la realización de un proyecto de monitoreo de variables modbus y me gustaría me compartiera su asesoría, Me podría regalar su correo electrónico.
Hello, I want to assign the value of the holding register to the servo motor. For example, if I write the holding register data 90 and the servo motor rotates to 90 degrees, what should I do?😀
Hi, I think you need to modificate in the code the address of the holding register. You can use this example: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/client/client.ino Also, this is the library's documentation in the video: github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-ESP#API Here, use writeHreg to write the angle value of your motor. Best regards.
@@taloselectronico Hello, thank you for your reply. My ESP32 serves as a modbus TCP server and I use modbus poll as the client. Now I can write holding register data normally. The problem is that no matter what value is written, the servo will not rotate. What if I want the initial value of the servo to be 90 degrees, the initial value of the register to be 90 degrees, and the servo to rotate to as many degrees as the register data is? Here is my ESP32 program, I'm not sure where the problem lies. #ifdef ESP8266 #include #else //ESP32 #include #endif #include "ModbusIP_ESP8266.h" #include // Modbus Registers Offsets const int TEST_HREG = 0; unsigned int sever0_data; Servo myservo; //ModbusIP object ModbusIP mb;
void setup() { Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
@@sillydog3647 Are you writing the angle value from the client to server? 1. If so, may you need to change sever0_data=mb.addHreg(TEST_HREG); to sever0_data=mb.readHreg(TEST_HREG); Also print the value that you are receiving, here: sever0_data=mb.readHreg(TEST_HREG); Serial.print(sever0_data); myservo.write(sever0_data); The addHreg only adds or allocates a holding register in the address (0x00) to your ESP32 memory but not read the value storaged in this register. To read the value Instead use readHreg. 2. Another problem could be due to the type of variable that you are using. Change sever0_data to int and print the value that you are receiving: sever0_data=mb.Hreg(TEST_HREG); Serial.print(sever0_data); myservo.write(sever0_data); I changed addHreg to Hreg. This is another option to read the register. Finally, for debugging purposes (print), change the delay, for example, to 100 ms.
@@taloselectronico Hello,I write the angle value from the client to server,I change my code to this,but it shows some error:no matching function for call to 'ModbusIP::readHreg(const int&)' sever0_data=mb.readHreg(TEST_HREG); And here is my code: #ifdef ESP8266 #include #else //ESP32 #include #endif #include "ModbusIP_ESP8266.h" #include const int TEST_HREG = 0; int sever0_data; Servo myservo; ModbusIP mb;
void setup() { Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
@@taloselectronico Hello,the code is right and could upload,thank you! #ifdef ESP8266 #include #else #include #endif #include #include int TEST_HREG0 = 0; int TEST_HREG1 = 1; int TEST_HREG1 = 2; int TEST_HREG1 = 3; int TEST_HREG1 = 4; int TEST_HREG1 = 5; int TEST_HREG1 = 6; int TEST_HREG1 = 7; int TEST_HREG1 = 8; int TEST_HREG1 = 9; int sever0_data; int sever1_data; int sever2_data; int sever3_data; int sever4_data; int sever5_data; int sever6_data; int sever7_data; int sever8_data; int sever9_data; Servo myservo0; Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; Servo myservo7; Servo myservo8; Servo myservo9; ModbusIP mb;
void setup() { Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Si el router me dice que esta conectado pero no me aparece la dirección ip en el monitor en serie , pero la MAC del dispositivo aparece vinculado, estoy conectando el ESP 32 con un WLAN 1100 (PHOENIX CONTAC) en el administrador web (del wlan) me dice que en los dispositivos conectados esta el ESP 32 y de da la MAC, pero en el Monitor en serie se queda mostrando solo puntos es decir que se queda en el while y no me muestra la ip address, que podría hacer ?, Lo conecto a el router de mi casa y pasa exactamente lo mismo.
Parece que el ESP32 no se conecta Alejandra. Hay que verificar la IP del router o si tal vez el router tiene un proxy que rechaza la conexión. También habría que reiniciar el ESP32 una vez se carga el código, habría que probar estas opciones.
@@taloselectronico Muchas gracias , para conectar el WLAN con un tablet o telefono debo de configurar la ip u que sea estática le pongo los datos y conecta, como puedo hacerlo en el ESP 32? Seria ponerle los datos de direccion ip propia, ip del wlan, "longitud de prefijo" dns 1 , dns 2, como puedo yo asignarle (programar) al esp 32 estos valores ?
@@AAlejandra_Saav te toca mirar los parametros de Wifi. Mira este ejemplo de Arduino para configurar el DNS (Debe funcionar para ESP32): www.arduino.cc/reference/en/libraries/wifi/wifi.setdns/
Hola Mario gca. Tal vez es que el ESP32 no se esta conectando a la red o hay que incrementar el tiempo de retraso en el inicio de la conexión a red. Saludos desde Colombia.
@@taloselectronico hola gracias. Ya lo solucioné, es que cada vez que tocaba el botón de reset o le desconectaba la alimentación el esp32 volvía a una programación anterior. No me preguntes por qué. Entonces se borraba el programa del modbus y volvía a "programarse solo" en programa de ota. Es raro. Ahora sé que no lo puedo apagar.
no quisiera ser molesto pero... como puedo hacerlo en RTU?, quiero leer entrada analogica desde modbus RTU, me podrias dar un ejemplo porfa no encuentro como hacerlo, he visto que en la libreria hay ejemplos pero no se como funcionan
Buenos días Mr.GameplaySans, para trabajar con Modbus RTU debe hacerse usando un puerto serial del ESP32, en mi caso funciono bien el número 2, si quiere dejeme crear un código base que le puede ayudar y se lo envio por este medio.
@@andreeu570 Revise este código en modo RTU, aquí use el serial 2 del ESP32: drive.google.com/file/d/1xstCxT9dUJFgSmowAz_zUW_HB9pBPkSl/view?usp=sharing
@@andreeu570 Si disculpas es que tome una plantilla de modbus TCP/IP, esa parte la puede omitir del código. Pense que era si ud queria hacer un puente entre modbus TCP/IP y Modbus RTU, pero para lo que lo necesita lo puede omitir.
Hola Mr.GameplaySans, para modificar un número entero cree una variable de tipo entera (contador), por ejemplo, y enviela a un registro MODBUS. Para esto guiese por el ejemplo de lectura de valor análogo que esta en el link y que explico en el video: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/IP-server-AnalogInput/IP-server-AnalogInput.ino Cuando cree la variable, cambie la parte en el loop que dice AnalogRead(A0) por la variable que se quiere enviar. En cuanto a la segunda pregunta del Led, habría que crear otro registro en otra dirección, por ejemplo la 101,. Entonces se crearía en la pte que dice: "const int LED_COIL2 = 101;" , en segundo lugar, configura el segundo led como salida y finalmente en el loop enlaza la salida con el registro donde dice "digitalWrite(ledPin, mb.Coil(LED_COIL2));" El ejemplo de Led está en: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/IP-server-Led/IP-server-Led.ino Creo que lo anterior le puede ayudar. Saludos cordiales
@@andreeu570 Revise estos dos códigos que cree, uno para los dos leds y otro para la variable entera. Espero que le sirvan. drive.google.com/file/d/1SzjdruS8vhxL6BiVdtqKZiga3ZM6DPkh/view?usp=sharing drive.google.com/file/d/1wlarOYhOufuqasUuJ8-DSoQPcVsy5UU4/view?usp=sharing
talos no me estaria funcionando, la unica diferencia que veo es que la instruccion ModbusIP mb no se pone en naranja.. como si tuviera problemas para reconocer el objeto..ModbusIP
Buenos días Gustavo. Yo creo que puede ser un problema en la librería. Hay que incluir todos lops archivos dentro de la misma carpeta del proyecto. También verificar la IP de los dispositivos en la red y del ESP32. Tendría que ver el código. Si quiere escribame a taloselectronico@gmail.com
buen video pero... que tendria que hacer para modificar un numero entero desde modbuss?
Excelente video, tengo una duda. Lo que pasa es que estoy usando una placa WT32 ( Un esp32 con interface ethernet). Mi pregunta es la siguiente ¿ Como debiese ser el ejemplo con un cable de red en vez de Wifi?
Hola Tomás, gracias. No se que IC tendrá la placa, pero la librería que use para WiFi tiene soporte para libreria Ethernet. Revise este enlace:
github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-Ethernet
Saludos desde Colombia
hola, exelente video....como podria leed registros de otros equipos por modbus tcp?
Hola buenas tardes, muchas gracias. Modbus es un protocolo "genérico" por así decirlo. Se debería cambiar las direcciones a los registros del nodo o RTU que se quiera leer, esto lo indica el manual del equipo o dispositivo.
Saludos desde Colombia.
Thanks for tutorial.How can we use Write Single Register?
Hi, thank you. Basically, you can see the function uint16_t writeHreg(IPAddress ip, uint16_t offset, uint16_t value, cbTransaction cb = nullptr, uint8_t uint = MODBUSIP_UNIT);
Please, see the examples for this function in the following link: github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-ESP
Also, I made a code for a speed drive. Please traduce the comments to english (see the part : "mb1.writeHreg(ID_ESCLAVO,direccion,valor);"
ID_ESCLAVO: SLAVE_ID
Direccion: Address of your register
Value: Value to write to the register
github.com/Uniminutoarduino/CanalRUclips/blob/main/MODBUS/ESP32/VariadorVelocidadArduino.ino
buen video men, tengo una consulta:
Donde sacas esa direccion? del mismo ESP32?
Hola Gerardo, si esa dirección es de mi red que tengo con el router. Uno puede configurar la IP dependiendo del rango que tenga en la red de uno y ajustarla a la que tiene el ESP32, por defecto es la del video.
@@taloselectronico si correcto, me refiero a la direccion 100
@@vincent4343 Esta es la dirección (offset) del registro que contendrá la información a donde se va a escribir o donde se va a leer en MODBUS dependiendo del ejemplo que seleccione en la libreria. Esta dirección puede ir hasta 9999. Por defecto la dirección es el 100.
Excelente video Profe. Estoy en la realización de un proyecto de monitoreo de variables modbus y me gustaría me compartiera su asesoría, Me podría regalar su correo electrónico.
Muchas gracias Yerson, es taloselectronico@gmail.com
Hello, I want to assign the value of the holding register to the servo motor. For example, if I write the holding register data 90 and the servo motor rotates to 90 degrees, what should I do?😀
Hi, I think you need to modificate in the code the address of the holding register. You can use this example: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/client/client.ino
Also, this is the library's documentation in the video: github.com/emelianov/modbus-esp8266/tree/master/examples/TCP-ESP#API
Here, use writeHreg to write the angle value of your motor.
Best regards.
@@taloselectronico Hello, thank you for your reply. My ESP32 serves as a modbus TCP server and I use modbus poll as the client. Now I can write holding register data normally. The problem is that no matter what value is written, the servo will not rotate. What if I want the initial value of the servo to be 90 degrees, the initial value of the register to be 90 degrees, and the servo to rotate to as many degrees as the register data is? Here is my ESP32 program, I'm not sure where the problem lies.
#ifdef ESP8266
#include
#else //ESP32
#include
#endif
#include "ModbusIP_ESP8266.h"
#include
// Modbus Registers Offsets
const int TEST_HREG = 0;
unsigned int sever0_data;
Servo myservo;
//ModbusIP object
ModbusIP mb;
void setup() {
Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
myservo.attach(2);
mb.server();
mb.addHreg(TEST_HREG,0x00);
}
void loop() {
//Call once inside loop() - all magic here
mb.task();
sever0_data=mb.addHreg(TEST_HREG);
myservo.write(sever0_data);
delay(10);
}
@@sillydog3647 Are you writing the angle value from the client to server?
1. If so, may you need to change
sever0_data=mb.addHreg(TEST_HREG); to
sever0_data=mb.readHreg(TEST_HREG);
Also print the value that you are receiving, here:
sever0_data=mb.readHreg(TEST_HREG);
Serial.print(sever0_data);
myservo.write(sever0_data);
The addHreg only adds or allocates a holding register in the address (0x00) to your ESP32 memory but not read the value storaged in this register. To read the value Instead use readHreg.
2. Another problem could be due to the type of variable that you are using. Change sever0_data to int and print the value that you are receiving:
sever0_data=mb.Hreg(TEST_HREG);
Serial.print(sever0_data);
myservo.write(sever0_data);
I changed addHreg to Hreg. This is another option to read the register.
Finally, for debugging purposes (print), change the delay, for example, to 100 ms.
@@taloselectronico Hello,I write the angle value from the client to server,I change my code to this,but it shows some error:no matching function for call to 'ModbusIP::readHreg(const int&)'
sever0_data=mb.readHreg(TEST_HREG);
And here is my code:
#ifdef ESP8266
#include
#else //ESP32
#include
#endif
#include "ModbusIP_ESP8266.h"
#include
const int TEST_HREG = 0;
int sever0_data;
Servo myservo;
ModbusIP mb;
void setup()
{
Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
myservo.attach(15);
mb.server();
mb.addHreg(TEST_HREG,0x00);
}
void loop() {
mb.task();
sever0_data=mb.readHreg(TEST_HREG);
Serial.println(sever0_data);
myservo.write(sever0_data);
delay(100);
}
@@taloselectronico Hello,the code is right and could upload,thank you!
#ifdef ESP8266
#include
#else
#include
#endif
#include
#include
int TEST_HREG0 = 0;
int TEST_HREG1 = 1;
int TEST_HREG1 = 2;
int TEST_HREG1 = 3;
int TEST_HREG1 = 4;
int TEST_HREG1 = 5;
int TEST_HREG1 = 6;
int TEST_HREG1 = 7;
int TEST_HREG1 = 8;
int TEST_HREG1 = 9;
int sever0_data;
int sever1_data;
int sever2_data;
int sever3_data;
int sever4_data;
int sever5_data;
int sever6_data;
int sever7_data;
int sever8_data;
int sever9_data;
Servo myservo0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;
Servo myservo7;
Servo myservo8;
Servo myservo9;
ModbusIP mb;
void setup()
{
Serial.begin(115200);
WiFi.begin("HOU", "1372610017");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
myservo0.attach(15);
myservo1.attach(2);
myservo2.attach(4);
myservo3.attach(5);
myservo4.attach(12);
myservo5.attach(17);
myservo6.attach(19);
myservo7.attach(27);
myservo8.attach(18);
myservo9.attach(26);
mb.server();
mb.addHreg(TEST_HREG0, 0x5A);
mb.addHreg(TEST_HREG1, 0x5A);
mb.addHreg(TEST_HREG2, 0x5A);
mb.addHreg(TEST_HREG3, 0x5A);
mb.addHreg(TEST_HREG4, 0x5A);
mb.addHreg(TEST_HREG5, 0x5A);
mb.addHreg(TEST_HREG6, 0x5A);
mb.addHreg(TEST_HREG7, 0x5A);
mb.addHreg(TEST_HREG8, 0x5A);
mb.addHreg(TEST_HREG9, 0x5A);
}
void loop()
{
mb.task();
sever0_data=mb.Hreg(TEST_HREG0);
sever1_data=mb.Hreg(TEST_HREG1);
sever2_data=mb.Hreg(TEST_HREG2);
sever3_data=mb.Hreg(TEST_HREG3);
sever4_data=mb.Hreg(TEST_HREG4);
sever5_data=mb.Hreg(TEST_HREG5);
sever6_data=mb.Hreg(TEST_HREG6);
sever7_data=mb.Hreg(TEST_HREG7);
sever8_data=mb.Hreg(TEST_HREG8);
sever9_data=mb.Hreg(TEST_HREG9);
myservo0.write(sever0_data);
myservo1.write(sever1_data);
myservo2.write(sever2_data);
myservo3.write(sever3_data);
myservo4.write(sever4_data);
myservo5.write(sever5_data);
myservo6.write(sever6_data);
myservo7.write(sever7_data);
myservo8.write(sever8_data);
myservo9.write(sever9_data);
delay(10);
}
😀😀😀
😀
Si el router me dice que esta conectado pero no me aparece la dirección ip en el monitor en serie , pero la MAC del dispositivo aparece vinculado, estoy conectando el ESP 32 con un WLAN 1100 (PHOENIX CONTAC) en el administrador web (del wlan) me dice que en los dispositivos conectados esta el ESP 32 y de da la MAC, pero en el Monitor en serie se queda mostrando solo puntos es decir que se queda en el while y no me muestra la ip address, que podría hacer ?, Lo conecto a el router de mi casa y pasa exactamente lo mismo.
Parece que el ESP32 no se conecta Alejandra. Hay que verificar la IP del router o si tal vez el router tiene un proxy que rechaza la conexión. También habría que reiniciar el ESP32 una vez se carga el código, habría que probar estas opciones.
@@taloselectronico Muchas gracias , para conectar el WLAN con un tablet o telefono debo de configurar la ip u que sea estática le pongo los datos y conecta, como puedo hacerlo en el ESP 32? Seria ponerle los datos de direccion ip propia, ip del wlan, "longitud de prefijo" dns 1 , dns 2, como puedo yo asignarle (programar) al esp 32 estos valores ?
@@AAlejandra_Saav te toca mirar los parametros de Wifi. Mira este ejemplo de Arduino para configurar el DNS (Debe funcionar para ESP32): www.arduino.cc/reference/en/libraries/wifi/wifi.setdns/
@@taloselectronico TODO PERFECTO EXCELENTE AYUDA!
@@AAlejandra_Saav Ok me alegra que todo haya funcionado bien. Saludos desde Colombia.
me salta error de conexión tcp, pero con el espo8266 no me lo hace, solo con el esp32
Hola Mario gca. Tal vez es que el ESP32 no se esta conectando a la red o hay que incrementar el tiempo de retraso en el inicio de la conexión a red.
Saludos desde Colombia.
@@taloselectronico hola gracias. Ya lo solucioné, es que cada vez que tocaba el botón de reset o le desconectaba la alimentación el esp32 volvía a una programación anterior. No me preguntes por qué.
Entonces se borraba el programa del modbus y volvía a "programarse solo" en programa de ota. Es raro.
Ahora sé que no lo puedo apagar.
no quisiera ser molesto pero... como puedo hacerlo en RTU?, quiero leer entrada analogica desde modbus RTU, me podrias dar un ejemplo porfa no encuentro como hacerlo, he visto que en la libreria hay ejemplos pero no se como funcionan
Buenos días Mr.GameplaySans, para trabajar con Modbus RTU debe hacerse usando un puerto serial del ESP32, en mi caso funciono bien el número 2, si quiere dejeme crear un código base que le puede ayudar y se lo envio por este medio.
@@taloselectronico si, muchas gracias
@@andreeu570 Revise este código en modo RTU, aquí use el serial 2 del ESP32:
drive.google.com/file/d/1xstCxT9dUJFgSmowAz_zUW_HB9pBPkSl/view?usp=sharing
@@taloselectronico muchas gracias pero, que sentido tiene iniciar el wifi si el RTU no lo necesita?
@@andreeu570 Si disculpas es que tome una plantilla de modbus TCP/IP, esa parte la puede omitir del código. Pense que era si ud queria hacer un puente entre modbus TCP/IP y Modbus RTU, pero para lo que lo necesita lo puede omitir.
y tambien como agregar otro led igual porfa
Hola Mr.GameplaySans, para modificar un número entero cree una variable de tipo entera (contador), por ejemplo, y enviela a un registro MODBUS. Para esto guiese por el ejemplo de lectura de valor análogo que esta en el link y que explico en el video: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/IP-server-AnalogInput/IP-server-AnalogInput.ino
Cuando cree la variable, cambie la parte en el loop que dice AnalogRead(A0) por la variable que se quiere enviar.
En cuanto a la segunda pregunta del Led, habría que crear otro registro en otra dirección, por ejemplo la 101,. Entonces se crearía en la pte que dice: "const int LED_COIL2 = 101;" , en segundo lugar, configura el segundo led como salida y finalmente en el loop enlaza la salida con el registro donde dice "digitalWrite(ledPin, mb.Coil(LED_COIL2));"
El ejemplo de Led está en: github.com/emelianov/modbus-esp8266/blob/master/examples/TCP-ESP/IP-server-Led/IP-server-Led.ino
Creo que lo anterior le puede ayudar.
Saludos cordiales
@@taloselectronico muy amable señor, gracias por la atencion
@@taloselectronico señor, podria hacer un script de ejemplo, no me funciona el codigo
@@taloselectronico no logro entender bien, si todas las variables son enteras
@@andreeu570 Revise estos dos códigos que cree, uno para los dos leds y otro para la variable entera.
Espero que le sirvan.
drive.google.com/file/d/1SzjdruS8vhxL6BiVdtqKZiga3ZM6DPkh/view?usp=sharing
drive.google.com/file/d/1wlarOYhOufuqasUuJ8-DSoQPcVsy5UU4/view?usp=sharing
talos no me estaria funcionando, la unica diferencia que veo es que la instruccion ModbusIP mb no se pone en naranja.. como si tuviera problemas para reconocer el objeto..ModbusIP
Buenos días Gustavo. Yo creo que puede ser un problema en la librería. Hay que incluir todos lops archivos dentro de la misma carpeta del proyecto. También verificar la IP de los dispositivos en la red y del ESP32. Tendría que ver el código. Si quiere escribame a taloselectronico@gmail.com