VB6.0与设备485通讯串口问题

有3个设备Modbus查询命令,
A:(01 03 00 00 00 02 44 0C),
B:(01 03 00 09 00 03 94 0B),
C:(01 01 00 00 00 02 3D CC)
分别收到
AA:(01 03 04 00 01 00 02 2A 32 ),
BB:(01 03 06 00 01 00 02 00 03 FD 74),
CC:(01 01 02 01 01 79 AC)
实现功能,
ABC间隔100ms持续轮流发送,并且显示在TEXT1-2-3,中,
AA,BB,CC为接收到的字符串,其中粗体斜体部分为不定值,但每次接收长度为确定值,验证每次数据接收完整后,分别显示在TEXT4-5-6中,
就是发送A接收AA,完整后发送B接收BB,完整后发送C接收CC,完整后发送A,如此循环。
如果某一个不完整则重新发送这个
vb6怎么实现,可以发邮箱121059821@qq.com

img


已发送邮箱,请采纳

仅供参考:

Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command2_Click()
    MSComm1.Output = "FF001160000C4"
    Sleep 300
End Sub
Private Sub Command4_Click()
On Error Resume Next
    If Shape1.FillColor = &H4000& Then  '如果没有启动,按下此按键,代表用户想启动
        MSComm1.CommPort = Combo1.ListIndex + 1
        MSComm1.Settings = "38400,n,8,1"        '设置波特率
        MSComm1.InputLen = 0
        MSComm1.InBufferSize = 1024             '设置缓冲区接收字节数
        MSComm1.OutBufferSize = 1024            '设置缓冲区发送字节数
        MSComm1.RThreshold = 1                  '设置接收1个字节就产生OnComm事件
        MSComm1.InBufferCount = 0               '清空输入缓冲区
        MSComm1.OutBufferCount = 0              '清空输出缓冲区
        MSComm1.SThreshold = 0
        MSComm1.RTSEnable = True                '接收数据使能
        MSComm1.InputMode = comInputModeText    '以字符串方式发送与接收
        MSComm1.InputLen = 0
        MSComm1.Handshaking = comNone '无握手协议
        MSComm1.PortOpen = True
        If Err Then
            'MSComm1.PortOpen = False
            MsgBox "通讯端口选择错误!" + vbCrLf + "正确的串口号在这里看:" + vbCrLf + "桌面->我的电脑->属性->硬件->设备管理器->端口->COM"
        Else
            Shape1.FillColor = &HFF00& '把启动指示灯打开
            Command4.Caption = "关闭"
            Combo1.Enabled = False
        End If
    Else '如果启动了,按下此按键,代表用户想关闭
        MSComm1.PortOpen = False '关闭串口
        Shape1.FillColor = &H4000& '关闭启动指示灯
        Command4.Caption = "开启"
        Combo1.Enabled = True
    End If
End Sub
Sub InitRs232() '初始化串口副程序
    On Error Resume Next
    MSComm1.CommPort = Combo1.ListIndex + 1 '设置com端口
    If MSComm1.PortOpen Then MSComm1.PortOpen = False '如果串口为打开状态则关闭它
    With MSComm1 '宣告MsComm控件的结构体
        .Settings = "38400,n,8,1" '设定通讯协议38400波特率,无奇偶校验,8位数据,一个停止位
        .InBufferSize = 1024 '设置缓冲区接收数据为1024字节
        .OutBufferSize = 1024
        .RThreshold = 1 '设置接收1个字节就产生OnComm事件
        .InBufferCount = 0 '清空缓冲区
        .OutBufferCount = 0
        .SThreshold = 0
        .RTSEnable = True
        .InputMode = comInputModeText
        .InputLen = 0
    End With
    Text1 = ""
End Sub


Private Sub MSComm1_OnComm()
Dim bytInput() As Byte
Dim intInputLen As Integer
Dim teststring As String
Dim b As String
Dim HexA As String
    Select Case MSComm1.CommEvent
    Case comEvReceive
        MSComm1.InputMode = 0                    '0:文本方式,1:二进制方式
        intInputLen = MSComm1.InBufferCount
        bytInput = MSComm1.Input
        teststring = bytInput
        Text1.Text = teststring
        teststring = ""
        b = Mid(teststring, 9, 4)
        HexA = b
        Text1.Text = Val("&H" & HexA)
    End Select
End Sub


找个例子看看吧https://zhuanlan.zhihu.com/p/299228957

https://download.csdn.net/download/qq_26964961/9904172?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-download-2~default~OPENSEARCH~Rate-4.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-download-2~default~OPENSEARCH~Rate-4.pc_feed_download_top3ask