安全阀阀芯传感器及其数据采集系统
郭崇志苏杭
(华南理工大学广州 510640)
摘要在介绍安全阀阀芯传感器结构设计的基础上详细介绍了新型安全阀在线检测系统配置与软件设计问题,分析了基于VC++6.0进行安全阀阀芯膜传感器数据采集系统设计与开发过程中的一些关键应用技术,介绍了利用VC++编程技术实现的一套上位机数据采集软件,并通过现场实验测试验证了这一套系统的可行性。数据采集系统的现场试验表明,与标准传感器相比,阀芯传感器具有测试数值精确度高,刻画安全阀全启过程准确细致,测试数据重现性好等优点。
关键词:VC++;安全阀;传感器;数据采集
中图分类号:TP 文献标识码:A Safety Valve Core Sensor And Data Acquisition System
GUO Chongzhi , SU Hang
(South China University of Technology, Guangzhou 510640, China)
ABSTRCT: This paper introduced configuration and software design of a safety valve on-line monitoring system on the basis of the introduction about structure design of safety valve core sensor. Some key technology adopted during the process of designing and developing the data acquisition system that based on VC++6.0 was analyzed.Through research of correlation testing, the system proved it ran well with stability and veracity. The results showed that, Compared to the standard transducer, the safety valve sensor had more accurate testing value, depicted the opening process of safety valve more particularly, the fidelity of testing value is better. Keywords: VC++; Safety Valve; Sensor; Data Acquisition
1.引言
目前国内外文献上已经提出了几种安全阀检测技术,如大连理工大学周一卉等人通过对前人的隔离式安全阀在线校验系统不断改进,提出采用USB端口通讯机制下的微机测控安全阀校验系统[1],可以直接测得安全阀阀瓣处的压力,但在实际使用中仍然存在不能实时对安全阀运行进行在线监测。并且每次监测需要带气瓶和检测装置到现场进行,并非真正意义上的安全阀在线检测。为了能直接对安全阀动态运行时即全开启时整个过程的数据进行采集,华南理工大学郭崇志通过对现有安全阀在线检测技术进行功能分析,提出了集成传感器元件在内的功能扩展型安全阀,该检测技术已经获得国家发明专利授权[2]。由于阀瓣为整个安全阀结构内受力最集中部位,本文将全启式安全阀的阀瓣设计为兼有信号传感器的功能,
结合VC++的强大编程手段和PIO-821H数据采集卡的高频采样,从另一角度出发设计了一种新型安全阀数据采集系统,可以实施对安全阀的全启过程进行计算机在线数据采集,为以后的所需的安全阀在线监测系统研究提供了一种新的思路。
2.系统介绍
2.1阀芯膜传感器
由安全阀运行状态可知,阀瓣是整个安全阀的核心受力零件。根据力与变形的规律,可以通过检测变形来反映力的变化,从而反映阀瓣工作状态的变化。基于此,对阀瓣结构进行了功能扩展设计,在作为弹性敏感元件的膜片上布置合适的传感器,就可以实现状态检测。作为初步尝试,本文采用的传感元件为传感器级的圆膜应变片,型号为中航电测BF350-(15)KA型,其内丝栅半径为1~3.5mm,外丝栅的半径为5~7mm,并利用圆膜应变计组成全桥电路[3]。
2.2数据采集系统模块
安全阀数据采集系统是通过设计合适的弹性敏感元件,选择合理的传感元件,把安全阀工作过程中可能出现的状态变化以某种可检测的物理参数的变化形式反映出来,并且利用数据信号的发生、调制和转换及其传输、显示系统呈现在操作控制人员面前,以便及时判断安全阀所保护的生产装置系统的运行状态
是否安全的一种数字信号系统。其基本系统涉及到应变电测技术,PCI数据采集技术、信号调制和转换及计算机应用技术。本系统的关键是如何将传统形式的阀瓣扩展为具有检测功能的阀瓣传感器,选择合适的检测量来对安全阀运行动态过程进行监测,通过数据采集模块实现数据采集,送往上位机进行实时显示、处理和保存,具体系统模块设计如图1所示。
图1 安全阀检测系统模块图
Fig.1 Module Diagram 0f Safety Valve Detecting System
本文在以前的初步研究基础上提出了图1所示的安全阀检测系统,图中可见,由于将阀瓣兼做微型阀瓣膜传感器,安全阀阀口的被保护介质气体的压力变化通过应变传感器输出信号,经过变送器放大转
化成电压信号后,输送到PIO-821H数据采集卡完成数据采集,最后通过数据采集软件将数据送往上位机实现信号的实时再现观察。
3.软件模块部分
数据采集软件采用基于面向对象编程技术的Visual C++6.0语言编制而成,主要用于安全阀运行状态的数据采集和处理,并存储所采集的信号。本系统软件的各个子功能模块如图2所示,主程序采用FORMVIEW 界面,完成系统的主功能,其主要作用是管理和协调各子功能模块。
其他各项子功能介绍如下:
采样时间触发信号功能主要是对采样时间的确定及准时调用相关功能及时处理数据。
PIO821H板卡初始化功能是对PIO-821H板卡的初始化设置,如板卡的激活、通道的设置、对板块数据的采样方式等设置。
数据采样及滤波功能定期对采集卡缓存中数据读取并作滤波处理。
数据处理功能对采集的信号进行处理,将电压信号转换成为压力信号,并捕获最大压力值信号。
数据显示模块对采集的数据进行曲线显示和数值显示
数据存储功能对采样的数据进行保存到TXT文档中以备历史数据查询。thread技术
信号波形回放模块打开历史数据文档并回放历史数据曲线。
4.PIO-821H数据采集模块
PIO-821H是一块适用于PC兼容机的高性能多功能板。PIO-821PGH 支持高增益 (1,10,100,1000),包含一个12位模拟转换器提供最多16路单端或8路差分模拟量输入通道。最大A/D转换采样速率45KS/s,PC兼容机PCI总线输入范围:±5V,±0.5V,±0.05V,±0.005V。基于上述PIO-821H卡的特点,可以有效地解决在测试过程中的高速、多通道、长时间数据采集问题,使其成为传感器输出信号与上位机之间的一个桥梁 [4]。
5.实时数据采集功能的软件实现
以下重点关注数据的准确定时功能和数据滤波功能实现问题。相关的主程序采用流程图给出。
图2 软件系统功能图
Fig.2 Diagram of Software System Functional
5.1采样定时及精度的确定和实现
由于本系统是针对安全阀在线运行的数据进行准确的采样,而对压力信号的采样频率一般设置为7-10次每秒,然而实验测试需要对安全阀开启-排放-回座的瞬态过程采样,所以数据采样频率需要设置到100次每秒以上,也即采样时间为10ms以内,这样才可以较精确地采集到安全阀开启的全过程状态变化,从而可以通过采样数据来分析确定安全阀的整定和回座压力,这就涉及到定时器的精确性问题。对于采样定时器定时的实现[5],本系统采用了Microsoft公司在多媒体Windows中提供的高精度定时器函数—timeSetEvent()函数,其具体应用如下:
m_nTimerId = timeSetEvent ( 1000 / m_nFrequency, m_nTimerRes,
(LPTIMECALLBACK)m_hTimerEvent, NULL, TIME_PERIODIC |
TIME_CALLBACK_EVENT_SET);//设置采样时间
该函数的参数说明如下:
参数m_nFrequency为接受来自应用面板的用户的频率设置;
参数m_nTimerRes表示时间精度,在Windows中缺省值为1ms;
m_hTimerEvent表示回调函数,为用户自定义函数,定时调用;
TIME_PERIODIC:周期性执行。
在定时器使用完毕后,应及时调用timeKillEvent()将之释放。
5.2数据采集函数
有了采样时间,就可以用定时器函数对板卡内的数据进行采集,这里的采样函数采用PIO-821板卡自带的API函数库Pio821.lib中的板卡驱动函数PIO821_DriverInit(),板卡数获得函数PIO821_TotalBoard(void),板卡激活函数PIO821_ActiveBoard(BYTE BoardNo),通道设置函数PIO821_SetChannelConfig(BYTE BoardNo,WORD wAdChannel,WORD wConfig)采用的是轮巡方法采样所需要的函数PIO821_ADPolling (BYTE BoardNo,float *fAdVal),通过对这些函数的调用,可以有效而准确地从板卡中获得从放大器中传来的阀瓣膜传感器信号。
5.3 数据滤波处理
在工业现场环境下,由于被监测对象的环境比较恶劣,干扰源比较多,来自传感器或变送器的真实信号中,往往会混杂各种频率的干扰信号。通常前端电路抗干扰性不是很好,而数字滤波则可以对各种信号干扰信号,甚至低频率的干扰信号进行滤波,弥补了前端电路抗干扰性的不足。本文采用了滑动算术平均值滤波,因为滑动数字滤波具有过程简单、实用、可控性好等优点,尤其适合在线快速数据处理等实时性要求较高的场合,且滤波的速度和采样速度是一样的。
5.4 数据采集过程中的多线程技术和数据链表。
所采集的数据考虑到需要放入链表中,同时又要考虑到从链表中读出数据存储于硬盘,而在这两者不同时工作时肯定会造成试验数据的不连续性,而在这同时又需要考虑两者工作的相冲突性,因此程序必须要有能够实现数据读取和存储的同步机制,而Windows多线程技术和链表相结合则是最好和最通用的解决办法之一。
在本采集系统中,创建了两个线程分别为:
m_pCollectionThread = AfxBeginThread(CollectDataProc, this);//创建数据采集线程
m_pWriteDataThread = AfxBeginThread(WriteDataProc, this); //创建数据存储线程
同时,通过调用timeSetEvent()函数,在Visual C++下构造一个高精度计时线程,不断循环触发采样线
程进行数据采集。
图3定时器功能流程图图4 数据采集及处理线程流程图Fig.3 Flow chart of timer Functional Fig.4 Flow chart of data acquisition and solution 将PIO-821H板卡数据采集到上位机时,需要首先将数据保存到内存中,为此在内存中为数据开辟一条数据链表,使得在编程中,可以很方便地对数据进行操作。其具体实现如下:
struct TCollectData //首先创建一个数据结构TCollectData,用于数据采集时,暂时存放从标准压力传感器和阀瓣膜传感器得到的数据,之后要转储存在链表中。
{
float lData1;
float lData2;
};
template <class TYPE>
class CDataBuffer //创建一个链表用于程序中的数据的操作
{
struct TObjectNode //创建链表的接点
{
*pNext;
TObjectNode
void
*pObject;
};
Protected:
*m_pDataHead;//链表的头指针
TObjectNode
*m_pDataTail;//链表的尾指针
TObjectNode
UINT m_nDataCount; //用于计数作用,告诉链表当前链表中还有多少数据
CRITICAL_SECTION m_csData; //声明一个CRITICAL_SECTION类型的变量
HANDLE m_hDataSema;//定义信号量句柄
Public:
CDataBuffer();
~CDataBuffer();
void Clear();//清空链表数据后销毁整个内存中的链表,释放空间
int AddData(TYPE &rData);// AddData(TYPE &rData)用于往链表里增加数据
BOOL GetData(TYPE &rData,DWORD dwMilliseconds = 1000);// 用于获取链表数据函数用链表类创建的类对象为:
CDataBuffer<TCollectData> g_oSourceDataBuffer;
CDataBuffer<TCollectData> g_oWriteDataBuffer;
CDataBuffer<TCollectData> g_oWriteWarningBuffer;
6. 安全阀数据采集系统的应用
测试所用的安全阀型号为A48Y-16C,DN50,是全启式弹簧直接加载型安全阀,所用测试介质为压缩空气。图3显示了特殊设计的阀芯膜传感器以及作为参照的标准压力传感器在全启工作过程中检测数据的变化规律,通过图中所显示的安全阀排放时的压力信号曲线,可以将全启过程划分为以下几个阶段如图3所示。
图5采样频率为300Hz、安全阀全启排放时的压力信号曲线
Fig. 5 Pressure signal curve during safety valve emission, under 300Hz sampling frequency 通过上述试验曲线还可以观察到:
1)在本文研究的大容量较高压力的储气系统中,标准压力传感器显示在稳定排放阶段,压力变化是平滑而缓慢下降的,然而阀芯传感器测试结果表明,压力下降具有波动性,这说明安全阀的阀口在稳定排放阶段,压力载荷具有波动性质,在这种载荷波动下,安全阀的关闭部件(阀芯)显然会承受动载或惯性载荷的激励,是系统振动和相关构件疲劳破坏的诱因之一;
2)在开启阶段,用阀芯传感器检测得到的第一个波峰(b点)接近全启压力(d点),说明启跳瞬间,突然泄放的大量气体推动阀芯达到了接近全启开度,但是由于开启瞬间泄放气体无法得到及时补充,所以出现了压力的瞬间下降,然后在后续源源不断的补充气体推动下,又出现第二次全启,而第二次全启预示着稳定排放阶段的到来。
3)在开启阶段阀芯传感器检测得到的波谷c点与稳定排放阶段结束,回座阶段起始的h点的压力测试值接近,这是否预示着可以通过测试开启阶段的相应点的数据评估或校验回座压力。
4)标准压力传感器由于无法安装在安全阀的阀口位置,因此,其检测数据的灵敏度和数据的精确度比新型的阀芯传感器低很多,同时显示出来的全启过程压力测试曲线与阀芯传感器的测试数据有较大的差异,而通常进行校验时,几乎所有的压力检测口都位于阀口位置之外,导致测试误差(本研究实测表明已达到0.2-0.3Mpa),所产生的影响及其后果不容忽视。
7结论
利用VC软件强大的界面编程、多媒体时种控制器、多线程技术及数据链表操作,再加上PIO-821H 高速数据的采集和可编程功能,本研究实现了安全阀数据采集系统配置,并开发了相应的数据采集软件。经过实验测试,该系统成功实现了安全阀的在线实时检测,并具有较高的可靠性和安全性。利用阀芯传感器与数据采集系统组配得到的安全阀检测系统所完成的现场试验表明,与标准传感器相比,阀芯传感器具有测试数值精确度高,刻画安全阀全启过程准确细致,测试数据重现性好等优点。在实际工业生产的安全泄放装置中具有广阔的应用前景。
本文作者创新点:在新型阀芯传感器基础上,利用VC成功开发了一套数据采集软件,首次实现了对全启式阀瓣开启过程中阀瓣口处的压力信号的采集。
参考文献:
[1]周一卉,刘润杰,由宏新. 微机测控安全阀校验系统[J].化工机械,2004,vol.31(3):162-164
[2]郭崇志,具有在线功能的安全阀及其检测系统[P].发明专利说明书,2005
[3]李博,李念奎,徐成发,孙弟,朱日辉. 电阻应变式压力传感器的电测公式[J]. 东北工学院学报,1989(10),vol(10):489-493
[4]荣思远,景新幸,陈用昌. 一种基于PCI总线的多路数据采集卡[J].微计算机信息,2006,vol.22(11):
152-154
[5]姚晔,胡益雄. VC++应用程序精确定时方法的实现[J]. 计算机系统应用,2001(9):63-65
本单位图书馆(资料室)有订阅本刊.
作者简介:郭崇志 (1956-),男(汉),华南理工大学机械与汽车工程学院副教授,主要从事过程装备CAD/CAE及安全检测与控制技术
通讯作者:苏杭(1982—),男,主要研究方向:过程安全检测与控制模拟技术,Biography: GUO Chongzhi (1956-),Male(The Han nationality),GuangDong, South China University of Technology, Adjunct professor, Chemical Mechanism, Processing Equipment CAD/CAE And Technology of safety Detection and Control.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论