DELETE:删除字符串中的字符 (S7-300, S7-400) 说明 使用该指令,可从一个字符串中的第 P 个字符开始(包括该字符),删除 L个字符。 • 如果 L 和/或 P 等于零,或者 P 大于输入字符串的当前长度,则返回输入字符串。 • 如果 L 与 P的总和大于输入字符串长度,则一直删除到输入字符串的末尾。 • 如果 L 和/或 P 为负数,则返回空字符串,并将状态字的二进制结果(BR) 位设置为“0”。 参数 下表列出了指令“DELETE”的参数: 只能为参数 IN 和输出参数 RET_VAL指定一个用符号定义 的变量。 参数 声明 数据类型 存储区 说明 IN Input STRING* D、L 在其中执行删除操作的STRING 变量 L Input INT I、Q、M、D、L 或常 量 要删除的字符数 P Input INT I、Q、M、D、L或常 量 要删除的第一个字符的位置 OUT Return STRING* D、L 结果字符串 *如果在接口声明一个临时变量使用数据类型 STRING,那么需要定义字符串的Zui大长度(更多信息,请参见 该数据类型的说明)。有关有效数据类型的更多信息,请参见“有效数据类型概述 ”。 INSERT: 在字符串中插入字符 (S7-300, S7-400) 说明使用该指令,可将参数 IN2 中的字符串,添加到参数 IN1 中的字符串的第 P 个字符之后。 • 如果 P等于零,则第二个字符串将插在第一个字符串的前面。 • 如果 P 大于第一个字符串的实际长度,则将第二个字符串附加到第一个字符串后面。• 如果 P 为负数,则输出空字符串,并将状态字的二进制结果 (BR) 位设置为“0”。
如果结果字符串比输出参数中给定的变量长,也会将二进制结果位设置为“0”;在这种情况下, 将结果字符串限制为设置的Zui大长度。参数 下表列出了指令“INSERT”的参数: 只能为输入参数 IN1 和 IN2 及输出参数指定用符号定义 的变量。 参数 声明数据类型 存储区 说明 IN1 Input STRING* D、L 在其中执行插入操作的 STRING 变 量 IN2 InputSTRING* D、L 待插入的 STRING 变量 P Input INT I、Q、M、D、L 或常 量 插入位置 OUTReturn STRING* D、L 结果字符串 * 如果在接口声明一个临时变量使用数据类型STRING,那么需要定义字符串的Zui大长度(更多信息,请参见 该数据类型的说明)。有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 REPLACE: 替换字符串中的字符(S7-300, S7-400) 说明 使用该指令,可以将第一个字符串(IN1)的从第 P 个字符开始(包括该字符)的 L 个字符,用整个第二个字符串(IN2)替换。 • 如果 L 等于零,而 P 不等于零,则返回第一个字符串。 • 如果 L 和 P都等于零,则返回的结果为第二个字符串位于第一个字符串之前。 • 如果 L 不等于零而 P 等于零或1,则从第一个字符(包括该字符)开始替换。 • 如果 P 超出第一个字符串长度,则将第二个字符串附加到第一个字符串。 • 如果 L和/或 P 为负数,则返回空字符串,并将状态字的二进制结果 (BR) 位设置为“0”。 如果结果字符串比输出参数中给定的变量长,也会将二进制结果位设置为“0”;在这种情况下,将结果字符串限制为设置的Zui大长度。下表列出了指令“REPLACE”的参数: 只能为输入参数 IN1 和 IN2及输出参数指定用符号定义 的变量。 参数 声明 数据类型 存储区 说明 IN1 Input STRING* D、L在其中执行插入操作的 STRING 变量 IN2 Input STRING* D、L 待插入的 STRING 变量 L InputINT I、Q、M、D、L 或常 量 要替换的字符数 P Input INT I、Q、M、D、L 或常 量 第一个被替换字符的位置OUT Return STRING* D、L 结果字符串 * 如果在接口声明一个临时变量使用数据类型STRING,那么需要定义字符串的Zui大长度(更多信息,请参见 该数据类型的说明)。有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 FIND: 在字符串中查找字符 (S7-300,S7-400) 说明 使用该指令,可提供第二个字符串 (IN2) 在第一个字符串 (IN1) 中的位置。从字符串的左侧开始搜索。报告字符串第一次出现的位置。 如果第一个字符串中不存在第二个字符串,或者两个字符串相同,则返回 0。该指令不报告 任何错误。参数 下表列出了指令“FIND”的参数:只能为输入参数 IN1 和 IN2 指定用符号定义的变量。 参数 声明 数据类型 存储区 说明IN1 Input STRING* D、L 在其中执行查找操作的 STRING 变 量 IN2 Input STRING* D、L要查找的 STRING 变量参数 声明 数据类型 存储区 说明 OUT Return INT I、Q、M、D、L 找到的字符串位置 *如果在接口声明一个临时变量使用数据类型 STRING,那么需要定义字符串的Zui大长度(更多信息,请参见 该数据类型的说明)。有关有效数据类型的更多信息,请参见“有效数据类型概述。
过程映像 (S7-300,S7-400) UPDAT_PI: 更新过程映像输入 (S7-300, S7-400) 说明 使用该指令,可以更新输入的 OB1过程映像(= 过程映像分区 0)或根据组态定义的输入的 过程映像分区输入。 如果对于系统侧过程映像更新,已组态反复发送 I/O访问错误信号,则所选过程映像将始终 更新。 否则,只有在所选过程映像分区不再由系统进行更新时,才执行该更新。即: •如果没有将该过程映像分区指定给一个中断 OB, 或 • 如果已选择过程映像分区 0,并在组态时禁用了 OB1 过程映像分区更新。 说明根据组态分配给过程映像分区输入表的每一个逻辑地址不再属于 OB1 过程映像输入表。使用“UPDAT_PI”更新过程映像分区时,不能使用指令“SYNC_PI (页 7654)”进行更新。 OB1过程映像输入表的系统更新以及指定给中断 OB 的输入的过程映像分区的系统更新与“UPDAT_PI”调用无关。下表列出了指令“UPDAT_PI”的参数: 参数 声明 数据类型 存储区 说明 PART InputBYTE I、Q、M、D、L 或常 量 待更新的过程映像分区输入表数。Zui大 取值范围(取决于 CPU): 0 ~ 15(0 = OB1 过程映像;n (1 < n < 15) = 过程映像分区 n) RET_VAL Return INTI、Q、M、D、L 错误信息 FLADDR Output WORD I、Q、M、D、L 发生访问错误时,造成错误的第一个字 节的地址。有关有效数据类型的更多信息,请参见“有效数据类型概述。参数 RET_VAL 错误代码 (W#16#...) 说明 0000未发生错误。 8090 参数 PART 的值非法 8091 指定的过程映像分区还没有定义或不在 CPU 的允许过程映像区域内。8092 过程映像分区正由系统通过 OB 更新,但尚未为此组态反复发送所有 I/O 访问错误信号。未使用“UPDAT_PI”进行更新。 80A0 访问 I/O 时检测到访问错误。 8xyy 有关一般错误信息,请参见通过输出参数RET_VAL 评估错误 (页 184) 说明 如果为 DP 标准从站定义的一致性区域大于 32 个字节,并且将该指令用于该DP 标准从站的 过程映像分区,则会出现指令“DPRD_DAT (页 7699)”的错误代码。