通过modbus采集的通信仪表的值,仪表显示值为3303.0,PLC采集后,监控PLC地址的值,若干是有符号去监视VW8显示为-32506,用无符号去监视VW8显示为33030,通过换算到实数VD20后监视的值为-3250.6,另外可以肯定的是通信地址仪表用的是40001这个字的值。问题是怎样把采集过来的值用无符号的值去转换成实数,而不是用有符号的值去转换成实数!
图片说明:
最佳答案
本人经常采用的方法:
1、将n地址置为0,如VW0为0,将PLC采集后数值存放在n+2地址中,例如VW2中。这样取VD0(VW0与VW2)中就是一个有符号的双字长的数值(实际上VW0为0,永远保证为正数),但对于低字VW2中数值可视为无符号的数值。
2、再应用双字整数转实数指令DTR指令,转换为实数。
提问者对于答案的评价:
谢谢!这方法确实不错!32个赞
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc194460.html