QQ登录

只需一步,快速开始

FB断开之后,输出为何还保持

[ 复制链接 ]
FB断开之后,输出为何还保持如图示,通断M7.0,输出Q2.0,M7.0都置1了?
6358873283901413263257807.png

----------通I2.1后:
6358873304537622389044676.png

---这是FB3里的程序:。
6358873312983678944721176.png 6358873314841686581682215.png 6358873316222321987117204.png

---------都在背景数据块里呀。

你不调用FB了。它的背景数据就没有变化。

这类根据状态调用FB的做法,需要在首次调用有初始化,断开调用前,要做关闭处理。



-------FB的调用条件断开后,FB不被扫描了,FB内的逻辑程序不会被处理,因此输出结果也就保持在最后一次处理的结果上了,不再刷新。

所以,PLC编程,逻辑程序全扫描是很重要的,可靠性的重要保证,明白吗?


--------背景数据块里面的数值还在,保持在1的状态


------编程序要有始有终,周密环环相扣。该做的工作,一定要做到位。


------哦,原来如此!因为第一次用S7-1500,所以。。


-------PLC貌似都是这样的,功能块调用条件断开时,功能块的输出都是保持上一扫描周期时状态的。


-----不建议EN前加条件。同样不建议在enout加条件或者线圈。


--------你的功能块编写的也有问题,可能是前期规划没做到位。

------是的,EN加条件,会有很多问题。


------你好斑竹。我是新手,FB块怎么做关断处理啊?

有没有什么指令可以直接复位FB块?


-程序中没有这种指令。

这里说的是两种方法:

1、每次扫描循环都调用FB,在FB中判断是否需要执行程序或需要复位、初始化操作。不需要执行,则处理操作背景DB后,直接跳转退出。(这里要特别注意那些 --(    )执行的结果。)

2、在调用FB之前判断,并根据需要,初始化或复位背景DB数据。然后再调用该FB。

(背景数据快DB的变量也是全局变量。)

前面的方法容易实现模块化,可做成库中的块共享。而后面的方法就不容易做成共享块。

后面的方法对于有许多FB 形式参数接口,操作时间长的来说,可能不调用,扫描周期能快点儿?


=----想得太多,钻牛角尖了。老老实实就做逻辑全扫描


-------学习了。

1500一直想用,但还没有用到啊


----背景数据块的值一直保持,要等到你通过程序去刷新,但是由于你将该功能块断开,无法刷新,所以继续保持上一次的值


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索