Строки в Python с \r\n без рендеринга перевода строки каретки в тегах SCADA

У меня есть сценарий Python, где я строю строку по одной строке за раз. Я добавляю '\r\n' в конце каждой строки строки, за исключением последней строки. Эта строка записывается в тег в Ignition SCADA. Когда я проверяю содержимое тега, где '\r\n' должен был создать возврат каретки / новую строку, все, что у меня есть, это пробел (' ').

Любая идея, почему это ведет себя так и что я могу сделать, чтобы строка правильно отформатировать?

Спасибо!

Изменить: вот код:

myStr = ''
for i in range(1, 10):
    myStr += 'This is line ' + str(i) + '.\r\n'
resp = system.tag.write('myStrTag', myStr)
print myStr

0 ответов

Зажигание очищает входные данные для этих строковых тегов. Вы не можете иметь многострочные строки, но он "знает", что вы хотели включить это. Таким образом, он переводит ваш ввод в символ пробела, а не оставляет его как литерал "\r\n". Если вы хотите иметь это, вы можете включить два символа обратной косой черты.

myStr += 'This is line ' + str(i) + '.\\r\\n'

Если вы хотите, чтобы строка отображалась на экранах в виде нескольких строк, вам нужно отформатировать ее как строку HTML. Это метод, который Ignition использует для хранения и отображения строк с дополнительным форматированием. На самом деле он работает довольно хорошо и может понимать большинство атрибутов HTML и CSS. Пример предоставлен ниже.

myStr = '<html>'
for i in range(1, 10):
    myStr += 'This is line ' + str(i) + '<br>'
myStr += 'This is the final line' + '</html>'
resp = system.tag.write('[default]Development/String Testing', myStr)
print myStr
Другие вопросы по тегам