-
图文详情
-
产品属性
-
相关推荐
西门子网关6GK1411-5AB00
6GK1411-5AB00IE/PB LINK PN IO 网关 在工业以太网和 PROFIBUS(带 PROFINET IO)之间 功能 S7 路由和 数据记录路由,10/100 it/s 以太网 9.6 kbit/s 至 12 it/s PROFIBUS
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系统,可以参考下面连接。
本文不介绍WinCC Flexible的基本使用和HMI画面的组态过程与组态方法。详细可以参考下面链接。
2.1 配置CPU的心跳信号2. 心跳信号方法组态步骤
对于S7-400H,我们可以使用Clock Memory来作为心跳信号。关于Clock Memory的说明,可以参考在线帮助获得更详细的信息。
注1:项目程序或其他应用中没有占用Clock Memory所组态的地址区域。本例中,使用 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 连接配置
组态配置可以参考下图。
西门子网关6GK1411-5AB00图2 为面板组态与S7-400H的三个连接
2.3 创建要的变量
在WinCC Flexible中,在相应的连接下创建要变量,如下图所示。(其中Procs_Data为测试变量,可根据实际情况使用用户自定义的变量。)
图3 在相应的连接下创建要的变量
变量的具体意义如下:
ActiveConnection | (内部变量)指示当前Connection_X正在使用连接链路 |
CPU0_DeathCounter | 用于累计与CPU 0连接丢失周期的“亡计数变量” |
CPU0_DeathCounter_Ret | 复位时使用的与CPU 0连接的“亡计数变量” |
CPU0_DeathDeclare | 用于宣布与CPU 0连接丢失的“亡计数变量” |
CPU0_Heartbeat | CPU 0的心跳信号 |
CPU1_DeathCounter | 用于累计与CPU 1连接丢失周期的“亡计数变量” |
CPU1_DeathCounter_Ret | 复位时使用的与CPU 1连接的“亡计数变量” |
CPU1_DeathDeclare | 用于宣布与CPU 1连接丢失的“亡计数变量” |
CPU1_Heartbeat | CPU 1的心跳信号 |
Procs_Data | 本例中使用的用于测试的过程变量MW 100(本例中只使用了一个,用户可根据需求创建过程变量) |
表2 变量的具体意义
本例方法中,为两个心跳信号在H-CPU各注册了一个变量地址。但在面板项目中,对两个心跳信号各创建了三个“具有相同地址”的变量。原因为:
CPU?_DeathCouter定义了亡计数的上限值以及使用此变量进行计数的累加和复位;CPU?_DeathDeclare用于“判定亡计数器是否已经亡标准(触发上限)”;CPU?_DeathCounter_Ret用于“当一个连接失效后,将另一个连接亡计数器复位至非亡区域内”(此变量与前两个变量使用相反的连接,参考图3)。
* 注:由于同一变量不能自加计数过自身上限,所以须至少使用两个相同地址的变量,一个用于触发一个上限,另一个用于累加计数并能过前者的上限。因此,CPU0_DeathCounter、CPU0_DeathCounter_Ret和CPU0_DeathDeclare这三个“亡计数变量”使用相同的物理地址;同样,CPU1_DeathCounter、CPU1_DeathCounter_Ret和CPU1_DeathDeclare也使用相同的物理地址。
2.4 为部分变量设置上限
CPU0_DeathCounter和CPU1_DeathCounter设置上限为12,定义了“亡计数变量”的值为12;CPU0_DeathDeclare和CPU1_DeathDeclare设置上限10,定义了当“亡计数变量 > 10”时,宣布连接丢失。
西门子网关6GK1411-5AB00图4 为变量设置上限
2.5 增加亡计数与心跳监测相关的函数
当“亡计数变量 > 10”时,宣布连接丢失: 切换连接,并将另一个亡计数复位回“非亡区”。
图5 增加亡计数与心跳监测相关的函数(1)
每心跳被检测到,都复位相应“亡计数变量”,并向上累计与另一个CPU的“亡计数变量”。
图6 增加亡计数与心跳监测相关的函数(2)
2.6 设计画面
项目中画面的设计,应根据用户需求而定。本例中,提供一些常用的相关设计。
与连接状态判断和切换无关的变量(工程变量),都应基于连接“Connection_X”创建。
图7 为连接状态、连接切换和切换测试组态画面(1)
可以设计两个按钮用于手动的连接切换,如上图和下图。
图8 为连接状态、连接切换和切换测试组态画面(2)
2.7 结果测试
当两个连接链路都正常时的画面状态,如下图。
图9 测试结果——与两个CPU连接都正常
当与CPU 0连接时并失败时的画面状态,如下图。西门子网关6GK1411-5AB00
图10 测试结果——与CPU0的连接故障
3. 不停机增加心跳信号产生程序
如果当前系统正在运行,且无法停机修改组态来增加Clock Memory。此时,我们可以通过增加程序或程序段的方式来产生心跳信号(代替Clock Memory)。下面给出了用于梯形图LAD编程和CFC编程使用的两种示例程序段。
图11 心跳信号生成程序段——LAD编程
图12 心跳信号生成程序段——CFC编程
注:项目程序或其他应用中没有占用“心跳信号”使用的地址区域。本例中,使用 10作为心跳信号。使用上述程序后,不要再将相同的地址区域组态为Clock Memory使用。
支 持扩展诊断功能的PROFINET IO设备只能被同样支持扩展诊断功能的PROFINET IO控制器操作。在STEP7硬件组态中把支持扩展诊断功能的PROFINET IO设备(如ET200S IM151-N接口模块67151-3BA23-0AB0)连接到不支持扩展诊断功能的PROFINET IO控制器(如CP443-1Advanced模块6GK7443-1EX41-0XE0)上时,会提示出错,如图1所示:
此 时,要么更换PROFINET IO控制器为支持扩展诊断功能的控制器(如CP443-1Advanced模块6GK7443-1GX20-0XE0),或者将实际支持扩展诊断功能的 PROFINET IO设备(如ET200S IM151-N接口模块67151-3BA23-0AB0)组态为较低版本的不支持扩展诊断功能的PROFINET IO设备(如ET200S IM151-N接口模块67151-3BA20-0AB0),如下图,此时可以正常组态和通讯,但不能应用接口模块的扩展诊断功能。
西门子网关6GK1411-5AB00