int
-
2023年4月20日发(作者:d3dx9 39 dll)plc中int数据类型范围_PLC基本数据类型的解读(避免在使⽤中的误解)有⽹友对学习PLC过程中对于数据类型有很多疑问,利⽤本⽂再对PLC中的基本数据类型跟⼤家进⾏⼀下解读。对于数据类型的解释在⼿册中是这么说的:“数据类型⽤于指定数据元素的⼤⼩以及如何解释数据。每个指令参数⾄少⽀持⼀种数据类型,⽽有些参数⽀持多种数据类型。将光标停在指令的参数域上⽅,便可看到给定参数所⽀持的数据类型”。从上⾯的⼿册解释来说就是在编程中要对程序中⽤的数据给指定⼀个数据类型,要能满⾜数据⼤⼩(长度),让程序能进⾏计算,所以,要能明⽩你所使⽤的数据是什么类型,长度有多⼤,这样你才能在程序中准确进⾏逻辑运算、数学运算及数据传输等,同时,也要看你所使⽤的指令可以使⽤哪些数据类型,根据指令需要进⾏⼀些数据类型的转换。⼀、基本数据类型包含哪些?以西门⼦TIA S7-1200为例来说,1200的基本数据类型包括:⼆进制数、整数、浮点数、定时器数据、时间和⽇期、字符串等。下⾯主要以容易混淆的⼆进制数、整数和浮点数进⾏解读:1、⼆进制数(BOOL、BYTE、WORD、DWORD、LWORD)(1)BOOL型:布尔,是表⽰1位的值,就是说0或1。(2)BYTE:字节,是位字符串,占有8位,举例说2#0 到 2#1111_1111,对应16进数就是16#00—16#FF。如IB2、MB10、4(3)WORD:字,是位字符串,占有16位,举例说:2#0到2#1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF。如MW10、1。(4)DWORD:双字,是位字符串占有32位,举例说:2#0到2#1111 1111 1111 1111 1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF FFFF。如MD10、1。2、整数(SINT、USINT、INT、UINT、DINT、UDINT、LINT、ULINT),这⾥的S代表短,U代表⽆符号、D代表双。(1)SINT和USINT这两种相同的是短整形数,占8位,地址举例:MB0,0。但是这两种的取值范围是不同的。SINT:有符号短整形,取值范围-128—127,2#0—2#0111 1111,最⾼位为符号位,USINT:⽆符号短整形,取值范围0—255,2#0—2#1111 1111(2)INT和UINT这两种相同的是整形数,占16位,地址举例:MW0,0。但是这两种的取值范围是不同的。INT:有符号整形,取值范围-32768—32767,2#0—2#0111 1111 1111 1111,最⾼位为符号位,USINT:⽆符号短整形,取值范围0—65535,2#0—2#1111 1111 1111 1111(3)LDNT和UDINT这两种相同的是双整形数,占32位,地址举例:MD0,0。但是这两种的取值范围是不同的。DINT:有符号整形,取值范围-2,147,483,648—2,147,483,647,2#0—2#0111 1111 1111 1111 1111 1111 1111 1111,最⾼位为符号位,UDINT:⽆符号整形,取值范围0—4,294,967,295,2#0—2#1111 1111 1111 1111 1111 1111 1111 11113、浮点数实(或浮点)数以 32 位单精度数 (Real) 或 64位双精度数 (LReal) 表⽰。单精度浮点数的精度最⾼为 6位有效数字,⽽双精度浮点数的精度最⾼为 15 位有效数字。在输⼊浮点常数时,最多可以指定 6 位 (Real) 或 15 位 (LReal) 有效数字来保持精度。总结下:上述数据类型是我们在编程中最常⽤到的数据类型,通过上⾯的介绍⼤家应该对它们有⼀定的了解,虽然可能不同数据类型的数据占有的字节数是相同,但是它们的数据其实是不同的,⽐如,INT和WORD都是16位,但是它们包含数据内容是不同的,在编程中⼀定要注意。通常来说,WORD常⽤于逻辑计算,INT常⽤于数学计算,对于博途TIA S7-1200使⽤SCL编程时区分是⽐较严格的。⼆、如何定义数据类型在编程中我们⼀般要先定义好数据类型,⽐如在数据块中定义数据类型,下⾯以在DB块中定义数据类型为例,看看不同的数据类型地址有什么变化。建⽴如下数据块,并建⽴⼀下数据包含不同数据类型:从上图看不到偏移量,这时因为TIA中的DB块默认勾选“优化的块访问”,只能显⽰符号地址,⽽没有偏移量,可以在块属性中将“优化的块访问”去掉即可,下⾯就看看不同数据类型的地址:从上图⼤家能发现什么?(1)BOOL型,虽然只有⼀位,但是也要占⼀个字节。(2)SINT USINT 和BYTE都是1个字节,但是它们的初始值的格式是不同的。同样WORD和INT也是⼀样2个字节,所以,在数据类型分类,将WORD归到⼆进制数中,⼀般⽤于逻辑运算,⽽INT⽤于数学运算。(3)REAL是4个字节,在进⾏数学计算时要注意,⽐如,我前⾯写转换指令⽂章#跟我⼀起看1200⼿册之基本指令(转换指令)如何使⽤中⽤到的求平⽅根指令,就是对REAL型数据进⾏计算,所以,在选择数据时我使⽤的DINT数据。(如下图所⽰)。不注意的话容易造成计算错误。⽂章来源:综合⽹络,侵权联删,谢谢。戳这⾥,实⽤案例-
int