PLC的基本数据类型及其使用,你学会了吗?
STEP7的基本数据类型总共有7种,分别为:位(bit)、字节(Byte)、字(Word)、双字(Double Word)、整型数(INT)、双整型数(DINT)以及实数(REAL)。
1. 位(bit)
取值:1、0
寻址方式:地址标识符+字节地址+位地址。
图1 基本数据类型:位(bit)
2. 字节(Byte)
8位二进制数组成一个字节。其中,第0位为最低位(LSB),第7位为最高位(MSB)。
寻址方式:地址标识符+B+字节地址,其中,"B"即代表字节。
图2 基本数据类型:字节(Byte)
3. 字(Word)
相邻的两个字节组成一个字,16位。
字用来表示无符号数,范围:[0000,FFFF]16进制,或[0,65535]10进制
寻址方式:地址标识符+W+首字节地址,其中,"W"代表字。
图3 基本数据类型:字(Word)
4. 双字(Double Word)
相邻的两个字组成一个双字,32位。
双字也用来表示无符号,范围:[00000000,FFFFFFFF]16进制
寻址方式:地址标识符+D+首字节地址,其中,"D"代表双字。
图4 基本数据类型:双字(Double Word)
5. 整型数(INT)
整数是有符号数,占16位。最高位为符号位,0:正数;1:负数。
取值范围为:[-32768,32767]。
6. 双整型数(DINT)
双整数也是有符号数,占32位。最高位为符号位,0:正数;1:负数。
取值范围为:[-2147483648,2147483647]。
7. 浮点数(REAL)
标准的浮点数格式如图5所示,占32位。
最高位为符号位,0:正数;1:负数。
图5 基本数据类型:浮点数(REAL)
浮点数的优点是用32位的空间可以表示非常大和非常小的数。
PLC在处理模拟量时,其输入和输出大多是整数,用浮点数来处理这些数据时要进行整数和浮点数之间的相互转换。例如图6所示,现场采集的数据为16位的整型数("#IN"),PLC在做控制前,要先将其转换为浮点数("#DItoR")。由于整型数占16位,而浮点数占32位,二者不能直接转换。要先将整型数转换为双整型("#ItoDI"),然后再转换为浮点型。
图6 整型数转换为浮点数
需要注意的是,浮点数的运算速度比整数的运算速度要慢得多。
↓学习资料
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、DB1.DBB4
(3)WORD:字,是位字符串,占有16位,举例说:2#0到2#1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF。如MW10、DB2.DBW1。
(4)DWORD:双字,是位字符串占有32位,举例说:2#0到2#1111 1111 1111 1111 1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF FFFF。如MD10、DB2.DBD1。
2、整数(SINT、USINT、INT、UINT、DINT、UDINT、LINT、ULINT),这里的S代表短,U代表无符号、D代表双。
(1)SINT和USINT
这两种相同的是短整形数,占8位,地址举例:MB0,DB1.DBB0。但是这两种的取值范围是不同的。
SINT:有符号短整形,取值范围-128—127,2#0—2#0111 1111,最高位为符号位,
USINT:无符号短整形,取值范围0—255,2#0—2#1111 1111
(2)INT和UINT
这两种相同的是整形数,占16位,地址举例:MW0,DB1.DBW0。但是这两种的取值范围是不同的。
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,DB1.DBD0。但是这两种的取值范围是不同的。
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 1111
3、浮点数
实(或浮点)数以 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数据。(如下图所示)。不注意的话容易造成计算错误。
相关问答
plc编程里怎么保存数据?
跟一般文件一样的不过要先转换(按F4)再保存。PLC是采用“顺序扫描,不断循环”的方式进行工作的。即在PLC运行时,CPU根据用户按控制要求编制好并存于用户存...
plc编程16位数据和32位数据是什么意思?
所谓“位”就是bit的意思:一个“位”bit代表一个二进制"0"或一个“1”,16位是一个字W,代表16个二进制0/1,32位是一个双字DW,代表32个二进制0/1。一个二进制....
plc一个字的最大数值是多少?
您好,在计算机领域中,PLC是ProgrammableLogicController的缩写,它是一种可编程逻辑控制器。PLC通常用于工业自动化控制系统中,用于控制和监测各种机器和设...
PLC数据类型?
PLC类型有基本数据、复合数据、参数三大类。1.基本数据:二进制位为l位,字节为8位,字为16位,双字为32位等。2.复合数据:是指字长大于2个字(32位)的数据...PL...
plc数据通讯程序编写步骤?
第一步:阅读产品说明书第二步:根据说明书,检查I/O第三步:打开编程软件,进行硬件配置,并将I/O地址写在符号表中第四步:写出程序流程图第五步:在软件中...
plc给上位机提供哪些数据?
首先要知道,什么是上位机,A控制B,那A就是上位机,A发送协议内规定的一串数据,B接收到确认数据没错再返回其对应的数据。相对应的B就是下位机,plc常见的上位...
plc数据如何传递的?
plc有模数转换模块的,大部分PLC没有模拟信号处理能力,通过扩展接口来实现对模拟信号进行处理。还可以利用热电偶与模块输入之间的直接连接传递,也可以使用补...
西门子plc数据类型详解?
西门子PLC数据类型包括:位(BOOL)、字节(BYTE)、字符(CHAR)、整数(INT)、长整数(DINT)、无符号整数(WORD)、无符号长整数(DWORD)、单精度浮点数(R...西门子PL...
PLC数据记录?
一般PLC不会发生问题!如果有问题,和它有直接关系的设备都会停止。如果真想装记录设备,可以选记录仪或组态软件。前者精度低,后续费用高,故障率高,定期换纸...
PLC编程中常用的进制类型?
在PLC编程中,常用的进制类型有以下三种:1.二进制:是一种基本的计算机数据表示方法,仅包含“0”和“1”这两个数字。在PLC编程中,二进制通常用于表示某个输...