| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4105 人关注过本帖
标题:求助VB如何读计算机串口数据
只看楼主 加入收藏
shunlai
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-2-1
结帖率:94.12%
收藏
 问题点数:0 回复次数:4 
求助VB如何读计算机串口数据
各位高人:你们好!
我用VB编成,在制做的VB窗口中有三个文本框,需要将某检测设备数据通过计算机串口读到vb窗口的文本框中。请帮忙解答!如能提供源代码更感谢!!
谢谢!
北京
杨2006-7-27
搜索更多相关主题的帖子: 串口 计算机 数据 
2006-07-27 11:17
hjuanz
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-12
收藏
得分:0 

你是什么样的检测设备。你的检测设备应该是可编程的,它应该有它的编程模式。最好看它的编程手册。
下面的这段代码不知你能不能用上。


Public Function COMCommand(CommandData As String) As String

Dim strbuf As String
Dim i As Integer
Dim j As Integer
Dim l As String

Form1.MSComm4.Output = CommandData & Chr(&HD) & Chr(&HA)
strbuf = ""
For i = 0 To 10000
If Form1.MSComm4.InBufferCount > 0 Then
strbuf = strbuf & Form1.MSComm4.Input
If Asc(Right(strbuf, 1)) = &HA Then
COMCommand = ""
For j = 1 To Len(strbuf)
l = Mid(strbuf, j, 1)
If Asc(l) > 32 Then COMCommand = COMCommand & l
Next j
Exit Function
End If
End If
Next i
COMCommand = "COMERROR"


End Function

2006-07-27 17:31
shunlai
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-2-1
收藏
得分:0 
hjuanz兄弟谢谢你的回复!
我用的检测设备是光谱仪,该设备是用来检测金属化学成分的,如:C, Si, Mn, P, S等等。光谱仪设备有其专用的计算机软件,我是为了工作方便打算用VB编成做一个窗口,并在窗口上建几个文本框,想利用光谱仪传送到计算机串口数据直接分别读到
VB窗口的对应文本框中……。但本人从未接触过此种接口技术,水平又低,因此拜请兄弟您能否具体帮忙编写一下事例哪?另:由于该设备较老,也未查到编成手册。
再次向兄弟表示感谢!谢谢

2006-07-28 12:10
action1
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-7-8
收藏
得分:0 
支持
2006-08-05 07:26
学习VB才2天
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1653
专家分:0
注 册:2006-5-4
收藏
得分:0 

先读取端口连接后的内容,分析一下其中的内容,根据光谱仪读出的内容对程序做相应的调整,使VB能读出正确的信息.
VB提供了串行端口控制Mscomm来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视Mscomm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。Mscomm控件的主要属性如下:

(1)Commport设置并返回通讯端口号。端口号可以设置为1~16的任何数,如Mscomm.Commport=2表示设置当前通讯端口为COM2。
(2)Setting设置并返回波特率、奇偶校验、数据位、停止位。格式为Mscomm.Setting=String。String是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。Setting属性的缺省值为“9600,N,8,1”。
(3)Portopen设置并返回通讯端口的状态,也可以打开和关闭端口。
(4)Input从接收缓冲区返回和删除字符。该属性在运行时为只读。
(5)InputLen设置并返回每次Input属性从接收缓冲区中读取的字符数。InputLen属性的缺省值为0。设置InputLen为0时,Input将读取接收缓冲区的全部字符。
(6)Output向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。
(7)CommEvent返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Oncomm事件。CommEvent属性中存有该错误或事件的数值代码。


Timer控件的主要属性如下:
(1)Enabled返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把Enabled设置为“Galse”来使Timer控件成为无效,将取消由控件的Interval属性所建立的倒计时数。
(2)Interval返回或设置对Timer控件的计时事件调用间的毫秒数。Timer控件的Enabled属性决定该控件是否对时间的推移作出响应。将Enabled设置为“False”会关闭Timer控件,设置为“True”则打开Timer控件。当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。创建Timer事件程序。可通知VB在每次Interval到时该做什么。Timer控件和Enabled属性设置为“True”时,VB将在Interval时间到后自动访问Timer_Timer过程。

为实现通讯程序,须在VB开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件Mscomml和两个Timer控件。VB的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。


[GLOW=255,DeepPink,3]我的免费网盘[/GLOW]
2006-08-05 08:03
快速回复:求助VB如何读计算机串口数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012284 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved