如何实现通过串口文以读取地磅称数据并保存到时TEXT控件中?急!!!

解决方案 »

  1.   

    你须提供详尽的通信协议,在此基础上,使用MSCOMM控件,编写符合通信协议的接收代码。
      

  2.   

    MSCOMM,设置其属性,主要是通信协议。要看地磅的说明书。
    MSCOMM的资料、示例,网上多的是。
      

  3.   

    没有见过完整的例程。
    1。地磅称的通信:读,写
    2。与Access 或Excel的交互
    3。统计,报表,打印
      

  4.   

    设好通信协议,再使用MSCOMM控件,考虑用文本还是二进制方式接收代码到textbox里去。通信协议主要是波特率停止位等等。
      

  5.   

    我用超级终端已经读了数据过来,设置为"1200,N,8,1",波特率为1200,无奇偶,8位数据位,1位停止位.读的数据为+00006001D,此时仪表显示为60Kg;当仪表显示为60140Kg时,仪表读的数据为+06014001A;(说明,+号前面有一个特殊字符,最后也有一个特殊字符,前后两个字符不同,而每次数据这两个字符分别都一样),当显示为零公斤时,读的数据为+00000001B,前后分别有一特殊字符. 说明书中有仪表的说明如下:所有数据均为ASCII码,每组数据由10位组成,第1位为起始位,第10位为停止位,中间8位为数据位,通讯方式为连续方式;所传数据为仪表显示的当前称量.每帧数据由12组数据组成.格式如下: 
    第X字节    内容及注解 
    1        02(XON)      开始 
    2        +或-        符号位 
    3        称量数据        高位 
              称量数据 
              称量数据 8        称量数据        低位 
    9        小数点位数      从右到左(0~4) 
    10      异或校验        高四位 
    11      异或校验        低四位 
    12      03(XOFF)      结束 
    异或=2.........9 请问我如何将数据读进TEXT控件中并可以保存 
      

  6.   


    按你说的,应该是仪表不断的自动送数据出去吧,这个很容易,
    用MSCOMM控件吧,在Oncomm事件里把送来的数据处理后显示到文本控件。
    如:
    Private Sub MSComm1_OnComm()
        Dim s As String
        If MSComm1.CommEvent = comEvReceive Then '接收到数据
            s = MSComm1.Input '读数据
            '处理......
            'Textbox1.Text = .....
        End If
    End SubMSCOMM控件的用法很简单,可以去msdn查一下,还有例子。
      

  7.   

        Dim strData As String
    Private Sub Command1_Click()
        Timer1.Enabled = True
    End SubPrivate Sub Form_Load()
        MSComm1.Settings = "1200,N,8,1"
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeText
        MSComm1.PortOpen = True
        Timer1.Interval = 500
        Timer1.Enabled = False
    End SubPrivate Sub mscomm1_OnComm()
        Dim strRe As String
        Select Case Me.MSComm1.CommEvent
            Case comEvReceive
                strRe = Me.MSComm1.Input
                strData = strData & strRe
                Dim xsws As Integer
                '未考虑第10及11字节异或校验
                If Mid(strData, 1, 1) = Chr(2) And Mid(strData, 12, 1) = Chr(3) Then '数据判断
                    xsws = Val(Mid(strData, 9, 1)) '取小数位数
                    Text1 = Val(Mid(strData, 2, 10)) / (10 ^ xsws) '输出到文本框
                    strData = ""
                End If
        End Select
    End Sub
      

  8.   


        Dim strData As String
    Private Sub Form_Load()
        MSComm1.Settings = "1200,N,8,1"
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeText
        MSComm1.PortOpen = True
        Timer1.Interval = 500
        Timer1.Enabled = False
    End SubPrivate Sub mscomm1_OnComm()
        Dim strRe As String
        Select Case Me.MSComm1.CommEvent
            Case comEvReceive
                strRe = Me.MSComm1.Input
                strData = strData & strRe
                Dim xsws As Integer
                '未考虑第10及11字节异或校验
                If Mid(strData, 1, 1) = Chr(2) And Mid(strData, 12, 1) = Chr(3) Then '数据判断
                    xsws = Val(Mid(strData, 9, 1)) '取小数位数
                    Text1 = Val(Mid(strData, 2, 10)) / (10 ^ xsws) '输出到文本框
                    strData = ""
                End If
        End Select
    End Sub