您现在所在的是:

电脑编程

回帖:5个,阅读:2775 [上一页] [1] [下一页]
1789
dianchi
文章数:82
年度积分:50
历史总积分:1789
注册时间:2001/3/25
发站内信
发表于:2002/11/3 6:57:00
#0楼
请大侠指点:modbus协议(ASCII)怎么算校验码?谢谢。
:010600010064??                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
-328
匿名
文章数:-150
年度积分:50
历史总积分:-328
注册时间:2001/3/12
发站内信
发表于:2002/11/3 19:15:00
#1楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
-328
匿名
文章数:-150
年度积分:50
历史总积分:-328
注册时间:2001/3/12
发站内信
发表于:2002/11/4 6:47:00
#2楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
-328
匿名
文章数:-150
年度积分:50
历史总积分:-328
注册时间:2001/3/12
发站内信
发表于:2002/11/4 16:27:00
#3楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
1052
flyingcastle
文章数:47
年度积分:50
历史总积分:1052
注册时间:2002/8/4
发站内信
发表于:2002/11/4 20:31:00
#4楼
以VB为例CRC-16首先建立一个模块 'BCR
以VB为例CRC-16首先建立一个模块
'BCRC是所要计算的进制值(16或32),如16位CRC时,其值即为16
'GP是生成多项式,以16进制表示较佳
'BDF是欲求出CRC的原始数值
'返回值即是计算后的CRC值
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function CalCRC(BCRC As Integer, GP As Long, BDF As Long) As Long
 Dim C1&, C2&
 Dim A1%, PreC1&
 Dim LeftValue%, A1Shift%
 If BDF = 0 Then
   CalCRC = 0
   Exit Function
 End If
 A1 = (Len(Hex(BDF)) - 1) * 4  '求出第一次的参考偏移位元值
 C1 = BDF * 2 ^ BCRC           '将被求值先乘上位值
 LeftValue = Val("&H" & Mid(Hex(BDF), 1, 1))   '取出最左边的值
 If LeftValue >= 1 Then A1Shift = 1    '只有一位数,权值为1
 If LeftValue >= 2 Then A1Shift = 2    '只有二位数,权值为2
 If LeftValue >= 4 Then A1Shift = 3    '只有三位数,权值为3
 If LeftValue >= 8 Then A1Shift = 4    '四位数,权值为4
 A1 = A1 + (A1Shift - 1)            '第一次的偏移值
 C2 = GP * 2 ^ A1          '第一次的运算值
 Do
  PreC1 = C1               '记录先前值
  C1 = C1 Xor C2           '二进制长除法之余数
  Do
    A1 = A1 - 1  '''
    If C1 > PreC1 Then     '若余数大于生成多项式,则予以降序
      C1 = PreC1 Xor (GP * 2 ^ A1)
    Else
      Exit Do
    End If
  Loop
  C2 = GP * 2 ^ A1         '下一次的运算值
 Loop Until C1 <= GP       '直到余数小于生成多项式
 CalCRC = C1
End Function

之后做三个LABEL( 原值,CRC值,生成多项式)三个TEXTBOX控件.  再加一个COMMANDBUTTON控件(计算)

双击计算填入下面代码~
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Command1_Click()
Dim BCRC%, GP&, BDF&
BCRC = 16   '指定计算的范围是16位数的CRC
GP = Val("&H" & CStr(Text2.Text) & "&")  '转换生成多项式值为十六进制数值
BDF = Val("&H" & CStr(Text1.Text) & "&") '转换求值字符串为十六进制数值
Text3 = Hex(CalCRC(BCRC, GP, BDF))       '调用CRC子程序

End Sub

                                                                                     
1789
dianchi
文章数:82
年度积分:50
历史总积分:1789
注册时间:2001/3/25
发站内信
发表于:2002/11/5 7:07:00
#5楼
非常感谢flyingcastle兄。:):):)。
非常感谢flyingcastle兄。:):):)。兄弟就去试试。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004