MPC07控制卡在運(yùn)動(dòng)控制系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
MPC07控制卡是基于PC機(jī)PCI總線的步進(jìn)電機(jī)或數(shù)字式伺服電機(jī)的上位控制單元,它與PC機(jī)構(gòu)成主從式控制結(jié)構(gòu),可插在PC機(jī)PCI擴(kuò)展槽內(nèi)。每塊MPC07卡可控制4軸步進(jìn)電機(jī)或數(shù)字式伺服電機(jī),并支持多卡共用,以實(shí)現(xiàn)多于四個(gè)運(yùn)動(dòng)軸的控制,且每軸均可輸出脈沖和方向信號(hào),以控制電機(jī)的運(yùn)轉(zhuǎn);同時(shí),MPC07可外接原點(diǎn)、減速、限位等開關(guān)信號(hào),以實(shí)現(xiàn)回原點(diǎn)、保護(hù)等功能,這些開關(guān)信號(hào)由MPC07卡自動(dòng)檢測(cè)并作出反應(yīng)。MPC07卡還提供了功能強(qiáng)大的運(yùn)動(dòng)控制函數(shù)庫(kù),并可以充分利用PC機(jī)現(xiàn)有的資源來(lái)開發(fā)滿足設(shè)計(jì)所要求的運(yùn)動(dòng)控制系統(tǒng)。
1 硬件系統(tǒng)結(jié)構(gòu)
圖1所示為運(yùn)動(dòng)控制系統(tǒng)結(jié)構(gòu)圖。本系統(tǒng)硬件采用MPC07控制卡作為開發(fā)運(yùn)動(dòng)控制系統(tǒng)的平臺(tái),其PC機(jī)主要負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控等方面的工作,主要包括運(yùn)動(dòng)參數(shù)的設(shè)置、系統(tǒng)狀態(tài)的顯示、控制指令的發(fā)送、外部信號(hào)的監(jiān)控等;MPC07卡則通過(guò)PCI總線接收到PC機(jī)指令,再經(jīng)內(nèi)部智能芯片處理后將控制信號(hào)送入驅(qū)動(dòng)器,然后驅(qū)動(dòng)器把控制系統(tǒng)發(fā)出的脈沖信號(hào)轉(zhuǎn)化為步進(jìn)電機(jī)的角位移控制步進(jìn)電機(jī)的運(yùn)行,以此來(lái)實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制系統(tǒng)中小車運(yùn)動(dòng)的精確調(diào)速和定位。
1.1 MPC07的技術(shù)特性
MPC07控制卡具有開放式結(jié)構(gòu)、使用簡(jiǎn)便、功能豐富、可靠性高等特性。在硬件方面MPC07采用PC機(jī)的PCI總線方式,因此適用范圍廣,且卡上無(wú)需進(jìn)行任何跳線設(shè)置,所有資源均自動(dòng)配置。另外,在Windows98、Windows2000及Windows XP操作系統(tǒng)中支持即插即用,使用非常方便;MPC07的接線方式采用DB37型插頭,可使用屏蔽線纜,并且所有的輸入、輸出信號(hào)均用光電隔離,因此提高了控制卡的可靠性和抗干擾能力;在軟件方面MPC07還提供了豐富的運(yùn)動(dòng)控制函數(shù)庫(kù),以滿足不同的應(yīng)用要求。用戶只需根據(jù)控制系統(tǒng)的要求編制人機(jī)界面,并調(diào)用MPC07運(yùn)動(dòng)函數(shù)庫(kù)中的指令函數(shù),就可以開發(fā)出滿足要求的多軸運(yùn)動(dòng)控制系統(tǒng)。MPC07的技術(shù)指標(biāo)主要有:
◇4軸步進(jìn)或數(shù)字式伺服控制;
◇脈沖輸出速度可達(dá)4.0 Mpps;
◇梯形加減速;
◇運(yùn)動(dòng)中可變速;
◇多軸高速線性插補(bǔ);
◇可輸出脈沖/方向或雙脈沖信號(hào);
◇每軸帶有原點(diǎn)、減速和限位開關(guān)等接口;
◇16個(gè)通用輸入開關(guān)信號(hào),24個(gè)通用輸出開關(guān)信號(hào);
◇WINDOWS環(huán)境下WDM、DLL庫(kù);
◇演示程序。
1.2 MPC07接口
MPC07控制卡采用DB37接口,外接線可采用屏蔽線纜,以提高控制卡的抗干擾能力。其中開關(guān)量信號(hào)(原點(diǎn)、減速、限位以及I/O信號(hào)等)采用12~24DCV開關(guān)電源;脈沖量信號(hào)(脈沖、方向等)采用5DCV開關(guān)電源。完整的MPC07運(yùn)動(dòng)控制器由三張板卡組成:MPC07主板,轉(zhuǎn)接板和通用IO擴(kuò)展板。其中MPC07主板完成運(yùn)動(dòng)控制功能,它有兩個(gè)接口:DB37和40芯扁平電纜,其中DB37接口主要用于運(yùn)動(dòng)控制,它可通過(guò)轉(zhuǎn)接板與驅(qū)動(dòng)器等外部設(shè)備相連;而40芯扁平電纜則用于通用IO,可以通過(guò)通用IO擴(kuò)展板與外部設(shè)備相連。實(shí)際上,轉(zhuǎn)接板才是MPC07主板與電機(jī)驅(qū)動(dòng)器的連接橋梁,可用來(lái)提供脈沖和方向差分輸出。通用IO擴(kuò)展板是通用IO信號(hào)與MPC07主板的連接橋梁,可以利用40扁平電纜將擴(kuò)展板與MPC07主板相連。如果控制系統(tǒng)需要使用通用輸入或輸出信號(hào),則必須使用通用IO擴(kuò)展板,而不能將IO信號(hào)直接與MPC07主板的40芯電纜管腳相連,這樣可能燒壞FPGA。
2 軟件實(shí)現(xiàn)
該運(yùn)動(dòng)控制系統(tǒng)的程序是在Windows系統(tǒng)下,用VC++編寫的面向?qū)ο蟮恼Z(yǔ)言程序,MPC07軟件中已經(jīng)將常用的MPC07.dll中DLL函數(shù)封裝成類CLoadDll,并提供該類的源代碼,該類含有與運(yùn)動(dòng)指令庫(kù)函數(shù)名及參數(shù)相同的成員函數(shù)??稍贛PC07卡軟件安裝盤\Develop\VC文件夾下找到源代碼,文件名為L(zhǎng)oadDll.cpp和LoadDll.h,并將其添加進(jìn)工程,在程序適當(dāng)?shù)胤教砑釉擃惖膶?duì)象,通過(guò)對(duì)應(yīng)成員函數(shù)來(lái)調(diào)用DLL中的函數(shù)。其程序流程圖如圖2所示。
程序執(zhí)行時(shí),首先對(duì)控制卡進(jìn)行自動(dòng)檢測(cè)和初始化,在程序界面中可以設(shè)置的參數(shù)包括:小車初始位置、初速度、最高速度、加速度、移動(dòng)距離等,參數(shù)設(shè)置不滿足要求時(shí),還需要重新設(shè)置,只有滿足要求后,才能開始運(yùn)行程序。運(yùn)動(dòng)過(guò)程中可進(jìn)行人工干預(yù),人工干預(yù)后小車可立即制動(dòng)也可光滑制動(dòng),如不需要干預(yù),小車按照設(shè)置運(yùn)動(dòng)到指定位置。
(1)初始化控制卡
首先定義DLL運(yùn)動(dòng)控制函數(shù)庫(kù)變量:CLoadDll m_cDll,初始化函數(shù)為InitBoard (),其執(zhí)行代碼如下:
(2)運(yùn)動(dòng)實(shí)現(xiàn)
運(yùn)動(dòng)小車在點(diǎn)位運(yùn)動(dòng)方式下可進(jìn)行常速或快速運(yùn)動(dòng),軟件通過(guò)對(duì)設(shè)定的移動(dòng)距離與小車當(dāng)前位置的比較來(lái)確定小車的運(yùn)動(dòng)方向,而后系統(tǒng)根據(jù)用戶設(shè)定的運(yùn)動(dòng)參數(shù)進(jìn)行相應(yīng)的運(yùn)動(dòng),其部分實(shí)現(xiàn)代碼如下:
(3)制動(dòng)
小車在運(yùn)動(dòng)過(guò)程中可采取立即制動(dòng)和光滑制動(dòng)兩種制動(dòng)方式,代碼如下:
此外,程序運(yùn)行時(shí)為了提高程序控制的精度,必須補(bǔ)償實(shí)時(shí)顯示用取得cpu的時(shí)間,也就是程序中的誤差補(bǔ)償部分。通過(guò)編譯程序顯示小車的運(yùn)動(dòng)控制界面如圖3所示。
3 結(jié)束語(yǔ)
本文以基于PCI總線的MPC07控制卡為開發(fā)平臺(tái),利用VC++結(jié)合MPC07控制卡的運(yùn)動(dòng)控制函數(shù)庫(kù)編寫了面向?qū)ο蟮南到y(tǒng)控制程序,通過(guò)MPC07卡對(duì)步進(jìn)電機(jī)進(jìn)行精確運(yùn)動(dòng)控制,從而實(shí)現(xiàn)了運(yùn)動(dòng)系統(tǒng)中小車的精確調(diào)速和定位,解決了運(yùn)動(dòng)控制系統(tǒng)中控制精度低的問(wèn)題。應(yīng)用結(jié)果表明,MPC07控制卡具有開發(fā)簡(jiǎn)單、運(yùn)動(dòng)可靠和控制方便等特點(diǎn),能出色的完成運(yùn)動(dòng)控制的各個(gè)細(xì)節(jié)。