问题是这样的:半径(整数)存放在MW10中,圆周率是3.14159.用浮点数计算圆的周长,将结果转换成整数。存放在MW14中。
我的想法是先把整数转换成双整数,双整数再转换成实数,然后在用浮点数乘法指令相乘。可是结果如何把浮点数转换成整数,S7-300没有这个指令的。有什么方法可以实现。
问题补充:
双整数转换成整数是不是在结果中取双整数的低位两个字节的数据呢
最佳答案
怎么会没有呢!
ROUND :将浮点数转化为四舍五入的双整数
CEIL:将浮点数转化为大于等于它的最小双整数
FLOOR:将浮点数转化为小于等于它的最小双整数
TRUNC:将浮点数转化为舍去小数部分的双整数
然后在用双整数转化为整数啊,不过需要注意数据溢出。
对于你补充的问题:如果双整数的数据范围没有超过低字节的范围的话,你这样取可以。但是如果超过了,你取到的数就不是原来的数,因为数据溢出了。建议你不要这样操作,而要用DI_I的指令,因为这个指令在执行的时候会判断是否有溢出,然后你根据标志位是可以判断的,而你自己直接去低字的话,你不知道有没有溢出。
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc232668.html