Siemens PLC 系统软件冗余的说明与实现 Description & Realization About Soft Redundancy For Siemens PLC Getting Started Edition (2008 年 1 月 )
摘要 : 本文详细阐述西门子软冗余系统的功能与实现方法 包括系统结构 工作原理和编程方法 关键词 : 软冗余,S7-300,S7-400,DP Key Words:Software Redundancy, Standby, switch time A&D Service & Support Page 2-27
目 录 Siemens PLC 系统软件冗余的说明与实现...1 一. 软件冗余基本信息介绍...4 1. 系统结构...4 2. 系统工作原理...5 3. 产品订货信息...8 4.SIEMENS PLC 控制系统关于热插拔功能的定义 :...9 二. 软冗余系统的调试过程...10 1. 不同系统结构方式下的功能块 :...10 2. 创建一个应用实例...15 S7-300 模板手册的下载路径 :...26 附录 - 推荐网址...27 A&D Service & Support Page 3-27
一. 软件冗余基本信息介绍 软件冗余是 Siemens 实现冗余功能的一种低成本解决方案, 可以应用于对主备系统切换时间要 求不高的控制系统中 1. 系统结构 Siemens 软件冗余系统的软件 硬件包括 : 1 套 STEP7 编程软件 (V5.x) 加软冗余软件包 (V1.x); 2 套 PLC 控制器及 I/O 模块, 可以是 S7-300 或 S7-400 系统 ; 3 条通讯链路, 主系统与从站通讯链路 (PROFIBUS 1) 备用系统与从站通讯链路 (PROFIBUS 2) 主系统与备用系统的数据同步通讯链路(MPI 或 PROFIBUS 或 Ethernet); 若干个 ET200M 从站, 每个从站包括 2 个 IM153-2 接口模块和若干个 I/O 模块 ; 除此之外, 还需要一些相关的附件, 用于编程和上位机监控的 PC-Adapter( 连接在计算机串口 ) 或 CP5611( 插在主板上的 PCI 槽上 ) 或 CP5511( 插在笔记本的 PCMIA 槽里 ) PROFIBUS 电缆 PROFIBUS 总线链接器等 ; 下图说明了软冗余系统的基本结构 : 可以看出, 系统是由两套独立的 S7-300 或 S7-400 PLC 系统组成, 软冗余能够实现 : 图 2 A&D Service & Support Page 4-27
I. 主机架电源 背板总线等冗余 ; II. PLC 处理器冗余 ; III. PROFIBUS 现场总线网络冗余 ( 包括通讯接口 总线接头 总线电缆的冗余 ); IV. ET200M 站的通讯接口模块 IM153-2 冗余 软冗余系统由 A 和 B 两套 PLC 控制系统组成 开始时,A 系统为主,B 系统为备用, 当主系统 A 中的任何一个组件出错, 控制任务会自动切换到备用系统 B 当中执行, 这时,B 系统为主,A 系统为备用, 这种切换过程是包括电源 CPU 通讯电缆和 IM153 接口模块的整体切换 系统运行过程中, 即使没有任何组件出错, 操作人员也可以通过设定控制字, 实现手动的主备系统切换, 这种手动切换过程, 对于控制系统的软硬件调整, 更换, 扩容非常有用, 即 Altering Configuration and Application Program in RUN Mode 2. 系统工作原理在软冗余系统进行工作时,A B 控制系统 ( 处理器, 通讯 I/O) 独立运行, 由主系统的 PLC 掌握对 ET200 从站中的 I/O 控制权 A B 系统中的 PLC 程序由非冗余 (non-duplicated) 用户程序段和冗余 (redundant backup) 用户程序段组成, 主系统 PLC 执行全部的用户程序, 备用系统 PLC 只执行非冗余用户程序段, 而跳过冗余用户程序段 下面我们看一下软冗余系统中 PLC 内部的运行过程 : A&D Service & Support Page 5-27
图 3 主系统的 CPU 将数据同步到备用系统的 CPU 需要几个程序扫描循环 : A&D Service & Support Page 6-27
图 4 数据同步所需要的时间取决于同步数据量的大小和同步所采用的网络方式 ( 图 2 中的紫色网络 线 ),MPI 方式周期最长,PROFIBUS 方式适中,Ethernet 网方式最快 PROFIBUS 网络 Ethernet 以太网 MPI 网络 1.5 Mbaud 10 MBaud 187.5 kbaud 每 60ms 传送 240 个字节数据 每 48ms 传送 240 个字节数据 每 152ms 传送 76 个字节数据 表 1 用户需要在初始化程序中 (OB100) 定义冗余部分的数据区, 该数据区可以包括 : 一个过程映象 区 (process image area), 一个定时器区 (IEC timer area), 一个计数器区 (IEC counter area), 一个位地址区 (memory address area) 和一个数据块区 (data block area),s7-300同步的最大数据量为 8 kbytes,s7-400 同步的最大数据量 64kBytes 主备系统的切换时间 = 故障诊断检测时间 + 同步数据传输时间 + DP 从站切换时间 A&D Service & Support Page 7-27
如果 CPU 的故障是停机或断电, 则故障诊断为大约 100-1000 毫秒,315-2DP 同步 1000 字节的数据所需的时间大约为 200-300ms,8 个 DP 从站的切换时间在 100ms 左右 您可以在软冗余手册当中找到关于切换时间的具体说明 无论控制程序循环扫描到哪里, 当前激活的系统 ( 即主系统 ) 随时都会接收并处理报警, 这样, 在主系统 A 与备用系统 B 进行切换过程中产生的 alarm 存在被丢失的可能 3. 产品订货信息 如下给软冗余系统相关产品的订货信息 : 产品名称 订货号 描述 CPU 系列 CPU314C-2DP CPU313C-2DP CPU 31x-2DP CPU 412-1 CPU 412-2 CPU 413-1 CPU 413-2DP CPU 414-1 CPU 414-2DP CPU 414-3DP CPU 416-1 CPU 416-2DP CPU 416-3DP CPU 417-4 6ES7 314-6CF00-0AB0 6ES7 313-6CE00-0AB0 6ES7 315-2AFxx-0AB0 6ES7 315-2AG10-0AB0 6ES7 316-2AGxx-0AB0 6ES7 318-2AJxx-0AB0 6ES7 412-1XFxx-0AB0 6ES7 412-1FK03-0AB0 6ES7 412-2XGxx-0AB0 6ES7 413-1XGxx-0AB0 6ES7 413-2XGxx-0AB0 6ES7 414-1XGxx-0AB0 6ES7 414-2XGxx-0AB0 6ES7 414-2XJxx-0AB0 6ES7 414-3XJxx-0AB0 6ES7 416-1XJxx-0AB0 6ES7 416-2XKxx-0AB0 6ES7 416-2XLxx-0AB0 6ES7 416-3XLxx-0AB0 6ES7 417-4XLxx-0AB0 S7-300 系列只能够实现软件冗余, 无硬件冗余的功能 S7-400 全系列的 CPU 都可以应用于软冗余系统 ; S7-400 H 系列的 CPU 属于硬件冗余方式, 相对于软冗余, 硬件冗余系统切换速度快, 主备 CPU 中的数据和事件保证完全一致, 适于高可靠性应用场合, 成本较高 CP 通讯处理器系列 ( 数据同步 Redundant-backup link) CP 342-5 PROFIBUS 通讯模块 CP 343-1 Ethernet 通讯模块 6ES7 342-5DA00-0XE0 6GK7 342-5DA02-0XE0 6GK7 343-1BA00-0XE0 6GK7 343-1EX11-0XE0 A&D Service & Support Page 8-27
CP 443-5 Extended PROFIBUS 通讯模块 6EK7 443-5DXxx-0XE0 CP 443-1 ISO Ethernet 通讯模块 6EK7 443-1BXxx-0XE0 ET200 系列 2x DP slave interface IM 153-2 适于 ET200M 的所有数字量 模拟量 I/O 模板 6ES7 153-2AA02-0XB0 6ES7 153-2AB01-0XB0 参照 S7-300 选型样本和 STEP 7 的硬件组态窗口中 ET200 文件夹中的 I/O 模块 S7-300 模板手册的下载路径 : http://support.automation.siemens.com/cn/view/zh /8859629 CP 341 6ES7 341-1xH01-0AE0 串口通讯模板 FM 350 6ES7 350-1AH0x-0AE0 计数器功能模板 相关软件及附件 STEP7 编程软件软冗余软件包 (Software Redundancy) 6ES7 810-4CC08-0YA5 6ES7 862-0AC01-0YA0 包括冗余功能块的安装软件和授权 PROFIBUS 标准电缆 6XV1 830-0EH10 按米订货 RS485 总线连接器 6ES7 972-0BA12-0XA0 PROFIBUS 网络连接头 CP5611 通讯卡 6GK1 561-1AA00 进行编程和上位机监控的通讯卡表 2 4.SIEMENS PLC 控制系统关于热插拔功能的定义 : 1. 带电插拔模块时, 确保不造成模块的硬件损坏 ; 2. 带电插拔模块时,CPU 不停机, 并产生报警 ; 3. 带电插拔模块时, 该模块 I/O 通道的数值保持不变, 而其他模块的运行不受影响 ; 4. 带电插拔模块时,CPU 中触发中断组织块或通过 DP 诊断程序块, 得到模块拔出或插入的事件信息, 在用户程序或中断组织块 OB** 中进行相应控制逻辑和 I/O 通道的处理 ; 表 3 注 : A&D Service & Support Page 9-27
1) 只有 S7-300 315-2DP( 除 CPU314C-2DP CPU313C-2DP) 型号以上的 PLC 才支持软冗余功能, 所有的 S7-400 都支持软冗余功能 ; 2) 主系统与备用系统的 CPU 型号可以不同, 如主系统采用一套 S7-400 系统, 而备用系统采用一套 S7-300 系统 ; 3) 软冗余系统中的 ET200M 从站必须使用带有有源总线模块 (Active Bus Module) 的导轨, 您可以在 ET200M 的有源总线底板配置与说明.doc 文档中, 找到关于有源总线模块和导轨的具体订货和使用信息 ; 4) 采用 S7-300 作为主站的软冗余系统无法实现热插拔全部功能, 不具备以上所列第 3,4 条目中的功能 当您将 ET200M 从站上的模块拔出时,CPU 不停机, 主 CPU 备用 CPU 上的 SF 灯亮,BUSF 灯闪烁,ET200M 从站上的 2 块 IM153-2 模块的 SF 灯亮,BF 灯闪烁, 该 ET200M 从站上所有模块的 I/O 值被清 0,S7-300 主站失去对该 ET200M 从站的控制能力 当您再次将模块插入到 ET200M 站上时, 系统从主 CPU 切换到备用 CPU,SF BUSF BF 灯熄灭, 软冗余系统重新回到正常运行状态 5) 若要软冗余系统实现热插拔的 4 项功能, 您必须使用 S7-400 作为软冗余系统的主站 二. 软冗余系统的调试过程 在您的计算机上首先安装 STEP7 5.x 软件和软冗余软件包, 软冗余软件光盘包括了冗余功能 程序块库 不同系统结构的例子程序和软冗余使用手册 1. 不同系统结构方式下的功能块 : 在安装完软冗余的软件后, 您可以在 STEP7 当中找到例子程序和功能程序块库 : A&D Service & Support Page 10-27
图 5 A&D Service & Support Page 11-27
图 6 以上图 5 显示的是在 STEP7 中使用 OPEN 菜单打开软冗余的例子程序, 例子程序中采用 MPI 链路实现数据的同步 图 6 显示在安装完软冗余软件后, 您可以在 Libraries 找到不同 CPU 以及不同链接方式下可以使用的功能块 下面的两个表格分别说明了采用 S7-300,S7-400 进行软件冗余时, 可采用的不同网络连接以及所需调用的程序功能块包 A&D Service & Support Page 12-27
表 3 从以上的表格中可以看到, 软冗余系统当中可以采用 MPI PROFIBUS Ethernet 三种网络 实现主系统和备用系统之间的数据同步 (Redundant-backup link) 采用 BSEND_400 包中的功能块进行数据同步时, 无论数据同步的连接是什么方式, 都需要在 STEP7 的 NETPRO 窗口中组态一个 S7 Connection 除了 BSEND_400 中之外, 使用其他功能库中的程序块 : 采用 MPI 网络时, 直接使用 PLC 的编程口进行数据同步, 不需要进行连接 (Connection) 的组态, 但 MPI 数据同步的效率低 采用 PROFIBUS 网络时, 需要使用一对 CP 通讯卡 (CP342-5 或 CP443-5), 在 STEP7 的 NETPRO 窗口中组态主系统和备用系统之间的 FDL 连接 A&D Service & Support Page 13-27
采用 Ethernet 网络时, 需要使用一对 CP 通讯卡 (CP343-1 或 CP443-1), 在 NETPRO 窗口中组态主系统和备用系统之间的 ISO 连接 冗余功能块说明 : 名称 FC 100 SWR_START FB 101 SWR_ZYK 描述 初始化程序块, 定义系统运行的参数 循环调用的数据同步功能块, 将主系统中的冗余数据复制到备用系统当 中 FC 102 SWR_DIAG FB 103 SWR_SFCCOM FB 104 SWR_AG_COM 诊断功能块, 在 OB86 中调用, 将得到的诊断数据提供给 FB101 使用 在该块内部调用 SFC 65 X_SEND 和 SFC 66 X_RCV 功能块, 实现采用 MPI 网络的数据同步 在该块内部调用 FC 5 AG_SEND, FC 6 AG_RCV, 实现采用 PROFIBUS 或 Ethernet 网络的数据同步 FB 105 SWR_SFBCOM 在该块内部调用 SFB 12 BSEND and SFB 13 BRCV 功能块, 实现 MPI 或 PROFIBUS 或 Ethernet 网络的数据同步, 只能在 S7-400 中调用 DB_WORK_NO 冗余软件块使用的数据区, 用户不需要生成该数据块, 也不使用该数据 块中的数据 ; DB_SEND_NO 用于主系统发送同步数据到备用系统的发送数据区 ( 包括了主系统的 M T C DB 等区域的数据 ), 用户不需要生成该数据块, 也不使用该数据块中的数据 ; DB_RCV_NO 用于备用系统接收来自主系统的同步数据的接收数据区, 用户不需要生 成该数据块, 也不使用该数据块中的数据 ; DB_A_B_NO 从 A 站到 B 站, 非冗余同步的数据的收发区 ; DB_B_A_NO 从 B 站到 A 站, 非冗余同步的数据的收发区 ; DB_COM_NO FB101 的背景数据块, 包括了数据同步链路的状态, 控制等信息, 用户 需要生成该数据块,DBW8 为状态字,DBW10 为控制字,; FC 5 AG_SEND PROFIBUS 网络中, 实现 FDL 链接, 在 FB104 内部调用的发送块, 用户 需要生成该程序块, 并下载到 PLC 当中 FC 6 AG_RCV PROFIBUS 网络中, 实现 FDL 链接, 在 FB104 内部调用的接收块, 用户 需要生成该程序块, 并下载到 PLC 当中 表 4 注 : A&D Service & Support Page 14-27
1) 采用 PROFIBUS 或 Ethernet 方式进行数据同步时, 需要在 OB1 或 OB35( 定时中断组织块 ) 当中调用 FB101, 而 FB101 内部调用了 FB104 FC5 FC6, 所以您必须手动地将 FB104 FC5 FC6 插入到项目当中, 插入的方法是 : 在程序中调用一次, 再将这条语句删掉 2). 在 OB100 中调用 FC100 功能块时,PLC 会自动创建一些与 FC100 参数相关的程序段和数据块, 所以当你更改了 FC100 的参数时, 应该对 PLC 进行 Reset 操作, 再重新下载项目的软硬件到 PLC 当中 2. 创建一个应用实例 下 : 附件中我们给出了一个例子项目, 由两套 315-2DP 和一个 ET200M 从站组成, 系统结构如 除了实现冗余功能的 3 条 PROFIBUS 网络外, 还有一条 MPI 网络用于上位机监视和控制程序的调试 图 7 以下是生成该例子程序的步骤, 您可以根据您系统的配置情况进行参照 : 1). 插入两个 S7-300 的站,A 和 B, 在 A 站和 B 站的硬件组态窗口中, 插入 315-2DP 时, 要分别创建相互 独立的 PROFIBUS 网络 ( 如 A 站为 Master_Line B 站为 Reserve_Line), 使用网络的默认参数, 速 A&D Service & Support Page 15-27
率为 1.5M, 并都将站地址设定为 2,A 站和 B 站的 PROFIBUS DP 集成通讯口设定为主站模式 (Master Mode) 2). 分别在 A B 站中插入 CP342-5 模块, 连接到同一个 PROFIBUS 网络上 (Sychronization_Line), 地址分别为 4 5, 将 CP342-5 设定为 No DP 方式, 并记录 CP342-5 的硬件地址 256 3). 分别在 A B 站的硬件组态窗口中插入一个 ET200 从站 ( 一个 IM153-2 模块和一个 16 入 /16 出的数字量模板 ),DP 的地址为 3 4). 进入 STEP7 的网络组态窗口 NETPRO 中, 选中 A 站的 CPU 点击鼠标右键, 插入一个新的链接, 选择 FDL Connection, 点击 Apply, 弹出链接属性窗口, 记录链接的 ID, 设定 LSAP 为 17,18, 存盘编译网络组态 系统的网络结构如下 : 图 8 以上网络结构中包括了 4 条链路 : 用于上位机编程和监控的 MPI 链路 ; A 站与 ET200 从站 Master Line PROFIBUS 链路 ; B 站与 ET200 从站 Reserve Line PROFIBUS 链路 ; A 站和 B 站之间进行数据同步的 Synchronization Line PROFIBUS 链路 A&D Service & Support Page 16-27
您可以通过点击图中的状态读取按钮, 获取当前 FDL 链接的状态, 上图的左下角显示当前在线读取 FDL 的状态为 OK 5). 在 A 站的 Block 中插入 OB1( 主循环程序块 ) OB35( 定时中断组织块 ) OB100( 暖启动调用程序块 ) OB80( 在主系统与备用系统切换时间超时时, 调用该块 ) OB82 (DP-Slave ET200 站上的 IM153-2 模块出错报警, 调用该功能块 ) OB83 (DP 从站的接口模块与主站链接断开或链接重新建立时调用该块 ) OB85( 程序运行出错或 DP 从站连接失败调用该块 ) OB86( 主从站通讯出错调用该块 ) OB87( 通讯失败调用该块 ) OB122( 外围设备访问出错调用该块 ) OB121 等组织块, 并对其中的 OB100 OB35 OB86 进行编程 6). 在 OB100 中我们调用 FC 100 SWR_START 进行软冗余的初始化, 有几个参数需要特别注意, LADDR 应当和 CP342-5 的硬件地址相一致, 例子程序为 256,VERB_ID 必须和你在 NETPRO 中创建的 FDL 链路的 ID 号一致, 例子程序为 1,DB_COM_NO 为系统中未使用的数据块, 建议仍采用 DB5 如下表格给出了 FC100 功能块参数的说明和例子, 供您编程参考 : 参数名数据类型描述例子 AG_KENNUNG 字符型 A 站应当填 A A B 站应当填 B DB_WORK_NO 数据块名称软冗余功能实现所需要使用的内部数据块, 用户不用生成该块, DB1 也无需读写其中的数据 DB_SEND_NO 数据块名称存放发送数据所使用的内部数据块,A B 或 B A, 用户不用生成 DB2 该块, 也无需读写其中的数据 DB_RCV_NO 数据块名称存放接收数据所使用的内部数据块,A B 或 B A, 用户不用生成 DB3 该块, 也无需读写其中的数据 MPI_ADR 整型对方站的 MPI 站地址, 进行 MPI 网络数据同步时才有意义 2 LADDR 整型 CP 通讯处理器组态的硬件地址, 采用 PROFIBUS 或 Ethernet 网络 256 进行数据同步时才有意义 VERB_ID 整型网络链接的 ID 号, 在 NETPRO 窗口中组态的链接的 ID 值, 如 FDL 1 Connection ISO Connection 或 S7 Connection DP_MASTER_S 整型 DP 主站网络的 ID 号, 你可以在 NETPRO 窗口中双击链接 ET200M YS_ID 从站紫色的 PROFIBUS 主从网络, 获取该 ID 值 DB_COM_NO 数据块名称 FB101 所用使用的背景数据块, 需用户生成该块, 并可以读取状 1 DB5 态字 DBW8 和控制字 DBW10, 获取系统信息或手动切换主备系统 DP-KOMMUN 整型确定链接 ET200 从站的 DP 通讯口类型 : 1 1. 使用 CPU 上集成 DP 通讯口链接 ET200 从站 ; A&D Service & Support Page 17-27
2. 使用 CP 通讯卡上的 DP 通讯口链接 ET200 从站 ; ADR_MODUS 整型 CPU 分配 I/O 地址的矩阵的增量, 不同 CPU 的地址矩阵不同 : 1 1, if base addresses 0, 1, 2, 3... 4, if base addresses 0, 4, 8, 12... PAA_FIRST 整数 ET200M 站第一个输出字节的地址 0 PAA_LAST 整型 ET200M 站最后一个输出字节的地址,PAA_FIRST 到 PAA_LAST 的字节范围必须是 ET200M 站上连续定义的 4 MB_NO 整型冗余的 M 数据区的起始字节地址 20 MB_LEN 整型冗余的 M 数据区的字节个数, 如 MB_NO 为 20,MB_LEN 为 30, 则 30 MB20-MB49 这个数据段为冗余数据区 ; IEC_NO 整型冗余的 IEC 定时器 IEC 计数器所使用的起始背景数据块 111 IEC_LEN 整型冗余的 IEC 定时器 IEC 计数器所使用的背景数据块的个数, 如 7 IEC_NO 设为 111, IEC_ LEN设为 7, 则 DB111- DB117为存放冗余同步定时器 计数器的背景数据去 DB_NO 整型 冗余的起始数据块 8 DB_NO_LEN 整型冗余的数据块个数, 如 DB_NO 为 8,DB_NO_LEN 为 2, 则 DB8-2 DB9 为冗余的数据块 SLAVE_NO 整型 ET200 从站的最低站地址 3 SLAVE_LEN 整型 ET200 从站的个数, 如 SLAVE_NO 为 3,SLAVE_LEN 为 2, 则该软冗 余系统连接了站号为 3,4 的两个 ET200 从站, 站号必须连续 SLAVE_DISTA NCE 整型确定所链接 ET200 从站上 IM153-2 模块的 PROFIBUS DP 站地址 : 1. 2 块 IM153-2 模块的 DP 口使用相同的站地址 ; 2. 2 块 IM153-2 模块的 DP 口的站地址为 n 和 n+1; 1 DB_A_B_NO 数据块名称通过数据同步链路 (Redundency Link),A B 站之间还能进行 DB11 一些非冗余数据通讯, 即 2 个 PLC 之间的普通数据交换, 该参数即定义从 A 站到 B 站, 交换的非冗余数据块 DB_A_B_NO_L WORD A 站到 B 站, 非冗余数据块中交换的 Word 字数, 如 DB_A_B_NO 设为 W#16#6 EN DB11,DB_A_B_NO_LEN 设为. W#16#64, 则 A 站的 DB11.DBW0-4 DB11.DBW198 被复制到 B 站的 DB11.DBW0-DB11.DBW198, 因为 W#16#64 代表 16 进制 64, 即一共复制 100 个数据字 DB_B_A_NO 数据块名称 该参数即定义从 B 站到 A 站, 交换的非冗余数据块 DB12 A&D Service & Support Page 18-27
DB_B_A_NO_L EN WORD B 站到 A 站, 非冗余数据块中交换的 Word 字数, 如 DB_B_A_NO 设为 DB12,DB_B_A_NO_LEN 设为. W#16#64, 则 B 站的 DB12.DBW0- W#16#64 DB12.DBW198 被复制到 A 站的 DB12.DBW0-DB12.DBW198, 因为 W#16#64 代表 16 进制 64, 即一共复制 100 个数据字 RETURN_VAL WORD 调用 FC100 的返回值, 为 0 代表正常, 其他返回值您可以在错误代 MW2 码表中找到对应的错误原因 EXT_INFO WORD FC100 中内部调用的一些功能块所返回的错误代码 MW4 表 5 7). 一般我们建议您将您的非冗余程序段编写在 OB1 当中, 而将冗余程序段编写在 OB35 当中, 我们这里使用的是 OB35 的默认属性, 即每 100ms 中断触发一次, 您可以根据实际的需要在 CPU 属性中修改中断的时间间隔 在 OB35 里调用 FB 101 SWR_ZYK 功能块,FB101 块中封装了冗余功能的程序段, 实现冗余功能 调用 FB101 时, 你可以在线地读出 RETURN_VAL 参数的数值, 如果为 0, 说明冗余链接正常 如果为 8015 说明数据同步的连接不成功, 这是一个常见的错误, 原因可能是 CP342-5 之间的 FDL 链接建立的不正确或物理链路不通, 或者是 FC100 的 VERB_ID 参数与 NETPRO 中的链接 ID 号不一致 当执行 SWR_START 程序块时, 系统分配这些数据区, 不能用 S7 的定时器和计数器, 只能使用 IEC 标准的定时器和计数器 你可以在软冗余手册的第三章第 9 节找到对应的诊断信息 OB35 中的程序可以分为 4 个部分, 如下图所示 : A. 在循环程序块 (OB1 或 OB35) 的开始调用 FB101, 并将 CALL_POSITION 置为 TRUE B. 你可以在 DB5 中得到控制字 (DBW10) 和状态字 DBW8 的信息 分析状态字中的信息, 如果当前站为备用系统, 则跳过冗余程序段 C. 冗余程序段 该处为您的冗余程序段 D. 在循环程序块 (OB1 或 OB35) 的结尾调用 FB101, 将 CALL_POSITION 置为 FALSE, 停止系统冗余程序段 图 9 A&D Service & Support Page 19-27
第一步 (A) 启动系统的冗余数据同步功能 第二步 (B) 根据状态字判断是否为主系统, 为主系统时才执行第三步, 否则跳到第四步 第三步 (C) 为冗余的程序段 第四步 (D) 停止系统的冗余数据同步 通过对 OB35 中的程序在线监控, 得知当前冗余功能成功与否, 如下图所示 : 图 10 上图显示,FB101 的返回值 Return_VAL 和 Ext_INFO 为 0, 说明冗余功能正常 通过 FB101 的背景数据块中的状态字和控制字, 您可以知道系统的运行的情况和当前哪个系统为主系统, 哪个为备用系统, 状态字的定义如下 : A&D Service & Support Page 20-27
图 11 您也可以通过写控制字中对应的位, 起停备用系统与主系统之间的冗余通讯, 也可以实现主系统与备 用系统之间的手动切换 : A&D Service & Support Page 21-27
图 12 通过设定 DB5.DBX10.0 为 1, 实现主系统与备用系统的手动切换 8) 在 OB86 中调用诊断功能块 FC 102 SWR_DIAG, 当系统出现 PROFIBUS 总线错误时, 该功能块返回诊断信息, 供 FB101 使用 9) 插入 FB101 内部调用的 FB104,FC5 FC6 等功能块, 将所有的程序块下载到 PLC 当中 10) 在组态软件 WinCC 中创建两个 MPI 链接, 分别与主系统和备用系统进行链接, 并生成对应的 Tag 变量, 如下 : 图 13 编辑监控画面, 分别读取 A 站和 B 站的状态字 控制字和冗余同步的数据, 如下 : A&D Service & Support Page 22-27
图 14 从图 14中的状态字可以看出, 当前 8号 ( A) 站为主系统, 7号 ( B) 站为备用系统, 它们与所有 DP从站的通 讯正常, 冗余同步链接正常, 我们在一个 20ms触发的定时中断块 OB35中编写了一个数据中加程序段, 可以 看出备用系统的同步数据看主系统的实时数据看 80ms( 4 个周期 ), 其中控制字为 0, 您可以修改对应的位, 激活或取激冗余功能 这里我们同时给您提供一个通过以太网实现数据同步的例子程序, 系统的实物图如下 : A&D Service & Support Page 23-27
图 15 程序块的内容与上面的例子相同, 只是将 OB100 中 FC100 的 VERB_ID 参数的数值改为 7, 因为采用 ISO 方式时,ISO Connection ID 号要大于 2, 我们这里则 STEP7 的 NETPRO 中组态了一个 ID 号为 7 的 ISO 链接, 如下图 : A&D Service & Support Page 24-27
图 16 同时可以在 WinCC 软件中创建 TCP/IP 链接, 分别读取主系统和备用系统中的数据, 如下图 : 图 17 与图 14 看较, 我们可以发现在以太网方式下, 数据同步的速度看 PROFIBUS DP 方式下快, 备用系统的同步数据 看主系统的实时数据看 40ms(2 个周期 ) A&D Service & Support Page 25-27
3. 关于软冗余的一些下载路径 : 软冗余手册 : http://support.automation.siemens.com/cn/view/zh/1137637 S7-300 模板手册的下载路径 : http://support.automation.siemens.com/cn/view/zh/8859629 A&D Service & Support Page 26-27
附录 - 推荐网址 AS 西门子 ( 中国 ) 有限公司自动化与驱动集团客户服务与支持中心网站首页 :http://www.ad.siemens.com.cn/service/ 专家推荐精品文档 :http://www.ad.siemens.com.cn/service/recommend.asp AS 常问问题 :http://support.automation.siemens.com/cn/view/zh/10805055/133000 AS 更新信息 :http://support.automation.siemens.com/cn/view/zh/10805055/133400 找答案 AS 版区 :http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1027 A&D Service & Support Page 27-27