PLC软冗余系统软硬件组成及实现原理
在工业自动化系统中,为了使系统长期稳定可靠地运行,大量选用可编程逻辑控制器(PLC)作为控制器,甚至在此基础上组建冗余系统进一步提高系统的可靠性。冗余的分类方式很多。目前,采用的PLC冗余方式分为2种,即软冗余和硬冗余。西门子公司在这2方面均给出了解决方案。基于S7-400H的硬冗余的可靠性高,但构建系统成本也较高。而基于S7-300或S7-400的软冗余是一种综合考虑提高可靠性和降低成本的折中方案。目前,软冗余系统已经在污水处理、冶金、化工等控制工程中得到了普遍应用。但目前对于软冗余的性能,仍缺乏系统的研究。文中首先叙述西门子PLC软冗余系统的实现原理,然后重点分析主备切换时间和数据同步时间,以便为类似控制系统设计提供参考依据。
1、 软冗余实现原理
典型的PLC软冗余系统组成案例如图1所示。
图1 典型的PLC软冗余系统组成
在系统运行时2个CPU均启动,但只有主CPU执行控制命令,备用CPU检测主CPU状态,时刻准备接替主CPU继续工作。与主CPU通信的IMl 53—2模块处于激活状态使主CPU能访问I/0模块。当系统发生特定故障时,系统可以实现主备切换,备站接替主站继续运行。这些故障包括:主机架电源、背板总线等故障;CPU故障;Profibus现场总线网络故障;ET200M站的通信接口模块IMl53故障。
PLC软冗余系统要实现软冗余功能,需要存程序中调用冗余软件包的功能模块,其主要包括:初始化冗余系统运行参数的FCl00模块;故障诊断、主备切换的FCl02模块;发送/接收数据的FBl03模块;调用FBl03进行数据同步、分析系统状态的FBl01模块。带有冗余功能的程序结构见图2。
图2 带有冗余功能的程序结构
在PLC每个循环执行周期中,主系统先凋用FBl01接收并分析备系统状态,然后执行冗余程序,最后再调用FBl01将需要同步的数据发送到备系统。备系统先调用FBl01接收并分析主系统状态,跳过冗余程序,然后将备系统状态发送到主系统。需注意的是,实现冗余功能的最重要模块FBl01执行时先分析主备系统状态,然后再发送数据(或接收数据)。由于软件是顺序执行控制工程网版权所有,将导致接收到对方故障信息后,对故障处理的滞后。软件顺序执行机制是导致软冗余切换时间较长的一个重要原因。
2、主备切换时间分析
主备切换时间是指系统发生故障到备站接替主站正常丁作所需要的时间。
2.1 主CPU或电源模块故障分析
当前2种故障发生时,ET200M站的主通信接口模块IMl53与主CPU失去连接。自动在主备通信接口模块IM]53之间实现切换。同时备CPU在向主CPU发送备站状态时将检测到同步线数据传输错误,继而主动切换成主CPU。
如果主CPU故障出现在备CPU调用FBl01执行发送功能之前,那么接下来备CPU在调用发送功能时就能检测到与主CPU通信连接故障,并在下一个周期调用接收功能时备CPU切换成主CPU。此时主备切换时间t最短。(1)
式中t为主备切换时间;Tcyc为PLC循环扫描周期;t(FB101)为冗余功能块FBl01执行时间。 如果主CPU故障发生时备CPU刚调用FB101执行完发送功能,那么备CPU要在下一个周期调用发送功能时才能检测到与主CPU通信连接故障,并且还要等待调用接收功能时备CPU切换成主CPU。此时主备切换时间t最长。(2)
2.2 Profibus或ET200M主站故障分析
当后2种故障发生时,发生故障的ET200M从站的备IMl53将检测到主IMl53故障,自动将自己切换为主IMl53。主CPU将因为与故障IMl53失去连接而引发OB86(故障诊断)中断,并在中断中调用诊断模块FCl02完成所有从站的切换,并将自己置为备用。然后,主CPU将故障信息发送到备CPU。备CPU收到故障信息后将自己切换成主CPU。这时的切换时间为(3)
式中tR为OB86中断响应时间,CPU315—2DP为1 ms;tE为OB86执行时问;ts为故障状态发送时间;tD为数据接收完毕到备站切换成主站的时间间隔。
因为OB86中只调用FCl02诊断模块,所以tE由FCl02的执行时间决定。为分析OB86中调用FCl02时FCl02的执行顺序,对FCl02进行了适当的修改以便采集数据。这些修改主要包括:在FCl02的开始加入采集状态程序段;在跳转指令处采集跳转条件。在手动触发一些故障之后,对得到的数据进行分析便得到了FCl02的执行顺序。在各个代码段两端插入读系统时间功能块,对FCl02的程序执行时间进行分段测量。结果如表1所示(表中,为SFC58执行时间;t(2ss)8为2次SFC58执行时间;t’为其余时间;t(PC102)为FCl02总执行时间)。
测量结果中FCl02执行时间并不等于各个时间段之和,这是因为读系统时间功能块的测量精度只能达到l ms。但从表中仍不难看出FCl02执行时间主要集中在调用系统功能SFC58向ET200M写数据(控制从站切换)的操作上,SFC58的调用次数等于ET200M从站个数,因此可以近似得出tE=3 ms×ET200M从站个数。
式(3)中ts与主CPU的OB86中断产生的时刻有很大关系。
如果主CPU在调用FB101执行发送功能之前产生OB86中断,则在发送数据时主CPU直接把故障状态发送给备站,在这种情况下ts最短,为发送一次数据所用时间tt,即(4)
若主CPU调用FBl01执行完发送功能时产生OB86中断,则主CPU要把先前数据发送完毕才能发送故障状态到备站。在这种情况下,由于先前数据发送完毕的时刻不同,ts也会得到不同的值。
a.若先前数据发送完毕在主CPU调州FB 101执行发送功能之前,将立即发送主站的状态,则(5)
b.若先前数据发送完毕在主CPU执行完发送功能之后,则要等到下个周期调用发送功能时才能发送主站的故障状态。此时,ts是最长的。(6)
式(3)中tD与备站接收完故障状态的时刻有密切关系。
- 嵌入式系统硬件平台的软件PLC实现方法(04-12)
- 利用数字信号控制器实现稳健的PLC通信(05-02)
- 基于Linux系统的软PLC设计(07-19)
- 基于VxWorks的嵌入式实时PLC设计(01-08)
- 基于AT89C51单片机的微型可编程控制器(04-23)
- 基于DSP的光纤监控网络系统方案(08-03)