- ベストアンサー
mazak NC旋盤のガントリーロボット(メルダス300) マクロプログラム
- 中古にて購入したmazak NC旋盤のガントリーロボット(メルダス300)を自力で立ち上げたが、マクロプログラムの一部で止まってしまう。#1015と#1021の値によって処理が変わるようだが、詳細が不明。質問者は矛盾を感じている。
- mazak NC旋盤のガントリーロボット(メルダス300)を中古で購入し、取扱説明書にあるマクロプログラムを手入力して動かせるようにした。しかし、特定のブロックで動作が止まる。#1015と#1021の値が関係しており、詳細がわからないため、解決方法を知りたい。
- 中古で購入したmazak NC旋盤のガントリーロボット(メルダス300)の立ち上げに成功したが、#1015と#1021の値によって処理が異なるため、矛盾を感じている。取説には詳細が書かれていないため、解決策を教えてほしい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
昔々MELDAS300&500シリーズを使っていました。 使いやすく、F○NUCより好きでした。 マクロは取扱い説明書通りですか? ニーズが無かったので、マクロ文においてANDやORが使えることを知り ませんでした。また、#1さんが書かれている通り、 N1116 #1116=1. #1133=2.; と、一つの行に書くことができるのも知りませんでした。 さて、 IF[[#11EQ6.]AND[#1015NE1.]]GOTO1116: IF[[[#11EQ1.]OR[#11EQ3.]]AND[#1021NE1.]]GOTO1116; を実行して N1116 #1116=1. #1133=2.; のブロックで停止する(#1116=1でアラームを出力)するということは、 IF文が成立=GOTO1116が実行されているのですね。 素直に考えれば、条件文は、 「#11=6かつ#1015≠1ならばN1116へ飛ぶ」 「#11=1か3、かつ#1021≠1ならばN1116へ飛ぶ」 と思われます。 この2つの文章の前に、 #501=#11; #502=#1015; #503=#1021; を挿入しておけば、条件文実行直前の、#11、#1015、#1021の値がコモン 変数#501~#503で確認できるので、N1116へ飛ぶ理由がわかるでしょう。 (ただし当該コモン変数は他の用途に使用されていないことが必要) #11については、G65で当該サブブログラムへ飛ばす実行文あたりを見て、 解読するしかないですね。 当然ですがローダの使用を考えていらっしゃいますね。チャックワーク のみをご使用され、ハンドをシャフト用にしないのであれば、当該条件文 を削除または( )でくくって実行させないこともアリかと。 他人の作成したマクロを理解するのは大変ですが、読み解きながら判明 した内容を、コメント ( )としてプログラムに追記しておくと、 後々便利でしょう。
その他の回答 (1)
メルダスのマクロは知りませんが、 ファナックの場合ですと、1ブロックにはマクロ文は1つしか書けません。 #1116=1.←これで1つのマクロ文。 #1133=2.←これも1つのマクロ文。 ファナックと同様の仕様であれば、 それぞれを別のブロックに書く必要があります。 また、EQやNEといった条件式は演算子ではない場合もあります。 少なくともファナックではそうです。 演算子でない場合、EQやNEは真偽値を返さないので、 その結果をANDやORに渡す事ができません。 この場合、 「#11が6.でありかつ#1015が1.であればN1116へ飛ぶ」は 「#11が6.であればN1116へは飛ばない(GOTOのブロックをスキップ)」 「#1015が1.であればN1116へは飛ばない」 「(どちらでもないから)N1116へ飛ぶ」などと書く事になります。
お礼
ありがとうございます。マクロアレルギーでしたが、そのように考えていくと面白い面もありますね。(余裕があればですが・・・)参考になりました。質問に追記もしましたので、またよろしければお願いいたします。
お礼
ありがとうございます。 1つの行に書けるかどうかの真偽はわかりませんが、取説のマクロ文をそのままて入力しただけです。 他のプログラムも見ましたが、数ページある中でこの2行だけがこのような(同一ブロックに2つ)表記になっています。 確かに、チャックワークでしか使用しないので省いても問題は無いですよね。その他の設定さえキッチリやっておけば・・という事でしょうか。 #11と1つの行に2つ書くことに関してはもう少し調べてみます。 まだ最初の方なので、進めていくうちにこんなことがまた出てくると思うと 先が思いやられます。 カッコで括って読まないようにしたらとりあえず先には進むようになりました。ありがとうございます。