黃曉虎,許東歡,張偉,林益鋒
(上海航天控制技術(shù)研究所,上海 200233)
現(xiàn)場數(shù)據(jù)的采集及通信一直是電子信息領(lǐng)域的熱點研究,它促進了生產(chǎn)過程的智能化和網(wǎng)絡(luò)化[1]。對于制造企業(yè)而言,車間占有重要地位,智能工廠[2]依靠大量的現(xiàn)場數(shù)據(jù)來進行加工生產(chǎn)。隨著對生產(chǎn)能力和質(zhì)量的要求越來越高,伺服電機驅(qū)動器也需要更快的響應(yīng)時間和更高的驅(qū)動精度。利用實時工業(yè)以太網(wǎng)技術(shù)將所有設(shè)備連接到一個聚合網(wǎng)絡(luò),以實現(xiàn)智能控制及云連接等。因此,通過高性能實時網(wǎng)絡(luò),將工業(yè)現(xiàn)場大量的數(shù)據(jù)實時采集、傳輸及監(jiān)測對實現(xiàn)智能工廠有重要意義。
系統(tǒng)采用分布式數(shù)據(jù)采集監(jiān)測方式,數(shù)據(jù)集中處理,一主多從,且有靈活的拓撲結(jié)構(gòu)。實時監(jiān)測系統(tǒng)一個十分重要的指標為實時性,它決定了信號采樣能否恢復(fù)原始信號而不產(chǎn)生混疊現(xiàn)象,文中系統(tǒng)的數(shù)據(jù)采樣頻率目標為10 kHz,滿足多數(shù)過程數(shù)據(jù)采集需求。EtherCAT 以太網(wǎng)因高實時性、高效率及廣泛的適用性而快速進入工業(yè)領(lǐng)域。圖1 中的從站設(shè)備指能實現(xiàn)EtherCAT 通信的設(shè)備,EtherCAT 從站由物理層器件、EtherCAT 從站控制器(ESC)、從站控制微處理器等構(gòu)成,從站控制微處理器的性能與通信性能無關(guān),控制任務(wù)的要求決定了從站控制微處理器的性能。使用ESC 可以方便地進行EtherCAT通信而不用處理復(fù)雜的EtherCAT 協(xié)議。由于工廠內(nèi)設(shè)備眾多,且型號、年代各不相同,為便于采集生產(chǎn)過程及狀態(tài)信息數(shù)據(jù),設(shè)計了一個帶有擴展功能的EtherCAT 硬件模塊,以采集、傳輸設(shè)備數(shù)據(jù)。系統(tǒng)由4 個模塊組成,即位于從站端的數(shù)據(jù)采集模塊、擴展模塊及EtherCAT 通信模塊、位于主站端的數(shù)據(jù)管理模塊,系統(tǒng)總體結(jié)構(gòu)如圖1所示,最多支持65 535個從站設(shè)備。
圖1 系統(tǒng)總體結(jié)構(gòu)
從圖1 可以看出,從站控制微處理器處理多個任務(wù),從增強系統(tǒng)的實時性、降低GUI的CPU 占用出發(fā),綜合考慮經(jīng)濟因素,選擇了STM32F429 系列芯片,處理器內(nèi)核為ARM Cortex-M4,芯片內(nèi)置Chrom-ART,并且自帶顯示控制器,可以方便地連接并控制外部顯示器,靈活存儲控制器也使得ARM 芯片可以高速讀寫外部存儲器,擴展了系統(tǒng)存儲容量,可以存儲大量圖像文件,STM32F429的這些特性使得高速刷新復(fù)雜圖像成為可能。
數(shù)據(jù)采集模塊的關(guān)鍵是將模擬量轉(zhuǎn)換為數(shù)字量,針對不同的待測目標有不同的采集方案。系統(tǒng)數(shù)據(jù)采集流程圖如圖2 所示。為應(yīng)對多種采樣需求,ADC 器件選用AD7656,它有16 位采樣精度,六通道獨立AD 轉(zhuǎn)換,轉(zhuǎn)換速度為250 kSPS,支持多種通信方式,性能滿足多數(shù)數(shù)據(jù)采集要求。依據(jù)芯片手冊時序圖設(shè)計AD 采樣程序,其轉(zhuǎn)換時間為3 μs,開始轉(zhuǎn)換后“busy”拉低,即可開始讀取數(shù)據(jù)。
圖2 數(shù)據(jù)采集流程圖
實時操作系統(tǒng)指具有一定實時資源調(diào)度及通信能力的系統(tǒng),其執(zhí)行特定操作所消耗時間的上限是可預(yù)知的,多應(yīng)用于工業(yè)控制、軍事等領(lǐng)域。系統(tǒng)中的EtherCAT 通信程序、采樣程序及高性能GUI 程序都需要CPU的及時響應(yīng),為協(xié)調(diào)各程序運行,優(yōu)化資源分配,使用FreeRTOS 實時操作系統(tǒng)[3]。在該系統(tǒng)中,GUI的刷新頻率為50~60 Hz,從站控制器和從站控制微處理器間通過SPI 報文應(yīng)答的方式實現(xiàn)通信,使用FreeRTOS的時間片調(diào)度方式來處理多任務(wù)。
智能工廠的大量現(xiàn)場數(shù)據(jù)傳輸對數(shù)據(jù)傳輸速度提出了更高的實時性要求,目前市場常用的通信協(xié)議包括RS485、I2C、CAN、Ethernet、Profibus、EtherCAT[4-6]等,其中EtherCAT 由于優(yōu)異的性能,在實時以太網(wǎng)領(lǐng)域應(yīng)用越來越廣泛。EtherCAT 使用主從模式介質(zhì)訪問控制(MAC),支持一主多從,主站發(fā)送以太網(wǎng)數(shù)據(jù)幀遍歷各從站[7],從站只需在報文經(jīng)過時讀取相應(yīng)地址上的數(shù)據(jù)并把發(fā)送的數(shù)據(jù)插入數(shù)據(jù)幀;即各從站節(jié)點只會讀取與自己相關(guān)的數(shù)據(jù),并且寫入需發(fā)送的數(shù)據(jù),相比讀取整個報文的時間大大減少,并且讀取數(shù)據(jù)和寫入數(shù)據(jù)的過程由硬件完成,延遲為納秒級。當數(shù)據(jù)幀遍歷所有從站后,再通過最后一個從站返回報文,由第一個從站發(fā)送給主站控制單元,EtherCAT 數(shù)據(jù)幀的有效數(shù)據(jù)率可達90%以上[8]。
EtherCAT 網(wǎng)關(guān)[9]各運行狀態(tài)及其轉(zhuǎn)換規(guī)律有一定要求,依據(jù)EtherCAT 網(wǎng)關(guān)狀態(tài)機,EtherCAT 通信程序流程如圖3 所示,上電后主機應(yīng)用程序開始運行,程序先初始化ARM 各寄存器,配置時鐘系統(tǒng),與此同時從站控制器端依據(jù)硬件連接或軟件配置,設(shè)定操作模式;然后啟動驅(qū)動程序,驅(qū)動程序依據(jù)程序中對通信方式、主機端系統(tǒng)情況等的設(shè)置配置M40中的網(wǎng)絡(luò)處理器,待基本初始化完畢,對系統(tǒng)進行檢測。若ARM 與控制器端通信正常,則進行網(wǎng)絡(luò)初始化、過程數(shù)據(jù)映射,否則進入“空態(tài)”,即什么也不做,初始化無法完成;待所有初始化完畢且正常,進入“等待通信態(tài)”,此時系統(tǒng)會等待主站發(fā)來的以太網(wǎng)通信信號,若主站從站正常連接,則可進入“運行態(tài)”,進行數(shù)據(jù)映射傳輸;若系統(tǒng)出現(xiàn)例如通信超時等事件或錯誤時,EtherCAT 通信驅(qū)動程序會重啟。
圖3 EtherCAT程序設(shè)計流程
GUI 模塊是實現(xiàn)人與設(shè)備對話的窗口,通過GUI模塊,用戶可更直觀地了解設(shè)備運行狀態(tài),并對設(shè)備進行控制。為降低資源使用,目前工業(yè)使用的人機交互界面大多只能滿足功能使用,界面質(zhì)量較低,該系統(tǒng)使用基于STM32F429 系列的LCD 架構(gòu)[10],它充分利用了STM32F429的內(nèi)部圖形資源,Chrom-ART圖形加速器使得處理圖像的Cortex-M4的負荷大大降低,GUI 模塊進一步擴展了系統(tǒng)功能。
數(shù)據(jù)處理模塊位于PC 端,接收來自EtherCAT 以太網(wǎng)的數(shù)據(jù)并處理、顯示、存儲及遠程訪問等,并可向各從站端發(fā)送控制命令;數(shù)據(jù)處理模塊包括TwinCAT PLC 程序和上位機程序。TwinCAT[11-12]是Beckhoff 公司開發(fā)的EtherCAT 主站,運行于TwinCAT 端的PLC 程序可以映射來自EtherCAT 網(wǎng)絡(luò)中的數(shù)據(jù),上位機監(jiān)測軟件使用C#語言開發(fā),處理監(jiān)測數(shù)據(jù)。系統(tǒng)數(shù)據(jù)庫平臺為Microsoft SQL Server 2008,設(shè)計參照數(shù)據(jù)庫第三范式要求[13]。上位機程序流程如圖4 所示,首先對界面各控件及ADS 通信參數(shù)進行初始化,然后啟動定時器,定時時間應(yīng)小于數(shù)據(jù)緩存時間。定時時間到達會建立ADS 通信并查詢PLC 端是否有數(shù)據(jù)刷新,發(fā)現(xiàn)新數(shù)據(jù)會進行讀取并存儲到數(shù)據(jù)庫、波形顯示、查詢PLC 及設(shè)備狀態(tài)信息;監(jiān)測軟件使用多線程技術(shù),以保證各功能部分的獨立性。由于工廠環(huán)境十分復(fù)雜,在采樣、傳輸過程中總會混入一些高頻干擾,數(shù)字濾波器能在不增加硬件設(shè)備的情況下對離散數(shù)字量進行運算處理,該系統(tǒng)在上位機端設(shè)計數(shù)字濾波器。
圖4 上位機程序流程
工廠內(nèi)各設(shè)備數(shù)據(jù)及歷史數(shù)據(jù)庫通過高帶寬網(wǎng)絡(luò)接入服務(wù)器,可接入企業(yè)云服務(wù),為實現(xiàn)智能工廠打下基礎(chǔ)。
EtherCAT 從站數(shù)據(jù)刷新有固定的周期,從站端界面的刷新頻率也有一定的范圍,但程序會響應(yīng)用戶隨機性的UI操作,這會導(dǎo)致周期信號的延遲,界面延遲幾十微秒刷新對系統(tǒng)沒有影響,但通信程序的延遲則會造成數(shù)據(jù)的丟失,這是不可接受的。為解決這一問題,系統(tǒng)中在從站端和TwinCAT 主站端設(shè)計有兩個數(shù)據(jù)緩沖區(qū),以保證數(shù)據(jù)不丟失,緩沖區(qū)的大小應(yīng)綜合考慮資源占用、程序響應(yīng)延遲時間及通信帶寬等因素。
該系統(tǒng)是一個一主多從的群控系統(tǒng),主站是通信的發(fā)起者,一個EtherCAT 數(shù)據(jù)幀最多可包含1 486字節(jié)數(shù)據(jù)。對于普通應(yīng)用,主站發(fā)出一個EtherCAT數(shù)據(jù)幀即可遍歷所有從站設(shè)備,但在使用緩沖區(qū)而打包傳輸?shù)那闆r下,要遍歷所有從站設(shè)備,需要更多的數(shù)據(jù)幀,即主站刷新所有從站設(shè)備數(shù)據(jù)的時間會變長。在數(shù)據(jù)打包傳輸情況下,示波器測得從站EtherCAT 數(shù)據(jù)映射周期約為500 μs。使用網(wǎng)絡(luò)封包分析軟件Wireshark[14-15]分析EtherCAT 數(shù)據(jù)幀,測得數(shù)據(jù)幀遍歷單個從站并返回的時間約為8 μs,并不是每一據(jù)幀都有數(shù)據(jù)更新;縮短主站發(fā)送周期,見圖5,可以看出主站在單次刷新數(shù)據(jù)時發(fā)送多條數(shù)據(jù)幀的間隔為1 μs,主站顯示數(shù)據(jù)幀形成時間約為16 μs,一些因素會影響間隔時間,但都為微秒級。
圖5 短周期EtherCAT數(shù)據(jù)幀抓包
影響實時性的另一個問題是操作系統(tǒng)的任務(wù)調(diào)度[16-17],為保證數(shù)據(jù)能真實反映被測量狀態(tài),AD 采樣任務(wù)周期必須是嚴格的100 μs;從站控制器和從站控制微處理器之間的SPI 報文應(yīng)答用于控制ESC 狀態(tài)及傳輸過程數(shù)據(jù),這兩點不允許被操作系統(tǒng)的調(diào)度機制所延遲。
綜上,緩存機制導(dǎo)致的多設(shè)備時的數(shù)據(jù)幀增加對可支持的從站設(shè)備數(shù)量影響較小,具體的從站設(shè)備數(shù)量上限與采樣周期及單個設(shè)備的傳輸數(shù)據(jù)量有關(guān)。對于從站端,由于多任務(wù)導(dǎo)致的從站EtherCAT 數(shù)據(jù)映射周期較大,會導(dǎo)致多個數(shù)據(jù)幀沒有數(shù)據(jù)更新,這一問題可通過上位機軟件來解決。
在程序中設(shè)定每次采樣時翻轉(zhuǎn)特定I/O,通過測其翻轉(zhuǎn)頻率可以得出系統(tǒng)采樣率為I/O 翻轉(zhuǎn)頻率的兩倍。測得示波器波形頻率為5 kHz,則確定系統(tǒng)采樣率為10 kHz。
測試實驗從站控制微處理器為STM32F429NI,從站控制器為CompactCom 40,信號發(fā)生器輸出1 kHz 標準正弦信號,系統(tǒng)測得圖形見圖6,頻率過高時,每個周期的數(shù)據(jù)點變少,波形不夠光滑,但仍能正確反映原始信號的狀態(tài),系統(tǒng)的實時性得到證明。
圖6 1 kHz正弦信號局部放大
采用高性能實時以太網(wǎng),配合采樣、高質(zhì)量GUI及實時監(jiān)測軟件構(gòu)成一個完整的實時監(jiān)測系統(tǒng),該系統(tǒng)支持多設(shè)備多數(shù)據(jù)的組網(wǎng)實時監(jiān)測,可應(yīng)用于多種有實時性要求的監(jiān)測場合。經(jīng)過實驗驗證,系統(tǒng)性能穩(wěn)定,采樣率達到10 kHz,并有進一步提升的空間,為實現(xiàn)智能工廠打下基礎(chǔ)。