基于树莓派的CODESYS编程(6)——ST语言编程的基础:字符串数据类型
基于树莓派的CODESYS编程(6)——ST语言编程的基础:字符串数据类型
founderchip
原创工业智能控制领域(PLC、单片机、嵌入式、机器人、通信)的技术及经验分享。
字符串是一种数据类型,它是字符的集合。不同的编程环境对字符串的处理不尽相同。今天这篇文章,来介绍下CODESYS的字符串数据类型,并与西门子S7-1200/1500进行简单的对比。本文包括如下三个主题:
字符串(STRING);
宽字符串(WSTRING);
-
S7-1200/1500的字符串数据类型;
1、字符串(STRING)
CODESYS的字符串由N个字符和1个结束字符组成。如果在声明字符串变量时没有对长度进行设置,则CODESYS默认分配80个字符长度的内存,加上结束字符,总计长度81个字节。
比如下面的变量的声明:strName实际占用内存为81个字节;
strName : STRING;
//默认情况下字符串分配80个字节长度
可以在声明变量的同时使用括号“()”指定其字符数量,也就是字符串的长度。
比如下面的变量声明:strRcvData的实际占用内存为201个字节(200个数据字符+1个结束字符)
strRcvData : STRING(
200
);
//指定字符长度为200个字节
CODESYS本身并不限制字符串的长度,不过字符串处理函数只能处理长度为1~255的字符串,因此需要指定字符串长度时,最大应为255。
可以使用单引号来声明字符串常量,比如:
VAR CONSTANT
JK : STRING(
5
):=
’Jack’
;
//JK字符串常量,占用6个字节
RS: STRING(
5
):=
’Rose’
;
//JK字符串常量,占用6个字节
END_VAR
2、宽字符串(WSTRING)
字符串(STRING)中的字符采用ASCII编码,每个ASCII编码的字符长度为1个字节。ASCII编码最多能表达256种含义,无法处理汉字等东方文字。这种情况下需要采用Unicode编码。Unicode编码采用多个字节表示一个字符,其字符集简写为UCS(Unicode Character Set)。常见的Unicode字符集有UCS-2和UCS-4,UCS-2用两个字节编码,UCS-4用4个字节编码。
宽字符串中的字符是采用Unicode编码的字符,一般情况下使用2个字节表示一个字符。
比如声明一个wstrName的宽字符串:
wstrName
:WSTRING
;
//
声明一个宽字符串
wstrName没有指定字符长度,默认为80个宽字符。宽字符串也需要一个宽字符作为结束字符,因此其默认长度为81个宽字符。假设每个宽字符的长度为2个字节,则该字符串占用内存为162个字节。
当然,为了节省内存,建议在声明字符串时指定其长度,比如:
wstrName10:WSTRING(
10
);
//声明一个宽字符串,长度为10个宽字符
也可以声明宽字符串常量,比如:
VAR CONSTANT
GREETING : WSTRING(
10
):=
’你好,伟大的祖国’
;
//宽字符串常量
END_VAR
3、西门子S7-1200/1500的字符串数据类型
在西门子S7-1200/1500系列PLC的编程中,字符串数据类型最多占用256个字节的存储区,最多可以存储254个字符,剩下的2个字节用来存储字符串的最大长度(第1个字节)和当前长度(第2个字节),如下图所示:
比如字符串’Name’有4个字符,它实际占用6个字节的存储区。
声明字符串变量时可以用方括号“[]”指定其最大长度,比如String[10]的最大长度为10个字符,占用12个字节的存储区。
除了STRING类型,也支持宽字符串WSTRING类型。我的新书《西门子S7-1200/1500 PLC SCL语言编程从入门到精通》对此也有很详细的介绍,该书即将上市。
好了,关于CODESYS的字符串数据类型就先介绍到这里。
我的视频号以视频的方式分享工控小知识,欢迎观看:
你喜欢,就好
微信扫一扫赞赏作者
赞赏
发送给作者
人赞赏
长按二维码向我转账
你喜欢,就好
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
-
Origin(Pro):学习版的窗口限制【数据绘图】 2020-08-07
-
如何卸载Aspen Plus并再重新安装,这篇文章告诉你! 2020-05-29
-
AutoCAD 保存时出现错误:“此图形中的一个或多个对象无法保存为指定格式”怎么办? 2020-08-03
-
OriginPro:学习版申请及过期激活方法【数据绘图】 2020-08-06
-
CAD视口的边框线看不到也选不中是怎么回事,怎么解决? 2020-06-04
-
教程 | Origin从DSC计算焓和比热容 2020-08-31
-
如何评价拟合效果-Origin(Pro)数据拟合系列教程【数据绘图】 2020-08-06
-
Aspen Plus安装过程中RMS License证书安装失败的解决方法,亲测有效! 2021-10-15
-
CAD外部参照无法绑定怎么办? 2020-06-03
-
CAD中如何将布局连带视口中的内容复制到另一张图中? 2020-07-03