一種基于EtherCAT總線的開放式數(shù)控系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及現(xiàn)代數(shù)控系統(tǒng)領(lǐng)域,特別涉及一種基于EtherCAT總線的開放式數(shù)控系統(tǒng)及方法。
【背景技術(shù)】
[0002]數(shù)控技術(shù)在制造業(yè)的裝備技術(shù)中有著舉足輕重的作用,隨著現(xiàn)代數(shù)控技術(shù)的不斷發(fā)展,研宄和開發(fā)出高水平的高檔數(shù)控系統(tǒng)有著重要的意義。我國數(shù)控系統(tǒng)發(fā)展到今天,已經(jīng)推出了第六代高檔數(shù)控技術(shù)方案,即PC+I/0控制板卡方案。
[0003]對于PC端,采用普通的工業(yè)控制計算機,其上安裝有數(shù)控系統(tǒng)軟件。工業(yè)PC機以其強大的處理計算能力完成對整個數(shù)控系統(tǒng)的控制,其上實現(xiàn)了幾乎所有的實時以及非實時的數(shù)控系統(tǒng)任務,包括數(shù)控指令譯碼、實時插補運算、數(shù)控軌跡規(guī)劃、運動學算法以及友好的數(shù)控操作界面等。
[0004]在1控制板卡端,通過控制和驅(qū)動電路,將PC端計算出來的實時數(shù)控數(shù)據(jù)發(fā)送到外圍的數(shù)字量輸出、模擬量輸出、伺服驅(qū)動器等執(zhí)行裝置中,完成規(guī)定時間內(nèi)的實時動作。同時,將數(shù)字量輸入、模擬量輸入、伺服驅(qū)動器等裝置中的采樣數(shù)據(jù)實時反饋回數(shù)控系統(tǒng)PC端。
[0005]數(shù)控系統(tǒng)PC端與1控制板卡端之間采用高速、可靠的通信介質(zhì)與通信協(xié)議完成實時數(shù)據(jù)的交換傳輸。
[0006]因此,站在我國最新一代的數(shù)控系統(tǒng)方案上,如何研宄和開發(fā)出一套軟硬件實現(xiàn)方案簡單,工作穩(wěn)定可靠的數(shù)控系統(tǒng)是非常有必要的。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于EtherCAT總線的開放式數(shù)控系統(tǒng)。
[0008]本發(fā)明的另一目的在于提供一種基于EtherCAT總線的開放式數(shù)控方法。
[0009]本發(fā)明的目的通過以下的技術(shù)方案實現(xiàn):
[0010]一種基于EtherCAT總線的開放式數(shù)控系統(tǒng),包括工控機PC端、1控制板卡端,以及用于通信連接的EtherCAT網(wǎng)絡;在工控機PC端采用開放式數(shù)控軟件LinuxCNC,通過調(diào)用EtherCAT主站驅(qū)動,將外圍1控制板卡端的硬件板卡通過硬件抽象層的方式加入到LinuxCNC中;在LinuxCNC中完成數(shù)控指令輸入、數(shù)控界面顯示、實時插補運算功能,并將控制數(shù)據(jù)下發(fā)到1控制板卡端;10控制板卡根據(jù)實際需求進行設計,完成數(shù)字量輸入輸出、模擬量輸入輸出、多軸脈沖伺服驅(qū)動功能,以驅(qū)動執(zhí)行裝置動作;同時1板卡采集并向工控機PC端反饋回實時數(shù)據(jù),LinuxCNC將得到的實際運動結(jié)果與設定值比較,得到下一周期的控制量,同時實時顯示當期的數(shù)控狀態(tài)信息。
[0011]所述的控機PC端包括硬件平臺和軟件系統(tǒng),所述硬件平臺為普通工業(yè)控制PC機;所述軟件系統(tǒng)基于實時的Linux系統(tǒng),包括開放式的LinuxCNC數(shù)控系統(tǒng)軟件平臺、EtherCAT主站驅(qū)動程序、用于連接EtherCAT主站與LinuxCNC的HAL驅(qū)動以及10M以太網(wǎng)卡驅(qū)動;所述LinuxCNC數(shù)控軟件平臺包括圖形用戶接口、任務控制器、1控制器、運動控制器。
[0012]所述1控制板卡端包括第一板卡和第二板卡;第一板卡為1板卡,實現(xiàn)數(shù)控系統(tǒng)中8通道數(shù)字量輸入功能;所述第二板卡為多軸運動控制板卡,實現(xiàn)數(shù)控系統(tǒng)中脈沖接口伺服驅(qū)動器的驅(qū)動、數(shù)字量輸入、模擬量輸入、模擬量輸出功能。
[0013]所述的第一板卡包括第一物理層Ethernet接口 1、第二物理層EBUS接口 1、EtherCAT從站控制器1、第一 ESI EEPR0M、電源、8通道數(shù)字量輸入模塊、光耦隔離模塊I。
[0014]所述的EtherCAT從站控制器I選擇Beckhoff公司的ET1200芯片或ETl 100芯片。
[0015]所述的第二板卡包括第一物理層EBUS接口 I1、第二物理層EBUS接口 II ,EtherCAT從站控制器I1、ARM控制器、FPGA、光耦隔離模塊I1、數(shù)字隔離模塊、6通道脈沖伺服驅(qū)動模塊、8通道數(shù)字量輸出模塊、8通道模擬量輸入模塊、8通道模擬量輸出模塊、電源、第一 SPI接口、第二 SPI 接口、第二 ESI EEPROMo
[0016]所述的EtherCAT從站控制器II選擇Beckhoff公司的ET1200芯片或ETl 100芯片。
[0017]所述的第二板卡為多軸運動控制板卡。
[0018]所述EtherCAT網(wǎng)絡用于工控機PC端與1控制板卡端之間的網(wǎng)絡通信,傳輸介質(zhì)為普通網(wǎng)線,傳輸協(xié)議為實時工業(yè)以太網(wǎng)E th erCAT協(xié)議;所述工控機PC端通過10/100BASE-T應用的以太網(wǎng)口與1控制板卡端的第一板卡的第一物理層Ethernet接口連接,所述第一板卡的第二物理層EBUS接口與所述第二板卡的第一物理層EBUS接口連接,所述第二板卡的第二物理層EBUS接口不連接,即EtherCAT幀在此處返回。
[0019]本發(fā)明的另一目的通過以下的技術(shù)方案實現(xiàn):
[0020]一種基于EtherCAT總線的開放式數(shù)控方法,包含以下順序的步驟:
[0021 ] 在數(shù)控系統(tǒng)工控機PC端,當用戶通過LinuxCNC的圖形用戶接口將數(shù)控命令輸入,任務控制器對該輸入命令進行處理并解析輸入的G代碼,將非時間關(guān)鍵的開關(guān)量信號交由1控制器處理,繼而下發(fā)到HAL模塊;將時間關(guān)鍵的數(shù)控任務交由運動控制器處理,運動控制器進行軌跡規(guī)劃后再執(zhí)行插補計算,再通過逆運動學算法計算出各個軸的實時控制量,繼而下發(fā)到HAL模塊;
[0022]HAL模塊調(diào)用EtherCAT主站將實時控制量通過EtherCAT數(shù)據(jù)幀下發(fā)到數(shù)控系統(tǒng)的1控制板卡端:下行數(shù)據(jù)幀首先經(jīng)第一板卡的第一物理層Ethernet接口進入EtherCAT從站控制芯片,再由第二物理層EBUS接口進入第二板卡的第一物理層EBUS接口,第二板卡的EtherCAT從站控制器讀取EtherCAT幀中的下發(fā)數(shù)據(jù),ARM處理器通過第一 SPI接口讀取下發(fā)下來的實時控制量,處理運算后,通過第二 SPI接口分發(fā)到FPGA、模擬量輸出模塊、數(shù)字量輸出模塊中,F(xiàn)PGA將控制量轉(zhuǎn)化為二相正交脈沖用以驅(qū)動多軸脈沖伺服驅(qū)動器,同時FPGA也對多軸脈沖伺服驅(qū)動器的編碼器信號進行實時計數(shù);通過第二 SPI接口將FPGA實時計數(shù)數(shù)據(jù)、模擬量輸入數(shù)據(jù)輸入ARM控制器模塊,處理運算后,再通過第一 SPI接口輸入EtherCAT從站控制器;EtherCAT從站控制器將輸入數(shù)據(jù)插入到EtherCAT上行幀中,上行幀經(jīng)由第二板卡的第一物理層EBUS接口進入第一板卡的第二物理層EBUS接口,第一板卡中的數(shù)字量輸入模塊通過PDI接口輸入EtherCAT從站控制器,EtherCAT控制器再將輸入數(shù)據(jù)插入到上行幀中,再通過第一板卡的第一物理層Ethernet接口輸入到工控PC機端,HAL模塊調(diào)用EtherCAT主站讀取反饋回來的上行數(shù)據(jù),運動控制器從HAL中獲取各軸的當前位置值,經(jīng)由正運動學算法得到實際的空間姿態(tài),將得到的實際運動結(jié)果與設定值相比較,得到下一數(shù)控周期的控制量,同時圖形用戶接口實時顯示當前的數(shù)控狀態(tài)信息。
[0023]本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:
[0024](I)采用本開放式數(shù)控系統(tǒng)可以極大地簡化數(shù)控系統(tǒng)的軟、硬件設計。
[0025](2)采用本開放式數(shù)控系統(tǒng),用戶圖形界面、核心運動控制算法可根據(jù)用戶需求定制與改進。
[0026](3)采用本開放式數(shù)控系統(tǒng),1控制板卡硬件可根據(jù)實際數(shù)控系統(tǒng)需求定制,節(jié)約成本,簡化設計,且為了使原有LinuxCNC兼容修改后的硬件板卡,只需簡單地通過軟件修改HAL驅(qū)動。
【附圖說明】
[0027]圖1為本發(fā)明所述的一種基于EtherCAT總線的開放式數(shù)控系統(tǒng)的結(jié)構(gòu)示意圖;
[0028]圖2為圖1所述數(shù)控系統(tǒng)的工控機PC端的結(jié)構(gòu)示意圖;
[0029]圖3為第一板卡的結(jié)構(gòu)示意圖;
[0030]圖4為第二板卡的結(jié)構(gòu)示意圖。
【具體實施方式】
[0031]下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。
[0032]如圖1所示,一種基于EtherCAT總線的開放式數(shù)控系統(tǒng),由工控機PC端和1控制板卡端組成,包括工控PC機、第一板卡、第二板卡、EtherCAT網(wǎng)絡。第一板卡為1板卡,完成8通道數(shù)字量的輸入功能;第二板卡為多軸運動控制板卡,完成8通道數(shù)字量輸出、8通道模擬量輸入、8通道模擬量輸出、6通道脈沖伺服驅(qū)動功能。EtherCAT網(wǎng)絡4為數(shù)控系統(tǒng)中連接工控PC機I與各板卡之間的通信網(wǎng)絡,能達到100Mbit/S的傳輸速率。
[0033]如圖2所示,為工控機PC端的結(jié)構(gòu)框圖,硬件上采用X86架構(gòu)的低功耗ATOM系列,操作系統(tǒng)為實時的Ubuntu系統(tǒng);軟件上包括圖形用戶界面、任務控制器、運動控制器、1控制器、HAL模塊、EtherCAT主站、100M以太網(wǎng)卡驅(qū)動。其中圖形用戶界面、任務控制器、運動控制器、1控制器在開放式數(shù)控系統(tǒng)軟件LinuxCNC中實現(xiàn),采用的LinuxCNC版本為2.5.3。HAL模塊則是根據(jù)具體1板卡硬件配置,按照特定格式定義引腳和函數(shù),進而編寫并編譯而成。EtherCAT主站則采用開源的IgH EtherCAT Master 1.5.1,為數(shù)控軟件提供EtherCAT函數(shù)及工具支持。
[0034]如圖3所示,為第一 1板卡結(jié)構(gòu)圖。在硬件電路上包括第一物理層Ethernet接口 1、第二物理層EBUS接口 1、EtherCAT從站控制器1、第一 ESI EEPR0M、電源、8通道數(shù)字量輸入模塊、光耦隔離模塊I。電源為第一 1板卡提供正常工作所需要的各規(guī)格電源,為了使數(shù)字量輸入地與控制電路地隔離,采用B0505S模塊隔離式開關(guān)電源進行隔離供電。第一物理層Ethernet接口 I通過PHY芯片KSZ8721與網(wǎng)絡變壓器Hl 102與工控機PC端的100M以太網(wǎng)卡連接,第二物理層EBUSl接口 I通過共地的LVDS電平與第二多軸運動控制板卡的第一物理層EBUS接口 II連接。EtherCAT從站控制器I采用Beckhoff公司的ET1200,第一 ESI EEPROM采用16kbit大小的AT24LC16對ET1200的PDI信息進行配置,將其PDI配置為Digital 1接口。8通道數(shù)字量輸入模塊I與ET1200的PDI之間采用光耦TLP521進行隔離。
[0035]如圖4所示,為第二多軸運動控制板卡結(jié)構(gòu)圖。在硬件電路上包括第一物理層EBUS接口 I1、第二物理層EBUS接口 I1、EtherCAT從站控制器I1、ARM控制器、FPGA、光耦隔離模塊I1、數(shù)字隔離模塊、6通道脈沖伺服驅(qū)動模塊、8通道數(shù)字量輸出模塊、8通道模擬量輸入模塊、8通道模擬量輸出模塊、電源、第一 SPI接口、第二 SPI接口、第二 ESI EEPROMo電源為第二多軸運動控制板卡提供正常工作所需要的各規(guī)格電源,為了使伺服地平面與控制電路地