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

📄 storage.h

📁 用ADE7169F16单片机实现了单向多费4率电能表
💻 H
📖 第 1 页 / 共 2 页
字号:
/* storage.h */
/*************************************
;Ade7169 demo program     
;*************************************
;AUTHOR:        Su RuTong
;DATE:          03 09 2006
;*************************************/

#ifndef STORAGE_H
#define STORAGE_H



// 显示项个数
#define DISP_MAX_ITEM              32

/******************************************************************************************
 *                          固定数据地址定义(Store in small e2prom)                         *
 ******************************************************************************************/
#define ADDR_OF_METER_CONSTANT_A           0                                                       // 电表常数(有功)   - 3字节 - C030 - 81.
#define ADDR_OF_METER_CONSTANT_RA          (unsigned short)(ADDR_OF_METER_CONSTANT_A+6)            // 电表常数(无功)   - 3字节 - C031 - 81.01
#define ADDR_OF_METER_NUM                  (unsigned short)(ADDR_OF_METER_CONSTANT_RA+6)           // 电表表号        - 3字节  
#define ADDR_OF_METER_NUM_L                (unsigned short)(ADDR_OF_METER_NUM)                     // 电表表号(低6位)  - 3字节 - C032 - 82.
#define ADDR_OF_METER_NUM_H                (unsigned short)(ADDR_OF_METER_NUM_L+3)                 // 电表表号(高6位)  - 3字节 - C032 - 82.01
#define ADDR_OF_USER_NUM_L                 (unsigned short)(ADDR_OF_METER_NUM+6)                   // 电表用户号(低6位) - 3字节 - C033 - 82.02
#define ADDR_OF_USER_NUM_H                 (unsigned short)(ADDR_OF_USER_NUM_L+3)                  // 电表用户号(高6位) - 3字节 - C033 - 82.03
#define ADDR_OF_DEVICE_NUM_L               (unsigned short)(ADDR_OF_USER_NUM_H+3)                  // 电表设备号(低6位) - 3字节 - C034 - 82.04
#define ADDR_OF_DEVICE_NUM_H               (unsigned short)(ADDR_OF_DEVICE_NUM_L+3)                // 电表设备号(高6位) - 3字节 - C034 - 82.05

#define ADDR_OF_REQ_CYCLE                  (unsigned short)(ADDR_OF_DEVICE_NUM_H+3)                // 最大需量周期(默认15分钟) - 1字节 - C111 - 83.
#define ADDR_OF_SLIP_TIME                  (unsigned short)(ADDR_OF_REQ_CYCLE+1)                   // 滑差时间(分钟)   - 1字节 - C112 - 83.01
#define ADDR_OF_CYCDISP_TIME               (unsigned short)(ADDR_OF_SLIP_TIME+1)                   // 循显时间(秒)     - 1字节 - C113 - 83.02
#define ADDR_OF_KEEPDISP_TIME              (unsigned short)(ADDR_OF_CYCDISP_TIME+1)                // 停显时间(秒)     - 1字节 - C114 - 83.03
#define ADDR_OF_PWRDISP_DECIMALDIG         (unsigned short)(ADDR_OF_KEEPDISP_TIME+1)               // 显示电能小数位数(默认02) - 1字节 - C115 - 83.04
#define ADDR_OF_REQDISP_DECIMALDIG         (unsigned short)(ADDR_OF_PWRDISP_DECIMALDIG+1)          // 显示功率(需量)小数位数(默认04) - 1字节 - C116 - 83.05
#define ADDR_OF_AUTO_RDDATA_DATE           (unsigned short)(ADDR_OF_REQDISP_DECIMALDIG+1)          // 自动抄表日期(日.时) - 2字节 - C117 - 83.06
#define ADDR_OF_SETTLEMENT_RECODE_MON (unsigned short)(ADDR_OF_AUTO_RDDATA_DATE+2)         // 上次结算月信息 - 1字节
#define ADDR_OF_SUCCESSSETTIME_FLAG (unsigned short)(ADDR_OF_SETTLEMENT_RECODE_MON+2)

