LabVIEWで16進数を10進数またはASCIIに変換する

更新しました Nov 12, 2020

環境

ソフトウェア

  • LabVIEW

  • LabVIEWで、16進値を10進値に変換するにはどうすればよいですか?現在、スキャン値機能を使用しようとしていますが、何に接続する必要があるのかわかりません。
  • 16進値の形式で情報を送り返す計測器と通信しています。たとえば、文字Lを送信する代わりに、対応する16進表現4Cを送り返します。この16進表現をLabVIEWで対応するASCII表現にプログラムで変換するにはどうすればよいですか?情報を16進数で機器に送り返す必要がある場合はどうなりますか?

16進数から10進数への変換

  1. 16進文字列を10進表現に変換するには、 スキャン値関数を使用します。この関数は、関数パレットの[プログラミング]»[文字列]»[文字列/数値変換]にあります。
  2. このVIの文字列入力端子を右クリックし、「作成」»「制御」を選択しますこれにより、文字列定数が生成されます。
  3. このVIのフォーマット文字列入力端子を右クリックし、「作成」»「定数」を選択します 16進形式を指定するには、この定数に%xを入力します。
  4. このVIのデフォルト(0dbl)入力端子を右クリックし、「作成」»「定数」を選択しますこの定数の表現を整数に変更します。これを行うには、定数を右クリックして[表現]を選択します次に、必要な値の範囲に最適な対応する整数を選択します。各データ型の値の範囲は、 数値データ型の表に概説されています。
  5. このVIの出力端子を右クリックして、「作成」»「インジケーター」を選択します。
  6. これらの手順を使用した最終結果の例を以下に示します。

16進数からASCIIへの変換

  1. 16進文字列をASCII文字列に変換するには、最初にスキャン値関数を使用して16進文字列を10進表現に変換する必要があります。上記の「 16進数から10進数へ変換」サブセクションの最初のステップ1〜5を完了します。
  2. 次に、関数パレットの[数学]»[数値]»[データ操作]にある型キャスト関数を使用して、小数表現を同等のASCII文字列に変換できます。
  3. 10進インジケータに接続されているワイヤをx入力端子に接続します。
  4. 型キャスト関数の*(type *)&x出力端子を右クリックし、[作成] » [インジケーター]を選択します
  5. これらの手順を使用した最終結果の例を以下に示します。

ASCIIから16進数への変換

  1. ASCII文字列を16進表現に変換するには、 Number to Hexadecimal StringFunctionを使用します。この関数は、関数パレットの[プログラミング]»[文字列]»[文字列/数値変換]にあります。
  2. このVIの終端にある16進整数文字列出力を右クリックし、「作成」»「インジケータ」を選択します
  3. タイプキャスト関数をブロックダイアグラムに配置します。このVIは、関数パレットの[数学]»[数値]»[データ操作]にあります。
  4. 型キャスト関数の端子に0値の数値定数を配線します。
  5. Type Cast Functionの*(type *)&x出力端子をクリックし、Number to HexadecimalString関数の数値入力端子に配線します。
  6. 型キャスト関数のx端子に文字列定数を配線します。
  7. これらの手順を使用した最終結果の例を以下に示します。

    追加情報

    上記のVIの16進文字列入力は、0xFFではなくFFの形式です。 0xは、数値が10進数ではなく16進数であることを示すための規則です。標準の16進文字列にはこのインジケータがないため、値を変換する前に削除する必要があります。この動作は、16進数の文字列から数値VIまでと同じであり、予想されます。 0xFF形式の文字列がある場合は、文字列がスキャン値VIに渡される前に、検索文字がxの検索/分割文字列VIを使用できます。