国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Qt的探測(cè)器溫控上位機(jī)軟件設(shè)計(jì)

2022-01-25 03:29孫潔茹陳曉寧潘瑞娟
關(guān)鍵詞:溫控上位串口

孫潔茹,陳曉寧,王 健,潘瑞娟

(安徽大學(xué) 電氣工程與自動(dòng)化學(xué)院,安徽 合肥 230601)

隨著科技的發(fā)展,遠(yuǎn)程監(jiān)控在各行各業(yè)均有廣泛應(yīng)用[1].通過(guò)上位機(jī)軟件使探測(cè)器實(shí)現(xiàn)數(shù)據(jù)采集和工作模式控制,具有重要意義[2].Qt是 Qt Company開(kāi)發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架[3-5].文獻(xiàn)[6]基于Qt設(shè)計(jì)了上位機(jī)軟件,實(shí)現(xiàn)了與下位機(jī)的數(shù)據(jù)傳輸,但不能滿足大量數(shù)據(jù)的存儲(chǔ)及分類管理.文獻(xiàn)[7]基于Qt和WiFi設(shè)計(jì)了一種室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng),但未實(shí)現(xiàn)下位機(jī)的控制.以上研究結(jié)果表明,目前探測(cè)器設(shè)備存在數(shù)據(jù)存儲(chǔ)不便、控制距離不遠(yuǎn)、數(shù)據(jù)顯示不直觀等問(wèn)題.鑒于此,筆者擬設(shè)計(jì)基于Qt的探測(cè)器溫控上位機(jī)軟件,利用RS232串口采集探測(cè)器溫度、電流等數(shù)據(jù),通過(guò)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行分類存儲(chǔ)及管理,且將這些數(shù)據(jù)直觀顯示于終端設(shè)備.

1 探測(cè)器溫控系統(tǒng)的工作原理

探測(cè)器溫控系統(tǒng)由探測(cè)器和上位機(jī)組成.探測(cè)器通過(guò)上位機(jī)軟件獲得相關(guān)設(shè)備數(shù)據(jù)并控制其工作模式.通過(guò)RS-232串口將數(shù)據(jù)傳至上位機(jī)軟件,上位機(jī)軟件實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、顯示.探測(cè)器溫控系統(tǒng)的工作原理如圖1所示.

圖1 探測(cè)器溫控系統(tǒng)的工作原理

2 上位機(jī)軟件的設(shè)計(jì)要求

為實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)和設(shè)備的自動(dòng)控制,需設(shè)計(jì)上位機(jī)軟件,以實(shí)現(xiàn)上位機(jī)與下位機(jī)間的通信[8].上位機(jī)軟件的設(shè)計(jì)要求如下:

(1)通過(guò)串口實(shí)現(xiàn)數(shù)據(jù)的接收、發(fā)送.

(2)通過(guò)采集到的數(shù)據(jù)計(jì)算得到電壓、電流及溫度值.

(3)根據(jù)采集的數(shù)據(jù)實(shí)現(xiàn)反饋控制.

(4)定義相關(guān)計(jì)數(shù),記錄串口通信過(guò)程.

(5)繪制電壓、電流實(shí)時(shí)動(dòng)態(tài)曲線,且在界面顯示探測(cè)器及熱沉的實(shí)際溫度.

(6)存儲(chǔ)遙測(cè)數(shù)據(jù)、通訊指令數(shù)據(jù)、通訊日志數(shù)據(jù).

3 上位機(jī)軟件結(jié)構(gòu)

筆者以Qt為開(kāi)發(fā)平臺(tái)設(shè)計(jì)上位機(jī)軟件.通過(guò)XML的Qt Designer能拖拽控件,隨時(shí)查看界面效果,減小代碼量,縮短開(kāi)發(fā)周期[9].上位機(jī)軟件結(jié)構(gòu)如圖2所示.

圖2 上位機(jī)軟件結(jié)構(gòu)

4 上位機(jī)軟件功能模塊

4.1 串口通信模塊

上位機(jī)軟件通過(guò)RS-232串口與探測(cè)器通信,以保證數(shù)據(jù)穩(wěn)定傳輸[10].通過(guò)串口接收工控機(jī)采集的探測(cè)器數(shù)據(jù).上位機(jī)根據(jù)通信協(xié)議解析接收的數(shù)據(jù)后,再進(jìn)行相應(yīng)的處理得到實(shí)際數(shù)據(jù).

4.1.1 串口參數(shù)設(shè)置

使用Qt自帶的QSerialPort類實(shí)現(xiàn)與下位機(jī)的通信,通過(guò)該類可訪問(wèn)串口[11].在pro文件中添加Qt+=serialport語(yǔ)句,創(chuàng)建QSerialPort 類對(duì)象,查找可用串口,添加串口名稱,然后對(duì)波特率、數(shù)據(jù)位、檢驗(yàn)位、停止位等參數(shù)進(jìn)行設(shè)置.

4.1.2 數(shù)據(jù)處理

從緩存區(qū)獲取數(shù)據(jù)幀,轉(zhuǎn)化為16進(jìn)制源碼并顯示于主界面.為了保證不同數(shù)據(jù)通信協(xié)議的一致性,在通信協(xié)議中添加命令碼作為數(shù)據(jù)判斷位.當(dāng)命令碼為50H時(shí),有效數(shù)據(jù)位為2路探測(cè)器電壓.當(dāng)命令碼為51H時(shí),有效數(shù)據(jù)位為4路探測(cè)器熱沉電壓.當(dāng)命令碼為52H時(shí),有效數(shù)據(jù)位為2路探測(cè)器電流.通信協(xié)議如表1所示.

表1 通信協(xié)議

將16進(jìn)制源數(shù)據(jù)代入下式計(jì)算模擬輸入電壓

(1)

其中:DOUT為16進(jìn)制源數(shù)據(jù),VREF為參考電壓,N為分辨率.

對(duì)溫度進(jìn)行采樣的電路如圖3所示.熱敏電阻R0串聯(lián)精密電阻R1是為了對(duì)基準(zhǔn)電壓分壓.

圖3 對(duì)溫度進(jìn)行采樣的電路

將計(jì)算出的模擬輸入電壓代入下式計(jì)算熱敏電阻

(2)

將R0代入下式計(jì)算探測(cè)器的溫度

(3)

其中:a=-4.148,b=3 770.615,c=-118 278.184.

將R0代入下式,計(jì)算得到兩個(gè)值,其中較大的值為探測(cè)器熱沉溫度

(4)

其中:a=-0.000 000 653,b=0.003 862 314,c=1-R0/1 000.

4.2 控制模塊

每條指令發(fā)送前彈出確認(rèn)窗口,避免誤操作.下位機(jī)接收指令后執(zhí)行相應(yīng)控制,控制成功則返回信號(hào)至上位機(jī).若10 s內(nèi)未收到返回信號(hào)則重新下發(fā)指令,直到收到返回信號(hào).發(fā)送指令后,在發(fā)送文本框內(nèi)顯示當(dāng)前發(fā)出的指令.

(1)手動(dòng)控制.用戶根據(jù)系統(tǒng)運(yùn)行狀態(tài)手動(dòng)選擇指令,控制數(shù)據(jù)內(nèi)容的采集.手動(dòng)控制流程如圖4(a)所示.

(2)自動(dòng)控制.無(wú)人值守狀況下,選擇自動(dòng)控制模式.設(shè)置時(shí)間間隔,發(fā)送采集指令.根據(jù)采集到的電壓電流值判斷系統(tǒng)運(yùn)行狀態(tài).當(dāng)檢測(cè)到溫度或驅(qū)動(dòng)電流異常時(shí)發(fā)送控制指令,實(shí)現(xiàn)制冷器開(kāi)關(guān)及驅(qū)動(dòng)保護(hù)的自動(dòng)控制.自動(dòng)控制流程如圖4(b)所示.

圖4 控制流程圖

上位機(jī)通過(guò)串口將控制指令發(fā)給探測(cè)器實(shí)現(xiàn)控制.采用主從結(jié)構(gòu),主機(jī)發(fā)送一幀,從機(jī)應(yīng)答一幀.在界面中放入combox控件,按協(xié)議在下拉列表中添加對(duì)應(yīng)的指令.工控機(jī)收到指令后,根據(jù)命令碼解析對(duì)應(yīng)的信息字符,根據(jù)信息字符執(zhí)行相應(yīng)動(dòng)作,應(yīng)答上位機(jī).命令碼對(duì)應(yīng)的操作如表2所示.

表2 命令碼對(duì)應(yīng)的操作

4.3 通信計(jì)數(shù)模塊

