Tìm Hiểu về MODBUS

download Tìm Hiểu về MODBUS

of 6

description

bài tập dài

Transcript of Tìm Hiểu về MODBUS

MODBUS

MODBUS

Lch s ca Modbus protocol

Vi chun truyn thng va ni ln. Khng v chng c y bi mt nhm ln cc nh cung cp hay mt t chc chun c bit. Cc chun nyging Modbus interfaceni ln v chng tt, n gin thc hin v do c p ng bi cc nh sn xut. V iu ny, Modbus tr thnh chun fieldbus c chp nhn rng ri.

Modbus bt ngun trong cui nhng nm 70 th k trc. Nm 1979 khi nh sn xut PLC Modicongi l tp on Schneider Electric's Telemecaniquepht hnh giao din truyn thng Modbus cho mng multidrop da trn kin trc master/client. Truyn thng gia cc Modbus node c c bng cc thng ip. N l mt chun m m c m t bng cu trc thng ip. Tng vt l ca Modbus interface l t do chn la. Modbus interface ban u chy trn RS-232, nhng cc thc hin Modbus sau nht dng RS-485 v n cho php khong cch ln, tc cao v kh nng ca mt mng multi-drop thc s. Trong thi gian ngn hng trm nh sn xut thc hin h thng thng ip Modbus trong thit b ca h v Modbus tr thnh chun de facto cho cc mng truyn thng cng nghip.

iu tt ca chun Modbus l s linh hot, v s d thc hin ca n. Khng ch cc thit b thng minh nh cc microcontroller, PLC ... c th truyn thng vi Modbus, m cn cc sensor thng minh trang b Modbus interface gi data ca chng n cc host system. Trong khi Modbus c chinh chnh trc y trn cc ng truyn thng dy dn, cng c cc m rng cho cc chun truyn thng khng dy v cc mng TCP/IP.

Cu trc thng ip Modbus

Giao din truyn thng Modbus c dng quanh cc thng ip. nh dng ca cc thng ip Modbus ny ph thuc vo kiu ca giao din vt l c dng. Trn RS232 n gin c l cc thng ip tng t nh c dng trn Modbus/TCP qua ethernet. iu ny cho nh ngha Modbus interface mt sc sng lu di. Protocol tng t c th c dng khng quan tm kiu kt ni. V iu ny, Modbus cho kh nng d dng nng cp cu trc phn cng ca mng cng nghip, khng cn thay i ln trong phn mm. Mt thit b cng c th truyn thng vi vi Modbus node mt lc, d chng c ni vi cc kiu giao din khc nhau, khng cn dng protocol khc cho mi kt ni.

Trn cc giao din n ging ging RS485 hay RS232, cc thng ip Modbus c gi theo dng n gin trn mng. Trong trng hp ny mng c tng cho Modbus. Khi cc h thng mng linh hot hn nh TCP/IP qua ethernet, cc thng ip Modbus nh nhng trong cc gi vi nh dng cn thit cho giao din vt l. Trong trng hp Modbus v cc kiu kt ni khc c th cng tn ti cng giao din vt l cng lc. Mc d cu trc thng ip Modbus chnh l peer-to-peer(ngang hng), Modbus c th chc nng thnh c mng point-to-point v multidrop.

Mi thng ip Modbus c cng cu trc. Bn thnh phn c bn c mt trong mi thng ip. Cui cc thnh phn ny l ging nhau cho tt c thng ip, lm n d dng phn gii ni dung ca Modbus message. Mt hi thoi lun c bt u bi mt master trong mng Modbus. Modbus master gi mt message vph thuc vo ni dung ca messageslave tc ng v p ng vi n. C th c nhiu master trong mt Modbus network. a ch trong message header c dng nh ngha device m s p ng vi message. Tt c cc node trong Modbus network b qua message nu address field khng tha mn address ring ca chng.

Cu trc Modbus message

TrngM t

Device addressa ch ca receiver

Function codeM nh ngha kiu message

DataData block vi thng tin ph

Error checkGi tr s kim tra kim tra li truyn thng

Cc ch truyn thng ni tip Modbus : Modbus/ASCII v Modbus/RTU

Cc kt ni Modbus serial c th dng hai ch truyn c bn, ASCII hay RTU, remote terminal unit. Ch truyn theo truyn thng serial nh ngha cch cc Modbus message c m. Vi Modbus/ASCII, cc message nh dng ASCII c th c. nh dng Modbus/RTU dng m nh phn lm thng ip khng th c khi ang gim st, nhng gim kch thc mi thng ip m cho php nhiu data trao i trong cng mt thi gian. Tt c node trn mt phn on mng Modbus phi c cng mode truyn serial. Mt thit b c cu hnh dng Modbus/ASCII khng th hiu cc message theo Modbus/RTU v ngc li.

