利用VB实现基于RS-485总线上位机的数据采集与控制

合集下载

利用VB实现串口数据采集

利用VB实现串口数据采集

利用VB实现串口数据采集
于大方
【期刊名称】《山东广播电视大学学报》
【年(卷),期】2002(000)003
【摘要】本文给出了工业数据采集的常见模式,给出了具体连接示意图,同时提出了一种通过RS485方式、利用VB实现作为主方式微机的一个串口对多个从方式的不同种类串行设备的快速通信算法.
【总页数】2页(P60-61)
【作者】于大方
【作者单位】青岛广播电视大学,山东,青岛,266000
【正文语种】中文
【中图分类】TP274
【相关文献】
1.利用VB实现串口通讯在水工闸门远程控制系统中的应用 [J], 茹世荣;汪丹
2.利用VB串口通讯实现对滚珠丝杠磨削误差控制的研究 [J], 刘剑
3.基于VB 6.0串口通信的气压测高系统数据采集实现 [J], 王晓岚
4.利用VB实现计算机与单片机的串口通信 [J], 柴学宁
5.利用VB实现PC机对PRAC5210锁相放大器的串口通讯控制设计 [J], 周章渝;吴次南;董昌文
因版权原因,仅展示原文概要,查看原文内容请购买。

使用VB6.0语言开发RS-485串行通信程序

使用VB6.0语言开发RS-485串行通信程序

使用VB6.0语言开发RS-485串行通信程序
周东;杨杰
【期刊名称】《上海船舶运输科学研究所学报》
【年(卷),期】2005(028)002
【摘要】在简要比较几种常用串行通信使用特点的基础上,结合船舶自动控制中集控室和损管室的即时通信实例,详细阐述了用VB6.0语言开发RS-485串行通信程序的过程.同时简要叙述RS-485串行通信硬件设施,并对RS-485至CAN间通讯的通讯卡开发作了具体描述.
【总页数】5页(P108-112)
【作者】周东;杨杰
【作者单位】上海船舶运输科学研究所船舶控制部,上海,200135;上海船舶运输科学研究所船舶控制部,上海,200135
【正文语种】中文
【中图分类】TP312
【相关文献】
1.基于VB6.0实现微机与单片机串行通信程序设计 [J], 于海峰
2.使用VB开发PLC的串行通信程序 [J], 张智杰
3.使用Java语言开发串行通信程序 [J], 孟亮;马培荪
4.Linux系统下RS-485串行通信程序设计 [J], 王志颖;马卫东
5.用VB
6.0开发微机与多台单片机之间的串行通信程序 [J], 赵文敏;寿彩丽
因版权原因,仅展示原文概要,查看原文内容请购买。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术VB6.0是一种编程语言,可用于开发上位机与PLC之间的实时通信技术。

PLC是一种可编程逻辑控制器,用于控制和监控自动化设备。

通过实时通信,上位机可以与PLC进行数据交换和控制操作。

1. 通信协议选择:PLC与上位机之间的通信需要选择适当的通信协议。

常见的通信协议包括Modbus、OPC、Profibus等。

根据实际需求和设备的支持情况选择合适的通信协议。

2. 串口通信:VB6.0通过串口通信与PLC进行连接。

通常采用RS232、RS485等串口通信方式。

在编程中,需要设置串口的波特率、数据位、停止位、校验位等参数。

通过VB6.0的串口通信类库,可以实现数据的读取和写入。

3. 数据采集和监控:通过VB6.0实现对PLC数据的采集和监控。

可以使用定时器触发方式,周期性的读取PLC设备的数据。

通过VB6.0的数据处理和显示功能,可以实时显示PLC设备的状态和数据信息,如温度、压力、流量等。

4. 控制指令的发送:通过VB6.0向PLC发送控制指令,实现对设备的控制。

根据PLC 的控制逻辑,编写相应的控制程序,将控制指令发送给PLC设备。

通过串口通信,将控制指令发送出去,实现设备的开关、调节等操作。

5. 异常处理:在实时通信中,可能会出现通信故障、数据错误等异常情况。

需要在编程中添加异常处理的代码,对异常情况进行处理,保证通信的稳定性和可靠性。

基于VB6.0的上位机与PLC实时通信技术可以广泛应用于自动化控制、工业监控、智能家居等领域。

通过实时通信,可以实现对设备的远程监控和控制,提高设备的自动化程度和工作效率。

在编程过程中,需要注意通信协议的选择和参数的设置,以确保通信的正确和可靠。

