《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于CAN現(xiàn)場(chǎng)總線技術(shù)的船舶電站監(jiān)控系統(tǒng)設(shè)計(jì)
基于CAN現(xiàn)場(chǎng)總線技術(shù)的船舶電站監(jiān)控系統(tǒng)設(shè)計(jì)
電子發(fā)燒友
摘要: 1前言船舶電站監(jiān)控系統(tǒng)主要用于監(jiān)控船舶發(fā)電機(jī)組的運(yùn)行狀態(tài),,調(diào)節(jié)改善船舶供電的電力品質(zhì),。本系統(tǒng)取代傳統(tǒng)的點(diǎn)對(duì)點(diǎn)連線的控制方法,采用CAN現(xiàn)場(chǎng)總線技術(shù),,實(shí)現(xiàn)發(fā)電機(jī)組的遠(yuǎn)程控制,?;贑AN總線具有結(jié)構(gòu)簡(jiǎn)單、通信方式靈活的特點(diǎn)及其非破壞總線仲裁技術(shù),,為該監(jiān)控系統(tǒng)提高數(shù)據(jù)傳輸可靠性,、增強(qiáng)系統(tǒng)運(yùn)行穩(wěn)定性提供了新的解決方案,。2網(wǎng)絡(luò)通信平臺(tái)設(shè)計(jì)船舶電站監(jiān)控系統(tǒng)采用CAN現(xiàn)場(chǎng)總線連接各設(shè)備,通信網(wǎng)絡(luò)由監(jiān)測(cè)網(wǎng)絡(luò)與控制網(wǎng)絡(luò)組成,,采用雙冗余總線結(jié)構(gòu),,系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。監(jiān)測(cè)網(wǎng)絡(luò)由若干個(gè)數(shù)據(jù)采集模塊與1個(gè)網(wǎng)關(guān)組成,,主要負(fù)責(zé)采集傳輸現(xiàn)場(chǎng)用于測(cè)量柴油發(fā)電機(jī)組繞組溫度,、燃油壓力等傳感器數(shù)據(jù);控制網(wǎng)絡(luò)由1臺(tái)上位機(jī)、1臺(tái)能量管理控制器與3個(gè)輸入輸出模塊組成,,完成對(duì)柴油發(fā)電機(jī)組起動(dòng),、停車、合閘,、解列以及能量管理的遙控控制,。監(jiān)測(cè)網(wǎng)絡(luò)和控制網(wǎng)絡(luò)均采用雙絞線電纜作為通訊介質(zhì),根據(jù)網(wǎng)絡(luò)規(guī)模與數(shù)據(jù)傳輸流量,,設(shè)置網(wǎng)絡(luò)總線速率為100kpbs,。數(shù)據(jù)采集模塊:數(shù)據(jù)采集模塊根據(jù)不同的傳感器類型分別能夠采集、測(cè)量Pt100溫度信號(hào),、4~20mA電流信號(hào)以及開(kāi)關(guān)量等信號(hào),。能量管理控制器:實(shí)現(xiàn)電站監(jiān)視與電能管理功能。輸入輸出模塊:接收來(lái)自能量管理控制器的命令,,控制
Abstract:
Key words :

  1 前言

  船舶電站監(jiān)控系統(tǒng)主要用于監(jiān)控船舶發(fā)電機(jī)組的運(yùn)行狀態(tài),,調(diào)節(jié)改善船舶供電的電力品質(zhì)。本系統(tǒng)取代傳統(tǒng)的點(diǎn)對(duì)點(diǎn)連線的控制方法,,采用CAN 現(xiàn)場(chǎng)總線技術(shù),,實(shí)現(xiàn)發(fā)電機(jī)組的遠(yuǎn)程控制?;贑AN 總線具有結(jié)構(gòu)簡(jiǎn)單,、通信方式靈活的特點(diǎn)及其非破壞總線仲裁技術(shù),為該監(jiān)控系統(tǒng)提高數(shù)據(jù)傳輸可靠性,、增強(qiáng)系統(tǒng)運(yùn)行穩(wěn)定性提供了新的解決方案,。

  2 網(wǎng)絡(luò)通信平臺(tái)設(shè)計(jì)

  船舶電站監(jiān)控系統(tǒng)采用 CAN 現(xiàn)場(chǎng)總線連接各設(shè)備,通信網(wǎng)絡(luò)由監(jiān)測(cè)網(wǎng)絡(luò)與控制網(wǎng)絡(luò)組成,,采用雙冗余總線結(jié)構(gòu),,系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1 所示。

