円弧Gコード動作の送り速度最適化
以前、このコラムでは定常輪郭速度を目標とした際の円弧加工に必要な送り速度に関する問題——具体的には、除去材料が加工輪郭を中心にバランスしている内側円弧や外側円弧(仕上げフライス、ニアネットシェイプ等)について議論しました。フライスカッタの中心線パスと工作面パスのサイズ差により、外側円弧ではリニア動作送り速度を増やし、内側円弧では減らすことで定常輪郭速度を達成する必要があります。
先月、円弧動作の必要修正送り速度を決定する方法を実演しました。しかし関連計算を手動で行うのは面倒です——特にこのテクニックを定期的に、または多様な工作面半径サイズで使用する場合。カッタ半径補正を使用し、プログラム座標が工作面パスを反映している限り、オペレーターはフライスカッタの半径サイズをカッタ半径補正オフセットレジスタに入力できます。
右勝手フライスカッタ使用時、カッタ半径補正の状態(G41=工具左側、G42=工具右側)が、与えられた円弧コマンドが内側半径加工か外側半径加工かを決定します。工具が加工面の左側にある(G41)時のG02(時計回り円弧)は外側円弧。G03(反時計回り)は内側円弧。工具が右側(G42)なら逆になります。FANUCカスタムマクロでは、プログラムからカッタ半径値をオフセットレジスタから、カッタ半径補正の現在状態(G41またはG42)にアクセスできます。
調整済み送り速度で円弧動作を行うユーザー定義Gコードカスタムマクロを2つ作成しました。G102(時計回り)とG103(反時計回り)と名付け、G02/G03と同様にプログラミングしました(モーダルではありません)。各々は、工作面半径(G102/G103コマンドのRワードで指定)とカッタ中心線パス半径(オフセットレジスタのカッタ半径と工作面半径から計算)を比較し、以前示した方法で修正送り速度を計算し、G02/G03で修正送り速度を使って円弧コマンドを実行します。
ユーザー定義Gコードプログラムとは?
以下が2つのユーザー定義Gコードプログラムです:
O9010 (G102, 時計回り円弧プログラム) #1=#4109 (現在のFワードを保持) IF[#9 NE #0] THEN #1=#9 (新しい送り速度指定があれば更新) IF[#9 EQ #0] THEN #9=#1 (新指定なければ現在送りを保持) #2=[#_OFSDG[#4107]] (オフセット値取得) IF[#4007 EQ 41] GOTO5 (G41条件:外側円弧) IF[#4007 EQ 42] GOTO10 (G42条件:内側円弧) #3000=100 (CRC COMP MUST BE USED) N5 (外側) #3=#9*[#18+#2]/#18 (外側送り速度) GOTO75 N10 (内側) #3=#9*[#18-#2]/#18 (内側送り速度) N75 G02 X#24 Y#25 R#18 F#3 F#1 M99 O9011 (G103, 反時計回り円弧プログラム) #1=#4109 IF[#9 NE #0] THEN #1=#9 IF[#9 EQ #0] THEN #9=#1 #2=[#_OFSDG[#4107]] IF[#4007 EQ 41] GOTO5 IF[#4007 EQ 42] GOTO10 #3000=100 (CRC COMP MUST BE USED) N5 (内側円弧) #3=#9*[#18-#2]/#18 (外側送り速度) GOTO75 N10 (外側円弧) #3=#9*[#2+#18]/#18 (内側送り速度) N75 G03 X#24 Y#25 R#18 F#3 F#1 M99
これらをユーザー定義Gコードとして動作させるには、FANUCパラメータ2つを変更します(現在のFANUC CNCでは、例ではパラメータ6051と6052)。パラメータ6051を102、6052を103に設定すると、CNCはG102を見た時にO9010を、G103を見た時にO9011を実行します。
テスト用サンプルプログラム(カスタムマクロプログラムでもあるため関連変数を容易に変更可能)。実行前に、カッタ半径補正ジオメトリオフセット(この例ではオフセット1のDレジスタ)にフライスカッタの半径を設定しておく必要があります。
ちなみに、カッタ半径補正オフセットレジスタ値をゼロに設定すると、機械は工作面パスを使用します。サイクルタイムはオフセットにカッタ半径値を入れた時とほぼ同じになります。距離が動作長さに関係するのはカッタ半径補正確立コマンド時のみ。これは定常輪郭速度が正しく機能していることを確認します。
O0041 (G41 / G102, 外側円弧) #100=0.25 (コーナー半径) #101=10.0 (送り速度) #102=1.5 (X長さ) #103=1.5 (Y長さ) T01 M06 G40 G00 X-1.5 Y-.5 G43 H01 Z-0.5 G01 G41 D01 X0 F10.0 G01 Y[#103-#100] F#101 G102 X#100 Y#103 R#100 G01 X[#102-#100] G102 X#102 Y[#103-#100] R#100 G01 Y#100 G102 X[#102-#100] Y0 R#100 G01 X#100 G102 X0 Y#100 R#100 G00 G40 X-1.5 Y-0.8 M30
G102はG02と同じようにX、Y、Rでプログラミングされます。ローカル変数#24(X)、#25(Y)、#18(R)がそれに応じて設定されます。O9010を呼び出し、以下を実行:
- ローカル変数#1を現在アクティブな送り速度に設定(円弧動作後にリセットするため)
- G102コマンドに送り速度指定があれば#1を更新
- (G102に含まれる場合)送り速度を保持
- 現在のカッタ半径補正オフセット値をローカル変数#2に格納
- G41条件ならN5から実行(外側円弧)
- G42条件ならN10から実行(内側円弧)
- カッタ半径補正が確立されていなければアラーム発生
- 該当する場合外側円弧の送り速度計算
- 該当する場合内側円弧の送り速度計算
- 修正送り速度でG02円弧コマンド実行
- 円弧動作前の送り速度にリセット
ほぼ同一のテクニックでO9011も使用します。
産業機器
- Raspberry Pi GPIOマスター:PIRモーションセンサーをB+/Model 2でインターフェース
- HC-SR501 PIRモーションセンサーをRaspberry Piで接続・調整・プログラミングする方法
- フォトレジスタとArduinoで作る高精度心拍数モニター
- SIM800L GPRSモジュールをArduinoでATコマンド制御:統合ガイド
- Arduino MCUで制御するAndroidモーション検知カメラ
- Basil Streetピザ自販機、Arcus Servo Motionと提携し全米展開を加速
- 送り速度 vs 切削速度:CNC加工の重要パラメータをマスターする
- フォーチュンインターナショナルVturn-40:高送り重切削対応の強力旋盤
- リニアモーションテクノロジー:オートメーションのための精密ソリューション
- イネオス・スチロールションとポリスティバート、ポリスチレンの循環型経済推進で提携
- ヘックスポルのDryflex Circular TPE発表:自動車内装向けサステナブルソリューション