详解西门子S7 您所在的位置:网站首页 位与字节的关系通俗易懂 详解西门子S7

详解西门子S7

2024-06-23 01:23| 来源: 网络整理| 查看: 265

PLC是工业控制不可缺少的自动化核心设备,要想学好PLC就必须要先了解数据类型。数据类型是所有自动化软件的基础,只有熟练掌握,才能随心所欲的驾驭。下面我们就以西门子S7-200为例,详细讲述这些数据类型。S7-200SMART和S7-200类似。

西门子编程中基本的数据类型共7种,分别是:

位bit、字节byte、字word、双字double word、整数型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.整数:为有符号数,最高位为符号位,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位为最低位,7 位为最高位。

如: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)

整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。

 1.6、32 位整数(DINT,DoubleInteger)

32 位整数和16位整数一样,为有符号数,最高位为符号位,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)

字符串是由最多 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、举例说明

对于有符号的整数来说,最高位用作符号位,余下的位才是数值部分。

下面以有符号整数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;

 其实,数据类型简单也复杂,尤其是自定义数据类型。看得懂,并不代表你能在编程过程中能正确使用。只有自己动手编程,对不同的数据类型进行定义和使用,才能有深入地理解和掌握。当你对数据类型充分理解后,就可以学习数据的寻址。坚持不懈的学习和实际编程,才会有可能成为变成专家。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有