03-05-2014 06:42 PM
いつも参考にさせて頂いております。
掲題の件について、どなたか教えて頂けないでしょうか
[目的]
Agilent社製デジタルマルチメータ「34461A」のLabVIEW2012での制御
[問題]
LabVIEW2012に標準搭載されている計測器I/Oパレット→計測器ドライバ→Agilent 34401Aの「Initialize.vi」でハングアップしてしまう。
(正確には数分後にタイムアウトエラーとなる)
[環境]
PC:Windos7 64bit
LabVIEW2012
「34461A」は同社製「34401A」と完全互換とのことで、上記の様に「34401A」用VIでの制御を試みました。
「34461A」本体設定で、”*IDN?”の返信データを”34401A”に変更するように設定してあります。
本変更はMAX上で”*IDN?”を送信し、返信データを確認しました。
デバッグを進めていくと、どうやら「Error Query.vi」で止まってしまっているようです。
(”:SYST:ERR?”のコマンドを送信後のVISA読取り関数で止まっているような感じです。)
以前「34401A」を使用したことがありますが、このような現象は発生しませんでした。
[質問]
「34461A」は「34401A」用のVIでは制御できないのでしょうか。
また、制御するには何かの設定が必要なのでしょうか。
どなたかご存知でしたらご教示頂ければと思います。
以上、よろしくお願い致します。
03-11-2014 03:43 AM
haljionさん。こんにちは
Initialize.viのコネクタペーンに「ID Query(True)」というコネクタがあるはずです
そこを「False」に変えて実行してみてください。これでエラーは出ないと思います。
このコネクタは計測器の名前確認を行うかどうかの選択肢となっていて
もし名前が異なる場合はエラーとなります。
残念ながら34461Aは登録されていませんのでここでエラーが出てしまっていると思います。
お試しください。
あとclose.viの実行も忘れないようにしてください。
上手くいくことをお祈りしています
03-11-2014 03:53 AM
haljionさん。たびたびすみません。
投稿内容を見逃していました。名前の変更はされているということなので
私の先ほどの投稿は無視してくださいご迷惑をおかけしました。
改めて伺いたいのですが
①接続方法はなんでしょうか?
もしRS232Cを使用している場合はInitilize.viで設定されているCOMポートの内容が
あっていないのかもしれません。
②また、先ほど私が説明したID QueryとResetの制御器をFalseにした場合はどうでしょうか?
MAX上ではうまくいったということなので、異なる点があるとすればこの2点がまず考えられます
ご確認くださいよろしくお願いします。
03-17-2014 12:11 AM
Kine様
ご回答ありがとうございます。
返信が遅くなってしまって申し訳ありません。
接続方法についてはUSBとなります。
MAX上でVISAリソース名を「34461A」に変更し、LabVIEW上でも左記リソース名を使用している状態です。
また、Kine様が仰られたようにID QueryとResetの制御器をFalseにして実行してみましたが、
やはり「Error Query.vi」でハングアップしてしまいます。
どうやら上記VIの中の「:SYST:ERR?」というコマンド送信後のVISA読取り待ちで止まっているようです。
MAX上で「:SYST:ERR?」を送信した場合は正常に結果が帰ってきますが、なぜかLabVIEW上では帰ってきません。
この現象について他に考えられることはあるでしょうか。
アドバイス等ありましたらよろしくお願い致します。
03-17-2014 01:51 AM
こんにちは。
最初のポストで記載されていた通り、名前以外は互換性を持っているので、
名称さえ変えれば同じ動作をするはずだと思います。
ちなみに34461A の計測器ドライバは試したことありますか?
既存のコードを上記のドライバで書きなおすのも面倒かと思いますが、
とりあえず切り分けとして、上記のドライバのinitialize.vi を計測器を34461Aの名前に戻した状態で試してみてください。
03-17-2014 03:47 AM
haljion様
doradorachan様
こんにちは
doradorachan様から提示のあった34461A用ドライバの中身を見てみました
34460A用とは若干異なるようなのでもしかしたら使用できるかもしれません。
残念ながら、同様の結果となりハングアップしてしまった場合ですが
Initialize.vi内にあるError Query.viの中、2つ目のケースストラクチャ―がどのように動作しているか
ハイライト実行で確認して結果をご連絡ください。
予想①syst error?のあとVISAreadで応答がない
予想②VISAreadからは応答があるがループから抜けることができない
どちらかと思われます。
Initialize.viは実行後、エラーがあってもなくてもReset.vi内でErrorQuery.viを実行するようになっています
計測器ドライバに修正を加えるのは気が引けますが
Resetのブール制御器がつながっているケースストラクチャを一時的に無効にして
Reset.viを実行できないようにして試してみるのも1つの方法だと思います
03-24-2014 06:42 PM
dradorachan様
返信が遅くなってしまって申し訳ありません。
私も互換性を持っているということで34461Aにしたのですが、うまくいかずに残念です。
dradorachan様の仰るようにinitialize.viを34461Aの計測器ドライバで置き換えて試してみましたが、
やはり同様のハングアップとなってしまいました。
03-24-2014 06:58 PM
Kine様
返信が遅くなってしまって申し訳ありません。
>>Initialize.vi内にあるError Query.viの中、2つ目のケースストラクチャ―がどのように動作しているか
ハイライト実行で確認して結果をご連絡ください。
これについて、確認したところ「syst error?のあとVISAreadで応答がない」という状態でした。
これはバッファにデータが入ってこないということなのでしょうか?
また、DMMに付属していた「Agilent IO Libraries Suite」をインストールしたところ、
34401A用計測器ドライバ、34461A用計測器ドライバにてDMMをエラーなく操作することが出来ました。
(なぜ動いたかは定かではありません。。。)
03-27-2014 04:03 AM
haljion様
ご連絡ありがとうございました。
無事に動作しているということでまずは安心しました。
LabVIEWから計測器制御で使用されるVISAはNI製以外にも大手計測器メーカー様が提供しており
Agilent製VISAも存在し「Agilent IO Libraries Suite」に含まれています。
インストール後動作するようになったのは「Agilent IO Libraries Suite」に含まれるVISAによって
適切に制御されるようになったからではないでしょうか
ただ1つご確認いただきたいことがあります。
Agilent製以外の測定器がLabVIEWからリモート制御できるか確認してみて下さい。
まれに他社製VISAがインストールされた後、他社(今回の場合agilent以外)の計測器が制御できなくなることがあると
耳にしたことがあります
念のため確認をしていただければと思います。
03-28-2014 02:58 AM
Kine様
ご返信ありがとうございます。
34461A以外の測定器がありませんが、手元に高砂製作所製の電源「ZX-400LA」があり、
シリアル通信によるリモート制御を試してみたところ正常に動作致しました。
「34461A」は「34401A」と完全互換と謳われており、開発工数が削減できると思い購入しましたが、
意外に時間がかかってしまいました。
なぜ34401A用のドライバで動かなかったのか原因はわかりませんが、
とりあえず動いたので解決とさせて頂きます。