黃曉虎,許東歡,張偉,林益鋒
(上海航天控制技術研究所,上海 200233)
現場數據的采集及通信一直是電子信息領域的熱點研究,它促進了生產過程的智能化和網絡化[1]。對于制造企業而言,車間占有重要地位,智能工廠[2]依靠大量的現場數據來進行加工生產。隨著對生產能力和質量的要求越來越高,伺服電機驅動器也需要更快的響應時間和更高的驅動精度。利用實時工業以太網技術將所有設備連接到一個聚合網絡,以實現智能控制及云連接等。因此,通過高性能實時網絡,將工業現場大量的數據實時采集、傳輸及監測對實現智能工廠有重要意義。
系統采用分布式數據采集監測方式,數據集中處理,一主多從,且有靈活的拓撲結構。實時監測系統一個十分重要的指標為實時性,它決定了信號采樣能否恢復原始信號而不產生混疊現象,文中系統的數據采樣頻率目標為10 kHz,滿足多數過程數據采集需求。EtherCAT 以太網因高實時性、高效率及廣泛的適用性而快速進入工業領域。圖1 中的從站設備指能實現EtherCAT 通信的設備,EtherCAT 從站由物理層器件、EtherCAT 從站控制器(ESC)、從站控制微處理器等構成,從站控制微處理器的性能與通信性能無關,控制任務的要求決定了從站控制微處理器的性能。使用ESC 可以方便地進行EtherCAT通信而不用處理復雜的EtherCAT 協議。由于工廠內設備眾多,且型號、年代各不相同,為便于采集生產過程及狀態信息數據,設計了一個帶有擴展功能的EtherCAT 硬件模塊,以采集、傳輸設備數據。系統由4 個模塊組成,即位于從站端的數據采集模塊、擴展模塊及EtherCAT 通信模塊、位于主站端的數據管理模塊,系統總體結構如圖1所示,最多支持65 535個從站設備。

圖1 系統總體結構
從圖1 可以看出,從站控制微處理器處理多個任務,從增強系統的實時性、降低GUI的CPU 占用出發,綜合考慮經濟因素,選擇了STM32F429 系列芯片,處理器內核為ARM Cortex-M4,芯片內置Chrom-ART,并且自帶顯示控制器,可以方便地連接并控制外部顯示器,靈活存儲控制器也使得ARM 芯片可以高速讀寫外部存儲器,擴展了系統存儲容量,可以存儲大量圖像文件,STM32F429的這些特性使得高速刷新復雜圖像成為可能。
數據采集模塊的關鍵是將模擬量轉換為數字量,針對不同的待測目標有不同的采集方案。系統數據采集流程圖如圖2 所示。為應對多種采樣需求,ADC 器件選用AD7656,它有16 位采樣精度,六通道獨立AD 轉換,轉換速度為250 kSPS,支持多種通信方式,性能滿足多數數據采集要求。依據芯片手冊時序圖設計AD 采樣程序,其轉換時間為3 μs,開始轉換后“busy”拉低,即可開始讀取數據。

圖2 數據采集流程圖
實時操作系統指具有一定實時資源調度及通信能力的系統,其執行特定操作所消耗時間的上限是可預知的,多應用于工業控制、軍事等領域。系統中的EtherCAT 通信程序、采樣程序及高性能GUI 程序都需要CPU的及時響應,為協調各程序運行,優化資源分配,使用FreeRTOS 實時操作系統[3]。在該系統中,GUI的刷新頻率為50~60 Hz,從站控制器和從站控制微處理器間通過SPI 報文應答的方式實現通信,使用FreeRTOS的時間片調度方式來處理多任務。
智能工廠的大量現場數據傳輸對數據傳輸速度提出了更高的實時性要求,目前市場常用的通信協議包括RS485、I2C、CAN、Ethernet、Profibus、EtherCAT[4-6]等,其中EtherCAT 由于優異的性能,在實時以太網領域應用越來越廣泛。EtherCAT 使用主從模式介質訪問控制(MAC),支持一主多從,主站發送以太網數據幀遍歷各從站[7],從站只需在報文經過時讀取相應地址上的數據并把發送的數據插入數據幀;即各從站節點只會讀取與自己相關的數據,并且寫入需發送的數據,相比讀取整個報文的時間大大減少,并且讀取數據和寫入數據的過程由硬件完成,延遲為納秒級。當數據幀遍歷所有從站后,再通過最后一個從站返回報文,由第一個從站發送給主站控制單元,EtherCAT 數據幀的有效數據率可達90%以上[8]。
EtherCAT 網關[9]各運行狀態及其轉換規律有一定要求,依據EtherCAT 網關狀態機,EtherCAT 通信程序流程如圖3 所示,上電后主機應用程序開始運行,程序先初始化ARM 各寄存器,配置時鐘系統,與此同時從站控制器端依據硬件連接或軟件配置,設定操作模式;然后啟動驅動程序,驅動程序依據程序中對通信方式、主機端系統情況等的設置配置M40中的網絡處理器,待基本初始化完畢,對系統進行檢測。若ARM 與控制器端通信正常,則進行網絡初始化、過程數據映射,否則進入“空態”,即什么也不做,初始化無法完成;待所有初始化完畢且正常,進入“等待通信態”,此時系統會等待主站發來的以太網通信信號,若主站從站正常連接,則可進入“運行態”,進行數據映射傳輸;若系統出現例如通信超時等事件或錯誤時,EtherCAT 通信驅動程序會重啟。

