05-27-2018 07:58 PM
大学でLabviewを用いた実験機器の制御を行っているものです。
研究では自動ステージコントローラD220をGPIB接続で使用しています。
長年このコントローラを使用しておりますが、制御を行うPCが古くなってしまったため、
現在は制御プログラムを別のPCに移し、そちらで制御しようとしております。
しかし、従来の(今まで実行できていた)プログラムを実行すると
エラーコード"ENOL"が出てきます。
コードについて調べたところ、「通信を行うリスナが存在しない」、「GPIBアドレスの入力に間違えがある」
とのことでしたのでMAXで*IDN?を送信したところ、PCが機器を認識していることは確認することができました。
また、プログラムはサンプルプログラムを使用しているのですが、GPIBアドレスはMAXで確認したプライマリアドレスを
入力しています。
何か他に”ENOL”が出てしまう原因はあるでしょうか?
大変恐縮ですが、ご回答よろしくお願いいたします。
解決済! 解決策の投稿を見る。
05-28-2018 04:52 AM - 編集済み 05-28-2018 04:58 AM
こんにちは
MAXを使用して*IDN?で計測器名が返ってくる場合PCと計測器は正常に接続されています
しかしながらプログラム側でエラーが返ってくる場合
エラーメッセージにもあるようにGPIBアドレスの指示間違いの可能性が高いです。
ハイライト実行でどこでエラーが発生しているか確認していただき
可能であればエラー発生部のプリントスクリーンがあると助かります。
プリントスクリーンが難しい場合は
①VISA関数とGPIB関数どちらを利用しているか
②計測器記述子の内容を教えてください。
ご確認お願いいたします
07-07-2018 03:38 AM
長らく期間が空いてしまいましたが、いまだ問題解決には至っていません。
おっしゃっていましたようにエラー画面を送ります。
計測器は読み込めるがリスナは読み込めない状況は何が原因なのでしょうか?
どうかよろしくお願いします。
07-09-2018 12:50 AM
NI-488.2ドライバはインストールされていますか?GPIB-USB-HSがMAXで正しく認識されていないように見えたので、そこがエラーの原因かもしれません。
07-09-2018 05:24 AM - 編集済み 07-09-2018 05:34 AM
お返事が遅くなりました。
PCを入れ替えて、ということですが
添付していただいたVIの写真は「古いPC」で正常動作が確認済みのViでしょうか?
GPIBアドレスが「7」が文字列に変換されていくつかのサブVIに接続されていますが
このサブVIの中で「計測器記述子」が作成されているはずです。
確認ですが
①メニューバー>>ヘルプ>>サンプルの検索>>検索タブ>>キーワードで”GPIB”>>簡単なGPIB
は正常に動作しますか?>>異常の場合GPIBドライバ、VISAのインストールミスの可能性があります
②写真に写っていたVIは古いPCでは正常動作していたものですか?新しいPCに変えて改造していませんか?
③GPIBアドレス「7」文字列が接続されているサブVIの中で「VISA関数」と「GPIB関数」どちらを使っていますか?
>>サブVIの中で「計測器記述子」がどのように作られているか見てください。
再々の確認でごめんどうかもしれませんがよろしくお願いします。
追記します。
もしかしてGPIBコントローラが 2個接続されていますか?
対象のハードウェアはどちらのGPIBコントローラに接続されていますか?
GPIBが複数台接続されていると計測器記述子の「GPIB0::7::instr」の0の部分が1、2、3と変わります。
MAXでみると対象のハードウェアの正しい計測器記述子は「GPIB1::7::instr」となるはずです。
そのうえで上記③の内容をご確認ください。
07-11-2018 12:40 AM
お世話になってます。ご返信いただきありがとうございます。
ひとまず、NI-488.2 17.6をインストールし、プログラムを実行してみました。
しかし、やはりENOLが出る状態でした。
サンプルプログラムにて簡単なGPIBを実行してみましたところ、添付の画像のようにエラーが出ました。
つまり現在、MAXでは機器の認識はできるがLabview上で機器の認識が出来ていないという状態なことがわかりました。
昔のパソコンで簡単なGPIBを実行したところ問題なく認識でき、プログラム自体も実行可能なことを確認しました。
③についてですが、サブVIではGPIB関数を使用しておりました。
また、機器接続は合計3台でGPIB0にシャッター装置、GPIB1にステージD220とロックインアンプが接続されています。
ステージの計測記述子はMAX上で問題なくGPIB1::7::instrと表示されています。
以上よろしくお願いします。
07-11-2018 02:37 AM
ご確認ありがとうございます。
しかしながら計測器記述子の確認をしていただきたかったのはGPIB関数で送信している内容です。
MAXやVISA関数の場合MAX上で認識されているGPIBハードウェアの計測器記述子が
自動で表示されますがGPIB関数の場合手入力しなければならないと思います。
このとき複数のGPIBコントローラを使用しているとどちらのコントローラの先にあるものか
指定しなければならないはずです。
通常は自動的にGPIB0のコントローラの先にあるアドレスに命令が送信されます。
たとえばGPIB0のコントローラに一時的にすべてのハードウェアを接続してもう一度サンプルVIを
試してみることはできないでしょうか?
10-24-2018 09:54 PM
お世話になってます。
ご返信が遅れてしまい申し訳ありません。
表題の件ですが、自動ステージが接続されているGPIBのプライマリアドレスを1から0に変更したところ、
問題なく動作し、解決いたしました。
おっしゃっていたようにGPIB関数はプライマリが0のなかにありますセカンダリアドレスを指定してコードを送っているようでした。
おそらく新しいパソコンにGPIBケーブルを接続する際にプライマリが変わってしまったことが原因であると思います。
丁寧なご対応ありがとうございました。