Gコードを使用した円運動コマンドの送り速度の調整
以前、このコラムでは、一定の輪郭速度を目標とする場合に円運動を行うために必要な送り速度に関連する問題について説明しました。具体的には、除去された材料が加工中の輪郭の周りでバランスが取れている場合の内部アークまたは外部アーク(仕上げフライス盤およびニアネット-たとえば、形状)。フライスの中心線パスと作業面パスのサイズの違いにより、一定の輪郭速度を実現するには、外部の円運動では直線運動の送り速度を上げ、内部の円運動では直線運動の送り速度を下げる必要があります。
先月、円運動に必要な修正送り速度を決定する方法を示しました。ただし、関連する計算を手動で行うのは面倒です。特に、この手法を定期的に使用する場合や、さまざまな作業面の半径サイズで使用する場合はなおさらです。カッター半径補正を使用し、プログラムされた座標が作業面のパスを反映している限り、オペレーターはフライスカッターの半径サイズをカッター半径補正オフセットレジスタに入力できます。
右側のフライスカッターを使用する場合、カッター半径補正の状態(G41-ツール左、G42-ツール右)は、特定の円形コマンドが内半径または外半径のどちらを加工しているかを判断するのに役立ちます。カッターが加工面(G41)の左側にある場合、G02(時計回りの円弧)は外部円弧になります。 G03(反時計回り)はすべて内部アークになります。カッターが加工面(G42)の右側にある場合は、その逆になります。 FANUCカスタムマクロを使用すると、プログラムはオフセットレジスタからカッター半径値にアクセスし、カッター半径補正の現在の状態(G41またはG42)にアクセスできます。
調整された送り速度で円運動を行う2つのユーザー定義のGコードカスタムマクロを作成し、G102(時計回り)とG103(反時計回り)という名前を付けました。 G02およびG03と同じ方法でプログラムしました(ただし、モーダルではありません)。それぞれが、ワークサーフェス半径(G102またはG103コマンドのRワードで指定)をカッターの中心線パス半径(オフセットレジスタからのカッター半径とワークサーフェス半径を使用して計算)と比較します。次に、前に示した方法に基づいて修正された送り速度を計算し、修正された送り速度でG02とG03を使用して循環コマンドを作成します。
ユーザー定義のGコードプログラムとは何ですか?
2つのユーザー定義のGコードプログラムは次のとおりです。
- O9010(G102、時計回りのアークプログラム)
- #1 =#4109(現在のFワードを保持)
- IF [#9NE#0] THEN#1 =#9(新しい送り速度かどうかをテスト)
- IF [#9EQ#0] THEN#9 =#1(新しい送り速度がない場合は、現在の送り速度を保持します)
- #2 =[#_ OFSDG [#4107]](アクセスオフセット値)
- IF [#4007EQ41] GOTO5(G41状態、外部アーク)
- IF [#4007EQ42] GOTO10(G42状態、内部アーク)
- #3000 =100(CRC COMPを使用する必要があります)
- N5(外部)
- #3 =#9 * [#18 +#2] /#18(外部送り速度)
- GOTO75
- N10(内部)
- #3 =#9 * [#18-#2] /#18(内部送り速度)
- N75G02X#24Y#25R#18F#3
- F#1
- M99
- O9011(G103、反時計回りのアークプログラム)
- #1 =#4109(現在のFワードを保持)
- IF [#9NE#0] THEN#1 =#9
- IF [#9EQ#0] THEN#9 =#1
- #2 =[#_ OFSDG [#4107]]
- IF [#4007EQ41] GOTO5
- IF [#4007EQ42] GOTO10
- #3000 =100(CRC COMPを使用する必要があります)
- N5(内部アーク)
- #3 =#9 * [#18-#2] /#18(外部送り速度)
- GOTO75
- N10(外部アーク)
- #3 =#9 * [#2 +#18] /#18(内部送り速度)
- N75G03X#24Y#25R#18F#3
- F#1
- M99
これらのプログラムをユーザー定義のGコードとして機能させるには、2つのFANUCパラメーターを変更します(現在の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の長さ)
- T01M06
- G40G00X-1.5Y-.5
- G43H01Z-0.5
- G01G41D01X0F10.0
- G01Y [#103-#100] F#101
- G102X#100Y#103R#100
- G01X [#102-#100]
- G102X#102Y [#103-#100] R#100
- G01Y#100
- G102X [#102-#100] Y0R#100
- G01X#100
- G102X0Y#100R#100
- G00G40X-1.5Y-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では、ほぼ同じ手法が使用されています。
産業機器
- PIRモーションセンサーを備えたRaspberryPi GPIO:最高のチュートリアル
- HC-SR501PIRモーションセンサーとRaspberryPiのインターフェース
- IneosStyrolutionがPolystyvertと提携してPSのサーキュラーエコノミーを推進
- 自動車内装用のリサイクルコンテンツを使用したTPE
- フォトレジスターによる心拍数の検出
- ArduinoATコマンドを備えたSIM800LGPRSモジュール
- Arduino / MCUを搭載したAndroidモーションディテクターカメラ
- ピザ販売ブランドのバジルストリートがArcusServoMotionと提携
- 旋盤は重切削用の高い送り速度を特長としています
- 線形運動技術
- 送り速度と切削速度の違い:違いを理解する