字符串删除 (DELETE)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。DELETE 指令可以从字符串中删除 ASCII 字符。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
DELETE(Source,Qty,Start,Dest);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
梯形图和结构化文本
操作数 | 类型 | 格式 | 说明 | 备注 |
|---|---|---|---|---|
Source | ANY_STRING | 标签 | 标签,从其中包含的字符串中删除字符 | 字符串类型包括: 默认 STRING 数据类型,字符串的最大长度为 82 个字符。 用户创建的任何新字符串类型,字符串的长度可以配置。 |
Quantity | SINT INT DINT | 立即数 标签 | 要删除的字符数 | Start 与 Quantity 之和必须小于或等于 Source 的长度加 1。 |
Start | SINT INT DINT | 立即数 标签 | 要删除的第一个字符的位置 | 输入介于 1 与 Source 的 DATA 大小之间的数值。 |
Destination | 字符串类型 | 标签 | 用于存储结果的标签 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
说明
DELETE 指令从 Source 中删除(移除)一个或多个字符,并将其余字符放在 Destination 中。
- Start 位置和 Quantity 用于确定要移除的字符。
- 除非 Source A 和 Destination 是同一标签,否则 Source A 保持不变。
影响数学状态标志
否
严重/轻微故障
在以下情况下会发生轻微故障: | 故障类型 | 故障代码 |
|---|---|---|
Source 字符串标签的 LEN 值大于 Source 字符串标签的 DATA 大小。 | 4 | 51 |
输出字符串的长度大于目标字符串标签的 DATA 大小。 | 4 | 52 |
Start 或 Quantity 值无效。 | 4 | 56 |
有关操作数相关的故障,请参阅 常用属性。
执行
梯形图
条件/状态 | Action |
|---|---|
预扫描 | 不适用 |
梯级输入条件为假 | 不适用 |
梯级输入条件为真 | 指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | Action |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
示例
来自终端的 ASCII 信息包含头字符。控制器读取数据后(term_read.EM 置位),DELETE 指令将删除该头字符。这样,控制器将可以使用消息文本或将其传递给另一个设备。
梯形图

结构化文本
IF term_read.EM THEN
DELETE(term_input,1,1,term_text);
term_read.EM := 0;
END_IF;
提供反馈