利用高速计数器记编码器的脉冲,算出缆绳的长度,因为是钻井用的,有时候井深达3000米。那脉冲会很大的一个数,这个该怎么办。可能会超出HSC0最大计数的值,该如何处理。
问题补充:
好像是2147483647这个数吧,这个数怎么来的啊,超过这个数了HSC0的值是什么,是0吗?
最佳答案
在200中高速计数器的值是以双整数(32位)的格式存储的。双整数的取值范围中-2,147,483,648到+2,147,483,647,所以计数器的最大值也只能到+2,147,483,647。当计数值超出+2,147,483,647时,会跳转到-2,147,483,648后继续计数。
对于计算长度的应用,+2,147,483,647的值应该够用了,不会出现超出范围的情况。
假设0.1米编码器转一圈,编码器每圈1000个脉冲,则1万个脉冲对应长度1米。+2,147,483,647对应214748米。
对于计数值超出+2,147,483,647的情况,可以采用六六山的建议,并将清零操作放在高速计数器计数值达到比较值的中断中执行,可以减小累计误差。
提问者对于答案的评价:
明白了,谢谢!~
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc321095.html