"Kembali Ke Dasar Elektronika Digital ... "

Selasa, 21 Juli 2020

MODBUS - Komunikasi Industri Jaman dulu [part 2] Membedah Isi Pesan Modbus




Pada bagian kedua kita akan membedah standar protokol modbus melalui pembedahan perintah yang dikirim dan terima dari master menuju slave. Dari software sniffer serial port  yg menyadap komunikasi serial pada komunikasi antara PC sebagai master modbus dan arduino sebagai modbus slave, didapatkan pola pengiriman data seperti ini saat menghidupkan LED:

05 05 00 00 FF 00 8D BE

Kode diatas berupa Hexa jadi kalau dipisah-pisah berdasarkan standar pada beberapa tulisan yang saya baca di beberapa artikel di internet adalah seperti berikut:

05     =  Alamat device id slave
05     =  Perintah force coil / function 05
00 00  = 2 byte alamat address memori (mulai 0)
FF 00  = 2 byte force coil ON
8D BE  = Checksum / CRC 16 modbus

Ada pola khusus yaitu alamat address register dan data perintah berupa 2 byte. Register / alamat memory modbus selalu dimulai dari nol walaupun sejatinya alamat yang dituju merupakan register yg diawali angka 1, contoh kita akan megakses register 40001, tetap saja perintah nya akses ke reg 0 karena sudah diwakili oleh byte perintah function sebagai penanda jenis register yg akan diakses. Check sum ini didapat dengan rumus tertentu dan daripada pusing langsung aja gunakan website https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/ untuk menjadi crosscheck. Pada terminal realterm sudah terdapat penghitung checksum otomatis sehingga sangat gampang.



Jadi untuk mematikan led perintahnya adalah :


05 05 00 00 00 00 CC 4E

Untuk mengecek checksumnya (CC 4E) dapat menggunakan website yang telah saya berikan sebelumnya. Untuk mengecek penekanan tombol perintahnya adalah :


05 02 00 00 00 01 B8 4E

05     =  Alamat device id slave
02     =  Perintah baca input digital / function 02
00 00  = 2 byte alamat address memori (mulai 0)
00 01  = 2 byte panjang data yg diharapkan
B8 4E  = Checksum / CRC 16 modbus



Jawaban yg diterima untuk kondisi tombol dilepas / LOW :

05 02 01 00 A0 B8

Untuk kondisi tombol ditekan / HIGH
05 02 01 01 61 78

Dimana yang berwarna merah artinya  bisa dilihat pada website  parsing data RTU berikut  http://rapidscada.net/modbus/ModbusParser.aspx


Untuk membaca DHT11 dilakukan dengan function 04 dan 3 buah data akan diminta ke modbus yaitu  suhu didepan koma, suhu di belakang koma dan terakhir angka kelembaban. Perintahnya sebagai berikut :

05 04 00 00 00 03 B1 8F

05     =  Alamat device id slave
04     =  Perintah baca input analog/ function 04
00 00  = 2 byte alamat address memori (mulai 0)
00 03  = 2 byte panjang data yg diharapkan (3 buah data)
B1 8F  = Checksum / CRC 16 modbus

sedangkan replynya seperti ini formatnya : 

05 04 06 00 1D 00 4F 00 5F CF BE

05     =  Alamat device id slave
04     =  Perintah baca input analog/ function 04
06     = 6 byte data berikut akan muncul (format 2 byte per data) 
00 1D  = 2 byte pertama adalah 001D = 29
00 4F  = 2 byte kedua adalah 004F =  79
00 5F  = 2 byte ketiga adalah 005F = 95
CF BE  = Checksum / CRC 16 modbus

Jadi hasil pembacaan dari DHT 11 adalah 29,79 derajat Celcius dengan kelembaban 95%. Untuk lebih jelasnya bisa dilihat pada video https://www.youtube.com/watch?v=cOmQoyfORtg&t=34m30s



Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

Site View

Categories

555 (6) 7 segmen (3) adc (4) amplifier (2) analog (10) android (11) antares (3) arduino (14) attiny (1) attiny2313 (17) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (35) display (3) esp8266 (3) gcc (1) iklan (1) infrared (2) Input Output (3) iot (16) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (12) komputer (3) komunikasi (1) kontrol (4) lain-lain (8) lcd (2) led (9) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (55) mikrokontroller (7) mikrotik (5) ninmedia (1) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (29) pcb (2) praktek (2) project (33) proyek (1) python (1) radio (3) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (3) signage (1) sms (6) software (18) tachometer (2) telepon (7) televisi (58) television (2) transistor (1) troubleshoot (3) tulisan (55) tutorial (78) tvri (1) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika