尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
modbus-esp8266 API终极速查表:readHreg、writeCoil、push/pull一览无余
modbus-esp8266 API终极速查表readHreg、writeCoil、push/pull一览无余【免费下载链接】modbus-esp8266Most 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.项目地址: https://gitcode.com/gh_mirrors/mo/modbus-esp8266modbus-esp8266是 Arduino 平台最完整的 Modbus 协议库让 ESP8266 / ESP32 单板即可充当 Modbus 主站或从站同时支持 Modbus RTURS-485 串口与 Modbus TCPWiFi/以太网两种传输并内置 Modbus TCP Security 安全扩展。本文以速查表形式整理其核心 API从readHreg、writeCoil读写接口到push/pull数据中转、task() 异步机制与回调函数一篇看全。 完整接口签名见 documentation/API.md核心类与功能码定义见 src/Modbus.h。30秒入门4 种寄存器类型Modbus 只有 4 类寄存器所有 API 都是围绕它们设计的名称宏功能码类型特点CoilCOIL(n)0x01 读 / 0x05 写bool可读可写控制输出IstsISTS(n)0x02bool只读离散输入HregHREG(n)0x03uint16_t可读可写保持寄存器IregIREG(n)0x04uint16_t只读输入寄存器 注意Modbus 标准只有位和16 位两种数据类型。float、uint32_t等有符号/浮点值需要拆分成多个 16 位寄存器传输。服务端速查addHreg 与本地寄存器读写作为从站server/slave先注册本地寄存器再用同名函数读写操作API说明注册addHreg(offset, value, numregs)建立从站地址空间Coil/Ists/Ireg 同理写本地Hreg(offset, value)Coil(offset, bool)、Ists、Ireg同理读本地Hreg(offset)单参重载即读返回uint16_t删除removeHreg(offset, numregs)从地址空间移除寄存器这些接口的完整签名可参考 src/Modbus.h。客户端读写readHreg 与 writeCoil 怎么用作为主站master/client调用格式高度统一读写函数(从站ID, 起始地址, 值/数组指针, 寄存器数, 事务回调)操作API对应功能码读线圈readCoil(slaveId, offset, value, numregs, cb)0x01读离散输入readIsts(slaveId, offset, value, numregs, cb)0x02读保持寄存器readHreg(slaveId, offset, value, numregs, cb)0x03读输入寄存器readIreg(slaveId, offset, value, numregs, cb)0x04写单个线圈writeCoil(slaveId, offset, value, cb)0x05写单个寄存器writeHreg(slaveId, offset, value, cb)0x06批量写writeCoil(slaveId, offset, value, numregs, cb)0x0F / 0x10批量写重载会根据numregs自动选择单写或多写功能码无需手动区分。Modbus TCP 模式下把slaveId换成IPAddress可加uint单元标识参数即可直连对端。push/pull 数据中转一行代码完成远程↔本地复制push/pull 是最容易混淆的一组接口记住一个方向口诀即可pull 把远程数据拉下来存进本地寄存器pullHreg(slaveId, from, to, numregs)from是远程起始地址to是本地保存地址push 把本地数据推上去写到远程pushHreg(slaveId, to, from, numregs)to是远程地址from是本地数据地址跨类型中转同样支持pullCoilToIsts、pushIregToHreg、pullIsts、pushIstsToCoil等 典型场景做 TCP 到 RTU 的协议桥接、把传感器数据自动缓存到本地寄存器都靠它一行解决官方桥接示例见 examples/Bridge/。别忘了 task()异步调用工作流这是新手最常踩的坑所有 read/write/pull/push 都是异步的。readHreg()只是发出请求就立刻返回真正的应答处理由task()完成。所以loop()里必须周期性调用void loop() { if (!mb.slave()) { // 无进行中的请求时才发新请求 mb.readCoil(1, 1, coils, 20, cbWrite); } mb.task(); // 处理应答、触发事务回调 yield(); }上面的完整主站示例可参考 examples/RTU/master/master.ino从站示例见 examples/RTU/slave/slave.ino。图服务端 task() 收到请求后的处理流程onRequest 回调 → 参数校验 → 准备应答 → 触发 onGet/onSet 回调⚠️ 两个高频现象都是异步机制的正常表现调用 readHreg 后立刻读值读不到—— 应答可能还没回来由task()异步填充连续调用多次 read/write 只有第一次执行—— 同一时间只允许一个请求在途task()处理完前请等待。回调速查onSetHreg、onGetCoil 与事务通知回调触发时机onSetCoil / onSetHreg / onSetIsts / onSetIreg(addr, cb, numregs)本地寄存器被写时onGetCoil / onGetHreg / onGetIsts / onGetIreg(addr, cb, numregs)本地寄存器被读时事务回调cbTransaction每个 read/write/push/pull 请求结束时成功或超时onConnect / onDisconnectTCP 服务器连接建立/断开事件在回调内调用eventSource()可获取请求来源RTU 下返回从站 IDTCP 下返回对方 IP超时事务返回INADDR_NONE。回调用法示例见 examples/Callback/onGetShared/onGetShared.ino 与 examples/Callback/onSet/onSet.ino。错误码速查表所有客户端调用返回事务 ID结果通过事务回调以ResultCode形式通知常见值错误码含义排查建议0x00成功—0x01功能码不支持检查从站是否实现该功能0x02地址非法确认已addXxx注册该寄存器0x03值超范围检查写入值0xE4超时RTU查接线/波特率可降到 9600/换独立供电TCPping 与防火墙排查0xE5连接丢失检查对端在线状态0xE6事务被取消—传输层设置RTU 与 TCP 快速上手需求RTU串口/RS-485TCP网络初始化begin(Serial1, txEnablePin)—设波特率setBaudrate(9600)非 ESP 平台必调—从站模式server(slaveId)server(port)默认 502主站模式client()或master()client()配合connect(ip, port)自动重连—autoConnect(true)默认关闭RTU 的begin支持SoftwareSerial/HardwareSerial/任意StreamtxEnablePin用于 MAX-485 收发控制低电平有效需传txEnableDirectfalse。RTU 接口签名见 src/ModbusRTU.h编译期配置项最大寄存器数、事务数等在 src/ModbusSettings.h 中调整。常见问题速答float / 32 位值怎么发拆成多个 16 位寄存器连续 read/write 后在应用层拼合。0xE4 超时偶发偶发可接受频发则按上表 RTU/TCP 分别排查硬件与网络。能做 TCP→RTU 桥吗可以参考 examples/Bridge/TCP-to-RTU-Simulator/ 及文档 documentation/README.md 中的 FAQ。把这张速查表收藏起来配合examples/目录里的分场景示例RTU、TCP、TLS、桥接、OTA 文件更新就能覆盖绝大多数 Modbus 开发需求 ✅【免费下载链接】modbus-esp8266Most 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.项目地址: https://gitcode.com/gh_mirrors/mo/modbus-esp8266创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

