我们的一台设备的程序中,fb10里面调用了多重背景数据块DB10,同时还调用了一个FC10,#Para是背景数据块DB里的静态数据,它的起始地址是DB10.DBX2.0:
CALL"FC10"
Pointer:=#Para
bReset:=DB10.DBX4.0
bErrorMessage:=DB10.DBX4.1
下面是FC10里面的内容:
LP##Pointer
LAR1
LB[AR1,P#0.0]
T#MK_1
LB[AR1,P#1.0]
T#MK_2
LW[AR1,P#2.0]
T#Num_Bytes
LW[AR1,P#4.0]
T#DBNumber
OPNDB[#DBNumber]
我实在搞不懂上面这些语句的意思,最后打开的是哪个DB块啊?#DBNumber最后得到的是个什么值啊?请高手赐教!
最佳答案
#DBNumber最后得到的是10,也就是打开的是DB10。形参#Pointer的数据类型是ANY吧。
参见:S7-300和S7-400寻址
htTPs://suppoRT.induSTry.siemens.com/cs/document/79632832/s7-300和s7-400寻址?dti=0&lc=zh-CN
提问者对于答案的评价:
非常感谢“我心飞翔”的解答以及提供的文档下载,原来是个ANY指针的应用,看完文档后终于搞清楚了。其实以前在手册里看到过这个应用,但从来没碰上过,这次遇到我才认真学习了一遍。看来实践才是学习的动力啊!