国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#的船用柴油機(jī)監(jiān)控系統(tǒng)軟件設(shè)計(jì)

2017-05-16 07:53:54游伏兵雷本鑫陳澤亮陳智君高超
船海工程 2017年2期
關(guān)鍵詞:下位線(xiàn)程安保

游伏兵,雷本鑫,陳澤亮,陳智君,高超

(武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,武漢 430063)

基于C#的船用柴油機(jī)監(jiān)控系統(tǒng)軟件設(shè)計(jì)

游伏兵,雷本鑫,陳澤亮,陳智君,高超

(武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,武漢 430063)

針對(duì)國(guó)產(chǎn)柴油機(jī)監(jiān)控系統(tǒng)技術(shù)不成熟、測(cè)量精度不高及自主研發(fā)能力不足等問(wèn)題,以某中速船用V12缸型柴油機(jī)為原型,運(yùn)用C#語(yǔ)言開(kāi)發(fā)一套柴油機(jī)安保監(jiān)控系統(tǒng)軟件。運(yùn)用該軟件可實(shí)現(xiàn)對(duì)柴油機(jī)的運(yùn)行工況的實(shí)時(shí)監(jiān)控。

CCP協(xié)議;多線(xiàn)程;數(shù)據(jù)庫(kù);人機(jī)交互

由于我國(guó)的國(guó)產(chǎn)監(jiān)控系統(tǒng)的起步較晚,技術(shù)并不成熟,較多監(jiān)控系統(tǒng)仍在使用物理儀表進(jìn)行狀態(tài)監(jiān)測(cè)。這種監(jiān)測(cè)方法的監(jiān)測(cè)精度往往不高,且自動(dòng)化水平較低,很多儀器仍需手動(dòng)操作。目前,應(yīng)用于實(shí)際船舶的柴油機(jī)監(jiān)控系統(tǒng)產(chǎn)品主要來(lái)自國(guó)外[1-3]。實(shí)現(xiàn)對(duì)柴油機(jī)的自動(dòng)化監(jiān)控,提高柴油機(jī)的監(jiān)測(cè)精度,突破國(guó)外相關(guān)公司的技術(shù)壟斷,成為目前國(guó)內(nèi)監(jiān)控系統(tǒng)行業(yè)亟需解決的問(wèn)題。本文作者以某V12缸型柴油機(jī)為對(duì)象,開(kāi)發(fā)一套監(jiān)測(cè)系統(tǒng),以實(shí)現(xiàn)對(duì)柴油機(jī)的自動(dòng)化監(jiān)測(cè)。

1 監(jiān)控系統(tǒng)軟件設(shè)計(jì)原理

柴油機(jī)監(jiān)控系統(tǒng)是指能完成主機(jī)的控制、監(jiān)測(cè)及報(bào)警、故障的診斷、安全保護(hù)等功能的一個(gè)獨(dú)立完整的系統(tǒng),其主要功能有:

1)監(jiān)測(cè)采集重要參數(shù)。通過(guò)人機(jī)界面予以顯示。

2)報(bào)警。人機(jī)界面及集控臺(tái)同時(shí)予以警告。

3)安全保護(hù)。由人機(jī)界面顯示并通過(guò)下位機(jī)進(jìn)行安保動(dòng)作。

4)操控主機(jī)。通過(guò)集控臺(tái)進(jìn)行主機(jī)啟停及加、減速等操作。

其主要組成包含硬件模塊和軟件模塊,其中硬件部分由監(jiān)測(cè)模塊(MU)、邏輯控制模塊(LCU)和安保模塊(ESU)組成;軟件部分在集控臺(tái)(ECR)上的PC機(jī)中運(yùn)行,硬件部分通過(guò)工控機(jī)內(nèi)的CAN卡PCI9820I的端口1(CAN1)與PC機(jī)通信,同時(shí)PC機(jī)通過(guò)CAN卡的端口2(CAN2)與ECU進(jìn)行通信,此外監(jiān)測(cè)模塊也通過(guò)CAN2總線(xiàn)與ECU進(jìn)行通信。安保監(jiān)控系統(tǒng)的組成見(jiàn)圖1。

