嵌入式油船排油监控系统的设计
2014-02-27白艳祥曾鸿牟鑫张均东
白艳祥,曾鸿,牟鑫,张均东
嵌入式油船排油监控系统的设计
白艳祥,曾鸿,牟鑫,张均东
(大连海事大学轮机工程学院,辽宁大连 116026)
以基于ARM Cortex™-M3内核的STM32F107VCT6微处理器为硬件平台,将µC/OS-II嵌入式实时操作系统移植到微处理器之上,搭建了系统软件开发平台,开发出排油监控系统控制器,集数据采集、GPS定位、分析计算、指令执行、数据存储、记录打印等功能于一体。给出了控制单元具体的软硬件实现方法,在.Net开发环境下利用Visual C#编程语言完成计算机监控软件的构建,实现了与控制单元的通信。在油船货油装卸模拟系统的运行结果表明,该排油监控系统可满足国际海事组织(IMO)关于油船排油监控系统的有关要求。
排油监控 嵌入式 STM32F107VCT6 µC/OS-II 监控软件 Visual C#
0 引言
随着全球石油海运量的增加以及油船吨位的加大,油船洗舱水、压载水等含油污水量必然会增加,加上各种技术与人为的因素,每年排入海洋中的含油污水也随之增多。《MARPOL 73/78防污公约》附则I第15(3)(a)条明确规定,150总吨及以上的油船应装有经主管机关批准的排油监控系统。国际海事组织(IMO)海上环境保护委员会第49届会议以MEPC.108(49)决议的方式通过了《修订的油船排油监控系统指南和技术条件》,根据该决议要求,我国于2009年发布GB/T12918-2009《油船排油监控系统技术条件》[1]。本文根据以上公约及标准设计一套嵌入式油船排油监控系统,并将打印驱动控制等模块集中于一体,使结构安装更加简单,能够满足标准及技术要求。
1 系统的总体设计及工作原理
图1为排油监控系统的结构框图[1]。取样探针装于排污管道上,系统工作时,取样泵按程序定时启动,从探头取样进入油份计,油份浓度以标准4-20 mA信号形式送入控制单元。流量计安装在排污管道上,将当前污水流量以4-20 mA信号形式传送给控制单元,以便和油份计一起计算累计排油量。船上自带的航速测量模块将船速以标准4-20 mA信号的形式传送给控制单元。公约要求不同海域的油污排放标准是不一样的,控制单元与GPS模块采用RS485通信方式获取当前船位信息,判断当前船舶所处的海域。控制阀主要包括排污管道上的循环阀和排海阀,执行排放控制命令。正常排放时,排海阀打开循环阀关闭,将含油污水排至舷外,相反,当油污不达标或总排量超标时,循环阀打开,排海阀关闭使含油污水回流至污水舱。此外控制阀还包括净水冲洗管路上的电磁阀控制冲洗水流通。
本系统包括一套实时监控软件,安装于货控室监控计算机上,可以在软件上进行系统的状态监视与相关遥控操作,与控制单元采用嵌入式以太网进行通信。
图1 排油监控系统结构图
2 嵌入式控制单元的软硬件设计
根据系统的需要,选用基于ARM Cortex™- M3内核的STM32F107VCT6微处理器为控制核心,该处理器自带512 KB高速Flash片内存储器,128位宽度的存储器接口和加速结构可以使32位代码能够在最大时钟速率下运行,同时在片内集成了SPI接口、I2C接口、实时时钟控制器、以太网、看门狗等非常丰富的片上功能模块,完全能够满足系统的要求[2]。图2为嵌入式控制单元的硬件构成。
2.1 硬件设计
1)电源电路
本模块采用直流24 V稳压电源供电,在系统中应用到模拟电源和模拟地。为了降低噪声和系统的电源出错几率,模拟电源与数字电源、模拟地与数字地应该进行隔离。本设计采用贴片磁珠将数字电源的高频噪声进行隔离。
图2 嵌入式控制单元硬件总体框图
2)开关量输出电路
由微处理器的6路GPIO经过光电隔离输出扩展6路继电器输出控制电路,由继电器控制取样泵、声光报警以及控制阀的驱动电路。
3)模拟量输入电路
本系统中油份浓度、船速以及流量信号均以4-20 mA的形式传送给微处理器,而STM32F107内嵌的AD转换器只能识别电压信号,其工作电压是+3.3 V。需要对电流信号进行调理,使其转换为在AD测量范围内的电压信号。详细电路图如图3。
图3 模拟量输入电路
4)GPS通信模块
微处理器通过MAX485电平转换芯片与GPS通信获取当前的船位信息,实现不同区域按不同标准排放。
5)监控数据存储单元
根据GB/T12918-20095的要求,船舶排油监控系统的控制部分能将系统运行过程中的一些重要参数、排放开始时间、排放终止时间、报警开始与结束时间以及一些手动操作命令等以电子的方式存储起来。本文选用新一代记忆设备SD卡,具有高记忆容量、数据传输率快速、移动灵活性以及很好的安全性等优点。
6)监控数据打印记录单元
根据GB/T12918-20095的要求,船舶排油监控系统的控制部分的记录装置应包括一个可电子格式化的打印机,记录的参数应在打印纸上清晰显示,一旦从记录装置中取下也能保持原样,并应至少保存3年。在排油监控系统监测期间,每隔10 min打印机自动打印记录时间和日期、船速、船舶经度和纬度、流量、瞬间排放率、油份浓度、排油总量等信息数据。系统发生报警或故障等情况时也会自动打印记录相关数据。
本设计中采用周立功公司的ZYTP80微打控制芯片和爱普生M-T532微打机芯[3]。将打印机硬件及软件驱动集成到控制单元板卡上。ZYTP80芯片内嵌热敏打印机驱动电路和驱动控制程序,集成度较高,便于工程师开发应用。微打控制芯片通过控制线和电源线驱动热敏微打机芯。主控CPU端通过UART发送相应的指令控制ZYTP80系列微打控制芯片完成打印记录工作。详细电路图如图4所示。
图4 打印记录模块电路
如图4所示端子J1和J2用来连接爱普生M-T532微打机芯和ZYTP80微打控制芯片,电路中有POWER电源指示灯,OFFLINE指示灯和ERROR指示灯,端子座P2外接ON/OFFLINE和FEED两个按键。OFFLINE指示灯为黄色,当亮起时说明打印机为在线状态,可以通过微处理器发送指令工作;当闪烁时,说明打印机为离线状态,此时不能接受任何指令。打印机的离线状态和在线状态可以通过ON/OFFLINE按键来切换。ERROR指示灯为红色,是错误指示灯,当打印机正常工作时,此灯不亮,当打印机发生错误,或者打印机中缺纸,都会由此灯闪烁提醒。FEED按键用来进纸,如果先按住FEED按键再上电,则会打印一段测试数据。
ZYTP80微打控制芯片的RXD和TXD两个引脚与微处理器的串口引脚连接,完成打印控制命令的传送。
7)时钟模块
船舶排油监控系统需要显示、记录并能存储的监控状态参数应包括含油污水排放的时间,日期等。STM32F107VCT6处理器内部带有RTC实时时钟,精度高,正常运行时使用系统的3.3 V电源,而在系统断电时则由备份电池供电保证时间信息持续不丢失。
8)以太网通信模块
以太网通信模块完成控制单元与货控室监控计算机的通信。STM32F107内部集成高性能的以太网模块,只需外部连接以太网物理层(PHY)芯片即可,本设计选用高性价比的DM9161A作为以太网PHY芯片,然后连接标准RJ45接口便可以完成10M/100M自适应以太网的物理连接。
9)人机接口
CPU通过ZLG7290芯片来管理键盘,用于参数设置。ZLG7290能够管理多达64只按键,自动消除抖动,其中有8只可以作为功能键使用,与微控制器之间采用I2C串行通信,使硬件电路更加简单,布线方便。
显示单元采用大连佳显公司的EDM4004A液晶显示屏,用于清晰的显示时间日期、油份浓度、排污流量、船速、排油总量、瞬间排放率、报警信号、控制阀开关状态等主要信息。
根据以上所述设计出嵌入式排油监控系统的监控面板如图5所示。
图5 监控面板
2.2 软件的设计
本文通过用C和汇编语言改写一些与处理器相关的代码(µC/OS-II在读写处理器寄存器时只能通过汇编语言来实现)[4],将µC/OS-II嵌入式实时操作系统成功移植在STM32上,搭建了嵌入式应用开发平台。
程序设计过程中首先设计出微处理器与键盘、液晶显示、打印机等各个外部设备连接的驱动程序,提供给应用程序API接口函数,其次设计出串口和以太网中断服务程序分别实现与GPS模块和监控机的通信。
由于µC/OS-II是实时多任务操作系统这就决定了系统的软件和以往设计的前后台系统软件有很大的区别。CPU对大多数事件的处理都是放在任务中来完成的,而各个任务都是由相对应的信号量激活的。本系统将控制程序规划成模拟量采集、数据分析与计算、开关量输入输出以及报警信号的输入输四个主要任务,任务的调度是由任务调度器函数OSSched( )完成的。
控制软件是根据MEPC.107(49)决议、MEPC.108(49)决议及GB/T12918-20095《油船排油监控系统技术条件》的新要求进行设计的。开发原理为:系统工作时将油份浓度信号、船速信号及流量信号等模拟量信号送入微处理器进行计算分析,式(1)、(2)分别为瞬时排放率和排油总量的计算公式[5],将计算出油量瞬间排放率和排放总量与规定值进行比较,从而决定是否打开舷外排放阀进行排放,当油量的瞬间排放率不超过30 L/n mile,油份浓度未超过15 mg/L,排油总量小于上次载油量(T)的1/30000(新油船)或1/50000(现有油船)时,由微处理器发出打开舷外排放阀的指令,进行正常排放;反之当不符合公约要求的排放标准时关闭舷外排放阀,停止排放,并发出声光报警。整个过程,各种数据及泵阀的状态都会动态地在LCD液晶屏上进行显示,通过键盘可以进行报警值的预设、查询记录、打印及时间与日期的设置等功能。
式中,为瞬时排放率(L/n mile);为油份浓度(mg/L);为含油污水排出量(m³/h);为船舶航行速度(n mile/h)。
图6为排油监控系统软件运行流程图[6]。系统上电后首先启动自检程序,然后对微处理器自身、外部模块等进行初始化,如果初始化失败,系统会发出报警信号,需进行人工复位,初始化完毕后,显示进入初始页面,需对时间日期、排油总量、油份浓度报警值等参数进行赋初值设置,设置完毕后就进入含油污水排放监控主页。
3 计算机监控软件的开发
排油监控系统货控室计算机监控软件是在Visual Studio.Net 2010集成开发环境下运用Visual C#编程语言构建开发的[7]。
运行界面如图7所示,界面友好生动,主要包括数据动态显示区域、操作控制区域和系统动态显示部分。货控室计算机通过以太网与监控单元进行实时的数据传输,用户能够从界面上获得船速、油品种类、瞬时排放率、泵阀状态、含油污水PPM值等系统信息。另外,用户可以操作界面上的模拟开关、按钮对整个系统的启停等进行控制以及对系统参数进行设置。人机界面会实时刷新系统中各参数的变化,系统管路图上都会有相应的污水流动等动态指示,实时的反映出整个排油监控系统的动态运行情况。
图6 软件运行流程图
图7 监控软件运行界面
4 运行总结
本设计已成功应用在大连海事大学轮机自动化实验室开发的油船货油装卸系统模拟器上,实际运行性能良好。控制单元能够准确的采集、分析、计算各传感器传送来的数据并给出相应的指令,能够完全符合公约及相关规定的要求。控制单元采用嵌入式设计思想,实时性更高,性能更加稳定,扩展性好。同时本文运用Visual C#编程语言设计一套实时监控软件,通过以太网能够与控制单元实时通信,操作起来更加集中、直观。
[1] 王芳, 战智涛, 马庆锋, 倪秀辉. 一种船舶排油监控系统的设计[J]. 山东科学, 2008(04): 76-78.
[2] ST.STM32F107XX [Z]. Datasheet, 2009.
[3] Guangzhou ZLGMCU Development Co., Ltd. ZYTP80- CUxxC [Z]. Datasheet, 2011.
[4] 任哲等编著. 嵌入式实时操作系统µC/OS-II原理及应用(第2版). 北京航天航空大学出版社, 2009.
[5] 周飞云, 赵友涛, 刘彦呈, 张巧芬. 新型船舶排油监控系统设计与实现[J]. 机电设备, 2011(01): 50-53.
[6] 沈浩生, 曾鸿, 张均东等. 油船排油监控系统模拟试验台的设计与实现[J]. 大连海事大学学报, 2013(04): 71-74.
[7] Shi Fenghua, Li Xufeng. Visualization modeling of mine roadway based on visual C#. 2008 International Symposium on Information Science and Engineering[R]. 2008, 2(1) : 669- 673.
Design of Embedded Tanker Oil Discharge Monitoring System
Bai Yanxiang, Zeng Hong, Mu Xin, Zhang Jundong
(Marine Engineering College of Dalian Maritime University, Dalian 116026, Liaoning, China)
U664.9
A
1003-4862(2014)08-0057-05
2014-03-11
白艳祥(1989-),男,硕士研究生。研究方向:轮机自动化与智能化。