资源描述
更多免费论文请到海员论坛下载
基于ReWorks的嵌入式电力推进控制软件研发
摘 要:本文应用PC/104硬件平台和ReWorks国产嵌入式实时操作系统,通过对电力推进系统的推进状态进行研究,利用嵌入式实时操作系统的多任务特性和文件系统及其便捷的网络套接字,划分了不同的任务类型,研发了内河小型船舶电力推进控制软件,结合本地监控软件,提出了一种集操作、监控和现场参数实时配置与一体的船舶电力推进控制软件框架。通过采集配电板、电动机和齿轮箱的现场数据,控制软件完成了对推进变频器的控制。实船试验表明,本文所开发的控制软件满足电力推进船舶的实际需要,能够保证船舶电力推进的稳定运行。
关键词:船舶;电力推进系统;实时性;嵌入式控制器
The development of electric propulsion control software
based on ReWorks RTOS
Abstract: this thesis proposes a kind of ship electric propulsion controlling software frame integrated with operation、monitoring and configuration on the spot with local monitoring software, and develops a small magnitude inner ship electric propulsion software . By researching the propulsion status, this software divides different task type according to embedded RTOS multi-task characteristic、file system and convenient network Sockets in the PC/104 hardware platform running ReWorks indigenous embedded RTOS. Through sampling the data from switch board、motor and gear box, the ship electric propulsion controlling software issues commands to motor converter, and send the converter state to local monitoring software as well as receives the configuring instruction. Through test in real ship, ship electric propulsion controlling software developed by this thesis meets the function need of ship driving with high quality.
Key Words: Marine; electric propulsion; real-time; embedded controller;
1. 引言
船舶电力推进较传统的柴油机推进有较大的优越性,拥有良好的调速特性、响应特性,噪声低等特点,虽经能量二次转换,由于其负载的大小可以随时决定发电机组的容量大小,故缩小了与柴油机推进的运营经济性差距[1~2]。现在约有30%左右新建的客轮、渡轮与破冰船等采用了电力推进[3]。船舶电力推进是现代化船舶发展的必然趋势[4~5]。
国外船舶电子领域大量应用嵌入式系统始于上世纪90年代中后期。从开始对单一设备的控制(如分油机、锅炉等)到控制系统集成(如机舱自动化系统、综合桥楼系统等),短短十几年的发展已基本实现了船舶电子产品的升级换代。从上世纪90年至今,控制系统已基本从逻辑-模拟控制装备升级到了全数字电子控制控制装备。
长期以来船舶电力推进采用以可编程序控制器PLC为核心的控制系统,并发挥着重要的作用[6]。但是PLC厂商之间产品互不兼容,系统各模块间的交互方式、通信机制也各不相同,特别是某些高层协议的不公开,导致配置硬件环境的约束很大,这使得控制系统相对独立、彼此封闭。嵌入式平台一般都拥有通用的I/O口和底层总线接口,软件语言和硬件描述语言种类相对少而灵活性高,硬件搭配自由度更大。
实时操作系统对逻辑和时序有严格的要求。不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。因此,实时操作平台在船舶驾驶和监控上的应用越来越具有必要性。实时操作系统的任务调度包括轮换、抢占、挂起等特点将提高船舶航行的安全性和可靠性[7]。操纵系统本身带有高层的以太网通信协议和文件系统[8],可以使开发人员集中精力在系统功能和性能的设计上。嵌入式硬件加上实时操作系统可以更加灵活的完成系统任务。
2.选择RTOS应用于船舶电力推进控制
1) 提高软件运行效率。通用软件仅能运行单个任务,适时去响应外界中断,实时性差。ReWorks的强实时性保证了其任务运行的限制时间,保证了对数字模拟信号、通讯信道等待超时的退出,间接保证了关键任务的运行时间。实时操作系统的多任务特性使得不相干的任务可以独立运行,在任务优先级较低或者暂时无可用资源满足执行条件时,可主动让位于其他的任务。多任务的特性可有效的保障CPU高效运行,不会阻碍关键任务的运行,直接保证了关键任务的运行时间。
2) 相比于其他的实时操作系统如OSE、Nucleus等等,ReWorks兼容了VxWorks的大部分API函数,其BSP驱动配置简单,具备图形支持模块,具备方便的调试功能,加之其技术支持力量较强,经过引导和安装后,即可实现在X86平台上的应用。故选择ReWorks作为RTOS开发平台。
3. 嵌入式控制平台硬件架构
嵌入式控制平台由嵌入式CPU核心板、嵌入式模拟数字接口板、CAN总线接口卡等设备组成。
嵌入式CPU核心板采用基于PC/104总线的X86主板为控制器核心硬件平台,带有以太网通信端口,嵌入式控制平台通过以太网与本地监视控制器、自动电站管理控制器、远程监测控制器等进行数据交换。基于PC/104总线的CAN接口卡带有两个彼此独立的CAN口,支持CAN2.0A/2.0B总线协议,波特率根据需要调整为125K,CAN2.0A协议模式,实现了嵌入式控制平台对变频器的总线控制。CAN接口卡的两个接口,构成总线备份,保证了对变频器的可靠控制。此外扩展有多块模拟量输入输出的接口板,数字量输入输出的接口板,用于采集来自于配电板板、齿轮箱、电动机的各种数据,诸如按键开关信号、绕组温度、齿轮箱油压信号等等。嵌入式控制平台在电力推进系统中位置如图1所示。
图1 基于Reworks的嵌入式船舶电力推进系统图
用于异步推进电机交流调速的变频器可支持100KW以上的载荷。变频器支持端子I/O控制、CAN总线操作模式。由于该变频器内部自有异步电机的控制算法,仅需设置好电机的极对数、额定功率、额定电压等规格参数,进行给定控制即可。
4. 控制软件功能设计
嵌入式软件系统主要应实现的功能如下:
1)信号采集
控制软件需采集驾控台的变频器启动、停车等等数字量开关信号,并将相应完成的操作输出给指示灯进行反馈操作完成情况。同时在变频器运行期间,需将车钟给定的模拟量信号转化为转速命令下达给变频器,从变频器送回的状态信息中提取出电机电流信号等标准4~20mA信号输出给表头。故控制软件需对数字量模拟量的输入输出模块进行读写。
2)控制变频器
控制软件通过CAN总线控制变频器作为船舶电力推进电机的驱动装置。所选用的变频器本身采用了基于应用层的CANOPEN通信协议DS301和用于运动控制DS402通信协议,控制软件需根据协议规范的内容,发送推进电机的启动、转速限制、应急停车等命令,接收变频器的功率输出、输出电流、当前转速(变频器根据电机规格换算得出)等状态信息。
3)数据通信
通过工业以太网,控制软件需与本地监视控制器、远程监测控制器、自动电站管理控制器等进行数据交换。本地监视控制器实时更新变频器、电机、齿轮箱的运行状态数据、具备现场配置控制软件的功能。在本地监视控制器Delphi界面上变频器、电机、齿轮箱及电网信息等数据应以直观的显示。另外自动电站管理控制器、远程监测控制器通过从控制软件获得的船舶运行数据,分别用于PMS电站管理和远程监控。
4)工作与故障保护
控制软件应根据车钟转速控制信号和按键命令实现对于变频器的控制。对来自齿轮箱、推进电机、变频器的现场报警,根据故障等级应进行相应的声光报警和报故,并根据报警或故障的类型实现越控、限速、停机等相应措施。
故障的等级分为严重故障和一般故障,严重故障需要立即停机,一般故障在特殊工况下可进行越控。诸如电机绕组高温、齿轮箱滑油高温等定义为一般故障,在进出港、特殊水域等情况下可选择忽略其故障报警,进行不限速的操纵。一般情形下,为保障整个电力推进系统的安全,控制软件通过调整机舱风机冷却功率、电机强制冷却功率、对电动机限速等调节手段对电机工作状态进行切换。齿轮箱滑油低压、变频器故障一旦发生极可能对整个系统造成灾难性的后果,故定义为严重故障。对于变频器和推进电机运行中的严重故障,则立即停机,并发出声光报警,保护变频器和推进电机的运行安全。
5. 控制软件实现的主要手段
1)多任务并行
基于抢占式的多任务设计置变频器控制与仅次于主任务的高优先级运行等级,与本地监视控制器、自动电站管理系统、远程监测系统的Sockets通信任务又会以同样的较低优先级轮换执行。在Sockets通信任务获得返回数据前,又可堵塞不分配执行周期,保证了CPU运行的满负荷。同时,硬实时操作系统保证了每个任务的完成时间是一定的,即使Sockets通信任务未收到任何数据,那么超过了溢出时间,通信任务仍会正常发送下一数据包。因此控制软件的任务切换时间和任务的执行时间都是可以预期计算的,不会因为网络中断、数据错误而执行时间延长。
对于嵌入式控制系统来说,处理来自驾驶控制台的操作命令、采集电机、齿轮箱数据、控制变频器,读取变频器的运行状态信息是基本任务,优先级级别高于Sockets通信任务,而与本地监视控制器、自动电站管理系统、远程监测系统的通信在无通讯数据时处于堵塞状态。在与监视控制器、自动电站管理系统、远程监控系统通信中断时仍可保证船舶运行的正常。这样保证了CPU的执行效率和控制软件的正常运行。
2) Sockets通信
嵌入式操纵控制器在运行控制中,需要与本地监视控制器、远程监测控制器和自动电站管理控制计算机进行数据交换。对于船舶电力推进涉及设备的数据通信量,100M的网络带宽是足够的。控制软件采用支持TCP/IP协议的Sockets套接字TCP模式异步通信方式来实现数据采集与交换。
通过嵌入式控制控制器端ReWorks环境下建立客户端,在本地监视控制器、自动电站管理系统、远程监控系统内建立服务器端,在客户端不断尝试链接建立成功后,即可交换数据包。在发送数据包等待返回数据包的时候,若等待不到,任务就会堵塞。直到溢出时间达到,任务就会重新进行发起连接服务器端的过程,并发送新的数据。单个通信流程较简单,在连接、交换数据的保障环节上需着重考虑,保障通信中断、服务器未开情况下的通信链路恢复。
3) 文件读写
在控制软件编写和调试过程中,操作环境的多变性使得操纵控制也是多变的。因此,在进行软件设计时,控制参数将不能提前确定,确定后也需要根据实际情况进行修正。嵌入式操纵控制器软件采取了文件实时存储、实时读取的方式,保证了控制参数的有效性。当嵌入式操纵控制器上电时,会采用最新的配置文件进行初始化。譬如对于模拟采集数据的非线性化校正,那么采用配置文件中的区间分割曲线进行二次映射后即可实现对转速的合理调控。
Reworks具有与DOS兼容的文件建立和读写功能,在Reworks下,可以实现类似DOS下的文件读写操作。控制软件先在嵌入式CPU核心板板载的电子硬盘内建立TrueFFS硬盘仿真系统[9],然后建立dosFs文件系统后,即可通过I/O操作模式读写函数对文件进行读写。数据在文件内的存储按照事先定义的结构类型连续进行,在读出时,取出相应的字节到相应的结构类型中,即可进行数据的使用。
4)信号采集输出与CAN总线通信
模拟量接口板和数字量接口板为实时返回板卡,采用直接采集方式实现。除采集来自于车钟的模拟信号和按键命令,还要输出电机转速和电流信号到表头,输出状态信号到信号灯。
读写CAN总线信息与读写Sockets通信信息类似,均为异步信息。即控制软件无法准确预测采集数据的到来时刻,控制软件采用阻塞方式进行读取。当无最新数据到来时,采集任务可一直处于堵塞状态,而一旦有新的数据到达,则会唤起等待任务,进行数据采集。
CAN总线通信完成对变频器的输出频率、转速和力矩比例的控制,对变频器输出电流、力矩、电压、能量消耗、输出转速等的状态采集。
5)工作与故障保护逻辑
故障保护逻辑通过主任务判断不同的故障类型,对电力推进控制系统的状态进行切换。首先把故障进行区分,就本船来说,变频器故障、齿轮箱滑油低压为严重故障,齿轮箱滑油高温、电机绕组高温为一般故障,然后根据变频器端380V的电能状态和发电机数量,进行运行状态的切换。系统引导进入主任务后,对整个推进系统进行锁定,如果进行启动,则判定启动条件是否满足,如果车钟在零位且无380V电源故障和紧急停车按键按下,或者有一般故障报警但进行越控操作,则可允许启动,若按下启动按键进入待机状态。若车钟离开零位,在满足上述条件的情况下,进行变频器启动运行进入正车运行或者倒车运行。当运行中遇到一般故障时,进入正车限速或者倒车限速状态。如果一般故障进行越控操作,则进入正常的正车运行或者倒车运行阶段。若车钟归零,则在正常情况下进入待机运行状态。在以上所述的所有状态中,如遇严重故障,则进入严重故障状态,进行停机。然后进入初始闭锁状态。其工作与故障保护逻辑图如下图2所示。
图2 电力推进控制工作与故障保护逻辑图
6. 控制软件开发实现
根据Reworks实时操作的系统的特点和控制需要,控制软件设计采用多任务方式进行设计。控制软件加载成功后,主任务将创建多个任务,来实现Sockets通信和变频器CAN总线控制与数据读取。多个任务间的切换由Reworks操作系统自动实现。
控制软件引导成功后,立即运行一个称之为主任务的用户任务。主任务实现控制系统的初始化,并创建其它的任务。被创建的其它任务为与本地监视控制器的Sockets通信任务、与远程监测计算机的Sockets通信任务、与自动电站管理系统的Sockets通信任务以及变频器CAN总线控制与状态读取任务。由于Sockets通信和CAN总线通信均为异步通信,因此为它们创立单独的读写任务是必须的。这样既能保证网络信息和总线信息的最快读写,又能保证主任务循环的不间断执行。任务间的信息交换主要通过文件读写和ReWorks本身的任务间通信机制信号来实现。由于文件的共享存在资源的竞争,所以此处采用了互斥信号量予以保护。
当完成这些工作后,主任务进入无限循环状态,在每一循环中,主任务实时采集按键命令和车钟速度输入信号,并根据变频器CAN总线控制与状态读取任务得到的变频器状态,判断当前工作状态,再通过变频器CAN总线控制与状态读取任务控制变频器动作。控制软件的Sockets通信任务通过读取已存为文件的控制系统信息,通过Sockets通信方式与本地监视控制器、自动电站管理控制器、远程监测控制器系统交换数据。任务的优先级从高到低为主任务、变频器CAN总线控制与状态读取任务、与本地监视控制器、远程监测计算机、自动电站管理系统的Sockets通信任务,共三个优先级级别。
根据以上所述程序的特点,控制软件的任务分布见图3。
图3 Reworks任务分布图
7. 软件流程图
电力推进控制软件的执行过程分为三个类型:主任务、Sockets通信任务、变频器CAN总线控制与状态读取任务。主任务起于系统上电起动,正确引导程序后,发起其它两种类型的任务后,进行数据采集,并通过Sockets通信任务、变频器CAN总线控制与状态读取任务将状态信息和控制命令分别发至本地监视控制器、自动电站管理控制器、远程监测控制器和变频器。主任务实现流程和主任务发起的Sockets通信任务和变频器CAN总线控制与状态读取任务流程见图4。
图4 软件流程图
8. 结论
基于嵌入式系统的船舶操纵控制系统的研发过程经历了项目可行性分析、系统的方案设计、硬件平台的设计与搭建、软件的设计与开发、软硬件的实验室调试和实船安装调试等几个步骤。经实船检验,满足中国船级社(CCS)船用电子设备产品的检验要求。具备机控室/驾驶台切换操纵控制方式,可根据操作要求而选择;可用万向车钟操纵,左右舷双桨驾机一体化控制;推进电机加速速率控制;给定转速控制准确无误;在电站容量不够时,自动限制推进功率;推进电机及其舵桨回转过载报警。以上指标均满足。
控制器软件采用了模块化设计,可移植程度高,对于相似类型的系统建立提供了很好的参考。对于远程监测控制器的软件设计采用了类似的架构。
嵌入式操纵控制器软件运行稳定,驾控台操作响应及时准确,在航行试验和系泊试验中均取得了良好的控制效果。在整个船舶电力推进系统联调过程中,作为信息采集中枢的嵌入式操纵控制器为故障分析定位和解决提供了快捷的途径。
参考文献
[1] 郭国才 石艳 王屈平等 民船电力推进技术应用及发展方向[J]。 船电技术,2004(5):1~4
[2] 方萌 史涛 吴斐文等 电力推进系统技术分析与评价方法[J]。 船舶,2002(3):52~55
[3] 赖东林 刘志刚 林文立等 船舶综合电力推进与监控实验系统的设计与实现[J]。 船舶工程,2007(1):61~64
[4] 王敬贤 刘志刚 陈丹 基于工业以太网和组态软件的船舶电力推进监控系统的实现[J]。船舶,2005(6):31~34
[5] 杨晓丽,沈爱弟,俞宏生 现代交流调速技术在船舶电力推进中的应用。 大连海事大学学报[J] 2004(3):109~112
[6] 沈仪双 吊舱电力推进回转系统PLC控制研究[D] 大连海事大学硕士论文 2006:14~15
[7] VxWorks Programmer’s Guide [M/OL] WindRiver Corp. 1999
[8] VxWorks NetWork Programmer’s Guide [M/OL] WindRiver Corp. 1999
[9]王仁勇,俞建新 基于VxWorks 的TrueFFS 分析与实现自动化信息[J]。 2007(12):68~70
注:基金项目: 上海市科学技术委员会“世纪之光”清扫船(06dz15002)
作者简介: 申岳,男,山西晋城人,硕士,主要研究方向嵌入式系统、船舶电力推进系统,(E-mail)txjsy2008@
展开阅读全文