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