在西门子PLC中利用STEP7软件编程的时候,想实现延时接通功能,通常会用到S_ODT定时器,因为这个最简单。在SCL中同样可以也将这个简单的延时接通定时器使用上,只不过没有像在LAD梯形图中编程那么简单了,稍微繁复了一些,当然这只是我个人意见,如果有朋友有更好更简洁的方法,欢迎大家讨论。
还是来看一下我的做法吧,如下图:
该图片是SCL建立的源文件,编译后将会生成一个FC1的程序块。图中可以看到我定义了4个输入变量,2个输出变量,以及一个临时变量。可以看到最后编译的结果是0错误0警告!
该图片上变量是输入/输出/或者是临时变量,或者你直接赋值,不建立形参都可以,看自己的爱好!
这里还有必要说一句我的SCL版本是V5.3+SP6,我的实验图片和提示是基于这个版本。编译后无错误的话,就会生成一个FC1块。在OB1中调用,并赋值后监控画面,请看下边的动态图:
从这个动态图上可以看到,我给的定时器号是T1,给的时间是3s,IN_S处就是触发信号,M0.0接通后延迟3s,Q_OUT也就是M1.0会变为1,也就是定时器3s计时到输出了。MW2处的显示值是16进制的,如果调整为10进制,可以看到是从300一直变化到0的,所以这里显示的是定时器剩余的时间!
这个图片上还可以看到IN_R是复位定时器的复位信号。
以上就是接通延时定时器在西门子PLC中STEP7软件中用SCL编程的实现方法,如果想使用其他类型的定时器,只需要将FC_timer:=S_ODT修改成其他几个系统定时器即可,比如S_ODTS或者S_OFFDT。
就说这么多了,希望能给你一些启发,谢谢!