请问是否可以使用程序通过Modbus读取s7-200 smart的数据,是否有相关协议文档,比如点表对应的寄存器地址
问题补充:
场景是自己编写程序去读取控制设备,设备型号是s7-200 smart cpu sr60,但是现在手上只有点表,不清楚是否可以直接使用modbus协议去对接,另外如果使用mudbus的话也不知道点表位对应的寄存器地址,请问大佬们是否有相关的协议文档,相关资料。
钻石用户推荐最佳答案
通过Modbus读取s7-200 smart的数据,那SMRT 200 就是MODBUS RTU 服务器,则要使用SM0.0调用MBUS_SLAVE,SMART 200的物理点以及保持寄存器区的对应关系如下。
00001 - 09999:数字量输出( 线圈)
Q0.0 对应 00001
Q0.1 对应 00002
Q0.2 对应 00003
依此类推
10001 - 19999:数字量输入(触点)
I0.0 对应 10001
I0.1 对应 10002
I0.2 对应 10002
依此类推
30001 - 39999:输入数据寄存器(通常为模拟量输入)
AIW0 对应 30001
AIW2 对应 30002
依此类推,根据实际的模块组态,你会发现中间有一些点是没有的。
以上三类对应关系是固定的。
40001 - 49999:
这一区域的数据是你要组织的,比如你定义了VB1000-VB1999 这500个字的空间为保持寄存器区,则
VW1000 对应 40001
VW1002 对应 40002
依此类推。
主要参考这个链接
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/communication/serial_port/modbus/Master/Master.htm
如果要控制,你可以利用保持寄存器区,这个区有很大的灵活性。
模拟量转的结果、以及与上位机交互的一些控制字都可以利用这个区域去实现。
比如SMART 200 程序中 VW1000=1 时启动电机,则客户端只要给 40001 写1就可以了。
更多内容参考
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc347309.html