问题描述:
如何在PM800寄存器中存储功率因数?所属产品线:
PM800解决方法:
每一个功率因数值占用一个寄存器,功率因数值使用带符号数值表示。第15位是符号位,表示功率因数超前还是滞后。正值(第15位为0)表示超前的功率因数,负值(第15位为1)表示滞后的功率因数。当功率因数超前时,位0~9存储十进制大小为0~1000的数值,除以1000得到实际的功率因数。当功率因数滞后时,功率因数返回一个大的负值,需要将原来的数加上32768并除以1000。举例如下:
如果读到的二进制数为0000000111110100,第15位为0,超前的功率因数,
返回的十进制数为500,
500/1000=0.5,则功率因数为0.5
如果读到的二进制数为1000001111001110,第15位为1,滞后的功率因数,返回十进制数为-31794
(-31794+32768)/1000=0.974,则功率因数为-0.974。
是否有帮助?