2 監(jiān)控系統(tǒng)軟件設(shè)計(jì)思路

要實(shí)現(xiàn)上述功能,需要將采集到的各通道值傳遞至上位機(jī),上位機(jī)將接收到的數(shù)據(jù)存儲(chǔ)在本地磁盤(pán),同時(shí)將數(shù)據(jù)及通道信息顯示在界面上。因此,柴油機(jī)監(jiān)控系統(tǒng)軟件主要由通信、數(shù)據(jù)庫(kù)、人機(jī)界面等幾個(gè)模塊組成.。

柴油機(jī)安保監(jiān)控軟件主要功能是完成系統(tǒng)輸入和界面輸出顯示,在完成界面初始化并進(jìn)入系統(tǒng)后,首先進(jìn)行系統(tǒng)初始參數(shù)設(shè)置,包括軟件系統(tǒng)自身運(yùn)行的必要參數(shù)設(shè)置和下位機(jī)運(yùn)行參數(shù)設(shè)置,其中下位機(jī)的運(yùn)行參數(shù)設(shè)置通過(guò)CAN通信發(fā)送到下位機(jī)完成初始化工作。隨后系統(tǒng)由上位機(jī)向下位機(jī)發(fā)送數(shù)據(jù)采集命令,進(jìn)入正常的數(shù)據(jù)采集狀態(tài),接收下位機(jī)發(fā)送來(lái)的數(shù)據(jù),進(jìn)行參數(shù)、狀態(tài)、報(bào)警的實(shí)時(shí)監(jiān)測(cè),并保存這些狀態(tài)數(shù)據(jù),以便進(jìn)行歷史參數(shù)、狀態(tài)、報(bào)警的記錄查詢(xún)。程序運(yùn)行流程見(jiàn)圖2。

確定好系統(tǒng)程序運(yùn)行流程后,通過(guò)構(gòu)建不同的類(lèi)和方法再組成C#中的命名空間來(lái)實(shí)現(xiàn)其功能,程序中自定義的命名空間主要有以下幾個(gè)。

1)數(shù)據(jù)庫(kù)命名空間(DataBase_System):主要用于配置和操作數(shù)據(jù)庫(kù)。

2)通信命名空間(CAN_System):主要用于實(shí)現(xiàn)CAN1和CAN2數(shù)據(jù)傳輸和顯示,包含CAN用函數(shù)結(jié)構(gòu)體,協(xié)議結(jié)構(gòu)體,站地址信息,接收和發(fā)送的線(xiàn)程等。

3)應(yīng)用程序命名空間(Engine_Monitoring_System):控制上述所有的對(duì)象,確定程序特點(diǎn),負(fù)責(zé)應(yīng)用程序初始化、運(yùn)行和清除。將各個(gè)窗口界面相關(guān)的類(lèi)和函數(shù)、功能類(lèi)、控件類(lèi)、通信類(lèi)、數(shù)據(jù)庫(kù)類(lèi)等通過(guò)命名空間的形式組織在一起,從而實(shí)現(xiàn)整個(gè)柴油機(jī)安保監(jiān)控系統(tǒng)程序的運(yùn)行。

3 監(jiān)控系統(tǒng)軟件具體實(shí)現(xiàn)

3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)

柴油機(jī)監(jiān)控系統(tǒng)軟件的核心是對(duì)柴油機(jī)運(yùn)行參數(shù)的監(jiān)測(cè)和顯示,實(shí)現(xiàn)運(yùn)行中的柴油機(jī)的安全保護(hù)和操縱,附加系統(tǒng)參數(shù)的設(shè)置功能,是以數(shù)據(jù)為中心的體系結(jié)構(gòu),依靠數(shù)據(jù)聯(lián)通各個(gè)部分并使之協(xié)調(diào)工作,故可將其數(shù)據(jù)結(jié)構(gòu)組成設(shè)計(jì)成圖3所示的結(jié)構(gòu)。