Khi dng Modbus/ASCII, tt c message c m theo cc gi tr hexadecimal, c biu din theo cc k t ASCII kh c. Ch cc k t 0...9 v A...F c dng m. Vi mi byte ca thng tin, hai truyn thng byte c cn, v mi truyn thng byte c th ch nh ngha 4bit theo h hexadecimal. Vi Modbus/RTU data c trao i theo nh dng nh phn, trong mi byte ca thng tin c m theo truyn thng mt byte.

Cc thng ip Modbus trn cc kt ni serial khng c gi theo mt nh dng phng. Chng c frame cho cc receiver mt cch d dng d bt u v kt thc message. Khi dng Modbus/ASCII, cc k t c dng bt u v kt thc frame. Du colon':' c dng bo hiu bt u ca message v mi message c kt thc bng mt kt hp CR/LF. Modbus/RTU mt khc dng cc khe thi gian lng trn ng truyn thng frame. Mi message phi c tun t theo mt khe thi gian c di ti thiu 3.5k t. Nu mt receiver d mt khe ti thiu 1.5k t, n cho rng mt message mi ang n v b m nhn c lm sch. Thun li chnh ca Modbus/ASCII l, n cho php cc khe gia cc byte ca mt message c di ti a 1giy. Vi Modbus/RTU n cn nhn mi message nh mt stream lin tc.

Cc thuc tnh ca Modbus/ASCII v Modbus/RTU

Modbus/ASCIIModbus/RTU

K tASCII 0...9 and A..FBinary 0...255

Error checkLRC Longitudinal Redundancy CheckCRC Cyclic Redundancy Check

Frame startcharacter ':'3.5 chars silence

Frame endcharacters CR/LF3.5 chars silence

Cc Gap trong message1 sec1.5 times char length

Start bit11

Data bits78

Parityeven/oddnoneeven/oddnone

Stop bits1212

a ch Modbus

Thng tin u tin trong mi Modbus message l a ch ca receiver. Parameter ny cha mt byte thng tin. Trong Modbus/ASCII n c m thnh hai k t hexadecimal, trong Modbus/RTU mt byte c dng. Cc a ch hp l trong di 0..247. Cc gi tr 1..247 c gn cho cc thit b Modbus c th v 0 c dng nh a ch broadcast. Cc Message c gi sau s c nhn bi tt c slave. Mt slave lun p ng vi mt Modbus message. Khi p ng n dng cng a ch nh master trong request . Theo cch ny master c th thy device thc s p ng vi request.

Bn trong mt Modbus device, cc holding register, cc input v cc output c gn mt s gia 1 v 10000. Mt s mong i, rng cng a ch c dng trong cc Modbus message c hay t cc gi tr. Ri thay y khng phi l trng hp ny. Trong cc Modbus message cc a ch c dng vi gi tr gia 0 v 9999. Nu bn mun c gi tr ca output (coil)18 v d, bn phi ch nh gi tr 17 trong Modbus query message. Nhiu bi ri hn, l cho input v cc holding register mt offset phi c tr t a ch device ly a ch thch hp t vo Modbus message structure. iu ny dn n cc li ph bin v nn c quan tm khi thit k ng dng vi Modbus. Bng sau trnh by cc di a ch cho cc coil, cc input v cc holding register v cch a ch trong Modbus message c tnh ho trc a ch thc ca item trong slave device.

Device and Modbus address ranges

Device addressModbus addressDescription

1...10000*address - 1Coils (outputs)

10001...20000*address - 10001Inputs

40001...50000*address - 40001Holding registers

* Cc gi tr cc i l ph thuc thit bCc m chc nng Modbus

Tham s th hai trong mi Modbus message l m chc nng. Ci ny nh ngha kiu message v kiu hnh ng c i hi bi slave. Tham s ny cha mt byte thng tin. Trong Modbus/ASCII iu ny c m vi hai k t hexadecimal, trong Modbus/RTU mt byte c dng. Cc m chc nng hp l trong khong 1..255. Khng phi tt c Modbus device nhn bit cng tp m chc nng. Cc m chung nht c tho lun y.

Bnh thng, khi mt Modbus slave tr vi p ng, n dng cng m chc nng trong request. Tuy nhin, khi mt error c d, bit cao nht ca m chc nng c bt ln. Theo cch master c th thy khc bit gia p ng thnh cng v tht bi.

Cc m chc nng Modbus ph bin

M M t

01c trng thi coil

02c trng thi input

03c cc holding register

04c cc input register

05Tc ng mt coil

06t li mt register

07c trng thi ngoi l

