急求!一台XK3190-A9的称仪表,如何将数据读进TEXT控件中?

jsxz0516 2008-06-17 10:45:35
我用超级终端已经读了数据过来,设置为"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控件中并可以保存
...全文
438 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CathySun118 2008-06-18
  • 打赏
  • 举报
回复
使用richtextbox控件即可
wzxpn 2008-06-18
  • 打赏
  • 举报
回复
楼上两位基本都正确,自己在根据实际情况进行以下调试就可以了。

我的邮箱:
wzxpn@126.com
大家帮忙点击一下下面的两个网站:谢谢啊!
http://hi.henhaoji.com/index.aspx?id=39192
http://hi.henhaoji.com/index.aspx?id=39474
zdingyun 2008-06-18
  • 打赏
  • 举报
回复
Private Sub Form_Load()
MSComm1.Settings = "1200,N,8,1"
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End Sub

Private 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
Dim fh As String
'未考虑第10及11字节异或校验
If Mid(strData, 1, 1) = Chr(2) And Mid(strData, 12, 1) = Chr(3) Then '数据判断
'请加异或校验代码
fh = Mid(strData, 2, 1)
xsws = Val(Mid(strData, 9, 1)) '取小数位数
Text1 = Val(Mid(strData, 3, 6)) / (10 ^ xsws) '输出到文本框
Open "c:\sj.txt" For Append As #1
Print #1, Date$, Time$, fh & Text1
Close
strData = ""
End If
End Select
End Sub
zdingyun 2008-06-18
  • 打赏
  • 举报
回复
Option Explicit
Dim strData As String
Private Sub Form_Load()
MSComm1.Settings = "1200,N,8,1"
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End Sub

Private 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) '输出到文本框
Open "c:\sj.txt" For Append As #1
Print #1, Date$, Time$, Text1
Close
strData = ""
End If
End Select
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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