Delphi Modbus RTU CRC16校验码


function CheckCrc16(const ABuf; ALen: Integer): Boolean;
var
uwTemp: WORD;
i, j: BYTE;
P: PByte;
begin
Result := False;

P := PByte(@ABuf);

uwTemp := $FFFF;
for i := 1 to ALen do
begin
uwTemp := uwTemp xor P^;
for j := 1 to 8 do
begin
if (uwTemp and 1) = 1 then
uwTemp := (uwTemp shr 1) xor $A001
else
uwTemp := uwTemp shr 1
end;
Inc(P);
end;

if P^ = BYTE(uwTemp) then
begin
Inc(P);
if P^ = BYTE(uwTemp shr 8) then
begin
Result := True;
end
end
end;

Delphi实现Modbus协议CRC校验源码详解与实战 Modbus是一种主从式、请求-响应型的串行通信协议,最初由Modicon公司于1979年为PLC设备间通信设计。其开放性和简洁性使其成为工业自动化领域最广泛使用的应用层协议之一。理想的函数签名应简洁明了,便于调用:使用const修饰符可防止意外修改输入数据,且允许传入静态或动态数组。返回类型为Word,符合Modbus帧结构要求。完整实现如下:varCRC: Word;end;end; 阅读详情

相关推荐

Modbus CRC16校验与十进制小数转十六进制浮点数实战详解

今天我们完成了一场从理论到实践的完整穿越:我们学会了如何将3.14159转换为 IEEE 754 编码40490FD1掌握了大端/小端字节序的影响及应对策略构建了符合 Modbus RTU 规范的请求帧深入理解了 CRC16 的数学本质与实现细节实现了高效的查表法优化并给出了完整的 Delphi 示例代码这一整套流程不仅适用于 Modbus,也广泛存在于 CANopen、Profibus、TCP/IP 校验等各类工业通信协议中。

weixin_33072399的博客 778

CRC.rar_crc_crc delphi_crc16 C语言_delphi crc_delphi crc16

c语言和delphicrc16的求解代码

DelphiCRC16校验的实现

CRC-16/IBM多项式是众多CRC16变种中的一个,广泛应用于不同的通信协议中。其多项式表示为:这种多项式的特点是能够检测出常见的多位错误。它在IBM的SDLC协议中使用,因而得名。源代码文件是一个使用Delphi语言编写的CRC16校验工具。该文件的代码结构被设计为模块化,以便于阅读和维护。它由多个函数和过程组成,每个组件都有明确的职责。代码中实现了CRC16校验码的计算,并为不同的应用场景提供了灵活的接口。

weixin_42103128的博客 855

Delphi7 CRC16检验码计算

DELPHI7 开发的CRC16检验码小程序及源码;

delphiCRC16 查表算法

国为一个项目的原因需要delphiCRC16 查表算法,找了好久了,很多都不能用,有些算出来也不对。网上其它地方,需要的话就下吧。我的Delphi2009下测试能用。

Delphi包含8位16位32位的CRC校验算法示例代码

内容索引:Delphi源码,算法相关,算法,CRC  内含8位、16位、32位的CRC校验算法示例代码,生成多项式的值(多项式因子)    注意:CRC16是数据流的高位先计算,多项式因子不变   而CRC32和CRC8都是数据流的低位先计算,所以多项式因子的高/低位对调   比如CRC32由$04C11DB7变为$EDB88320,CRC8由$31变为$8C   16CRC:按位计算,速度最慢,占用空间最少   注:数据流是高位先行      MCS51的CRC-16计算函数(多项式因子为$1021, 高位先行)   ; 调用:CRC16H/CRC16L=原CRC16值(16位,初始值为0

Delphi CRC16校验码

unit untCRC16; interface uses Windows; /// <summary> /// CRC校验码(从厂家提供C语言翻译而来) /// </summary> /// <param name="crc_ini">$00</param> /// <param name="buf">&l

那是一阵风 3999

Delphi Modbus RTU CRC16校验码的生成方式

在很多的串口通讯中,会使用到CRC16校验。在TIdHashCRC16中,给我们提供了一种CRC校验码的生成方式:TIdHashCRC16继承于TIdHash16这个类,其中覆盖实现了两个方法: 然而,当我们直接使用TIdHashCRC16类生成校验码的时候,经常是与设备的校验不匹配的,其原因在于VRunningHash初始化时为0,而我们需要的初始化值应该为0xFFFF。所以,我们需要对这个类进行改造,其中最简单的办法就是找到IdHashCRC.pas文件,把VRunningHash:=0;这个修改为

tanqth的专栏 1万+

如何使用Delphi编写Modbus RTU CRC16校验码

如何使用Delphi编写Modbus RTU CRC16校验码

2004v2004的专栏 8101

CRC校验 (计算方式) 通用源码(兼容CRC4/5/6/7/8/16/32/自定义)

本文介绍了一个通用的CRC校验代码实现,支持多种CRC算法类型(CRC4-CRC32)。代码通过结构体数组存储不同CRC算法的参数(多项式、初始值、反转设置等),提供位反转和CRC计算函数。该实现采用直接计算法,适用于教学演示,但实际应用中建议使用查表法优化性能。文中还列出了21种常见CRC算法的配置参数及其应用场景(如Modbus、USB、MPEG2等),并展示了测试字符串"Hello World!"在不同CRC算法下的计算结果。

2968

MODBUS通讯协议及编程

当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从...

weixin_34161029的博客 153

Delphi 16CRC实例 难得的资源

做工控需要CRC校验16位的校验好难找,好不容易看懂,自己总结出实例来。

Delphi CRC校验

Delphi CRC16校验运算函数,返回校验码根据实际需求替换位置 Delphi CRC16校验运算函数,返回校验码根据实际需求替换位置

crc16校验delphi

循环冗余校验码CRCCRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式

crc16校验源码 c语言和delphi翻译

此代码针对单片机处理十六进制数据和字符串数据的crc16校验值 附带c语言程序进行对比

16CRC校验_Delphi

unit Modbus_main; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Bu...

weixin_30655569的博客 435

计算ModBus CRC 校验码(delphi实现)

真后悔当初网络课没好好学,最近在编一个程序遇到一个CRC校验码的计算,左看右看,以前没有接触过这方面的编程,没办法,还好找了一大堆文字叙述的材料,终于搞定了.­我的CRC的多项式是以ModBus 的A001(1010 0000 0000 0001) ­nit Unit1; ­interface ­uses ­  Windows, Messages, SysUtils, Va

guanyonggui的专栏 2950

【原创】Delphi CRC校验码生成软件(CRC16CRC32)

Delphi CRC校验码生成软件(CRC16CRC32) 程序下载地址:CRC_Calc.rar 转载于:https://www.cnblogs.com/tangqs/archive/2011/12/08/2280255.html

weixin_30404405的博客 343
上一篇: fmpp SqlDataLoader
book_gwbasic
博客等级 码龄20年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值