【发布时间】:2014-02-21 05:36:54
【问题描述】:
对于用Structured Text 编写的PLC 程序,我需要一个以ASCII 值0x01 0x01 0x01 0x00 0x12 开头的字符串。
在 Java 中我会这样做:
String literal = "\x01\x01\x01\x0\x12";
如何在 PLC 的结构化文本中实现相同的功能?
【问题讨论】:
标签: plc iec61131-3 structured-text
对于用Structured Text 编写的PLC 程序,我需要一个以ASCII 值0x01 0x01 0x01 0x00 0x12 开头的字符串。
在 Java 中我会这样做:
String literal = "\x01\x01\x01\x0\x12";
如何在 PLC 的结构化文本中实现相同的功能?
【问题讨论】:
标签: plc iec61131-3 structured-text
看来 IEC-61131 的转义序列是 $hh,所以只需使用
'$01$01$01$00$12'
查看STRING数据类型https://en.wikipedia.org/wiki/IEC_61131-3#Data_types
他们展示了一些使用 $ 作为转义序列字符的示例字符串文字(在 C/C++/Java 中为 \)
【讨论】:
试试这个:
VAR
string: STRING[5]:='abcde';
char : ARRAY[0..4] OF BYTE := 16#x01, 16#01, 16#01, 16#0, 16#12;
ptr : POINTER TO BYTE;
i : INT;
END_VAR
ptr:=ADR(string);
FOR i:=0 TO 4 DO
ptr^ = char[i];
ptr:=ptr+1;
END_FOR
【讨论】: