怎样读时时地取地磅的过称的数据(100t)?急急急!!!!!!!!(10分)

  • 主题发起人 主题发起人 tt123tt
  • 开始时间 开始时间
台湾弘邦的产品我是没有做过,不过我做过其它厂家的。
其中都差不多啦。当时我也不知道它的数据格式,和厂家要了一个却是错误的(后来知道的)。
我是在网上找了一个《串口调试精灵》,把数据读出后找它的规律,然后就。。。
得到了该电子秤的数据格式,有了数据格式后就好办了。
或者用API去读,或者用MSCOMM或SPCOMM都可,看你想怎样啦:)
 
我用工具读出来了发过来的数据是这样的:
0 Kg 0
0 Kg
0 Kg 0
0 Kg
...........
...........
..........
这这是怎样取出最前面的 0(也就是重量单位是Kg)呀?
 
以前我做过托利多的,是用VB,使用MScomm控件。你必须设置好MScomm的Settings属性,
如我用的型号必须设置为:4800,e,7,1。可参考以下程序:
Private Sub Form_Activate()
IniMscomm
.....//其他代码
End Sub
Private Sub IniMscomm()
On Error Resume Next
MSComm1.CommPort = Comport
MSComm1.Handshaking = Handshaking
MSComm1.PortOpen = True
MSComm1.DTREnable = True
MSComm1.RTSEnable = True
Err.Clear
If MSComm1.PortOpen = False then
MSComm1.Settings = Settings
MSComm1.PortOpen = True
If Err then
MsgBox "串口无效,请在系统配置项中重新设置", vbCritical, "计产系统"
Exit Sub
End If
End If
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
End Sub
Private Sub MSComm1_OnComm()
Dim buffer
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputMode = comInputModeText
buffer = MSComm1.Input
If Text2.Locked = False then
If Len(LTrim(RTrim(buffer))) > 6 then
Text2.Text = ""
Text2.Text = GetValue(CStr(buffer))
End If
End If
End Select
End Sub
 
以下是GetValue函数:
Public Function GetValue(S As String) As String
Dim m As Integer
Dim n As Integer
Dim i As Integer
For i = 1 To Len(S)
If Asc(Mid(S, i, 1)) > 47 And Asc(Mid(S, i, 1)) < 58 then
m = i
Exit For
End If
Next
For i = Len(S) To 1 Step -1
If Asc(Mid(S, i, 1)) > 47 And Asc(Mid(S, i, 1)) < 58 then
n = i
Exit For
End If
Next
S = Mid(S, m, n - m + 1)
GetValue = S
End Function
 
我已经解决了这个问题,其实很间单,
在编程之前要弄到过磅显示器地说明书,
里面都有怎样接收数据的说明,要不然会走很多弯路地,
我以前用地HB的因为避雷性能不好,国内很少用(所以到现在还没找到说明书,不过已经解决了),
现在国产的过磅显示器的说明书写地很详细,性能也很好,
所以只要有说明书电脑接收数据都很容易实现!
多谢各位地帮助,祝大家愉快!
 
首先要知道电子称发来的数据格式
 
多谢大家!
 
后退
顶部