您现在所在的是:

PLC论坛

回帖:1个,阅读:4685 [上一页] [1] [下一页]
21955
bnnyygy
文章数:6259
年度积分:851
历史总积分:21955
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2021/8/11 17:21:25
#0楼
第一次用,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编辑过]
14048
465010287 版主
文章数:6333
年度积分:91
历史总积分:14048
注册时间:2012/10/11
发站内信
发表于:2021/8/11 21:04:59
#1楼
给力呀

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002