fb功能块里面定义的局部变量(临时变量除外)在与其对应的背景数据块里都有对应的地址,那在ob1中调用时给他附上实参,如MD100,那岂不是它有两个地址了?为什么静态变量只在背景数据块里有地址,调用fb块时没有静态变量赋值的管脚?
2.FB调用FB, FC调用FC,FC调用FB等等,被调用的功能或功能块对于调用它的块来说属于什么?是不是只是调用和被调用关系,举个例子,FB1调用FC1,程序扫描FB1时,FC1作为FB1里面的程序被执行,FC1中的变量不会出现在FB1背景数据块里面,他俩是相互独立的,只是调用与被调用关系。是这样吗?
请仔细看我问的问题,回答的全面我会多加分,拜托大家了!
最佳答案
1.其实可以完全不用赋实参,在对应的背景数据块里对应的地址就可以在程序中到处像MD一样自由调用,如果给他赋实参是多余且浪费的。静态变量就相当于小型PLC中的M系列存储区,局部变量(临时变量除外)相当于小型PLC中的输入输出点一样。或换个比喻一个300里面相当于容纳了N多个封装在FB里的许多小PLC。
2.这个你可以看手册中结构化编程的详解。你理解的也没问题。
提问者对于答案的评价:
谢谢,就只能给你了呵呵
最佳答案作者回复:
我就是个论坛里捡漏的,同样谢谢你!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc230507.html