Pengetahuan Dasar Protokol modbus.docx

download Pengetahuan Dasar Protokol modbus.docx

of 19

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