Modbus是Modicon公司發(fā)明的,且是全球第一個真正用于工業(yè)現(xiàn)場的總線的串行通信協(xié)議,因為其有著使用非常方便、靈活, 其開放性而被廣泛應(yīng)用,現(xiàn)已經(jīng)成為分布式控制網(wǎng)絡(luò)協(xié)議的一種[1]。Microsoft Visual C++提供豐富的API函數(shù),并且具有強(qiáng)大的數(shù)據(jù)庫訪問功能,可以方便地實現(xiàn)上位機(jī)(主站)與單片機(jī)(從站)之間的通訊與數(shù)據(jù)處理,從而完成對相關(guān)參數(shù)的實時監(jiān)控。由于工廠智能化的發(fā)展需求,以高性能嵌人式微處理器為核心構(gòu)建新一代的設(shè)備數(shù)據(jù)采集監(jiān)測系統(tǒng)是一個重要的發(fā)展方向[2,3]。
本文針對小電機(jī)或小家電在做壽命測試時,對其啟動、工作、待機(jī)電流進(jìn)行測量與監(jiān)控做了一套控制系統(tǒng),在VC環(huán)境下設(shè)計了一款上位機(jī)作為主站,用來人機(jī)交互、實時監(jiān)控,與保存數(shù)據(jù)。以STM32107嵌人式微處理器作為從站,實時采集與處理被監(jiān)控對象的電流,并根據(jù)上位機(jī)的指令進(jìn)行相關(guān)保護(hù)動作。
圖1是面向工廠自動化電流檢測設(shè)備控制系統(tǒng)總體結(jié)構(gòu)框圖,在本系統(tǒng)方案中,以自主設(shè)計的STM32嵌入式控制器作為從站,實現(xiàn)24路電流信號的采集與處理,與24路繼電器的控制,將交流信號與直流信號都處理為有效平均值之后再通過Modbus通訊協(xié)議傳輸給主站,主站是在VC環(huán)境下設(shè)計了一款后臺控制軟件,用來實現(xiàn)人機(jī)交互、數(shù)據(jù)的實時監(jiān)控與保存,并將相應(yīng)的檢測閥值,通過總線發(fā)給從站,從站根據(jù)閥值自主判斷后進(jìn)行相應(yīng)的保護(hù)措施。
圖1 電流檢測控制系統(tǒng)總體結(jié)構(gòu)框圖
ARM嵌入式控制器主控芯片采用意法半導(dǎo)體推出的基于Cortex?-M3內(nèi)核的高性能32位微處理器STM32107,它工作在72MHz頻率下的運算速度可達(dá)1.25DMIPS;在STM32107上集成了豐富的外圍功能模塊,專門針對工業(yè)系統(tǒng)控制、通信領(lǐng)域的應(yīng)用而設(shè)計。該ARM嵌入式控制器集成了豐富的外圍接口,包括RS485、CAN總線、AD/DA接口,SPI接口等,圖2為A RM 嵌人式控制器結(jié)構(gòu)圖。
在ARM嵌人式控制器,因為STM32107只有16路AD采集端口,為了支持更多路的電流采集,控制器又外擴(kuò)了8路AD采集端口,通過SPI總線來實現(xiàn)與主控芯片的數(shù)據(jù)傳輸。其中24電流采集采用Allegro公司的霍爾感應(yīng)原理的電流檢測專用芯片ACS712ELCTR,有著80KHZ帶寬,1.2mΩ內(nèi)部電阻,2100V最小絕緣電壓,量程±5至±30A且電路簡單易于實現(xiàn),交直流均可檢測,電流采集詳細(xì)電路如圖3所示。
圖2 ARM嵌人式控制器結(jié)構(gòu)
圖3 電流采集的電路
Modbus協(xié)議包括ASCII、RTU、TCP等,前兩種支持RS232、RS485,TCP支持以太網(wǎng)設(shè)備。因為工業(yè)用的電壓,電流,壓力等傳感器多為串口通信,且通過Modbus協(xié)議不同廠商生產(chǎn)的控制設(shè)備或儀表等可連成工業(yè)監(jiān)測網(wǎng)絡(luò)[4,5],考慮到系統(tǒng)的兼容性,所以我們的控制系統(tǒng)依然選用串口通訊,該系統(tǒng)要求的電流實時顯示,所以對通訊速率與傳輸效率要求比較高,又因為是工業(yè)場合,遠(yuǎn)程控制,所以干擾比較大,通過對比ASCII、RTU,2種模式的優(yōu)缺點如表1所示,RS232、RS485 2種接口的差別對比如表2所示。我們工作模式選擇RTU,接口選擇RS485。
表1 ASCII與RTU對比
表2 RS-232與RS-485對比
本控制系統(tǒng)的上位機(jī)開發(fā)是在Visual C++的軟件平臺上完成的,從人機(jī)交互界面中讀取每個測試對象的報警或保護(hù)閥值(該參數(shù)可以自動保存,在測試對象沒有改變時,無需修改),將相關(guān)指令發(fā)送給每一個從站,并從從站中讀取相應(yīng)的電流指令,并做報警與數(shù)據(jù)保存處理。保存間隔可人為修改,每天新建文件并自動保存,無需擔(dān)心數(shù)據(jù)溢出問題,具體程序流程如圖4所示。以一個測試臺的數(shù)據(jù)為例如圖5所示,當(dāng)電流不在閥值范圍內(nèi)時且到達(dá)延時報警時間時,對應(yīng)測試工位綠燈將變?yōu)榧t燈,提示測試人員該臺設(shè)備有故障,報警必須人為消除之后報警才會消失。即使被測設(shè)備運行中出現(xiàn)故障,之后又恢復(fù)正常依然可以檢測到。閥值設(shè)置與報警延時設(shè)置與數(shù)據(jù)保存間隔設(shè)置如圖6所示。
圖4 主站程序流程圖
圖5 數(shù)據(jù)采集界面
【】【】
圖6 電流閥值報警界面
本文基于Modbus協(xié)議開發(fā)了一款實時電流監(jiān)控系統(tǒng),主站在VC環(huán)境完成,主要用來人機(jī)交互、實時電流監(jiān)控,閥值讀取,與保存數(shù)據(jù)。自主設(shè)計一款以STM32107為MUC的從站控制器,實時24路電流的實時采集與數(shù)據(jù)處理,并根據(jù)閥值判斷對被測對象進(jìn)行相應(yīng)保護(hù)動作。本文設(shè)計電流檢測系統(tǒng),經(jīng)實驗裝置檢驗,可以滿足測試設(shè)備的實時監(jiān)控要求,應(yīng)用前景十分廣闊。
參考文獻(xiàn):
[1]彭道剛,張浩,李輝,周凱.基于Modbus協(xié)議的ARM嵌人式監(jiān)測平臺設(shè)計與實現(xiàn)[J].電力自動化設(shè)備,2009,29(1):115-120.
[2]王建鋒,張浩,彭道剛.基于RAM的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)研究與設(shè)計[J].華東電力,2008,36(2):139-142.
[3]周凱,張浩,王曉平,等.基于PowerPC的嵌入式遠(yuǎn)程數(shù)據(jù)采集與檢測系統(tǒng)設(shè)計[J].機(jī)電一體化,2007,13(3):30-33.
[4]鮑可進(jìn),吳健勇.基于嵌入式Web Server的電力系統(tǒng)遠(yuǎn)程監(jiān)控的實現(xiàn)[J].計算機(jī)工程與設(shè)計,2007,28(13):3178-3181.
[5]李娟,張波,丘東元.電能質(zhì)量監(jiān)測系統(tǒng)中基于Modbus RTU的多機(jī)通信[J].電力自動化設(shè)備,2007,27(1).93-96.