流量计系列产品
 
 

液体涡轮流量计基于C8051与Modbus的设计

发布时间:2017-11-21 09:07:10
 

摘要:详细介绍了一种基于C8051F020单片机与Modbus协议的液体涡轮流量计的硬件、软件设计,并给出了在柴油标准装置上的检定结果。检定结果证明,该设计是可行的,不仅大大提高了流量脉冲采集与脉冲输出的精度与可靠性,也能满足Modbus协议通信的要求。
涡轮流量计精度高、重复性好、测量范围广、结构紧凑,但测量信号分布不均匀,所以常规的脉冲式涡轮流量计对脉冲信号的测量精度不高,从而脉冲输出的精度都不尽如人意,误差较大。而利用C8051F020单片机设计的智能型涡轮流量计,不但保证了较高的脉冲测量与脉冲输出精度,而且满足Modbus协议通信要求。
1、硬件设计
脉冲式流量计仪表表头的设计难点之一就在于脉冲计数要求准确,同时,还要快速地在有限时间内均匀输出脉冲。难点之二就是流量计仪表表头Modbus通讯信号的稳定性和可靠性问题。要解决这两个问题,首先,在脉冲流量计数准确的情况下提高CPU的运行速度,有效利用CPU的资源提高软件的运行效率。CPU选用C8051f020,它具有高速流水线结构的8051兼容的CIP-51内核(可达25MIPS),在同等条件C8051f020的运行速度比C51的运行速度快20倍;而且,C8051F020有可同时使用的SMBus(I2CTM兼容)、SPITM及PCA、两个UART串口,这样一来,可以大大减少软件开销,提高了CPU的工作效率。其次是,采用磁耦数字隔离器,Modbus通讯的稳定性、可靠性和抗干扰能力能得到保证。C8051F020还内含可编程增益、可编程转换速率的12位快速A/D,还有64K字节Flash存储器,4352(4K+256)字节RAM,可编程的16位计数器/定时器阵列,有5个捕捉/比较模块,片内JTAG调试和边界扫描,片内资源丰富。C8051f020的工作电压范围为2.7~3.6V,多种节电和停机模式,系统功耗低。
涡轮流量计主要包括核心控制器件C8051F020、流量脉冲信号采集模块、电源供电与4~20mA输出模块、RS485接口模块、脉冲输出模块、累计流量存储模块、显示与键盘处理模块。总体硬件设计框图如图1。

1.1流量脉冲信号采集
液体流过涡轮流量传感器,产生脉冲信号,经过信号调理电路的放大整形后,送到单片机的计数器T0口。T0设置为脉冲下降沿计数方式,对流量脉冲信号计数。用16位定时器T3设定查询周期,每一个查询周期到就响应中断,在T3中断内取出T0的计数值,从而计算出瞬时流量、单次累计流量和总累计流量。
1.2电源供电与4~20mA输出模块
LOOP+和LOOP-是用户外接24V直流电源输入的两个端口,同时也是4~20mA电流环路的两个端口。AD421是单片高性能数模转换器,主要由电压调整器、数模转换器和电流放大器组成。电压调整器由运放、带隙基准和外接FET调整管组成。AD421由4~20mA环路主电源供电,为自己和其他器件提供3.0V供电电压。数模转换器采用Σ-DAC结构,将16位数字码转换为4~20mA模拟电流。从C8051F020输入DAC的数字码是通过三线接口实现的,分别是时钟线CLOCK、数据线DATA和锁存线LATCH。电路图如图2所示。

1.3 RS485接口模块
在RS485通讯总线中,由于实际应用现场的环境十分复杂,往往存在着高电压、大电流的危害,所以隔离是十分必要的。RS485接口的隔离由电源隔离与信号隔离两部分组成。传统的光电隔离RS485方案采用DC/DC电源+485通信芯片+信号光耦隔离的模式,整个模块复杂,功耗也较大。现采用DC/DC电源+磁耦数字隔离器ADuM2483的方案,则简便得多,电路图如图3。ADuM2483采用了iCoupler技术,是ADI公司推出的新型的基于芯片尺寸的变压器。它不仅是一款高性能的增强型RS485收发器,而且还率先集成了磁耦隔离,相当于替代了一个增强型RS485收发器和三个6N137光耦隔离,从而实现了光电隔离器无法比拟的性能优势。ADuM2483一端由AD421供电3V,另一端由DC/DC模块供电5V,并且信号线上并联接上TVS管,以防止雷击时对通信接口的破坏。

