19-03-2012, 02:28 PM
MODBUS Protocol
GIAO THỨC MODBUSVÀ GIAO TIẾP PC – PLC DÙNG THƯ VIỆN MODBUS
Modbus laø moät giao thöùc do haõng Modicon (sau naøy thuoäc AGE vaø Schneider Automation) phaùt trieån.
Modbus moâ taû quaù trình giao tieáp giöõa moät boä ñieàu khieån vôùi caùc thieát bò khaùc thoâng qua cô cheá yeâu caàu/ñaùp öùng. Vì lyù do ñôn giaûn neân Modbus coù aûnh höôûng töông ñoái maïnh ñoái vôùi caùc heä PLC cuûa caùc nhaø saûn xuaát khaùc.
Trong moãi PLC ngöôøi ta coù theå tìm thaáy moät taäp hôïp con caùc dòch vuï ñaõ ñöa ra trong Modbus. Ñaëc bieät trong caùc heä thoáng thu thaäp döõ lieäu vaø ñieàu khieån giaùm saùt (SCADA), Modbus hay ñöôïc söû duïng treân caùc ñöôøng truyeàn RS232/485 gheùp noái noái tieáp giöõa caùc thieát bò döõ lieäu ñaàu cuoái (PLC, PC, RTU)
I./ Cô cheá giao tieáp
Caùc coång Modbus chuaån treân caùc boä ñieàu khieån cuûa Modicon cuõng nhö moät soá nhaø saûn xuaát khaùc söû duïng giao dieän noái tieáp RS232/485. Caùc boä ñieàu khieån naøy coù theå ñöôïc noái maïng tröïc tieáp hoaëc qua Modem.
Caùc traïm Modbus giao tieáp vôùi nhau qua cô cheá chuû/tôù (master/slave), trong ñoù chæ moät thieát bò chuû coù theå chuû ñoäng göûi yeâu caàu, coøn caùc thieát bò tôù seõ ñaùp öùng baèng döõ lieäu traû laïi hoaëc thöïc hieän moät haønh ñoäng nhaát ñònh theo nhö yeâu caàu.
I./ Cô cheá giao tieáp(tt)
Caùc thieát bò chuû thoâng thöôøng laø caùc maùy tính ñieàu khieån trung taâm hoaëc caùc thieát bò laäp trình, trong khi caùc thieát bò tôù coù theå laø PLC hoaëc caùc boä ñieàu khieån soá chuyeân duïng khaùc
Moät traïm chuû coù theå göûi thoâng baùo yeâu caàu tôùi moät soá traïm tôù nhaát ñònh, hoaëc göûi thoâng baùo ñoàng loaït (broadcast) tôùi taát caû traïm tôù.
I./ Cô cheá giao tieáp(tt)
Chæ trong tröôøng hôïp nhaän ñöôïc nhaän ñöôïc yeâu caàu rieâng, caùc traïm tôù môùi göûi thoâng baùo ñaùp öùng traû laïi traïm chuû.
Trong moät thoâng baùo yeâu caàu coù chöùa ñòa chæ traïm nhaän, maõ haøm dòch vuï beân nhaän caàn thöïc hieän, döõ lieäu ñi keøm vaø thoâng tin kieåm loãi.
I./ Cô cheá giao tieáp(tt)
Ví duï trong giao tieáp tay ñoâi (peer to peer), moãi boä ñieàu khieån coù theå ñoùng vai troø laø chuû hoaëc tô ù trong caùc laàn giao dònh (moät chu kyø yeâu caàu ñaùp öùng) khaùc nhau. Moät traïm coù theå cuøng moät luùc coù quan heä logic vôùi nhieàu ñoái taùc, vì vaäy noù coù theå ñoàng thôøi ñoùng vai troø laø chuû vaø tôù trong caùc giao dòch khaùc nhau.
Thoâng baùo yeâu caàu
Moät thoâng baùo yeâu caàu bao goàm caùc thaønh phaàn sau:
Ñòa chæ traïm nhaän yeâu caàu (0 – 247), trong ñoù 0 laø ñòa chæ göûi haøng loaït.
Maõ haøm goïi chæ thò haønh ñoäng traïm tôù caàn thöïc hieän theo yeâu caàu. Ví duï, maõ haøm 03 yeâu caàu traïm tôù ñoïc noäi dung thanh ghi löu tröõ vaø traû laïi keát quaû.
Thoâng baùo yeâu caàu(tt)
Döõ lieäu chöùa trong thoâng tin boå sung maø traïm tôù caàn cho vieäc thöïc hieän haøm ñöôïc goïi. Trong tröôøng hôïp ñoïc thanh ghi, döõ lieäu naøu chi roõ thanh ghi ñaàu tieân vaø soá löôïng caùc thanh ghi caàn ñoïc.
Thoâng tin kieãm loãi giuùp traïm tôù kieåm tra ñoä veïn toaøn cuûa noäi dung thoâng baùo nhaän ñöôïc.
Thoâng baùo yeâu caàu(tt)
Thoâng baùo ñaùp öùng cuõng bao goàm caùc thaønh phaàn gioáng nhö thoâng baùo yeâu caàu. Ñòa chæ ôû ñaây laø cuûa chính traïm tôù ñaõ thöïc hieän yeâu caàu vaø göûi laïi ñaùp öùng. Trong tröôøng hôïp bình thöôøng, maõ haøm ñöôïc giöõ nguyeân nhö trong thoâng baùo yeâu caàu vaø döõ lieäu chöùa keát quaû thöïc hieän haønh ñoäng, ví duï noäi dung hoaëc traïng thaùi thanh ghi. Neáu xaûy ra loãi, maõ haøm trong thoâng baùo ñaùp öùng ñöôïc söûa ñeå chæ thò ñaùp öùng laø moät thoâng baùo loãi, coøn döõ lieäu moâ taû chi tieát loãi xaûy ra. Phaàn kieåm loãi giuùp traïm chuû xaùc ñònh roõ ñoä chính xaùc cuûa noäi dung thoâng baùo ñaùp öùng nhaän ñöôïc töø traïm tôù.
II./ Cheá ñoä truyeàn(tt)
Ñoái vôùi caùc thieát bò gheùp noái qua maïng Modbus chuaån, coù theå söû duïng moät trong hai cheá ñoä truyeàn laø ASCII hoaëc RTU.
Ngöôøi söû duïng choïn moät trong hai cheá ñoä theo yù muoán, cuøng caùc tham soá truyeàn thoâng qua coång noái tieáp nhö toác ñoä truyeàn, parity chaün/leû, vv…Cheá ñoä truyeàn cuõng nhö caùc tham soá phaûi gioáng nhau ñoái vôùi taát caû caùc thaønh vieân cuûa moät maïng Modbus.
II.1./ Cheá ñoä ASCII
Moãi byte trong thoâng baùo ñöôïc göûi thaønh hai kyù töï ASCII 7 bit, trong ñoù moãi kyù töï bieåu dieãn moät chöû soá hex. Öu ñieåm cuûa cheá ñoä naøy laø noù cho pheùp moät khoaûng thôøi gian troáng toái ña moät giaây giöõa hai kyù töï maø khoâng gaây ra loãi. Caáu truùc moät kyù töï khung göûi ñi ñöôïc theå hieän nhö sau: