课程中心
HOME
课程中心
正文内容
plc编程tmp 西门子SCL编程入门教程连载(18)——字符串
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

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

今天这篇文章,我们来聊聊西门子S7系列PLC的一种数据类型——字符串。

本文包括如下几个主题:

什么是字符串;怎样声明字符串变量;怎样给字符串变量赋值;

1、什么是字符串

字符串(string)是字符(character)的集合。

在西门子S7-300/400/1200/1500系列PLC的编程中,字符串是一种数据类型。该数据类型最多占用256个字节的存储区,最多可以存储254个字符,剩下的2个字节用来存储字符串的最大长度和当前长度。

字符串类型的结构定义如下图所示:

由字符串的定义可以得知,字符串变量在存储时其占用存储区大小比字符数多2个字节。比如字符串'Name'有4个字符,它实际占用6个字节的存储区;

特别说明:西门子S7-200 SMART中字符串的定义稍有不同,具体请看我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》的介绍:

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART PLC应用技术 ¥88 购买

2、怎样声明字符串变量

在函数块(FB)或者函数(FC)的变量声明区,可以声明字符串变量。比如下面图片声明了一个tmpString的字符串变量:

这种方式声明的字符串变量,其默认最大长度为254个字节。如果该变量实际用不到这么大的长度,可以在声明时指定其最大长度。方法是在String的后面使用中括号[]标注。比如下面的图片声明了一个最大长度为10个字符的字符串:

3、怎样给字符串变量赋值

可以直接使用单引号'' 给字符串赋值,也可以使用"中括号+索引"的方式直接给字符串中的某个字符赋值。字符串索引编号从1开始,到字符串的最大值结束。

字符串也可以不包含任何字符,即空字符串。用两个单引号直接给字符串变量赋值,即为空字符串;

下面这张图举例说明字符串赋值、索引赋值及空字符串:

字符串的操作指令很多,比如获取字符串的长度、最大长度、查找、插入、替换等等,我们在后续的文章中继续介绍。

欢迎查看我的专栏:

西门子SCL编程实例——位与字节的相互转换

在实际项目中,有时候需要位与字节的相互转换。比如:将8个位值(布尔值)组成一个字节,或者16个位值组成一个字,或者将一个字节按照其位顺序分成8个布尔值。今天这篇文章,我们来介绍下如何编程实现位与字节的相互转换。我们使用变量的切片访问功能来编写两个函数:FC5002_BitsToByte和FC5005_ByteToBits,前者实现将8个布尔值组成一个字节,后者实现将一个字节按照其位顺序分成8个布尔值,接下来详细介绍下。

1、FC5002_BitsToByte

该函数将8个布尔值组成一个字节变量,其变量声明如下图所示:

其中:

bit0~bit7是8个输入变量,数据类型为布尔型;byteQ是输出变量,数据类型为字节;tmpByte为临时变量,数据类型为字节;

该函数的代码如下:

上述代码中“#tmpByte.%Xb(b=0~7)”是变量的切片访问方式,比如:#tmpByte.%X0表示访问该变量的第0位。

2、FC5005_ByteToBits

该函数将一个字节按照其位顺序输出8个布尔值,其变量声明如下图所示:

其中:

iByte是输入的字节变量;Q0~Q7为该字节的位0~位7的值;

该函数的代码如下:

这两个函数我都测试过,用同样的方式可以实现将16个布尔值组成一个字,或者将一个字分解成16个布尔值。类似的函数我之前还写过一篇文章《西门子SCL编程实例——按位读写字变量》,它实现读写字中的某一位。

我的书《西门子S7-1200/1500 PLC SCL语言编程》中也介绍了变量的切片访问及其它技巧和实例,感兴趣的话可以点击下面的链接查看。

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 西门子S7-1200/1500 PLC SCL语言编程从入门到精通 图书 ¥54.71 购买

如果你已经购买此书,想加入读书群交流,请留言。

相关问答

plc里面的psi是什么意思-汇财吧专业问答

[回答]冲洗有时,被膜的筛子行动拒绝的微粒在上建立在每一纤维之外。因此,抵抗流动直到增加一backwash被执行。冲洗是被用于移去的原则序列建立并且减少tra...

浏览器上的历史记录删除后,公司还能监控到浏览的网页吗-ZOL问答

del/f/s/q%systemdrive%\*.tmpdel/f/s/q%systemdrive%\*._mpdel/f...电脑和plc用网线联接,怎么获得plc的ip地...

三星手机短信字体大小怎么调?-ZOL问答

怎么隐藏excel文件做好后自动生成TMP文件。4454浏览10回答小米手机如何把...ZOL问答手机三洋PLC-XF10N问题详情电脑版首页资讯查报价排行榜问答.....

 黄德毅  加州水郡 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部