需要添加适当的异常处理机制,提升系统的稳定性和可靠性。

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码
'<<算法>>
Dim CRC_2() As Byte
Dim v As Integer
ReDim CRC_2(K)
For v = 0 To K
CRC_2(v) = Val("&H" & Text1(v).Text)
Next
'==================================================================================================
'
'Next
'Label35.Caption = Str(Val(Asc(Mid(tmp, 6, 1))) / 10)
'
'
' tmp = Mid$(tmp, 6, 4)
'
'
' Dim strHex As String
' Dim Hex2Dec As Long
' Dim strTmp As String
'a = 0
'tmp = 0
'
'
'
' Do While Len(tmp) < 8
'
' tmp = tmp + MSComm1.Input
' testNO.Caption = testNO.Caption + " " + Str(Hex(Asc(tmp)))
' a = a + 1
' If a >= 3000 Then

vs2008(VB)与三菱PLC485BD通讯

vs2008(VB)与三菱PLC485BD通讯

搞技术,搞不定,很闹心!别人的奉献可以使你明朗,心情愉悦!奉献是快乐的!不要吝啬你千辛万苦摸索出来的技术!与三菱PLC的串行通讯要点PLC测的设置页面(在PLC左侧工程树下点击参数设置,然后写到PLC里)485硬件连接:rs232转485端的A接PLC的485BD上的RDA和SDA(如下图的红线),B接485BD上的RDB和SDB(如下图的白线)。

如果以设置了还不正确,要看看电脑端的串口接好没有,连线有没有短线等。

窗体源码:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadmPort = 1MSComm1.Settings = "9600,E,7,1"MSComm1.Handshaking = None MSComm1.InputLen = 0MSComm1.InBufferCount = 0MSComm1.OutBufferCount = 0MSComm1.PortOpen = TrueEnd Sub按钮及文本显示源码:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickMSComm1.InBufferCount = 0MSComm1.OutBufferCount = 0MSComm1.InputLen = 0Dim fanhui As StringDim zhuangtai As Stringzhuangtai = Chr("5") + "05FFBRAX00010140"MSComm1.Output = zhuangtaiDoApplication.DoEvents()Loop Until MSComm1.InBufferCount = 9fanhui = MSComm1.InputText1.Text = "x001状态" + "------" + "数据为:" + fanhui End Sub注意:VB6.0用chr(5)表示,但是要用chr("5")表示,否则出错。

使用VB实现的基于串口通信的数据采集系统毕业设计

使用VB实现的基于串口通信的数据采集系统毕业设计

基于串行口的数据采集系统的设计摘要:数据采集在日常生活中有着广泛的应用,特别是在一些对数据的准确性,实时性要求比较高的场合,需要设计专用的电路来实现系统的需求,而系统的功能的实现,与我们对元器件的选型,设计搭建的电路有直接的关系,它们直接影响着系统对外界环境的感知和响应能力,决定着系统的性能。

数据采集在工业控制领域有着广泛的需求,本设计是实现基于串行口的数据采集系统,以采集周围的环境温度为采集对象,以STC89C51单片机作为下位机,以PC机作为上位机,使用9针串口来实现下位机和上位机的通讯。

通过在PC机上使用VB6.0开发软件来开发实现数据接收显示控制界面。

系统调试结果表明,该系统设计合理,对周边环境温度的变化反应敏感,数据采集的波特率达到9600bps.关键字:数据采集系统、STC89C51单片机、串口通信、VB中图分类号:TP2IDesign of Data Acquisition System Base on SerialCommunicationABSTRACT: Data collection is widely applied in daily life, especially in the place which is very high request in data accuracy, real time display. A special circuit is need to be designed to realize it. Also, it have much connection with the sensor and circuit design , they influence the system’s sensor and response ability very much , it directly determined the system’s character.Nowadays, Data collection is widely requested in the industry control area. The system is designed to realize the data acquisition according to the serial port , collecting the temperature around the environment as collection object , use STC89C51 single-chip microcomputer as down machine , use personal computer as upper machine , use 9 pin serial port to realize the down SCM and upper PC’s communication . A display control form was made use the VB6.0 software . The experiment have done display that , the design was reasonable , it was very sensitive to the temperature’s ch ange around the environment .The system’s data collection speed could arrived to 9600bps.关键词:data collection system;STC89C51 single-chip microcomputer;serial communication;Visual Basic中图分类号:TP2II目次摘要 (I)ABSTRACT (II)目次 .......................................................................................................................................I II 1绪论. (1)1.1研究的背景和意义 (1)1.2数据采集系统的研究现状 (1)1.3研究思路和方法比较 (2)1.4本章小结 (3)2 基于串行口的数据采集系统的总体设计与分析 (4)2.1 基于串行口的数据采集系统的总体设计思想 (4)2.2 设计方案与论证 (4)2.3 本章小结 (5)3 下位机的设计 (6)3.1传感器的选择 (6)3.2 TTL与RS232电平的转换 (7)3.3单片机电路设计 (8)3.4系统总的电路设计实现 (8)3.5本章小结 (10)4 上位机的设计 (11)4.1 Visual Basic设计介绍 (11)4.2 Visual Basic 设计实现 (12)III4.3 本章小结 (13)5 系统结果和分析 (14)5.1 实验调试与结果 (14)5.2 本章小结 (18)6总结 (19)参考文献 (20)附录(下位机实现程序代码) (21)个人简历 (22)学位论文数据集 (23)IV1 绪论1.1 研究的背景和意义在计算机广泛应用的今天,数据采集在很多领域有着十分重要的应用。

