查找字符串 (FIND)
此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。
FIND 指令在另一个字符串内定位指定字符串的起始位置。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
FIND (Source,Search,Start,Result);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
梯形图和结构化文本
有关结构化文本中表达式语法的更多信息,请参阅 结构化文本语法。
说明
FIND 指令在 Source 字符串中搜索 Search 字符串。如果指令找到 Search 字符串,Result 会显示 Search 字符串在 Source 字符串中的起始位置。否则 Result 为零。影响数学状态标志,无严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 常用属性。
操作数 | 类型 | 格式 | 说明 | 备注 |
|---|---|---|---|---|
Source | ANY_STRING | 标签 | 要在其中进行搜索的字符串 | 字符串类型包括: 默认 STRING 数据类型,字符串的最大长度为 82 个字符。 用户创建的任何新字符串类型,字符串的长度可以配置。 |
Search | ANY_STRING | 标签 | 要查找的字符串 | |
Start | SINT INT DINT | 立即数 标签 | Source 中要开始进行搜索的位置 | 输入介于 1 与 Source 的 DATA 大小之间的数值。 |
Result | DINT SINT INT | 标签 | Source 中找到搜索字符串的位置 |
在以下情况下会发生轻微故障: | 故障类型 | 故障代码 |
|---|---|---|
字符串标签的 LEN 值大于字符串标签的 DATA 大小。 | 4 | 51 |
Start 值无效,或 Source 字符串为空。 | 4 | 56 |
执行
梯形图
结构化文本
示例
条件 | Action |
|---|---|
预扫描 | 不适用 |
梯级输入条件为假 | 不适用 |
梯级输入条件为真 | 指令执行。 |
后扫描 | 不适用 |
条件 | Action |
|---|---|
预扫描 | 请参见“梯形图”表中的“预扫描”行 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行 |
来自
MessageView
终端的消息中包含多条信息。每条信息以反斜线字符 (\) 分隔。要定位一条信息,FIND 指令需搜索反斜线字符并将其位置记录在 find_pos 中。梯形图

结构化文本
IF MV_read.EM THEN
FIND(MV_msg,find,1,find_pos);
MV_read.EM := 0;
END_IF;
提供反馈