【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集
版本:第一版作者:周新稳 杨帅 日期:20160226
===========================
本资料高清PDF 下载:
http://pan.baidu.com/s/1c1uuhLQ
源代码包下载:
===========================
简介
本应用笔记主要说明如何在VB开发环境下基于RS485实现4-20mA电流采集。
系统组成及工作原理
系统组成如图1所示,主要包括 PT100铂电阻温度传感器、SBWZ温度变送器、4-20mA电流采集模块(GM1008)、USB转RS485模块(EVC8001)以及上位机VB 。
|
图1 系统组成框图
PT100铂电阻温度传感器:利用铂金属阻值随温度变化而变化的特性制成的一种温度传感器,主要用来测量温度的变化量。
SBWZ温度变送器:一种现场安装式温度变送单元,主要将铂电阻的信号变换成线性4-20mA的输出信号。
4-20mA电流采集模块(GM1008):RS485接口的GM1008电流采集模块,主要实现数据的采集与传输,并通过RS485接口与上位机进行通讯。
USB转RS485模块(EVC8001):实现GM1008的RS485接口与上位机的USB接口成功连接。
上位机VB:制作上位机界面,实现被测数据的采集、分析和显示。
系统工作过程中,当温度发生变化时,
PT100铂电阻温度传感器的电阻值发生变化,其阻值经过SBWZ温度变送器转换为电流信号,并通过4-20mA电流采集模块(GM1008)及USB转RS485模块(EVC8001)与上位机通讯,从而实现DI电流的采集、分析及显示。
电流采集模块
系统采用RS485接口的8通道4-20mA电流采集模块(GM1008),不仅能更加快速、精确的把测量数据传送给上位机,保证系统的效率,而且可以使系统的信息传输更加稳定。
GM1008简介
GM1008 8通道4-20mA电流采集模块(以下简称模块)采用全电器隔离方案,配合高性能微处理器及8通道12位ADC在较小的体积下完成了电流测量功能。
模块内置高性能电源变换电路,供电电压范围宽至7.5V-36V,且效率高达90%以上。此特性为长时间使用的电源稳定性提供保障。模块内置1500V双隔离电源模块,使得供电输入、模拟测量电路及通信接口三者之间相互隔离,此特性为测量精度、模块稳定性及通用性提供保证。
模块内置基于磁耦合隔离技术的高品质RS485电路,长期使用稳定可靠,抗干扰强、不掉线。
模块内置32位的高性能ARM微处理器,它不但完成8通道、12位电流采集,而且支持固件升级功能,为后期功能升级和Bug修复提供技术保证。
VB上位机程序设计
VB开发环境介绍
VB全称为Visual Basic,是一种由微软公司开发的包含协助开发环境的时间驱动编程语言,拥有图形用户界面和快速应用程序开发系统,可以轻易的使用DAO、RDO、ADO连接数据库,或轻松的创建Active控件。鉴于VB的这些性能满足本系统的应用需求,故在此选择VB作为本实验的上位机开发环境。
软件使用方法
软件界面如图2所示。
图2 软件界面
软件的具体操作方法如下:
1. 在Port里设置端口(端口号由查询设备管理器获得);
2. 在Baudrate里面设置波特率,一般固定为9600;
3. 在Parity里面设置奇偶校验,一般固定为None(无校验);
4. 在Stop Bits里面设置停止位,一般固定为One(一个停止位);
5. 在Address里面设置从机地址,固定为1;
6. 点击Open按键,自动连接RS485,此按键变为Close;
7. 点击Start按键,开始采集电流;
8. 点击Stop按键,停止采集;
9. 点击Close按键,则断开RS485,清除数据。
软件核心代码
核心代码主要有两部分:CRC校验代码(见附录1)和数据处理代码(见附录2)。
1. CRC校验代码:CRC校验是为了保证数据的准确传输,其中CRC校验的方法有多种,本程序采取的是查表法,大大提高了校验速度。
2. 数据处理代码:其中modbus_fun3表示选择modbus的功能代码为3,是读取保持寄存器功能。此部分代码从214行到221行为modbus通信格式的寄存器设置部分,接下来是数据的发送命令和接收命令,以及后面对接收到的数据进行处理以方便以物理量的形式显示。
测量采集演示及说明
配备工具或软件
1. 12V电源
2. PT100铂电阻温度传感器
3. SBWZ系列温度变送器
4. RS485接口8通道4-20mA电流采集模块(GM1008)
5. USB转RS485模块(EVC8001)
6. Aligent 34401A台式六位半数字万用表
7. 应用平台:Visual Studio 2015社区版(自行下载)
8. 电脑操作系统:Windows 8.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. 根据系统主要硬件连接图(图3)连接各组件;
2. 接入两个温度变送器,GM1008配置两个通道,将CH0设定为开水数据采集通道,CH1设定为打火机火焰数据采集通道;
3. 然后在程序界面设置好端口以及相关参数(从机地址Address一般固定为1);
4. 将两个PT100铂电阻分别放入开水与打火机火焰中(具体操作为点击界面的Open按钮,连接以后点Start按钮,系统会自动采集数据,操作简单方便)。
测试结果
实验采集数据界面如图4所示,为了验证测试结果的准确性以及得到准确的温度,对其进行了实验测试。
图4 实验采集数据图
(1)精度验证
为了验证所测电流值的准确性,把Aligent 34401A 台式六位半数字万用表串联到SBWZ温度变送器后端的电路中,将万用表的电流读数与上位机显示的电流值进行对比。实验结果如表1所示,经过多次实验,两组数据结果基本相同。
表1 实验各项数据表
被测对象 |
GM1008测量值 |
万用表 测量值 |
SBWZ 对应温度 |
水(CH0) |
7.68mA |
7.64mA |
92℃ |
打火机(CH1) |
19.67mA |
19.65mA |
393℃ |
(2)实验验证
由SBWZ温度变送器以及PT100铂电阻的量程之间的关系,得出实际测得电流与温度之间符合关系式:
y=25*x-100
测得的电流值对照计算知所测水温约为92℃,火焰约为393℃(由于火焰温度高于PT100的最大测量值,所以到19mA以后停止实验,以免损坏设备),测试结果与实际相符。
故由测试可知:本系统在VB开发环境基于RS485测得的数据是真实可靠的,可应用于实际中。
总结
本应用系统的测试成功,充分证明了在VB开发环境下基于RS485的4-20mA电流采集是可行的,上位机软件制作的界面使测量的操作简单,数据清晰,便于用户对工业自动化系统的数据进行实时的监控,满足行业对数据的需求。
参考资料
1. 《VB语言程序设计》
2. 《C程序设计语言》
相关资源下载
1、Visual Studio 2015下载地址:
https://www.visualstudio.com/downloads/download-visual-studio-vs
2、GM1008 简易手册:
http://files.cnblogs.com/files/xiaomagee/GM1008%E7%AE%80%E6%98%93%E6%89%8B%E5%86%8CV1.0.pdf
3、GM1008 用户手册:
http://files.cnblogs.com/files/xiaomagee/GM1008%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8CV1.0.pdf
4、GM1008 购买地址:
https://item.taobao.com/item.htm?spm=a1z10.3c.w4002251610686.9.zoJaPi&id=522203245449
附录1:CRC校验代码
|
|
附录2:显示通道数据程序
|
【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集的更多相关文章
- 【应用笔记】【AN005】Qt开发环境下基于RS485的4-20mA电流采集
简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍在Qt开发环境下基于RS485实现4-20mA电流采集,实现WINDOWS平台对数据的采集.分析及显示. 系统组成 ...
- eclipse环境下基于已构建struts2项目整合spring+hibernate
本文是基于已构建的struts2项目基础上整合 spring+hibernate,若读者还不熟悉struts2项目,请先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 ...
- .NET环境下基于RBAC的访问控制
.NET环境下基于RBAC的访问控制 Access Control of Application Based on RBAC model in .NET Environment 摘 要:本文从目前信息 ...
- Windows 环境下基于 nginx 的本地 PyPI 源
Windows 环境下基于 nginx 的本地 PyPI 源的搭建: 1.登录 nginx 官网,下载安装包
- CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...
- 【应用笔记】【AN003】VC++环境下基于以太网的4-20mA电流采集
简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC++环境下进行温度采集,实现WINDOWS平台对数据的采集.分析及显示 ...
- 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)
版本:第一版 作者:毛鹏 杨帅 日期:20151108 简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC#环境下进行温 ...
- Go学习笔记(一):Ubuntu 环境下Go的安装
本文是根据<Go Web 编程>,逐步学习 Ubuntu 环境下go的安装的笔记. <Go Web 编程>的URL地址如下: https://github.com/astaxi ...
- [Done]SnowFlake 分布式环境下基于ZK构WorkId
Twitter 的 Snowflake 大家应该都熟悉的,先上个图: 时间戳 序列号一般不会去改造,主要是工作机器id,大家会进行相关改造,我厂对工作机器进行了如下改造(估计大家都差不多吧,囧~~~ ...
随机推荐
- shell-bash学习04读取输入、分隔符、流程控制
读入输出 输入通常是通过stdin或参数传递给命令; 输出出现在stderr或stdout; 管道,过滤器,管道操作符: cmd1 | cmd2 | cmd3; //最后还有输出 ls | cat - ...
- Appium Java Windows环境搭建篇
1. 安卓SDK及配置环境变量 1.1.先下载sdk安装包:installer_r24.4.1-windows.exe 下载地址:链接: http://pan.baidu.com/s/1dEyPSa9 ...
- 分布式缓存技术memcached学习(一)——linux环境下编译memcahed
安装依赖工具 [root@localhost upload]# yum install gcc make cmake autoconf libtool 下载并上传文件 memcached 依 ...
- HBase 学习笔记
1. HBase 的特点 1.线性扩展,自动分表 region的自动分裂以及master的balance 增加datanode机器即可增加容量 增加regionserver机器即可增加读写吞吐量 2. ...
- HowTo:使用数据流读写消息
本文主要演示使用TPL 数据流库从数据流块(dataflow block)读写消息. 提供了同步方法和异步方法. 主要使用BufferBlock,其既能作为message source,有能作为m ...
- Find Minimum in Rotated Sorted Array
package leetcode; /* * * 注意问题: * 1. 原序列升序.降序问题,两种情况都要考虑 * 2. 边界问题,如果只有两个元素时要单独考虑,在num[mid]==num[left ...
- Android开发环境变量配置总结
每次重装系统或者拿到一台新电脑都得重配Android的环境变量,每次都得上网查,索性就记在这儿吧. “系统属性->高级系统设置->环境变量” 打开环境变量配置窗口. JDK配置: 新建JA ...
- Ubuntu下SVN配置
今天上午写了一个脚本,然后想起来现在写的R脚本,常常在分析过程中就直接改掉了.隐隐还是觉得存在隐患,想着svn部署应该不会太难,于是就直接动手干了. 弄了一上午的时间,感觉还是花了点时间. 这里有篇b ...
- <构建之法>3-5章感想
提示:(下面的总结我会按照每章发现的问题,自己的回答,感想来陈述) 3章. 在阅读3.2.4职业成长-自我评估的时候,说到CRUD需要一些核心技术和许多控扩展的知识,那么作为软件工程的学生,在学校除了 ...
- Go语言练习:网络编程实例——简易图片上传网站
1.代码结构 2.运行实例 1.代码结构 $ tree . ├── photoweb.go ├── public │ ├── css │ ├── images │ └── js ├── u ...