1、Modbus ACS 140/400ABB Automation Group Ltd. 19993AFY 61514317 R01253ABD00007265 A1999 3 15Modbus iiiModbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Modbus . . .
2、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Modbus . . . . . . . . . . . . . . . . . . . . . .
3、 . . . . . . . . . . . . . . . . . . . . . . . 5RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4、6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5、. . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6、 . . . . . . . . . 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. . .
7、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 (10 Hex) . . . . . . . . .
8、. . . . . . . . . . . . . . . . . . . . . . . . 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19CRC. . . . . . . . . . . . . . . . . . . . . . . .
9、 . . . . . . . . . . . . . . . . . . . 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Modbus Modbus ModbusModicon Schneider Automation (Modicon)Modicon Modbus Modbus ACS140ACS400 Modbus ModbusACS140/ACS400 ACS 140RS485/232 RS 485/ RS232ACS
10、400 RS485 RS485/232 RS232ModbusModicon RS232C () ( ) ( )( )Modbus ( )Modbus21 - -03, 8 83Modbus ASCII RTU( ) ModbusASCII RTU ModbusACS 140/ACS 400 RTU RTURTU Modbus RTU( )8 4 ASCII RTU8- 0-9 A-F8 2 1 8 1 1 ( ) 2 ( )(CRC)45Modbus(ASCII RTU) Modbus( ) RTU RTU 3.5(T1-T2-T3-T4)0-9 A-F( )3.51.53.5CRC2 8
11、(RTU) 0-247( )1-2470 ModbusModbus Plus 8 (RTU) 1- 255( )ModiconACS 140/ACS 400 3 6 16 (0x03 0x06 0x10)CRC T1-T2-T3-T4 8 8 n * 8 16 T1-T2-T3-T46( )( )1 0000 0011 ( 03)1000 0011 ( 83)00-FFRTU ( 03)(10 )( 0)( 0B )ACS 140/ACS 400 0B( )ModbusASCIIASCII ASCII(LRC) colonCRLF LRC CRLF RTURTU 1687CRC CRC CRC
12、CRC Modbus( )(LSB) - (MSB)RTUStart12345678ParStopStart12345678StopStop9Modbus CRC( ) CRCACS 140/ACS 400 100 ms1 (RTU 8 )1 0 RTU 8 1100 01011 4 1(4 ) (5 ) 1Modbus1 2 ( )( ) 10CRC RTU (CRC)CRC CRC 16 , CRCCRCCRC CRC 16 1 8 8 8 CRC CRC CRC 8 CRC (LSB) (MSB) 0 LSBLSB 1 08 8 88CRC CKSM CRCCRC 11ModbusACS
13、 140/ACS400 Modbus( )ModbusModbus 0 01 Modbus0000 127( ) 007E( 126)40001 0000 4XXXX40108 006B( 107)Modbus3 Modbus RTU 4RTU RTU 06 40108 40110 0107 ( 006B)8 RTU 8 63(01100011) RTU 8(ASCII RTU) 1 88 4 RTU 123 RTU 4 RTU QUERY( )RTU8-06 0000 011003 0000 001100 0000 00006B 0110 101100 0000 000003 0000 00
14、11CRC (16 )8RESPONSE( )RTU8-06 0000 011003 0000 001106 0000 011002 0000 00102B 0010 101100 0000 000000 0000 000000 0000 000000 0000 0000 CRC (16 bits)1113ACS 140/ACS 400 Modbus16 03 (4XXXX) 01-16 0-15 11 40108-401105 -QUERY( )1103006B0003CRC CRC (16- )14984-X8X (984-685 ) 12532 6 -40108 02 2B( ) 555
15、( ) 40109-40110 00 00 00 64( ) 0 100() RESPONSE( )110306( 40108) 02( 40108) 2B( 40109) 00( 40109) 00( 40110) 00( 40110) 64CRC CRC (16- )1506 (4XXXX)0 1 0 ACS 140/ACS 400 16 11 40002 00 03( ) 7 -8 -QUERY( )110600010003CRC CRC (16- )RESPONSE( )110600010003CRC CRC (16- )1616 (10 Hex)(4XXXX) ACS 140/ACS
16、 400ACS 140/ACS 4000 10 ACS 140/ACS 400 16 11 40002 00 0A 9 -10 -QUERY( )11100001000102000ACRC CRC (16- )RESPONSE( )111000010001CRC CRC (16- )17123 ( LRC CRC)4 ()(MSB) 0( 80) MSB 1 80( ) MSB() 1111 10(0A) (01)1245 (04A1)0001 QUERY1 0A2 013 044 A15 006 017LRC4FEXCEPTION RESPONSE1 0A2 813 024LRC731802
17、 512984-385Modicon 1 1 01 ILLEGAL FUNCTION Poll Program Complete( )02 ILLEGAL DATA ADDRESS 03 ILLEGAL DATA VALUE 04 SLAVE DEVICE FAILURE05 ACKNOWLEDGEPoll Program Complete( )06 SLAVE DEVICE BUSY07 NEGATIVE ACKNOWLEDGE 13 14( )08 MEMORY PARITY ERROR 19INSTALLATION2019CRCCRC CRC 16 , CRCCRCCRC CRC 16
18、1 8 8 8 CRC CRC CRC 8 CRC (LSB) (MSB) 0 LSBLSB 1 08 8 88CRC CRC1 16 FFFF( ) 1 CRC 2 8 CRCCRC3 CRC ( LSB ) MSB 0 LSB 4( LSB 0) 3 ( ) ( LSB 1) CRC A001(101 0 0000 0000 0001)5 3 4 8 8 6 2 5 8 7 CRC CRC 20CRC16 CRC ( 8 )CRC 1241(0001 0010 0100 0001)12 CRCC CRC CRCCRC256 CRC CRCunsigned char *puchMsgCRC
19、unsigned short usDataLenCRC unsigned short CRC41CRC1221CRC/* Table of CRC values for high-order byte */static unsigned char auchCRCHi = 0x00,0xC1,0x81,0x40,0x0l,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xCl,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x0l,0xC0,0x80,0x41,0x0l
20、,0xC0,0x80,0x41,0x00,0xCl,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x41,0x00,0xCl,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x0l,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1
21、,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80
22、,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xCl,0x81,0x40,0x0l,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81
23、,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40;22/* Table of CRC values for low-order byte*/static char auchCRCLo = 0x00,0xC0,0xC1,0x01,0xC3,
24、0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,0xD8,0x18,0xl9,0xD9,0xlB,0xDB,0xDA,0xlA,0xlE,0xDE,0xDF,0xlF,0xDD,0xlD,0xlC,0xDC,0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0xll,0xDl,0xD0,0xl0,0xF0,
25、0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,
26、0x21,0x20,0xE0,0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,
27、0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,0x44,0x84,0x85,0x45,0x87,
28、0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40;23CRCunsigned short CRC16(puchMsg, usDataLen)unsigned char *puchMsg ; / * message to calculate CRC upon* /unsigned short usDataLen; /* quantity of bytes in message*/unsigned char uchCRCHi = 0xFF; /* high byte of CRC initialized*/unsigned char uc
29、hCRCLo = 0xFF; /* low byte of CRC initialized*/unsigned uIndex; /* will index into CRC lookup table*/while (usDataLen-) /* pass through message buffer*/uIndex = uchCRCHi *puchMsg+;/* calculate the CRC*/uchCRCHi = uchCRCLo auchCRCHi uIndex ;uchCRCLo = auchCRCLo uIndex ;return (uchCRCHi 8 | uchCRCLo);ABB10017684(8610)67881248(8610)678812603AFY 61514317 R01253ABD00007265 A1999 3 15C ABB Automation Group Ltd. 1999