摘要:为了保证皮带输送机的安全运行,发挥钢丝绳芯皮带在全生命周期中的最大效益,以TCK—GMS600弱磁检测器为基础,在Vc++6.0集成开发环境下,应用DAQBench(DataAcquisitionBench)控件和多线程技术,开发了钢丝绳芯输送带电磁在线监测系统,实现了数据采集和存储、曲线实时显示、缺陷识别等功能,为钢丝绳芯皮带的健康维护奠定基础。
关键词:DAQBench控件;钢丝绳芯;在线监测;TCK-GMS600
中图分类号:TP311 文献标识码:A 文章编号:1002—1841(2012)06—0046—02
ElectromagneticOn—lineMonitoringSystemfor
SteelCordConveyorBeltBasedonVC++
CHEN Hai-yu,MA Hong-wei,MAO Qing-hua,ZHANG Xu-hui,ZHANG Da-wei
(Xi’an University of Science and Technology,Xi’an 710054,China)
Abstract:In order to ensure safe operation of belt conveyor and produce the best possible results of steel cord conveyor belt in life cycles.Steel cord conveyor belt electromagnetic on-line monitoring system was developed by using VC++6.0 integrated with
DAQBench controls based and multi-threading technology on TCK-GMS600 weak magnetic detector.The system realizes the functions of data acquisition,storage,curve real—time display,defect identification,etc,which makes good foundation for healthy maintenance of steel cord conveyor belt.
Keywords:DAQBench controls;steel cord;on-line monitoring;TCK-GMS600
引言
随着电磁检测技术和计算机技术的不断发展,为钢丝绳芯皮带电磁检测的数字化、智能化以及预知维护提供了强有力的技术支撑。在钢丝绳芯皮带的监测过程中,为了保证监测的直观、可靠,不仅要实现实时监测,而且要实时记录、显示检测曲线或图像,由于皮带机的运行速度较高(一般运行速度为3~4m/s),数据量大,要求数据的采集、传输和显示要与之匹配。在软件系统开发时,应用一般控件和方法时,常常出现丢失数据或曲线绘制失真问题,为此,将借助于多线程技术与控件编程相结合的方法,实现数据高速采集、实时存储与显示。
1 系统构成
系统是基于计算机的数据实时监测系统,整个系统在VC++6.0集成开发环境下,利用DAQBench控件和TCK—GMS600弱磁检测器实现数据的采集、显示和存储。DAQBench是一种测量和自动化应用的ActiveX控件的集合,可以很简单地实现数据接收、显示和分析,此控件也支持VC++6.0环境下的开发应用。TCK-GMS600弱磁检测器,是利用最新弱磁检测技术开发的一种先进的钢丝绳芯皮带探伤器,具有数据采集准确和传输速率高等特征。
TCK-GMS600型钢丝绳芯输送带弱磁检测传感器采用弱磁检测方法对输送带中钢丝绳的断丝、断股、磨损、锈蚀、接头移位等损伤故障进行检测[1]。从图1弱磁检测系统安装图可
知,该系统先通过弱磁加载模块对钢丝绳芯输送带中钢丝绳进行磁化,磁化后钢丝绳具有微弱剩磁,然后通过磁检测模块对输送带内部缺陷进行检测,并通过以太网TCP/IP协议与计算机通讯,实现数据传输和控制,从而提取出钢丝绳芯输送带内部缺陷的原始信号,然后通过上位软件对缺陷信号进行分析和处理,从而实现对钢丝绳芯皮带缺陷信号识别。
2 应用ActiveX控件的系统软件设计
2.1 DAQBench控件介绍
DAQBench控件是ActiveX控件的集合,它可以快速完成监测系统界面设计,利用该控件不仅能快速完成软件设计,而且能够使应用程序界面更友好。与其他的开发软件相比,DAQBench具有开发成本低、执行效率高、程序弹性大、开放性强、易于扩充等优点。当前DAQBench组件包括:用户界面控件,信息集成控件,分析库控件,SCADA(Supervisory Control And Data Acquisition)控制单元等[2-3]。
2.2监测系统软件设计
通过以太网TCP/IP协议与计算机通讯,获取数据传输,然后在VC++6.0集成开发环境下,采用多线程同步技术,多线同步运行流程图如2所示,应用DAQBench控件包中的Dchart
Control控件完成数据的实时显示,并且完成数据采集和存储等功能。
TCP/IP是一个4层的分层体系结构,包括应用层、传输层、网络层和网络接口层,对于传输层,其主要协议有UDP(user data protoco1)和传输控制协议(TCP,Transmission Control Protoco1)。TCP协议将维护连接并确保数据的完整性,由于监测系统数据量大,且要求数据连续传输,系统采用TCP通讯协议。在Windows系统上完成网络通信应用程序开发,基本都利用SOCKET套接字进行数据通讯[3]。
由于系统中要完成数据接收、数据存储和数据显示3个功能,对于后期开发还要加入数据分析处理,所以采用多线程技术完成几个功能的实现,系统采用模块化编程思想。在VC++6.0下线程分为2种:用户界面线程(GUI)和工作者(Worker)线程(又称为后台线程)[4]。为了使各线程的工作协调,就要使用线程的同步技术。MFC(Microsoft Foundation Classes)中提供了4种同步方法:临界区、信号量、互斥量和事件[5-6]。该系统采用事件同步机制,事件是通过设置自身对象为有信号和无信号控制线程的执行或者等待。
2.2.1控件加载设置
安装完成DAQBench控件包后,就可以和普通控件一样在VC++6.0中插入控件,插入后就使用控件的属性、方法和事件对控件进行操作。
2.2.2数据接收
根据TCK-GMS600弱磁检测器提供的通信协议编写通信段代码,系统采用的是微软API(即应用程序编程接口)底层升入和C/S(客户端与服务器)模式,弱磁检测模块作为客户端,当接收到开始命令后,就开始不间断发送数据,上位PC机作为服务器采集数据,利用线程同步技术实现数据不中断接收。
2.2.3实时数据显示
根据TCK-GMS600弱磁检测器特征,其中包含多个传感器即多通道数据采集,通道主要分为14、28、42和56。曲线的绘制是DAQBench控件包中的Dcha Control控件,此控件的特点可以实现X轴自动移动,实现曲线动态移动效果。为了能够实时准确地显示每个传感器的曲线特征,采用一个界面显示14个传感器的形式显示实时曲线,根据通道数的变化选择性的显示想要查看的曲线图像。
48 陈海瑜等,基 于VC++ 设计钢丝绳芯皮带电磁在线监测系统 第6期
2.2.4采集数据的存储
为了方便后面对皮带具体情况进行全面分析处理或者历史数据绘图,必须对采集的数据存储,系统数据存储是通过写入二进制文件的方式进行,采用微软基础类(Microsoft Foundation Classes)中的CFile类,此类中对文件的操作是以字符为单位,写入和读出是都是按照字符的格式操作,功能简单,方便使用。在写入数据前要对每个通道的数据进行处理,其中包括各通道数据的分离和对各通道数据根据传感器特性相应的进行处理。
2.2.5主要程序段过程设计
系统主要程序设计思想是应用多线程同步技术完成,具体步骤分为以下4个过程:
(1) 定义Cevent类的3个事件对象:接收事件对象eeven-tRev、存储数据事件对象ceventStore、画线事件对象ceventDraw。并且定义SOCKET类2个对象,一个是用来件监听连接请求的TcpSocket,一个是用来接收数的AcceptSock,启动监听等待下位机发起连接请求,一旦接收到客户端连接信号,设置线程内循环控制标记为TRUE,启动接收、存储和画曲线3个线程,并创建存储数据的data文件,ceventRev.SetEvent()设置接收事件对象有信号。
(2)启动3个线程后,3个线程中用while循环保持运行,线程运行后其中应用函数WaitForSingleObject函数等待事件信号,没有信号时线程停止运行不占用CUP运行时间。
(3)当函数WaitForSingleObject(ceventRev.m—hObject,IN-FINITE)在接收线程等待到事件信号后,开始执行接收数据线程,waitForsingleObiect函数将ceventRev设为无信号状,当完成
接收数据后调用ceventStore.SetEvent()函数设置ceventStore为有信号状。当存储数据线程中WaitForSingleObject(ceventStore.m_hObject,INFINITE)等待到事件信号后,开始执行存储数据线程,WaitForSingleObject函数将ceventStore设为无信号状,当完成接收数据后调用ceventDraw.SetEvent()函数设置ceventDraw为有信号状。当曲线绘制线程中的WaitForSingleObject(ceven—tDraw.m—hObject,INFINITE)等待到事件信号后,开始执行曲线绘制线程,WaitForSingleObject函数将ceventDraw设为无信号状,当完成接收数据后调用ceventRev.SetEvent()函数设置ceventRev为有信号状。整个过程就完成了3个线程直接的同
步协调循环运行。这样就保证了数据实时接收、存储和显示。
(4)如果按下停止按钮则设置线程内循环控制标记为FALSE,此时线程循环条件为假,线程自动结束,最后关闭数据存储文件和SOCKET对象。
3.实验测试
由于系统是对新搭建的带式输送机实验平台的监测,设置皮带运行速度为0.5m/s,其皮带宽度为80mm,对于新皮带除了接头信号外并没有加入其它损伤信号,所以系统中监测出来的信号是标准的接头信号,监测过程中设置弱磁检测传感器数据发送频率为1KHz,通道数为14,进行数据采集,整个系统测试界面部分如图3所示,根据曲线显示说明系统可以实现钢丝绳芯输送带缺陷信号高速实时显示。
4.结束语
系统是使用DAQBench控件,结合TCK-GMS600弱磁检测传感器开发的,系统中应用windowsAPI编程和多线程同步技术实现了对数据的采集、存储和实时显示功能,对钢丝绳芯输送带后期数据分析处理、缺陷分类以及预知维护提供了基础数据,为保证带式输送机高效、安全运行奠定了基础。
参考文献:
[1]宋晓宇.TCK型钢丝绳在线无损定量检测装置.同煤科技.2007(3);52-53
[2]吴银川,验证国,苏娟,基于DAQBench的数据采集系统设计,仪器仪表用户,2008,15(3);35-36
[3]ADLINKTechnologyInc,DAQBench用户手册,Taipei凌华科技,2001.
[4]张国龙,徐晓苏,基于VC++多线程技术的模拟惯性测量组件设计,中国惯性技术学报,2009,17(1);24-27
[5]孙鑫.VC++深入详解,北京;电子工业出版社,2006;530-532
[6]葛亮.VisualC++从入门到实践,北京;清华大学出版社,2009;285-289
[7]陈秀川,杨云,郭琦,对VC++MFC类库中Cfile类的派生类的研究和示例,南昌航空工业学院学报(自然科学版),2004,18(4);79-83
作者简介:陈海瑜(1984-),硕士研究生,主要研究方向为矿用带式输送机在线监测系统设计。E-mail;chenhaiyu000@qq.com
上一篇: 第一篇