05-21-2014 02:48 AM
現在,計測機器に対しVISA書き込みにより16進数のコマンドを送信しようとしています。
「LabVIEWでNI-VISAを使用したバイナリ/16進数の送受信」というページを参考に
文字列定数を16進数に変更するところまでは理解したのですが,
01 03 0002 0002 65CB (1バイト 1バイト 2バイト 2バイト 2バイト) というコマンドを入力したいところ
0103 0002 0002 65CB (2バイト 2バイト 2バイト 2バイト) という2バイト区切りでしか入力することができません。
この場合はどのように対応したらよいのでしょうか?
ご教授の程お願い致します。
解決済! 解決策の投稿を見る。
05-22-2014 04:55 AM - 編集済み 05-22-2014 05:06 AM
Kazu38さん、
文字列の制御器・定数・表示器の「表示スタイル」を16進数に変更すると2バイトごとにグループされているに見えますが、実際のデータと自動的に入ったスペースは関係ありません。
問題点は16進数からデータに変換する時です。altenbachさんの例の通りですが、16進数の\00\07\00\08が U8(1バイトデータ)に変換された場合に0, 7, 0, 8になりますが、U16(2バイトデータ)に変換されたら7,8になりますし、U32(4バイトデータ)に変換されたら458760になります。
NI-VISAは\00\07\00\08だけを送っていますので、変換は機器の方にて行われています。機器は1バイト 1バイト 2バイト 2バイト 2バイトのデータを予想しているであれば現在の16進数の01030002000265CBのままで送ってもいいと思います。
05-23-2014 04:43 PM
foxhound73さん
無事解決致しました。
ありがとうございます。