各位师兄,小弟张有一段语句 看不太它要表达的意义
说明下 这个编辑MOBY-F的以段小程序
程序是在FB72
Parameter时FB72静态变量里调用的UDT 其主要参数时 CMD S/TAUS
这样的语句程序里有三段,表达的方式都是一样的 我只截取了一个。我主要不明白它要表达的意思 ##Parameter 时一个UDT 它SRW3 意义何在 我在图了一个图示##Parameter 的参数 师兄帮我看看什么意思 谢谢了
LAR1 P##Parameter // Adresse der UDT-Variablen
TAR1 // "Parameter" ermitteln
SRW 3
T #Params_ADDR
图片说明:
最佳答案
1、没看到你完整的程序,只从下述这几条指令来看,是指针寻址。就指针寻址的功能来解释下述程序:
LAR1 P##Parameter // 取#Parameter(地址)送至累加器1中
TAR1 // 设置地址指针AR1为#Parameter
SRW 3//将累加器 1 低字中的内容逐位右移3位
T #Params_ADDR//将右移3位的结果送至 #Params_ADDR中。
2、为什么 SRW 3(右移3位)?
a、当使用在区域内寄存器间接寻址中时,我们知道这时的AR中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
AR:
0000 0000 0000 0BBB BBBB BBBB BBBB B*
这样规定,就意味着AR的取值只能是:0.0 ——65535.7
例如:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。
b、如果AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b) SRW 3(右移3位)后,累加器 1 低字中的内容为0000 0000 0001 1010实际上就是等于26,这样就求出了byte字节数。
3、有关指针寻址的文档:
见《关于S7-300和S7-400指针寻址的说明与例程(更新版)(2008.03.04) 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
详见《step7编程之地址概念详解》连接:
http://www.plc365.com/jishu/57.html
提问者对于答案的评价:
谢谢了
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc295264.html