LoRa低功耗芯片组设计解析:从SX1262到系统功耗优化

LoRa低功耗芯片组设计解析:从SX1262到系统功耗优化

1. 为什么LoRa能在"远距离"与"低功耗"之间同时成立先聊一个很多刚接触LPWAN(低功耗广域网)的人都会问的问题:又要传得远,又要省电,这俩要求放在一起不是互相矛盾吗?按传统无线通信的逻…

📅 2026/10/6 21:22:16
语音控制设备处理器选型实战:从MCU到NPU的完整链路解析

语音控制设备处理器选型实战:从MCU到NPU的完整链路解析

前阵子接手一个语音控制插座的升级项目,团队原本在一颗双核240MHz的MCU上跑唤醒词,结果拿到真实环境一测,唤醒率只有86%,放到工厂车间里甚至跌到七成以下。后来换了一颗带NPU的边缘处理器,整个语音链路才稳下来。这次折…

📅 2026/9/19 1:50:20
Crimson:衬线正文排出来不费眼|免费开源字体选型

Crimson:衬线正文排出来不费眼|免费开源字体选型

Crimson:衬线正文排出来不费眼|免费开源字体选型 【免费下载链接】Crimson The Crimson Text typeface 项目地址: https://gitcode.com/gh_mirrors/cr/Crimson 想给长文正文挑一款扛得住阅读的衬线字体、又不想花一分钱,可以看 Crimso…

📅 2026/10/23 23:01:39
MORE NEWS

更多资讯

📰

国家级电工证分为几级 证书过期了不知道怎么复审延期怎么解决

国家级电工证分为几级 证书过期了不知道怎么复审延期怎么解决 证书过期了不知道怎么复审延期,是不是让你头大?别急,你不是一个人,这是很多电工从业者面临的共同难题。特别是 国家级电工证分为几级…

📰

郑州报考避坑指南:初考电工证级别怎么选?电工证怎么考?全攻略来了

郑州报考避坑指南:初考电工证级别怎么选?电工证怎么考?全攻略来了 急需特种作业证才能上岗找工作,电工证作为特种作业操作证中最重要的一个类别,是很多电工从业者必须考取的“硬门槛”。但很多人却对“初考电工证级别”一头雾水,不知道到底该考低压还是…

📰

上思考电工证报名费多少钱良心建议

上思考电工证报名费多少钱良心建议 你是不是也担心学历不高报不了电工证?别急, 上思考电工证 其实对学历要求没你想象的那么高,而且有 良心建议 帮你轻松拿下证书。别让学历成为你前进的绊脚石,下面这些干货内容,能帮你少走弯路。 1.…

📰

芜湖高压电工证电话怎么打才不白交钱?良心建议在这儿

芜湖高压电工证电话怎么打才不白交钱?良心建议在这儿 怕考不过白交培训费?你不是一个人。每年都有人因为没选对培训机构、没报对课程,最后花了钱还拿不到证。今天就给你讲清楚【芜湖高压电工证电话】怎么找、怎么打,还有报考避坑的良心建议,不绕弯子,直…

📰

低压电工证视频讲解官方回应:别被中介坑了,看看这几点避坑指南

低压电工证视频讲解官方回应:别被中介坑了,看看这几点避坑指南 你是不是也经常看到网上有人问“低压电工证视频讲解在哪看”“低压电工证怎么考”,结果一打开就是各种收费课程、中介推荐?其实很多人不知道,官方早就给出回应了,而且还有明确的操作流程和…

📰

电工证用具合格标准与通过率,证书过期了不知道怎么复审延期怎么办?

电工证用具合格标准与通过率,证书过期了不知道怎么复审延期怎么办? 证书过期了不知道怎么复审延期,你是不是也遇到过这种情况?尤其是像电工证这样的特种作业证书, 含金量…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