arrays - 如何在 Studio 5000 Logix Designer 梯形逻辑中将字符数组转换为字符串
问题描述
我有一个条形码扫描仪,它通过 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
为下一个条形码做好准备。
请注意,这些指令之前的逻辑已被剥离以减少混乱,因此假设这仅在读取条形码后执行一次扫描。如果条形码数据可能完全填充字符数组,您可能还需要额外的逻辑。
推荐阅读
- javascript - 闪亮的 Javascript 更改按钮文本
- azure-api-management - 用于维护的 Azure APIM 503 响应
- javascript - 如何用javascript点击按钮绘制一个圆圈
- r - 大data.frame的子集在fwrite后返回“未定义的列选择”错误
- java - 为什么 setLayoutParams 会重置 LayoutParams 中的边距?
- websocket - Kucoin .net sdk,websockets 连接问题
- python - 如何在 python 中使用 selenium 访问这个元素?
- kubernetes - Kubernetes 资源管理最佳实践
- swift - 类型“CGColor”没有成员“次要”-SwiftUI
- flutter - 同一进度指示器中的多个进度