问一个问题:是不是S7-200 modbus通讯:00001 至 0*x 对应 开关量输出 QX.X ,10001 至 1*x 对应 开关量输入 IX.X,30001 至 3*x 对应 模拟量输入 AIW.X ,40001 至 4*x 对应 模拟量输出 AQW.X,这些modbus 地址与西门子的I/O模块的数据地址是不是固定的?如果这样的话我只能把0-32000的数据传给上位机,给上位机处理了?我如想把VD32中的数值传给上位机该怎么做?设备的启M0.0 和停M0.1该如何传给上位机?
最佳答案
1.00001 至 0*x 对应 开关量输出 QX.X ,10001 至 1*x 对应 开关量输入 IX.X,30001 至 3*x 对应 模拟量输入 AIW.X ,40001 至 4*x 对应 模拟量输出 AQW.X,这些modbus 地址与西门子的I/O模块的数据地址是不是固定的?
楼主的理解不能说对的,0、1、3、4四种地址是针对施耐德PLC中的地址进行定义的,也就是楼主所说的,0对应开出和中间线圈、1对应开入,以此类推。但是对于西门子PLC来说没有modbus地址编码这一说,也就是说不支持0、1、3、4这几种地址,因此,0、1、3、4并不对应开出、开入等地址。
2. 把VD32中的数值传给上位机该怎么做?设备的启M0.0 和停M0.1该如何传给上位机?
在做modbus通讯时,DataPtr的地址为&VB,也就是说所有数据全部打包到VB中,因此,不论任何数据,打包到VB实现数据中进行发送和接收。因此,如果需要将M、或VD数据送到上位,只需Move到VB中即可。
提问者对于答案的评价:
多谢!
专家置评
西门子的Modbus协议是支持0、1、3、4这4类数据地址的,详见S7-200的如下参考资料:
S7-200 Micro’n Power 参考资料的免费下载链接:文档编号:A0136
http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=7&CatFirst=1&CatSecond=2&CatThird=-1
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc308564.html