自動運転中の各軸位置、速度の独立制御は可能?
- 自動運転中に各軸の位置と速度を独立して制御する方法を知りたいです。
- NC設備の開発が2度目で、各軸やMコードでの非同期制御がわかりません。
- FANUC機向けに近い情報を教えていただければ助かります。
- 締切済み
自動運転中の各軸位置、速度の独立制御は可能?
初めて質問します。よろしくお願いします。 主に、各社PLCおよびWindowsソフトの開発などを行っているものですが、 NC設備の開発は今回が2度目で、廻りに質問できる人物がいません。 各軸および、Mコードによる出力の非同期制御?をおこないたのですが、 NC言語での記述がさっぱりわかりません。 FANUC機向け(FANUCSeries16i/18i/21i-MODELB)に近い情報を頂ければ なんとかなりそうです。 <やりたいこと> ・X軸:線形軸)繰り返し往復で位置決め ・Y軸:線形軸)マクロ変数 数個により、随時位置決め (位置決め動作中に次の位置決めが行うのが理想) ・Z軸:線形軸)マクロ変数により、随時速度変更を行いたい(方向反転も頻繁) ・B軸:回転軸)やりたい内容は前行のZ軸と同じ ・Mコード処理 下記の処理を各軸の位置決め完了まで行わずに 位置決め処理起動と位置、速度変更指令後 処理をグルグル廻して次のブロックへ どんどん移行したいのです(できるだけ滑らかに) <処理概略> 自動開始 ↓←←←←←(1) X軸処理 ↓ Y軸処理 ↓ Z軸処理 ↓ B軸処理 ↓ 周辺処理(Mコードにて) ↓ 終了条件?→no→(1)へ ↓ yes ↓ 完了 こういった処理はNCでは不可能でしょうか? またできたとしても、ハンドル割り込み等が必要なのでしょうか? ラダー/カスタムマクロも作成可能な状況です。 ヒントになる情報だけでも助かりますので宜しくお願いします。
- その他(開発・設計)
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
各軸独立制御で軸間のインターロックをあまり考慮しなくていいなら、1軸NCx4台で別個にプログラムを作り起動するということになるのでは。 FANUCではPOWER MATEという分類になるでしょうか。 NCとして16.18レベルのものを使う意図がわかりません。このレベルのものは加工機(旋盤、マシニングセンター)としての機能が主ですから、搬送のような用途に使うなら不適でしょう。加工機+搬送等と考えると、付加軸として制御することもできるでしょう。 ピッチが狭くてカクカクということはサーボ調整、容量選定を適切におこなえばありえないと思いますよ。
各軸起動後すぐに次の動作となると、全軸同時動作、ということではだめなのでしょうか。 処理概略からいけば NC文で O1; N1X___Y___Z____B____; Mxx; IF[***EQ**]GOTO1; M30; とかけばいいけど。 NCが同時駆動可能であることが条件ですが、16.18.21なら大丈夫でしょう。 またこれだと各軸1回の動作をくりかえすこになります。そうではなくて、各軸独立して動作をくりかえすということをやりたいのでしょうか、これは難しいと思うけど。
お礼
NC分の参考付きでご返答頂き有難うございます。 大変参考になりました。 やりたいことはご指摘通りで、出来れば各軸独立して動作を繰り返したかったのです。 やはり、擬似的にそれを実現しようとした場合、同時駆動でピッチ(移動距離を)短くして、マクロ変数などで位置および速度を変更し、繰り返すことが必要なようですね。 でもそれだとピッチによっては、狭いと動作がカクカクしそうで、少し心配です。広いとリアルタイム的な駆動()に程遠くなりそうですね。 純粋にNCの機能で実現できないものかなぁ?と思っていましたが、やりたい処理内容がNCに向いていないようですね。
関連するQ&A
- Z軸の自動心出し
マシニングセンタを使用した部品加工を行っております。 現在X軸、Y軸の自動心出しを行っておりますが、 Z軸の心出しも自動で行わせ、G54に入力されるように したいと思っております。 使用しているマシニングセンタは森精機製のNVD4000DCG 心出しに使用しているセンサは大昭和精機製ニューゼロセンサの BT40-ZS20-160です。 上記マシニングの取扱説明書に「自動段差測定」の項目があり, G322V-10.0I0J0I-40.0J0S1.; で基準面のティーティングを行い、 G322V-10.0I0J0K25.0I80.0J0; で測定を行う。 というような事が記載されております。 ただ、「注」として 測定結果はコモン変数#135に保存されます。 とあります。 この測定結果(#135)を、ワークオフセットの画面のG54のZ座標に 直接入力させることは可能なのでしょうか? どなたかご存知のかた、なにとぞご教示下さい。 宜しくお願いいたします。
- ベストアンサー
- マシニングセンター
- Y軸原点復帰位置が変わる
弊社NCフライスの機械原点復帰に関する質問です。 このNCフライスは電源を入れると、まず3軸(X,Y,Z)をジョグ送りで機械原点復帰させて使用するものです。 正常ならば、ドグがリミットスイッチのベベルプランジャに当たると減速し、正常な原点に到達すれば自動的に止まり確立され、同時に原点復帰ランプが灯ります。 異常時の場合はドグがリミットスイッチに当たらず且つ減速もせず、原点復帰ランプが灯り明らかに違う位置で確立されてしまいます。その位置も毎回違う位置です。こうなると毎回電源を一旦切り、再投入して祈りながら再度行うという始末です。 メーカーに連絡する前に疑わしい所を特定したいと考えています。何処を疑えばいいのでしょうか?又、対処法は? 因みに、制御装置は安川電機のモーションパック110で現在は製造中止されており、修理対応期限も過ぎております。 宜しく御願致します。
- ベストアンサー
- マシニングセンター
- Gコード=NCプログラム??
いつもお世話になっております。 CAMのメーカさんと打ち合わせをする時に「Gコードを作成する」という言葉を何回も聞きました。 Gコードというと「G00(位置決め)」、「G01(直線補間)」…のことかな、と思っていたのですが、 よくよく聞いてると、どうもその意味ではなくて、NCプログラムそのものの意味で使っているようなのです。 NCプログラム=Gコード、Mコード、Tコード、XYZA…などの組み合わさったもの、と思っていたのですが、 機械加工の業界ではNCプログラムのことを「通称」Gコードと呼んでいるのでしょうか?
- ベストアンサー
- マシニングセンター
- G92座標系について
はじめまして、NC装置開発しているNCプログラム初心者です。 FANUC18iMB5を使用しています。 NCプログラム作成時のG92の使い方について教えてください。 マシンロック実行すると座標系が更新されると聞きました。 怖いのでプログラム先頭で機械座標をプログラム原点としたいのですが、下記プログラムでうまくいくのでしょうか? 皆さんはどうされているのでしょうか?教えてください。 O0001(sample); G49; G92X#5021Y#5022Z#5023A#5024B#5025;(マクロ変数で機械座標をGET) G90G0X0.Y0.Z0. ::: M02;
- ベストアンサー
- NC言語
- 位置座標からx軸となす角度(ラジアンでも可)を求める方法
簡単な2次元座標系で現在の位置が(x,y)だとします。 この点を三角関数を用いて表したときに x=m+r*cos a y=n+r*sin a となると思うんですが((m,n)は円の中心点,rは半径,aはx軸と半径のなす角とします)任意にa以外の変数に値を与えた場合,aを求めるプログラムの書き方が良く分かりません。 いいかえますと2点を結んだ直線とx軸とのなす角度を求めたいというものです。 もちろん角度ではなくラジアンでもかまいません。 どなたかご教授よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 6M のYZどれか1軸を使わない設定
ファナック 6MのマキノNCフライスです Z軸 またはY軸をNC側から無い設定にパラメータで出来るでしょうか 以前にもヒューズで質問しましたが、切れる原因はサイリスター不良とわかりました、しかしすぐには修理できないため、不良の軸を使わないXZまたはXYだけのNCに設定でならないかと考えています、ZとYは線を差し替えると入れ替えることが出来ることがわかりましたので必要な軸をつかい、 単に線を外すだけでいいのかNC側でパラメータの変更が必要なのかを教えてください パラメータ表をみると、XYZ軸の使う、使わないの設定は見つからず 4軸は元々ついていませんが、これも、使う、使わない、のような設定は見つかりませんでしたので、XYZも無いのか、公表していないのかとも思っています
- ベストアンサー
- マシニングセンター
- NCマクロでのD(工具径補正)変数の参照方法
トスナックのマクロの勉強中のものです。 NCマクロのTとHとDコードをシステム変数より参照しようとしております。 V959は主軸上のTコード値の参照 V1100はDコード値の参照 V1102はHコード値の参照 現状は T24 [V31=V959] ではV31に24が入ります。 G90G00Z100.0G43H24 [V31=V1102] でもV31に24が入ります。 D24 [V31=V1100] ではV31に24が入りません。 ただ工具径補正をかけると G90G00X20.0Y0G41D24 [V31=V1100] V31に24が入ります。 質問は D24 [V31=V1100] V31=24 というように工具径補正をかけずに、システム変数から工具径コード(24)を引きだせないでしょうか? また他の(ファナック等)NCマクロでは可能なのでしょうか? よろしくお願いします。
- ベストアンサー
- マシニングセンター
- 一行にMコードが二つだとエラーにする
ファナックの0MCという制御装置ですが、 一行にMコードはひとつだけ指令できます。 だからM3M8;と打ってしまった場合 G81G98Z-8F10 などと続いている場合Mコードは後ろのM8だけが指令され、M3は指令されないので、主軸は回らずにZ軸の動きに入ってしまいます。 このミスはドライランなどをすると確認できることですが、 安全装置として一行の間にMコードを二つ打っているプログラムの場合、 アラームなどで通知しプログラムを見直すように促すようなことを マクロ、サブプログラム、その他などで プログラム画面上では見えない形でやることは可能なのでしょうか? (見えないところで、一行でMコード二つあるかをチェックしているという。 例えば、今M6だけで、画面上では見えませんが、XY軸をバイスに当たらない位置に逃がし、原点復帰して主軸を止めて工具交換するというプログラムが働いているのですが、そういう意味です。) また可能な場合、例えばどのようなプログラムになるのでしょうか? またはオオクマの様にG01やG02G03 固定サイクルなど切削のGコードで主軸が回転していない状態では軸移動はしないとかアラームを通知するとかの考えでも 可能なのでしょうか? ものすごい難しいプログラムになるのでしょうか?
- 締切済み
- マシニングセンター
お礼
返事が遅れました。 PowerMateであれば1軸×NC4台というシステムにおいて実現可能なのですね。予備知識が増えました。 が、今回は、諸々の都合によりピッチ点を経由する補間で実現するしかありません。調整などで問題なしということで安心しました。 度々の情報提供有り難うございます。