• {{item.name}}
{{item.name}}
{{item2.name}}
更多
常问问题

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

star star star star star
3.8 分
  • 通信(通讯)
  • S7-400H
文档编号:F0680| 文档类型:常问问题| 发布时间:2024年01月29日
  • 0
  • 605
  • 4072
本文介绍了采用心跳信号的方法将面板连接到冗余系统的组态过程。主要针对Industrial Ethernet的应用场合,MPI的应用也同样适合。

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

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

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

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

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

《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. 不停机增加心跳信号产生程序


图1 组态Clock Memory作为心跳信号

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

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

表1 连接配置

组态配置可以参考下图。


图2 为面板组态与S7-400H的三个连接

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


图3 在相应的连接下创建必要的变量

变量的具体意义如下:

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

表2 变量的具体意义

本例方法中,为两个心跳信号在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”时,宣布连接丢失。


图4 为变量设置上限

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


图5 增加死亡计数与心跳监测相关的函数(1)

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


图6 增加死亡计数与心跳监测相关的函数(2)

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


图7 为连接状态、连接切换和切换测试组态画面(1)

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


图8 为连接状态、连接切换和切换测试组态画面(2)

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


图9 测试结果——与两个CPU连接都正常

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


图10 测试结果——与CPU0的连接故障

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


图11 心跳信号生成程序段——LAD编程


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


您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。