NI製品ディスカッション

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

VISAによるシリアル通信でREAD時にタイムアウトエラーが出ます。タイムアウト時間を延ばしても同様です。どのような理由が考えられますか?

現在Labviewについて勉強しているものです。シリアルによるVISAセッションにてREAD時にタイムアウトエラーが出ます。VISAopen後にタイムアウト時間を設けても改善されません。 MAXのVISATESTではうまくいくのですが・・・・・
 制御対象は、Agilent34401Aです。 何か、考えられることがあったら教えていただきたいです。
 
 
 
 
0 件の賞賛
メッセージ1/3
9,664件の閲覧回数
こんにちは。佐山です。

色々な可能性が考えられます。
コマンドを送ってその返答を待つタイプなのか、
あるいは一方的に受け待ちのタイプなのかでも変わってきます。

1)正常に接続が確立しているか?
 まずは通信設定が双方同じであること、
 又ケーブルの接続に問題ないことを確認します。

2)やり取りは正常に出来る保証があるか?
 別のアプリケーションやメーカー製のテストプログラムなど、
 実際に動く物があるのであれば環境の相違を確認します。

3)コマンドは正しく到達しているか?
 コマンド方式の場合、相手側に送るコマンドが間違っていると、
 そも正常な応答を返さないでしょう。

4)受信に本来どれくらいの時間がかかるのか?
 受信待ち形式の場合は実際にデータが来るまで
 どれくらいの時間がかかるのか知っておく必要があります。
 短いタイムアウト時間で待っていても、
 それ以上時間のかかる通信の場合には無意味になってしまいます。

VISAオープンによる設定より、
VISA Configure Serial Portを使った方がベストでしょう。
(受信タイムアウト時間も設定できます)

向こうから送られてくるデータの終端に固定の文字がある場合、
それを終了文字として設定するのも手段の一つです。

とにかくまずはデータが送られてきているのにLabVIEWで見れないのか、
あるいはデータがそもそも送られてきていないのか、
そこを明確にする必要があります。

以上ご参考になれば幸いです。
0 件の賞賛
メッセージ2/3
9,653件の閲覧回数

佐山様

貴重なアドバイスありがとうございました。

いろいろと検証してみた結果、コマンド終了文字が的確に送信されていなかったことによる不具合である事が判明しました。

初歩的な質問にもかかわらず、ご助言いただけたことを感謝しております。

返信が遅れました事をお詫び申し上げます。

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