(天津電氣科學研究院有限公司,天津 300301)
在“中國制造2025”的背景下,數(shù)字化工廠、智能工廠的概念被人們熟知。數(shù)字化工廠的本質(zhì)是信息集成。在自動化領域,通訊技術、工業(yè)以太網(wǎng)技術的突破是信息集成的關鍵。
工業(yè)以太網(wǎng)技術的應用進一步提高了生產(chǎn)效率、優(yōu)化利用資源、有利于生產(chǎn)規(guī)模的提升。在網(wǎng)絡連接方式上,需要更加靈活的網(wǎng)絡拓撲結(jié)構(gòu),具備更可靠的網(wǎng)絡冗余特性。在系統(tǒng)應用中,需要更強的抗干擾能力和強大的系統(tǒng)診斷功能。
PROFINET是一種適用于自動化領域的開放式以太網(wǎng)標準,實現(xiàn)了更高的通訊傳輸速率、更強的數(shù)字化技術和靈活的網(wǎng)絡技術[1]。PROFINET為用戶提供了一個完整的解決方案,覆蓋所有自動化領域的應用,可無縫集成現(xiàn)場總線系統(tǒng),目前在自動化領域應用最為廣泛。
本文介紹了一種基于ERTEC200P芯片的PROFINET IO工業(yè)以太網(wǎng)接口開發(fā)設計方案,包括硬件設計、軟件實現(xiàn)以及通訊測試?;谠摲桨缚煽焖賹崿F(xiàn)PROFINET IO接口開發(fā),對于拓展產(chǎn)品應用領域,提高產(chǎn)品競爭力具有很強的實際意義。
PROFINET基于標準以太網(wǎng)實現(xiàn),是一種實時的自動化技術。其中,PROFINET IO對應的中國國家標準為GB/T 25105.1—3—2014。
PROFINET采用100 Mb/s以太網(wǎng),使用全雙工通信,在一條電纜上實現(xiàn)更多應用[2]。PROFINET是100%交換網(wǎng)絡,不需要中繼器就可以實現(xiàn)靈活的網(wǎng)絡拓撲結(jié)構(gòu)。此外,PROFINET網(wǎng)絡為所有PROFINET設備提供設備診斷和網(wǎng)絡診斷,減少設備停機時間。
PROFINET采用獨立的通道用于IO數(shù)據(jù)輸出和TCP/IP,無需為TCP/IP準備額外網(wǎng)絡。PROFINET包含三種數(shù)據(jù)通訊方式,數(shù)據(jù)通道圖如圖1所示。
圖1 PROFINET數(shù)據(jù)通道圖Fig.1 Diagram of PROFINET data channel
1)標準數(shù)據(jù)通訊?;赥CP/IP協(xié)議,實現(xiàn)非實時(non real-time,NRT)數(shù)據(jù)通訊。用于傳遞參數(shù)化與配置信息,或讀取診斷數(shù)據(jù)。
2)實時(real-time,RT)數(shù)據(jù)通訊。RT通訊是非同步的,循環(huán)周期縮短至250 μs,支持100 Mb/s通信,適用于超過90%的自動化領域。PROFINET基于TCP/IP第二層協(xié)議,提供了優(yōu)化的實時通訊通道,縮短數(shù)據(jù)處理時間。
3)同步實時(isochronous real-time,IRT)數(shù)據(jù)通訊。IRT技術保證確定性數(shù)據(jù)和互聯(lián)網(wǎng)協(xié)議數(shù)據(jù)同時傳輸,循環(huán)周期縮短至31.25 μs。數(shù)據(jù)傳輸和設備周期是同步的,循環(huán)時間縮短至125 μs,滿足高性能(如伺服)控制系統(tǒng)的要求。
ERTEC200P是由西門子公司開發(fā)的增強型實時以太網(wǎng)控制器。主要特點為:集成了支持IRT的雙端口交換機,符合C類,循環(huán)時間可達31.25 μs。
ERTEC200P內(nèi)部集成標準250 MHz ARM926 EJ-S處理器,可以作為單片系統(tǒng),所有應用程序都在ERTEC200P實現(xiàn)[3]。其次,外部主機可以通過16/32位并行接口直接訪問片內(nèi)地址空間IORAM,相當于內(nèi)置的雙口RAM,將應用程序和通訊處理分開,構(gòu)成雙核系統(tǒng)。
ERTEC200P包含PROFINET IP核(PN-IP),用于實現(xiàn)高速PROFINET通訊。PN-IP內(nèi)核包含性能升級的“快速轉(zhuǎn)發(fā)”,“動態(tài)幀封裝”和“碎片”機制。因此,ERTEC200P支持開發(fā)IRT等實時通訊應用,PN-IP提供最小設備處理周期為31.25 μs的同步輸出。ERTEC 200P還允許無限制地訪問TCP/IP數(shù)據(jù)和服務,以便可以并行傳輸非時間關鍵數(shù)據(jù)。
ERTEC 200P適用于各種現(xiàn)場設備類型:快速IO設備、高精測量儀器、同步伺服驅(qū)動和編碼器以及所有高性能和智能自動化設備。
基于ERTEC200P以太網(wǎng)控制器專用芯片,西門子提供完整的PROFINET IO協(xié)議棧,支持全部PROFINET規(guī)范內(nèi)容。用戶無需關注協(xié)議棧具體實現(xiàn),即可實現(xiàn)RPFOINET IO工業(yè)以太網(wǎng)接口開發(fā)。
PROFINET IO協(xié)議棧實現(xiàn)的主要功能包括:與PROFINET IO控制器之間的周期及非周期數(shù)據(jù)交互;處理診斷和硬件中斷,通訊模塊動態(tài)增加、刪除中斷;分配以太網(wǎng)使用IP地址及設備名。
PROFINET IO協(xié)議棧主要技術參數(shù)包括:協(xié)議棧版本為V4.5.0;通訊模式為支持RT,IRT;支持協(xié)議包括DCP,LLDP,MRP,CLRPC等;IO數(shù)據(jù)長度為單向最大1 440 B。
基于ERTEC200P構(gòu)建PROFINET IO設備開發(fā)方案。系統(tǒng)主要由基于ERTEC200P的PROFINET IO設備和TCU1變頻器控制單元組成。如圖2所示。
圖2 硬件結(jié)構(gòu)圖Fig.2 Diagram of hardware structure
圖2中,ERTEC200P+SDRAM+SPI FLASH組成PROFINET IO設備核心部分,構(gòu)成PROFINET協(xié)議棧和用戶程序運行的最小系統(tǒng)。ERTEC200P和SDRAM之間通過16位數(shù)據(jù)寬度實現(xiàn)高速讀寫。SDRAM存儲器容量為64 MB,SPI FLASH容量為32 MB,滿足PROFINET協(xié)議棧和用戶程序的需求。
PROFINET IO設備外部接口:
1)通過20針2.54 mm標準JTAG接口,為ERTEC200P提供程序下載與調(diào)試功能。
2)通過3.3 V TTL UART,提供PROFINET協(xié)議棧系統(tǒng)運行調(diào)試接口。
3)通過網(wǎng)絡變壓器,RJ45接口等,實現(xiàn)2路100 Mb/s PROFINET以太網(wǎng)接口。
4)通過GPIO接口拓展3個LED發(fā)光二極管,指示協(xié)議棧和系統(tǒng)運行狀態(tài)。
5)通過SPI接口連接ERTEC200P與變頻器控制單元,兼容控制器原有接口。
ERTEC200P基于eCos實時操作系統(tǒng)創(chuàng)建系統(tǒng)任務,實現(xiàn)時鐘處理、串口通訊、網(wǎng)絡參數(shù)設置、通訊連接處理、PROFINET IO數(shù)據(jù)更新、通訊狀態(tài)顯示、控制器數(shù)據(jù)處理與交互[4]。系統(tǒng)軟件結(jié)構(gòu)圖如圖3所示。
圖3 軟件結(jié)構(gòu)圖Fig.3 Diagram of software structure
圖3中,各主要組成部分功能如下:
1)Task_MainApp任務負責系統(tǒng)控制,創(chuàng)建PNIO協(xié)議棧,初始化PNIO設備信息,檢測協(xié)議棧工作狀態(tài)。
2)Task_PNPB是PNIO協(xié)議棧任務,用于事件處理,如通訊連接關系的建立與斷開,模塊與子模塊的動態(tài)插入與刪除,數(shù)據(jù)處理的更新。Task_PNPB任務負責處理與Task_CycleIO任務的數(shù)據(jù)交互。
3)Task_RS232任務,用于串口調(diào)試,根據(jù)串口命令執(zhí)行相應操作對應的狀態(tài)信息。
4)Task_LED任務,根據(jù)PROFINET協(xié)議棧運行狀態(tài)和控制器通訊狀態(tài),控制指示燈的工作狀態(tài)。
5)Task_CycleIO任務,根據(jù)觸發(fā)信號,周期執(zhí)行PROFINET協(xié)議棧與用戶緩存區(qū)之間的IO數(shù)據(jù)交互。根據(jù)TRANS_END事件作為觸發(fā)信號,或者是固定周期產(chǎn)生的觸發(fā)信號,更新設備輸入輸出數(shù)據(jù)。
IRT通訊模式中,在周期數(shù)據(jù)的傳輸結(jié)束時刻,當所有的控制器IO CR和所有用戶IO CR連接全部完成時生成TRANS_END事件。
6)Task_EXCH任務,根據(jù)PROFINET IO設備輸入輸出模型,控制PROFINET IO數(shù)據(jù)到通訊數(shù)據(jù)區(qū)的轉(zhuǎn)換。
PROFINET IO設備數(shù)據(jù)存取模型如圖4所示。
圖4 數(shù)據(jù)存取模型Fig.4 Diagram of data access model
PROFINET IO設備與PROFINET IO控制器建立通訊連接后,在PNIO_cbf_ar_ownership_ind中獲取所有設備組態(tài)信息。其中,槽(slot)對應模塊(module),子槽(subslot)對應子模塊(submodule)。然后通過PNIO_sub_plug添加必要的模塊信息。
PROIFNET IO設備調(diào)用PNIO_initiate_data_read,接收PROFINET IO控制器下發(fā)數(shù)據(jù),將PNIO緩沖區(qū)數(shù)據(jù),根據(jù)對應關系放到槽和子槽中。同時,調(diào)用PNIO_initiate_data_write,把槽和子槽中數(shù)據(jù)更新到PNIO緩沖區(qū),上傳給PROFINET IO控制器。
PROFINET IO設備根據(jù)通信連接關系和子模塊屬性,按照模塊順序、輸入輸出類型和IO長度,將輸入輸出數(shù)據(jù)存儲到過程數(shù)據(jù)緩存區(qū)[5]。子模塊屬性在設備GSD文件中定義,表明PROFINET IO設備支持的輸入輸出模塊信息。通過過程緩存區(qū),PROFINET IO設備通過SPI接口實現(xiàn)與變頻器控制單元的數(shù)據(jù)交換。SPI為全雙工通信。PROFINET IO設備將基于PROFINET IO控制器產(chǎn)生的輸出數(shù)據(jù)傳送到控制單元,同時將控制單元返回數(shù)據(jù)傳送到PROFINET IO控制器。
PROFINET IO與變頻器控制單元通過SPI通信方式實現(xiàn)數(shù)據(jù)交換。一方面ERTEC200P提供SPI外設,開發(fā)方便;另一方面,兼容控制器原有接口,根據(jù)不同應用場合,可以實現(xiàn)外部通訊模塊無縫替換。
SPI通信協(xié)議根據(jù)傳輸類型分為兩類,一種是周期性傳輸?shù)耐ㄐ艛?shù)據(jù)幀,一種是非周期傳輸?shù)耐ㄐ艆?shù)幀,SPI通信協(xié)議如圖5所示。
圖5 SPI通信協(xié)議Fig.5 SPI communication protocol
3.3.1 通信數(shù)據(jù)幀
命令字為0x01,表示當前傳輸為數(shù)據(jù)幀。
模塊ID說明當前通訊模塊類型,SPI協(xié)議設計兼容原有通訊模塊,如PROFIBUS DP,對于底層設備而言,可實現(xiàn)無縫替換。
狀態(tài)字指示PROFINET IO設備與PROFINET IO控制器的通訊連接狀態(tài)。連接關系建立后,從通訊斷開狀態(tài)切換到通訊連接狀態(tài)。根據(jù)數(shù)據(jù)有效性,在通訊連接狀態(tài),當數(shù)據(jù)傳輸內(nèi)容不符時,切換到通訊報警狀態(tài)。
根據(jù)模塊屬性計算數(shù)據(jù)區(qū)長度,根據(jù)過程數(shù)據(jù)填充數(shù)據(jù)區(qū)內(nèi)容。通信數(shù)據(jù)幀為周期性傳輸,當PROFINET IO數(shù)據(jù)更新后,立即發(fā)起和控制單元的數(shù)據(jù)交換??刂破骰貜偷臄?shù)據(jù)幀格式與發(fā)送格式一致,除了模塊ID對應為設備ID,表明當前連接的底層設備信息。
3.3.2 通信參數(shù)幀
命令字為0x02,表示當前傳輸為參數(shù)幀。
參數(shù)幀為非周期數(shù)據(jù)幀,當PROFINET IO設備初始化,或設備參數(shù)信息發(fā)生變化時發(fā)起傳輸。
參數(shù)幀的數(shù)據(jù)傳輸內(nèi)容固定,包含6個B的MAC地址和6個B的IP地址,因此無需額外說明數(shù)據(jù)區(qū)長度。
控制器解析到有效數(shù)據(jù)后,通過外部接口顯示PROFINET設備信息,方便觀測與配置。
通過PROFINET IO控制器到底層設備之間的通信測試,驗證PROFINET IO接口開發(fā)功能。測試環(huán)境硬件結(jié)構(gòu)圖如圖6所示。
圖6 測試環(huán)境結(jié)構(gòu)圖Fig.6 Diagram of test environment
測試環(huán)境由PLC S7-1500(PROFINET IO控制器)、PROFINETIO接口設備(ERTEC200P)、TCU1控制板、具備端口鏡像功能的交換機以及安裝TIA Portal V13軟件和wireshark軟件的PC機組成。
首先,將PROFINET IO控制器(PLC S7-1500)經(jīng)交換機連接ERTEC200P與TCU1控制單元。然后將交換機右側(cè)兩個端口配置為鏡像端口,其中一個端口連接到PC機,以便通過wireshark軟件抓取PROFINET通信報文,分析網(wǎng)絡數(shù)據(jù)包。
通過博圖軟件配置設備組態(tài)信息,將PLC S7-1500的IP地址設置為192.168.0.1,PROFINET IO設備的IP地址設置為192.168.0.2,設備通訊模塊Slot1Subslot1選擇64 B輸入,輸入地址IW0-63;Slot2Subslot1選擇64 B輸出,輸出地址QW0-63;如圖7所示。
設置TCU1控制單元,將PLC-1500下發(fā)數(shù)據(jù)回傳。通過博圖軟件在線觀測,比較輸出數(shù)據(jù)(強制參數(shù)值表)與輸入數(shù)據(jù)(觀測參數(shù)值表)二者對應關系,如圖8所示。
圖7 設備組態(tài)圖Fig.7 Diagram of device configuration
圖8 輸入數(shù)據(jù)與輸出數(shù)據(jù)Fig.8 Diagram of input data and output data
圖8中,將輸出參數(shù)值QW8~QW14依次強制為0x5566,0x7788,0x99AA,0xBBCC。輸入?yún)?shù)值與下方的輸出參數(shù)值是一致的,說明PLC到TCU1控制器之間數(shù)據(jù)交互正常,PROFINET IO設備的協(xié)議轉(zhuǎn)換功能實現(xiàn)。
通過wireshark軟件抓取PROFINET通信報文,如圖9所示。
分析抓取數(shù)據(jù)包,前6個字節(jié)0x28,0x63,0x36,0x8b,0xc5,0x66為目的MAC地址,是西門子PLC的MAC地址。接下來的6個字節(jié)0x80,0x20,0xcb,0x30,0x06,0xfc為目的MAC地址,是PROFINET IO設備的MAC地址。表明當前數(shù)據(jù)傳輸方向為從PROFINET IO設備到PLC。接下來的兩個字節(jié)0x88,0x92表明當前數(shù)據(jù)幀為PROFINET 協(xié)議幀。中間的 0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc對應輸入數(shù)據(jù)。同樣,說明RPFOIENT IO設備轉(zhuǎn)換功能正常。
圖9 數(shù)據(jù)包分析Fig.9 Packet analysis
本文從開發(fā)的角度介紹了一種基于ERTEC200P的PROFINET IO接口的快速實現(xiàn)方案,包括硬件設計、軟件實現(xiàn)與通信測試。本通訊模塊及其配套應用產(chǎn)品TAC1系列變頻器已委托中國PROFIBUS & PROFINET協(xié)會(PI-China)進行檢測并順利通過認證測試,充分驗證了方案設計的合理性。通過該設計方案將TACI變頻器產(chǎn)品快速集成到PROFINET網(wǎng)絡,滿足了現(xiàn)場應用的需求,具有很強的實際意義。