油喷雾阀监测装置的开发与设计
摘要:本文介绍的喷雾阀控制装置采用工业控制计算机作主控制器,PLC作辅控制器,并辅以数据采集、模拟量输出以及数字输入/输出DAS卡。在程序设计中采用了多种应用程序无缝连接技术和多线程编程技术,加以多种硬件和软件抗干扰措施,有效保证了装置的可靠性和实用性。
关键词:喷雾阀;系统设计;控制;多线程;抗干扰
前言
在船舶动力工程设计中,有一个重要的装置,即油的喷雾阀,其性能的好坏直接影响着柴油发电机的发电效率和性能。本文在广泛分析喷雾阀喷吹过程的基础上,设计了喷雾阀性能监测装置。该装置借助压力变送器、加速度变送器等,通过计算机采集喷雾阀出口的压力、气包压力、标靶加速度信号,能实时在线评估喷雾阀的性能品质,适应各种不同结构与尺寸的喷雾阀监测需求。
监测的状态量主要有:
喷雾阀出口的压力波形及其上升速率;喷吹令标靶产生的加速度波形;稳压气包内压力变化波形;喷吹气量(△Q);电喷雾时间(te)。
监测原理及监测过程的实现
空压机为稳压气包提供压缩空气,通过调压阀调节至需要压力,由计算机向喷雾阀发出开启指令喷雾喷吹(延时设定时间关闭,电喷雾时间可调),在计算机向喷雾阀发送开启指令的同时启动采样程序,采集气包压力、喷雾阀出口的压力(全压)、标靶加速度信号,并将采样数据存入计算机,对采样数据进行处理分析,实时在线绘制喷雾阀出口压力、稳压气包内压力变化及标靶加速度波形图。通过分析以上图形,可评估喷雾阀性能品质的优劣。装置的主要功能如下:
1)信号采集功能:主要完成包括喷雾阀出口的压力、气包压力、标靶加速度信号等在内的实时采集,且采样频率可调;
2)屏幕显示功能:以曲线和数字方式分别显示各通道数据趋势曲线以及分析后的数据和谱线数据;
3)存储和回放功能:完成采集数据和分析数据的存储、回放分析、信号分离并进行数据的时域和频域分析;
4)喷雾阀性能评定功能:通过对输入标定数据的分段拟合进行数据修正。
系统配置
为满足检测装置对控制系统的设计要求,我们选用了Advantech的IPC-610P型工业控制计算机(PCA6180主板、256MSDRAM、PIII 1GH CPU)作为主控制器,完成人机交互、实时数据采集、分析、存贮、图形绘制与打印等任务;WP系列的一体化(传感器和变送器合二为一)压力变送器、CA-GT系列的一体化加速度变送器分别变送气包压力、喷雾阀出口压力和标靶加速度电信号;高性能、高采集速率的数据采集板卡PCL-818HD用来采集三个变送器的标准电信号,同时,由于要在电磁阀开启的同时启动采样线程,选用三菱PCL协助主控制器来控制电磁阀的开启、延时、关闭等动作,其驱动由继电器输出板卡PCL-725来完成。
PCL-818HD 能保证在所有增益(x 1, 2, 4 或 8, 可编程)和输入范围内都有 100kHz 采样速率和转换速度。它有一个 1 K 的 FIFO(先进先出)缓冲器以获得更快的数据传输和 Windows 下更好的性能。这正是本系统选用该板卡的重要依据。同时为提高信号的抗共模干扰的能力,本系统采用差分模拟量输入方式。
为了提高整个控制系统的抗干扰能力,选用继电器隔离的数字输入输出板卡PCL-725,其板上的八个 SPDT 继电器非常适合本系统电磁阀的开/关控制。每个继电器旁边的红色 LED 用来显示继电器的开/关状态。
模拟量输出板卡PCL-728,能输出-10V~+10V的模拟信号,实时控制变频器的反、正转,PCL-728采用光隔离措施,提高系统的抗干扰能力。
为保证喷雾阀动作的可靠性及获得喷雾阀不同开启时间,喷雾阀的开启延时采用日本三菱公司的FX2N系列的可编程控制器(PLC)进行控制。喷雾阀电磁阀的开启延时由PLC内部定时器自动延时,延时时段为20ms、30ms、50ms,延时时段的选择通过改变PLC的外部输入点的地址来实现。系统框图见图1所示。
图1 系统框图
监测系统中几项关键技术
A/D触发方式的选择
因为控制程序运行于Windows平台,而Windows是一多任务、多用户的而非实时操作系统,在高速数据采集时有可能会丢失数据,数据的丢失意味着测试数据不完整。为满足控制系统的高速数据采集的需要,保证采集数据的连续性、完整性,采用了定时器同步触发A/D与FIFO数据传输方式相结合的方法,大大提高了系统的采样频率和数据的可靠性,改善了在Windows环境下数据传输的性能。
多种应用程序的无缝连接技术
Visual C++是Windows平台下强大的应用程序开发环境,MATLAB是一个功能强大的数值计算和结果可视化的软件。假如将MATLAB和Visual C++结合起来,取长补短无疑是一个有效的途径。本设计利用MATLAB Compile (编译器),将MATLAB函数编译成可以脱离MATLAB环境使用的C函数,在Visual C++中将此C函数编译成动态连接库,在Visual C++中加载这个动态连接库,这种方法能实现两者之间的无缝连接,仅需利用相关的MATLAB应用程序接口(API)函数编写一个C语言的接口函数即可。
多线程的数据采集软件设计
由于整个应用程序需要在较短的时间内完成数据采集、去噪声、数据整理与分析、压力数据实时图表显示、数据分析计算以及数据存储与管理等任务,如果仅使用单线程模型来设计系统,就不能很好地完成数据采集和分析的任务,因此考虑采用多线程模型,利用多个线程分别完成各项任务。
本系统通过并行设计充分利用Win32 操作系统的多任务特点将不同的任务分布到各个线程中,使各个任务同步进行而互不影响。系统中的主线程负责创建用户界面、接收消息等工作。另外,由于Win32 系统是抢先式系统,为了保证数据的采集不被其他线程中断就要开辟一个优先级较高的线程来采集数据。同时,为保证系统硬件相关部分和硬件不相关部分的相互独立,将采集模块做成动态链接库,采集到的数据存入内存池中,然后调用动态链接库中的相应函数定时获取内存池中的数据。由于数据的分析、存储和性能在线评估耗时较多,且各个任务所占用的时间段不同,故将其分别置于不同的线程中,在数据采集的同时进行数据的分析存储和各通道的巡回监视,各个线程(数据采集线程、数据分析与处理线程以及数据动态显示线程)中所要完成的工作并行进行,线程间的通信可以通过消息响应函数PostMessage 来实现。
由于本系统是一个工业化的连续运行的实用系统,系统的可靠性非常重要,必须协调以下工作:
1)注意释放内存, 在系统的调试过程中避免线程阻塞。在Windows环境下若有某个任务持续长时间运行时,会导致所占用的存储空间逐渐膨胀,因此有时会因内存自由空间的过少而出现有关线程阻塞的现象,甚至出现死机,故在开发程序的过程中,必须考虑有效措施使程序能自动释放内存。
2)注意节约占用CPU的时间。系统规定数据采集线程和数据处理线程的优先级为最高,其余任务必须注意节约占用CPU的时间,否则会降低系统的运行效率。
3)合理规划线程内容,控制线程个数。虽然系统采用多线程模型可以有效地提高采集和监控效率,但系统中所拥有的线程不能太多。因为可运行的线程越多,对所有线程轮询一次所需的时间越长,系统延时越大。同时系统的吞吐量将相对减少,当系统总的延时超过一定的限制时,系统将变得不可使用。
4) 合理解决数据缓冲区的并发和同步。多线程应用程序基于优先级的可抢先调度和不可预测性,使得其同步问题变得非常重要。如何正确、高效地实现多线程系统中各个线程之间的通信,使得相关线程之间能够对临界区的访问达成同步,对提高多线程数据采集系统的效率有着重要的作用。在本系统中,采用事件Event方法,用于封锁对一个资源的访问直到出现了某些线程或进程的信号即指定一个指定事件的信号。使用事件同步一般用CreateEvent 创建事件,WaitForMultiObject等待事件的发生,SetEvent 标记一个事件的发生,ResetEvent 清除事件发生的标记。由于CPU的运行速度远高于采集卡采集数据的速度,因此,数据处理线程的大部分时间是在等待读取缓冲区的数据,不会因为来不及处理缓冲区的数据而使数据采集线程因等待缓冲区的释放造成采集数据的丢失。这样线程之间较好地实现了对数据缓冲区访问的并发和同步。
控制系统软件设计
整个控制系统软件基于Windows 9X操作系统平台,人机交互的应用程序采用编程功能强大的Visual C++,并辅以多线程编程技术以及和具有强大数值计算和处理功能的Matlab进行无缝连接技术,完善和弥补了Visual C++的功能。程序采用面向对象的设计方法,增强了应用程序的实用性、可靠性。整个程序流程框图见图2所示。
图2 程序流程框图
系统抗干扰措施
在本实时控制系统中,必须采用各种抗干扰手段来抑制干扰对测量结果的影响。其主要干扰有:部分电气的脉冲型干扰、继电器开断产生的随机型脉冲干扰、传感器以及变送器自身噪声等,这些干扰进入监测系统主要通过(1)从系统的工频电源进入,(2)通过电磁耦合,(3)通过监测元件进入。为获得较好的试验结果,本设计采取以下抗干扰措施:
共模抑制技术
为提高系统的抗干扰性能,系统采用差分输入方式,差分输入可使来自设备震动、以及变送器的白噪声干扰相互抵消,实现共模抑制电噪声。
模拟地隔离技术
为了使控制系统防止外界干扰,除了供电系统采用隔离变压器以外,在过程与过程通道之间也采取隔离方法,使其计算机系统与外界的过程控制器和变送仪表之间没有公共地线,而是采用继电器隔离方式,以提高系统的抗干扰能力。
数字滤波处理技术
在数据处理过程中,对于采样信号中的各类噪音和失真采取了软件滤波与硬件滤波相结合的方法,首先通过模拟低通滤波器(硬件滤波)滤去5Hz的噪音,对于低于5Hz的噪音则采取软件方法进行滤波。
1)对采集到的数据实行五点三次平滑法滤波
2)在信号采集中,常有系统误差,而这些误差主要是由系统噪音引起的,与当时实验的条件如温度、仪器老化时间等因素有关,所以在正式采样之前需进行全程背景噪音扣除,以消除系统噪音,在正式采样之前先进行一次与正式采样相同条件的空采样,得到的数据全部是背景噪音,在正式采样中将刚才的背景噪音全程扣除。
3)在采集信号中,常有“毛刺”干扰,根据经验,确定出两次采样输入信号可能出现的最大偏差ΔH,两次采样值之差若超过此偏差值且又持续时间很短,则表明该输入信号是干扰“毛刺”,应该去掉,若小于此偏差值,可将信号作为本次采样值。
经过以上软硬结合的滤波,微伏级的信号可正确分辨,大信号也不会失真,效果显著。
结语
系统设计采用了较为先进的设计方案,并加入了多种硬件和软件抗干扰措施,同时,在软件设计时,充分考虑了Windows操作系统的特点,应用了多种应用程序无缝连接以及多线程编程技术,保证了系统设计的先进性,提高了系统的稳定性以及自动化水平。