登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:分享一波,博图V16,1200 MODBUS TCP 通讯。(SEVER端)

点击:4176 回复:1

第一次用,F1看了半天,官网看了半天,总算通讯OK。
目的:A,PC端只读16个BOOL变量。B,PC端反馈16个BOOL变量。
功能码那些,了解就行。
1:新建一个程序,不重复,自己脑补。贴关键图:
这里需要几个关键的东西:
1.a:查看PN口硬件标识符,我这里是64.(没试过65)。
附件 00.jpg
1.b.1
 拉一个MB_SERVER块以后,
1.b.2:手动新建一个全局数据块,新建一个数组 10个字的word,给MB_SEVER(MB_HOLD_REG)做缓存?不是太懂。
1.b.3:手动新建一个全局数据块,数据类型:TCON_IP_V4.(选择里面没有这个类型,手动输入OK)
     打开这个变量:
     如图,硬件标识符如上面看到的64 填写进去。
      ID,我随便填写的1
      客户端IP地址(据说0.0.0.0是都给响应,没测试。我直接填写的TCP 客户端IP地址192.168.3.250)
      默认端口502
1.b.4:把上面连个变量拖进对应的引脚即可,如图
附件 01.jpg
~~~~~~~~~~~以上完成了一半。
2.修改MB_SERVER 对应的DB块里面的数据(在系统块-程序资源里面)、
有8个数组变量,没仔细研究,我只需要,读取,写入,只填了2组。
2.a 新建2个全局数据块(必须取消优化访问)。
   建立对应的数据类型,我的是BOOL,就是0..15 BOOL变量。
关键来了,记住以上2个DB块的编号:
填写MB_SERVER DB块的内容:
data_type 就是需要的功能码:
1 包含(01 05 15), 读位,写线圈,写多个线圈
2 包含(2)  读离散输入状态
附件 02.jpg
附件 03.jpg
附件 04.jpg
之前楼测试了半天,如果data_type 2个分别都写1(也就是读写数据块BOOL),数据块编号不同,但是通讯不对,后来按照截图所示,
DB16 客户端测试只能读,不能写。(PLC给数据,PC只读) data_type :=2
DB13 可以读,也可以写。(准备给PC反馈给PLC数据)  data_type := 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上,如有错误,请纠正。
附上电脑测试软件Modbus Poll 9.2.2 Build 1343
附件:
[本地下载]
西门子官方链接:http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/SmartSMS/024.html
最后修改:2021/8/11 17:24:34
21-08-11 17:21
给力呀
21-08-11 21:04

工控新闻

更多新闻资讯