6ES7511-1FL03-0AB0|2023更新
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 联系电话
- 15821971992
- 全国服务热线
- 15821971992
- 经理
- 聂聪
- 所在地
- 上海市松江区广富林路4855弄88号3楼
- 更新时间
- 2023-10-26 04:00
plc是工业控制不可缺少的自动化核心设备,要想学好plc就必须要先了解数据类型。数据类型是所有自动化软件的基础,只有熟练掌握,才能随心所欲的驾驭。下面我们就以西门子s7-200为例,详细讲述这些数据类型。s7-200smart和s7-200类似。
西门子编程中基本的数据类型共7种,分别是:
位bit、字节byte、字word、双字doubleword、整数型int、双整数dint、实数real。
关系公式:1双字=2字=4字节=32位
1.位:bool,只有两个值0和1,如i0.0,q0.2等
2.字节:一个字节等于8位,范围是0~7,如ib0包括i0.0-i0.7。
3.字:相邻的两字节组成一个字,表示一个无符号数,因此字为16位。如iw0由ib0和ib1组成。
4.双字:相邻的两个字组成一个双字,来表示一个无符号数。如md4由mw4和mw6组成。
5.整数:为有符号数,zui高位为符号位,1表示正数,0表示负数。
6.浮点数:可以用来表示小数。
vw:v寄存器字。
iw:输入字。
qw:输出字。
mw:m寄存器字。
smw:系统寄存器字。
lw:临时寄存器字。
aiw:模拟量输入字 。
mwx表示数据格式为字word或整数int的内部寄存器地址。
mw0表示偏移地址为0的内存字,mw8表示偏移地址为8的内存字。
西门子plc的qw0用法如下:
西门子plc系统基本上是以字节为单位的,所以,其数据格式为字word或整数int的”规范“偏移地址是以2为步进量的,例如:mw2、mw4、mw6;(mw1这种地址也是允许的,但必须自行保证程序中所使用的数据地址不复用)。
1、基本数据类型
基本数据类型由以下几种:
1.1、位(bit)
定义为bool(布尔型),只有两个值:0 或 1。如:i0.0,q0.1,m0.0,v0.1 等。
1.2、字节(byte)
定义一个字节(byte)等于8 位(bit),其中0位为zui低位,7 位为zui高位。
如:ib0(包括 i0.0~i0.7 位),qb0(包括q0.0~q0.7 位),mb0,vb0 等。
用十六进制表示的范围为:00~ff,用十进制表示的范围为 0~255。
1.3、字(word)
定义相邻的两字节(byte)组成一个字(word),表示一个无符号整数,所以一个字为16位。
如:iw0 由 ib0 和 ib1组成的,其中i是输入映象寄存器,w表示字,0是字的起始字节。特别注意的是:起始字节必须是偶数。
字的范围为十六进制的 0000~ffff,十进制的 0~65536。
在编程时,如果已经使用 iw0,如果想再用 ib0或 ib1,就要特别慎重,避免重复定义。
1.4、双字(doubleword)
相邻的两个字(word)组成一个双字,来表示一个无符号数。因此,双字为 32 位。
如:md100 是由 mw100 和 mw102组成的,其中m是位存储区,d表示双字,100是双字的起始字节。特别注意的是:双字的起始字节也必须是偶数。
双字的范围为十六进制的 0000~ffffffff(即十进制的 0~4294967295)。
在编程时如果已经使用了md100,如果再用 mw100或mw102,就要特别慎重,避免重复定义。
特别注意:以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
1.5、16位整数(int,integer)
整数为有符号数,zui高位为符号位,1表示负数,0表示正数。范围为-32768~32767。
1.6、32 位整数(dint,doubleinteger)
32位整数和16位整数一样,为有符号数,zui高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。
1.7、浮点数(r,real)
浮点数为 32 位,可以用来表示小数。浮点数可以为:1.m×2e。数据类型vb,vw,vd关系
2、复合数据类型
用户通过复合基本数据类型而生成就是复合数据类型。
复合数据类型包括以下几种:
2.1、数组(array)
将一组同一类型的数据组合在一起组成一个单位就是数组。
2.2、结构(struct)
将一组同不同类型的数据组合在一起组成一个单位就是结构。
2.3、字符串(string)
字符串是由zui多 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和变量声明表中定义复合数据类型。
3、数据类型汇总表格
4、举例说明
对于有符号的整数来说,zui高位用作符号位,余下的位才是数值部分。
下面以有符号整数int来举例说明其数值范围为什么是-32768-32767?
zui高位是符号位,0为“+”、1为“-,去掉一个符号位后,余下的数据只有15位。
15位二进制1对应的整数zui大正整数为2^15-1=32767,zui大值为+32767,对应二进制:0111 1111 11111111。即十进制范围:0~32767;
15位二进制1对应的整数zui大负整数为-2^15=-32768,zui大值为-32768,对应二进制:1111 1111 11111111。即十进制范围:-32768~-1;
其实,数据类型简单也复杂,尤其是自定义数据类型。看得懂,并不代表你能在编程过程中能正确使用。只有自己动手编程,对不同的数据类型进行定义和使用,才能有深入地理解和掌握。当你对数据类型充分理解后,就可以学习数据的寻址。坚持不懈的学习和实际编程,才会有可能成为变成专家。