本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:一行にMコードが二つだとエラーにする)

一行にMコードが二つだとエラーになる理由とは?

2023/10/17 14:37

このQ&Aのポイント
  • 一行にMコードが二つ指令されるとエラーになります。ファナックの0MCという制御装置では、一行にはひとつのMコードしか指令することができません。
  • したがって、M3M8;などと一行に複数のMコードを入力してしまった場合、後ろのM8のみが指令され、M3は無視されるため、主軸は回らずにZ軸の動きになってしまいます。
  • このミスはドライランなどで確認することができますが、安全装置として一行の間にMコードが二つあるプログラムの場合、アラームなどで通知し、プログラムの見直しを促すことが可能です。
※ 以下は、質問の原文です

一行にMコードが二つだとエラーにする

2009/06/24 22:54

ファナックの0MCという制御装置ですが、

一行にMコードはひとつだけ指令できます。

だからM3M8;と打ってしまった場合
G81G98Z-8F10

などと続いている場合Mコードは後ろのM8だけが指令され、M3は指令されないので、主軸は回らずにZ軸の動きに入ってしまいます。
このミスはドライランなどをすると確認できることですが、
 
安全装置として一行の間にMコードを二つ打っているプログラムの場合、
アラームなどで通知しプログラムを見直すように促すようなことを
マクロ、サブプログラム、その他などで
プログラム画面上では見えない形でやることは可能なのでしょうか?
(見えないところで、一行でMコード二つあるかをチェックしているという。
例えば、今M6だけで、画面上では見えませんが、XY軸をバイスに当たらない位置に逃がし、原点復帰して主軸を止めて工具交換するというプログラムが働いているのですが、そういう意味です。)

また可能な場合、例えばどのようなプログラムになるのでしょうか?

またはオオクマの様にG01やG02G03 固定サイクルなど切削のGコードで主軸が回転していない状態では軸移動はしないとかアラームを通知するとかの考えでも
可能なのでしょうか?

ものすごい難しいプログラムになるのでしょうか?

回答 (2件中 1~2件目)

2009/06/26 09:13
回答No.2

プログラムは機械に直接手打ちしているのですか?

PCでプログラム(手打ちも含めて)しているのであれば、PC上でチェックしてはどうでしょう?

例えば秀丸というシェアウェアのエディターソフトなら、ある文字に対して強調表示させることができます。
通常、黒で表示されているフォントに対して、M3、M98、M198などM+数字(+数字+数字)というコードを赤で表示するといった機能を自分好みに設定できます。
そちらを使えば簡単に間違いを発見でき、かつ、機械側で処理させるよりはるかに簡単だと思います。

比較的扱いやすいマクロ機能をもっていますのでM3+M8だけでなく、ほぼ自分の頭に思い描いたことはできると思いますよ。
ただ、それを実現できるかどうかはあなた次第ですけどね。

あと、単に色で確認とありますが、こちらもMコードが二つ以上並んだ時のみ、変色して強調表示させることもできます。


それと、逆にこちらがお聞きしたいのですが、ソフトメーカーにはその旨をお伝えしたのですか?
ナスカシリーズは使用していませんので何とも言えないのですが、シミュレーションであれば機械の仕様を登録しておけば、チェック可能なはずですが??
見たところ別注カスタマイズもお受けしているようですので、可能だと思いますよ。

補足

2009/06/27 03:23

ありがとうございます。
直接手打ちすることもあります。

確かにPCでみる方がはるかに簡単ですね。

ありがとうございます。

そのソフトは単に色でMコードが2つならんでいることが目で確認できるだけでしょうか? 非回転で切削に入ったらアラームとかはできますか?

ナスカビューでM3M8のプログラムを描画させてみたところ、
無回転で切削へ入ったというアラームが表示されませんでした。
非回転で切削の場合アラームをだすにチェックをしていてもです。

M3M8でも 回転していることになっているのでしょう。。

M3をはずして初めてアラームがなりました。

描画ソフトでは今どちらのMコードが有効かまでは判別できないのでしょうか


ありがとうございます。体験版なのですが、聞いてみました。
Mコード二つならんだ時に後ろの方だけ有効で認識させるとか
できないといってました。

色を表示させるというのもききましたが、出来ないといってました。

これが本当ならシェアウエアの方が優秀ですね。

別注カスタマイズならできるのでしょうね。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2009/06/25 14:23
回答No.1

全てのMコードやGコードについて、その様に処理する事は
一般的にユーザー側では不可能です.
少なくともマクロなどで対処できるレベルではなく、
できたとしても専用コードをNCに組み込まなければならず、
“NCのカスタマイズ”という話になるでしょう.

ただし、Mコードの場合は10個までなら
“Mコードによるカスタムマクロ呼び出し”機能を使って実装できます.
実用性の有無は別として、具体的には、
Mコードで呼び出されるマクロプログラム内で
アドレスMに対応するローカル変数が空でない場合に
アラームを出すコードを組む事になります.
IF[#13NE#0]THEN#3000=0(M-CODE PILED)
これは言ってしまえば実際には擬似的な処理になりますが.

補足

2009/06/25 17:59

回答ありがとうございます。

>ただし、Mコードの場合は10個までなら
>“Mコードによるカスタムマクロ呼び出し”機能を使って実装できます.

なるほど。今M6で交換位置へテーブルを退避させているのはこれでやっているわけですね。
>アドレスMに対応するローカル変数が空でない場合に
>アラームを出すコードを組む事になります.

ローカル変数が空でない状態とはどういう状態なのでしょうか?

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。