Network 1 // 网络标题
// 网络注释
LD I1.0
LD I1.1
A SM0.1
OLD
MOVB IB0, VB0
= M0.0
Network 2
LD I1.2
A M0.0
BTI VB0, VW4
AENO
ITD VW4, VD8
AENO
DTR VD8, VD12
Network 3
LD I1.3
MOVR VD12, VD16
AENO
*R 2.0, VD16
AENO
= M0.2
Network 4
LD M0.2
ROUND VD16, VD20
AENO
= M0.3
Network 5
LD M0.3
TRUNC VD16, VD24
AENO
= M0.4
Network 6
LD M0.4
LPS
A I1.4
MOVR VD24, QD0
LPP
A I1.5
MOVR VD20, QD0
为什么算出的结果不对那,不论vd20.,或者vd24,请高手给解答下,最好能给个例程,谢谢
问题补充:
没有任何地方引用,是自己仅仅编制的一个仿真程序,ibo 中的值通过i0.0_i0.7的关断来付给,但通过二进制到vd16都对,但到vd20.,或者vd24,输出就不对了,请高手给解答下
最佳答案
首先你的问题其实可以再具体一点,比如,你输入是什么,得到的输出是什么
然后就是赞同pianzhouyiye ,看看有没有其他赋值的地方,比如你其他地方用了VW26就会造成影响,
第三是实数的存储格式和整数的是不一样的,在你程序里VD16是实数,VD24和VD20是双整数,比如同样是10,如果作为实数10.0赋值给VD16,和作为整数赋值为VD20,那么你得到的二进制VD16和二进制VD20的数值是不一样的,因为存储格式不一样,实数存储格式见帮助文件,所以如果靠判断二进制的VD16和VD20,VD24的数值不一致,认为结果不正确是错误的
提问者对于答案的评价:
结果靠近
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc319791.html