针对在工业污水监测过程当中,污水流量监测仪器所监测到的数据往往是通过各种模拟信号或简单的串口数字量来传输数据,但其传输距离较短、数据传输不稳定,无法扩展多个监测仪器等缺点。鉴于此,本文介绍了一种软硬件相结合的超声波流量计实时采集和系统,该系统很好的弥补了以上缺点,它具有传输距离远、运行稳定、容错性强、操作方便以及受环境影响小等特点,满足了工业污水监测要求。
在工业污水处理自动监测系统中,监测中心需要连续、实时地采集各种环境监测仪器的数据,以便子站或控制中心维护人员获得子监测点的各种环境 信息,用监测到的数据分析环境监测子站的运行状态以及执行情况。通过长期采集并储存的数据信息,可以分析并总结归纳出一个地方的水质信息和排污信息。
目前,用于水质在线监测污水流量一般采用硬件设备(如明渠流量计),或使用4-20mA直流电流模拟量或者简单的串口数字量来传输数据,这两种 传输方式都存在采集数据传输距离比较短、数据传输不稳定,无法扩展多个监测仪器等缺点。而且系统采用的硬件设备比较昂贵,维护相对困难,在水质监测潮湿和恶劣的环境下容易被腐蚀,造成仪器无法正常使用,严重的甚至使仪器彻底报废,影响整个监测系统的正常运行。
基于此,本文提出了一种软硬件相结合的数据采集和系统。相比于先前的监测系统,本监测系统不仅支持远距离数据传输,而且传输数据稳定、可靠,而且通过RS485总线可扩展多个超声波监测点。同时在终端机上也提供给了友好的人机界面,用户可以方便的和查询系统的运行情况。在潮湿和闷 热的水质监测环境下,本系统是比较可靠的一种数据采集和方式。
1硬件系统基本概况
如图1所示是系统的硬件结构图,硬件系统采用RS485总线结构来进行数据的采集和传输。图中测量仪器a为重庆兆易公司生产的RISENⅢ超声 波物位仪, 转换器 b 为 ATCATC-106无源RS-232转RS-485接口转换器,终端控制机是Arm7嵌入式计算机。硬件系统的主要功能是提供软件系统所需要的超声波换 能器的头部到水面的距离h,从而计算出污水流量。该硬件系统能提供了稳定可靠的数据源,且支持多节点采集数据,易于扩展采集接口设备,宽接入性能好,从而 节约了成本。
2系统软件设计
基于环境在线监测的实时性要求,我们采用源码对外开发可裁剪的ucos—II操作系统,并可根据实际需求对其裁剪和增加。使用ADS1.2编程 环境作为本系统的开发工具,采用64Mbs的Flash来存储流量数据。整个系统软件设计包括三个大部分:数据的采集和处理、流量数据的显示和存储以及人 机界面的设计。
2.1、流量数据的采集和处理
流量计的数据采集需根据超声波流量计的数据传输协议来进行编程制定。其传输协议采用了半双工异步方式,波特率为9600bps。每帧数据有20 个字节,每个字节有11位二进制。握手方式采用主机发送地址号(1~128)二进制源码(0x01)之后查询接收数据,也就是得到图1中所示的液面高度 h。从机以中断方式应答,每次发送20个字节的方式。而数据的储存则跟程序里面定义的结构体函数的关键字有关。
(1)采集数据频率分析:在本系统中采集间隔为10秒钟,数据入库频率分为10秒钟/次、10分钟/次、1小时/次、1天/次等几种。每10秒钟程序向探头采集1次数据,计算出的瞬时数据为) 那么这10秒钟的流量为10×N( ),这些瞬时数据通过内存来存储并一直累加到10分钟;每10分钟为一个间隔,那么这10分钟内共有10×6次采集,这些采集的10秒数据通过累加得到 10分钟值,得到的值进行入库;每小时达到后进行小时值计算,小时值的计算为各个10分钟累加值。每天(23:59:59)计算天值1次,天值为当日小时 值累加。每天(23:59:59)将天值加到累加值(Milage)中,Milage的初始值为0,累加的时间范围为流量计开始工作至流量计停止这段时 间。
(2)流量算法:在使用标准巴歇尔槽进行流量测量时,流经巴歇尔槽的水流量Q与水位高h及槽的尺寸b的关系可以用以下公式计算:
2.2流量数据存储
在本系统中,采用Flash存储,存储内容包括了以下内容:流量计槽型,槽号,槽高,瞬间值,累计流量;系统当前时间;定时上报时间;实时上报时间间隔;测量数据。数据根据时间顺序存储,30秒为1个记录。
如果某个仪器没有数据则其数据位为以符号“ -”表示。参数存储在EEPROM物理位置如下:系统初始化值:0x0000-0x0010;系统口令: 4Byte,0x0010-0x0017当前槽型: 1Byte 0x0018-0x001f;当前槽高: 8Byte 0x0020-0x0027当前瞬间值:10Byte 0x0028 -0x0037;累计流量:13Byte0x0038-0x0047在本系统中,当存储满3条时,系统会自定将所有数据从EEPROM(64K)中存入到 Flash(64M)中,进行数据备份,然后原区域用0x00清空。
采集流量的结构体函数如入下:
3系统初始化代码编写流程
在嵌人式系统中,启动时用于完成初始化操作的这段代码被称为Boot.1oader程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图。从而将系统的软硬件环境设定在一个合适的状态,以便为最终调用操作系统内核、运行用户应用程序准备好正确环境。本系统的Boot.1oader流程 图如图2所示。
3.1操作系统
uc/os-II在LPC2138上的移植在本系统中采用了Arm7嵌入式计算机LPC2138为主控芯片,芯片内部内置了宽范围的串行通信接口和512kB的Flash存储系统,提供了大规模的缓冲区和强大的处理功能,非常适合于嵌入式系统的开发和应用。
系统采用的操作系统为uc/os-II。uc/os-II是一种源码公开的实时嵌入式操作系统。它是一种占先式的实时内核,是基于优先级的,即 总是让就绪态中优先级最高的任务先运行,因此实时性比非占先式的内核要好。它包含了实时内核、任务管理、时间管理、任务间通信同步(信号量、邮箱、消息队 列)和内存管理等功能:它的绝大部分代码是用C语言编写的,可移植性强。 uc/os-II在LPC2138上的移植所采用的编译器为ARM ADS自带的C语言编译器。具体做法主要包括:声明10个与编译器相关的数据类型(包括堆栈的数据类型),用#de-fine设置一个常量 (OS_CPU.H),表明堆栈的增长方向;用C语言编写6个与操作系统相关的函数(OS_CPU_C.C);任务堆栈初始化函数;用汇编语言编写4个与 处理器相关的函数和5个钩子函数:
(1)OSStartHighRdy0,用于在调度中使最高优先级的任务处于就绪态并开始执行,uC/OS-II启动时使用OSStartHighRdy运行第一个任务;
(2)OSCtxSw0。完成任务级的上下定义切换;
(3)OSIntCtxSw0。完成中断级任务切换,其过程与OSCaSw0类似。只是在执行中断服务子程序后可能使更高优先级的任务处于就绪态,即中断退出时的入口;
(4)SoftwareInterrupt是软件中断,用于提供一些系统服务。
3.2容错机制(程序的健壮性)
3.1.1查询容错机制
查询时刻值和时段值必须按格式才能实现,如果格式输入错误将弹出错误对话框提示用户用正确的格式输入,输入的格式分别按(yyyy-mm-dd hh:mm:ss)时间格式输入;如果查询时没有该时刻或者该时段数据,系统将弹出数据库无该时刻或者该时段对话框;查询时段值时如果该时段的数据比较繁 多,无法正常显示时,将提示用户缩小范围进行查询。
3.2.2系统运行容错机制
系统将不断监测串口的运行情况,如发现串口出现异常现象,将在人机界面中显示出来。如果发现出现采集到异常数据,系统将弹出报警对话框(出现超 标数据!!! ),通知用户进行相应的排除故障的操作,并将出错信息入库。用户也可以通过查询出错信息的方式得知系统出错的原因以及时间等等。
4程序的人机界面设计
此部分主要完成人机对答,数据查询,定时发送和定时采集时间设定等功能。实现人机智能化操作的目的。其系统启动界面、运行界面、定时采样及实时 上报时间间隔设置界面如图3所示。在运行界面中,采集时间按照年月日分秒来计如,年是后两位,如图3所示中的081202142342表示08年12月2 日14点23分42秒。“ TFF”两位表示如下(从左至右):
是否登陆到中心 T(是)/F(否)
流量通信是否正常 T(是)/F(否)备用
备用 T(是)/F否)
本文提出了一种新型的软硬件相结合的超声波物位仪数据采集系统,说明了该系统的软件和硬件组成结构。分析了该系统的特点和组成结构,阐述了软件的实现过程以及软件的运行机制和运行情况等。本监测系统不但运行稳定、适应环境性强,而且界面友,容错机制强。
本文作者创新点:本文采用成本比较低廉的声波物位仪与源码对外免费开放的uc/os-II嵌入式系统相结 合,提出了一种新型的软硬件相结合的环境数据采集和系统,该系统容错机制强、扩展性能好、其外接监测设备的宽接入性能高,满足当前环境数据采集和监测系统的需求。