长治学院学士学位论文
2 方案论证
2.1硬件方案
2.1.1 硬件方案1
硬件方案1的系统主要由现场仪表和储油罐实时监测与计量的管理主机或服务器等组。系统主机和现场仪表之间通过RS-485总线连接,储油罐实时监测和采集液位的核心是两个压力传感器。
整个系统的工作流程大致如下:压力传感器从储油罐终端采集到数据,经单片机处理(A/D转换)后显示到现场端的数码管上,同时通过串口传输给上位机,实现远端监测,连入计算机,计算机显示并保存上传的液位数据,并可以通过管理软件对数据来进行后续处理。
2.1.2 硬件方案2
硬件方案2是光用单片机设计一个液位监控系统。其硬件的组成是:单片机,A/D转换部分,液位显示部分,将采集到的数据经过单片机处理,显示到数码管上,管理人员可以定时查看各个储油罐的信息。
2.1.3 两种硬件方案论证
结合两种硬件方案,采用的硬件结构有所不同,方案2用单片机作为硬件系统,显然电路复杂,可靠性较低,而且无法向上位机发送数据,实现远端监测。再者系统调试比较困难,无形中延长了开发周期,而且系统的稳定性不高。
本设计最终选择方案1,因为它相对于方案2来说,系统结构较为简单,结构高度模块化,低功耗电路设计,全数字总线接口,通信协议开放,网络扩展能力强,抗干扰能力强,所利用的液位测量技术成熟,可靠性高。
2. 2 软件方案
使用储油罐计量监测管理系统,能够实时采集和处理储油罐中所储油品的各项数据,通过软件显示并打印油品的储量、温度及相关的各项数据,使管理人员了解各个油罐的情况。
通过对储油罐实时监测与计量管理设计目标的论证,确定上位机主要实现以下功能:
(1)系统参数的修改 (2)储油罐实时监测与计量
2.2.1 软件开发工具论证 i. 下位机端:
方案一:使用汇编语言为单片机编写程序。特点是执行效率高。
方案二:使用keil软件,用C语言为单片机编写程序。特点是易读性强,可维护性高,开发简单,代码量低。
ii. 上位机端:
方案一: 使用Delphi作为开发工具,Delphi是著名的Borland公司开发的可视化软件开发工具。Delphi的优点是:不能隐式定义、结构严格、方便快捷、运行速度快、使用方便、可读性高等。缺点是结构过于严谨,对编程水平要求颇高。
方案二: 使用Qt设计计量管理系统。
优点是Qt提供了强大的可视化编程能力。编程语言是C++,是面向对象的语言,功能强大。Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
2.2.2 方案比较 i. 下位机端:
显然,用C语言开发下位机程序有可读性强、易于编程、代码量低的优点,而且可以降低开发难度与开发周期。
ii.上位机端:
Qt是面向对象语言,易于扩展,允许组件编程,对日后软件的维护,功能的扩充提供了极大的方便,而且是一款完全开源免费的软件。所以我们选用Qt作为本系统的上位机开发软件。
3 系统设计之下位机部分
3.1 液面测量模块
液面测量模块功能是测量液位的高度,并计算出液位高度比。大致的实现方法是由两个压力传感器获取到两个压力模拟量,经A/D转换后以I2C数据形式发送到单片机中,单片机经过一定的算数运算后得到当前液位与满载液位的高度比。其中涉及到的内容有I2C总线驱动,A/D转换,数学建模等内容。具体实现方法在下文中分模块详细介绍。
(1) 数学模型部分
利用压差法计算储油罐液面高度,可以消除密度对计算的影响。如图3.1所示,其中P1,P2是底端和上端的压力值。成品油是一种混合物,各种规格的成品油密度不一致。甚至同厂生产的不同批次的成品油密度差别也很大,所以利用压差法不必事先去测定各种油的密度。这样适应性就更广阔。无论是常压容器还是受压容器,只要被测量的溶液为均匀液体即容器中液体处处密度相等,均可采差压法来测量液位。压差法的计算的思路是:
压差比 = 液面高度比
图3.1 储油罐数学模型
两个传感器之间的相对高度h0是事先设定且固定的,也就是说底端的压力值P1减去上端的压力值P2,就是这段液位的压差。
长治学院学士学位论文
同理,底端压力值P1减去顶端的压力值,就是当前液位h(顶端与底端)的压差。由液体压力计算公式P=ρgH 可知,液体在某一位置的压力与深度H有关.液面最顶端的深度是0,故液面最顶端的压力值也是0。由此可以推出当前液位的压力差也就是底端的压力值。
P1?ρgh
(1)
P2?ρg(h-h0) (2)
联立(1),(2)式,可以消除ρ,g.并可以得到当前液位h的计算公式:
h?P1P1-P2h0
(3)
压力不是基准量,而是力和面积的导出量,故测量压力的方法很多,在本系统中我们要测量液体的压力,所以选择液体式压力计。液体式压力计又可以分为U型管压力计、单管压力计、倾斜微压计和自动液柱压力计等,不管采用哪种压力传感器,在测量压力时两个传感器必须要用相同规格的,这样测量的的数据在计算时才有意义。
无论是常压储油罐还是受压储油罐,底部是承压最大的区域,监测储油罐的压力值时,就应该以底部作为监测部位。将底端压力值P1经过物理量化就可以得到这个值。
需要说的一点,P1 和P2是两个模拟压力量,经8位的A/D转化器转换后得到的数字值。8位A/D转换器的数值取值空间是0 ~ 255,也就是说它只能将一个模拟量分割成256份,这个量化数值对于高达几十米的大型储油罐无法做到精确的统计,这就需要提升A/D转换器的精确度,比如用16位的转换器,但原理都是一致的。在本系统中就采用的是8位的转换器。
根据式(3)计算当前液位高度h时,用到的压力值都是比值关系,所以无须计算出确切的物理压力量来。两传感器之间的距离h0我们设置1000mm,这个值的大小可以根据两个传感器的实际距离,在程序中手动更改。这样就可以轻松的计算出当前液位高度h了。再将当前液位高度除以储油罐满载时的高度hmax,就可以得到当前储油量与满载时的百分比。
我们就将两个压力值利用串口发送给上位机,让PC或32位的ARM嵌入式设备去计算,将结果输出到软件界面的相应位置。
但是在下位机端,单片机计算乘除运算比较吃力,而且精确度相当差。所以上述的
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库储油罐实时监测系统的设计与实现 - 图文(2)在线全文阅读。
相关推荐: