VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 用COMMUNICATION控件进行数据采集(学习笔记)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9137, 日期:2001-06-09
用COMMUNICATION控件进行数据采集(学习笔记)

关键词:VBScript, Visual Basic, Visual C++

用COMMUNICATION控件实现数据采集

private Sub form_load()
    MSComm1.COMMPORT = 2                    注释:com2
    MSComm1.settings = "9600,N,8,1"         注释:9600 为波特率,n 缺省的奇偶校验值,8 为数据位数,1 为停止位数。
    MSComm1.InBufferSize = 1024             注释:接收缓冲区的大小
    MSComm1.OutBufferSize = 512             注释:传输缓冲区的大小
    MSComm1.InputLen = 0                    注释:初始化接收缓冲区读取的字符数
    
    MSComm1.portopen=true                   注释:打开串口
end sub

Private Sub command1_click()  
    Dim instring As Byte
    
    h$ = Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10)
    On Error Resume Next
    
    注释:在这里进行串口通讯(RS485)
   
    address="36"   注释:终端地址
    Lx1 = Chr$(var(address): Lx2 = Chr$(2): Lx3 = Chr$(1)
    MSComm1.Output = Lx1 & Lx2 & Lx3 注释:向终端发命令,等待终端传输数据
    MSComm1.InBufferCount = 0    ’接受缓冲清零
    注释:接收终端发出的数据
    Dtime1 = Timer
    Do            
        Dtime2 = Timer
        If Dtime2 - Dtime1 < 2 Then
            DoEvents
        Else
            Response = MsgBox("终端没有数据输出!" & h$ , vbOKOnly + vbExclamation, "警告")
            Exit Sub
        End If
    Loop Until MSComm1.InBufferCount >0 ‘若接受缓冲区等待的字符数大于零,则接收到了数据
        
    MSComm1.InputLen = 1 ‘从接受缓冲区要读取的字符数
    Instring = MSComm1.Input
end sub