NI製品ディスカッション

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

LabVIEWで真空計m-601gcの圧力値読み込みでタイムアウトしてしまう

解決済み
解決策を見る

LabVIEW初心者です。真空計をPCと接続してLabVIEWで制御しようと思いプログラムを作成していたのですが読み込みがうまくいかずここに相談してみることにしました。

 

目的・状況

真空計の値をLabVIEWで読み込み、表示するというプログラムを作成したいと思っています。

NI-MAXでは真空計の値を読み込むことはできました。添付するLabVIEWのプログラムを動かすと「Possible reason(s): VISA: (Hex 0xBFFF0015) Timeout expired before operation completed.」というエラーメッセージが表示されます。

VISAリソースネームや各定数の値はいろいろ変更したりはしてみましたが解決はしませんでした。

 

使用しているツール・デバイス

真空計m-601gc(ANELVEA)

LabVIEW2022 Community Editor

ドライバー USB Serial Port (COM3)

PCと真空計をつなげる際にbuffaloのBSUSR06のシリアルコードを用いています。

 

その他

真空計のマニュアルは以下です、検索していただけると出てくると思います。

M-601GC 1CHコントローラ 取扱説明書 (u-tokyo.ac.jp)

 

質問

このエラーの解消方法・発生理由(NI-MAXで読み込めてLabVIEW上で読み込めない理由など)を教えていただけると幸いです。画像1.png画像2.png

0 件の賞賛
メッセージ1/9
3,158件の閲覧回数

VISAテストパネルでもタイムアウトエラーが出ていますね。これは読み取っている文字を見ると「\r」(0xD=13)が終端文字になっていることが分かります。一方でVISAシリアルポート構成関数はデフォルトで\n(=0xA=10)が終端文字となっているため、受信文字列の終端を検出できずにタイムアウトしているのかな、と思いました。

 

Termination String.png

ただ、VISAテストパネルで受信している文字は12文字あるので、8文字指定で読み取った場合は読み取れるのでは?という気もしているので、ちょっと状況が分かりかねています。

 

ひとまず終端文字の部分で右クリックし、作成→定数として、「13」を設定して状況が変わるか試して頂けますか?

 

よろしくお願いいたします。

メッセージ2/9
3,142件の閲覧回数

 

返信ありがとうございます。テストパネル上でタイムアウトエラーが起きているのは確かに気になってはいました。先ほど、終端文字数の設定をして実行してみましたがやはり同じエラーが生じてしまいました。以下のように定数をつけて実行してみました、どうぞよろしくお願い致します。

画像③150208.png

 

0 件の賞賛
メッセージ3/9
3,121件の閲覧回数

エラーメッセージのスクリーンショット、ならびにフロントパネルのスクリーンショットも頂けますでしょうか。

フロントパネルの文字列表示器は、右クリックから「¥コード表示」として制御文字も見れる状態にしてください。

 

VISA Test Panelで以下の様に終端文字を設定してコマンド書き込み・読み取りを実行したスクリーンショットも頂けると幸いです。

 

VISA Test Panel - CR.png

 

ちなみにVISAシリアルポート構成関数は内部にVISAオープン関数を含んでいるので、先にVISAオープンを置く必要がありません。

LabVIEWのサンプルプログラム(ヘルプ→サンプルを検索→ハードウェア入力と出力→シリアル→簡易シリアル」が参考になります。

ご参考まで。

 

Simple Serial.png

 

0 件の賞賛
メッセージ4/9
3,108件の閲覧回数

返信遅れてしまい申し訳ございません。

上から1枚目がフロントパネルの画像(¥コード表示の設定はしました)。制御文字のすぐ横に表示器を付けたら「$PRD¥¥r¥¥n」と表示されてたのが少し気になりました。

 

2枚目がずっと表示されているエラー文です。

3・4枚目がテストパネルになります。

 

ちなみにVISAシリアルポート構成関数は内部にVISAオープン関数を含んでいるので、先にVISAオープンを置く必要がありません。

LabVIEWのサンプルプログラム(ヘルプ→サンプルを検索→ハードウェア入力と出力→シリアル→簡易シリアル」が参考になります。

ご参考まで。

>>>ご指摘ありがとうございます。今は混乱を避けるためあえて直してはいませんが次回からは参考にさせていただきます。

 

どうぞよろしくお願いいたします。

スクリーンショット 2023-08-25 140229.pngスクリーンショット 2023-08-25 140330.pngスクリーンショット 2023-08-25 140935.png

0 件の賞賛
メッセージ5/9
3,097件の閲覧回数

なるほど、コマンドの終端文字(\r)が計測器に認識されていない状況ですね。コマンド文字列定数の上で右クリックして「\コード表示」としたうえで、VISAテストパネルと同様に「\r\n」となるように修正してみてください。

(返り値の終端を見ると、\rだけで良い気がします。マニュアルにも「EOM … CR文字(0x0D)とありますね。)

 

これで解決するのでは、と思っているのですがVISAテストパネルが依然としてタイムアウトエラーになっているのですね。いざとなればサンプルのように「Byte at Port」プロパティでポートに存在している文字数だけ読み取るようにすればタイムアウトは出なくなるので、ひとまず上記送信コマンドをお試しください。

0 件の賞賛
メッセージ6/9
3,085件の閲覧回数
解決策
トピック作成者stany2002が受理

VISA Test Panelの、Enable Termination Characterのチェックを入れてみてください。

0 件の賞賛
メッセージ7/9
3,083件の閲覧回数

こんにちは、先ほど試してみたところ無事エラーがなくなり真空計を読むことができました。これまで丁寧でわかりやすい解答、ありがとうございました。とても勉強になりました、これからもLabVIEWなどより学ぶよう努めていきます。これで大学の研究も進みそうです、改めて誠にありがとうございました。

0 件の賞賛
メッセージ8/9
3,055件の閲覧回数

無事読み取れたようで何よりです。実際に通信できるようになるといろいろとできるようになるかと思います。LabVIEWプログラミングはNIさんのトレーニングやYoutubeでいろいろと学べるはずです。

0 件の賞賛
メッセージ9/9
3,029件の閲覧回数