求助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
[解决办法]
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