技术文章 - CS333015

字符串中的西门子 S5 字节交换

已修改: 23-Dec-2022   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • Kepware Server (formerly KEPServerEX) 5.19.467.0 to 6.8
  • ThingWorx Kepware Server (legacy) 8.0 to 8.4

说明

在 KEPServerEX V5.15 中,Siemens S5 驱动程序得到增强以支持 String 数据类型的字节交换。字符串的长度可以是 2 到 254 个字符(字节)。假定所有字符串都采用 HiLo 字节顺序,这意味着对于每个寄存器(长度为 2 个字节)可以有 2 个字符。如果使用奇数字符串长度,或者如果将奇数个字符写入字符串并且使用了不正确的字节顺序,则可能会出现问题。例如,假设有一个地址为“DB1:KS0.5H”且写入值“AFTER”的变量。如果用户从地址为“DB1:KS0.5L”的标签读取它,他们会看到值“FAET”。这是因为标签正在使用 DB1 寄存器 0、1 和 2。三个寄存器中存储的实际值是 0x414651455200。字符串的最后一个字节是字符串终止符,它是一个 Null (0x00)。当交换字节顺序时,寄存器基本上被视为具有 0x464145540052 的值。更新标记值时,驱动程序会停在空值处。只要字符串中包含不可打印的字符,也会发生这种情况。 PLC 程序员应避免在将作为字符串的一部分读取的寄存器中包含控制字符(0x01 到 0x1F)或任何扩展字符(0xA0 到 0xFF)。
这是文章 333015 的 PDF 版本,可能已过期。最新版本 CS333015