EXCEL如何实现CRC16-MODBUS的计算

1、创建启用宏的EXCEL文件,一般文件后缀为*.xlsm。

2、选择   开发工具 ---   Visual Basic。(如果没有,那就去找找相关文章,如何调出开发工具,相关文章很多)

3、创建模块

4、输入代码(最核心)

Function CalculateCRC(inputHex As String) As String
    Dim i As Integer
    Dim j As Integer
    Dim crc As Integer
    Dim crcLowByte As Byte
    Dim crcHighByte As Byte
    
    crc = &HFFFF
                
    For i = 1 To Len(inputHex) Step 2
        crc = crc Xor Val("&H" & Mid(inputHex, i, 2))
        For j = 1 To 8
            If (crc And 1) = 1 Then
                crc = ((crc And &HFFFF&) \ 2) Xor &HA001
                
            Else
                crc = (crc And &HFFFF&) \ 2
            En
ExMod Serial Assistant使用说明 ExMod串口调试助手主要功能是发送大量串口数据,设计目标是满足上位机串口编程调试之用,是个人把在上位机编程中常用的模拟调试功能汇总到一个调试软件中而成。除普通串口调试助手功能外,还包括发送文件中数据、Modbus Rtu Master常用功能。其中文件格式支持Excel、CSV、文本文件3种格式。配合虚拟串口软件,只要确定了通讯协议,即可脱离设备调试软件。可适用于自定义协议、Modbus Rtu协议。 使用说明: 软件主界面包括3个功能区,“发送任意串口数据”以上为功能区1,用于基本串口数据发送,还包括计算CRC校验码并与数据同时发送功能。 功能区2 包括“读取Holding寄存器”、“读取输入寄存器”、“写入多个寄存器”,用于单条Modbus数据读取、发送。 剩余部分为第3功能区,“发送文件中数据”用于大量串口数据发送。其下有多个发送选项,包括发送范围、发送间隔、数据格式。“延时”用于设置多条数据间发送间隔。“Modbus数据”选择表示文件中数据按Modbus格式发送,不选择表示为普通串口数据。如果文件中所有数据为同一寄存器地址,需在“寄存器地址”中输入地址,如果多条数据地址不同,可在文件中编辑寄存器地址,此时需选择“第一列为地址”。Excel、CSV中第一列好理解,文本文件在软件中也按CVS格式处理,即文本文件中第1个逗号之前视为第一列。 发送文件中数据如果选择“Modbus数据”,仅支持“WriteMultipleRegisters”命令发送。发送串口数据如果16进制数据不为整字节(Modbus时为整字),会在数据前补0。 接收数据中的显示内容如果长度超过0.1M会自动保存到以当前时间命名的文本文件中。也可以手动保存以便以后调试时使用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值