第七章 软件冗余的原理和配置
7.2 软件冗余系统的调试过程
在计算机上首先安装 STEP7 5.x 软件和软冗余软件包,软冗余软件光盘包括了冗余功能 程序块库、不同系统结构的例子程序和软冗余使用手册。
7.2.1 不同系统结构方式下的功能块:
在安装完软冗余的软件后,可以在 STEP7 当中找到例子程序和功能程序块库,如图 7-4 所示:
图7-4 软件冗余的例子程序
以上图 7-4 显示的是在 STEP7 中使用 OPEN 菜单打开软冗余的例子程序,例子程序中 采用 MPI 链路实现数据的同步。在 Libraries 找到不同 CPU 以及不同链接方式下可以使 用的功能块,如图 7-5 所示:
长沙工控帮教育科技有限公司整理
图7-5 软件冗余功能块
下面的两个表格分别说明了采用 S7-300,S7-400 进行软件冗余时,可采用的不同网络 连接以及所需调用的程序功能块包,参考表 7-3 和 7-4。
表 7-3 S7- 300 进行数据同步使用的程序库
Select this package For this network And this connection type Remarks
XSEND_300 MPI Permanently configured
connection
Network connected to MPI interface of CPU
AG_SEND_300 PROFIBUS FDL connection Network connected via
CP342- 5
Industrial Ethernet ISO connection Network connected via CP345- 1
表 7-4 S7- 400 进行数据同步使用的程序库
Select this package For this network And this connection type Remarks
XSEND_400 MPI Permanently configured
connection
Network connected to MPI interface of CPU
AG_SEND_400 PROFIBUS FDL connection Network connected via
CP443- 5
Industrial Ethernet ISO connection Network connected via CP443- 1
BSEND_400 MPI S7 connection Network connected to MPI
www.PLCworld.cn
长沙工控帮教育科技有限公司整理
www.gkbpx.com
interface of CPU
PROFIBUS Network connected via
CP 443- 5
Industrial Ethernet Network connected via
CP 443- 1
从以上的表格中可以看到,软冗余系统当中可以采用 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 连接。
采用 Ethernet 网络时,需要使用一对 CP 通讯卡(CP343-1 或 CP443-1),在 NETPRO 窗口中组态主系统和备用系统之间的 ISO 连接。
FB 101 ‘SWR_ZYK’ 循环调用的数据同步功能块,将主系统中的冗余数据复制到备用系统 当中
FC 102 ‘SWR_DIAG’ 诊断功能块,在OB86中调用,将得到的诊断数据提供给FB101使 用。
在该块内部调用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当中。
长沙工控帮教育科技有限公司整理
注:
1) 用 PROFIBUS 或 Ethernet 方式进行数据同步时,需要在 OB100 当中调用 FB101,而 FB101 内部调用了 FB104、FC5、FC6,所以您必须手动地将 FB104、FC5、FC6 插入到项目 当中,插入的方法是:在程序中调用一次,再将这条语句删掉。
Station A (S7-300)
CPUCP PS
Station B (S7-300)
CPU CP
PROFIBUS (redundant-backup link)
DP Mas ter Sys tem 1 (Station A)
DP Master Sys tem 1 (Station B)
ET 200M
MPI
OP7 operator panel
IM 153-2
PS DE DA DE DA Peripheral s for fans Peripherals
for lighting Peripherals
for traffic counter 时,要分别创建相互独立的 PROFIBUS 网络(如 A 站为 Master_Line、B 站为
Reserve_Line),使用网络的默认参数,速率为 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。
www.PLCworld.cn
长沙工控帮教育科技有限公司整理
www.gkbpx.com
(4) 进入 STEP7 的网络组态窗口 NETPRO 中,选中 A 站的 CPU 点击鼠标右键,插入一 个新的链接,选择 FDL Connection,点击 Apply,弹出链接属性窗口,记录链接的 ID,
设定 LSAP 为 17,18,存盘编译网络组态。系统的网络结构如图 7-7 所示:
图7-7 系统的网络结构
以上网络结构中包括了 4 条链路:
用于上位机编程和监控的 MPI 链路;
A 站与 ET200 从站 Master Line PROFIBUS 链路;
B 站与 ET200 从站 Reserve Line PROFIBUS 链路;
A 站和 B 站之间进行数据同步的 Synchronization Line PROFIBUS 链路。
可以通过点击图中的状态读取按钮,获取当前 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。