高 超,陳 輝,陳智君,雷本鑫,楊 誠
(1.武漢理工大學 能源與動力工程學院,湖北 武漢 430063;2.武漢理工大學 湖北 武漢 430063)
基于 μC/OS-Ⅲ 的船舶主機監控系統設計
高 超1,陳 輝2,陳智君2,雷本鑫1,楊 誠1
(1.武漢理工大學 能源與動力工程學院,湖北 武漢 430063;2.武漢理工大學 湖北 武漢 430063)
為提高船舶主機監控系統軟件的可移植性以及可靠性和硬件采集電路的故障診斷能力及其采集精度,可以采用 μC/OS-Ⅲ 操作系統作為軟件開發平臺提高軟件可移植性以及可靠性,而對于溫度、壓力、轉速及開關量的硬件電路均設計了斷線故障診斷功能而且采用了多重濾波提高采集信號的精度。系統通信是基于 CCP 協議的CAN 通信,其功能豐富可靠性高。此系統已成功應用于樣機中并取得了穩定可靠的數據采集和控制效果。
柴油機監控系統;μC/OS-Ⅲ;硬件電路;CCP
船舶柴油機是船舶的動力源,其一旦故障將會使船舶失去動力,如果在惡劣海況下極易造成翻船,帶來巨大的損失。而且人工監測可靠性和實時性都很差,所以柴油機監控系統是船舶不可或缺的設備。船舶監控系統的出現可以追溯到 20 世紀 60 年代,日本和丹麥將集中式電子監控系統首先應用于船舶。如今,在硬件上隨著電子技術的快速發展,可靠性更高、性能更好的硬件芯片不斷推出。在軟件上提高軟件可移植性和保障軟件安全穩定運行的各類實時操作系統也不斷推出和更新。加上市場對柴油機監控系統的要求也不斷提高,對船舶柴油機監控系統進行軟件和硬件升級具有很大的必要性。
目前,國外船舶柴油機監控系統研發設計的大型國際化公司Norcontrol,Lyngs? Marine A/S,Kongsberg Maritime,MAN B & W 等,都推出了成熟的商業化產品,技術一直處于領先的地位[1]。在國內,船舶柴油機監控系統起步較晚,功能簡單且可靠性較低,大都是定制化產品,可移植性差不利于商業化。而且大部分系統基于裸機開發,這樣的系統軟件可靠性差且不利于軟件的移植和后續開發。μC/OS-Ⅲ 是 Micrium 在2011 年推出的第 3 代強實時性微內核,具有強實時性、硬件要求低和功能完善的特點。基于此,本文對基于μC/OS-Ⅲ 的船舶柴油機監控系統的硬件和 軟件進行了設計以提高船舶柴油機監控系統的可靠性。
監控系統在結構上可以分為:集中式船舶監控系統和分散式船舶監控系統 2 種類型[2]。其中集中式是把所有數據采集、邏輯控制、顯示和人機交互都由 1 臺工控機完成,此設計雖然結構簡單但可靠性較差。因為工控機任務較多一旦出現故障整個系統癱瘓。對于分散式是將采集、控制、安保和顯示人機交互都分配給不同的 CPU 處理,并且其供電也分開,然后通過現場總線將它們組織起來形成一個系統。此類系統雖然結構復雜但分散了風險,提高了系統的可靠性。本系統將從分散式的角度進行設計。此設計中將整個模塊劃分為監測單元 MU(Monitoring Unit)、邏輯控制單元LCU(Logical Control Unit)、主機安全保護單元ESU(Engine Safety Unit)和負責數據存儲和人機交互的工控機 4 個分立的單元,組成每個單元都有各自的CPU 處理器和電源。此系統總體設計框圖如圖 1 所示。
1) 信號采集模塊 MU1 和 MU2
信號采集模塊主要負責柴油機的狀態參數信號采集、狀態異常報警以及數據上傳到集控室。集控室中會有報警燈以及蜂鳴器對報警進行警示。報警類型主要有狀態參數越界報警、通信故障報警和硬件故障報警等。
2) 安全保護單元 ESU
這一模塊的主要功能是對柴油機重要參數報警后發出停車信號。這些參數主要包含柴油機轉速、潤滑油壓力油霧探測器報警信號和冷卻水溫度和來自采集單元的重要監測參數報警信號等。
3) 邏輯控制單元 LCU
這一模塊主要負責柴油控制的邏輯判斷。主要邏輯包括啟動連鎖邏輯、啟動成功邏輯、停車邏輯以及一些報警信號判斷。其中集控臺發出的控制信號都由此單元處理比如復位、消音、加速、減速和控制權轉換等。
2.1 采用操作系統的優勢
1)提高系統可靠性。μC/OS-Ⅲ 已獲得 3 項標準認證 DO-178B Level E up to Level A,IEC 61508 Safety Integrity Level 1 up to Level3 和 ISO 62304 Class A up to Class C [FDA 510(k)]。
2)可以提高 CPU 的利用率。比如 μC/OS Ⅲ提供的延時函數 OSTimeDlyHMSM()和OSTimeDly()在提供精確延時的同時還進行了任務切換,也就是說在延時期間 CPU 去執行其他任務。
3)降低功耗。比如 μC/OS-Ⅲ 在沒有任務執行時會運行空閑任務,用戶可以使用空閑任務的鉤子函數OSIdleTaskHook()讓 CPU 運行在低功耗狀態。
4)任務操作更加靈活。比如 μC/OS-Ⅲ 為任務提供了 5 種狀態(睡眠態、等待態、就需態、運行態和中斷服務態)并且提供了大量 API 函數供用戶使用比如任務的掛起函數 OSTaskSuspend()與解掛函數 OSTaskResume()、時間片輪轉調度函數 OSSched-RoundRobinCfg()等。
5)工程擴展更方便。只需添加不同的應用函數即可,而且工程在不同平臺上的移植更方便。官方提供了很多標準擴展比如 GUI、TCP/IP 等。
6)縮短工程開發周期。在操作系統模式下一個工程可以分解成若干子工程同時開發最后由集成到操作系統中[3]。
2.2 實時操作系統(RTOS)的比較
對于 RTOS 種類繁多,比較知名的有美國WindRiver 公司的 VxWorks,微軟公司的 Windows CE,Linux,Micrium 公司的 μC/OS 系列,FreeRTOS,eCos 等。VxWorks 具有可裁剪微內核結構、高效的任務管理、靈活的任務間通信、微秒級的中斷處理、支持多種物理介質及標準的完整的 TCP/IP 網絡協議。但價格昂貴且不開源,一般應用于軍事航空領域。Windows CE 是非開源、實時性一般且價格較高的操作系統。Linux 的版本較多,其中應用較多的是 μClinux,其最大特點在于針對無 MMU 處理器設計,可以利用功能強大的 Linux 資源,因此適合開發對實時性要求不高的小容量、低成本的各類產品,特別適用于開發與網絡應用密切相關的嵌入式設備或者 PDA 設備。μC/OS 是一個結構簡單、功能完備和實時性很強的開源的嵌入式操作系統,適合于廣大嵌入式系統開發人員和愛好者入門學習,以及高校教學和科研。RreeRTOS 是一個完全免費結構簡單開源的操作系統,但其擴展性和可靠性不如 μC/OS。eCos 最大特點是配置靈活,而且是面向深度嵌入式應用的,很適合用于一些商業級或工業級對成本敏感的領域。
綜上所述,本系統采用 μC/OS 系列中的最新版本μC/OS-Ⅲ,它具有向上兼容性。μC/OS-Ⅲ較之前版本的改進如下[3]:
1) 任務數目不受限制(μC/OS-Ⅱ最大數目為255)。
2) 支持同優先級下的時間片輪轉調度。這就使同優先級的任務數不止一個(μC/OS-Ⅱ是不支持的)。
3) 無需調度的發送機制(μC/OS-Ⅱ不支持)[4]。
本系統采用的 CPU 為 STM32F207ZG 單片機,內核為 Cortex-M3,經調試該單片機可以很流暢地運行μC/OS-Ⅲ,為后續嵌入式軟件開發提供了良好的軟件平臺。[5]
對于大型船舶柴油機的監控需要測量的狀態參數主要有燃油溫度和壓力、滑油溫度和壓力、冷卻水溫度壓力和水位、進排氣溫度、連桿軸承和主軸承溫度、曲柄箱油霧濃度、盤車機狀態、主機和增壓器轉速等。需要的輸出的有指示燈的控制、按鈕狀態識別、轉速表控制、啟動空氣的控制等[6]。上下位機之間也需要通信裝置。除了排氣溫度較高的溫度峰值,其他溫度峰值均小于 200 ℃低溫為常溫,所以使用PT100 就可以滿足其測量要求(常用 PT100 量程為-50 ℃~450 ℃),而且其線性度較好精度高。對于排溫一般采用熱電偶測量。壓力可采用壓力變送器,轉換成 4~20 mA 電流測量。轉速采集采用磁敏電阻傳感器,將轉速轉換成脈沖信號進行采集。剩下的是開關量信號的采集。壓力和熱電偶采集電路較為簡單,主要是進行一定的硬件濾波(可采用一般的 RC 濾波電路)、信號放大和隔離。下面主要對 PT100、帶斷線檢測的數字量采集和頻率量采集電路進行介紹。
3.1 PT100 電路設計
為提高精度 PT100 電路設計采用三線制以去除線電阻的影響。具體的設計框圖如圖 2 所示。
因為測點較多,為節省 IO 口資源可使用多路開關進行掃描式采集。XTR105 為 PT100 提供了精準的 0.8 mA電流并將 PT100 電阻值轉成的電流值再進行硬件濾波。濾波電路可以采用一般的 RC 濾波,也可以采用貝塞爾濾波最后輸入到單片機。
3.2 帶斷線檢測的數字量采集電路
斷線檢測功能對于重要開關量的監測是必不可少的,其電路設計如圖 3 所示。
從圖中可知當外界斷線時 2 個比較器 LM339 的正向輸入端都是 + 24 V,比較器都會正向飽和,輸出端輸出 + 24 V,光耦的右端處于截止狀態,單片機 DI1和 DI2 讀到的電平都是高電平。當外部無斷線且開關處于常開時,2 個比較器的正向出入端為都為 + 12V,所以 U1 輸出 + 24 V 而 U2 輸出 GNDX,此時到單片機端口的狀態是 DI1 為高 DI2 為低。同理,當外部無斷線開關閉合時 DI1 和 DI2 都為低電平。
3.3 頻率量采集電路的設計
對于脈沖信號的采集可采用滯回比較器,它可引入正反饋加速電壓的轉變過程,而且引入回差提高了電路的抗干擾能力。具體設計如下:
由于磁敏電阻傳感器是無源的,所以需要電路板提供 + 24 V 的電源,NTC 用于防浪涌,信號經滯回比較器和高速磁耦后將信號輸送給單片機。
4.1 軟件整體設計
對于下位機軟件以采集模塊 MU 為例進行簡要介紹。此程序分 3 個任務: 1)信號采集與上傳任務;2)上位機 CCP 命令處理任務; 3)與電控噴油單元(ECU)的通信任務。在此僅以任務 1 為例進行簡要介紹。信號采集與上傳采用周期模式(每 200 ms 更新一次采集數據并上傳)事件觸發采用定時器中斷。中斷服務函數與任務 1 同步采用 μC/OS-Ⅲ 提供的內嵌任務信號量機制。任務 1 的程序流程如圖 5 所示。
4.2 上下位機通信程序的設計
本系統的下位機和上位機通信采用 CAN 總線協議,為 CCP 協議。CCP 協議是一種主從方式用于在線參數標定和實時數據采集的 CAN 總線應用層協議。CCP 主站發送 CRO(指令接收對象)完成對從站的功能配置,如進行參數下載上傳和數據采集觸發等。CCP 從站在接收 CRO 后立即返回 DTO(數據傳輸對象)作為對控制指令的接收響應,此時的 DTO 又稱 CRM(指令返回報文)。當啟動數據采集后,下位機處于DAQ(Data Acquisition)模式,從站將實時連續地發送DTO 用于數據采集[7]。 本系統是以上位機為主站下位機的塊板子為從站,其數據采集程序設計框圖如圖 6所示。
通過將保存各通道采集數據的內存單元地址固化,再由 CCP 控制指令完成固定內存單元數據采集,大大簡化了 CCP 通信過程。通過判斷 CCP 從站是否接收到啟動數據采集指令,該單元可進入 DAQ 數據采集會話狀態,完成相應 DAQ 列表的數據采集,并保證DAQ 列表中每一個 ODT 的成功發送,未能及時發送的 ODT 轉入到待發送隊列中,下次空閑時發送。
4.3 數據標定與軟件濾波
因為 PT100 和壓力信號線性度較好可直接標定線性方程的 a,b 值。其標定方法可采用特穩攜式校驗儀給出特定溫度或壓力下的電阻值或電流值,在不同溫度段下取多點的平均值對 a,b 值進行求解(對于PT100 的補償溫度可選用室溫補償)。熱電偶線性度較差,一般采用根據不同類型熱電偶進行查表的方式。本系統采用的是 K 型熱電偶,可從其數據手冊中得到 0 ℃以下的電壓-溫度對應表。對熱電偶采集數據加上冷端補償電壓后用二分法查表就可以得到對應溫度值。其標定方法可采用特穩攜式校驗儀給出不同溫度下的熱電偶信號,然后對采集線號進行分段線性化處理即可。轉速測量可采用 STM32F207 中的輸入捕獲功能實現。其中 CCP 協議是專業的標定協議可提供在線標定為數據標定提供很大的便利。
對于上述采集到的數據一般要進行軟件濾波。軟件濾波的方法非常多,僅對本程序用到的濾波方法進行介紹。本程序大量采用的是中位值平均濾波法即連續采樣N個數據,去掉一個最大值和一個最小值然后計算N-2 個數據的算術平均值。此算法可有效地抑制偶然出現的脈沖性干擾[8]。
本文開發了一套基于 μC/OS-Ⅲ 系統的船舶柴油機監控系統軟件,在滿足邏輯判斷與輸出設計要求的同時具有較好的移植性和可靠性。在硬件方面對數據的采集穩定可靠。對所有模擬量通道以及重要開關量通道都有斷線檢測功能,也增強了系統的可靠性。在信號調理上經硬件和軟件雙重濾波后使采集信號具有較好抗干擾能力。基于 CCP 協議的 CAN 通信也具有通信速率高和高可靠性的特點。但對于這些采集數據的利用還不夠深入,比如利用這些數據進行柴油機故障診斷或柴油機性能分析等。因此系統為以后 ECU 的開發和柴油機故障的智能診斷打下了良好的基礎。
[1]DPS 2100 Engine Safety System User Manual.Lyngs? Marine A/S, Doc.No.921.450.021.
[2]金江善.船用柴油機電控系統[J].艦船科學技術, 2010, 32(8): 71-73.
[3]Jeam J.Labrosse.嵌入式實時操作系統μC/OS-Ⅲ[M].宮輝等,譯.北京: 北京航空航天大學出版社, 2012: 80-100.
[4]Jeam J.Labrosse.嵌入式實時操作系統μC/OS-Ⅲ應用開發[M].何小慶等, 譯.北京: 北京航空航天大學出版社, 2012: 25-40.
[5]Joseph Yiu.ARM Cortex-M3權威指南[M].宋巖, 譯.北京: 北京航空航天大學出版社, 2009.62-70
[6]劉易.船用柴油機監控系統CAN總線協議設計與研究[D].哈爾濱: 哈爾濱工程大學, 2010.
[7]韋文波.基于CCP協議的電控發動機標定系統開發[D].湖南大學, 2011.
[8]姬海晨.在西門子300系列PLC中實現的程序濾波的又一創新方法[J].信息科技, 2014-4: 233-236.
The design of marine engine monitoring system based on μC/OS-Ⅲ
GAO Chao1, CHEN Hui2, CHEN Zhi-jun2, LEI Ben-xin1, YANG Cheng1
(1.Wuhan University of Technology, School of Energy and Power Engineering, Wuhan 430063, China; 2.Wuhan University of Technology, Wuhan 430063, China)
To improve the software transportability and reliability, hardware acquisition circuit fault diagnosis and acquisition accuracy of vessel monitoring system, we can use μC/OS-Ⅲ operating system as the software development platform to improve software transportability and reliability, and the acquisition circuit of temperature, pressure, speed and switch are designed to diagnosis break fault by itself and the use of multiple filtering to improve the accuracy of signal acquisition.CAN communication system is used and it is based on CCP for its high reliability and powerful.This system has been successfully applied to the prototype and made steady and reliable data acquisition and control.
engine monitoring system;μC/OS-Ⅲ;hardware circuits;CCP
U664.121
:A
1672-7619(2017)01-0140-05doi:10.3404/j.issn.1672-7619.2017.01.029
2016-05-11;
: 2016-06-17
國家自然科學基金資助項目(51579200)
高超(1990-),男,碩士研究生, 研究方向為船舶動力系統建模、仿真及控制技術, 智能船舶控制技術。