SIEMENS_PLC间接寻址及地址寄存器指令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Automation and Drives
STEP 7 中可能的寻址方式
寻址方式
直接寻址
间接寻址
绝对寻址
符号寻址
存储器间接寻址
寄存器间接寻址
16位指针 (DB, T, C)
示例: A I 4.0 L IW10 A "Mot_on" L #Num OPN DB[MW10] SP T["runtime"]
L T L next: T L T L L -D T L LOOP P#18.0 MD 40 10 MB 50 0 DBW[MD 40] MD 40 P#2.0 MD 40 MB 50 next
循环删除
// // // // // // // // // // // // 将终端地址(DBW18)作为指针 传送到MD 40; 将循环计数器值设置为10 传到MB 50中; 装载初始值 传到DB50中; 装载指针 并减去2个字节 然后再传回 到MD 40; 装载循环计数器 减去2个字节,条件满足则跳转;
SITRAIN Training for
Automation and Drives
间接寻址示例
FC30:间接寻址示例
Network(段) 1:使用间接寻址方式打开DB
L #dbnumber T MW 100 OPN DB[MW 100] // 将DB号拷贝到MW100 // // 打开DB
Network (段) 2:
SITRAIN Training for
Automation and Drives
存储器间接寻址的特性
用于存储16位和32位指针的地址区域:
位(Bit)存储区(绝对寻址或符号寻址) 例如: OPN DB[MW30],OPN DI[“Motor_1”] 等。 A I[MD30],T QD["Speed_1"],等) 本地数据堆栈(绝对寻址或符号寻址, 例如: OPN DB[LW10],OPN DI[#DB_NO]等。 A I[LD10],T QD[#Par_Pointer],等。) 全局(共享) 数据块(只能进行绝对寻址,DB必须预先打开, 例如: OPN DB[DBW0] (覆盖掉DB寄存器内容!!!),OPN DI[DBW22]等。 A I[DBD10],T QD[DBD22],等。) 背景数据块(只能进行绝对寻址,DI必须预先打开, 例如: OPN DB[DIW20],OPN DI[DIW0] (覆盖掉DI寄存器内容!!!),等 。 A I[DID10], T QD[DID22]等。)
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.3
SITRAIN Training for
Automation and Drives
DB中地址标识符直接寻址
打开的数据块 OPN DB 19 OPN "Values" OPN DI 20 在数据块中装载和传递
215 27 20
146
为0 ... 65 535 之间的无符号整数

32位指针的结构(内部区域):
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 B B B B B B B B B B B B B B B B X X X
L
W
访问 宽度
[AR1,
地址 寄存器
P#200.0]
偏移 常量 扩展指令: L
IW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.12
SITRAIN Training for
Automation and Drives
组合指令 (包含OPN D DB..)
L DB19.DBW4
L “Values”.Number_1
A DB10.DBX4.7
从DB 10 的第4个字节的第7位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.4
Date: File:
2013-5-2 PRO2_04E.2
SITRAIN Training for
Automation and Drives
变量直接寻址
地址
I Q PIB PQB M T C DBX DIX L
存储单元位置 (示例)
37.4 27.7 655 653 55.0 114 13 2001.6 406.1 88.5
4
2.0
#Ini_Value
-
32 #Counter 36 40
9.0 10.0
11.0 . . .
Meas_Value[9] Meas_Value[10] Meas_Value[11] 等等。
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
0 0 0 0 0 0 0 0 0 0 0 0 0 B B B B B B B B B B B B B B B B X X X
215 20 22 20
未定义
wenku.baidu.com
字节地址(无符号整数)
位地址

指令语法规则:
LAR1 P#10.0 // 设置AR1 AR1: 00000000 0000 0000 0000 0000 0101 0000
Date: File:
2013-5-2 PRO2_04E.6
SITRAIN Training for
Automation and Drives
用于存储器间接寻址的指针结构

16位指针的结构:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
SITRAIN Training for
Automation and Drives
在程序中分析数据块DB相关信息
用于DB寄存器的指令:

CDB:交换DB寄存器内容
DB寄存器 123 24
DI寄存器
24 指令执行前:
CDB
123 指令执行后:

将DB寄存器内容装载到ACCU1中 L DBNO (将打开的DB号装载到ACCU1中) L DINO (将打开的DI号装载到ACCU1中) 装载数据块长度 L DBLG (将打开的DB的长度/字节装载到ACCU1中) L DILG (将打开的DI的长度/字节装载到ACCU1中)

向FB和FC传递指针的特点
在参数里传递的指针不能直接用于存储器间接寻址。 用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里去

SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.8
Automation and Drives
交叉区域,寄存器间接寻址

AR 1或AR 2中的交叉区域指针:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 R R R 0 0 0 0 0 B B B B B B B B B B B B B B B B X X X 地址标识符 Bit 31=0: 内部区域 Bit 31=1: 交叉区域 字节地址(无符号整数) 位地址
+ 200
L
M
W
[AR1,
P#200.0]
存储区域 访问 宽度
地址 寄存器
偏移 常量
扩展指令:
L
MW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.11
SITRAIN Training for
用于装载地址寄存器的指令
装载地址寄存器
LARn (n =1 or 2): LARn <地址> LARn P#<地址>

将ACCU1中的内容装载到ARn 将<地址>中的内容装载到ARn 将<地址>中的地址装载到ARn AR1,AR2 (比如: LAR1 AR2 及LAR2 AR1) MD,LD, DBD,DID (比如: L DBD5等) 32位全局变量(比如: LAR1 “索引”,等) 以及OB,FB及FC的TEMP(临时)变量 (比如: LAR1 #Address,等)
215 20 22 20
未定义
字节地址(无符号整数)
位地址
装载32位指针常量(内部区域): L P#25.3 (P = 指针,字节地址= 25,位地址:3)
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.7
2013-5-2 PRO2_04E.10
SITRAIN Training for
Automation and Drives
内部区域,寄存器间接寻址

AR 1或AR2中的内部区域指针:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
间接寻址及地址寄存器指令
?
?
?
1 2
#Ini_Value
9 10 #Counter
L
W
[AR1,
P#200.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.1
SITRAIN Training for
L 11 T MW 60 OPN DB[MW 60] OPN DB 11

双字格式的32位指针(用于对I、Q、M...进行寻址)
L T L P#24.0 MD 50 I W [MD50] L IW 24
存储 区域
访问 宽度
地址
SIMATIC S7
Siemens AG 2001. All rights reserved.

地址标识符:
000 010 100 110
I/O 输出(PIQ) DB寄存器中的数据 自有本地数据
001 011 101 111
输入(PII) 位(Bit)存储器 DB寄存器2中的数据(DI) 调用块的LD(本地数据)

指令语法规则:
LAR1 P#I10.0 //设置AR1
AR1: 10000001 0000 0000 0000 0000 0101 0000 + 200

SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.5
SITRAIN Training for
Automation and Drives
存储器间接寻址

字格式的16位指针(用于对DB、T、C进行寻址)
L DBB 1 L DBW 2 L5 T DBW 4 L „A‟ L DIB28 ==I A DBX 0.0
装载数据字节1 装载数据字2(字节2/3) 装载数字5 传递到字4 装载ASCII字符A 装载数据字节28 比较 从0字节的第0位开始扫描 从DB 19中装载数据字4 符号访问变量 Number_1. DB19 具有变量名“Values”
附加访问宽度
字节,字,双字 字节,字,双字 字节,字,双字 字节,字,双字 字节,字,双字 ---
含义
输入 输出 外设输入 外设输出 位(Bit)存储器 定时器 计数器
字节(DBB), 字(DBW), 通过DB寄存器寻址的数据 双字(DBD) 字节(DIB), 字(DIW), 通过DI寄存器寻址的数据 双字(DID) 字节(LB), 字(LW), 双字 (LD) 本地数据堆栈
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.9
SITRAIN Training for
Automation and Drives
练习4.1:用间接寻址的方法进行循环编程
字节地址 0
DB41 1.0 Meas_Value[1] Meas_Value[2]
32位指针 内部区域
32位指针 内部区域
32位指针 交叉区域
A I[MD30] L IW["Number"]
A I[AR1,P#0.0] L ID[AR1,P#5.0]
A [AR1,P#0.0] T W[AR1,P#0.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
相关文档
最新文档