圖文解說(shuō) Fanuc B類(lèi)宏程序高級(jí)編程手冊(cè)_第1頁(yè)
圖文解說(shuō) Fanuc B類(lèi)宏程序高級(jí)編程手冊(cè)_第2頁(yè)
圖文解說(shuō) Fanuc B類(lèi)宏程序高級(jí)編程手冊(cè)_第3頁(yè)
圖文解說(shuō) Fanuc B類(lèi)宏程序高級(jí)編程手冊(cè)_第4頁(yè)
圖文解說(shuō) Fanuc B類(lèi)宏程序高級(jí)編程手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

宏宏 程程 序序 數(shù)控程序中含有變量的程序稱(chēng)為宏程序 雖然子程序?qū)幹葡嗤募庸こ绦蚍浅S杏?但用戶(hù)宏程序由于允許 使用變量 算術(shù)和邏輯運(yùn)算及條件轉(zhuǎn)移 使得編制同樣的加工程序更 簡(jiǎn)便 例如型腔加工宏程序和用戶(hù)開(kāi)發(fā)固定循環(huán) 使用時(shí) 加工程序 可用一條簡(jiǎn)單指令調(diào)出用戶(hù)宏程序 和調(diào)用子程序完全一樣 1 1 變量 普通加工程序直接用數(shù)值指定 G 代碼和移動(dòng)距離 例如 G01 和 X100 0 使用用戶(hù)宏程序時(shí) 數(shù)值可以直接指定或用變量指定 當(dāng)用變量時(shí) 變 量值可用程序或用 MDI 面板操作改變 1 2 100 G01 X 1 F300 說(shuō)明 變量的表示 一般編程方法允許對(duì)變量命名 但用戶(hù)宏程序不行 變量用變量符號(hào) 和后面的變量號(hào)指定 例如 1 表達(dá)式可以用于指定變量號(hào) 此時(shí) 表達(dá)式必須封閉在括號(hào)中 例如 1 2 12 變量的類(lèi)型 變量根據(jù)變量號(hào)可以分成四種類(lèi)型 變量值的范圍 局部變量和公共變量可以為 0 值或下面范圍中的值 1047 到 10 29 或 10 29 到 1047 如果計(jì)算結(jié)果超出有效范圍 則發(fā)出 P S 報(bào)警 No 111 小數(shù)點(diǎn)的省略 當(dāng)在程序中定義變量值時(shí) 小數(shù)點(diǎn)可以省略 例 當(dāng)定義 1 123 變量 1 的實(shí)際值是 123 000 變量的引用 在地址后指定變量號(hào)即可引用其變量值 當(dāng)用表達(dá)式指定變量時(shí) 要 把 表達(dá)式放在括號(hào)中 例如 G01X 1 2 F 3 被引用變量的值根據(jù)地址的最小設(shè)定單位自動(dòng)地舍入 例如 當(dāng)系統(tǒng)的最小輸入增量為 1 1000mm 單位 指令 G00X 1 并將 12 3456 賦值給變量 1 實(shí)際指令值為 G00X12 346 改變引用變量的值的符號(hào) 要把負(fù)號(hào) 放在 的前面 例如 G00X 1 當(dāng)引用未定義的變量時(shí) 變量及地址字都被忽略 例如 n 當(dāng)變量 1 的值是 0 并且變量 2 的值是空時(shí) G00X 1 Y 2 的執(zhí)行 結(jié)果為 G00X0 雙軌跡 雙軌跡控制 的公共變量 對(duì)雙軌跡控制 系統(tǒng)為每一軌跡都提供了單獨(dú)的宏變量 但是 根 據(jù)參數(shù) No 6036 和 6037 的設(shè)定 某些公共變量可同時(shí)用于兩個(gè)軌 跡 未定義的變量 當(dāng)變量值未定義時(shí) 這樣的變量成為 空 變量 變量 0 總是空變 量 它不能寫(xiě) 只能讀 a 引用 當(dāng)引用一個(gè)未定義的變量時(shí) 地址本身也被忽略 b 運(yùn)算 除了用賦值以外 其余情況下與 0 相同 當(dāng)變量值是空白時(shí) 變量是空 符號(hào) 表示溢出 當(dāng)變量的絕對(duì)值大于 99999999 時(shí) 或下 溢出 當(dāng)變量的絕對(duì)值小于 0 0000001 時(shí) 限制 程序號(hào) 順序號(hào)和任選程序段跳轉(zhuǎn)號(hào)不能使用變量 例 下面情況不能使用變量 1 2G00X100 0 N 3Y200 0 1 2 系統(tǒng)變量 系統(tǒng)變量用于讀和寫(xiě) NC 內(nèi)部數(shù)據(jù) 例如 刀具偏置值和當(dāng)前位置數(shù) 據(jù) 但是 某些系統(tǒng)變量只能讀 系統(tǒng)變量是自動(dòng)控制和通用程序開(kāi)發(fā)的 基 礎(chǔ) 說(shuō)明 接口信號(hào) 是可編程機(jī)床控制器 PMC 和用戶(hù)宏程序之間交換的信號(hào) 刀具補(bǔ)償值 用系統(tǒng)變量可以讀和寫(xiě)刀具補(bǔ)償值 可使用的變量數(shù)取決于刀補(bǔ)數(shù) 是否區(qū)分外形補(bǔ)償和磨損補(bǔ)償以及是 否 區(qū)分刀長(zhǎng)補(bǔ)償和刀尖補(bǔ)償 當(dāng)偏置組數(shù)小于等于 200 時(shí) 也可使用 2001 2400 宏程序報(bào)警 例 3000 1 TOOL NOT FOUND 報(bào)警屏幕上顯示 3001 TOOL NOT FOUND 刀具未找到 停止和信息顯示 程序停止執(zhí)行并顯示信息 時(shí)間信息 時(shí)間信息可以讀和寫(xiě) 自動(dòng)運(yùn)行控制 可以改變自動(dòng)運(yùn)行的控制狀態(tài) 當(dāng)電源接通時(shí) 該變量的值為 0 當(dāng)單程序段停止無(wú)效時(shí) 即使單程序段開(kāi)關(guān)設(shè)為 ON 也不執(zhí)行單程 序段停止 當(dāng)指定不等待輔助功能 M S 和 T 功能 完成時(shí) 在輔助功能完 成 之前 程序即執(zhí)行到下一程序段 而且分配完成信號(hào) DEN 不輸出 當(dāng)電源接通時(shí) 該變量的值為 0 當(dāng)進(jìn)給暫停無(wú)效時(shí) 1 當(dāng)進(jìn)給暫停按鈕被按下時(shí) 機(jī)床以單段停止方式停止 但是 當(dāng) 用變量 3003 使單程序段方式無(wú)效時(shí) 單程序段停止不執(zhí)行 2 當(dāng)進(jìn)給暫停按鈕壓下又松開(kāi)時(shí) 進(jìn)給暫停燈亮 但是 機(jī)床不 停 止 程序繼續(xù)執(zhí)行 并且機(jī)床停在進(jìn)給暫停有效的第一個(gè)程序段 當(dāng)進(jìn)給速度倍率無(wú)效時(shí) 倍率總為 100 而不管機(jī)床操作面板上的 進(jìn)給速度倍率開(kāi)關(guān)的設(shè)置 當(dāng)準(zhǔn)確停止檢測(cè)無(wú)效時(shí) 即使那些不執(zhí)行切削的程序段也不進(jìn)行準(zhǔn) 確 停止檢測(cè) 位置檢測(cè) SETTING 值 SETTING 值可用變量讀和寫(xiě) 二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 鏡像 使用外部開(kāi)關(guān)或 SETTING 操作設(shè)置的各軸鏡像狀態(tài)可以通過(guò)輸出信 號(hào) 鏡像檢測(cè)信號(hào) 讀出 可以檢測(cè)當(dāng)前的鏡像狀態(tài) 見(jiàn) III 4 6 節(jié) 得到的二進(jìn)制值轉(zhuǎn)換成十進(jìn)制 當(dāng)用鏡像信號(hào)和 SETTING 兩者對(duì)某軸設(shè)置鏡像功能時(shí) 信號(hào)值和 設(shè) 定值相或 然后輸出 當(dāng)控制軸以外的軸的鏡像功能接通時(shí) 它們也被讀進(jìn)系統(tǒng)變量 3007 系統(tǒng)變量 3007 是寫(xiě)保護(hù)的系統(tǒng)變量 如果試圖在變量中寫(xiě)數(shù)據(jù) 則 發(fā)出 P S116 報(bào)警 WRITE PROTECTED VARIABLE 已加工的零件數(shù) 要求的零件數(shù) 目標(biāo)數(shù) 和已加工的零件數(shù) 完成數(shù) 可以讀和寫(xiě) 模態(tài)信息 正在處理的程序段之前的模態(tài)信息可以讀出 例 當(dāng)執(zhí)行 1 4002 時(shí) 在 1 中得到的值是 17 18 或 19 對(duì)于不能使用的 G 代碼組 如果指定系統(tǒng)變量讀取相應(yīng)的模態(tài)信息 則發(fā)出 P S 報(bào)警 當(dāng)前位置 位置信息不能寫(xiě) 只能讀 第 1 位代表軸號(hào) 從 1 到 3 變量 5081 5083 存儲(chǔ)的刀具長(zhǎng)度補(bǔ)償值是當(dāng)前的執(zhí)行值 不是后 面程序段的處理值 在 G31 跳轉(zhuǎn)功能 程序段中跳轉(zhuǎn)信號(hào)接通時(shí)的刀具位置儲(chǔ)存在變 量 5061 到 5063 中 當(dāng) G31 程序段中的跳轉(zhuǎn)信號(hào)未接通時(shí) 這些 變量中儲(chǔ)存指定程序段的終點(diǎn)值 移動(dòng)期間不能讀是指由于緩沖 預(yù)讀 功能的原因 不能讀期望值 工件坐標(biāo)系補(bǔ)償值 工件零點(diǎn)偏移值的系統(tǒng)變量 工件零點(diǎn)偏移值 可以使用以下變量 1 3 算術(shù)和邏輯運(yùn)算 表 15 3 a 中列出的運(yùn)算可以在變量中執(zhí)行 運(yùn)算符右邊的表達(dá)式可包 含常量和 或由函數(shù)或運(yùn)算符組成的變量 表達(dá)式中的變量 j 和 k 可 以 用常數(shù)替換 左邊的變量也可以用表達(dá)式賦值 表 15 3 a 算術(shù)和邏輯運(yùn)算 角度單位 函數(shù) SIN COS ASIN ACOS TAN 和 ATAN 的角度單位是度 如 90 30 表示為 90 5 度 ARCSIN i ASIN j 取值范圍如下 當(dāng)參數(shù) No 6004 0 NAT 位設(shè)為 0 時(shí) 270 90 當(dāng)參數(shù) No 6004 0 NAT 位設(shè)為 1 時(shí) 90 90 當(dāng) j 超出 1 到 1 的范圍時(shí) 發(fā)出 P S 報(bào)警 No 111 常數(shù)可替代變量 j ARCCOS i ACOS j 取值范圍從 180 0 當(dāng) j 超出 1 到 1 的范圍時(shí) 發(fā)出 P S 報(bào)警 No 111 常數(shù)可以替代變量 j ARCTAN 指定兩個(gè)邊的長(zhǎng)度 并用斜杠 分開(kāi) i ATAN j k 取值范圍如下 當(dāng) NAT 位 參數(shù) No 6004 0 設(shè)為 0 時(shí) 0 到 360 例如 當(dāng)指定 1 ATAN 1 1 時(shí) 1 225 當(dāng) NAT 位 參數(shù) No 6004 0 設(shè)為 1 時(shí) 180 到 180 例如 當(dāng)指定 1 ATAN 1 1 時(shí) 1 135 0 常數(shù)可以代替變量 j 注意 相對(duì)誤差可能大于 10 8 自然對(duì)數(shù) i LN j 當(dāng)反對(duì)數(shù) j 為 0 或小于 0 時(shí) 發(fā)出 P S 報(bào)警 No 111 常數(shù)可以代替變量 j 注意 相對(duì)誤差可能大于 10 8 指數(shù)函數(shù) i EXP j 當(dāng)運(yùn)算結(jié)果超過(guò) 3 65 1047 j 大約是 110 時(shí) 出現(xiàn)溢出并發(fā)出 P S 報(bào)警 No 111 常數(shù)可以代替變量 j ROUND 舍入 函數(shù) 當(dāng)算術(shù)運(yùn)算或邏輯運(yùn)算指令 IF 或 WHILE 中包含 ROUND 函數(shù)時(shí) 則 ROUND 函數(shù)在第 1 個(gè)小數(shù)位置四舍五入 例 當(dāng)執(zhí)行 1 ROUND 2 時(shí) 此處 2 1 2345 變量 1 的值是 1 0 當(dāng)在 NC 語(yǔ)句地址中使用 ROUND 函數(shù)時(shí) ROUND 函數(shù)根據(jù)地址 的最小 設(shè)定單位將指定值四舍五入 例 編制鉆削加工程序 按變量 1 和 2 的值切削 然后返回到初始位置 假定最小設(shè)定單位是 1 1000mm 變量 1 是 1 2345 變量 2 是 2 3456 則 G00 G91 X 1 移動(dòng) 1 235mm G01 X 2 F300 移動(dòng) 2 346mm G00 X 1 2 由于 1 2345 2 3456 3 5801 移動(dòng)距離為 3 580 刀具 不會(huì)返回到初始位置 該誤差來(lái)自于舍入之前還是舍入之后相加 必須指定 G00 X ROUND 1 ROUND 2 以使刀具返回到初始位置 上取整和下取整 CNC 處理數(shù)值運(yùn)算時(shí) 若操作后產(chǎn)生的整數(shù)絕對(duì)值大于原數(shù)的絕對(duì) 值 時(shí)為上取整 若小于原數(shù)的絕對(duì)值為下取整 對(duì)于負(fù)數(shù)的處理應(yīng)小心 例如 假設(shè) 1 1 2 2 1 2 當(dāng)執(zhí)行 3 FUP 1 時(shí) 2 0 賦給 3 當(dāng)執(zhí)行 3 FIX 1 時(shí) 1 0 賦給 3 當(dāng)執(zhí)行 3 FUP 2 時(shí) 2 0 賦給 3 當(dāng)執(zhí)行 3 FIX 2 時(shí) 1 0 賦給 3 算術(shù)與邏輯運(yùn)算指令的縮寫(xiě) 程序中指令函數(shù)時(shí) 函數(shù)名的前二個(gè)字 符可以用于指定該函數(shù) 見(jiàn) 9 7 節(jié) 例如 ROUND RO FIX FI 運(yùn)算次序 函數(shù) 乘和除運(yùn)算 AND 加和減運(yùn)算 OR XOR 括號(hào)嵌套 括號(hào)用于改變運(yùn)算次序 括號(hào)可以使用 5 級(jí) 包括函數(shù)內(nèi)部使用的括 號(hào) 當(dāng)超過(guò) 5 級(jí)時(shí) 出現(xiàn) P S 報(bào)警 No 118 限制 括號(hào) 用于封閉表達(dá)式 注意 圓括號(hào)用于注釋 運(yùn)算誤差 運(yùn)算時(shí) 可能出現(xiàn)誤差 表 15 3 b 運(yùn)算中的誤差 注 1 相對(duì)誤差取決于運(yùn)算結(jié)果 2 使用兩類(lèi)誤差的較小者 3 絕對(duì)誤差是常數(shù) 而不管運(yùn)算結(jié)果 4 函數(shù) TAN 執(zhí)行 SIN COS 5 如果 SIN COS 或 TAN 函數(shù)的運(yùn)算結(jié)果小于 1 0 10 8 或由于 運(yùn)算精度的限制不為 0 的話(huà) 設(shè)定參數(shù) o 6004 1 為 1 則 運(yùn)算結(jié)果可以規(guī)算為 0 變量值的精度約為 8 位十進(jìn)制數(shù) 當(dāng)在加 減運(yùn)算中處理非常大的數(shù) 時(shí) 將得不到期望的結(jié)果 例 當(dāng)試圖把下面的值賦給變量 1 和 2 時(shí) 1 9876543210123 456 2 9876543277777 777 變量值變成 1 9876543200000 000 2 9876543300000 000 此時(shí) 當(dāng)計(jì)算 3 2 1 時(shí) 結(jié)果為 3 100000 000 該計(jì)算的實(shí)際結(jié)果稍有誤差 因?yàn)槭且远M(jìn)制執(zhí)行的 還應(yīng)該意識(shí)到 使用條件表達(dá)式 EQ NE GE GT LE 和 LT 時(shí) 可 能造成誤差 例如 IF 1EQ 2 的運(yùn)算會(huì)受 1 和 2 的誤差的影響 由此會(huì)造成錯(cuò)誤的判 斷 因此 應(yīng)該用 IF ABS 1 2 LT0 001 代替上述語(yǔ)句 以避免兩個(gè)變 量的誤差 當(dāng)兩個(gè)變量的差值未超過(guò)允許極限 此處為 0 001 時(shí) 則認(rèn)為兩個(gè) 變量的值是相等的 使用下取整指令時(shí)應(yīng)小心 例如 當(dāng)計(jì)算 2 1 1000 式中 1 0 002 時(shí) 變量 2 的結(jié)果值不是準(zhǔn)確的 2 可能是 1 99999997 這里 當(dāng)指定 3 FIX 2 時(shí) 變量 3 的結(jié)果值不是 2 而是 1 0 此 時(shí) 可先糾正誤差 再執(zhí)行下取整 或是用如下的四舍五入操作 即可得到正確結(jié)果 3 FIX 2 0 001 3 ROUND 2 除數(shù) 當(dāng)在除法或 TAN 90 中指定為 0 的除數(shù)時(shí) 出現(xiàn) P S 報(bào)警 No 112 1 4 宏程序語(yǔ)句和 NC 語(yǔ)句 下面的程序段為宏程序語(yǔ)句 包含算術(shù)或邏輯運(yùn)算 的程序段 包含控制語(yǔ)句 例如 GOTO DO END 的程序段 包含宏程序調(diào)用指令 例如 用 G65 G66 G67 或其它 G 代碼 M 代碼調(diào)用宏程序 的程序段 除了宏程序語(yǔ)句以外的任何程序段都為 NC 語(yǔ)句 說(shuō)明 與 NC 語(yǔ)句的不同 即使置于單程序段運(yùn)行方式 機(jī)床也不停止 但是 當(dāng)參數(shù) No 6000 5 SBM 設(shè)定為 1 時(shí) 在單程序段方式中 機(jī)床停止 在刀具半徑補(bǔ)償方式中宏程序語(yǔ)句段不做為不移動(dòng)程序段處理 見(jiàn) II 15 7 節(jié) 與宏程序語(yǔ)句有相 含有子程序調(diào)用指令 例如 用 M98 或其它 M 代碼或用 T 代碼調(diào)用 子程序 但沒(méi)有除 O N 或 L 地址之外的其它地址指令的 NC 語(yǔ)句 其性質(zhì)與宏程序語(yǔ)句相同 同性質(zhì)的 NC 語(yǔ)句 不包含除 O N P 或 L 以外的指令地址的程序段其性質(zhì)與宏程序 語(yǔ) 句相同 1 5 轉(zhuǎn)移和循環(huán) 在程序中 使用 GOTO 語(yǔ)句和 IF 語(yǔ)句可以改變控制 的流向 有三種轉(zhuǎn) 移和循環(huán)操作可供使用 無(wú)條件轉(zhuǎn)移 轉(zhuǎn)移到標(biāo)有順序號(hào) n 的程序段 當(dāng)指定 1 到 99999 以外的順序號(hào)時(shí) 出 現(xiàn) P S 報(bào)警 No 128 可用表達(dá)式指定順序號(hào) 例 GOTO 1 GOTO 10 轉(zhuǎn)移和循環(huán) GOTO 語(yǔ)句 無(wú)條件轉(zhuǎn)移 IF 語(yǔ)句 條件轉(zhuǎn)移 IF THEN WHILE 語(yǔ)句 當(dāng) 時(shí)循環(huán) GOTOn n 順序號(hào) 1 到 99999 條件轉(zhuǎn)移 IF 語(yǔ)句 IF 之后指定條件表達(dá)式 IF GOTO n 如果指定的條件表達(dá)式滿(mǎn)足時(shí) 轉(zhuǎn)移到標(biāo)有 順序號(hào) n 的程序段 如果指 定的條件表達(dá)式不滿(mǎn)足 執(zhí)行下個(gè)程序段 IF THEN 如果條件表達(dá)式滿(mǎn)足 執(zhí)行預(yù)先決定的宏程序語(yǔ)句 只執(zhí)行一個(gè)宏程 序語(yǔ)句 條件表達(dá)式 條件表達(dá)式必須包括運(yùn)算符 運(yùn)算符插在兩個(gè)變量中間或變量和常數(shù) 中 間 并且用括號(hào) 封閉 表達(dá)式可以替代變量 運(yùn)算符 運(yùn)算符由 2 個(gè)字母組成 用于兩個(gè)值的比較 以決定它們是相等還是 一 個(gè)值小于或大于另一個(gè)值 注意 不能使用不等號(hào) 示例程序 下面的程序計(jì)算數(shù)值 1 10 的總和 9500 1 0 存儲(chǔ)和的變量初值 2 1 被加數(shù)變量的初值 N1 IF 2 GT 10 GOTO 2 當(dāng)被加數(shù)大于 10 時(shí)轉(zhuǎn)移到 N2 1 1 2 計(jì)算和 2 2 1 下一個(gè)被加數(shù) GOTO 1 轉(zhuǎn)到 N1 N2 M30 程序結(jié)束 循環(huán) WHILE 語(yǔ)句 在 WHILE 后指定一個(gè)條件表達(dá)式 當(dāng)指定條件滿(mǎn)足時(shí) 執(zhí)行從 DO 到 END 之間的程序 否則 轉(zhuǎn)到 END 后的程序段 說(shuō)明 當(dāng)指定的條件滿(mǎn)足時(shí) 執(zhí)行 WHILE 后從 DO 到 END 之間的程 序 否 則 轉(zhuǎn)而執(zhí)行 END 之后的程序段 與 IF 語(yǔ)句的指令格式相同 DO 后 的數(shù)和 END 后的數(shù)為指定程序執(zhí)行范圍的標(biāo)號(hào) 標(biāo)號(hào)值為 1 2 3 若用 1 2 3 以外的值會(huì)產(chǎn)生 P S 報(bào)警 No 126 嵌套 在 DO END 循環(huán)中的標(biāo)號(hào) 1 到 3 可根據(jù)需要多次使用 但是 當(dāng) 程序有交叉重復(fù)循環(huán) DO 范圍重疊 時(shí) 出現(xiàn) P S 報(bào)警 No 124 說(shuō)明 無(wú)限循環(huán) 當(dāng)指定 DO 而沒(méi)有指定 WHILE 語(yǔ)句時(shí) 產(chǎn)生從 DO 到 END 的無(wú)限 循 環(huán) 處理時(shí)間 在處理有標(biāo)號(hào)轉(zhuǎn)移的 GOTO 語(yǔ)句時(shí) 進(jìn)行順序號(hào)檢索 反向檢索的時(shí) 間要比正向檢索長(zhǎng) 用 WHILE 語(yǔ)句實(shí)現(xiàn)循環(huán)可減少處理時(shí)間 未定義的變量 在使用 EQ 或 NE 的條件表達(dá)式中 和零有不同的效果 在其它 形式的條件表達(dá)式中 被當(dāng)作零 示例程序 下面的程序計(jì)算數(shù)值 1 到 10 的總和 宏程序調(diào)用 用以下方法調(diào)用宏程序 宏程序調(diào)用和子程序調(diào)用之間的差別 宏程序調(diào)用 G65 不同于子程序調(diào)用 G98 如下所述 用 G65 可以指定自變量 數(shù)據(jù)傳送到宏程序 M98 沒(méi)有該功能 當(dāng) M98 程序段包含另一個(gè) NC 指令 例如 G01 X100 0 M98 Pp 時(shí) 在指令執(zhí)行之后調(diào)用子程序 相反 G65 無(wú)條件地調(diào)用宏程序 M98 程序段包含另一個(gè) NC 指令 例如 G01 X100 0 M98 Pp 時(shí) 在 單程序段方式中 機(jī)床停止 相反 G65 機(jī)床不停止 用 G65 改變局部變量的級(jí)別 用 M98 不改變局部變量的級(jí)別 非模態(tài)調(diào)用 G65 當(dāng)指定 G65 時(shí) 以地址 P 指定的用戶(hù)宏程序被 調(diào)用 數(shù)據(jù) 自變量 能傳遞到用戶(hù)宏程序體中 說(shuō)明 調(diào)用 在 G65 之后 用地址 P 指定用戶(hù)宏程序的程序號(hào) 當(dāng)要求重復(fù)時(shí) 在地址 L 后指定從 1 到 9999 的重復(fù)次數(shù) 省略 L 值 時(shí) 認(rèn)為 L 等于 1 使用自變量指定 其值被賦值到相應(yīng)的局部變量 自變量指定 可用兩種形式的自變量指定 自變量指定 使用除了 G L O N 和 P 以外的字母 每個(gè)字母指定一次 自變量指定 使用 A B C 和 Ii Ji 和 Ki i 為 1 10 根據(jù)使用的字母 自動(dòng)決定自變量指定的類(lèi)型 地址 G L N 和 P 不能在自變量中使用 不需要指定的地址可以省略 對(duì)應(yīng)于省略地址的局部變量為空 地址不需要按字母順序指定 但應(yīng)符合字地址的格式 I J 和 K 需 要按字母順序指定 例 B A D J K 正確 B A D J I 不正確 自變量指定 自變量指定 使用 A B 和 C 各 1 次 I J K 各 10 次 自變量指 定 用于傳遞諸如三維坐標(biāo)值 限制 格式 任何自變量前必須指定 G65 自變量指定 混合使用 CNC 內(nèi)部自動(dòng)識(shí)別自變量指定 和自變 量指定 如果自變量指定 和自變量指定 混合指定 后指定的自變量類(lèi)型有效 小數(shù)點(diǎn)的位置 不帶小數(shù)點(diǎn)的自變量 其數(shù)據(jù)單位為各地址的最小設(shè)定單位 傳遞不 帶 小數(shù)點(diǎn)的自變量 其值會(huì)根據(jù)機(jī)床實(shí)際的系統(tǒng)配置變化 在宏程序調(diào) 用 中使用小數(shù)點(diǎn)可使程序兼容性好 調(diào)用嵌套 調(diào)用可以嵌套 4 級(jí) 包括非模態(tài)調(diào)用 G65 和模態(tài)調(diào)用 G66 但 不 包括子程序調(diào)用 M98 局部變量的級(jí)別 局部變量嵌套從 0 到 4 級(jí) 主程序是 0 級(jí) 宏程序每調(diào)用 1 次 用 G65 或 G66 局部變量級(jí)別加 1 前 1 級(jí) 的 局部變量值保存在 CNC 中 當(dāng)宏程序執(zhí)行 M99 時(shí) 控制返回到調(diào)用程序 此時(shí) 局部變量級(jí)別 減 1 并恢復(fù)宏程序調(diào)用時(shí)保存的局部變量值 示例程序 圓周螺紋孔 編制一個(gè)宏程序加工輪圓上的孔 圓周的半徑為 I 起始角為 A 間隔 為 B 鉆孔數(shù)為 H 圓的中心是 X Y 指令可以用絕對(duì)值或增量 值 指定 順時(shí)針?lè)较蜚@孔時(shí) B 應(yīng)指定負(fù)值 調(diào)用格式 G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh X 圓心的 X 坐標(biāo) 絕對(duì)值或增量值指定 24 Y 圓心的 Y 坐標(biāo) 絕對(duì)值或增量值指定 25 Z 孔深 26 R 趨近點(diǎn)坐標(biāo) 18 F 切削進(jìn)給速度 9 I 圓半徑 4 A 第一孔的角度 1 B 增量角 指定負(fù)值時(shí)為順時(shí)針 2 H 孔數(shù) 11 宏程序調(diào)用程序 0002 G90 G92 X0 Y0 Z100 0 G65 P9100 X100 0 Y50 0 R30 0 Z 50 0 F500 I100 0 A0 B45 0 H5 M30 宏程序 被調(diào)用的程序 9100 3 4003 儲(chǔ)存 03 組 G 代碼 G81 Z 26 R 18 F 9 K0 注 鉆孔循環(huán) 注 也可以使用 L0 IF 3 EQ 90 GOTO 1 在 G90 方式轉(zhuǎn)移到 N1 24 5001 24 計(jì)算圓心的 X 坐標(biāo) 25 5002 25 計(jì)算圓心的 Y 坐標(biāo) N1 WHILE 11 GT 0 DO 1 直到剩余孔數(shù)為 0 5 24 4 COS 1 計(jì)算 X 軸上的孔位 6 25 4 SIN 1 計(jì)算 Y 軸上的孔位 G90 X 5 Y 6 移動(dòng)到目標(biāo)位置之后執(zhí)行鉆孔 1 1 2 更新角度 11 11 1 孔數(shù) 1 END 1 G 3 G80 返回原始狀態(tài)的 G 代碼 M99 變量的含義 3 儲(chǔ)存 03 組的 G 代碼 5 下個(gè)孔的 X 坐標(biāo) 6 下個(gè)孔的 Y 坐標(biāo) 模態(tài)調(diào)用 G66 一旦發(fā)出 G66 則指定模態(tài)調(diào)用 即在指定軸移動(dòng)的程序段后調(diào)用宏程 序 G67 取消模態(tài)調(diào)用 說(shuō)明 調(diào)用 在 G66 之后 用地址 P 指定模態(tài)調(diào)用的程序號(hào) 當(dāng)要求重復(fù)時(shí) 在地址 L 后指定從 1 到 9999 的重復(fù)次數(shù) 與非模態(tài)調(diào)用 G65 相同 自變量指定的數(shù)據(jù)傳遞到宏程序體中 取消 指定 G67 代碼后 其后面的程序段不再執(zhí)行模態(tài)宏程序調(diào)用 調(diào)用嵌套 調(diào)用可以嵌套 4 級(jí) 包括非模態(tài)調(diào)用 G65 和模態(tài)調(diào)用 G66 但 不包括子程序調(diào)用 M98 模態(tài)調(diào)用嵌套 在模態(tài)調(diào)用期間 指定另一個(gè) G66 代碼 可以嵌套模態(tài)調(diào)用 限制 在 G66 程序段中 不能調(diào)用宏程序 G66 必須在自變量之前指定 在只有諸如輔助功能但無(wú)移動(dòng)指令的程序段中不能調(diào)用宏程序 局部變量 自變量 只能在 G66 程序段中指定 注意 每次執(zhí)行模 態(tài)調(diào)用時(shí) 不再設(shè)定局部變量 示例程序 用宏程序編制 G81 固定循環(huán)的操作 加工程序使用模態(tài)調(diào) 用 為了簡(jiǎn) 化程序 使用絕對(duì)值指定全部的鉆孔數(shù)據(jù) 調(diào)用格式 G65 P9110 Xx Yy Zz Rr Ff Ll X 孔的 X 坐標(biāo) 由絕對(duì)值指定 24 Y 孔的 Y 坐標(biāo) 由絕對(duì)值指定 25 Z Z 點(diǎn)坐標(biāo) 由絕對(duì)值指定 26 R R 點(diǎn)坐標(biāo) 由絕對(duì)值指定 18 F 切削進(jìn)給速度 9 L 重復(fù)次數(shù) 調(diào)用宏程序的程序 0001 G28 G91 X0 Y0 Z0 G92 X0 Y0 Z50 0 G00 G90 X100 0 Y50 0 G66 P9110 Z 20 0 R5 0 F500 G90 X20 0 Y20 0 X50 0 Y50 0 X70 0 Y80 0 G67 M30 宏程序 被調(diào)用的程序 9110 1 4001 儲(chǔ)存 G00 G01 2 4003 儲(chǔ)存 G90 G91 3 4109 儲(chǔ)存切削進(jìn)給速度 5 5003 儲(chǔ)存鉆孔開(kāi)始的 Z 坐標(biāo) G00 G90 Z 18 定位在 R 點(diǎn) G01 Z 26 F 9 切削進(jìn)給到 Z 點(diǎn) IF 4010 EQ 98 GOTO 1 返回到 1 點(diǎn) G00 Z 18 定位在 R 點(diǎn) GOTO 2 N1 G00 Z 5 定位在 1 點(diǎn) N2 G 1 G 3 F 4 恢復(fù)模態(tài)信息 M99 用 G 代碼調(diào)用宏程序 在參數(shù)中設(shè)置調(diào)用宏程序的 G 代碼 按非模態(tài)調(diào)用 G65 同樣的方 法調(diào)用宏程序 說(shuō)明 在參數(shù) No 6050 到 No 6059 中設(shè)置調(diào)用用戶(hù)宏程序 9010 到 9019 的 G 代碼號(hào) 從 1 到 9999 調(diào)用用戶(hù)宏程序的方法與 G65 相同 例如 設(shè)置參數(shù) 由 G81 調(diào)用宏程序 9010 不用修改加工程序 就 可以調(diào)用由用戶(hù)宏程序編制的加工循環(huán) 參數(shù)號(hào)和程序號(hào)之間的對(duì)應(yīng)關(guān)系 重復(fù) 與非模態(tài)調(diào)用一樣 地址 L 中指定從 1 到 9999 的重復(fù)次數(shù) 自變量指定 與非模態(tài)調(diào)用一樣 可以使用兩種自變量指定類(lèi)型 自變 量指定 和 自變量指定 根據(jù)使用的地址自動(dòng)決定自變量的指定類(lèi)型 限制 使用 G 代碼的宏調(diào)用的嵌套 在 G 代碼調(diào)用的程序中 不能用 G 代 碼調(diào)用宏程序 這種程序中的 G 代碼被處理為普通 G 代碼 在用 M 或 T 代碼調(diào)用的子程序中 不能 用 G 代碼調(diào)用宏程序 這種程序中的 G 代碼也處理為普通 G 代碼 用 M 代碼調(diào)用宏程序 在參數(shù)中設(shè)置調(diào)用宏程序的 M 代碼 按非模態(tài)調(diào)用 G65 一樣的方 法調(diào)用宏程序 說(shuō)明 在參數(shù) No 6080 到 No 6089 中設(shè)置調(diào)用用戶(hù)宏程序 9020 到 9029 的 M 代碼 從 1 到 99999999 調(diào)用宏程序的方法同 G65 相同 參數(shù)號(hào)和程序號(hào)之間的對(duì)應(yīng)關(guān)系 重復(fù) 與非模態(tài)調(diào)用一樣 地址 L 中指定從 1 到 9999 的重復(fù)次數(shù) 自變量指定 與非模態(tài)調(diào)用一樣 可以使用兩種自變量指定類(lèi)型 自變量指定 和 自變量指定 根據(jù)使用的地址自動(dòng)決定自變量指定的類(lèi)型 限制 調(diào)用宏程序的 M 代碼必須在程序段的開(kāi)頭指定 用 G 代碼調(diào)用的宏程序或用 M 代碼或 T 代碼調(diào)用的子程序中 不 能 用 M 代碼調(diào)用宏程序 這種宏程序或子程序中的 M 代碼被處理為普 通 M 代碼 用 M 代碼調(diào)用子程序 在參數(shù)中設(shè)置調(diào)用子程序 宏程序 的 M 代碼號(hào) 按與子程序調(diào)用 M98 相同的方法調(diào)用宏程序 說(shuō)明 在參數(shù) No 6071 到 No 6079 中設(shè)置調(diào)用子程序的 代碼 從 到 99999999 相應(yīng)的用戶(hù)宏程序 9001 到 9009 可按與 M98 同樣的方法調(diào)用 參數(shù)號(hào)和程序號(hào)之間的對(duì)應(yīng)關(guān)系 重復(fù) 與非模態(tài)調(diào)用一樣 地址 L 中指定從 1 到 9999 的重復(fù)次數(shù) 自變量指定 不允許指定自變量 M 代碼 在宏程序中調(diào)用的 M 代碼被處理為普通 M 代碼 限制 用 G 代碼調(diào)用的宏程序 或用 M 或 T 代碼調(diào)用的子程序中 不能使用 M 代碼調(diào)用子程序 這種宏程序或程序中的 M 代碼被處理為普通 M 代 碼 用 T 代碼調(diào)用子程序 通過(guò)設(shè)定參數(shù) 可使用 T 代碼調(diào)用子程序 宏程序 每當(dāng)在加工程 序 中指定 T 代碼時(shí) 即調(diào)用宏程序 說(shuō)明 調(diào)用 設(shè)置參數(shù) No 6001 的 5 位 TCS 1 當(dāng)在加工程序中指定 T 代碼時(shí) 可以 調(diào)用宏程序 9000 在加工程序中指定的 T 代碼賦值到公共變量 149 限制 用 G 代碼調(diào)用的宏程序中或用 M 或 T 代碼調(diào)用的程序中 不 能用 T 代 碼調(diào)用子程序 這種宏程序或程序中的 T 代碼被處理為普通 T 代碼 示例程序 使用 M 代碼調(diào)用子程序的功能 實(shí)現(xiàn)測(cè)量每把刀具的累積使用時(shí)間 條件 測(cè)量 T01 到 T05 各把刀具的累積使用時(shí)間 刀號(hào)大于 T05 的刀 具不 進(jìn)行測(cè)量 下面的變量用于儲(chǔ)存刀號(hào)和測(cè)量的時(shí)間 501 刀號(hào) 1 的累積使用時(shí)間 502 刀號(hào) 2 的累積使用時(shí)間 503 刀號(hào) 3 的累積使用時(shí)間 504 刀號(hào) 4 的累積使用時(shí)間 505 刀號(hào) 5 的累積使用時(shí)間 當(dāng)指定 M03 時(shí) 開(kāi)始計(jì)算使用時(shí)間 當(dāng)指定 M05 時(shí) 停止計(jì)算 在 循環(huán)啟動(dòng)燈亮期間 用系統(tǒng)變量 3002 測(cè)量該時(shí)間 進(jìn)給暫停和單段 停止期間 不計(jì)算時(shí)間 但要計(jì)算換刀和交換工作臺(tái)的時(shí)間 運(yùn)行檢查 參數(shù)設(shè)置 參數(shù) No 6071 中設(shè)置 3 參數(shù) No 6072 中設(shè)置 05 變量值設(shè)置 變量 501 到 505 中設(shè)置 0 調(diào)用宏程序的程序 0001 T01 M06 M03 M05 改變 501 T02 M06 M03 M05 改變 502 T03 M06 M03 M05 改變 503 T04 M06 M03 M05 改變 504 T05 M06 M03 M05 改變 505 M30 宏程序 被調(diào)用的程序 9001 M03 啟動(dòng)計(jì)算的宏程序 M01 IF 4120 EQ 0 GOTO 9 沒(méi)有指定刀具 IF 4120 GT 5 GOTO 9 超出刀號(hào)范圍 3002 0 計(jì)時(shí)器清 0 N9 M03 正向旋轉(zhuǎn)主軸 M99 9002 M05 結(jié)束計(jì)算的宏程序 M01 IF 4120 EQ 0 GOTO 9 沒(méi)有指定刀具 IF 4120 GT 5 GOTO 9 超出刀號(hào)范圍 500 4120 3002 500 4120 計(jì)算累積時(shí)間 N9 M05 停止主軸 M99 宏程序語(yǔ)句的處理 為了平滑加工 CNC 預(yù)讀下一段要執(zhí)行的 NC 語(yǔ)句 這種運(yùn)行稱(chēng)為 緩沖 在 AI 先行控制中 CNC 讀取多個(gè)程序段 即使系統(tǒng)未處于 AI 先行 控制 方式 但在刀具半徑補(bǔ)償方式 G41 G42 中 NC 為了找到交點(diǎn)提 前 預(yù)讀 2 或 3 個(gè)程序段的 NC 語(yǔ)句 算術(shù)表達(dá)式和條件轉(zhuǎn)移的宏程序語(yǔ) 句 在它們被讀進(jìn)緩沖寄存器后立即被處理 因此 宏語(yǔ)句的執(zhí)行時(shí)序并 不總是按編制順序執(zhí)行 包含 M00 M01 M02 或 M30 的程序段 包含由參數(shù) No 3411 到 No 3432 設(shè)置的禁止緩沖的 M 代碼的程序段 以及包含禁止緩沖的 G 代碼 例 如 G53 的程序段 其后的程序不再預(yù)讀 直到相應(yīng)的 M 代碼和 G 代 碼 的動(dòng)作執(zhí)行完畢 才執(zhí)行之后的宏語(yǔ)句 NC 語(yǔ)句和宏語(yǔ)句的執(zhí)行順序 當(dāng)下個(gè)程序段不緩沖時(shí) 禁止 緩沖的 M 代碼 G53 G31 等 注 如果需要在執(zhí)行完程序段后再執(zhí)行接下來(lái)的宏語(yǔ)句 則應(yīng)在 此程序段中指定禁止緩沖的 M 代碼或 G 代碼 另外 在諸 如讀取 改寫(xiě)系統(tǒng)變量 坐標(biāo)值 偏置值等操作時(shí) 由于宏 語(yǔ)句執(zhí)行時(shí)序的影響 有可能會(huì)出現(xiàn)偏差 此時(shí) 應(yīng)在宏語(yǔ) 句前指定禁止緩沖的 M 代碼和 G 代碼 在除了刀具半徑補(bǔ)償方式 G41 G42 以外的方式 中 緩沖下個(gè)程序段 正 常預(yù)讀一個(gè)程序段 當(dāng)執(zhí)行 N1 時(shí) 下個(gè) NC 語(yǔ)句 N4 被讀入緩沖器 N1 和 N4 之間 的宏 語(yǔ)句 N2 N3 在 N1 執(zhí)行期間被處理 在刀具半徑補(bǔ)償方式 G41 G42 中緩沖下個(gè)程序段 當(dāng) N1 正在執(zhí)行時(shí) 下 2 個(gè)程序段 直到 N5 中的 NC 語(yǔ)句被讀進(jìn) 緩沖 寄存器 在 N1 和 N5 之間的宏語(yǔ)句 N2 N4 在 N1 執(zhí)行期間被處 理 在刀具半徑補(bǔ)償方式 C G41 G42 中 當(dāng)下個(gè)程序段包含 沒(méi)有移動(dòng)的程序段時(shí) 當(dāng) N1 程序段正在執(zhí)行時(shí) 下兩個(gè)程序段 直到 N5 中的 NC 語(yǔ)句被 讀 進(jìn)緩沖寄存器 由于 N5 是不移動(dòng)的程序段 不能計(jì)算交點(diǎn) 此時(shí) 下 面三個(gè)程序段 直到 N7 中的 NC 語(yǔ)句被讀入 在 N1 和 N7 之間的 宏 語(yǔ)句 N2 N4 和 N6 在執(zhí)行 N1 時(shí)被處理 使用系統(tǒng)變量時(shí)的注意事項(xiàng) 如果在宏程序中使用如下系統(tǒng)變量 表 15 7 2 a 并且希望在上 一程序段執(zhí)行完畢后再執(zhí)行宏語(yǔ)句 則需在上一程序段中指定禁止緩 沖 的 M 代碼 參數(shù) 3411 3432 或 G53 指令程序段 在上例中 在執(zhí)行主程序中的 N1 程序段時(shí) N2 程序段讀入緩沖 相應(yīng)地 宏程序 O2000 被讀入和執(zhí)行 此時(shí)由于軸在移動(dòng)狀態(tài) 因此變量 1 和 2 讀入的是不確定位置 這時(shí)只需在宏程序 O2000 的 N100 程序段 前指 定禁止緩沖的 M 代碼或 G53 指令 變量 1 和 2 中讀取的位置即為 N1 程 序段完全執(zhí)行后的位置 注 在固定循環(huán)方式中不能指定 G53 代碼 否則會(huì)出現(xiàn) P S44 報(bào)警 因此如果要在固定循環(huán)方式中禁止緩沖程序段 可通過(guò)指定 禁止緩沖 M 代碼來(lái)實(shí)現(xiàn) 用戶(hù)宏程序的存儲(chǔ) 用戶(hù)宏程序與子程序相似 可用與子程序同樣的方法進(jìn)行存儲(chǔ)和編程 存儲(chǔ)容量由子程序和宏程序的總?cè)萘看_定 限制 MDI 運(yùn)行 在 MDI 方式中可以指定宏程序調(diào)用指令 但是 在自動(dòng)運(yùn)行期間 宏 程序調(diào)用不能切換到 MDI 方式 順序號(hào)檢索 用戶(hù)宏程序不能檢索順序號(hào) 單程序段 即使宏程序正在執(zhí)行 在單程序段方式 程序段也能停止 包含宏程序調(diào)用指令 G65 G66 或 G67 的程序段 即使在單程序 段 方式時(shí)也不會(huì)停止 當(dāng)設(shè)定 SBM 參數(shù) No 6000 的 5 位 為 1 時(shí) 包含 算術(shù)運(yùn)算指令和控制指令的程序段可以停止 單程序段運(yùn)行用于調(diào)試用戶(hù)宏程序 注意 在刀具半徑補(bǔ)償 C 方式中 當(dāng)宏程序語(yǔ)句中出現(xiàn)單程序段停止時(shí) 該語(yǔ)句被認(rèn)為是不包含移動(dòng)的 程 序段 在某些情況下 不能執(zhí)行正確的補(bǔ)償 嚴(yán)格地講 該程序段被 當(dāng) 作指定移動(dòng)距離為 0 的移動(dòng) 任選程序段跳過(guò) 在中間出現(xiàn)的 符號(hào) 在算術(shù)表達(dá)式的右邊 封閉在括號(hào) 中 被認(rèn)為是除法運(yùn)算符 不作為任選程序段跳過(guò)代碼 在 EDIT 方式中的運(yùn)行 設(shè)定參數(shù) NE8 參數(shù) No 3202 的 0 位 和 NE9 參數(shù) No 3202 的 4 位 為 1 可對(duì)程序號(hào) 8000 到 8999 和 9000 到 9999 的用戶(hù)宏程序和子 程序 進(jìn)行保護(hù) 當(dāng)存儲(chǔ)器全清時(shí) 電源接通時(shí) 同時(shí)按下 和 RESET DELET 鍵 存儲(chǔ)器的全部?jī)?nèi)容包括宏程序都被清除 復(fù)位 當(dāng)復(fù)位時(shí) 局部變量和 100 到 199 的公共變量被清除為空值 設(shè)定 CLV 和 CCV 參數(shù) 6001 的第 7 位和第 6 位 它們可以不被清除 系統(tǒng) 變量 1000 到 1133 不被清除 復(fù)位操作清除任何用戶(hù)宏程序和子程序的調(diào)用狀態(tài)及 DO 狀態(tài)并返回 到 主程序 程序再起動(dòng)的顯示 和 M98 一樣 子程序調(diào)用使用的 M T 代碼不 顯示 進(jìn)給暫停 在宏程序語(yǔ)句執(zhí)行期間 進(jìn)給暫停有效時(shí) 宏語(yǔ)句執(zhí)行之 后機(jī)床停止 當(dāng)復(fù)位或出現(xiàn)報(bào)警時(shí) 機(jī)床也停止 中可以使用的常數(shù)值 0 0000001 到 99999999 99999999 到 0 0000001 有效數(shù)值是 8 位 十進(jìn)制 如果超過(guò)這個(gè)范圍 出現(xiàn) P S 報(bào)警 No 003 外部輸出指令 除了標(biāo)準(zhǔn)的用戶(hù)宏指令外 還可用下面的宏程序指令 它們被稱(chēng)作外 部輸出指令 BPRNT DPRNT POPEN PCLOS 通過(guò)閱讀機(jī) 穿孔機(jī)接口 用這些指令輸出變量值和字符 說(shuō)明 按下列順序指定這些指令 打開(kāi)指令 POPEN 在指定數(shù)據(jù)輸出命令之前 指定該指令 以建立與外部輸入 輸入設(shè)備 的鏈接 數(shù)據(jù)輸出指令 BPRNT 或 DPRNT 指定需要的輸出數(shù)據(jù) 關(guān)閉指令 PCLOS 當(dāng)全部數(shù)據(jù)輸出指令已經(jīng)完成時(shí) 指定 PCLOS 以解除與外部輸入 輸 出 設(shè)備的鏈接 打開(kāi)指令 POPEN POPEN POPEN 建立與外部輸入 輸出設(shè)備的鏈接 必須在數(shù)據(jù)輸出指令之前 指 定 根據(jù)該指令 CNC 輸出 DC2 控制代碼 數(shù)據(jù)輸出指令 BPRNT BPRNT 指令以二進(jìn)制輸出字符和變量值 指定的字符根據(jù)輸出時(shí)的設(shè)定數(shù)據(jù) ISO 轉(zhuǎn)換成代碼 可指定的字符如下 字母 A 到 Z 數(shù)字 特殊字符 等 星號(hào) 用空格輸出 所有變量都帶小數(shù)點(diǎn)存儲(chǔ) 指定一個(gè)變量時(shí) 變量后要用括號(hào) 指定小數(shù)的有效位數(shù) 變量值處理成為 2 個(gè)字 32 位 數(shù)據(jù) 包括小數(shù)位 輸出為二進(jìn)制數(shù)據(jù) 從最高字節(jié)開(kāi)始輸出 當(dāng)指定的數(shù)據(jù)輸出時(shí) 根據(jù)設(shè)定代碼 ISO 輸出 EOB 代碼 空變量認(rèn)為是 0 數(shù)據(jù)輸出指令 DPRNT DPRNT 指令 根據(jù) SETTING ISO 的代碼設(shè)定 以十進(jìn)制輸出字 符和 變量值 對(duì) DPRNT 指令的說(shuō)明 請(qǐng)見(jiàn)對(duì) BPRNT 指令說(shuō)明的 和 項(xiàng) 當(dāng)輸出變量時(shí) 要指定 和后面的變量號(hào) 然后 在括號(hào)中指定 整數(shù)部分中的位數(shù)和小數(shù)點(diǎn)后的位數(shù) 數(shù)據(jù)從高位輸出 每位數(shù)都按相應(yīng)的代碼輸出 代碼由 ISO 設(shè)定 小數(shù)點(diǎn)也按 ISO 設(shè)定的代碼輸出 每個(gè)變量必須是最多 8 位數(shù)組成的數(shù)字值 當(dāng)高位數(shù)是零時(shí) 如果 PRT 參數(shù) 6001 的 1 位 是 1 這些零不輸出 如果參數(shù) PRT 是 0 每當(dāng)遇到 0 時(shí)輸出空格代碼 當(dāng)小數(shù)的有效位數(shù)不是零時(shí) 小數(shù)部分總是輸出 如果小數(shù)的 有效位數(shù)是零 則不輸出小數(shù)點(diǎn) 當(dāng) PRT 參數(shù) 6001 的 1 位 是 0 時(shí) 輸出空格代替 號(hào)表示正數(shù) 如果參數(shù) PRT 是 1 不輸出代碼 關(guān)閉指令 PCLOS PCLOS PCLOS 指令解除與外部輸入 輸出設(shè)備的鏈接 當(dāng)所有數(shù)據(jù)輸出指令 結(jié) 束時(shí) 指定該指令 根據(jù)該指令 CNC 輸出 DC4 控制代碼 要求的設(shè)定 指定設(shè)定 SETTING 數(shù)據(jù)中的通道 I O 通道 根 據(jù)這些數(shù)據(jù) 指定閱 讀機(jī) 穿孔機(jī)接口的數(shù)據(jù) 例如 波特率 I O 通道 0 參數(shù) No 101 No 102 和 No 103 I O 通道 1 參數(shù) No 111 No 112 和 No 113 I O 通道 2 參數(shù) No 112 No 122 和 No 123 輸出裝置不要指定 FANUC 磁帶盒或軟盤(pán)盒 當(dāng)指定 DPRNT 指令輸出數(shù)據(jù)時(shí) 用參數(shù) PRT 參數(shù) 6001 的 1 位 為 1 或 0 指定是否輸出數(shù)據(jù)的前零 數(shù)據(jù)行結(jié)束時(shí)輸出 LF 或 LF CF 用參數(shù) 6001 的第 4 位 CRO 設(shè) 定 注 1 不必總是在一起指定打開(kāi)指令 POPEN 數(shù)據(jù)輸出指令 BPRNT DPRNT 以及關(guān)閉指令 PCLOS 一旦在程序的開(kāi) 頭指定了打開(kāi)指令后 除非指定了關(guān)閉指令 不需要再次指 令打開(kāi)指令 2 必須成對(duì)指定打開(kāi)指令和關(guān)閉指令 在程序的末尾指定關(guān)閉 指令 但是 如果沒(méi)有指定打開(kāi)指令 就不必指定關(guān)閉指令 3 當(dāng)數(shù)據(jù)輸出指令正在執(zhí)行時(shí) 若執(zhí)行復(fù)位操作 輸出停止并 且后面的數(shù)據(jù)被清除 因此 當(dāng)復(fù)位操作是由代碼執(zhí)行 例 如 執(zhí)行數(shù)據(jù)輸出程序的結(jié)束代碼 M30 時(shí) 在程序的結(jié)束部 分應(yīng)指定關(guān)閉指令 以確保全部數(shù)據(jù)輸出后才執(zhí)行 M30 處理 4 在括號(hào)中的縮寫(xiě)宏程序字保持不變 但是 當(dāng)括號(hào)中的字符 被分開(kāi)并分幾次輸入時(shí) 第 2 和以后的縮寫(xiě)被轉(zhuǎn)換并輸入 5 可以在括號(hào) 中指定 注意 當(dāng)括號(hào) 中的字符被分開(kāi) 并分幾次輸入時(shí) 在第 2 和以后的輸入中被忽略 中斷型用戶(hù)宏程序 當(dāng)程序正在執(zhí)行時(shí) 來(lái)自機(jī)床的中斷輸入信號(hào) uint 可以調(diào)用另一 個(gè)程序 該功能稱(chēng)為中斷型用戶(hù)宏程序功能 以下面的格式指定中斷 指令 M96 P0000 用戶(hù)宏程序中斷有效 M97 用戶(hù)宏程序中斷無(wú)效 說(shuō)明 中斷型用戶(hù)宏程序功能允許在程序執(zhí)行期間在任一程序段調(diào)用另一個(gè) 程序 這就可使程序根據(jù)隨時(shí)變化的條件實(shí)時(shí)地運(yùn)行 1 當(dāng)檢測(cè)到刀具的異常狀態(tài)時(shí) 用外部信號(hào)啟動(dòng)異常過(guò)程的處 理 2 加工運(yùn)行的順序由另一個(gè)加工操作中斷而不取消現(xiàn)在的運(yùn)行 3 以固定的間隔 讀取與現(xiàn)在加工有關(guān)的信息 以上所敘為中斷型用戶(hù)宏程序功能中的適應(yīng)控制應(yīng)用 當(dāng)在程序中指定 M96 P 時(shí) 輸入中斷信號(hào) UINT 可中斷之后 的 程序 轉(zhuǎn)而執(zhí)行由 P 指令的程序 注意 在 M97 指定后 中斷信號(hào) UINT 在圖 15 11 中用 標(biāo)記 的輸入被 忽略 并且 在中斷程序執(zhí)行期間 不得輸入中斷信號(hào) 指定方法說(shuō)明 說(shuō)明 中斷條件 用戶(hù)宏程序中斷只能在程序執(zhí)行期間有效 在下列條件下使用 存儲(chǔ)器運(yùn)行或 MDI 運(yùn)行時(shí) STL 啟動(dòng)燈 亮?xí)r 目前不處理用戶(hù)宏中斷時(shí) 指定 一般情況下 指定 M96 使中斷信號(hào) UINT 有效 可以執(zhí)行 用戶(hù)宏程 序中斷功能 M97 使信號(hào)無(wú)效 一旦指定 M96 輸入中斷信號(hào) UINT 使用戶(hù)宏程序中斷開(kāi)始 直到 指 定 M97 或 NC 復(fù)位后 中斷型宏程序功能取消 在指定 M97 或 NC 復(fù)位 以后 即使輸入中斷信號(hào) UINT 用戶(hù)宏程序中斷也不執(zhí)行 中斷 信 號(hào)被忽略直到指定另一個(gè) M96 指定 M96 后 中斷信號(hào) UINT 生效 在 M97 方式中 即使輸入信 號(hào) 也被忽略 當(dāng)在 M97 方式中斷信號(hào)輸入并保持接通直到 M96 指定時(shí) 用狀態(tài)觸發(fā)形式時(shí) 立即執(zhí)行宏程序中斷 當(dāng)使用邊沿觸發(fā)形式時(shí) 即使指定 M96 宏程序中斷也不執(zhí)行 注 狀態(tài)觸發(fā)和邊沿觸發(fā)形式 見(jiàn) II 15 11 2 用戶(hù)宏程序中斷信號(hào) 功能的詳細(xì)說(shuō)明 說(shuō)明 子程序型中斷和宏程序型中斷 有兩種形式的用戶(hù)宏程序中斷 子程序型中斷和宏程序型中斷 使用 的中斷類(lèi)型由 MSB 參數(shù) 6003 的 5 位 選擇 a 子程序型中斷 中斷程序作為子程序調(diào)用 這意味著在中斷前后局部變量的級(jí)別保持 不變 中斷不包含在子程序調(diào)用的嵌套級(jí)中 b 宏程序型中斷 中斷程序作為宏程序調(diào)用 這意味著在中斷前后局部變量的級(jí)別要改 變 中斷不包含在宏程序調(diào)用的嵌套級(jí)中 當(dāng)在中斷程序內(nèi)執(zhí)行子程 序調(diào)用或用戶(hù)宏程序調(diào)用時(shí) 這個(gè)調(diào)用包含在子程序調(diào)用或宏程序調(diào) 用的嵌套級(jí)中 即使用戶(hù)宏程序中斷是宏程序型中斷時(shí) 自變量也不 能從現(xiàn)在程序傳遞 用戶(hù)宏程序中斷控制的 M 代碼 在一般情況下 用戶(hù)宏程序中斷由 M96 和 M97 控制 但是 這些代 碼 可能已被某些機(jī)床制造廠(chǎng)用于其它用途 例如 M 功能或宏程序 M 代碼 調(diào)用 由于這個(gè)原因 可用 MPR 參數(shù) 6003 的 4 位 設(shè)定用戶(hù)宏 程序 中斷控制的 M 代碼 當(dāng)設(shè)定該參數(shù)指定用 M 代碼調(diào)用中斷型宏程序時(shí) 應(yīng)將 M 代碼設(shè)在 參 數(shù) 6033 和 6034 中 在參數(shù) 6033 中設(shè)定使用戶(hù)宏程序中斷有效的 M 代碼 而在參數(shù) 6034 中設(shè)定使用戶(hù)宏程序中斷無(wú)效的 M 代碼 當(dāng)指定不用參數(shù)設(shè)定的 M 代碼時(shí) M96 和 M97 用作中斷型用戶(hù)宏程 序控 制的 M 代碼 而不管參數(shù) 6033 和 6034 的設(shè)定 用作用戶(hù)宏程序中斷控制的 M 代碼被內(nèi)部處理 它們不輸出到外部裝 置 但是 從程序的兼容性考慮 不希望使用 M96 和 M97 以外的 M 代 碼控制用戶(hù)宏程序中斷 用戶(hù)宏程序中斷和 NC 語(yǔ)句 當(dāng)執(zhí)行用戶(hù)宏程序中斷時(shí) 用戶(hù)有時(shí)希望 中斷正在執(zhí)行的 NC 語(yǔ)句 或 者希望執(zhí)行完當(dāng)前的程序段后再執(zhí)行中斷 這時(shí) 可用參數(shù) MIN 參 數(shù) 6003 的 2 位 選擇是在程序段的中間執(zhí)行中斷 還是等到程序段結(jié) 束 后再執(zhí)行中斷 型 在程序段中 執(zhí)行中斷 當(dāng)中斷信號(hào) UINT 輸入時(shí) 任何正在執(zhí)行的移 動(dòng)或暫停都被 立即停止 轉(zhuǎn)而執(zhí)行中斷程序 如果在中斷程序中有 NC 語(yǔ)句 在中斷程序段中的指令被放棄 并 執(zhí)行中斷程序中的 NC 語(yǔ)句 當(dāng)控制返回到被中斷的程序時(shí) 程 序從被中斷的程序段之后的下個(gè)程序段重新開(kāi)始 如果在中斷程序中沒(méi)有 NC 語(yǔ)句 控制由 M99 返回到中斷程 序 然后 程序從被中斷的程序段中的指令重新開(kāi)始 型 程序段結(jié) 束后執(zhí)行中斷 如果正在執(zhí)行的程序段不是由幾個(gè)循環(huán)動(dòng)作組 成的程序段 例如 鉆孔固定循環(huán)和自動(dòng)返回參考點(diǎn) G28 中斷的執(zhí)行過(guò)程如下 當(dāng)中斷信號(hào) UINT 輸入時(shí) 在中斷程序中的宏程序語(yǔ)句立即執(zhí) 行 除非在中斷程序中遇到 NC 語(yǔ)句 此時(shí)直到當(dāng)前的程序段執(zhí)行 結(jié)束后 才執(zhí)行中斷程序中的 NC 語(yǔ)句 如果正在執(zhí)行的程序段是由幾個(gè)循環(huán)動(dòng)作組成的程序段 中斷 執(zhí) 行如下 當(dāng)循環(huán)運(yùn)行中的最后的移動(dòng)開(kāi)始時(shí) 執(zhí)行中斷程序中的宏程序語(yǔ) 句 除非遇到 NC 語(yǔ)句 此時(shí)在全部循環(huán)動(dòng)作完成之后執(zhí)行 NC 語(yǔ) 句 用戶(hù)宏程序中斷信號(hào) 的有效和無(wú)效條件 在中斷型用戶(hù)宏程序的 M96 程序段執(zhí)行之后 中 斷信號(hào)有效 當(dāng) M97 的程序段開(kāi)始執(zhí)行時(shí) 該信號(hào)無(wú)效 當(dāng)中斷程序正在執(zhí)行時(shí) 中斷信號(hào)無(wú)效 當(dāng)控制從中斷程序返回后 主程序中緊接被中斷的程序段開(kāi)始執(zhí)行時(shí) 該信號(hào)有效 在 I 型中斷 中 如果中斷程序只包含宏語(yǔ)句 則在控制從中斷返回以后 中斷程 序段開(kāi)始執(zhí)行時(shí) 該中斷信號(hào)有效 包含循環(huán)動(dòng)作的程序段執(zhí) 行期間的用戶(hù)宏程序中斷 I 型 即使循環(huán)動(dòng)作在進(jìn)行中 移動(dòng)也被中斷 執(zhí)行中斷程序 如果中 斷程 序不包含 NC 語(yǔ)句 在控制返回到被中斷的程序之后 循環(huán)動(dòng)作重新 開(kāi) 始 如果有 NC 語(yǔ)句 則放棄中斷循環(huán)中的剩余動(dòng)作 而執(zhí)行下個(gè)程 序 段 II 型 當(dāng)循環(huán)動(dòng)作的最后的移動(dòng)開(kāi)始時(shí) 執(zhí)行中斷程序中的宏語(yǔ)句 除 非遇 到 NC 語(yǔ)句 此時(shí)在循環(huán)動(dòng)作完成后 執(zhí)行 NC 語(yǔ)句 用戶(hù)宏程序中斷信號(hào) UINT 的輸入有兩種方式 狀態(tài)觸發(fā)方式和邊 沿 觸發(fā)方式 使用狀態(tài)觸發(fā)方式時(shí) 當(dāng)它接通

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論