APP下载

基于Ethernet网络的双向S7通信仿真

2012-03-27刘柏松李丙林

长春工业大学学报 2012年3期
关键词:调用对话框组态

刘柏松, 刘 烨, 李丙林, 尤 文

(1.长春天然气有限责任公司,吉林长春 130033;2.长春工业大学电气与电子工程学院,吉林长春 130012)

0 引 言

数据通信协议可以分为面向连接的协议和无连接的协议,前者在进行数据交换之前,必须与通信伙伴建立连接。面向连接的协议具有较高的安全性[1-3]。

连接是指两个通信伙伴之间为了执行通信服务建立的逻辑链路,而不是指两个站之间用物理媒体(例如电缆)实现的连接。连接相当于通信伙伴之间一条虚拟的“专线”,它们随时可以用这条“专线”进行通信。一条物理线路可以建立多个连接[4]。

S7连接属于需要组态的静态连接。

基于连接的通信分为单向通信和双向通信。在双向通信中,通信双方都需要调用通信块,一方调用发送块来发送数据,另一方调用接收块来接收数据。

在双向S7通信中,使用SFB12“BSEND”可以将数据块安全地传输到通信伙伴,直到通信伙伴的接收功能SFB13“BRCV”接收完数据,数据传输才结束。只有S7-400之间才可以进行双向通信。可传输字节达64K。从S7-PLCSIM V5.4+SP3开始,用户可以使用S7-PLCSIM在一个STEP 7项目中同时仿真多CPU,并建立CPU间的通讯。S7通信可以用于工业以太网、PROFIBUS或MPI网络[5-6]。这些网络的S7通信的组态和编程方法基本相同。下面基于Ethernet网络介绍S7双向通信的组态和编程方法。

1 硬件组态

在STEP7中创建一个名为“S7_PLCSIM_SFB12SFB13”的项目,用鼠标右键点击项目的图标,用出现的快捷菜单中的命令插入一个SIMATIC 400站点,选中SIMATIC管理器左边窗口出现的站,双击右边窗口中的“硬件”图标,打开硬件组态工具HW Config,将电源模块和CPU 416-3PN/DP插入机架。在自动出现的“属性-Etherne接口”对话框的“参数”选项卡中,设置IP地址为192.168.0.1。点击“新建”按钮,生成一条名为“(1)”的以太网,编译并保存组态信息。

在“S7_PLCSIM_SFB12SFB13”项目中生成另一个SIMATIC 400站点。在HW Config中,将电源模块和CPU 416-3PN/DP插入机架。在自动出现的“属性-Etherne接口”对话框的“参数”选项卡中,设置IP地址为192.168.0.2。选中“子网”列表中的“Ethernet(1)”。编译并保存组态信息。

Ethernet网接口属性对话框如图1所示。

2 组态S7连接

组态好两个S7-400站后,打开NetPro窗口,看到连接到以太网上的两个站,选中416-3PN/DP所在的小方框,在NetPro下面的窗口出现连接表,如图2所示。

图1 Ethernet网接口属性对话框

图2 网络与连接的组态

插入新连接与连接属性对话框如图3所示。

图3 插入新连接与连接属性对话框

双击连接表的第1行,在出现的“插入新连接”对话框中(见图3左侧),系统默认的通信伙伴为同一项目的站SIMATIC 400(2)中的416-3 PN/DP,默认的连接类型为S7连接。单击“确定”按钮,确认默认的设置,出现S7连接属性对话框,在“本地连接端点”区,复选框“单向”禁止选中,因此连接是双向的,在图3的连接表中,生成了相同的“本地ID”和“伙伴ID”。复选框“建立主动的连接”是默认的设置,选中该复选框时,连接表的“激活的连接伙伴”列将显示“是”。在运行时,由本地节点建立连接。反之,显示“否”,由通信伙伴建立连接。

组态好连接后,编译并保存。组态信息被保存在系统数据中。将硬件和连接的组态信息下载到各自的CPU。

3 通信程序设计

双方的通信程序基本上相同。首先生成DB201和DB200,在数据块中生成20个字节元素的数组ARAY。然后生成OB100,分别将M0.1和M1.0预置为1。然后创建功能块FB100,在两个FB100中分别调用系统功能SFB12和SFB13。最后在主程序OB1中分别调用FB100。组态和编程完成后的SIMATIC管理器如图4所示。

图4 SIMATIC管理器

SIMATIC 400(1)的OB1程序如图5所示。

