?? curdata.c
字號:
/****************************************Copyright (c)**************************************************
** 江蘇廣一科技有限公司
** 研 發 部
** 浙江配變
**
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: curdata.c
**創 建 人:
**最后修改日期: 2007年10月02日
**描 述:
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人:
** 版 本:
** 日 期:
** 描 述:
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define CURDAT_GLOBALS
#include "curdata.h"
/***********實時數據向量表*************/
const uint8 CUR_DATA_TAB[] = {
0x90, 0x1F, 20, // (當前)正向有功電能數據塊
0x90, 0x10, 4,
0x90, 0x11, 4,
0x90, 0x12, 4,
0x90, 0x13, 4,
0x90, 0x14, 4,
0x90, 0x2F, 20, // (當前)正向無功電能數據塊
0x90, 0x20, 4,
0x90, 0x21, 4,
0x90, 0x22, 4,
0x90, 0x23, 4,
0x90, 0x24, 4,
0x90, 0x3F, 12, // (當前)三相正向有功電量數據塊
0x90, 0x31, 4,
0x90, 0x32, 4,
0x90, 0x33, 4,
0x90, 0x4F, 12, // (當前)三相反向有功電量數據塊
0x90, 0x41, 4,
0x90, 0x42, 4,
0x90, 0x43, 4,
0x91, 0x1F, 20, // (當前)正向無功電能數據塊
0x91, 0x10, 4,
0x91, 0x11, 4,
0x91, 0x12, 4,
0x91, 0x13, 4,
0x91, 0x14, 4,
0x91, 0x2F, 20, // (當前)反向無功電能數據塊
0x91, 0x20, 4,
0x91, 0x21, 4,
0x91, 0x22, 4,
0x91, 0x23, 4,
0x91, 0x24, 4,
0x91, 0x3F, 20, // (當前)一象限無功電能數據塊
0x91, 0x30, 4,
0x91, 0x31, 4,
0x91, 0x32, 4,
0x91, 0x33, 4,
0x91, 0x34, 4,
0x91, 0x4F, 20, // (當前)四象限無功電能數據塊
0x91, 0x40, 4,
0x91, 0x41, 4,
0x91, 0x42, 4,
0x91, 0x43, 4,
0x91, 0x44, 4,
0x91, 0x5F, 20, // (當前)二象限無功電能數據塊
0x91, 0x50, 4,
0x91, 0x51, 4,
0x91, 0x52, 4,
0x91, 0x53, 4,
0x91, 0x54, 4,
0x91, 0x6F, 20, // (當前)三象限無功電能數據塊
0x91, 0x60, 4,
0x91, 0x61, 4,
0x91, 0x62, 4,
0x91, 0x63, 4,
0x91, 0x64, 4,
0x91, 0x7F, 12, // (當前)三相正向無功電量數據塊
0x91, 0x71, 4,
0x91, 0x72, 4,
0x91, 0x73, 4,
0x91, 0x8F, 12, // (當前)三相反向無功電量數據塊
0x91, 0x81, 4,
0x91, 0x82, 4,
0x91, 0x83, 4,
0xA0, 0x1F, 15, // (當前)正向有功最大需量數據塊
0xA0, 0x10, 3,
0xA0, 0x11, 3,
0xA0, 0x12, 3,
0xA0, 0x13, 3,
0xA0, 0x14, 3,
0xA0, 0x2F, 15, // (當前)反向有功最大需量數據塊
0xA0, 0x20, 3,
0xA0, 0x21, 3,
0xA0, 0x22, 3,
0xA0, 0x23, 3,
0xA0, 0x24, 3,
0xA4, 0x1F, 15, // (上月)正向有功最大需量數據塊
0xA4, 0x10, 3,
0xA4, 0x11, 3,
0xA4, 0x12, 3,
0xA4, 0x13, 3,
0xA4, 0x14, 3,
0xA4, 0x2F, 15, // (上月)反向有功最大需量數據塊
0xA4, 0x20, 3,
0xA4, 0x21, 3,
0xA4, 0x22, 3,
0xA4, 0x23, 3,
0xA4, 0x24, 3,
0xB0, 0x1F, 20, // (當前)正向有功最大需量發生時間數據塊
0xB0, 0x10, 4,
0xB0, 0x11, 4,
0xB0, 0x12, 4,
0xB0, 0x13, 4,
0xB0, 0x14, 4,
0xB0, 0x2F, 20, // (當前)反向有功最大需量發生時間數據塊
0xB0, 0x20, 4,
0xB0, 0x21, 4,
0xB0, 0x22, 4,
0xB0, 0x23, 4,
0xB0, 0x24, 4,
0xB4, 0x1F, 20, // (上月)正向有功最大需量發生時間數據塊
0xB4, 0x10, 4,
0xB4, 0x11, 4,
0xB4, 0x12, 4,
0xB4, 0x13, 4,
0xB4, 0x14, 4,
0xB4, 0x2F, 20, // (上月)反向有功最大需量發生時間數據塊
0xB4, 0x20, 4,
0xB4, 0x21, 4,
0xB4, 0x22, 4,
0xB4, 0x23, 4,
0xB4, 0x24, 4,
0xB2, 0x1F, 12, // 編程記錄數據塊
0xB2, 0x10, 4,
0xB2, 0x11, 4,
0xB2, 0x12, 2,
0xB2, 0x13, 2,
0xB3, 0x1F, 8, // 斷相次數數據塊
0xB3, 0x10, 2,
0xB3, 0x11, 2,
0xB3, 0x12, 2,
0xB3, 0x13, 2,
0xB3, 0x2F, 12, // 斷相累計時間數據塊
0xB3, 0x20, 3,
0xB3, 0x21, 3,
0xB3, 0x22, 3,
0xB3, 0x23, 3,
0xB6, 0x1F, 6, // 電壓數據塊
0xB6, 0x11, 2,
0xB6, 0x12, 2,
0xB6, 0x13, 2,
0xB6, 0x2F, 6, // 電流數據塊
0xB6, 0x21, 2,
0xB6, 0x22, 2,
0xB6, 0x23, 2,
0xB6, 0x3F, 12, // 有功功率數據塊
0xB6, 0x30, 3,
0xB6, 0x31, 3,
0xB6, 0x32, 3,
0xB6, 0x33, 3,
0xB6, 0x4F, 8, // 無功功率數據塊
0xB6, 0x40, 2,
0xB6, 0x41, 2,
0xB6, 0x42, 2,
0xB6, 0x43, 2,
0xB6, 0x5F, 8, // 功率因數數據塊
0xB6, 0x50, 2,
0xB6, 0x51, 2,
0xB6, 0x52, 2,
0xB6, 0x53, 2,
0xB6, 0x6F, 12, // 相角數據塊
0xB6, 0x60, 2,
0xB6, 0x61, 2,
0xB6, 0x62, 2,
0xB6, 0x63, 2,
0xB6, 0x64, 2,
0xB6, 0x65, 2,
0xB6, 0x7F, 12, // 正向有功功率數據塊
0xB6, 0x70, 3,
0xB6, 0x71, 3,
0xB6, 0x72, 3,
0xB6, 0x73, 3,
0xB6, 0x8F, 12, // 反向有功功率數據塊
0xB6, 0x80, 3,
0xB6, 0x81, 3,
0xB6, 0x82, 3,
0xB6, 0x83, 3,
0xB6, 0x9F, 8, // 正向無功功率數據塊
0xB6, 0x90, 2,
0xB6, 0x91, 2,
0xB6, 0x92, 2,
0xB6, 0x93, 2,
0xB6, 0xAF, 8, // 反向無功功率數據塊
0xB6, 0xA0, 2,
0xB6, 0xA1, 2,
0xB6, 0xA2, 2,
0xB6, 0xA3, 2,
0xB6, 0xBF, 12, // 視在功率數據塊
0xB6, 0xB0, 3,
0xB6, 0xB1, 3,
0xB6, 0xB2, 3,
0xB6, 0xB3, 3,
0xC0, 0x10, 3, // 日期及周日
0xC0, 0x11, 3, // 時間
0xC0, 0x30, 3, // 電表常數(有功)
0xC0, 0x31, 3, // 電表常數(無功)
0xC3, 0x3F, 24, // 時段費率數據塊
0xC3, 0x31, 3,
0xC3, 0x32, 3,
0xC3, 0x33, 3,
0xC3, 0x34, 3,
0xC3, 0x35, 3,
0xC3, 0x36, 3,
0xC3, 0x37, 3,
0xC3, 0x38, 3,
0x8E, 0x1F, 12, // 電壓(一次側)數據塊
0x8E, 0x11, 4,
0x8E, 0x12, 4,
0x8E, 0x13, 4,
0x8E, 0x2F, 12, // 電流(一次側)數據塊
0x8E, 0x21, 4,
0x8E, 0x22, 4,
0x8E, 0x23, 4,
0x8E, 0x3F, 16, // 有功功率(一次側)數據塊
0x8E, 0x30, 4,
0x8E, 0x31, 4,
0x8E, 0x32, 4,
0x8E, 0x33, 4,
0x8E, 0x4F, 16, // 無功功率(一次側)數據塊
0x8E, 0x40, 4,
0x8E, 0x41, 4,
0x8E, 0x42, 4,
0x8E, 0x43, 4,
0x8E, 0x6F, 14, // 平均功率數據塊
0x8E, 0x60, 4,
0x8E, 0x61, 4,
0x8E, 0x62, 3,
0x8E, 0x63, 3,
0x8E, 0x70, 2, // 零序電流(二次側)
0x8E, 0x8F, 48, // 電壓極值數據塊
0x8E, 0x80, 1,
0x8E, 0x81, 1,
0x8E, 0x82, 1,
0x8E, 0x83, 1,
0x8E, 0x84, 1,
0x8E, 0x85, 1,
0x8E, 0x86, 7,
0x8E, 0x87, 7,
0x8E, 0x88, 7,
0x8E, 0x89, 7,
0x8E, 0x8A, 7,
0x8E, 0x8B, 7,
0x8E, 0x9F, 60, // 功率及電流極值數據塊
0x8E, 0x90, 2,
0x8E, 0x91, 8,
0x8E, 0x92, 8,
0x8E, 0x93, 7,
0x8E, 0x94, 7,
0x8E, 0x95, 7,
0x8E, 0x96, 7,
0x8E, 0x97, 7,
0x8E, 0x98, 7,
0x8E, 0xA0, 2, // 測量點狀態字
0x8E, 0xBF, 14, // (當日)電流偏差極值數據塊
0x8E, 0xB1, 7,
0x8E, 0xB2, 7,
0xC0, 0x20, 1, // 表計電池失壓標識 0 非失壓 1 失壓
0xC1, 0x19, 4, // 有功電能表起始讀數
0xC1, 0x1A, 4, // 無功電能表起始讀數
0xC6, 0x1F, 6, // 溫濕度數據塊
0xC6, 0x11, 2,
0xC6, 0x12, 2,
0xC6, 0x13, 2
};
/*********************************************************************************************************
** 函數名稱: CurDataIndex()
** 功能描述: 測量點數據索引
**
** 輸 入:
** *param 標識碼
** *offset 偏移地址指針
**
** 輸 出: 字節數
**
** 全局變量:
** 調用模塊:
**
** 作 者:
** 日 期: 2007-10-9
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
uint32 CurDataIndex(uint8 *param, uint32 *offset)
{
uint32 i,j;
uint32 len;
len = 0;
*offset = 0;
j = 0;
for (i=0;i<sizeof(CUR_DATA_TAB);i=i+3)
{//*
if (j>3)
{
if ((*(CUR_DATA_TAB+(j-3)+1)&0x0F) != 0x0F) // 如果前一項不是F項
{
*offset += *(CUR_DATA_TAB + (j-3) + 2); // 取前一項的長度相加
}
else // 如果前一項是F項
{
;
}
}
else
{
*offset = 0x00; // 前兩項的偏移地址為0
}
if ((*param==*(CUR_DATA_TAB+j)) && // 查找相同標識碼
(*(param+1)==*(CUR_DATA_TAB+j+1)))
{
len = *(CUR_DATA_TAB+j+2);
return(len);
}
else
{
j += 3;
continue;
}
}//*
return(0);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -