恭喜,你发布的帖子
发布于 2021-09-01 13:45:53
11楼
不是画面显示合并,是64位数值,只要让32位以无符号的形式显示就可以了
原来你只是想以32位来显示啊。
给你个思路,不过这个思路会丢失精度,用不用看你的决定咯。
源数据最大值是 3EF'FFFF'FFFF(4,329,327,034,367) 实际上占用了42位(最高位为符号为),那么把42位右移成32位一共右移了11次变成 7DFF'FFFF(2,113,929,215) 相当于除2048。跟着把移位后的数据转为浮点数再乘0.2048也就是相当于源数据除10000得到的值2113929215*0.2048=432932703.232,由于32位浮点数浮点数运算在这里会损失精度由源数据4,329,327,034,367 Wh(瓦时) 变成 4329327.0 MWh(兆瓦时)。
由于PLC 的32位运算指令是带符号整数、浮点数运算,所以没办法做到 KWh的精度的。虽然用电脑计算器进行10进制计算貌似最大可以达到KWh的精度,但是PLC计算不了的。
花一点时间写了个测试程序,达到转换的效果,只是精度误差还是较大的。看来还是要根据最高位来按需移位而不是固定移位位来提高KWh、Wh的精度。算了,以后有空可能再弄,现在不折腾了。
请填写推广理由:
分享
只看
楼主