




已閱讀5頁,還剩47頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
宏宏 程程 序序 數控程序中含有變量的程序稱為宏程序 雖然子程序對編制相同的加工程序非常有用 但用戶宏程序由于允許 使用變量 算術和邏輯運算及條件轉移 使得編制同樣的加工程序更 簡便 例如型腔加工宏程序和用戶開發固定循環 使用時 加工程序 可用一條簡單指令調出用戶宏程序 和調用子程序完全一樣 1 1 變量 普通加工程序直接用數值指定 G 代碼和移動距離 例如 G01 和 X100 0 使用用戶宏程序時 數值可以直接指定或用變量指定 當用變量時 變 量值可用程序或用 MDI 面板操作改變 1 2 100 G01 X 1 F300 說明 變量的表示 一般編程方法允許對變量命名 但用戶宏程序不行 變量用變量符號 和后面的變量號指定 例如 1 表達式可以用于指定變量號 此時 表達式必須封閉在括號中 例如 1 2 12 變量的類型 變量根據變量號可以分成四種類型 變量值的范圍 局部變量和公共變量可以為 0 值或下面范圍中的值 1047 到 10 29 或 10 29 到 1047 如果計算結果超出有效范圍 則發出 P S 報警 No 111 小數點的省略 當在程序中定義變量值時 小數點可以省略 例 當定義 1 123 變量 1 的實際值是 123 000 變量的引用 在地址后指定變量號即可引用其變量值 當用表達式指定變量時 要 把 表達式放在括號中 例如 G01X 1 2 F 3 被引用變量的值根據地址的最小設定單位自動地舍入 例如 當系統的最小輸入增量為 1 1000mm 單位 指令 G00X 1 并將 12 3456 賦值給變量 1 實際指令值為 G00X12 346 改變引用變量的值的符號 要把負號 放在 的前面 例如 G00X 1 當引用未定義的變量時 變量及地址字都被忽略 例如 n 當變量 1 的值是 0 并且變量 2 的值是空時 G00X 1 Y 2 的執行 結果為 G00X0 雙軌跡 雙軌跡控制 的公共變量 對雙軌跡控制 系統為每一軌跡都提供了單獨的宏變量 但是 根 據參數 No 6036 和 6037 的設定 某些公共變量可同時用于兩個軌 跡 未定義的變量 當變量值未定義時 這樣的變量成為 空 變量 變量 0 總是空變 量 它不能寫 只能讀 a 引用 當引用一個未定義的變量時 地址本身也被忽略 b 運算 除了用賦值以外 其余情況下與 0 相同 當變量值是空白時 變量是空 符號 表示溢出 當變量的絕對值大于 99999999 時 或下 溢出 當變量的絕對值小于 0 0000001 時 限制 程序號 順序號和任選程序段跳轉號不能使用變量 例 下面情況不能使用變量 1 2G00X100 0 N 3Y200 0 1 2 系統變量 系統變量用于讀和寫 NC 內部數據 例如 刀具偏置值和當前位置數 據 但是 某些系統變量只能讀 系統變量是自動控制和通用程序開發的 基 礎 說明 接口信號 是可編程機床控制器 PMC 和用戶宏程序之間交換的信號 刀具補償值 用系統變量可以讀和寫刀具補償值 可使用的變量數取決于刀補數 是否區分外形補償和磨損補償以及是 否 區分刀長補償和刀尖補償 當偏置組數小于等于 200 時 也可使用 2001 2400 宏程序報警 例 3000 1 TOOL NOT FOUND 報警屏幕上顯示 3001 TOOL NOT FOUND 刀具未找到 停止和信息顯示 程序停止執行并顯示信息 時間信息 時間信息可以讀和寫 自動運行控制 可以改變自動運行的控制狀態 當電源接通時 該變量的值為 0 當單程序段停止無效時 即使單程序段開關設為 ON 也不執行單程 序段停止 當指定不等待輔助功能 M S 和 T 功能 完成時 在輔助功能完 成 之前 程序即執行到下一程序段 而且分配完成信號 DEN 不輸出 當電源接通時 該變量的值為 0 當進給暫停無效時 1 當進給暫停按鈕被按下時 機床以單段停止方式停止 但是 當 用變量 3003 使單程序段方式無效時 單程序段停止不執行 2 當進給暫停按鈕壓下又松開時 進給暫停燈亮 但是 機床不 停 止 程序繼續執行 并且機床停在進給暫停有效的第一個程序段 當進給速度倍率無效時 倍率總為 100 而不管機床操作面板上的 進給速度倍率開關的設置 當準確停止檢測無效時 即使那些不執行切削的程序段也不進行準 確 停止檢測 位置檢測 SETTING 值 SETTING 值可用變量讀和寫 二進制數轉換為十進制數 鏡像 使用外部開關或 SETTING 操作設置的各軸鏡像狀態可以通過輸出信 號 鏡像檢測信號 讀出 可以檢測當前的鏡像狀態 見 III 4 6 節 得到的二進制值轉換成十進制 當用鏡像信號和 SETTING 兩者對某軸設置鏡像功能時 信號值和 設 定值相或 然后輸出 當控制軸以外的軸的鏡像功能接通時 它們也被讀進系統變量 3007 系統變量 3007 是寫保護的系統變量 如果試圖在變量中寫數據 則 發出 P S116 報警 WRITE PROTECTED VARIABLE 已加工的零件數 要求的零件數 目標數 和已加工的零件數 完成數 可以讀和寫 模態信息 正在處理的程序段之前的模態信息可以讀出 例 當執行 1 4002 時 在 1 中得到的值是 17 18 或 19 對于不能使用的 G 代碼組 如果指定系統變量讀取相應的模態信息 則發出 P S 報警 當前位置 位置信息不能寫 只能讀 第 1 位代表軸號 從 1 到 3 變量 5081 5083 存儲的刀具長度補償值是當前的執行值 不是后 面程序段的處理值 在 G31 跳轉功能 程序段中跳轉信號接通時的刀具位置儲存在變 量 5061 到 5063 中 當 G31 程序段中的跳轉信號未接通時 這些 變量中儲存指定程序段的終點值 移動期間不能讀是指由于緩沖 預讀 功能的原因 不能讀期望值 工件坐標系補償值 工件零點偏移值的系統變量 工件零點偏移值 可以使用以下變量 1 3 算術和邏輯運算 表 15 3 a 中列出的運算可以在變量中執行 運算符右邊的表達式可包 含常量和 或由函數或運算符組成的變量 表達式中的變量 j 和 k 可 以 用常數替換 左邊的變量也可以用表達式賦值 表 15 3 a 算術和邏輯運算 角度單位 函數 SIN COS ASIN ACOS TAN 和 ATAN 的角度單位是度 如 90 30 表示為 90 5 度 ARCSIN i ASIN j 取值范圍如下 當參數 No 6004 0 NAT 位設為 0 時 270 90 當參數 No 6004 0 NAT 位設為 1 時 90 90 當 j 超出 1 到 1 的范圍時 發出 P S 報警 No 111 常數可替代變量 j ARCCOS i ACOS j 取值范圍從 180 0 當 j 超出 1 到 1 的范圍時 發出 P S 報警 No 111 常數可以替代變量 j ARCTAN 指定兩個邊的長度 并用斜杠 分開 i ATAN j k 取值范圍如下 當 NAT 位 參數 No 6004 0 設為 0 時 0 到 360 例如 當指定 1 ATAN 1 1 時 1 225 當 NAT 位 參數 No 6004 0 設為 1 時 180 到 180 例如 當指定 1 ATAN 1 1 時 1 135 0 常數可以代替變量 j 注意 相對誤差可能大于 10 8 自然對數 i LN j 當反對數 j 為 0 或小于 0 時 發出 P S 報警 No 111 常數可以代替變量 j 注意 相對誤差可能大于 10 8 指數函數 i EXP j 當運算結果超過 3 65 1047 j 大約是 110 時 出現溢出并發出 P S 報警 No 111 常數可以代替變量 j ROUND 舍入 函數 當算術運算或邏輯運算指令 IF 或 WHILE 中包含 ROUND 函數時 則 ROUND 函數在第 1 個小數位置四舍五入 例 當執行 1 ROUND 2 時 此處 2 1 2345 變量 1 的值是 1 0 當在 NC 語句地址中使用 ROUND 函數時 ROUND 函數根據地址 的最小 設定單位將指定值四舍五入 例 編制鉆削加工程序 按變量 1 和 2 的值切削 然后返回到初始位置 假定最小設定單位是 1 1000mm 變量 1 是 1 2345 變量 2 是 2 3456 則 G00 G91 X 1 移動 1 235mm G01 X 2 F300 移動 2 346mm G00 X 1 2 由于 1 2345 2 3456 3 5801 移動距離為 3 580 刀具 不會返回到初始位置 該誤差來自于舍入之前還是舍入之后相加 必須指定 G00 X ROUND 1 ROUND 2 以使刀具返回到初始位置 上取整和下取整 CNC 處理數值運算時 若操作后產生的整數絕對值大于原數的絕對 值 時為上取整 若小于原數的絕對值為下取整 對于負數的處理應小心 例如 假設 1 1 2 2 1 2 當執行 3 FUP 1 時 2 0 賦給 3 當執行 3 FIX 1 時 1 0 賦給 3 當執行 3 FUP 2 時 2 0 賦給 3 當執行 3 FIX 2 時 1 0 賦給 3 算術與邏輯運算指令的縮寫 程序中指令函數時 函數名的前二個字 符可以用于指定該函數 見 9 7 節 例如 ROUND RO FIX FI 運算次序 函數 乘和除運算 AND 加和減運算 OR XOR 括號嵌套 括號用于改變運算次序 括號可以使用 5 級 包括函數內部使用的括 號 當超過 5 級時 出現 P S 報警 No 118 限制 括號 用于封閉表達式 注意 圓括號用于注釋 運算誤差 運算時 可能出現誤差 表 15 3 b 運算中的誤差 注 1 相對誤差取決于運算結果 2 使用兩類誤差的較小者 3 絕對誤差是常數 而不管運算結果 4 函數 TAN 執行 SIN COS 5 如果 SIN COS 或 TAN 函數的運算結果小于 1 0 10 8 或由于 運算精度的限制不為 0 的話 設定參數 o 6004 1 為 1 則 運算結果可以規算為 0 變量值的精度約為 8 位十進制數 當在加 減運算中處理非常大的數 時 將得不到期望的結果 例 當試圖把下面的值賦給變量 1 和 2 時 1 9876543210123 456 2 9876543277777 777 變量值變成 1 9876543200000 000 2 9876543300000 000 此時 當計算 3 2 1 時 結果為 3 100000 000 該計算的實際結果稍有誤差 因為是以二進制執行的 還應該意識到 使用條件表達式 EQ NE GE GT LE 和 LT 時 可 能造成誤差 例如 IF 1EQ 2 的運算會受 1 和 2 的誤差的影響 由此會造成錯誤的判 斷 因此 應該用 IF ABS 1 2 LT0 001 代替上述語句 以避免兩個變 量的誤差 當兩個變量的差值未超過允許極限 此處為 0 001 時 則認為兩個 變量的值是相等的 使用下取整指令時應小心 例如 當計算 2 1 1000 式中 1 0 002 時 變量 2 的結果值不是準確的 2 可能是 1 99999997 這里 當指定 3 FIX 2 時 變量 3 的結果值不是 2 而是 1 0 此 時 可先糾正誤差 再執行下取整 或是用如下的四舍五入操作 即可得到正確結果 3 FIX 2 0 001 3 ROUND 2 除數 當在除法或 TAN 90 中指定為 0 的除數時 出現 P S 報警 No 112 1 4 宏程序語句和 NC 語句 下面的程序段為宏程序語句 包含算術或邏輯運算 的程序段 包含控制語句 例如 GOTO DO END 的程序段 包含宏程序調用指令 例如 用 G65 G66 G67 或其它 G 代碼 M 代碼調用宏程序 的程序段 除了宏程序語句以外的任何程序段都為 NC 語句 說明 與 NC 語句的不同 即使置于單程序段運行方式 機床也不停止 但是 當參數 No 6000 5 SBM 設定為 1 時 在單程序段方式中 機床停止 在刀具半徑補償方式中宏程序語句段不做為不移動程序段處理 見 II 15 7 節 與宏程序語句有相 含有子程序調用指令 例如 用 M98 或其它 M 代碼或用 T 代碼調用 子程序 但沒有除 O N 或 L 地址之外的其它地址指令的 NC 語句 其性質與宏程序語句相同 同性質的 NC 語句 不包含除 O N P 或 L 以外的指令地址的程序段其性質與宏程序 語 句相同 1 5 轉移和循環 在程序中 使用 GOTO 語句和 IF 語句可以改變控制 的流向 有三種轉 移和循環操作可供使用 無條件轉移 轉移到標有順序號 n 的程序段 當指定 1 到 99999 以外的順序號時 出 現 P S 報警 No 128 可用表達式指定順序號 例 GOTO 1 GOTO 10 轉移和循環 GOTO 語句 無條件轉移 IF 語句 條件轉移 IF THEN WHILE 語句 當 時循環 GOTOn n 順序號 1 到 99999 條件轉移 IF 語句 IF 之后指定條件表達式 IF GOTO n 如果指定的條件表達式滿足時 轉移到標有 順序號 n 的程序段 如果指 定的條件表達式不滿足 執行下個程序段 IF THEN 如果條件表達式滿足 執行預先決定的宏程序語句 只執行一個宏程 序語句 條件表達式 條件表達式必須包括運算符 運算符插在兩個變量中間或變量和常數 中 間 并且用括號 封閉 表達式可以替代變量 運算符 運算符由 2 個字母組成 用于兩個值的比較 以決定它們是相等還是 一 個值小于或大于另一個值 注意 不能使用不等號 示例程序 下面的程序計算數值 1 10 的總和 9500 1 0 存儲和的變量初值 2 1 被加數變量的初值 N1 IF 2 GT 10 GOTO 2 當被加數大于 10 時轉移到 N2 1 1 2 計算和 2 2 1 下一個被加數 GOTO 1 轉到 N1 N2 M30 程序結束 循環 WHILE 語句 在 WHILE 后指定一個條件表達式 當指定條件滿足時 執行從 DO 到 END 之間的程序 否則 轉到 END 后的程序段 說明 當指定的條件滿足時 執行 WHILE 后從 DO 到 END 之間的程 序 否 則 轉而執行 END 之后的程序段 與 IF 語句的指令格式相同 DO 后 的數和 END 后的數為指定程序執行范圍的標號 標號值為 1 2 3 若用 1 2 3 以外的值會產生 P S 報警 No 126 嵌套 在 DO END 循環中的標號 1 到 3 可根據需要多次使用 但是 當 程序有交叉重復循環 DO 范圍重疊 時 出現 P S 報警 No 124 說明 無限循環 當指定 DO 而沒有指定 WHILE 語句時 產生從 DO 到 END 的無限 循 環 處理時間 在處理有標號轉移的 GOTO 語句時 進行順序號檢索 反向檢索的時 間要比正向檢索長 用 WHILE 語句實現循環可減少處理時間 未定義的變量 在使用 EQ 或 NE 的條件表達式中 和零有不同的效果 在其它 形式的條件表達式中 被當作零 示例程序 下面的程序計算數值 1 到 10 的總和 宏程序調用 用以下方法調用宏程序 宏程序調用和子程序調用之間的差別 宏程序調用 G65 不同于子程序調用 G98 如下所述 用 G65 可以指定自變量 數據傳送到宏程序 M98 沒有該功能 當 M98 程序段包含另一個 NC 指令 例如 G01 X100 0 M98 Pp 時 在指令執行之后調用子程序 相反 G65 無條件地調用宏程序 M98 程序段包含另一個 NC 指令 例如 G01 X100 0 M98 Pp 時 在 單程序段方式中 機床停止 相反 G65 機床不停止 用 G65 改變局部變量的級別 用 M98 不改變局部變量的級別 非模態調用 G65 當指定 G65 時 以地址 P 指定的用戶宏程序被 調用 數據 自變量 能傳遞到用戶宏程序體中 說明 調用 在 G65 之后 用地址 P 指定用戶宏程序的程序號 當要求重復時 在地址 L 后指定從 1 到 9999 的重復次數 省略 L 值 時 認為 L 等于 1 使用自變量指定 其值被賦值到相應的局部變量 自變量指定 可用兩種形式的自變量指定 自變量指定 使用除了 G L O N 和 P 以外的字母 每個字母指定一次 自變量指定 使用 A B C 和 Ii Ji 和 Ki i 為 1 10 根據使用的字母 自動決定自變量指定的類型 地址 G L N 和 P 不能在自變量中使用 不需要指定的地址可以省略 對應于省略地址的局部變量為空 地址不需要按字母順序指定 但應符合字地址的格式 I J 和 K 需 要按字母順序指定 例 B A D J K 正確 B A D J I 不正確 自變量指定 自變量指定 使用 A B 和 C 各 1 次 I J K 各 10 次 自變量指 定 用于傳遞諸如三維坐標值 限制 格式 任何自變量前必須指定 G65 自變量指定 混合使用 CNC 內部自動識別自變量指定 和自變 量指定 如果自變量指定 和自變量指定 混合指定 后指定的自變量類型有效 小數點的位置 不帶小數點的自變量 其數據單位為各地址的最小設定單位 傳遞不 帶 小數點的自變量 其值會根據機床實際的系統配置變化 在宏程序調 用 中使用小數點可使程序兼容性好 調用嵌套 調用可以嵌套 4 級 包括非模態調用 G65 和模態調用 G66 但 不 包括子程序調用 M98 局部變量的級別 局部變量嵌套從 0 到 4 級 主程序是 0 級 宏程序每調用 1 次 用 G65 或 G66 局部變量級別加 1 前 1 級 的 局部變量值保存在 CNC 中 當宏程序執行 M99 時 控制返回到調用程序 此時 局部變量級別 減 1 并恢復宏程序調用時保存的局部變量值 示例程序 圓周螺紋孔 編制一個宏程序加工輪圓上的孔 圓周的半徑為 I 起始角為 A 間隔 為 B 鉆孔數為 H 圓的中心是 X Y 指令可以用絕對值或增量 值 指定 順時針方向鉆孔時 B 應指定負值 調用格式 G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh X 圓心的 X 坐標 絕對值或增量值指定 24 Y 圓心的 Y 坐標 絕對值或增量值指定 25 Z 孔深 26 R 趨近點坐標 18 F 切削進給速度 9 I 圓半徑 4 A 第一孔的角度 1 B 增量角 指定負值時為順時針 2 H 孔數 11 宏程序調用程序 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 宏程序 被調用的程序 9100 3 4003 儲存 03 組 G 代碼 G81 Z 26 R 18 F 9 K0 注 鉆孔循環 注 也可以使用 L0 IF 3 EQ 90 GOTO 1 在 G90 方式轉移到 N1 24 5001 24 計算圓心的 X 坐標 25 5002 25 計算圓心的 Y 坐標 N1 WHILE 11 GT 0 DO 1 直到剩余孔數為 0 5 24 4 COS 1 計算 X 軸上的孔位 6 25 4 SIN 1 計算 Y 軸上的孔位 G90 X 5 Y 6 移動到目標位置之后執行鉆孔 1 1 2 更新角度 11 11 1 孔數 1 END 1 G 3 G80 返回原始狀態的 G 代碼 M99 變量的含義 3 儲存 03 組的 G 代碼 5 下個孔的 X 坐標 6 下個孔的 Y 坐標 模態調用 G66 一旦發出 G66 則指定模態調用 即在指定軸移動的程序段后調用宏程 序 G67 取消模態調用 說明 調用 在 G66 之后 用地址 P 指定模態調用的程序號 當要求重復時 在地址 L 后指定從 1 到 9999 的重復次數 與非模態調用 G65 相同 自變量指定的數據傳遞到宏程序體中 取消 指定 G67 代碼后 其后面的程序段不再執行模態宏程序調用 調用嵌套 調用可以嵌套 4 級 包括非模態調用 G65 和模態調用 G66 但 不包括子程序調用 M98 模態調用嵌套 在模態調用期間 指定另一個 G66 代碼 可以嵌套模態調用 限制 在 G66 程序段中 不能調用宏程序 G66 必須在自變量之前指定 在只有諸如輔助功能但無移動指令的程序段中不能調用宏程序 局部變量 自變量 只能在 G66 程序段中指定 注意 每次執行模 態調用時 不再設定局部變量 示例程序 用宏程序編制 G81 固定循環的操作 加工程序使用模態調 用 為了簡 化程序 使用絕對值指定全部的鉆孔數據 調用格式 G65 P9110 Xx Yy Zz Rr Ff Ll X 孔的 X 坐標 由絕對值指定 24 Y 孔的 Y 坐標 由絕對值指定 25 Z Z 點坐標 由絕對值指定 26 R R 點坐標 由絕對值指定 18 F 切削進給速度 9 L 重復次數 調用宏程序的程序 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 宏程序 被調用的程序 9110 1 4001 儲存 G00 G01 2 4003 儲存 G90 G91 3 4109 儲存切削進給速度 5 5003 儲存鉆孔開始的 Z 坐標 G00 G90 Z 18 定位在 R 點 G01 Z 26 F 9 切削進給到 Z 點 IF 4010 EQ 98 GOTO 1 返回到 1 點 G00 Z 18 定位在 R 點 GOTO 2 N1 G00 Z 5 定位在 1 點 N2 G 1 G 3 F 4 恢復模態信息 M99 用 G 代碼調用宏程序 在參數中設置調用宏程序的 G 代碼 按非模態調用 G65 同樣的方 法調用宏程序 說明 在參數 No 6050 到 No 6059 中設置調用用戶宏程序 9010 到 9019 的 G 代碼號 從 1 到 9999 調用用戶宏程序的方法與 G65 相同 例如 設置參數 由 G81 調用宏程序 9010 不用修改加工程序 就 可以調用由用戶宏程序編制的加工循環 參數號和程序號之間的對應關系 重復 與非模態調用一樣 地址 L 中指定從 1 到 9999 的重復次數 自變量指定 與非模態調用一樣 可以使用兩種自變量指定類型 自變 量指定 和 自變量指定 根據使用的地址自動決定自變量的指定類型 限制 使用 G 代碼的宏調用的嵌套 在 G 代碼調用的程序中 不能用 G 代 碼調用宏程序 這種程序中的 G 代碼被處理為普通 G 代碼 在用 M 或 T 代碼調用的子程序中 不能 用 G 代碼調用宏程序 這種程序中的 G 代碼也處理為普通 G 代碼 用 M 代碼調用宏程序 在參數中設置調用宏程序的 M 代碼 按非模態調用 G65 一樣的方 法調用宏程序 說明 在參數 No 6080 到 No 6089 中設置調用用戶宏程序 9020 到 9029 的 M 代碼 從 1 到 99999999 調用宏程序的方法同 G65 相同 參數號和程序號之間的對應關系 重復 與非模態調用一樣 地址 L 中指定從 1 到 9999 的重復次數 自變量指定 與非模態調用一樣 可以使用兩種自變量指定類型 自變量指定 和 自變量指定 根據使用的地址自動決定自變量指定的類型 限制 調用宏程序的 M 代碼必須在程序段的開頭指定 用 G 代碼調用的宏程序或用 M 代碼或 T 代碼調用的子程序中 不 能 用 M 代碼調用宏程序 這種宏程序或子程序中的 M 代碼被處理為普 通 M 代碼 用 M 代碼調用子程序 在參數中設置調用子程序 宏程序 的 M 代碼號 按與子程序調用 M98 相同的方法調用宏程序 說明 在參數 No 6071 到 No 6079 中設置調用子程序的 代碼 從 到 99999999 相應的用戶宏程序 9001 到 9009 可按與 M98 同樣的方法調用 參數號和程序號之間的對應關系 重復 與非模態調用一樣 地址 L 中指定從 1 到 9999 的重復次數 自變量指定 不允許指定自變量 M 代碼 在宏程序中調用的 M 代碼被處理為普通 M 代碼 限制 用 G 代碼調用的宏程序 或用 M 或 T 代碼調用的子程序中 不能使用 M 代碼調用子程序 這種宏程序或程序中的 M 代碼被處理為普通 M 代 碼 用 T 代碼調用子程序 通過設定參數 可使用 T 代碼調用子程序 宏程序 每當在加工程 序 中指定 T 代碼時 即調用宏程序 說明 調用 設置參數 No 6001 的 5 位 TCS 1 當在加工程序中指定 T 代碼時 可以 調用宏程序 9000 在加工程序中指定的 T 代碼賦值到公共變量 149 限制 用 G 代碼調用的宏程序中或用 M 或 T 代碼調用的程序中 不 能用 T 代 碼調用子程序 這種宏程序或程序中的 T 代碼被處理為普通 T 代碼 示例程序 使用 M 代碼調用子程序的功能 實現測量每把刀具的累積使用時間 條件 測量 T01 到 T05 各把刀具的累積使用時間 刀號大于 T05 的刀 具不 進行測量 下面的變量用于儲存刀號和測量的時間 501 刀號 1 的累積使用時間 502 刀號 2 的累積使用時間 503 刀號 3 的累積使用時間 504 刀號 4 的累積使用時間 505 刀號 5 的累積使用時間 當指定 M03 時 開始計算使用時間 當指定 M05 時 停止計算 在 循環啟動燈亮期間 用系統變量 3002 測量該時間 進給暫停和單段 停止期間 不計算時間 但要計算換刀和交換工作臺的時間 運行檢查 參數設置 參數 No 6071 中設置 3 參數 No 6072 中設置 05 變量值設置 變量 501 到 505 中設置 0 調用宏程序的程序 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 宏程序 被調用的程序 9001 M03 啟動計算的宏程序 M01 IF 4120 EQ 0 GOTO 9 沒有指定刀具 IF 4120 GT 5 GOTO 9 超出刀號范圍 3002 0 計時器清 0 N9 M03 正向旋轉主軸 M99 9002 M05 結束計算的宏程序 M01 IF 4120 EQ 0 GOTO 9 沒有指定刀具 IF 4120 GT 5 GOTO 9 超出刀號范圍 500 4120 3002 500 4120 計算累積時間 N9 M05 停止主軸 M99 宏程序語句的處理 為了平滑加工 CNC 預讀下一段要執行的 NC 語句 這種運行稱為 緩沖 在 AI 先行控制中 CNC 讀取多個程序段 即使系統未處于 AI 先行 控制 方式 但在刀具半徑補償方式 G41 G42 中 NC 為了找到交點提 前 預讀 2 或 3 個程序段的 NC 語句 算術表達式和條件轉移的宏程序語 句 在它們被讀進緩沖寄存器后立即被處理 因此 宏語句的執行時序并 不總是按編制順序執行 包含 M00 M01 M02 或 M30 的程序段 包含由參數 No 3411 到 No 3432 設置的禁止緩沖的 M 代碼的程序段 以及包含禁止緩沖的 G 代碼 例 如 G53 的程序段 其后的程序不再預讀 直到相應的 M 代碼和 G 代 碼 的動作執行完畢 才執行之后的宏語句 NC 語句和宏語句的執行順序 當下個程序段不緩沖時 禁止 緩沖的 M 代碼 G53 G31 等 注 如果需要在執行完程序段后再執行接下來的宏語句 則應在 此程序段中指定禁止緩沖的 M 代碼或 G 代碼 另外 在諸 如讀取 改寫系統變量 坐標值 偏置值等操作時 由于宏 語句執行時序的影響 有可能會出現偏差 此時 應在宏語 句前指定禁止緩沖的 M 代碼和 G 代碼 在除了刀具半徑補償方式 G41 G42 以外的方式 中 緩沖下個程序段 正 常預讀一個程序段 當執行 N1 時 下個 NC 語句 N4 被讀入緩沖器 N1 和 N4 之間 的宏 語句 N2 N3 在 N1 執行期間被處理 在刀具半徑補償方式 G41 G42 中緩沖下個程序段 當 N1 正在執行時 下 2 個程序段 直到 N5 中的 NC 語句被讀進 緩沖 寄存器 在 N1 和 N5 之間的宏語句 N2 N4 在 N1 執行期間被處 理 在刀具半徑補償方式 C G41 G42 中 當下個程序段包含 沒有移動的程序段時 當 N1 程序段正在執行時 下兩個程序段 直到 N5 中的 NC 語句被 讀 進緩沖寄存器 由于 N5 是不移動的程序段 不能計算交點 此時 下 面三個程序段 直到 N7 中的 NC 語句被讀入 在 N1 和 N7 之間的 宏 語句 N2 N4 和 N6 在執行 N1 時被處理 使用系統變量時的注意事項 如果在宏程序中使用如下系統變量 表 15 7 2 a 并且希望在上 一程序段執行完畢后再執行宏語句 則需在上一程序段中指定禁止緩 沖 的 M 代碼 參數 3411 3432 或 G53 指令程序段 在上例中 在執行主程序中的 N1 程序段時 N2 程序段讀入緩沖 相應地 宏程序 O2000 被讀入和執行 此時由于軸在移動狀態 因此變量 1 和 2 讀入的是不確定位置 這時只需在宏程序 O2000 的 N100 程序段 前指 定禁止緩沖的 M 代碼或 G53 指令 變量 1 和 2 中讀取的位置即為 N1 程 序段完全執行后的位置 注 在固定循環方式中不能指定 G53 代碼 否則會出現 P S44 報警 因此如果要在固定循環方式中禁止緩沖程序段 可通過指定 禁止緩沖 M 代碼來實現 用戶宏程序的存儲 用戶宏程序與子程序相似 可用與子程序同樣的方法進行存儲和編程 存儲容量由子程序和宏程序的總容量確定 限制 MDI 運行 在 MDI 方式中可以指定宏程序調用指令 但是 在自動運行期間 宏 程序調用不能切換到 MDI 方式 順序號檢索 用戶宏程序不能檢索順序號 單程序段 即使宏程序正在執行 在單程序段方式 程序段也能停止 包含宏程序調用指令 G65 G66 或 G67 的程序段 即使在單程序 段 方式時也不會停止 當設定 SBM 參數 No 6000 的 5 位 為 1 時 包含 算術運算指令和控制指令的程序段可以停止 單程序段運行用于調試用戶宏程序 注意 在刀具半徑補償 C 方式中 當宏程序語句中出現單程序段停止時 該語句被認為是不包含移動的 程 序段 在某些情況下 不能執行正確的補償 嚴格地講 該程序段被 當 作指定移動距離為 0 的移動 任選程序段跳過 在中間出現的 符號 在算術表達式的右邊 封閉在括號 中 被認為是除法運算符 不作為任選程序段跳過代碼 在 EDIT 方式中的運行 設定參數 NE8 參數 No 3202 的 0 位 和 NE9 參數 No 3202 的 4 位 為 1 可對程序號 8000 到 8999 和 9000 到 9999 的用戶宏程序和子 程序 進行保護 當存儲器全清時 電源接通時 同時按下 和 RESET DELET 鍵 存儲器的全部內容包括宏程序都被清除 復位 當復位時 局部變量和 100 到 199 的公共變量被清除為空值 設定 CLV 和 CCV 參數 6001 的第 7 位和第 6 位 它們可以不被清除 系統 變量 1000 到 1133 不被清除 復位操作清除任何用戶宏程序和子程序的調用狀態及 DO 狀態并返回 到 主程序 程序再起動的顯示 和 M98 一樣 子程序調用使用的 M T 代碼不 顯示 進給暫停 在宏程序語句執行期間 進給暫停有效時 宏語句執行之 后機床停止 當復位或出現報警時 機床也停止 中可以使用的常數值 0 0000001 到 99999999 99999999 到 0 0000001 有效數值是 8 位 十進制 如果超過這個范圍 出現 P S 報警 No 003 外部輸出指令 除了標準的用戶宏指令外 還可用下面的宏程序指令 它們被稱作外 部輸出指令 BPRNT DPRNT POPEN PCLOS 通過閱讀機 穿孔機接口 用這些指令輸出變量值和字符 說明 按下列順序指定這些指令 打開指令 POPEN 在指定數據輸出命令之前 指定該指令 以建立與外部輸入 輸入設備 的鏈接 數據輸出指令 BPRNT 或 DPRNT 指定需要的輸出數據 關閉指令 PCLOS 當全部數據輸出指令已經完成時 指定 PCLOS 以解除與外部輸入 輸 出 設備的鏈接 打開指令 POPEN POPEN POPEN 建立與外部輸入 輸出設備的鏈接 必須在數據輸出指令之前 指 定 根據該指令 CNC 輸出 DC2 控制代碼 數據輸出指令 BPRNT BPRNT 指令以二進制輸出字符和變量值 指定的字符根據輸出時的設定數據 ISO 轉換成代碼 可指定的字符如下 字母 A 到 Z 數字 特殊字符 等 星號 用空格輸出 所有變量都帶小數點存儲 指定一個變量時 變量后要用括號 指定小數的有效位數 變量值處理成為 2 個字 32 位 數據 包括小數位 輸出為二進制數據 從最高字節開始輸出 當指定的數據輸出時 根據設定代碼 ISO 輸出 EOB 代碼 空變量認為是 0 數據輸出指令 DPRNT DPRNT 指令 根據 SETTING ISO 的代碼設定 以十進制輸出字 符和 變量值 對 DPRNT 指令的說明 請見對 BPRNT 指令說明的 和 項 當輸出變量時 要指定 和后面的變量號 然后 在括號中指定 整數部分中的位數和小數點后的位數 數據從高位輸出 每位數都按相應的代碼輸出 代碼由 ISO 設定 小數點也按 ISO 設定的代碼輸出 每個變量必須是最多 8 位數組成的數字值 當高位數是零時 如果 PRT 參數 6001 的 1 位 是 1 這些零不輸出 如果參數 PRT 是 0 每當遇到 0 時輸出空格代碼 當小數的有效位數不是零時 小數部分總是輸出 如果小數的 有效位數是零 則不輸出小數點 當 PRT 參數 6001 的 1 位 是 0 時 輸出空格代替 號表示正數 如果參數 PRT 是 1 不輸出代碼 關閉指令 PCLOS PCLOS PCLOS 指令解除與外部輸入 輸出設備的鏈接 當所有數據輸出指令 結 束時 指定該指令 根據該指令 CNC 輸出 DC4 控制代碼 要求的設定 指定設定 SETTING 數據中的通道 I O 通道 根 據這些數據 指定閱 讀機 穿孔機接口的數據 例如 波特率 I O 通道 0 參數 No 101 No 102 和 No 103 I O 通道 1 參數 No 111 No 112 和 No 113 I O 通道 2 參數 No 112 No 122 和 No 123 輸出裝置不要指定 FANUC 磁帶盒或軟盤盒 當指定 DPRNT 指令輸出數據時 用參數 PRT 參數 6001 的 1 位 為 1 或 0 指定是否輸出數據的前零 數據行結束時輸出 LF 或 LF CF 用參數 6001 的第 4 位 CRO 設 定 注 1 不必總是在一起指定打開指令 POPEN 數據輸出指令 BPRNT DPRNT 以及關閉指令 PCLOS 一旦在程序的開 頭指定了打開指令后 除非指定了關閉指令 不需要再次指 令打開指令 2 必須成對指定打開指令和關閉指令 在程序的末尾指定關閉 指令 但是 如果沒有指定打開指令 就不必指定關閉指令 3 當數據輸出指令正在執行時 若執行復位操作 輸出停止并 且后面的數據被清除 因此 當復位操作是由代碼執行 例 如 執行數據輸出程序的結束代碼 M30 時 在程序的結束部 分應指定關閉指令 以確保全部數據輸出后才執行 M30 處理 4 在括號中的縮寫宏程序字保持不變 但是 當括號中的字符 被分開并分幾次輸入時 第 2 和以后的縮寫被轉換并輸入 5 可以在括號 中指定 注意 當括號 中的字符被分開 并分幾次輸入時 在第 2 和以后的輸入中被忽略 中斷型用戶宏程序 當程序正在執行時 來自機床的中斷輸入信號 uint 可以調用另一 個程序 該功能稱為中斷型用戶宏程序功能 以下面的格式指定中斷 指令 M96 P0000 用戶宏程序中斷有效 M97 用戶宏程序中斷無效 說明 中斷型用戶宏程序功能允許在程序執行期間在任一程序段調用另一個 程序 這就可使程序根據隨時變化的條件實時地運行 1 當檢測到刀具的異常狀態時 用外部信號啟動異常過程的處 理 2 加工運行的順序由另一個加工操作中斷而不取消現在的運行 3 以固定的間隔 讀取與現在加工有關的信息 以上所敘為中斷型用戶宏程序功能中的適應控制應用 當在程序中指定 M96 P 時 輸入中斷信號 UINT 可中斷之后 的 程序 轉而執行由 P 指令的程序 注意 在 M97 指定后 中斷信號 UINT 在圖 15 11 中用 標記 的輸入被 忽略 并且 在中斷程序執行期間 不得輸入中斷信號 指定方法說明 說明 中斷條件 用戶宏程序中斷只能在程序執行期間有效 在下列條件下使用 存儲器運行或 MDI 運行時 STL 啟動燈 亮時 目前不處理用戶宏中斷時 指定 一般情況下 指定 M96 使中斷信號 UINT 有效 可以執行 用戶宏程 序中斷功能 M97 使信號無效 一旦指定 M96 輸入中斷信號 UINT 使用戶宏程序中斷開始 直到 指 定 M97 或 NC 復位后 中斷型宏程序功能取消 在指定 M97 或 NC 復位 以后 即使輸入中斷信號 UINT 用戶宏程序中斷也不執行 中斷 信 號被忽略直到指定另一個 M96 指定 M96 后 中斷信號 UINT 生效 在 M97 方式中 即使輸入信 號 也被忽略 當在 M97 方式中斷信號輸入并保持接通直到 M96 指定時 用狀態觸發形式時 立即執行宏程序中斷 當使用邊沿觸發形式時 即使指定 M96 宏程序中斷也不執行 注 狀態觸發和邊沿觸發形式 見 II 15 11 2 用戶宏程序中斷信號 功能的詳細說明 說明 子程序型中斷和宏程序型中斷 有兩種形式的用戶宏程序中斷 子程序型中斷和宏程序型中斷 使用 的中斷類型由 MSB 參數 6003 的 5 位 選擇 a 子程序型中斷 中斷程序作為子程序調用 這意味著在中斷前后局部變量的級別保持 不變 中斷不包含在子程序調用的嵌套級中 b 宏程序型中斷 中斷程序作為宏程序調用 這意味著在中斷前后局部變量的級別要改 變 中斷不包含在宏程序調用的嵌套級中 當在中斷程序內執行子程 序調用或用戶宏程序調用時 這個調用包含在子程序調用或宏程序調 用的嵌套級中 即使用戶宏程序中斷是宏程序型中斷時 自變量也不 能從現在程序傳遞 用戶宏程序中斷控制的 M 代碼 在一般情況下 用戶宏程序中斷由 M96 和 M97 控制 但是 這些代 碼 可能已被某些機床制造廠用于其它用途 例如 M 功能或宏程序 M 代碼 調用 由于這個原因 可用 MPR 參數 6003 的 4 位 設定用戶宏 程序 中斷控制的 M 代碼 當設定該參數指定用 M 代碼調用中斷型宏程序時 應將 M 代碼設在 參 數 6033 和 6034 中 在參數 6033 中設定使用戶宏程序中斷有效的 M 代碼 而在參數 6034 中設定使用戶宏程序中斷無效的 M 代碼 當指定不用參數設定的 M 代碼時 M96 和 M97 用作中斷型用戶宏程 序控 制的 M 代碼 而不管參數 6033 和 6034 的設定 用作用戶宏程序中斷控制的 M 代碼被內部處理 它們不輸出到外部裝 置 但是 從程序的兼容性考慮 不希望使用 M96 和 M97 以外的 M 代 碼控制用戶宏程序中斷 用戶宏程序中斷和 NC 語句 當執行用戶宏程序中斷時 用戶有時希望 中斷正在執行的 NC 語句 或 者希望執行完當前的程序段后再執行中斷 這時 可用參數 MIN 參 數 6003 的 2 位 選擇是在程序段的中間執行中斷 還是等到程序段結 束 后再執行中斷 型 在程序段中 執行中斷 當中斷信號 UINT 輸入時 任何正在執行的移 動或暫停都被 立即停止 轉而執行中斷程序 如果在中斷程序中有 NC 語句 在中斷程序段中的指令被放棄 并 執行中斷程序中的 NC 語句 當控制返回到被中斷的程序時 程 序從被中斷的程序段之后的下個程序段重新開始 如果在中斷程序中沒有 NC 語句 控制由 M99 返回到中斷程 序 然后 程序從被中斷的程序段中的指令重新開始 型 程序段結 束后執行中斷 如果正在執行的程序段不是由幾個循環動作組 成的程序段 例如 鉆孔固定循環和自動返回參考點 G28 中斷的執行過程如下 當中斷信號 UINT 輸入時 在中斷程序中的宏程序語句立即執 行 除非在中斷程序中遇到 NC 語句 此時直到當前的程序段執行 結束后 才執行中斷程序中的 NC 語句 如果正在執行的程序段是由幾個循環動作組成的程序段 中斷 執 行如下 當循環運行中的最后的移動開始時 執行中斷程序中的宏程序語 句 除非遇到 NC 語句 此時在全部循環動作完成之后執行 NC 語 句 用戶宏程序中斷信號 的有效和無效條件 在中斷型用戶宏程序的 M96 程序段執行之后 中 斷信號有效 當 M97 的程序段開始執行時 該信號無效 當中斷程序正在執行時 中斷信號無效 當控制從中斷程序返回后 主程序中緊接被中斷的程序段開始執行時 該信號有效 在 I 型中斷 中 如果中斷程序只包含宏語句 則在控制從中斷返回以后 中斷程 序段開始執行時 該中斷信號有效 包含循環動作的程序段執 行期間的用戶宏程序中斷 I 型 即使循環動作在進行中 移動也被中斷 執行中斷程序 如果中 斷程 序不包含 NC 語句 在控制返回到被中斷的程序之后 循環動作重新 開 始 如果有 NC 語句 則放棄中斷循環中的剩余動作 而執行下個程 序 段 II 型 當循環動作的最后的移動開始時 執行中斷程序中的宏語句 除 非遇 到 NC 語句 此時在循環動作完成后 執行 NC 語句 用戶宏程序中斷信號 UINT 的輸入有兩種方式 狀態觸發方式和邊 沿 觸發方式 使用狀態觸發方式時 當它接通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年小微企業創業扶持資金申請申報指南與政策解讀報告
- 2025年生物制藥資金申請報告
- 公司章程及經營管理制度
- lng運輸救援管理制度
- 家具公司無合同管理制度
- 東莞大朗藥品店管理制度
- mdr感染手術管理制度
- 公司精細化財務管理制度
- 公司檔案室安全管理制度
- 監理部上墻安全管理制度
- 學校操場塑膠跑道改造方案
- 理療免責協議書范本
- 江蘇省南京市(2024年-2025年小學五年級語文)統編版質量測試(下學期)試卷及答案
- 60萬噸年磷酸二銨操作手冊
- 滅鼠行業營銷策略方案
- 《六國論》理解性默寫
- JJF1069-2012法定計量檢定機構考核規范
- 心臟瓣膜病患者的護理
- 2023-2024學年北京市西城區高一下學期期末考試政治試題(解析版)
- 低壓電纜試驗報告
- DB 34 2710-2016巢湖流域城鎮污水處理廠和工業行業
評論
0/150
提交評論