我有一个条形码扫描仪,它通过 RS232 与 1756-L75 ControlLogix PLC 通信。
来自扫描仪的数据逐字节读取,并以SINT
字符形式存储在数组中。它包括标题和条形码数据。条形码数据的长度是可变的。
我需要将此字符数组转换为正确的STRING
数据类型。
我知道我可以将数组复制到字符串的数据部分,但我正在寻找填充长度的最佳方法。
是否有内置指令可以自动执行此操作,或者我需要计算它吗?
我有一个条形码扫描仪,它通过 RS232 与 1756-L75 ControlLogix PLC 通信。
来自扫描仪的数据逐字节读取,并以SINT
字符形式存储在数组中。它包括标题和条形码数据。条形码数据的长度是可变的。
我需要将此字符数组转换为正确的STRING
数据类型。
我知道我可以将数组复制到字符串的数据部分,但我正在寻找填充长度的最佳方法。
是否有内置指令可以自动执行此操作,或者我需要计算它吗?
我当前(未经测试)的解决方案如下。
我假设在读取数据之前清除字符数组和字符串。
FSC
(文件搜索和比较)。
.LEN
了字符数组的大小。这确保指令将搜索到数组的末尾。FSC
报告它找到的元素的索引。这等于实际数据的长度。 char -> 'd' 'a' 't' 'a' $00 $00
index -> 0 1 2 3 4 5
^
.POS = 4
FSC
结果 ( .POS
) 移到字符串的.LEN
FSC
为下一个条形码做好准备。请注意,这些指令之前的逻辑已被剥离以减少混乱,因此假设这仅在读取条形码后执行一次扫描。如果条形码数据可能完全填充字符数组,您可能还需要额外的逻辑。