回复:应用讨论----按钮抖动处理问题

emil128

  • 帖子

    271
  • 精华

    10
  • 被关注

    21

论坛等级:侠圣

注册时间:2011-05-16

普通 普通 如何晋级?

发布于 2012-06-15 09:09:46

37楼

quote:以下是引用划痕在2012-06-01 20:08:09的发言:
将开关量信号采样n+1次,将前n次采样信号进行分别进行与运算或运算,可以得到以下3中逻辑结果(已给出滤波算法):
[color=blue][b]与结果=0,滤波输出信号0;
或结果=1,滤波输出信号1;
与结果=0,或结果=1,此时信号处于过度状态,滤波输出保持上一次输出值不变。[/b][/color]
运算完成后将第n+1采样值送入队列中等待下一次运算。
<同样在系统重启后,建议有2n个扫描周期的准备时间,这样也不用区分是常开或常闭点了>
这下应该满足没有定时、也没有计数,只有逻辑运算,达到滤波的功能。


Zane版的要求是“不用计数器,或者说计数方式”
我有个疑问要求教,不用计数方式如何实现划痕大侠的滤波?
不计数如何得知采样的次数,如何让PLC知道已经采样的N次?
不用计数器是可以,可以用个变量来计数。可是不用计数方式,我就没招了。
比较采样值存储区域的第N个值的数据是1或0来判断是否已经采样了N次?好像也不靠谱,就算可以实现也很费事,尤其是如果N值需要变化时(相当于修改滤波时间),还要用间接寻址,程序就有些长了。
如此就违背了Zane版节省系统资源的初衷,还不如上个定时器划算。

P.S.如果只考虑不影响系统资源,可以用带硬件滤波的DI模块(当然这样就不节省money了)。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54756条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。