找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2209|回复: 0
打印 上一主题 下一主题
收起左侧

基于QT的电力参数采集系统(上位机设计资料)

[复制链接]
跳转到指定楼层
楼主
ID:909825 发表于 2022-5-7 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在科技飞速发展与智能用电系统的普及的大背景下,高性能高要求的电力参数系统的相关研究也备受关注。计算机技术与无线传输技术的发展,为由普通功能型电力参数向多功能,高精度,高可靠,可移植,无线抄表的电力参数监测系统的发展提供了充足的技术支持。电力参数采集技术不断发展,朝着越来越智能,成本越来越低的方向发展。

本次项目,采用QT设计一个电力参数采集和控制系统。通过这次学习,专业技能和实验技能,调试代码能力得到有效锻炼,不论对于知识系统的巩固还是对以后走到未来岗位上都是起到很好的帮助作用。



    • 设计的要求
  • 使用Peacefail电力参数模块(实训将采用软件模拟的方式来实现,不需要准备硬件)。
  • 测量电路电压,频率,功率,电能等参数。
  • 发送至使用由C++的QT creator编制的上位机程序进行数据的显示。

  • 设计方案制定
    • 设计的原理

该项目使用的Modbus协议最初由施耐德公司为其PLC制定的一种通讯协议。在本项目中,下位机采用软件模拟的方式来代替Peacefail电力参数模块来实现采集交流电路中的电力参数, 如电压, 电流, 功率等, 并发送至使用由C++的QT creator编制的上位机程序进行数据的显示。

(1)交流通读盒介绍

图1 交流通读盒连接图

1.物理层协议

  • 物理层采用UART 转TTL通信接口。
  • 波特率为9600,8位数据位,1位停止位,无校验。

2.应用层协议

应用层采用 Modbus-RTU 协议进行通信,目前只支持 Ox03(读保持寄存器)、Ox04(读输入寄存器)、Ox06(写单个寄存器)、0x41(校准)、0x42(电能清零)等功能码。其中Ox41功能码仅限于内部使用(地址只能是 OxF8),用作出厂校准和返厂维修等场合,在功能码之后增加16位的密码,密码默认为0x3721。

从机的编址范围为0x01~OxF7,地址0x00作为广播地址,从机不需回复主机,地址OxF8 作为通用地址,该地址只能用在单从机的环境中,可以用作校准等操作。

3.读取测量结果

主机读取测量结果的命令格式为(共8个字节):

从机地址+Ox04+寄存器地址高字节+寄存器地址低字节+寄存器数量高字节+寄存器数量低字节+CRC校验高字节+CRC校验低字节。

从机回复如下的命令格式分为两种:

正确回复:从机地址+Ox04+字节数+寄存器1数据高字节+寄存器1数据低字节+...+ CRC校验高字节+CRC校验低字节。

错误回复:从机地址+0x84+异常码+CRC校验高字节+CRC校验低字节。

异常码解读如下(下同):

①Ox01,非法功能;                      ②Ox02,非法地址;

③Ox03,非法数据;                      ④0x04,从机错误。

寄存器地址
说明
分辨率
Ox0000
电压测量值
ILSB对应0.1V
Ox0001
电流测量值低16位
1LSB对应0.001A
Ox0002
电流测量值高16位
Ox0003
电流测量值低16位
1LSB对应0.1W
Ox0004
电流测量值高16位
Ox0005
电流测量值低16位
1LSB对应1Wh
Ox0006
电流测量值高16位
Ox0007
频率测量值
1LSB对应1Wh
Ox0008
功率因数测量值
1LSB对应0.01O
Ox0009
报警状态
xFFFF为报警,0x0000为不报警

表1  测 量 结 果 的 寄 存 器 排 布


表2  功 能 描 述

功能描述
测量范围
其测电流/功率
分辨率
测量精度
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%
功率超限报警
有功功率门限可进行设置,当实测的有功功率超过设定的门限时,置报警状态。
通信接口
TTL接口
尺寸
电源
单相工频电网电源经过阻容降压给主电路供电,TTL输出通讯接口与
主电路光耦隔离,为无源输出,通讯时需要外部提供5V电源。
工作温度

(2)Modbus协议介绍

RS232,RS485通讯指的是两个设备之间通过485或232串口连接,在串口信道上实现数据通讯,是一种硬件规范,并未为具体工业应用领域确定或规范数据的意义,是一种通用的底层硬件协议和简单的软件规范的结合。modbus指的是一种工业标准的数据对话协议,对于保持寄存器,输入寄存器,输出寄存器,线圈寄存器等不同的寄存器数值的读写,均定义了专门的指令和数据交换规范。

表3  两 种 不 同 的 Modbus 模 式

特性
RTU模式
ASCII模式
编码
二进制
ASCII(打印字符:0-9,a-z,A-Z)
每个字符位数
起始位:1 BIT
起始位:1 BIT

数据位:8 BITS
数据位:7 BITS

