You are on page 1of 6

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 multidrop 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 M t a ch ca receiver M nh ngha kiu message Data block vi thng tin ph Gi tr s kim tra kim tra li truyn thng

Trng Device address Function code Data Error check

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 4 bit 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.5 k t. Nu mt receiver d mt khe ti thiu 1.5 k 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 1 giy. Vi Modbus/RTU n cn nhn mi message nh mt stream lin tc.

K t Error check Frame start Frame end Cc Gap trong message Start bit Data bits Parity Stop bits

Cc thuc tnh ca Modbus/ASCII v Modbus/RTU Modbus/ASCII Modbus/RTU ASCII 0...9 and A..F Binary 0...255 LRC Longitudinal Redundancy CRC Cyclic Redundancy Check Check character ':' 3.5 chars silence characters CR/LF 3.5 chars silence 1 sec 1 7 even/odd 1 1.5 times char length 1 8 even/odd 1

none 2

none 2

ch 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 address Modbus address Description 1...10000* address - 1 Coils (outputs) 10001...20000* address - 10001 Inputs 40001...50000* address - 40001 Holding registers * Cc gi tr cc i l ph thuc thit b

Cc 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 01 c trng thi coil 02 c trng thi input 03 c cc holding register 04 c cc input register 05 Tc ng mt coil 06 t li mt register 07 c trng thi ngoi l 15 Tc ng nhiu coil 16 t li nhiu register 17 Bo 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 Byte Gi tr M t 1 1...247 a ch thit b Slave 2 1 M chc nng 3 0...255 a ch bt u, byte cao 4 0...255 a ch bt u, byte thp 5 0...255 S cc coil, byte cao 6 0...255 S cc coil, byte thp 7(...8) LRC/CRC Gi 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) mod 8) 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 function 01 query l: Cu trc tr li Function 01 Byte Gi tr M t 1 1...247 a ch Slave device 2 1 Function code 3 0...255 S cc data byte N 4...N+3 0...255 Bit pattern ca cc gi tr coil N+4(...N+5) LRC/CRC Gi 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 function 02 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 Value M t 1...247 a ch thit b Slave 2 Function code 0...255 a ch bt u, byte cao 0...255 a ch bt u, byte thp 0...255 S cc input, byte cao 0...255 S cc input, byte thp LRC/CRC Error check value

Byte 1 2 3 4 5 6 7(...8)

Sau khi nhn mt query message c Modbus function 02, 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 Value M t 1...247 a ch thit b Slave

Byte 1

2 3 4...N+3 N+4(...N+5)

2 Function code 0...255 S cc data byte N 0...255 Bit pattern of input values LRC/CRC Error 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 function 03 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 function 03 khng c h tr. Cu trc query Function 03 Byte Value M t 1 1...247 Slave device address 2 3 Function code 3 0...255 Starting address, high byte 4 0...255 Starting address, low byte 5 0...255 Number of registers, high byte 6 0...255 Number of registers, low byte 7(...8) LRC/CRC Error 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 code 03. 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.

You might also like