- 締切済み
※ ChatGPTを利用し、要約された質問です(原文:マクロのIF)
マクロのIFでシステム変数#100の値が正しく読み取れない理由についての質問
このQ&Aのポイント
- FANUC CNCでNCのマクロを使用しようとしています。システム変数#100の値を読み取って、1ならマクロを抜けて、それ以外なら原点復帰して停止するプログラムです。しかし、実行すると#100にどんな値を入れてもマクロが実行されてしまいます。
- 現在はテストですので、#100の値は手動で入力しています。
- なぜ#100が常に空の値になっているのか、理由が分かる方がいらっしゃったら教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
noname#230359
回答No.2
>>システム変数#100の値をを読んで1ならマクロを抜けて, >>それ以外なら原点復帰して停止 とありますが、マクロ文は#100=1でN201にとんで原点復帰、 それ以外ならM99で脱出しています もういちど確認してみてください また、#100に何を入れてもまたは空でもIF文が実行されて N201に飛ぶのも解せませんね (1)さんご回答の通り、IF文の前に#100=1.0とか#100=2.0とか 入れてみて、マクロがどのように実行されるか確認してみては 如何でしょう
noname#230359
回答No.1
マクロは先読み実行されるので、#100に手動で値をセットするよりも前に IF文が処理されてしまっているのでは無いでしょうか。 G65呼び出しの前に、手動ではなくマクロ文にて#100に値をセットするか O1000の先頭でバッファリングをキャンセルするMコードを指令すると 正常に動く様な気がします。
質問者
お礼
ご回答ありがとうございます. 正にご回答の通りの内容が原因でした. マクロ先頭にM12を挿入すると,所望の結果を得ることができました. 非常に助かりました. ありがとうございました.
お礼
ご回答ありがとうございます. 質問文を間違えており申し訳ありませんでした. 回答1様のおっしゃる通り,プログラムの先読みのバッファをキャンセルすることで所望の結果を得ることが出来ました.