在FB中可不可以只用静态变量,不用输入输出变量

当静态变量需要做输入变量时,事先在外部给静态变量赋值,当然输出的就直接用好了
举个例子:FB1中只有两个静态变量 stat1 和stat2,逻辑是 
A stat1      //作为输入变量用
=stat2        //作为输出变量用
在ob1中 
A M0.0
=DB1.DBX0.0
CALL FB1 DB1    //DB1.DBX0.1共其他程序引用
这样可以省去很多DB块,当然这只是一个简单的例子,如果复杂点的逻辑 这样做好吗,还是用输入输出好呢

最佳答案

前面回答过了,可以用,但不建议这样用,容易出现寻址错误:
—当然可以,但采用这种方法的FB块不应该经常被修改,这样容易造成内部STAT变量的地址变动,导致外部程序寻址静态变量的地址发生错误。一般如果需要经常在外部程序中调用的变量建议还是通过输入输出指定一个非背景数据块的绝对地址比较合适,静态变量通常不会经常被外部程序调用,常用于FB块内部做辅助性标志或缓存数据用。

提问者对于答案的评价:
怎么又发到这个区了 ,我本来想发到300/400区的

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc212070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月13日
下一篇 2017年11月13日

相关推荐