在科技飛速發(fā)展與智能用電系統(tǒng)的普及的大背景下,高性能高要求的電力參數(shù)系統(tǒng)的相關(guān)研究也備受關(guān)注。計(jì)算機(jī)技術(shù)與無(wú)線傳輸技術(shù)的發(fā)展,為由普通功能型電力參數(shù)向多功能,高精度,高可靠,可移植,無(wú)線抄表的電力參數(shù)監(jiān)測(cè)系統(tǒng)的發(fā)展提供了充足的技術(shù)支持。電力參數(shù)采集技術(shù)不斷發(fā)展,朝著越來(lái)越智能,成本越來(lái)越低的方向發(fā)展。 本次項(xiàng)目,采用QT設(shè)計(jì)一個(gè)電力參數(shù)采集和控制系統(tǒng)。通過(guò)這次學(xué)習(xí),專(zhuān)業(yè)技能和實(shí)驗(yàn)技能,調(diào)試代碼能力得到有效鍛煉,不論對(duì)于知識(shí)系統(tǒng)的鞏固還是對(duì)以后走到未來(lái)崗位上都是起到很好的幫助作用。
- 使用Peacefail電力參數(shù)模塊(實(shí)訓(xùn)將采用軟件模擬的方式來(lái)實(shí)現(xiàn),不需要準(zhǔn)備硬件)。
- 測(cè)量電路電壓,頻率,功率,電能等參數(shù)。
- 發(fā)送至使用由C++的QT creator編制的上位機(jī)程序進(jìn)行數(shù)據(jù)的顯示。
該項(xiàng)目使用的Modbus協(xié)議最初由施耐德公司為其PLC制定的一種通訊協(xié)議。在本項(xiàng)目中,下位機(jī)采用軟件模擬的方式來(lái)代替Peacefail電力參數(shù)模塊來(lái)實(shí)現(xiàn)采集交流電路中的電力參數(shù), 如電壓, 電流, 功率等, 并發(fā)送至使用由C++的QT creator編制的上位機(jī)程序進(jìn)行數(shù)據(jù)的顯示。 (1)交流通讀盒介紹
圖1 交流通讀盒連接圖 1.物理層協(xié)議 - 物理層采用UART 轉(zhuǎn)TTL通信接口。
- 波特率為9600,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)。
2.應(yīng)用層協(xié)議 應(yīng)用層采用 Modbus-RTU 協(xié)議進(jìn)行通信,目前只支持 Ox03(讀保持寄存器)、Ox04(讀輸入寄存器)、Ox06(寫(xiě)單個(gè)寄存器)、0x41(校準(zhǔn))、0x42(電能清零)等功能碼。其中Ox41功能碼僅限于內(nèi)部使用(地址只能是 OxF8),用作出廠校準(zhǔn)和返廠維修等場(chǎng)合,在功能碼之后增加16位的密碼,密碼默認(rèn)為0x3721。 從機(jī)的編址范圍為0x01~OxF7,地址0x00作為廣播地址,從機(jī)不需回復(fù)主機(jī),地址OxF8 作為通用地址,該地址只能用在單從機(jī)的環(huán)境中,可以用作校準(zhǔn)等操作。 3.讀取測(cè)量結(jié)果 主機(jī)讀取測(cè)量結(jié)果的命令格式為(共8個(gè)字節(jié)): 從機(jī)地址+Ox04+寄存器地址高字節(jié)+寄存器地址低字節(jié)+寄存器數(shù)量高字節(jié)+寄存器數(shù)量低字節(jié)+CRC校驗(yàn)高字節(jié)+CRC校驗(yàn)低字節(jié)。 從機(jī)回復(fù)如下的命令格式分為兩種: 正確回復(fù):從機(jī)地址+Ox04+字節(jié)數(shù)+寄存器1數(shù)據(jù)高字節(jié)+寄存器1數(shù)據(jù)低字節(jié)+...+ CRC校驗(yàn)高字節(jié)+CRC校驗(yàn)低字節(jié)。 錯(cuò)誤回復(fù):從機(jī)地址+0x84+異常碼+CRC校驗(yàn)高字節(jié)+CRC校驗(yàn)低字節(jié)。 異常碼解讀如下(下同): ①Ox01,非法功能; ②Ox02,非法地址; ③Ox03,非法數(shù)據(jù); ④0x04,從機(jī)錯(cuò)誤。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xFFFF為報(bào)警,0x0000為不報(bào)警 |
表1 測(cè) 量 結(jié) 果 的 寄 存 器 排 布
表2 功 能 描 述 | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | |
| | | | |
| | | | 有功功率門(mén)限可進(jìn)行設(shè)置,當(dāng)實(shí)測(cè)的有功功率超過(guò)設(shè)定的門(mén)限時(shí),置報(bào)警狀態(tài)。 | | | | | | 單相工頻電網(wǎng)電源經(jīng)過(guò)阻容降壓給主電路供電,TTL輸出通訊接口與 主電路光耦隔離,為無(wú)源輸出,通訊時(shí)需要外部提供5V電源。 | | |
(2)Modbus協(xié)議介紹RS232,RS485通訊指的是兩個(gè)設(shè)備之間通過(guò)485或232串口連接,在串口信道上實(shí)現(xiàn)數(shù)據(jù)通訊,是一種硬件規(guī)范,并未為具體工業(yè)應(yīng)用領(lǐng)域確定或規(guī)范數(shù)據(jù)的意義,是一種通用的底層硬件協(xié)議和簡(jiǎn)單的軟件規(guī)范的結(jié)合。modbus指的是一種工業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)對(duì)話協(xié)議,對(duì)于保持寄存器,輸入寄存器,輸出寄存器,線圈寄存器等不同的寄存器數(shù)值的讀寫(xiě),均定義了專(zhuān)門(mén)的指令和數(shù)據(jù)交換規(guī)范。 表3 兩 種 不 同 的 Modbus 模 式
表4 Modbus RTU 報(bào) 文 格 式 小于3.5個(gè)字符的報(bào)文間隔時(shí)間 | | | | | 小于3.5個(gè)字符的報(bào)文間隔時(shí)間 | | | | |
數(shù)據(jù)幀之間的時(shí)間間隔,防止粘包。在9600波特率下,約4ms。 Modbus是一個(gè)應(yīng)用層協(xié)議,會(huì)根據(jù)你的環(huán)境是網(wǎng)絡(luò)還是串口,會(huì)有一個(gè)區(qū)分。 - 對(duì)于網(wǎng)絡(luò),有Modbus-TCP和Modbus-UDP
- 對(duì)于串口,有Modbus-RTU和Modbus-ASCII
Modbus存儲(chǔ)區(qū):MODBUS涉及到的控制器(或MODBUS 設(shè)備〉存儲(chǔ)區(qū)以O(shè)XXXX、1XXXX、3XXXX、4XXXX標(biāo)識(shí);
表5 Modbus 存 儲(chǔ) 區(qū) 存儲(chǔ)區(qū)標(biāo)識(shí) | | | | | | | | | 00001--0XXXX,XXXX:與設(shè)備有關(guān) | | | | | 10001--1XXXX,XXXX:與設(shè)備有關(guān) | | | | | 30001--3XXXx,XXXX:與設(shè)備有關(guān) | | | | | 40001--4XXXX,XXXX:與設(shè)備有關(guān) |
讀取保存寄存器功能碼: 03H
表6 主 站 詢 問(wèn) 報(bào) 文 格 式
主站詢問(wèn)報(bào)文格式: 功能:讀從站保持寄存器4XXXX值。 注意:報(bào)文中寄存器起始地址00000對(duì)應(yīng)設(shè)備中40001地址,其他順延。 本例:讀11H號(hào)從站保持寄存器值,起始地址=006BH=107,對(duì)應(yīng)地址40108;寄存器數(shù)=0003;末地址=40108+3-1=40110; 因此,本詢問(wèn)報(bào)文功能是:讀17 (11H)號(hào)從站3個(gè)保持寄存器40108—40110的值; 仔細(xì)分析任務(wù)要求,查閱相關(guān)技術(shù)資料;赒T的電力參數(shù)采集系統(tǒng),采用QT需要模擬下位機(jī)發(fā)送的信號(hào),不然QT上位機(jī)沒(méi)有輸入量,因此需要串口調(diào)試軟件模擬下位機(jī)給上位機(jī)發(fā)送信號(hào),需要虛擬串口來(lái)創(chuàng)造串口來(lái)進(jìn)行連接。采用PZEM014-Master上位機(jī)作為我們?cè)O(shè)計(jì)的QT上位機(jī)對(duì)照,驗(yàn)證本項(xiàng)目的可行性及準(zhǔn)確性。當(dāng)然設(shè)計(jì)中需要ModeBusRTU調(diào)試工具,支持系統(tǒng)的正常工作。同時(shí),為了實(shí)現(xiàn)任務(wù)要求中的按鍵操作功能,必不可少的需要加入模擬按鍵、參數(shù)顯示面板。 經(jīng)過(guò)設(shè)計(jì)分析,系統(tǒng)框圖成及上位機(jī)基本頁(yè)面如下圖所示:
 
