plc200如何实现脉冲累加计数的

通过I0.0输入脉冲信号,统计计数有多少脉冲信号,计数值以变量存起来,这个功能。
我想到的就是ADD,IN1 赋值1,输出out再发给IN2,一个脉冲加1。请问还有什么好办法吗?

传统的CTU计数器,好像也办不到这功能,脉冲到达预设值pv触发,也实现不了实时计数功能啊

最佳答案

想要实事计数只能用中断,普通计数器是无法真实记录高速脉冲数据的,因为普通计数器遵循的程序扫描机理。
给一个参考程序:
LD     SM0.1
MOVB   16#FC, SMB37
HDEF   0, 9
MOVD   VD1490, SMD38
MOVD   16#FFFFFFFF, SMD42
ATCH   长度到达:INT1, 12
ENI
HSC    0
定义高速计数器的9#模式(MODE)。
控制字节=SMB37 (FC=11111100) SM37.0=0(复位高低有效控制位,高电平有效);SM37.1=0(启动高低有效控制位,高电平有效);SM37.2=1(正交计数速率选择位,1倍频计数);SM37.3=1(计数方向控制位,增计数);SM37.4=1(写计数方向允许控制,更新计数方向);SM37.5=1(写入预设值允许控制,更新预设值);SM37.6=1(写入当前值允许控制,更新当前值);SM37.7=1(HSC指令执行允许控制,允许HSC)
当前值双字=SMD38
预设值双字=SMD42
这样当脉冲数达到预设值触发中断,你可以在中断中使用加一程序,以达到脉冲计数的目的。

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。
建议用高速计数器-进行脉冲个数测量,如果超过hsc最大值,清0从新计数,同时将一个计数器加1。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc199911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月29日
下一篇 2017年10月29日

相关推荐