From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

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

[イーサネット接続におけるエラー]

こんにちは。

 

現在、イーサネット接続をして、EEI-110型からlabviewでデータを読み取ろうとしています。

 

NIMAXを利用して、通信できているか確かめているのですが、VISAテストパネルでクエリしても「0xBFFF0015操作が完了する前にタイムアウトが経過しました」となります。

ただ、VISAテストパネルでライトした場合、タイムアウトなしでEEI-110型に信号を送ることができ、EEI-110型を制御することができます。

 

なぜ、クエリだけはタイムアウトになるのか教えていただきたいです。

0 件の賞賛
メッセージ1/7
2,750件の閲覧回数

"クエリ"はコマンドを送信し、かつ計測器からのデータを読み取るメソッドです。

 

現在クエリ送信されているコマンドは計測器からデータが返ってくるコマンドですか?

データのバイト数はいくつでしょう?終端文字は付加されています?

そうでなければクエリではタイムアウト、ライトでは制御ができるという現象は納得がいきます。

 

成功しているライトのコマンドは、データが返ってこないものですよね?

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/7
2,715件の閲覧回数

返信ありがとうございます。

 

クエリ送信しているコマンドはデータが返ってくるコマンドだと思われます。

コマンドプロンプトを使用してコマンドを入力したら、データが返ってきたため、

データが返ってくるコマンドだと考えられます。

 

データのバイト数ですが、この計測器はnというコマンドを入れると現在計測している磁場を

0000000~9999999の数字の内、あてはまる磁場(データ)が返ってきます。

0000000~9999999の数字なので1024バイトで足りると考え1024バイトにしました。

 

終端文字ですが、添付するVISAテスト画面に映る¥n¥rのことでしょうか。

 

成功しているライトのコマンドですが、データが返ってこないものです。

 

以上、よろしくお願い致します。

 

すべてをダウンロード
0 件の賞賛
メッセージ3/7
2,691件の閲覧回数

こんにちは

 

> なぜ、クエリだけはタイムアウトになるのか教えていただきたいです。

 

一つ前の回答ですでに解決されているように思いますが。。。

タイムアウトエラーは、指定したタイムアウト時間内に指定したバイト数のデータが受信できなかった場合に発生するものですので、QueryやReadの際には発生しますが、コマンドをWriteする場合(受信の)タイムアウトエラーにはなりません。

 

VISA TestPanelから「Query」した時に応答は返ってきているのに、なぜタイムアウトエラーになるのか?という意味と解釈して回答します。

 

おそらくですが、I/O Setting画面でTerminationCharを設定していないためかと思います。

NI-MAXからデバイスを選択して、VISA TestPanelを開いたときには、デフォルトで、「EnableTerminationChar」(終端文字列を有効にする)にチェックが入ってない状態になっていますので、タイムアウトになるまでに、指定したバイト数分のデータがこなければエラーになります。

 

貼り付けたキャプチャー画像を参考に設定してみてください。

 添付されていたVISAテスト画面を見るとで、終端に「¥r¥n」がついてますので、終端文字は「LineFeed -¥n」でよいかと思います。

VISA TestPanel画面のConfigurationボタン -> I/O Settingタブ画面に「EnableTerminationChar」の設定があります。

設定した後に「ApplyChanges」ボタンを押してください。

そのあと、nコマンドをQueryしてもTimeoutエラーにはならないはずです。

かわりに終端文字が見つかりましたというメッセージが出るかもしれませんが

それはエラーではありません。

 

VISATestPanel_TCPSOCKET_EnableTermChar_Setting.PNG

0 件の賞賛
メッセージ4/7
2,674件の閲覧回数

返信ありがとうございます。

 

丁寧な説明、ありがとうございます。

 

 I/O Settingタブ画面に「EnableTerminationCharacter」で終端文字を「LineFeed -n」に変更し、nコマンドでクエリしたら添付した図のようになりタイムアウトエラーが消えました。

ありがとうございました。

 

申し訳ありませんが、もう2つ質問があります。

 

1つ目ですが、「EnableTerminationCharcter」で終端文字を「LineFeed -n」に変更し、

ApplyChanges」ボタンを押したのですが、VISAテストパネルを一回閉じた後に、

もう一回VISAテストパネルを開くと、「EnableTerminationCharacter」が選択されていない状態になっていました。

VISAテストパネルを閉じてしまうと、「EnableTerminationCharacter」が選択されていない状態に戻ってしまうのでしょうか?

 

2つ目ですが、このイーサネット接続を利用してlabview7ケタのデータを計測したいと考えています。

計測器I/Oアシスタントでクエリを行い、その結果であるトークンを利用してデータを出力しようと考えているのですが、計測器I/Onを実行しても添付した図のようにタイムアウトになってしまいます。この原因について何かご存知でしょうか?

 

以上、よろしくお願い致します。

すべてをダウンロード
0 件の賞賛
メッセージ5/7
2,630件の閲覧回数

@maru1000

こんにちは

 

先に2つ目の質問から 

> 2つ目ですが、このイーサネット接続を利用してlabview7ケタのデータを計測したいと考えています。

> 計測器I/Oアシスタントでクエリを行い、その結果であるトークンを利用してデータを出力しようと考えているのですが、計測器I/Oで> nを実行しても添付した図のようにタイムアウトになってしまいます。この原因について何かご存知でしょうか?

 

計測器I/Oアシスタントは使ったことがありませんが、先の質問のTestPanelの場合と、今回の計測器アシスタントという

違いはありますが、同じように終端文字の設定の問題かと思います。¥nに設定してみてください。設定方法は

 

計測器I/Oアシスタント「計測器を選択ボタン」を押すと設定画面に戻りますので、その画面で「終了文字」を¥nにします。

その後、再度クエリを実行してみてください。この時コマンド入力の右端 には¥nと表示されているはずです。

 

lavbiew計測画面_withComment.png



> 1つ目ですが、「EnableTerminationCharcter」で終端文字を「LineFeed -n」に変更し、

> 「ApplyChanges」ボタンを押したのですが、VISAテストパネルを一回閉じた後に、

> もう一回VISAテストパネルを開くと、「EnableTerminationCharacter」が選択されていない状態になっていました。

> VISAテストパネルを閉じてしまうと、「EnableTerminationCharacter」が選択されていない状態に戻ってしまうのでしょうか?

 

VISAテストパネルでは計測器の通信設定などを記憶(保存)していないため、と思います。

推測ですが、テストパネルはあくまでも通信テスト用のツールで、いろいろな種類の計測器との通信の調査を行う前提のもので、

前回設定が記憶されているのはむしろ不都合、ということではないでしょうか。 

計測器I/Oアシスタントと連動を考えるなら、その設定を引き継いでくれたら便利なのでしょうね。

 

0 件の賞賛
メッセージ6/7
2,575件の閲覧回数

返信ありがとうございます。

 

返事にあった方法で実行することができました。

 

質問に答えていただき、ありがとうございました。

 

 

0 件の賞賛
メッセージ7/7
2,561件の閲覧回数