protocol modbus
TRANSCRIPT
-
8/3/2019 Protocol MODBUS
1/56
GIAO THC MODBUSV GIAO TIP PC PLC DNG TH VIN MODBUS
Modbus la mot giao thc do hang Modicon (sau nay thuoc
AGE va Schneider Automation) phat trien.
Modbus mo ta qua trnh giao tiep gia mot bo ieu khien
vi cac thiet b khac thong qua c che yeu cau/ap ng.V ly do n gian nen Modbus co anh hng tng oi
manh oi vi cac he PLC cua cac nha san xuat khac.
-
8/3/2019 Protocol MODBUS
2/56
Trong moi PLC ngi ta co the tm thay mot tap hp con
cac dch vu a a ra trong Modbus. ac biet trong cac he
thong thu thap d lieu va ieu khien giam sat (SCADA),
Modbus hay c s dung tren cac ng truyen RS232/485ghep noi noi tiep gia cac thiet b d lieu au cuoi
(PLC, PC, RTU)
-
8/3/2019 Protocol MODBUS
3/56
I./ C che giao tiep Cac cong Modbus chuan tren cac bo ieu khien cua
Modicon cung nh mot so nha san xuat khac s dung giao
dien noi tiep RS232/485. Cac bo ieu khien nay co the
c noi mang trc tiep hoac qua Modem.
Cac tram Modbus giao tiep vi nhau qua c che chu/t
(master/slave), trong o ch mot thiet b chu co the chu
ong gi yeu cau, con cac thiet b t se ap ng bang
d lieu tra lai hoac thc hien mot hanh ong nhat nhtheo nh yeu cau.
-
8/3/2019 Protocol MODBUS
4/56
I./ C che giao tiep(tt) Cac thiet b chu thong thng la cac may tnh ieu
khien trung tam hoac cac thiet b lap trnh, trong khi cac
thiet b t co the la PLC hoac cac bo ieu khien so
chuyen dung khac Mot tram chu co the gi thong bao yeu cau ti mot so
tram t nhat nh, hoac gi thong bao ong loat
(broadcast) ti tat ca tram t.
-
8/3/2019 Protocol MODBUS
5/56
I./ C che giao tiep(tt) Ch trong trng hp nhan c nhan c yeu cau rieng,
cac tram t mi gi thong bao ap ng tra lai tram
chu.
Trong mot thong bao yeu cau co cha a ch tram nhan,ma ham dch vu ben nhan can thc hien, d lieu i kem
va thong tin kiem loi.
-
8/3/2019 Protocol MODBUS
6/56
I./ C che giao tiep(tt) V du trong giao tiep tay oi (peer to peer), moi bo ieu
khien co the ong vai tro la chu hoac t trong cac lan
giao dnh (mot chu ky yeu cau ap ng) khac nhau. Mot
tram co the cung mot luc co quan he logic vi nhieu oi
tac, v vay no co the ong thi ong vai tro la chu va
t trong cac giao dch khac nhau.
-
8/3/2019 Protocol MODBUS
7/56
Chu trnh yeu cau ap ng
-
8/3/2019 Protocol MODBUS
8/56
Thong bao yeu cau
Mot thong bao yeu cau bao gom cac thanh phan sau:
a ch tram nhan yeu cau (0 247), trong o 0 la a ch
gi hang loat.
Ma ham goi ch th hanh ong tram t can thc hien
theo yeu cau. V du, ma ham 03 yeu cau tram t oc noi
dung thanh ghi lu tr va tra lai ket qua.
-
8/3/2019 Protocol MODBUS
9/56
Thong bao yeu cau(tt)
D lieu cha trong thong tin bo sung ma tram t can cho
viec thc hien ham c goi. Trong trng hp oc thanh
ghi, d lieu nau chi ro thanh ghi au tien va so lng cac
thanh ghi can oc. Thong tin kiem loi giup tram t kiem tra o ven toan
cua noi dung thong bao nhan c.
-
8/3/2019 Protocol MODBUS
10/56
Thong bao yeu cau(tt)
Thong bao ap ng cung bao gom cac thanh phan giong nh
thong bao yeu cau.a ch ay la cua chnh tram t a thchien yeu cau va gi lai ap ng. Trong trng hp bnh thng,
ma ham c gi nguyen nh trong thong bao yeu cau va d lieu
cha ket qua thc hien hanh ong, v du noi dung hoac trang thai
thanh ghi. Neu xay ra loi, ma ham trong thong bao ap ng c
sa e ch th ap ng la mot thong bao loi, con d lieu mo
ta chi tiet loi xay ra. Phan kiem loi giup tram chu xac nh ro
o chnh xac cua noi dung thong bao ap ng nhan c t tram
t.
-
8/3/2019 Protocol MODBUS
11/56
II./ Che o truyen(tt) oi vi cac thiet b ghep noi qua mang Modbus chuan, co
the s dung mot trong hai che o truyen la ASCII hoac
RTU.
Ngi s dung chon mot trong hai che o theo y muon,cung cac tham so truyen thong qua cong noi tiep nh toc
o truyen, parity chan/le, vvChe o truyen cung nh cac
tham so phai giong nhau oi vi tat ca cac thanh vien
cua mot mang Modbus.
-
8/3/2019 Protocol MODBUS
12/56
II.1./ Che o ASCII Moi byte trong thong bao c gi thanh hai ky t ASCII 7
bit, trong o moi ky t bieu dien mot ch so hex. u
iem cua che o nay la no cho phep mot khoang thi
gian trong toi a mot giay gia hai ky t ma khong gayra loi. Cau truc mot ky t khung gi i c the hien
nh sau:
Start 0 1 2 3 4 5 6 P Stop
-
8/3/2019 Protocol MODBUS
13/56
II.1./ Che o ASCII(tt)Moi ky t bao gom :
1 bit khi au (Startbit).
7 bit bieu dien mot so hex cua byte can gi di dang ky
t ASCII (0 9 va A F), trong o bit thap nhat c gi i
trc.
1 bit parity chan/le, neu s dung parity.
1 bit ke thuc (Stopbit) neu s dung parity hoac 2 bit ketthuc neu khong s dung parity.
-
8/3/2019 Protocol MODBUS
14/56
II.2./ Che o RTU Khi cac thiet b trong mot mang Modbus chuan at che o
RTU (Remote Terminal Unit), moi byte trong thong bao c
gi thanh mot ky t 8 bit. u iem chnh cua che o nay
so vi che o ASCII la hieu suat cao hn. Tuy nhien, moithong bao phai c truyen thanh mot dong lien tuc.
Cau truc mot ky t khung gi i c the hien nh sau:
Start 0 1 2 3 4 5 6 7 P Stop
-
8/3/2019 Protocol MODBUS
15/56
II.2./ Che o RTU(tt)Moi ky t bao gom :
1 bit khi au (Startbit).
8 bit cua byte thong bao can gi, trong o bit thap nhat
c gi i trc
1 bit parity chan/le, neu s dung parity.
1 bit ke thuc (Stopbit) neu s dung parity hoac 2 bit ket
thuc neu khong s dung parity.
-
8/3/2019 Protocol MODBUS
16/56
III.1 Khung ASCII Trong che o ASCII, mot thong bao bat au vi dau (:),
tc ky t ASCII 3A, va ket thuc bang hai dau quay lai xuong dong (CRLF), tc hai ky t ASCII 0D va 0A. Moi
byte trong thong bao c truyen i bang hai ky t ASCII, v
vay cac ky t c phep xuat hien trong cac phan con
lai cua khung la 0-9 va A-F.
Khi
ua ch M
hmD liu M
CRCKtthc
: 2 k t 2 k t N k t 2 k t CR+LF
-
8/3/2019 Protocol MODBUS
17/56
III.1 Khung ASCII(tt)
-
8/3/2019 Protocol MODBUS
18/56
III.1 Khung ASCII(tt)
Moi thiet b tham gia mang co trach nhiem lien tuc theo
doi ng truyen va phat hien s xuat hien cua hai dau
cham. Khi dau hai cham nhan c th hai ky t tiep theo
se mang a ch cua thiet b c yeu cau nhan thong
bao hoac thiet b a gi thong bao ap ng. Khoangcach thi gian toi a cho phep gia 2 ky t trong mot
thong bao la mot giay. Neu vt qua gia tr nay, ben
nhan se coi la loi.Khung ASCII s dung phng phap LRC
(Longitudinal Redundancy Check) e cho viec kiem loi
-
8/3/2019 Protocol MODBUS
19/56
phng phap LRC
Cch tnh CHECK-SUM (LRC) ca ch ASCII bo m tnh nguyn vn ca dliu truyn i:
Ta tnh tng ca cc byte bt u t ADRtrong khung truyn cho n byte d liu cuicng trong khung truyn sau ly b 2.
-
8/3/2019 Protocol MODBUS
20/56
phng phap LRC(tt)
V d : mun c lin tc 8 Word t a ch0614H ca PLC c a ch l 01H
-
8/3/2019 Protocol MODBUS
21/56
phng phap LRC(tt)
LRC = (01H+03H+06H+14H+00H+08H) (vly b 2)= DA
Suy ra
PCPLC
: 01 03 06 14 00 08 DA CR LF
-
8/3/2019 Protocol MODBUS
22/56
phng phap LRC(tt)
-
8/3/2019 Protocol MODBUS
23/56
PLC sau khi nhn c s truyn ngc limy tnh chui sau
PLCPC
: 01 03 10 00 01 00 02 00 03 00 04 00 05 0006 00 07 00 08 C8 CR LF
-
8/3/2019 Protocol MODBUS
24/56
-
8/3/2019 Protocol MODBUS
25/56
III.2./ Khung RTU
Trong che o RTU, mot thong bao bat au vi mot
khoang trong yen lang toi thieu la 3.5 thi gian ky t.
Thc te, ngi ta chon thi gian o bang so nguyen lan
thi gian ky t, nh c bieu th bang day (----) hnhdi ay. O au tien c truyen se la 8 bit a ch, sau
o en 8 bit ma ham, mot so byte tuy y d lieu va cuoi
cung la thong tin kiem loi CRC (Cyclical Redundancy Check).
-
8/3/2019 Protocol MODBUS
26/56
III.2./ Khung RTU(tt)
Sau khi truyen ky t cuoi cung cua ma CRC, khung thong
bao cung phai ket thuc bang mot khoang trong yen lang
toi thieu la 3.5 thi gian ky t, trc khi bat au mot
thong bao mi. Thc chat, khoang trong ket thuc cuamot khung thong bao cung co the chnh la phan khi
au bat buoc cua thong bao tiep theo.
-
8/3/2019 Protocol MODBUS
27/56
III.2./ Khung RTU(tt)
Khac vi che o ASCII, toan bo khung thong bao RTU
phai c truyen thanh mot dong lien tuc. Neu mot
khoang trong lien tuc ln hn 1.5 thi gian ky t xuat
hien trc khi truyen xong toan bo khung, thiet b se huybo thong bao cha ay u o va cho rang byte tiep theo
se la a ch cua mot thong bao mi.
-
8/3/2019 Protocol MODBUS
28/56
III.2./ Khung RTU(tt) a ch
Phan a ch trong mot khung thong bao bao gom hai ky t (ASCII)hoac tam bit (RTU). Cac gia tr a ch hp le nam trong khoang 0 247,
trong o a ch 0 danh rieng cho gi thong bao hang loat en cac tram
t. Neu Modbus c s dung tren cac mang khac, co the phng thc gi
ong loat khong c ho tr, hoac thay the bang mot phng phap khac.
Mot thiet b chu s dung o a ch e ch nh thiet b t nhan
thong bao yeu cau. Sau khi thc hien yeu cau, thiet b t a a ch mnh
vao khung thong bao ap ng, nh vay thiet b chu co the xac nh thiet
b t nao a tra li. Trong mot mang Modbus chuan ch co mot tram chu
duy nhat, v the o a ch khong can thiet phai cha ca a ch tram gi
va nhan.
-
8/3/2019 Protocol MODBUS
29/56
III.2./ Khung RTU(tt)
Ma hamGiong nh a ch, phan ma ham trong mot khung
thong bao bao gom hai ky t (ASCII) hoac tam bit (RTU).
Cac gia tr hp le nang trong khoang t 1-255, trong o
cac ma ham trong thong bao yeu cau ch c phep t 1
127. Tuy nhien, hau het cac thiet b ch ho tr mot
phan nho so ham tren va mot so ma ham c d tr
cho sau nay. Mot so ham tieu bieu c liet ke trongBang 3.1
-
8/3/2019 Protocol MODBUS
30/56
III.2./ Khung RTU(tt)
Khi mot thong bao gi t thiet b chu en thiet b t,
ma ham ch nh hanh ong ma thiet b t can thc
hien. Khi thiet b t tra li, no cung dung chnh ma
ham o trong thong bao ap ng bnh thng. Trongtrng hp xay ra loi, ma ham tra lai se la ma ham
trong yeu cau vi bit cao nhat c at bang 1 va thanh
phan d lieu se cha thong tin chi tiet ve loi xay ra.
Thong tin loi gi ve c bieu dien Bang 3.2
Mot so ham thong dung c cac bo ieu khien
-
8/3/2019 Protocol MODBUS
31/56
Mot so ham thong dung c cac bo ieu khien
Modicon ho tr.
-
8/3/2019 Protocol MODBUS
32/56
Thong bao loi c gi tra ve t thiet b t
-
8/3/2019 Protocol MODBUS
33/56
D lieuTrong mot thong bao yeu cau, noi dung phan d lieu
noi len chi tiet hanh ong ben nhan can thc hien. V du
trong mot yeu cau oc cac thanh ghi th phan d lieu chathong tin ve a ch thanh ghi au tien, so lng cac thanh
ghi can oc va chieu dai thc te cua chnh phan d lieu.
-
8/3/2019 Protocol MODBUS
34/56
Trong trng hp bnh thng, phan d lieu trong
thong bao ap ng se cha ket qua cua hanh ong a
thc hien, v du noi dung cac thanh ghi a oc.
Neu xay ra loi, phan d lieu cha ma ngoai le, nho ma thiet b chu xac nh hanh ong tiep theo can
thc hien. Lu y rang, mot so ham khong oi hoi tham
so, v vay phan d lieu co the trong.
-
8/3/2019 Protocol MODBUS
35/56
Tnh CRC cho ch RTU:
To mt thanh ghi 16 bit v ly gi tr lFFFF. Gi thanh ghi ny l CRC
Thc hin ly XOR 8bit u tin ( 1 byte) ca
thng ip vi byte thp ca thanh ghi CRC16 bit trn Di sang phi 1 bit ( chia cho 2) . Thm s 0
vo MSB v kim tra LSB Nu LSB =0 th thc hin li bc 3 ( di
tip) v Nu LSB=1 thc hin lnh XOR vi40961 ( A001H )
-
8/3/2019 Protocol MODBUS
36/56
Tnh CRC cho ch RTU(tt):
Thc hin li bc 3 v 4 cho n khi dchc 8 ln . Lc ny th byte 8 bit cthc hin xong
Thc hin li bc 2 n 5 cho cc byte tiptheo ca thng tin gi i.Lm cho n khithc hin xong tt c byte
Ni dung cui cng ca thanh ghi CRC chnh
l gi tr CRC Khi t CRC vo d liu truyn i th byte
thp truyn trc v byte cao truyn sau.
-
8/3/2019 Protocol MODBUS
37/56
IV./ Th vien giao thc Modbus Nhng th vien lenh cua STEP 7-Micro/WIN lam cho viec
giao tiep vi cac thiet b Modbus chu de dang hn bang
cach them vao cac chng trnh con va ngat a c thiet
ke ac biet cho viec giao tiep Modbus. Vi lenh ModbusSlave, ta co the thiet lap S7-200 hoat ong nh mot thiet b
Modbus RTU slave va giao tiep vi cac thiet b Modbus chu.
-
8/3/2019 Protocol MODBUS
38/56
IV./ Th vien giao thc Modbus(tt) Ta co the tm thay nhng lenh nay trong th muc Libraries
cua tap lenh STEP 7-Micro/WIN. Khi ta chon lenh MudbusSlave, mot hay nhieu chng trnh con lien quan c t ong
them vao project.
-
8/3/2019 Protocol MODBUS
39/56
Nhng yeu cau cho viec s dung giao thc Modbus: S dung port 0 cho viec giao tiep.
Khi port 0 c s dung cho giao tiep Modbus , no khong the c s dung
cho bat c muc ch nao, bao gom ca viec giao tiep vi STEP 7-Micro/WIN.
Giao tiep Modbus anh hng en tat ca cac vung nh SM lien quan en
giao tiep Freeport qua Port 0.
Giao tiep Modbus s dung 3 chng trnh con va 2 ngat.
Giao tiep Modbus s dung 1857 byte chng trnh cho nhng lenh Mudbus Slave
va cac chng trnh con ho tr.
Bien s dung cho giao tiep Modbus oi hoi 779 khoi byte cua vung nh V.
a ch bat au cua vung nay c nh ngha bi ngi s dung va c
danh rieng cho cac bien cua Modbus.
-
8/3/2019 Protocol MODBUS
40/56
Cach s dung nhng lenh giao tiep Modbus : Chen lenh MBUS_INT vao chng trnh va ch can thc thi no trong mot chu
ky quet. Ta co the s dung lenh MBUS_INT e thiet lap hoac thay oi cac
thong so giao tiep Modbus.
Khi lenh MBUS_INT c chen vao th rat nhieu chng trnh con va ngat an
c t ong them vao chng trnh.
Ta phai ch ra a ch bat au cua 779 byte lien tiep cua vung V cho viec
giao tiep Modbus.
at lenh MBUS_SLAVE vao chng trnh. Lenh nay c goi moi chu ky
quet e phuc vu bat c yeu cau nao ma no c nhan.
Noi cap truyen thong gia Port ttren S7-200 va thiet b Modbus chu.
-
8/3/2019 Protocol MODBUS
41/56
Cc m hm cho PLC
-
8/3/2019 Protocol MODBUS
42/56
V.1./ a ch Modbus a ch Modbus thng c viet t 5 en 6 ky t gia tr
gom loai d lieu va khoang trong. Ky t th nhat hoacth hai xac nh loai d lieu, ky t cuoi th t chon loaid lieu cho phu hp. a ch cua thiet b Modbus chu(Modbus master ) phai ung vi chc nang (Function), ach con lai th c ho tr bi Modbus t (Modbus Slave).
-
8/3/2019 Protocol MODBUS
43/56
V.1./ a ch Modbus(tt) 000001 en 000128 la a ch ngo ra Q0.0 - Q15.7
010001 en 010128 la a ch ngo vao I0.0 - I15.7
030001 en 030032 la thanh ghi ngo vao Analog AIW0 -
AIW62
040001 en 04xxxx la thanh ghi Holding cua bo nh V (V
memory)
h d h
-
8/3/2019 Protocol MODBUS
44/56
Bang a ch ModBus va a ch tng ng cua CPU S7 200 c
Modbus tro en :
a ch Modbus a ch CPU S7-200
000001 Q0.0
000002 Q0.1
000003 Q0.2
... ... 000127 Q15.6
000128 Q15.7
010001 I0.0
010002 I0.1
010003 I0.2
-
8/3/2019 Protocol MODBUS
45/56
a ch Modbus a ch CPU S7-200
... ...
010127 I15.6
010128 I15.7
030001 AIW0
030002 AIW2
030003 AIW4
-
8/3/2019 Protocol MODBUS
46/56
a ch Modbus a ch CPU S7-200 ... ...
030032 AIW62
040001 Hold Start hay (VW0)
040002 HoldStart+2 hay (VW2) 040003 HoldStart+4 hay (VW4)
... ...
04xxxx HoldStart+2 x(xxxx-1) hay
(VW2*(xxxx-1))
V 2 /
-
8/3/2019 Protocol MODBUS
47/56
V.2./ Lenh MBUS_INIT
V 2 /
-
8/3/2019 Protocol MODBUS
48/56
V.2./ Lenh MBUS_INIT(tt)
V 2 /
-
8/3/2019 Protocol MODBUS
49/56
V.2./ Lenh MBUS_INIT(tt)
Lenh MBUS_INIT dung e cho phep va khi tao hoac
khong giao tiep Modbus. Trc khi lenh MBUS_SLAVE co
the dung th lenh MBUS_INIT phai c thc thi khong co
loi (Error). Lenh nay c hoan thanh th bit Donec setngay lap tc trc khi tiep tuc lenh ke tiep. Lenh c
thc thi trong moi vong quet th ngo vao EN la ON.
V 2 /
-
8/3/2019 Protocol MODBUS
50/56
V.2./ Lenh MBUS_INIT(tt)
Thong so set toc o Baund la :1200, 2400, 4800, 9600, 19200,
38400, 57600, hay 115200. Thong so Parity c set phu hp vi parity cua modbus
chu (Modbus master). Gom co cac gia tr sau : 0-no parity
1-odd parity
2-even parity
V 2 /
-
8/3/2019 Protocol MODBUS
51/56
V.2./ Lenh MBUS_INIT(tt)
Delay m rong chuan Modbus trong ieu kien het thi gian ket thuctin nhan, bang cach them vao so mili giay cua khoang thi gian
nay. Gia tr tieu bieu cho thong so nay la 0 oi vi mang co day,
neu ta s dung nhng Modem co the sa loi th set Delay t 50 en
100 ms. Gia tr cua Delay co the t 0 ti 32767 ms.
MaxIQ la set nhng so cua I va Q e a ch Modbus 00xxxx va01xxxx tai gia tr t 0 128. Gia tr 0 khong the oc hay viet en
ngo vao va ngo ra, ta co the lay gia tr MaxIQ la 128.
V 2 /
-
8/3/2019 Protocol MODBUS
52/56
V.2./ Lenh MBUS_INIT(tt)
MaxAI la set nhng so thanh ghi ngo vao la word (AI) e a chModbus 03xxx tai gia tr t 0 32. So 0 khong c phep oc ngo
vao analog.
Gia tr MaxAI c chon nh sau :
Chon so 0 cho CPU 221
Chon so 16 cho CPU 222
Chon so 32 cho CPU 224, 226, va 226XM MaxHold : set so cua thanh ghi word holding trong vung nh V en a
ch Modbus 04xxxx. V du : e Modbus chu truy cap 2000 bytes cua
vung nh V, ta set MaxHold la 1000 words (holding register : thanh ghiholding)
V 2 / h
-
8/3/2019 Protocol MODBUS
53/56
V.2./ Lenh MBUS_INIT(tt)
HoldStart la a ch bat au cua thanh ghi holding (holdingregister) trong vung nh V. Gia tr nay c set trong VB0, do
o HoldStart c set a ch VB0 (&VB0). Mat khac, a
ch vung nh V ac trng cho a ch khi au cua thanh
ghi holding cho phep VB0 c dung mot ni nao khactrong d an (Project). Modbus chu truy cap vao vung nh V
bat au tai HoldStart. Khi lenh MBUS_INIT hoan tat ngo
vao Done se len ON.
-
8/3/2019 Protocol MODBUS
54/56
V.3./ Lenh MBUS_SLAVE
-
8/3/2019 Protocol MODBUS
55/56
V.3./ Lenh MBUS_SLAVE(tt) Lenh MBUS_SLAVE c s dung e phuc vu yeu cau t
Modbus chu (Modbus master), va c thc thi trong moi chu
ky vong quet e kiem tra va ap ng yeu cau cua
Modbus. Lenh c thc thi trong moi vong quet th ngo
vao EN la ON. Lenh MBUS_SLAVE khong co thong sovao.
Ngo ra Done la ON khi lenh MBUS_SLAVE ap ng yeucau cua Modbus. Va ngo ra Done la OFF neu khong co
yeu cau e thc thi.
V / L h h h M db Sl
-
8/3/2019 Protocol MODBUS
56/56
V.4./ Loi thc thi giao thc Modbus Slave