没有使用MSComm1.Input通过rs232接收注射泵的回复

时间:2014-11-28 07:30:22

标签: vb6 serial-port

我正试图通过rs232从PC注射泵。

我想向泵发送字符串"02DC;50803"以建立通信,泵应回复"C"

我使用MSComm1.Output="02DC;50803"发送命令,Text1.Text=Text1.Text+MSComm1.Input用于接收。当MSComm1.Output执行时,我能够看到终端设备上的LED闪烁,但没有MSComm1.input的回复。

请帮助我解决这个问题,如果我将这些说明置于MSComm()控制之下,它似乎已经死了。

2 个答案:

答案 0 :(得分:0)

这里可能存在许多问题。

例如:

  • 你的电缆可能坏了
  • 您的串口可能无法正常运行 - 我看到了很多
  • 您的命令格式错误
  • 泵根本不希望回复您发送的命令

最后2个可能不太可能,泵可能会回复你发射的所有东西 - 我在这里所有的肯定都会回答。

真的需要更多信息来帮助你。

  • 什么制造/型号泵?
  • 泵的手册,以便检查您的命令。
  • 您是否已使用现有软件包连接到泵? - 如果有的话。

P.S。我的软件不支持您的泵;我不认识那些命令。

答案 1 :(得分:0)

从timb继续列表:

  • 您使用的是正确的波特率吗?
  • .RThreshold和.SThreshold的设置是什么?
  • 其他comport设置是否正确(通常为N,8,1但有例外)?
  • 您是否尝试过使用超级终端的命令并获得预期的回复?
  • 您在代码中的哪个位置读取MSComm1.Input?在哪个事件?
  • 设备是否还有一个LED,它在发送数据时会闪烁?它会眨眼吗?
  • 该命令是否需要像vbCrLf或vbCr那样的end-char?

请发送您发送命令的函数/ sub的完整代码,并发布您阅读MSCOmm1.Input

的函数/ sub的完整代码。

查看以下测试项目,其中我将“AT”命令发送到我的调制解调器,该调制解调器连接到commport 1并与我在波特率9600进行通信:

'1 form with:
'  1 textbox control : name=Text1
'  1 command button  : name=Command1
'  1 MSComm control  : name=MSComm1
Option Explicit

Private Sub Command1_Click()
  MSComm1.Output = "at" & vbCrLf
End Sub

Private Sub Form_Load()
  With MSComm1
    If .PortOpen Then .PortOpen = False
    .Settings = "9600,n,8,1"
    .CommPort = 1
    .RThreshold = 1 'read data per char
    .SThreshold = 0 'send all data at once
    .PortOpen = True
  End With 'MSComm1
End Sub

Private Sub Form_Resize()
  Dim sngWidth As Single
  Dim sngCmdHeight As Single
  Dim sngTxtHeight As Single
  sngWidth = ScaleWidth
  sngCmdHeight = 315
  sngTxtHeight = ScaleHeight - sngCmdHeight
  Text1.Move 0, 0, sngWidth, sngTxtHeight
  Command1.Move 0, sngTxtHeight, sngWidth, sngCmdHeight
End Sub

Private Sub MSComm1_OnComm()
  Dim strData As String
  With MSComm1
    Select Case .CommEvent
      Case comEvReceive
        strData = .Input
        ShowData strData
    End Select
  End With 'MSComm1
End Sub

Private Sub ShowData(strData As String)
  With Text1
    .SelStart = Len(.Text)
    .SelText = strData
  End With 'Text1
End Sub

当我点击Command1时,它会发送“AT”& vbCrLf和调制解调器回复“OK”,显示在Text1。