基于A(yíng)RM9和GPRS的實(shí)時(shí)電力負控管理系統的設計
2.2 軟件設計
2.2.1 負控管理終端的軟件設計
在負控管理終端的整體流程是終端上電后,初始化串口,啟動(dòng)撥號,建立TCP連接成功后,主站向負控管理終端發(fā)送登陸幀,負控管理終端監聽(tīng)到登陸幀后(主站和負控管理終端建立通信前,主站要知道負控管理終端中GPRS模塊的SIM卡號),發(fā)出確認幀,主站與負控管理終端就可以開(kāi)始通信。負控管理終端接收到數據時(shí),先判斷是不是主站發(fā)送過(guò)來(lái)的控制命令,如果是,將該命令透明傳輸給電能表,電能表通過(guò)解析判斷其要是采集數據命令,就將相應的電能數據返回給負控管理終端,負控管理終端收到數據后通過(guò)TCP發(fā)送給主站;如果不是控制命令,說(shuō)明是電能表的返回數據,同樣通過(guò)TCP協(xié)議發(fā)送給主站。在沒(méi)有任何命令時(shí),負控管理終端進(jìn)入低功耗模式,間隔一定時(shí)間發(fā)送心跳包,以確定它與主站沒(méi)有斷開(kāi)連接。每隔15 min,負控管理終端會(huì )定時(shí)采集電能數據,并將其存儲在NANDFLASH中,等待主站隨時(shí)調用。此外,當負控管理終端處于異常狀態(tài),或者發(fā)生一些特殊事件時(shí),比如事故報警信息,負控管理終端通過(guò)遙信控制主動(dòng)上報給主站,以做出適當處理。
負控管理終端的應用軟件主要包括數據采集及處理程序和網(wǎng)絡(luò )通信程序。數據采集及處理程序完成電能表數據采集,并進(jìn)行處理。網(wǎng)絡(luò )通信程序完成將處理后的數據傳送到主站。另外,網(wǎng)絡(luò )通信程序還要發(fā)送主站的控制指令。
該部分的軟件編寫(xiě)采用自上而下的設計思路,以模塊化設計為原則,采用C語(yǔ)言編程,通過(guò)建立數據采集與處理線(xiàn)程、GPRS網(wǎng)絡(luò )通信線(xiàn)程、按鍵控制線(xiàn)程,使其相互協(xié)調地運行。
結合上面給出的設計思路,下面重點(diǎn)介紹如何利用多進(jìn)程技術(shù)和管道技術(shù)來(lái)實(shí)現抄表和發(fā)送數據的功能。
在進(jìn)行網(wǎng)絡(luò )通信之前,先設定網(wǎng)絡(luò )端口最大允許接入的客戶(hù)端數、父進(jìn)程和子進(jìn)程設定的2個(gè)狀態(tài)變量。
進(jìn)入主函數,創(chuàng )建管道和子進(jìn)程,分別啟動(dòng)父進(jìn)程和子進(jìn)程,開(kāi)始數據采集和網(wǎng)絡(luò )傳輸,function_farther()函數和function_child()函數分別為父進(jìn)程和子進(jìn)程的主函數。
tcp/ip相關(guān)文章:tcp/ip是什么
電能表相關(guān)文章:電能表原理
評論