仪器社区

三菱PLC,编码器脉冲数,逻辑运算溢出

浑雅可 2012-12-12
通过旋转编码器的脉冲数计算距离,分辨率是1000,编码器滚动一圈距离为157mm。逻辑运算是将 :(脉冲数*167)/1000=移动距离。但是(脉冲数*167)得结果已经溢出(结果超出32767范围),求高手怎么办
评论
全部评论
好看骂
浮点数计算,如果没有该功能,就用32位计算,
1 0 2012-12-13 0条评论 回复
rgdzml4604
用浮点运算 还有就是
15 0 2012-12-13 0条评论 回复
wang97107859
你应该采用浮点数运算
不要用整数
16 0 2012-12-13 0条评论 回复
张子娟0
问题出在:
1、[DMUL D170 D190 D180]这是双字整数相乘,存放结果需要4个寄存器(D183~D180)。
2、[DDIV D180 K1000 D185]这一句双字整数相除,被除数仅取D181~D180,结果错误。

解决办法:
1、采用浮点运算,即先把D171D170转换成浮点数再进行乘除。
2、或者运算顺序改为先除后乘:脉冲数/1000*167=移动距离,但由于整数除法会有余数,相乘结果会有细小误差。
5 0 2012-12-13 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论