单相插座程序修改笔记

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。

posted on 2018-04-25 16:56  马勇123  阅读(230)  评论(0编辑  收藏  举报

导航