《西门子s7-300高级编程培训4间接寻址和地址寄存器资料》由会员分享,可在线阅读,更多相关《西门子s7-300高级编程培训4间接寻址和地址寄存器资料(23页珍藏版)》请在金锄头文库上搜索。
1、Date:* File:PRO2_04E.1 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 间接寻址及地址寄存器指令 L W AR1, P#200.0 - - - - 1 2 9 10 #Ini_Value #Par_Pointer #Counter ? ? ? Date:* File:PRO2_04E.2 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automa
2、tion and Drives STEP 7 中可能的寻址方式 寻址方式 直接寻址间接寻址 绝对寻址符号寻址存储器间接寻址寄存器间接寻址 示例: A I 4.0A “Mot_on“OPN DBMW10A IMD30A IAR1,P#0.0A AR1,P#0.0 L IW10L #NumSP T“runtime“L IW“Number“L IDAR1,P#5.0T WAR1,P#0.0 16位指针 (DB, T, C) 32位指针 内部区域 32位指针 内部区域 32位指针 交叉区域 Date:* File:PRO2_04E.3 SIMATIC S7 Siemens AG 2001. All r
3、ights reserved. SITRAIN Training for Automation and Drives 变量直接寻址 存储单元位置 (示例) I37.4 地址附加访问宽度 字节,字,双字 含义 输入 Q27.7字节,字,双字输出 PIB655字节,字,双字外设输入 PQB653字节,字,双字外设输出 M55.0字节,字,双字位(Bit)存储器 T114-定时器 C13-计数器 DBX2001.6 字节(DBB), 字(DBW), 双字(DBD) 通过DB寄存器寻址的数据 DIX406.1 字节(DIB), 字(DIW), 双字(DID) 通过DI寄存器寻址的数据 L88.5 字节
4、(LB), 字(LW), 双字 (LD) 本地数据堆栈 Date:* File:PRO2_04E.4 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives DB中地址标识符直接寻址 打开的数据块在数据块中装载和传递 OPN DB 19 OPN “Values“ OPN DI 20 组合指令 (包含OPN D DB) L DBB 1装载数据字节1 L DBW 2装载数据字2(字节2/3) L 5装载数字5 T DBW 4传递到字4 L A装载ASCII字符A L DI
5、B28装载数据字节28 =I比较 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位开始扫描 Date:* File:PRO2_04E.5 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 用于DB寄存器的指令: lCDB:交换DB寄存器内容 l将DB
6、寄存器内容装载到ACCU1中 L DBNO (将打开的DB号装载到ACCU1中) L DINO (将打开的DI号装载到ACCU1中) l装载数据块长度 L DBLG (将打开的DB的长度/字节装载到ACCU1中) L DILG (将打开的DI的长度/字节装载到ACCU1中) 在程序中分析数据块DB相关信息 指令执行前:指令执行后: CDB 12324 24123 DB寄存器 DI寄存器 Date:* File:PRO2_04E.6 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation a
7、nd Drives l字格式的16位指针(用于对DB、T、C进行寻址) L 11 T MW 60 OPN DBMW 60 OPN DB 11 l双字格式的32位指针(用于对I、Q、M.进行寻址) L P#24.0 T MD 50 L I W MD50 L IW 24 存储 访问 地址 区域宽度 存储器间接寻址 Date:* File:PRO2_04E.7 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 用于存储器间接寻址的指针结构 l16位指针的结构: 为0
8、. 65 535 之间的无符号整数 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2021527 146 l32位指针的结构(内部区域): B B B B B B B B B B B B B X X X 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 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 2022 位地址 字节地址(无符号整数) 20215 未定义 l装
9、载32位指针常量(内部区域): L P#25.3 (P = 指针,字节地址= 25,位地址:3) Date:* File:PRO2_04E.8 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 存储器间接寻址的特性 用于存储16位和32位指针的地址区域: l位(Bit)存储区(绝对寻址或符号寻址) 例如: OPN DBMW30,OPN DI“Motor_1” 等。 A IMD30,T QD“Speed_1“,等) l本地数据堆栈(绝对寻址或符号寻址, 例如: O
10、PN DBLW10,OPN DI#DB_NO等。 A ILD10,T QD#Par_Pointer,等。) l全局(共享) 数据块(只能进行绝对寻址,DB必须预先打开, 例如: OPN DBDBW0 (覆盖掉DB寄存器内容!),OPN DIDBW22等。 A IDBD10,T QDDBD22,等。) l背景数据块(只能进行绝对寻址,DI必须预先打开, 例如: OPN DBDIW20,OPN DIDIW0 (覆盖掉DI寄存器内容!),等。 A IDID10, T QDDID22等。) 向FB和FC传递指针的特点 l在参数里传递的指针不能直接用于存储器间接寻址。 l用于存储器间接寻址而传递的指针,
11、在访问之前必须拷贝到临时变量里去 Date:* File:PRO2_04E.9 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 间接寻址示例 FC30:间接寻址示例 Network(段) 1:使用间接寻址方式打开DB L#dbnumber/ 将DB号拷贝到MW100 TMW100/ OPNDBMW 100/ 打开DB Network (段) 2:循环删除 LP#18.0/ 将终端地址(DBW18)作为指针 TMD40/ 传送到MD 40; L10/ 将循环计数
12、器值设置为10 next: TMB50/ 传到MB 50中; L0/ 装载初始值 TDBWMD 40/ 传到DB50中; LMD40/ 装载指针 LP#2.0/ 并减去2个字节 -D/ 然后再传回 TMD40/ 到MD 40; LMB50/ 装载循环计数器 LOOP next/ 减去2个字节,条件满足则跳转; Date:* File:PRO2_04E.10 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 练习4.1:用间接寻址的方法进行循环编程 - - - -
13、 Meas_Value1 Meas_Value2 Meas_Value9 Meas_Value10 Meas_Value11 #Ini_Value 1.0 2.0 9.0 10.0 11.0 . . . 等等。 DB41 0 4 32 36 40 DB中指向地址的指针 #Par_Pointer #Counter 字节地址 Date:* File:PRO2_04E.11 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 内部区域,寄存器间接寻址 LAR1 P#10
14、.0 / 设置AR1 AR1: 00000000 0000 0000 0000 0000 0101 0000 + 200 L M W AR1, P#200.0 存储区域 访问 地址 偏移扩展指令: L MW 210 宽度寄存器 常量 lAR 1或AR2中的内部区域指针: B B B B B B B B B B B B B X X X 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 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 2022 位地址 字节地址(
15、无符号整数) 20215 未定义 l指令语法规则: Date:* File:PRO2_04E.12 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAIN Training for Automation and Drives 交叉区域,寄存器间接寻址 LAR1 P#I10.0 /设置AR1 AR1: 10000001 0000 0000 0000 0000 0101 0000 L W AR1, P#200.0 + 200 访问 地址 偏移扩展指令: L IW 210 宽度寄存器 常量 lAR 1或AR 2中的交叉区域指针: B B B B B B B B B B B B B X X X 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 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 位地址 字节地址(无符号整数)地址标识符 l指令语法规则: Bit 31=0: 内部区域 Bit 31=