宏程序
用戶宏程序:
雖然子程序?qū)幹葡嗤庸げ僮鞯某绦蚍浅S杏茫脩艉瓿绦蛴捎谠试S使用“變量算術(shù)和邏輯運(yùn)算及條件轉(zhuǎn)移”使得編制相同加工操作的程序更方便更容易,可將相同加工操作編為通用程序如:型腔加工宏程序和固定加工循環(huán)宏程序,使用時加工程序可用一條簡單指令調(diào)出用戶宏程序和調(diào)用子程序完全一樣。
變量
說明:
1、變量的表示
2、變量的類型
3、變量值的范圍
普通加工程序直接用數(shù)值指定G代碼和移動距離。例如:G01和X100.0
使用用戶宏程序時數(shù)值可以直接指定或用變量指定,當(dāng)用變量時,變量值可用程序或用MDI面板上的操作改變。
計(jì)算機(jī)允許使用變量名,用戶宏程序不行變量用變量符號# 和后面的變量號指定。
例如:#1
表達(dá)式可以用于指定變量號此時表達(dá)式必須封閉在括號中。
例如:#[#1+#2-12]
變量根據(jù)變量號可以分成四種類型。
變量號變量類型功能。
#0 空變量該變量總是空沒有值能賦給該變量。
#1 #33 局部變量局部變量只能用在宏程序中存儲數(shù)據(jù),例如運(yùn)算結(jié)果當(dāng)斷電時局
部變量被初始化為空,調(diào)用宏程序時自變量對局部變量賦值#100 ,#199,#500 ,#999
公共變量公共變量在不同的宏程序中的意義相同,當(dāng)斷電時變量#100 #199初始化為空變量#500 #999 的數(shù)據(jù)保存,即使斷電也不丟失。
#1000 系統(tǒng)變量,系統(tǒng)變量用于讀和寫CNC 運(yùn)行時各種數(shù)據(jù)的變化。例如:刀具的當(dāng)前位置和補(bǔ)償值。
局部變量和公共變量可以有0值或下面范圍中的值:
-1047到-10-29
或
10-29到1047
如果計(jì)算結(jié)果超出有效范圍則發(fā)出P/S報(bào)警No.111
#1=#2+100
G01 X#1 F300
! 小數(shù)點(diǎn)的省略
! 變量的引用
! 雙軌跡雙軌跡控制的公共變量
! 未定義的變量
當(dāng)在程序中定義變量值時小數(shù)點(diǎn)可以省略
例當(dāng)定義#1=123 變量#1的實(shí)際值是123.000
為在程序中使用變量值指定后跟變量號的地址當(dāng)用表達(dá)式指定變量時要把表達(dá)式放在括號中
例如G01X[#1+#2]F#3
被引用變量的值根據(jù)地址的最小設(shè)定單位自動地舍入
例如 當(dāng)G00X#/ 以1/1000mm 的單位執(zhí)行時CNC 把12.3456 賦值給變量#1 實(shí)際指令值為G00X12.346;
改變引用變量的值的符號要把負(fù)號放在#的前面
例如G00X #1
當(dāng)引用未定義的變量時變量及地址字都被忽略
例如 當(dāng)變量#1的值是0 并且變量#2的值是空時G00X#1 Y#2的執(zhí)行結(jié)果為G00X0
對雙軌跡控制系統(tǒng)為每一軌跡都提供了單獨(dú)的宏變量但是根據(jù)參
數(shù)No.6036和6037的設(shè)定某些公共變量可同時用于兩個軌跡。當(dāng)變量值未定義時這樣的變量成為空變量變量#0 總是空變量它不能寫只能讀
a 引用
當(dāng)引用一個未定義的變量時地址本身也被忽略
當(dāng)#1=<空> 當(dāng)#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
! 變量值的顯示
b 運(yùn)算
除了用<空>賦值以外其余情況下<空>與0 相同
當(dāng)#1=<空>時當(dāng)#1=0時
#2=#1
#2=<空>
#2=#1
#2=0
#2=#1?5
#2=0
#2=#1?5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)條件表達(dá)式
EQ和NE中的<空>不同于0
當(dāng)#1=<空>時當(dāng)#1=0時
#1 EQ #0
成立
#1 EQ #0
不成立
#1 NE #0
成立
#1 NE #0
不成立
#1 GE #0
成立
#1 GE #0
不成立
#1 GT #0
不成立
#1 GT #0
不成立
! 當(dāng)變量值是空白時變量是空
! 符號********表示溢出當(dāng)變量的絕對值大于99999999 時或下
溢出當(dāng)變量的絕對值小于0.0000001時
! 限制程序號順序號和任選程序段跳轉(zhuǎn)號不能使用變量
例 下面情況不能使用變量
#1
/#2G00X100.0;
N#3Y200.0;
2 系統(tǒng)變量
說明
! 接口信號
! 刀具補(bǔ)償值
系統(tǒng)變量用于讀和寫NC內(nèi)部數(shù)據(jù)例如刀具偏置值和當(dāng)前位置數(shù)據(jù)
但是某些系統(tǒng)變量只能讀系統(tǒng)變量是自動控制和通用加工程序開發(fā)
的基礎(chǔ)
是可編程機(jī)床控制器PMC 和用戶宏程序之間交換的信號
表15.2(a) 接口信號的系統(tǒng)變量
變量號功能
#1000 #1015
#1032
把16位信號從PMC送到用戶宏程序變量#1000
到#1015 用于按位讀取信號變量#1032 用于一次
讀取一個16位信號
#1100 #1115
#1132
把16 位信號從用戶宏程序送到PMC 變量#1100
到#1115 用于按位寫信號變量#1132 用于一次寫
一個16位信號
#1133 變量#1133 用于從用戶宏程序一次寫一個32 位的
信號到PMC
注意#1133的值為從99999999到+99999999
詳細(xì)情況請見連接說明書B-63503C-1
用系統(tǒng)變量可以讀和寫刀具補(bǔ)償值
表15.2(b) 刀具補(bǔ)償存儲器C 的系統(tǒng)變量
刀具長度補(bǔ)償H 刀具半徑補(bǔ)償D 補(bǔ)償
號幾何補(bǔ)償磨損補(bǔ)償幾何補(bǔ)償磨損補(bǔ)償
1
200
400
#11001 #2201
#11201 #2400
#11400
#10001
#2001
#10201
#2200
#10400
#13001
#13400
#12001
#12400
當(dāng)偏置組數(shù)小于等于200時也可使用#2001 #2400
! 宏程序報(bào)警
! 停止和信息顯示
! 時間信息
表15.2(c) 宏程序報(bào)警的系統(tǒng)變量
變量號功能
#3000 當(dāng)變量#3000 的值為0 200 時CNC 停止運(yùn)行
且報(bào)警
在表達(dá)式后為不超過26個字符的報(bào)警信息
CRT 屏幕上顯示報(bào)警號和報(bào)警信息其中報(bào)警號
為變量#3000的值加上3000
例 #3000=1 TOOL NOT FOUND
報(bào)警屏幕上顯示3001 TOOL NOT FOUND 刀具未找到
程序執(zhí)行停止并顯示信息
報(bào)警號功能
#3006 在宏程序中指令#3006=1 MESSAGE
時程序執(zhí)行前面程序段并停止
當(dāng)最多到26 個字符的信息由控制輸入
和控制輸出括住在同一程序段中編程
時信息被顯示在外部操作信息屏幕
時間信息可以讀和寫
表15.2(d) 時間信息的系統(tǒng)變量
變量號功能
#3001 該變量為一個計(jì)時器以1 毫秒為計(jì)時單位
當(dāng)電源接通時該變量值復(fù)位為0 當(dāng)達(dá)到
2147483648毫秒時該計(jì)時器的值返回到0
#3002 該變量為一個計(jì)時器當(dāng)循環(huán)起動燈亮?xí)r以
一小時為單位計(jì)時該計(jì)時器即使在電源斷
電時也保存該值當(dāng)達(dá)到9544.371767 小時
該計(jì)時器的值返回到0
#3011 該變量用于讀取當(dāng)前的日期年/月/日年/
月/日信息轉(zhuǎn)換成十進(jìn)制數(shù)例如1994 年9
月8日表示為19940928
#3012 該變量用于讀取當(dāng)前的時間時/分/秒時/
分/秒信息轉(zhuǎn)換成十進(jìn)制數(shù)例如下午3 點(diǎn)
34分56秒表示為153456
! 自動運(yùn)行控制可以改變自動運(yùn)行的控制狀態(tài)
表15.2(e) 自動運(yùn)行控制的系統(tǒng)變量#3003
#3003 單程序段輔助功能的完成
0 有效等待
1 無效等待
2 有效不等待
3 無效不等待
當(dāng)電源接通時該變量的值為0
當(dāng)單程序段停止無效時,即使單程序段開關(guān)設(shè)為ON 也不執(zhí)行單程序段停止,
當(dāng)不指定等待輔助功能M S 和T 功能完成時,在輔助功能完成之前,
程序執(zhí)行到下列程序段而且分配完成信號DEN不輸出
表15.2(f) 自動運(yùn)行控制的系統(tǒng)變量#3004
#3004 進(jìn)給暫停進(jìn)給速度倍率準(zhǔn)確停止
0 有效有效有效
1 無效有效有效
2 有效無效有效
3 無效無效有效
4 有效有效無效
5 無效有效無效
6 有效無效無效
7 無效無效無效
當(dāng)電源接通時該變量的值為0
當(dāng)進(jìn)給暫停無效時
1 當(dāng)進(jìn)給暫停按鈕被按下時,機(jī)床在單段停止方式停止,但是當(dāng)
用變量#3003使單程序段方式無效時單程序段停止不執(zhí)行。
2 當(dāng)進(jìn)給暫停按鈕壓下又松開時,進(jìn)給暫停燈亮,但是機(jī)床不停
止程序繼續(xù)執(zhí)行,并且機(jī)床停在進(jìn)給暫停有效的第一個程序段,
當(dāng)進(jìn)給速度倍率無效時總是100%的倍率而不管機(jī)床操作面板上
的進(jìn)給速度倍率開關(guān)的設(shè)置。
業(yè)務(wù)咨詢:932174181 媒體合作:2279387437 24小時服務(wù)熱線:15136468001 盤古機(jī)械網(wǎng) - 全面、科學(xué)的機(jī)械行業(yè)免費(fèi)發(fā)布信息網(wǎng)站 Copyright 2017 PGJXO.COM 豫ICP備12019803號