在西门子S7-300plc编程中,使用最多的定时器,其实应该是SFB4这个块,因此你的问题就转变成SFB4这个块如何在另外一个FB块中单次或者多次调用时候,FB块中如何声明这个SFB4块,使得SFB4作为FB块的多重背景中的一部分!
这个图片是STEP7软件中系统功能块下的截图,可以看到SFB4是TON也就是通电延时接通的一个定时器,SFB5是TOF即延时断开的定时器,这里我就用我个人经常用的SFB4来讲一下,我在一个FB块中如果要多次使用这个SFB4改如何处理!
首先我建立一个FB3的多重背景功能块,然后在FB3中调用2次SFB4这个定时器,我的设置如下图:
可以看到,SFB4其实是被设置在了SATA变量中,也就是静态变量中的!名称是你自己想叫什么都可以,数据类型那里显示TON是系统自己更改过来的,其实我输入的时候,我输入的是SFB4,来说一下为何这里要输入SFB4?因为FB块中的静态变量,为很多块成为FB块的一个子背景,提供了一个接口,如下图:
这个图片上我画红线的SFB,其实就是我输入SFB4的真正数据类型,nr就是number的意思!在这里可以看到,其他是比如FB也是支持在SATA中调用的!
然后,再来看一下FB3这个块在OB1中调用的情况:
从这里再来看上边FB3的程序块,也就是M0.0接通3s后M0.1为1,5s后M0.2为1!
来看一下最终的运行动态图吧:
从这个动态图可以看到,我把m0.0置为1后,M0.1和M0.2都陆续自动为1了,就是因为SFB4定时器的计时值到了的原因!
(责任编辑:admin) |