1、 STEP7 中的基本数据类型位(BOOL)位数据的数据类型为 BOOL(布尔)型,在软件编程中 BOOL 变量的值 1 和 0 常用英语词 TURE(真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为 1 位。字节(BYTE)字节数据长度为 8 位,数据格式为 B#16#,B 代表 BYTE,表示数据长度为一个字节(8 位) ,16表示十六进制,取值范围为 B#16#0B#16#FF。字(WORD)字数据长度为 16 位,这种数据可采用 4 种方法进行描述。二进制:二进制的格式为 2,如 2101,取值范围为 202 1111_1111_1111
2、_1111 ,书写时每 4 位可用下划线隔开,也可直接表示为 2111111111111 。十六进制:十六进制的格式为 W16,W 代表 WORD,表示数据长度为 16 位,16表示十六进制,数据取值范围为 W 160W 16 FFFF 。BCD 码:BCD 码的格式为 C,取值范围为 C0 C999。BCD 码是用 4 位二进制表示 1 位十进制数,4 位二进制中的 0000 1001 组合分别表示十进制中的 09,4 位二进制中的 10101111 组合放弃不用。BCD 码的最高 4 位用来表示符号,十六位 BCD 码的取值范围为 999+999。在 STEP7 的数据格式中,BCD 码的
3、取值只取正值,与最高 4位的符号无关。无符号十进制数:无符号十进制数的格式为 B(,) ,取值范围为 B(0,0)B(255 ,255) ,无符号十进制数是用十进制的 0255 对应二进制数中的 0000_00001111_1111(8 位) ,16 位二进制数就需要两个 0255 的数来表示,例如:B#(12,254)20000_1100_1111_1110 12 254上面 4 种数据都是描述一个长度位 16 位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用 20000_1001_1000_0111,也可以使用 W16 987,还可
4、以使用 C987 或者B(9,135) 。在 STEP7 中,比较常用的是十六进制,即 W16 这种格式。双字(DOUBLE WORD)数据长度为 32 位,双字的数据格式与字的数据格式相同,也有 4 种方式,分别为:二进制:取值范围为 2021111_1111_1111_1111_1111_1111_1111_1111 。十六进制:取值范围为 DW16 0 DW16 FFFF_FFFF 。BCD 码:取值范围为 C0 C9999999 。无符号十进制数:取值范围为 B(0,0,0,0)B(255,255,255,255) 。整数(INT)整数数据类型长度为 16 位,数据格式为带符号十进制数
5、, 16 位中最高为符号位。正整数是以原码格式进行存储的,如786,对应的二进制码为 20000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加 1,例如负整数 -786,对应的二进制码为 21111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768 因此取值范围为-3276832767。0 表示正,1 表示负。双整数(DOUBLE INT)双整数的数据类型长度为 32 位,数据格式为带符号十进制数,用 L表示双整数。双整数的二进制码与整数的换算方式一致,其取值范围为 L#-2147483648L
6、2147483647。实数(REAL 也叫浮点数 Float)实数的数据类型长度为 32 位,是以 IEEE 浮点数格式转换为二进制数存储的,其取值范围为3.402823e381.1755494e 38 。实数用 1.m2E 例如 123.4 可表示为 1.234102。式中:指数 Ee-127(1e254)为 8 位整数符号位(S): S0 为正值 S1 为负值规定尾数的整数部分总是为 1,只保留尾数的小数部分 m(0 22 位)S 0 指数:30 位1 2729 位0 2628 位0 2527 位0 2426 位0 23 25 位0 2224 位1 2123 位0 20e=272 1128
7、2 130E e 127130 1273 尾数 m:22 位1 2121 位0 2 220 位0 2 319 位0 2 418 位1 2 5m2 1 +25 =0.5+0.03125=0.53125 浮点数值(10.53125)2 31.53125812.25 用很小的存储空间(4 个字节) ,可以表示非常大或非常小的数, PLC 的输入和输出的数值大多是整数,实数的运算速度比整数的慢。(8 ) S5TIME(SIMATIC 时间) S5TIME 时间数据类型长度为 16 位,包括时基和时间常数两部分,时间常数采用 BCD 码(二十进制格式) 。S5TIME 时间数据类型结构如下图所示:(9
8、) IEC 时间( TIME)IEC 时间数据长度为 32 位,时基为固定值 1ms,数据类型为双整数,所表示的时间值为整数值乘以时基。格式为:T#aaD_bbH_ccM_ddS_eeeMS 其中 aa天数,bb 小时数, cc分钟,dd秒,eee 毫秒。根据双整数的最大值为 2147483647,乘以时基1ms,可以算出,IEC 时间的最大值为 T24D_20H_31M_23S_648Ms。使用 IEC 时间时,时基保持不变,且精度较高,为 1ms。(10 )IEC 日期(DATE)IEC 日期数据长度为 16 位,数据类型为整数,以 1 日为单位,日期从 1990 年 1 月 1 日开始,
9、1990 年 1 月 1 日对应的整数为 0,日期每增加一天,对应的整数值加 1,如 23,对应 1990 年 1 月 22 日。IEC 日期格式为 D_年_月_日,例如 D1992_12_2。取值范围为 D1990_1_1D 2163_12_31。(11 )日计时(TIME_OF_DAY )日计时是表示一天中的 24 小时,数据长度为 32 位,数据类型为双整数,以 1ms 为时基,取值范围为TOD0 0 0 0TOD23 5959.999。(12 )字符( CHAR)字符数据的长度为 8 位,字符采用 ASCII 码的存储方式。数据类型 位数 格式选择 数制与范围布尔(BOOL) 1 布尔
10、量 0,1字节(BYTE) 8 二进制十进制2#02#1111 11110255字(WORD) 16 二进制十进制十六进制2#02#1111 1111 1111 1111065535W#16#0W#16#FFFF双字(DWORD) 32 二进制十进制十六进制2#02#1111 1111 1111 1111 1111 1111 1111 111104294967295DW#16#0DW#16#FFFFFFFF字符(CHAR) 8 字符 任何可以打印的字符整数(INT) 16 有符号十进制数 -32768+32767双整数(DINT) 32 有符号十进制数 L#-214 783 648-L#+21
11、4 783 647实数(REAL) 32 IEEE 浮点数 上限:+/-3.402823e+38下限:+/-1.175495e-38时间(TIME) 32 IEC 时间精度 1ms T# -24D_20H_31M_23S_6448MST#24D_20H_31M_23S_647MS 日期(DATE) 32 1 天 D#1990_1_1D#2168_12_31日期(DATE)321 天D#1990_1_1-D#2168_13_31每天时间(TOD)321msTOD#0:0:0.0-TOD#23:59:59.99系统时间(S5TIME)32S5 时间,时基10msS5T#0H_0M_0S_0MS-S
12、5T#2H_46M_30S_0MS复式数据类型数据类型说明日期时间 DTDATE_AND_TIME定义 64 位区(8 字节)。用 BCD 码存储时间信息:字节从低到高 0-5 分别对应年、月、日、小时、分、秒;字节 6 和字节 7 的高位对应毫秒,字节 7 低位对星期几字符串 STRING可以定义 254 个字符。字符串默认大小为 256 字节(存放 254 个字符加两个字节的字头)。可以通过定义字符串的实际数目来减少欲设置,如STRING7 SIEMENS定义一种数据格式的数组数组 ARRAY构造 STRUCT定义多种数据类型组合的数组参数类型用于向 FB 和 FC 传送参数参数大小说明定时器(Timer)2 字节指定执行逻辑块要使用的定时器如 T4计数器(Counter)2 字节指定执行逻辑块要使用的计数器如 C3块 Block_FBBlock_FCBlock_DBBlock_SDB2 字节如:FB20FC101DB12SDB11指针(Pointer)6 字节定义内存单元,如 P#M30.0ANY10 字节如果实参的类型未知,或可以使用任意数据类型时 如 P#M60.0, word5