S7-1200 PLC应用教程(第2版)
上QQ阅读APP看书,第一时间看更新

2.3.3 数据类型

1.数据类型

数据类型用来描述数据的长度(即二进制的位数)和属性。本节主要介绍基本数据类型,其他数据类型主要在2.3.4和4.2.1节介绍。

很多指令和代码块的参数支持多种数据类型。不同的任务使用不同长度的数据对象,例如位逻辑指令使用位数据,MOVE指令使用字节、字和双字。字节、字和双字分别由8位、16位和32位二进制数组成。表2-4给出了基本数据类型的属性。

2.位

位数据的数据类型为Bool(布尔)型,在编程软件中,Bool变量的值1和0用英语单词TRUE(真)和FALSE(假)来表示。

位存储单元的地址由字节地址和位地址组成,例如I3.2中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2(见图2-10)。这种存取方式称为“字节.位”寻址方式。

3.位字符串

数据类型Byte、Word、Dword统称为位字符串。它们不能比较大小,它们的常数一般用十六进制数表示。

1)字节(Byte)由8位二进制数组成,例如I3.0~I3.7组成了输入字节IB3(见图2-10),B是Byte的缩写。

2)字(Word)由相邻的两个字节组成,例如字MW100由字节MB100和MB101组成(见图2-11)。MW100中的M为区域标识符,W表示字。

3)双字(DWord)由两个字(或4个字节)组成,双字MD100由字节MB100~MB103或字MW100、MW102组成(见图2-11),D表示双字。需要注意以下两点:

①用组成双字的编号最小的字节MB100的编号作为双字MD100的编号。

②用组成双字MD100的编号最小的字节MB100为MD100的最高位字节,编号最大的字节MB103为MD100的最低位字节。字也有类似的特点。

表2-4 基本数据类型

图2-10 字节与位

图2-11 字节、字和双字

4.整数

一共有6种整数(见表2-4),SInt和USInt分别为8位的短整数和无符号短整数,Int和UInt分别为16位的整数和无符号整数,DInt和UDInt分别为32位的双整数和无符号的双整数。所有整数的符号中均有Int。符号中带S的为8位整数(短整数),带D的为32位双整数,不带S和D的为16位整数。带U的为无符号整数,不带U的为有符号整数。有符号整数的最高位为符号位,最高位为0时为正数,为1时为负数。有符号整数用补码来表示。

5.浮点数

32位的浮点数(Real)又称为实数,最高位(第31位)为浮点数的符号位(见图2-12),正数时为0,负数时为1。规定尾数的整数部分总是为1,第0~22位为尾数的小数部分。8位指数加上偏移量127后(0~255),放在第23~30位。

图2-12 浮点数的结构

浮点数的优点是用很小的存储空间(4B)可以表示非常大和非常小的数。PLC输入和输出的数值大多是整数,例如AI模块的输出值和AQ模块的输入值。用浮点数来处理这些数据需要进行整数和浮点数之间的相互转换,浮点数的运算速度比整数的运算速度慢一些。

在编程软件中,用十进制小数来输入或显示浮点数,例如50是整数,而50.0为浮点数。

LReal为64位的长浮点数,它的最高位(第63位)为符号位。尾数的整数部分总是为1,第0~51位为尾数的小数部分。11位的指数加上偏移量1023后(0~2047),放在第52~62位。浮点数Real和长浮点数LReal的精度最高为十进制6位和15位有效数字。

6.时间与日期

Time是有符号双整数,其单位为ms,能表示的最大时间范围为24天多。Date(日期)为16位无符号整数,TOD(TIME_OF_DAY)为从指定日期的0时算起的毫秒数(无符号双整数)。其常数必须指定小时(24小时/天)、分钟和秒,ms是可选的。

数据类型DTL的12个字节分别为年(占2B)、月、日、星期的代码,和小时、分、秒(各占1B)、纳秒(占4B),均为BCD码。星期日、星期一~星期六的代码分别为1~7。可以在块的临时存储器或者DB中定义DTL数据。

7.字符

每个字符(Char)占一个字节,Char数据类型以ASCII格式存储。字符常量用英语的单引号来表示,例如'A'。WChar(宽字符)占两个字节,可以存储汉字和中文的标点符号。