圖2 系統(tǒng)框圖 圖3 上位機(jī)基本頁(yè)面 Qt Creator 為應(yīng)用程序開(kāi)發(fā)人員提供了一個(gè)跨平臺(tái)的完整集成開(kāi)發(fā)環(huán)境(IDE),可以為多個(gè)臺(tái)式機(jī)、嵌入式和移動(dòng)設(shè)備平臺(tái)(例如Android 和 iOS)創(chuàng)建應(yīng)用程序。它可用于 Linux、macOS 和 Windows 操作系統(tǒng)。此外,用戶可以使用實(shí)驗(yàn)性的 WebAssembly 插件以 Web 格式構(gòu)建應(yīng)用程序,然后在 Web 瀏覽器中運(yùn)行它們。 Qt Creator 包括項(xiàng)目生成向?qū)、高?jí)的 C++ 代碼編輯器、瀏覽文件及類(lèi)的工具、集成了 Qt Designer、圖形化的 GDB 調(diào)試前端,集成qmake 構(gòu)建工具等。 圖4 Qt Creator 4.7.1 (Enterprise)軟件頁(yè)面
QtCreator 主要是為了幫助新 Qt 用戶更快速入門(mén)并運(yùn)行項(xiàng)目,還可提高有經(jīng)驗(yàn)的 Qt 開(kāi)發(fā)人員的工作效率。語(yǔ)法標(biāo)識(shí)和代碼完成功能輸入時(shí)進(jìn)行靜態(tài)代碼檢驗(yàn)以及提示樣式上下文相關(guān)的幫助代碼折疊括號(hào)匹配和括號(hào)選擇模式高級(jí)編輯功能。集成了領(lǐng)先的版本控制軟件,包括Git、Perforce 和 Subversion開(kāi)放式文件,無(wú)須知曉確切的名稱(chēng)或位置搜索類(lèi)和文件跨不同位置或文件沿用符號(hào)在頭文件和源文件,或在聲明和定義之間切換。集成了特定于 Qt 的功能,如信號(hào)與槽 (Signals & Slots)圖示調(diào)試器, 對(duì) Qt 類(lèi)結(jié)構(gòu)可一目了然集成了 Qt Designer 可視化布局和格式構(gòu)建器只需單擊一下就可生成和運(yùn)行 Qt 項(xiàng)目。 - VirtualSerialPortDriverPro
允許將物理串行端口分成幾個(gè)虛擬通信端口(COM2、COM3、COM4等),在系統(tǒng)中作為硬件串行接口的精確拷貝出現(xiàn)?蛇B接多個(gè)虛擬COM端口到一個(gè)真實(shí)的物理端口。串行應(yīng)用程序?qū)⑼瑫r(shí)接收來(lái)自所有連接的虛擬COM端口的數(shù)據(jù)。允許創(chuàng)建和管理復(fù)雜的串行端口束。由“in”端的COM端口接收,串行數(shù)據(jù)將被重定向到捆綁包的“外”側(cè)的每個(gè)COM端口,反之亦然。 適用范圍: 1、適用的嵌入式設(shè)備:可以將任何使用TCP/IP或UDP廣播方式傳輸數(shù)據(jù)的嵌入式設(shè)備虛擬成本機(jī)COM口。 - 虛擬串口互聯(lián):一臺(tái)電腦用Server模式和Client模式運(yùn)行2個(gè)VSPM虛擬串口軟件,可以實(shí)現(xiàn)虛擬串口互聯(lián)。
- 軟件調(diào)試及串口通訊模擬:利用各類(lèi)擴(kuò)展DLL插件,可以使VSPM模擬成一個(gè)串口設(shè)備,方便軟件調(diào)試。

