首页 理论教育 Java基本数据类型介绍

Java基本数据类型介绍

时间:2023-06-30 理论教育 版权反馈
【摘要】:本节主要介绍基本数据类型,后面各节将介绍复杂数据类型、参数类型和其他数据类型。很多指令和代码块的参数支持多种数据类型。表2-5给出了基本数据类型的属性。下面的日期和时间数据类型仅用于S7-1500。

Java基本数据类型介绍

1.数据类型

数据类型用来描述数据的长度(即二进制的位数)和属性。本节主要介绍基本数据类型,后面各节将介绍复杂数据类型、参数类型和其他数据类型。

很多指令和代码块的参数支持多种数据类型。将鼠标的光标放在某条指令某个参数的地址域上,过一会儿在出现的黄色背景的小方框中,可以看到该参数支持的数据类型。

不同的任务使用不同长度的数据对象,例如位逻辑指令使用位数据,MOVE指令使用字节、字和双字等。表2-5给出了基本数据类型的属性。

2.位

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

2-5 基本数据类型

978-7-111-58719-4-Chapter02-23.jpg

注:*仅用于S7-1500。

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

3.位字符

数据类型Byte、Word、Dword、Lword(后者仅用于S7-1500)统称为位字符串。它们不能比较大小,它们的常数一般用十六进制数表示。

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

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

3)双字(DWord)由两个字(或4个字节)组成,双字MD100由字节MB100~MB103或字MW100、MW102组成(见图2-15),D表示双字。

4)S7-1500的64位位字符串(LWord)由连续的8个字节组成。

978-7-111-58719-4-Chapter02-24.jpg

图2-14 字节与位

978-7-111-58719-4-Chapter02-25.jpg

图2-15 字节、字和双字

需要注意以下两点:

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

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

4.整数数据类型

S7-1200有6种整数(见表2-5),SInt和USInt分别为8位的短整数和无符号短整数,Int和UInt分别为16位的整数和无符号整数,DInt和UDInt分别为32位的双整数和无符号双整数。S7-1500还有64位整数LInt和64位无符号整数ULInt。

所有整数的符号中均有Int。符号中带S的为8位整数(短整数),带D的为32位双整数,带L的是64位整数。不带S、D和L的为16位整数。带U的为无符号整数,不带U的为有符号整数。

有符号整数用补码来表示,最高位为符号位,最高位为0时为正数,为1时为负数。(www.xing528.com)

5.浮点数数据类型

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

978-7-111-58719-4-Chapter02-26.jpg

图2-16 浮点数的结构

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

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

LReal为64位的长浮点数,它的最高位(第63位)为符号位。尾数的整数部分总是为1,第0~51位为尾数的小数部分。11位的指数加上偏移量1023后(0~2047),放在第52~62位。

浮点数Real和长浮点数LReal的精度最高为十进制6位和15位有效数字。

6.与定时器有关的数据类型

1)Time是IEC格式时间,它是有符号双整数,其单位为ms,取值范围为T#-24d_20h_31m_23s_648ms~T#+24d_20h_31m_23s_647ms。其中的d、h、m、s、ms分别为天、小时、分钟、秒和毫秒。下面两种数据类型仅用于S7-1500。

2)S5Time是16位的BCD格式的时间,用于SIMATIC定时器。S5Time由3位BCD码时间值(0~999)和时间基准组成(见图2-17)。持续时间以指定的时间基准为单位。

978-7-111-58719-4-Chapter02-27.jpg

图2-17 SIMATIC定时器字

定时器字的第12位和第13位是时间基准,未用的最高两位为0。时间基准代码为二进制数00、01、10和11时,对应的时间基准分别为10ms、100ms、1s和10s。持续时间等于BCD时间值乘以时间基准值。例如定时器字为W#16#2127时(见图2-17),时间基准为1s,持续时间为127×1=127s。CPU自动选择时间基准,选择的原则是根据预设时间值选择最小的时间基准。允许的最大时间值为9990s(2H_46M_30S)。S5T#1H_12M_18S中的H表示小时,M为分钟,S为秒,MS为毫秒。

3)LTime是64位的IEC格式时间,其单位为ns,能表示的最大时间极长。

7.表示日期和时间的数据类型

Date(IEC日期)为16位无符号整数,其操作数为十六进制格式,例如D#2016-12-31,对应于自1990年1月1日(16#0000)以来的天数。

TOD(Time_of_Day)为从指定日期的0时算起的毫秒数(无符号双整数)。其常数必须指定小时(24小时/天)、分钟和秒,毫秒是可选的。

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

下面的日期和时间数据类型仅用于S7-1500。

LTOD(LTime_of_Day)为从指定日期的0时算起的纳秒(ns)数(无符号64位数)。其常数必须指定小时(24小时/天)、分钟和秒,ns是可选的。

DT(Date_and_Time,日期和日时钟)是8个字节的BCD码。第1~6字节分别存储年的低两位、月、日、时、分和秒,第7字节是毫秒的两个最高有效位,第8字节的高4位是毫秒的最低有效位,星期存放在第8字节的低4位。星期日、星期一~星期六的代码分别为1~7。例如2017年5月22日12点30分25.123秒可以表示为DT#17-5-22-12:30:25.123,可以省略毫秒部分。

LDT(Date_and_LTime)占8个字节,存储自1970年1月1日0:0以来的日期和时间信息,单位为纳秒。例如LDT#2018-10-25-8:12:34.854775808。

8.字符

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

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

我要反馈