通過(guò)相關(guān)計(jì)數(shù)可對(duì)通信狀態(tài)進(jìn)行顯示.若出現(xiàn)異常計(jì)數(shù)導(dǎo)致通信中斷,則觸發(fā)復(fù)位信號(hào)實(shí)現(xiàn)系統(tǒng)復(fù)位.通信計(jì)數(shù)模塊中的計(jì)數(shù)操作如下:

(1)數(shù)據(jù)接收.從總線上收到字符,無(wú)論正確與否,該計(jì)數(shù)均加1.

(2)數(shù)據(jù)發(fā)送.接收正確時(shí),下位機(jī)根據(jù)協(xié)議完成應(yīng)答,每發(fā)送1幀,該計(jì)數(shù)加1.

(3)幀頭錯(cuò).接收幀第1個(gè)字節(jié)不是72H時(shí),則該計(jì)數(shù)加1.

(4)接收超時(shí).接收時(shí),幀中的兩個(gè)字節(jié)的間隔大于1 ms時(shí),則該計(jì)數(shù)加1.

(5)接收校驗(yàn)位錯(cuò)誤.當(dāng)奇偶校驗(yàn)不是奇校驗(yàn)時(shí),則該計(jì)數(shù)加1.

(6)累加和錯(cuò)誤.當(dāng)實(shí)際累加和與顯示的累加和不一致時(shí),則該計(jì)數(shù)加1.

(7)命令碼錯(cuò)誤.當(dāng)實(shí)際命令碼與定義的命令碼不一致時(shí),則該計(jì)數(shù)加1.

4.4 數(shù)據(jù)顯示模塊

數(shù)據(jù)顯示模塊是上位機(jī)的重要組成部分,能實(shí)現(xiàn)溫度、電流實(shí)時(shí)動(dòng)態(tài)曲線繪制及顯示.

(1)數(shù)據(jù)動(dòng)態(tài)曲線繪制.使用QCustomPlot控件[12],記錄文檔.為避免占據(jù)大量空間,將動(dòng)態(tài)圖放在子窗口顯示.以時(shí)間為橫軸、電流或溫度為縱軸,使用addGraph()函數(shù)添加圖層,使用addData()函數(shù)添加數(shù)據(jù)曲線.

(2)溫度及電流實(shí)時(shí)顯示.使用Lcd Number控件,將計(jì)算出的溫度及電流實(shí)時(shí)顯示在主窗口.通過(guò)直觀顯示的圖像及數(shù)字,用戶可隨時(shí)查看探測(cè)器工作狀態(tài)、掌握探測(cè)器運(yùn)行情況,若有異常能及時(shí)處理.

4.5 數(shù)據(jù)存儲(chǔ)與導(dǎo)出模塊

數(shù)據(jù)存儲(chǔ)與導(dǎo)出模塊能實(shí)現(xiàn)遙測(cè)數(shù)據(jù)、通訊指令、通訊日志的存儲(chǔ)與導(dǎo)出.數(shù)據(jù)使用體積小、效率高、簡(jiǎn)單易用的Mysql數(shù)據(jù)庫(kù)[13]進(jìn)行管理.首先創(chuàng)建一個(gè)QsqlDatabase對(duì)象,通過(guò)該對(duì)象的setHostName,setPort,setDatabaseName,setUserName,setPassword設(shè)置與數(shù)據(jù)庫(kù)連接有關(guān)的參數(shù),然后調(diào)用open連接數(shù)據(jù)庫(kù).

4.5.1 數(shù)據(jù)存儲(chǔ)

(1)遙測(cè)數(shù)據(jù)存儲(chǔ).遙測(cè)數(shù)據(jù)為探測(cè)器傳至上位機(jī)的數(shù)據(jù),包括通道電流、溫度參數(shù).

(2)通訊指令存儲(chǔ).通訊指令為上位機(jī)發(fā)給探測(cè)器的控制指令,包括通道開(kāi)關(guān)的狀態(tài)、驅(qū)動(dòng)輸出開(kāi)關(guān)的狀態(tài)、恒流輸出等信息.

(3)通訊日志存儲(chǔ).通訊日志為通信過(guò)程中異常的相關(guān)計(jì)數(shù)信息,用于分析系統(tǒng)的運(yùn)行.通訊日志表中的字段默認(rèn)值為0.

數(shù)據(jù)存儲(chǔ)流程如圖5所示.

圖5 數(shù)據(jù)存儲(chǔ)流程圖

4.5.2 數(shù)據(jù)導(dǎo)出

