连接面板到S7-400H系统——心跳信号方法

n

1. 简介
在另一个技术文档《连接面板到S7-400H系统——主站跟踪方法》(文档编号:F0244)中,已经介绍了一种用于将面板连接到S7-400H系统的方法。该文档中,通过始终选择连接主CPU的方法,使与S7-400H连接的面板(操作屏)能在冗余系统中自动切换。该方法实现简单、思路清楚、切换速度较快;但在“面板与S7-400H间的网络线路故障”等情形下,不能实现有效地自动切换。所以,本文提供了另一种方法,可以解决上述问题。n

本方法基本原理如下:
1) 在H-CPU中使用唯一的一个心跳信号变量,并周期性变化。在面板中,通过检测其变化,来实现对两个连接状态的判断。
2) 在面板中使用两个独立的连接与两个机架的CPU通讯,接收来自H-CPU的心跳信号以及与CPU连接状态信号。建立第三个连接,用于创建除以上两种信号之外的其他的所有工程变量。
3) 为两个CPU分别建立死亡计数器,当对应于其中一条连接的死亡计数器数值超出一定限制时,此连接不再可用。同时,利用连接切换函数,将第三个连接切换至另一个CPU。
4) 如果系统检测到正常的心跳信号,对应的死亡计数器将被周期性地复位至初始值,此时该计数器数值会维持在较低的范围(本例中为2~3);如果其中一个连接失效后,该死亡计数器数值会维持在较高的范围(本例中为11~12)。n

本文的方法适用于:
 IE方式(推荐方式)
 MPI方式
 DP方式㈡*
*注:可以参考技术文档《连接面板到S7-400H系统——主站跟踪方法》(文档编号:F0244)的应用场合。
此方法只适合于支持3个及以上连接的、并且支持“ChangeCoection” 函数的面板。像OP 77、OP/TP 170、OP/TP177、OP/TP 270、OP/TP 277、MP 270、MP 277、MP 370等面板都满足这些要求。
关于使用“主站跟踪方法”连接面板到S7-400H系统,可以参考下面连接。n

《连接面板到S7-400H系统——主站跟踪方法》
下载中心文档编号: F0244
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0244

本文不介绍WinCC Flexible的基本使用和HMI画面的组态过程与组态方法。详细可以参考下面链接。n

《SIMATIC HMI WinCC flexible 2008 使用入门 - 首次使用》
下载中心文档编号: 18660846 18660846
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=18660846

2. 心跳信号方法组态步骤

2.1 配置CPU的心跳信号
对于S7-400H,我们可以使用Clock Memory来作为心跳信号。关于Clock Memory的说明,可以参考在线帮助获得更详细的信息。
注1:确保项目程序或其他应用中没有占用Clock Memory所组态的地址区域。本例中,使用MB 10作为Clock Memory(心跳信号)。
注2:若S7-400H系统已经在生产运行中,且不能停机,可以参考: 3. 不停机增加心跳信号产生程序。n

连接面板到S7-400H系统——心跳信号方法
图1 组态Clock Memory作为心跳信号n

2.2 配置面板连接
在WinCC Flexible中,为面板组态与S7-400H的三个连接,分别为:n

Coection_A 与CPU 0的连接
Coection_B 与CPU 1的连接
Coection_X 可变的连接,所有过程变量都建立在此连接上。
初始时,此连接参数与Coection_A相同。

表1 连接配置n

组态配置可以参考下图。n

连接面板到S7-400H系统——心跳信号方法
图2 为面板组态与S7-400H的三个连接n

2.3 创建必要的变量
在WinCC Flexible中,在相应的连接下创建必要变量,如下图所示。(其中Process_Data为测试变量,可根据实际情况使用用户自定义的变量。)n

连接面板到S7-400H系统——心跳信号方法
图3 在相应的连接下创建必要的变量n

变量的具体意义如下:n

