工业自动化编程中,西门子字符串数据类型作为基础且关键的数据元素,具有广泛的应用。该数据类型以高效方式存储字符信息,最大长度可达254个字符,并支持丰富的功能块操作。
本文将系统介绍其结构、声明方式及核心功能块,包括长度计算、比较和位置查找等,通过实际案例展示其在结构化程序中的灵活运用。
字符串数据类型存储字符。字符串数据类型的字符范围为0至255;可在括号内指定具体字符范围。字符串是一种复合数据类型,用于存储多个字符,可理解为一个最多包含254个字符的一维数组。
数据类型字符串的格式
`string[n]`:其中 `n` 表示字符串的长度,最大允许长度为 254 个字符。若未指定长度,则默认值为 254 个字符。例如:
● 字符串[7]为“siemens”,长度为7个字符(不含空格),本存储区仅可容纳7个字符。
● 在本示例中,`string[8] = ‘plc blog’` 共包含 7 个字符和 1 个空格,因此总字符长度为 8。
字符串数据类型声明
创建一个数据块(DB),声明包含长度的字符串数据类型,并保存该数据块。
在此数据块中 input_string1 , input_string2 和output_string均为254个字符长度; input_string_lenth 则为6个字符长度。
字符串功能块
如需使用西门子字符串功能块,请依次进入“Projector”>“Libraries”>“IEC”,然后选择所需的串块。
基本字符串块:
● FC21 LEN
FC20 LEFT
FC32 RIGHT
● FC26 MID
● FC2 CONCAT
● FC17 INSERT
FC4 DELETE
FC31 REPLACE
● FC11 FIND
比较字符串函数块:
● FC10 EQ_STRNG
● FC13 GE_STRNG
● FC15 GT_STRNG
● FC19 LE_STRNG
● FC24 LT_STRNG
● FC29 NE_STRNG
转换字符串数据类型的格式
● FC16 I_STRNG
● FC5 DI_STRNG
● FC30 R_STRNG
● FC38 STRNG_I
● FC37 STRNG_DI
● FC39 STRNG_R
字符串函数块的一些示例
西门子长度 功能块FC 21:LEN
字符串变量包含两个长度值:最大长度(在定义变量时用方括号表示)和当前长度(即当前有效字符的数量)。当前长度必须小于或等于最大长度。字符串所占用的字节数始终比最大长度多出2个字节。FC21函数会将字符串的当前长度作为返回值输出;空字符串(‘ ’)的长度为零,最大长度为254。该函数不会报告任何错误。
FC 21 的参数
● 输入 S 是字符串数据类型
● 输出 RET_VAL 为INT数据类型
该函数块有一个字符串类型的输入参数,输出结果为整型;其输出值即为输入字符串的长度。例如,若输入字符串为“plc”,则输出值为3;若输入字符串为“plc blog”,则输出值为8(包含7个字符和1个空格)。
西门子等值串函数模块FC10 EQ_STRNG
FC10块是一个字符串比较模块,它会对比两个输入字符串;若两者相等则在输出端返回1(RET_VAL),否则返回0。
FC 10 的参数
● 输入 S1 和 S2 是字符串数据类型。
● 输出 RET_VAL 为bool数据类型
若S1的输入为‘Ssiemens’且S2的输入也为‘Siemens’,则输出 RET_VAL 为1;否则输出为0。
西门子查找功能块 FC11 FIND
函数FC11用于返回第二个字符串(IN2)在第一个字符串(IN1)中的位置。搜索从左端开始;首次出现该字符串的位置会被返回。若未在第一个字符串中找到第二个字符串,则返回零。该函数不会报告任何错误。
FC 11 的参数
● 输入 IN1 字符串数据类型:需在其中进行搜索的字符串变量
● 输入 IN2 字符串数据类型:待查找的字符串变量
● 输出 RET_VAL 为INT数据类型:所查找字符串的位置
● 若IN1的输入字符串为‘plc blog’且IN2的输入字符串为‘plc’,则输出 RET_VAL 为1;否则输出为0。
● 若IN1的输入字符串为‘plc blog’且IN2的输入字符串为‘blog’,则输出 RET_VAL 为5;否则输出值为0。
西门子等级大于或等于FC13级 GE_STRNG
FC13是一个字符串比较模块:若S1的字符串值大于或等于S2的字符串值,则输出 RET_VAL 为1;否则为0。
FC 13 的参数
● 输入 S1 和 S2 是字符串数据类型。
● 输出 RET_VAL 为bool数据类型
若s1的输入为‘plc‘且s2的输入值为‘blog’,则输出为0;若s1的值为‘plc’且s2的值也为‘plc’,则输出为1。
2026年8月