邮箱:service@homkom.com
手机:15359322692
电话:400-0592-364
地址:厦门市海沧区过坂北里208号
发布时间:2017-05-03 10:01 人气:
摘 要:在简介HKE多电极电磁流量计结构和测量原理的基础上,给出了监控系统的总体结构框图。重点讨论HKE多电极电磁流量计与上位机的数据传输问题,采用VC++6.0的通信控件MSComm,通过485接口实现了PIC16F877单片机与计算机的串行数据传输,最终实现了计算机对以PIC单片机为核心的HKE多电极电磁流量计的远距离控制和数据传输。
关键字:HKE多电极电磁流量计 数据传输 远程监控
0 引言
由于流速在管道截面上分布的非轴对称性,使得采用单电极对测量模式的传统电磁流量计会产生很大的测量误差[1]。Shercliff[1]首先对单对点电极电磁流量计进行了较系统的分析,并提出了权重函数估计法,指出由于权重函数分布得不均匀导致传统单对电极电磁流量计对流型的敏感性。Engl[2]采用均匀磁场,通过对传感器壁上感应电势积分获得了在任意流型下平均流速的数学表达式,可用于非轴对称管流平均流速的精确测量。Homer[3]等人1996年在Engl公式的基础上,提出了以层析成像理论为基础的HKE多电极电磁流量计测量平均流速的方法。实验结果表明,HKE多电极电磁流量计可得到精确的平均流速估计。作者所属的天津大学流量测量实验室,应用层析成像的检测理论,提出了一种采用可旋转均匀磁场做激励,多对电极检出感应信息的测量方法[4]。
由于智能终端的管理、运算功能较差,因此有时需要将检测与控制的参数送到计算机中,利用计算机运算速度快的特点,对数据进行实时处理。利用单片机构成智能化的前端模块,从而实现检测仪表与计算机接口的灵活配置是现代仪器仪表设计的重要趋势之一。在计算机与外部硬件设备通信应用开发中,串行通信因其接口方式简单,而且通信一方的微机本身就配有两个以上的串行异步通信接口,用户可以在不增加任何外设的情况下,就可与其它计算机、外设之间进行数据通信,所以它在数据采集、工业控制、监控等领域应用得非常普遍。RS-485是一种多发送器的电路标准,其接口采用一对平衡差分信号线,对噪声免疫,允许双导线上一个发送器驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器。由于RS-485比RS-232传输信号距离长、速度快,而且可带多个负载设备,因此在各种智能化仪器仪表中起着重要的作用。
PIC系列8位微控制器具有运行速度快,工作电压低,功耗低,输入输出驱动能力强(可直接驱动LED),体积小,价格低,指令简单、易学易用等优点。它还集成了一系列具有独特功能的外围专用电路,如振荡器、复位电路、监视定时器电路等。PIC微控制器已广泛应用于家电控制、通信、工业控制、智能仪器仪表、金融电子等许多领域。
本设计采用RS-485标准,选用PIC16F877,由计算机在Windows环境下形成上位机监控系统,完成计算机与PIC远距离控制和数据传输,从而实现计算机对HKE多电极电磁流量计的远程通信。
1 系统的总体结构和功能
HKE多电极电磁流量计由一个多电极系统和一个可旋转的准匀强磁场构成,采用旋转磁场,多角度进行检测。每一检测角度下采用与之相垂直的直径及弦上的电极,电极对同时检测出电压信号,利用传感器融合技术,并结合流体流动模型得到流体流量的最优估计。
旋转磁场由X轴、Y轴两个方向的两组激励线圈产生,通过改变X方向和Y方向激励电流幅值,可形成不同激励方向下的平行激励磁场。为避免交流磁场的正交电磁干扰,消除由分布电容引起的工频干扰,抑制交流磁场在管壁和流体内部引起的电涡流,排除直流励磁的极化现象,采用实际生产中较为广泛应用的三值方波励磁,如图1所示。
如图2所示为16电极HKE多电极电磁流量计示意图。这些电极呈等角间距分布,对三值方波激励方式来说,可有8个磁场方向,而在每一个磁场方向上都有7对电极与磁场方向垂直,1对电极与磁场方向平行。
HKE多电极电磁流量计的信号检测系统所要完成的任务,就是在某一激励磁场角度下,选定流体公共地电位,然后依次选通同一条弦上的两个电极,将电势信号分别取出,信号通过放大滤波等处理后,送到PIC的A/D端口,单片机进行数据采集,并与计算机进行串行通信传输数据。
HKE多电极电磁流量计控制器的总体结构如图3所示
由PIC实现HKE多电极电磁流量计的多向激励、多对电极检测的底层电路控制、数据采集,并将采集的数据送至上位机。上位机控制PIC的运行和停止,并将接收的数据进行处理并显示。HKE多电极电磁流量计监控系统的关键在于解决计算机与PIC的实时通信问题。
2 通信功能
由PC控制PIC的运行与停止,PIC在接到上位机的开始命令后,进行数据采集,并在系统采集到规定数量的数据后,将这些数据存放在内存连续单元的发送缓冲器区,依次传送给上位机;PIC在接到上位机的停止命令后,在上一次数据采集和发送完成后,停止动作。
计算机的串行口采用的是RS-232标准,若采用RS-485标准必须进行电平转换,本设计使用232-485转换器完成从RS-232到RS-485的电平转换。
由于单片机芯片发出的串行数据为TTL电平,同时也只能接收TTL电平,在采用RS-485标准时,也必须进行电平转换。本设计中使用MAX485,它是用于RS-485通信的半双工低功率收发器件,包含一个驱动器和一个接收器。
使用一个半双工连接的难点就是控制每个驱动器在什么时候被启用,或者处于激活状态。当一个驱动器在传输的时候,必须直到它完成传输都保持被启用状态,然后在一个应答节点开始响应之前切换到禁用状态。MAX485的控制端RE和DE短接,这样用一个信号可以控制两种状态——接收和发送。RE和DE为“1”时,发送端接通,数据经DI脚后,变成传送的信号送到传输线。RE和DE为“0”时传输线上的信号经MAX485,当处于发送状态时,数据信号经发送端DI,在输出端A和B上交替出现高电平;当处于接收状态时,A和B上交替的高电平信号经MAX485转换成高低电平信号经RO输出。在传输过程中,交替的高电平保证通信传输回路中始终有电流,能实现可靠通信。
硬件接口电路连线图如图4所示。
2.1 通信软件编制
2.1.1 上位机侧的软件编制
在Windows环境下,微机完全接管了各种硬件资源,不允许用户直接控制串行口的中断管理。因此,如何在Windows环境下开发微机的底层资源,已成为当今工业控制软件的一大热点及难点[5]。本设计利用VC++的MSComm控件进行计算机串口的通信管理。
在Windows环境下,实现串行通信一般有三种方法:汇编嵌入技术、MSComm控件、API函数。综合考虑三种软件的优缺点,选择在VC++6.0开发环境中选择MSComm控件实现串行通信。
创建一个基于基本对话框的应用程序框架OWEN,在对话框上添加MSComm控件,在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_Comport),通过该对象便可以对串口属性进行设置[5]。
串口初始化程序:
m_Comport. SetCommPort(1);//选定用串口1
If(!m_Comport. GetPortOpen()) //如果串口1关闭,将其打开
m_Comport SetPortOpen(true);
m_Comport.SetInputMode(1);//设置从接收缓冲区读取数据的格式为二进制格式
m_Comport.SetSettings(“9600,n,8,1”);//设置串口通信参数为波特率9600bit/s,无奇偶校验,8个数据位,1个停止位
m_Comport. SetRThreshold(1);//每当接收缓冲区有大于一个字符时则激发一个OnComm()事件
m_Comport.SetInputLen(0); 每次读取一个字符
m_Comport.GetInput();//预先清空接收缓冲区
由于本设计中上下位机间的连接采用的是半双工方式,在上位机点击开始命令后,要求下位机把采集到的大量数据传来,为防止整个线路被下位机的传送工作占用而使停止命令无法传到下位机,采用对下位机进行周期性中断的措施,由上位机先接收后重发命令不断控制下位机的动作。设置一个CString型的全局变量m_send来代表开始和停止的不同标志。而在开始按钮响应函数中发送它的初始值(如“K”),而在停止按钮响应函数中给m_send赋另外的值表示停止即可在半双工的条件下顺利完成上下位机间的信息交流。
上位机软件编制步骤:
① 创建一个基于对话框的应用程序OWEN;
② 插入串口控件MSComm;
③ 编辑主对话框;
④ 在COWENDlg.h头文件中添加自定义公有变量、函数和宏定义指令;
⑤ 在COWENDlg类的OnInitDialog()函数中加入初始化代码;
⑥ 为“START”按钮添加消息响应函数void COWENDlg::OnStart(),为“STOP”按钮添加消息响应函数void COWENDlg::OnStop();
⑦ 为其他控件添加消息响应函数;
⑧ 为MSComm控件添加OnComm事件响应函数void COWENDlg::OnOnCommMSComml(),在其中添加接收数据、调用数据还原、数据转换和数据处理算法函数代码。
⑨ 为OnComm事件响应函数中调用的数据还原、数据转换和数据处理算法函数添加代码
2.1.2 PIC侧的通信程序设计
设计中要实现PIC与上位机通过RS-485接口进行通信,所以PIC的串行通信接口SCI被设置成与RS-485接口进行通信的半双工异步系统。在异步方式下,串行通信接口采用标准的不归零(NRZ)格式,1位起始位、8位数据位和1位停止位[6]。下位机中断服务程序如图5所示,发送子程序如图6所示。
2.2 通信结果
采用本文设计的通信方案,在HKE多电极电磁流量计的实际应用中,通信稳定可靠,对一定数量的控制要求(开始、停止命令)和数据传送进行实验,在有效时间内数据准确到位,无误传,从而验证了该通信系统的可靠性。
3 结束语
本设计利用VC++6.0下的ActiveX控件MSComm实现了Windows环境下PC机与PIC的串行通信,从而实现PC对HKE多电极电磁流量计的远距离控制和数据传输,适用于环境恶劣的工业现场,达到了工业运用中开发Windows工控软件的实际要求。该方案实现简单、通信可靠、可移植性强。由于RS-485可带多个负载设备,只要对程序稍作修改即可实现1台PC监控多台HKE多电极电磁流量计,实现HKE多电极电磁流量计的分布式集散控制系统,有着广阔的应用前景。
相关推荐