位(bit)
1.1、位(bit)
定义为BOOL(布尔型),只有两个值:0 或 1。如:I0.0,Q0.1,M0.0,V0.1 等。
字节(Byte)
1.2、字节(Byte)
定义一个字节(Byte)等于8 位(Bit),其中0位为***低位,7 位为***高位。
如:IB0(包括 I0.0~I0.7 位),QB0(包括Q0.0~Q0.7 位),MB0,VB0 等。
用十六进制表示的范围为:00~FF,用十进制表示的范围为 0~255。
字(Word)
.3、字(Word)
定义相邻的两字节(Byte)组成一个字(Word),表示一个无符号整数,所以一个字为16位。
如:IW0 由 IB0 和 IB1 组成的,其中I是输入映象寄存器,W表示字,0是字的起始字节。特别注意的是:起始字节必须是偶数。
字的范围为十六进制的 0000~FFFF,十进制的 0~65536。
在编程时,如果已经使用 IW0,如果想再用 IB0或 IB1,就要特别慎重,避免重复定义。
双字(Doubleword)
1.4、双字(DoubleWord)
相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为 32 位。
如:MD100 是由 MW100 和 MW102 组成的,其中M是位存储区,D表示双字,100是双字的起始字节。特别注意的是:双字的起始字节也必须是偶数。
双字的范围为十六进制的 0000~FFFFFFFF(即十进制的 0~4294967295)。
在编程时如果已经使用了MD100,如果再用 MW100或MW102,就要特别慎重,避免重复定义。
特别注意:以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
16位整数(INT)
1.5、16位整数(INT,Integer)
整数为有符号数,***高位为符号位,1表示负数,0表示正数。范围为-32768~32767。
32位整数(DINT)
1.6、32 位整数(DINT,DoubleInteger)
32 位整数和16位整数一样,为有符号数,***高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。
浮点数(REAL)
1.7、浮点数(R,Real)
浮点数为 32 位,可以用来表示小数。浮点数可以为:1.m×2e。
复合数据类型
用户通过复合基本数据类型而生成就是复合数据类型。
复合数据类型包括以下几种:
2.1、数组(ARRAY)
将一组同一类型的数据组合在一起组成一个单位就是数组。
2.2、结构(STRUCT)
将一组同不同类型的数据组合在一起组成一个单位就是结构。
2.3、字符串(STRING)
字符串是由***多 254 个字符组成的一维数组。
2.4、日期和时间(DATE-AND-TIME)
用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用 8 个字节,BCD 编码。
星期天代码为1,星期一~星期六代码分别是 2~7。
如:DT#2004_07_15_12:30:15.200 为 2004 年 7 月 15 日 12 时 30 分 15.2 秒。
2.5、用户定义的数据类型(UDT,User-DefinedDataType)
由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。
可以在数据块DB和变量声明表中定义复合数据类型。
4、举例说明
对于有符号的整数来说,***高位用作符号位,余下的位才是数值部分。
下面以有符号整数INT来举例说明其数值范围为什么是-32768-32767?
***高位是符号位,0为“+”、1为“-,去掉一个符号位后,余下的数据只有15位。
15位二进制1对应的整数***大正整数为2^15-1=32767,***大值为+32767,对应二进制:0111 1111 1111 1111。即十进制范围:0~32767;
15位二进制1对应的整数***大负整数为-2^15=-32768,***大值为-32768,对应二进制:1111 1111 1111 1111。即十进制范围:-32768~-1;
- 下一篇:西门子变频器特点
- 上一篇:S7-200 SMART V2.6 版本新增加了哪些功能