⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e2prom_config.h

📁 一个电表的程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#define        eSY10_PPwrTar3_Dtr        (eSY10_PPwrTar2_Dtr+4)        // ""        费率3    ""
#define        eSY10_PPwrTar4_Dtr        (eSY10_PPwrTar3_Dtr+4)        // ""        费率4    ""

#define        eSY11_PPwrTtl_Dtr         (eSY10_PPwrTar4_Dtr+4)        // 4byte(11月)正向有功总电能(+A)    XXXXXXXX.XXkwh
#define        eSY11_PPwrTar1_Dtr        (eSY11_PPwrTtl_Dtr+4)         // ""        费率1    ""
#define        eSY11_PPwrTar2_Dtr        (eSY11_PPwrTar1_Dtr+4)        // ""        费率2    ""
#define        eSY11_PPwrTar3_Dtr        (eSY11_PPwrTar2_Dtr+4)        // ""        费率3    ""
#define        eSY11_PPwrTar4_Dtr        (eSY11_PPwrTar3_Dtr+4)        // ""        费率4    ""

#define        eSY12_PPwrTtl_Dtr         (eSY11_PPwrTar4_Dtr+4)        // 4byte(12月)正向有功总电能(+A)    XXXXXXXX.XXkwh
#define        eSY12_PPwrTar1_Dtr        (eSY12_PPwrTtl_Dtr+4)         // ""        费率1    ""
#define        eSY12_PPwrTar2_Dtr        (eSY12_PPwrTar1_Dtr+4)        // ""        费率2    ""
#define        eSY12_PPwrTar3_Dtr        (eSY12_PPwrTar2_Dtr+4)        // ""        费率3    ""
#define        eSY12_PPwrTar4_Dtr        (eSY12_PPwrTar3_Dtr+4)        // ""        费率4    ""


/*------ 冬季冻结电量 46 bytes ; 无 RAM 数据区----------------------------------------------------------------------------------------*/

#define        ePPwrTtl_SttWintr_Dtr         (eSY12_PPwrTar4_Dtr+4)          // 4byte 冬时区冻结起始正向有功总电能(+A)    XXXXXXXX.XXkwh
#define        ePPwrTar1_SttWintr_Dtr        (ePPwrTtl_SttWintr_Dtr+4)       // ""        费率1    ""
#define        ePPwrTar2_SttWintr_Dtr        (ePPwrTar1_SttWintr_Dtr+4)      // ""        费率2    ""
#define        ePPwrTar3_SttWintr_Dtr        (ePPwrTar2_SttWintr_Dtr+4)      // ""        费率3    ""
#define        ePPwrTar4_SttWintr_Dtr        (ePPwrTar3_SttWintr_Dtr+4)      // ""        费率4    ""
#define        eDate_SttWintr_Dtr            (ePPwrTar4_SttWintr_Dtr+4)      // 3byte 冻结起始日期    yymmdd

#define        ePPwrTtl_EndWintr_Dtr         (eDate_SttWintr_Dtr+3)          // 4byte 冬时区冻结结束正向有功总电能(+A)    XXXXXXXX.XXkwh
#define        ePPwrTar1_EndWintr_Dtr        (ePPwrTtl_EndWintr_Dtr+4)       // ""        费率1    ""
#define        ePPwrTar2_EndWintr_Dtr        (ePPwrTar1_EndWintr_Dtr+4)      // ""        费率2    ""
#define        ePPwrTar3_EndWintr_Dtr        (ePPwrTar2_EndWintr_Dtr+4)      // ""        费率3    ""
#define        ePPwrTar4_EndWintr_Dtr        (ePPwrTar3_EndWintr_Dtr+4)      // ""        费率4    ""
#define        eDate_EndWintr_Dtr            (ePPwrTar4_EndWintr_Dtr+4)      // 3byte 冻结结束日期    yymmdd


//------------------------------------------------------------------------------------------------------------------------------

//             备份数据区2:备份数据区1烧坏后,启用备份数据区2

#define      ePPwrKwh_Bak             (eDate_EndWintr_Dtr+3)     // 5*4byte+1(当前)正向有功总、费率电能(+A)    XXXXXXXX.XX  kwh
#define      eNPwrKwh_Bak             (ePPwrKwh_Bak+21)          // 5*4byte+1(当前)反向有功总、费率电能(+A)    XXXXXXXX.XX  kwh
#define      ePPwrKvarh_Bak           (eNPwrKwh_Bak+21)          // 5*4byte+1(当前)正向无功总、费率电能(+A)    XXXXXXXX.XX  kwh
#define      eSysTmDt_Bak             (ePPwrKvarh_Bak+21)         // 8byte 系统时间

//------------------------------------------------------------------------------------------------------------------------------

#define      eUpDownPowerDataBuf      (eSysTmDt_Bak+ 8)         //  71个字节用于上电下电需要保存和传输的数据





/*-------------------  参变量 35 bytes ;   ----------------------------------------------------------------------------*/


#define      eLPrgrm_Tm_Dtr          (eUpDownPowerDataBuf+ UpSaveDataLen)  // 4byte 最近1次编程时间       MMDDHHmm    月.日.时.分				
#define      eLPrgrm_Cont_Dtr        (eLPrgrm_Tm_Dtr+4)                    // 4byte 最近1次编程内容       NNNNNNNN    数据标识ID、长度、 命令
#define      ePrgrm_Cnt_Dtr          (eLPrgrm_Cont_Dtr+4)                  // 2byte 编程次数              NNNN                   				
#define      eBatt_WorkTm_Dtr        (ePrgrm_Cnt_Dtr+2)                    // 3byte 电池工作时间          NNNNNN  min            				
#define      ePdCnt_Dtr              (eBatt_WorkTm_Dtr+3)                  // 2byte 停电次数              NNNN   				
#define      ePOnCnt_Dtr             (ePdCnt_Dtr+2)                        // 2byte 上电次数              NNNN   				
#define      eClrPwr_Tm_Dtr          (ePOnCnt_Dtr+2)                       // 4byte 最近一次清零时间		  MMDDHHmm    月.日.时.分	
#define      eClrEngy_Cnt_Dtr        (eClrPwr_Tm_Dtr+4)                    // 2byte 清零次数              NNNN                   				
#define      eSystem_Malfunction     (eClrEngy_Cnt_Dtr+2)                  // 1byte 系统故障记录				
#define      ePdTime_Dtr             (eSystem_Malfunction+1)               // 6byte 最近一次停电时间  YYMMDDhhmmss  	年.月.日- 时.分.秒			
#define      ePuTime_Dtr             (ePdTime_Dtr+6)                       // 6byte 最近一次上电时间  YYMMDDhhmmss  	年.月.日- 时.分.秒		
#define      eMtWd_Dtr               (ePuTime_Dtr+6)                       // 1byte 电表运行状态字(见附录B1)XX				
#define      ePwrNtWd_Dtr            (eMtWd_Dtr+1)                         // 1byte 电网状态字(见附录B2)    XX				

        /*  -------- 参变量数据区结束地址 ----------------- */

#define     Prt_Variable_End         (ePwrNtWd_Dtr+1)
/*----------------------------------------------------------------------------------------------------------------------*/

#define     ClearVariableBuf0()         E2prom_Set(eLPrgrm_Tm_Dtr,0x00,(Prt_Variable_End - eLPrgrm_Tm_Dtr))              //宏调用,参变量数据区清零(操作数据区清零)
#define     ClearVariableBuf1()         E2prom_Set(Prt_Variable_Hand,0x00,(Prt_Variable_End - Prt_Variable_Hand ))       //宏调用,参变量数据区清零(全清零)
/*----------------------------------------------------------------------------------------------------------------------*/



#define     InitFlgBuf2               (Prt_Variable_End + 8)           // 8byte 第一次上电标志记录区2

/*-------------------  参数 151 bytes ;   ------------------------------------------------------------------------------*/

       /*  -------- 参数数据区起始地址 ----------------- */

#define      Parameter_Hand          (InitFlgBuf2+10)               // 参数区头

/*----------------------------------------------------------------------------------------------------------------------*/
                        /*    通信要刷新的数据区   */

