孙金根,张嘉男,陈 怡
(沈阳理工大学 自动化与电气工程学院,辽宁 沈阳 110159)
基于VB的电子天平远程数据记录系统
孙金根,张嘉男,陈怡
(沈阳理工大学 自动化与电气工程学院,辽宁 沈阳 110159)
电子天平应用广泛、实用性强,但自身对数据的采集及处理具有局限性。文中通过电子天平与计算机通信有效地解决这一问题。以计算机为上位机,赛多利斯天平为下位机,VB6.0为开发平台,利用VB的MSComm通信控件设计了电子天平的串口通信程序,开发了基于VB的电子天平远程数据记录系统。通过RS232实现数据双向传输、处理等功能,将测量得的数据实时填入Excel表格,避免人为抄表带来错误,提高了工作效率。经现场调试该系统使用方便、可靠,具有较好的实用性。
电子天平;VisualBasic6.0;数据记录;Excel
电子天平应用广泛,不但给予人们方便,也提高了生产力及实验的准确性。其区别在于应用于不同场合对于电子天平的精度及各项功能指标要求不同。如今的电子天平精度高、功能丰富,但单独使用时还是存在局限性,不能很好地对数据进行处理,并缺乏友好的人机交互性,这就需要计算机介入, 利用计算机的数据处理功能及与其他软件配合使用,从而满足不同用户的需求[1]。本文从工程实践出发,实际生产工作中,多台电子天平同时工作,工作人员需把测量结果抄到表格中,效率低,不具有实时性且记录大量数据出现误填现象不可避免。基于以上问题,本文设计实现了计算机通过RS232通信电缆与电子天平的通信系统,该系统很好的结合了二者的优点,具有操作简单、友好的实时监控界面,同时把测量得到的数据实时填入MicrosoftOffice2007Excel表格中,并打印出来等优点[2-4]。避免了工作人员手动抄表出现的误填现象,节省人力,提高了工作效率,具有一定的实用性。
1.1硬件配置
本文所使用的上位机为装Windows7操作系统和软件VisualBasic6.0的计算机。该计算机与下位机赛多利斯天平(型号为BS210S)同样带有25针串口,通过RS232通信电缆来实现数据的双向传输。通信电缆采用上海光胜网络科技有限公司CSKJ-HRPVSP屏蔽双绞线,适用于RS232通信协议,实现计算机与电子天平的通信。系统硬件结构如图1所示,上位机通过RS232通信电缆分别与多台赛多利斯天平进行通信,由不同通信控件实现如:Comm1,Comm2,Comm3…各通信之间互不影响。
1.2软件配置
VisualBasic是由Microsoft公司开发的程序设计语言,也是目前较为主流的开发设计平台,具有面向对象、结构化、模块化等特性。VB是从BASIC语言渐变而来,具有用户界面及快速应用程序开发系统,可以与多个数据库连接,例如ADO数据库、DAO数据库、RDO数据库。VB也可以创建各种控件,如ActiveX控件、MSComm控件等。同样,VB中工程窗体的设计简单,使用者可根据需求自己灵活设计。总之,对于使用者来说,VB操作简单,具有友好人机交互界面,是一款较好的开发软件。
图1 系统硬件结构框图
2.1通信协议
通俗地讲通信协议是指要通信的双方,通过相同的数据传送格式,统一的规则与参数设置,从而实现信息交流,实现通信。本文赛多利斯电子天平通过RS232串口连接计算机,就要遵循RS232通信协议,RS232连接线长度在15m内,否则信息传输不准确,影响信息正常交换[5-6]。协议主要参数设置为:1 200波特传输速度;奇偶校验设置为奇;1个停止位;操作方式标准SB1;信息以ASCII字符形式传输。硬件信号交换采用4线的接口,软件信号交换采用XON和XOFF。串口通信应用面广,无论是计算机之间,还是计算机与其他设备间通信,都能较好地实现工业控制。
2.2通信控件
本文的重点是实现赛多利斯与计算机之间的通信,VB6.0中的MSComm控件很好的解决这一问题,即通过MSComm控件来实现计算机与赛多利斯天平的串口通信[7-10]。该控件功能强大,可实现计算机与不同对象的通信:计算机与计算机、计算机与单片机、计算机与智能仪表、计算机与PLC等。且MSComm控件操作起来也简单易行,流程如同大多数软件一样。先新建工程,进入VB开发环境,再添加串口通信控件MSComm到工具箱,编程,最后进行调试。因为计算机要采集多个电子天平的数据,一个MSComm控件对应着一个串口,所以要创建多个MSComm控件。
3.1MSComm控件的常用属性
MSComm控件的重要属性:(1)CommPort设置并且返回通讯端口号;(2)Settings以字符串的形式设置并返回停止位、数据位、波特率、奇偶校验;(3)PortOpen为设置并返回通讯端口的状态,也可以打开和关闭端口;(4)Input是从接收缓冲区返回和删除字符;(5)Output是向传输缓冲区写一个字符串;(6)InBufferCount为读取和接收缓冲区中的字节数;(7)InBufferSiz为读取或设置接收缓冲区的大小;(8)CommEvent为读取或设置串口事件。
3.2电子秤的通信协议
赛多利斯电子天平以16字符的格式输出,其中未显示的段一律按空格格式输出。下面字符的输出与否,取决于电子天平上显示的字符,如图2所示。
正常操作情况下,各个字符含义:*代表空格,CR表示回车,D表示为数字或者是字母,LF代表换行,U为单位符号。
图2 赛多利斯的输出格式
赛多利斯的数据输入格式:把计算机通过通信电缆与赛多利斯相连,计算机所给的控制命令通过串口传入电子天平,命令的格式不尽相同,但字符的传输需要事先在传输操作菜单上得以确定。如同输出格式,输入格式下每个字符代表不同含义,Esc是Escape,CR代表回车,!代表命令字符,LF为换行。具体控制命令的格式如下:
格式1Esc!CRLF
格式2Esc!# -CRLF
通过电缆连接赛多利斯与电脑之前,要核对引脚分配如图3所示,左侧是赛多利斯天平引脚,右侧是计算机引脚。如果引脚分配有误,导致设备不能正常工作,也可能导致设备损坏,重要引脚有:引脚1:屏蔽;引脚2:数据输出;引脚3:数据输入;引脚4:内部接地;引脚5:清除发送引脚; 引脚20:数据终端就绪。
图3 引脚接线图
VB自带的报表功能(DataReportDesigner)具有局限性,不能满足灵活设计的需求,并且使用直接打印的方法(Printer.print),需进行打印机定位,用户根据报表格式发生变化要不断修改格式及程序,这会用户使用带来不便[11-12]。
基于以上问题,本文采用VB调用Excel的方法,此方法简单易行,利用Excel强大的报表和计算功能,来实现从下位机赛多利斯天平采集到的数据的实时写入及打印。
4.1VB调用Excel方法
首先要引用Excel类型库,从“工程”菜单栏中选择“引用”,选择MicrosoftExcel9.0ObjectLibrary,最后点击“确定”。对Excel对象的定义需要在通用对象的声明过程中进行。
DimxlAppAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlCharAsNewExcel.Chart
DimxlSheetAsNewExcel.Worksheet
创建Excel对象并打开保存在C盘上要填写的Excel文件,设置Excel在程序运行中为可见。把测量得到的数据填入名为“xlBook.Worksheets(2)”的Excel中,填入数据的起始单元为(6,3),当前读数批次为0。
SetxlApp=NewExcel.Application
SetxlBook=xlApp.Workbooks.Open
("C:
xlApp.Visible=True
SetxlSheet=xlBook.Worksheets(2)
rowcount= 6
colcount= 3
signalread= 0
4.2VB通信程序
PrivateSubForm_Load()
MSComm1.CommPort= 1 '设置串行端口com_num
MSComm1.OutBufferSize= 100
'数据接受缓冲区大小为1024字节
MSComm1.InBufferSize= 100
'数据发送缓冲区大小为1024字节
MSComm1.InputMode= 0'二进制通信方式
MSComm1.InputLen= 0
'读取接收缓冲区的所有字符
MSComm1.InBufferCount= 0'清除接收缓冲区
MSComm1.SThreshold= 1
'每发送一字节都触发发送事件
MSComm1.RThreshold= 16
'每接收一字节都触发接收事件
MSComm1.Settings= "1200,O,7,1"
'设置波特率及数据帧格式
MSComm1.PortOpen=True'打开串口
EndSub
PrivateSubMSComm1_OnComm()
SelectCaseMSComm1.CommEvent'事件发生
CasecomEvSend'发送数据事件
Text2.Text=Text2.Text+Chr(27) &Chr(80) &Chr(13) &Chr(10)
CasecomEvReceive'接收数据事件
strBuffreceive=MSComm1.Input'读入到缓冲区
chengcomvalue=Mid(strBuffreceive, 4, 7)'取数据Text1.Text=Text1.Text+chengcomvalue+Chr(13) &Chr(10) '在文本框中显示接收数据
tempwater=Val(chengcomvalue) '测量得到水的温度及水温折算
tempval=tempwater*coefval
SelectCasesignalread
Case0….
如图4所示,为VB的监控界面,通过对界面操作来实现赛多利斯天平与计算机间通信,实时显示接收、发送数据,水温及允许误差。左侧为赛多利斯天平检测出的液面刻度值,可实现同时检测10个天平液面刻度,并可多批次测量。把采集到的数据实时填入Excel报表,避免了人为手动抄表而带来的误填,为操作人员提供方便,提高了工作效率。打印出的Excel报表如图5所示。报表主要内容包括“刻度液面、水重、真容积及允许误差”,不同工作场合可根据具体需求设计。
图4 VB的监控界面
图5 可打印的Excel报表
本文设计了赛多利斯天平通过RS232通信电缆与计算机之间的通信,实现了一台计算机采集处理多台赛多利斯天平的数据,编写了基于VB6.0软件的串口通信程序。介绍了MSComm控件的特性及其使用方法。通过VB6.0调用Excel,利用了Excel的数据处理功能,将采集到的数据实时填写报表,并可打印出来。解决了人工抄表效率低、容易出错的问题。经现场实践,该方法简单实用,在通信与数据采集处理方面具有一定的参考价值。
[1]范逸之,陈立元.VisualBasic与RS-232串行通信控制[M]. 北京: 清华大学出版社,2003.
[2]求是科技,仵浩,齐燕杰,等.VisualBasic串口通信工程开发实例导航[M]. 北京:人民邮电出版社,2003.
[3]高峰霞,廖彬山.VisualBasic6.0中文版提高与应用[M].北京:电子工业出版社,1999.
[4]蔡红,章人杰.基于VB的电子天平性能测试平台的设计与实现[J]. 仪表技术,2007(9):52-54.
[5]武子荣,刘琳岚,陈轩.利用MSComm控件实现消防主机与收发通信[J]. 电脑开发与应用,2007,20(2):36-37.
[6]畅育超.巧用VB调用Excel实现复杂报表设计与打印[J].电脑编程技巧与维护,2011(15):53-56.
[7]吴兴中,欧青立.一种PC与单片机多机RS232串口通信设计[J]. 国外电子测量技术,2009,28(1):74-76.
[8]章辉,叶建芳,叶建威.基于MSComm控件串口通信的实现[J]. 电子测量技术,2011,34(8):126-129.
[9]李学良,朱志刚.VBMSComm控件下串行通信在电子衡器中的应用[J]. 计算机信息,2015(1):119-120.
[10]刘永志,陈学煌,段新文.VB调用Excel实现报表打印功能[J].甘肃科技,2005 (7):83- 85.
[11]KyleR.Mayborn,CharlesE.Leshermagpath:anexcel-basedvisualbasicprogramforforwardmodelingofmaficmagmacrystallization[J].Computers&Geosciences, 2011, 37(11):1900-1903.
[12]唐振.基于VB串口通信的实时水位数据采集软件设计[J]. 长江大学学报:自然科学版, 2013,10(22):51-53.
Remote Data Recording System of Electronic Scales Based on VB
SUNJingen,ZHANGJianan,CHENYi
(CollegeofAutomationandElectricalEngineering,ShenyangLigongUniversity,Shenyang110159,China)
Thewidelyusedelectronicbalancehaslimitationsindataacquisitionandprocessing.Inthispaper,thisproblemissolvedbythecommunicationbetweentheelectronicbalanceandcomputer.AserialportcommunicationprogramofelectronicbalanceisdesignedonVB6.0developmentplatformbyusingMSCOMMcommunicationcontrolofVBwiththecomputerastheuppermachineandSartoriusbalanceasthelowermachine.TheremotedatarecordingsystemofelectronicscalebasedonVBisdeveloped.Databi-directionaltransmissionandprocessingarerealizedthroughRS232andthemeasureddataarefilledintotheExcelformsinrealtime,thusavoidingartificialmeterreadingerrorandimprovingtheworkefficiency.Thefielddebuggingsuggeststhesystemisconvenient,reliableandhasgreatpracticability.
electronicbalance;VisualBasic6.0;datarecording;Excel
2015- 12- 11
孙金根( 1962- ) ,男,副教授。研究方向:智能控制等。
10.16180/j.cnki.issn1007-7820.2016.09.034
TP274+.1
A
1007-7820(2016)09-125-04