±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
Áú¹®°ú ´äº¯ Áú¹®°ú ´äº¯ ÀÔ´Ï´Ù.
±Û³»¿ë - Áú¹®°ú ´äº¯
 [Áú¹®]Byte¸¦ CharÇüÀ¸·Î ¹Ù²Ù´Âµ¥ Àß ¾ÈµÇ³×¿ä.
³×¸ð
(ÇÑ´ë¼·)
2020-01-07 ¿ÀÀü 1:45:06
1137ȸ Á¶È¸


µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.

1. °³¹ß/½ÇÇà Ç÷§Æû

(1) OS : Windows 7

(2) °³¹ßÅø : Delphi 2010

(3) »ç¿ë Database :

2. °³¹ß ÁßÀÎ ÇÁ·Î±×·¥

3. Áú¹® ³»¿ë

¾È³çÇϼ¼¿ä.

°í¹Î°í¹Î ÇÏ´Ù°¡ Àß ¾ÈµÇ¼­ Áú¹® µå¸³´Ï´Ù.

MODBUS RTU ÇÁ·Î±×·¥À» ÇÏ°í Àִµ¥¿ä.

ÀÏ´Ü ±¹¹øÀº 04, 04: INPUT REGISTER, ½ÃÀÛ¹øÁö 0, ±æÀÌ 1 ÀÔ´Ï´Ù.

//----- CRC-16 Check -------------------------------------------
function GetCRC16(msg: PChar; iLength: Integer): Word;
var
  i, j          : integer ;
  crc, Tembyte  : Word ;
begin
  crc := $FFFF ;
  for i := 0 to iLength-1 do
  begin
    crc := (crc XOR integer(msg[i])) ;
    for j:= 0 to 7 do
    begin
      Tembyte :=(crc and $FF) ;
      if (Tembyte mod $02) > 0 then
        crc := (crc shr 1) XOR $A001
      else
        crc := (crc shr 1) ;
    end;
  end;
  result := crc ;
end;
//----- CRC-16 CHECK -------------------------------------------
procedure TFMain.CRC16_Check;
var
  Len     : Integer ;
  lcCRC   : PChar ;
  lWCRC   : Word ;
begin
  Len   := Length(grCOM.Comm) ;    //-- grCOM.Comm = String Çü
  lcCRC := PChar(grCOM.Comm) ;
  lWCRC := GetCRC16(lcCRC, Len) ;
  gbCRCHi := lWCRC and $FF ;        //-- gbCRCHi = Byte Çü (CRC »óÀ§´Ü)
  gbCRCLo := lWCRC shr 8 ;           //-- gbCRCLoi = Byte Çü (CRC ÇÏÀ§´Ü)
end;

grCOM.Comm := #4#4#0#0#0#1 ;  ÀÌ·¸°Ô µË´Ï´Ù.

ÀÌ°ÍÀ» function GetCRC16À» Çϸé 40753(9F31) °ªÀÌ ¸®ÅϵǼ­ ¿É´Ï´Ù.

ÀÌ°ÍÀ» ´Ù½Ã »óÀ§´Ü°ú ÇÏÀ§´ÜÀ¸·Î ±¸ºÐÇϱâ À§ÇÏ¿©  gbCRCHi := lWCRC and $FF, gbCRCLo := lWCRC shr 8 ¿Í °°ÀÌ ÇÏ¿´½À´Ï´Ù.

±×·¯¸é gbCRCHi := 49 (Hex:31), gbCRCLo := 159 (Hex:9F)°¡ µË´Ï´Ù.

±×¸®°í, grCOM.Comm := grCOM.Comm + Char(gbCRCHi) + Char(gbCRCLo) ; Çؼ­ ¹®ÀÚ¸¦ ÇÕÃÄ ÁÖ¾ú´Âµ¥.

Á¦°¡ ¿øÇÑ°Ç

grCOM.Comm := #4#4#0#0#0#1#$31#$9F ; Àε¥

°á°ú¸¦ º¸¸é

grCOM.Comm := #4#4#0#0#0#1#$31#$009F ; À¸·Î ³ª¿É´Ï´Ù.

¿Ö Byte Çü 159(9F)À»  CharÇüÀ¸·Î º¯È¯Çϸé #$009F °¡ µÉ±î¿ä??? (ÀÌÀ¯ Á» ¾Ë°í ½Í¾î¿ä)

¶Ç, CharÇüÀ¸·Î #$9F °¡ µÇ°Ô ÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ½Í½À´Ï´Ù.