SCADA系統(tǒng)中交流采樣器設(shè)計
LP2407A集成了CAN控制器,擴展一片CAN收發(fā)器就構(gòu)成了CAN接口電路。收發(fā)器選用Philips公司的P82C250,具體電路如圖5。
P82C250是5V電源供電,與LF2407A連接要加電平轉(zhuǎn)移電路。R301、D301完成3.3V電平向5V電平轉(zhuǎn)移;R302、R303完成5V電平向3.3V電平轉(zhuǎn)移。
其他如串口擴展電路、SRAM擴展電路、液晶擴展電路等為通用電路.在此不做闡述。
2軟件設(shè)計
2.1嵌入式軟件設(shè)計思想
借鑒Windows編程中基于消息驅(qū)動的思想,在嵌入式軟件中引入基于消息的處理方泫。嵌入式系統(tǒng)的消息可以分為:鍵盤輸入命令、系統(tǒng)接口電路產(chǎn)生的狀態(tài)信息(如報警、越限等)以及上位機命令。消息的接收采用中斷方式,確保消息可靠及時的接收;時間要求非??量痰南?,如電機保護,在中斷直接處理;其他消息在主程序中對消息進行解析執(zhí)行。程序設(shè)計思想可以用圖6表示。
本系統(tǒng)通過CAN總線接收上位機的命令(接收消息)。CAN接收方式采用中斷方式.當(dāng)上位機下達命令時,該裝置通過中斷及時接收.實時任務(wù)直接在中斷程序中完成,滿足系統(tǒng)的實時性要求;非實時任務(wù)則將該命令存入消息(或命令)緩沖區(qū),等待在主函數(shù)中查詢處理。
2.2程序整體框圖
整個程序由主函數(shù)、功能函數(shù)、CAN通信中斷函數(shù)、DSP的定時器T1的周期中斷(采樣中斷)函數(shù)構(gòu)成。
DSP的CAN控制器接收中斷采用DSP的內(nèi)核中斷1;定時器T1的周期中斷采用DSP的內(nèi)核中斷2,用來定期觸發(fā)MAXl25進行A/D轉(zhuǎn)換。關(guān)于LF2407A的中斷編程可參見文獻[1~2]。
主函數(shù)main()的流程如圖7所示。
主函數(shù)先初始化系統(tǒng),啟動實時采樣,實時采樣一直運行并始終保持有多個周期的波形數(shù)據(jù),供故障錄波后觀察故障點前后幾個周期的波形,以便分析故障原因。然后進入消息處理的循環(huán)程序。從流程圖可以看到,程序先檢查消息(或命令)緩沖區(qū),若有消息/命令,則調(diào)用相應(yīng)功能函數(shù)執(zhí)行命令,判斷是否到計算周期以確定是否調(diào)用計算函數(shù),然后回到消息處理入口;若沒有消息等待處理,則判斷100ms計算周期是否到(計算周期可以調(diào)整)。若到,則計算一遍電參數(shù),判斷是否有越限情況。若有越限則通知上位機,然后返回到消息處理入口,重復(fù)開始消息(或命令)的解析執(zhí)行。消息接收程序以中斷方式在后臺運行。
2.3功能函數(shù)設(shè)計
功能函數(shù)由主函數(shù)main()調(diào)用,下面介紹幾種主要的功能函數(shù)。限于篇幅,函數(shù)沒有展開,只列出函數(shù)名。
計算電參數(shù)的函數(shù):void Calc();
向上位機傳送電參數(shù)值的函數(shù):unsigned int Send_AcqData();
執(zhí)行參數(shù)設(shè)定命令的函數(shù):unsigned int Set_Parameter();
向上位機傳送報警數(shù)據(jù)的函數(shù):unsigned Int Send_AlarmnData();
向上位機傳送錄波數(shù)據(jù)的函數(shù):unsigned Int Send_WaveRecordData();
本交流采樣系統(tǒng)已運行在鐵路水電遠動系統(tǒng)的FTU(Field Terminal Unit)中,與上位機通信的應(yīng)用層協(xié)議采用DeviceNet協(xié)議。實際證明該系統(tǒng)功能正常、性能穩(wěn)定。
評論