回复:一起攻关

yanxiao

版主

  • 帖子

    12196
  • 精华

    47
  • 被关注

    189

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2010-04-17 00:14:34

8楼

芳季 的电眼问题有一段时间了。我讲一下我的思路,供参考:
一、先讲纯时间的延时:
0、设延时时间为Td(ms)
1、脉冲输入,可以用DI的上升和下降沿中断,获得输入处理控制权;
2、延时后的输出,采用定时器中断,1ms的分辨率。(更高分辨率可以考虑用高速输出+HC)。
3、开辟一存贮区作为FIFO,可以用表指令,也可以自已用程序搭建;
4、初始状态,表为空、定时中断为空闲;
5、有输入,发生上升/下降沿中断,记下此时的时间点(用BITIM指令);
5.1、判断定时中断是否为空闲(若定时中断为空闲,表一定为空,否则就是程序有问题);
5.2、若定时中断空闲,直接启动定时中断,让其在Td后中断,输出该输入事件;
5.3、若定时中断进行中,则取本次的时间点,和上一次输出事件的时间点,相差得出间隔时间dT(ms),放入FIFO中(溢出问题另论),当然,连同输入的沿特性也放入FIFO。(还得有最小时间差的限制)
6、发生定时中断,处理输出,然后
6.1、若表为空,则置定时中断为闲;
6.2、若表为非空,从FIFO中取出一(组)数,(当然FIFO的个数会减小),将定时器置为dT后中断。
7、....
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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