APP下载

基于LabVIEW的井用潜水电泵测试系统的设计与实现

2012-07-05杨光衣志强范志华钟文才苏成贵于新雨肖戟刘洋

关键词:电泵状态机潜水

杨光,衣志强,范志华,钟文才,苏成贵,于新雨,肖戟,刘洋

(吉林省农业机械研究院,长春 130022)

国内常用的井用潜水电泵的测试系统多在非图形化编程语言的基础上进行编程,近些年虚拟技术与通讯技术的快速成熟与发展,给测试工程师提供了更好的编程平台。

本文对图形化编程语言LabVIEW开发井用潜水电泵的测试系统,包括信号选择与处理、数据通讯、数据分析、曲线拟合、结果判定、报告输出等关键环节进行了设计与实现。

1 设计任务及要求

(1)设计控制系统界面,要求可对井泵进行计算机启动、停机、读数、自动互锁测电阻与启动功能。

(2)读取串口的水力性能参数:流量Q、扬程H。三相电机性能参数:电压U、电流I、功率P、转速n、频率f、三相电阻R。试验条件参数:水温T1及室温T2。

(3)软件编程实现以下功能:井用潜水电泵电气控制,井泵各数据及仪表图形化显示,数据表的形成与曲线的实时绘制,井泵各数据的保存、计算与输出。

2 技术路线及传感器布局方案

(1)技术路线的设计图,如图1所示。

(2)传感器类型的选择。传感器的大小决定了测量范围,本文以测试井用潜水电泵175QJ20-54为例选择的传感器,如表1所示。

表1 传感器选择Tab.1 Sensor selection

图1 技术路线设计Fig.1 Technical route design

3 软件设计方案

3.1 软件界面的设计

(1)在“菜单编辑器”中确定测试软件的菜单项目,编写各个子菜单中的子VI并进行调用程序,利用一个while主循环和事件(Event)结构组成主程序,通过菜单事件的调用相应的VI,执行相应的程序。如图2所示。

图2 井用潜水电泵菜单调用程序Fig.2 Well use of submersible pumps menu called program

(2)编写各个子VI程序面板

VI前面板是VI程序的用户操作界面,是VI程序的交互式输入和输出端口,通常使用输入控件和显示控件来创建前面板[1]。如图3所示。

图3 泵性能及电机负载试验面板Fig.3 Pump performance and motor load test panel

3.2 软件程序设计模式

井用潜水电泵的测试工作有4项:“采冷态温度、电阻”“泵性能及电机负载试验”“空载试验”“温升试验”。以“空载试验”为例介绍其程序结构,该结构采用LABVIEW中的队列状态机的结构模式。

队列状态机是把要执行的状态排队,然后把他们的状态名存在列队里,列队里的状态名与状态机的各个状态一一对应,用来控制状态的转换顺序。执行了的状态,其名称会从队列中删除,同时根据运行时状态的动作和碰到的时间,新的状态又会被添加到队列中[2]。

LabVIEW中的状态机由一个while主循环和一个case结构组成。While循环保证状态机的连续运行;case结构的分支与系统的状态(State)一一对应,即case结构的分支名称对应状态名称,分支里执行代码的功能对应着状态的行为(Action);而case结构的条件变量与系统的时间(Event)相对应,引发状态的变迁以及决定状态迁移的方向[2]。

出队列程序有“采电阻”、“显示”2个动作,当“启动”按钮按下时执行“启机”事件程序,同时输出“显示”队列,进入显示状态;当按下“停机”“退出”命令时执行相应事件程序,同时输出“空队列”;当按下“采电阻”命令时,首先读取仪表电压命令,判断是否退出强电,如退出方可输出“采电阻”队列。如没有任何操作则输出“空队列”,等待前面板“启动”、“停机”等事件按钮的变化,响应相应的事件程序。

3.3 后台程序的开发

(1)串口数据的接收

传感器的信号通过仪表进行显示的同时采用Modbus通信协议经过RS485接口与计算机的串口进行通讯,数据传输给PC机。在Modbus RTU模式下,每一个数据帧之间的间隔至少是3.5个字符位。

PC机发送可读写数字量寄存器的命令:[设备地址][命令][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8位][CRC校验的高8位]

通过VISA设置串口,向串口发出数据读取命令:[01][03][01][04][00][01][C4][37]

含义如下:

A、[01]:流量显示仪的地址。

B、[03]:读取寄存器的命令。

C、[01]:读取寄存器的高8位。

D、[04]:读取寄存器的低8位。

E、[00]:寄存器数据长度数高8位。

F、[01]:寄存器数据长度数低8位。换算成10进制数为1个数据量。

G、[C4][37]:CRC校验码。

(2)误码率的产生与解决

误码率的产生:误码率=传输中的误码/所传输的总码数100%。在利用串口进行通信时,误码要么是数据长短不对,要么是读表错误,为了避免此类问题的产生就要进行读表地址的判断以及数据长度的判断。

误码率的解决:误码本身是客观存在的,在无法进行消除的情况下,只能避免,以电量采集为例,电量读取的字节数应该是55字节,在判断数据是55字节无误后再截取其数据来源地址,并判断是否是该表的地址。“02”为电量表的地址。如果仪表地址也正确,那么就可以证明采集的数据是正确的,随后就可以截取字符串中的数据并对其进行处理。

(3)后台数据处理与分析

对采集后试验数据进行适当计算,最终得出判定结果。计算涵盖:电机性能与水利性能计算,按照标准“GB/T 12785潜水电泵 试验方法”,“GB/T 3216回转动力泵 水力性能验收与实验”,“GB/T 2818井用潜水异步电动机”中的公式运用Lab-VIEW中的计算模块搭建计算程序。

(4)曲线拟合及结果判定

以空载测试为例,在空载测试中的电流I0与功率P0数据测量有15组,在拟合过程中选用最小二乘法,多项式系数选择3,利用广义多项式进行程序拟合,将拟合前后的曲线利用数组捆绑表达在一个EXCEL图表中(见图4)。

图4 空载的曲线拟合程序Fig.4 Unloaded curve fitting program

表2 测量数据比对表Tab.2 Measurement data comparison table

4 试验数据及结论

该系统测量的关键数据与通过认证的水泵质检站的测量数据比对(见表2),其测量精度符合国家二级实验室的标准要求,数据的采集速度快,系统界面灵活直观。对井用潜水电泵系统的研发与试制过程中给图形化的测试工作提供了参考方向与案例。

[1]龙脉工作室,岂兴明,周建兴,等.LabVIEW8.2中文版入门与典型实例[M].北京人民邮电出版社,2008.

[2]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计(修订版)[M].西安;西安电子科技大学出版社.2003

[3]聂影,冯向军.基于LabVIEW的状态机模型研究[J].计算机测量与控制,2007(15):116-118.

猜你喜欢

电泵状态机潜水
潜水者
一种适用于大井斜的潜油电泵井单流阀
高温高压屏蔽式电泵螺栓计算优化分析
基于有限状态机的交会对接飞行任务规划方法
火电机组公用电泵系统介绍及逻辑设计
快乐潜水
潜水去
鲸鱼会得潜水病吗?
潜水电泵存在安全隐患
FPGA设计中状态机安全性研究