电工学习网

 找回密码
 立即注册
查看: 1494|回复: 1
打印 上一主题 下一主题

modbus功能码表解析

[复制链接]
跳转到指定楼层
楼主
发表于 2022-2-27 08:17:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
第二张是描述了 Modbus 功能码 03 的功能,即主站读取1-多个保持寄存器的数据。
modbus功能码表解析
比如 Modbus 主站读取 Modbus 从站(这个从站可以是仪表,仪表的设备ID假如是 2)的保持寄存器从40001到40010 开始的 10 个保持寄存器值到在 1500 中创建的标准 DB块内的变量“M_Data”,这里的 “M_Data” 是在接收的数据块中定义的一个数组,大小至少是 10 个字或INT或20个 BYTE。
modbus功能码表解析
有了上面这些前提,你只要在 “Modbus_Master” 指令相应管脚按如下赋值:
“REQ”:BOOL变量,用于触发读;
             如果只有一个读指令可以用 plc 时钟信号来完成,即下图中的 M0.5;
“MB_ADDR”:2   访问的仪表的设备ID,也就是从站的设备地址
“MODE”:0;      0 表示从从站读
“DATA_ADDR”: 40001     从从站的保持寄存器的哪一个地址开始读
“DATA_LEN”: 10            需要读多少数据,现在是要读10个所以填10
“DATA_PTR”: 读来的数据放在什么地方,该参数可以通过拖拽的方式,将创建的标准 DB 内的变量 “M_Data” 拖拽过来

“MODE”、“DATA_ADDR”、“DATA_LEN”  这三个参数按上面填,结合在一些就是从从站保持寄存器 40001 开始读一直到 40010 这10 个字的内容。
所有这些都正确填写了,指令就会形成一个完整的03功能码请求帧,并从与这个 “Modbus_Master” 指令配套的”Modbus_Comm_Load“指令指定的通讯口发向从站。
要注意这些管脚是相互组合的,组合不同形成的功能码也不同,完成的功能不同。

回复

使用道具 举报

沙发
发表于 2022-2-28 16:00:44 | 只看该作者
我一个网宣部的天天来学习

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-9-4 05:21

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表