【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集 (2)

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. A***t 34401A台式六位半数字万用表

7. 应用平台:Visual Studio 2015社区版(自行下载)

8. 电脑操作系统:Windows 8.1 x32

系统连接方式

clip_image006

本次实验主要采集两个通道的电流数据,为了保持图片连线清楚整洁,只接入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所示,为了验证测试结果的准确性以及得到准确的温度,对其进行了实验测试。

clip_image008

图4 实验采集数据图

(1)精度验证

为了验证所测电流值的准确性,把A***t 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测得的数据是真实可靠的,可应用于实际中。

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzsys.html