#define ADDR_OF_LOAD_REPREST_DAY           (unsigned short)(ADDR_OF_SUCCESSSETTIME_FLAG+1)            // 负荷代表日       - 1字节 - C118 - 83.07

#define ADDR_OF_PULSE_WIDTH                (unsigned short)(ADDR_OF_LOAD_REPREST_DAY+9)               // 脉冲输出宽度(毫秒) - 2字节 - C211 - 84.

#define ADDR_OF_AP_UPPER_LIMIT             (unsigned short)(ADDR_OF_PULSE_WIDTH+2)                 // 正向有功功率上限值(kW) - 2字节 - B634 - 85.
#define ADDR_OF_AN_UPPER_LIMIT             (unsigned short)(ADDR_OF_AP_UPPER_LIMIT+2)              // 反向有功功率上限值(kW) - 2字节 - B635 - 85.01

#define ADDR_OF_METER_TYPE                 (unsigned short)(ADDR_OF_AN_UPPER_LIMIT+2)              // 电表类型             - 2字节 - B670 - 79.
#define ADDR_OF_INTER_PAR_STATE            (unsigned short)(ADDR_OF_METER_TYPE+2)                  // 内部参数(电表运行状态) - 1字节 - B671 - 79.01
#define ADDR_OF_INTER_PAR_TEST             (unsigned short)(ADDR_OF_INTER_PAR_STATE+1)             // 内部参数(测试参数)     - 1字节 - B672 - 79.02
#define ADDR_OF_BATTERY_V36                (unsigned short)(ADDR_OF_INTER_PAR_TEST+1)              // 3.6V电池电压          - 1字节 - B673 - 79.03
#define ADDR_OF_PUB_VACATION               (unsigned short)(ADDR_OF_BATTERY_V36+1)                 // 公共假日状态          - 1字节 - B674 - 79.04
#define ADDR_OF_ZMPF                       (unsigned short)(ADDR_OF_PUB_VACATION+1)                // 时区.日时段表号.时段.费率 - 4字节 - B675 - 79.05
#define ADDR_OF_BATTERY_V6                 (unsigned short)(ADDR_OF_ZMPF+4)                        // 6V停电电池状态        - 1字节 - B676 - 79.06
#define ADDR_OF_INTER_PAR_LVI_WORD         (unsigned short)(ADDR_OF_BATTERY_V6+1)                  // 内部参数(失压失流状态字) - 1字节 - B677 - 79.07
#define ADDR_OF_METER_WORD                 (unsigned short)(ADDR_OF_INTER_PAR_LVI_WORD+1)          // 电表运行状态字         - 1字节 - C020 - 79.10
#define ADDR_OF_ENET_WORD                  (unsigned short)(ADDR_OF_METER_WORD+1)                  // 电网运行状态字         - 1字节 - C021 - 79.11

/* 内部自定义 */
#define ADDR_OF_METER_PASSWORD1            (unsigned short)(ADDR_OF_ENET_WORD+1)                   // 设备访问密码1        - 4字节
#define ADDR_OF_METER_PASSWORD2            (unsigned short)(ADDR_OF_METER_PASSWORD1+4)             // 设备访问密码2        - 4字节
#define ADDR_OF_METER_PASSWORD3            (unsigned short)(ADDR_OF_METER_PASSWORD2+4)             // 设备访问密码3        - 4字节

#define ADDR_OF_SOFTWARE_VERSION           (unsigned short)(ADDR_OF_METER_PASSWORD3+4)             // 软件版本号           - 3字节
#define ADDR_OF_HARDWARE_VERSION           (unsigned short)(ADDR_OF_SOFTWARE_VERSION+3)            // 硬件版本号           - 3字节

#define ADDR_OF_METER_STATUS_MAIN          (unsigned short)(ADDR_OF_HARDWARE_VERSION+3)            // 电表主状态           - 1字节
#define ADDR_OF_METER_STATUS_SUB           (unsigned short)(ADDR_OF_METER_STATUS_MAIN+1)           // 电表子状态           - 1字节
#define ADDR_OF_WEEKEND_STATUS             (unsigned short)(ADDR_OF_METER_STATUS_SUB+1)            // 周休日状态字         - 1字节
#define ADDR_OF_WEEKEND_NUM                (unsigned short)(ADDR_OF_WEEKEND_STATUS+1)              // 周休日天数           - 1字节

