标题:如何在VB中通过电脑RS-232接口读取万用表Fluke45电压测试数据?
只看楼主
chuangjuzhou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-19
 问题点数:0 回复次数:6 
如何在VB中通过电脑RS-232接口读取万用表Fluke45电压测试数据?
本人想在VB中写一个测试程序,通过计算机的RS-232口读取万用表Fluke45电压测试数据。敬请那位VB高手给我编写下代码。小弟在此跪谢!
搜索更多相关主题的帖子: 万用表 电压 接口 数据 
2007-06-19 17:40
西山居士
Rank: 4
等 级:贵宾
威 望:11
帖 子:581
专家分:0
注 册:2007-4-21
得分:0 
难度很大,不光是代码问题。

2007-06-19 17:52
chuangjuzhou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-19
得分:0 

请多多指教。谢谢!!!!!!!!!

2007-06-19 18:30
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 

其实用vb进行串口通信不是怎么的难,只是我们没有机会去接触硬件和了解硬件接口定义.
一般用vb进行串口通信都是有搞单片机的背景的.
这是我最弱的一方面了...几乎等于0.


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-19 19:14
chuangjuzhou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-19
得分:0 

多谢各位!!!!!!!!!!

2007-06-20 08:12
chuangjuzhou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-19
得分:0 

我其它论坛找到以下信息,不知是否有用?
本人在做一个自动测试站,是通过计算器的COM1口读取万用表,示波器等的电压数据(我采用的是万用表是Fluke45,泰克的示波器),下面什我编写地代码。大家帮忙看看有没有什么错误的地方。通过COM口读取数据到底还有哪些地方要注意,怎样设置采可以呢。请大家指点一下。
Private Sub Command1_Click()
MSComm1.PortOpen = False
End

End Sub

Private Sub Command2_Click()
Dim buffer$
retry:
buffer$ = ""
Do
DoEvents
buffer$ = buffer$ & MSComm1.Input
If (Len(buffer$) > 0) Then
Label1 = "Data being updated...."
Else
Label1 = "Please wait for a moment...."
End If
Loop Until Len(buffer$) > 10
Text1 = buffer$
GoTo retry

End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
If (MSComm1.PortOpen = False) Then MSComm1.PortOpen = True
Text1 = ""


End Sub
答 1:
最好用 binary 方式Private Sub Command2_Click()
Dim buffer$
COMMAND2.ENABLE = 0
DO WHILE MSCOMM1.OPEN
buffer$ = ""
Do
DoEvents
buffer$ = buffer$ & MSComm1.Input
If (Len(buffer$) > 0) Then
Label1 = "Data being updated...."
Else
Label1 = "Please wait for a moment...."
End If
Loop Until Len(buffer$) > 10
Text1 = buffer$
LOOP
COMMAND2.ENABLE = -1
End Sub
答 2:
现在的关键问题是无法通过com口读取数据
有什么高见吗?第一次用VB,现在什一边学一边做。
对VB有很多概念还是很陌生,请多多指教。
答 3:
COMMSCOMM 有一个中断函数,在COM接收道数据时会产生中断。
Private Sub MSComm1_OnComm()
Dim Buffer As Variant

Dim EVMsg$
Dim ERMsg$

Select Case MSComm1.CommEvent
Case comEvReceive

Buffer = MSComm1.Input
aA = StrConv(Buffer, vbUnicode)
MyGet = MyGet & aA
'"MyGet" 就是接收到的数据

Case comEvSend
EVMsg$ = "正在发送数据"
Case comEvCTS
EVMsg$ = "Change in CTS Detected"
Case comEvDSR
EVMsg$ = "Change in DSR Detected"
Case comEvCD
EVMsg$ = "Change in CD Detected"
Case comEvRing
EVMsg$ = "The Phone is Ringing"
Case comEvEOF
EVMsg$ = "End of File Detected"

' Error messages.
Case comBreak
ERMsg$ = "Break Received"
Case comCDTO
ERMsg$ = "Carrier Detect Timeout"
Case comCTSTO
ERMsg$ = "CTS Timeout"
Case comDCB
ERMsg$ = "Error retrieving DCB"
Case comDSRTO
ERMsg$ = "DSR Timeout"
Case comFrame
ERMsg$ = "Framing Error"
Case comOverrun
ERMsg$ = "Overrun Error"
Case comRxOver
ERMsg$ = "Receive Buffer Overflow"

Case comRxParity
MSComm1.Output = MySend
' ERMsg$ = "Parity Error"
Case comTxFull
ERMsg$ = "Transmit Buffer Full"
Case Else
ERMsg$ = "Unknown error or event"
End Select

If Len(EVMsg$) Then
' sbrStatus.Panels("Status").Text = "状态:" & EVMsg$
ElseIf Len(ERMsg$) Then
' sbrStatus.Panels("Status").Text = "状态:" & ERMsg$
If RET = 2 Then
MSComm1.PortOpen = False ' Close the port and quit.
End If
End If
End Sub

2007-06-20 08:14
chuangjuzhou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-19
得分:0 

我找到了用BASIC写的一个RS-232计算机接口程序实例。不知对在VB下编写代码是否有帮助?


2007-06-20 14:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-148771-1-1.html




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

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