如图1是现场PLC程序,请各位帮忙看看我理解的对不对
OPN "xxx_RBT" //打开DB "xxx_RBT"
L #RobNo //装载 #RobNo
L 1 //装载 1
-I //#RobNo - 1
L P#100.0 //装载 100
*D //(#RobNo - 1)* 100
LAR1 //
L DBW [AR1,P#10.0] //装载 DBW [(#RobNo - 1)* 100,P#10.0]
最佳答案
基本正确。也可能是表述的不够准确
OPN "xxx_RBT" //打开DB "xxx_RBT"
L #RobNo //装载 #RobNo
L 1 //装载 1
-I //#RobNo - 1
L P#100.0 //装载指针 P#100.0 其实是800,并就是你上面的 100
*D //(#RobNo - 1)* P#100.0 其实是乘以800,
即为每一个 RobNo 占用 100 个字节的存储空间,每个字节8个位,
那它含有 800 个位,这就是在计算每一个RobNo的100个字节的数据在数据块xxx_RBT存储的偏移地址
LAR1 //将上面计算出的RobNo存储在DB块中的起始地址存到地址寄存器 AR1
L DBW [AR1,P#10.0] //装载RobNo数据中的第6个字
以 xxx_RBT DB1,即数据块是 DB1,RobNo 为2 为例:
最后寻址的是 DB2.DBW110 这个字
参考资料
http://www.ad.siemens.com.cn/productportal/Prods/published/Prog/Prog_2.4/Prog_2.4.html
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc280424.html