有个液位传感器,要读取液位位置。开始的寄存器不是40000不知道这个程序应该怎么写了。
图片说明:
钻石用户推荐最佳答案
第一张图请求帧:01 03 00 00 00 01 84 0A
从左到右按字节编号,第3、4 字节就是存储液位的保持寄存器地址,是十六进制的 00 00H;
将其转换为十进制就是0,加1就是1,然后在最前面加上保持寄存器标识4,则为41,只有两位地址,要凑够5位MODBUS 寄存器地址,则在4和1中间补0,补够地5址位,则保持寄存器地址为 40001。
40001 就是液位地址。
第5、6 字节是数据长度,00 01H,表示液位是一个定,那是一个整数。读到以后还要转换成浮点数除以100.0才是真正的液位值
MBUS_MSG指令:
Addr: 40001
Count: 1
程序按轮循写,在下面主站指令中有实
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360206.html