NI製品ディスカッション

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

VisaRead関数で読み取る値が、直前にVISAWrite関数で指示した値と異なってしまう問題

添付したVIは、シリアル通信を用いて、ピエゾステージとカメラを制御するプログラムです。

VISA Write関数を用いてピエゾステージを移動させ、VISA READ関数を用いてピエゾステージの位置を読み取っています。

ピエゾステージは、たとえば0.1ミクロンずつ、0.1、0.2、0.3とZ座標を移動させていくのですが、

read関数から読み取られる値は、1つずつずれてしまいます。

どういうことかというと、たとえばwrite関数で0.3に移動させた後にRead関数で読み取られる値は0.2になります。

write関数の後にread関数があるにも関わらず、read関数で読み取られる値は、直前に指示した値ではなく、そのさらに1つ前の値になります。

この理由がよくわからないので困っているのですが、どなたか教えていただけないでしょうか?

 

 

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

Shigeru187 様

 

いつもお世話になっております。

日本ナショナルインスツルメンツ技術部の巳波と申します。

 

ご利用のピエゾステージがどういった仕様になっているかは存じ上げておりませんが、

 

  • 0.3、0.2、0.1 というふうに逆方向に動かしていった場合
  • 0.1、0.1、0.1  というふうに同じ値を書き込む(つまり動かさない)場合
  • 「高速測定」制御器の True/False を切り替えた場合

 

をご確認頂けましたら、トラブルシューティングのヒントになるかと存じます。

 

宜しくお願い致します。

*********************************************************************************
日本ナショナルインスツルメンツ株式会社 技術部 巳波裕介
Yusuke Minami, Applications Engineering, National Instruments Japan
技術サポートウェブページ: http://www.ni.com/support/ja
お問い合わせフリーダイヤル: 0120-527196
*********************************************************************************
0 件の賞賛
メッセージ2/3
2,757件の閲覧回数

0.3、0.2、0.1 というふうに逆方向に動かしていった場合にも、やはり1つ手前に指示した値が表示されました。

すなわち0.2と指示した後に、0.3と表示されました。

同じ値を書き込む場合には、最初の2回は、前回のピエゾの位置が表示され、3回目の移動指示の後から正しい移動位置の値が表示されました。

高速測定を切り換えても、症状は変わりません。

 

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