NI製品ディスカッション

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

16進数

LabVIEWを使わずにVBまたはVC++で、計測器に直接16進方数値を送りたいのですが、通常の計測器関数では10進方数値や文字列コマンドしか受け付けません。どうしたら良いのでしょうか?
0 件の賞賛
メッセージ1/5
4,290件の閲覧回数
 計測器がどのような値を受け取るかは、仕様書に従うしかないと思います。10進数
の値しか受け取らない計測器に16進数の値を送ってもエラーが発生するだけだと思い
ます。計測器にとって見れば、送り主が LabVIEWなのかVBなのかは関係ないので、ど
ちらを使っても結果は同じだと思います。
 
 ちなみに、私が今動かしている Agilent L4450A 64bit Digital I/O は、値(出力
値)は 2進数と16進数を受け取りますが、値(測定値)は10進数です。どっちもデジ
タル値だから、どっちも 2進数と16進数を選ぶことができれば良いのにと思った時期
がありました。
 
 今はそういう製品なんだと諦めて(?)使っています。
0 件の賞賛
メッセージ2/5
4,250件の閲覧回数
ご指摘ありがとうございます。

GPIB-USB-HSを使っています。
送信の際に、たとえば

1."0x○○の前に何かコマンドを打ち込むと、16進数として認識する"
2.あるいは、VB上でビット演算変換する。

など人為的に直接16進数を読み込んでもらうプロトコルのようなものがあれば・・。
と思ったのですが、難しいようですね。

またぜひ、アドバイスお願いいたします。
0 件の賞賛
メッセージ3/5
4,212件の閲覧回数

> 2.あるいは、VB上でビット演算変換する。

 計測器は10進数しか受け取れないけど、プログラムには16進数で指示したい、とい
うのであれば、プログラムに16進数→10進数変換ルーチンを組み込むことで解決でき
ます。

 実際、L4450Aは 2進数と16進数しか受け取りませんが、私は10進数でプログラムに
指示しています。プログラムに10進数→ 2進数変換ルーチンを組み込んでいるわけで
す。
 逆に、L4450Aは測定値を10進数で送ってきます。これだとどのビットが Hでどのビ
ットが Lなのかが判りにくいので、これを 2進数や16進数に変換するルーチンを組み
込んでいます。

  N進数変換は、『文字列にフォーマット』で簡単に出来ます。“2進数から16進数”
のスレッドにサンプル・コードをアップしてあります。


 御参考までに。

0 件の賞賛
メッセージ4/5
4,192件の閲覧回数
参考になりました。ありがとうございます。


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