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

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

締切済み
※ ChatGPTを利用し、要約された質問です(原文:モーダル情報の読み取り(シーケンス番号))

モーダル情報の読み取りについて困っています

2023/10/15 20:33

このQ&Aのポイント
  • 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件目)

2009/01/01 21:30
回答No.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番以降を使うとよいと思います。

お礼

2009/01/01 21:48

回答ありがとうございます。自分もワイヤの経験があり、三菱のシステムと聞いたときはそうだと思ったんですが、OKKでのシステムでは取説でもほぼファナックの仕様になっていまして、その他のマクロ(自作)はほぼ何も手をつけずにそのまま移植できたんですが、今回のシーケンス番号に関する部分だけはうまく機能してくれませんでした。

なるほど、確かにその方法も有効かもしれません
早速試してみたいと思います。
これでうまくいけば、メイン側は変更しなくて済むので良いですね、
ありがとうございます。

今日実機にて試した見ましたが、駄目でした。というよりサブに移行した時点でN(シーケンス番号)の情報が下位レベルまで引き継いでないようで、
サブ側にて、

O10(SUB MACRO)
N10
#1=#4114

のように、すると上手く行きました。
このことから、システム変数自体はちゃんと動作しているようですが、仕様によりメイン側のシーケンス番号のモーダル情報はサブでは引き継がないので、読み込めないようです。
ファナックでは上手くいっていたのですが、、
残念ですが、三菱の仕様としてあきらめるしかないようです。
いろいろとありがとうございました。

質問者

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

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

質問する
2009/01/01 02:09
回答No.1

メルダスは触った事がないので的確には答えられませんが、
変数番号が違っているのでなければ、
もしかして、サブプログラム内でのシーケンス番号の扱いが
ファナックとメルダスとで違っているという事はないでしょうか.
件のサブプログラム冒頭で、OKK機の#4114が
実際に幾つになっているのか知りませんが、
例えば、マクロ呼び出しが実行された時点で、この変数の内容が
一旦リセットされている可能性というのがあると思います.

もしくは、G65が一般のGコードではなく
マクロ指令として機能する様な場合には、
マクロが前のブロックの完了を待たずに先行して計算して行くために、
呼び出し先でこのシステム変数を参照した時点では
実際にはまだ“N11”というコードが実行されていない、とか.

お礼

2009/01/01 21:58

回答ありがとうございます。
なるほど、確かにその点は気になるところですね、
質問には書きませんでしたが、取説にモーダル情報の読み取りが「先読み:#4114」と「実行:#4314」の2種類あり、一応その両方とも試してみたんですが駄目でした。
再度、行を変えるなどして試してみたいと思います

N11
G65P10
のような感じで、

ただ、この方法だと他の機種と同じメインプログラムが使用できないんで、意味がないんですが、、

今日実機にて試した見ましたが、駄目でした。
アキオさんのいわれる通りで、サブに移行した時点でN(シーケンス番号)の情報が下位レベルまで引き継いでないようです。

質問者

お礼をおくりました

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

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