设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
MCU - 可任意移植的Modbus RTU驱动,支持线圈读写 ...
返回列表
发新帖
[三菱]
MCU - 可任意移植的Modbus RTU驱动,支持线圈读写
[复制链接]
63750
|
0
|
2024-4-14 23:02:30
|
显示全部楼层
|
阅读模式
Keep Moving
保持·热爱
Modbus
驱动
嵌入式C
RTU模式
介绍该通用型Modbus RTU驱动
独立按键、组合键的驱动
一个好玩的LED驱动
后台回复[开源]获取全部资料
概述
概述
一般性的应用,很少使用到Modbus的线圈寄存器、离散输入寄存器,这里整理相关功能码,设计出一个通用的Modbus RTU驱动
设计实现
结构链表
链表构想
支持的寄存器
目前共支持四类:
可使用宏,启用相关的寄存器:
功能码处理机制
把报文扔给它,它返回一个用于应答上位机的报文:
功能码注册表
功能码的扩展功能
驱动内部弱定义了下图的函数,生效需用户自行定义:
如何使用
示例
把接收到的报文扔给“ry_modbus_handle”,接着使用UART应答上位机:
Tx->len = ry_modbus_handle(Rx->buff, Rx->len, Tx->buff);drv_uart_send(Tx->buff, Tx->len);
读写多个保持寄存器
打开“Modbus Poll”
手动输入0x10的报文
从Addr3处开始写,0x1116、0x6668
观察Addr4确实为“0x6668”:
线圈的读写操作
1 线圈是开关信号,每个bit对应一个地址
2 图中从bit3开始写
3 写0x12,即18个开关数据,共占3个字节
4 低字节在前,数据为0xCF、0xCA、0xFF
5 最后一个字节0xFF,只使用了2个低bit
-END-
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
261308565
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』