在科技飞速发展与智能用电系统的普及的大背景下,高性能高要求的电力参数系统的相关研究也备受关注。计算机技术与无线传输技术的发展,为由普通功能型电力参数向多功能,高精度,高可靠,可移植,无线抄表的电力参数监测系统的发展提供了充足的技术支持。电力参数采集技术不断发展,朝着越来越智能,成本越来越低的方向发展。
本次项目,采用QT设计一个电力参数采集和控制系统。通过这次学习,专业技能和实验技能,调试代码能力得到有效锻炼,不论对于知识系统的巩固还是对以后走到未来岗位上都是起到很好的帮助作用。
该项目使用的Modbus协议最初由施耐德公司为其PLC制定的一种通讯协议。在本项目中,下位机采用软件模拟的方式来代替Peacefail电力参数模块来实现采集交流电路中的电力参数, 如电压, 电流, 功率等, 并发送至使用由C++的QT creator编制的上位机程序进行数据的显示。
(1)交流通读盒介绍图1 交流通读盒连接图
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电源。 | |||||
工作温度 | ![]() |
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存储区: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 构建工具等。
QtCreator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。集成了领先的版本控制软件,包括Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器, 对 Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目。
允许将物理串行端口分成几个虚拟通信端口(COM2、COM3、COM4等),在系统中作为硬件串行接口的精确拷贝出现。可连接多个虚拟COM端口到一个真实的物理端口。串行应用程序将同时接收来自所有连接的虚拟COM端口的数据。允许创建和管理复杂的串行端口束。由“in”端的COM端口接收,串行数据将被重定向到捆绑包的“外”侧的每个COM端口,反之亦然。
适用范围:
1、适用的嵌入式设备:可以将任何使用TCP/IP或UDP广播方式传输数据的嵌入式设备虚拟成本机COM口。
串口调试工具,方便调试串口,可用于串口通讯,发送命令,接收信息,,波特率支持110~256000,可保存己接收数据文件,方便串口数据调试,sscom3.2可快速将所需要的串口调式完成。适合单片机编程时对RS232通讯测使用,功能包含三大项,快速发送串口指令,编辑指令列表,共享指令列表。
此外sscom3.2串口调试工具能支持所有物理的、虚拟的、USB转的、蓝牙的,从COM0到COMxxx任何串口号的端口,自动识别电脑里已经存在的串口,例如COM1、COM2、COM30、COM40,不存在的串口不显示问题。
利用Virtual Serial Port Driver Pro, 创建两个互连虚拟串口:COM1和COM2;实现向com1发数据,com2能收到,实现向com2发数据,com1能收到。
利用sscom3.2串口调试工模拟下位机传输给上位机数据,准备阶段采用PZEM014-Master上位机,作为我们设计的QT上位机对照,方便验证本项目的可行性及准确性。
打开sscom3.2作为下位机,配置COM1串口,波特率设置9600。
同时打开PZEM014-Master作为上位机,配置COM2串口,波特率设置9600。
sscom32作为下位机,模拟两组数据传输,成功送。
PZEM014-Master作为上位机,成功接受数据,成功显示电参数。
ui界面各控制的objectName:
此次功能调试首先要测试连接是否正常,然后需要调试QT上位机和sscom32作为下位机连接之后能否正常显示。测试结束后用PZEM014-Master上位机,作为我们设计的QT上位机对照,方便验证本项目的可行性及准确性。本次设计使用Peacefail电力参数模块(本次实训将采用软件模拟的方式来实现,不需要准备硬件)来测量电路电压,频率,功率,电能等参数。该项目使用的Modbus协议最初由施耐德公司为其PLC制定的一种通讯协议。
系统测试得验证只是系统功能基本实现,还需要进行更多得数据测试进行分析,验证系统的稳定性如何, 这里我们模拟了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 |
模拟数组选择说明:
但是执行两次就失败,且上位机读不出来数据
直连一切正常:
表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, 下载次数: 27)
electricty.zip
(6.75 KB, 下载次数: 34)
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |