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

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

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:システム変数を使ったマクロPGMについて)

システム変数を使ったマクロPGMについて

2023/11/03 19:17

このQ&Aのポイント
  • 現在、森精機NL2500にて二股のヨークに穴明PGMを組んでいます。
  • 貫通穴でΦ25ピンを通すのですが工具長と同軸精度からC軸0゚、C軸180゚と反転させて穴明しなければなりません。
  • システム変数を使用してY軸の穴明を演算するPGMを作成しましたが、上手く反映されず読み込みエラーになってしまいます。
※ 以下は、質問の原文です

システム変数を使ったマクロPGMについて

2015/12/30 09:30

現在、森精機NL2500にて二股のヨークに穴明PGMを組んでいます。貫通穴でΦ25ピンを通すのですが工具長と同軸精度からC軸0゚、C軸180゚と反転させて穴明しなければなりません。刃物交換時の微細なズレを摩耗補正で対応させるためT0101とT0111とで各穴で補正できるようにしました。またプリセット時同時に各形状補正値に書き替えするように#10011=#10001,#11011=#11001とX.Z形状を読ませています。
しかし、Y軸の穴明は(X.Z平面)補正時、ワークを反転させているため、各穴逆数で入力しなければ成立しません。そこで演算するため下記のPGMを入れました
#100=-[#14001]
#14011=#100
ですが上手く反映されず、又、読込みエラーにもなりません。どこかおかしな箇所や他の知恵がありましたらご指摘、御教授願います。宜しくお願い致します。

質問者が選んだベストアンサー

ベストアンサー
2015/12/30 11:10
回答No.1

プログラムを演算式 #100=#14001*[-1.] にしてみてください

年内に解決して何よりです
この技術の森には機械加工の専門家が幾人もいらっしゃいますので
どんどん利用して下さい

それでは良いお年を!

お礼

2015/12/31 14:48

ありがとうございます。解決致しました。(2)さんもおっしゃっているように、カギ括弧で直接システム変数を括る事は計算式とは別の意味を持つという事なのですね。勉強になりました。演算の基礎を勉強します。ありがとうございました

質問者

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

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

質問する

その他の回答 (3件中 1~3件目)

2015/12/31 17:57
回答No.3

>#100=#14001*[-1.] 
>#100 = 0-#14001

いずれも正しく、同じ結果になります。

ふつうのマイナス記号は二項演算子と称し引き算。値の符号を変えるマイナス記号は単項演算子。
カスタムマクロのマニュアルに記述は無いが使えた記憶も。またエラーを出さないのは使える証と思いますが。。。

  #101=1
  #102=-#101
などと試し値を確かめれば結論は得られます。

旋盤のプログラムは経験無。
マシニングなどの工具径オフセットでは、
プログラム途中でオフセット値を書換えても、動作は変わらず継続

G42H2
のようにプログラム途中に読直しを入れると以降は書換えた値で動作。

こういう規則があります。それなのでは?


>カギ括弧は#1400の参照アドレスになるんじゃ?

前に#を付けます

#1=2
#[#1]=123 ⇒ #2=123

お礼

2016/01/03 21:52

回答ありがとうございます。返事が遅れてすみません。参照アドレスの件は表記していただいたき分かりやすく理解出来ました。ありがとうございました。

質問者
2015/12/30 11:32
回答No.2

>#100=-[#14001]
カギ括弧は#1400の参照アドレスになるんじゃ?
#100 = 0-#1400

回答(1)さんは-1を掛けてるけれど
昔は引き算の方がマシン語コード上は実行速度が速くて掛け算は遅い
と、言うのが通り相場だったけれど
最近のC言語とかの教科書には-1を掛けてるのが多くなった
最近のCPUは実行速度が速くなったので-1を掛ける方が数学上は自然らしい

>私は-(0.05)を期待していましたが、実際参照アドレスになるとはどういう意味なのですか?

すいません参照アドレスの書式は違ってました
http://nc-program.s-projects.net/variable.html
「また、変数に入っている数値を、"#"以降の変数の番号として使用することもできます。」
「この場合"#[変数]"のように、変数を"[]"で括る必要があります。」


>実際参照アドレスになるとはどういう意味なのですか?
「参照アドレス」とはC言語その他プログラミング用語では一般的なのですが
http://www9.plala.or.jp/sgwr-t/c/sec10-2.html
変数の内容が数値そのものを表すのでなく、変数のアドレスを表します

>上記は演算の時に仮に#14001が0.05だとすると
NCの場合は小数点が無視される場合が有ります
この場合ではただの「5」つまり変数#5の内容を表す

と思ったのですが、上記の如く表記が違うので
本回答は無視して下さい、すいません

お礼

2015/12/31 14:43

回答ありがとうございます。私に掛けるでなく引くという発想は無かったです。現場に最新機械ばかりと言うわけではないので、実行速度云々は試してみようと思います。

/カギ括弧は#1400の参照アドレスになるんじゃ?/

上記は演算の時に仮に#14001が0.05だとすると
私は-(0.05)を期待していましたが、実際参照アドレスになるとはどういう意味なのですか?

丁寧に回答して頂き恐縮です。括弧1つでも間違うと場合によってはドカンと逝きそうですね(汗)アドレス参照の件、理解出来ました。入力の際は少数点の有無並みに要チェックしようと思います。

それでは来年も宜しくお願い致します。良いお年を。

質問者

お礼をおくりました

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

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