《电子技术应用》

基于MAC的PLC双机冗余方法及系统

2017年电子技术应用第8期 作者:赵德政,黄 兵,丰大军,张晓莉,徐一凤
2017/9/6 14:09:00

赵德政,黄  兵,丰大军,张晓莉,徐一凤

(华北计算机系统工程研究所,北京100083)


    摘  要: 针对目前PLC控制系统双机冗余方法的缺陷和不足,提出了一种基于MAC的PLC双机冗余系统。PLC双机冗余系统由两个完全相同的PLC控制器组成,每个控制器都带有专用的MAC控制器作为冗余通信的数据收发器。基于MAC的PLC双机冗余系统避免了高可靠PLC双机冗余系统对于控制器必须具有独立专用冗余通信模块的苛刻要求,直接使用MAC作为冗余通信的数据收发器,省略了上层以太网协议栈,降低了冗余系统的构建成本,提高了冗余通信的实时性,增强了冗余系统的灵活性。

    关键词: PLC;双机冗余;MAC;状态机

    中图分类号: TP273

    文献标识码: A

    DOI:10.16157/j.issn.0258-7998.179001


    中文引用格式: 赵德政,黄兵,丰大军,等. 基于MAC的PLC双机冗余方法及系统[J].电子技术应用,2017,43(8):81-84.

    英文引用格式: Zhao Dezheng,Huang Bing,Feng Dajun,et al. Dual redundant method and system for PLC based on MAC[J].Application of Electronic Technique,2017,43(8):81-84.

0 引言

    可编程逻辑控制器(Programmable Logic Controller,PLC)[1-2]在工业控制自动化领域有着及其重要的作用,特别是在控制工艺流程比较复杂、被控参数较多的过程控制系统中,以通用PLC为核心搭建控制系统比专用控制器方式具有更强的灵活性、适用性和扩展性[3-4]。核心控制单元PLC的可靠性直接关系到整个控制系统的安全性和稳定性,因此为了提高控制系统的健壮性,首先要提高PLC的健壮性,而在提升PLC本身健壮性的同时,引入PLC双机冗余机制可以极大地改善控制系统的整体可用性[5-6]。相比于单纯提升PLC本身健壮性的方式,PLC双机冗余方式可以达到主PLC异常故障、备PLC接管控制逻辑、控制系统无扰运行的目标,从而使整个控制系统最大限度地消除异常故障的影响,大幅提升控制系统的可用性。

    目前在控制系统中PLC双机冗余技术主要有两种,即基于PLC站间通信的软冗余技术[7-8]和基于专用冗余通信模块的硬冗余技术[9-10]。前者需要用户编写带有冗余功能的控制逻辑,并全程参与冗余的故障诊断判决和状态切换,对用户的要求较高,且由于没有专用的冗余通信通道,冗余的数据同步和状态切换带有很大的滞后性。基于专用冗余通信模块的硬冗余技术具有专用的冗余通信通道,可以有效地提升数据同步和状态切换的实时性,但是其成本较高,且不易于维护,只能应用到一些投入成本较高、对可靠性极为敏感的控制系统之中,这极大地限制了这种冗余技术的应用和普及。

    为了克服PLC软冗余方式中用户工程与冗余技术的紧耦合和冗余处理迟滞问题,以及硬冗余技术中构建成本高、维护困难的问题,需要开发一种摆脱专用冗余通信模块限制的PLC双机冗余技术,无需用户参与冗余数据同步、故障诊断判决和状态切换,灵活地实现高可靠、高健壮性的PLC双机冗余功能,降低PLC双机冗余控制系统的构建成本。

    本文利用MAC(Medium/Media Access Control,介质访问控制)控制器作为冗余系统的数据同步收发器,构成PLC双机冗余系统,并设计了与用户控制逻辑无关的故障诊断判决和主备机切换机制,以及无需用户参与的冗余状态机和状态转移机制,可有效提升PLC双机冗余系统的易用性,且能极大地提升冗余系统的运行性能。下面将从总体方案设计、硬件平台设计和软件系统设计三个方面对所提出的PLC双机冗余方法及系统进行介绍。

1 总体方案

    PLC双机冗余的双方为冗余主机和冗余备机,冗余双方内部均包含MAC控制器芯片作为冗余通信的收发器,PLC双机冗余的双方搭载独立于用户控制逻辑的故障诊断判决和主备机切换机制,图1为PLC双机冗余系统的组成框图。

ck3-t1.gif

    整个PLC双机冗余系统包含两个完全一样的PLC控制器,以及多个与现场被控对象连接的从站模块,由此构成了PLC双机冗余系统和现场总线网络。其中冗余控制器由主控单元、基于MAC的冗余通信单元以及现场总线主站组成,主控单元与现场总线主站之间通过双口RAM连接,而作为冗余通信单元核心的MAC控制器直接挂到主控单元CPU的总线上。冗余控制器都带有两个独立的MAC,分别为MAC0和MAC1,其MAC地址不一样,所有控制器的MAC0都共用一个MAC地址,所有控制器的MAC1也都共用一个MAC地址。组成PLC双机冗余系统的两个控制器在物理上通过交叉方式构成冗余连接,即冗余控制器A的MAC0接冗余控制器B的MAC1,冗余控制器A的MAC1接冗余控制器B的MAC0,如图1所示。冗余连接通信的方向永远是从MAC0到MAC1,比如冗余控制器A向冗余控制器B发送请求要经过冗余控制器A的MAC0到冗余控制器B的MAC1,冗余控制器B在MAC1上接到来自于冗余控制器A的请求后,会通过自身的MAC0向冗余控制器A的MAC1发送响应。从站模块通常包含I/O模块以及其他用于特定功能控制的功能模块,主要用于连接传感器、电动机、电磁阀、继电器等现场被控对象。

2 系统硬件平台设计

    PLC双机冗余系统中冗余控制器的硬件平台如图2所示。冗余控制器包括处理器、MAC控制器、PHY(Physical Layer)芯片、现场总线主站、存储器外设、时钟电路、复位电路和电源变换模块等部件。

ck3-t2.gif

    所选用的MAC控制器主要用于冗余控制器之间进行冗余同步通信的数据收发器,PHY主要用于通信电平信号转换。现场总线主站用于现场总线协议栈支持、控制器与从站之间的通信连接以及实际的I/O变量刷新操作。

    该冗余控制器以处理器为核心,在处理器上运行业务处理程序、用户控制逻辑、冗余同步通信以及冗余故障诊断判决和状态切换程序。该处理器通过现场总线主站采集现场设备的输入信号,然后执行用户控制逻辑,最后将控制逻辑执行结果的控制输出信息通过现场总线主站发送到被控设备,同时处于冗余主机工作模式的处理器还会实时地将用户控制逻辑运行结果的过程数据通过由MAC控制器控制的冗余通信连接同步到冗余备机,而工作于冗余备机工作模式的处理器会将冗余主机同步过来的过程数据写入到相应的数据区,同时时刻监视着冗余主机的运行状态,随时准备升为冗余主机并接管整个控制系统。

3 软件设计

3.1 软件总体方案

    冗余PLC控制器可以工作于冗余主机和冗余备机两种工作模式,两种模式执行的功能和所承担的任务不同,其系统流程如图3所示。冗余主机工作模式下,控制器的执行功能主要包含初始化、通信处理、状态切换、I/O输出、I/O输入、运行用户控制逻辑、同步过程数据几个步骤。冗余备机工作模式下,控制器的执行功能主要包含初始化、通信处理、状态切换、获取同步数据。相比于冗余主机,冗余备机不运行用户控制逻辑,也不刷新I/O数据,其所有用户控制逻辑的运行结果数据和I/O数据都直接来自于冗余主机的数据同步操作。冗余备机通过冗余通信连接时刻监视着冗余主机的运行状态,当检测到冗余主机发生异常故障时,升为冗余主机,同时接管整个控制系统,并无扰地继续执行用户控制逻辑。

ck3-t3.gif

3.2 冗余通信

    在PLC双机冗余控制系统中,冗余主机和冗余备机具有不同的工作方式,其冗余通信方式也不尽相同,冗余通信流程如图4所示。

