关于SCL

在SCL语句中  假设有
L D[AR1+,P#4.0]
L DBD[AR1,P#4.0]
有区别吗

问题补充:
L  P##ABC
LAR1
L  D[AR1,P#6.0]
LAR1
T  cba

若ABC  格式any, 首地址DB10.DBX20.0, 状态为0
那么 第三条装载的是 840000a0 为0 
还是 DB10.DBD26

一直不太明白
什么时候 
装载的是间接寻址指针
什么时候装载的是数

希望能明白我的意思

最佳答案

我心飞翔高手正解。鄙人再画蛇添足说几句:
问题1:
L D[AR1+,P#4.0] ----指针P#DBXX.DBX0.0 格式可以用该形式
L DBD[AR1,P#4.0]----指针P#0.0格式则用该形式。
 区别关键看AR1指针有无包含数据存取区类别。最终指向的是同一个地址。
问题2:
L  P##ABC        ---若ABC  格式any,首地址DB10.DBX20.0 
LAR1                 ---装载的是any数组的地址指针信息。它有10个字节包含该数组的
                              数据类型、数据长度、DB号及该数组数据区的首地址信息。
L  D[AR1,P#6.0]--- 所以该处加载为 DB10.DBX20.0 
如果ABC为DB10.DBX20.0 ,则
L  D[AR1,P#6.0]--- 该处为DB10.DBX26.0.不知我这么说你明白没有。

提问者对于答案的评价:
应该是明白了,是这个意思吧。如果我寄存器中装载的是any指针那么,我再装载所对应的含义就是any指针各个字节的说明,如果寄存器装载的不是any指针,那么再装载就是在寄存器内值加地址偏移了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc198229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月26日
下一篇 2017年8月26日

相关推荐