查找字符串 (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);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换
梯形图和结构化文本
操作数
类型
格式
说明
备注
Source
ANY_STRING
标签
要在其中进行搜索的字符串
字符串类型包括:
默认 STRING 数据类型,字符串的最大长度为 82 个字符。
用户创建的任何新字符串类型,字符串的长度可以配置。
Search
ANY_STRING
标签
要查找的字符串
Start
SINT
INT
DINT
立即数
标签
Source 中要开始进行搜索的位置
输入介于 1 与 Source 的 DATA 大小之间的数值。
Result
DINT
SINT
INT
标签
Source 中找到搜索字符串的位置
有关结构化文本中表达式语法的更多信息,请参阅 结构化文本语法。 说明 FIND 指令在 Source 字符串中搜索 Search 字符串。如果指令找到 Search 字符串,Result 会显示 Search 字符串在 Source 字符串中的起始位置。否则 Result 为零。影响数学状态标志,无严重/轻微故障
在以下情况下会发生轻微故障:
故障类型
故障代码
字符串标签的 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;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal