zoukankan      html  css  js  c++  java
  • 【应用笔记】【AN005】Qt开发环境下基于RS485的4-20mA电流采集

    简介

    4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用。本文主要介绍在Qt开发环境下基于RS485实现4-20mA电流采集,实现WINDOWS平台对数据的采集、分析及显示。

    系统组成及工作原理

    系统组成主要包括PT100铂电阻、SBWZ温度变送器、4-20mA电流采集模块(GM4008)以及上位机软件组成,如图1所示。

    PT100铂电阻温度传感器:利用铂金属阻值随温度的变化而变化的特性制成的一种温度传感器,主要用来测量温度的变化量。

    SBWZ温度变送器:一种现场安装式温度变送单元,主要将铂电阻的信号变换成线性的4-20mA的输出信号。

    4-20mA电流采集模块(GM1008):RS485接口的GM1008电流采集模块,主要实现数据的采集与传输,并通过RS485接口与上位机进行通讯。

    USB转485模块(EVC8001):实现GM1008的RS485接口与上位机的USB接口成功连接。

    上位机Qt:制作上位机界面,实现被测数据的采集、分析和显示。

    系统工作过程中,当温度发生变化时,PT100铂电阻温度传感器的电阻值发生变化,其阻值经过SBWZ温度变送器转换为电流信号,并通过4-20mA电流采集模块(GM1008)及USB转RS485模块(EVC8001)与上位机通讯,从而实现温度的采集、分析及显示。

    电流采集模块

    系统采用RS485接口的8通道4-20mA电流采集模块(GM1008),不仅能更加快速、精确的把测量数据传送给上位机,保证系统的效率,而且可以使系统的信息传输下回稳定。

    GM1008简介

    GM1008 8通道4-20mA电流采集模块(以下简称模块)采用全电器隔离方案,配合高性能微处理器及8通道12位ADC在较小的体积下完成了电流测量功能。

    模块内置高性能电源变换电路,供电电压范围宽至7.5V-36V,且效率高达90%以上。此特性为长时间使用的电源稳定性提供保障。模块内置1500V双隔离电源模块,使得供电输入、模拟测量精度、模块稳定性及通用性提供保证。

    模块内置基于耦合隔离的高品质RS485电路,长期使用稳定可靠,抗干扰强、不掉线。

    模块内置32位的高性能ARM微处理器,它不但完成8通道、12位电流采集,而且支持固件升级功能,为后期功能升级和bug修复提供技术保证。

    Qt上位机程序设计

    Qt开发环境介绍

    Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可开发GUI程序,也可用于开发非GUI程序,提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。它是面向对象的框架,使用特殊的代码生成扩展以及一些宏,易于扩展,允许组件编程。

    软件使用方法

    图2 软件界面

    软件界面如图2所示,操作方法如下:

    1、在Port里设置端口(商品号由查询设备管理器获得);

    2、在Baudrate里面设置波特率,一般固定为9600;

    3、在Parity里面设置奇偶校验,一般固定为None(无校验);

    4、在 Stop Bits里面设置停止位,一般固定为1(一个停止位);

    5、在Address里面设置从机地址,固定为1;

    6、点击Open按键,自动连接RS485,此按键变为Close;

    7、点击Start按键,开始采集电流;

    8、点击Stop按键,停止采集;

    9、点击Close按键,则断开RS485,清除数据。

    软件的核心代码

    核心代码主要是数据的接收与显示,附录1所示。

    其中,从87行到91行是通道分配的代码,分配置8个通道;105到112行是数据转换与显示代码。

    测量采集演示及说明

    配备工具或软件

    1. 1.        12V直流电源;
    2. 2.         PT100铂电阻温度传感器;
    3. 3.         SBWZ温度变送器;
    4. 4.         RS485接口8通道4-20mA电流采集模块(GM1008)
    5. 5.      USB转RS485模块(EVC8001)
    6. 6.         Aligent 34401A台式六位半数字万用表;
    7. 7.         应用平台:Qt5.2.1(用户自行下载);
    8. 8.         电脑操作系统:Windows8.1 x32。

    系统连接方法

    本次实验主要采集两个通道的电流数据,为了保持图片连线清楚整洁,只接入1个SBWZ,另一个连接方式相同。系统主要硬件连接如图3所示。

    图3 系统主要硬件连接图

    1、电源(12V)导线1:正极连接温度变送器正接线柱,负极连接GM1008的接地端口(GND);

    2、导线2:连接GM1008的接地端口与GM1008的供电处(POWER)的一个端口;

    3、导线3:连接温度变送器与GM1008供电处(POWER)的另一个端口;

    4、导线4:连接通道与温度变送器负接线柱;

    5、导线5:连接EVC8001与GM1008的RS485模块的B-端口;

    6、导线6:连接EVC8001与GM1008的RS485模块的A+端口;

    7、方口USB线:连接EVC8001与电脑。

    测试步骤

    1. 1.         根据系统主要硬件连接图(图3)连接各组件;
    2. 2.         接入两个温度变送器,GM1008配置两个通道,将CH1设定为开水数据采集通道,CH0设定为               打火机火焰数据采集通道;
    3. 3.         然后在程序界面设置好端口以及相关参数;
    4. 4.         将两个PT100铂电阻分别放入开水与打火机火焰中(具体操作为点击界面的Open按钮,连接以             后点Start按钮,系统会自动采集数据,操作简单方便)。

    测试结果

    实验采集数据界面如图4所示,为了验证测试结果的准确性以及得到准确的温度,对其进行了实验测试。

    图4 实验采集数据图

    (1)精度验证

    为了验证所测电流值的准确性,把Aligent 34401A 台式六位半数字万用表串联到SBWZ温度变送器后端的电路中,将万用表的电流读数与上位机显示的电流值进行对比。实验结果如表1所示,经过多次实验,两组数据结果基本相同。

    (2)实验验证

    由SBWZ温度变送器以及PT100铂电阻的量程之间的关系,得出实际测得电流与温度之间符合关系式:

                      y=25*x-100

    根据测得的电流值,计算得到所测水温约为93℃,火焰约为394℃(由于火焰温度高于PT100的最大测量值,所以到19mA以后停止实验,以免损坏设备),测试结果与实际相符。

    总结

    本应用系统的测试成功,充分证明了在Qt开发环境下基于RS485的4-20mA电流采集是可行的,上位机软件制作的界面使得测量的操作简单,数据清晰,便于用户对工业自动化系统的数据进行实时监控,满足行业对数据的需求。

    参考资料

    1.         《Qt Creator快速入门》
    2.         《C程序设计语言》

    相关资源下载

     5、本资料源代码包、PDF 文档下载:

    链接:http://pan.baidu.com/s/1ge2OAbx 密码:739s

    附录1:数据的接收与显示代码

  • 相关阅读:
    mogodb 设置用户名密码认证
    axon mogoconfig
    ListUtils 对 list数据 分组 ,统计,求和 。。。
    jQuery 之 dom操作
    学习Java第二天
    字节跳动spring面试题,你能回答出几个
    CH340芯片选型
    Django的路由转换器的使用
    Vue之cli脚手架
    String中split(regex,limit)方法讲解
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/6418519.html
Copyright © 2011-2022 走看看