技术文章 - CS333015
字符串中的西门子 S5 字节交换
已修改: 23-Dec-2022
适用于
- 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