現場(chǎng)總線(xiàn)CAN在監控系統網(wǎng)絡(luò )中通信協(xié)議設計
船舶電站監控系統主要用于監控船舶發(fā)電機組的運行狀態(tài),調節改善船舶供電的電力品質(zhì)。本系統取代傳統的點(diǎn)對點(diǎn)連線(xiàn)的控制方法,采用CAN 現場(chǎng)總線(xiàn)技術(shù),實(shí)現發(fā)電機組的遠程控制?;贑AN 總線(xiàn)具有結構簡(jiǎn)單、通信方式靈活的特點(diǎn)及其非破壞總線(xiàn)仲裁技術(shù),為該監控系統提高數據傳輸可靠性、增強系統運行穩定性提供了新的解決方案。
本文引用地址:http://dyxdggzs.com/article/201612/329462.htm2 網(wǎng)絡(luò )通信平臺設計
船舶電站監控系統采用 CAN 現場(chǎng)總線(xiàn)連接各設備,通信網(wǎng)絡(luò )由監測網(wǎng)絡(luò )與控制網(wǎng)絡(luò )組成,采用雙冗余總線(xiàn)結構,系統網(wǎng)絡(luò )結構圖如圖1 所示。
圖1 電站監控系統網(wǎng)絡(luò )結構示意圖
監測網(wǎng)絡(luò )由若干個(gè)數據采集模塊與1 個(gè)網(wǎng)關(guān)組成,主要負責采集傳輸現場(chǎng)用于測量柴油發(fā)電機組繞組溫度、燃油壓力等傳感器數據;控制網(wǎng)絡(luò )由1 臺上位機、1 臺能量管理控制器與3 個(gè)輸入輸出模塊組成,完成對柴油發(fā)電機組起動(dòng)、停車(chē)、合閘、解列以及能量管理的遙控控制。監測網(wǎng)絡(luò )和控制網(wǎng)絡(luò )均采用雙絞線(xiàn)電纜作為通訊介質(zhì),根據網(wǎng)絡(luò )規模與數據傳輸流量,設置網(wǎng)絡(luò )總線(xiàn)速率為100kpbs。
數據采集模塊:數據采集模塊根據不同的傳感器類(lèi)型分別能夠采集、測量 Pt100 溫度信號、4~20mA 電流信號以及開(kāi)關(guān)量等信號。
能量管理控制器:實(shí)現電站監視與電能管理功能。
輸入輸出模塊:接收來(lái)自能量管理控制器的命令,控制發(fā)電機組運行,同時(shí)監測發(fā)電機組相關(guān)的電參數。
網(wǎng)關(guān):實(shí)現不同網(wǎng)絡(luò )間的數據交換。
監測網(wǎng)絡(luò )部分:數據采集模塊從外部采集傳感器數據后,將數據發(fā)送至網(wǎng)關(guān),網(wǎng)關(guān)將所有傳感器數據發(fā)送至上位機完成集中顯示與報警功能。
控制網(wǎng)絡(luò )部分:上位機將人工控制命令發(fā)送至能量管理控制器,該控制器將控制命令進(jìn)行處理表決,將結果發(fā)送至輸入輸出模塊,由輸入輸出模塊輸出控制信號控制發(fā)電機組狀態(tài)。另外,輸入輸出模塊采集發(fā)電機組相關(guān)電參數(電壓,電流,有功、無(wú)功功率等)發(fā)送至能量管理控制器進(jìn)行監測與管理。
網(wǎng)絡(luò )系統由兩條總線(xiàn)構成硬件雙冗余結構,若其中一條總線(xiàn)電纜受損或出現故障后,另一條總線(xiàn)仍能維持系統正常工作,防止通信網(wǎng)絡(luò )癱瘓。此外,為了保證通信網(wǎng)絡(luò )的可靠性與實(shí)事性,各個(gè)網(wǎng)絡(luò )節點(diǎn)還具有在線(xiàn)故障診斷,傳感器故障診斷等功能。
3 網(wǎng)絡(luò )通信標識符設計
在該網(wǎng)絡(luò )通信系統中,底層智能模塊選用Intel16 位的MCU,CAN 網(wǎng)絡(luò )控制器選用Philips 公司的SJA1000,實(shí)現CAN 網(wǎng)絡(luò )數據收發(fā)功能,系統中網(wǎng)絡(luò )總線(xiàn)使用CAN2.0B 協(xié)議格式,根據該系統監測網(wǎng)絡(luò )與控制網(wǎng)絡(luò )的不同功能,分別設計兩種網(wǎng)絡(luò )的報文標識符。
3.1 監測網(wǎng)絡(luò )協(xié)議
監測網(wǎng)絡(luò )中的數據采集模塊采集現場(chǎng)傳感器的模擬信號,通過(guò) A/D 轉換將其轉換為數字量信號后發(fā)送至監測網(wǎng)絡(luò ),數據刷新頻率為每秒2 批次。對于監測模塊而言,僅僅發(fā)送測量所得的現場(chǎng)傳感器數據,不需要接收其他網(wǎng)絡(luò )數據,因此設置驗收屏蔽寄存器禁止其他網(wǎng)絡(luò )數據接收,網(wǎng)關(guān)接收到各個(gè)數據采集模塊發(fā)送的數據之后將其發(fā)送至上位機。下表為監測網(wǎng)絡(luò )的報文標識符定義:
表 1 監測網(wǎng)絡(luò )CAN 標識符
每個(gè)數據采集模塊分配唯一的網(wǎng)絡(luò )節點(diǎn)號,每個(gè)網(wǎng)絡(luò )節點(diǎn)分配節點(diǎn)地址,此外,為了使網(wǎng)關(guān)設備快速判斷各數據采集模塊工作以及所發(fā)送的報文是否出現異常狀況,每個(gè)數據采集模塊在發(fā)送各自的報文時(shí)設置索引值,使用CAN 標識符的第13~22 位表示。當某個(gè)數據采集模塊起動(dòng)新的一個(gè)批次數據發(fā)送時(shí),索引值清零,每發(fā)送成功一幀報文后下一幀報文的索引值加1,當前批次數據發(fā)送完畢后索引值計數器清零,從而可根據每個(gè)模塊在一個(gè)批次內發(fā)送的報文個(gè)數確定該模塊的最大索引值。接收方在接收到某一節點(diǎn)發(fā)送的報文后先判斷標識符中的索引值信息,若接收到報文的索引值為不合理數值,則放棄對當前報文的接收處理。由此可以防止網(wǎng)關(guān)接收在傳輸時(shí)或者程序出錯時(shí)產(chǎn)生錯誤的報文,以提高網(wǎng)絡(luò )數據的可靠性。此外,監測網(wǎng)絡(luò )數據采集模塊設置定時(shí)向網(wǎng)關(guān)設備發(fā)送表示自身通信是否正常的協(xié)議幀,網(wǎng)關(guān)將其接收后轉發(fā)至上位機向用戶(hù)顯示系統網(wǎng)絡(luò )各個(gè)單元當前的工作狀態(tài),即網(wǎng)絡(luò )通訊狀態(tài)。
3.2 控制網(wǎng)絡(luò )協(xié)議
控制網(wǎng)絡(luò )中產(chǎn)生的控制命令一般是猝發(fā)式的,對于控制系統而言必須確??刂泼畋患皶r(shí)并且成功的發(fā)送,控制網(wǎng)絡(luò )報文標識符定義如下表所示:
表 2 控制網(wǎng)絡(luò )CAN 標識符
CAN 總線(xiàn)中非破壞性總線(xiàn)仲裁技術(shù),是從協(xié)議幀標識符的最高位開(kāi)始,即BIT.28 逐位比較下去,當出現參加仲裁的雙方在某一位第一次出現顯隱性不同時(shí),為顯性位的那個(gè)協(xié)議幀贏(yíng)得仲裁。根據CAN 總線(xiàn)的這一特性,即標識符值越小發(fā)送優(yōu)先級越高,根據系統中總線(xiàn)流程以及控制網(wǎng)絡(luò )中各網(wǎng)絡(luò )節點(diǎn)優(yōu)先級的高低從小到大設置各個(gè)模塊的網(wǎng)絡(luò )節點(diǎn)號,如表3 所示:
表3 控制網(wǎng)絡(luò )模塊網(wǎng)絡(luò )節點(diǎn)分配
當控制網(wǎng)絡(luò )數據發(fā)送頻繁時(shí),可能導致部分控制命令幀由于標識符優(yōu)先級的原因而丟失SJA1000 控制器的仲裁,雖然SJA1000 具有丟失仲裁后的自動(dòng)重新發(fā)送該報文的功能,但該控制命令幀仍然存在發(fā)送失敗的可能性,最終導致控制功能的失效。CAN 協(xié)議幀優(yōu)先晉升方案能夠大大降低上述情況發(fā)生的可能性,為實(shí)現控制命令幀發(fā)送時(shí)在丟失仲裁后重發(fā)的優(yōu)先級晉升,則必須禁止MAC 子層的自動(dòng)重發(fā)功能,由應用層來(lái)實(shí)現報文的重發(fā)。該系統采用Philips 公司的SJA1000 作為CAN 網(wǎng)絡(luò )控制器,可以通過(guò)在報文發(fā)送時(shí)設置其命令寄存器的第0、1 位禁止其自動(dòng)重發(fā)功能,改為單次發(fā)送。
起動(dòng)發(fā)送報文之后,MCU 須判斷該網(wǎng)絡(luò )節點(diǎn)是否已經(jīng)成功發(fā)送了一條報文或者報文發(fā)送失?。菏紫?,當SJA1000 中斷寄存器出現了仲裁丟失中斷或者發(fā)送中斷,表明該節點(diǎn)已經(jīng)處理完了一條報文,但是仍然不知道是否發(fā)送成功。如果成功,中斷寄存器就沒(méi)有仲裁丟失中斷,但是會(huì )產(chǎn)生發(fā)送中斷,因為發(fā)送成功后發(fā)送緩沖區會(huì )釋放。如果發(fā)送不成功,一定是與較高優(yōu)先級的協(xié)議幀競爭的結果,所以會(huì )有仲裁丟失中斷。但是改為單次發(fā)送后,發(fā)送失敗以后也會(huì )釋放緩沖區,因此將同時(shí)產(chǎn)生仲裁丟失中斷以及發(fā)送中斷。在得到節點(diǎn)已經(jīng)處理完一條報文后,只要用以上的規則進(jìn)行判斷就能知道上一條報文是否發(fā)送成功,也就是用來(lái)判斷是否需要晉升節點(diǎn)所發(fā)送信息幀的優(yōu)先級并重發(fā)該幀。
控制網(wǎng)絡(luò )的標識符劃分為三個(gè)部分,其中標識符的第 21 至28 位用于協(xié)議幀優(yōu)先晉升,這部分標識僅表示協(xié)議幀的優(yōu)先級,它由調度機制分配給協(xié)議幀的優(yōu)先級的變化而變化,設Pi=(2n-1)-kt,Pi 項為當前控制命令協(xié)議幀的優(yōu)先級,(2n-1)代表其優(yōu)先級隊列的初始值,即為隊尾;n 為優(yōu)先級隊列的二進(jìn)制數,BIT28:21 共有8 位數,所以這一項數值為0FFH。kt表示優(yōu)先級晉升項,t 為首次發(fā)送以來(lái)協(xié)議幀丟失仲裁的次數,k 為晉升權重,k 取值越大協(xié)議幀優(yōu)先晉升速度就越快(該系統中取k=1)。由此可見(jiàn),當某協(xié)議幀第一次發(fā)送時(shí),Pi=0FFH,當它在發(fā)送時(shí)與其他協(xié)議幀碰撞并失去仲裁時(shí),退出發(fā)送并且置Pi=0FEH 重新發(fā)送,因為此時(shí)其優(yōu)先級高于其他協(xié)議幀,在整個(gè)網(wǎng)絡(luò )中如果沒(méi)有其他和它具有相同優(yōu)先級的協(xié)議幀同時(shí)發(fā)送時(shí),即使與其他第一次發(fā)送的協(xié)議幀碰撞,也會(huì )贏(yíng)得仲裁,所以增大了該幀發(fā)送成功的概率。下圖為報文優(yōu)先級晉升控制流程:
圖 2 報文優(yōu)先級晉升控制流程
除此之外,系統具有控制參數在線(xiàn)修改的功能(如修改系統參數)。參數修改命令由上位機發(fā)出修改幀,能量管理控制器接收后進(jìn)行操作執行。當進(jìn)行在線(xiàn)控制參數修改時(shí),能量管理控制器將發(fā)出廣播消息通知控制網(wǎng)絡(luò )所有節點(diǎn)禁止所有控制動(dòng)作的輸出,以防止意外情況的發(fā)生。
在進(jìn)行參數的下載修改過(guò)程中,為避免修改幀發(fā)送失敗或丟失,從而導致系統參數混亂,甚至導致系統癱瘓的情況發(fā)生,使用幀標識符的第11、12 位表征修改幀的結構類(lèi)型:?jiǎn)螏?、非結束多幀和結束多幀。當待修改的參數數量較少,單個(gè)協(xié)議幀能夠包含所有修改信息時(shí),能量管理控制器接收到來(lái)自上位機的修改幀,并判斷該修改幀為單幀標識后,則立即進(jìn)行參數存儲空間的修改;若待修改的參數較多,單個(gè)協(xié)議幀無(wú)法包括所有待修改數據時(shí),上位機首先發(fā)出部分修改幀使用非結束多幀標識,發(fā)送至最后一個(gè)修改幀時(shí),標記為結束多幀。功率管理模塊只有在將全部待修改的參數接收完畢(即收到結束多幀標識)之后,才開(kāi)始對相應參數存儲空間進(jìn)行數據修改的操作。完成操作之后,能量管理控制器再將相應存儲空間修改完畢的數據發(fā)送反饋至上位機,進(jìn)行握手確認。采用以上系統參數修改機制同時(shí)結合協(xié)議幀優(yōu)先晉升方案,大幅提升了電站重要參數修改的可靠性。
表 4 參數修改幀的標識
4 結束語(yǔ)
船舶電站監控系統網(wǎng)絡(luò )通信的實(shí)現,節省了大量的現場(chǎng)線(xiàn)纜,整個(gè)系統便于調試。網(wǎng)絡(luò )數據傳輸過(guò)程中使用的協(xié)議幀優(yōu)先級晉升算法機制等處理方案以及雙冗余的網(wǎng)絡(luò )硬件結構,提高了現場(chǎng)總線(xiàn)網(wǎng)絡(luò )的可靠性和穩定性。同時(shí),此網(wǎng)絡(luò )適應力及擴展力強,可根據不同船舶電站系統的結構差異靈活配置系統的設備,并且隨時(shí)能加入新的站點(diǎn)及第三方設備。
評論