|
plc编程中经常用到上升沿和下降沿,大家知道它们的工作原理吗,今天工野就给大家介绍一下上升沿和下降沿是如何产生的,让大家知其然更知其所以然,这样大家在使用上升沿和下降沿时会更得心应手。
我们以西门子S7-300/400PLC为例,在使用上升沿时会有这样的配置。
S7-300/400PLC中上升沿辅助变量
为什么在使用I0.0的上升沿时需要加一个辅助变量M0.0呢,这就需要从上升沿产生的原理说起。
大家都知道,PLC程序是一个扫描周期接着一个扫描周期循环执行的,要判断一个BOOL量的上升沿/下降沿PLC必须知道上一个扫描周期这个BOOL量的值,这时就需要一个专用的存储地址来存放上个扫描周期的变量值,这就是西门子S7-300/400PLC中检测上升沿/下降沿需要配置辅助变量的原因。
现在我们知道要使用I0.0的上升沿/下降沿需要同时判断I0.0、M0.0两个BOOL量的值,下面我们列出它们的真值表。
真值表
M0.0代表的是上个扫描周期的变量值,I0.0代表的是本扫描周期的变量值,由上表可以看出,当M0.0为0、I0.0为1时,说明I0.0由0变为了1,产生了上升沿。当M0.0为1、I0.0为0时,说明I0.0由1变为了0,产生了下降沿。
知道了这个原理,在程序中只需判断上个扫描周期的变量值(M0.0)和本扫描周期的变量值(I0.0)即可产生上升沿/下降沿了。
我们再扩展下思路,当上升沿产生时M0.0的值是0、I0.0的值是1,PLC程序进入下一个扫描周期前,会将当前I0.0的值写入到M0.0。当PLC进入下一个扫描周期时,我们假设I0.0保持为1,这时M0.0的值也为1,从真值表可知,当前既不是上升沿也不是下降沿。所以我们可以得出结论,上升沿/下降沿的脉冲保持时间为PLC的一个扫描周期。
掌握上升沿/下降沿工作原理后,我们可以在PLC中自己编程实现上升沿/下降沿功能,同样在单片机开发中也可以以同样的原理产生上升沿/下降沿,大家动手试试吧!
|
|