在科技飛速發(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í),專業(yè)技能和實(shí)驗(yàn)技能,調(diào)試代碼能力得到有效鍛煉,不論對(duì)于知識(shí)系統(tǒng)的鞏固還是對(duì)以后走到未來(lái)崗位上都是起到很好的幫助作用。
該項(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é)議
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ò)誤。
寄存器地址 | 說(shuō)明 | 分辨率 |
Ox0000 | 電壓測(cè)量值 | ILSB對(duì)應(yīng)0.1V |
Ox0001 | 電流測(cè)量值低16位 | 1LSB對(duì)應(yīng)0.001A |
Ox0002 | 電流測(cè)量值高16位 | |
Ox0003 | 電流測(cè)量值低16位 | 1LSB對(duì)應(yīng)0.1W |
Ox0004 | 電流測(cè)量值高16位 | |
Ox0005 | 電流測(cè)量值低16位 | 1LSB對(duì)應(yīng)1Wh |
Ox0006 | 電流測(cè)量值高16位 | |
Ox0007 | 頻率測(cè)量值 | 1LSB對(duì)應(yīng)1Wh |
Ox0008 | 功率因數(shù)測(cè)量值 | 1LSB對(duì)應(yīng)0.01O |
Ox0009 | 報(bào)警狀態(tài) | xFFFF為報(bào)警,0x0000為不報(bào)警 |
表1 測(cè) 量 結(jié) 果 的 寄 存 器 排 布
表2 功 能 描 述
功能描述 | 測(cè)量范圍 | 其測(cè)電流/功率 | 分辨率 | 測(cè)量精度 | ||
10A | 100A | 10A | 100A | |||
電壓 | 80-260V | 0.1V | 0.5% | |||
電流 | 0-10A | 0-100A | 0.01A | 0.02A | 0.001A | 0.5% |
有功功率 | 0-2.3kw | 0-23kw | 0.4kw | 0.1w | 0.5% | |
功率因素 | 0.00-1.00 | 0.01 | 1% | |||
頻率 | 45Hz-65Hz | 0.1Hz | 0.5% | |||
有功電能 | 0-9999.99kwh | 1wh | 0.5% | |||
功率超限報(bào)警 | 有功功率門(mén)限可進(jìn)行設(shè)置,當(dāng)實(shí)測(cè)的有功功率超過(guò)設(shè)定的門(mén)限時(shí),置報(bào)警狀態(tài)。 | |||||
通信接口 | TTL接口 | |||||
尺寸 | ![]() | |||||
電源 | 單相工頻電網(wǎng)電源經(jīng)過(guò)阻容降壓給主電路供電,TTL輸出通訊接口與 主電路光耦隔離,為無(wú)源輸出,通訊時(shí)需要外部提供5V電源。 | |||||
工作溫度 | ![]() |
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ě),均定義了專門(mén)的指令和數(shù)據(jù)交換規(guī)范。
表3 兩 種 不 同 的 Modbus 模 式
特性 | RTU模式 | ASCII模式 |
編碼 | 二進(jìn)制 | ASCII(打印字符:0-9,a-z,A-Z) |
每個(gè)字符位數(shù) | 起始位:1 BIT | 起始位:1 BIT |
數(shù)據(jù)位:8 BITS | 數(shù)據(jù)位:7 BITS | |
奇偶校驗(yàn)位(可選):1位 | 奇偶校驗(yàn)位(可選):1位 | |
停止位:1或2 | 停止位:1或2 | |
報(bào)文校驗(yàn) | CRC(循環(huán)冗余校驗(yàn)) | LRC(縱向冗余校驗(yàn)) |
表4 Modbus RTU 報(bào) 文 格 式
小于3.5個(gè)字符的報(bào)文間隔時(shí)間 | 地址 | 功能碼 | 數(shù)據(jù) | CRC校驗(yàn) | 小于3.5個(gè)字符的報(bào)文間隔時(shí)間 |
1*byte | 1*byte | N*byte | 2*byte |
數(shù)據(jù)幀之間的時(shí)間間隔,防止粘包。在9600波特率下,約4ms。
Modbus是一個(gè)應(yīng)用層協(xié)議,會(huì)根據(jù)你的環(huán)境是網(wǎng)絡(luò)還是串口,會(huì)有一個(gè)區(qū)分。
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í) | 名稱 | 類型 | 讀寫(xiě) | 存儲(chǔ)單元地址 |
OXXXX | 線圈 | 位 | 讀/寫(xiě) | 00001--0XXXX,XXXX:與設(shè)備有關(guān) |
1XXXX | 輸入線圈 | 位 | 只讀 | 10001--1XXXX,XXXX:與設(shè)備有關(guān) |
2XXXX | 輸入寄存器 | 字 | 只讀 | 30001--3XXXx,XXXX:與設(shè)備有關(guān) |
3XXXX | 保持/輸出寄存器 | 字 | 讀/寫(xiě) | 40001--4XXXX,XXXX:與設(shè)備有關(guān) |
讀取保存寄存器功能碼: 03H
表6 主 站 詢 問(wèn) 報(bào) 文 格 式
地址 | 功能碼 | 寄存器起始 地址高位 | 寄存器起始 地址低位 | 寄存器數(shù) 地址高位 | 寄存器數(shù) 地址低位 | CRC |
11 | 03 | 00 | 6B(107 | 00 | 03 | XXXX |
主站詢問(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ù)資料。基于QT的電力參數(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++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、圖形化的 GDB 調(diào)試前端,集成qmake 構(gòu)建工具等。
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ú)須知曉確切的名稱或位置搜索類和文件跨不同位置或文件沿用符號(hào)在頭文件和源文件,或在聲明和定義之間切換。集成了特定于 Qt 的功能,如信號(hào)與槽 (Signals & Slots)圖示調(diào)試器, 對(duì) Qt 類結(jié)構(gòu)可一目了然集成了 Qt Designer 可視化布局和格式構(gòu)建器只需單擊一下就可生成和運(yùn)行 Qt 項(xiàng)目。
允許將物理串行端口分成幾個(gè)虛擬通信端口(COM2、COM3、COM4等),在系統(tǒng)中作為硬件串行接口的精確拷貝出現(xiàn)。可連接多個(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口。
串口調(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)題。
利用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能收到。
利用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。
sscom32作為下位機(jī),模擬兩組數(shù)據(jù)傳輸,成功送。
PZEM014-Master作為上位機(jī),成功接受數(shù)據(jù),成功顯示電參數(shù)。
ui界面各控制的objectName:
此次功能調(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é)議。
系統(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ō)明:
但是執(zhí)行兩次就失敗,且上位機(jī)讀不出來(lái)數(shù)據(jù)
直連一切正常:
表8 模 擬 數(shù) 據(jù) 測(cè) 試 結(jié) 果
組 | 電壓/V | 頻率/Hz | 電流/mA | 功率/W | 是否正常工作 |
第一組 | 228.5 | 50 | 0 | 0 | 是 |
第二組 | 228.5 | 30 | 256 | 25.6 | 是 |
第三組 | 228.5 | 100 | 1280 | 128 | 是 |
第四組 | 228 | 50 | 0 | 0 | 是 |
第五組 | 228 | 30 | 256 | 25.6 | 是 |
第六組 | 228 | 100 | 1280 | 128 | 是 |
第七組 | 220 | 50 | 0 | 0 | 是 |
第八組 | 220 | 30 | 256 | 25.6 | 是 |
第九組 | 220 | 100 | 1280 | 128 | 是 |
對(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)
electricty.zip
(6.75 KB, 下載次數(shù): 34)
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |