数据类型可以用来描述数据的长度(即二进制的位数)和属性。S7-1200 PLC使用下列数据类型:基本数据类型、复杂数据类型、参数类型、系统数据类型和硬件数据类型。在此,只介绍基本数据类型和复杂数据类型。
表2-1给出了基本数据类型的属性。
表2-1 基本数据类型的属性
1.位
位(Bool)数据长为1位,数据格式为布尔文本,只有两个取值TRUE/FALSE(真/假),对应二进制数中的“1”和“0”,常用于开关量的逻辑计算,存储空间为1位。
2.字节
字节(Byte)数据长度为8位,16#表示十六进制数,取值范围为16#00~16#FF。
3.字
字(Word)数据长度为16位,由两个字节组成,编号低的字节为高位字节,编号高的字节为低位字节,取值范围为16#0000~16#FFFF。
4.双字
双字(Double Word)数据长度为32位,由两个字组成,即4个字节组成,编号低的字为高位字节,编号高的字为低位字节,取值范围为16#00000000~16#FFFFFFFF。
5.整数
整数(Int)数据类型长度为8、16、32位,又分带符号整数和无符号整数。带符号十进制数,最高位为符号位,最高位是0表示正数,最高位是1表示负数。整数用补码表示,正数的补码就是它的本身,将一个正数对应的二进制数的各位数求反码后加1,可以得到绝对值与它相同的负数的补码。
6.浮点数
浮点数(Real)又分为32位和64位浮点数。浮点数的优点是用很少的存储空间可以表示非常大和非常小的数。PLC输入和输出的数据大多数为整数,用浮点数来处理这些数据时需要进行整数和浮点数之间的相互转换,需要注意的是,浮点数的运算速度比整数运算的慢很多。
7.时间
时间(Time)数据类型长度为32位,其格式为T#天数(day)小时数(hour)分钟数(minute)秒数(second)毫秒数(millisecond)。时间数据类型以表示毫秒时间的有符号双整数形式存储。
视频“基本数据类型”可通过扫描二维码2-1播放。
2-1 基本数据类型
复杂数据类型是由基本数据类型组合而成,这对于组织复杂数据十分有用,主要有以下几种。
1.数组型
数组(Array)数据类型是由相同类型的数据组成的。后续章节将会介绍在数据块中生成数组的方法。
2.字符串型
字符串(String)是由字符组成的一维数组,每个字节存放1个字符。第1个字节是字符串的最大字符长度,第2个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,1个字符串最多有254个字符。
用单引号表示字符串常数,例如'ABCDEFG'是有7个字符的字符串常数。
3.日期时间型
日期时间(DTL)数据类型表示由日期和时间定义的时间点,它由12个字节组成。可以在全局数据块或块的接口区中定义DTL数据类型变量。每个数据需要的字节数及取值范围如表2-2所示。
表2-2 DTL数据类型
4.结构型
结构(Struct)数据类型是由不同数据类型组合而成的复杂数据,通常用来定义一组相关的数据,如电动机的额定数据可以定义如下:
其中:STRUCT为结构的关键词;Motor为结构类型名(用户自定义);Speed和Current为结构的两个元素,INT和REAL是这两个元素的类型关键词;END_STRUCT是结构的结束关键词。