NI製品ディスカッション

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

R6552 RS-232C制御

ADVANTEST R6552をRS-232Cで表示値データを取り込む場合に

4回ぐらい問い合わせないと返ってきません。

ADVANTESTに確認した所、

>・クエリコマンドの場合
> *IDN? の例
>
> 応答
> LF
> ADVANTEST・・・・・CRLF
> LF
> =>CRLF

>・通常のコマンド
> *CLS の例
>
> 応答
> LF
> =>CRLF
>
>viWriteはLFで受信を打ち切るためクエリコマンドの場合は都合4回
>viWriteを実行することにより全ての応答を読み出すことができます。 

>クエリコマンド以外の通常コマンドもコマンドの受信後に必ず
>LF=>CRLFを応答します。これを受信しておかないと、
>以降のクエリコマンドで以前の読み出されていなかった応答が
>出力されてしまい期待通りの結果とならない場合があります。

 

strsetcmd = "read?"
Call Send(strsetcmd) 
Call Receive(strGetCmd) 

上記のコードで送っています。

 

ADVANTESTの回答の通りに送るには上記のコードをどのようにして送ったらいいか教えてください。

0 件の賞賛
メッセージ1/4
5,079件の閲覧回数

開発言語とライブラリは何を使用していますか?

 

日本NI 上野

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

EXCEL VBAでNI-VISAを使っています。

今まではNI-VISAでUSB、GP-IB、RS-232Cを使っていましたがADVANTEST R6552は

GP-IBは今まで通りに使用できたのですが

RS-232Cでは問い合わせで送った通りに数回送らないと返ってきません。

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

シリアルのほうが制限が多いので大変です。

シリアルの場合は、終端文字としてEOL(CR + LF)はviSetAttributeで対応していません。

下記のリンク先にも記載されています。

 

http://www.ni.com/tutorial/4256/en/#toc7

 

上記の例では、Scan(VISAならviScanf)を使っていますが、何らかの処理をさせなければいけません。

ほかには、バッファサイズをチェックする方法もあります。

 

「serial vbCrLf buffer」というキーワードで検索してみてください。

 

 

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