在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