涡轮流量计实时监测系统的研究与设计
发布日期:2018-01-10
 针对蒸汽流量计高精度采集器,设计相应的远程监测软件,以实现远程后台自动监测流量的目的。系统将采集到的数据进行分析、处理,从而实现实时监测流体流速的功能,数据的传输通过RS485总线,将基于STC12C2052单片机设计的采集器传送来的数据传到后台上位机上,在上位机通过C#写的监测程序进行高精度较准确的实时监测待测流体流速,具有一定的实用性和创新性。 
1 引言
    在工农业生产和科学研究试验中,要用流量计对输送管道流体进行流量检测。流量计分类广泛,其中,涡轮流量计由于其测量精度高、稳定性好、对流量变化反应迅速,抗干扰能力强等特点被广泛运用于测量精度要求高、流量变化快的场合,其输出信号为正弦脉冲波信号,便于远传及与PC机相连,这样在PC机上的用户界面上便于数据采集及处理和分析。本文所研究的涡轮流量计实时监测系统,通过对涡轮流量计输出电信号转换成相同频率的方波,对其脉宽进行测量,将采集的数据进行修正后现场液晶显示,同时通过RS485串行通讯方式向上位机发送数据,由上位机的监测程序可以实时监测涡轮流量计测得的流速。
2 系统设计思想
    涡轮流量计的输出是与流速成正比的类正弦波信号,通过信号调理电路对此信号进行滤波、放大、整形处理,输入单片机采集信号的频率,通过频率计算涡轮流量计此刻测得的流速,将流速数据显示在液晶屏上,同时单片机发出数据,通过RS485总线传输到控制机房中的上位机处,上位机的监测程序实时监测涡轮流量计测得流速.
2.1 流速的处理
    对于流速的处理,一种方法是将涡轮流量计输出正弦波进行信号调理放大整形成方波,输入单片机进行计数,然后通过单位时间内的脉冲数计算流速。
    这种方法被广泛应用于当前的涡轮流量计中,本系统原本的思想是测量半个波长的脉宽,以此来计算出一个波长,从而通过公式算出频率,不过信号调理电路转换出来的波形下脉冲要比上脉冲略宽(见图2),目前是通过测量方波一个周期的宽度,来计算当前的频率,这使得数据相对于计数来平均计算更实时,更高效。