為保證上位機(jī)軟件界面的簡(jiǎn)潔、美觀,將數(shù)據(jù)導(dǎo)出設(shè)置在二級(jí)界面.通過(guò)combox下拉串口選擇數(shù)據(jù)內(nèi)容、時(shí)間及導(dǎo)出路徑[14].通過(guò)TableView控件實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)的預(yù)覽功能.對(duì)查詢數(shù)據(jù)進(jìn)行緩存處理,查詢?cè)摂?shù)據(jù)時(shí)只要直接從緩存中讀取,不需查詢數(shù)據(jù)庫(kù),提高了上位機(jī)軟件性能[15].數(shù)據(jù)導(dǎo)出流程如圖6所示.

圖6 數(shù)據(jù)導(dǎo)出流程圖

5 測(cè)試結(jié)果

上位機(jī)主界面如圖7所示.打開(kāi)界面,設(shè)置串口參數(shù),與下位機(jī)建立通信連接,顯示采集的數(shù)據(jù).在指令選擇框選擇待發(fā)送指令.計(jì)數(shù)顯示窗口實(shí)時(shí)顯示數(shù)據(jù)信息.數(shù)據(jù)接收及發(fā)送的源碼在文本框顯示.

圖7 上位機(jī)主界面

上位機(jī)記錄的數(shù)據(jù)及設(shè)備實(shí)際測(cè)量的數(shù)據(jù)分別如表3~4所示.

表3 上位機(jī)記錄的數(shù)據(jù)

表4 設(shè)備實(shí)際測(cè)量的數(shù)據(jù)

根據(jù)表3~4的數(shù)據(jù),計(jì)算得到VTsink1,VTsink2,VTsink3,VTsink4,VT1,VT2的記錄數(shù)據(jù)誤差范圍為[-1%,+1%],I1,I2的記錄數(shù)據(jù)誤差范圍為[-3%,+3%].上述結(jié)果表明,通過(guò)上位機(jī)軟件上位機(jī)能與下位機(jī)穩(wěn)定地傳輸數(shù)據(jù),探測(cè)器能正常運(yùn)行.

6 結(jié)束語(yǔ)

筆者以Qt為開(kāi)發(fā)平臺(tái),設(shè)計(jì)了探測(cè)器溫控上位機(jī)軟件.實(shí)現(xiàn)了探測(cè)器溫度、熱沉溫度、驅(qū)動(dòng)電流等數(shù)據(jù)采集、處理、存儲(chǔ)、顯示的遠(yuǎn)程控制.測(cè)試結(jié)果表明:上位機(jī)軟件運(yùn)行穩(wěn)定、操作簡(jiǎn)單、界面友好,能滿足測(cè)、記、分析及無(wú)人值守一體化要求.使用該上位機(jī)軟件的探測(cè)器溫控系統(tǒng)既能保障探測(cè)器正常運(yùn)行又能降低人工成本,具有應(yīng)用推廣價(jià)值.

猜你喜歡
溫控上位串口
考慮用戶滿意度的溫控負(fù)荷能效綜合指標(biāo)模型和調(diào)峰策略
基于小型化的功放單元和溫控箱結(jié)構(gòu)及散熱設(shè)計(jì)
基于NPORT的地面綜合氣象觀測(cè)系統(tǒng)通信測(cè)試方法及故障處理
基于API函數(shù)庫(kù)實(shí)現(xiàn)串口數(shù)據(jù)通信的分析與設(shè)計(jì)
基于EM9000工控板高性能雙串口通信模型設(shè)計(jì)與實(shí)現(xiàn)
特斯拉 風(fēng)云之老阿姨上位
船舶電子設(shè)備串口數(shù)據(jù)的軟件共享方法
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測(cè)管理系統(tǒng)
客車發(fā)動(dòng)機(jī)艙溫控電子百葉窗系統(tǒng)設(shè)計(jì)
溫控旋轉(zhuǎn)型MINI卷發(fā)器
郎溪县| 永嘉县| 台中市| 湟中县| 宁远县| 凉山| 平阳县| 洪雅县| 图木舒克市| 伊宁市| 洛阳市| 防城港市| 本溪| 兰坪| 侯马市| 建昌县| 夏津县| 石首市| 洞口县| 沁阳市| 固安县| 崇左市| 保德县| 合山市| 垣曲县| 昭通市| 临朐县| 昂仁县| 阳信县| 额敏县| 木兰县| 平远县| 伽师县| 望江县| 云梦县| 宁远县| 海丰县| 永城市| 休宁县| 轮台县| 新化县|