HSC0高速计数器计算长度

程序如下:
LD     SM0.1
CALL   高速计数:SBR1
-------------------------------
将高速计数器的脉冲数换算成长度VD516
LD     SM0.0
MOVD   HC0, AC0
AENO
DTR    AC0, AC0
AENO
*R     0.001, AC0
AENO
MOVR   AC0, 缆绳长度检测:VD516
--------------------------------------
高速计数:SBR1:
LD     SM0.0
MOVB   16#FC, SMB37                //设置控制位:增计数;1X 速率;已使能;
MOVD   +0, SMD38                   //装载 CV
MOVD   +0, SMD42                   //装载 PV
HDEF   0, 9
ENI
HSC    0

程序中HSC0倒可以级数好亿以上,但是HC0记得数传给AC0的时候就出现问题了,一旦超过32767,AC0计数就不对了,有什么办法处理,减少误差吗?有朋友能高速我有什么好的办法减少误差吗,(jr-gc@163.com)

最佳答案

不理解 AC0 是双字啊  能存很大的  我做记米的时候是采用中断
100ms 采样HC0的值  给vd 区域 然后在初始化一下
MOVB   16#FC, SMB37                //设置控制位:增计数;1X 速率;已使能;
MOVD   +0, SMD38                   //装载 CV
MOVD   +0, SMD42                   //装载 PV
HDEF   0, 9
这样没问题 

补充一下 32760 是W 的最大 你肯定是中间那里 有转化成w

提问者对于答案的评价:
转化过来了!~

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 上午11:22
下一篇 2020年11月5日 上午11:22

相关推荐