如下图1所示,仪表为虹润精密仪器,型号为:OHR-F810-X-02-A-D1/P/U/SD/E,有RS485 ,modbus RTU,其通讯地址如图2所示,该表显示了10个温度,需要读取这10个温度,其地址如图3所示,在用modbus rtu指令时,MB_ADDR、DATA_ADDR、DATA_LEN、DATA_PTR如何填?
问题补充:
按照Modbus_Master 参数设置:
MB_ADDR=1
MODE=0
DATA_ADDR=30001
DATA_LEN=24
DATA_PTR=P#DB3.DBX0.0 REAL 12
status报错代码16#8281,
图片说明:
钻石用户推荐最佳答案
MB_ADDR:(从站的站地址,你上图显示从站的站地址为1,那就填写1)
Modbus RTU从站地址。默认地址范围:0至247;扩展地址范围:0至65535。值0被保留用于将消息广播到所有Modbus从站。
DATA_ADDR:这是你读取的从站的地址,你自己根据你实际需要的参数去读取从站地址。
DATA_LEN这是你一次要读取数据的长度,也是你根据时间需要填写。
DATA_PTR这是你读写存放的地址,这个地址你自己想怎么定义就怎么定义。
建议你好好看看我前几次给你发的链接,里面说得很清楚,还有你要看1200编程手册。
Modbus RTU 通信:
http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/smartsms/016.html
补充问题回答:
8281解释:写入模块时否定确认。检查 PORT 参数处的输入。这种情况的可能原因是
PROFIBUS 或 PROFINET 分布式 I/O 模块断开,可由电源中断或拉动模块引起。
根据上面解释去查找初始化Modbus_Master设定,现在是Modbus_Master指令设定错误或是从站温度模块没有接好。按照链接中的介绍Modbus_Master指令去一一查找你程式问题。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354089.html