Git Product home page Git Product logo

modbus_port_esp32's Introduction

modbus_port_esp32

lib freemodbus porting for esp32

you must know thise lib should be used for modbus master role.

implemented:(see components/esp-modbus/functions/)

一、简述

FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机源码是需要收费的。同时网上也没有发现比较好的开源的Modbus主机协议栈,所以才开发这款支持主机模式的FreeModbus协议栈。本版FreeModbus版本号更改为V1.6,支持Modbus主机协议栈,特性如下:

CMD - 0x01

eMBMasterReqReadCoils

CMD - 0x02

eMBMasterReqReadDiscreteInputs

CMD - 0x03

eMBMasterReqReadHoldingRegister

CMD - 0x04

eMBMasterReqReadInputRegister

CMD - 0x05

eMBMasterReqWriteCoil

CMD - 0x06

eMBMasterReqWriteHoldingRegister

CMD - 0x0f

eMBMasterReqWriteMultipleCoils

CMD - 0x10

eMBMasterReqWriteMultipleHoldingRegister

CMD - 0x17

eMBMasterReqReadWriteMultipleHoldingRegister

--now add rs485 support (note:this demo rs485 en pin using gpio12)--

thanks armink ! more reference seeing his git>https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32

modbus_port_esp32's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

modbus_port_esp32's Issues

rs485 收发切换缓慢

uart_set_pin(MB_UART, MB_UART_TX_PIN, MB_UART_RX_PIN, MB_UART_EN_PIN, UART_PIN_NO_CHANGE);
uart_driver_install(MB_UART, MB_UART_BUF_SIZE * 2, MB_UART_BUF_SIZE * 2, 20, &mb_uart_queue, 0);
uart_set_mode(MB_UART, UART_MODE_RS485_HALF_DUPLEX);
建议使用rs485自身的收发切换
原项目的手动收发切换延迟太高, 如果modbus的发送和返回间隔在10ms左右, 切换太慢就导致收不到返回消息

port event error

mb.h中eMBMasterPoll使用的event queue 和 portevent.c中eMBMasterWaitRequestFinish使用的event queue 要分开使用2个, 否则两处recieve_event产生竞争, 出现未知逻辑错误

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.