摘 要:在工业、工程、生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境下,冗余数据采集系统具有十分重要的作用,它可以提高系统的可靠性和稳定性。设计实现了冗余数据采集系统的设计,可以实现在主数据采集系统的AD出错、单片机出错和掉电等情况下,副数据采集系统主动接替主数据采集系统工作。经测试可以应用于在对数据采集频率要求不高的工业控制中,保证数据采集系统持续稳定的运行,具有一定的实用价值。
关键字:数据采集;冗余;可靠性;备用系统
Research on High Redundancy Data Acquisition System
Abstract:In the industry,engineering,production workshop and other departments,especially in the high requirement of real-time information or bad data acquisition environment,the redundant data acquisition system has a very important role,it can improve the reliability and stability of the system. The design has realized the designment of redundant data acquisition system.The system can achieve the functions as follows:When the fault of AT89S52 and ADC0809 appears and the power of system is cut off,the deputy data acquisition can take over the primary data collection system to work automatically.Under the condition of low frequency of data collection,the design can guarantee completely that the data acquisition can operate continuously and steadily,and it has a certain use value.
Keywords:Data acquisition System;Redundancy;Reliability,Standby system
1 设计的背景和意义
随着计算机技术的发展,数据采集系统广泛应用于现代工业控制领域四大参数的测量,其重要性不言而喻。目前典型的数据采集系统有五类:独立采集系统、总线板数据采集系统、远地采集系统、插入式数据采集系统、并列式数据采集系统。与此同时数据采集系统的可靠性受到了人们的广泛重视,我们把这种可靠性称为系统可靠性。一个数据采集系统运行的时间越长,说明系统的可靠性和维护能力越强,系统的可靠性越高。随着企业规模不断增大,数据采集系统越发复杂,若可靠性达不到较高的技术要求,那么数据采集系统出现故障的频率增加、造成的损失也随之加大。这些损失可能是信誉上的、经济上的,甚至会造成生命安全或更严重的灾难性后果。随着数据采集系统复杂程度的提高,系统的可靠性的提高也就非常迫切和必要。
2 容错系统
2.1 冗余技术
冗余技术也叫储备技术,它的基本思想是利用并联系统达到提高系统可靠性的目的。常见的冗余技术有硬件冗余和软件冗余。
2.2 硬件冗余
硬件冗余是通过增加硬件数量来掩盖故障造成的影响,使得数据采集系统在发生故障时,系统仍能正常工作。硬件冗余一般有三种方法,一是静态冗余,二是动态冗余,三是混合冗余,这三种方法有一个共同的特点,那就是硬件都是并联在一起的。
2.3 软件冗余
软件冗余的主要目的是为系统提供足够的冗余信息和算法程序,使数据采集系统在实际运行时能够及时发现程序设计中的错误,采取补救措施,以提高软件的可靠性,保证整个系统正常运行。软件容错技术主要有以下两种:恢复块方法和N-版本程序设计。
3 总体系统框架
硬件电路由4个部分组成:A/D转换部分,单片机最小系统,LED显示部分以及测量电压输入电路。硬件电路设计框图如图1所示。
①根据设计要求,选择AT89S52作为核心控制器件。
②A/D转换采用ADC0809实现,单片机通过P3口高四位控制AD转换,AD转换结果送单片机P1口。
③电压显示采用4位一体共阴极LED数码管,由单片机P0口和P2口低三位控制显示。
④正常工作时,主单片机P3.3脚输出一个脉冲信号(方波)给副单片机的P3.2脚,副单片机进行空操作。
⑤出现故障时,主单片机P3.3脚不再输出脉冲信号,此时副单片机跳出中断执行主程序,即副数据采集系统接替主数据采集系统工作。
4 系统数学模型与分析
设两套数据采集系统的寿命分布均服从失效率为λ的指数分布,即:F(t)=1-e-λt,系统出现故障后的修理时间也都服从μ的指数分布,即:M(t)=1-e-μt。
(1)有效度A(t)
用x(t)表示t时刻系统的状态,则
整个系统的状态转移图如图2所示。
5 .软件设计
图3 主系统流程图
图4 副系统主流程图
1初始化中主要对AT89S52,ADC0809的管脚和数码管的位选端以及所使用到的内存单元30H,31H,32H,35H进行初始化设置
2初始化后,便启动ADC0809工作,电位器模拟传感器输出0~5V直流电压,送给ADC0809的IN0通道,并进行数据采集,D7~D0输出对应的00000000~11111111二进制数字量。
3在数据处理子程序中,运用标度变换知识,将输出的数字量转换成0.00~5.00的数据,输出到显示子程序中显示。
本设计采用冗余系统,上面提到的123点是两系统软件设计的共同部分,下面是两系统不同部分。
对于主系统,若工作正常,则P3.3脚送一个脉冲信号给副系统的单片机的P3.2脚(外部中断0),副系统便执行延时等待;若ADC0809转换出错,单片机死机或是掉电,主系统便停止工作,副系统接替工作整个主程序就是在A/D转换,数据处理及显示程序循环执行。主副系统的流程图如图3和图4所示。
6 结论
本设计研究的目的在于设计一种高可靠性的数据采集系统,双机容错是目前提高数据采集系统的主要技术之一。本文对容错系统的设计理论作了总结,并设计了一种基于双机热备份的数据采集系统,作者在本课题中做了如下一些工作:
(1)总结了容错系统的工作模式和设计理论,并提出了3种基于容错设计的数据采集系统。
(2)在开发过程中有提出当主数据采集系统出现故障时,可利用副数据采集系统中的单片机控制继电器来断开主系统的电源。但在测试过后发现,当主系统修复过后要重新启动的话,就要必须要断开副数据采集系统的电源才行,所以没有采用这个构想。
(3)设计了一个稳压模块为主副数据采集系统供电,保证主副系统的AD芯片的基准电压相等。
(4)本设计实现了冗余数据采集系统的设计,在数据采集频率要求不高的情况下,完全可以保障数据采集系统持续稳定的运行。
总之,提高数据采集系统的可靠性涉及方面很多,本设计基于双机热备份的的工作原理,在数据采集频率要求不高的情况下,,完全可以保证数据采集系统持续、稳定地运行。
参考文献
[1]雷万云.数据采集系统发展的新趋势.兵工自动化,1986(0):90-95
[2]卢明银,徐人平.统可靠性.机械工业出版社,2008:1-10页
[3] 曾声奎,赵延弟,张建国,康锐,石君友.系统可靠性设计分析教程.北京航空航天大学出版社,2006:9-21页
[4]周正伐.可靠性工程基础.中国宇航出版社,2009:1-20页
[5]倪文玺.容错计算机系统双机容错软件设计与实现.西安建筑科技大学硕士论文.2011:6-15页
[6] Malhotra M,Trivedi K.S .Dependability Modeling Using Petri-Nets.IEEE Transactions on Reliability,1995(03):428-440
[7]李海泉,李刚.系统可靠性分析与设计.科学出版社,2003:3-10页,29-36页
[8]赵茂泰.智能仪器原理及应用(第二版).电子工业出版社,2004:134-136页
[9]姜坚华.双机热备份系统的技术研究和具体实现[J].微型电脑应用,2004,20(3):7-9
[10] 马明建.数据采集与处理技术(第2版).西安交通大学出版社,2005:1-8页,78-111页
[11] 李建忠.单片机原理及应用(第二版).西安电子科学大学出版社,2008:17-50页
[12]田灼.双机容错热备份系统研究与实现.哈尔滨理工大学硕士学位论文.2003:2-22页
[13]程五一,王贵和,吕建国.系统可靠性理论.中国建筑工业出版社,2010:1-25页
[14]A.Mirabadi,N.Mort,F.Sehimid.Design of fault tolerant train navigation systems.Proceedings of the American Control Conference,San Diego,California,June 1999,pp.104-108
[15]廖蔚,平静.一种双机热备份计算机系统.电讯技术,1996,36(1):58-65
[16]Randell B.System Structure for Software Fault Tolerance[J].IEEE Transactions on Software e Engineering,1975(SE-1):220-232
[17]郭林.基于FPGA的星载机容错技术研究与设计.清华大学工学硕士学位论文.2009:2-6页
[18]E.N.Elnozahy.Fault Rolerance for Clusters of Workstations[M].M.Banate and P.lee(Editors),chapter8.springer Verlaq,August 1994.