IEC61499 编程实战(1)-按键控制LED 闪烁

28 篇文章 38 订阅

 

对IEC61499 感兴趣的人越来越多了,我开始向大家介绍IEC61499 编程的实例,希望能帮助大家,另外,如果有编程中的疑问,可以留言,交流。

按键开关LED 灯闪烁

前几天有网友做了一个LED 的实验,按下按键,LED 闪烁,再按一次 LED 停止闪烁。他的程序是这样的。

结果发现,长按,LED 会闪烁,而松开LED 就停止闪烁了。主要的问题出在 IX 只是读取输入脚的状态,他连接的是不带锁存功能普通按键。如果要实现按键功能,需要内部加锁存器。后来他改成了这样。

E_D_FF 是一个D触发器,只能暂存数据,没有翻转的功能。所以这个D 触发器只是将按键的值延时了一个周期,没有锁存,下一次读到0的时候又将0锁存了,所以也不行的。正确的方法应该是

 

  上面的E_R_TRIG 功能块是上升沿检测,一旦检测到了上升沿,会产生EO 事件,这个事件触发E_T_FF 状态翻转状态。当然,这个程序还有优化的可能。

例2 LED PWM 调光

  LED 调光通常使用PWM 来实现,下面的例子实现一个25% 占空比的PWM 信号。

我们应该明白,IEC61499 运行时中,功能块是软件实现的,这会影响程序运行的效率和实时性,在这个例子中,E_CYCLE 的周期为1ms,由于是软件实现这五个功能块,显然占用CPU的时间已经比较多了,但是PWM 的频率只有64Hz 而已。如果分辨率要求高的话,PWM 频率会更慢。

学习IEC61499 编程需要一些逻辑电路的知识和技巧。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值