肖文磊,王翔宇,張鵬飛,趙罡
隨著智能制造概念的提出,柔性更高,精度更高,效率更高的制造設備在工業各領域快速發展,搭載多種傳感器的工業機器人制造設備被更多地投放到生產當中。然而機器人制造存在剛度不夠導致制造精度降低的問題,這要求智能制造系統能夠實時對機器人的位姿精確定位來實現修正,同時使不同傳感器的數據能夠實時地通信。在機器人測量方面,機器人協同測量的技術以及測量數據處理的技術是當前技術的研究難點[1-3]。為了在制造過程中實時精確地反映機器人狀態,多種傳感器諸如CCD、激光跟蹤儀、激光掃描儀等,都被用到了機器人末端位姿的測量過程中。在文獻[2]中,作者為了解決測量系統自動化程度低,實時性不好的缺陷,提出了一種基于光電掃描的三維坐標測量系統,該系統雖然解決了實時的問題卻并沒有提出總線的概念,無法更進一步地實現不同傳感器數據的歸一化處理;在文獻[4]中,作者利用線性光源和CCD照相機的方式在實時監視柱面的加工過程,最終實現了制造過程中的在線測量;在文獻[5]中,作者利用視覺傳感器替代傳統的CMM來對引擎表面的空洞進行測量,解決了制造過程中的自動化和在線測量問題;在文獻[6]中,作者設計了一種利用視覺傳感器和激光跟蹤儀組合測量的白車身質量在線檢測系統,提高了測量系統的柔性,并實現了在線測量,但沒有研究測量的實時性;在文獻[7]中,作者利用兩個固定的激光掃描系統來實時獲取工件的關鍵信息,并以視覺系統作為輔助,實現了對長度的高速動態測量;在文獻[8]中,作者利用CCD照相機監視和校正輪軸的磨損,進而對機械加工過程進行補償;在文獻[9]中作者針對機器人在連續運動過程中可能出現的自身參數變化導致其重復精度下降的問題,提出了一種主要基于視覺傳感器的在線測量和補償手段。
利用視覺的方式對制造過程進行在線檢測,是一種比較直觀的方式,通過加以圖像處理的算法,可以得到理想精度的位置測量結果,但是測量結果需要經過繁瑣的算法解析,同時沒有強調數據實時通信的問題。因此本文提出一種更加直接的位置在線測量方法,并首次將EtherCAT現場工業以太網總線的概念引入激光跟蹤儀的使用過程中,通過嵌入式模塊將激光跟蹤儀開發成為EtherCAT從站,利用激光跟蹤儀這種直接反映被測對象坐標的高精度坐標測量機器來實時檢測被測對象的位置,省去了解算坐標的過程,同時可以達到微米級的測量精度和優良的實時性能。
本文主要介紹了一種支持工業以太網接口的激光跟蹤儀在線實時測量系統的設計與實施方法,實現激光跟蹤儀較高頻率的在線實時測量,并將測量數據返回給主站供后續制造過程利用。傳統的激光跟蹤儀通過以太網與計算機相連,并在計算機上利用第三方提供的商業軟件來控制激光跟蹤儀完成測量任務。采用得到測量數據后,離線分析處理的方式,不能將數據實時導出。激光跟蹤儀提供了底層接口函數,為激光跟蹤儀的二次開發提供了可能性。為了將激光跟蹤儀接入現場以太網總線當中,就需要這樣一種介質,它既可以通過以太網協議來與激光跟蹤儀進行通信,又可以通過一種方式與EtherCAT總線進行通信。為了實現這樣的功能,本文在從站的設計過程中引入了實時嵌入式系統。
首先,激光跟蹤儀采用TCP/IP通信協議進行數據傳輸,因此需要在嵌入式模塊中設計相應的網絡模塊來與激光跟蹤儀進行通信。本文中選擇DMA9000以太網接口芯片,該芯片采用LQFP-48P封裝,集成10/100 M物理層接口,遵循IEEE802.3以太網傳輸協議,IO讀寫時間10 ns,完全滿足系統需求。其次,為了解決嵌入式模塊與EtherCAT總線的通信問題,引入了EtherCAT串行通信終端模塊EL6021與EtherCAT從站控制器EK1100。EL6021端子模塊是德國倍孚自動化公司生產的一種串行總線接口端子模塊,通過EL6021端子模塊,可以連接帶RS422或RS485接口的設備,這些設備通過耦合器與自動化設備通信,其通信通道獨立于上一層總線系統,并且可以在全雙工或半雙工模式下工作,其通信速率可以達到115.2 Kbaud。配置EL6021端子模塊對象數據字典如表1所示。

