- 締切済み
マクロでシーケンス番号を指定して呼び出す方法
- マクロを使ってシーケンス番号を指定して呼び出す方法を教えてください。
- シーケンス番号を指定してマクロを呼び出す方法について詳しく教えてください。
- マクロで特定のシーケンス番号を指定して呼び出す方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
MCプログラミングの流れ 工具設定→作業条件の設定→動作→ ↑ ↓ ← ← ← 作業は当然工具単位で行われます。 たとえば使用工具を T1、T2、T3 T1: 20φ荒エンドミル T2: 20φ仕上げエンドミル T3: 面取りエンドミル とすると T1 の切削条件 G100A160Z-S-F-Q-K- 動作は N160 G160X-Y-R-D- G100A150Z-S-F-Q-K- N150 G150X-Y-I-J-A- T2 の切削条件 G100A160Z-S-F-Q-K- 動作は N160 G160X-Y-R-D- G100A150Z-S-F-Q-K- N150 G150X-Y-I-J-A- T3 の切削条件 G100A160Z-S-F-Q-K- 動作は N160 G160X-Y-R-D- G100A150Z-S-F-Q-K- N150 G150X-Y-I-J-A- というプログラム形式となります。 G100 というプログラムは、ローカル変数をコモン変数に置き換えるためのマクロプログラムです。 置き換えた理由は、条件データの保持と同一データの活用(書き換えられるまで使う)です。 G100A160Z-S-F-Q-K-とG100A150Z-S-F-Q-K-でS-F-Q-K-が同じならばG100A150のみでOKです。 G160、G150 は動きのマクロプログラムです。 工具交換と条件はメインプログラムに、動きはサブプログラムに、連絡はアドレス(A)で発信、(N)で受信となります。 このような構造にするとサブのコントロールを常にメインで行えます。 具体化してみます O10(MAIN) O11(O10 SUB) #120=121 ・ ・ GOTO#501 'G100にてAの値を#501に #121=1 N160 #122=2 G160X100Y100R50D60 #123=3 G160X200 'コモン変換内蔵 #124=0 GOTO99 #125=0 N150 ・ G150X150Y0I50J-10A200 WHILE[#[#120]NE0]DO1 GOTO99 ・ ・ 上記データの順番で工具交換 ・ ・ ・ #120=#120+1 N99 M99 GOTO#[#120-1] ・ N1 G100A160Z0S800F300Q30K-60 M98P11 G100A150 M98P11 GOTO1200 N2 G100A160Z0S600F200Q50K-51 M98P11 G100A150 M98P11 GOTO1200 N3 G100A160Z0S2500F600Q0.5K-0.5 M98P11 G100A150 M98P11 GOTO1200 ・ N1200 M1 END1 ・ M30 ・の部分は当然色々な要素が入りますが、レイアウト的にはこのような感じです。 非常にスッキリしてると思いませんか!! 私はGコードマクロで説明しましたが、その部分は当然 G65P**** です。 コード(マクロ、システム)は FANUC、TOSNUC、OSP の三系列、メルダス等々はFANUC系ですね。 (どちらが本家か分家か分かりませんけど) マクロは便利で安全で楽しいですよ。 プログラミング時間は 1/10 くらい、もっとかな!! というより普通にプログラムするのは気が遠くなります。 興味を持って頑張ってください。
もう少し具体的に書いて頂ければ、回答しやすいと思います。 サブプログラムに工程別動作プログラムを作成し、メインプログラムで呼び出すようにしています。 メインプログラム O1 G65 P9000 A... ;A...にシーケンス番号 G65 P9000 A... ;A...にシーケンス番号 G65 P9000 A...をいくつでも追加出来ます。 M30 サブプログラム O9000 GOTO #1 M99 N1 動作プログラム1 M99 N2 動作プログラム2 M99 が一例です。