07-25-2017 08:40 AM
GPIBを介してLabVIEWにて可変減衰器の操作をしようとしています。
使用している可変減衰器はAnritsuのMN65A(https://www.anritsu.com/ja-JP/test-measurement/products/mn63a-mn65a-mn72a)です。
NIMAXにて接続の確認をしたところ型番が古いためか認識はされていますが、他の機器とは異なり*IDN?に応答しません(snap.PNG)。
そこで、減衰器の説明書に記載されていたプログラム(SampleCode.PNG)をもとにVIファイルを作成しても動作しませんでした(Attenuator.vi)。
いつも計測器ドライバのサンプルコードを使用しており、一から作成することは初めてなので大変困っています。
初歩的な質問で大変恐縮ですが、よろしくお願いいたします。
07-25-2017 10:42 AM
*IDN?などのIEEE-488共通コマンドが策定されるよりももっと昔の機器のようですね。今ならば、どの機器でも*IDN?で「機種タイプ」が返るようになっているので、まずこのコマンドが通るか?、が簡単な機器通信テスト方法なのですが、それよりも古いのでしょう、そもそもコマンドに*IDN?が無いと思います。
そのくらい古い機器ですと、BASICからコマンド文字列を書き込むような用途が想定されていたと思われ、BASIC制御でありがちな「プログラム時には明記しない改行コードが、実際には勝手に付加されて送信されるので、受け側は改行コードが付いてくる前提で待ってる」という状態なのかなと思います。
当方のLabVIEWのバージョンの関係でviが開けず確認できませんが、取説を参考にしたとすると、たとえば「AS48」という4文字だけ送っている、という書き方にしてないかなと思ったのですが、文字列の最後に改行コード(CR+LF相当。文字列関数パレットにある復帰改行)を文字列連結で付け足して送信してみて下さい。
すでに復帰改行を付けているのに応答しない、のでしたら、すみません。
07-25-2017 10:56 PM
M.Shiraishiさん
迅速にご対応いただきまして誠にありがとうございます。
添付画像の「AR」の部分を「AS40」にして最後に改行コードを付加することで無事操作することができました。
減衰量の変更をできたのですが、現在の減衰量を表示するコード「AR」が上手く動作しません。
入力は添付画像のようでいいと思いますが、出力方法はこれで合っていますでしょうか。
以上、よろしくお願いいたします。
07-26-2017 10:10 AM
VISA WriteしてすぐVISA Readするとまだ向こうが応答する前だったりして何も読み取れない場合もあったりするので、WriteとReadの間に軽いwaitを入れてみて下さい。古い機器なので、0.2~0.5秒くらいですかね(なんとなくです)。
ただ、タイムアウトの設定等によってはwait入れなくてもタイムアウト時間までは勝手に待つ場合もありますが。
取説のBASICベースの処理の場合、昔はPCの処理自体が遅いのでwait書かなくても問題なかったりするケースも多かったです。
また、VISA Writeのリターンカウントを、次のVISA Readのバイトカウントにつないであるようですが、関係ないのでつながないで下さい(Writeのリターンカウントは送信コマンドで実際に送ったバイト数であり、そのコマンドで機器が応答するバイト数=読むべきバイト数とは無関係で一致するとは限らない)。「あるべき応答の長さより多め」という量(例えば100バイト)をつなげば良いです。
この2点で、試してみて頂けますでしょうか?