西门子PLC指针寻址教学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

L 11 T MW 60
OPN DB[MW 60]
OPN DB 11
z 双字格式的32位指针(用于对I、Q、M...进行寻址)
L P#24.0 T MD 50
LI
W
[MD50]
L IW 24
存储 访问 区域 宽度
地址
SIMATIC S7
Siemens AG 2001. All rights reserved.
地址标识符
Bit 31=0: 内部区域 Bit 31=1: 交叉区域
字节地址(无符号整数)
位地址
z 地址标识符:
000 I/O
010 输出(PIQ) 100 DB寄存器中的数据 110 自有本地数据
001 输入(PII)
011 位(Bit)存储器 101 DB寄存器2中的数据(DI) 111 调用块的LD(本地数据)
本地数据堆栈
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.3
SITRAIN Training for
Automation and Drives
DB中地址标识符直接寻址
打开的数据块
在数据块中装载和传递
A DBX 0.0
从0字节的第0位开始扫描
L DB19.DBW4 从DB 19中装载数据字4
L “Values”.Number_1 符号访问变量
Number_1. DB19 具有变量名“Values”
A DB10.DBX4.7 从DB 10 的第4个字节的第7位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.8
SITRAIN Training for
Automation and Drives
间接寻址示例
FC30:间接寻址示例
Network(段) 1:使用间接寻址方式打开DB
z 背景数据块(只能进行绝对寻址,DI必须预先打开,
例如:
OPN DB[DIW20],OPN DI[DIW0] (覆盖掉DI寄存器内容!!!),等

A I[DID10], T QD[DID22]等。)
向FB和FC传递指针的特点
z 在参数里传递的指针不能直接用于存储器间接寻址。 z 用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里去
字节地址 0 4
DB41
1.0 2.0
-
Meas_Value[1] Meas_Value[2]
#Counter
32
9.0
36
10.0
40
11.0
.
.
.
Meas_Value[9] Meas_Value[10] Meas_Value[11]
等等。
SIMATIC S7
Siemens AG 2001. All rights reserved.
L #dbnumber T MW 100 OPN DB[MW 100]
// 将DB号拷贝到MW100
// // 打开DB
Network (段) 2:
L P#18.0 T MD 40 L 10 next: T MB 50 L0 T DBW[MD 40] L MD 40 L P#2.0 -D T MD 40 L MB 50 LOOP next
6 54
3210
0 0 0 0 0 0 0 0 0 0 0 0 0 BBBBBBBBBBBBBBBBXXX
215
20 22 20
未定义
字节地址(无符号整数)
位地址
z 指令语法规则:
LAR1 P#10.0
// 设置AR1 AR1: 00000000 0000 0000 0000 0000 0101 0000
LM W
[AR1, P#200.0]
+ 200
存储区域 访问 宽度
地址 寄存器Hale Waihona Puke 偏移 常量扩展指令:
L MW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.11
SITRAIN Training for
215
20 22 20
未定义
字节地址(无符号整数)
位地址
z 装载32位指针常量(内部区域):
L P#25.3 (P = 指针,字节地址= 25,位地址:3)
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.7
z 本地数据堆栈(绝对寻址或符号寻址,
例如:
OPN DB[LW10],OPN DI[#DB_NO]等。
A I[LD10],T QD[#Par_Pointer],等。)
z 全局(共享) 数据块(只能进行绝对寻址,DB必须预先打开, 例如: OPN DB[DBW0] (覆盖掉DB寄存器内容!!!),OPN DI[DBW22]等。 A I[DBD10],T QD[DBD22],等。)
Date: File:
2013-4-26 PRO2_04E.10
SITRAIN Training for
Automation and Drives
内部区域,寄存器间接寻址
z 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
Automation and Drives
直接寻址
STEP 7 中可能的寻址方式
寻址方式
间接寻址
绝对寻址 符号寻址
存储器间接寻址
寄存器间接寻址
16位指针 (DB, T, C)
32位指针 内部区域
32位指针 内部区域
32位指针 交叉区域
示例:
A I 4.0 L IW10
A "Mot_on" OPN DB[MW10]
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.5
SITRAIN Training for
Automation and Drives
存储器间接寻址
z 字格式的16位指针(用于对DB、T、C进行寻址)
(全局和局域的)
P#<地址>
z 指向布尔型绝对地址 指针:
z 指向本地、符号地址
将ACCU1中的内容装载到ARn 将<地址>中的内容装载到ARn 将<地址>中的地址装载到ARn
AR1,AR2 (比如: LAR1 AR2 及LAR2 AR1) MD,LD, DBD,DID (比如: L DBD5等) 32位全局变量(比如: LAR1 “索引”,等) 以及OB,FB及FC的TEMP(临时)变量 (比如: LAR1 #Address,等)
z 将DB寄存器内容装载到ACCU1中 L DBNO (将打开的DB号装载到ACCU1中) L DINO (将打开的DI号装载到ACCU1中)
z 装载数据块长度 L DBLG (将打开的DB的长度/字节装载到ACCU1中) L DILG (将打开的DI的长度/字节装载到ACCU1中)
间接寻址及地址寄存器指令
? ?
?
1
2
-
-
-
#Ini_Value
-
9 10
#Counter
L W [AR1, P#200.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.1
SITRAIN Training for
Date: File:
2013-4-26 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
Date: File:
2013-4-26 PRO2_04E.6
SITRAIN Training for
Automation and Drives
用于存储器间接寻址的指针结构
z 16位指针的结构:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0000000010010010
OPN DB 19 OPN "Values" OPN DI 20
组合指令 (包含OPN D DB..)
L DBB 1 L DBW 2 L5 T DBW 4 L ‘A’ L DIB28 ==I
装载数据字节1 装载数据字2(字节2/3) 装载数字5 传递到字4 装载ASCII字符A 装载数据字节28 比较
146
215
27
20
为0 ... 65 535 之间的无符号整数
z 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 54
3210
0 0 0 0 0 0 0 0 0 0 0 0 0 BBBBBBBBBBBBBBBBXXX
L #Num
SP T["runtime"]
A I[MD30] L IW["Number"]
A I[AR1,P#0.0] A [AR1,P#0.0] L ID[AR1,P#5.0] T W[AR1,P#0.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
SITRAIN Training for
Automation and Drives
存储器间接寻址的特性
用于存储16位和32位指针的地址区域:
z 位(Bit)存储区(绝对寻址或符号寻址)
例如:
OPN DB[MW30],OPN DI[“Motor_1”] 等。
A I[MD30],T QD["Speed_1"],等)
附加访问宽度
含义
字节,字,双字
输入
字节,字,双字
输出
字节,字,双字
外设输入
字节,字,双字
外设输出
字节,字,双字
位(Bit)存储器
--
定时器
--
计数器
字节(DBB), 字(DBW),通过DB寄存器寻址的数据 双字(DBD)
字节(DIB), 字(DIW), 通过DI寄存器寻址的数据 双字(DID)
字节(LB), 字(LW), 双字 (LD)
Automation and Drives
交叉区域,寄存器间接寻址
z 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 54
3210
1 0 0 0 0 RRR0 0 0 0 0 BBBBBBBBBBBBBBBBXXX
Date: File:
2013-4-26 PRO2_04E.12
SITRAIN Training for
Automation and Drives
用于装载地址寄存器的指令
装载地址寄存器
z LARn (n =1 or 2): z LARn <地址> z LARn P#<地址>
<地址>:
z 处理器寄存器: z 32位变量: z 32位符号变量:
循环删除
// 将终端地址(DBW18)作为指针 // 传送到MD 40; // 将循环计数器值设置为10 // 传到MB 50中; // 装载初始值 // 传到DB50中; // 装载指针 // 并减去2个字节 // 然后再传回 // 到MD 40; // 装载循环计数器 // 减去2个字节,条件满足则跳转;
Date: File:
2013-4-26 PRO2_04E.4
SITRAIN Training for
Automation and Drives
在程序中分析数据块DB相关信息
用于DB寄存器的指令:
z CDB:交换DB寄存器内容
DB寄存器
123
24
DI寄存器
24
CDB
指令执行前:
123 指令执行后:
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-4-26 PRO2_04E.9
SITRAIN Training for
Automation and Drives
练习4.1:用间接寻址的方法进行循环编程
#Ini_Value
z 指令语法规则:
LAR1 P#I10.0
//设置AR1
AR1: 10000001 0000 0000 0000 0000 0101 0000
L W [AR1, P#200.0]
+ 200
访问 地址 宽度 寄存器
偏移 常量
扩展指令:
L IW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
相关文档
最新文档