從系統(tǒng)的數(shù)據(jù)流向上看,可將系統(tǒng)數(shù)據(jù)分為下位機(jī)發(fā)送數(shù)據(jù)和上位機(jī)發(fā)送數(shù)據(jù),其中系統(tǒng)參數(shù)設(shè)置是上位機(jī)發(fā)送給下位機(jī)的數(shù)據(jù),顯示的狀態(tài)和參數(shù)由下位機(jī)發(fā)送給上位機(jī)。

軟件界面上顯示的通道實(shí)時(shí)數(shù)據(jù)來(lái)自于下位機(jī)采集的數(shù)據(jù),顯示的通道信息則來(lái)自于數(shù)據(jù)庫(kù)。本文采用數(shù)據(jù)庫(kù)結(jié)構(gòu)中的二維表結(jié)構(gòu)對(duì)系統(tǒng)中的實(shí)體集進(jìn)行描述,它是由許多包含字段的記錄組成的,每個(gè)字段對(duì)應(yīng)一個(gè)對(duì)象屬性??筛鶕?jù)實(shí)際的要求,對(duì)字段的長(zhǎng)度、數(shù)據(jù)類(lèi)型及能否配置進(jìn)行設(shè)置,部分二維表如下。

1)T_AnSesorChannelInfo(模擬量通道表)用于管理模擬量各通道的信息。

2)T_ChannelBasicInfo(配置信息基本表)用于管理所有通道的配置信息。

各表的結(jié)構(gòu)均由字段名和數(shù)據(jù)類(lèi)型組成,由于模擬量通道表包含的信息較為全面,故此處以模擬量通道表為例來(lái)展示二維表的內(nèi)部結(jié)構(gòu),見(jiàn)表1。

表1 模擬量通道表的結(jié)構(gòu)

在設(shè)計(jì)好各個(gè)數(shù)據(jù)庫(kù)后,柴油機(jī)安保監(jiān)控程序在結(jié)合系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)的基礎(chǔ)上,通過(guò)包含System.Data、System.Data.SqlClient等命名空間來(lái)調(diào)用結(jié)構(gòu)化的語(yǔ)言(SQL語(yǔ)言)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理[4-5]。

3.2 通信設(shè)計(jì)

柴油機(jī)安保監(jiān)控程序和下位機(jī),以及ECU的通信均采用CAN通信。柴油機(jī)監(jiān)控系統(tǒng)的通信包含兩路CAN通信,其中CAN1端口為程序與監(jiān)控單元的通信端口,CAN2端口為程序與電控單元(ECU)的通信端口。上位PC機(jī)采用的是工控機(jī),工控機(jī)采用PCI9820I型CAN卡與下位機(jī)及ECU進(jìn)行通信。

上位機(jī)安保監(jiān)控程序與下位機(jī)控制器的通信,涉及到多種模擬量和頻率量等的標(biāo)定,采用基于CAN通信的CCP標(biāo)定協(xié)議發(fā)送和接收數(shù)據(jù)。CCP全稱(chēng)為CAN Calibration Protocol,即CAN標(biāo)定協(xié)議,是基于主從方式可用于在線(xiàn)參數(shù)標(biāo)定和實(shí)時(shí)數(shù)據(jù)采集的CAN總線(xiàn)應(yīng)用層協(xié)議,通過(guò)CCP可完成控制參數(shù)標(biāo)定、實(shí)時(shí)數(shù)據(jù)采集和FLASH編程等具體操作。安保監(jiān)控程序與電控單元(ECU)的通信,采用同樣基于CAN并在發(fā)動(dòng)機(jī)中常用的SAE J1939通信協(xié)議進(jìn)行發(fā)送和接收數(shù)據(jù)。

