摘 要:Ⅱ型集中器是國家電網(wǎng)用電信息采集系統(tǒng)中的主要設備之一,可以實現(xiàn)單相、三相電能表數(shù)據(jù)的采集、臺區(qū)供電電能質(zhì)量監(jiān)測分析和電能計量設備工況等功能,并對采集數(shù)據(jù)進行雙向傳輸和智能管理,主要應用于各類工商業(yè)、居民用電信息采集和用電狀況的分析。Ⅱ型集中器為用電信息采集系統(tǒng)提供了全新的自動化概念,將遠程抄表、遠程控制、電壓監(jiān)測、無線通信等功能綜合考慮,實現(xiàn)二層式居民集中抄表,相比傳統(tǒng)的載波集中器的三層集中抄表方案提高了通信可靠性,有效降低了通訊網(wǎng)絡復雜度和設備運行維護難度;并且在加強了設備安全監(jiān)視、預防事故發(fā)生,并為降低線損、線損管理、提高供電質(zhì)量和經(jīng)濟運行水平等提供強有力的科學依據(jù)。
關鍵詞:MQX;Ⅱ型集中器;TCP/IP協(xié)議棧;GPRS
引言
智能電網(wǎng)建設的重要環(huán)節(jié)是電力用戶用電信息采集系統(tǒng)的建設,是國家電網(wǎng)公司推進營銷、計量、抄表、收費模式標準化建設、智能化建設和信息化建設的實際需要,是提升計量、計費水平和服務能力的重要手段。根據(jù)國家電網(wǎng)“電力用戶電能信息采集系統(tǒng)”建設的需要,要對電力用戶進行“全覆蓋、全采集”,II型集中器是電力用戶用電信息采集系統(tǒng)中關鍵設備。
1 硬件設計
Ⅱ型集中器主控CPU采用美國飛思卡爾(Freescale)MK60DN512芯片,它采用32位Cortex-M4內(nèi)核,含有高達512K字節(jié)的片內(nèi)Flash和128K字節(jié)的片內(nèi)SRAM存儲器,并通過外部存儲器接口連接超低功耗SRAM,通過SPI接口連接數(shù)據(jù)FALSH存儲器共同組成數(shù)據(jù)及參數(shù)存儲系統(tǒng)。電壓采樣電路中應用了專用電能計量芯片,通過高精度電阻和PT保證了電壓采樣的精度可達0.5級以上;無線通信模塊采用了工業(yè)級GPRS模塊,自帶TCP/IP協(xié)議,具備3C認證,可保證高低溫環(huán)境下性能穩(wěn)定可靠。超級電容可為終端在外部電源失電情況下提供1分鐘以上的供電,以提供斷電后短時間內(nèi)的遠程通信能力。時鐘電池可以為超低功耗SRAM和實時時鐘芯片持久供電,以維持外部電源失電情況下的數(shù)據(jù)安全和時鐘正常運行。
整體硬件系統(tǒng)結構圖見圖1。
圖1 Ⅱ型集中器系統(tǒng)結構圖
主要硬件接口原理圖:
外擴內(nèi)存接口(如圖2):
外擴內(nèi)存采用512K*16大小的內(nèi)存, 因CPU采用了8位總線方式,所以由A0 地址將內(nèi)存分成高、低字節(jié)兩部分,這樣CPU訪問到所有RAM空間。
以太網(wǎng)部分(如圖3):
圖3
以太網(wǎng)采用KSZ8041 芯片,用RMII接口方式,可以簡化與CPU之間的連線。
2 軟件設計
Ⅱ型集中器軟件采用了MQX操作系統(tǒng),MQX是飛思卡爾提供的醫(yī)療級嵌入式實時操作系統(tǒng),其RTOS的內(nèi)核能夠高效調(diào)度終端各項功能任務,提高了系統(tǒng)的實時性與可靠性。此外,基于其可靠的TCP/IP和UDP協(xié)議棧以及USB驅動支持,終端能夠很好的支持以太網(wǎng)應用及USB設備。并且通過其穩(wěn)定可靠的FLASH文件管理系統(tǒng),可以對存儲的各類電能量及運行數(shù)據(jù)進行有效管理,確保了數(shù)據(jù)安全可靠。
2.1 軟件總體結構設計(如圖4)
2.2 MQX下創(chuàng)建各模塊任務
軟件分為10個獨立運行的任務任務模板如下:
const TASK_TEMPLATE_STRUCT MQX_template_list[]=
{
{ TASK_USB_PRIO, USB_task, TASK_USB_STK_SIZE, TASK_USB_PRIO, \"Task_USB\", MQX_AUTO_START_TASK, 0, 0 },
{ TASK_RTC_PRIO, Task_Rtc, TASK_RTC_STK_SIZE, TASK_RTC_PRIO, \"Task_Rtc\", 0, 0, 0 },
{ TASK_ETH_PRIO, Task_Eth, TASK_ETH_STK_SIZE, TAS
K_ETH_PRIO, \"Task_Eth\",0, 0, 0 },
{ TASK_GPRS_PRIO, Task_GPRS, TASK_GPRS_STK_SIZE, TASK_GPRS_PRIO, \"Task_Gprs\", 0, 0, 0 },
{ TASK_APPSENT_PRIO, Task_AppSent, TASK_APPSENT_STK
_SIZE,TASK_APPSENT_PRIO, \"Task_AppSent\", 0, 0, 0 },
{ TASK_APPPROCESS_PRIO, Task_AppProcess,TASK_APPPROCESS_STK_SIZE, TASK_APPPROCESS_PRIO, \"Task_AppProcess\",0, 0, 0 },
{ TASK_APPRECV_PRIO, Task_AppRecv, TASK_APPRECV_S
TK
_SIZE, TASK_APPRECV_PRIO, \"Task_AppRecv\", 0, 0, 0 },
{ TASK_ALARM_PRIO, Task_Alarm, TASK_ALARM_STK_SIZ
E, TASK_ALARM_PRIO, \"Task_Alarm\",0, 0, 0 },
{ TASK_RS485_PRIO, Task_RS485, TASK_RS485_STK_SIZ
E, TASK_RS485_PRIO, \"Task_RS485\", 0, 0, 0 },
{ TASK_WDI_PRIO, Task_Wdi, TASK_WDI_STK_SIZE, TASK_WDI_PRIO, \"Task_Wdi\", 0, 0, 0 },
{ 0 }
};
void CreatTask(void)
{
//創(chuàng)建系統(tǒng)時鐘任務
created_task = _task_create(0, TASK_RTC_PRIO, 0);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建USB傳輸任務
created_task = _task_create(0, TASK_USB_PRIO, 0);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建看門狗任務
created_task=_task_create_at(0,TASK_WDI_PRIO,0,Task_Wdi_St
k,TASK_WDI_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建GPRS傳輸任務
created_task=_task_create_at(0,TASK_GPRS_PRIO,0,Task_Gprs_Stk,TASK_GPRS_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建以太網(wǎng)傳輸任務
created_task = _task_create(0, TASK_ETH_PRIO, 0);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建應用層發(fā)送任務
created_task = _task_create_at(0, TASK_APPSENT_PRIO, 0,Task_AppSent_Stk,TASK_APPSENT_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建應用層接收任務
created_task = _task_create_at(0, TASK_APPRECV_PRIO, 0,Task_AppRecv_Stk,TASK_APPRECV_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建應用層處理任務
created_task = _task_create_at(0, TASK_APPPROCESS_PRIO,0,Task_AppProcess_Stk,TASK_APPPROCESS_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建告警傳輸任務
created_task = _task_create_at(0, TASK_ALARM_PRIO, 0,Task_Alarm_Stk,TASK_ALARM_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
//創(chuàng)建Rs-485接口抄表任務
created_task = _task_create_at(0,TASK_RS485_PRIO,0,Task_Rs485_Stk,TASK_RS485_STK_SIZE);
if (created_task == MQX_NULL_TASK_ID) {
printf(\"Error: task creation failed\n\");
}
}
3 結束語
文章介紹了國網(wǎng)II型集中器的軟件、硬件設計并根據(jù)行業(yè)規(guī)范的應用層通訊協(xié)議與服務器進行TCP/IP通訊及短信息通訊;基于485技術,實現(xiàn)對192塊電表的電能示值、電壓、電流等基本數(shù)據(jù)的采集及數(shù)據(jù)凍結功能;現(xiàn)場運行狀態(tài)監(jiān)測功能異常事件分析、存儲,告警并安要求主動上送;支持一類、二類數(shù)據(jù)的任務自動上報功能以及三類數(shù)據(jù)自動上報功能;支持主站對集中器進行遠程在線軟件下載升級,并支持斷點續(xù)傳方式。符合國家電網(wǎng)用電信息采集系統(tǒng)中II型集中器的要求。
參考文獻
[1]Q/GDW 1374.2-2013.電力用戶用電信息采集系統(tǒng)技術規(guī)范[S].
[2]Q/GDW 1376.1-2013.電力用戶用電信息采集系統(tǒng)通信協(xié)議[S].
[3]Q/GDW 1375.2-2013.電力用戶用電信息采集系統(tǒng)型式規(guī)范[S].
[4]freescale,MK60DN512數(shù)據(jù)參考手冊[Z].
[5]freescale,MQX系統(tǒng)參考手冊[Z].
[6]上海炬泉.單相電能計量IC ATT7053參考手冊[Z].
[7]范巧成.計量基礎知識[M].中國計量出版社,2007,3.
作者簡介:楊江(1980-),男,浙江杭州人,工程師,從事電能計量檢測技術及智能儀表研究。