摘 要:EdiTasc是在Wiodows下實時運行的通用數(shù)控系統(tǒng)軟件,識別國際標準的DIN66025 G代碼和高級語言MTASC。MTASC編程語言是基于C和BASIC的高級運動控制語言。
關鍵詞:EdiTasc;Mtasc;數(shù)控系統(tǒng)
1 EdiTasc數(shù)控軟件簡介
EdiTasc是一款通用的數(shù)控軟件,它適用于鉆床、銑床、鏜床、雕刻機和加工中心等多種控制系統(tǒng),也是一個高度開放的開發(fā)平臺,可以直接控制各種工業(yè)自動化設備,可以方便地開發(fā)用戶專用界面及控制系統(tǒng)。EdiTasc是在Wiodows下實時運行的通用數(shù)控系統(tǒng)軟件,識別國際標準的DIN66025G代碼和高級語言MTASC。
MTASC編程語言是基于C和BASIC的高級運動控制語言。它可以任意定義各種長度、多種類型的變量和數(shù)組,具有多種數(shù)學函數(shù)、循環(huán)程序及條件,允許有任意層擴展和嵌套,可調用子程序及其它語言的子程序,在程序的輸入和編輯過程中可以執(zhí)行任意一行或幾行程序,可方便地驗證程序及數(shù)據(jù)的合理性。
2 MTASC 編程語言
2.1 句法及變量類型
Mtasc語言句法結構同C語言,每個命令語句以“;”為結束標記。除擴符外,每項間必須有一個或更多空格,但+, = 等運算不必加空格。每條命令要從右到左順序被執(zhí)行,每條指令的運行結果可有一個或多個結果,沒有功能或運算符號的一行不被執(zhí)行。如
a1 3.45 \"useless text\";
c = COS(PI / 7.0); 和 c = COS PI / 7.0; 的結果是一樣的。允許多層擴符,層數(shù)不受限制,如
PRINT ((a1 + 5) * (a2 * a4));
常用的變量有整數(shù)、小數(shù)、復數(shù)、字符和數(shù)組(字符,整數(shù)和小數(shù)數(shù)組)等,其中數(shù)組必須用命令ARY初始化。如Index_arr = ARY 5(1 2 3 4 5),表示數(shù)組名是Index_arr,包含五個元素(1 2 3 4 5)。數(shù)組中的元素用Index_arr[*]表示,如Index_arr[0]=1,Index_arr[4]=5。
變量名的定義盡量與物理名相同或相近,以字母開頭,每個字母大寫或小寫其結果是相同的,系統(tǒng)軟件不區(qū)別字母大寫或小寫,如a1,i1,j1,step,Conter, X-Coordinate 等。
2.2 程序循環(huán)語句及其應用
(1)IF:
格式:IF后是一條件,當它滿足時,大擴符內的內容就被執(zhí)行,否則就跳到大擴符后第一行程序開始執(zhí)行。 如
IF (k = = 1) /* 如果k = 1,就執(zhí)行下面大括號里的命令,否則不執(zhí)行 */
{
X 22;MF; /* X軸快速運動到22 */
Z zdn; ML; /* Z軸快速運動到zdn */
... /* 其他命令 */
}
X 80, ML; /* X軸快速運動到80 */
IF (a == b){PRINT \"yes!\";} /* 如果a =b,就打印yes!,否則執(zhí)行大括號后面的命令 */
(2)FOR:
格式:FOR 循環(huán)次數(shù) {要執(zhí)行的內容}
如下面的例子執(zhí)行5次大擴符內的程序{X _X + 10; MF; WAIT 1;}。
FOR 5 {
X _X + 10; MF; /* X軸快速正向運動10 */
WAIT 1; /* 延時1秒 */
}
n1 = 20;
FOR n1 { /* 循環(huán)n1次*/
X _X + 10; MF; /* X軸快速正向運動10 */
WAIT 1; /* 延時1秒 */
}
(3)WHILE:
格式:在WHILE前面要定義控制循環(huán)次數(shù)變量的初始值,如 I = 2,后面是定義控制循環(huán)結束的條件,如\"(i = i + 1) <= 25\", 大擴號里{}是要執(zhí)行的內容。
3 MTASC語言編程實例
在EdiTasc數(shù)控系統(tǒng)中,還可進一步選擇電子手輪、刀尖半徑補償、自動換刀器等功能。文章針對EdiTasc數(shù)控系統(tǒng)在GH410型高速雕銑機中的實際應用,運用MTASC語言編寫與電子手輪相配套的點動程序,進而提高了GH410型高速雕銑機手動控制功能。程序全文如下:
wait 2;
k = 1;
spf = 10.0;
sps = 0.05;
dx = 1.0;
dy = 1.0;
dz = 1.0;
rmpMode 'Y';
while (k > 0)
{
ml_f = 10 ; MVPAR;
_drvPosiSpeedMax = sps; MVPAR; Z _Z - 1 * dZ ; ml;
WHILE \"(0 != IN _i6)\" {} mreset;
ml_f = 20; MVPAR;
_drvPosiSpeedMax = spf; MVPAR; Z _Z + 5 * dZ ; ml;
WHILE \"(0 != IN _i5)\" {} mreset;
ml_f = 20; MVPAR;
_drvPosiSpeedMax = spf; MVPAR; X _X - 5 * dX ; ml;
WHILE \"(0 != IN _i2)\" {} mreset;
_drvPosiSpeedMax = sps; MVPAR; X _X + 5 * dX ; ml;
WHILE \"(0 != IN _i1)\" {} mreset;
_drvPosiSpeedMax = spf; MVPAR; Y _Y - 5 * dY ; ml;
WHILE \"(0 != IN _i4)\" {} mreset;
_drvPosiSpeedMax = sps; MVPAR; Y _Y + 5 * dY ; ml;
WHILE \"(0 != IN _i3)\" {} mreset;
wait 0;
}
4 結束語
文章通過編程實例,說明了Mtasc語言在EdiTasc控制系統(tǒng)中的應用。Mtasc語言做為一種高級運動控制語言,其特有的變量形式、任意層擴展和嵌套功能,在EdiTasc控制系統(tǒng)中得到廣泛的應用。
作者簡介:韓現(xiàn)龍(1981-),男,河北武安人,碩士,講師,研究方向:機械CAD/CAM。