秦 坤,袁嫣紅,諸建強
(1. 浙江理工大學(xué) 機械與自動控制學(xué)院,浙江 杭州 310018;2. 杭州依途科技有限公司 技術(shù)部,浙江 杭州 310018)
隨著制造企業(yè)生產(chǎn)過程執(zhí)行管理系統(tǒng)(Manufacturing Execution System,MES)的推廣應(yīng)用和普及,工業(yè)生產(chǎn)過程中的信息,如溫濕度、加工工藝、條碼數(shù)據(jù)等必須進行實時傳輸和保存,以便生產(chǎn)管理人員對工藝參數(shù)和過程進行監(jiān)測,對問題進行追溯分析[1].生產(chǎn)過程的信息主要使用RS232、RS485、CAN、以太網(wǎng)等總線進行傳輸.這類總線都需要施工布線來構(gòu)建物理層,但這在部分空間有限、布線困難的生產(chǎn)車間內(nèi)是無法實現(xiàn)的.基于電力線載波(Power Line Carrier, PLC)的通信方式可以較好地解決重新布線問題,但是在電力線上進行通信,通常存在數(shù)據(jù)丟失率較高的問題.生產(chǎn)過程中產(chǎn)生的信息是MES分析處理的關(guān)鍵數(shù)據(jù),因此保證數(shù)據(jù)傳輸?shù)目煽啃允种匾?
在電力線上構(gòu)建通信網(wǎng)絡(luò)需要合適的介質(zhì)訪問控制(Medium Access Control,MAC)層.MAC層主要使用的協(xié)議有以太網(wǎng)CSMA/CD、無線CSMA/CA、令牌環(huán)和輪詢協(xié)議.殷樹剛等研究發(fā)現(xiàn),CSMA/CD協(xié)議雖已成熟地應(yīng)用于用戶的用電信息上報,但是無法完全避免節(jié)點并發(fā)數(shù)據(jù)沖突[2].余建波等[3]和劉雯靜等[4]使用CSMA/CA協(xié)議重點解決了電力線節(jié)點并發(fā)數(shù)據(jù)沖突和網(wǎng)絡(luò)吞吐量小的問題,但所用算法實現(xiàn)復(fù)雜.Gershon R等較早地將令牌環(huán)協(xié)議應(yīng)用于電力線組網(wǎng)中,但在電力線干擾環(huán)境中令牌容易丟失,重組代價高[5].輪詢協(xié)議抗干擾和抗網(wǎng)絡(luò)終端失效的能力強,沒有地址競爭沖突,不足之處是隨終端數(shù)量的增多,傳輸時延會增加[6].本文設(shè)計的電力線載波輪詢通信方案由于應(yīng)用于信息采集場合,對數(shù)據(jù)傳輸?shù)目煽啃砸蟾?,對實時性要求并不苛刻,且從機節(jié)點較少,因此其MAC層采用輪詢仲裁協(xié)議可保證輪詢可靠性,降低實現(xiàn)的復(fù)雜度,滿足通信的要求.
電力線載波通信和傳統(tǒng)通信相比存在巨大差異,其線路阻抗、噪聲、衰落以及多徑時延等都會嚴(yán)重影響電力線載波信道的性能和通信質(zhì)量[7].因此,已廣泛應(yīng)用于專用有線網(wǎng)和無線網(wǎng)的MAC層協(xié)議不能直接用于電力線網(wǎng)絡(luò),必須相應(yīng)改進后才能適用于信道惡劣的電力線上.對輪詢系統(tǒng)改進的研究主要有以下方面:趙東風(fēng)等[8]和Boon M A A等[9]對多級門限服務(wù)進行輪詢系統(tǒng)建模分析,得到了排隊長、平均循環(huán)周期、平均等待時延,使輪詢控制更有效;Liu Q L等引入優(yōu)先級輪詢策略,對節(jié)點分級后讓普通節(jié)點分配低優(yōu)先級,從優(yōu)先級角度增強了通信可靠性[10];何敏等提出可休眠的輪詢服務(wù)策略,降低能耗的同時兼顧了系統(tǒng)性能[11].文獻中從數(shù)據(jù)重傳補發(fā)角度來增強系統(tǒng)可靠性和提升通信服務(wù)質(zhì)量(Quality of Service,QoS)的研究很少.
本文首先介紹應(yīng)用于MES條碼信息采集的改進輪詢方案,對網(wǎng)絡(luò)層增加的機制和物理層使用的技術(shù)進行說明;其次敘述本方案主要的改進點,并通過實驗發(fā)現(xiàn)傳統(tǒng)輪詢方案運用在電力線上存在的丟包等問題;之后詳細介紹重傳、幀序號等機制的實現(xiàn),自行設(shè)計網(wǎng)絡(luò)層通訊協(xié)議幀格式,組建16點電力線通信網(wǎng)絡(luò);最后通過實驗引入生產(chǎn)線中常見的電機等噪聲干擾,統(tǒng)計丟包率,對改進輪詢方案與傳統(tǒng)輪詢方案進行比較.
本文從網(wǎng)絡(luò)層和物理層兩方面對傳統(tǒng)輪詢方案進行改進,實現(xiàn)寬帶電力線載波可靠輪詢通信.其中網(wǎng)絡(luò)層是改進輪詢方案的重點.
在網(wǎng)絡(luò)層引入TCP/IP(Transmission Control Protocol/Internet Protocol)網(wǎng)絡(luò)的狀態(tài)位、幀序號、超時重傳、掉線重連、緊急幀等一系列概念,從機制上改進傳統(tǒng)的輪詢通信方式.物理層使用寬帶類載波CR600芯片,其峰值速率最大為200 Mbps,載波頻段被擴展為2~28 MHz,避開了電網(wǎng)干擾噪聲集中的1 MHz頻段[12],同時使用正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)技術(shù),使通信的抗干擾能力更強.
對比傳統(tǒng)輪詢方案,改進方案的主要優(yōu)點如下:①物理層無需專用通信線路;②從機一個節(jié)點發(fā)生故障時,整個總線不會癱瘓;③網(wǎng)絡(luò)層使用多種保障通信機制,改進了基本輪詢應(yīng)答協(xié)議;④寬帶載波方式通信的速率較高.
改進方案在工業(yè)環(huán)境信道惡劣的電力線上完成了16點高速可靠輪詢通信.該通信網(wǎng)絡(luò)的物理拓撲如圖1所示.主機和從機通過220 V電力線相連,共有16個從機模塊,主機將從機采集的條碼數(shù)據(jù)匯集后輸入服務(wù)器.
圖1 通信網(wǎng)絡(luò)拓撲
盡管在物理層已經(jīng)使用OFDM技術(shù)來提升抗干擾性,但是并不能保證數(shù)據(jù)的完全可靠傳輸.傳統(tǒng)的輪詢應(yīng)答協(xié)議應(yīng)用在電力線載波通信的實際工作中,存在以下幾種典型問題:①從機因故障掉線時,主機因未收到應(yīng)答幀會重復(fù)詢問當(dāng)前從機;②重傳導(dǎo)致從機發(fā)送的數(shù)據(jù)在主機中排列錯位,沒有排序;③從機的空應(yīng)答幀重發(fā)狀態(tài)與有數(shù)據(jù)應(yīng)答幀重發(fā)狀態(tài)重疊,造成主機接收丟幀;④當(dāng)從機出現(xiàn)緊急狀況需要及時響應(yīng)時,沒有緊急處理機制.
為解決這些問題,改進方案對電力線網(wǎng)絡(luò)QoS進行研究,加入重傳、幀序號等通信保障機制,以實現(xiàn)可靠高速的電力線載波通信.
通信幀協(xié)議格式以網(wǎng)絡(luò)層所包含的數(shù)據(jù)鏈路層協(xié)議攜帶的功能標(biāo)識碼為基礎(chǔ),由主從機地址、幀命令碼、輪詢狀態(tài)碼、幀序號、數(shù)據(jù)區(qū)長度、數(shù)據(jù)區(qū)、CRC(Cyclic Redundancy Check)碼組成(圖2).
圖2 通信幀協(xié)議格式
(1)主/從機地址 (Host/Slave Address).它表明數(shù)據(jù)的源地址和到達的從機地址.電力線屬于共享信道,總線上每幀都能被各節(jié)點偵聽到.當(dāng)?shù)刂窞?xFF時定義為廣播幀,主機地址和從機地址各占一個字節(jié).
(2)幀命令碼 (Command).通信中需要傳輸不同的幀類型,分為數(shù)據(jù)幀、命令幀、無數(shù)據(jù)應(yīng)答幀、數(shù)據(jù)接收完成應(yīng)答幀、緊急幀等.傳輸?shù)膸愋陀蓭畲a給出,占用一個字節(jié).
(3)輪詢狀態(tài)碼 (Polling State).輪詢狀態(tài)碼指上次輪詢中主機接收從機數(shù)據(jù)的正確與否,它占用一個字節(jié).
(4)幀序號 (Sequence Number).每個數(shù)據(jù)包都分配了唯一的序列號,用以標(biāo)識包,不但能避免重復(fù),還能保證數(shù)據(jù)的順序.此次發(fā)送和接收成功后,下個數(shù)據(jù)包為剛發(fā)送的數(shù)據(jù)序號加1,序號在0~255內(nèi)循環(huán).幀序號占用一個字節(jié).
(5)數(shù)據(jù)區(qū)長度 (Data Length).在通信幀協(xié)議中,一幀數(shù)據(jù)區(qū)最大傳輸1 450個字節(jié).數(shù)據(jù)區(qū)長度值占用2個字節(jié).
(6)循環(huán)冗余校驗(CRC).通過它對傳輸?shù)臄?shù)據(jù)進行高質(zhì)量檢錯,以保證數(shù)據(jù)的正確性.CRC計算采用快速查表法,占用2個字節(jié).
主機詢問幀的輪詢狀態(tài)位用來標(biāo)明上次主機接收從機的數(shù)據(jù)正確與否.無論從機是否應(yīng)答,主機都會在下一時間點開始時詢問下一個從機,以解決主機未收到從機應(yīng)答而重復(fù)詢問的問題.主機開始詢問從機到從機數(shù)據(jù)返回主機耗時為4~6 ms,加上數(shù)據(jù)處理時間,主機輪詢每個從機間隔設(shè)定在10 ms.主機如果在限定時間內(nèi)接收到從機A的應(yīng)答幀,則將狀態(tài)碼 .state置為0x01,主機在下次詢問A時,若詢問幀攜帶此狀態(tài)碼,則說明主機上次接收是成功的.如果主機等待超時而未收到從機應(yīng)答,狀態(tài)碼置0x00,則說明主機未接收成功,從機重發(fā)緩沖區(qū)中上次發(fā)送的數(shù)據(jù).主機輪詢狀態(tài)流程如圖3所示.
圖3 主機輪詢狀態(tài)流程
主機按照一個從機點分配10 ms的速度進行輪詢.主從機之間的傳輸幀由于信道干擾會出現(xiàn)丟失的情況.主機每次發(fā)送數(shù)據(jù)幀都要啟動定時器開始計時,設(shè)置一個單位為毫秒的定時器,復(fù)用成對應(yīng)最多容納64個從機數(shù)據(jù)的等待計時器Slave_time.當(dāng)主機詢問幀發(fā)出時,定時器開始計時,超過設(shè)定時間Limit_time未收到應(yīng)答時判斷為超時.超時設(shè)定可根據(jù)網(wǎng)絡(luò)負載、信道干擾的具體情況進行.輪詢狀態(tài)Slave_state為0,說明未收到應(yīng)答,繼續(xù)計時.如果主機成功收到從機應(yīng)答,Slave state則置1,對應(yīng)的從機定時器停止計時.超時重傳的部分代碼如下:
void user_TIMER_IRQHandler( )
{ /* 判斷定時器標(biāo)志是否置位 */
if ( TIM_GetITStatus( TIM3 ) == SET ){
/* Slave_counts為從機數(shù)量 */
for( j = 0;j < Slave_counts; j++ ){
/* 遍歷每個從機定時器 */
if( Slave_state[j] == 0 ){
/* 無應(yīng)答狀態(tài)計時 */
Slave_time[j] ++;
}
}
}
}
主機通過比較Slave_time與Limit_time來判斷接收是否超時.如果超時,則輪詢狀態(tài)置0,表示此從機在下次輪詢需重傳數(shù)據(jù).超時設(shè)定的部分代碼如下:
/* 判斷是否超過限定時間 */
if ( Slave_time[j] > Limit_time ){
Slave_state[j] = 0;
}
else Slave_state[j] = 1;
物理層加入載波中繼和重傳機制后,數(shù)據(jù)包到達主機端存在重復(fù)接收數(shù)據(jù)和亂序問題.可加入幀序號來解決這一問題,主機只接受期望得到的數(shù)據(jù),特別是對從機到達數(shù)據(jù)有順序要求時,通過判斷幀序號進行排序存儲,能夠保證數(shù)據(jù)的有序性.主機詢問幀狀態(tài)位 .state為1,說明從機上次發(fā)送給主機的數(shù)據(jù)被成功接收,從機將幀序號自動加1并與新讀出的數(shù)據(jù)組成應(yīng)答幀發(fā)送給主機,如果 .state為0則序號不變,和上次發(fā)送的數(shù)據(jù)組成應(yīng)答幀重發(fā).應(yīng)答幀序號如圖4所示.
圖4 應(yīng)答幀序號示意圖
采用輪詢機制時,正常輪詢從機所有點的周期為16×10 ms,每10 ms至多傳輸1 450個字節(jié),網(wǎng)絡(luò)理論帶寬在1.1 Mbps左右.該輪詢速度對于當(dāng)前方案完全可以滿足要求.但是,考慮到從機可能瞬時接收大量數(shù)據(jù)的情況,對從機建立了16個隊列來緩存數(shù)據(jù).當(dāng)判斷上次傳輸成功時讀出隊列中下個數(shù)據(jù)單元,否則重發(fā)上次數(shù)據(jù).CR600的Flash存儲容量達1 MB,能夠充分容納緩存條碼數(shù)據(jù).從機重發(fā)分為重發(fā)空數(shù)據(jù)應(yīng)答幀和重發(fā)數(shù)據(jù)幀.對于幀丟失導(dǎo)致本應(yīng)該重發(fā)數(shù)據(jù)應(yīng)答幀卻重發(fā)了空數(shù)據(jù)幀的問題,從機需要每次發(fā)送完成后記住所發(fā)送的幀類別,收到詢問幀時進行準(zhǔn)確判斷并重發(fā).從機接收詢問幀的處理流程如圖5所示.
圖5 從機接收詢問幀的處理流程
當(dāng)隊列接近滿位或從機因發(fā)生故障需要及時處理時,從機發(fā)出緊急幀命令,請求主機及時詢問處理.主機輪詢一個從機點分配的是10 ms,在信道正常的情況下傳輸時延為4~6 ms(實測).因此,輪詢空隙是允許緊急幀傳輸?shù)?從機有緊急請求時會通過當(dāng)前總線中主機詢問幀的幀命令碼最高位是否為1,判斷當(dāng)前是否有別的緊急幀占用,如果沒有則發(fā)出請求,否則繼續(xù)等待下個輪詢節(jié)點的輪詢空隙.輪詢空隙的時間占用情況如圖6所示.主機接收完成后立刻在下個輪詢間隔詢問發(fā)出緊急命令的從機.
圖6 輪詢空隙的時間占用情況
為了避免多個緊急幀造成的輪詢網(wǎng)絡(luò)擁塞,改進方案在一個輪詢周期內(nèi)只允許5個緊急幀.這在一定程度上提高了輪詢響應(yīng)的及時性.
改進方案采用廣泛使用的CRC16算法,對協(xié)議幀校驗碼區(qū)之前所有字節(jié)進行校驗.將CRC表值存儲于Flash中,采用快速查表法加快校驗速度.主機詢問幀和從機應(yīng)答幀都在校驗通過的情況下讀取和發(fā)送.
用電力線上1臺主機和16臺從機組成網(wǎng)絡(luò).其工作設(shè)備中,850 W三相電機、鎮(zhèn)流器、600 W伺服電機等對電力線通信會產(chǎn)生較強干擾.實驗所用電力線網(wǎng)絡(luò)設(shè)備組成如圖7所示.電力線處于一個電能計量表范圍內(nèi),每個從機連接若干個霍尼韋爾3310g型串口條碼采集槍,以便將條碼數(shù)據(jù)發(fā)送給主機.
圖7 實驗用電力線網(wǎng)絡(luò)設(shè)備組成
實驗測量了在電力線信道不同信噪比下,基本輪詢和改進輪詢兩種傳輸模式的丟包率,首先通過PLC Tool Manager工具測量不同時刻的物理層信噪比,并逐步將干擾設(shè)備啟動后接入電網(wǎng),使電力線信道的信噪比逐漸降低(代表當(dāng)前電力線信道環(huán)境變差);然后進行16個點的整網(wǎng)絡(luò)測試,在不同信噪比環(huán)境下,從機把每幀128個字節(jié)的條碼數(shù)據(jù)打包發(fā)送至主機,統(tǒng)計從機的發(fā)送包總量與主機的接收包總量之差,通過該差值與發(fā)送總量的比得出丟包率.兩種方案(基本輪詢和改進輪詢)在相同環(huán)境下丟包率比較測試結(jié)果如圖8所示.
圖8 兩種方案丟包率比較測試的結(jié)果
電力線上噪聲是影響通信質(zhì)量的主要因素.它具有脈沖性、連續(xù)性和隨機性,是各種干擾設(shè)備產(chǎn)生的噪聲疊加.圖8所示,在信噪比為60 dB,信道環(huán)境優(yōu)良時,基本輪詢與改進輪詢的丟包率相差很小,兩種方案的性能接近;隨著信噪比降低,噪聲對電力線通信的質(zhì)量產(chǎn)生了較大的影響,基本輪詢不具有數(shù)據(jù)重傳機制,導(dǎo)致電力線通信的丟包率增大,在信噪比為15 dB時,丟包率達到了5.2%,而改進輪詢方案的丟包率略微升高,為0.08%.這是因為改進輪詢加入了通訊保障機制,丟包率被控制在較低的水平,通信質(zhì)量得到了改善.
信噪比較低時,由于噪聲干擾會啟動重傳機制,一個數(shù)據(jù)包某些時刻會經(jīng)過多個輪詢周期才能傳輸完成,帶來的時延相應(yīng)增加,因此改進方案較適用于非實時性信息的采集場合.
(1)本文提出了具有重傳、幀序號等機制的改進輪詢方案,在信道環(huán)境惡劣的電力線上進行了實驗驗證.結(jié)果表明,該方案改進通信質(zhì)量效果明顯,可以實現(xiàn)在數(shù)據(jù)實時性要求不敏感場合的信息可靠傳輸.
(2)該方案已應(yīng)用于泰州樂葉光伏科技有限公司MES智能制造信息采集系統(tǒng),為現(xiàn)場布線困難的生產(chǎn)過程信息的可靠傳輸提供了保障,也可為基于電力線載波的信息采集應(yīng)用提供參考.
(3)下階段,計劃引入快速信令重傳機制,使輪詢通信更加可靠,實現(xiàn)更好的QoS保障.
參考文獻:
[1] 盛步云,蘇佳奇,盧其兵,等.面向MES的生產(chǎn)線數(shù)據(jù)采集系統(tǒng)的研究[J].計算機測量與控制,2015,23(9):3162-3164.
[2] 殷樹剛,張成文,田海亭,等. 載波偵聽/沖突檢測機制應(yīng)用于低壓電力線載波通信的適應(yīng)性分析[J].電網(wǎng)技術(shù),2012,36(8):233-238.
[3] 余建波,宗衛(wèi)周,程 輝.基于CSMA/CA的電力載波通信及在照明系統(tǒng)應(yīng)用[J].東北大學(xué)學(xué)報,2017,38(6):766-771.
[4] 劉雯靜,郭靜波.基于優(yōu)先級策略的跨層優(yōu)化NPLC CSMA/CA機制[J].清華大學(xué)學(xué)報(自然科學(xué)版),2014:54(9):1148-1154.
[5] Gershon R,Propp D,Propp M.A token passing network for powerline communications[J].IEEE Transactions on Consumer Electronics,2002,37(2):129-134.
[6] (德)哈斯尼加,(德)海迪納,(德)勒耐特.寬帶電力線通信網(wǎng)絡(luò)設(shè)計[M].宋 健,趙丙鎮(zhèn),李 曉,譯.北京:人民郵電出版社,2008:148-151.
[7] 妙紅英,高 寅,王 松,等.寬帶電力線載波通信技術(shù)在用電信息采集系統(tǒng)中的應(yīng)用[J].華北電力技術(shù),2015(4):16-19.
[8] 趙東風(fēng),丁洪偉,趙一帆,等.多級門限服務(wù)輪詢系統(tǒng)MAC離散時間控制協(xié)議模型分析[J].電子學(xué)報,2010,38(7):1495-1499.
[9] Boon M A A,Adan I J B F,Boxma O J.A polling model with multiple priority levels[J].Performance Evaluation,2010,67(6):468-484.
[10]Liu Q L,Zhao D F,Zhao Y F.An efficient priority service model with two-level-polling scheme[J].High Technology Letters,2011,17(3):245-251.
[11]何 敏,官 錚,保利勇,等.無線傳感器網(wǎng)輪詢接入控制平均查詢周期分析[J].儀器儀表學(xué)報,2016,37(11):2637-2644.
[12]許國強. 自適應(yīng)跳頻PLC技術(shù)研究[D].保定:華北電力大學(xué),2008.