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

PLC基础篇之复杂数据类型:数组与字符串

前面的文章我们介绍了PLC的基本数据类型,讲解了“位”,“字”,“双字”和“整型”和“实型”的含义,今天这篇文章是数据类型的进阶篇,我们与大家讨论下复杂数据类型中的数组与字符串的概念。

cover.jpg什么是“数组”呢?数组(Array),是具有特定数目的、相同数据类型的元素的集合。从定义中可以看出,数组有两个特点:1)元素的数目是确定的;2)元素具有相同的数据类型。

元素的数目是确定的”表示在声明数组时,必须为其指定数组的上限(元素序号的最大值)和下限(元素序号的最小值);

元素具有相同的数据类型”表示在声明数组时,必须为其指定基本数据类型,这种类型适用于数组中的每一个元素。

接下来我们看看如何在博途环境下声明数组?首先,新建一个DB块,然后在里面新建一个变量“sensor”,点击其右边的“数据类型(Data type)” ,你会看到数组的声明:Array[lo..hi] of type,如下图:

array_declear.jpg

其中,“lo”表示数组的下限,“hi”表示数组的上限,“type”表示数组元素的基本数据类型。

选中数组类型的声明,然后点击右边向下的箭头,会弹出一个小窗口,如下图:

array_declear2.jpg

在“数据类型(Data type)”中,可以选择元素的基本数据类型,假设我们选择“布尔型(Bool)”;在“数组界限(Array limits)”中可选择数组的上下限,同时,可以通过输入英文的逗号“,”来增加数组的维数

什么是数组的维数呢?通常我们使用的数组的维数为一,称为“一维数组”;一维数组的数据按照“行”和“列”进行排布,其中行数大于1,列数等于1;二维数组的数据按照“行”和“列”进行排布,其中行数和列数均大于1;三维数组的数据排布可以理解成三维空间,不但有“行”和“列”,还在垂直方向进行排布;还可以有四维等多维数组;但是请注意,数组维数的增加会导致其元素的数目成级数的增长,占用大量的内存,一般使用最多的是一维数组和二维数组。一个布尔型的二维数组的声明如下图:

2d_array.png

这个数组,有两行三列,总计2x3=6个元素。

下面再来谈谈字符串(String)。字符串是字符(Char)的集合,用来存储诸如“姓名”、“VIN码”之类的数据,字符串有一定的长度。在西门子S7系列PLC中,对字符串结构的定义如下:

string_def.png

字符串的第一个字节,表示字符串能存放的最大字符的数目;第二个字节表示字符串的存放的实际字符的数目;从第三个字节开始,是字符串存放的字符数据(最多254个字符);

假设我们要声明一个长度为20的VIN码为字符串类型,可以在右边的“数据类型(Data type)”中选择“String”,然后在其后面写上“[20]”,如下图:

string_declear.png

有关字符串的操作前面有文章介绍过,参考:STEP7中如何用简洁的代码获取字符串的长度

关于数组和字符串就先介绍到这里,相关参考文章:

PLC基础篇之数据类型(Data type)

PLC基础篇之常量与变量

想收藏的可以去官网下载本文的PDF版本哦 :)

PLC基础篇之复杂数据类型:数组与字符串

来源:本站|   大小:245 KB|   下载次数:70次

取消

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

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

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

发表评论