CONCAT: 合并字符串 (S7-1200, S7-1500) 说明 使用指令“CONCAT”将 IN1 输入参数中的字符串与 IN2 输入参数中的字符串合并在一起。结 果以 (W)STRING 格式通过 OUT 输出参数输出。如果生成的字符串长度大于 OUT 输出参数中 指定的变量长度,则将生成的字符串限制到可用长度。 如果在指令的执行过程中发生错误而且可写入 OUT 输出参数中,则将输出空字符串。
在 SCL 中使用附加输入 在 SCL 中,可以使用附加输入来扩展“CONCAT”指令。附加输入的名称由“IN”和一个连续数字 组成。例如,附加输入的名称为“IN3”。 在此,需遵循以下规则: • Zui多允许使用 32 个输入。 • 第一个输入必须是“IN1”。 • 附加输入的编号必须是连续的,不允许间断。 • 输入的顺序不一定是连续的。LEFT: 读取字符串左边的字符 (S7-1200, S7-1500) 说明 使用指令“LEFT”提取以 IN 输入参数中字符串的第一个字符开头的部分字符串。在 L 参数中指 定要提取的字符数。提取的字符以 (W)STRING 格式通过 OUT 输出参数输出。如果要提取的字符数大于字符串的当前长度,则 OUT 输出参数会将输入字符串作为结果返回。 如果 L 参数包含值“0”或者输入值为空字符串,则将返回空字符串。如果 L 参数中的值为负数, 则将输出空字符串。 如果在指令的执行过程中发生错误而且可写入 OUT 输出参数中,则将输出空字符串。RIGHT: 读取字符串右边的字符 (S7-1200, S7-1500) 说明 使用该指令提取 IN 输入参数中字符串的Zui后一个 L 字符。在 L 参数中指定要提取的字符数。 提取的字符以 (W)STRING 格式通过 OUT 输出参数输出。 如果要提取的字符数大于字符串的当前长度,则 OUT 输出参数会将输入字符串作为结果返回。 如果 L 参数包含值“0”或者输入值为空字符串,则将返回空字符串。如果 L 参数中的值为负数, 则将输出空字符串。 如果在指令的执行过程中发生错误而且可写入 OUT 输出参数,则输出空字符串。根据输入参数 L(“extractNumber”)的值“4”,从右侧的第一个字符开始,从字符串 (“inputSTRING”)中提取一个字符的部分字符串四。提取的部分字符串通过输出参数 OUT (“outputExtractSTRING”)输出。MID: 读取字符串的中间字符 (S7-1200, S7-1500) 说明 使用该指令提取 IN 输入参数中字符串的一部分。使用 P 参数指定要提取的第一个字符的位 置。使用 L 参数定义要提取的字符串的长度。OUT 输出参数中输出提取的部分字符串。 请注意,该指令执行过程中需遵循以下规则: • 如果待提取的字符数量超过 IN 输入参数中字符串的当前长度,则输出部分字符串。部分 字符串从 P 字符串开始,到字符串结尾处结束。 • 如果 P 参数中指定的字符位置超出 IN 输入参数中字符串的当前长度,则 OUT 输出参数 中将输出空字符串。 • 如果 P 或 L 参数的值等于零或为负数,则 OUT 输出参数中将输出空字符串。 如果在指令的执行过程中发生错误而且可写入 OUT 输出参数中,则将输出空字符串。根据输入参数 L(“extractNumber”)的值“4”,从字符串(“inputSTRING”)中提取一个四字 符的部分字符串。从字符串(“inputSTRING”)的第三个字符(“startingPoint”的值为“3”)开 始提取。提取的部分字符串通过输出参数 OUT(“outputExtractSTRING”)输出。DELETE: 删除字符串中的字符 (S7-1200, S7-1500) 说明 使用该指令删除 IN 输入参数中字符串的一部分。使用 P 参数指定要删除的第一个字符的位 置。在 L 参数中指定要删除的字符数。剩余的部分字符串以 (W)STRING 格式通过 OUT 输出 参数输出。 请注意,该指令执行过程中需遵循以下规则: • 如果 P 参数的值为负数或等于零,则 OUT 输出参数中将输出空字符串。 • 如果 P 参数中的值大于 IN 输入中字符串的当前长度,则 OUT 输出参数中将返回输入字 符串。 • 如果 L 参数的值为零,则 OUT 输出参数中将返回输入字符串。 • 如果 L 参数中要删除的字符数大于 IN 输入参数中的字符串长度,则将删除从 P 参数指定 的位置开始的字符。将输出由此生成的字符串。 • 如果 L 参数中的值为负数,则将输出空字符串。 如果在指令的执行过程中发生错误而且可写入 OUT 输出参数中,则将输出空字符串。 参数 下表列出了“DELETE”指令的参数: 参数 声明 数据类型 存储区 说明 IN Input STRING, WSTRING D、L 或常量 字符串 L Input BYTE, INT, SINT, USINT I、Q、M、D、L 或常量 要删除的字符数 P Input BYTE, INT, SINT, USINT I、Q、M、D、L 或常量 要删除的第一个字符的位置 OUT Return STRING, WSTRING D、L 生成的字符串 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 示例 在以下示例中,将删除 STRING 数据类型字符串中的字符。INSERT:在字符串中插入字符 (S7-1200, S7-1500) 说明 使用该指令将 IN2 输入参数中的字符串插入到 IN1 输入参数中的字符串中。使用 P 参数指定 开始插入字符的位置。结果以 (W)STRING 格式通过 OUT 输出参数输出。 请注意,该指令执行过程中需遵循以下规则: • 如果 P 参数中的值超出 IN1 输入参数中字符串的当前长度,则 IN2 输入参数的字符串将 附加到 IN1 输入参数的字符串后。 • 如果 P 参数中的值为零,IN1 输入参数的字符串将附加到 IN2 输入参数的字符串上。 • 如果 P 参数的值为负数,则 OUT 输出参数中将输出空字符串。 • 如果生成的字符串的长度大于 OUT 输出参数中指定的变量长度,则将生成的字符串限制 到可用长度。将第二个字符串(“input2_STRING”)的字符插入第一个字符串(“input1_STRING”)。根据 参数 P(“startingPoint”)的值“3”,字符将插入第一个字符串(“input1_STRING”)的第三个 字符后。结果将通过输出参数 OUT”(“outputStrg1AndStrg2”)输出。REPLACE: 替换字符串中的字符 (S7-1200, S7-1500) 说明 使用该指令,可将 IN1 输入中字符串的一部分替换为 IN2 输入参数中的字符串。使用 P 参数 指定要替换的第一个字符的位置。使用 L 参数指定要替换的字符数。结果以 (W)STRING 格 式通过 OUT 输出参数输出。 请注意,该指令执行过程中需遵循以下规则: • 如果 P 参数的值为负数或等于零,则 OUT 输出参数中将输出空字符串。 • 如果 L 参数的值为负数,则 OUT 输出参数中将输出空字符串。 • 如果 P 等于 1,则 IN1 输入中的字符串将从(且包含)第一个字符开始被替换。 • 如果 P 参数中的值超出 IN1 输入参数中字符串的当前长度,则 IN2 输入参数的字符串将 附加到 IN1 输入参数的字符串后。 • 如果生成的字符串的长度大于 OUT 输出参数中指定的变量长度,则将生成的字符串限制 到可用长度。 • 如果参数 L 的值为 0,则将插入而非更换字符。适用条件与指令 INSERT 类似。另请参见 “INSERT:在字符串中插入字符 在以下示例中,用另一个字符串替换字符串的一部分。使用的数据类型为 STRING。 在全局数据块中创建五个用于存储数据的变量。”第二个字符串(“input2_STRING”)从第三个字符(“startingPoint”的值为“3”)开始添加到第 一个字符串(“input1_STRING”)。根据参数 L(“replaceNumber”)的值“2”,替换第一个字 符串(“input1_STRING”)的第三个和第四个字符。结果将通过输出参数 OUT”(“outputNewSTRING”)输出。FIND: 在字符串中查找字符 (S7-1200, S7-1500) 说明 使用该指令,可在 IN1 输入参数中的字符串内搜索特定的字符串。 • 使用 IN2 输入参数指定要搜索的值。搜索从左向右进行。 • OUT 输出参数中输出第一次出现该值的位置。如果搜索返回没有匹配项,则 OUT 输出参 数中将输出值“0”。 如果在 IN2 参数处指定了无效字符,或者处理期间出错,将在 OUT 参数处输出值“0”。 参数 下表列出了“FIND”指令的参数: 参数 声明 数据类型 存储区 说明 IN1 Input STRING, WSTRING D、L 或常量 被搜索的字符串 IN2 Input STRING, WSTRING D、L 或常量 要搜索的字符串 OUT Return INT I、Q、M、D、L 字符位置 有关有效数据类型的更多信息,请参见“有效数据类型概述”。 示例 在以下示例中,在另一个字符串中搜索一个字符串。使用的数据类型为 STRING。运行系统信息 (S7-1200, S7-1500) GetSymbolName: 读取输入参数的变量 (S7-1200, S7-1500) 说明 通过“GetSymbolName”指令,使用块的输入参数读出 VARIABLE 参数中互连变量的名称。 说明 OB 中的直接调用 在 OB 中,不能直接调用“GetSymbolName”指令。 说明 否定变量及块的输入参数 如果使用“GetSymbolName”连接与否定变量进行互连的块的输入参数,则始终返回一个空字 符串。