西门子S7编程,怎么在FB里面用延时通断等块

如题所述

第1个回答  2013-10-14
我的做法是,建立一个组织程序块OB35,中断时间设为10ms,就有了一个准确的10ms时钟,每中断一次,对变量加10,则变量中的值就是ms值,在FB块内需要定时的起始位置保存ms数据,然后每次调用FB,对新的ms值与保存的ms值之差进行比较,超过则定时到。
当然,你好考虑数据的溢出情况,OB中中断变量采用DINT类型,溢出之前要对其复位。追问

再详细点可以吗?

追答

上班再继续,笔记本没有安装step7

追问

好的,等你好消息!

第2个回答  2013-10-14
不建议在FB使用T定时器,因为容易出现问题,在FB多次调用的时候会出错。可以利用中断实现。例如,FB没500ms调用一次,那么每次调用FB的时候Fb内的一个状态量就加1,,这样就可以实现定时的功能,前提是对时间的要求精度不高的情况下。追问

怎么知道被调用了?

追答

你在FB内部建立一个状态变量,然后FB中对状态变量加1,假设你在OB35中调用,OB35中断周期为100ms那么就实现了每100ms状态变量加1

追问

怎么知道被调用了?

追答

你在哪里使用这个FB就是在哪里调用了啊

追问

那这个数还得加一个清零?

追答

到了你需要的时间后就清零

本回答被网友采纳
相似回答