基于RS485总线的分布式高精度数据采集系统

基于RS485总线的分布式高精度数据采集系统

㊀2021年㊀第2期仪表技术与传感器Instrument㊀Technique㊀and㊀Sensor2021㊀No.2㊀基金项目:国家自然科学基金杰出青年基金资助项目(61525107)收稿日期:2020-03-24基于RS485总线的分布式高精度数据采集系统陈㊀航1,严㊀帅2,刘㊀胜1,张会新1(1.中北大学,仪器科学与动态测试教育部重点实验室,山西太原㊀030051;2.北京宇航系统工程研究所,北京㊀100076)㊀㊀摘要:针对分布式测试系统中物理量种类多㊁相互之间易干扰,数据需要远距离传输的要求,设计了一种基于RS485总线的分布式数据采集系统㊂该系统主要包含上位机㊁主控站点和被控站点,通过定制USB和RS485总线通信协议,实现了总线上40个站点的轮询测量或单站点单通道测量㊂实验结果表明,该系统实现了数据的可靠传输,有效解决了大面积环境下进行分布式高精度数据采集的问题,具有较好的实用价值㊂关键词:分布式;RS485总线;高精度;智能化;ADS1258;数据采集中图分类号:TP302㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1002-1841(2021)02-0071-04DistributedHigh⁃precisionDataAcquisitionSystemBasedonRS485BusCHENHang1,YANShuai2,LIUSheng1,ZHANGHui⁃xin1(1.NorthUniversityofChinaTheMinistryofEducationKeyLaboratoryofInstrumentScienceandDynamicMeasurement,Taiyuan030051,China;2.BeijingAerospaceSystemsEngineeringInstitute,Beijing100076,China)Abstract:AdistributeddataacquisitionsystembasedonRS485buswasdesignedforthesituationthattherearemanykindsofphysicalquantitieswhichareeasytointerferewitheachother,andthedataneedstobetransmittedoverlongdistances.Thissystemmainlyincludedthehostcomputer,themasterstationandthecontrolledstation.BycustomizingtheUSBandRS485buscommunicationprotocols,itimplementedpollingmeasurementof40stationsonthebusorsingle⁃channelmeasurement.Theexper⁃imentalresultsshowthatthesystemachievesreliabledatatransmissionandeffectivelysolvestheproblemofdistributedandhigh⁃precisiondatacollectioninlarge⁃scaleenvironment,whichhashighpracticalvalue.Keywords:distributed;RS485bus;highaccuracy;intelligent;ADS1258;dataacquisition0㊀引言在一些分布式测试系统中,不可避免地要对被测环境不同位置地点多种物理量(湿度㊁温度㊁压力等)进行精确采集和测量[1-2]㊂传统的测试系统大多采用点对点连线的电缆对传感器的模拟量信号进行传输,这种方式一方面容易受到周围电磁环境的影响,降低采集精度;另一方面增加了测试系统中电缆的消耗量和成本,还在一定程度上影响采集系统的健壮性㊂为了提高测试系统的智能化程度和精确度,设计了一个基于RS485总线的分布式高精度数据采集系统,将各地点的传感器信号通过采样转换为数字信号,通过RS485总线传至系统主控站点[3-5]㊂和现有的测试系统相比,增加了数据采集通道个数和采集精度,最多可实现640个测点数据的轮询采集,提高了数据传输的智能化水平㊂1㊀系统总体设计分布式数据采集系统主要包含上位机㊁RS485总线主控站点和40个RS485总线被控站点等部分,原理框图如图1所示㊂主控站点与上位机通过USB接口交换数据,在上位机下传的数据被解析后,FPGA将其通过主站RS485模块发出并与配对成功的被控站点通信㊂根据不同的命令,可以实现不同速率下的固定通道和自动扫描通道数据采集功能㊂主控站点在接收到数据后进行打包,通过USB接口传至上位机,实现了一主控站点多被控站点的高速RS485通信㊂每个被控站点包含RS485总线模块㊁FPGA控制模块㊁A/D采集模块等,属于独立的数据采集子系统,原理设计图如图2所示㊂与主控站点下传的站点号匹配正确后,FPGA首先对ADS1258相关寄存器进行配置,开始A/D采集,完成后将数据传至主控单元㊂㊀㊀㊀㊀㊀72㊀InstrumentTechniqueandSensorFeb.2021㊀图1㊀系统整体原理框图图2㊀被控站点设计示意图2㊀系统硬件设计2.1㊀FPGA控制模块系统选用Spartan-6系列FPGA作为主控芯片㊂在主控站点的硬件电路设计中,选择XC6SLX150芯片对RS485总线通信芯片ISO1176T和USB接口芯片FT2232进行控制,其电路连接示意如图3所示㊂被控站点的A/D采集芯片ADS1258及RS485通信芯片通过SPI接口与FPGA连接,电路设计如图4所示㊂图3㊀主控站点FPGA电路设计图图4㊀被控站点FPGA电路设计图2.2㊀RS485总线模块分布式数据采集系统具有分布范围大㊁电磁环境复杂㊁传输节点要求多等特点㊂为满足设计要求,选用RS485总线通过差分线的压差传输数据,可以极大地减少传输过程中的共模干扰,提高数据传输系统的健壮性[6]㊂总线接口芯片ISO1176T内部集成了变压器驱动器,在不要外部光耦的情况下实现隔离式供电,该芯片最大可支持256个从节点,最大数据传输速率达到40Mbps,详细的电路连接图如图5所示㊂图5㊀RS485总线模块电路连接图2.3㊀A/D转换模块被控站点采用ADS1258对来自传感器的模拟量信号进行模数转换㊂ADS1258具有24位采样分辨率,固定通道的采样速率能达到125KSPS,16个通道同时采集最高速率可达23.7KSPS,同时还集成了片上温度传感器,可以通过读取寄存器来读取芯片工作温度,它的工作温度为-40 105ħ,此外还有低温漂㊁低噪声等特点,非常符合系统的设计要求[7-8]㊂FPGA和ADS1258通过SPI接口相连,CLKIO为外部时钟输入引脚,来自FPGA的16MHz时钟通过50Ω电阻后与其相连,同时要将时钟选择引脚CLKSEL置高,芯片模拟供电电压为AVDD=5V,AVSS=AGND,参考电压为VREF=VREFP-VREFN=5V,数字供电电压为DVDD=3.3V,DVSS=DGND㊂ADS1258的硬件电路如图6所示㊂㊀㊀㊀㊀㊀第2期陈航等:基于RS485总线的分布式高精度数据采集系统73㊀㊀图6㊀ADS1258接口电路设计图2.4㊀USB接口设计FT2232H为支持高速USB2.0通信的接口芯片,支持最高480Mbps的通信速度㊂它有A㊁B2个数据传输通道,根据设计需要可以配置成多种速度模式,具体的接口如图3所示㊂芯片的工作模式为FT245异步FIFO接口模式,93LC56B为EEPROM,用于保存FT2232H配置完后的相关信息[9]㊂3㊀系统软件设计3.1㊀主控站点软件设计主控站点通过USB接口实现和上位机的数据交换,根据不同指令实现数据打包传输和被控站点寄存器配置功能[10]㊂FT2232H的数据收发时序通过FPGA控制,具体的读写时序如图7所示㊂RXF#信号为芯片输出信号,当缓存Buffer内部有读数空间时输出为低,这时可以拉低RD#信号进行一次8位FIFO数据的读取,然后RXF#信号被拉高,这期间不能进行读数操作,等RXF#再次拉低时进行下一次读数操作,写数据过程和读数据过程类似㊂图7㊀FT2232H读写时序图上位机和主控站点的通信协议如表1所示㊂在系统上电完成复位后,若接收到命令的第一个字节为25h,再继续判断下一个字节,若命令是55h(查询指令),则根据表1所示的通信协议进行RS485总线通信,主控站点从1到40依次查询被控站点,并将收到被控站点的数据上传至上位机进行显示㊁存储;若命令是ACh(寄存器配置指令),则对上位机的命令拆分处理,把后4个字节的数据根据总线通信协议进行打包,然后转发至对应的被控站点㊂表1㊀上位机通信协议命令有效标志8bit命令字8bit数据位32bit寄存器配置命令25hACh被控站点地址8bit站点配置数据24bit查询命令25h55h无效位停止命令25h90h无效位㊀㊀总线数据传输采取CRC-4进行差错控制,通信协议如表2所示㊂主控站点将校验无误的数据传送给上位机显示存储,校验不通过则再一次查询该站点,如果连续3次数据校验不通过,则将站点序号告诉上位机,然后进行下一个站点查询,避免了因某个站点工作异常而使整个系统无法工作,提高了数据采集系统的可靠性性和抗干扰能力[11]㊂表2㊀RS485总线通信协议起始位1bit有效数据位32bitCRC码4bit停止位3bit0被控站点地址8bit站点数据㊀24bitCRC-41113.2㊀被控站点软件设计被控站点作为独立的数据采集系统,主要完成16路模拟量信号采集和RS485总线通信工作㊂根据系统设计要求,ADS1258默认工作模式为以23.7KSPS㊀㊀㊀㊀㊀74㊀InstrumentTechniqueandSensorFeb.2021㊀采样速率自动扫描16个模拟量输入通道,寄存器通过SPI接口进行配置,DIN管脚为数据输入引脚,CONFIG1寄存器主要涉及采样速率的设置,命令字和寄存器地址为61h,相应的配置数据为03h;MUXSG0和MUXSG1寄存器主要进行采样通道选择,命令字和寄存器地址分别为64h和65h,相应的配置数据都为FFh㊂根据SCLK管脚的时序写入配置寄存器的数据,如图8所示,在片选信号CS拉低时,有效命令和数据在SCLK上升沿从最高位开始顺序进入DIN管脚㊂图8㊀ADS1258寄存器配置时序图系统运行后,被控单元首先按照默认值对ADS1258的寄存器进行配置,配置完成后对相关寄存器的值进行读取,验证是否配置正确,随后开始监测RS485总线上的数据,当与总线上的站点序号验证成功后,进行数据采集和发送数据,工作软件设计流程如图9所示㊂上位机可以对各被控站点的寄存器进行重新配置,以满足特殊测试要求㊂图9㊀被控站点软件设计流程图ADS1258开始进行数据采集时,首先将START管脚进行拉高,程序开始检测DRDY管脚的电平状态,当为低电平时,表示一个通道模拟量完成转换,读取有效数据共计32位,高8位包含状态信息和通道信息,低24位代表转换的有效数据㊂ADS1258可以在小于700μs的时间内处理完16路通道的数据采集㊂4㊀测试结果分布式数据采集系统的RS485总线上间隔1m设置一个被控站点,总线长度共计40m㊂系统测试时,在第一个被控站点15通道输入2V电压,其余的被控站点和通道不输入电压,使用上位机发送查询命令后回传的数据见图10㊂图10㊀测试数据根据上位机的数据显示,主控站点按顺序查询了被控站点的16路采集通道,EB90EB90是子站点数据发送结束标志,很好地完成了主控站点控制下的数据采集功能㊂数据 ADD00001962F77E9 中 ADD0000196 表示第一个被控站点15通道的数据采集结果, 2F77E9 转变成电压为1.9778V,高精度万用表显示实际电压为1.9789V,所以系统的采集精度为0.6%,表明数据采集系统的精度很高㊂5㊀结束语分布式数据采集系统的设计采用24位的模数转换芯片ADS1258,提高了模拟量数据采集精度,选用RS485总线进行数据的传输,增加了系统挂载的站点数量,总线驱动器芯片ISO1176T的使用实现了电源隔离,减少了周围环境的干扰㊂测试表明,系统数据传输可靠,精度很高,同时还可以根据(下转第79页)㊀㊀㊀㊀㊀第2期李鹏飞等:基于NVIDIATX2模块的双目视觉信号采集系统设计79㊀㊀效果图,在界面上定义一个全黑灰度图,将接收到的坐标点以白色画出,实时采集发送帧率为140fps,采集处理图像无丢帧失帧现象,发送数据包无丢包现象,稳定性好,满足了设计要求㊂6 结论针对胶体三维信息检测面临的缺失高帧率㊁采集实时性的问题,设计了一套双目视觉信号采集系统,该采集系统具有4路线结构光采集系统,实现了双目实时信号采集㊂其中以嵌入式NVIDIATX2为核心详细介绍了图像采集㊁处理以及中心线坐标发送的全过程,结合了小型化硬件以及简便的上位机界面,集成了一套小体积㊁高效率㊁方便操作和移动的采集系统㊂实验测试表明系统稳定性好,精度高,满足了设计要求,为汽车关键部件胶体三维测量做好了充分准备,具有较好的实用价值㊂参考文献:[1]㊀任勇峰,王国忠.基于CMOS传感器的高性能图像采集系统设计[J].仪表技术与传感器,2019(1):64-67.[2]㊀岳昊,武栓虎.基于机器视觉的医用瓶盖质检系统设计[J].仪表技术与传感器,2019(10):83-87.[3]㊀杨长辉,黄琳.基于机器视觉的滚动接触疲劳失效在线检测[J].仪表技术与传感器,2019(4):65-69.[4]㊀相江.线结构光传感器系统建模与误差分析[D].合肥:合肥工业大学,2019.[5]㊀章金敏.基于激光三角法的物体三维轮廓测量系统[D].武汉:武汉理工大学,2015.[6]㊀戴力.汽车涂胶工艺应用研究[J].汽车零部件,2017,23(8):71-74.[7]㊀朱立忠,陈美洋.一种基于机器学习的汽车涂胶缺陷检测研究[J].沈阳理工大学学报,2018,23(4):18-22.车工艺师,2019,25(7):61-64.[9]㊀吴勇,雷旭智.科惠力测量技术在缸体表面刀痕问题中的应用[J].装备制造技术,2017,16(8):121-123.[10]㊀唐广辉,穆建华,夏志豪.基于科惠力测量技术的发动机故障诊断应用[J].汽车科技,2015,23(1):52-56.[11]㊀OLENSKYJAG,DONISIR,BORNHORSTGM.Nonde⁃structivecharacterizationofstructuralchangesduringinvitrogastricdigestionofapplesusing3Dtime⁃seriesmicro⁃computedtomography[J].JournalofFoodEngineering,2020,267:1-11.[12]㊀金贝.基于HALCON的机器视觉教学实验系统设计[D].北京:北京交通大学,2012.[13]㊀方玉红.基于机器视觉的轨道缺陷图像检测系统设计[D].南昌:南昌大学,2013.[14]㊀MICHAELLB,NELEV,PANFILOVAV,etal.R⁃From⁃TasacommonmechanismofarrhythmiainitiationinlongQTsyndromes[J].Circulation.ArrhythmiaandElectrophysiology,2019,12(12):1-15.[15]㊀李杰强.基于线阵CCD的微位移传感器设计与研究[D].广州:华南理工大学,2012.[16]㊀刘文倩,沈三民,刘利生,等.基于以太网与FPGA的多通道信号源的系统设计[J].仪表技术与传感器,2019(1):30-33.[17]㊀何能正,董建云,何岸.以太网数据包分段传输技术[J].光通信技术,2013,37(9):24-27.作者简介:李鹏飞(1994 ),硕士研究生,主要研究方向为嵌入式机器视觉㊂E⁃mail:lipengfeihuft@163.com通信作者:卢荣胜(1963 ),教授,博士生导师,主要从事机器视觉和精密测量等方面的研究㊂E⁃mail:rslu@hfut.edu.cn(上接第74页)要求变换采集通道数量和采集速率,该分布式数据采集系统具有较好的实用价值㊂参考文献:[1]㊀韩慧.基于RS485总线的温室环境监测系统[J].仪表技术与传感器,2012(3):64-65.[2]㊀李木国,王延国,孙慧涛.基于EtherCAT总线的串联型分布式据采集系统设计[J].计算机测量与控制,2016,24(6):195-198.[3]㊀童一飞,王红亮,低功耗IEPE传感器数据采集系统的设计与实现[J].电测与仪表,2019,56(5):101-104.[4]㊀唐夕晴,李建闽,佘晓烁.RS485总线接口性能测试仪设计与开发[J].电测与仪表,2018,56(7):142-147.[5]㊀张志,李琮琮,王平欣,等.智能电能表RS485接口设计方案综述[J].电测与仪表,2015,53(5):124-128.[6]㊀白冰.基于485总线的分布式输入输出系统[D].天津:天津大学,2017.[7]㊀吴平,骆朝亮.基于USB的ADS1258传感器信号采集系统[J].软件导刊,2010(6):65-67.[8]㊀金永杰,龙平,熊剑平.24位高精度模数转换器ADS1258的原理及应用[J].电子设计工程,2008(6):61-64.[9]㊀王辉,陈爱生.基于FT2232H的USB2.0数据采集系统设计[J].电子器件,2015(1):144-147.[10]㊀李超.基于FPGA+USB2.0高速数据采集系统的研究与设计[D].武汉:武汉理工大学,2013.[11]㊀TONGXR,SHENGZB.DesignofUARTwithCRCcheckbasedonFPGA[J].AdvancedMaterialsResearch,2012,490-495:1241-1245.作者简介:陈航(1993 ),硕士研究生,研究方向为嵌入式智能仪器㊂E⁃mail:614441509@qq.com通信作者:张会新(1980 ),博士,副教授,研究方向为动态测试技术与仪器㊂E⁃mail:zhanghx@nuc.edu.cn。

毕业设计(论文)-基于RS-485的多路数据采集模块的设计

毕业设计(论文)-基于RS-485的多路数据采集模块的设计

1 绪论1.1基于RS-485的多路数据采集模块的设计综述1.1.1基于RS-485的多路数据采集模块的意义和任务“基于RS-485的多路数据采集模块”完成的任务是测得电压、电流、温度等模拟量信号,经过模块内部处理,通过RS-485总线传给计算机。

自然界所存在的一些物理量和大量的是模拟量,例如压力、流量、温度、轴角、光通量、位移等,它们是非电模拟量。

这些模拟量不能送进数字计算机进行处理,必须先经传感器件将其转换成模拟电信号,经过放大后送至模拟/数字转换器,将模拟信号转换成数字信号。

数字信号经过数字计算机分析处理后,其输出仍是数字信号,所以必须经过数字/模拟转换器,将数字信号转换成模拟信号,将数字信号转换成模拟信号后,才能送去控制执行元件,例如科研和生产中常常遇到程序升温、降温的问题,为了保证生产过程正常安全的进行,提高产品的质量和数量,减轻工人的劳动强度,节约能源,常常要求加热对象的温度按照某种指定的规律变化。

选择合适的ADC设计高速高精度采集系统提供了一个较好的解决方案。

