1 Åë½Å ÇÁ·ÎÅäÄÝ
1.1¹°¸®Àû ·¹À̾î ÇÁ·ÎÅäÄÝ
¹°¸®Àû ·¹ÀÌ¾î »ç¿ë UART to RS485 Åë½Å ÀÎÅÍÆäÀ̽º
º¸µåÀ² 9600, 8 µ¥ÀÌÅÍ ºñÆ®, 1 Á¤Áö ºñÆ®, Æи®Æ¼
1.2ÀÀ¿ë ·¹À̾î ÇÁ·ÎÅäÄÝ
ÀÀ¿ë ÇÁ·Î±×·¥ ·¹À̾î´Â Modbus-RTU ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© Åë½ÅÇÕ´Ï´Ù. ÇöÀç, ±×°ÍÀº ´ÜÁö 0x03 (Àбâ ÁöÁÖ ±â·Ï±â), 0x04 (Àбâ ÀÔ·Â ±â·Ï±â), 0x06 (¾²±â ´Ü Çϳª ±â·Ï±â) ¿Í °°Àº ±â´É ºÎÈ£¸¦ Áö¿øÇÕ´Ï´Ù, 0x41 (±¸°æÃøÁ¤), 0x42 (¸®¼Â ¿¡³ÊÁö). µî.
0x41 ±â´É ºÎÈ£´Â 16 Á¶±Ý ¾ÏÈ£¸¦ Áõ°¡ÇÏ´Â ±â´É ºÎÈ£ ÈÄ¿¡ °øÀå ±¸°æÃøÁ¤À» À§ÇØ »ç¿ëµÇ´Â ³»ºÎ »ç¿ë (ÁÖ¼Ò¸¸ 0xF8 ÀÏ ¼ö ÀÖ½À´Ï´Ù) ¸¦ À§Çؼ¸¸, ¹× °øÀå Á¤ºñ °æ¿ì¿¡ µ¹·Áº¸³À´Ï´Ù, ÀÔ´Ï´Ù, ±âº» ¾ÏÈ£´Â 0x3721
ÁÖ¼Ò ¹üÀ§ ½½·¹À̺ê 0x01 ~ 0xF7. ÁÖ¼Ò 0x00 »ç¿ë ¹æ¼Û ÁÖ¼Ò, ½½·¹À̺ê ÇÊ¿ä°¡ ´ë´äÇÒ. ÁÖ¼Ò 0xF8 »ç¿ë ÀÏ¹Ý ÁÖ¼Ò ÀÌ ÁÖ¼Ò´Â »ç¿ëµË´Ï´Ù ´ÜÀÏ ½½·¹À̺ê ȯ°æ »ç¿ëµÉ ±³Á¤ µî..
1.3Àбâ ÃøÁ¤ °á°ú
¸¶½ºÅÍÀÇ ¸í·É Çü½ÄÀº ÃøÁ¤ °á°ú¸¦ ÀнÀ´Ï´Ù (ÃÑ 8 ¹ÙÀÌÆ®):
½½·¹À̺ê ÁÖ¼Ò + 0x04 + ·¹Áö½ºÅÍ ÁÖ¼Ò ³ôÀº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ ÁÖ¼Ò ³·Àº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ ¼ö ³ôÀº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ ¼ö ³·Àº ¹ÙÀÌÆ® + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
³ë¿¹¿¡¼ ´ë´äÀÇ ¸í·É Çü½ÄÀº µÎ Á¾·ù·Î ³ªdivided ´Ï´Ù:
¿Ã¹Ù¸¥ ÀÀ´ä: ½½·¹À̺ê ÁÖ¼Ò + 0x04 + ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ 1 µ¥ÀÌÅÍ ³ôÀº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ 1 µ¥ÀÌÅÍ ³·Àº ¹ÙÀÌÆ® +... + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®
¿À·ù ÀÀ´ä: ½½·¹À̺ê ÁÖ¼Ò + 0x84 + ºñÁ¤»óÀûÀÎ ÄÚµå + CRC È®ÀÎ ³ôÀº ¹ÙÀÌÆ® + CRC È®ÀÎ ³·Àº ¹ÙÀÌÆ®
ºñÁ¤»óÀûÀÎ ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ºÐ¼® (¾Æ·¡ µ¿ÀÏ)
L 0x01, ºÒ¹ý ±â´É
L 0x02, ºÒ¹ý ÁÖ¼Ò
L 0x03, ºÒ¹ý µ¥ÀÌÅÍ
L 0x04, ½½·¹ÀÌºê ¿À·ù
ÃøÁ¤ °á°úÀÇ µî·Ï±â´Â ´ÙÀ½ Ç¥·Î ¹è¿µË´Ï´Ù.
µî·Ï ÁÖ¼Ò | ¼³¸í | ÇØ»óµµ |
0x0000 | Àü¾Ð °ª | 1LSB 0.1V ´ëÀÀ |
0x0001 | ÇöÀç °¡Ä¡ ³·Àº 16 Á¶±Ý | 1LSB ÇØ´çÇÕ´Ï´Ù 0.001A |
0x0002 | ÇöÀç °¡Ä¡ ³ôÀº 16 Á¶±Ý |
0x0003 | Àü·Â °ª ³·Àº 16 Á¶±Ý | 1LSB 0.1W ´ëÀÀ |
0x0004 | Èû °¡Ä¡ ³ôÀº 16 Á¶±Ý |
0x0005 | ¿¡³ÊÁö °¡Ä¡ ³·Àº 16 Á¶±Ý | 1LSB ÇØ´çÇÕ´Ï´Ù 1Wh |
0x0006 | ¿¡³ÊÁö °¡Ä¡ ³ôÀº 16 Á¶±Ý |
0x0007 | ÁÖÆļö °ª | 1LSB 0.1 hz¿¡ ´ëÀÀ |
0x0008 | ¿ª·ü °ª | 1LSB ÇØ´çÇÕ´Ï´Ù 0.01 |
0x0009 | ¾Ë¶÷ »óÅ | 0xFFFF °æº¸°¡, 0x0000is ¾Ë¶÷ |
¿¹¸¦ µé¾î, ¸¶½ºÅÍ´Â ´ÙÀ½°ú °°Àº ¸í·ÉÀ» º¸³À´Ï´Ù (CRC üũ ÄÚµå´Â 0xhh¿Í 0xll·Î ±³Ã¼µÇ¸ç, ¾Æ·¡ µ¿ÀÏ)
0x01 + 0x04 + 0x00 + 0x00 + 0x00 + 0x0A + 0xHH + 0xLL
³ªÅ¸³À´Ï´Ù ¸¶½ºÅÍ ÇÊ¿ä°¡ Àбâ 10 ·¹Áö½ºÅÍ ½½·¹À̺ê ÁÖ¼Ò 0x01 ½ÃÀÛÀ¸·Î ÁÖ¼Ò ·¹Áö½ºÅÍ´Â 0x0000
³ë¿¹¿¡¼ Á¤È®ÇÑ ´ë´äÀº ´ÙÀ½°ú °°½À´Ï´Ù:
0x01 + 0x04 + 0x14 + 0x08 + 0x98 + 0x03 + 0xE8 + 0x00 + 0x00 + 0x08 + 0x98 + 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x01 + 0xF4 + 0x00 + 0x64 + 0x00 + 0x00 + 0xHH + 0xLL
À§ÀÇ µ¥ÀÌÅÍ´Â
L Àü¾ÐÀº 0x0898, ½ÊÁø¼ö º¯È¯ 2200, µð½ºÇ÷¹ÀÌ 220.0 º¼Æ®
L Àü·ù´Â 0x000003E8, ¼Ò¼ö·®À¸·Î º¯È¯ 1000, µð½ºÇ÷¹ÀÌ 1.000A
L ÈûÀº ¼Ò¼ö·®À¸·Î °³Á¶µÈ 0x00000898 ÀÔ´Ï´Ù 2200, Àü½Ã 220.0W
L ¿¡³ÊÁö´Â ¼Ò¼ö·®À¸·Î °³Á¶µÈ 0x00000000, Àü½Ã 0whÀÔ´Ï´Ù
L ÁÖÆļö´Â 0x01F4, ½ÊÁø¼ö º¯È¯ 500, µð½ºÇ÷¹ÀÌ 50.0 Ç츣Âê
L ¿ª·ü 0x0064, º¯È¯ ½ÊÁø¼ö 100, µð½ºÇ÷¹ÀÌ 1.00
L °æº¸ »óÅ´ 0x0000, ÇöÀç ÈûÀÌ °æº¸ Èû ¹®ÅÎ º¸´Ù´Â ´õ ³·´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù
1.4ÀÐ±â ¹× ¼öÁ¤ ½½·¹ÀÌºê ¸Å°³ º¯¼ö
ÇöÀç, ±×°ÍÀº ÀÐ±â ¹× ¼öÁ¤ ½½·¹À̺ê ÁÖ¼Ò ¹× Àü¿ø °æº¸ ÀÓ°è °ªÀ» Áö¿øÇÕ´Ï´Ù
±â·Ï±â´Â µÚ¿¡ ¿À´Â Å×À̺íÀ¸·Î ¹è¿µË´Ï´Ù
µî·Ï ÁÖ¼Ò | ¼³¸í | ÇØ»óµµ |
0x0001 | Àü¿ø °æº¸ ÀÓ°è | 1LSB ÇØ´çÇÕ´Ï´Ù 1W |
0x0002 | Modbus-RTU ÁÖ¼Ò | ¹üÀ§´Â 0x0001 ~ 0x00F7 |
½½·¹ÀÌºê ¸Å°³ º¯¼ö¸¦ Àаí ÃøÁ¤ °á°ú¸¦ Àд ¸¶½ºÅÍÀÇ ¸í·É Çü½ÄÀº µ¿ÀÏÇÕ´Ï´Ù (¼½¼Ç 2.3 ÀÇ ¼¼ºÎ »çÇ׿¡ descrybed), º¯°æÇؾßÇÕ´Ï´Ù ±â´É ÄÚµå 0x04 to 0x03.
½½·¹ÀÌºê ¸Å°³ º¯¼ö¸¦ ¼öÁ¤ÇÏ´Â ¸¶½ºÅÍÀÇ ¸í·É Çü½ÄÀº (ÃÑ 8 ¹ÙÀÌÆ®) ÀÔ´Ï´Ù.
³ë¿¹ ÁÖ¼Ò + 0x06 + ±â·Ï±â ÁÖ¼Ò ³ôÀº ¹ÙÀÌÆ® + ±â·Ï±â ÁÖ¼Ò ³·Àº ¹ÙÀÌÆ® + ±â·Ï±â °¡Ä¡ ³ôÀº ¹ÙÀÌÆ® + ±â·Ï±â °¡Ä¡ ³·Àº ¹ÙÀÌÆ® + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
³ë¿¹¿¡¼ ´ë´äÀÇ ¸í·É Çü½ÄÀº µÎ Á¾·ù·Î ³ªdivided ´Ï´Ù:
Á¤È®ÇÑ ÀÀ´ä: ½½·¹À̺ê ÁÖ¼Ò + 0x06 + ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ ÁÖ¼Ò ³·Àº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ °ª ³ôÀº ¹ÙÀÌÆ® + ·¹Áö½ºÅÍ °ª ³·Àº ¹ÙÀÌÆ® + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
¿À·ù ÀÀ´ä: ½½·¹À̺ê ÁÖ¼Ò + 0x86 + ºñÁ¤»óÀûÀÎ ÄÚµå + CRC È®ÀÎ ³ôÀº ¹ÙÀÌÆ® + CRC È®ÀÎ ³·Àº ¹ÙÀÌÆ®.
¿¹¸¦ µé¸é, ÁÖÀÎÀº ³ë¿¹ÀÇ Èû °æº¸ ¹®ÅÎÀ» ³õ½À´Ï´Ù:
0x01 + 0x06 + 0x00 + 0x01 + 0x08 + 0xFC + 0xHH + 0xLL
ÁÖÀÎÀÌ 0x08FC (0001 W) ¿¡ 0x2300 ±â·Ï±â (Èû °æº¸ ¹®ÅÎ) ¸¦ ³õÀ» ÇÊ¿ä°¡ ÀÖ´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
¿Ã¹Ù¸£°Ô ¼³Á¤, ³ë¿¹´Â ¸¶½ºÅÍ¿¡¼ º¸³½ µ¥ÀÌÅÍ·Î µ¹¾Æ°©´Ï´Ù.
¿¹¸¦ µé¾î, ¸¶½ºÅÍ´Â ³ë¿¹ÀÇ ÁÖ¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù.
0x01 + 0x06 + 0x00 + 0x02 + 0x00 + 0x05 + 0xHH + 0xLL
³ªÅ¸³À´Ï´Ù ¸¶½ºÅÍ ÇÊ¿ä°¡ ¼¼Æ® 0x0002 µî·Ï (Modbus-RTU ÁÖ¼Ò) 0x0005
¿Ã¹Ù¸£°Ô ¼³Á¤, ³ë¿¹´Â ¸¶½ºÅÍ¿¡¼ º¸³½ µ¥ÀÌÅÍ·Î µ¹¾Æ°©´Ï´Ù.
1.5¸®¼Â ¿¡³ÊÁö
¸í·É Çü½Ä ¸¶½ºÅÍ Àç¼³Á¤ ³ë¿¹ÀÇ¿¡³ÊÁöIs (ÃÑ 4 ¹ÙÀÌÆ®):
³ë¿¹ ÁÖ¼Ò + 0x42 + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
Á¤È®ÇÑ ´ë´ä: ³ë¿¹ ÁÖ¼Ò + 0x42 + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
¿À·ù ÀÀ´ä: ½½·¹À̺ê ÁÖ¼Ò + 0xC2 + ºñÁ¤»óÀûÀÎ ÄÚµå + CRC È®ÀÎ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®
1.6±³Á¤
³ë¿¹¸¦ ±³Á¤ÇÏ´Â ¸¶½ºÅÍÀÇ ¸í·É Çü½ÄÀº (ÃÑ 6 ¹ÙÀÌÆ®) ÀÔ´Ï´Ù:
0xF8 + 0x41 + 0x37 + 0x21 + CRC ³ôÀº ¹ÙÀÌÆ® + CRC È®ÀÎ ³·Àº ¹ÙÀÌÆ®.
Á¤È®ÇÑ ´ë´ä: 0xF8 + 0x41 + 0x37 + 0x21 + CRC üũ ³ôÀº ¹ÙÀÌÆ® + CRC üũ ³·Àº ¹ÙÀÌÆ®.
¿À·ù ÀÀ´ä: 0xF8 + 0xC1 + ºñÁ¤»óÀûÀÎ ÄÚµå + CRC È®ÀÎ ³ôÀº ¹ÙÀÌÆ® + CRC È®ÀÎ ³·Àº ¹ÙÀÌÆ®.
±³Á¤ÀÌ 3 ~ 4 ÃÊ°¡ °É¸®´Â °ÍÀ» ÁÖ¸ñÇؾßÇÕ´Ï´Ù. ¸¶½ºÅÍ°¡ ¸í·ÉÀ» º¸³»´Â ÈÄ ±³Á¤ÀÌ ¼º°øÇϸé, ±×°ÍÀº ³ë¿¹¿¡¼ ÀÀ´äÀ» ¹Þ±â À§ÇÏ¿© 3 ~ 4 Ãʸ¦ °¡Áö°í °¥ °ÍÀÔ´Ï´Ù.
1.7CRC üũ
CRC üũ »ç¿ë 16 ºñÆ® Çü½Ä, µÎ ¹ÙÀÌÆ®¸¦ Á¡À¯, ¹ßÀü±â polynomial X16 + X15 + X2 + 1, °è»ê¿¡ »ç¿ë µÈ polynomial °ªÀº 0xA001.
CRC Á¡°ËÀÇ °¡Ä¡´Â CRC üũ °ªÀ» Á¦¿ÜÇÏ°í ¸ðµç ¹ÙÀÌÆ®¸¦ °Ë»çÇÏ´Â ¸ðµç °á°ú¸¦ ³ª´©´Â ÇÁ·¹ÀÓ µ¥ÀÌÅÍÀÔ´Ï´Ù.