CO2气体保护焊电量信号的采集与分析 (2).doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:4 大小:85KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

CO2气体保护焊电量信号的采集与分析 (2).doc

CO2气体保护焊电量信号的采集与分析(2).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CO2气体保护焊电量信号的采集与分析焊接电弧包含着丰富的电、光、声音等信息,能够反映电弧焊各种电弧物理过程。如何利用现代传感技术将这些信息提取出来,是研究焊接过程的关键所在。国内外焊接界的专家开发了各种各样的传感器,有机械、电弧、声音和视觉等类型。机械式传感器使用不够灵活,适应面窄,目前较少采用。而电弧和视觉传感器各具特色,国内外研究较多。电弧传感器以电弧自身电流和电压作为信号源,成本低廉,可达性好,因而在焊接过程质量监测与焊缝自动跟踪中得以普遍采用〔1,2,5〕。本文以ADLINK公司的PCI29112多通道数据采集卡为核心,通过VisualC++6。0编制程序在PC机上开发了一套电量信号采集系统,并且对CO2气体保护短路焊过程的稳定性进行了分析,并为研究焊接过程质量监测奠定了基础。1硬件构成信号采集系统如图1所示。该系统由焊接电源、焊接小车、PC机、传感器、滤波器和数据采集卡组成。焊接电源采用硅整流弧焊机。焊接电流电压信号分别通过绵阳维博公司的WB1221F型霍尔电流传感器与WBV121S型线性隔离分压器变换为0~5V之间的电压信号,滤波后送到信号采集卡的输入端。电流传感器的精度等级为0.5级(相对满量程输出的误差在±0.5%以内),响应时间短(15Ls);电压传感器精度等级为0。2级,响应时间为5Ls,且输入阻抗高,功耗低(400mW)。它们共同特点是线性范围宽(为:0~120%标称输入),过载能力强,高隔离,低功耗,测量时不影响焊接回路参数。因为电流传感器是利用电磁感应和霍尔效应原理,它的输入端与输出端分别属于不同的回路,而电压传感是利用先进的线性光藕隔离,所以它们均有效地隔绝了焊机强电系统与微机弱电系统之间的直接连接,从而保护了微机,同时对信号采集具有一定的抗干扰作用。滤波器为有源低通滤波器,通带截止频率fc设计为500Hz。信号采集卡是ADLINK公司的PCI29112多通道数据采集卡,该卡的特点是:16路单端输入或8路差分输入,AöD转换时间为8Ls,12位输入模拟信号分辨率,精度为0.01%,若只采集两路信号,该卡可以保证以最高每路55kHz的频率精确地采集信号,根据香农采样定理,采样频率应大于连续信号频率的2倍,同时根据经验,本文两通道的采样频率均定为4kHz(fc×8);32位PCI总线,自带总线控制器AMCC2S5933与8个字的FIFO(FirstInFirstOut)缓存,当它工作在DMA(DirectMemoryAccess)方式时,可以不占用CPU时间而把数据以极快的速度送到内存缓冲区。且该卡的驱动程序是以DLL(DynamicLinkLibrary)方式提供的,从而方便了可视化编程。2软件设计因为高速数据采集时一般采用连续采集方式,驱动程序将采集到的数据依次转移到用户缓冲区中。当用户缓冲区占满之后,驱动程序将覆盖原来的缓冲区数据,所以,如果原来的缓冲区数据没有来得及保存,将会丢失。本文通过WindowsXP系统的多线程技术,并结合缓冲区半满开始传送数据的数据传送方式,通过VisualC++6.0编程解决了这个问题〔3.4〕。具体的编程思想如下所述。PCI9112卡要求在内存中开辟一个内核缓冲区与一个用户缓冲区,前者用来保存从FIFO中传送的数据,这是由采集卡的驱动程序完成的,后者用来转移保存内核缓冲区的数据本文在界面主线程中启用了两个辅线程:数据采集辅线程,数据存盘辅线程。数据采集辅线程负责把被采集卡转换信号输送到内核缓冲区,数据存盘辅线程负责当用户内存缓冲区充满时,将数据以文件的形式保存到硬盘。数据采集过程是这样的:数据从采集卡的A.D转换器保存到采集卡的FIFO中,只有当FIFO半满时,采集卡才启动DMA方式将数据送到内存缓冲区,同时,A.D转换器中的数据会继续往FIFO的后半部分传送;当内核缓冲区的前一半满数据时,就将数据转移到用户缓冲区,当用户缓冲区充满时,就启动数据存盘辅线程。这两个线程可以并行运行,即计算机能同时处理数据采集和数据保存。显然,在程序中,用户缓冲区的大小是内核缓冲区的一半,之所以这样做是因为一方面要保证数据连续采集和保存的需要,另一方面,如果用户缓冲区开得太大,数据存盘线程与数据采集线程在Host总线上出现拥挤的现象,造成数据丢失。在程序中通过设置由VisualC++6.0提供的CTime::GetCurrentTime函数记录了采样开始时间Tstart与结束时间TstopTsample=Tstop-Tstart(1)Size=Tsample×8000×2÷1024(2)经式(1)计算出采样时间,再经式(2)计算出数据量(单位为kB,每个数据以两个字节存放),将此数与硬盘上所保存的数据文件大小比较,多次采样结果表明,理论计算值与实际数据文件大