圖5 Virtual Serial Port Driver Pro軟件頁(yè)面
串口調(diào)試工具,方便調(diào)試串口,可用于串口通訊,發(fā)送命令,接收信息,,波特率支持110~256000,可保存己接收數(shù)據(jù)文件,方便串口數(shù)據(jù)調(diào)試,sscom3.2可快速將所需要的串口調(diào)式完成。適合單片機(jī)編程時(shí)對(duì)RS232通訊測(cè)使用,功能包含三大項(xiàng),快速發(fā)送串口指令,編輯指令列表,共享指令列表。 此外sscom3.2串口調(diào)試工具能支持所有物理的、虛擬的、USB轉(zhuǎn)的、藍(lán)牙的,從COM0到COMxxx任何串口號(hào)的端口,自動(dòng)識(shí)別電腦里已經(jīng)存在的串口,例如COM1、COM2、COM30、COM40,不存在的串口不顯示問(wèn)題。 圖6 sscom32軟件頁(yè)面 利用Virtual Serial Port Driver Pro, 創(chuàng)建兩個(gè)互連虛擬串口:COM1和COM2;實(shí)現(xiàn)向com1發(fā)數(shù)據(jù),com2能收到,實(shí)現(xiàn)向com2發(fā)數(shù)據(jù),com1能收到。 圖7 創(chuàng)建虛擬串口 利用sscom3.2串口調(diào)試工模擬下位機(jī)傳輸給上位機(jī)數(shù)據(jù),準(zhǔn)備階段采用PZEM014-Master上位機(jī),作為我們?cè)O(shè)計(jì)的QT上位機(jī)對(duì)照,方便驗(yàn)證本項(xiàng)目的可行性及準(zhǔn)確性。 打開(kāi)sscom3.2作為下位機(jī),配置COM1串口,波特率設(shè)置9600。 同時(shí)打開(kāi)PZEM014-Master作為上位機(jī),配置COM2串口,波特率設(shè)置9600。 
圖8 創(chuàng)建連接 sscom32作為下位機(jī),模擬兩組數(shù)據(jù)傳輸,成功送。 PZEM014-Master作為上位機(jī),成功接受數(shù)據(jù),成功顯示電參數(shù)。 圖9 模擬傳輸
- 設(shè)計(jì)基于QT的電力參數(shù)采集系統(tǒng)上位機(jī)
圖10 創(chuàng)建QT項(xiàng)目
ui界面各控制的objectName: - cboSerial
- lblSerialState
- btnOpenSerial
- lblVolt
- lblCircut
- lblFreq
- lblPower
圖11 設(shè)計(jì)項(xiàng)窗口 - 設(shè)計(jì)項(xiàng)目主要程序代碼