ck3-t4.gif

    冗余主机采用的冗余通信流程如下:

    (1)控制器对冗余通信进行初始化,并与PLC双机冗余系统的另一个控制器建立冗余连接,转(2);

    (2)控制器向与其建立冗余连接的控制器同步冗余配置,冗余配置主要为用于区分两个控制器的CPU选项,通过控制器背板的拨码开关设置,有CPU0和CPU1两种模式,转(3);

    (3)判断PLC双机冗余系统的两个控制器的冗余配置是否冲突,即是否同为CPU0或同为CPU1,如果不冲突转(4),否则转(9);

    (4)判断控制器配置为主机,默认设为CPU0选项的控制器以冗余主机工作模式运行,转(5);

    (5)刷新I/O数据并运行用户控制逻辑,转(6);

    (6)向冗余备机同步过程数据,过程数据主要包含用户控制逻辑的运行结果数据和I/O变量数据,转(7);

    (7)向冗余备机发送冗余心跳,转(8);

    (8)判断是否接收到用户结束控制器运行操作,如果接收到结束运行操作,转(9)结束运行控制器,否则转(5)继续运行控制器;

    (9)结束运行控制器。

    冗余备机采用的冗余通信流程如下:

    (1)控制器对冗余通信进行初始化,并与PLC双机冗余系统的另一个控制器建立冗余连接,转(2);

    (2)控制器向与其建立冗余连接的控制器同步冗余配置,转(3);

    (3)判断PLC双机冗余系统的两个控制器的冗余配置是否冲突,如果不冲突转(4),否则转(9);

    (4)判断控制器配置为主机,默认设为CPU1选项的控制器以冗余备机工作模式运行,转(5);

    (5)通过冗余通信连接接收冗余主机同步过来的过程数据,并写入相应的数据区,转(6);

    (6)通过冗余通信连接获取冗余主机发送过来的冗余心跳,转(7);

    (7)诊断主机是否发生异常故障,如果诊断出主机发生异常故障,控制器升为主机,并以最近接收到的有效过程数据为起点,继续运行用户控制逻辑和执行刷新I/O操作,否则转(8);

    (8)判断是否接收到用户结束控制器运行操作,如果接收到结束运行操作,转(9)结束运行控制器,否则转(5)继续运行控制器;

    (9)结束运行控制器。

3.3 冗余状态机

    为了方便冗余方法及冗余系统的软件实现,根据所提出的冗余方法,其系统运行状态机如图5所示。

ck3-t5.gif

    系统的冗余状态机主要包含9个状态,状态定义及条件跳转关系如表1所示。

ck3-b1.gif

4 功能验证和测试

    为了验证本文设计的PLC双机冗余系统,总共设计了538个测试用例来对整个冗余系统的功能进行测试。测试用例可以分为以下几类:单机运行模式测试(冗余状态机)、双机切换过程测试(冗余状态机)、冗余同步数据测试(冗余通信)、双机抢主测试等。测试结果表明,所设计的PLC双机冗余方法及系统能够在系统发生异常故障时保证整个控制系统的正常运行,满足提高PLC控制系统可用性的需求。

5 结论

    本文设计了一种基于MAC的PLC双机冗余系统。首先对双机冗余系统的整体结构进行了阐述,然后分别对系统的硬件平台设计和软件系统设计进行了详细解释,最后通过多种测试用例对整个PLC双机冗余系统进行了功能验证和测试。测试结果表明,本文设计的双机冗余系统避免了PLC硬冗余技术对于控制器具有独立专用冗余通信模块的苛刻要求,降低了冗余系统的构建成本,也克服了PLC软冗余技术中冗余异常判决机制依赖于用户的弊端,提高了系统的易用性,降低了用户学习、使用成本。本文所提出的PLC双机冗余方法及系统直接使用MAC作为冗余通信的数据收发器,省略了上层以太网协议栈,提高了冗余通信的实时性,增强了冗余系统的灵活性,也保证了冗余系统的便利性。后续可继续对冗余状态机的转换算法进行优化,以减小冗余主备切换时间,从而提高整个系统的性能。

参考文献

[1] 罗维平.基于PLC的太阳能电池板自动跟踪系统的研究[J].电子技术应用,2009,35(9):138-140.

[2] 叶晓晖.PLC在电气自动化中的应用现状及发展前景概述[J].工业控制计算机,2010,23(1):144-145.

[3] 刘爽,朱凯,董宸.基于PLC一维极轴自动控制的对日跟踪系统[J].电子技术应用,2009,35(9):1-2.

[4] 王洪猛,谢建君,曾云,等.基于PLC的过程控制系统设计与实现[J].自动化技术与应用,2004,23(7):25-27.

[5] 孟君.基于不同冗余结构的PLC系统可靠性与可用性研究[J].电子技术应用,2016,42(9):80-83.

[6] 陈子平.浅谈控制系统冗余控制的实现[J].自动化仪表,2005,26(9):4-6.

[7] 吕京梅.PLC软冗余系统的研究与应用[D].西安:西安电子科技大学,2008.

[8] 路建强,王华强,王联庆,等.S7-300软冗余在压缩机控制中的应用[J].工业仪表与自动化装置,2012(1):80-83.

[9] 陈加杰.中型PLC冗余架构研究与同步技术[D].哈尔滨:哈尔滨工业大学,2008.

[10] 韦杰.西门子400H PLC在天然气输配系统中的运用[J].工业控制计算机,2014,27(7):157-158.

继续阅读>>