摘 要:本文采用C#、NI、Matlab多语言混合编程,开发了一种应用于管道内检测器的智能型人机交互软件。本软件基于面向过程思想,设计了不同工作模式,可良好服务于检测器自产品出厂测试、管道检测前自检测试、管道检测、检测数据读取与离线分析、产品定期质检维修等全寿命周期过程。软件前台遵循便捷、大众逻辑型界面设计原则,最大程度降低软件操作复杂度;后台采用自动化数据管理,每一步交互操作均具备自动记录日志功能,不同数据根据数据类型及操作时间自动分类,建立当天的数据管理架构并完成数据管理,所有数据均支持后续人工二次查询分析功能,具备很大的智能性,解放了生产力。另外以动态链接库方法内嵌Matlab算法,可自动分析读取数据,大大提高了软件工作效率,在工程中得到了成功应用。
关键词:管道检测;人机交互软件;智能型;自动化;工程应用
1 软件总体设计
1.1 前台界面设计
基于面向过程思想,便捷、大众逻辑型设计原则[1],软件界面主要设计了软件登录与软件主控管理两部分。登录界面如图1所示;主控界面左侧设计采样数据曲线动态显示功能,中间设计数据实时显示功能,右侧为人机交互操作功能,如图2所示。界面设计清晰,且符合大众常规操作逻辑。
1.2 后台程序设计
对应1.1小结软件界面设计,以及模块化设计原则,软件后台亦包含软件登录与软件主控管理两部分,程序总体架构如图3所示。
软件安装完毕,程序控制安装根目录下自动创建“User_Info/UserData.txt”用户管理文件,内含默认用户名及默认登录密码。启动软件,首先进入登录界面,输入以上用户名及密码,匹配成功后自动进入软件主控界面,提示软件启动成功。点击“开关”,系统首选进行通信自检,点击“设备停止”,可根据需求选择测试或工作模式,然后软件进行通信、数据解析、存储等。操作完毕,可进行U S B数据读取、回放、Matlab数据分析等[2]。
2 软件详细设计
2.1 端口自动识别
采用RS232人机接口。为提高软件智能性及工作效率,设计端口自动识别功能。即P C终端与检测器物理连接后,启动软件,自动读取C O M口并显示[3],工作人员直接点击“开关”对软件进行一键傻瓜式启动,如图4所示。
2.2 后台数据管理
图1 软件登录界面
图2 软件主控界面
图3 程序总体架构
图4 通信端口自动识别
采用树形层次型文件管理架构设计[4]。软件每次启动后,首先根据数据类型检索根目录下是否存在P C检测数据及US B数据文件夹,有则保持,无则建立;然后在文件夹内根据当天日期“年-月-日”建立子文件夹;其次在子文件夹内,整个检测器当天采样数据、日志操作等,均按照软件开关启动、关闭时间保存为“*.Dat”文件,便于数据管理及查询。如图5所示。
2.3 高可靠性通信
所有指令,均设计为“帧头-指令类型-指令内容-校验位”模式。所有指令通信均设计握手协议,即PC终端向下位机发送指令后,等待下位机回传握手指令,收到回传指令后判定通信成功,否则再次发送指令,连续发送3次指令若均无握手回传,则判断通信失败。
2.4 大数据处理
针对大数据快速通信,为提高软件数据处理能力,设计乒乓工作机制,如图6所示。
图5 后台数据管理
图6 大数据处理乒乓工作机制设计
图7 软件数据Matlab解析界面
开辟两个静态缓存,采样数据首先至串口缓存内,数据通信线程基于乒乓机制将n帧(n为整数,根据实际需求设计)采样数据乒乓交替放入缓存1、2;数据处理线程交替将数据从两个缓存内读出并处理。交替工作机制,提高线程并行工作能力,提高大处理处理实时性,同时亦保证数据完整性、可靠性。
2.5 多语言混合编程
NI搭建前台界面,C#搭建后台主程序,以.dll动态链接库模式内嵌Matlab算法,充分利用Matlab强大的数学处理工具,实现软件负责处理算法设计[5]。且交互类软件设计人员与Matlab算法设计人员可分工并行工作,提高工作效率。如图7所示。
图8 海底管道超声内检测器海试试验
3 软件工程应用
本软件已成功应用于中海油集团12英寸管道超声内检测器上,2017~2018年初进行了40余次内场环路试验,2018年4月在渤海油田海上平台间进行了9公里真实海管超声波内检测作业,软件及整机使用效果良好,如图8所示。
4 结语
基于面向过程思想,本文提出了一种应用于管道检测器的智能型人机交互软件设计,解决了检测器自出厂测试、管道检测前测试、管道检测、数据读取分析、产品周期质检等全生命周期需求,大大提高了工作效率,解放了生产力,间接产生了很大的经济效益,在工程中得到了成功应用。