该设计的意义在于:电流、电压、温度是工业、农业对象中主要的被控参数之一,像电子、冶命、机械、食品、化工等各类工农业业中,广泛使用的各种加热器、热处理炉、反应炉、温度计等,对工件的处理温度要求严格控制,计算机温度控制系统使温度控制指标得到了大幅度提高。

随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,环境自动监测控制方面的研究有了明显的进展,各种更为先进的检测系统正在应运而生,它们能很好的克服信号易受干扰损耗,测量误差较大以及安装拆卸繁杂等缺点,例如利用DALLAs公司生产的新型器件实现的数字化单总线技术。

但目前在低成本检测系统或者精度要求不高的检测系统中,传统的温度控制措施仍然占据着主导地位。

1.1.2 课题研究背景及立题依据人类社会进入信息时代,信息技术已经深深地渗透到人们的日常生活中。

信息技术主要包括信息的获取、传输、处理、记录和应用等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用VB实现基于RS-485总线上位机的数据采集与控制
摘要:该文介绍了利用VB6.0中的MSCommunications控件及定时器,在基于RS-485总线的上位机中编程,以实现对模拟量、开关量数据的采集、显示、保存及控制。

关键词:VB RS-485 串口通信数据采集
随着计算机及通讯技术、集成电路技术的飞速发展,以全数字式现场(FIELDBUS)为代表的现场控制仪表,迅速成为工业控制的主流。

