S7-300 和 S7-400储存区域及寻址方式介绍
本文就S7300/400的储存区域及寻址方式作一简单介绍,以求帮助大家尽快掌握西门子STEP7编程软件的正确使用。
一 S7-300/400系统存储区域
S7 CPU的系统存储区域分为下表中列出的地址区域。在程序中可以根据相应的地址直接读取数据。
|
地址区域 |
可以访问的地址单位 |
S7符号 (IEC) |
描述 |
|
过程映像输入表 |
输入(位) |
I |
循环扫描周期开始时,CPU从输入模板读输入值并记录到该区域 |
|
输入(字节) |
IB |
||
|
输入(字) |
IW |
||
|
输入(双字) |
ID |
||
|
过程映像输出表 |
输出(位) |
Q |
在循环扫描周期中,程序计算输出值并记录到该区域。循环扫描周期结束时,CPU将计算结果写入相应的输出模板 |
|
输出(字节) |
QB |
||
|
输出(字) |
QW |
||
|
输出(双字) |
QD |
||
|
位存储器 |
存储器(位) |
M |
该区域用于存储程序的中间计算结果 |
|
存储器(字节) |
MB |
||
|
存储器(字) |
MW |
||
|
存储器(双字) |
MD |
||
|
定时器 |
定时器 (T) |
T |
该区域提供定时器的存储 |
|
计数器 |
计数器 (C) |
C |
该区域提供计数器的存储 |
|
数据块 |
数据块,用"OPN DB"打开 |
DB |
数据块中包含了程序的信息。可以定义为所有逻辑块共享 (shared DBs) 或指定给一个特定的 FB或 SFB 做背景数据块(instance DB)。 |
|
数据位 |
DBX |
||
|
数据字节 |
DBB |
||
|
数据字 |
DBW |
||
|
数据双字 |
DBD |
||
|
数据块,用"OPN DI"打开 |
DI |
||
|
数据位 |
DIX |
||
|
数据字节 |
DIB |
||
|
数据字 |
DIW |
||
|
数据双字 |
DID |
||
|
局部数据 |
局部数据位 |
L |
该区域包含块执行时该块的临时数据。L堆栈还提供用于传递块参数及记录梯形逻辑网络中间结果的存储器 |
|
局部数据字节 |
LB |
||
|
局部数据字 |
LW |
||
|
局部数据双字 |
LD |
||
|
外设地址 (I/O) |
外设输入字节 |
PIB |
主站及分布式从站(DP)外设输入输出区域允许直接存取 |
|
输入 |
|||
|
外设输入字 |
PIW |
||
|
外设输入双字 |
PID |
||
|
外设地址 (I/O) |
外设输出字节 |
PQB |
|
|
输出 |
|||
|
外设输出字 |
PQW |
||
|
外设输出双字 |
PQD |
二S7-300/400 PLC寻址方式
1. 直接地址:例如I0.0,Q1.7,PIW256,PQW512,MD20,T15,C16,DB1.DBB10,L10.0等
2. 符号寻址:例如qq,ww.aa等
在STEP 7程序中要用到I/O信号、位寄存器、计数器、定时器、数据块及功能块。在程序中可以采用直接地址,或者更便于读程序的符号寻址,例如Motor_A_On, 或采用你的公司或行业常用的代码。这样在你的用户程序中就可以通过符号来寻址。
绝对地址
绝对地址由地址标识符和存储器的位置组成,例如 Q1.0,I1.1, M2.0, FB21等。
符号地址
如果为绝对地址指定一个符号名,程序会更便于阅读和查错。
STEP 7 可以自动将符号名翻译成所需的绝对地址。如果要用符号名存取ARRAY、STRUCT、数据块、局部数据、逻辑块、以及用户自定义数据类型, 必须首先为绝对地址指定一个符号名。
例如,可以为Q0.0 指定一个符号名MOTOR_ON,然后在程序中将MOTOR_ON作为一个地址使用。使用符号地址更容易将您的过程控制项目中的元件与程序中的元件相对应。
注意:
在符号名中不允许使用两个连续的下划线,例如MOTOR__ON。
编程支持
LAD、FBD、STL中地址、参数、块名可用绝对地址或符号表示。
用菜单命令View > Display > Symbolic Representation,可以切换绝对地址和符号地址
为了使用符号地址编程更加容易,可以同时显示绝对地址和符号名。使用菜单命令 View > Display > Symbol Information来激活。这就意味着STL语句的注释包含了更多的信息。不能在该界面下进行修改,只能在符号表(symbol table)或变量声明表(variable declaration table)中进行修改。
1. 存储器间接寻址:16位指针,例如OPN DB[MW2]
32位指针,例如A I[MD0]
2. 寄存器间接寻址:32位指针,例如A I[AR1,P#0.0],A [AR1,P#0.0]

指针用来指向一个地址。使用这种寻址方式的优点在于可以在程序运行过程中实现变址。
指针用于存储器间接寻址
程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。
下面给出一个双字格式的指针的例子:
L P#8.7 把指针值装载到累加器1
T I[MD2] 把指针值传送到MD2
A I[MD2] 查询I8.7的信号状态
= Q[MD2] 给输出位Q8.7赋值
存储区域内部寻址及交叉寻址
程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。地址寄存器(AR1、AR2)及偏移量必须写在方括号内。
存储区域内部寻址例程
指针不包含指示存储区域的信息:
L P#8.7 把指针值装载到累加器1
LAR1 把指针从累加器1装载到AR1
A I[AR1,P#0.0] 查询I8.7的信号状态
= Q[AR1,P#1.1] 给输出位Q10.0赋值
偏移量0.0不起作用。输出Q10.0 等于8.7 (AR1) 加偏移量1.1。结果是10.0 ,而不是9.8,参见指针格式。
存储区域交叉寻址例程
在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为 I 和 Q)。
L P#I8.7 把指针值及存储区域标识装载到累加器1
LAR1 把存储区域I 和地址8.7装载到AR1
L P#Q8.7 把指针值和地址标识符装载到累加器1
LAR2 把存储区域Q和地址8.7装载到AR2
A [AR1,P#0.0] 查询输入位I8.7的信号状态
= [AR2,P#1.1] 给输出位Q10.0赋值
偏移量0.0不起作用。输出Q10.0 等于8.7 (AR2) 加偏移量1.1。结果是10.0 ,而不是9.8,参见指针格式。
地 址:南京市建邺区梦都大街1号7幢2层201-27室
电 话:025-52783600 52783601 52783602 52783603
传 真:025-52783600-801
邮 编:210000
E-mail: nanjing_hx@163.com
Copyright © 2009-2016 南京汇翔自动化系统工程有限公司 All rights reserved 版权所有