NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

visa関数を用いた計測器制御について

visa関数を使用した計測器制御について、質問です。
ドライバが揃ってない計測器については、I/OアシスタントかVISA関数を用いて制御することになると思いますが、プログラムの構成について今ひとつ理解できておらず、計測器取り扱い説明書に付属のテキストベースの例題に沿った形で、LabVIEWでのプログラム例をご教授頂けないでしょうか。
計測器例題として
 ①半導体パラメータ
 ②デジタル圧力計
の2例について、テキストのプログラムリスト(例題)を添付させて頂いております。
①については、サンプルを参考に一応一通りの制御PRG完成させていたのですが、今ひとつ理解ができてないところがあり、無理やり出来上がっている感が否めません。②のPRG作製でどうもうまく制御できないため、きちっと基本を抑えるため、質問させて頂くことにしました。
特に、LabVIEWPRG化でイメージし難かったのが、SRQのビット判断でデータ取り込みをしていく箇所ですが、その他含め、例(イメージ)を頂ければ、理解を深められると思っております。
①の例では80行目以降が特に把握したい箇所です。
②についても基本的には同じようなところが特によく判らないところですが、現時点でこの例題ベースで制御できてないため、リストの初めから、LabVIEWでのイメージをご教授頂ければ助かります。
基本的にはVISA書き込みとVISA読み込みを使い分けていくことになるとは思っているのですが...
判り難い質問で申し訳ありませんが、アドバイス頂ける範囲でどうぞよろしくお願いします。
以上
 
 
0 件の賞賛
メッセージ1/6
6,841件の閲覧回数
ご投稿ありがとうございます。
日本ナショナルインスツルメンツ技術部の成瀬と申します。

お問い合わせ頂いた内容についてですが、①のプログラムのline 80は添付して頂いた資料にもありますようにステータスバイトを読み取っているようですね。
この資料にありますプログラムはVISAの更に下の階層レベルで通信制御の操作が行われているようですが、LabVIEWのVISA関数はこれらの上の階層レベルでの通信制御を可能とする関数となっておりますので、この資料にありますようなステータスバイトを読み取りデータが準備されているかどうかをチェックする必要はございません。

VISAの書き込みで要求されたデータが計測器側にあれば読み取りで読み取られますし、データが存在しない場合にはタイムアウトエラーが起きるまで繰り返し要求を送ります。設定されたタイムアウト時間を越すとタイムアウトエラーを返します。

もちろんVISA関数の中にはステータスバイトを見るための関数などもございますが、必要がなければ「VISA書き込み」と「VISA読み取り」関数で通信が可能です。

VISA通信に関するサンプルプログラムがLabVIEWのヘルプメニュから検索いただけます。
ヘルプメニュ内のサンプルを検索をクリックしサンプルファインダを開きます。

サンプルファインダの検索タブでキーワードにVISAと入力します。
するとVISAに関するサンプルが一覧で表示されますので、右側の情報欄にある説明をもとに適切なサンプルをご利用頂ければと思います。

また以下にVISAに関する資料がございますのでご参照頂ければと思います。

IVI・VISA サポート      
http://www.ni.com/support/ja/visasupp.htm

VISAのご紹介(pdfファイル)
http://www.ni.com/support/visa/vintro.pdf

何か上記内容や資料についてご不明な点がございましたらご連絡ください。
よろしくお願いいたします。

日本ナショナルインスツルメンツ
技術部
成瀬


メッセージ2/6
6,805件の閲覧回数

日本ナショナルインスツルメンツ 技術部 成瀬様

ご連絡頂いていたにもかかわらず、返事がおそくなり、申し訳ありませんでした。visa関数で色々試していたのですが、例にもありましたように、データを取り込む命令が存在しないため、悩んでおりました。結論的には、visaトリガアサートを行った上で、visa読み取りすればよいことが判りました。とりあえずうまくいきそうです。ありがとうございました。

申し訳ないですが、追加で質問させて頂きたく、よろしくお願いします。指定した測定をループで一定時間(wait)毎に繰り返し行わせるようにprgしているのですが、ループ実行間隔(何秒かかったか)の情報を得るにはどういったprg方法が望ましいでしょうか?wait時間を含んだ状態での1ループあたりの実行時間を知りたいと思っております。よろしくお願いします。

以上

 

0 件の賞賛
メッセージ3/6
6,755件の閲覧回数
ご投稿ありがとうございます。
日本NIの成瀬です。

今回お問い合わせいただいたループ1回転の経過時間を測定する方法についてですが、「ティックカウント」関数をご使用してみてはいかがでしょうか。
「ティックカウント」関数はタイミング関数パレットの中にございます。

こちらをループの外と中に配置していただき、差をとっていただきますとスタートからの経過時間を確認することが可能です。
今回は1回転分の経過時間ということでしたので、前回の時間をシフトレジスタで保持して頂ければ、その前回の値と今回の時間の差が一回転分の経過時間ということになります。

こちらの方法をお試し頂ければと思いますが、何かプログラムについてご不明な点やご質問などございましたら再度ご連絡ください。
よろしくお願い致します。

日本ナショナルインスツルメンツ
技術部
成瀬

メッセージ4/6
6,729件の閲覧回数
日本ナショナルインスツルメンツ 技術部 成瀬様
 
早速のご連絡ありがとうございます。「ティックカウント」の使用で所望の動作を得ることができました。ありがとうございました。
今後ともどうぞよろしくお願いします。
 
以上
0 件の賞賛
メッセージ5/6
6,715件の閲覧回数
いつもお世話になっております。
日本ナショナルインスツルメンツ技術部成瀬でございます。

お忙しいところ問題解決のご報告を頂きありがとうございました。
こちらこそ今後ともよろしくお願い致します。

-------------------------------------------------------------------------
 日本ナショナルインスツルメンツ株式会社技術部 成瀬 まりか
 www.ni.com/jp
 Email: http://www.ni.com/jp/support/ から
 TEL: 0120-527196
 弊社のサポートに関する情報は以下のサイトをご覧ください。
 http://www.ni.com/support/ja/
 -------------------------------------------------------------------------
0 件の賞賛
メッセージ6/6
6,673件の閲覧回数