西门子S7-300 PLC的数据类型汇总

您所在的位置:网站首页 time的数据类型长度 西门子S7-300 PLC的数据类型汇总

西门子S7-300 PLC的数据类型汇总

2024-01-22 00:15| 来源: 网络整理| 查看: 265

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,其存储结构如图所示:

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

  说明:(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,形式参数)定义的数据类型。

STEP7中的基本数据类型

⑴位(BOOL)

位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL变量的值1和0常用英语单词TURE(真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。

⑵字节(BYTE)

字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。

⑶字(WORD)

字数据长度为16位,这种数据可采用4种方法进行描述。

二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。

十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。

BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。

无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如:

B#(12,254)=2#0000_1100_1111_1110

                     12       254

上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。

⑷双字(DOUBLE WORD)

数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为:

二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。

十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。

BCD码:取值范围为C#0~C#9999999。

无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。

⑸整数(INT)

整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。

⑹双整数(DOUBLE INT)

双整数的数据类型长度为32位,数据格式为带符号十进制数,用L#表示双整数。双整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648~L#2147483647。

⑺实数(REAL也叫浮点数Float)

实数的数据类型长度为32位,是以IEEE浮点数格式转换为二进制数存储的,其取值范围为±3.402823e+38~±1.1755494e-38。

实数用1.m×2E例如123.4可表示为1.234×102。

式中:指数E=e-127(1≤e≤254)为8位整数

符号位(S):S=0为正值  S=1为负值

规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)

实数的结构

31  30 29  28  27 26  25  24  23  22  21 20  19  18 17   16  15  14  13  12 11   10  9  8    7   6  5    4   3  2   1   0

0  

  1

   0

     0

   0

   0

   0

   1

   0

   1

   0

   0

   0

   1

   0

   0

   0

   0

   0

   0

   0

   0

   0

   0

0  

    0

    0   

0    

 0  

  0 

   0 

   0

上面的浮点数中:

S=0

指数:30位=1      27

      29位=0      26

      28位=0      25

      27位=0      24

      26位=0      23

      25位=0      22

      24位=1      21

      23位=0      20

e=27+21=128+2=130

E=e-127=130-127=3

尾数m:22位=1    2-1

        21位=0     2-2

        20位=0     2-3

        19位=0     2-4

        18位=1     2-5

   m=2-1+2-5=0.5+0.03125=0.53125

   浮点数值=(1+0.53125)×23=1.53125×8=12.25

用很小的存储空间(4个字节),可以表示非常大或非常小的数,PLC的输入和输出的数值大多是整数,实数的运算速度比整数的慢。

(8)S5TIME(SIMATIC时间)

S5TIME时间数据类型长度为16位,包括时基和时间常数两部分,时间常数采用BCD码(二~十进制格式)。S5TIME时间数据类型结构如下图所示:

(9)IEC时间(TIME)

IEC时间数据长度为32位,时基为固定值1ms,数据类型为双整数,所表示的时间值为整数值乘以时基。格式为:

T#aaD_bbH_ccM_ddS_eeeMS

其中aa=天数,bb=小时数,cc=分钟,dd=秒,eee=毫秒。根据双整数的最大值为2147483647,乘以时基1ms,可以算出,IEC时间的最大值为T#24D_20H_31M_23S_648Ms。使用IEC时间时,时基保持不变,且精度较高,为1ms。

(10)IEC日期(DATE)

IEC日期数据长度为16位,数据类型为整数,以1日为单位,日期从1990年1月1日开始,1990年1月1日对应的整数为0,日期每增加一天,对应的整数值加1,如23,对应1990年1月22日。IEC日期格式为D#_年_月_日,例如D#1992_12_2。取值范围为D#1990_1_1~D#2163_12_31。

(11)日计时(TIME_OF_DAY)

日计时是表示一天中的24小时,数据长度为32位,数据类型为双整数,以1ms为时基,取值范围为TOD#0∶0∶0∶0~TOD#23∶59∶59.999。

(12)字符(CHAR)

字符数据的长度为8位,字符采用ASCII码的存储方式

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3