仪表品牌“OHAUS”,RS232串行端口COM1
波特率:9600
数据位:8
奇偶校验:无
停止位:1下面是说明书介绍的输出格式:
Fleld: Prolarity Space Weight Space Unit Stability Legend  CR   LF
Length:   1        1     7      1     5      1       3      1    1

解决方案 »

  1.   

    没看懂你的那个输出格式,没详细的说明吗?
    这个无非就是用SerialPort读取串口数据,通过协议解释数据。
      

  2.   

    SerialPort读数据我知道,只是不知道怎么取到重量值
      

  3.   

    重量不是从第3个字节开始,连续7个字节嘛。那就是:var x = new byte[7];
    Array.Copy(sourceDatas, 2, x, 0, 7);或者如果是编码的字符串就是(假设是ASCII编码的):var x = Encoding.ASCII.GetString(sourceDatas, 2, 7);
      

  4.   

    Private Function OpenPort() As Boolean
        With MSComm1
            .CommPort = 1 'Int(TXTCOM.Text)             
            .Settings = "9600,N,8,1"                    
            .InBufferSize = 40                          
            .OutBufferSize = 14                         
            .InputMode = comInputModeText               
            .InputLen = 8                               
            .SThreshold = 14                            
            .InBufferCount = 0                          
            .OutBufferCount = 0                         
           
            .RThreshold = 8                             
     
           On Error Resume Next                         
           Err.Clear
           
           If .PortOpen = False Then                    
                .PortOpen = True                        
                If Err Then                             
                     MsgBox "Open Com Port Error!"
                     'TXTERR.Caption = "Open Com Port Error!"
                     OpenPort = False
                     On Error GoTo 0
                     Exit Function
                End If
            End If
        End With
        OpenPort = True
        On Error GoTo 0
    End FunctionPrivate Sub MSComm1_OnComm()End Sub
      

  5.   


    这是我用VB写的一个电子秤称重程序,自动获取电子秤的值然后记录到数据库,你可以参考一下,C#里面我试了一下觉得有点不好用。
      

  6.   

    获得电子秤的重量:Private Sub MSComm1_OnComm()
    Dim recstr As String
        recstr = ""
        With MSComm1
             Select Case .CommEvent                    '判断MSComm1通讯事件
                    Case comEvReceive                    '收到Rthreshold字节产生的事件
                        recstr = recstr + .Input                       '读取一个接受直接
                        
                        If Trim(Me.Text1.Text) = "" Then
                             recstr = recstr + .Input
                             Me.Text1.Text =Me.Text1.Text + recstr。

    。End Sub