请教一下Dint和Real型变量在使用过程中出现的问题

请教一下Dint型变量DB5.DBD0可以和Real型变量DB5.DBD4比较大小吗?
如果用move指令把一个Dint型数送给Real型变量DB5.DBD4,那么DB5.DBD4的数值是什么格式的?
要把转速发给ABB的变频器的控制字PQW322,打算用move指令,我是把Dint型变量DB5.DBD0 move给PQW322还是把Real型变量DB5.DBD4 move给PQW322啊?

最佳答案

请教一下Dint型变量DB5.DBD0可以和Real型变量DB5.DBD4比较大小吗?
    数据大小的比较最好是数据类型一致,结果才准确。如果用LAD来写直接就会报错,因为数据格式不一致。用STL来写虽然不会报错,但是结果可能不会准确。
     如果用move指令把一个Dint型数送给Real型变量DB5.DBD4,那么DB5.DBD4的数值是什么格式的?
       因为在数据块里建立数据时必须定义数据类型,DB5.DBD4被定义成了REAL,那么用move指令把一个Dint型数送给Real型变量DB5.DBD4,DB5.DBD4的数值还是REAL格式,可能数值就发生改变了。只有目标地址本来就没有定义数据类型时MOVE指令才可以消除数据的类型属性。例如把DINT的DB5.DBD0传送给没有定义数据类型的MD0,那么MD0里就是不具有任何类型属性的一个32位的二进制代码。
     要把转速发给ABB的变频器的控制字PQW322,打算用move指令,我是把Dint型变量DB5.DBD0 move给PQW322还是把Real型变量DB5.DBD4 move给PQW322啊?
     PQW是16位的数据,而EINT和REAL都是32位的数据,所以这两种都不能直接传送给PQW。具体的事项要参考ABB变频器的说明书。

提问者对于答案的评价:
多谢解答。不过我还有一个问题,就是把dint变量move给int型变量不就相当于把长整型截取成整数型变量吗?

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