#define      eMtCt_Dtr               (Parameter_Hand)               /*04*/        // 3byte 电表常数(只读)  NNNNNN      				
#define      eShftDspTm_Dtr          (eMtCt_Dtr+3)                  /*08*/        // 1byte 循显时间        XX   s          				
#define      eStpDspTm_Dtr           (eShftDspTm_Dtr+1)             /*09*/        // 1byte 循显间隔时间    NN   s       				
#define      eOpnClsLcd_Dtr          ( eStpDspTm_Dtr+1)             /*18*/        // 4byte 开显示/关显示时间  hhmm-hhmm	时分-时分			
#define      eRttDspNo_Dtr           (eOpnClsLcd_Dtr+4)                           // 32byte 16项个正常显示序号存放区序号				

#define      CommRefurbish()         MoveData_Api(eMtCt_Dtr+e2RAM_Adr,(unsigned int)(&rCommParamter[0]),eRttDspNo_Dtr+32-eMtCt_Dtr)      //宏调用, 通信要刷新的数据
/*----------------------------------------------------------------------------------------------------------------------*/

#define      eParamtA_Dtr            (eRttDspNo_Dtr+32)             /*01*/        // 2byte 参量A([1]电池电压、[0]脉冲数				
#define      eParamtB_Dtr            (eParamtA_Dtr+2)               /*02*/        // 2byte 参量B(电量显示位数可设置,)				
#define      eParamtC_Dtr            (eParamtB_Dtr+2)               /*03*/        // 2byte 参量C				
#define      eMeterNo_Dtr            (eParamtC_Dtr+2)               /*05*/        // 6byte 表号              NNNNNNNNNNNN				
#define      eUsrNo_Dtr              (eMeterNo_Dtr+6)               /*06*/        // 6byte 用户号          NNNNNNNNNNNN				
#define      eDvcNo_Dtr              (eUsrNo_Dtr+6)                 /*07*/        // 6byte 设备号          NNNNNNNNNNNN				

#define      eAUtRdTm_Dtr            (eDvcNo_Dtr+6)                 /*10*/        // 2byte 自动抄表日期    DDhh  日.时         				
#define      eInitEngy_Dtr           (eAUtRdTm_Dtr+2)               /*11*/        // 4byte 电量底数	
#define      eTmSctCnt_Dtr           (eInitEngy_Dtr+4)              /*12*/        // 1byte 日时段数	
#define      eFvCnt_Dtr              (eTmSctCnt_Dtr+1)                            // 1byte 日费率数
#define      eFlTbl_Dtr              (eFvCnt_Dtr+1)                               // 30byte 10个时段(日时段表集合)				
#define      eKeyDspNo_Dtr           (eFlTbl_Dtr +30)                             // 32byte 16项按键显示序号存放区序号				

#define      eDate_SttWntr           (eKeyDspNo_Dtr+32)             /*15*/       // 3byte 冬季开始日期      (NN为00)11.01.00				
#define      eDate_EndWntr           (eDate_SttWntr+3)              /*16*/       // 3byte 冬季结束日期      (NN为00)04.01.00				
#define      ePassWd00_Dtr           (eDate_EndWntr+3)              /*17*/       // 4byte 密码权限及密码0    NNNNNNNN 				
#define      eComposerPassword_Dtr   (ePassWd00_Dtr+4)              /*19*/       // 4byte 超级用户密码(设计者口令)    NNNNNNNN 		

#define   eCF1DEN             (eComposerPassword_Dtr+4)                        // 2Byte CF1高频脉冲常数(有功)                 28H
#define   eCF2DEN             (eCF1DEN+2)                                      // 2Byte CF2高频脉冲常数(无功)                2AH



 /*  -------- 参数数据区结束地址 ----------------- */

#define      Parameter_End          (eCF2DEN+2)       // 参数区结尾
//------------------------------------------------------------------------------------------------------------------------------

#define      SetParameterInit()   MoveData_Api((Prom_ParAdr+pROM_Adr),(Parameter_Hand+e2RAM_Adr),(unsigned char)(Parameter_End - Parameter_Hand))  //初次上电需要设置的原始参数


//------------------------------------------------------------------------------------------------------------------------------
#define  ePROM_end        (Parameter_End)


#if  ePROM_end >1000
   #error  "\error--E2prom is too long segment definition!\"
#endif

//================================================================================================================================
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -