杜文艳 马洁光
摘要:基于虚拟仪器技术设计并实现了一种两线制流量计出厂检测系统。该系统以PC机作为检测控制主单元,采用MODBUS通信协议控制检测装置同步采样标准和被检流量计输出的4~20mA电流信号;在LabWindows/CVI开发环境下开发了测试分析软件,实现了出厂检测数据的自动生成。该系统通过实际应用表明增强了产品出厂检验的可靠性,且操作简单快捷,提高了生产效率。
关键词:LabWindows/CVI;MODBUS;两线制流量计;出厂检测系统
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)15-0272-02
对于生产4~20mA两线制方式的流量计仪表厂商来说,在进行仪表标校和出厂检测时,必须通过同时读取标准和被检流量计的瞬时流量来完成。传统的标校和检测方法,一般采用人工测量输出电流或读取表头示数,再通过人工处理来完成。这不仅需要多名检测人员协同操作,且步骤烦琐,测量结果还须进行人工处理,不仅消耗了大量的人力物力,且人为影响了测量精度。
本文给出的采用虚拟仪器技术设计实现简易智能两线制流量计检测系统的方法,避免了检测过程中人为因素的影响。系统以PC机作为检测控制单元,通过采用MODBUS协议读取检测模块测试的两路流量计输出的4~20mA瞬时流速信号,经计算分析实现了对模拟流速信号的统计和分析,以及测试记录的记录和检测报告的自动生成功能。用户通过操作软件平台就可以快速完成所需的检测任务,并实现测量数据、检测报告的数字化、文档化,提高了工作效率。
1 系统概述
系统工作示意图如图1所示。检测时,流速测量装置与PC机采用MODBUS协议接收工作PC机的测量指令,执行测量任务,采集两路流速模拟量信号送回PC机。PC机再按检测要求对测量数据进行整理、分析、显示和电子检测报告的生成。
出厂检测系统软件基于Labwindows/CVI虚拟仪器软件开发平台进行开发,它是National Instruments公司推出的一种交互式C语言开发平台。LabWindows/CVI 将功能强大、使用灵活的C 语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C语言的功能,为熟悉C语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件开发环境。
2 流量计出厂检验系统软件
2.1 主要功能
软件主要功能包括:(1)采用MODBUS协议读取两路流量计的瞬时电流值(4~20mA);(2)对获取的测量数据进行分析处理得到被校表的精度等级;(3)实现了工作PC机与两路流量计瞬时流量的同步显示;(4)自动生成EXCEL形式的测试和出厂报告。软件的主界面如图2所示。
2.2 瞬时流量采集
2.2.1 數据传输协议
流量计出厂检测系统与流速信号测量装置的通信协议采用RTU形式的MODBUS协议,标准表的寄存器地址规定为00号地址,校验表的寄存器地址规定为02号地址,具体通讯格式如下:
上位机命令格式:地址 03 00 00 00 02 CRC低位 CRC高位(读标准表)
地址 03 00 02 00 02 CRC低位 CRC高位(读校验表)
下位机返回格式:地址 03 04 XX XX XX XX CRC低位 CRC高位
流速信号测量装置收到标准表采集请求信息后,即可采集标准表的电流输出,经内部标度变换程序将采样值转换为4~20的浮点数送回PC机;对校验表的数据采集与传递同上所述。
2.2.2 MODBUS通信协议软件实现
本系统,上位机与流速信号测量装置之间采用RS-485协议进行通信。LabWindows/CVI的标准函数库中RS-232的函数库提供了各种方式的串行通信控制函数和I/O函数。本系统程序与流速信号测量装置通信的主要函数有:
1)OpenComConfig (ComPort, "", 9600, 0, 8, 1, 512, 512);//打开串口,波特率为9600,无校验,8位数据位,1位停止位,最大输入和输出队列长度都为512;
2)InstallComCallback (ComPort, LWRS_RECEIVE,8, 0, ReceiveComData,(void *)0);//当接收缓冲区里面有8个数时开始启动ReceiveCOMData函数;
3)void ReceiveComData(int ComPort,int eventMask,void *callbackData); //串行数据接收函数。
2.2.3 数据标校点获取的实现
按照流量计校验规程要求,每个流量点的重复检定次数应不少于3次,每次检定时间应不小于30秒,检定点应包含流量计最小流量和最大流量在内的至少6个点,且均匀分布。本软件给出了采样间隔时间以及测试时间设定选择,这样可方便用户根据具体需要进行测试点数和测试点的检定次数的在线选择。
2.3 EXCEL校验表单生成和保存
流量计出厂检测系统主要是通过在线检测实现出厂报告单的自动生成,因此选用了EXCEL作为输出工具。微软EXCEL提供了一种方法为开发人员通过编程控制的ActiveX接口的所有功能。为了简化开发,Labwindows/CVI提供了一个EXCEL的库,简化了通过其自动化的ActiveX接口EXCEL的过程。
系统处理获取完各点校验数据后,保存校验数据按钮变为有效。当用户点击此按钮,系统通过调用ActiveX组件,实现对EXCEL文件的操作。本系统用到对EXCEL的主要操作有:
1)声明的与EXCEL操作有关的全局变量
static CAObjHandle applicationHandle = 0;//EXCEL应用程序对象句柄
static CAObjHandle workbookHandle = 0;//工作簿对象句柄
static CAObjHandle worksheetHandle = 0;//工作表对象句柄
2)启动EXCEL,并打开工作簿模板
status=ExcelRpt_ApplicationNew(0,&applicationHandle); //启用excel
if(status<0){MessagePopup("启动Excel错误!",""); break;}
GetProjectDir(ExcelFileName);
strcat(ExcelFileName,"\\模板.xls");//获取模板文件名称
ExcelRpt_WorkbookOpen(applicationHandle,ExcelFileName,&workbookHandle);//打开工作簿
ExcelRpt_GetWorksheetFromIndex(workbookHandle,1,&worksheetHandle);//打开表单
3)写入数据
由于系统向EXCEL写入的数据有浮点数、整型数和字符串信息,因此写入数据时应对不同的数据类型进行单独操作,下面给出了向EXCEL写入仪表名称的程序代码。
GetCtrlVal(panelHandle,PANEL_STR_Name, MeterName);//获取仪表名称
ExcelRpt_SetCellValue(worksheetHandle,"B4",ExRConst_dataString, MeterName);//仪表名称写入EXCEL
4)保存文件并退出应用程序
error = Excel_WorkbookSaveAs (workbookHandle, NULL, MyVariant,CA_DEFAULT_VAL, CA_DEFAULT_VAL,CA_DEFAULT_VAL,CA_DEFAULT_VAL,CA_DEFAULT_VAL, xcelConst_xlNoChange, #define CA_DEFAULT_VAL, CA_DEFAULT_VAL,
CA_DEFAULT_VAL, CA_DEFAULT_VAL);//保存当前校验信息
CA_DiscardObjHandle(worksheetHandle);//释放工作表句柄
ExcelRpt_WorkbookClose(workbookHandle,0);
CA_DiscardObjHandle(workbookHandle); //释放工作簿句柄
ExcelRpt_ApplicationQuit(applicationHandle);
CA_DiscardObjHandle(applicationHandle); //关闭excel
3 结束语
使用虚拟仪器LabWindows/CVI平台开发的两线制流量计出厂检测及报告自动生成系统具有开发周期短、成本低、操作方便、工作稳定性好等优点。设备在流量计生产厂家经过近半年的运行也證明了此系统的开发是成功的。
参考文献:
[1] GB/T 19022-2003.测量管理体系·测量过程和测量设备的要求[S].
[2] 张光,卢良.流量计在线自动标定的设计与实现[J].控制工程,2006, 13(9).:207~209.
[3] 王建新,杨世风,隋美丽.LabWindows/CVI测试技术及工程应用[M].北京:化学工业出版社,2006.
【通联编辑:梁书】