1

我有一个条形码扫描仪,它通过 RS232 与 1756-L75 ControlLogix PLC 通信。

来自扫描仪的数据逐字节读取,并以SINT字符形式存储在数组中。它包括标题和条形码数据。条形码数据的长度是可变的。

我需要将此字符数组转换为正确的STRING数据类型。

我知道我可以将数组复制到字符串的数据部分,但我正在寻找填充长度的最佳方法。

是否有内置指令可以自动执行此操作,或者我需要计算它吗?

4

1 回答 1

0

我当前(未经测试)的解决方案如下。

我假设在读取数据之前清除字符数组和字符串。

  1. 执行FSC(文件搜索和比较)。
    • 在这里,我填充.LEN了字符数组的大小。这确保指令将搜索到数组的末尾。
    • 搜索仍然为空的第一个元素
    • FSC报告它找到的元素的索引。这等于实际数据的长度
 char  -> 'd' 'a' 't' 'a' $00 $00
 index ->  0   1   2   3   4   5
                           ^
.POS = 4
  1. FSC结果 ( .POS) 移到字符串的.LEN
  2. 将字符复制到字符串数据
  3. 对数据做你需要的事情,然后清除字符数组,清除字符串,然后重置FSC为下一个条形码做好准备。

梯形逻辑截图

请注意,这些指令之前的逻辑已被剥离以减少混乱,因此假设这仅在读取条形码后执行一次扫描。如果条形码数据可能完全填充字符数组,您可能还需要额外的逻辑。

于 2020-01-02T22:11:20.320 回答