版本:第一版 作者:毛鹏 杨帅 日期:20151108
4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用。本文主要介绍了以太网接口的4-20mA电流采集模块在VC#环境下进行温度采集,实现WINDOWS平台对数据的采集、分析及显示。
系统组成主要包括PT100铂电阻、SBWZ温度变送器、4-20mA电流采集模块(GM4008)以及上位机软件组成,如图1所示。
图1 系统组成框图
PT100铂电阻温度传感器:利用铂金属阻值随温度的变化而变化的特性制成的一种温度传感器,主要用来测量温度的变化量。
SBWZ温度变送器:一种现场安装式温度变送单元,主要将铂电阻的信号变换成线性的4-20mA的输出信号。
4-20mA电流采集模块(GM4008):以太网接口的GM4008电流采集模块,主要实现数据的传输,并通过以太网接口与上位机进行通讯。
上位机:制作上位机界面,实现被测数据的采集、分析和显示。
系统工作过程中,当温度发生变化时,PT100铂电阻温度传感器的电阻值发生变化,其阻值经过SBWZ温度变送器转
换为4-20mA的电流信号,并通过4-20mA电流采集模块(GM4008)与上位机通讯,从而实现温度的采集、分析及显示。
系统采用以太网接口的8通道4-20mA电流采集模块(GM4008),不仅能更加快速、精确的把测量数据传送给上位机,保证系统的效率,而且可以使系统的信息传输更加稳定。
GM4008简介
GM4008 8通道4-20mA电流采集模块(以下简称模块)采用全电器隔离方案,配合高性能微处理器及8通道12位ADC在较小的体积下完成了电流测量功能。
模块内置高性能电源变换电路,供电电压范围宽至7.5V-36V,且效率高达90%以上。此特性为长时间使用的电源稳定性提供保障。模块内置1500V双隔离电源模块,使得供电输入、模拟测量精度、模块稳定性及通用性提供保证。
模块内置百兆以太网电路,可完成远距离4-20mA数据采集功能。长时间使用稳定可靠,抗干扰强、不掉线。
模块内置32位的高性能ARM微处理器,它不但完成8通道、12位电流采集,而且支持固件升级功能,为后期功能升级和bug修复提供技术保证。
VC#开发环境介绍
该通信测试界面采用Visual studio2015(VC#)实现,软件界面如图2所示。Visual studio2015是微软公司推出的开发软件,具有基本完整的开发工具集,包括了如UML工具、代码管控工具、集成开发环境等工具,可实现基于C#的Modbus串口通信,该界面设计简洁清晰,操作简单,便于实现。
图2 软件界面
软件使用方法
软件界面如图2所示,操作方法如下:
1. 在IP Address里设置IP;
2. 在Port里面设置端口,一般固定为502端口;
3. 点击connect按键,此时会自动连接以太网,此按键变为disconnect;
4. 点击start按键,开始采集电流;
5. 点击stop按键,停止采集;
6. 点击disconnect按键后,则断开以太网,清除数据。
软件核心代码
(1)Modbus function3功能读取保持寄存器
Modbus function3功能读取保持寄存器如附录1所示,该段程序由一个调用函数组成,程序的第128至148行,是寄存器的设置。第149至第162行,是将数据存入寄存器并读取数据。第163至166是将data的数据转换成float类型存入value中。
(2)显示通道数据
显示通道数据代码如附录2所示,此段程序主要截取的为0通道显示数据,由三个主要函数组成,其余的7个通道可用与之相同的方法实现。
配备工具或软件
1. 12V直流电源;
2. 两个PT100铂电阻温度传感器;
3. 两个SBWZ温度变送器;
4. 一个以太网接口8通道4-20mA电流采 集模块(GM4008);
5. Aligent 3440A台式六位半数字万用表;
6. 开发环境:Visual Studio 2015(所需软件 由用户自行下载);
7. 操作系统:WIN7以上。
系统连接方法
本次实验主要采集两个通道的电流数据,为了保持图片连线清楚整洁,只接入1个SBWZ,另一个连接方式相同。系统主要硬件连接如图3所示。
图3 系统主要硬件连接图
测试步骤
1. 根据系统主要硬件连接图(图3)连接各组件;
2. 接入两个温度变送器,GM4008配置两个通道,将CH0设定为打火机火焰测试数据采集通道,CH1设定为热水数据采集通道;
3. 然后在程序界面设置好IP以及端口;
4. 将两个温度变送器的PT100铂电阻分别放入热水中与打火机火焰中(具体操作为点击界面的connect按钮,连接以后点start按钮,系统会自动连接以太网采集数据,操作简单方便)。
测试结果
实验采集到的数据如图4所示,为了证明测试结果的准确性以及得到准确的温度,进行精度验证与实验验证算两个步骤。
图4 实验采集数据图
(1)精度验证
为了验证所测电流值的准确度,把Aligent 34401A 六位半高精度万用表串联到SBWZ温度变送器后端的电路中,将万用表的电流读数与上位机显示的电流度数进行对比。实验结果如表1所示,经过多次实验,两组数据结果基本相同。
表1 实验各项数据表
被测对象 |
GM4008测量值 |
万用表 测量值 |
换算温度 |
火焰(CH0) |
19.57mA |
19.58mA |
389℃ |
热水(CH1) |
7.60mA |
7.61mA |
90℃ |
(2)实验验证
由SBWZ温度变送器以及PT100铂电阻的量程之间的关系,得出实际测得电流与温度之间符合关系式:
y=25*x-100
对应测量的电流值对照计算知所测水温为大约90℃,火焰大约为389℃(由于火焰温度高于量程,所以到19mA以后停止实验,以免损坏设备)与实际相符。
由测试可知:本系统基于VC#开发环境通过以太网测得的数据是真实可靠的,可应用于实际中。
本文通过Visual studio 2015上位机编程实现了VC#环境下以太网的Modbus通信,可完成工业自动化控制系统中的远程数据采集及监测等功能。该通信系统编程模式简单、易于使用、有较强的实用性。
1. 《C#高级编程》
2. 《C#图解教程》
1、Visual Studio 2015下载地址:
https://www.visualstudio.com/downloads/download-visual-studio-vs
2、GM4008 简易手册:
http://files.cnblogs.com/files/xiaomagee/GM4008%E7%AE%80%E6%98%93%E6%89%8B%E5%86%8CV1.0.pdf
3、GM4008 用户手册:
http://files.cnblogs.com/files/xiaomagee/GM4008%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8CV1.0.pdf
4、GM4008 购买地址:
https://item.taobao.com/item.htm?id=522185223217
==================================
本文完整PDF版 及 代码包下载:
完整版 PDF 下载:
http://pan.baidu.com/s/1mgLCzmo
源代码包下载:(基于 VC#2015)
http://pan.baidu.com/s/1i3hMXvf
若下载失效,请发邮件索取: gingko@vip.163.com
==================================
【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集
原文:http://www.cnblogs.com/xiaomagee/p/4954173.html