船舶電站監(jiān)控系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖 www.elecfans.com

  監(jiān)測(cè)網(wǎng)絡(luò)由若干個(gè)數(shù)據(jù)采集模塊與1 個(gè)網(wǎng)關(guān)組成,,主要負(fù)責(zé)采集傳輸現(xiàn)場(chǎng)用于測(cè)量柴油發(fā)電機(jī)組繞組溫度,、燃油壓力等傳感器數(shù)據(jù);控制網(wǎng)絡(luò)由1 臺(tái)上位機(jī)、1 臺(tái)能量管理控制器與3 個(gè)輸入輸出模塊組成,,完成對(duì)柴油發(fā)電機(jī)組起動(dòng),、停車、合閘,、解列以及能量管理的

  遙控控制,。監(jiān)測(cè)網(wǎng)絡(luò)和控制網(wǎng)絡(luò)均采用雙絞線電纜作為通訊介質(zhì),根據(jù)網(wǎng)絡(luò)規(guī)模與數(shù)據(jù)傳輸流量,,設(shè)置網(wǎng)絡(luò)總線速率為100kpbs,。

  數(shù)據(jù)采集模塊:數(shù)據(jù)采集模塊根據(jù)不同的傳感器類型分別能夠采集、測(cè)量 Pt100 溫度信號(hào),、4~20mA 電流信號(hào)以及開(kāi)關(guān)量等信號(hào),。

  能量管理控制器:實(shí)現(xiàn)電站監(jiān)視與電能管理功能。

  輸入輸出模塊:接收來(lái)自能量管理控制器的命令,,控制發(fā)電機(jī)組運(yùn)行,,同時(shí)監(jiān)測(cè)發(fā)電機(jī)組相關(guān)的電參數(shù)。

  網(wǎng)關(guān):實(shí)現(xiàn)不同網(wǎng)絡(luò)間的數(shù)據(jù)交換,。

  監(jiān)測(cè)網(wǎng)絡(luò)部分:數(shù)據(jù)采集模塊從外部采集傳感器數(shù)據(jù)后,,將數(shù)據(jù)發(fā)送至網(wǎng)關(guān),網(wǎng)關(guān)將所有傳感器數(shù)據(jù)發(fā)送至上位機(jī)完成集中顯示與報(bào)警功能,。

  控制網(wǎng)絡(luò)部分:上位機(jī)將人工控制命令發(fā)送至能量管理控制器,,該控制器將控制命令進(jìn)行處理表決,將結(jié)果發(fā)送至輸入輸出模塊,,由輸入輸出模塊輸出控制信號(hào)控制發(fā)電機(jī)組狀態(tài),。另外,輸入輸出模塊采集發(fā)電機(jī)組相關(guān)電參數(shù)(電壓,,電流,,有功、無(wú)功功率等)發(fā)送至能量管理控制器進(jìn)行監(jiān)測(cè)與管理,。

  網(wǎng)絡(luò)系統(tǒng)由兩條總線構(gòu)成硬件雙冗余結(jié)構(gòu),,若其中一條總線電纜受損或出現(xiàn)故障后,另一條總線仍能維持系統(tǒng)正常工作,,防止通信網(wǎng)絡(luò)癱瘓,。此外,為了保證通信網(wǎng)絡(luò)的可靠性與實(shí)事性,,各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)還具有在線故障診斷,,傳感器故障診斷等功能。

  3 網(wǎng)絡(luò)通信標(biāo)識(shí)符設(shè)計(jì)

  在該網(wǎng)絡(luò)通信系統(tǒng)中,,底層智能模塊選用Intel16 位的MCU,,CAN 網(wǎng)絡(luò)控制器選用Philips 公司的SJA1000,實(shí)現(xiàn)CAN 網(wǎng)絡(luò)數(shù)據(jù)收發(fā)功能,系統(tǒng)中網(wǎng)絡(luò)總線使用CAN2.0B 協(xié)議格式,,根據(jù)該系統(tǒng)監(jiān)測(cè)網(wǎng)絡(luò)與控制網(wǎng)絡(luò)的不同功能,,分別設(shè)計(jì)兩種網(wǎng)絡(luò)的報(bào)文標(biāo)識(shí)符。

  3.1 監(jiān)測(cè)網(wǎng)絡(luò)協(xié)議:

  監(jiān)測(cè)網(wǎng)絡(luò)中的數(shù)據(jù)采集模塊采集現(xiàn)場(chǎng)傳感器的模擬信號(hào),,通過(guò) A/D 轉(zhuǎn)換將其轉(zhuǎn)換為數(shù)字量信號(hào)后發(fā)送至監(jiān)測(cè)網(wǎng)絡(luò),,數(shù)據(jù)刷新頻率為每秒2 批次。對(duì)于監(jiān)測(cè)模塊而言,,僅僅發(fā)送測(cè)量所得的現(xiàn)場(chǎng)傳感器數(shù)據(jù),,不需要接收其他網(wǎng)絡(luò)數(shù)據(jù),因此設(shè)置驗(yàn)收屏蔽寄存器禁止其他網(wǎng)絡(luò)數(shù)據(jù)接收,,網(wǎng)關(guān)接收到各個(gè)數(shù)據(jù)采集模塊發(fā)送的數(shù)據(jù)之后將其發(fā)送至上位機(jī),。下表為監(jiān)測(cè)網(wǎng)絡(luò)的報(bào)文標(biāo)識(shí)符定義:

  每個(gè)數(shù)據(jù)采集模塊分配唯一的網(wǎng)絡(luò)節(jié)點(diǎn)號(hào),每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)分配節(jié)點(diǎn)地址,,此外,,為了使網(wǎng)關(guān)設(shè)備快速判斷各數(shù)據(jù)采集模塊工作以及所發(fā)送的報(bào)文是否出現(xiàn)異常狀況,每個(gè)數(shù)據(jù)采集模塊在發(fā)送各自的報(bào)文時(shí)設(shè)置索引值,,使用CAN 標(biāo)識(shí)符的第13~22 位表示,。當(dāng)某個(gè)數(shù)據(jù)采集模塊起動(dòng)新的一個(gè)批次數(shù)據(jù)發(fā)送時(shí),索引值清零,,每發(fā)送成功一幀報(bào)文后下一幀報(bào)文的索引值加1,,當(dāng)前批次數(shù)據(jù)發(fā)送完畢后索引值計(jì)數(shù)器清零,從而可根據(jù)每個(gè)模塊在一個(gè)批次內(nèi)發(fā)送的報(bào)文個(gè)數(shù)確定該模塊的最大索引值,。接收方在接收到某一節(jié)點(diǎn)發(fā)送的報(bào)文后先判斷標(biāo)識(shí)符中的索引值信息,,若接收到報(bào)文的索引值為不合理數(shù)值,則放棄對(duì)當(dāng)前報(bào)文的接收處理,。由此可以防止網(wǎng)關(guān)接收在傳輸時(shí)或者程序出錯(cuò)時(shí)產(chǎn)生錯(cuò)誤的報(bào)文,,以提高網(wǎng)絡(luò)數(shù)據(jù)的可靠性。此外,,監(jiān)測(cè)網(wǎng)絡(luò)數(shù)據(jù)采集模塊設(shè)置定時(shí)向網(wǎng)關(guān)設(shè)備發(fā)送表示自身通信是否正常的協(xié)議幀,,網(wǎng)關(guān)將其接收后轉(zhuǎn)發(fā)至上位機(jī)向用戶顯示系統(tǒng)網(wǎng)絡(luò)各個(gè)單元當(dāng)前的工作狀態(tài),即網(wǎng)絡(luò)通訊狀態(tài),。

  3.2 控制網(wǎng)絡(luò)協(xié)議:

  控制網(wǎng)絡(luò)中產(chǎn)生的控制命令一般是猝發(fā)式的,,對(duì)于控制系統(tǒng)而言必須確保控制命令被及時(shí)并且成功的發(fā)送,,控制網(wǎng)絡(luò)報(bào)文標(biāo)識(shí)符定義如下表所示:

  

  CAN 總線中非破壞性總線仲裁技術(shù),,是從協(xié)議幀標(biāo)識(shí)符的最高位開(kāi)始,即BIT.28 逐位比較下去,,當(dāng)出現(xiàn)參加仲裁的雙方在某一位第一次出現(xiàn)顯隱性不同時(shí),,為顯性位的那個(gè)協(xié)議幀贏得仲裁,。根據(jù)CAN 總線的這一特性,即標(biāo)識(shí)符值越小發(fā)送優(yōu)先級(jí)越高,,根據(jù)系統(tǒng)總線流程以及控制網(wǎng)絡(luò)中各網(wǎng)絡(luò)節(jié)點(diǎn)優(yōu)先級(jí)的高低從小到大設(shè)置各個(gè)模塊的網(wǎng)絡(luò)節(jié)點(diǎn)號(hào),,如表3 所示:

  

  當(dāng)控制網(wǎng)絡(luò)數(shù)據(jù)發(fā)送頻繁時(shí),可能導(dǎo)致部分控制命令幀由于標(biāo)識(shí)符優(yōu)先級(jí)的原因而丟失SJA1000 控制器的仲裁,,雖然SJA1000 具有丟失仲裁后的自動(dòng)重新發(fā)送該報(bào)文的功能,,但該控制命令幀仍然存在發(fā)送失敗的可能性,,最終導(dǎo)致控制功能的失效,。CAN 協(xié)議幀優(yōu)先晉升方案能夠大大降低上述情況發(fā)生的可能性,為實(shí)現(xiàn)控制命令幀發(fā)送時(shí)在丟失仲裁后重發(fā)的優(yōu)先級(jí)晉升,,則必須禁止MAC 子層的自動(dòng)重發(fā)功能,,由應(yīng)用層來(lái)實(shí)現(xiàn)報(bào)文的重發(fā)。該系統(tǒng)采用Philips 公司的SJA1000 作為CAN 網(wǎng)絡(luò)控制器,,可以通過(guò)在報(bào)文發(fā)送時(shí)設(shè)置其命令寄存器的第0,、1 位禁止其自動(dòng)重發(fā)功能,改為單次發(fā)送,。

  起動(dòng)發(fā)送報(bào)文之后,,MCU 須判斷該網(wǎng)絡(luò)節(jié)點(diǎn)是否已經(jīng)成功發(fā)送了一條報(bào)文或者報(bào)文發(fā)送失敗:首先,,當(dāng)SJA1000 中斷寄存器出現(xiàn)了仲裁丟失中斷或者發(fā)送中斷,,表明該節(jié)點(diǎn)已經(jīng)處理完了一條報(bào)文,但是仍然不知道是否發(fā)送成功,。如果成功,,中斷寄存器就沒(méi)有仲裁丟失中斷,但是會(huì)產(chǎn)生發(fā)送中斷,,因?yàn)榘l(fā)送成功后發(fā)送緩沖區(qū)會(huì)釋放,。如果發(fā)送不成功,一定是與較高優(yōu)先級(jí)的協(xié)議幀競(jìng)爭(zhēng)的結(jié)果,,所以會(huì)有仲裁丟失中斷,。但是改為單次發(fā)送后,發(fā)送失敗以后也會(huì)釋放緩沖區(qū),,因此將同時(shí)產(chǎn)生仲裁丟失中斷以及發(fā)送中斷,。在得到節(jié)點(diǎn)已經(jīng)處理完一條報(bào)文后,只要用以上的規(guī)則進(jìn)行判斷就能知道上一條報(bào)文是否發(fā)送成功,,也就是用來(lái)判斷是否需要晉升節(jié)點(diǎn)所發(fā)送信息幀的優(yōu)先級(jí)并重發(fā)該幀,。

  控制網(wǎng)絡(luò)的標(biāo)識(shí)符劃分為三個(gè)部分,其中標(biāo)識(shí)符的第 21 至28 位用于協(xié)議幀優(yōu)先晉升,,這部分標(biāo)識(shí)僅表示協(xié)議幀的優(yōu)先級(jí),,它由調(diào)度機(jī)制分配給協(xié)議幀的優(yōu)先級(jí)的變化而變化,,設(shè)Pi=(2n-1)-kt,Pi 項(xiàng)為當(dāng)前控制命令協(xié)議幀的優(yōu)先級(jí),,(2n-1)代表其優(yōu)先級(jí)隊(duì)列的初始值,,即為隊(duì)尾;n 為優(yōu)先級(jí)隊(duì)列的二進(jìn)制數(shù),BIT28:21 共有8 位數(shù),,所以這一項(xiàng)數(shù)值為0FFH,。kt表示優(yōu)先級(jí)晉升項(xiàng),t 為首次發(fā)送以來(lái)協(xié)議幀丟失仲裁的次數(shù),,k 為晉升權(quán)重,,k 取值越大協(xié)議幀優(yōu)先晉升速度就越快(該系統(tǒng)中取k=1)。由此可見(jiàn),,當(dāng)某協(xié)議幀第一次發(fā)送時(shí),,Pi=0FFH,當(dāng)它在發(fā)送時(shí)與其他協(xié)議幀碰撞并失去仲裁時(shí),,退出發(fā)送并且置Pi=0FEH 重新發(fā)送,,因?yàn)榇藭r(shí)其優(yōu)先級(jí)高于其他協(xié)議幀,在整個(gè)網(wǎng)絡(luò)中如果沒(méi)有其他和它具有相同優(yōu)先級(jí)的協(xié)議幀同時(shí)發(fā)送時(shí),,即使與其他第一次發(fā)送的協(xié)議幀碰撞,,也會(huì)贏得仲裁,所以增大了該幀發(fā)送成功的概率,。下圖為報(bào)文優(yōu)先級(jí)晉升控制流程:

  

  圖 2 報(bào)文優(yōu)先級(jí)晉升控制流程

  除此之外,,系統(tǒng)具有控制參數(shù)在線修改的功能(如修改系統(tǒng)參數(shù))。參數(shù)修改命令由上位機(jī)發(fā)出修改幀,,能量管理控制器接收后進(jìn)行操作執(zhí)行,。當(dāng)進(jìn)行在線控制參數(shù)修改時(shí),能量管理控制器將發(fā)出廣播消息通知控制網(wǎng)絡(luò)所有節(jié)點(diǎn)禁止所有控制動(dòng)作的輸出,,以防止意外情況的發(fā)生,。

  在進(jìn)行參數(shù)的下載修改過(guò)程中,為避免修改幀發(fā)送失敗或丟失,,從而導(dǎo)致系統(tǒng)參數(shù)混亂,,甚至導(dǎo)致系統(tǒng)癱瘓的情況發(fā)生,使用幀標(biāo)識(shí)符的第11,、12 位表征修改幀的結(jié)構(gòu)類型:?jiǎn)螏?、非結(jié)束多幀和結(jié)束多幀。當(dāng)待修改的參數(shù)數(shù)量較少,,單個(gè)協(xié)議幀能夠包含所有修改信息時(shí),,能量管理控制器接收到來(lái)自上位機(jī)的修改幀,并判斷該修改幀為單幀標(biāo)識(shí)后,,則立即進(jìn)行參數(shù)存儲(chǔ)空間的修改;若待修改的參數(shù)較多,,單個(gè)協(xié)議幀無(wú)法包括所有待修改數(shù)據(jù)時(shí),,上位機(jī)首先發(fā)出部分修改幀使用非結(jié)束多幀標(biāo)識(shí),發(fā)送至最后一個(gè)修改幀時(shí),,標(biāo)記為結(jié)束多幀,。功率管理模塊只有在將全部待修改的參數(shù)接收完畢(即收到結(jié)束多幀標(biāo)識(shí))之后,才開(kāi)始對(duì)相應(yīng)參數(shù)存儲(chǔ)空間進(jìn)行數(shù)據(jù)修改的操作,。完成操作之后,,能量管理控制器再將相應(yīng)存儲(chǔ)空間修改完畢的數(shù)據(jù)發(fā)送反饋至上位機(jī),進(jìn)行握手確認(rèn),。采用以上系統(tǒng)參數(shù)修改機(jī)制同時(shí)結(jié)合協(xié)議幀優(yōu)先晉升方案,,大幅提升了電站重要參數(shù)修改的可靠性。

  4 結(jié)束語(yǔ)

  船舶電站監(jiān)控系統(tǒng)網(wǎng)絡(luò)通信的實(shí)現(xiàn),,節(jié)省了大量的現(xiàn)場(chǎng)線纜,,整個(gè)系統(tǒng)便于調(diào)試。網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中使用的協(xié)議幀優(yōu)先級(jí)晉升算法機(jī)制等處理方案以及雙冗余的網(wǎng)絡(luò)硬件結(jié)構(gòu),,提高了現(xiàn)場(chǎng)總線網(wǎng)絡(luò)的可靠性和穩(wěn)定性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。