基于S7连接的西门子双边通信的实现与仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于S7连接的西门子双边通信的实现与
仿真
摘要:西门子S7通信中,待交换的数据量过大时,常用的PUT、GET单边通信方式便不再适用,此时可以考虑使用允许数据量更大的双边通信。
文中对双边通信中的BSEND、BRCV
方式进行了组态、编程以及仿真,较为详细的阐述了该种方式下双边通信的具体实现细节,并通过S7 SIMULATOR仿真器进行了两个PLC各自的数据收发过程的仿真,对现场控制系统中的直接应用提供便利及参考。
关键词:S7连接;双边通信;BSEND;BRCV;仿真
1、S7协议
S7协议指的西门子的专用通讯协议,主要用于实现S7 PLC之间或者S7 PLC 与PC之间的通信,必须先在NetPro对连接进行组态,而后才可进行基于 S7 协议的通信。
已组态的连接将通过在组态过程中指定的唯一连接名称进行标识。
S7协议定义了两个连接类型:基于 PROFIBUS 或以太网的S7 连接、基于冗余连接路径的S7容错连接。
2、单、双边通信
通信涉及到的数据的读写操作,是通过指定变量的存储区域(如 [M]区,[DB]区,[I],[Q]区等)、存储地址、数据量大小及数据类型来操作,变量的类型决定了它的长度以及在通信中如何处理。
S7通信分为单边通信和双边通信,其中S7-300、S7-400系统支持双边通信,S7-200只支持单边通信。
单双边通信的区别,在于编程时是在单侧PLC中调用函数,如PUT、GET,还是需要在两侧PLC 中都需要编程调用BSEND、BRCV或者USEND、URCV功能块。
在双边通信中,BSEND向类型为BRCV的远程伙伴发送数据,通讯伙伴之间可传送的数据量多于使
用已组态S7连接的单边通信传送的数据量。
BSEND和BRCV功能快的各个引脚参数说明如表1和表2所示。
表1.BSEND指令的各个引脚说明
表2.BRCV指令的各个引脚说明
3、系统架构
对基于以太网的 S7 协议通信, SIMATIC NET 系列为 SIMATIC S7 系列控制器和 PC
与工作站都提供了通信模块。
面向 SIMATIC S7 的典型通信模块为 CP 343-1 和 CP 443-1,面向 PC 和工作站的模块为 CP1623 或 CP 1628。
典型的系统组态如图1所示。
图 1. S7通信的典型系统组态图
4、网络组态
1#站点组态:插入400非冗余站点,带有集成PN接口。
创建Ethernet(1)网络,默认IP为 192.168.0.1,并联网。
2#站点组态:插入400非冗余站点,无
集成PN接口,配置CP模块。
联网Ethetnet(1),默认IP分配为192.168.0.2。
创建S7连接,默认配置并保存编译。
5、通讯编程
建立两个数据交换组:DW#16#1与DW#16#2。
1#连接:确定1#站点为数据发
送方,发送数据1,2,3,4,5,6,7;分配数据发送区为:P#DB1.dbx0.0 Byte 100;确定2#站点为数据接收方,分配数据接收区:P#DB1.DBX0.0 Byte 100。
2#
连接:确定2#站点为数据发送方:发送数据11,22,33,44,55,66;分配数
据发送区为:P#DB1.DBX0.0 Byte 100;确定1#站点为数据接收方,分配数据接
收区为:P#DB2.DBX0.0 Byte 100。
在同一组发送与接收功能编程时,R_ID为1,R_ID必须在相应的功能块上完
全一致, ID值指向本地已定义好的S7连接。
对于1#数据交换组,确定1#站点
为数据发送方,在其OB1中编程参考如图2中的a图所示,2#站点为数据接收方,在OB1中编程参考如图2中的b图所示。
图 2. 1#数据交换组不同站点下的编程
6、通讯仿真
对于1#、2#站点,分别新建仿真器并打开。
1#站点IP为192.168.0.1,2#
站点IP为192.168.0.2,两个仿真器程序的下载相互独立。
分别在1#、2#站点新建变量表便于传输数据的赋值及监视。
在OB1的程序中,任意设置了数据交换的长度为100个byte,在仿真时,只简单截取7个byte进行。
DW#16#1与DW#16#2两组都没有进行任何的数据交换,所有数据默认值为0。
对于DW#16#1组,在1#站点的发送程序段数据交换长度MW20赋值为7,激
活DB1.DBB0~DBB6,可监视到该7个byte数值赋值成功。
通过1#站点的仿真器
给M0.0一个上升沿,监视到2#站点的接收块DB2.DBB0~DBB6内容发生改变,数
据成功接收,仿真结果如图4所示。
图 4.1#数据交换组仿真效果图
复位强制的变量。
在2#站点,对于DW#16#2组,赋值发送程序段数据交换长
度MW20为7,激活DB1.DBB0~DBB6,可监视到该7个byte数值赋值成功。
通过
2#站点的仿真器给M0.0一个上升沿,可监视到1#站点的接收块DB2.DBB0~DBB6
内容发生改变,数据成功接收。
如图5所示。
图 5. 2#数据交换组仿真效果图
7、小结
西门子PLC之间通讯进行数据交换的方式有很多种,除了PUT、GET单边通信方式外,本文种的BSEND和BRCV基本为最常采用的双边通信方式。
通过利用BSEND和BRCV功能块进行通讯编程及仿真,熟悉了应用时需要关注到的重点及难点,在当单边通信无法满足所需交换的数据量时,及时采用双边通信方式,保证控制系统的可靠运行。
参考文献:
[1]SIEMENS AG.SIMATIC NET工业通信基础知识系统手册;
[2]SIEMENS AG.S7可编程序控制器的S7通讯;
[3]Siemens AG.STEP 7帮助中文版.2006;
[4]Siemens AG. Programming with STEP 7 Manual.2006;
[5]崔坚,西门子S7可编程序控制器STEP7编程指南[M].北京:机械工业出版社,2010;
[6]王斌,S7-PLCSIM在西门子S-300/400PLC调试中的应用[J],科技
风,2014(03):73.。