RS-485串行通信总线以构造简单、技术成熟、便于维护,已广泛应用于电力、化工的工业控制、仪器仪表等领域。

其传输距离最长达1.2KM,负载下位机可达256台,通过转换器可将RS-485转换为微机可识别RS-232信号并通过串口与上位机通讯,从而实现远程监测。

本文主要探讨在上位计算机中使用Visual Basic6.0语言编程,实现模拟量、开关量数据的采集、显示、保存及控制功能。

1 RS-485总线的硬件配置及系统结构
PC机:上位机及服务器工作站
转换器:将RS-485转换为微机可识别的RS-232信号
中继器:(根据需求增加)信号中断放大
下位仪表:(根据需求增加)采集数据
HUB:局域网联网
2 下位仪表的通讯特点及要求
由于流量、压力、温度等仪表充当下位机,其管理软件包括通讯功能都已固化在仪表ROM中(利用单片机作下位仪表,功能则由单片机程序固化),下面对其通讯(本系统采用RS-485总线通讯)方面的技术性能做简要介绍。

2.1 仪表识别
基于RS-485总线技术,每台仪表有一个仪表号,上位计算机通过仪表号来识别每台仪表,编号由单片机自定。

2.2 数据存储
由传感器检测得模拟信号后,送往相应的单片机,单片机检测到信号后,经过一系列处理过程将信号转换成流量、压力、温度等数据,并立即传给计算机。

