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