




摘" 要:針對(duì)目前國(guó)內(nèi)PLC大量采用國(guó)外通信協(xié)議進(jìn)行內(nèi)部數(shù)據(jù)交互的現(xiàn)狀,該文提出一種基于FPGA的PLC內(nèi)部通信協(xié)議,底板內(nèi)從站并行通信,底板間環(huán)網(wǎng)串行通信,在實(shí)現(xiàn)所有模塊可靠通信的同時(shí),提高數(shù)據(jù)傳輸效率,固定模塊間通信延時(shí),同時(shí)支持多主站冗余和從站主動(dòng)通信,為實(shí)現(xiàn)PLC的徹底國(guó)產(chǎn)化提供底層技術(shù)支持。
關(guān)鍵詞:PLC;FPGA;工業(yè)通信總線;時(shí)鐘提取;串并融合
中圖分類號(hào):U172.6" " " 文獻(xiàn)標(biāo)志碼:A" " " " " 文章編號(hào):2095-2945(2023)11-0042-04
Abstract: In view of the current situation that foreign communication protocols are widely used in domestic PLC for internal data exchange, this paper proposes a PLC internal communication protocol based on FPGA, which communicates in parallel between slave stations in the backplane and serial communication in the ring network between the backplane, which not only realizes reliable communication between all modules, but also improves data transmission efficiency, fixed communication delay between modules, and supports multi-master redundancy and slave active communication at the same time, so as to provide low-level technical support for the complete localization of PLC.
Keywords: PLC; FPGA; industrial communication bus; clock extraction; serial-parallel fusion
隨著工業(yè)控制技術(shù)的不斷發(fā)展,可編程控制器的應(yīng)用越來(lái)越廣泛,PLC內(nèi)部通信方式?jīng)Q定了其數(shù)據(jù)掃描周期,是影響PLC控制性能的關(guān)鍵因素。當(dāng)前的PLC內(nèi)部通信一般采用單一通信方式,如基于CAN、RS485或以太網(wǎng)的現(xiàn)場(chǎng)總線,有采用串行架構(gòu)亦有并行通信架構(gòu),采用多種通信方式,如周期I/O、全局I/O、主從總線、令牌總線、浮動(dòng)主站、CSMA/CD和令牌環(huán)等[1]。
PLC內(nèi)部通信方式多樣,無(wú)論采用總線結(jié)構(gòu)、還是環(huán)形結(jié)構(gòu),本質(zhì)是實(shí)現(xiàn)數(shù)據(jù)共享。PLC系統(tǒng)有明確的實(shí)時(shí)性要求,各從站對(duì)實(shí)時(shí)性的的要求不同,不同通信任務(wù)對(duì)實(shí)時(shí)性的要求也不同。PLC整體的實(shí)時(shí)性符合要求是指掛載在總線上所有從站的全部通信任務(wù)均滿足實(shí)時(shí)性要求。必須選擇適當(dāng)?shù)臄?shù)據(jù)傳送方式來(lái)滿足實(shí)時(shí)性需求,采用單一的通信方式雖然實(shí)現(xiàn)簡(jiǎn)單,但往往不能滿足所有從站的實(shí)時(shí)性需求。本文針對(duì)單一通信方式掃描周期長(zhǎng),數(shù)據(jù)傳輸實(shí)時(shí)性差的問(wèn)題,提出了一種基于FPGA實(shí)現(xiàn)的串并融合多主站通信方式,即在同一底板內(nèi)采用并行雙向總線、板間采用平行主站串行模式的通信方式,提高PLC數(shù)據(jù)共享效率,縮短主站掃描周期[2]。
1" PLC通信分析
當(dāng)前主流的PLC廠家均采用獨(dú)有的內(nèi)部通信協(xié)議,部分廠家將協(xié)議標(biāo)準(zhǔn)化,方便其他設(shè)備接入,但整體上還被國(guó)外廠家壟斷,例如西門子的MPI,GE的SNP,歐姆龍的HostLink、ControlLink,三菱的CC-LINK和倍福的EtherCAT等。國(guó)內(nèi)廠家浙大中控提出了一種基于實(shí)時(shí)以太網(wǎng)的EPA通信協(xié)議,應(yīng)用于工業(yè)企業(yè)管理層、過(guò)程監(jiān)控層網(wǎng)絡(luò)和變送器、執(zhí)行機(jī)構(gòu)、遠(yuǎn)程I/O和現(xiàn)場(chǎng)控制器等現(xiàn)場(chǎng)設(shè)備間的通信,但目前其生態(tài)建設(shè)并不理想,支持EPA通信的設(shè)備不多。其他國(guó)內(nèi)廠家均采用成熟通信協(xié)議,如和利時(shí)、匯川采用 Modbus-RTU,臺(tái)達(dá)則采用DVP協(xié)議。
從運(yùn)行模式上分析,自動(dòng)化設(shè)備一般分為功能固定設(shè)備和現(xiàn)場(chǎng)可編程設(shè)備(PLC)2種,功能固定設(shè)備追求的是極致的性能,在內(nèi)部通信上一般采用高效率的定制協(xié)議。可編程設(shè)備考慮更多的是方便擴(kuò)展,在內(nèi)部通信上一般采用通用的開放協(xié)議,便于連接其他設(shè)備和擴(kuò)展。通用協(xié)議雖然具備良好的兼容性,但帶來(lái)的弊端就是通信效率較低,傳輸有效內(nèi)容所需的附屬開銷太多,且輔助信息的大量傳輸使得有效信息的時(shí)效性得不到保證。
2" 串并融合內(nèi)部通信方式
本文提出了一種適用于PLC內(nèi)部數(shù)據(jù)傳輸?shù)拇⑷诤戏桨福暾腜LC系統(tǒng)包括以CPU為核心的主站和實(shí)現(xiàn)數(shù)據(jù)采集、控制輸出的各種從站,主站和從站一般通過(guò)底板實(shí)現(xiàn)連接。主站負(fù)責(zé)實(shí)現(xiàn)整個(gè)PLC系統(tǒng)的數(shù)據(jù)采集、邏輯處理和對(duì)外通信,同時(shí)通過(guò)底板可以與從站進(jìn)行通信,實(shí)現(xiàn)內(nèi)部數(shù)據(jù)傳輸,亦可通過(guò)內(nèi)部通信接口實(shí)現(xiàn)從站的擴(kuò)展,每個(gè)底板配置有獨(dú)立的供電模塊實(shí)現(xiàn)主從站的供電。本文所述PLC內(nèi)部通信系統(tǒng)結(jié)構(gòu)圖如圖1所示。底板與從站之間采用并行連接模式,所有數(shù)據(jù)全雙工傳輸,各從站獨(dú)立運(yùn)行,單一模塊故障不影響其他模塊運(yùn)行;主站與擴(kuò)展的地板之間采用以太網(wǎng)環(huán)網(wǎng)連接,正常單鏈路傳輸,信道或某一從站故障時(shí),啟動(dòng)冗余鏈路進(jìn)行通信。一般情況,系統(tǒng)有唯一主站負(fù)責(zé)所有通信的發(fā)起和調(diào)度,當(dāng)?shù)装逵兄鲃?dòng)信息上傳時(shí),可實(shí)現(xiàn)通信主動(dòng)權(quán)切換,形成多主站通信模式。
3" 主從站協(xié)議設(shè)計(jì)
PLC內(nèi)部通信協(xié)議包括底板與從站之間的板內(nèi)協(xié)議和主站與底板之間的板間協(xié)議,板內(nèi)采用基于FPGA的高速異步串行通信HASC協(xié)議(High speed Asynchronous Serial Communication),板間采用基于FPGA定制的以太網(wǎng)環(huán)網(wǎng)協(xié)議。
3.1" 板內(nèi)協(xié)議
高速異步串行通信HASC協(xié)議支持差分電平傳輸,波特率速度較低時(shí)亦可采用CMOS電平通信。底板與從站之間采用并行掃描、全雙工數(shù)據(jù)傳輸,接收時(shí)鐘由接收端從數(shù)據(jù)中提取,每個(gè)從站具有唯一類型編碼和固定的數(shù)據(jù)收發(fā)格式,報(bào)文中含有類型ID、數(shù)據(jù)長(zhǎng)度和優(yōu)先級(jí)等模塊信息。報(bào)文自帶CRC校驗(yàn),確保通信可靠,若校驗(yàn)失敗不重發(fā),下一周期繼續(xù)發(fā)送。底板為每一從站分配固定長(zhǎng)度收發(fā)緩存,以最快掃描周期(即各自發(fā)送幀連續(xù))進(jìn)行數(shù)據(jù)交互。
從站的上下行所有數(shù)據(jù)采用固定頻率傳輸,不區(qū)分周期性數(shù)據(jù)和非周期數(shù)據(jù),底板開辟固定長(zhǎng)度的只讀只寫存儲(chǔ)空間,對(duì)應(yīng)各從站的上下行數(shù)據(jù),HASC協(xié)議實(shí)時(shí)刷新存儲(chǔ)空間,保持?jǐn)?shù)據(jù)與各從站的一致性。
從站數(shù)據(jù)具有優(yōu)先級(jí)屬性,優(yōu)先級(jí)為0則采用周期上傳,為1則需底板主動(dòng)上傳。底板實(shí)時(shí)比較所有從站接收緩存數(shù)據(jù),如無(wú)優(yōu)先級(jí)為1數(shù)據(jù)變化,則采用周期上傳模式上傳數(shù)據(jù);若有優(yōu)先級(jí)為1的數(shù)據(jù)變化,則采用主動(dòng)上傳模式,即先偵測(cè)當(dāng)前是否在上傳數(shù)據(jù),若無(wú)則主動(dòng)發(fā)起數(shù)據(jù)上傳,若有則等待當(dāng)前數(shù)據(jù)發(fā)送完畢后立即發(fā)起數(shù)據(jù)上傳。
3.2" 板間協(xié)議
基于FPGA定制的以太網(wǎng)環(huán)網(wǎng)協(xié)議包括循環(huán)數(shù)據(jù)、主動(dòng)上傳數(shù)據(jù)、主動(dòng)下傳數(shù)據(jù)、心跳檢測(cè)數(shù)據(jù)4種報(bào)文,分別描述如下[3]。
3.2.1" 循環(huán)數(shù)據(jù)
循環(huán)數(shù)據(jù)傳輸模式如圖2所示,主站與所有底板組成環(huán)網(wǎng)通信,正常情況由主站發(fā)起數(shù)據(jù)傳輸,即主站組織下發(fā)需發(fā)送給底板1、底板2、底板3的數(shù)據(jù),每個(gè)底板數(shù)據(jù)長(zhǎng)度固定,內(nèi)含底板順序號(hào),各底板收到主站數(shù)據(jù)后從對(duì)應(yīng)編號(hào)數(shù)據(jù)段獲取接收數(shù)據(jù),然后填入發(fā)送數(shù)據(jù)。最末端底板填入發(fā)送數(shù)據(jù)后,通過(guò)環(huán)路將數(shù)據(jù)回傳至主站,各底板對(duì)上送至主站方向數(shù)據(jù)只做轉(zhuǎn)發(fā),不做處理。正常傳輸時(shí),主站發(fā)起的數(shù)據(jù)幀頭中含有地址信息,下行數(shù)據(jù)每通過(guò)一個(gè)底板,地址加1,返回?cái)?shù)據(jù)地址不變。
3.2.2" 主動(dòng)上傳數(shù)據(jù)
主動(dòng)上傳數(shù)據(jù)傳輸模式如圖3所示。若底板2有優(yōu)先級(jí)為1的數(shù)據(jù)變化,則底板2將發(fā)起主動(dòng)數(shù)據(jù)上傳,即首先檢測(cè)有無(wú)正在上傳數(shù)據(jù),然后主動(dòng)上傳。此時(shí)其他底板對(duì)上送至主站方向數(shù)據(jù)只做轉(zhuǎn)發(fā),不做處理,此數(shù)據(jù)為單行方向。
3.2.3" 主動(dòng)下傳數(shù)據(jù)
主動(dòng)下傳數(shù)據(jù)傳輸模式如圖4所示。若主站有優(yōu)先級(jí)為1的數(shù)據(jù)需傳送至底板3,主站可發(fā)起主動(dòng)下傳數(shù)據(jù),此時(shí)其他底板對(duì)此數(shù)據(jù)只做轉(zhuǎn)發(fā),此數(shù)據(jù)為單行方向。
3.2.4" 心跳檢測(cè)數(shù)據(jù)
心跳檢測(cè)數(shù)據(jù)傳輸模式如圖5所示。主站采用心跳的方式對(duì)環(huán)網(wǎng)各底板數(shù)量進(jìn)行校驗(yàn),即定期下發(fā)數(shù)據(jù)至各底板,每個(gè)底板收到數(shù)據(jù)之后將數(shù)量信息加1作為本底板位置信息,同時(shí)轉(zhuǎn)發(fā)數(shù)據(jù),最終端底板將位置信息回傳至主站方向。主站接收到位置信息后,記錄并與歷史數(shù)據(jù)比較鏈路中底板數(shù)量,若不一致,此時(shí)應(yīng)重新校準(zhǔn)數(shù)量后再發(fā)送循環(huán)數(shù)據(jù)。
3.2.5" 雙主站架構(gòu)
對(duì)于需要采用CPU冗余的重要應(yīng)用場(chǎng)合,系統(tǒng)支持雙CPU冗余,如圖6所示。主站0為主CPU,主站1為冗余CPU。正常運(yùn)行時(shí)所有數(shù)據(jù)的發(fā)起均為主站0,主站1只轉(zhuǎn)發(fā)數(shù)據(jù)和讀取底板數(shù)據(jù),不主動(dòng)發(fā)送數(shù)據(jù)。當(dāng)主從切換后(由主從站間專門通信信道實(shí)現(xiàn)),主站0轉(zhuǎn)為靜默狀態(tài),只轉(zhuǎn)發(fā)和讀取數(shù)據(jù),主站1開始掌控通信主導(dǎo)權(quán)。
4" 關(guān)鍵技術(shù)的FPGA設(shè)計(jì)
FPGA(Field Programmable Gate Array)可編程的邏輯列陣是半定制電路,依靠硬件來(lái)實(shí)現(xiàn)所有功能,速度可與專用芯片比肩,但擴(kuò)展性更強(qiáng),廣泛應(yīng)用于通信行業(yè)。雖然國(guó)內(nèi)FPGA起步較晚,高端產(chǎn)品在技術(shù)層面與國(guó)外產(chǎn)品相比仍有較大差距,但在國(guó)產(chǎn)化趨勢(shì)下,中端產(chǎn)品日趨成熟,在工業(yè)領(lǐng)域已逐漸開始國(guó)產(chǎn)替代。本文設(shè)計(jì)的PLC內(nèi)部通信協(xié)議采用上海安路科技的FPGA實(shí)現(xiàn)報(bào)文的收發(fā)管理、數(shù)據(jù)存儲(chǔ)、協(xié)議轉(zhuǎn)換和從站的數(shù)據(jù)采集、輸出控制。其關(guān)鍵技術(shù)包括串行數(shù)據(jù)時(shí)鐘提取、以太網(wǎng)環(huán)網(wǎng)控制器和實(shí)時(shí)地址校驗(yàn)等。
4.1" 串行數(shù)據(jù)時(shí)鐘提取
HASC高速異步串行通信采用雙線全雙工通信,收發(fā)采用異步模式,為了確保接收數(shù)據(jù)的正確性,需要從接受數(shù)據(jù)中提取時(shí)鐘,進(jìn)而在正確的時(shí)間準(zhǔn)確判決每個(gè)接收碼元[4]。
常規(guī)的通信時(shí)鐘提取一般采用數(shù)字鎖相環(huán)實(shí)現(xiàn),其基本原理是本地時(shí)鐘實(shí)時(shí)跟蹤輸入信號(hào)相位,形成閉環(huán)反饋?zhàn)詣?dòng)控制系統(tǒng)。由于存在跟蹤預(yù)熱時(shí)間,在對(duì)通信建立時(shí)間要求不高的場(chǎng)合較為適用,而PLC的所有從站均存在熱拔插需求,若采用數(shù)字鎖相環(huán)提取始終,每次拔插后從站的連接時(shí)間不確定[5]。
本文所述PLC內(nèi)部通信協(xié)議采用雙邊沿檢測(cè)的定速分頻方法實(shí)現(xiàn)串行通信時(shí)鐘提取,以通信波特率8倍的本地時(shí)鐘實(shí)時(shí)檢測(cè)接收數(shù)據(jù)的雙邊沿,在上升沿和下降沿分別啟動(dòng)計(jì)數(shù)器,根據(jù)2個(gè)計(jì)數(shù)器的計(jì)數(shù)值在接收數(shù)據(jù)的特定相位處完成提取時(shí)鐘的翻轉(zhuǎn),如果一段時(shí)間內(nèi)檢測(cè)不到接收數(shù)據(jù)的邊沿,則維持當(dāng)前提取時(shí)鐘的相位。FPGA內(nèi)部時(shí)鐘提取結(jié)構(gòu)圖如圖7所示。
4.2" 以太網(wǎng)環(huán)網(wǎng)控制器
標(biāo)準(zhǔn)工業(yè)以太網(wǎng)一般采用專用以太網(wǎng)控制器MAC和物理層PHY芯片,為提高通信效率本協(xié)議采用FPGA編碼實(shí)現(xiàn)雙以太網(wǎng)MAC,外擴(kuò)光電接口PHY實(shí)現(xiàn)環(huán)網(wǎng)數(shù)據(jù)通信。FPGA主要實(shí)現(xiàn)IEEE802.3標(biāo)準(zhǔn)的以太網(wǎng)MAC,包括PHY配置接口MDIO、PHY數(shù)據(jù)接口MII/RMII、收發(fā)存儲(chǔ)器、收發(fā)控制器和主機(jī)接口等模塊。其內(nèi)部連接關(guān)系如圖8所示[6]。
4.3" 實(shí)時(shí)地址校驗(yàn)
PLC運(yùn)行方式靈活,支持運(yùn)行過(guò)程中的熱拔插和缺模塊運(yùn)行,當(dāng)個(gè)別底板異常時(shí),其他底板位置信息將發(fā)生變化,環(huán)網(wǎng)亦將重構(gòu)。主站將利用循環(huán)數(shù)據(jù)的發(fā)送間隙發(fā)送心跳檢測(cè)數(shù)據(jù),實(shí)現(xiàn)所有底板的位置信息確認(rèn)。當(dāng)某一底板異常時(shí),主站將通過(guò)環(huán)網(wǎng)從左右2個(gè)方向?qū)崿F(xiàn)數(shù)據(jù)傳輸,當(dāng)異常底板數(shù)量超過(guò)1時(shí),主站將發(fā)出告警,但同時(shí)繼續(xù)運(yùn)行,采集剩余模塊的數(shù)據(jù)[7]。
5" 結(jié)束語(yǔ)
PLC采用基于國(guó)產(chǎn)FPGA實(shí)現(xiàn)的串并融合多主站通信方式,在實(shí)現(xiàn)所有模塊內(nèi)部可靠通信的同時(shí),具有極高的數(shù)據(jù)傳輸效率;支持信道冗余,避免單一模塊或通信介質(zhì)損壞時(shí)通信中斷;從站并行全雙工通信,各模塊解耦運(yùn)行,相互獨(dú)立;采用可編程器件FPGA實(shí)現(xiàn),針對(duì)不同用戶需求可實(shí)現(xiàn)針對(duì)性的擴(kuò)展定制;循環(huán)數(shù)據(jù)格式固定,采用固定網(wǎng)絡(luò)通信,通道傳輸延時(shí)固定可校準(zhǔn)。基于國(guó)產(chǎn)FPGA實(shí)現(xiàn)的串并融合多主站通信協(xié)議在PLC裝置上的應(yīng)用,將避開國(guó)外在協(xié)議層的壟斷和封鎖,形成具有自主知識(shí)產(chǎn)權(quán)的通信協(xié)議,同時(shí)推動(dòng)國(guó)產(chǎn)芯片的創(chuàng)新應(yīng)用,為實(shí)現(xiàn)工控產(chǎn)品供應(yīng)鏈自主可控提供數(shù)據(jù)支撐。
參考文獻(xiàn):
[1] 李建飛.基于MODBUS通信協(xié)議在DCS與PLC通信中的應(yīng)用[J].通訊世界,2016(19):46-47.
[2] 安春燕,汪濤,李建岐,等.基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電測(cè)與儀表,2016,53(2):108-113.
[3] 陳凡,李從飛,魯雅斌,等.基于FPGA的微機(jī)保護(hù)板間通信技術(shù)[J].電力系統(tǒng)保護(hù)與控制,2008(18):73-77.
[4] 賈錫學(xué),李巖,孔德明,等.OTDM系統(tǒng)時(shí)鐘提取和解復(fù)用研究[J].光通信研究,2013(2):15-18.
[5] 宋一丁,王振華,田巧紅,等.一種基于時(shí)鐘提取的曼徹斯特編解碼設(shè)計(jì)[J].電子設(shè)計(jì)工程,2020,28(8):123-126,131.
[6] 邱岳烽,賓志湘,黃紅光,等.一種基于FPGA的實(shí)時(shí)光纖環(huán)網(wǎng)通信技術(shù)[J].控制與信息技術(shù),2018(1):71-75,80.
[7] 孫馳,張成,艾勝.一種實(shí)用的大容量電力電子系統(tǒng)高速光纖環(huán)網(wǎng)拓?fù)浼捌鋮f(xié)議[J].中國(guó)電機(jī)工程學(xué)報(bào),2012,32(15):63-73.