2018.4.25于306修改:
程序功能:手机发送测量参考值
实现功能:手机发送新的电压、电流、功率参考值,设置内部重新会修改电压、电流、功率参考值,0.01度电量脉冲参考值
修改位置:TIM6_Process()函数
函数部分如下
void TIM6_Process(void){//УÕýģʽ if (U8_CURR_WorkMode == D_CAL_START_MODE) { U32_Cal_Times++;//УÕýʱ¼ä36S£¬1000W¸ºÔØ36Sʱ¼äÏûºÄ0.01¶Èµç if (U32_Cal_Times == D_TIME6_CAL_TIME) //0.01¶ÈУÕýʱ¼äµ½ { U8_CURR_WorkMode = D_CAL_END_MODE; U32_Cal_Times=0; U16_REF_001_E_Pluse_CNT = U16_E_Pluse_CNT; //¼Ç¼36Sʱ¼äÄÚµÄÂö³åÊý£¬´ËÂö³åÊý±íʾ0.01¶ÈÓõçÁ¿ atk_8266_send_cmd("AT+CIPSEND=0,8","OK",20); delay_ms(10); atk_8266_send_data("УÕý½áÊø","ok",20);//1000WÉ豸УÕýÒª36s ¶ÔÓ¦0.01¡ãµç Reset_RX_STA(1); } }
上述加粗语句修改为:
U16_REF_001_E_Pluse_CNT = 3600000/U16_P_REF_Data; //
U16_REF_001_E_Pluse_CNT=U16_REF_001_E_Pluse_CNT*100000/U32_P_REF_PLUSEWIDTH_TIME;U16_REF_001_E_Pluse_CNT = 3600000/U16_P_REF_Data; U16_REF_001_E_Pluse_CNT=U16_REF_001_E_Pluse_CNT*100000/U32_P_REF_PLUSEWIDTH_TIME;
小心大数值乘除导致的乘法溢出或者影响精度。
单相校准方法: 在插座上使用标准负载,如1000W,220V供电电压,4.545A电流,然后手机连接插座发出的无线,作为TCP client 连接192.168.4.1 端口8011,发送指令reference=10000,2200,4545即可。
单相插座设备测量模式:
(1)单周期测量模式
(2)计数脉冲测量模式
综上所述,0.01度电的脉冲数计算公式:
U16_REF_001_E_Pluse_CNT=0.01/ECF=0.01*1000*3600/(U16_P_REF_Data*10^-1*U32_P_REF_PLUSEWIDTH_TIME*10^-6)=36*10^10/(U16_P_REF_Data*U32_P_REF_PLUSEWIDTH_TIME)
程序里U32_P_REF_PLUSEWIDTH_TIME的单位是us所以要乘10的负六次方,U16_P_REF_Data单位不是W,U16_P_REF_Data/10才是W。