Nao consigo conectar modbus ip com esp 32

Pessoal,
Sou iniciante e estou tentando usar o scada lts juntamente com esp 32. Talvez esteja utilizando o exemplo carregado no esp 32 errado. Meu scada não acha o no no modbus ip. Quem puder dar um help. Muito grato

Bom dia, Hebert!

Se puder, compartilhe aqui como está a configuração do datasource modbus IP no Scada e como está configurado seu código da ESP32.

Já fiz aplicações que leem o ESP32 via modbus ip e funcionou tranquilo, provavelmente é algum ajuste na parametrização, mas sem as informações que falei acima é difícil ser mais assertivo no apoio.

Também já consegui fazer a leitura normal.
dá o print dos parametros mestre e do escravo.

/*
Modbus-Arduino Example - Test Led (Modbus IP ESP8266)
Control a Led on GPIO0 pin using Write Single Coil Modbus Function
Original library
Copyright by André Sarmento Barbosa
GitHub - andresarmento/modbus-arduino: A library that allows your Arduino to communicate via Modbus protocol, acting as a slave (master in development). Supports serial (RS-232, RS-485) and IP via Ethernet (Modbus IP).

Current version
(c)2017 Alexander Emelianov (a.m.emelianov@gmail.com)
GitHub - emelianov/modbus-esp8266: Most complete Modbus library for Arduino. A library that allows your Arduino board to communicate via Modbus protocol, acting as a master, slave or both. Supports network transport (Modbus TCP) and Serial line/RS-485 (Modbus RTU). Supports Modbus TCP Security for ESP8266/ESP32.
*/

//#ifdef ESP8266
//#include <ESP8266WiFi.h>
//#else //ESP32
#include <WiFi.h>
//#endif
#include <ModbusIP_ESP8266.h>

//Modbus Registers Offsets
const int LED_COIL = 100;
//Used Pins
const int ledPin = 32; //GPIO0
const int TEST_HREG = 100;
//ModbusIP object
ModbusIP mb;

void setup() {
Serial.begin(115200);

WiFi.begin(“TP-Link_7DA6”, “15934987”);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}

Serial.println(“”);
Serial.println(“WiFi connected”);
Serial.println("IP address: ");
Serial.println(WiFi.localIP());

mb.server();

pinMode(ledPin, OUTPUT);
mb.addHreg(TEST_HREG, 0xFFFF);
mb.addCoil(LED_COIL);
}

void loop() {
//Call once inside loop() - all magic here
mb.task();

//Attach ledPin to LED_COIL register
digitalWrite(ledPin, mb.Coil(LED_COIL));
delay(10);
}

image

Aparentemente parece estar OK.

Seu ESP32 e seu SCADA estão na mesma rede wifi local?
Caso não estejam, precisam estar pro SCADA enxergar a ESP32.

Tenta fazer uma leitura usando o “Point Locator Test”.

Desliga o datasource modbus IP, seleciona ‘Coil status’ e coloca offset 100 (o endereço do registro do seu LED), clica em ‘Read’ e vê se retorna alguma coisa.

image

image

e comum achar 240 nos?