从现场485设备地址40002 读取温度 放入vb1000,地址40002 读取湿度 放入vb2000
为什么vw2000 里面的都是没有数据
还有vw1000~vw1009 都是什么数据 哪位能帮忙解释下
图片说明:
最佳答案
1、中间图,现场485设备保持寄存器地址与S7-200 V区的对应关系为
40002 VW1000
40003 VW1002
2、第三张图,现场485设备保持寄存器地址与S7-200 V区的对应关系为
40001 VW2000
40002 VW2002
3、从帖图看,通讯程序只对 VW1000、VW1002进行了操作,并没有对 VW1004、VW1006、VW1008 进行操作,所以它的值与这段程序是无关的。主要看中间那张图。它只读了两个保持寄存器,对应关系见回答的条目1。
4、从状态表上可看到,有一个概念你是错的,4XXXX保持寄存器是 16 位的,要占用二个存储单元。
5、第二张图与第三张图中保持寄存器的读,读40002是重复读。
6、认真看一下485设备的说明书,各参数是在哪一个保持寄存器。并参考链接中间部分《Modbus 地址和 S7-200 存储区地址的映射》
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/s7-200/communication/modbus/modbus%20master/Modbus%20master.htm
提问者对于答案的评价:
按照第六步我 重新分配存储器起始位VB1000 发现可以读取数据了
但是VB2000 仍然没有 是不是跟这个由关系
如果要做到两个站都要读取 我该怎么设置存储区
最佳答案作者回复:
两个站都取,MBUS_MSG 的 SLAVE 脚写不同的站号,保持寄存器地址不变,存放位置变化,通讯参数相同,物理连接必须是RS485。
轮循例程在链接中是有的。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc363275.html