西门子 S7 间接寻址 说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
向FB和FC传递指针的特点 和 传递指针的特点
在参数里传递的指针不能直接用于存储器间接寻址。 用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里去
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.8
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 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
SITRAIN Training for
Automation and Drives
间接寻址示例
FC30:间接寻址示例 : Network(段) 1:使用间接寻址方式打开 ( :使用间接寻址方式打开DB L #dbnumber T MW 100 OPN DB[MW 100] Network (段) 2: 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 // 将DB号拷贝到 号拷贝到MW100 号拷贝到 // // 打开DB 打开 循环删除 // // // // // // // // // // // // 将终端地址( 将终端地址(DBW18)作为指针 ) 传送到MD 40; 传送到 ; 将循环计数器值设置为10 将循环计数器值设置为 传到MB 50中; 传到 中 装载初始值 传到DB50中; 传到 中 装载指针 并减去2个字节 并减去 个字节 然后再传回 到MD 40; ; 装载循环计数器 减去2个字节 条件满足则跳转; 个字节, 减去 个字节,条件满足则跳转;
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
未定义
字节地址(无符号整数)
位地址
指令语法规则: 指令语法规则:
LAR1 P#10.0 // 设置AR1 AR1: 00000000 0000 0000 0000 0000 0101 0000
Date: File:
2011-3-31 PRO2_04E.4
SITRAIN Training for
Automation and Drives
在程序中分析数据块DB相关信息 在程序中分析数据块 相关信息
用于DB寄存器的指令: 用于 寄存器的指令: 寄存器的指令
CDB:交换DB寄存器内容 :交换 寄存器内容
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.3
SITRAIN Training for
Automation and Drives
DB中地址标识符直接寻址 中地址标识符直接寻址
打开的数据块 OPN DB 19 OPN "Values" OPN DI 20 在数据块中装载和传递
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
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
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.5
SITRAIN Training for
Automation and Drives
存储器间接寻址
字格式的16位指针(用于对 、 、 进行寻址 进行寻址) 字格式的 位指针(用于对DB、T、C进行寻址) 位指针
组合指令 包含OPN D DB..) (包含 )
L DB19.DBW4
L “Values”.Number_1
A DB10.DBX4.7
的第4个字节的第 个字节的第7位开始扫描 从DB 10 的第 个字节的第 位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.9
SITRAIN Training for
Automation and Drives
练习4.1: 练习 :用间接寻址的方法进行循环编程
字节地址 0 4
DB41 1.0 2.0 Meas_Value[1] Meas_Value[2]
#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.
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.7
SITRAIN Training for
Automation and Drives
存储器间接寻址的特性
用于存储16位和 位指针的地址区域 用于存储 位和32位指针的地址区域: 位和 位指针的地址区域:
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
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.
位(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]等。)
+ 200
L
M
W
[AR1,
P#200.0]
存储区域 访问 宽度
地址 寄存器
偏移 常量
扩展指令:
L
Байду номын сангаас
MW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2011-3-31 PRO2_04E.11
SITRAIN Training for
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 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) ) 本地数据堆栈
Date: File:
2011-3-31 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:
2011-3-31 PRO2_04E.1
SITRAIN Training for
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
未定义
字节地址(无符号整数)
位地址
装载32位指针常量(内部区域): 装载 位指针常量(内部区域): 位指针常量
L P#25.3 (P = 指针,字节地址= 25,位地址:3)
DB寄存器 寄存器 123 24
DI寄存器 寄存器
24 指令执行前: 指令执行前:
CDB
123 指令执行后: 指令执行后:
寄存器内容装载到ACCU1中 将DB寄存器内容装载到 寄存器内容装载到 中 L DBNO (将打开的DB号装载到ACCU1中) L DINO (将打开的DI号装载到ACCU1中) 装载数据块长度 L DBLG (将打开的DB的长度/字节装载到ACCU1中) L DILG (将打开的DI的长度/字节装载到ACCU1中)
Date: File:
2011-3-31 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
L 11 T MW 60 OPN DB[MW 60] OPN DB 11
双字格式的32位指针(用于对I、Q、M...进行寻址 进行寻址) 双字格式的32位指针(用于对I、Q、M...进行寻址) 位指针
L T L P#24.0 MD 50 I W [MD50] L IW 24
存储 区域
访问 宽度
地址
SIMATIC S7