`

java编写的两个modbus CRC16实现

    博客分类:
  • java
阅读更多

    在使用java与下位机通信中,经常会涉及到modbus协议,而作为校验手段,CRC16必不可少。
    网上搜到的绝大部分实现都不是为modbus编写的,经过与下位机的通信检验,我选择了其中两个比较简洁的实现并根据自己的需要加以改进,完成了以下两个工具类。
    希望对需要此类编程的朋友有所帮助。
    对附件说明如下:
    class CRC_16 ——采用运算实现的CRC
    class CRC16M——采用查表实现的CRC
    对主要方法说明如下:
    alex_crc16——crc运算
    getSendBuf——根据十六进制字符串获得带CRC校验字的字节数组
    getBufHexStr——将字节数组打印为十六进制字符串
    checkBuf——验证应答的字节数组

    另外今天调程序还犯了一个低级错误,因为java中的byte是无符号的,因此在多数情况下是不能直接拿来相加的,需要先转换为无符号值
    例如:说明书算式为: (bh & 03H) * 256 + bl ,即高字节后两位乘256加上低字节,如果直接将低字节拿去相加可能造成低字节值为负数。
    加之前必须进行类似这样的转换 (bh&0x03)*256+(int)(bl&0xff)

分享到:
评论
4 楼 chebin 2016-05-19  
   用上了,很赞!节省了不少时间。
多谢分享!
3 楼 ron.luo 2013-11-13  
先围观下....下载看看,有木有用。
2 楼 宏基小键盘 2012-03-26  
因为java中的byte是无符号的

应该是有符号的吧。
1 楼 tianxiadiyidou 2012-03-01  
    

相关推荐

    java版_ModBus_CRC16校验

    java ModBus CRC 16 校验_(亲测成功) 还有一个在线版本的 https://www.lammertbies.nl/comm/info/crc-calculation.html

    VB 下MODBUS crc16校验代码实现

    使用modbus RTU通讯时候,我们需要进行CRC16进行校验。...本软件就是采用vb编写实现MODBUS crc16校验的。 下面的是采用该代码的延伸 http://blog.csdn.net/kw123/archive/2007/10/08/1815738.aspx<br><br>

    CRC16 MODBUS校验算法实现

    附件是CRC16 MODBUS校验算法实现 分两种情况: 1、参数是字符串,见附件中CRCStrTest.java文件 2、参数是字节数组,见附件中CRCByteTest.java文件

    MODBUS CRC16校验计算器.exe

    MODBUS CRC16校验计算器.exe

    modbus crc16校验程序

    modbus crc16校验程序。输入modbus格式字符串,计算字符串的modbus crc16计算结果。

    C#实现 CRC16 MODBUS算法

    C#实现 CRC16 MODBUS算法 工业制造常用

    MODBUS CRC16代码

    MODBUS CRC16代码,可以直接用该代码进行MODBUS CRC16的校验

    ST语言编写Modbus通信CRC16校验程序.docx

    ST语言编写Modbus通信CRC16校验程序,测试正常使用,是用施耐德somachine软件编写,使用ST语言,本文档下载后可直接使用。

    精简的modbus crc16算法 vb6

    我自己正在使用的 精简多余的代码之后的算法 用vb6开发 485 modbus通讯上位机的朋友可以直接用

    CRC-16/MODBUS-JAVA

    CRC校验(循环冗余校验)小知识 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度...CRC-16/MODBUS x6 + x5 + x2 + 1 16 8005 FFFF 0000

    易语言 MODBUS crc16算法

    这个是才有MODBUS协议使用的 CRC16校验,我在网上看了别人写的CRC16不能用在上面,所以我自己写了一个。

    MODBUS协议CRC16校验的C程序 源代码

    MODBUS是工业领域广泛使用的通信协议,此为MODBUS协议CRC16校验的一段C程序供你参考。

    基于MODBUS协议的CRC16校验算法-PB

    PB 语言编写的基于MODBUS协议的CRC16校验算法,已验证结果正确。属于程序代码,有问题可以联系QQ:441965142

    C# modbus CRC16计算工具 用这个

    modbus CRC16校验码计算小工具,通过输入相应的命令帧,点击按钮,则生成CRC16校验码,非常好用,本软件采用C#语言编写,压缩包中包含源代码及执行exe文件

    crc16_modbus.lua

    使用bit库,使用crc16 modbus算法,核心算法不变可以根据不同的需求进行对写入参数进行变化实现不同参数的计算

    modbus crc16进制转换

    modbus crc16 十进制小数转16进制浮点数

    CRC-16(Modbus)并行计算Verilog代码

    CRC-16(Modbus)并行计算Verilog代码,结果可在网页http://www.ip33.com/crc.html上进行计算对比

    CODESYS ST语言实现MODBUS CRC校验

    MODBUS库有许多,但要想自己调度MODBUS通讯,就需要自己计算CRC,该文介绍CRC的ST语言实现。

    C#基于Modbus三种CRC16校验方法的性能对比

    1.背景介绍 主要应用场景在物联网中,底端设备注册报文的上报,需要对报文的有效载荷(data)进行CRC16的复验,验证与设备...本文侧重测试CRC的性能,不讲CRC校验的原理,因为CRC只是个校验数据准确性的工具,而且每个报

Global site tag (gtag.js) - Google Analytics