#define ADDR_OF_CPU_RESET_CNT              (unsigned short)(ADDR_OF_WEEKEND_NUM+1)                 // CPU复位次数          - 2字节

/* 轮显内容定义 */
#define ADDR_OF_DISP_TYPE                  (unsigned short)(ADDR_OF_CPU_RESET_CNT+2)               // 轮显方式             - 1字节 - C120 - 86.
#define ADDR_OF_DISP_TIME                  (unsigned short)(ADDR_OF_DISP_TYPE+1)                   // 轮显时间(秒)         - 1字节 - C121 - 86.01

#define DISP_CONTENT                          (unsigned short)(ADDR_OF_DISP_TIME+1)

/* 电表基本数据定义 */
#define ADDR_OF_MANUFACTURER_PAR           (unsigned short)(DISP_CONTENT+DISP_MAX_ITEM)         // 厂家参数(保留)         - 4字节 - C140 - 87.
#define ADDR_OF_RATED_UB                   (unsigned short)(ADDR_OF_MANUFACTURER_PAR+4)         // 标定电压Ub(V)         - 2字节 - C141 - 87.01
#define ADDR_OF_RATED_IB                   (unsigned short)(ADDR_OF_RATED_UB+2)                 // 标定电流Ib(A)         - 2字节 - C142 - 87.02
#define ADDR_OF_SECURITY_CHK_IMAX          (unsigned short)(ADDR_OF_RATED_IB+2)                 // 安检最大电流(A)        - 2字节 - C143 - 87.03
#define ADDR_OF_SECURITY_CHK_IMIN          (unsigned short)(ADDR_OF_SECURITY_CHK_IMAX+2)        // 安检最小电流(A)        - 2字节 - C143 - 87.04

#define ADDR_OF_LV_ESTIMATE_TYPE           (unsigned short)(ADDR_OF_SECURITY_CHK_IMIN+2)        // 失压判断方式           - 1字节 - C144 - 87.10
#define ADDR_OF_LV_CONDITION               (unsigned short)(ADDR_OF_LV_ESTIMATE_TYPE+1)         // 失压条件XX.YY(A.V)    - 4字节 - C144 - 87.11
#define ADDR_OF_LI_ESTIMATE_TYPE           (unsigned short)(ADDR_OF_LV_CONDITION+4)             // 失流判断方式           - 1字节 - C145 - 87.12
#define ADDR_OF_LI_CONDITION               (unsigned short)(ADDR_OF_LI_ESTIMATE_TYPE+1)         // 失流条件X.YY.Z(.A.%)  - 4字节 - C145 - 87.13
#define ADDR_OF_ALARM_RAYCTL_WORD          (unsigned short)(ADDR_OF_LI_CONDITION+4)             // 光控报警控制字         - 1字节 - C146 - 87.20
#define ADDR_OF_ALARM_BEEPCTL_WORD         (unsigned short)(ADDR_OF_ALARM_RAYCTL_WORD+1)        // 蜂鸣器报警控制字       - 1字节 - C146 - 87.21
#define ADDR_OF_REGV_MIN_VALUE             (unsigned short)(ADDR_OF_ALARM_BEEPCTL_WORD+1)       // 最低合格电压设定值(V)  - 2字节 - C147 - 87.30
#define ADDR_OF_REGV_UPPER_LIMIT_AREA      (unsigned short)(ADDR_OF_REGV_MIN_VALUE+2)           // 电压合格上限区域(相对最低合格电压)    - 2字节 - C147 - 87.31
#define ADDR_OF_CHKV_UPPER_LIMIT_AREA      (unsigned short)(ADDR_OF_REGV_UPPER_LIMIT_AREA+2)    // 电压考核范围上限区域(相对最低合格电压) - 2字节 - C147 - 87.32
#define ADDR_OF_CHKV_LOWER_LIMIT_AREA      (unsigned short)(ADDR_OF_CHKV_UPPER_LIMIT_AREA+2)    // 电压考核范围下限区域(相对最低合格电压) - 2字节 - C147 - 87.33
#define ADDR_OF_A_MEASURE_TYPE_SEL         (unsigned short)(ADDR_OF_CHKV_LOWER_LIMIT_AREA+2)    // 有功电能计量方式选择   - 1字节 - C148 - 87.40
#define ADDR_OF_RA_MEASURE_TYPE_SEL        (unsigned short)(ADDR_OF_A_MEASURE_TYPE_SEL+1)       // 无功电能计量方式选择   - 1字节 - C149 - 87.50
/* 日期 */
#define ADDR_OF_DATE                        (unsigned short)(ADDR_OF_RA_MEASURE_TYPE_SEL+1)     // 年月日YYMMDD   - 6字节 - C149 - 87.50
#define BASE_TIME_OFFSET                    6
#if 0
/* 时区.时段.费率及公共假日等数量定义 */
#define BASE_CNT                           (unsigned short)(ADDR_OF_RA_MEASURE_TYPE_SEL+1)
#define BASE_CNT_OFFSET                    1

