使用复合字符串

许多触发器动作使用复合字符串,可让您使用系统中变量的值来构建复杂字符串。如果您熟悉编程,复合字符串与“printf()”之类的函数类似。

以下示例所示为在其 Message(消息)参数中使用复合字符串的 Log Message(日志消息)动作。此动作执行时,将使用参数以及替换变量 $(trig) 和 $(devicevar) 中的文本动态地构建消息。变量 $(trig) 定义为使用包含触发器名称的触发器宏 Macros.$TRIGGER。变量 $(devicevar) 定义为使用设备变量 globVar.TriggerStatusChange1 的值。

请注意,在 Message(消息)参数中键入替换变量 $(trig) 和 $(devicevar) 时,它们将作为参数添加到 Input(输入)选项卡中。您可以定义这些值以引用任何已启动设备、常量、触发器宏、触发器局部变量、触发器静态变量或事件变量,这些变量可从针对该行的 Value(值)单元格显示的下拉列表中获取。

当执行触发器和此示例 Log Message(日志消息)动作时,将动态地构建消息并写入异常日志:

  • 替换变量 $(trig) 已替换为 Macros.$TRIGGER 的值。在此情况下,示例触发器的名称为 Compound_string_example。
  • 替换变量 $(devicevar) 已替换为设备变量 globVar.TriggerStatusChange1 的值。在此情况下,设备变量的值为 1。

浮点值限制

当前无法限制打印时浮点值的精度,这可能会导致在打印浮点值时小数点后出现大量数字。为避免此问题,您可能希望首先将浮点值转换为整数值,从而防止打印任何小数点。

支持的转义字符

构建字符串时,可能需要在字符串中插入特殊字符,例如新行或 null 终止符。  复合字符串处理程序使用反斜杠作为转义字符来标明转义序列的开始。下表所示为支持的转义序列。  如果指定了无效的转义字符,该序列将被忽略,并且将在不包含转义序列以及字符串中不包含“\”的情况下构建复合字符串。 

使用复合字符串功能构建字符串时,支持以下控制字符。 

模式 结果
\t 制表符
\r 换行符
\n 新行字符 (0x0A)
\xNN 以十六进制表示法指定的任何字符,例如 \x35 将打印数字 5。
警告:不应使用 \x00 指定嵌入的 null。
\0 Null - 不支持用于嵌入的 null。在处理时使用字符串长度的字符串函数不会产生预期的结果。
放置反斜杠 \ 字符
$$ 放置美元符号 $ 字符