15Tc ng nhiu coil

16t li nhiu register

17Bo co slave ID

Chc nng 01: c trng thi coil

Trong ngn ng Modbus, mt coil l mt gi tr output ri rc. Chc nng Modbus 01 c th c dng c trng thi ca mt output. Ch c th truy vn mt device mt thi im. a ch Broadcast c h tr chc nng Modbus ny. Chc nng ny c th c dng request trng thi ca cc coil khc nhau mt lc. iu ny c lm bi nh ngha mt di output trong trng data ca message.

Cu trc truy cn chc nng 01

ByteGi trM t

11...247a ch thit b Slave

21M chc nng

30...255a ch bt u, byte cao

40...255a ch bt u, byte thp

50...255S cc coil, byte cao

60...255S cc coil, byte thp

7(...8)LRC/CRCGi tr kim tra Error

Khi nhn mt Modbus query message c chc nng 01, slave thu thp cc gi tr output cn thit v dng mt answer message. Chiu di ca message ny ph thuc vo s cc value m phi c tr v. Nhn chung, khi gi tr N c yu cu, mt s ((N+7)mod8) byte l cn thit lu cc gi tr ny. S thc s cc databyte trong datablock c t trong byte u tin ca data field. Do cu trcchung ca answer cho Modbus function01 query l:

Cu trc tr li Function 01

ByteGi trM t

11...247a ch Slave device

21Function code

30...255S cc data byte N

4...N+30...255Bit pattern ca cc gi tr coil

N+4(...N+5)LRC/CRCGi tr kim tra Error

Function 02: c trng thi input

c cc gi tr input vi Modbus c lm theo cng cch nh c trng thi cc coil. Khc bit duy nht l cho cc input Modbus function02 c dng. Broadcast addressing mode khng c h tr. Bn c th ch query gi tr cc input ch trn mt device mt lc. Ging vi cc coil, a ch ca input u tin, v s cc input c phi c t trong data field ca query message. Cc Input trn cc device bt u nh s t 10001. Gi tr a ch ny tng ng a ch 0 trong Modbus message.

Cu trc query Function 02

ByteValueM t

11...247a ch thit b Slave

22Function code

30...255a ch bt u, byte cao

40...255a ch bt u, byte thp

50...255S cc input, byte cao

60...255S cc input, byte thp

7(...8)LRC/CRCError check value

Sau khi nhn mt query message c Modbus function02, slave t cc gi tr input c yu cu trong mt message structure v gi message ny tr li Modbus master. Chiu di ca message ph thuc vo s cc gi tr input tr v. iu ny lm cho chiu di ca output message thay i. S cc databyte trong data field m cha cc gi tr input c chuyn nh byte u tin trong data field. Mi message tr li Modbus c cu trc chung sau.

Cu trc tr li Function 02

ByteValueM t

11...247a ch thit b Slave

22Function code

30...255S cc data byte N

4...N+30...255Bit pattern of input values

N+4(...N+5)LRC/CRCError check value

Function 03: c cc holding register

Cc gi tr bn trong mt Modbus device c lu trong cc holding register. Cc register ny c chiu rng hai byte v c th c dng cho cc mc ch khc nhau. Vi register cha cc tham s cu hnh trong khi nhng ci khc c dng cho cc gi tr o lng c tr v (nhit ...) cho host. Cc Register trong thit b tng thch Modbus bt u m 40001. Chng c nh a ch trong cu trc thng ip Modbus vi a ch bt u 0. Modbus function03 c dng yu cu mt hay nhiu gi tr thanh ghi holding t mt device. Ch mt slave device c th c nh a ch trong mt query n. Cc query Broadcast vi function03 khng c h tr.

Cu trc query Function 03

ByteValueM t

11...247Slave device address

23Function code

30...255Starting address, high byte

40...255Starting address, low byte

50...255Number of registers, high byte

60...255Number of registers, low byte

7(...8)LRC/CRCError check value

Sau khi x l query, Modbus slave tr v cc gi tr 16 bit ca cc holding register c yu cu. V kch thc cc holding registers, mi register c m vi hai byte trong message tr li. Data byte u tin cha byte cao, v ci th hai byte thp ca register. Thng ip tr li Modbus bt u vi a ch thit b slave v function code03. Byte tip l s cc data byte theo sau. Gi tr ny l gp i s register c tr v. Mt kim tra li c m rng cho host kim tra c li truyn thng xut hin hay khng.

Literature

-Modbus technical resources trn Modbus-IDA site l im bt u tt cho ai cn thng tin mi nht v thc hin v dng Modbus interface. Modbus-IDA l lc lng iu khin hin ti pha sau s thng tin v thc hin ca Modbus protocol.

3