基本数据类型
在编写程序时,变量的格式必须与指令的数据类型相匹配。S7-1500 PLC的数据类型主要分为基本数据类型、复合数据类型、参数类型、系统数据类型和硬件数据类型。
基本数据类型分为位数据类型、数学数据类型、字符数据类型、时间数据类型。每一种基本数据类型数据都具备关键字、数据长度、取值范围和常数表达格式等属性。以字符数据类型为例,其关键字是字符,数据长度为8bit,取值范围是ASCII字符集,常数表达格式为两个单引号包含字符,如‘A’。基本数据类型的数据长度、取值范围和常数表达格式举例见下表。
位数据类型
位数据类型主要有布尔型(Bool)、字节型(Byte)、字型(Word)、双字型(DWord)和长字型(LWord)。
位数据类型只表示存储器中各位的状态是0(False)还是1(Ture),数据长度可以是一位(1bit)、一个字节(Byte,8bit)、一个字(Word,16bit)、一个双字(Double Word,32bit)或一个长字(Long Word,64bit),分别对应Bool、Byte、Word、DWord和LWord类型。位数据类型通常用二进制或十六进制表达,如2#01010101、16#283C等。需要注意的是,一位布尔型数据类型不能直接赋常数值。
位数据类型的常数表示需要在数据之前根据存储单元的长度(Byte、Word、DWord、LWord)加上B#、W#、DW#或LW#(Bool除外),所能表示的数值范围见表。
下图为Word位数据类型的表达方法。
数学数据类型
数学数据类型主要有整数类型和实数类型(浮点数类型)。
1.整数类型
整数类型分为有符号整数类型和无符号整数类型。有符号整数类型包括短整数型(SInt)、整数型(Int)、双整数型(DInt)和长整数型(LInt);无符号整数类型包括无符号短整数型(USInt)、无符号整数型(UInt)、无符号双整数型(UDInt)和无符号长整数型(ULInt)。
短整数型、整数型、双整数型和长整数型的数据为有符号整数,分别为8bit、16bit、32bit和64bit,在存储器中用二进制补码表示,最高位为符号位(0表示正数,1表示负数),其余各位为数值位。无符号短整数型、无符号整数型、无符号双整数型和无符号长整数型的数据均为无符号整数,每一位均为有效数值。
下图为Int正整数型的表达方法。
2.实数类型
实数类型包括实数型(Real)和长实数型(LReal),均为有符号的浮点数,分别占用32bit和64bit,最高位为符号位(0表示正数,1表示负数),接下来的8bit(或11bit)为指数位,剩余位为尾数位,共同构成实数数值。实数的特点是利用有限的32bit或64bit可以表示一个很大的数,也可以表示一个很小的数。
Int负整数型的表达方法如图
一个Real类型的数占用4个字节的空间。S7-1500 PLC中的Real类型符合IEEE754标准的浮点数标准,包括符号位S、指数E和尾数M,如图所示。
指数E和尾数M的位号和权值见表。
字符数据类型
字符数据类型(Char)的数据长度为8bit,操作数在存储器中占一个字节,以ASCII字符集格式存储单个字符。常量表示时使用单引号,例如常量字符A表示为‘A’或CHAR#'A'。表列出了字符数据类型的属性。
S7-1500 PLC还支持宽字符类型(WChar),操作数长度为16bit,即在存储器中占用2个字节(Byte),以Unicode字符串格式存储扩展字符集中的单个字符,但只涉及整个Unicode字符串的一部分。常量表示时需要加WCHAR#前缀及单引号,例如常量字符a表示为WCHAR#‘a’。控制字符在输入时,以美元符号表示。表列出了宽字符数据类型的属性。
时间数据类型
时间数据类型主要包括IEC时间(Time)数据类型、S5时间(S5Time)数据类型和长时间(LTime)数据类型。
1.IEC时间(Time)数据类型
IEC时间(Time)数据类型为32bit的IEC定时器类型,是以毫秒(ms)为单位表示的双整数,可以是正数或负数,所表示的信息包括天(d)、小时(h)、分钟(m)、秒(s)和毫秒(ms)。表列出了IEC Time数据类型的属性。
2.S5时间(S5 Time)数据类型
S5时间(S5 Time)数据类型的变量长度为16bit。其中,最高两位未用,接下来的两位为时基信息(00表示0.01s,01表示0.1s,10表示1s,11表示10s),剩余的12bit为BCD码时间值,范围为0~999,如图所示,
所表示的时间为时间常数与时基的乘积。S5 Time数据类型的常数格式为在时间之前加S5T#,例如S5T#16sl00ms,以时基0.1s表示的时间常数为161,故对应的变量内容为2#00010001 01100001。表列出了S5 Time数据类型的属性。
3.长时间(LTime)数据类型
长时间(LTime)数据类型为64bit的IEC定时器类型,操作数内容是以纳秒(ns)为单位表示的长整数,可以是正数或负数,所表示的信息包括天(d)、小时(h)、分钟(m)、秒(s)、毫秒(ms)、微秒(μs)和纳秒(ns)。常数表示格式为在时间前加LT#,如LT#11ns。

