李 蒙 史洪源 董伟杰 王 弢
(杭州和利时自动化有限公司,浙江 杭州 310018)
高可靠性是过程控制系统的第一要求[1]。基于冗余技术的控制系统大大提高了系统的可靠性和可用性。冗余的DCS系统包括网络冗余和模块冗余。模块冗余作为冗余DCS系统的重要组成部分[2],包括控制站内控制器及各类I/O模块的冗余,它可以确保任何一个模块的故障都不影响系统的工作,确保现场设备正常运行。
传统的模块冗余在晶振等敏感元件故障或模块热插拔等边界条件出现时[3],冗余切换的锁定电路工作不稳定[4],经常出现切换不及时,锁定电路短时失效造成的模块双主或双从的现象。
基于FPGA设计的冗余模块同步互锁定电路能完全解决上述仲裁、切换的难题[5],确保各类模块切换对现场无任何扰动。
冗余模块主从状态由硬件确定。其中,两个冗余槽位模块中,以率先实现运行或建立通信的模块为主模块,另一模块为从模块。当拔掉主模块时,从模块切换为主,此时插入模块不会影响主从切换。当主模块出现故障时,根据故障优先级和冗余状态来判断主从是否进行切换[6]。冗余切换的实现机制如图1所示。
图1 硬件冗余切换原理Fig.1 Principle of hardware redundancy switching
在图1所示的原理设计框图中,定义两个冗余模块分别为模块A和模块B。当与非门A(B)输出为0时,该模块为主;输出为1时,模块为从。
图1以模块A为例,CPU根据缓冲器回读的状态判断当前模块工作在主机或从机,同时读取滤波A1输出的状态来跟踪模块当前为单机工作还是双机工作。根据上述内容决定是否输出一定频率的波形,从而使得模块具备主从切换的条件。
脉冲定时功能块在FPGA中实现,它的主要作用是检测CPU输出的脉冲。一旦检测到边沿,就启动内部定时器,并同时输出高电平。如果定时器溢出,则将输出清零,直到下一个边沿到来的时刻,输出再次变高。该定时周期可通过寄存器设定,这样只要CPU输出的频率高于设定值,则脉冲定时一直输出高电平。这表明该模块工作正常,可以做主从切换。
看门狗与电源监控功能块具有电源监控和看门狗定时器功能,可监测电源及CPU运行。如果一切正常,则输出高电平;如果上电、掉电或CPU工作异常,则输出低电平,表明模块复位。
上电检测功能块在FPGA内实现,电源监测输出与脉冲定时输出相与后作为该功能块的输入。当上电复位完成时,复位输出变为高电平,此时CPU开始工作。当建立通信后,CPU输出脉冲,脉冲定时输出由低变高,则二者相与后将产生上升沿,将D触发器的输入锁存至输出端。
多选一选择器功能块在FPGA内实现。该功能主要作用是根据模块工作状态,选择输出0、1或脉冲检测模块的输出接入与非门。多路选择器的真值表如表1所示。
表1 多路选择器真值表Tab.1 True value table of multiplexer
所有冗余模块上电后率先完成初始化的模块,将和上位机建立通信后成为主模块,另一模块则为从模块。这就是上电抢主机制。上电抢主可分为以下两个阶段。
第一阶段,若两个模块均上电复位,在复位电平有效期间,上电检测功能块工作,缓冲器不使能,模块冗余输出引脚状态为高电平,模块为从。对于输出模块,模块冗余输出引脚接入通道开关控制,用于控制输出通道是否与现场相连。
第二阶段,上述状态一直持续到模块A(B)完成通信功能建立后。此时,模块A(B)中的CPU A(B)将输出固定频率的方波,并连接到对方模块的脉冲定时器A(B)进行检测。一旦检测到输入端有边沿信号,脉冲定时器A(B)输出高电平,此时缓冲器输出使能,由多选一选择器输出脉冲定时器的检测结果。由于两个模块采用不同的时钟域,异步的电平传输方式可确保冗余模块建立通信的时间不会同时发生,此时另一模块仍为从,即光耦A2(B2)不导通,且由于每个模块滤波A2(B2)均连接了上拉电阻,所以与非门A(B)另一输入端为高电平。这样率先建立通信的与非门A(B)输出端为低电平,模块成为主机。另外一个模块光耦A2(B2)导通,与非门A(B)中的一个输入端必为低电平,输出端为高电平,状态被锁定为从机。
为避免模块热插拔或干扰信号对电路输入引入不确定的逻辑状态,从而导致模块误切换,每个模块的滤波A1(B1)、滤波A2(B2)均外接了上拉电阻,并设计了软件数字滤波功能。
冗余模块工作后,两个模块的CPU A(B)均输出方波信号,脉冲定时器A(B)均输出高电平。此时,若主模块通道故障、晶振停振、CPU损坏、DP通信链路离线,主模块则依靠是否输出脉冲波形来完成主从切换;若主模块掉电,其依靠互锁逻辑电平连接(光耦A2(B2)和与非门B(A)的连线)来完成主从切换。若模块A(B)已进行了一次切换,则只有在主模块掉电、晶振停振、CPU故障情况下,从模块才会切换为主模块;在主模块通道故障、通信中断时,已进行过切换的从模块均不会切换为主。发生上述不同故障条件的具体切换机制如下所述。
假设模块A为主,晶振停振,看门狗定时器产生复位波形。此时从模块工作正常,则光耦B1导通,滤波A1输入低电平。在模块A复位过程中,复位输入为0,双机状态为0,多选一选择器A选择低电平输出接入与非门A。与非门输出为高,光耦A2断开,模块B滤波B2输出高电平。由于脉冲定时A由模块A晶振提供时钟信号,所以脉冲定时A可能输出高或低电平,这样模块B滤波B1可能输出低或高电平。但不论滤波B1输出高或低电平,多选一选择器选择脉冲定时B输出和与非门B输入相连,此时模块B工作正常,CPU B输出脉冲,与非门B将输出低电平,模块B将切换为主。
假设模块A为主,CPU A损坏或程序跑飞,CPU A无输出脉冲,脉冲定时A的输出为低。从模块B工作正常,不论模块A看门狗定时器是否产生复位信号,多选一选择器A和与非门A1输入相连的状态始终为低电平,与非门A输出为高,光耦A2断开,模块B滤波B2输入高。由于模块A的CPU A不输出脉冲,所以光耦A1断开,模块B滤波B1输出高电平;模块B的CPU B输出波形,脉冲定时B输出为高。多选一选择器B选择脉冲定时B和与非门B输入相连。此时与非门B输出低,模块B切换为主。
假设模块A为主,模块A掉电,光耦A1、A2均输出为高阻,模块B滤波B1、B2由于外接了上拉电阻将输出为高电平。模块B工作正常,则CPU B输出脉冲,脉冲定时B输出为高,多选一选择器B选择脉冲定时B和与非门B输入相连,与非门B输出低,模块B切换为主。
假设模块A为主,从模块失电,光耦B1一直呈断开状态,滤波A1由于外接上拉电阻将输出高电平,不论模块A工作是否正常,多选一选择器A输出为高,与非门A输出为低,模块A仍为主。
假设模块A为主,主模块通道故障,则主模块定时查询从模块工作状态,若从模块工作正常即滤波A1输出为低,则主模块CPU不输出脉冲,脉冲定时器A输出为低,与非门A输出高,模块A为从。光耦A2断开,模块B的滤波B2输入高。同时,光耦A1断开,滤波B1输出高,多选一选择器B选择脉冲定时B和与非门B输入相连,此时与非门B输出低,模块B切换为主。
将脉冲定时和复位与切换逻辑在FPGA内部实现,分别进行抢主和主从切换功能以及时序仿真[7]。
模块上电时,无波形输出,当满足一定条件时,CPU输出脉冲波形至FPGA的MASTER_PULSE_IN,FPGA检测到输入脉冲,且模块不处于复位状态即RST为高电平,就将SET_MASTER_OUT输出低电平,模块为主。这样,先满足条件的模块即为主模块,同时锁定另一模块为从模块,即完成抢主。经过一定延时(延迟长度软件可设定),FPGA的脉冲定时功能块检测到无波形输出,将SET_MASTER_OUT信号由低变高,从而实现从模块升主,主模块降从。
基于上述冗余模块切换机制开发了冗余I/O,其中,模拟量输出模块的测试结果如下。
①冗余电流输出模块带750 Ω负载,组态输出8.8 mA电流,插入和拔掉从模块时,现场无任何扰动。
②冗余电流输出模块带750 Ω负载,组态输出8.8 mA电流,拔掉主模块时,冗余模块进行切换,切换时间约为4 ms,远低于现场设备500 ms的最小动作时间,现场无任何扰动。如图2所示。
图2 拔掉主模块测试波形Fig.2 The waveform of unplugging the master module
工程项目对模块冗余切换验收的步骤如下:①组态输入、输出回路,输出模块与输入模块相连,通过界面的趋势图观察模块切换时是否发生变化;②外接继电器、电磁阀,人为制造模块切换,观察现场设备是否动作;③使用示波器等测试仪器观察输出波形,根据波形扰动评估是否对现场设备造成影响。
以红沿河百万机组常规控制系统为例。该项目通过严格的内部测试验证及第三方型式测试,1#机组已通过出厂验收,其测试模块冗余切换的结果如下。
①DCS主站包含模拟输入(AI)、输出(AO)2个模块。其中AI模块采集正弦波,并输出到AO模块,在AI或AO模块切换时,其变化趋势如图3所示。图3中靠上的波形是AO模块输出波形,靠下的波形是AI模块采集波形。在整个趋势图绘制期间,各类模块多次进行了冗余切换,均未造成趋势图中的波形变化。由此可判断切换无扰动。
图3 模块切换趋势状态图Fig.3 The trend of module switching
②外接功率继电器(动作时间5 ms)、电磁阀(动作时间500 ms),模块切换时现场无任何扰动。
③使用示波器观察AO模块切换波形(如图2所示),扰动时间小于5 ms,远低于电磁阀动作时间。
从上述案例可以看出,模块冗余切换技术可以确保不影响现场设备的正常运行。
基于FPGA实现的模块无扰冗余切换技术不但可实现在模块失电、主CPU或晶振故障、其他板级和现场故障时模块的无扰切换;还可以根据各类模块的实际需求,灵活调节脉冲定时器的充、放电时间,从而达到控制模块切换时间的目的。该技术已在2000多个工程项目中应用,性能优秀,可满足各种现场需求。
[1]王常力,罗安.分布式控制系统设计与应用实例[M].北京:电子工业出版社,2004:386-390.
[2]冯立,王良勇,钱晓龙.冗余控制系统的原理及性能优化[J].仪器仪表学报,2003(S1):334-336.
[3]孙怀义.冗余设计技术与可靠性关系研究[J].仪器仪表学报,2007(11):171-174.
[4]永田恭一.冗余方法和半导体电路[P].中国,CN98124993.1999-07-14.
[5]黄文君,金建祥,冯冬芹,等.控制系统的冗余策略和实现准则[J].仪器仪表学报,2004(4):545-548.
[6]尹征琦.双模冗余系统及其自动切换控制逻辑[J].电子技术,1997(4):5-8.
[7]赵雅兴.FPGA原理、设计与应用[M].天津:天津大学出版社,1999:56 -60,96,140 -144.