LabVIEW中在VISA串行写入时加入终止符

更新 Dec 5, 2023

环境

驱动

  • NI-VISA

我的串行仪器需要终止字符,但是当我使用VISA串行VI向串口发送命令时,有时无法添加LF(换行),CR(回车)或EOL(行结束)在字符串发送的末尾。如何添加所需的终止字符?

您需要在NI-VISA驱动程序中为写入属性设置终止字符使能、终止字符和串行结束模式。
  1. 右键单击程序框图并选择Instrument I/O»VISA»Advanced»VISA Property Node,创建一个VISA属性节点 。
  2. 展开VISA属性节点以适应三个属性。
  3. 右键单击属性节点,然后选择“全部更改为写入”
  4. 要选择属性:右键单击“属性”,然后选择属性»Message Based Settings»Termination Character Enable
  5. 右键单击并选择属性»Message Based Settings»Termination Character
  6. 右键单击并选择属性»Serial Settings»End Mode for Writes 。
  7. 将True常量连接到TermChar En属性。
  8. 将要附加的ASCII字符的十进制值连接到TermChar属性。 Linefeed的十进制值为10,Carriage Return的十进制值为13. End of Line字符是Carriage Return后跟换行符的组合,不支持通过此方法作为终止字符。对于允许多个终止字符的替代方法,或者如果您不确定终止字符的ASCII值,请参阅NI-VISA中关于终止字符的白皮书。
  9. 右键单击ASRL End Out属性,然后选择Create »Constant 。这将创建终端字符选项的枚举。从枚举列表中选择TermChar


现在,您的所有写入都将自动以该字符终止。

Additional Information

  1. 注意: TermChar En和TermChar仅用于读取,并且TermChar En必须设置为true才能设置TermChar属性。或者,ASRL End Out用于读取和写入。

    或者,您可以使用Concatenate Strings函数来构建要发送到串行端口的字符串。 LabVIEW有三个常用的终止字符,它们是字符串函数选项板中的字符串常量:回车常量,换行常量和行结束常量。

    如果您需要的不是预先制作的LabVIEW常量,您可以随时创建自己的。在程序框图上创建一个字符串常量,然后右键单击它。从弹出菜单中选择“\”代码显示 。现在您可以使用代码显示格式。有关详细信息,请参阅下面的终止字符代码表

    终止字符代码表
    终止字符代码显示
    换行(LF)

    \n

    回车(CR)

    \r

    行尾(EOL)

    \r\n

    换页(FF)

    \F

  2. 请记住,物理硬件上的终止需要符合相应的串行标准。如果物理硬件上的终端不正确,则会导致软件端的终止字符出现问题。