图5 SIMATIC 400(1)的OB1的程序

在硬件组态时,CPU属性对话框的“周期/时钟存储器”选项卡设置MB2为时钟存储器字节。第1秒计数器C1的值加上1,并存到地址DB201.DBW0中。

在FB100中调用SFB12,程序片段如图6所示。

图6 FB100中调用SFB12的程序片段

输入参数ID为连接的标识符,R_ID用于区分同一连接中不同的SFB调用,发送方与接收方的R_ID应相同。

SIMATIC400(2)的OB1调用FB100的程序。FB100中调用SFB13。程序片段如图7所示。

图7 FB100中调用SFB13的程序片段

SFB13将接收的数据存到DB200.DB_VAR,并MOVE到QW1中。

4 通信的仿真实验

仿真实验过程如下:

1)在SIMATIC Manager中打开S7-PLCSIM,带有实例标签“S7-PLCSIM1”的第一个被仿真CPU的对话框被打开。

2)用户从下拉框中选择被组态的接口类型作为“TCP/IP”接口。

3)在SIMATIC Manager中,选中第一个S7站的块文件夹,并装载到S7-PLCSIM1中。

4)增加输入、输出等子窗口来监视并控制程序。

5)为了仿真其它CPU,用户执行菜单命令“Simulation>New PLC”。“S7-PLCSIM2”对话框打开。

6)为了仿真第二个CPU,用户从下拉框中选择被组态的接口类型作为“TCP/IP”接口。

7)在SIMATIC Manager中,选择第二个CPU的块文件夹并装载所有块到实例“S7-PLCSIM2”中。在装载之前必须选择实例“S7-PLCSIM2”。同样,添加输入、输出等子窗口。

仿真两个S7-400CPU通讯的画面如图8所示。

图8 仿真两个S7-400CPU通讯的画面

在S7-PLCSIM1(仿真站1)中,IB1控制计数器C1每秒加上1,然后发送计数值到S7-PLCSIM2(仿真站2)的QW1中[7-8]。如要仿真其它CPU,则重复4)~7)步。

5 结 语

S7通信主要用于西门子工控产品之间的通信,例如,S7-300/400CPU之间的主-主通信、CPU与人机界面和组态软件WinCC之间的通信。文中通过PLCSIM仿真两个S7-400PLC之间基于TCP/IP的S7通信,描述了实现S7通信的组态和编程方法。对于两个以上的PLC之间的通信仿真,PLCSIM同样支持。S7通信可以用于工业以太网、PROFIBUS或MPI网络。这些网络的S7通信的组态和编程方法基本相同。PLCSIM同样支持S7-400基于MPI的S7通讯以及S7-400基于DP的S7通讯的仿真。

[1] 康军,戴冠中.工业以太网远程监控系统设计[J].计算机工程与设计,2005,26(6):1633-1638.

[2] 曹怀虎,余镇危,王磊,等.以太网DCS中基于MODBUS/TCP协议通信的设计与实现[J].计算机工程与设计,2004,25(2):314-317.

[3] 马光兵,张维勇,胡敏.基于TCP/IP网络中多PLC通信的设计和实现[J].合肥工业大学学报:自然科学版,2003,26(2):218-222.

[4] 胡立坤,王庆超.基于以太网通信过程的实时改进方法研究[J].计算机工程与设计,2006,27(9):1516-1520.

[5] 廖常初.S7-300/400PLC应用教程[M].北京:中国机械工业出版社,2008.

[6] 刘楷,周海.深入浅出西门子S7-300PLC[M].北京:北京航空航天大学出版社,2004.

[7] 李丙林,宋殿斌,刘克平.PLC和触摸屏在耐压试验监控系统中的应用[J].长春工业大学学报:自然科学版,2011,32(4):394-398.

[8] 唐重和,刘克平,金晶,等.DCS控制系统在分子蒸馏生产工艺中的应用[J].长春工业大学学报:自然科学版,2012,33(2):130-134.

猜你喜欢

调用对话框组态
基于PLC及组态技术的恒温控制系统开发探讨
正常恢复虚拟机
核电项目物项调用管理的应用研究
Bootlace Worms’Secret etc.
LabWindows/CVI下基于ActiveX技术的Excel调用
基于PLC和组态的智能电动拧紧系统
基于系统调用的恶意软件检测技术研究
PLC组态控制在水箱控制系统的应用
铸造行业三维组态软件的应用
利用RFC技术实现SAP系统接口通信