我在程序块里确实看见了DB0啊,它是实际值得哇,而且初值是DB1,我找遍了都找不DB1和DB0,及时说没有DB0块,但图片里面的DB0是什么意思,正如大家看到图片里面的数据块DB1883是一个背景数据块,代表一种功能的参数传递(其中一个挂在DP总线上的变频器,我想查看它的启动条件,它的启动条件就关联在
OPN #i_DBdata
A DBX [AR1,P#12.1] // RESET
= #prof_WR_RESET
、、、、、、、、、、、、、、、、
其中一段程序:
OPN #i_DBdata
L #i_DBindex
SLW 3
LAR1
好了,在这里,我可以说LAR1的值就是#I_DBindex了吧,在图片里它的值是96,所以,我可以说 最上面程序A DBX [AR1,P#12.1] 就是DB0.DBX108.1了吧(DB0也在图片里哈,我在线监视的实际值不会错吧)
所以,我哪里错了?我现在到处去找DB0就是为了去找DBX108.1这个点位关联了什么东西,(HMI里面没有哈)
问题补充:
像这种情况该怎么办啊,求解决办法
图片说明:
最佳答案
1:DB块的号码必须从1开始的,DB1 是形参的初始值,合法的DB块号码 从1-16000.
从你图中可以看出,你的 i_DBData的实际值,根本就是空的哇!@Actual value 才是真正的实际值,可以判断在 调用 CALL FBxxx,DB1883 . #i_DBdata根本没有赋值。
2:OPN #i_DBdata
L #i_DBindex
SLW 3
LAR1
好了,在这里,我可以说LAR1的值就是#I_DBindex了吧,在图片里它的值是96,所以,我可以说 最上面程序A DBX [AR1,P#12.1] 就是DB0.DBX108.1
你的间接寻址理解是没有问题的。
3:不要钻牛角尖,在调用FB时,如果给i_DBdata 赋值,比如DB200,那么你可以再实际值中看到 DB200。
3:何必要纠结 DB0 还是DB1了?i_DBData 在FB 被调用时赋了什么值?,如果没有赋值,那么就是空的了,打开你的FB程序,然后在线监控,鼠标移动到右侧,然后 右键\SHOW\ DB1 Register 和DB2 Register 。看看 你的DB1 里面的类容 就是知道用的是哪个DB块了。不过根据 你的图片可以判断,I_DBDATA 在调用时没有赋值!
提问者对于答案的评价:
谢谢各位,我已经彻底理清楚了,有个小小的疑问,DB块中@actual与actual ,initial的区别和作用?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc197647.html