首页 > 解决方案 > 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

标签: pythonscada-ignition

解决方案


Ignition 正在清理这些字符串标签的输入。你不能有多行字符串,但它“知道”你想要包含它。因此,它将您的输入转换为空白字符,而不是将其保留为文字“\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

推荐阅读