版本:第一版 作者:毛鹏 杨帅 日期: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#上位机程序设计

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#图解教程》

相关资源下载

1Visual 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[AT]vip.163.com     [AT]替换成 @

==================================

【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)...相关推荐

  1. 基于node.js开发环境下创建及开发vue.js项目的环境配置骤

    基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...

  2. 痞子衡嵌入式:在MDK开发环境下将关键函数重定向到RAM中执行的几种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在MDK开发环境下将关键函数重定向到RAM中执行的几种方法. 这个关键函数重定向到 RAM 中执行系列文章,痞子衡已经写过 <IA ...

  3. Polyworks脚本开发学习笔记(一)-脚本开发环境

    Polyworks脚本开发学习笔记(一)-脚本开发环境 背景 Polyworks的扫描尺寸测量分析模块是我工作中经常用到的一个模块,我不是做测量的,但是利用Polyworks对扫描获得的点云来进行尺寸 ...

  4. 微信小程序中开发环境下的POST请求

    写在前面 不得不说,开发环境下,微信小程序要是在发起网络请求的话,遇到的坑也是有的.尽管,微信提供了十分便捷的API 供开发者调用.今天在小程序中写了一个表单,需要提交到服务器上,于是发起了一个 PO ...

  5. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)...

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  6. Redis学习笔记~Redis在windows环境下的安装

    Redis是一个key-value的存储系统,它最大的特点就是可以将数据序列化到文件中. redis存储在服务器的内存或者文件中,它不是session,不是cookies,它只是个更安全,更稳定,更可 ...

  7. Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?

    Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved? 参考文章: (1)Myeclipse开发环境下文件 ...

  8. 解决thinkphp在开发环境下文件模块找不到的问题

    win10系统下,phpstudy开发环境下小问题描述: 找不到public公共模块. Not Found The requested URL /public/admin/login.html was ...

  9. 在win7系统 Keil 开发环境下 Jlink 仿真器连不上解决办法

    Keil 开发环境下 Jlink仿真器,在win7系统下,仿真器连不上解决办法 进入设备管理器,发现黄色问号,即windows不识别设备,分别右键点击属性,更新驱动程序.在安装keil目录下自动查找, ...

最新文章

  1. KDD Cup 2021城市大脑赛题解析!报名倒计时3天
  2. python开发工具排名-Python程序员必备的四款开发工具
  3. MySQL带关系运算符的查询
  4. Java文件读取 中文乱码
  5. js 月份加6个月_美国切削工具6月份订单较上月增加10.1
  6. [转载]EmitMapper,AutoMapper,NLiteMapper和手工映射性能大比拼
  7. Extjs, each中实现break、continue
  8. useradd和adduser的区别
  9. python3 input函数
  10. SAP 标准TCODE ME2L ME2N VL31等设置清单范围默认值(ME2L默认ALV显示)
  11. 教学用计算机房活荷载,计算机机房承重标准及承重计算方法
  12. 微服务,软件应用开发的新纪元
  13. 计算机网络局域网的组建实验报告,小型局域网组建实验报告
  14. 一、VMware及win10虚拟机的安装及环境配置
  15. 【每日一题】一起冲击蓝桥杯吧——Day1【蓝桥真题】
  16. iOS 开发中遇到的各种证书的详细说明以及申请讲解
  17. 在java中如何对数组实现添加、删除和插入操作呢?
  18. QStackWidget使用 踩坑
  19. 使用hive制作一张日历表
  20. 联机/中断网络磁盘驱动器对话框

热门文章

  1. 四种方式主导你的第一个敏捷项目
  2. Java JDBC
  3. WINDOWS故障修复台 免去重装的烦恼
  4. 编写Java程序最容易犯的21种错误
  5. 实现当UILable的内容超出其范围后自动滚动效果
  6. 第一个程序 - Windows程序设计(SDK)001
  7. JDK1.5官方下载_JDK5官方下载_JDK1.5API(chm)下载_JDK5APICHM中文参考下载_JDK1.5下载_JDK5下载...
  8. 【实战】烂泥:net use命令使用(一)
  9. 每天5分钟玩转python3算法:二分查找法
  10. 数独高阶技巧入门之四:简单异数链