西门子PLC语句表
郑志武
发布于2012-12-19 23:59
10
0
标签:
有一段语句看不太它要表达的意义
说明下这个编辑moby-f的以段小程序
程序是在fb72
parameter时fb72静态变量里调用的udt其主要参数时cmds/taus
这样的语句程序里有三段,表达的方式都是一样的我只截取了一个。我主要不明白它要表达的意思##parameter时一个udt它srw3意义何在我在图了一个图示##parameter的参数
lar1p##parameter//adressederudt-variablen
tar1//"parameter"ermitteln
srw3
t#params_addr
图片说明: 1,1
佳答案
1、没看到你完整的程序,只从下述这几条指令来看,是指针寻址。就指针寻址的功能来解释下述程序:
lar1p##parameter//取#parameter(地址)送至累加器1中
tar1//设置地址指针ar1为#parameter
srw3//将累加器1低字中的内容逐位右移3位
t#params_addr//将右移3位的结果送至#params_addr中。
2、为什么srw3(右移3位)?
a、当使用在区域内寄存器间接寻址中时,我们知道这时的ar中的内容只是指明数值单元,因此,区域内寄存器间接寻址时,寄存器中的内容等同于上帖中提及的存储器间接寻址中的双字指针,也就是:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
ar:
0000000000000bbbbbbbbbbbbbbbb*
这样规定,就意味着ar的取值只能是:0.0——65535.7
例如:当ar=d4(hex)=00000000000000000000000011010100(b),实际上就是等于26.4。
b、如果ar=d4(hex)=00000000000000000000000011010100(b)srw3(右移3位)后,累加器1低字中的内容为0000000000011010实际上就是等于26,这样就求出了byte字节数。