このQ&Aは役に立ちましたか?
モーダル情報の読み取りについて困っています
2023/10/15 20:33
- OKKVM4IIIに移行した装置で、シーケンス番号のモーダル情報を読み取る際に問題が発生しています。
- マクロプログラムを移植した際に、システム変数#4114を使用してモーダル情報を変数#1に入れたいのですが、うまくいっていません。
- 取説を確認した限り、OKKのVM4IIIと三菱のCNC700シリーズの仕様はほぼ同じと思われますが、原因がわかりません。
モーダル情報の読み取り(シーケンス番号)
2008/12/31 14:57
カスタムマクロのシステム変数について困っています。
最近OKKのM/Cを購入しまして、それに今までマキノのM/Cで使用していたマクロプログラムを移植しようとしているのですが、シーケンス番号のモーダル情報の読み取りにてつまずいています。
1(MAIN)
N11G65P10
---
---
10(SUB MACRO)
#1=#4114
--
--
上のプログラムのようにメイン側にてマクロを呼び出し、マクロ側にてシステム変数#4114を使用して、シーケンス番号のモーダル情報(この場合"11")を変数#1に入れたいのですが、入ってくれません。マキノM/Cではこの方法でうまくいっていたのですが、
因みにマキノではファナックで数種のシステム(6M~15M)で使用していました。
移植したい装置は、、
装置名 :OKK VM4III
システム:(三菱)CNC700シリーズ
となっています。
取説を見た限りでは同様のシステム変数もあり、ほぼファナックと同じ仕様になっていて、その他のマクロについてはほとんどそのまま使用できましたが、この部分だけは出来ませんでした。何が原因でしょうか?
回答 (2件中 1~2件目)
こんにちは。
FANUCとMELDASでは、
O番号がL番号となり、
G65P10がG65L10となります。
また、M98がG22、M99がG23となります。
パラメータでFANUC仕様に切り替えられますが、
完全ではありません。
この場合、MELDAS仕様で、サブ10番に行っていないように思うのですが、
このあたりはいかがでしょうか?
おもしろいところでは、サブ呼び出しで
G22L10H1(サブ10番のシーケンス番号1番へジャンプ)
なんてことも出来ます。
G23H1(リターン シーケンス番号1番へ)は、
M99P1でFANUCでもできますがね。
こんにちは。
#1=#4114
の部分が、マクロの先行処理が原因でとばされているのであれば、
O10
G04
#1=#4114
G04
とすることで先行処理が止まるかも。
もしくは、
O10
G04
#1=#4114
G04
という具合に、空白行を前後に入れることで先行処理を止められるかも。
古い制御ではG04で止まるのですがねぇ。
こんにちは。
ならば、
メイン側で、
N11G65P10
を
N11
#101=#4114
G65P10
とし、
サブ側で、
#101を見に行けばよいと思います。
変数番号100番以降を使うとよいと思います。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
メルダスは触った事がないので的確には答えられませんが、
変数番号が違っているのでなければ、
もしかして、サブプログラム内でのシーケンス番号の扱いが
ファナックとメルダスとで違っているという事はないでしょうか.
件のサブプログラム冒頭で、OKK機の#4114が
実際に幾つになっているのか知りませんが、
例えば、マクロ呼び出しが実行された時点で、この変数の内容が
一旦リセットされている可能性というのがあると思います.
もしくは、G65が一般のGコードではなく
マクロ指令として機能する様な場合には、
マクロが前のブロックの完了を待たずに先行して計算して行くために、
呼び出し先でこのシステム変数を参照した時点では
実際にはまだ“N11”というコードが実行されていない、とか.
お礼
2009/01/01 21:58
回答ありがとうございます。
なるほど、確かにその点は気になるところですね、
質問には書きませんでしたが、取説にモーダル情報の読み取りが「先読み:#4114」と「実行:#4314」の2種類あり、一応その両方とも試してみたんですが駄目でした。
再度、行を変えるなどして試してみたいと思います
N11
G65P10
のような感じで、
ただ、この方法だと他の機種と同じメインプログラムが使用できないんで、意味がないんですが、、
今日実機にて試した見ましたが、駄目でした。
アキオさんのいわれる通りで、サブに移行した時点でN(シーケンス番号)の情報が下位レベルまで引き継いでないようです。
お礼
2009/01/01 21:48
回答ありがとうございます。自分もワイヤの経験があり、三菱のシステムと聞いたときはそうだと思ったんですが、OKKでのシステムでは取説でもほぼファナックの仕様になっていまして、その他のマクロ(自作)はほぼ何も手をつけずにそのまま移植できたんですが、今回のシーケンス番号に関する部分だけはうまく機能してくれませんでした。
なるほど、確かにその方法も有効かもしれません
早速試してみたいと思います。
これでうまくいけば、メイン側は変更しなくて済むので良いですね、
ありがとうございます。
今日実機にて試した見ましたが、駄目でした。というよりサブに移行した時点でN(シーケンス番号)の情報が下位レベルまで引き継いでないようで、
サブ側にて、
O10(SUB MACRO)
N10
#1=#4114
のように、すると上手く行きました。
このことから、システム変数自体はちゃんと動作しているようですが、仕様によりメイン側のシーケンス番号のモーダル情報はサブでは引き継がないので、読み込めないようです。
ファナックでは上手くいっていたのですが、、
残念ですが、三菱の仕様としてあきらめるしかないようです。
いろいろとありがとうございました。