亚当模块数据采集系统VB6.0的实现
关键词:数据采集、VB、RS-232C Abstract: ThepaperpresentshowtouseVB6.0torealizetheDAQ system.ThesystemmakeusedofEVOCiDAQ-800modules.
The datathatbetweenPCandARKmodulesistransferedbyRS-232 serialcommunicationprotocol.Itintroducesthedesignof hardwareandsoftwareofthissystem. Keywords: DataAcquisitionVBRS-232
一.前言
随着计算机技术的发展,将现场数据采集模块作为底层数据采集单元,以PC机作为监视终端,在工业现场得到了越来越广泛的应用。它具有硬件电路简单、显示操作界面友好等优点。本文重点介绍了利用Visual Basic6.0实现现场数据采集的上位机采集方法。
二.系统组成
整个系统原理框图如图1所示。系统通过iDAQ-8000系列模块直接从传感器采集模拟信号,亚当iDAQ-8000系列模块是分布式的远端数据采集模块。然后,连接到上位机上采用VB实现数据的计算处理。
在此系统中数据采集器实现原始数据的采集和处理使之成为能被计算机处理的数字信号。通过接口转换器使数据采集器与计算机通信。通过PC采集检测的数据,并编制适当的算法进行数据的最后处理计算,得到我们想要的试验数据,从打印显示设备中显示、打印需要的数据。
三.硬件构成
RS-232是目前最常用的一种串行通信接口,是PC机的标准配置。RS-232通信协议的标准提供15m以内的单端线路的单向数据传输,最大数据传输速率20KB/S。要实现PC机对RS-485数据的采集,就需要通过协议转换,将RS-485数据转换为可以与PC通讯的RS-232协议数据。通过计算机的串行通信口实现对数据采集模块的数据通讯,通过计算机来处理采集来的数据。
系统选用的数据采集模块为iDAQ-8017,是 八通道模拟输入模块,来进行传感器输出的原始数据的采集。它的输入类型是直接的模拟量输入,主要特性: 输入通道:采用6路差分和2路单端输入; 输入范围为,±5V,有效分辨率为16位; 采样频率10次/秒,精度为±0.05%; 输出:输出RS-485协议数据。
系统选用的接口转换器为iDAQ-8520,是 一种通讯模块其功能是将RS-485协议的数据转换为RS-232协议数据。主要特性: 协议:RS-485(2线)或RS-232(4线)协议; 速率:1200,2400,4800,9600,19.2K,38.4Kbps; 隔离电压:5000Vrms。
因为模块的隔离电压高达5000V,因此可以将传输线上的噪声隔离掉,即使线路上的设备因高电压的侵袭而损坏时,也不致影响到监控计算机端,而达到保护的目的。
四.现场模块各个模块的设置:
1.iDAQ-8017
地址:01 VIN0:传感器1信号; VIN1:传感器2信号 VIN2:传感器3信号
2.iDAQ-8520
此模块实现RS-485协议到RS-232协议的转换。
3.AM-T-V20/U5
系统中实际形成的接地点较多,由于各接地点的电位不同,就会产生低回路的电流叠加在信号中,使信号失去了真实性和稳定性。为消除地回路电流,系统通过增加信号隔离放大器(AM-T-V20/U5)来切断地回路电流而使信号线性通过,达到抑制干扰的目的。信号放大器选用T系列小信号隔离放大模块,模块将现场传感器输出的mV级的小信号隔离放大到0-5V的电压信号后输入到现场采集模块iDAQ-8017中。
五.软件设计
对采集到的数据进行编程处理,在所有的程序设计语言中,本文选用Microsof的VisualBasic来进行程序的编制。VB中带有一个MSCOMM的通信控件,用此控件可以方便的实现通讯功能。来实现从数据采集器中读入数据。数据采集的基本实现流程如图2所示。
1.程序初始化
MSComm控件可以让你通过串行口传输和接收数据,它的属性众多,要通过MSComm控件进行串行通讯,必须先对它进行初始参数设置。其属性设置为 MSComm1.CommPort=1'指定使用COM1作通信传输 MSComm1.Settings="9600,N,8,1" '设置初始参数,波特率9600,无奇偶校验位,8位数据位1位停止位 MSComm1.InputLen=0'Input将读取接收缓冲区的全部内容 MSComm1.OutBufferCount=0'清除接收缓冲区数据 MSComm1.RThreshold=8'引起OnComm事件的接收缓冲器收到的字符数 MSComm控件提供两种处理通信的方式:事件驱动方式和查询方式,在事件发生时需要得到通知。MSComm控件具有CommEvent属性处理此类问题,当CommEvent属性发生变化时,表示发生了一个通讯或错误事件。CommEvent属性发生变化时,将触发MSComm控件的OnComm事件,因此我们在该过程中进行检测和接收数据。 SelectCaseMSComm1.CommEvent'根据下列情况处理通信与错误事件 CasecomEvCD'CarrierDetect线状态变化 CasecomEvCTS'Clear-To-Send线状态变化 CasecomEvDSR'Data-Set-Ready线状态变化 CasecomEvRing'检测到Ring CasecomEvReceive'收到Rthreshold定义的字符数 buf=MSComm1.Input'将接收到的字符串存入buf中 EndSelect
2.采集数据
系统在工业现场使用,存在大量的干扰源,干扰侵入系统的前向通道,叠加在信号上,特别是前向通道的传感器接口是小电压信号输入,致使数据采集误差加大。在软件中采用算术平均值法这一最简单的数字滤波方法。在这种方法中,对一点数据连续采样多次,计算平均值,以其平均值作为该点的采样结果。本程序采用取5次平均值,以减少系统的随机干扰对采集结果的影响。当触发数据采集命令后,通过MSComm控件实现数据采集,其程序编制为: TimeDelay100'延时100mS sum=0 MSComm1.PortOpen=True'打开串行通信口 Fori=1To5'对同一数据连续采5次 MSComm1.Output=""'清空传输寄存器 MSComm1.InputLen=0'Input将读取接收缓冲区的全部内容 MSComm1.Output="#011"&vbCr'向1#亚当模块1通道发出读取数据命令 sum=sum+val(buf) Next sum=sum/5'取平均值 JTW.Caption=sum('显示采集的数据 TimeDelay100'延时100mS MSComm1.PortOpen=False'关闭串行通信口采集到的数据,通过程序编制存放在一定位置,通过编制相应的算法程序用于其他用途。
六.结论
本文叙述的数据采集系统,硬件连接简单、方便。对于PC机日益普及的今天,不需要增加太多的硬件设备就可以实现数据的采集。VB 6功能强大,编程简单,根据具体应用要求,增加适当的算法,可实现对采集到的数据进行不同功能的扩展,具有一定的通用性。
文章版权归西部工控xbgk所有,未经许可不得转载。