表1 EL6021的CoE設置Table 1 CoE configuration of EL6021
本文為了增強接口的抗干擾能力,使信號經過電氣隔離處理,采用符合RS422協議規范的差分信號進行數據的傳輸,這樣就可以實現利用全雙工串行通信的方式來讀取嵌入式主控芯片中的數據。最后,根據上述的需求來選擇嵌入式微處理器芯片,最終選擇了Cortex-M3架構的32位嵌入式微處理器STM32F103ZE。該處理器具備優異的實時性能,集成整合性高,并且 可以滿足網絡通信和串口通信的需求。最終系統的總體設計如圖1所示。其中微處理器與EL6021間的通信通過RS422芯片處理,采用全雙工RS422模式,微處理器與激光跟蹤儀的通信通過DMA9000芯片,采用標準的以太網協議進行通信。

圖1 系統總體設計結構Fig. 1 General system structure
系統軟件部分主要解決EtherCAT激光跟蹤儀從站模塊三端的通信問題:1)從站與激光跟蹤儀之間的通信;2)嵌入式微處理器與EtherCAT從站控制模塊的通信;3)EtherCAT從站與EtherCAT主站之間的通信。
首先,從站與激光跟蹤儀之間的通信通過發送和解析激光跟蹤儀數據報文的方式,來實現從站對激光跟蹤儀的完全控制以及從站讀取激光跟蹤儀返回的數據報文。激光跟蹤儀數據報文結構如圖2所示。采用Socket網絡編程實現從站模塊與激光跟蹤儀的TCP/IP連接,按照激光跟蹤儀接口函數中的數據格式對發送數據進行打包處理以及對激光跟蹤儀返回數據進行解包處理。在微處理器程序中,將激光跟蹤儀的所有指令根據其數據格式寫成不同的接口函數,處理器通過解析EL6021端子發送的Modbus數據報文來調用相應的接口函數,再通過以太網協議將指令發送給激光跟蹤儀。在本軟件設計中,通過將激光跟蹤儀所有的指令進行編號的方式,簡化程序的處理過程。程序流程如圖3所示。當嵌入式微處理器解析激光跟蹤儀返回數據以后,會立即實時地將數據按照Modbus報文格式經過EL6021端子模塊發送給從站,以供主站實時掃描從站獲取激光跟蹤儀返回的數據。

圖2 激光跟蹤儀數據報文Fig. 2 Laser tracker data frame

圖3 嵌入式程序工作流程Fig. 3 Embedded system program flow chart
其次,微處理器與EtherCAT串行通信終端EL6021之間的通信采用標準的Modbus協議進行全雙工串行通信。格式如圖4所示,包含激光跟蹤儀站號,指令的功能碼,報文字節數,指令參數以及16位循環冗余校驗碼(CRC)。在這個過程中,主站向從站控制器EK1100發出相應的指令,接著從站根據主站發出的指令,生成相應的Modbus報文并通過EL6021端子模塊將報文傳送到嵌入式微處理器,微處理器對報文進行解析之后做出對應指令的響應,生成相應的以太網數據報文發送給激光跟蹤儀。

圖4 Modbus數據幀Fig. 4 Modbus data frame
最后,EtherCAT從站與EtherCAT主站之間的通信通過EK1100完成。根據通信的實時性要求,采用過程數據處理的方式(process data object,PDO)來處理激光跟蹤儀從站所發回的數據報文。在PLC程序中建立變量與過程數據字典對象的一一映射關系,如表2所示。通過在主站中進行PLC編程,在主站中生成Modbus報文發送到從站當中,并通過EL6021端子模塊將報文最終發送到嵌入式微處理器內存當中。此外,主站還需要不斷地掃描從站中的過程數據,來實時刷新激光跟蹤儀的狀態數據。為了實現這一功能,在主站中建立了兩個任務,其中一個用于前臺的數據發送和接收,即從站與從站設備激光跟蹤儀,另外一個用于后臺的數據交換,即主站與從站之間的數據交換。后臺的通信程序主要通過調用COMportControl_MASTER函數來實現。前臺的程序需要實現串行通信數據的收發功能[10]。要在不斷循環的PLC程序中實現這一功能并考慮到之后使用的便利性,本文采用狀態機的方式來實現這一功能,如圖5所示。在程序中給串行通信定義了3種狀態,即發送、延時和接收。每一種狀態的結束會通過給變量nState賦值的方式來迫使程序進入下一種狀態從而實現了3種狀態之間的循環執行。同時,為了實現每一次主站操作只發送對應指令一次的模式,程序設計了指令發送確認變量Com_Confirm以及指令計數器變量Com_Counter,通過設計條件語句保證每個指令在主站一次操作中只被執行一次,其對應的條件如表3所示。

