Skip to main content

 


 

工业自动化编程中,西门子字符串数据类型作为基础且关键的数据元素,具有广泛的应用。该数据类型以高效方式存储字符信息,最大长度可达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月