基于PC的開放式多軸運(yùn)動控制系統(tǒng)開發(fā)
運(yùn)動控制技術(shù)的發(fā)展是制造自動化前進(jìn)的旋律,是推動新的產(chǎn)業(yè)革命的關(guān)鍵技術(shù)。運(yùn)動控制器已經(jīng)從以單片機(jī)或微處理器為核心的運(yùn)動控制器和以專業(yè)芯片(ASIC)作為核心處理器的運(yùn)動控制器,發(fā)展到了基于PC總線的以DSP和FPGA作為核心處理器的開放式運(yùn)動控制器。
當(dāng)今,隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,運(yùn)動控制技術(shù)正在發(fā)生根本性的變革,由專用型封閉式開環(huán)控制模式向通用型開放式實(shí)時動態(tài)全閉環(huán)控制模式發(fā)展。開放式體系結(jié)構(gòu)使運(yùn)動控制系統(tǒng)有更好的通用性、柔性、適用性、擴(kuò)展性。
一、開放式運(yùn)動控制系統(tǒng)
按照IEEE定義,一個開放式運(yùn)動控制系統(tǒng)應(yīng)提供這樣的能力來自不同賣主的種種平臺上運(yùn)行的應(yīng)用都能夠在系統(tǒng)上完全實(shí)現(xiàn),并能和其他系統(tǒng)應(yīng)用互操作,且具有一致性的用戶界面。
開放式運(yùn)動控制系統(tǒng)的研究始于1987年,是由美國發(fā)起的。目前,通用運(yùn)動控制器從結(jié)構(gòu)上主要分為如下三大類:
1.基于計(jì)算機(jī)標(biāo)準(zhǔn)總線的運(yùn)動控制器
這種運(yùn)動控制器大都采用DSP或微機(jī)芯片作為CPU,可完成運(yùn)動規(guī)劃、高速實(shí)時插補(bǔ)、伺服濾波控制和伺服驅(qū)動,外部IO之間的標(biāo)準(zhǔn)化通用接口功能,它開放的函數(shù)庫可提供用戶根據(jù)不同的需要,在DOS或Windows等平臺下開發(fā)應(yīng)用軟件,組成各種控制系統(tǒng)。目前這種運(yùn)動控制器得到了廣泛的應(yīng)用。
2.Soft型開放式運(yùn)動控制器
它提供給用戶最大的靈活性,它的運(yùn)動控制軟件全部裝在計(jì)算機(jī)中,而硬件部分僅僅是計(jì)算機(jī)與伺服驅(qū)動和外部IO之間的標(biāo)準(zhǔn)化通用接口。用戶可以在WINDOWS平臺和其他操作系統(tǒng)的支持下,利用開放的運(yùn)動控制內(nèi)核,開發(fā)所需要的控制功能,構(gòu)成各種類型的高性能運(yùn)動控制系統(tǒng),從而提供給用戶更多的選擇和靈活性。Soft型開放式運(yùn)動控制的特點(diǎn)是開發(fā),制造成本相對較低,能給予開發(fā)人員更加個性化的開發(fā)平臺。
3.嵌入式結(jié)構(gòu)的運(yùn)動控制器
這種運(yùn)動控制器是把計(jì)算機(jī)嵌入到計(jì)算機(jī)控制器中的一種產(chǎn)品,它能夠獨(dú)立運(yùn)行。運(yùn)動控制器與計(jì)算機(jī)之間的通訊依靠計(jì)算機(jī)總線,實(shí)質(zhì)上是基于總線結(jié)構(gòu)的運(yùn)動控制器的一種變種。對于標(biāo)準(zhǔn)總線的計(jì)算機(jī)模塊,這種類型的控制器采用了更加可靠的總線連接方式(采用針式連接器),更加適合工業(yè)應(yīng)用。在使用中,采用如工業(yè)以太網(wǎng)、RS485、SERCOS、PROFIBUS等現(xiàn)場網(wǎng)絡(luò)通訊接口連接上級計(jì)算機(jī)或控制面板。嵌入式的運(yùn)動控制器也可配置軟盤和硬盤驅(qū)動器,甚至可以通過Internet進(jìn)行遠(yuǎn)程診斷。
二、PC+運(yùn)動控制卡的控制方案
采用PC+運(yùn)動控制卡作為上位控制可充分利用計(jì)算機(jī)資源,用于運(yùn)動過程、運(yùn)動軌跡都比較復(fù)雜,且柔性比較強(qiáng)的機(jī)器和設(shè)備。從用戶使用的角度來看,基于PC機(jī)的運(yùn)動控制卡主要是硬件接口(輸入輸出信號的種類、性能)和軟件接口(運(yùn)動控制函數(shù)庫的功能函數(shù))的差異。
運(yùn)動控制卡是基于PC機(jī)各種總線的步進(jìn)電機(jī)或數(shù)字式伺服電機(jī)的上位控制單元,總線形式也是多種多樣。由于計(jì)算
機(jī)主板的更新?lián)Q代,ISA插槽都越來越少了,PCI總線的運(yùn)動控制卡應(yīng)該是目前的主流??ㄉ蠈S肅PU與PC機(jī)CPU構(gòu)成主從式雙CPU控制模式。PC機(jī)CPU可以專注于人機(jī)界面、實(shí)時監(jiān)控和發(fā)送指令等系統(tǒng)管理工作;卡上專用CPU來處理所有運(yùn)動控制的細(xì)節(jié)升降速計(jì)算、行程控制、多軸插補(bǔ)等,無需占用PC機(jī)資源。同時隨卡還提供功能強(qiáng)大的運(yùn)動控制軟件庫C語言運(yùn)動庫、WindowsDLL動態(tài)鏈接庫等,讓用戶更快、更有效地解決復(fù)雜的運(yùn)動控制問題。
運(yùn)動控制卡采用了開放式結(jié)構(gòu),使用簡便,功能豐富,可靠性高。若采用PC機(jī)的PCI總線方式,卡上無需進(jìn)行任何跳線設(shè)置,所有資源自動配置,并且所有的輸入、輸出信號均用光電隔離,提高了控制卡的可靠性和抗干擾能力;在軟件方面提供了豐富的運(yùn)動控制函數(shù)庫,以滿足不同的應(yīng)用要求。用戶只需根據(jù)控制系統(tǒng)的要求編制人機(jī)界面,并調(diào)用控制卡運(yùn)動函數(shù)庫中的指令函數(shù),就可以開發(fā)出既滿足要求又成本低廉的多軸運(yùn)動控制系統(tǒng)。
運(yùn)動函數(shù)庫為單軸及多軸的步進(jìn)或伺服控制提供了許多運(yùn)動函數(shù),如單軸運(yùn)動、多軸獨(dú)立運(yùn)動、多軸插補(bǔ)運(yùn)動等等。另外,為了配合運(yùn)動控制系統(tǒng)的開發(fā),還提供了一些輔助函數(shù),如中斷處理、編碼器反饋、間隙補(bǔ)償,運(yùn)動中變速等。
正是由于運(yùn)動控制卡的開放式結(jié)構(gòu),強(qiáng)大而豐富的軟件功能,對于使用者來說進(jìn)行二次開發(fā)的設(shè)計(jì)周期縮短了,開發(fā)手段增多了,針對不同的數(shù)控設(shè)備,其柔性化、模塊化、高性能的優(yōu)勢得以被充分利用。
三、開放式多軸運(yùn)動控制系統(tǒng)硬件結(jié)構(gòu)
整個系統(tǒng)以基于“PC機(jī)+運(yùn)動控制卡”為核心,采用ADT850運(yùn)動控制卡加松下數(shù)字交流伺服驅(qū)動器構(gòu)成一個開放式硬件結(jié)構(gòu)。同時配備內(nèi)容豐富、功能強(qiáng)大的運(yùn)動函數(shù)庫,采用VC++面向?qū)ο蟮木幊碳夹g(shù),實(shí)現(xiàn)PC機(jī)、運(yùn)動控制卡和伺服驅(qū)動器之間的通訊,其結(jié)構(gòu)如圖1所示。
圖1二軸運(yùn)動系統(tǒng)結(jié)構(gòu)框圖
PC機(jī)負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時監(jiān)控等方面的工作,例如鍵盤和鼠標(biāo)的管理、系統(tǒng)狀態(tài)的顯示、控制指令的發(fā)送、外部信號I0的監(jiān)控等等。其中,脈沖信號控制電機(jī)所走的步數(shù),方向信號控制電機(jī)正反轉(zhuǎn),以實(shí)現(xiàn)二軸的位置控制。X軸和Y軸原點(diǎn)、限位檢測是通過一組機(jī)械開關(guān)來實(shí)現(xiàn),原點(diǎn)檢測開關(guān)用來生成用戶二維運(yùn)動系統(tǒng)坐標(biāo)系原點(diǎn),限位檢測開關(guān)確保每軸工作行程極限。這些狀態(tài)信號經(jīng)邏輯電平整形電路、光電隔離電路后送入運(yùn)動控制卡狀態(tài)寄存器中,由CPU隨時讀出,達(dá)到對IO狀態(tài)信號的檢測。在硬件上,由于采用了光電隔離措施,這樣,既隔離了外設(shè)對內(nèi)部數(shù)字系統(tǒng)的干擾,又能有效地防止過電壓、過電流等外界突發(fā)事件對計(jì)算機(jī)系統(tǒng)的損壞,大大提高了系統(tǒng)的控制精度和可靠性。
本系統(tǒng)充分發(fā)揮了PC機(jī)軟件資源豐富和計(jì)算速度快的優(yōu)點(diǎn),吸收CADCAM的特點(diǎn),在利用造型軟件生成零件圖后,再利用數(shù)控系統(tǒng)轉(zhuǎn)化為加工G代碼,將指令G代碼與機(jī)床實(shí)際位置進(jìn)行分析比較產(chǎn)生瞬時速度,然后由板卡將其解釋為運(yùn)動軌跡控制函數(shù),最后通過調(diào)用運(yùn)動函數(shù)庫內(nèi)的插補(bǔ)程序段,輸出脈沖和方向信號,控制半閉環(huán)位置伺服系統(tǒng)帶動工作臺運(yùn)轉(zhuǎn),實(shí)現(xiàn)所希望的空間軌跡路徑動態(tài)特性和穩(wěn)態(tài)精度。
四、基于VisualC++多軸運(yùn)動控制系統(tǒng)的軟件開發(fā)
VisualC++是一個在Windows環(huán)境下的程序開發(fā)工具,它是可視化的、面向?qū)ο蟮?,采用事件?qū)動的。它屏蔽了Windows環(huán)境下程序設(shè)計(jì)的復(fù)雜性,使Windows應(yīng)用程序設(shè)計(jì)變得簡單、方便、快捷。利用ADT850運(yùn)動控制卡的動態(tài)鏈接庫
DLL可以很快開發(fā)出Windows平臺下的運(yùn)動控制系統(tǒng)。ADT850運(yùn)動控制卡動態(tài)鏈接庫是標(biāo)準(zhǔn)的Windows32位動態(tài)鏈接庫,選用的開發(fā)工具應(yīng)支持Windows標(biāo)準(zhǔn)的32位DLL調(diào)用。
基于PC+運(yùn)動控制卡多軸運(yùn)動控制系統(tǒng)的軟件開發(fā)需由ADT850運(yùn)動控制卡配套光盤提供開發(fā)庫中的三個文件,一個是靜態(tài)庫ADT850.LIB,一個是頭文件ADT850.H,一個是WindowsNT2000使用的文件winio.sys,動態(tài)庫中的函數(shù)已在頭文件ADT850.H中有聲明,用戶可以直接調(diào)用其中的函數(shù)。ADT850函數(shù)庫中提供常用的單軸運(yùn)動,多軸獨(dú)立運(yùn)動控制,多軸插補(bǔ)運(yùn)動控制,中斷、等功能。
每塊ADT850卡最多可以控制四軸的運(yùn)動,當(dāng)需要控制多個軸時,可以在PC機(jī)上插入幾塊卡,而在編程時,把它們當(dāng)成一個整體對待,各卡之間的軸與同一塊卡上的軸也同樣能夠進(jìn)行聯(lián)動或插補(bǔ),這樣就能實(shí)現(xiàn)多于四軸的運(yùn)動控制。一臺計(jì)算機(jī)上可同時使用的ADT850卡的數(shù)目取決于PCI擴(kuò)展槽的數(shù)目。
五、結(jié)語
以基于“PC機(jī)+運(yùn)動控制卡”為核心的開放式多軸運(yùn)動控制系統(tǒng)的已經(jīng)成功的應(yīng)用到了南京工業(yè)大學(xué)研發(fā)的二維交流伺服系統(tǒng)的高精度X-Y坐標(biāo)繪圖儀上,取得了很好的控制性能。利用VisualC++在Windows平臺上,對ADT850運(yùn)動函數(shù)庫二次開發(fā),可以很快的開發(fā)出用戶界面和自己的控制系統(tǒng),大大節(jié)省了開發(fā)周期和開發(fā)費(fèi)用。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評論