《西门子S7300高级编程培训4间接寻址和地址寄存器.ppt》由会员分享,可在线阅读,更多相关《西门子S7300高级编程培训4间接寻址和地址寄存器.ppt(23页珍藏版)》请在第壹文秘上搜索。
1、Date:2023-9-25File:PRO2_04E.1SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives间接寻址及地址寄存器指令间接寻址及地址寄存器指令L W AR1,P#200.0-12910#Ini_Value#Par_Pointer#Counter?Date:2023-9-25File:PRO2_04E.2SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation
2、and Drives STEP 7 中可能的寻址方式中可能的寻址方式 寻址方式寻址方式直接寻址直接寻址间接寻址间接寻址绝对寻址绝对寻址符号寻址符号寻址存储器间接寻址存储器间接寻址寄存器间接寻址寄存器间接寻址示例:示例:A I 4.0A Mot_onOPN DBMW10A IMD30A IAR1,P#0.0A AR1,P#0.0L IW10L#NumSP TruntimeL IWNumberL IDAR1,P#5.0T WAR1,P#0.016位指针位指针(DB,T,C)32位指针位指针内部区域内部区域32位指针位指针内部区域内部区域32位指针位指针交叉区域交叉区域Date:2023-9-25F
3、ile:PRO2_04E.3SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives变量直接寻址变量直接寻址存储单元位置存储单元位置(示例)(示例)I37.4地址地址附加访问宽度附加访问宽度字节,字,双字字节,字,双字含义含义输入输入Q27.7字节,字,双字字节,字,双字输出输出PIB655字节,字,双字字节,字,双字外设输入外设输入PQB653字节,字,双字字节,字,双字外设输出外设输出M55.0字节,字,双字字节,字,双字位(位(Bit)存储器存储器T114-定时器定时器
4、C13-计数器计数器DBX2001.6字节(字节(DBB),字(字(DBW),双字(双字(DBD)通过通过DB寄存器寻址的数据寄存器寻址的数据DIX406.1字节(字节(DIB),字(字(DIW),双字(双字(DID)通过通过DI寄存器寻址的数据寄存器寻址的数据L88.5字节(字节(LB),字(字(LW),双字双字(LD)本地数据堆栈本地数据堆栈Date:2023-9-25File:PRO2_04E.4SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and DrivesDB中地址标识符直
5、接寻址中地址标识符直接寻址打开的数据块打开的数据块在数据块中装载和传递在数据块中装载和传递OPN DB 19OPN ValuesOPN DI 20组合指令组合指令(包含包含OPN D DB.)L DBB 1装载数据字节装载数据字节1L DBW 2装载数据字装载数据字2(字节字节2/3)L 5装载数字装载数字5T DBW 4传递到字传递到字4L A装载装载ASCII字符字符AL DIB28装载数据字节装载数据字节28=I比较比较A DBX 0.0从从0字节的第字节的第0位开始扫描位开始扫描L DB19.DBW4从从DB 19中中装载数据字装载数据字4 L“Values”.Number_1符号访问
6、变量符号访问变量 Number_1.DB19具有变量名具有变量名“Values”A DB10.DBX4.7从从DB 10 的第的第4个字节的第个字节的第7位开始扫描位开始扫描Date:2023-9-25File:PRO2_04E.5SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives用于用于DB寄存器的指令:寄存器的指令:lCDB:交换交换DB寄存器内容寄存器内容l将将DB寄存器内容装载到寄存器内容装载到ACCU1中中 L DBNO(将打开的DB号装载到ACCU1中)L
7、DINO(将打开的DI号装载到ACCU1中)l装载数据块长度装载数据块长度L DBLG(将打开的DB的长度/字节装载到ACCU1中)L DILG(将打开的DI的长度/字节装载到ACCU1中)在程序中分析数据块在程序中分析数据块DB相关信息相关信息 指令执行前:指令执行前:指令执行后:指令执行后:CDB1232424123DB寄存器寄存器DI寄存器寄存器Date:2023-9-25File:PRO2_04E.6SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drivesl字格式的字
8、格式的16位指针位指针(用于对用于对DB、T、C进行寻址进行寻址)L 11T MW 60OPN DBMW 60 OPN DB 11l双字格式的双字格式的32位指针位指针(用于对用于对I、Q、M.进行寻址进行寻址)L P#24.0 T MD 50 L I W MD50 L IW 24 存储 访问 地址 区域宽度存储器间接寻址存储器间接寻址Date:2023-9-25File:PRO2_04E.7SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives用于存储器间接寻址的指针结构
9、用于存储器间接寻址的指针结构l16位指针的结构:位指针的结构:为0.65 535 之间的无符号整数0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 02021527146l32位指针的结构位指针的结构(内部区域):内部区域):B B B B B B B B B B B B B X X X15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 00 0 0 0 0 0 0 0 0 0 0 0 0 B B B31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 1
10、62022位地址字节地址(无符号整数)20215未定义l装载装载32位指针常量位指针常量(内部区域内部区域):):L P#25.3(P=指针,字节地址=25,位地址:3)Date:2023-9-25File:PRO2_04E.8SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives存储器间接寻址的特性存储器间接寻址的特性用于存储用于存储16位和位和32位指针的地址区域:位指针的地址区域:l位(Bit)存储区(绝对寻址或符号寻址)例如:OPN DBMW30,OPN DI“Mo
11、tor_1”等。A IMD30,T QDSpeed_1,等)l本地数据堆栈(绝对寻址或符号寻址,例如:OPN 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传递指针的特点传递指
12、针的特点l在参数里传递的指针不能直接用于存储器间接寻址。l用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里去Date:2023-9-25File:PRO2_04E.9SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives间接寻址示例间接寻址示例FC30:间接寻址示例间接寻址示例Network(段)段)1:使用间接寻址方式打开:使用间接寻址方式打开DB L#dbnumber/将将DB号拷贝到号拷贝到MW100TMW100/OPNDBMW 100/打开打开DBNe
13、twork(段)段)2:循环删除循环删除LP#18.0/将终端地址(将终端地址(DBW18)作为指针作为指针TMD40/传送到传送到MD 40;L10/将循环计数器值设置为将循环计数器值设置为10next:TMB50/传到传到MB 50中;中;L0/装载初始值装载初始值TDBWMD 40/传到传到DB50中;中;LMD40/装载指针装载指针LP#2.0/并减去并减去2个字节个字节-D/然后再传回然后再传回TMD40/到到MD 40;LMB50/装载循环计数器装载循环计数器LOOP next/减去减去2个字节,条件满足则跳转;个字节,条件满足则跳转;Date:2023-9-25File:PRO2
14、_04E.10SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives练习练习4.1:用间接寻址的方法进行循环编程:用间接寻址的方法进行循环编程-Meas_Value1Meas_Value2Meas_Value9Meas_Value10Meas_Value11#Ini_Value1.02.09.010.011.0 .等等。等等。DB4104323640DB中指向地址的指针中指向地址的指针#Par_Pointer#Counter字节地址字节地址Date:2023-9-25Fil
15、e:PRO2_04E.11SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives内部区域,寄存器间接寻址内部区域,寄存器间接寻址LAR1 P#10.0 /设置AR1 AR1:00000000 0000 0000 0000 0000 0101 0000 +200L 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
16、 X15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 00 0 0 0 0 0 0 0 0 0 0 0 0 B B B31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 162022位地址字节地址(无符号整数)20215未定义l指令语法规则:指令语法规则:Date:2023-9-25File:PRO2_04E.12SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives交叉交叉区域,寄存器间接寻址区域,寄存器间接寻址LAR1 P#I10.0 /设置AR1 AR1:10000001 0000 0000 0000 0000 0101 0000L 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 X15 14 13 12 11 10 9 8 7 6 5