ActiveCoection (内部变量)指示当前Coection_X正在使用连接链路
CPU0_DeathCounter 用于累计与CPU 0连接丢失周期的“死亡计数变量”
CPU0_DeathCounter_Reset 特殊复位时使用的与CPU 0连接的“死亡计数变量”
CPU0_DeathDeclare 用于宣布与CPU 0连接丢失的“死亡计数变量”
CPU0_Heartbeat CPU 0的心跳信号
CPU1_DeathCounter 用于累计与CPU 1连接丢失周期的“死亡计数变量”
CPU1_DeathCounter_Reset 特殊复位时使用的与CPU 1连接的“死亡计数变量”
CPU1_DeathDeclare 用于宣布与CPU 1连接丢失的“死亡计数变量”
CPU1_Heartbeat CPU 1的心跳信号
Process_Data 本例中使用的用于测试的过程变量MW 100(本例中只使用了一个,用户可根据需求创建过程变量)

表2 变量的具体意义n

本例方法中,为两个心跳信号在H-CPU各注册了一个变量地址。但在面板项目中,对两个心跳信号各创建了三个“具有相同地址”的变量。原因为:
CPU?_DeathCouter定义了死亡计数的上限值以及使用此变量进行计数的累加和复位;CPU?_DeathDeclare仅用于“判定死亡计数器是否已经达到死亡标准(触发上限)”;CPU?_DeathCounter_Reset仅用于“当一个连接失效后,将另一个连接死亡计数器复位至非死亡区域内”(此变量与前两个变量使用相反的连接,参考图3)。
* 注:由于同一变量不能自加计数超过自身上限,所以必须至少使用两个相同地址的变量,一个用于触发一个上限,另一个用于累加计数并能超过前者的上限。因此,CPU0_DeathCounter、CPU0_DeathCounter_Reset和CPU0_DeathDeclare这三个“死亡计数变量”使用相同的物理地址;同样,CPU1_DeathCounter、CPU1_DeathCounter_Reset和CPU1_DeathDeclare也使用相同的物理地址。
2.4 为部分变量设置上限
CPU0_DeathCounter和CPU1_DeathCounter设置上限为12,定义了“死亡计数变量”的最大值为12;CPU0_DeathDeclare和CPU1_DeathDeclare设置上限10,定义了当“死亡计数变量 > 10”时,宣布连接丢失。

连接面板到S7-400H系统——心跳信号方法
图4 为变量设置上限

2.5 增加死亡计数与心跳监测相关的函数
当“死亡计数变量 > 10”时,宣布连接丢失: 切换连接,并将另一个死亡计数复位回“非死亡区”。

连接面板到S7-400H系统——心跳信号方法
图5 增加死亡计数与心跳监测相关的函数(1)

每一次心跳被检测到,都复位相应“死亡计数变量”,并向上累计与另一个CPU的“死亡计数变量”。

连接面板到S7-400H系统——心跳信号方法
图6 增加死亡计数与心跳监测相关的函数(2)

2.6 设计画面
项目中画面的设计,应根据用户需求而定。本例中,仅提供一些常用的相关设计。
与连接状态判断和切换无关的变量(工程变量),都应基于连接“Coection_X”创建。

连接面板到S7-400H系统——心跳信号方法
图7 为连接状态、连接切换和切换测试组态画面(1)

可以设计两个按钮用于手动的连接切换,如上图和下图。

连接面板到S7-400H系统——心跳信号方法
图8 为连接状态、连接切换和切换测试组态画面(2)

2.7 结果测试
当两个连接链路都正常时的画面状态,如下图。

连接面板到S7-400H系统——心跳信号方法
图9 测试结果——与两个CPU连接都正常

当与CPU 0连接超时并失败时的画面状态,如下图。

连接面板到S7-400H系统——心跳信号方法
图10 测试结果——与CPU0的连接故障

3. 不停机增加心跳信号产生程序
如果当前系统正在运行,且无法停机修改组态来增加Clock Memory。此时,我们可以通过增加程序或程序段的方式来产生心跳信号(代替Clock Memory)。下面给出了用于梯形图LAD编程和CFC编程使用的两种示例程序段。

连接面板到S7-400H系统——心跳信号方法
图11 心跳信号生成程序段——LAD编程

连接面板到S7-400H系统——心跳信号方法
图12 心跳信号生成程序段——CFC编程
注:确保项目程序或其他应用中没有占用“心跳信号”使用的地址区域。本例中,使用MB 10作为心跳信号。使用上述程序后,不要再将相同的地址区域组态为Clock Memory使用。

关键词
面板,屏,触摸屏,冗余,冗余系统,400H,S7-400H,冗余CPU,冗余连接,切换,自动切换,冗余切换,心跳信号

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论