使用的电子秤以连续方式按MCS-51下的方式1输出RS-232C信号,数据为ASCII码,共有16个帧,包括1个起始字符帧(02),2个状态椟志帧,1个空格字符,6个显示数据帧和6个皮重数据帧,每一个帧由10位组成,每一位是起始位“0”,第十位是停止位“1”,中间8个数据位(从低到高)的格式如下:
起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位
目前了解该电子秤不提供dll驱动请问如何实时接收到电子秤的发馈给计算机的质量信息呢,如何将接收到的信号转换为质量(kg)谢谢!!!
起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位
目前了解该电子秤不提供dll驱动请问如何实时接收到电子秤的发馈给计算机的质量信息呢,如何将接收到的信号转换为质量(kg)谢谢!!!
Option ExplicitPrivate strRecBuf As String
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
'Me.Hide '如果不想把这个小界面显示出来就留着这段,想显示就把最前面的'去掉
End SubPrivate Sub Form_Load()
If mscommWeight.PortOpen = True Then mscommWeight.PortOpen = False
mscommWeight.CommPort = 1 '1表示COM1,如果要改成COM2就写2就行了
If mscommWeight.PortOpen = False Then mscommWeight.PortOpen = True
mscommWeight.Settings = "2400,n,8,1"
mscommWeight.InputLen = 0
mscommWeight.RThreshold = 1
mscommWeight.InputMode = comInputModeText
End Sub
Private Sub mscommweight_OnComm()
Select Case mscommWeight.CommEvent
Case comEvReceive
strRecBuf = strRecBuf & mscommWeight.Input
Case Else
End Select
If InStr(strRecBuf, "g") Then’接收到最后一个字符
lblWeight.Caption = Mid(strRecBuf, InStr(strRecBuf, ",") + 1, 10)
strRecBuf = ""
End If
End SubPrivate Sub tmrOrderScan_Timer()‘这是向电子称发写信息(关机)。200ms的定时器,使用了DDE接收信息(lblSwitch)
DoEvents
Select Case lblSwitch.Caption
Case "Action"
tmrWeight.Enabled = False
mscommWeight.Output = Chr(&H50) & Chr(&HD) & Chr(&HA)‘关机开机
lblSwitch.Caption = ""
Sleep 200
tmrWeight.Enabled = True
Case Else End Select
End SubPrivate Sub tmrWeight_Timer()’这是1000ms定时器,向电子称发读取命令,
mscommWeight.Output = Chr(&H51) & Chr(&HD) & Chr(&HA)
End Sub
那如何进行数据转换呢?
使用的电子秤以连续方式按MCS-51下的方式1输出RS-232C信号,数据为ASCII码,共有16个帧,包括1个起始字符帧(02),2个状态椟志帧,1个空格字符,6个显示数据帧和6个皮重数据帧,每一个帧由10位组成,每一位是起始位“0”,第十位是停止位“1”,中间8个数据位(从低到高)的格式如下:
起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位
Private Sub mscommweight_OnComm()
Select Case mscommWeight.CommEvent
Case comEvReceive
strRecBuf = strRecBuf & mscommWeight.Input
Case Else
End Select
If InStr(strRecBuf, "g") Then’接收到最后一个字符
lblWeight.Caption = Mid(strRecBuf, InStr(strRecBuf, ",") + 1, 10)
Msgbox strRecbuf ‘加这个××××××
strRecBuf = ""
End If
End Sub