圖12 核心代碼 - 系統(tǒng)測(cè)試與數(shù)據(jù)分析
此次功能調(diào)試首先要測(cè)試連接是否正常,然后需要調(diào)試QT上位機(jī)和sscom32作為下位機(jī)連接之后能否正常顯示。測(cè)試結(jié)束后用PZEM014-Master上位機(jī),作為我們?cè)O(shè)計(jì)的QT上位機(jī)對(duì)照,方便驗(yàn)證本項(xiàng)目的可行性及準(zhǔn)確性。本次設(shè)計(jì)使用Peacefail電力參數(shù)模塊(本次實(shí)訓(xùn)將采用軟件模擬的方式來(lái)實(shí)現(xiàn),不需要準(zhǔn)備硬件)來(lái)測(cè)量電路電壓,頻率,功率,電能等參數(shù)。該項(xiàng)目使用的Modbus協(xié)議最初由施耐德公司為其PLC制定的一種通訊協(xié)議。 - 測(cè)試QT上位機(jī)和sscom32下位機(jī)連接正常。

圖13 測(cè)試連接
- 測(cè)試QT上位機(jī)和sscom32下位機(jī)連接之后正常顯示。

圖14 測(cè)試顯示 - 用PZEM014-Master上位機(jī),作為QT上位機(jī)對(duì)照,對(duì)照結(jié)果一致。

圖15 對(duì)照結(jié)果 系統(tǒng)測(cè)試得驗(yàn)證只是系統(tǒng)功能基本實(shí)現(xiàn),還需要進(jìn)行更多得數(shù)據(jù)測(cè)試進(jìn)行分析,驗(yàn)證系統(tǒng)的穩(wěn)定性如何, 這里我們模擬了9組數(shù)據(jù)。 表7 模 擬 數(shù) 據(jù) 組 F8 04 14 08 ED 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 FC CD | F8 04 14 08 ED 01 00 00 00 01 00 00 00 00 00 00 00 01 2C 00 00 00 00 FC CD | F8 04 14 08 ED 05 00 00 00 05 00 00 00 00 00 00 00 03 E8 00 00 00 00 FC CD | F8 04 14 08 E8 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 30 01 | F8 04 14 08 E8 01 00 00 00 01 00 00 00 00 00 00 00 01 2C 00 00 00 00 30 01 | F8 04 14 08 E8 05 00 00 00 05 00 00 00 00 00 00 00 03 E8 00 00 00 00 30 01 | F8 04 14 08 98 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 FC CD | F8 04 14 08 98 01 00 00 00 01 00 00 00 00 00 00 00 01 2C 00 00 00 00 FC CD | F8 04 14 08 98 05 00 00 00 05 00 00 00 00 00 00 00 03 E8 00 00 00 00 FC CD |
模擬數(shù)組選擇說(shuō)明: - 上位機(jī)發(fā):F8 04 00 00 00 0A 64 64
- F8 04 為固定,從寄存器地址00開(kāi)始,0A表示要接收10個(gè)寄存器,共20個(gè)字節(jié),校驗(yàn)碼為 64 64
- 下位機(jī)收:F8 04 14 08 ED 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 FC CD
- F8 04 為固定,14表示要接收20個(gè)字節(jié),不包括校驗(yàn)碼,校驗(yàn)碼為 FC CD
- 08 ED 表示電壓為228.5V
- 01 F4 表示頻率為50Hz
但是執(zhí)行兩次就失敗,且上位機(jī)讀不出來(lái)數(shù)據(jù)
直連一切正常: - 上位機(jī)發(fā):F8 04 00 00 00 0A 64 64
- 下位機(jī)收:F8 04 14 08 E8 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 30 01
- 08 E8 表示電壓為228V
- 兩次發(fā)送時(shí)間間隔為:575~592ms
- 兩次接收時(shí)間間隔為:560~575ms
表8 模 擬 數(shù) 據(jù) 測(cè) 試 結(jié) 果
對(duì)以上表格內(nèi)部的數(shù)據(jù)進(jìn)行分析,可以發(fā)現(xiàn)模擬數(shù)字在都可以正常在上位機(jī)進(jìn)行顯示,對(duì)模擬數(shù)據(jù)進(jìn)行正確得處理后輸出相應(yīng)得電參數(shù)顯示。通過(guò)模擬的分析與驗(yàn)證,本次設(shè)計(jì)任務(wù)的要求全部可以成功實(shí)現(xiàn),所以此次的基于QT的電力參數(shù)采集系統(tǒng)設(shè)計(jì)成功。 其次在這次中,下載了C++軟件,由老師帶領(lǐng)我們進(jìn)行快速的復(fù)習(xí)C語(yǔ)言編程的重點(diǎn)知識(shí)點(diǎn),在快速地進(jìn)行系統(tǒng)的學(xué)習(xí)后,老師帶領(lǐng)下我們做了打印日歷的C++小項(xiàng)目,在學(xué)習(xí)過(guò)程中有問(wèn)題時(shí),認(rèn)真和同學(xué)、老師討論交流。在正式進(jìn)入項(xiàng)目前,我們下載了QT軟件,及涉及項(xiàng)目相關(guān)軟件。然后老師帶領(lǐng)我們進(jìn)行系統(tǒng)的學(xué)習(xí),知道軟件基本的功能菜單,會(huì)自己創(chuàng)建工程文件,把需要的庫(kù)函數(shù)組件放好地方,加入到工程之中使用。在快速地進(jìn)行系統(tǒng)的學(xué)習(xí)后,老師帶領(lǐng)下我們做了mp3播放器小項(xiàng)目,深深的吸引力我對(duì)嵌入式的興趣。正式進(jìn)入本項(xiàng)目的設(shè)計(jì),我遇到問(wèn)題總是會(huì)自己思考,找老師尋求幫助,只有通過(guò)親自動(dòng)手操作,完成一個(gè)任務(wù)的設(shè)計(jì)制作。才知道其過(guò)程的艱巨,但是有苦也有樂(lè),有付出也有收獲。發(fā)現(xiàn)自己不足之處的同時(shí)也收獲到很多有用的東西:對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,雖然感覺(jué)理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過(guò)程中仍有意想不到的困惑,需要再去查找資料才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的斗志,我想這將對(duì)以后的學(xué)習(xí)產(chǎn)生比較深遠(yuǎn)的影響。
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁(yè)上的一模一樣,方便大家保存):
小惜設(shè)計(jì)51hei.doc
(2.37 MB, 下載次數(shù): 27)
2022-5-12 20:53 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
electricty.zip
(6.75 KB, 下載次數(shù): 34)
2022-5-12 20:38 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|