Найти в Дзене
Будни инженера

Как вставить в строку непечатаемый символ в CoDeSys

Если вы занимаетесь автоматизацией производства и используете для программирования ПЛК среду CoDeSys и/или языки стандарта МЭК, то наверняка вам приходится работать и со строками. Хотя в отличие от программирования компьютеров строки в автоматизации производства используются значительно реже, они таки используются (например, для вывода данных на ЖК-дисплее или панели оператора).

Ещё реже приходится включать в эти строки непечатаемые символы, такие как табуляция или перевод строки. Но, поскольку такая необходимость всё-таки может возникнуть, то надо знать, как это сделать.

А сделать это можно, используя знак доллара. Строка в CoDeSys заключается в одинарные кавычки, как и в Паскале. Если внутри этой строки встретится знак $, то следующее за ним шестнадцатеричное число будет распознаваться как ASCII-код символа. Так можно вывести любой символ, в том числе и непечатаемый. Кроме того, особые комбинации из двух символов, первым из которых является знак $, также интерпретируются особым образом:

  • $$ - знак доллара
  • $' - одиночная кавычка
  • $L или $l - перевод строки
  • $N или $n - новая строка
  • $T или $t - табуляция
  • $R или $r - разрыв строки
  • $P или $p - перевод страницы

Если вы используете код символа, то после знака доллара обязательно должно быть две шестнадцатеричных цифры, например:

$01

А если вы напишите $1, то это будет ошибкой.

А теперь пример. Исходный код на языке ST в CoDeSys 2 может быть таким:

Если запустить эту программу в режиме эмуляции, то вывод большинства непечатаемых символов вы не увидите:

-2

Чтобы увидеть, как это работает, надо либо выводить строки на какой-то реальный прибор, либо на визуализацию. Тогда можно убедиться, что это работает:

-3

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…