您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 西门子PLC寄存器AR1和AR2使用重要事项
1、STEP7使用的AR1地址寄存器来访问FC接口(包括inout和inout)以及FB接口的复杂型参数,如array、structdate_and_time.这就是我们为什么在FC接口中使用out型参数访问DB1.DBXX会出现错误,因为AR1寄存器不能完全描述DB1.DBXX地址,完全描述需要6长度字节。2、FCFB本质上一样调用FB相当于在FC里opndi,并使用ar2来索引变量FB的优点是数据块里的变量可按名字使用,仅仅是显示而已,执行效率和fc一样3、fb中为了方便背景数据块参数的寻址,自动使用ar2寄存器,ar2寄存器指向背景数据块的首地址p#dbx0.0,如果改变了这个寄存器的值,你再访问背景数据块参数时将不会得到正确的数值.所以,在fb里使用ar2寄存器要小心,对这两个寄存器改变后不要再使用背景数据块参数,当要使用背景数据块参数时要先恢复这两个寄存器的值。有一个常用的用法是多重背景fb的接口参数的寻址用法,需要用到ar2:(因为在多重背景中,变量的地址并不是其在背景数据块中的绝对地址,而是其相对于ar2的偏移地址),所以:在多重背景fb中,如果要得到某变量variable在背景数据块中的绝对地址,可以使用以下代码:tar2//将地址寄存器装入累加器ac1(偏移量),也就是多重背景fb中第一个变量在背景数据块中的地址。addw#16#00ffffff//关闭区域idlp##variable//装载变量的地址+d//加上偏移量和变量地址lar1//将结果保存到地址寄存器ar1中NotesonChangingtheContentsofRegistersIfyouusetheprogrammingoptionsbelowtogetherwiththeregistersandaccumulatorslisted,youmustmakesureyourestorethecontentsoftheregistersoraccumulatorsyourself,otherwiseerrorsmayoccur.Usingthefollowinghigher-languageconstructionsmaycausethecontentsoftheDBregisterandaddressregisterAR1tobemodified:Fully-qualifiedDBaccess(forexample,DB20.DBW10)asanactualparameterforafunction(FC)Functionblock(FB)andmultiple-instancecallsStructurecomponentsofaformalparameterasanaddresswithinanFCorFBStructurecomponentsofaformalparameterasanactualparameterforanFCorFBWithFB,FC,andmultiple-instancecalls,youshouldnotusetheRLOoraccumulator1or2asadditional(implicit)parameters.TheDIregisterandaddressregisterAR2areusedonthesystemsidefortheFBandmultiple-instancecallsandshouldnotthereforebemodifiedwithinFBs.AddressregisterAR1isusedbysomeoftheloadablestandardblocks.ThecommandLP#parameter_nameloadstheaddressoffsetofthespecifiedparameterwithinanFB,relativetoaddressregisterAR2.Inordertodeterminetheabsoluteoffsetintheinstancedatablockinmultiple-instancetypeFBs,youmustalsoaddthearea-internalpointer(addressonly)oftheAR2registertothisvalue.在FC接口访问复杂数据重写了AR1和DB寄存器:Step7英文帮助说明访问DBX.DBX也会修改。
本文标题:西门子PLC寄存器AR1和AR2使用重要事项
链接地址:https://www.777doc.com/doc-2038361 .html