yaacov / ArduinoModbusSlave

Modbus slave library for Arduino
ISC License
205 stars 75 forks source link

Is it possible to use in ESP32 Platform. #65

Open coderkan opened 3 years ago

coderkan commented 3 years ago

Hi there,

I wonder that can I use this library on ESP32 module? Have you ever tried that?

Regards. Erkan

yaacov commented 3 years ago

Hi, thanks for the question/

I don't know, if you make it work comment here. Matve this repo is better starting point: https://github.com/yaacov/ArduinoModbusSlaveTCP

coderkan commented 3 years ago

Hi @yaacov ,

I tried to use in ESP32 kit but I have no success at this point. I focused on Serial RTU. I will try again later. If It would work, I will comment you.

Regards. Erkan

Bach-Danielsson commented 3 years ago

Ler me know if someone have sucsess with this. im also srugling to get the RTU slave to Work on my ESP32

coderkan commented 3 years ago

Hi @Bach-Danielsson

I have not success to run this code in ESP32.

I have found a library on github. But I have come across problems to use this library. Please let me know if you find a good solution for rtu slave for esp32.

Regards. Erkan

device111 commented 2 years ago

Hi,

I've tested the RTU-RS485 Client and with a few tweaks the code works like a charm with the ESP32dev Kit. I make a Pull Request after complete testing. (need a few days...)

Martin

qq547176052 commented 2 years ago

esp32能用,但是0x03每次最多只能读50个,0x0f每次最多只能写50个

yoonghm commented 2 years ago

This is limited by Modbus protocol.

On Tue, 12 Apr 2022, 23:26 547176052, @.***> wrote:

esp32能用,但是0x03每次最多只能读50个,0x0f每次最多只能写50个

— Reply to this email directly, view it on GitHub https://github.com/yaacov/ArduinoModbusSlave/issues/65#issuecomment-1096874773, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABAFJN42DWD5WON7OQAURB3VEWI33ANCNFSM4QN2MQLA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

device111 commented 2 years ago

that is not completely right. The Modbus protocol has a frame width of 256 bytes. (253 bytes for user data). We are currently only using 128 bytes here, according to the specifications of the ESP32 core. You can try changing the RX/TX buffer size.

In ModbusSlave.h change:

`#if defined (ESP32) || defined (ESP8266)

define SERIAL_BUFFER_SIZE 256

endif`

and in your Setup Routine and BEVORE the Serial init:

SERIAL_PORT.setRxBufferSize(SERIAL_BUFFER_SIZE); SERIAL_PORT.setTxBufferSize(SERIAL_BUFFER_SIZE);

// Set the serial port and slave to the given baudrate. SERIAL_PORT.begin(SERIAL_BAUDRATE); slave.begin(SERIAL_BAUDRATE);

I don't know if that works with the Arduino 1.6 ESP Core, but it should work with the 2.02.

good luck...

qq547176052 commented 2 years ago

if defined (ESP32) || defined (ESP8266)

define SERIAL_BUFFER_SIZE 1024

endif

我改到1024还是只能写 55 个

device111 commented 2 years ago

No Problem to read 125 Words of an 03 Register:

grafik

so your Master is not support more Register?

dtboy1995 commented 2 years ago

No Problem to read 125 Words of an 03 Register:

grafik

so your Master is not support more Register?

Can you tell me what software this is, thank you

device111 commented 2 years ago

grafik

dtboy1995 commented 2 years ago

grafik

thanks

tinkering4fun commented 1 year ago

I'm successfully using V2.1.1 on ESP32 and it worked more or less out of the box ... Only minor adjustments required to get it running. See issue #98.