郭慧晶
(山西機電職業(yè)技術(shù)學(xué)院,山西 長治 046011)
隨著新型先進制造裝備產(chǎn)業(yè)的快速發(fā)展,運動控制系統(tǒng)的發(fā)展經(jīng)歷了從直流到交流,從開環(huán)到閉環(huán),從模擬到數(shù)字,直到基于PC的伺服控制網(wǎng)絡(luò)(PC-Basedsscnet)系統(tǒng)和基于網(wǎng)絡(luò)的運動控制系統(tǒng)的發(fā)展過程[1]。而中國市場對運動控制的需求與日俱增,運動控制技術(shù)作為相關(guān)工業(yè)自動化技術(shù)的核心,起著非常重要的作用,該技術(shù)適用于激光加工、裝配生產(chǎn)、電子加工、機器人以及數(shù)控機床等方面。
固高科技是國內(nèi)首家專業(yè)運動控制核心技術(shù)平臺研發(fā)公司,為裝備制造業(yè)的發(fā)展做出了巨大貢獻。本文用到的是固高公司生產(chǎn)的GTS-800-PV-PCIe 運動控制器,其核心是由DSP和FPGA組成,可以實現(xiàn)高性能的控制計算,提供標準的 PCIe 總線接口[2],可以實現(xiàn)高性能的控制計算和高速的點位運動,提供Visual C++,Visual Basic,C#,VB.NET 等函數(shù)庫和 Windows 動態(tài)鏈接庫。
本文利用Visual Studio 2019開發(fā)軟件,用C++語言程序?qū)崿F(xiàn)平面籃球圖的MFC界面設(shè)計以及運動軌跡的設(shè)定。
需要繪制的平面籃球圖如圖1所示,要求建立相對于機械原點坐標系的加工坐標系,然后以速度50Pulse/ms速度移動XY軸,使激光束沿下圖軌跡移動,盡量使軌跡平滑。絲杠導(dǎo)程為10 mm。
圖1 平面籃球圖
坐標位置如下表1所示,單位為毫米,其中2、5、7為圓心位置。
表1 坐標位置表 單位:mm
圓弧插補是給出兩個端點間的插補數(shù)字信息,以一定的算法計算出逼近實際圓弧的點群,控制道具沿這些點運動,加工畫出圓弧曲線[3]。
為完成對X軸、Y軸和Z軸的正負限位以及原點的控制,需要在運動控制平臺上將X軸、Y軸和Z軸端子按照接線要求進行電氣接線。
除此之外,還需要按照要求完成軸-驅(qū)動器-編碼器的電氣接線。
MFC是Microsoft Foundation Classes微軟基礎(chǔ)類庫的簡稱,封裝了許多的C++類庫[4]。
根據(jù)任務(wù)要求,需要完成平面籃球圖的設(shè)計,運動控制平臺通過Visual Studio 2019軟件的程序完成初始化后,清除狀態(tài),之后對X軸、Y軸和Z軸進行伺服使能,然后X軸、Y軸和Z軸分別完成回零操作,打開激光筆后,進行平面籃球圖的繪制,繪制完成后,關(guān)閉伺服使能。綜上所述,MFC界面設(shè)計需要用到初始化、伺服使能、回零、軸運動、下使能、清除狀態(tài)、軸號的選擇的功能,應(yīng)對其分配對應(yīng)按鈕控件和文本框。
MFC界面的設(shè)計流程為:創(chuàng)建新項目,選擇MFC應(yīng)用,在應(yīng)用程序類型中選擇基于對話框,完成后進入對話框,將配置文件復(fù)制到項目文件夾,打開Visual Studio 2019軟件在頭文件處添加現(xiàn)有項,打開源文件進行聲明,選擇初始化、伺服使能、回零、軸運動、下使能、清除狀態(tài)按鈕控件,并對對應(yīng)按鈕進行功能程序編寫,軸號的選擇需要在MFC界面中選擇靜態(tài)文本框和實例編輯框。平面籃球圖的MFC界面設(shè)計如圖2所示。
圖2 圓弧插補運動——平面籃球圖的MFC界面
基于實際工作流程,把平面籃球圖繪制的工作步驟分解成了三個部分:外圓的繪制、1-7-3圓弧段的繪制和4-7-6圓弧段的繪制。
程序流程圖中,最核心的環(huán)節(jié)是圓弧插補運動。具體的程序流程圖如圖3所示。
圖3 圓弧插補運動——平面籃球圖的程序流程圖
首先完成系統(tǒng)的初始化,包括:運動控制器的打開、運動控制器的復(fù)位、運動控制器的配置及消除隔周的報警和限位。具體程序段如下:
voidClineDlg::init()
{
short sRtn;
sRtn = GT_Open();
sRtn = GT_Reset();
sRtn = GT_LoadConfig("GTS800.cfg");
sRtn = GT_ClrSts(1,4);
}
打開伺服使能,可通過sRtn = GT_AxisOn(gAxis); 程序?qū)崿F(xiàn)。
回零運動需要分別對X軸、Y軸和Z軸進行回零,具體程序如下:
voidClineDlg::zeroPos()
{
short sRtn;
short gAxis = 1;
THomeStatus tHomeSts;
THomePrm tHomePrm;
gAxis = getAxis();
sRtn = GT_ClrSts(gAxis);
sRtn = GT_ZeroPos(gAxis);
sRtn = GT_AxisOn(gAxis);
//設(shè)置 Smart Home 回原點參數(shù)
sRtn = GT_GetHomePrm(gAxis, &tHomePrm);
tHomePrm.mode = 11;
tHomePrm.moveDir = 1;
tHomePrm.edge = 0;
tHomePrm.velHigh = 30;
tHomePrm.velLow = 5;
tHomePrm.acc = 0.3;
tHomePrm.dec = 0.3;
tHomePrm.pad2[0] = 1;
tHomePrm.pad2[1] = 1;
tHomePrm.pad2[2] = 1;
tHomePrm.searchHomeDistance = 0;
tHomePrm.searchIndexDistance = 10000;
tHomePrm.escapeStep = 2000;
sRtn = GT_GoHome(gAxis, &tHomePrm);
do
{
sRtn = GT_GetHomeStatus(gAxis, &tHomeSts);
} while (tHomeSts.run);
sRtn = GT_ZeroPos(gAxis);
}
圓弧插補運動需要完成兩步操作:建立坐標系和緩存區(qū)存入數(shù)據(jù)。運動控制器在初始狀態(tài)下,所有軸處于單軸運動模式,兩個坐標系無效,因此在插補運動前,必須首先建立坐標系,可以通過GT_SetCrdPrm 指令完成坐標系的建立。
運動控制器插補運動模式采用緩存區(qū)運動方式,然后,啟動插補運動,運動控制器會依次執(zhí)行插補數(shù)據(jù),直到所有的插補數(shù)據(jù)全部運動完成[5]。向緩存區(qū)寫入大圓的圓弧插補數(shù)據(jù),具體指令如下:
sRtn = GT_ArcXYC(1, 10325, 96364, 54610, -30825, 0, 50, 0.1, 0, 0);
1-7-3段圓弧和4-7-6段圓弧的圓弧插補指令為:
//1-7-3圓弧
sRtn = GT_ArcXYR(1, 120418, 97238, 65000, 1, 50, 0.1, 0, 0);
// 4-7-6圓弧
sRtn = GT_ArcXYR(1, 9938, 31508, 65000, 1, 50, 0.1, 0, 0);
需要指出的是:圓弧插補指令有兩種描述方法:半徑描述法和圓心坐標描述法。使用半徑描述法時,可以通過指令 GT_ArcXYR、GT_ArcYZR、GT_ArcZXR來描述,需要輸入圓弧終點坐標和半徑值,但是這種方法不能畫整圓;圓心坐標描述法通過指令 GT_ArcXYC、GT_ArcYZC、GT_ArcZXC 來實現(xiàn),需要輸入圓弧插補終點坐標和圓弧插補的圓心相對于起點位置的偏移量。
最后通過sRtn = GT_AxisOff(gAxis);指令關(guān)閉使能。
程序代碼檢查無誤后,對程序進行編譯并調(diào)試,點擊對應(yīng)控制按鈕對運動控制平臺進行控制,經(jīng)檢驗,可以完成平面籃球圖的繪制。
本文基于固高運動控制平臺,利用Visual Studio 2019軟件實現(xiàn)了平面籃球圖的MFC界面設(shè)計和繪制。此外,還可通過直線插補運動和圓弧插補運動完成復(fù)雜圖形的運動軌跡,為運動控制技術(shù)的進一步發(fā)展提供便利。