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