西门子PLC s7300数据类型
图中上面的mw12是word,下面的mw12是需要int型,为什么这个程序也可以用,int和word这2种数据类型有没有区别,难道可以通用...
图中上面的mw12是word,下面的mw12是需要int型,为什么这个程序也可以用,int和word这2种数据类型有没有区别,难道可以通用
展开
2015-09-22 · 知道合伙人教育行家
关注
展开全部
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,形式参数)定义的数据类型。
一、基本数据类型 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,形式参数)定义的数据类型。
展开全部
word是无符号的,或者说都是正数,取值范围0-65535
int是有符号的,最高位为1表示负数,0表示正数 取值范围-32768-32767
并没有冲突。都是16位的整数。
上面是计数器指令,MW12是计数器当前值,计数器不可能计出负数,所以用无符号的WORD型。下面是整数比较指令,所以用有符号的INT型。
int是有符号的,最高位为1表示负数,0表示正数 取值范围-32768-32767
并没有冲突。都是16位的整数。
上面是计数器指令,MW12是计数器当前值,计数器不可能计出负数,所以用无符号的WORD型。下面是整数比较指令,所以用有符号的INT型。
追问
那没有超限的话是否可以通用,在论坛看到有这么种说法:通常情况下WORD用于逻辑运算,INT用于数学运算,在使用梯形图或SCL等语言编程时区分较严格
在使用语句表编程时系统不检测数据类型是否匹配,即WORD与INT在用法上没有什么区别(WORD可做数学运算,INT也可作逻辑运算)不知这种说法是否正确
追答
PLC程序和高级语言不一样,不需要定义数据类型。
编程的时候只要编译能通过,寄存器数据不溢出,意思能满足你的要求,有符号和无符号其实并不重要。
况且你看这些数据需要在上位机看,一般都是在上位机里面定义数据类型。对于PLC,内部都是按二进制来处理的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-05 · 知道合伙人IT服务行家
关注
展开全部
byte word 只是代表数据长度,
不是数据类型。
不是数据类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询