Vb6 未使用MSComm1通过rs232接收注射泵的回复。输入
我正在尝试通过rs232从PC机与注射泵通信 我想向泵发送一个字符串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()控制之下,它似乎已经死了。这里可能有很多问题
“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这样的结束字符
'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”