2.2 通信协议
    在低速、短距离、无干扰的场合可以采用普通的双绞线,反之,在高速、长线传输时,则必须采用阻抗匹配(一般为120Ω)的RS485专用电缆。本系统由于现场环境复杂,干扰较强,下位机采用RS485串口通信。PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的Rs485电路:(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。(2)通过PCI多串口卡,可以直接选用输出信号为RS485类型的扩展卡。本系统与上位机进行通信,是采用第一种方法,即通过RS-232、RS-485转换模块连接到上位机的串口上。
    通信协议是进行串口通讯的基础,为了使下位机传给上位机的数据能被上位机准确识别并且进行运算,本设计针对系统的实际应用情况,制定了特定的通信协议,下位机传输两个数据,一个是定时器测量的脉宽数据,还有一个是测量时间的数据,通过上传这两种数据,便于上位机实时分析测试数据。。
3 系统硬件设计
3.1 下位机硬件框架图
  硬件框架图,涡轮流量计输出信号进入信号调理模块,经过处理送入单片机P3.2口,经过单片机处理后,显示在显示模块上,通过设置按键,可以设置涡轮流量计的仪表系数K值,显示当前流速和累积流量,数据传输模块主要是MAX485,
3.2 STC12CZO52单片机简介
    本系统下位机采用宏晶科技的STC12CZo52单片机,STC12CZO52是宏晶科技推出的STC12系列增强型8051单片机,速度比普通的8051快12倍,具有较宽的操作电压范围。其片上集成:256字节的RAM;15个通用可编程1/0口,可以设置成准双向口/弱上拉、推挽/强上拉、仅为输入/高阻、开漏(复位后为准双向口/弱上拉模式)4种模式;EEpROM功能;2个16位定时器/计数器;独立的片内看门狗定时器;全双工异步串行口(L!ART)兼容普通的8051串口;指令兼容C8051,执行的时间效率大幅提升。
    单片机接口如图4。其中,RXD、TxD、CS端连接MAX485作为数据传输模块,XTAL1、XTAL2连接一个11.0592MHZ的时钟晶振,为单片机提供外部时钟。OUT端是信号调理后的方波输入端。
3.3 信号调理模块
   分体式电磁流量计信号调理电路主要任务,是将涡轮流量计传感器部分传送过来的信号输入,通过LM324四运放集成电路调理整形放大,输出为0-3V的方波,方便单片机处理。
4 系统软件设计
4.1 下位机(单片机程序设计)
  下位机程序采用汇编语言编写,测量语句尽量精简,以减少指令执行周期造成的误差,用TO做计数器,记录一个周期的脉冲宽度,T1做波特率发生器。
  STC12C2052系列是1T的8051单片机,为了兼容传统8051,定时器0和定时器1复位后是传统8051的速度,即12分频,这是为了兼容传统8051。但也可不进行12分频,实现真正的1T。可以通过设置一个特殊寄存器来提高单片机的速度。
    T0x12:设置为0时,定时器0是传统8051速度,12分频;设置为1时,定时器0的速度是传统8051的12倍,不分频。
    T1x12:设置为O时,定时器1是传统8051速度,12分频;设置为1时,定时器1的速度是传统8051的12倍,不分频。
    串口UART用定时器1做波特率发生器时,UART的速度由T1的溢出率决定。
    由上可知,将T0x12和T1x12都设置为1,即可实现采集时间的速度比传统8051系列单片机快12倍,系统使用的外部时钟晶振频率为11.0592MHz,由此可算出最小计时单位为0.09uS,这使得采集时间比同种涡轮流量计显示仪表的设计更精确。并且串口通讯速度也比传统8051系列单片机速度快。
4.2 上位机程序设计
    上位机软件采用C浮语言进行编写。软件的主要功能如下:对端口的参数(如端口设置、波特率、数据位、奇偶校验等)进行设置;通过设置“数据显示”按钮或者“曲线显示”按钮,对下位机传输上来的测量数据进行提取计算,将计算出的涡轮流量计输出的信号频率动态的数据显示或者曲线显示在RichTextBox控件中;可以保存数据为excel格式,便于将采集到的数据进行比对分析;当显示数据控件中的数据过多,可以点击“清除窗口”按钮进行控件清零。由于不同的涡轮流量计参数K值的不同,本软件只是显示频率,而流速则根据输入K值来计算。
4.2.1 上位机与下位机的通讯程序
    由于下位机传输的数据最终是RS485转RS232串口传到上位机上,在C#中要接收串口通信,需要在Form窗体中添加SerialPort控件,程序所用到该控件的属性和方法如表3。
表3 SerialPort串口通信控件的主要属性与方法
    打开串口和关闭串口用的是一个Buton按钮,写打开/关闭串口程序中,用到一个互锁,即一开始判断串口是否打开正(comm.Isopen),如果当前串口是打开的,则关闭串口,如果当前串口是关闭的,则打开串口,并设置相应的配置,即程序窗体上的端口设置部分,将设置的相应数据存到相应属性中。最后用一句判断串口是否打开的语句来显示按钮的Text属性:
    “Buton2.Text=comm..IsOpen?”“停止接收?”:“接收数据”;
4.2.2 数据处理
    数据处理部分是该软件的重点部分,下位机传送上来的数据正是通过此进行处理,并显示在RichTextBox中。数据处理是在serialPort控件中的DataReceived属性进行,首先在窗体初始化Private void form 1-Load (object sender.EventArgs e)中,写上代码:
    Comm.DataReceiVed+=DataReceived;添加事件注册,即打开串口后,接收到数据进入缓冲区,此事件就会自动触发,进行数据处理。
    数据处理详细过程:先声明一个临时数组buf来保存当前来的串口数据,用serialPort.Read(buf,0,n)将缓冲数据保存在buf数组中。然后进行一系列判断,首先判断数据是否接收完整,接着判断数据的帧头是否为FF,06(前面有介绍传输数据的格式),当数据接收完整后,提取数据部分,也就是第3字节到第8字节一共6个字节的数据,将提取的数据分别进行处理,处理代码如下:
    其中,data1为频率,data2为采集间隔时间。处理好数据后,就可以将数据动态显示出来了。下面是将数据显示在文本框中的代码,运用Invoke线程:
4.2.3 数据的保存
    显示控件中的数据保存需要在Form窗体中添加saveFileDialog控件。首先将saveFileDialog控件的Filter属性设置为TxT文档(*.txt)|*.txt|Excel文件(*.xls)|*.xls,这样保存的文件类型可以选择为txt文本文档或是excel表格文档,可以根据需要设置为其他类型的文件。然后再窗体中添加button控件,控件的Click时间添加处理程序button6_Click,程序代码如下:
    5 结论
    本系统由于是运用在工厂,天然气流量计对抗干扰要求比较高,在研究期间一直不断改善硬件的抗干扰性及稳定性,并且对程序的不断修改优化,不断减少冗余语句以提高测量的精度,通过实验室测试以及工厂的现场测试可以得出本系统测量范围在0.66Hz-7000Hz之间,而涡轮流量计输出频率最高不会超过6000Hz,故系统满足要求。下位机程序中定时器运用溢出中断方式比循环等待方式测量得出数据精度高1%-2%。现在稳定的程序的精度普遍在0007%-0.1%之间
    本系统利用STC12CZO52系列单片机的不分频设置,提高了计时速率和串口通讯的速率,实现了对涡轮流量计测量流速的实时监测,并且能够方便分析数据,以进一步研究更为精确的测量方式,在技术不断更新的今天,本系统有继续研究下去的意义。
 
为3.2% 。

文章信息归属于西安气液涡轮流量计厂所有:http://www.shelok.net/wolun/view-52-1.html 转载请注明出处
网页聊天
live chat