S7-300的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。

一、基本数据类型

1、位(bit)

  常称为BOOL(布尔型),只有两个值:0或1。如:I0.0,Q0.1,M0.0,V0.1等。

2、字节(Byte)

  一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制的0~255)。

3、字(Word)

  相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。

4、双字(Double Word)

  相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。

  以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。

5、16位整数(INT,Integer)

  整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。

 6、32位整数(DINT,Double Integer)

  32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。

7、浮点数(R,Real)

  浮点数为32位,可以用来表示小数。浮点数可以为:1.m×2e,其存储结构如图所示:

plc 类型对应java类型 plc编程中常用的数据类型_Word

 8、常数的表示方法

  常数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示。如下图所示: 

plc 类型对应java类型 plc编程中常用的数据类型_数据类型_02

  说明:(1)S5T#格式为:S5T#aD_bH_cM_dS_eMS,其中a,b,c,d,e分别是日,小时,分,秒和毫秒的数值,输入时可以省掉下划线,如表中所示。

  (2)D#取值范围为:D#1990_1_1~D#2168_12_31。

二、复合数据类型

  用户通过复合基本数据类型而生成就是复合数据类型。

  复合数据类型包括以下几种:

1、数组(ARRAY)

  将一组同一类型的数据组合在一起组成一个单位就是数组。

2、结构(STRUCT)

  将一组同不同类型的数据组合在一起组成一个单位就是结构。

3、字符串(STRING)

  字符串是由最多254个字符组成的一维数组。

4、日期和时间(DATE-AND-TIME)

  用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用8个字节,BCD编码。星期天代码为1,星期一~星期六代码分别是2~7。

  如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。

5、用户定义的数据类型(UDT,User-Defined Data Types)

  由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。

 可以在数据块DB和变量声明表中定义复合数据类型。

三、参数类型

  是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型。