acs 140/400 modbus - gongkongdownload.gongkong.com/file/2005/9/2/acs400mbcn.pdf · modbus acs...

34
Modbus ACS 140/400

Upload: others

Post on 19-Apr-2020

91 views

Category:

Documents


1 download

TRANSCRIPT

Modbus ACS 140/400

ABB Automation Group Ltd. 1999

3AFY 61514317 R01253ABD00007265 A

1999 3 15

Modbus

iii

Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 (10 Hex) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19CRC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

iv

1

Modbus

Modbus Modbus

Modicon Schneider Automation (Modicon)Modicon <<Modicon Modbus (PI-MBUS-300 Rev. E)>>

Modbus

Modbus ACS140ACS400 Modbus Modbus

ACS140/ACS400 ACS 140RS485/232 RS 485/ RS232

ACS 400 RS485 RS485/232 RS232

Modbus

Modicon RS232C

() ( ) ( )

( )

Modbus ( ) Modbus

2

1 - -

03

,

8 8

3

Modbus ASCII RTU

( ) Modbus ASCII RTU Modbus

ACS 140/ACS 400 RTU RTU

RTU

Modbus RTU( )8 4

ASCII

RTU

8- 0-9 A-F8 2

1 8 1 1 ( ) 2 ( )

(CRC)

4

5

Modbus

(ASCII RTU) Modbus

( )

RTU

RTU 3.5(

T1-T2-T3-T4)

0-9 A-F ( )

3.5

1.5

3.5CRC

2

8 (RTU) 0-247( )1-247

0 Modbus Modbus Plus

8 (RTU) 1- 255( )Modicon

ACS 140/ACS 400 3 6 16 (0x03 0x06 0x10)

CRC

T1-T2-T3-T4 8 8 n * 8 16 T1-T2-T3-T4

6

( )( )

1

0000 0011 ( 03)

1000 0011 ( 83)

00-FFRTU

( 03)(

10 )

( 0)( 0B )

ACS 140/ACS 400 0B( )

Modbus

ASCII

ASCII ASCII(LRC) colon

CRLF

LRC CRLF

RTU

RTU 168

7

CRC

CRC CRCCRC

Modbus( )

(LSB) - (MSB)

RTU

Start 1 2 3 4 5 6 7 8 Par Stop

Start 1 2 3 4 5 6 7 8 Stop Stop

8

9

Modbus CRC( ) CRC

ACS 140/ACS 400 100 ms

1 (RTU 8 )1 0

RTU 8

1100 0101

1 4 1(4 ) (5 )

1Modbus

1 2 ( )( )

10

CRC

RTU (CRC)CRC

CRC 16 , CRCCRC

CRC

CRC 16 1 8 8 8 CRC

CRC

CRC 8 CRC (LSB) (MSB) 0 LSB

LSB 1 0

8 8 88

CRC

CKSM CRCCRC

11

Modbus

ACS 140/ACS400 Modbus

( )

Modbus

Modbus 0 0

1 Modbus0000

127( ) 007E( 126)40001 0000

4XXXX

40108 006B( 107)

Modbus

3 Modbus RTU 4RTU RTU

06 40108 40110 0107 ( 006B)

8 RTU 8

63(01100011) RTU 8(ASCII RTU) 1 8

8 4 RTU

12

3 RTU

4 RTU

QUERY

( )RTU8-

06 0000 0110

03 0000 0011

00 0000 0000

6B 0110 1011

00 0000 0000

03 0000 0011

CRC (16 )

8

RESPONSE

( )RTU8-

06 0000 0110

03 0000 0011

06 0000 0110

02 0000 0010

2B 0010 1011

00 0000 0000

00 0000 0000

00 0000 0000

00 0000 0000

CRC (16 bits)

11

13

ACS 140/ACS 400 Modbus16

03

(4XXXX)

01-16 0-15

11 40108-40110

5 -

QUERY

( )

11

03

00

6B

00

03

CRC CRC (16- )

14

984-X8X (984-685 ) 12532

6 -

40108 02 2B( ) 555( ) 40109-40110 00 00 00 64( ) 0 100(

)

RESPONSE

( )

11

03

06

( 40108) 02

( 40108) 2B

( 40109) 00

( 40109) 00

( 40110) 00

( 40110) 64

CRC CRC (16- )

15

06

(4XXXX)

0 1 0

ACS 140/ACS 400 16

11 40002 00 03( )

7 -

8 -

QUERY

( )

11

06

00

01

00

03

CRC CRC (16- )

RESPONSE

( )

11

06

00

01

00

03

CRC CRC (16- )

16

16 (10 Hex)

(4XXXX)

ACS 140/ACS 400

ACS 140/ACS 400

0 10

ACS 140/ACS 400 16

11 40002 00 0A

9 -

10 -

QUERY

( )

11

10

00

01

00

01

02

00

0A

CRC CRC (16- )

RESPONSE

( )

11

10

00

01

00

01

CRC CRC (16- )

17

1

2

3 ( LRC CRC)

4 ()

(MSB) 0( 80)

MSB 1 80( ) MSB

()

11

11

10(0A) (01) 1245 (04A1)

0001

QUERY

1 0A

2 01

3 04

4 A1

5 00

6 01

7 LRC 4F

EXCEPTION RESPONSE1 0A

2 81

3 02

4 LRC 73

18

02 512984-385

Modicon 1

1

01 ILLEGAL FUNCTION Poll Program Complete( )

02 ILLEGAL DATA ADDRESS

03 ILLEGAL DATA VALUE

04 SLAVE DEVICE FAILURE

05 ACKNOWLEDGE Poll Program

Complete( )

06 SLAVE DEVICE BUSY

07 NEGATIVE ACKNOWLEDGE 13 14( )

08 MEMORY PARITY ERROR

19

INS

TA

LL

AT

ION

20

19

CR

C

CRC

CRC 16 , CRCCRC

CRC

CRC 16 1 8 8 8 CRC

CRC

CRC 8 CRC (LSB) (MSB) 0 LSB

LSB 1 0

8 8 88

CRC

CRC

1 16 FFFF( ) 1 CRC

2 8 CRCCRC

3 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

20

CRC

16 CRC ( 8 ) CRC 1241(0001 0010 0100 0001)

12 CRC

C CRC CRC CRC

256 CRC CRC

unsigned char *puchMsgCRC

unsigned short usDataLen

CRC unsigned short

CRC

41

CRC

12

21

CR

C

/* 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,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,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,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,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,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,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,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,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,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,

0x40

};

23

CR

C

unsigned 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 uchCRCLo = 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);

24

AB

B

100176

84

(8610)67881248(8610)67881260

3AFY 61514317 R01253ABD00007265 A1999 3 15

C ABB Automation Group Ltd. 1999