用上位计算机按标定参数或预设值对此数据调整,然后保存。

2.3 上位计算机发送信息的结构
下位机中的通讯程序已经固定,上位计算机向下位机请求数据时,必须满足一定的信息结构,下位机接受到此结构命令后,可做出传送数据等其他动作。

此信息结构包括下位机的返回信息为此系统的
通讯协议。

上位机发送命令信息的结构:仪表编号字节+命令符号,本系统要求返回上位机的字节总数固定为24,分4路,每路5个字节,并在传送过程中,采用偶校验。

2.4 下位仪表返回信息的结构
0路信号+1路信号+2路信号+3路信号[+各要求检测的状态]
2.5 异步串行通讯字符格式
1位起始位,8位数据位,1位停止位,波特率9600bps
3 系统通讯的实现
为实现数据的采集与控制,主要使用了VB6.0中的MSCommunications控件(串行通讯控件)用于打开串口并进行通讯,可以根据要求对它进行高级语言编程,由它去控制PC机的RS-232口与外部设备(下位仪表)进行数据交换,在计算机口处接转换器,将计算机信号转化为RS-485信号。

根据下位仪表对通讯格式的要求,采取以下步骤设定:
3.1 对MSCommunications控件初始化
port=1‘设置默认的通讯端口为计算机串行通讯口1
MSComm.Setting=”9600,e,8,1” ‘设置波特率、奇偶校验、数据位、停止位
MSComm.InputMode=comInput ModeText‘采用文本方式传输数据,可按字节读取数据
MSComm.Handshaking=com None‘不使用握手协议
3.2 接收下位机返回的数据
当接收缓冲区受到的字节达到24时,表明下位表的数据已经全部传送完,此时通讯控件触发OnComm事件。

