S7-1200高速计数器的问题

想通过高速计数器的外部复位中断  在中断中调用HSC_CTRL指令将新的当前值写入高速计数器,但是每次复位后 高速计数器的值就编程组态时默认的0,为什么在中断中不能修改这个值啊?  求解

最佳答案

你的意思是复位结束后,给个新值,对吧?
我做过这样的实验:使用I0.0做脉冲计数,配置外部复位功能,对应复位点为I0.3,对I0.3做复位中断,在中断程序OB40里调用HSC指令写入NEW_CV;测试后发现复位点I0.3动作后无法写入新当前值?
分析原因:如果I0.3 一直接通,则计数器当前值一直复位为0,而OB40只执行一次,可能也就几ms 时间,I0.3接通的时间大于OB40执行的时间,就导致新值无法写入!
解决办法:不要使用外部复位执行中断程序OB40,而是改为I0.3下降沿时触发中断OB40;当I0.3复位信号消失,在执行OB40这个中断写新值即可。

提问者对于答案的评价:
谢谢您的解答 这样是有效 但是还是不明白 为什么用复位中断会设置成0  而不是设置成CV写入的值

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月18日 下午11:06
下一篇 2017年8月18日 下午11:06

相关推荐