求C#和电子称仪表通信方法,如何获得称重重量

shan7719515 2011-09-24 10:20:31
仪表品牌“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
...全文
519 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
egbert2000 2013-08-02
  • 打赏
  • 举报
回复
樓上代碼怎么不能全呀。 好事做到底嘛。
shan7719515 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sp1234 的回复:]

重量不是从第3个字节开始,连续7个字节嘛。那就是:C# code
var x = new byte[7];
Array.Copy(sourceDatas, 2, x, 0, 7);


或者如果是编码的字符串就是(假设是ASCII编码的):C# code
var x = Encoding.ASCII.GetString(sourceDatas, 2, 7);
[/Quote]请问如何判断实际重量是多少呢重量,每称重一次获得的应该是一组数据
allen0118 2011-09-26
  • 打赏
  • 举报
回复
获得电子秤的重量:

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

allen0118 2011-09-26
  • 打赏
  • 举报
回复

这是我用VB写的一个电子秤称重程序,自动获取电子秤的值然后记录到数据库,你可以参考一下,C#里面我试了一下觉得有点不好用。
allen0118 2011-09-26
  • 打赏
  • 举报
回复
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 Function



Private Sub MSComm1_OnComm()

End Sub

  • 打赏
  • 举报
回复
重量不是从第3个字节开始,连续7个字节嘛。那就是:
var x = new byte[7];
Array.Copy(sourceDatas, 2, x, 0, 7);

或者如果是编码的字符串就是(假设是ASCII编码的):
var x = Encoding.ASCII.GetString(sourceDatas, 2, 7);

无常名 2011-09-24
  • 打赏
  • 举报
回复
那你得看仪表传过来的重量值是什么形式啊,也就是协议。
然后把从串口读到的数据根据协议解释过来不就行了吗?
shan7719515 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zongbao516 的回复:]

没看懂你的那个输出格式,没详细的说明吗?
这个无非就是用SerialPort读取串口数据,通过协议解释数据。
[/Quote]SerialPort读数据我知道,只是不知道怎么取到重量值
无常名 2011-09-24
  • 打赏
  • 举报
回复
没看懂你的那个输出格式,没详细的说明吗?
这个无非就是用SerialPort读取串口数据,通过协议解释数据。

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