我用超级终端已经读了数据过来,设置为"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控件中并可以保存
第X字节 内容及注解
1 02(XON) 开始
2 +或- 符号位
3 称量数据 高位
称量数据
称量数据8 称量数据 低位
9 小数点位数 从右到左(0~4)
10 异或校验 高四位
11 异或校验 低四位
12 03(XOFF) 结束
异或=2.........9请问我如何将数据读进TEXT控件中并可以保存
Dim strData As String
Private Sub Form_Load()
MSComm1.Settings = "1200,N,8,1"
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End SubPrivate 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
MSComm1.Settings = "1200,N,8,1"
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End SubPrivate 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
大家帮忙点击一下下面的两个网站:谢谢啊!
http://hi.henhaoji.com/index.aspx?id=39192
http://hi.henhaoji.com/index.aspx?id=39474