S7 存储区域、数据类型学习记录

存储区域

西门子系统,将存储区分成不同类型:

  1. C:COUNTERS
  2. T:TIMERS
  3. D:DIRECT_PERIPHERAL_ACCESS
  4. I:INPUTS
  5. Q:OUTPUTS
  6. M:FLAGS_MARKERS
  7. DB:DATA_BLOCKS
  8. DBI:INSTANCE_DATA_BLOCKS
  9. LD:LOCAL_DATA
    本次主要对M-存储区、I-输入、Q-输出、DB数据块说明。

I:输入区

内部地址分为D(DW)双字、W字、B字节和位。
位:1bit
B(BYTE):8位/1字节;
W(WORD):16位/2字节;
D(DOULBE WORD):32位/4字节
为了方便理解,下面用例子说明

I100.0

表示I区第100字节的第0位,通常数据类型为BOOL

IB100

表示I区第100字节,其包含I100.0、I100.1、~I100.7共8位,数据可能为BYTE、SINT、USINT、CHAR如果数据类型为STRING需要再后面增加字符串长度IB100.30

IW100

表示I区第100字节开始的字,其包含IB100、IB101,数据可能为DWORD、DINT、UDINT、REAL

ID100

ID100:表示I区第100字节开始的双字,其包含IW100,IW102,或者IB100、IB101、IB102、IB103,数据可能为WORD、INT、UINT

Q:输出区

内部地址分为D(DW)双字、W字、B字节和位。
位:1bit
B(BYTE):8位/1字节;
W(WORD):16位/2字节;
D(DOULBE WORD):32位/4字节
为了方便理解,下面用例子说明

Q100.0

表示Q区第100字节的第0位,通常数据类型为BOOL

QB100

表示Q区第100字节,其包含Q100.0、Q100.1、~Q100.7共8位,数据可能为BYTE、SINT、USINT、CHAR如果数据类型为STRING需要再后面增加字符串长度QB100.30

QW100

表示Q区第100字节开始的字,其包含QB100、QB101,数据可能为DWORD、DINT、UDINT、REAL

QD100

QD100:表示I区第100字节开始的双字,其包含QW100,QW102,或者QB100、QB101、QB102、QB103,数据可能为WORD、INT、UINT

M:存储区

内部地址分为D(DW)双字、W字、B字节和位。
位:1bit
B(BYTE):8位/1字节;
W(WORD):16位/2字节;
D(DOULBE WORD):32位/4字节
为了方便理解,下面用例子说明

M100.0

表示M区第100字节的第0位,通常数据类型为BOOL

MB100

表示M区第100字节,其包含M100.0、M100.1、~M100.7共8位,数据可能为BYTE、SINT、USINT、CHAR如果数据类型为STRING需要再后面增加字符串长度MB100.30

MW100

表示M区第100字节开始的字,其包含MB100、MB101,数据可能为DWORD、DINT、UDINT、REAL

MD100

MD100:表示I区第100字节开始的双字,其包含MW100,MW102,或者MB100、MB101、MB102、MB103,数据可能为WORD、INT、UINT

DB:数据块

内部地址分为D(DW)双字、W字、B字节和位。
位:1bit
B(BYTE):8位/1字节;
W(WORD):16位/2字节;
D(DOULBE WORD):32位/4字节
为了方便理解,下面用例子说明

DB1.DBX100.0

表示数据块DB1的第100字节的第0位,通常数据类型为BOOL

DB1.DBB100

表示数据块DB1的第100字节开始的字节,数据可能为BYTE、SINT、USINT、CHAR如果数据类型为STRING需要再后面增加字符串长度DB1.DBB100.30

DB1.DBW100

表示数据块DB1的第100字节开始的字,数据可能为DWORD、DINT、UDINT、REAL

DB1.DBD100

表示数据块DB1的第100字节开始的双字,数据可能为WORD、INT、UINT

数据类型

1、二进制数(BOOL、BYTE、WORD、DWORD、LWORD)

BOOL型:

布尔,是表示1位的值,就是说0或1。

BYTE:

字节,是位字符串,占有8位,举例说2#0 到 2#1111_1111,对应16进数就是16#00—16#FF。如IB2、MB10、DB1.DBB4

WORD:

字,是位字符串,占有16位,举例说:2#0到2#1111 1111 1111 1111,对应的16进制数就是16#0—16#FFFF。如MW10、DB2.DBW1。

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代表双。

SINT和USINT:

这两种相同的是短整形数,占8位,地址举例:MB0,DB1.DBB0。但是这两种的取值范围是不同的。
SINT:有符号短整形,取值范围-128—127,2#0—2#0111 1111,最高位为符号位,
USINT:无符号短整形,取值范围0—255,2#0—2#1111 1111

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

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) 有效数字来保持精度。

后记

本文只是记录本人学习过程中的理解,可能有部分内容有纰漏,望各位不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只胖橘丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值