#define ADDR_OF_TIMEZONE_COUNT             (unsigned short)(BASE_CNT+BASE_CNT_OFFSET*0)          // 年时区数                     - 1字节 - C310 - 88.
#define ADDR_OF_POT_COUNT                  (unsigned short)(BASE_CNT+BASE_CNT_OFFSET*1)          // 日时段表数                   - 1字节 - C311 - 88.01
#define ADDR_OF_POT_SWITCH_COUNT           (unsigned short)(BASE_CNT+BASE_CNT_OFFSET*2)          // 日时段(每日切换数)            - 1字节 - C312 - 88.02
#define ADDR_OF_FRATE_COUNT                (unsigned short)(BASE_CNT+BASE_CNT_OFFSET*3)          // 费率数                      - 1字节 - C313 - 88.03
#define ADDR_OF_PUB_VACATION_COUNT         (unsigned short)(BASE_CNT+BASE_CNT_OFFSET*4)          // 公共假日数                   - 1字节 - C314 - 88.04

/* 时区起始日期及日时段表号(MMDDNN) */
#define BASE_ZTSTA                         (unsigned short)(ADDR_OF_PUB_VACATION_COUNT+1)
#define BASE_ZTSTA_OFFSET                  3

#define ADDR_OF_ZT_STA_DT_01               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*0)      // 第1时区起始日期及日时段表号    - 3字节 - C321 - 89.
#define ADDR_OF_ZT_STA_DT_02               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*1)      // 第2时区起始日期及日时段表号    - 3字节 - C322 - 89.01
#define ADDR_OF_ZT_STA_DT_03               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*2)      // 第3时区起始日期及日时段表号    - 3字节 - C323 - 89.02
#define ADDR_OF_ZT_STA_DT_04               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*3)      // 第4时区起始日期及日时段表号    - 3字节 - C324 - 89.03
#define ADDR_OF_ZT_STA_DT_05               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*4)      // 第5时区起始日期及日时段表号    - 3字节 - C325 - 89.04
#define ADDR_OF_ZT_STA_DT_06               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*5)      // 第6时区起始日期及日时段表号    - 3字节 - C326 - 89.05
#define ADDR_OF_ZT_STA_DT_07               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*6)      // 第7时区起始日期及日时段表号    - 3字节 - C327 - 89.06
#define ADDR_OF_ZT_STA_DT_08               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*7)      // 第8时区起始日期及日时段表号    - 3字节 - C328 - 89.07
#define ADDR_OF_ZT_STA_DT_09               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*8)      // 第9时区起始日期及日时段表号    - 3字节 - C329 - 89.08
#define ADDR_OF_ZT_STA_DT_10               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*9)      // 第10时区起始日期及日时段表号   - 3字节 - C32A - 89.09
#define ADDR_OF_ZT_STA_DT_11               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*10)     // 第11时区起始日期及日时段表号   - 3字节 - C32B - 89.10
#define ADDR_OF_ZT_STA_DT_12               (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*11)     // 第12时区起始日期及日时段表号   - 3字节 - C32C - 89.11

/* 时区信息存储格式定义 */

⌨️ 快捷键说明

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