奇偶校验位(可选):1位
奇偶校验位(可选):1位

停止位:1或2
停止位:1或2
报文校验
CRC(循环冗余校验)
LRC(纵向冗余校验)


表4  Modbus  RTU 报 文 格 式

小于3.5个字符的报文间隔时间
地址
功能码
数据
CRC校验
小于3.5个字符的报文间隔时间
1*byte
1*byte
N*byte
2*byte

数据帧之间的时间间隔,防止粘包。在9600波特率下,约4ms。

Modbus是一个应用层协议,会根据你的环境是网络还是串口,会有一个区分。

  •           对于网络,有Modbus-TCP和Modbus-UDP
  •           对于串口,有Modbus-RTU和Modbus-ASCII

Modbus存储区:MODBUS涉及到的控制器(或MODBUS 设备〉存储区以OXXXX、1XXXX、3XXXX、4XXXX标识;


表5  Modbus  存 储 区

存储区标识
名称
类型
读写
存储单元地址
OXXXX
线圈
读/写
00001--0XXXX,XXXX:与设备有关
1XXXX
输入线圈
只读
10001--1XXXX,XXXX:与设备有关
2XXXX
输入寄存器
只读
30001--3XXXx,XXXX:与设备有关
3XXXX
保持/输出寄存器
读/写
40001--4XXXX,XXXX:与设备有关

读取保存寄存器功能码: 03H


表6  主 站 询 问 报 文 格 式

地址
功能码
寄存器起始
地址高位
寄存器起始
地址低位
寄存器数
地址高位
寄存器数
地址低位
CRC
11
03
00
6B(107
00
03
XXXX

主站询问报文格式:

功能:读从站保持寄存器4XXXX值。

注意:报文中寄存器起始地址00000对应设备中40001地址,其他顺延。

本例:读11H号从站保持寄存器值,起始地址=006BH=107,对应地址40108;寄存器数=0003;末地址=40108+3-1=40110;

因此,本询问报文功能是:读17 (11H)号从站3个保持寄存器40108—40110的值;




    • 设计的方案

仔细分析任务要求,查阅相关技术资料。基于QT的电力参数采集系统,采用QT需要模拟下位机发送的信号,不然QT上位机没有输入量,因此需要串口调试软件模拟下位机给上位机发送信号,需要虚拟串口来创造串口来进行连接。采用PZEM014-Master上位机作为我们设计的QT上位机对照,验证本项目的可行性及准确性。当然设计中需要ModeBusRTU调试工具,支持系统的正常工作。同时,为了实现任务要求中的按键操作功能,必不可少的需要加入模拟按键、参数显示面板。

经过设计分析,系统框图成及上位机基本页面如下图所示:



  图2  系统框图                    图3  上位机基本页面

  • 设计方案实施
    • 开发环境

Qt Creator 为应用程序开发人员提供了一个跨平台的完整集成开发环境(IDE),可以为多个台式机、嵌入式和移动设备平台(例如Android 和 iOS)创建应用程序。它可用于 Linux、macOS 和 Windows 操作系统。此外,用户可以使用实验性的 WebAssembly 插件以 Web 格式构建应用程序,然后在 Web 浏览器中运行它们。

Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、图形化的 GDB 调试前端,集成qmake 构建工具等。

图4  Qt Creator 4.7.1 (Enterprise)软件页面

QtCreator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。集成了领先的版本控制软件,包括Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器, 对 Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目。




    • 主要模拟平台
  • VirtualSerialPortDriverPro

允许将物理串行端口分成几个虚拟通信端口(COM2、COM3、COM4等),在系统中作为硬件串行接口的精确拷贝出现。可连接多个虚拟COM端口到一个真实的物理端口。串行应用程序将同时接收来自所有连接的虚拟COM端口的数据。允许创建和管理复杂的串行端口束。由“in”端的COM端口接收,串行数据将被重定向到捆绑包的“外”侧的每个COM端口,反之亦然。

适用范围:

1、适用的嵌入式设备:可以将任何使用TCP/IP或UDP广播方式传输数据的嵌入式设备虚拟成本机COM口。

  • 虚拟串口互联:一台电脑用Server模式和Client模式运行2个VSPM虚拟串口软件,可以实现虚拟串口互联。
  • 软件调试及串口通讯模拟:利用各类扩展DLL插件,可以使VSPM模拟成一个串口设备,方便软件调试。

图5  Virtual Serial Port Driver Pro软件页面

  • sscom32

串口调试工具,方便调试串口,可用于串口通讯,发送命令,接收信息,,波特率支持110~256000,可保存己接收数据文件,方便串口数据调试,sscom3.2可快速将所需要的串口调式完成。适合单片机编程时对RS232通讯测使用,功能包含三大项,快速发送串口指令,编辑指令列表,共享指令列表。

此外sscom3.2串口调试工具能支持所有物理的、虚拟的、USB转的、蓝牙的,从COM0到COMxxx任何串口号的端口,自动识别电脑里已经存在的串口,例如COM1、COM2、COM30、COM40,不存在的串口不显示问题。

图6  sscom32软件页面



    •           设计功能的实施
  • 创建虚拟串口连接

利用Virtual Serial Port Driver Pro, 创建两个互连虚拟串口:COM1和COM2;实现向com1发数据,com2能收到,实现向com2发数据,com1能收到。

图7  创建虚拟串口
  • 模拟下位机传输数据

利用sscom3.2串口调试工模拟下位机传输给上位机数据,准备阶段采用PZEM014-Master上位机,作为我们设计的QT上位机对照,方便验证本项目的可行性及准确性。

  • 创建连接

打开sscom3.2作为下位机,配置COM1串口,波特率设置9600。

同时打开PZEM014-Master作为上位机,配置COM2串口,波特率设置9600。

图8  创建连接
  • 模拟传输

sscom32作为下位机,模拟两组数据传输,成功送。

PZEM014-Master作为上位机,成功接受数据,成功显示电参数。

图9  模拟传输

  • 设计基于QT的电力参数采集系统上位机
  • 创建QT项目
图10  创建QT项目

  • 设计项目窗口

ui界面各控制的objectName:

  •                    cboSerial
  •                    lblSerialState
  •                    btnOpenSerial
  •                    lblVolt
  •                    lblCircut
  •                    lblFreq
  •                     lblPower
图11  设计项窗口
  • 设计项目主要程序代码

图12  核心代码
  • 系统测试与数据分析
    •           系统测试

此次功能调试首先要测试连接是否正常,然后需要调试QT上位机和sscom32作为下位机连接之后能否正常显示。测试结束后用PZEM014-Master上位机,作为我们设计的QT上位机对照,方便验证本项目的可行性及准确性。本次设计使用Peacefail电力参数模块(本次实训将采用软件模拟的方式来实现,不需要准备硬件)来测量电路电压,频率,功率,电能等参数。该项目使用的Modbus协议最初由施耐德公司为其PLC制定的一种通讯协议。

  • 测试QT上位机和sscom32下位机连接正常。

图13  测试连接

  • 测试QT上位机和sscom32下位机连接之后正常显示。

图14  测试显示
  • 用PZEM014-Master上位机,作为QT上位机对照,对照结果一致。

图15 对照结果



    •           数据分析

系统测试得验证只是系统功能基本实现,还需要进行更多得数据测试进行分析,验证系统的稳定性如何, 这里我们模拟了9组数据。

表7  模 拟 数 据 组

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


模拟数组选择说明:

  • 上位机发:F8 04 00 00 00 0A 64 64
  • F8 04 为固定,从寄存器地址00开始,0A表示要接收10个寄存器,共20个字节,校验码为 64 64
  • 下位机收: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个字节,不包括校验码,校验码为 FC CD
  • 08 ED 表示电压为228.5V
  • 01 F4 表示频率为50Hz

但是执行两次就失败,且上位机读不出来数据


直连一切正常:

  • 上位机发:F8 04 00 00 00 0A 64 64
  • 下位机收: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
  • 两次发送时间间隔为:575~592ms
  • 两次接收时间间隔为:560~575ms


表8  模 拟 数 据 测 试 结 果

电压/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


对以上表格内部的数据进行分析,可以发现模拟数字在都可以正常在上位机进行显示,对模拟数据进行正确得处理后输出相应得电参数显示。通过模拟的分析与验证,本次设计任务的要求全部可以成功实现,所以此次的基于QT的电力参数采集系统设计成功。

其次在这次中,下载了C++软件,由老师带领我们进行快速的复习C语言编程的重点知识点,在快速地进行系统的学习后,老师带领下我们做了打印日历的C++小项目,在学习过程中有问题时,认真和同学、老师讨论交流。在正式进入项目前,我们下载了QT软件,及涉及项目相关软件。然后老师带领我们进行系统的学习,知道软件基本的功能菜单,会自己创建工程文件,把需要的库函数组件放好地方,加入到工程之中使用。在快速地进行系统的学习后,老师带领下我们做了mp3播放器小项目,深深的吸引力我对嵌入式的兴趣。正式进入本项目的设计,我遇到问题总是会自己思考,找老师寻求帮助,只有通过亲自动手操作,完成一个任务的设计制作。才知道其过程的艰巨,但是有苦也有乐,有付出也有收获。发现自己不足之处的同时也收获到很多有用的东西:对以前所学过的知识理解得不够深刻,掌握得不够牢固,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,需要再去查找资料才得以解决。这也激发了我今后努力学习的斗志,我想这将对以后的学习产生比较深远的影响。



以上图文的Word格式文档下载(内容和本网页上的一模一样,方便大家保存):

小惜设计51hei.doc (2.37 MB, 下载次数: 22)

electricty.zip (6.75 KB, 下载次数: 25)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表