針對(duì)柴油機(jī)安保監(jiān)控系統(tǒng)任務(wù)多,通信量大,實(shí)時(shí)性要求高等特點(diǎn),程序在設(shè)計(jì)時(shí)采用多線(xiàn)程技術(shù)。柴油機(jī)安保監(jiān)控系統(tǒng)程序通信中主要采用以下幾個(gè)線(xiàn)程:數(shù)據(jù)接收線(xiàn)程(threadRAV),掉線(xiàn)重連接線(xiàn)程(threadReConn),數(shù)據(jù)解碼線(xiàn)程(threadDecode),記錄線(xiàn)程(threadRecord),下載線(xiàn)程(threadDwnP)。具體運(yùn)行流程如下。

1)打開(kāi)軟件后,程序首先打開(kāi)CAN設(shè)備,并設(shè)置CAN設(shè)備的一些相關(guān)參數(shù)及進(jìn)行CAN設(shè)備的初始化,并開(kāi)啟上述線(xiàn)程。

2)開(kāi)啟線(xiàn)程后,系統(tǒng)向下位機(jī)發(fā)送連接指令與下位機(jī)進(jìn)行通信連接,通信連接上后立即向下位機(jī)發(fā)送數(shù)據(jù)采集指令以接收下位機(jī)數(shù)據(jù)。若運(yùn)行中出現(xiàn)掉線(xiàn),則通過(guò)掉線(xiàn)重連接線(xiàn)程(threadReConn)與掉線(xiàn)的模塊重新建立連接。CAN2則是直接接受ECU傳遞過(guò)來(lái)的數(shù)據(jù)。

3)數(shù)據(jù)采集指令發(fā)出后,接收線(xiàn)程(threadRAV)開(kāi)始接收下位機(jī)數(shù)據(jù),并將數(shù)據(jù)放置于一個(gè)隊(duì)列中,同時(shí)解碼線(xiàn)程(ThreadDecode)會(huì)從數(shù)據(jù)隊(duì)列的首部取出數(shù)據(jù)進(jìn)行解碼。數(shù)據(jù)解碼后,解碼線(xiàn)程會(huì)將解碼后的數(shù)據(jù)傳遞給記錄線(xiàn)程(threadRecord),將這些數(shù)據(jù)存儲(chǔ)在本地磁盤(pán)上供顯示及歷史查詢(xún)使用。

4)通信連通后,下載線(xiàn)程(threadDwnP)也會(huì)立即運(yùn)行,并檢查用戶(hù)是否修改了配置信息。如有修改,則將修改后的配置信息通過(guò)下載線(xiàn)程發(fā)送至下位機(jī)。

3.3 程序界面設(shè)計(jì)

結(jié)合用戶(hù)對(duì)監(jiān)控系統(tǒng)界面的要求可將界面劃分如下:

1)主界面,用于顯示柴油機(jī)的轉(zhuǎn)速和8個(gè)重要通道的數(shù)據(jù),以及上下位機(jī)通信連接狀態(tài)。

2)數(shù)據(jù)顯示界面,用于顯示各個(gè)通道的實(shí)時(shí)數(shù)據(jù),并可選擇將其中8個(gè)通道的數(shù)據(jù)以曲線(xiàn)的形式顯示在界面上。此外,軟件提供了歷史曲線(xiàn)查詢(xún)功能,可查詢(xún)?cè)谀扯螘r(shí)間內(nèi)某一通道的數(shù)據(jù),并以曲線(xiàn)形式顯示在界面上。

3)報(bào)警界面,將柴油機(jī)運(yùn)行過(guò)程中需要監(jiān)測(cè)報(bào)警的通道的實(shí)時(shí)狀態(tài)顯示在界面上,當(dāng)出現(xiàn)報(bào)警時(shí),在界面上以紅色標(biāo)出。此外,不管當(dāng)前處于哪一界面,若出現(xiàn)報(bào)警則立即跳轉(zhuǎn)至報(bào)警界面,以提示用戶(hù)出現(xiàn)了報(bào)警情況。軟件也提供了報(bào)警查詢(xún)的功能,用于查詢(xún)某段時(shí)間內(nèi)出現(xiàn)的報(bào)警信息(包括報(bào)警通道及報(bào)警發(fā)生時(shí)間)。

4)打印界面,提供通道數(shù)據(jù)的打印功能,可選擇60個(gè)通道進(jìn)行打印輸出。

5)系統(tǒng)設(shè)置界面,完成下位機(jī)配置信息的下載,數(shù)據(jù)庫(kù)的備份和恢復(fù),中英文切換等功能。

6)登錄界面:系統(tǒng)提供了兩類(lèi)權(quán)限,一是普通權(quán)限,能完成系統(tǒng)的監(jiān)視、記錄查詢(xún)和打印功能;另一類(lèi)為管理員權(quán)限,除了擁有普通權(quán)限功能外,還可以進(jìn)行系統(tǒng)設(shè)置。管理員權(quán)限需在該界面登錄賬號(hào)。

設(shè)計(jì)好的系統(tǒng)界面主要功能模塊見(jiàn)圖4。

4 監(jiān)控系統(tǒng)軟件功能測(cè)試

針對(duì)各個(gè)界面逐一校核后發(fā)現(xiàn),該系統(tǒng)能根據(jù)通信協(xié)議滿(mǎn)足實(shí)時(shí)監(jiān)測(cè)保護(hù)的要求,各通道均能接收正確的數(shù)據(jù)并顯示對(duì)應(yīng)狀態(tài),各界面數(shù)據(jù)刷新時(shí)間為1 s。但模擬量生成的曲線(xiàn)波形波動(dòng)較大,達(dá)到3~5 ℃的偏差,波形中存在較大的噪聲,故需要采用軟件濾波器對(duì)通道數(shù)值進(jìn)行濾波,濾掉其波形中所包含的噪聲。

根據(jù)溫度、壓力等模擬量參數(shù)是連續(xù)的值并結(jié)合噪聲干擾因素等情況,采用中位均值限幅濾波。中位均值限幅濾波是將中位均值濾波與限幅濾波相結(jié)合的方法,其具體方法是:對(duì)單個(gè)通道采集N次,去掉其最大值和最小值后,取其均值作為第一次通道采集到的值,根據(jù)經(jīng)驗(yàn)判斷溫度是連續(xù)變化的,在極短的時(shí)間假設(shè)其變化值為X℃,將第二次中位均值采集到的數(shù)值與第一次采集到的數(shù)值進(jìn)行比較,若兩者之差小于或等于X,則認(rèn)為此次采集到的數(shù)值是準(zhǔn)確的,此時(shí)更新通道顯示的值為第二次的數(shù)值;若兩者之差大于X,則不更新該通道的顯示值;進(jìn)行第三次中位均值采集的時(shí)候,則以第二次通道顯示值為準(zhǔn),依此類(lèi)推。

濾波前后通道采集的波形對(duì)比,見(jiàn)圖5。

5 結(jié)論

采用C#語(yǔ)言并結(jié)合數(shù)據(jù)庫(kù)管理技術(shù),進(jìn)行了柴油機(jī)安保監(jiān)控系統(tǒng)軟件的開(kāi)發(fā)。該軟件可實(shí)現(xiàn)對(duì)柴油機(jī)運(yùn)行工況的實(shí)時(shí)監(jiān)控,軟件監(jiān)測(cè)精度較高。通過(guò)使用此上位機(jī)軟件對(duì)柴油機(jī)進(jìn)行實(shí)時(shí)監(jiān)控,能準(zhǔn)確把握柴油機(jī)運(yùn)行中的狀態(tài)變化,及時(shí)發(fā)現(xiàn)柴油機(jī)運(yùn)行中出現(xiàn)的故障,提高柴油機(jī)運(yùn)行的安全性。本監(jiān)控系統(tǒng)軟件的設(shè)計(jì)思路和實(shí)現(xiàn)方法,可為國(guó)內(nèi)柴油機(jī)監(jiān)控以及船舶自動(dòng)化等領(lǐng)域提供一定的參考。

此安保監(jiān)控系統(tǒng)軟件還有些需要改進(jìn)的方面,如軟件長(zhǎng)時(shí)間運(yùn)行,需要定期對(duì)接受的海量數(shù)據(jù)進(jìn)行處理,既要做到不影響歷史數(shù)據(jù)分析,又需保證數(shù)據(jù)運(yùn)行空間,處理方法有待進(jìn)一步優(yōu)化。

[1] 孫培廷.船舶柴油機(jī)動(dòng)力裝置發(fā)展趨勢(shì)與環(huán)境關(guān)系的探討[J].航海技術(shù),2000(2):5-7.

[2] 陳越.船用柴油機(jī)監(jiān)控系統(tǒng)模塊化設(shè)計(jì)技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2009.

[3] 羅福強(qiáng),楊劍,張敏輝.C#程序設(shè)計(jì)經(jīng)典教程[M].北京:清華大學(xué)出版社,2014.

[4] 扶松柏.深入體驗(yàn)C#項(xiàng)目開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2011.

[5] Vidya Vrat Agarwal. C# 2012數(shù)據(jù)庫(kù)編程入門(mén)經(jīng)典[M].北京:清華大學(xué)出版社,2013.

[6] 饒運(yùn)濤.現(xiàn)場(chǎng)總線(xiàn)CAN原理與應(yīng)用技術(shù)[M].北京,北京航空航天大學(xué)出版社,2003.

[7] 劉運(yùn)瀟.基于CCP的通用型ECU標(biāo)定系統(tǒng)研究和設(shè)計(jì)[D].上海:上海交通大學(xué),2013.

Marine Diesel Engine Monitoring System Software Design Based on C#

YOU Fu-bing, LEI Ben-xin, CHEN Ze-liang, CHEN Zhi-jun, GAO Chao

(School of Energy and Power Engineering, Wuhan University of Technology, Wuhan 430063, China)

In view of problems of that the domestic diesel engine monitoring system technology is not mature, measurement accuracy is not high and the independent research and development ability is poor, a security monitoring system software was designed by using the C# language based on a V12 diesel. This software was proved to be able to monitor the operation condition of diesel engine in real-time.

CCP protocol; multithreading; Database; HCI

10.3963/j.issn.1671-7953.2017.02.036

2016-06-27

國(guó)家部委基金資助項(xiàng)目(2012BAG02B00)

游伏兵(1971—),男,博士,副教授

U664.121

A

1671-7953(2017)02-0153-04

修回日期:2016-09-14

研究方向:柴油機(jī)性能及排放

猜你喜歡
下位線(xiàn)程安保
中軍軍弘集團(tuán)秦皇島安保公司 以黨建為統(tǒng)領(lǐng) 打造“軍”字品牌安保企業(yè)
公民與法治(2022年6期)2022-07-26 06:16:42
發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
如何找準(zhǔn)安保與宣傳的平衡點(diǎn)——以G20杭州峰會(huì)安保宣傳為例
淺談linux多線(xiàn)程協(xié)作
景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
圍觀黨“下位”,吐槽帝“登基”
“猴”安保
CAN總線(xiàn)并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
Linux線(xiàn)程實(shí)現(xiàn)技術(shù)研究
么移動(dòng)中間件線(xiàn)程池并發(fā)機(jī)制優(yōu)化改進(jìn)
望江县| 玉环县| 全州县| 临桂县| 长岭县| 静宁县| 芦溪县| 镇巴县| 繁昌县| 曲麻莱县| 自治县| 济南市| 榆社县| 黑龙江省| 波密县| 元氏县| 九江县| 昌邑市| 巩义市| 博罗县| 常德市| 新泰市| 石台县| 温州市| 通辽市| 共和县| 德江县| 新安县| 伽师县| 乾安县| 青川县| 建瓯市| 芒康县| 天等县| 南安市| 绵竹市| 泰兴市| 老河口市| 合川市| 耒阳市| 永兴县|