S7-1200,,采用FB块做泵的启停子程序,整个FB完成时间大概150秒,怎样打包合适?

PLC,使用S7-1200。采用SCL语言编程。
编一个FB块,来完成水泵的启停。FB执行完毕需要150秒。
IN,只要是状态和触发动作信号,OUT主要是阀门泵动作及错误代码。
   调试遇到困惑,主要原因是PLC是扫描的。我该怎么打包FB块,才能不会出现动作互相影响,又能干净的完成功能呢?
可能表达的不够清晰。FB块里面有很多的定时,还有边界触发。
比如,我高液位启动泵。泵的的启动过程经历150秒,中间有相关阀门的开启和关闭。当泵启动的反馈过来的时候,后面还有阀门要关闭。假如,我在调用FB的条件中,用=泵的状态来作为调用条件,将会使FB后续动作被或略。。。。。。

问题补充:
IF 条件1 then
   setStart:=启动信号;
   FB101();
endif;

假如是这样的逻辑,那么条件1保持时间,可否不用管FB块全部完成时间(150s)???还是条件1保持时间,一定要超过150秒,以保障FB块全部完成???

悬赏西币:1
沙加影雪 2018-07-09 00:42:44
最佳答案

可能你想的多了
做好逻辑判断就好了
该使用定时器的使用定时器,该等待别的信号的,等待别的信号
这个等待不是说PLC执行到这里就不执行了,一直等到信号的到来再继续执行,二是继续执行扫描,直到需要的信号来到之后,再进行下面的动作
比如下面图中的程序
I0.0启动Q0.0之后,Q0.1是不会有输出的,需要等待I0.2来信号之后Q0.1才会有输出,这个也可以开做是一个等待的过程的


图片说明: 1  

RENHQ 2018-07-09 07:51:06

提问者对于答案的评价:

程序昨晚已经经过实战考验。我的做法是:每次调用FB,开放通道是180秒,保证FB能执行干净。刚开始的时候,想错了,以为调用一次就能执行干净

点赞 (20)

专家置评

已阅,最佳答案正确

西门子自动化产品支持2018-07-10 08:59:03

最佳答案网友评论
其他答案

扫描时间和你的启动完成时间有什么关系?你多个扫描周期执行你的程序呀。你的这个控制就是多个扫描周期才执行完的。不知道你说的忽略是什么意思?按照动作时序,前面设备动作没有完成时后面的设备肯定不能动呀。


图片说明:

zhangli0  2018-07-09 07:42:42

如果类似的设备不止一台,建议做成多重背景FB,FB内部使用IEC定时器也是多重背景,其他的设备相关的启动条件、启动状态、包括定时器,都做成FB的接口参数,这样主程序多次调用FB时给定不同的接口参数即可,多次调用之间不受影响,无任何关联。
补充
条件1是否有必要在FB执行150S内必须为1?如果必须,可以在FB执行的150秒内做监控,如果150S内条件1消失,则STOP或进行其他处理,但没必须要在你判断条件的地方做等待延时。


图片说明:

weiyt  2018-07-09 09:31:58

×
您收到0封站内信:
×