Pengetahuan Dasar Protokol modbus.docx
-
Upload
uriep-stoe -
Category
Documents
-
view
235 -
download
0
Transcript of Pengetahuan Dasar Protokol modbus.docx
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
1/19
Pengetahuan Dasar Protokol Modbus
JUN 3
Posted by pccontrol
Jaringan Protokol Modbus
Sebelum membaca artikel ini sebaiknya anda membaca ttg Protokol komunikasi.
Pengetahuan dasar Prototokol Modbus
Protocol modbus dibuat oleh perusahaan PLC bernama Modicon tahun 1979 dan sampai sekarang
menjadi salah satu prtotocol komunikasi standar yg dipakai dalam utomatisasi pengelolaan
!edung" Proses #ndustri dll.
$eberapa Jenis %ype Modbus
Modbus Serial &'%( ) SC##*
Modbus %CP+#P
Modbus ,
Pada rtikel ini kita hanya akan membahas Modbus Serial '%( disebabkan mudah implementasinya
.
Protokol komunikasi Modbus Serial mengatur cara-cara dan ormat komunikasi serial &rs/0/ atau
rs23* antara master dengan Sla4e & master atau sla4e dpt berupa PLC "microcontroller" smart
de4ice dll* .Jaringan Modbus terdiri dari Master dan beberapa Sla4e" Master yang berinisiati
memulai komunikasi antara lain menulis data"membaca data"dan mengetahui status SLa4e .
Permintaan master disebut juga sebagai re5uest atau 5uery. Sla4e hanya bersiat
pasi+menunggu atau dgn kata lain Sla4e hanya me respon jika ada permintaan+5uery dari
Master.
https://pccontrol.wordpress.com/2011/06/03/protokol-modbus/https://pccontrol.wordpress.com/author/pccontrol/https://pccontrol.wordpress.com/2011/06/03/protokol-komunikasi/https://pccontrol.wordpress.com/author/pccontrol/https://pccontrol.wordpress.com/2011/06/03/protokol-komunikasi/https://pccontrol.wordpress.com/2011/06/03/protokol-modbus/ -
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
2/19
Jumlah Sla4e dalam protokol Modbus bisa sebanyak /7 sla4e. Sla4e dapat berupa PLC"
peralatan elektronik" controller" sensor dll.
Penyimpanan data pada modbus
Pada protokol modbus terdapat buah jenis penyimpanan data dengan panjang masing/ 16 bit.
1. Coil
Pada mulanya jenis data ini digunakan untuk mengaktikan coil relay . nilai jenis data ini 8
atau . Coil mempunyai panjang 16 bit" sehingga untuk mengaktikan+8 dgn cara memberi
nilai ::; dan ::::; untuk . data :: dan :: disimpan di register ::::: sampai :9999
/. #nput 'elay + input biner + input digital+input diskrit
kebalikan dengan coil" input relay digunakan untuk mengetahui status relay apakah sedang 8
atau . #nput relay bersiat read only bagi master dan hanya bisa dirubah oleh sla4e saja.
data tsb disimpan di register 1:::1 sampai 19999
0. #nput 'egister
#nput 'egsiter digunakan untuk menyimpan data analog dgn range nilai : < 63303 . #nput
register bersiat read only bagi master.
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
3/19
data ini disimpan di register ber nomor 0:::1 sampai 09999
. ;olding 'egister
;olding register digunakan untuk menyimpan nilai dgn range :
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
4/19
!ambar diba=ah ini memperlihatkan pengorganisasian data pada sebuah sla4e modbus yang
hanya mempunayi satu blok untuk coil dan register.
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
5/19
Frame Data Modbus:
Master atau sla4e berkomunikasi dgn cara mengirim rame permintaan dan rame respon . secara
umum ormat rame modbus sbb>
rame modbus terdiri dari
1. lamat sla4e
$yte pertama sebagai lamat sla4e terdiri dari 1 byte . alamat sla4e ditentukan hanya 1 < /7.
alamat : digunakan master untuk ditujukan kepada semua sla4e.
/. unction Code
$yte kedua berupa unction Code " perintah dari master yang harus dilakukan oleh sla4e berikut
ini datar kode perintah perintah tsb &unction code*>
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
6/19
Data
membac
a
menulis 1
data
menulis banyak
data
no awal
reg
Coil FC01 FC05 FC15 00001
inputdiskrit/digital FC02 10001
Input register FC04 30001
Holding egister FC03 FC0! FC1! 40001
?keterangan> C13 maksudnya adalah unction code 13 desimal atau : dlm he@a.
0. $yte Aata
Jumlah $yte Aata ber4ariasi tergantung jumlah data yg akan di tuliskan ke sla4e. $yte data berisi
alamat register" jumlah data" dan data yg akan ditulis. alamat register akan di jelaskan
kemudian.
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
7/19
. eror check" C'C
Aua byte terakhir adalah byte C'C " byte ini digunakan untuk mendeteksi jika ada kesalahan pada
rame modbus .
espon M!D"U# $%ception
'espon e@eception adalah respon dari sla4e ketika terjadi keadaan tidak normal+error. Sla4e
menerima 5uery " tetapi Sla4e tidak dapat menangani perintah tersebut" Sla4e akan mengirimkan
sebuah respon e@ception. rame respon jika terjadi kesalahan berbeda dgn rame dlm keadaan
normal.
Perbedaan rame modbus normal dan saat terjadi e@ception
%abel B@ception Code
"#ception
Code $ama e#ception arti
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
8/19
01 I%%"&'% F($C)I*$ +unction code sala,
02I%%"&'% -')''--"..
alamat register sala, misal slae
punya 100 register maka alamatma#imum adala,
03
I%%"&'% -')'
'%("
mengandung nilai data yg tdk
diiinkan untuk slae
04.%'" -"IC"F'I%("
.lae gagal melaksanakan perinta,master
05 'C$*6%"-&7"$)
pemberita,uan ke master ba,wa
pelaksanaan perinta, akan memakan
waktu yg lama se,ingga bisa time out
0!
.%'" -"IC"
8(..9
slae sidang sibuk sila,ken kirim
perinta, lain waktu
0:
7"7*9 ;'I)9
"*
.pecialied use in con
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
9/19
sebuah Master meminta data isi 1 buah register input dari Sla4e dgn alamat 1. uction code :
digunakan untuk membaca data register sla4e.
maka master akan mengirim query :
01 04 0000 0001 31CA
:1 G lamat Sla4e
: G unction Code : &Perintah Membaca register input*
:::: G lamat a=al Aata di register yg diminta &0:::1-0:::1G:*
:::1 G Jumlah register yg datanya diminta
01C G 8ilai C'C
Sla4e dgn alamat 1 akan merespon dengan mengirim data ke master sbb>
01 04 02 0032 E4D2
artinya>
:1 G lamat dirinya + Sla4e 1
: G unction Code :
:/ G jumlah byte data yg akan diberikan .
:: G data pertama
0/ G data kedua
BG C'C byte /
A/ GC'C byte 1
Contoh / > membaca / buah holding register :1:2 ) :1:9
alamat a=al data di register :1:2 -:::1G 1:7 atau dlm bilangan he@a ::6$
Master mengirim > 11 :0 :: 6$ :: :/ &' "'"
artinya meminta data isi / buah register mulai dari alamat ::6$ " alamat sla4e 11;. nilai crc
7$7
&misal isi register di sla4e > ://b ::6*
Sla4e mengirim respon > 11 :0 : :/ /b :: 6 A( ("
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
10/19
Contoh 0. master menset coil
(ntuk men set sebuah coil nomor 170 pada sla4e dgn alamat 17 &11;*
11 05 00AC FF00 4E8B
11> alamat sla4e&17 G 11he@*
05> unction Code
00AC> alamat koil coil. &coil 170 F 1 G 17/ G AChe@*
FF00> & FF00G 8" 0000G *
4E8B> C'C
'espon dari sla4e
11 05 00AC FF00 4E8B
11> alamat Sla4e &17 G 11he@*
05> unction Code
00AC> alamat+nomor coil &coil 170 F 1 G 17/ G AChe@*
FF00> status& FF00G 8" 0000G *
4E8B> C'C
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
11/19
Contoh aplikasi penggunaan jenis data modbus pada H' microntroller sebagai sla4e>
Pen)elasan gambar contoh di atas:
1. coil
disini digunakan untuk mengaktikan relay dengan cara menulis ::; register ::::1 dan register
::::2 . (ntuk mematikan relay dgn cara menuliskan ::::; ke kedua register tsb.
(ntuk mengetahui status apakah relay sedang menyala atau sedang mati kita bisa membaca
register ::::1 dan register ::::2.
/. #nput digital +input diskrit &read only bagi master*
untuk input digital master hanya bisa mengetahui statusnya dan tdk bisa menulis ke input digital.
artinya pada contoh ini master tdk bisa memerintahkan sla4e untuk mengaktikan s=itch. untuk
mengetahui status s=tich sedang on atau o dengan cara membaca register /:::1 dan /:::/.
0. #nput register &read only bagi master*
Pada contoh ini input register digunakan untuk menyimpan data hasil kon4ersi AC . ;asil kon4ersi
bisa dibaca oleh master dan master tdk bisa merubah data register ini.
hasil kon4ersi AC chanel : &port.:* disimpan di input register 0:::1
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
12/19
hasil kon4ersi AC chanel / &Port.1* disimpan di input register 0:::/
dan seterusnya.
. ;olding 'egister
Pada contoh ini holsing register di gunakan untuk menyimpan input dari port $ ketika port $ sbg
input.
;olding register juga bisa digunakan untuk mengeluarkan data ke port$ saat port$ sebagai output.
Contoh master berupa PC dan sla4e microcontroller
master-sla4e-modbus
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
13/19
Modbus Protokol dan Serial Standard
December 6th, 2010Leave a commentGo to comments
Download article as PDF
Setelah saya mempelajari sistem S!D! secara "m"m
ma#a #em"dian saya mempelajari dari masin$%masin$ s"bsistemnya& dim"lai dari ba$aimana cara
#erjanya, ba$aimana cara ber#om"ni#asinya, ba$aimana cara men$ambil data dan lainnya& Sampai
a#hirnya saya mempelajari 'om"ni#asi Serial pada PL dan bertem" den$an jenis%jenis standard
ind"stri #om"ni#asi serial dan j"$a standar ind"stri proto#ol "nt"# #om"ni#asi data&
(nt"# #om"ni#asi serial ada beberapa yan$ serin$ di$"na#an di
)nd"stri, yait" *S2+2, *S-., dan *S22& *S adalah sin$#atan dari *ecommended Standard /#lo di
#as#"s *ecommended Seller #ali ya p& 'eti$a jenis *S terseb"t mer"pa#an physical layer
/ardware dari Layer pertama di 3S) 4odel /5i#ipedia 3S) 4odel yan$ pada intinya pada phisycal
layer ba$aimana hardware terseb"t men$"bah data menjadi sinyal ele#tri# dan j"$a sebali#nya
men$"bah sinyal ele#tri# menjadi data& Setiap standard #om"ni#asi serial masin$ masin$ memili#i
spesii#asi yan$ berbeda pada *S2+2 sinyal electric diay"n#an pada te$an$an 78% 12 9olt, 78% .9olt,dan 78% + 9olt& pen$#abelan memili#i minimal + #abel yait" *:, ;:, dan $ro"nd& dan panjan$
ma#sim"m #abel adalah 1. meter& Sedan$#an pada *S-. te$an$an yan$ di$"na#an adalah 78%
.9olt dimana sinyal di #onversi#an pada d"a #abel 7 /! dan #abel < /=& Pada *S-. tida#
men$$"na#an $ro"nd ma#a dari it" *S-. dapat di$"na#an den$an #abel hin$$a 1200meter /1,2'm
#arena loss daya yan$ terjadi lebih #ecil dan tida# terlal" berpen$ar"h #arena tetap dapat ter#onversi
sinyalnya& #em"dian pada *S-. dapat m"ltidrop ata" dapat dicaban$#an den$an beberapa
hardware& "nt"# melihat perbedaan *S2+2 den$an *S-. dapat dilihat
dihttp88en&wi#ipedia&or$8wi#i8*S%-.dan http88en&wi#ipedia&or$8wi#i8*S%2+2
Pada #om"ni#asi serial yan$ di$"na#an pada PL terdapat cara ber#om"ni#asi 8 bahasa #om"ni#asi
yan$ diseb"t proto#ol& proto#ol mer"pa#an bahasa "nt"# salin$ ber#om"ni#asi antar hardware pada
#as"s ini PL& Proto#ol standard yan$ serin$ di$"na#an pada PL dalam ber#om"ni#asi adalah
4odb"s& seb"ah proto#ol yan$ berada di layer #e > /!pplication Layer dalam 3S) model& 4odb"s
mer"pa#an standar #om"ni#asi b"s yan$ dib"at oleh modicon yan$ memili#i open license yait" boleh
di$"na#an oleh siapa saja& "nt"# penjelasan lebih len$#ap men$enai modb"s dapat dilihat
di www&4odb"s&or$&
nah se#aran$ ba$aimana modb"s it" be#erja?
'ita bahas "nt"# modb"s serial d"l"& jadi modb"s serial adalah #om"ni#asi serial yan$ men$$"na#an
http://www.rifqion.com/menulis/modbus-protokol-dan-serial-standard/comment-page-1/#respondhttp://www.rifqion.com/menulis/modbus-protokol-dan-serial-standard/comment-page-1/#commentshttp://en.pdf24.org/free-pdf.jsphttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/RS-485http://en.wikipedia.org/wiki/RS-232http://www.modbus.org/http://www.rifqion.com/menulis/modbus-protokol-dan-serial-standard/comment-page-1/#respondhttp://www.rifqion.com/menulis/modbus-protokol-dan-serial-standard/comment-page-1/#commentshttp://en.pdf24.org/free-pdf.jsphttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/RS-485http://en.wikipedia.org/wiki/RS-232http://www.modbus.org/ -
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
14/19
proto#ol modb"s&
pada #om"ni#asi serial pen$iriman data besarnya adalah - byte data ata" istilah #asarnya adalah -
rame data dalam 1@ pen$iriman&
[byte0][byte1][byte2] [byte3] [byte4] [byte5][byte6] [byte7]
besarnya nilai data dalam 1 ramenya adalah 2A- B 2.6 /0%2..& ma#a nilai terbesarnya adalah 2.6&
ji#a #ita men$irim#an !S)) misal#an h"r" C! ma#a nilai yan$ di$"na#an ses"ai !S)) table adalah
6.&
pada modb"s rame%rame terseb"t diisi den$an #esepa#atan tertent"& modb"s Frame "nt"# reE"est
dari master #e slave adalah
[address RTU][un!tion "ode][Re#] [Re#][$en#%t][$en#%t]["R"1] ["R"2]
#eteran$an
!ddress *;( mer"pa#an address dari setiap *;(, ji#a alamat *;( yan$ direE"est mas"# #e *;(
ses"ai ma#a *;( terseb"t a#an meresponnya den$an memberi#an pesan balasan&
F"nction ode mer"pa#an jenis%jenis "n$si yan$ dapat di$"na#an yait",
01 Read Coil Status
02 Read Input Status
03 Read Holding Registers
04 Read Input Registers
05 Force Single Coil
06 Preset Single Register
0> *ead @ception Stat"s
0- Dia$nostics
0 Pro$ram -
10 Poll -
11 Fetch omm"nication vent o"nter
12 Fetch omm"nication vent Lo$
1+ Pro$ram ontroller
1 Poll ontroller
15 Force Multiple Coils
16 Preset Multiple Registers
1> *eport Slave )D
1- Pro$ram --84-
1 *eset omm& Lin#
20 *ead General *eerence
21 5rite General *eerence
22 4as# 5rite : *e$ister
2+ *ead85rite : *e$isters
2 *ead F)F3 H"e"e
Iam"n yan$ palin$ serin$ di$"na#an hanya yan$ saya tebal#an t"lisannya diatas&
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
15/19
*e$ mer"pa#an re$ister yan$ in$in diambil nilainya&&rame ini men$$"na#an 2 byte data& ma#a dari
it" nilai re$ister bisa sampai 2.6J2.6 nam"n dibatasi den$an j"mlah re$ister yan$ tersedia&
Len$ht 4er"pa#an j"mlah re$ister yan$ in$in direE"est& ini j"$a men$$"na#a 2 byte rame seperti
re$ister&
*1 dan *2 * adalah Cyclic Redundancy Check yait" seb"ah metode "nt"# pen$ece#an error&
* ini men$$"na#an 2 byte rame j"$a& "nt"# men$hit"n$ dan men$etah"i lebih jelas * dapat
dilihat di *
viewso urce print?
01.contoh fungsi untuk menghitung CRC
02.publicstaticvoidGetCRC(byte[] message, refbyte[] CRC
0!."
0#.$$%unction e&pects a mo'us message of an) *ength as we** as a 2 )te CRC arra) in which to
0+.$$return the CRC va*ues
0-.ushortCRC%u** 0&%%%%/
0.byteCRCigh 0&%%, CRCow 0&%%/
03.charCRC45/6$p7
08.for(inti 0/ i 6 (message.ength 9 2/ i::
10."
11.CRC%u** (ushort(CRC%u** ; message[i]/6$p7
12.for(int< 0/ < 6 3/
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
16/19
Pesan respon dari slave #e *;( memili#i sedi#it perbedaan den$an reE"est& "nt"# pesan 4odb"s dari
slave memili#i rame yan$ menyes"ai#an j"mlah data yan$ di#irim#an dimana setiap 1 data
men$$"na#a 2 byte rame& s"s"nan nya adalah
[RTU 'ddress][un!tion "ode][2(&an)an# data][data] [data][data*] [data*] ["R"1]
["R"2]
ontoh
K4!S;* dimisal#an #ita a#an me%reE"est #e slave den$an id ., men$ambil holdin$ re$ister di slave
den$an re$ister 0001 sampai den$an 000& ma#a bent"# pesannya
dalam :
[05][03] [00] [00][00][04]["R"1] ["R"2]
Penjelasan
[05]+ karena sla,e -. nya adala% 5
[03]+ /arena ereuest %oldin# re#ister li%at di table un!tion
[00] [00]+ karena 40001 adala% re#ister &ertaa aka diulai dari 0
[00] [04] + karena ada 4 data yan# akan di reuest 40001 40004
["R"1] ["R"2]+ 8asil "R"
dan #em"dian Slave a#an membalasnya dimisal#an re$ister 0001 bernilai >, 0002 bernilai 6, 000+bernilai ., dan 000 bernilai & ma#a respon slave adalah
[05][03][09] [00] [07][00] [06][00] [05][00] [04]["R"1] ["R"2]
Penjelasan
[05]+ Sla,e -.
[03]+ un!tion Read 8oldin# Re#ister
[09]+ 2 : )ula% data 2 : 4
[00] [07]+ nilai data di re#ister &ertaa yan# di reuest
[00] [06]+nilai data di re#ister kedua yan# di reuest
[00] [05]+nilai data di re#ister keti#a yan# di reuest
[00] [04]+nilai data di re#ister kee&at yan# di reuest
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
17/19
["R"1] ["R"2]+ 8asil "R" nya
Sepintas Tentang Modbus@o'us a'a*ah sa*ah satu protoko* untuk komunikasi seria* )ang 'i
pu*ikasikan o*eh @o'icon pa'a tahun 188 untuk 'i gunakan pa'a
AC @o'icon (AC pertama 'i 'unia )ang 'i kemangkan o*eh
4chnei'er. Arotoko* ini menB>.
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
18/19
2 @e'ia Arotoko*
@e'ia @o'us Arotoko* teragi atas tiga )aitu 4eria* port 'an
Fthernet port 'an versi tamahan.
ean)akan @o'us 'evices erkomunikasi 'engan seria* R4#3+
Aort.
Aa'a koneksi seria*, a'a 'ua varian )aitu @o'us RDE 'an @o'us
>4C, @o'us RDE menggunakan representasi it pa'a pengiriman
'atan)a se'an @o'us >4C menggunakan format 'ata >4C 'a*am
pengiriman 'atan)a. Bo'e 'engan varian >4C ti'ak isa
erkomunikasi 'engan varian RDE 'an sea*ikn)a.
Aa'a versi tamahan, a'a ction Da*e Hame
01 (01 he& Rea' Biscrete Iutput Coi*s
0+ (0+ he& Jrite sing*e Biscrete Iutput Coi*
1+ (0% he& Jrite mu*tip*e Biscrete Iutput Coi*s
-
7/26/2019 Pengetahuan Dasar Protokol modbus.docx
19/19
02 (02 he& Rea' Biscrete nput Contacts
0# (0# he& Rea' >na*og nput Registers
0! (0! he& Rea' >na*og Iutput o*'ing Registers
0- (0- he& Jrite sing*e >na*og Iutput o*'ing Register
1- (10 he& Jrite mu*tip*e >na*og Iutput o*'ing Registers