金属结构损伤电磁检测软件设计与开发

2022-08-01 03:48饶臻浩张翱龙金泽淏王俊杰武新军何岭松
测控技术 2022年7期
关键词:数据包电磁仪器

饶臻浩, 张翱龙, 金泽淏, 王俊杰, 武新军, 何岭松

(华中科技大学 机械科学与工程学院,湖北 武汉 430074)

大型钢结构件在建筑、仓储、化工等行业得到广泛应用,由于受到制造水平、加工工艺、使用环境等因素的影响,容易出现疲劳、腐蚀、大面积减薄等多种失效形式,因此需要对钢结构件进行定期检测和维护[1-4]。电磁检测具有非接触、效率高的优势,在铁磁构件检测中得到广泛应用。目前,国外的商业化电磁检测系统如加拿大Eddyfi公司的Floormap3D型储罐底板漏磁检测软件系统,可在检测过程中接收并处理漏磁检测(Magnetic Fluxleakage Testing,MFL)信号,生成缺陷分布图,便于操作人员观察,具有响应快、直观的优点[5];帝国理工大学开发的WavePro4导波检测软件系统可实现A扫并自动生成检测报告,还能拓展试件仿真和缺陷定位的功能,具有很好的可拓展性[6]。以上均是专用型检测系统,不能实现多种检测方式。国内多所高校也进行了电磁检测系统的开发,大连理工大学材料工程系利用LabVIEW开发了高温炉管无损检测系统[7],可同时进行炉管蠕变损伤的超声检测和管壁蠕胀情况的连续检测,提升了软件操作的便捷性和友好性;华中科技大学仪器系研制了漏磁与电磁超声复合检测系统[8],该软件系统使用了瀑布模型,实现了漏磁与电磁超声检测功能的一体化设计。这些检测软件系统的功能性较强,但是比较依赖于开发平台,不利于拓展且开发周期长。

随着电磁无损检测技术不断发展,现有一种电磁检测仪器可实现漏磁检测、电磁超声检测和导波检测,通过集成多种检测方式以提升适用性和检测效率[9]。同时该仪器对软件系统提出了新要求,检测软件不但需要具备较好的稳定性和便捷性,还要提高可重用能力,缩短软件开发周期。基于该电磁检测仪器提出了一种软件可复用结构设计方法,以实现功能模块的独立开发,提高系统的复用性和可维护性,并在Windows环境下的VS2013 MFC(Microsoft Foundation Classes)开发了电磁检测软件,通过测试验证了该设计方法的可行性。

1 软件功能模块化设计

1.1 硬件系统介绍

按图1所示的电磁检测硬件系统进行软件开发。电磁检测硬件系统包括电磁检测仪器、通信线缆和上位机,其中电磁检测仪器由检测探头、主控电路和运动装置组成。检测探头包括漏磁传感器、电磁超声传感器和导波传感器。仪器工作时,首先进行导波扫查,初步判断构件损伤情况,如发现严重损伤部位,软件发送命令控制检测仪器运动至损伤位置,再使用电磁超声和漏磁进行连续检测,并实时显示信号波形图,检测完毕后回到初始位置按照规划的轨迹继续进行导波扫查,不断循环,直到完成整个构件的检测。

图1 电磁检测系统硬件系统图

1.2 模块化结构

电磁检测软件采用如图2所示的“模块化层次结构”进行设计[10]。顶层包括漏磁检测、电磁超声检测、导波检测等,中间层包括通信模块、数据处理模块、波形显示模块等,底层由实现各模块功能的单元组成。其中通信模块用于控制通信连接、选择采集方式、发送检测命令和接收检测数据;数据处理模块用于解析数据包,提取数据并进行分析处理;波形显示模块包括绘图算法和图形设备接口(Graphics Device Interface,GDI)绘图,用于实现波形图绘制及显示。

图2 电磁检测软件模块化层次结构

各模块通过自身的标准接口进行数据通信,可独立进行开发,下面论述其模型设计。

1.3 通信模块模型

保障软件与硬件之间正常通信是完成电磁检测的重要前提,通信方式有USB、TCP等。软件的通信功能主要包括连接检测仪器、发送检测命令和采集检测数据。检测命令能够完成对电磁检测仪器的控制和初始化操作,包括参数设置命令、开始采集命令、停止采集命令和运动控制命令。检测数据包括不同检测方式采集的信号。

结合C++面向对象特性,对通信功能函数和数据对象进行封装,UML类结构如表1所示。当设计完通信类结构后,使用前首先需要创建通信设备句柄,然后初始化通信参数,例如ID、IP地址或端口号等。等待建立连接成功后,即可使用标准化接口sendCmd(UCHAR * cmd)对下位机发送采集命令,使用recvData(unsigned short * data)接收数据。

