在LabVIEW中将十六进制转换为十进制或ASCII

更新 Nov 12, 2020

环境

软件

  • LabVIEW

  • 在LabVIEW中,如何将十六进制值转换为十进制值?当前,我正在尝试使用“扫描值功能”,但不确定需要连接什么。
  • 我正在与一种以十六进制值形式发送回信息的仪器进行通信。例如,不是发送字母L,而是发送回其相应的十六进制表示形式4C。如何在LabVIEW中以编程方式将此十六进制表示形式转换为其相应的ASCII表示形式?如果我需要将信息以十六进制形式发送回仪器该怎么办?

将十六进制转换为十进制

  1. 要将十六进制字符串转换为其十进制表示形式,请使用“ 扫描值功能” 。该函数位于“函数”选项板中的“编程»字符串»字符串/数字转换下
  2. 右键单击该VI的字符串输入端子,然后选择创建»控件。这将生成一个字符串常量。
  3. 右键单击该VI的格式字符串输入端子,然后选择创建»常量。要指定十六进制格式,请在此常数中输入%x。
  4. 右键单击该VI的默认(0dbl)输入端子,然后选择创建»常量。将此常量的表示形式更改为Integer。为此,右键单击常量,然后选择制图表达。然后选择最适合您所需值范围的整数。 数值数据类型表中概述了每种数据类型的值范围。
  5. 右键单击该VI的输出端子,然后选择创建»指示器
  6. 使用这些步骤的最终结果示例如下所示:

将十六进制转换为ASCII

  1. 要将十六进制字符串转换为ASCII字符串,必须首先使用“扫描值”功能将十六进制字符串转换为其十进制表示形式。首先完成上述“将十六进制转换为十进制”小节中的步骤1-5。
  2. 然后,您可以使用类型转换函数将十进制表示形式转换为等效的ASCII字符串,该类型转换函数位于“函数”选项板中的“数学”»“数字”»“数据操作”下
  3. 将连接到十进制指示器的电线连接到x输入端子。
  4. 右键单击Type Cast Function的*(type *)&x输出端子,然后选择Create »Indicator。
  5. 使用这些步骤的最终结果示例如下所示:

转换为ASCII十六进制

  1. 要将ASCII字符串转换为十六进制表示,请使用Number to Hexadecimal String Function 。该函数位于“函数”选项板中的“编程»字符串»字符串/数字转换下
  2. 右键单击该VI终端的十六进制整数字符串输出,然后选择创建»指示器。
  3. 类型转换功能放在程序框图上。该VI可在函数选板的数学»数值»数据操作下找到
  4. 将数值0的数值常量连接到Type Cast Function的type端子中。
  5. 单击“类型转换功能”的*(type *)&x输出端子,并将其连接到“数字转十六进制字符串函数”的数字输入端子。
  6. 将字符串常量连接到Type Cast函数的x端子。
  7. 使用这些步骤的最终结果示例如下所示:

    附加信息

    上述VI的十六进制字符串输入格式为FF而不是0xFF。 0x是约定,用于指示数字是基于十六进制而不是基于十进制。标准的十六进制字符串不带有此指示符,必须先将其删除才能转换值。此行为与编号为VI的十六进制字符串相同,并且是预期的。如使用0xFF格式的字符串,可在将字符串传递至“扫描值” VI之前使用搜索/分割字符串VI,其搜索字符为x。