首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-01-24 
求助VB读温控表的版本号为什么没反应请教各位大虾,小弟刚接触VB与485的通讯知识,现在我做了个简单的VB程序

求助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 

热点排行