表1 通信模块类结构

1.4 数据处理模块模型

数据处理功能主要包括数据包解析和数据后处理操作,流程如图3所示。首先将采集的数据包内容放入unsigned char类型数组中;然后将数组指针按序移位对数组的值逐一解析转换为unsigned short类型,提取出版本号、序列号、信号数据量和数据值,其数据包结构如图4所示;再使用if语句对数据进行逐个验证,例如:判断版本号是否匹配;判断序列号是否溢出;判断数据包中的数据值是否出现错位或丢失;最后通过判断结果舍弃错误的数据包,对正确的数据包进行后处理操作,再把序列号、数据量和数据值放入新的unsigned short类型数组中,使用标准化接口getData(unsigned short * data)输出。

图3 数据处理流程

图4 数据包结构

1.5 波形显示模块模型

MFC可以支持GDI绘图,提供了两个重要的类:绘图对象类和设备环境DC类。其中前者封装了各种GDI绘图对象,包括画笔、颜色和绘图区域等,可以用于设置波形图线条属性;后者用于设置绘图属性和图形类型,可实现波形连续绘制。

通过结合使用GDI绘图方法和双缓存绘图模式,实现波形图实时绘制及显示。波形显示模型主要分为三部分:

① 在ShowZone(unsigned int mode)函数中通过显示范围参数和采集频率计算横坐标像素点数量。当使用等时间采集方式时,横坐标像素点数量span的计算式如下:

span=timeSpan×sampleFrequency

(1)

当使用等空间采集方式时:

(2)

式中:timeSpan为每屏的显示时间;sampleFrequency为采集频率;showSpan为每屏的显示距离;singleDis为采集间隔。

按检测仪器的通道数将屏幕按比例划分区间,确定纵坐标轴及各通道区间的纵向像素范围。在DrawCoord(bool bRedraw)函数中根据计算的横纵坐标像素值绘制坐标轴Bitmap图像。

② 在GetDataY(UINT value)函数中将采集得到的数据值按比例转换纵向像素坐标值y,在GetDataX(UINT value)函数中将序号位按比例转换为横向像素坐标值x,进而可以确定每个数据在屏幕的像素坐标(x,y):

希拉克自以为卖弄“幽默”的一番话,没想到被法国《解放报》公开刊登,这加重了峰会举办地、苏格兰爱丁堡人的怒火。在针对峰会举行的示威活动中,街头抗议者与警察发生了激烈冲突,造成20人受伤,90人被捕。紧接着,《泰晤士报》以“希拉克嘲弄英国,街头冲突爆发”为题,大做文章;其他英国媒体也评论认为,希拉克的话是对英国的侮辱。

x=(w-1)·(vx-x0)/(x1-x0)+0.5

(3)

y=(h-1)·(vy-y0)/(y1-y0)+0.5

(4)

式中:w为横坐标轴的像素宽度;vx为当前采集点的时刻或距离;x0为横轴坐标范围的极小值;x1为横轴坐标范围的极大值;h为纵坐标轴的像素高度;vy为当前采集点的信号值;y0为纵轴坐标范围的极小值;y1为纵轴坐标范围的极大值。

在DrawData(bool bRedraw)函数中,将每个像素点绘制出来,再进行连接,形成信号波形图Bitmap图像。

③在OnPaint()函数中将坐标轴和信号波形图Bitmap图像复制到临时的CDC变量中,最后对CPaintDC类型变量使用BitBlt()函数对指定的源设备环境区域中的像素进行位块转换,再传送到屏幕显示器,实现波形显示。

2 软件总体设计

2.1 软件总线结构

在硬件层面,总线由导线组成,作为CPU、内存、输入、输出设备传递信息的公用通道,是计算机各种功能部件的公共通信干线。

在软件层面,软件总线结构用于实现不同模块的数据通信[11-13],是实现检测软件模块化设计的关键。该总线是虚拟存在的,可假想软件内部有一根数据总线,其中检测参数、检测命令和检测数据在总线内部传输,各功能模块与总线通过接口进行连接,另外调度控制器作为总线的控制中心负责模块的连接和卸载,其结构如图5所示。

图5 基于软件总线的检测软件结构

2.2 软件工作模式和调度控制方法

对于该检测系统,各功能模块需要按一定顺序进行工作,属于串并行复合系统。其中串行工作模式采用数据流驱动模型[14],并行工作模式采用消息传递的双线程模型,如图6所示。首先软件系统读取用户输入的检测参数并与下位机建立连接,进入检测线程后,向下位机发送检测命令并接收检测数据;然后通过数据流驱动的方式进入绘图线程,实现信号波形图的绘制;最后通过线程循环和消息传递的形式实时显示信号波形图,同时进行数据采集和处理工作。

图6 基于软件总线结构的工作模式

根据该软件总线结构和工作模式,调度控制器需要执行的任务是连接或卸载功能模块、为各模块分配空间、切换检测方式和控制检测状态。首先将软件总线的接口排序编号,并为每个功能模块提供连接接口空指针;然后控制器再通过软件界面输入参数确定模块连接顺序,将空指针指向软件总线地址,模块与总线建立连接;最后控制器根据软件界面选择的检测方式设定该模式对应的检测数据类型、检测命令格式和绘图模式。

3 应用实例

根据上述方法,采用MFC开发了一套电磁检测软件,界面如图7所示。其中软件界面包含菜单栏、检测功能目录、检测功能对话框、波形图显示区域和状态栏。单击检测目录其中一项,界面左侧将展开检测功能对话框,其中包括参数输入编辑框、参数选择下拉框和控制按钮等基础功能。

① 单击软件界面左侧目录项,选择一项检测功能;

② 等待功能对话框展开后,选择一种通信连接方式,再编辑采集参数、激励参数和显示参数等;

图7 复合电磁检测软件界面

③ 参数设定完成后,单击“连接设备”按钮,等待状态栏显示“采集卡已连接”后,再单击“开始检测”按钮;

④ 检测完成后,按顺序单击“停止检测”和“断开连接”按钮,以完成整个检测流程。

3.1 软件的检测功能验证

为满足该电磁检测仪器的多种检测功能需求,该软件可以通过USB和TCP通信方式分别实现漏磁、电磁超声和导波3种不同信号的检测。选用Q235钢板作为检测对象,其尺寸参数为1530 mm×800 mm×20 mm,待检测的缺陷孔尺寸分别为Φ180×8 mm、Φ150×8 mm、Φ100×12 mm,如图8所示;电磁检测仪器如图9所示。电磁检测仪器通过平移运动对钢板进行扫查,检测路线如图8虚线所示。首先对钢板进行导波检测,确定缺陷位置后;然后切换成漏磁检测模式,判断缺陷的大小;最后切换成电磁超声检测模式,对钢板厚度进行检测,检测信号结果如图10所示。

图8 Q235钢板检测对象

图9 检测装置

图10 复合检测波形图绘制结果

图10(a)展示了测得的Φ180×8 mm缺陷孔的导波信号,缺陷信号比较明显。图10(b)展示了测得的3处缺陷孔的漏磁信号,漏磁信号幅值是通过先标定后取差值的方式计算得到的,根据幅值变化规律可进一步判断缺陷情况。图10(c)展示了3处缺陷孔的厚度值,厚度值是通过电磁超声信号的回波时差和传播速度计算得到的,另外观察各通道的检测结果可以发现,当电磁超声传感器检测靠近缺陷孔边缘时,由于边缘效应的影响,测厚波形会出现一定的波动。

试验结果表明,当电磁检测软件使用不同检测方法进行检测时,都能正常工作,说明该电磁检测软件具有可行性。

3.2 软件的实时性验证

软件的实时性反映了从数据传输过程到波形显示过程的延迟情况。当延迟越小时,用户对缺陷的定位越准确;反之,难以精准定位。

由于电磁超声和导波检测的采集频率远低于漏磁检测,因此为验证该电磁检测软件的实时性,统计了1000组漏磁检测过程中记录的数据包传输延时和信号波形图绘制时间,并对其进行分析,结果如表2所示。

表2 数据包传输延时和信号波形图绘制时间分析 单位:ms

试验结果表明,数据包传输的平均延时小于1 ms,信号波形图绘制的平均时间在16 ms左右,总延迟时间控制在17 ms以内,说明该电磁检测软件具有较好的实时性。

4 结束语

本文给出了一种适用于漏磁、电磁超声和导波集成的电磁检测仪器软件系统的可复用结构设计方法。首先在论述模块化思路的基础上,给出各功能模块的设计模型;然后采用软件总线结构实现模块间的数据通信,再使用调度控制器实现模块与总线的连接或卸载、切换检测模式或控制检测状态;最后基于MFC开发了电磁检测软件,实现了多种电磁检测功能。实际测试表明,用户在检测过程中可使用3种检测方式进行检测并实时观察信号波形图。提出的设计方法对提升电磁检测仪器软件系统的便捷性和缩短检测软件开发周期具有一定的意义。

猜你喜欢
数据包电磁仪器
《现代仪器与医疗》约稿函
《现代仪器与医疗》2022年征订回执
《现代仪器与医疗》约稿函
《现代仪器与医疗》2022年征订回执
呼吸机用电磁比例阀工作特性仿真研究
异步电机电磁振动研究综述
二维隐蔽时间信道构建的研究*
C#串口高效可靠的接收方案设计
网络数据包的抓取与识别