圖5 主站程序狀態機Fig. 5 Master program state machine

表2 數據字典映射關系Table 2 Object data dictionary mapping

表3 發送指令判斷條件Table 3 Judgment for sending command
解決了各個模塊之間的通信問題之后,需要對激光跟蹤儀的數據傳輸最小周期進行測定,以滿足數據處理的實時性要求。激光跟蹤儀數據傳輸周期的測定實驗通過示波器進行測定,如圖6所示。每當激光跟蹤儀回傳一次測量結果,就將微處理器的一個IO進行翻轉,通過逐漸縮短激光跟蹤儀數據數據傳輸周期的方式來尋找編程可以實現的最小數據傳輸周期,最終測定結果為100 ms,可以滿足較高頻率測量的要求。
根據數據傳輸的最小周期,就可以進行后續的應用程序開發。如圖7所示,應用程序需要在100 ms的數據周期內,完成對激光跟蹤儀數據報文的解析,對數據的簡單處理,然后將數據通過串口發送給從站控制器并留有一定的時間余量。這就要求在設計的過程中,應該提高應用程序的執行速度。

圖6 激光跟蹤儀周期測量Fig. 6 Laser Tracker cycle measurement
經過對兩端通信的邏輯關系確定之后,從站應用程序工作流程如圖8所示。系統將所有的接收發送任務均做了最簡化處理,來縮短程序處理數據的時間以盡可能地滿足實時性能要求。同時,系統運行在RT-Thread實時操作系統上,這又從另一方面提高了程序運行的實時性,通過在系統內部創建了激光跟蹤儀數據接收和處理線程,主站數據接收和處理線程,以及用于狀態指示的LED線程,可以使嵌入式程序穩定可靠的運行。

圖7 應用程序實時性要求Fig. 7 Program real-time requirement

圖8 應用程序流程Fig. 8 Application flow chart
3個線程的關系如表4所示,其中激光跟蹤儀數據接收和處理線程和主站數據接收和處理線程具備相同的優先級,兩者采用時間片輪轉的方式進行交替運行,確保兩端通信的可靠性,LED燈線程具備低于前兩者的優先級,主要用于指示程序是否正常運行。采用這種工作模式,有利于提高軟件運行效率和響應的實時性,同時使應用程序層次清晰,各個模塊之間不會出現過多的耦合,從而降低了程序卡死的情況,提高了執行的效率[11]。

表4 線程主要配置參數Table 4 Thread configurations
通過執行該應用程序,可以建立從站與激光跟蹤儀之間的連接,配置激光跟蹤儀測量所需要的各種參數,包括選定測量模式,補償模式等。完成所有必須的配置之后,再通過應用程序向激光跟蹤儀發送開始測量指令,之后應用程序進入接收工作模塊,并且實時將接收到的數據在要求時間內通過串行通信的方式發送到從站控制器供主站實時掃描利用。
應用程序的實驗被測量對象為KUKA機器人,該機器人用于復雜零件的增減材制造,如圖9所示。實驗過程中機器人運行速度為30%,通過自帶示波器功能將激光跟蹤儀返回坐標測量數據連接到示波器當中,可以執行監視數值的實時顯示。

圖9 實驗測試環境Fig. 9 Experimental environment
測量結果如圖10所示,分別監視了被測量機器人末端的3個坐標數值(X, Y, Z),通過觀察數據的周期性變化,驗證系統的可行性。局部放大后,根據階梯形周期性變化規律,可以得到數據刷新的周期為100 ms,與激光跟蹤儀返回數據的周期完全匹配,同時,通過將示波器數據導出對具體的數據信息進行分析。部分ΔT導出數據整理后如表5和圖11所示,表5和圖11示意了圖10所示示波器中經過整理后的原始數據。其中,表5中主站數據時間戳由主站自動標記,從站數據時間戳由解析激光跟蹤儀返回數據報文獲得,從圖表中也可以看出,兩者匹配良好,達到了預期的100 ms的反饋周期,達到了預期的實時性能。

圖10 示波器實驗結果Fig. 10 Experimental result of scope view

表5 示波器導出數據整理Table 5 Scope exported data collation

圖11 示波器導出數據繪圖Fig. 11 Drawing of the exported data from scope
本文詳細闡述了一種激光跟蹤儀在線實時測量系統的設計和實現方法。通過利用嵌入式模塊和EtherCAT從站控制器模塊,將激光跟蹤儀開發成為了一種工業以太網總線的從站,使其支持了工業以太網接口,實現了將激光跟蹤儀接入現場總線,并且實時的把測量數據發送到總線當中的功能。從系統硬件的選擇到軟件系統的開發都做了詳盡的闡述,并且通過實驗測試了系統的可靠性。通過實驗證明了系統達到了預期的100 ms的反饋周期,并且具備理想的數據精度,可以將系統應用于一些需要在線測量的制造過程當中,從而拓展了激光跟蹤儀的使用范圍。
[1]李明富, 馬建華, 張玉彥. 基于機器人的空間坐標測量技術研究現狀及發展趨勢[J]. 機械科學與技術, 2014, 33(12):1818–1825.LI Mingfu, MA Jianhua, ZHANG Yuyan. The state and development tendency of the space coordinate measuring technology via robots[J]. Mechanical science and technology for aerospace engineering, 2014, 33(12): 1818–1825.
[2]端木瓊, 楊學友, 邾繼貴, 等. 基于光電掃描的三維坐標測量系統[J]. 紅外與激光工程, 2011, 40(10): 2014–2019.DUANMU Qiong, YANG Xueyou, ZHU Jigui, et al. 3D coordinate measurement system based on optoelectronic scanning[J]. Infrared and laser engineering, 2011, 40(10):2014–2019.
[3]隋少春, 楚王偉, 李衛東. 數控加工在線測量技術應用探討[J]. 航空制造技術, 2010(22): 44–46.SUI Shaochun, CHU Wangwei, LI Weidong. Application of on-line measurement technology in NC machining process[J]. Aeronautical manufacturing technology, 2010(22):44–46.
[4]YIN Peng, SUN Changku, WANG Peng, et al. Online measurement system for the surface inclination of metal workpieces[C]//International Conference on Optical Instruments and Technology. Beijing, China: SPIE, 2013: 90460Q.
[5]SHI Yongqiang, SUN Changku, MA Yukun, et al. Highprecision automatic online measurement system of engine block top surface holes[J]. Optical engineering, 2012, 51(5):53604.
[6]GUO Yin, YANG Xueyou, LIU Changjie, et al. Flexible coordinate measurement system based on robot for industries[C]//Proceedings of the 5thInternational Symposium on Advanced Optical Manufacturing and Testing Technologies.Dalian, China: SPIE, 2010: 76567D.
[7]GUO Yongcai, ZHOU Sen, GAO Chao. Development of a novel high-speed dynamic length measurement system for mobile and large-scale cylinder workpiece[J]. Proceedings of the institution of mechanical engineers, part B: journal of engineering manufacture, 2014, 229(5): 823–834.
[8]CHEN jiang, WU Kaihua. CCD calibration method for wheel set wear online measurement[C]//Optical Metrology and Inspection for Industrial Applications. Beijing, China:SPIE, 2010, 7855: 785521.
[9]LIU Changjie, ZHANG Zhongkai, CHEN Yiwei. A method of robot parameters rapid error compensation for online flexible measurement system[C]//Proceedings of the 4th International Seminar on Modern Cutting and Measuring Engineering. Beijing, China: SPIE, 2011, 7997: 79971F.
[10]單春榮, 劉艷強, 郇極. 工業以太網現場總線EtherCAT及驅動程序設計[J]. 制造業自動化, 2007, 29(11): 79–82.SHAN Chunrong, LIU Yanqiang, HUA Ji. EtherCAT-industrial Ethernet fieldbus and its driver design[J]. Manufacturing automation, 2007, 29(11): 79–82.
[11]馬軍賢, 周侗, 楊志家, 等. EtherCAT從站的設計與實現[J]. 自動化與儀表, 2011, 36(8): 37–40.MA Junxian, ZHOU Tong, YANG Zhijia, et al. Design and implementation of EtherCAT slave[J]. Automation and instrumentation, 2011, 36(8): 37–40.