圖3 EtherCAT程序設計流程
GUI 模塊是實現人與設備對話的窗口,通過GUI模塊,用戶可更直觀地了解設備運行狀態,并對設備進行控制。為降低資源使用,目前工業使用的人機交互界面大多只能滿足功能使用,界面質量較低,該系統使用基于STM32F429 系列的LCD 架構[10],它充分利用了STM32F429的內部圖形資源,Chrom-ART圖形加速器使得處理圖像的Cortex-M4的負荷大大降低,GUI 模塊進一步擴展了系統功能。
數據處理模塊位于PC 端,接收來自EtherCAT 以太網的數據并處理、顯示、存儲及遠程訪問等,并可向各從站端發送控制命令;數據處理模塊包括TwinCAT PLC 程序和上位機程序。TwinCAT[11-12]是Beckhoff 公司開發的EtherCAT 主站,運行于TwinCAT 端的PLC 程序可以映射來自EtherCAT 網絡中的數據,上位機監測軟件使用C#語言開發,處理監測數據。系統數據庫平臺為Microsoft SQL Server 2008,設計參照數據庫第三范式要求[13]。上位機程序流程如圖4 所示,首先對界面各控件及ADS 通信參數進行初始化,然后啟動定時器,定時時間應小于數據緩存時間。定時時間到達會建立ADS 通信并查詢PLC 端是否有數據刷新,發現新數據會進行讀取并存儲到數據庫、波形顯示、查詢PLC 及設備狀態信息;監測軟件使用多線程技術,以保證各功能部分的獨立性。由于工廠環境十分復雜,在采樣、傳輸過程中總會混入一些高頻干擾,數字濾波器能在不增加硬件設備的情況下對離散數字量進行運算處理,該系統在上位機端設計數字濾波器。

圖4 上位機程序流程
工廠內各設備數據及歷史數據庫通過高帶寬網絡接入服務器,可接入企業云服務,為實現智能工廠打下基礎。
EtherCAT 從站數據刷新有固定的周期,從站端界面的刷新頻率也有一定的范圍,但程序會響應用戶隨機性的UI操作,這會導致周期信號的延遲,界面延遲幾十微秒刷新對系統沒有影響,但通信程序的延遲則會造成數據的丟失,這是不可接受的。為解決這一問題,系統中在從站端和TwinCAT 主站端設計有兩個數據緩沖區,以保證數據不丟失,緩沖區的大小應綜合考慮資源占用、程序響應延遲時間及通信帶寬等因素。
該系統是一個一主多從的群控系統,主站是通信的發起者,一個EtherCAT 數據幀最多可包含1 486字節數據。對于普通應用,主站發出一個EtherCAT數據幀即可遍歷所有從站設備,但在使用緩沖區而打包傳輸的情況下,要遍歷所有從站設備,需要更多的數據幀,即主站刷新所有從站設備數據的時間會變長。在數據打包傳輸情況下,示波器測得從站EtherCAT 數據映射周期約為500 μs。使用網絡封包分析軟件Wireshark[14-15]分析EtherCAT 數據幀,測得數據幀遍歷單個從站并返回的時間約為8 μs,并不是每一據幀都有數據更新;縮短主站發送周期,見圖5,可以看出主站在單次刷新數據時發送多條數據幀的間隔為1 μs,主站顯示數據幀形成時間約為16 μs,一些因素會影響間隔時間,但都為微秒級。

圖5 短周期EtherCAT數據幀抓包
影響實時性的另一個問題是操作系統的任務調度[16-17],為保證數據能真實反映被測量狀態,AD 采樣任務周期必須是嚴格的100 μs;從站控制器和從站控制微處理器之間的SPI 報文應答用于控制ESC 狀態及傳輸過程數據,這兩點不允許被操作系統的調度機制所延遲。
綜上,緩存機制導致的多設備時的數據幀增加對可支持的從站設備數量影響較小,具體的從站設備數量上限與采樣周期及單個設備的傳輸數據量有關。對于從站端,由于多任務導致的從站EtherCAT 數據映射周期較大,會導致多個數據幀沒有數據更新,這一問題可通過上位機軟件來解決。
在程序中設定每次采樣時翻轉特定I/O,通過測其翻轉頻率可以得出系統采樣率為I/O 翻轉頻率的兩倍。測得示波器波形頻率為5 kHz,則確定系統采樣率為10 kHz。
測試實驗從站控制微處理器為STM32F429NI,從站控制器為CompactCom 40,信號發生器輸出1 kHz 標準正弦信號,系統測得圖形見圖6,頻率過高時,每個周期的數據點變少,波形不夠光滑,但仍能正確反映原始信號的狀態,系統的實時性得到證明。

圖6 1 kHz正弦信號局部放大
采用高性能實時以太網,配合采樣、高質量GUI及實時監測軟件構成一個完整的實時監測系統,該系統支持多設備多數據的組網實時監測,可應用于多種有實時性要求的監測場合。經過實驗驗證,系統性能穩定,采樣率達到10 kHz,并有進一步提升的空間,為實現智能工廠打下基礎。