資源簡介
基于集中器與下行通信模塊本地接口通信協議645(廣東規約)下,采集多種電能表及多種數據的ucos-II c程序的實現

代碼片段和文件信息
/**********************************************************************************
*?Filename???:?ammeter.c
*?Discription?:?define?the?fucntions?that?read?the?ammeters
*?Begin?time??:?2008-8-5
*?Finish?time?:?
*?Engineer ??:?wei?wang
*?Version?????:?V1.0
*************************************************************************************/
//#include?
#include?“ammeter.h“
INT16U?read_amm_interval; ??//抄表時間間隔
const?INT8U??single_phase_645[]?=?{SIGNLE_PHASE_AMSINGLE_AM_LENGTH10x100x9040};
const?INT8U??mux_func_645[]?=?
{
?????MUX_FUNC_AMMUX_FUN_AM_LENGTH42
?????//正向有功電能
?????0x100x9040???0x110x9044???0x120x9048???0x130x90412??0x140x90416
?//反向有功電能
?0x200x90420??0x210x90424??0x220x90428??0x230x90432??0x240x90436?
??//四象限無功電能?
?0x300x90440??0x400x90444??0x500x90448??0x600x90452?
?//A、B、C相電壓電流 ???
?0x110xB6256??0x120xB6258??0x130xB6260??0x210xB6262??0x220xB6264??0x230xB6266?
?//A、B、C相有功無功功率??
?0x300xB6368??0x310xB6371??0x320x32374??0x330xB6377?
?0x400xB6280??0x410xB6282??0x420xB6284??0x430xB6286?
?//電表運行狀態字,電表時鐘,編程次數?編程時間??
?0x200xC0188??0x110xC0389??0x120xB2292??0x100xB2494
?//需量及發生時間
?0x100xA0398??0x100xB05101??????
?0x110xA03106?0x110xB05109
?0x120xA03114?0x120xB05117
?0x130xA03122?0x130xB05125
?0x140xA03130?0x140xB05133???????
};
struct??Ammeter_Index??ammeter_inform;??
struct?AmmeterstyleNum?AmmeterActualNum;
INT8U?ammeter_data_single[TIMES_NUM][SINGLE_AM_NUM][SINGLE_AM_LENGTH+6];
#ifdef?JZQ
INT8U?ammeter_data_muxfunc[TIMES_NUM][MUX_FUN_AM_NUM][MUX_FUN_AM_LENGTH+6];
//other?style?ammeters;
#endif
struct??Read_Amme_time??Read_ammeter_time[TIMES_NUM];???//存放抄表時標
unsigned?char?now_rearnow_front;??//標識三個時間點那個是最近一次抄寫的
/***************************************************************
*?function?:?send?a?frame?from?port
*?parameter:?
******************************************************************/
INT8U?Send_frame(INT8U?*strINT8U?lengthINT8U?port)????//指向要發送的數據首地址;
{
????INT8U?i;
INT8U?status;
????switch(port)
????{
???? case?COM33:
???? ?????GPIO_BitWrite(GPIO020);
???? ?????GPIO_BitWrite(GPIO030);?
???? ?????break;
???? case?COM34:
???? ?????GPIO_BitWrite(GPIO020);
???? ?????GPIO_BitWrite(GPIO031);?
???? ?????break;
???? case?COM35:
???? ?????GPIO_BitWrite(GPIO021);
???? ?????GPIO_BitWrite(GPIO030);?
???? ?????break;
???? case?COM36:
???? ?????GPIO_BitWrite(GPIO021);
???? ?????GPIO_BitWrite(GPIO031);?
???? ?????break;
???? default:
???? ?????GPIO_BitWrite(GPIO020);
???? ?????GPIO_BitWrite(GPIO030);?
???? ?????break;
????}
?//???OSTimeDlyHMSM(000600);
for(i?=?0;i? {
CommPutChar(COM3*str++0);???//str[i]?替換*str++???1000替換0
}
return?0;
}
INT8U?Rev_frame(INT8U?*Rev_frame_BufINT8U?Port)
{
INT8U?pos?=?0;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????17547??2011-07-17?20:43??ammeter\ammeter.c
?????文件??????17549??2011-07-17?20:43??ammeter\ammeter.c.bak
?????文件???????4894??2010-09-08?09:38??ammeter\ammeter.h
?????目錄??????????0??2011-08-07?15:39??ammeter
-----------?---------??----------?-----??----
????????????????39990????????????????????4
- 上一篇:采用網格序列法實現等值線生成
- 下一篇:dSPACE手冊
評論
共有 條評論