程序如下:
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