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

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

締切済み
※ ChatGPTを利用し、要約された質問です(原文:プログラムを実行して終了したら自動的に消す方法)

プログラムを実行して終了したら自動的に消す方法

2023/10/15 23:36

このQ&Aのポイント
  • 最近マシニングセンターを任されてプログラム作ってるのですが、補正値がとんでもない数値になりクラッシュの原因にもなりかねません。そこでこの計算プログラム実行後に実行したプログラムを自動的に消去する方法がないか教えていただきたいのです。
  • マシニングセンターで作成したプログラムを実行すると、補正値が計算されて入ります。しかし、もしも誤って同じプログラムを再実行してしまうと、補正値はとんでもない数値になり、マシニングセンターのクラッシュの原因にもなります。そのため、プログラムを実行した後に自動的に消去する方法があれば教えていただきたいです。
  • マシニングセンターで作成したプログラムを実行すると、補正値が計算されて入ります。ただし、もしも同じプログラムが誤って再実行されると、補正値がとんでもない数値になり、マシニングセンターがクラッシュする可能性があります。そこで、プログラムを実行した後に自動的に消去する方法があるかどうか教えていただきたいです。
※ 以下は、質問の原文です

プログラムを実行して終了したら自動的に消す方法

2008/11/02 09:29

初めまして

最近マシニングセンターを任されてプログラム作ってるのですが
工具長補正をある座標系を基準にしていっぺんに取りたくて
こういう感じの簡単なプログラムを作ったのですが

O0001
#10001=#10001-11.11
#10002=#10002+22.22
#10003=#10003-33.33

      ・


#10099=#10099+987.654
M99

これでC入力したあとにこのプログラムを実行したら
それぞれの補正値が計算されて入るようになってます
ただこのプログラム、もう一度誤って実行すると
補正値がとんでもない数値になりクラッシュの原因にもなりかねません
今は実行後、直ぐに消しているのですが人間のすることなので
ミスの可能性は残ります
そこでこの計算プログラム実行後に実行したプログラムを
自動的に消去する方法がないか教えていただきたいのです

どうぞ宜敷お願いいたします

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

2008/11/04 19:02
回答No.4

OSPの場合ですので参考となりますが、
DNC-DTでスケジュールプログラムを使用すれば、
DELETEにより可能です。
-----
N1 PSELECT HD0:PRG1.MIN
N2 DELETE HD0:PRG1.MIN
N3 END
-----
N1でPRG1.MINが選択実行され、
N2でPRG1.MINが削除されます。

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

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

質問する
2008/11/02 22:02
回答No.3

自動的に消す方法はありません.
ただ、MDIからサブプログラム呼び出しすれば、
(例えばファナックならM98P0001)
入力した呼び出し指令プログラムは即座に消えますので、
それで再実行は防げると思います.

2008/11/02 21:09
回答No.2

マクロを使用した別の方法を紹介します。
計測手順ですが
(1)目的の工具を呼出し工具長補正を有効にして移動させる
(2)工具をワーク、もしくはセンサにタッチさせる。
(3)そのZ位置のワーク座標の値を読み取る
(4)その値を表記のプログラムに打ち込む
このような手順であると想定します。

システム変数を用いて、自動的に補正値をセットするプログラムです
F制御機メーカーのシステム変数を使用した例
(変数説明)
#5043 システム変数:今現在のZ位置座標(ワーク座標系)
#4120 システム変数:今現在の主軸工具番号
--------------------------------------
O8000
#500=#4120+10000;←現在の主軸の工具番号をオフセット番号への変換準備
#[#500]=#[#500]+#5043; ←オフセット番号へワーク座標のZ値をセット
M30
--------------------------------------
手順(2)の状態でこのO8000のプログラムを起動すると主軸工具のオフセット番号に値がセットされるハズ・・・

(補足)
システム変数番号はメーカーやマシンによって異なります。
うまく機能するかは保障できません。イメージとして捉えてください。

2008/11/02 12:39
回答No.1

自動的に消去する方法はわかりませんが、一回実行したことがわかるようにフラグを立ててプログラム先頭で判断し、GOTOで最終行に飛ばすのはどうでしょうか?具体的には任意の変数に実行回数をカウントしておき0のだけ補正入力を実行。

お礼をおくりました

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

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