要求接收数据,并将接收到的字符按协议转化成数字,并保存在公共变量DatRd()数组中,下面是接收模拟量的基本代码示例:
MSCom.InputLen=5‘读取数据的长度(模拟量)
For i = 0 To 3‘连续读取数据
DatRd(InPar)=MSCom.Input
InPar=InPar+1‘InPar为公共变量数组内标
Next i
此处数据格式设置为:连续送4个数,为所要传送的模拟量(如液位),每个数是4位+1位符号位。

4 上位机数据处理
将下位机数据读取到数组中后,下一步就是根据标定值初始化模拟量数据,以及数据的显示与保存。

预先建立了初始化(ini)文件对程序进行初始化,以在每次程序启动运行时,读取设定值、程序配置和标定值等。

4.1 定义初始化及延时等公共函数
公共函数IniDat()可对采进的数据进行初始化(按照标定的参数修订采样信号),修订时,在保证传感器线性的前提下,引入斜率和截距,将采集的电压、电流信号转化为温度、流量、压力等,函数定义的基本代码如下:
corX = sGetINI(sINIfile, “parent”, “correctX” &amp; i, 1)
corY = sGetINI(sINIfile, “parent”, “correctY” &amp; i, 0)
IniDat = Dat * corX + corY
公共函数TimeDelay(DT) 用于延时,在串行通讯时,要求计算机与单片机速度相匹配,每次发送请求数据命令时,要求有一定的延
迟,如500毫秒,在标定与检测系统连线时,也要求延迟1次,基本代码示例:Do DoEvents Loop Until GetTickCount - TT &gt;= DT 此外还定义有公共函数sGetINI()用于读取初始化文件中预先设定的值,公共函数WriteINI用于在标定过程或安装本系统时对于系统的各项设置与标定结果,公共函数SaveData用于保存数据到后台数据库,因篇幅关系,以上函数代码从略。

4.2 模拟量标定
主要是对模拟量(如液位)的两点标定。

标定时,首先确定比较小的实际值填入最小值框,再改变外部电路的实际输入到较大值,填入要标定到的结果。

系统会自动将2次的标定结果进行运算,结果即是标定的参数。

下面是某点模拟量标定代码示例:
TimeDelay 100
i = Val(CombDAMin.Text) ‘通路选择返回值
corX = Val(Mid(FrmMain.MSCom.Input, i * 5, 5))
corX = (Val(TxtMax.Text) - Val(TxtMin.Text)) / (corX - corY)
corY = Val(TxtMin.Text) - corX * corY
完成标定后再将结果用WriteINI函数写入INI初始化文件。

4.3 数据的初始化、显示及保存
在定时器中要求将数据按照标定的参数初始化,显示模拟量(如液位)及开关量(如泵的状态)数据,并在整点时调用保存数据的函数,将数据保存到数据库中便于历史查询,下面是显示某点模拟量与开关量的基本代码示例:
.data(i).Caption = IniDat(DatRd(i), i)
If Val(DatRd(j)) = 1 Then .pStat(i).Caption = “泵(“&amp;Str(i+1)&amp;”)启”
Call SaveData(uName, DatRd(i), tmp)‘调用函数SaveData将数据写入数据库
5 远程控制
通过上位机可以直接发送命令给下位机,以控制设备运行状态,下述代码是对1号泵开关量的控制:
If pStat(0).Caption = “泵(1)启” Then FrmMain.MSCom.Output = “bB”
If Right(pStat(Index).Caption, 1) = “启” Then
pStat(Index).Caption = Left(pStat(Index).Caption, 4) &amp; “停”
End If
6 结语
上述代码在RS-485总线的上位机中使用VB6.0编程,实现了模拟量及开关量的数据采集、显示、保存及远程控制,并已在某药厂调试后正常运行。

对于数据格式不同及多于8路信号的,上述代码只要稍加改动就可应用到现场。

参考文献
[1] 郝春强.Visual Basic案例教程[M].北京:中科多媒体电子出版社,2001.
[2] 郁有文,常健.传感器原理及工程应用[M].西安:西安电子科技大学出版社,2000.
[3] 张明旭,黄德镛.用VB编写RS-485数据采集程序[J].煤矿现代化,2009(1).
[4] 周东,杨杰.使用VB6.0语言开发RS-485串行通信程序[J].上海船舶运输科学研究所学报,2005(12).。

相关文档
最新文档