紫外工控论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 4667|回复: 0

LabView在MODBUS规约CRC实现以及通讯技术

[复制链接]
冰糖 发表于 2010-6-29 19:27:14 | 显示全部楼层 |阅读模式


Modbus通讯协议分为RTU协议和ASCII协议。对于它的介绍可以参阅《MODBUS通讯协议及编程》。

LabView的介绍在我的BLOG已经够多的了,其优势不言而喻的。在此也不多介绍,可以参阅本BLOG关于它的串口通讯,三菱PLC通讯以及应用通讯等等。

对于CRC的介绍,那就太多了,也不做多于的介绍,下面就介绍它在VB和LabView中的实现方面的。

在VB中,下面的例子我们可以通过输入的16进制数据得到它的CRC校验以及根据一串数据判断它的CRC是否正确!

实现的程序如下:
Public Function CRC(Brr() As Byte) As Long
'CRC校验核,全部数据进行校验
   Dim i As Integer, j As Integer
   Dim TempVal As Long
   Dim YWval As Long
   Dim LSB As Integer

   TempVal = &HFFFF&

   For i = 0 To UBound(Brr())
       TempVal = TempVal Xor Brr(i)
       For j = 1 To 8
           YWval = Int(TempVal / 2)
           LSB = TempVal Mod 2
           If LSB = 1 Then
              YWval = YWval Xor &HA001&
           End If
           TempVal = YWval
       Next j
   Next i
   CRC = TempVal Mod 65536

End Function

按下计算后
    Dim Cmd() As Byte
Dim Jyh0 As Byte
     Dim Jyh1 As Byte
     Dim ValCRC As Long
‘Cmd()得到Text1控件中所有数据的十六进制数据:
‘01 03 00 00 00 02
Text2是得到CRC校验位的

  ValCRC = CRC(Cmd)
  Jyh0 = ValCRC Mod 256
  Jyh1 = Int(ValCRC / 256)

  Text2.Text = Right("0" + Hex(Jyh0), 2) + Right("0" + Hex(Jyh1), 2)

判断就是将最后C4 B0取出放置一个变量中,将01 03 00 00 00 02取出得到它的CRC(具体实现上面也有说明的)判断是否相等,等提示:

下面介绍LabView中的实现了,有了以上的代码,那么实现起来只是一个转换了,如果有兴趣的朋友可以不用看下面的实现,自己根据VB的代码进行转换即可。相信更有成就感的。

界面
由于是把它做成一个模块调用的,所以做的比较粗糙,但是可以看得出来的,在DATA下面输入16进制数据0103 0000 0002,CRC的结果为BC4。得到LOWER CRC BYTE为 C4,得到UPPER CRC BYTE为B,连接起来为C40B,直接转成16进制为String 2为:  4334 3024.进行处理转换为16进制为C40B。全部连接起来得到String4 为0103 0000 0002 C40B。
这样,与VB预算得到相同的结果。

  图表示为:


由于一幅图剪切不下来,特做两幅图处理。
总结
本文以单独的视角来实现ModBUS协议中的CRC在VB和LABVIEW中的实现方式,对于CRC的介绍本BLOG做过大量的介绍,在此就是简单的提出以下,可以参阅本BLOG也可以参阅其他的资料。在此就略去。

后记
对于LabVIEW这几年在虚拟仪器中的发展情况上看,相信有着更大的作为。本人也一直致力于这方面的研究。由于其博大精深,算起来只是掌握冰山上的一角!写下这些心得,希望能在自己总结的同时也分享这些所谓的略微成果!希望与各位共同进步。如果觉得该文章能够给访问者有着启示,本人也深感欣慰,同时也希望各位留下建议和意见,一方面本人也能根据你们的信息反馈改进自己的不足,提高自己。另一方面也希望结识更多致力于自动测控等方面研究的朋友,这样对于本人来说是莫大的荣幸!


参考资料
     www.cpubbs.com中的论坛,本人经常去的地方,里面许多问题可以请教到高手。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kw123/archive/2007/10/08/1815738.aspx

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


--------------------------------------------------------------------------------------------------------------------
本站是工控技术交流站点,论坛内容均为网络收集或会员所发表,并不代表本站立场,会员拥有该内容的所有权力及责任!
本站内容如有侵犯您的版权,请按下面方式联系本站管理员,我们将及时删除处理
管理员:冰糖 QQ:5483695(请直击主题), Mail:admin#ziwai.net(#改成@) 其它非本人.
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

QQ|Archiver|手机版|小黑屋|紫外工控论坛. ( 苏ICP备11032118号-1 )

GMT+8, 2024-5-14 23:46 , Processed in 0.281247 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表