北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8641038

西门子SCL编程入门教程连载(20)——字符串指令

前面的文章我们介绍了字符串数据类型(西门子SCL编程入门教程连载(18)——字符串),今天这篇文章,我们来介绍下字符串的操作指令,包括:

①获取字符串当前长度指令;

②获取字符串最大长度指令;

③读取字符串左侧字符指令;

④读取字符串右侧字符指令;

⑤读取字符串中间字符指令;

cover.png

以下例程中,我们假设已经定义了字符串变量tmpString和整数变量tmpLen,如下图所示:

字符串定义.png

1、获取字符串当前长度指令

我们知道,字符串的结构中,其前两个字节分别表示其最大长度和当前长度。指令LEN可以获取字符串的当前长度,并返回到输出参数中,其基本语法如下:

Out := LEN(_string_in_);

输入参数“_string_in_”可以是字符串或者宽字符串,返回值Out是整数。

要获取字符串变量tmpString的当前长度,可以使用下面的代码:

获取字符串当前长度.png

执行指令后,tmpLen的值等于10。
2、获取字符串最大长度
指令MAX_LEN可以获取字符串的最大长度,并返回到输出参数中,其基本语法如下:

Out := MAX_LEN(_string_in_);

输入参数“_string_in_”可以是字符串或者宽字符串,返回值Out是整数。仍然以前面的tmpString为例,获取其最大长度可以使用下图的代码:

获取字符串最大长度.png

执行指令后,tmpLen的值等于29。
3、读取字符串左侧字符
指令LEFT可以读取字符串左侧指定长度的字符并返回,其基本语法是:

Out := LEFT(IN:=_string_in_, L:=_int_in_);

该指令有两个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
返回值Out是读取到的字符串。
举个例子:要求读取上述字符串tmpString左侧的5个字符并返回。

首先声明字符串 tmpSubString  String[15],然后使用下图的代码:

获取左侧字符串.png

执行指令后,tmpSubsting的值为’Hello’。
4、读取字符串右侧字符
指令RIGHT可以读取字符串右侧指定长度的字符并返回,其基本语法是:

Out := RIGHT(IN:=_string_in_, L:=_int_in_);

该指令有两个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
返回值Out是读取到的字符串;
举个例子:在上述基础上,读取字符串tmpString右侧的4个字符,并存放到tmpSubString中,可以使用下图的代码:

读取右侧字符串.png

执行指令后,tmpSubsting的值为’Jack’。
5、读取字符串中间字符
指令MID可以从字符串的指定位置开始,读取指定长度的字符并返回,其基本语法是:

Out := MID(IN:=_string_in_, L:=_int_in_, P:=_int_in_);

该指令有三个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
3)P(_int_in_):读取的起始位置,编号从1开始;
返回值Out是读取到的字符串。
举个例子:假设要读取字符串’Hello China,you are great’从第7个字符开始、长度为5的字符,可以使用下图的代码:

Mid.png

执行指令后,tmpSubsting的值为’China’。

字符串的操作指令还包括插入字符串指令(INSERT)和字符替换指令(REPLACE),限于篇幅就不一一介绍了。如果你感兴趣的话,可以看下我的书《西门子S7-1200/1500  PLC SCL语言编程 ——从入门到精通》,第11.2节有很详细的介绍。点击左下角【阅读原文】可以看到该书的详细介绍,购买链接如下:


取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论