Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
CRC16 ModBus Örneği
#1
Merhaba, 

CRC16 Modbus Örneği, Günde birkaç konu açarak bende Delphi Can'a birazcıkta olsa katkıda bulunmak istedim 

const 
 TableCRC: array[0..255] of word =
  ($0000, $C0C1, $C181, $0140, $C301, $03C0, $0280, $C241, 
   $C601, $06C0, $0780, $C741, $0500, $C5C1, $C481, $0440, 
   $CC01, $0CC0, $0D80, $CD41, $0F00, $CFC1, $CE81, $0E40, 
   $0A00, $CAC1, $CB81, $0B40, $C901, $09C0, $0880, $C841, 
   $D801, $18C0, $1980, $D941, $1B00, $DBC1, $DA81, $1A40, 
   $1E00, $DEC1, $DF81, $1F40, $DD01, $1DC0, $1C80, $DC41, 
   $1400, $D4C1, $D581, $1540, $D701, $17C0, $1680, $D641, 
   $D201, $12C0, $1380, $D341, $1100, $D1C1, $D081, $1040, 
   $F001, $30C0, $3180, $F141, $3300, $F3C1, $F281, $3240, 
   $3600, $F6C1, $F781, $3740, $F501, $35C0, $3480, $F441, 
   $3C00, $FCC1, $FD81, $3D40, $FF01, $3FC0, $3E80, $FE41, 
   $FA01, $3AC0, $3B80, $FB41, $3900, $F9C1, $F881, $3840, 
   $2800, $E8C1, $E981, $2940, $EB01, $2BC0, $2A80, $EA41, 
   $EE01, $2EC0, $2F80, $EF41, $2D00, $EDC1, $EC81, $2C40, 
   $E401, $24C0, $2580, $E541, $2700, $E7C1, $E681, $2640, 
   $2200, $E2C1, $E381, $2340, $E101, $21C0, $2080, $E041, 
   $A001, $60C0, $6180, $A141, $6300, $A3C1, $A281, $6240, 
   $6600, $A6C1, $A781, $6740, $A501, $65C0, $6480, $A441, 
   $6C00, $ACC1, $AD81, $6D40, $AF01, $6FC0, $6E80, $AE41, 
   $AA01, $6AC0, $6B80, $AB41, $6900, $A9C1, $A881, $6840,
   $7800, $B8C1, $B981, $7940, $BB01, $7BC0, $7A80, $BA41,
   $BE01, $7EC0, $7F80, $BF41, $7D00, $BDC1, $BC81, $7C40,
   $B401, $74C0, $7580, $B541, $7700, $B7C1, $B681, $7640,
   $7200, $B2C1, $B381, $7340, $B101, $71C0, $7080, $B041,
   $5000, $90C1, $9181, $5140, $9301, $53C0, $5280, $9241,
   $9601, $56C0, $5780, $9741, $5500, $95C1, $9481, $5440,
   $9C01, $5CC0, $5D80, $9D41, $5F00, $9FC1, $9E81, $5E40,
   $5A00, $9AC1, $9B81, $5B40, $9901, $59C0, $5880, $9841,
   $8801, $48C0, $4980, $8941, $4B00, $8BC1, $8A81, $4A40,
   $4E00, $8EC1, $8F81, $4F40, $8D01, $4DC0, $4C80, $8C41,
   $4400, $84C1, $8581, $4540, $8701, $47C0, $4680, $8641,
   $8201, $42C0, $4380, $8341, $4100, $81C1, $8081, $4040);

function ModbusCRC16(const s: String): Word;
var
 b: Byte;
 i: Integer;
begin
 Result := $FFFF;
 for i := 1 to Length(s) do
 begin
   b := Ord(s[i]) xor Result;
   Result := Result shr 8 xor TableCRC;
 end;
end;


[b]Kullanımı : 

var
c1: Word;
block : string;
begin
block := Chr($5a)+Chr($02);

c1:=ModbusCRC16(block);
Showmessage(Format('%.2X',[c1]));


Saygılarımla
Cevapla
#2
Scada ve otomasyon ile uğraşanlar için faydalı paylaşım. Teşakkürler
Cevapla
#3
dicle-gsm; bu ve bunun gibi daha önce verdiğiniz örnekler için teşekkürler.
Bu tarz, soru içermeyen, bilgilendirici konuları biraz daha detaylandırıp Makale yada İpucu bölümünde paylaşırsanız foruma daha güzel katkıda bulunmuş olursunuz.
Tekrar teşekkürler...
There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows Explorer dan delphi formuna dosya Drag&Drop işlemi örneği adelphiforumz 1 716 23-01-2025, Saat: 15:16
Son Yorum: yhackup
  Delphi kod örneği IceTraeYoung 10 3.710 12-01-2023, Saat: 01:08
Son Yorum: IceTraeYoung
  Delphi kod örneği IceTraeYoung 20 9.776 09-01-2023, Saat: 18:07
Son Yorum: frmman
  Delphi ile Hook (Kanca) atma örneği cinarbil 2 1.741 17-06-2021, Saat: 09:42
Son Yorum: woywod
  serial port modbus ercanskose 2 2.399 06-10-2020, Saat: 18:20
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi