基于ModBus的流量計(jì)設(shè)計(jì)
本設(shè)計(jì)針對一些小型流量的實(shí)際應(yīng)用需求,適用于家用或?qū)W校等公共設(shè)施?;赟TC10F08XE單片機(jī)的流量計(jì),可以通過ModBus總線協(xié)議與處理器進(jìn)行通信,實(shí)時(shí)查詢流速、流量,啟動(dòng)和停止流量計(jì)工作,大大的提高了主機(jī)工作效率,在實(shí)際應(yīng)用中穩(wěn)定可靠。
引言
現(xiàn)在的工業(yè)生產(chǎn),可以說離開水資源是無法進(jìn)行的傳統(tǒng)的水表只能顯示累計(jì)流量,不能顯示流速,在與處理器數(shù)據(jù)通信方便還存在很大的缺陷。本系統(tǒng)采用 STC 公司生產(chǎn)的 STC10F08XE 單片機(jī)作為主控芯片,通過外部中斷的方式采集傳感器脈沖信號(hào),經(jīng)過程序處理,將流速、累計(jì)流量實(shí)時(shí)顯示在 12864 液晶屏幕上,并且可以通過按鍵設(shè)置每個(gè)流量計(jì)的通信 ID、流速比較閾值、對應(yīng)不同型號(hào)傳感器時(shí)的脈沖系數(shù)。通過 RS-485 模塊與主機(jī)之間進(jìn)行流速、累計(jì)流量的通信,接收主機(jī)的指定指令將累計(jì)流量清零、啟動(dòng)或者停止流量的累計(jì)計(jì)數(shù)。所有重要參數(shù)可以存儲(chǔ)到單片機(jī) EEPROM,掉電不丟失數(shù)據(jù)。
1.系統(tǒng)整體方案設(shè)計(jì)
本設(shè)計(jì)主要由電源模塊、STC10F08XE 單片機(jī)***小系統(tǒng)、LWGY9012 型液體渦輪傳感器、JLX12864 液晶顯示模塊、485 通信模塊、繼電器控制模塊等六部分組成。
1.1 系統(tǒng)設(shè)計(jì)原理
STC10F08XE 單片機(jī) 自帶外部中斷功能,可以處理LWGY9012 型渦輪傳感器 的脈沖信號(hào),渦輪傳感器串聯(lián)在管道中,采用 DC24V 供電,輸出 4 ~ 20mA 現(xiàn)場可顯示瞬時(shí)流量和累計(jì)流量。通過手動(dòng)設(shè)置后每個(gè)流量計(jì)從機(jī)都有一個(gè)自己的地址,上位機(jī)通過發(fā)送 ModBus 總線查詢和設(shè)置指令,對應(yīng)地址從機(jī)根據(jù)指令回復(fù)上位機(jī)流量累計(jì)開始停止、流量、流速、或者本機(jī)的累計(jì)流量清零,地址不對的從機(jī)可以收到有關(guān)指令,但是不做任何回復(fù),完成整個(gè)系統(tǒng)的通信查詢、設(shè)置。同時(shí)每個(gè)流量計(jì)可以通過 JLX12864液晶實(shí)時(shí)顯示本機(jī)的所有參數(shù),方便人工直接查看。部分硬件原理圖如圖 1 所示。
1.2 系統(tǒng)總體方案設(shè)計(jì)框圖
流量計(jì)系統(tǒng)結(jié)構(gòu)如圖 2 所示,流量計(jì)系統(tǒng)由電源模塊、傳感器模塊、RS-485 模塊、液晶顯示模塊、按鍵模塊等組成,電源模塊為整個(gè)系統(tǒng)供電,單片機(jī)開機(jī)時(shí),渦輪傳感器檢測流量,并采集按鍵信息,可以對脈沖變量、地址等參數(shù)進(jìn)行設(shè)置,然后通過 12864 液晶實(shí)時(shí)顯示流速、流量等參數(shù)。單片機(jī)通過 RS-485 模塊與主機(jī)(上位機(jī))按照 ModBus 總線協(xié)議進(jìn)行數(shù)據(jù)通信,完成參數(shù)查詢、設(shè)置功能。多個(gè)從機(jī)工作方式一樣,只是地址不同。
2.系統(tǒng)調(diào)試及使用
因?yàn)樵谙到y(tǒng)功能模塊設(shè)計(jì)和實(shí)現(xiàn)部分已經(jīng)對硬件進(jìn)行了詳細(xì)的說明,這里不再贅述,主要介紹軟件調(diào)試部分。
2.1 主程序流程圖
本設(shè)計(jì)系統(tǒng)程序采用模塊化調(diào)試,其中流速流量調(diào)試邏輯運(yùn)算量大,花費(fèi)時(shí)間比較多,在流速調(diào)試時(shí)采用了濾波函數(shù)求平均值的算法。使用上位機(jī)調(diào)試可以免去主機(jī)的硬件焊接和程序編寫,直接發(fā)送查詢指令,提高穩(wěn)定性,方便快捷。主程序流程圖如圖 3 所示。
2.2 流速流量程序調(diào)試
流速 v、累計(jì)流量 Q 檢測計(jì)算和顯示是本設(shè)計(jì)的主要功能,也是需要重點(diǎn)調(diào)試的部分。累計(jì)流量 Q 是通過外部中斷對傳感器脈沖進(jìn)行計(jì)數(shù),然后根據(jù)按鍵設(shè)置的脈沖系數(shù)進(jìn)行計(jì)算和單位換算,以 1 秒為單位時(shí)間計(jì)算一次流量。比如設(shè)置脈沖系數(shù)為 4000 時(shí),脈沖計(jì)數(shù)變量對 4000 取模,脈沖計(jì)數(shù)變量大于 4000 時(shí)累計(jì)流量加 1 升,余數(shù)保留,加入下 1 秒的累計(jì)流量換算。
流速的檢測計(jì)算采用的方法是計(jì)算單位時(shí)間內(nèi)的流量,單位時(shí)間為 1 秒鐘。在定時(shí)器中斷函數(shù)內(nèi)編寫 1 秒鐘時(shí)間標(biāo)志位,當(dāng)標(biāo)志位為 1時(shí),對臨時(shí)流量進(jìn)行記錄后清零,通過程序處理換算后顯示流速單位為升每分鐘。流速計(jì)算公式:
考慮到傳感器脈沖信號(hào)具有波動(dòng)性,從而導(dǎo)致在液晶顯示流速時(shí)發(fā)生數(shù)值跳變,所以在流速計(jì)算時(shí)采用了濾波函數(shù)進(jìn)行處理,這樣可以濾掉明顯超過設(shè)置范圍的不正常流速數(shù)據(jù),同時(shí)對多個(gè)連續(xù)流速值進(jìn)行求和,算出平均流速,這樣可以使數(shù)據(jù)更準(zhǔn)確。計(jì)算平均流速公式:
根據(jù)流速和流量的數(shù)學(xué)關(guān)系,直接對流速進(jìn)行時(shí)間積分就可以計(jì)算出流量,***終通過理論計(jì)算和實(shí)際測試顯示結(jié)果進(jìn)行對比,計(jì)算出誤差,通過硬件和軟件的改進(jìn),保證誤差控制在 2% 以內(nèi)即可。累計(jì)流量檢測計(jì)算公式:
3.流量計(jì)通信協(xié)議
本設(shè)計(jì)與上位機(jī)之間通信遵守 ModBus 總線協(xié)議,考慮到流速和累計(jì)流量的數(shù)值具體情況,定義流速的數(shù)據(jù)長度為兩個(gè)字節(jié),累計(jì)流量的數(shù)據(jù)長度為 4 個(gè)字節(jié),啟動(dòng)和停止的標(biāo)志位占用兩個(gè)字節(jié)。本設(shè)計(jì)用到了 ModBus 總線協(xié)議的讀取和寫入功能。本設(shè)計(jì)通信協(xié)議分為主機(jī)對從機(jī)和從機(jī)對主機(jī)兩部分,具體格式見表 1、表 2。
4.流量計(jì)功能測試與驗(yàn)證
流量計(jì)的通信測試是保證整個(gè)系統(tǒng)能夠合理穩(wěn)定與上位機(jī)之間進(jìn)行數(shù)據(jù)交換的首要工作,所以通信測試是必要的,大部分流量計(jì)一般都采用在線檢定法。在線檢定法要求流量計(jì)工作在實(shí)際工況狀態(tài)下,通過將已在授權(quán)的標(biāo)準(zhǔn)裝置上校難過、具有確定準(zhǔn)確度等級(jí)的標(biāo)準(zhǔn)流量計(jì) ( 或流量標(biāo)準(zhǔn)裝置 ) 串接于流量計(jì)的工作回路中,用被測介質(zhì)對流量計(jì)進(jìn)行檢定的方法,因此,這種方法能夠可靠地確定流量計(jì)的工作性能,能獲得較高的檢定精度。本設(shè)計(jì)的流速測試方法就是通過將本流量計(jì)與標(biāo)準(zhǔn)流量計(jì)串聯(lián)使用后進(jìn)行比較,多次測試不同檔位的流速情況,測試用時(shí) 9 小時(shí),誤差控制在 2% 以內(nèi)。全部能夠正常通信,沒有出現(xiàn)通信不成功結(jié)果。***終測試結(jié)果如二維曲線圖 4 所示。
累加流量的測試在流速測試之后進(jìn)行,根據(jù)流速和流量的數(shù)學(xué)關(guān)系,因?yàn)橹灰魉贉y試合格后,直接對流速進(jìn)行時(shí)間積分就可以計(jì)算出流量,***終通過理論計(jì)算和實(shí)際測試顯示結(jié)果進(jìn)行對比,誤差控制在 2% 以內(nèi)即可,本次測試進(jìn)行了 4 小時(shí),流速保持在 10L/h,然后讀取流量計(jì)的累計(jì)流量。累加流量測試結(jié)果如圖 5 所示。
5.結(jié)語
基于 ModBus 總線的流量計(jì),目前已經(jīng)整機(jī)調(diào)試完成,可以穩(wěn)定工作,已經(jīng)完成 RS-485 通信測試、流速測試和累計(jì)流量測試,然后根據(jù)具體問題進(jìn)行了改進(jìn),一代產(chǎn)品已經(jīng)在工廠實(shí)際應(yīng)用,主機(jī)(上位機(jī))可以通過 ModBus 總線協(xié)議查詢流速流量等參數(shù),并且主機(jī)掛靠多個(gè)從機(jī)流量計(jì)時(shí)可以根據(jù)地質(zhì)不同完成指定從機(jī)的通信和查詢。本設(shè)計(jì)配有 JLX12864 液晶屏幕,可以設(shè)置和實(shí)時(shí)查看有關(guān)參數(shù),更加人性化。
通過測試和改善,可以長期發(fā)展,不局限為單一設(shè)備使用,可以替代家用水表,增加每天限量用水功能,提高大家的節(jié)約意識(shí)。