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
系统连接方式
本次实验主要采集两个通道的电流数据,为了保持图片连线清楚整洁,只接入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)精度验证
为了验证所测电流值的准确性,把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测得的数据是真实可靠的,可应用于实际中。
总结