读书人

VB读温控表的版本号为什么没反应

发布时间: 2012-01-24 23:11:55 作者: rapoo

求助VB读温控表的版本号为什么没反应
请教各位大虾,小弟刚接触VB与485的通讯知识,现在我做了个简单的VB程序,读温控表的版本号。温控表往来通讯都以ASCII码实现。温控表通讯协议里读版本号的命令为“&0000+回车”,温控表应回复“!00007.2+回车” 。现在我在VB里添加了两个文本框Text1和Text2,分别用来发送和接受命令内容,另外添加了两个命令按钮Command1和Command2,分别用来发送和接收命令。我在Text1文本框中输入“&0000”接着点击Command1发送命令,可是点击Command2却没有接收到返回数据,请教各位大虾问题到底出在哪儿?我的程序如下:
Private Sub Command1_Click()
MSComm1.Output = Text1 + Chr(13)
End Sub
Private Sub Command2_Click()
Text2 = MSComm1.Input
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0
MSComm1.PortOpen = True
If MSComm1.PortOpen Then
Shape1.FillColor = vbGreen
Label1 = "通讯正常"
Else
Shape1.FillColor = vbRed
Label1 = "通讯失败"
End If
End Sub

[解决办法]

VB code
Option Explicit    Dim strSend As String    Dim strREc As StringPrivate Sub Form_Load()    Text1 = "&0000" & Chr(13)    Text2 = ""    MSComm1.Settings = "9600,n,8,1"    MSComm1.CommPort = 1    MSComm1.InputMode = comInputModeText    MSComm1.RThreshold = 9    MSComm1.InputLen = 0    MSComm1.PortOpen = True    If MSComm1.PortOpen Then        Shape1.FillColor = vbGreen        Label1 = "通讯正常"    Else        Shape1.FillColor = vbRed        Label1 = "通讯失败"    End IfEnd SubPrivate Sub Command1_Click()    strSend = Text1    MSComm1.Output = strSendEnd SubPrivate Sub MSComm1_OnComm()    Select Case MSComm1.CommEvent        Case 2            strREc = strREc & MSComm1.Input            If Len(strREc) = 9 And Right(strREc, 1) = Chr(13) Then                Text2 = strREc                strREc = ""            ElseIf Len(strREc) > 9 Then                strREc = ""            End If    End SelectEnd Sub 

读书人网 >VB

热点推荐