




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
间接寻址及地址寄存器指令,LWAR1,P#200.0,-,1,2,9,10,#Ini_Value,#Par_Pointer,#Counter,?,?,?,STEP7中可能的寻址方式,寻址方式,直接寻址,间接寻址,绝对寻址,符号寻址,存储器间接寻址,寄存器间接寻址,示例:AI4.0AMot_onOPNDBMW10AIMD30AIAR1,P#0.0AAR1,P#0.0LIW10L#NumSPTruntimeLIWNumberLIDAR1,P#5.0TWAR1,P#0.0,16位指针(DB,T,C),32位指针内部区域,32位指针内部区域,32位指针交叉区域,变量直接寻址,存储单元位置(示例),I,37.4,地址,附加访问宽度,字节,字,双字,含义,输入,Q,27.7,字节,字,双字,输出,PIB,655,字节,字,双字,外设输入,PQB,653,字节,字,双字,外设输出,M,55.0,字节,字,双字,位(Bit)存储器,T,114,-,定时器,C,13,-,计数器,DBX,2001.6,字节(DBB),字(DBW),双字(DBD),通过DB寄存器寻址的数据,DIX,406.1,字节(DIB),字(DIW),双字(DID),通过DI寄存器寻址的数据,L,88.5,字节(LB),字(LW),双字(LD),本地数据堆栈,DB中地址标识符直接寻址,打开的数据块,在数据块中装载和传递,OPNDB19OPNValuesOPNDI20组合指令(包含OPNDDB.),LDBB1装载数据字节1LDBW2装载数据字2(字节2/3)L5装载数字5TDBW4传递到字4LA装载ASCII字符ALDIB28装载数据字节28=I比较ADBX0.0从0字节的第0位开始扫描LDB19.DBW4从DB19中装载数据字4L“Values”.Number_1符号访问变量Number_1.DB19具有变量名“Values”ADB10.DBX4.7从DB10的第4个字节的第7位开始扫描,用于DB寄存器的指令:CDB:交换DB寄存器内容将DB寄存器内容装载到ACCU1中LDBNO(将打开的DB号装载到ACCU1中)LDINO(将打开的DI号装载到ACCU1中)装载数据块长度LDBLG(将打开的DB的长度/字节装载到ACCU1中)LDILG(将打开的DI的长度/字节装载到ACCU1中),在程序中分析数据块DB相关信息,指令执行前:,指令执行后:,CDB,123,24,24,123,DB寄存器,DI寄存器,字格式的16位指针(用于对DB、T、C进行寻址)L11TMW60OPNDBMW60OPNDB11双字格式的32位指针(用于对I、Q、M.进行寻址)LP#24.0TMD50LIWMD50LIW24存储访问地址区域宽度,存储器间接寻址,用于存储器间接寻址的指针结构,16位指针的结构:为0.65535之间的无符号整数,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1514131211109876543210,20,215,27,146,32位指针的结构(内部区域):,B,B,B,B,B,B,B,B,B,B,B,B,B,X,X,X,1514131211109876543210,0,0,0,0,0,0,0,0,0,0,0,0,0,B,B,B,31302928272625242322212019181716,20,22,位地址,字节地址(无符号整数),20,215,未定义,装载32位指针常量(内部区域):LP#25.3(P=指针,字节地址=25,位地址:3),存储器间接寻址的特性,用于存储16位和32位指针的地址区域:位(Bit)存储区(绝对寻址或符号寻址)例如:OPNDBMW30,OPNDI“Motor_1”等。AIMD30,TQDSpeed_1,等)本地数据堆栈(绝对寻址或符号寻址,例如:OPNDBLW10,OPNDI#DB_NO等。AILD10,TQD#Par_Pointer,等。)全局(共享)数据块(只能进行绝对寻址,DB必须预先打开,例如:OPNDBDBW0(覆盖掉DB寄存器内容!),OPNDIDBW22等。AIDBD10,TQDDBD22,等。)背景数据块(只能进行绝对寻址,DI必须预先打开,例如:OPNDBDIW20,OPNDIDIW0(覆盖掉DI寄存器内容!),等。AIDID10,TQDDID22等。)向FB和FC传递指针的特点在参数里传递的指针不能直接用于存储器间接寻址。用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里去,间接寻址示例,FC30:间接寻址示例Network(段)1:使用间接寻址方式打开DBL#dbnumber/将DB号拷贝到MW100TMW100/OPNDBMW100/打开DBNetwork(段)2:循环删除LP#18.0/将终端地址(DBW18)作为指针TMD40/传送到MD40;L10/将循环计数器值设置为10next:TMB50/传到MB50中;L0/装载初始值TDBWMD40/传到DB50中;LMD40/装载指针LP#2.0/并减去2个字节-D/然后再传回TMD40/到MD40;LMB50/装载循环计数器LOOPnext/减去2个字节,条件满足则跳转;,练习4.1:用间接寻址的方法进行循环编程,-,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,字节地址,内部区域,寄存器间接寻址,LAR1P#10.0/设置AR1AR1:00000000000000000000000001010000+200LMWAR1,P#200.0存储区域访问地址偏移扩展指令:LMW210宽度寄存器常量,AR1或AR2中的内部区域指针:,B,B,B,B,B,B,B,B,B,B,B,B,B,X,X,X,1514131211109876543210,0,0,0,0,0,0,0,0,0,0,0,0,0,B,B,B,31302928272625242322212019181716,20,22,位地址,字节地址(无符号整数),20,215,未定义,指令语法规则:,交叉区域,寄存器间接寻址,LAR1P#I10.0/设置AR1AR1:10000001000000000000000001010000LWAR1,P#200.0+200访问地址偏移扩展指令:LIW210宽度寄存器常量,AR1或AR2中的交叉区域指针:,B,B,B,B,B,B,B,B,B,B,B,B,B,X,X,X,1514131211109876543210,1,0,0,0,0,R,R,R,0,0,0,0,0,B,B,B,31302928272625242322212019181716,位地址,字节地址(无符号整数),地址标识符,指令语法规则:,Bit31=0:内部区域Bit31=1:交叉区域,地址标识符:000I/O001输入(PII)010输出(PIQ)011位(Bit)存储器100DB寄存器中的数据101DB寄存器2中的数据(DI)110自有本地数据111调用块的LD(本地数据),用于装载地址寄存器的指令,装载地址寄存器LARn(n=1or2):将ACCU1中的内容装载到ARnLARn将中的内容装载到ARnLARnP#将中的地址装载到ARn:处理器寄存器:AR1,AR2(比如:LAR1AR2及LAR2AR1)32位变量:MD,LD,DBD,DID(比如:LDBD5等)32位符号变量:32位全局变量(比如:LAR1“索引”,等)(全局和局域的)以及OB,FB及FC的TEMP(临时)变量(比如:LAR1#Address,等)P#指向布尔型绝对地址En.m,An.m,Mn.m,Ln.m,DBXn.m,DIXn.m指针:(比如:LAR1P#M5.3,LAR2P#I3.6,等)指向本地、符号地址OB:TEMP(临时)变量(比如:LAR1P#Par_Pointer,等)FB:IN-,OUT-,INOUT-,STAT-及TEMP-FC:TEMP(临时)变量(LAR1P#Loop,等),其它用于地址寄存器的指令,传送出地址寄存器内容TARn(n=1or2):从Arn传送到ACCU1TARn从Arn传送到:处理器寄存器:AR2(比如:TAR1AR2)32位绝对地址变量:MDn,LDn,DBDn,DIDn(如TAR2MD5等)32位符号变量:32位全局变量(比如TAR1“Index”,等)(全局和局域的)及OB,FB及FC的TEMP(临时)变量(比如TAR1#Address等)地址寄存器内容交换(Swap)指令TAR将地址寄存器AR1和AR2的内容相互交换地址寄存器加指令+ARn将ACCU1-L内容加到ARn+ARnP#n.m将内部区域指针P#n.m加到AR1或AR2中去,寄存器间接寻址的特性,在STL/LAD/FBD编辑器内使用AR1当访问FC中的参数时,如果参数为复杂数据类型(ARRAY、STRUCT、DATE_AND_TIME),则AR1寄存器和DB寄存器内容将会被覆盖掉。当访问FB中的INOUT参数时,如果该INOUT参数是复杂数据类型(ARRAY、STRUCT、DATE_AND_TIME),则AR1寄存器和DB寄存器内容将会被覆盖掉。在装载地址寄存器和对目标变量进行寄存器间接寻址的时候,不允许访问局部参数在STL/LAD/FBD编辑器内使用AR2在对FB内部所有参数和静态变量进行寻址的时候,AR2寄存器和DI寄存器均用作基址寄存器。如果用户在FB内部将AR2或DI覆盖了,之后就可以访问该FB专用参数或静态变量。也就是说,未恢复两个寄存器时不可访问。在FC内,对AR2寄存器和DI寄存器没有限制,#ACCU1,DB中指向地址的指针,#AR1,#ACCU2,-,Number1,Number2,Number9,Number10,Number11,1,2,9,10,11.,等等。,DB42,0,4,32,36,40,字节地址,练习4.2:用寄存器间接寻址进行循环编程,POINTER类型和ANY类型数据的块参数,地址声明名称类型0.0输入参数DB_NumWORD2.0输入参数Area_PointerDWORD6.0输入参数LengthWORD.L#DB_NumT#I_DB_NumOPNDBI_DB_Num.L#Area_PointerLAR1L#Length.,FC.,分别传送实际地址的各个信息(STEP5里的方式):DB号起始地址区域长度,等。缺点:程序员必须进行拆分在调用期间,不能使用实际地址的符号名一个地址(区域)需要好几个参数无一致性检查纠正,地址声明.名称类型0.0输入Measure_1POINTER.8.0输入Measure_2ANY.LP#Measure_1LAR1LWAR1,P#0.0T#I_DB_NumOPNDBI_DB_NumLDAR1,P#2.0LAR1.,FC.,使用POINTER或ANY类型参数传递(STEP7方式):调用时,程序员可以使用实际地址的符号名由LAD/FBD/STL编辑器拆分成单个信息一个地址只需要一个参数进行一致性检查纠正,POINTER类型的结构和参数赋值,Byten,Byten+2,Byten+4,Byten+1,Byten+3,Byten+5,DB号(INT),1OOO_ORRR_OOOO_OBBB(32位交叉区域指针),BBBB_BBBB_BBBB_BXXX,POINTER类型参数赋值指针显示P#DBn.DBXx.y其中:n=DB号,x=字节数,y=位数P#DIn.DIXx.y(比如P#DB5.DBX3.4,P#DI2.DIX10.0,等)P#Zx.y其中:Z=区域,比如:P,I,Q,M及L(比如P#I5.3,P#M10.0,等)地址声明:MD30(这种情况下,DB号区域标识符及位地址自动输入#Motor_on到POINTER参数中)Motor_1.speed,数据类型结构:POINTER,ANY数据类型的结构,ANY数据类型指针,Byten,Byten+2,Byten+4,DB号,1OOO_ORRR_OOOO_OBBB,BBBB_BBBB_BBBB_BXXX,16#10,Datatype,复制系数,Byten+6,Byten+8,数据类型标识符VOID00BOOL01BYTE02CHAR03WORD04INT05DWORD06DINT07REAL08DATE09TOD0ATIME0BS5TIME0CDT0ESTRING13参数类型标识符BLOCK_FB17BLOCK_FC18BLOCK_DB19BLOCK_SDB1ACOUNTER1CTIMER1D,ANY参数类型指针,Byten,Byten+2,Byten+4,16#0000,定时器,计数器或块的号,16#10,参数类型,16#0001,Byten+6,Byten+8,16#0000,ANY数据类型的参数赋值,指针显示:P#数据块.位地址类型号P#DB10.DBX12.0REAL20指向DB10中的一个区域:从Byte12开始的20个REAL类型的地址(ARRAY1.20OFREAL)P#I10.0BOOL8指向IB10里的一个8位区域地址声明:绝对地址:DB5.DBD10数据类型:DWORD,复制系数:1DB号:5,指针:P#DB5.DBX10.0IW32类型:WORD,WF:1,DB号:0,指针:P#I32.0T35类型:TIMER,编号:35符号地址:#Motor_1.speed使用基本数据类型,编译器建立正确“Pump”.Start的数据类型,复制系数1以及指针注意事项符号(ARRAY、STRUCT、STRING、UDT)赋值时,数据类型标识符02(BYTE)以及区域字节长度只能由编译器来建立,并输入到ANY指针。,ANY类型间接参数分配,使用临时变量对ANY数据类型进行实际参数赋值在调用块中声明ANY数据类型临时变量例如:tempaux_pointerANY用指针信息对ANY临时变量进行赋值例如:LAR1P#aux_pointer/装载辅助指针地址LB#16#10/装载标识符10TLBAR1,P#0.0/并传送到Offset0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科护理学甲状腺护理要点
- 胫骨骨折术后护理课件
- 综合员工绩效考核管理方案(模板)
- 有用的学校课程活动规划与实施方案(模板)
- 偏瘫患者的保养与护理
- 学校生个人阅读方案(模板)
- XX国家宪法日活动方案(模板)
- 环保公益活动策划方案(模板)
- 学前教育小班课件设计规范
- 背影说课课件
- 2025-2030年中国海洋大数据行业市场现状供需分析及投资评估规划分析研究报告
- 2025新人教版英语八上单词英译汉默写表(先鸟版)
- 药店借用资质协议书范本
- DB34T 4676-2024数字茶园建设指南
- 建筑项目主要劳动力配置计划
- 2025-2030中国孤独症及治疗市场规模与需求研究报告
- 地质调查员职业技能考试题(附答案)
- 儿童低钾血症的诊疗
- JJG(交通) 072-2024 燃烧法沥青含量测试仪
- 老年人护眼知识课件
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
评论
0/150
提交评论