Vb6 未使用MSComm1通过rs232接收注射泵的回复。输入

Vb6 未使用MSComm1通过rs232接收注射泵的回复。输入,vb6,serial-port,Vb6,Serial Port,我正在尝试通过rs232从PC机与注射泵通信 我想向泵发送一个字符串“02DC;50803”,以建立通信,泵应回复“C” 我正在使用MSComm1.Output=“02DC;50803”发送命令,并使用Text1.Text=Text1.Text+MSComm1.Input接收命令。当执行MSComm1.Output时,我可以看到终端设备上的LED闪烁,但使用MSComm1.input时没有应答 请帮我解决这个问题,如果我将这些指令置于MSComm()控制之下,它似乎已经死了。这里可能有很多问题

我正在尝试通过rs232从PC机与注射泵通信

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

我正在使用
MSComm1.Output=“02DC;50803”
发送命令,并使用
Text1.Text=Text1.Text+MSComm1.Input
接收命令。当执行
MSComm1.Output
时,我可以看到终端设备上的LED闪烁,但使用
MSComm1.input
时没有应答


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

这里可能有很多问题

例如:

  • 你的电缆可能断了
  • 您的串行端口可能无法正常工作-我经常看到这种情况
  • 你的命令格式不正确
  • 泵根本不希望回复您发送的命令
最后两个可能不太可能,泵可能会回应你向它发射的所有东西-我这里所有的肯定都会回应

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

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

另外,我的软件不支持您的泵;我无法识别这些命令。

要从timb继续列表,请执行以下操作:

  • 您使用的波特率正确吗
  • .RThreshold和.streshold的设置是什么
  • 其他组件设置是否正确(通常为N、8、1,但也有例外)
  • 您是否使用超级终端尝试了该命令并获得了预期的答复
  • 您在代码中的何处读取MSComm1.Input?在哪种情况下
  • 设备是否也有led,当发送数据时led会闪烁?它眨眼吗
  • 命令是否需要像vbCrLf或vbCr这样的结束字符
请在发送命令的位置张贴函数/子模块的完整代码,并在读取MSCOmm1.Input的位置张贴函数/子模块的完整代码

请看下面的测试项目,其中我将“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,调制解调器会回复文本1中显示的“OK”