分享

【新提醒】modbus功能码表解析

 huasum 2022-09-25 发布于江西
第二张是描述了 Modbus 功能码 03 的功能,即主站读取1-多个保持寄存器的数据。


比如 Modbus 主站读取 Modbus 从站(这个从站可以是仪表,仪表的设备ID假如是 2)的保持寄存器从40001到40010 开始的 10 个保持寄存器值到在 1500 中创建的标准 DB块内的变量“M_Data”,这里的 “M_Data” 是在接收的数据块中定义的一个数组,大小至少是 10 个字或INT或20个 BYTE。


有了上面这些前提,你只要在 “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“指令指定的通讯口发向从站。
要注意这些管脚是相互组合的,组合不同形成的功能码也不同,完成的功能不同。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多