1.4脉冲输出模块
脉冲输出模块主要由高速光耦隔离器、稳压管等构成,脉冲输出是采用控制 P1.4口的高低电平翻转来实现。考虑到仪表安全性,流量计的脉冲输出模块均需要隔离保护。选用功耗低的高速CMOS信号隔离器,一端由AD421的输出电压供电,另一端由用户供电。由于用户通常提供DC12V或DC24V电源,所以采用稳压管Z1稳压5V给光耦另一端供电,如图4。其中VW+、VW-为用户提供的外接电源输入端,Q1、Q2为三极管。脉冲输出时,当P1.4为高电平,POUT为高电平,Q1导通,Q2截至,节点PLUSEO输出高电平;当P1.4为低平,POUT为低电平,Q1截至,Q2导通,节点PLUSEO输出低电平。电路图如图4。

1.5累计流量存储
为了存储累计流量、各个流量段的流量系数、脉冲输出当量系数和流量量程等重要数据,外扩了一个铁电存储器FM24CL16。FM24CL16的工作方式是I2C总线,与C8051F020单片机硬件上SMBus兼容。
1.6显示与键盘处理模块
显示采用SMS2411液晶,用于显示总累积流量、单次累积流量、液体温度和瞬时流量。显示模块还用于在键盘设置时的各项提示。键盘采用4按键直接与单片机的P3口连接,采用查询方式。键盘设置主要用于各个流量段的流量系数、脉冲输出当量、流量量程的设置与查看。
2、软件设计
采用Keil uVision3作为测量系统软件的开发平台,采用C语言编程。单片机上电后,先执行初始化并开中断,等待上位机Modbus帧到达,读取铁电存储器的数据,如果有按键,则执行键盘操作;如果没有按键,则定时刷新总累积流量、瞬时流量、单次累计流量、温度的显示。定时查询流量值、脉冲输出和Modbus串口通信都由中断触发。脉冲输出时I/O口电平的翻转与延迟由PCA定时器软件定时来实现。
Modbus通信协议使用RTU模式传输,命令的请求和响应数据帧为统一格式,共分四个部分,格式如下:第一部分是表示从站地址(1个字节);第二部分是功能码(1个字节),使用的读操作功能码为03和写读操作功能码为16;第三部分是数据域(N个字节),读、写操作在DATA数据域略有不同;第四部分是CRC校验(2个字节)。
Modbus通信协议采用问答式,即上位机(主机)向下位机发出命令,下位机(从机)回答。主机消息到来时,通过触发串口中断来接收和发送数据。主循环程序还包括检测温度并送LCD显示的子程序模块,4~20mA电流输出子程序模块,累计流量写铁电子程序模块等。系统主函数流程图如图5,脉冲采集、脉冲输出流程图如图6。

3、检定结果
根据涡轮流量传感器的工作特性曲线,采用分段补偿修正仪表系数的方法,用累计流量计算示值误差,在基于标准法柴油标准装置上进行了检定测试。以LW-81为例,检定实验数据如表l所示。

测试结果表明,累积流量基本误差限为±0.2%,重复性小于0.06%,对脉冲测量与脉冲输出都具有较高的精度和可靠性。
4、结论与创新点
结论:本文介绍了一种基于C8051F020与Modbus的涡轮流量计的设计方法,对各模块硬件电路图和软件流程做了详细分析,并给出了在柴油标准装置上的检定结果。创新点:
1、采用资源丰富的C8051F020为核心控制器件,大大提高了液体流量测量与脉冲输出的精度和可靠性;
2、采用DC/DC电源+磁耦数字隔离器的设计方案,增强了Modbus协议通信的稳定性和可靠性。
项目效益:如果公司每年销售400台,每台流量计按1.5万元计算,则每年销售额为600万元。