首页 理论教育 数据块中的数据类型探究

数据块中的数据类型探究

时间:2023-06-29 理论教育 版权反馈
【摘要】:生成数组时,应指定数组的名称,声明数组的类型时要使用关键字ARRAY,用下标指定数组的维数和大小,数组的维数最多为6维。例如图6-9给出了一个二维数组PRESS[1..2,1..3],共有6个整数元素,图中的每一小格为二进制的1位,每个元素占两行。

数据块中的数据类型探究

1.基本数据类型

数据块中基本数据类型包括位(Bool)、字节(Byte)、字(Word)、双字(Dword)、整数(INT)、双整数(DINT)和浮点数(Float,或称实数Real)等。

2.复合数据类型

复合数据类型包括日期和时间(DATE_AND_TIME)、字符串(STRING)、数组(ARRAY)、结构(STRUCT)和用户定义数据类型(UDT)。其中,日期和时间用8个字节的BCD码来存储。第0~5号字节分别存储年、月、日、时、分和秒,毫秒存储在字节6和字节7的高4位,星期存放在字节7的低4位。例如2004年7月27日12点30分25.123秒可以表示为DT#04-07-27-12:30:25.123。

字符串(STRING)由最多254个字符(CHAR)和2字节的头部组成。字符串的默认长度为254,通过定义字符串的长度可以减少它占用的存储空间。

3.数组

数组(ARRAY)是同一类型的数据组合而成的一个单元。生成数组时,应指定数组的名称,声明数组的类型时要使用关键字ARRAY,用下标指定数组的维数和大小,数组的维数最多为6维。例如图6-9给出了一个二维数组PRESS[1..2,1..3],共有6个整数元素,图中的每一小格为二进制的1位,每个元素占两行(两个字节)。方括号中的数字用来定义每一维的起始元素和结束元素在该维中的编号,可以取-32768~32767之间的整数。各维之间的数字用逗号隔开,每一维开始和结束的编号用两个小数点隔开,如果某一维有n个元素,该维的起始元素和结束元素的编号一般采用1和n,例如PRESS[1..2,1..3],第一个整数是PRESS[1,1],第三个整数是PRESS[1,3],第四个整数是PRESS[2,1],第六个整数是PRESS[2,3]。

访问数组中的数据时,需要指出数据块和数组的名称,以及数组元素的下标,例如,如果数组ARRAY是数据块TANK的一部分,则访问格式为“TANK“.PRESS[2,1]。其中,TANK是数据块的符号名,PRESS是数组的名称,它们用英语的句号分开。方括号中是数组元素的下标,该元素是数组中的第4个元素(见图6-9)。

如果在块的变量声明表中声明形参的类型为ARRAY,可以将整个数组而不是某些元素作为参数来传递。在调用块时也可以将某个数组元素赋值给同一类型的参数。将数组作为参数传递时,要求形参和实参必须有相同的数据组织结构、相同的数据类型,并按相同的数据排列。(www.xing528.com)

4.结构

结构(STRUCT)是不同类型的数据的组合。可以用基本数据类型、复杂数据类型(包括数组和结构)和用户定义数据类型作为结构中的元素,例如一个结构由数组和结构组成,结构可以嵌套8层。用户可以把过程控制中有关的数据统一组织在一个结构中,作为一个数据单元来使用,而不是使用大量的单个的元素,这一点为统一处理不同类型的数据或参数提供了方便。

与数组一样,结构既可以在数据块中定义,也可以在逻辑块的变量声明表中定义。可以为结构中各个元素设置初值(InitialVal-图6-9二维数组PRESS ue)并加上注释(Comment),可以用结构中的元素的绝对地址或[1..2,1..3]的结构符号地址来访问结构中的元素。例如数据块TANK内结构STACK的元素AMOUNT,用符号地址访问时应表示为“TANK”.SIACK.AMOUNT。再如STACK从DB1的字节12开始存放,用绝对地址来访问时应表示为DB1.DBW12。

如果在块的变量声明表中,声明形参的类型为STRUCT,可以将整个结构而不是某些元素作为参数来传递。在调用块时也可以将某个结构元素赋值给同一类型的参数。另外,将结构作为参数传递时,作为形参和实参的两个结构必须有相同的数据结构,即相同数据类型的结构元素和相同的排列顺序。

5.用户定义数据类型

STEP 7允许用户将基本数据类型或复合数据类型组合成自定义数据类型(UDT)。它是一种特殊的数据结构,定义好后可以在用户程序中多次使用。

使用用户定义数据类型时,只需要对它定义一次,就可以用它来产生大量的具有相同数据结构的数据块,可以用这些数据块来输入用于不同目的的实际数据。例如可以生成用于颜料混合配方的UDT,然后用它生成用于不同颜色配方的数据组合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