Как записать значение ASCII в строку в структурированном тексте для ПЛК?
Для программы ПЛК, написанной на структурированном тексте, мне нужна строка, которая начинается со значений ASCII 0x01 0x01 0x01 0x00 0x12
,
В Java я бы сделал это с:
String literal = "\x01\x01\x01\x0\x12";
Как я могу добиться того же в структурированном тексте для ПЛК?
2 ответа
Решение
Похоже, что escape-последовательность IEC-61131 составляет $hh, поэтому просто используйте
'$01$01$01$00$12'
см. тип данных STRING https://en.wikipedia.org/wiki/IEC_61131-3
они показывают некоторые примеры строковых литералов, используя $
как символ escape-последовательности (аля \
в 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