01-31-2020 01:15 AM - 編集済み 01-31-2020 01:19 AM
初投稿となります。
現在大学の研究においてlabVIEWとGPIBコントローラを用いて分光器の制御をしたいと考えております。そこでNIサンプルプログラムのGPIB-VISA.viを参考にしようと考えたのですが、サンプル内の文章の一部に分からない箇所があり困っています(添付1)。またサンプルの状態で実行したところVISA読み取り関数の後でHex 0×BFFF0015というタイムアウトエラーが発生してしまいました。
初歩的な質問で申し訳ないのですが、これらの解説をお願いいたします。
備考 MAXにて計測器の検出は確認しており、I/Oアシスタントのダイアログボックス内の書き込みでは制御できることも確認しております。ただクエリして解析や読み取って解析ではタイムアウトが起きているようです。
使用機器
・LabVIEW2010
・GPIB-USB-HS
・SG-250(分光器)
分からない部分
フロントパネルの波形制御器の選択項目を文字列に変換する。
変換結果をSOUR:FUNCの後に追加し、全体をコマンドとしてNIデバイスシュミレータに書き込む。
02-03-2020 06:52 PM
はじめまして。
ご不明な「文章の一部」については、次のような意味だと思います。(適宜、Ctrl + Hで表示される詳細ヘルプで各関数の動きを確認してもらうといいかもしれないです)
「フロントパネルの波形制御器の選択項目」:フロントパネルにある「波形」と書かれた制御器で、いただいたフロントパネルの画面だと「SIN」と書いてある部分
「文字列に変換する」:ブロックダイアグラムで、「SOUR:FUNC」という文字列が入力されている関数が「文字列に変換」の関数で、左下に配線されたWaveformという制御器(これは
フロントパネルの中で上記の「波形」の端子のことですね)の値を文字列に変換している状態
「変換結果をSOUR:FUNCの後に追加し」:「文字列に変換」の結果、この関数から「SOUR:FUNC (Waveformの値が文字列に変換された状態)」という文字列が出力されます。
「全体をコマンドとしてNIデバイスシミュレータに書き込む」:上記の出力された文字列を、計測器にコマンドとして送るために、「VISA書き込み」の関数を使用する。(NIデバイスシミュレータ
は、ある特定のデバイス名ですね。気にしなくていいと思います)
全体としては、Waveformの値(例えばフロントパネルで「波形」でSINを選んでいたらサイン波)を計測機器に渡しているだけのようです。
Hex 0xBFFF0015はタイムアウトエラーとのことですが、ご使用中の分光器にはサイン波を扱うような機能はありますか?なければこのサンプルのまま実行しても、分光器側でコマンドの意味がわからず、応答が来ないためタイムアウトになるかと思います。
VISAの関数を使用して通信するときには、「VISAを開く」→「VISA書き込み」あるいは「VISA読み取り」を繰り返す→「VISAを閉じる」という流れでプログラムを組むことになります。
このとき、「書き込み」は計測器にコマンドを渡す(なので計測器が理解できるコマンドを送る必要があります。計測器のコマンドのリファレンスマニュアルなどあればそちらに載っているかと)、「読み取り」は計測器からの応答を読み取る、ということを意味しています。
うまく、お使いの分光器にあうようにコマンドを組み替えて試してみて下さい。
02-04-2020 05:09 AM
SG-250のGPIBコマンド一覧はお持ちでしょうか?ネット検索しても出てこないようですが、どんなGPIBコマンドで制御できるかが分からないとプログラミングしようがないですよ。
02-05-2020 03:50 AM - 編集済み 02-05-2020 03:52 AM
返信が遅れてしまい申し訳ありません。
まず基礎的な文章に対するとても丁寧な解説をして頂きありがとうございます。大変わかりやすい説明で理解することができました。
そして次にタイムアウトエラーに関する問題なのですが、頂いたVISA関数使用時のアドバイスを参考にして、まず分光器のデジタル画面に表示されている波長(デジタル表示)をフロントパネルに表示することを目的としたviを作成してみたのですが、やはり「VISA読み取り」関数のあとでタイムアウトエラーが発生してしまいます。(添付1)
そこで大変恐縮なのですが、このviについての問題点やタイムアウトエラーの原因などにお心当たりがあれば教えて頂きたいです。
備考:分光器について説明が不足していたことをお詫びします。以下詳細です。
SG-250 モノクロメータ 光研工業株式会社製
機器のGPIBコマンドのマニュアルは所持しております。
02-06-2020 07:19 PM
MK45さん、
当初の疑問はある程度解決されたとのこと、よかったです。
viの画面、拝見しました。あまり参考になるようなものはないかもしれませんが、気になる点を挙げますと、
・そもそも、分光器との通信はうまくいっていることは別のコマンドで確認されていますでしょうか?例えば、NI MAXのVISAテストパネルで、分光器に「*IDN?」コマンドを
送って応答が返ってきていることは確かめていますか?(分光器がSCPIコマンドに対応している必要はありますが)
・VISAテストパネルで成功した場合には、同じコマンド「*IDN?」を送る簡単なLVプログラムを用意して、それでもうまく通信はできるのでしょうか?
・拝見するに、終端文字は「¥n」を使用するようですが、例えば「INIT0¥n」となっている部分の「¥マーク」と「n」は直接文字を入力している状態でしょうか?
「¥マーク」と「n」は「標準表示」では改行の状態を表していると思います。¥コード表示したときに「¥n」となる、ということですね。
もしご存じでなければ、例えば文字列定数で「INIT0」と入力してからEnterで改行し、その定数を右クリックで¥コード表示してみると確かめられると思います。
もし¥コード表示ではなく、標準表示で「INIT0¥n」となっているのだとしたら、コマンドが正しく送られていない(ために応答も返ってこなくてタイムアウトになっている)可能性が
あるかもしれないです。
・VISAの読み取りのタイムアウトエラーについては、一般的なトラブルシュートの資料があるようですが、こちらは確認されていましたか?
エラー -1073807339: VISA読み取り/書き込みでタイムアウトエラーが発生する - National Instruments
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019L3mSAE&l=ja-JP
上記のどれかでも何かヒントになればいいのですが・・・
02-10-2020 04:10 AM
返信が遅れて申し訳ありません。
またこちらの曖昧な質問に対して丁寧な返信をありがとうございます。
現在も問題の解決に試行錯誤しているのですが、頂いたアドバイスの結果と進捗の報告を以下に纏めました。
・Q1.分光器に「*IDN?」コマンドを送って応答が返ってきていることは確かめていますか?
・A1.機器が「*IDN?」コマンドに応答していませんと表示されます。VISAテストパネルで他のSCPIコマンドも試してみたのですが、読み取りはできませんでした。
・Q2.拝見するに、終端文字は「¥n」を使用するようですが、例えば「INIT0¥n」となっている部分の「¥マーク」と「n」は直接文字を入力している状態でしょうか?
・A2.仰る通り「¥n」は直接打ち込んでいます、ただ個々の文字列定数を右クリックして「¥コード」表示に変えています。実際この部分の設定をしたところVISA書き込みは可能になりました。
・Q3.VISAの読み取りのタイムアウトエラーについては、一般的なトラブルシュートの資料があるようですが、こちらは確認されていましたか?
・A3.はい、一通り確認しております。MAXのソフトウェアで最新のドライバであることは確認しており、一応書き込みと読み取りの間に待機関数を挟んでもみたのですが、結果は変わりませんでした...
・進捗としましては、あまり関係ないかもしれませんが色々と試しているなかでVISA STB読み取りではエラーが出ないことが分かりました。ただ出力が常に0となっていて、表記法を変えてみても変わらないので応答を返していないのか単に反応していないかの判別がつきません...
機器の操作マニュアルでは確かにNI製GPIBカードで動作を確認しているとの記載があるので、もう少し資料や文献で情報を集めてみたいと思います。もしこれらの回答の中で気になる点などがあれば教えて頂きたいです。何度も質問を重ねてしまい申し訳ありませんが宜しくお願い致します。
02-10-2020 04:59 AM - 編集済み 02-10-2020 05:02 AM
「MAXにて計測器の検出は確認しており、I/Oアシスタントのダイアログボックス内の書き込みでは制御できる」とのことで、「制御」はできているのですね。ちなみにこの計測器、戻り値を戻してくるのでしょうか?ネット上にマニュアルが見当たらないのでどんなコマンド体系かが全く分かりません。MAXの488.2コミュニケータにて「*IDN?」としても機器名を返してこないのでしょうか?敵を知らないことにはアドバイスもしにくいです。
また、大学であれば学内のどこかにGPIB通信とか、LabVIEWに詳しい人がいるのではないかと思いますが如何でしょう。NIさんのサポートを利用するのも手かと思います。(標準保守契約をお持ちであれば http://ni.com/ask)
フォーラムではお互いに情報不足でコミュニケーションが取りにくいので、面談でその場で教えてもらえるのであればそれば一番ですね。
02-28-2020 02:02 AM
MK45さん
はじめまして、大学でLabviewで分光器を制御して色々と実験系を組んでいる者です。
SG-250は、光研工業さんの分光器であっていますでしょうか?
同じ分光器を有していまして、現在、光研工業さんのソフトウェアで運用しています。
私も色々とLabviewで制御したいと考えているのですが、コマンド一覧を有しておらず(もう手に入れることができず)、今まで取り組んでおりませんでした。
もし可能でしたら、コマンド一覧を共有頂けないでしょうか?
こちらの環境で動くかどうかもチェックできるかと思います。
何卒ご検討のほど宜しくお願い致します。