• Tidak ada hasil yang ditemukan

PEMBUATAN REMOTE I/O 16 KANAL DIGITAL INPUT MENGGUNAKAN PROTOKOL MODBUS RTU BERBASIS MIKROKONTROLER AT89S51. Moh. Imam Afandi

N/A
N/A
Protected

Academic year: 2021

Membagikan "PEMBUATAN REMOTE I/O 16 KANAL DIGITAL INPUT MENGGUNAKAN PROTOKOL MODBUS RTU BERBASIS MIKROKONTROLER AT89S51. Moh. Imam Afandi"

Copied!
11
0
0

Teks penuh

(1)

PEMBUATAN REMOTE I/O 16 KANAL DIGITAL INPUT MENGGUNAKAN PROTOKOL MODBUS RTU BERBASIS MIKROKONTROLER AT89S51

Moh. Imam Afandi

Puslit KIM-LIPI, Kawasan Puspiptek Serpong, Tangerang 15314

INTISARI

Telah dilakukan pembuatan remote I/O 16 kanal digital input menggunakan protokol modbus RTU berbasis mikrokontroler AT89S51. Remote I/O yang dibuat ini selanjutnya dapat digunakan sebagai ekspansi I/O digital input pada PLC (Programmable Logic Controller) dan/atau sistem OPC (Ole for

Process Control) SCADA (Supervisory Control and Data Acquisition) yang mendukung protokol

standard industri modbus RTU. Dari hasil pengujian komunikasi alat dengan OPC Server Modbus didapatkan bahwa komunikasi modbus RTU untuk mengakses/membaca 16 kanal digital input telah berhasil dengan kualitas OPC good/baik tanpa ada sedikitpun kualitas bad/buruk pada setiap input yang diakses.

Kata kunci : Remote I/O, 16 kanal digital input, protokol modbus RTU, mikrokontroler AT89S51, ekspansi I/O digital input pada PLC dan/atau OPC SCADA.

ABSTRACT

The remote I/O has been built with 16 channels of digital input using modbus RTU protocol based on AT89S51. The remote I/O can be used as I/O ekspansion for PLC (Programmable Logic Controller) and/or OPC (Ole for Process Control) SCADA (Supervisory Control and Data Acquisition) system that supported with industrial standard protocol modbus RTU. The testing result of the remote I/O has been succeed to communicate with Modbus OPC Server in order to read 16 channels of digital input with good quality OPC for each accessed digital input.

Keywords : Remote I/O, 16 channels of digital input, modbus RTU protocol, AT89S51 microcontroller, expansion I/O for PLC and/or OPC SCADA.

PENDAHULUAN

(2)

menggunakan penghubung komunikasi standard industri. I/O dalam rack lain tersebut dalam dunia industri seringkali dikenal dengan nama remote I/O. Remote I/O juga mempunyai fungsi juga sebagai I/O yang dapat diletakkan berjauhan dari sisi master. Remote I/O yang ada di pasaran ternyata juga masih tergolong mahal jika digunakan untuk industri menengah ke bawah sehingga dibutuhkan solusi murah dalam pengadaan remote I/O yang menunjang proses industri dan/atau otomasi industri.

Sebagai salah satu solusi murah dari permasalahan di atas, telah dilakukan pembuatan remote I/O 16 kanal digital input menggunakan protokol modbus RTU berbasis mikrokontroler AT89S51. Dalam tulisan makalah ini akan dijelaskan mengenai pembuatan remote I/O 16 digital input menggunakan protokol modbus RTU berbasis mikrokontroler AT89S51. Penggunaan protokol modbus RTU disamping protokol tersebut merupakan protokol industri yang open document, protokol tersebut juga banyak didukung oleh banyak merk PLC. Jumlah digital input sebanyak 16 kanal juga didasarkan pada 1 word / 16 bit pengiriman data pada protokol modbus RTU.

DASAR TEORI PROTOKOL MODBUS RTU

Modbus adalah suatu protokol komunikasi yang pertama kali dikembangkan oleh Modicon Systems pada tahun 1979 (yang sekarang Modicon berganti menjadi Schneider Telemecanique) [1]. Protokol modbus sendiri banyak variasinya, antara lain protokol modbus ASCII, modbus RTU, modbus plus dan modbus TCP. Pada kesempatan kali ini hanya dijelaskan dasar teori protokol modbus RTU. Protokol komunikasi modbus RTU menggunakan sistem polling yaitu sisi master memanggil (request) dan sisi slave menjawab (response). Dimana bentuk memanggil-menjawab pada protokol modbus RTU dapat digambarkan sebagai berikut [1,2] :

Gambar 1. Skema Memanggil-Menjawab pada Protokol Modbus RTU Station Number

Function Code Data Bytes

(Flexible) Error Check Query/Request from Master

Station Number

Data Bytes (Flexible) Error Check Function Code

(3)

Pada gambar 1 dapat dijelaskan bahwa skema memanggil-menjawab pada protokol modbus RTU selalu berurutan dengan bingkai prosedur yang sama. Station Number memiliki range antara 1-255 yang merupakan alamat slave yang akan diambil datanya. Function Code merupakan kode fungsi data yang akan diambil dimana kode fungsi tersebut dipetakan sebagai berikut[1,2] :

01 : read DO (Digital Output) 02 : read DI (Digital Input) 03 : read AO (Analog Output) 04 : read AI (Analog Input)

05 : write single DO (Digital Output) 06 : write single AO (Analog Output) 15 : write multiple DO (Digital Output) 16 : write multiple AO (Analog Output)

Data bytes merupakan blok data informasi dan Error Check merupakan cek data dari kesalahan komunikasi.

Selanjutnya khusus untuk protokol modbus RTU, bingkai prosedur data secara detail dapat digambarkan sebagai berikut[1,2] :

Gambar 2. Bingkai Prosedur Data pada Protokol Modbus RTU

Pada gambar 2 dapat dijelaskan bahwa untuk memulai skema memanggil-menjawab pada protokol modbus RTU harus dimulai dan diakhiri dengan waktu tunda selama 3.5 karakter dalam baud rate komunikasi yang sudah ditentukan sebelumnya. Nilai dalam Station Number, Function Code, dan Data yang sudah dijelaskan sebelumnya harus dideklarasikan dalam nilai biner atau hexadesimal-nya. Untuk Error Check disini menggunakan algoritma Cyclic Redundancy Check (CRC) tipe 16 bit / 2 Char.

Untuk penjelasan yang lebih detailnya, dapat diberikan contoh memanggil-menjawab untuk membaca digital input pada protokol modbus RTU sebagai berikut [3] :

Station Number Function Code Data Error Check End

1 Char 1 Char n Chars 2 Chars 3.5 Chars

Start

3.5 Chars

(4)

Misalkan suatu contoh protokol modbus RTU untuk mendapatkan status digital input dari alamat 10197 sampai 10218 dengan alamat slave 17.

 Memanggil (dari sisi master) 11 02 00C4 0016 BAA9

11 : alamat slave (17 = 11 hex)

02 : function code (kode fungsi membaca status digital input) 00C4 : alamat digital input pertama yang dibaca

(alamat 10197 - 10001 = 196 = C4 hex) 0016 : jumlah alamat digital input yang dibaca

(alamat 197 to 218 = 22 = 16 hex)

BAA9 : algoritma CRC-16 (cyclic redundancy check) untuk cek error data yang dikirim.

 Menjawab (dari sisi slave) 11 02 03 ACDB35 2018 11 : alamat slave (17 = 11 hex)

02 : function code (kode fungsi membaca status digital input)

03 : jumlah byte data yang diberikan (22 DI / 8 bits per byte = 3 bytes) AC : digital input 10197 - 10204 (1010 1100)

DB : digital input 10205 - 10212 (1101 1011) 35 : digital input 10213 - 10218 (0011 0101)

2018: algoritma CRC-16 (cyclic redundancy check) untuk cek error data yang dikirim.

Data MSB (Most Significant Bit) dari suatu byte data menandakan alamat yang lebih tinggi dan data yang dikirim di luar jangkauan dianggap bernilai 0.

DESKRIPSI ALAT

(5)

detail mengenai skema alat yang dibuat dapat digambarkan dalam bentuk blok diagram sebagai berikut :

Gambar 3. Skema Blok Diagram Alat Remote I/O 16 kanal DI Modbus RTU Ddari skema blok diagram pada gambar 3, selanjutnya direalisasikan menjadi suatu rangkaian elektronik PCB seperti yang diberikan pada gambar sebagai berikut :

Gambar 4. Rangkaian Elektronik PCB Remote I/O 16 kanal DI Modbus RTU

Pada gambar 3 dan 4 dapat dijelaskan bahwa untuk port 1 dan port 0 yang masing-masing mempunyai 8 pin data digunakan sebagai digital input yang berjumlah 16 kanal pin dimana untuk setiap kanal pin dari digital input mempunyai rangkaian interface untuk mengkondisi sinyal range masukan input dari TTL 5 Vdc sampai 24 Vdc. Tegangan power alat mempunyai range antara 9 – 24 Vdc untuk memenuhi

Port 0 Port 1

Port 2 Dip Switch 8

(6)

standard industri. Port 2 digunakan sebagai pemilihan alamat slave modbus RTU menggunakan komponen dip switch 8 kanal dan pada port 3 dari pin 3.4 sampai pin 3.7 dipakai sebagai pemilihan baud rate komunikasi serial menggunakan komponen dip switch 4 kanal, dimana logika pemilihan baud rate dapat dijelaskan sebagai berikut. Jika pin 3.4 bernilai 1 berarti menggunakan 9600 baud, jika pin 3.5 bernilai 1 berarti menggunakan 19200 baud, jika pin 3.6 bernilai 1 berarti menggunakan 57600 baud, dan jika pin 3.7 bernilai 1 berarti menggunakan 115200 baud. Setiap kanal digital input juga dapat menerima masukan tegangan hingga 24 Vdc. Dimensi dari rangkaian elektronik PCB ini berukuran 7 x 11 cm dimana nantinya akan dimasukkan dalam box aluminium din rail yang sudah ada di pasaran. Kemudian selanjutnya yang tak kalah penting dari alat ini adalah komunikasi serial menggunakan RS485 dimana dipakai IC MAX485 yang merupakan IC yang mendukung RS485 tipe Half Duplex.

Sehingga spesifikasi alat remote I/O 16 kanal digital input yang dibuat ini dapat dijabarkan sebagai berikut :

- Digital input : 16 channels - Input logic level 0 : 0 – 3 Vdc - Input logic level 1 : 3.5 – 24 Vdc - Led input indicator : Yes (Green) - Overvoltage protection : 100 Vdc

- Connector type : screw plug-in (ptr 500) - Power consumption : 1 W @ 9 – 24 Vdc - Supported protocol : Modbus RTU - Led comm. status : Yes

- Selectable baud rate : 9600, 19200, 57600, 115200 - Modbus address : up to 255 multi-drop address

(7)

Gambar 5. Diagram Alir Program Remote I/O 16 kanal DI Modbus RTU Mulai

Inisialisasi port

Deteksi char data alamat slave, function code, byte data, & CRC

> sisa 3.5 char waktu diam ?

Alamat slave, FC, byte 16 DI & CRC benar ? Baca alamat dip switch slave

& dip switch baud rate

Jawab char data alamat slave, FC=1, byte data DI yg diminta, & CRC

Looping terus ? Deteksi kondisi bit 16 kanal

digital input yang diminta

Selesai Y Y Y T T T

Sisa waktu diam 3.5 char terpenuhi?

Y

(8)

HASIL DAN PEMBAHASAN

Pengujian alat remote I/O dilakukan dengan menggunakan OPC Server Modbus dimana alat remote I/O diset pada alamat dip switch slave 1 dan baud rate 9600 melalui komunikasi serial RS-485. Untuk OPC Server Modbus dipilih setting modbus serial dengan konfigurasi komunikasi COM1, 9600, 8, N, 1 seperti yang diberikan pada gambar sebagai berikut :

Gambar 6. Setting protokol dan konfigurasi serial pada OPC Server Modbus Selanjutnya dideklarasikan nama tag digital input dari alamat 10001 sampai 10016 seperti yang diberikan pada gambar berikut :

(9)

Setelah semuanya sudah selesai dideklarasikan, maka dapat dilakukan pengujian komunikasi modbus RTU antara OPC Server Modbus dengan alat remote I/O yang sudah dibuat. Caranya dengan menjalankan perangkat lunak OPC Quick Client untuk memonitor kualitas data OPC yang sudah dideklarasikan seperti yang diberikan pada gambar berikut ini.

Gambar 8. Hasil Pengujian Data Modbus RTU Menggunakan OPC Quick Client

(10)

Gambar 9. Hasil Memanggil-Menjawab Modbus RTU untuk 16 Kanal Digital Input Pengujian selanjutnya dilakukan dengan memberikan variasi dengan menggunakan baud rate yang lebih tinggi, alamat slave yang lain dan mengurangi nama tag digital input yang dideklarasikan atau deklarasi nama tag hanya diisi sebagian kanal dari jumlah 16 digital input. Hal ini diperlukan untuk meyakinkan apakah algoritma komunikasi modbus RTU sudah handal untuk dapat menjawab sebagian alamat digital input yang dipanggil dari sisi master. Hasil dari variasi tersebut semuanya juga mendapatkan kualitas good untuk setiap Item ID digital input yang dideklarasikan sehingga remote I/O ini sudah siap digunakan sebagai ekspansi I/O digital input pada PLC dan/atau OPC pada sistem SCADA yang mendukung protokol komunikasi modbus RTU.

KESIMPULAN

(11)

UCAPAN TERIMAKASIH

Penulis mengucapkan terimakasih kepada saudara Agung Nugroho yang berprofesi sebagai system integrator PLC / SCADA dimana telah memberikan saran dan membagi pengalaman mengenai spesifikasi remote I/O yang dibutuhkan dan yang dapat diterima dalam dunia industri.

DAFTAR PUSTAKA

[1] ... , 1996. Modicon Modbus Protocol Reference Guide Rev. J, Modicon Inc. Industrial Automation Systems.

[2] ... , 2006. Modbus Over Serial Line : Specification and Implementation Guide

V1.02, Modbus Organization..

[3] ... , 2008. Read Input Status (FC=02), Simply Modbus Inc. URL: http://www.simplymodbus.ca/FC02.htm

[4] ... , 2001. ATMEL AT89S51 Datasheet, Atmel Corporation.

[5] Sandeep Dutta, 2008. SDCC Compiler User Guide, General Public License. URL: http://sdcc.sourceforge.net/doc/sdccman.pdf

[6] Worapoht Kornkaewwattanakul, 2009. M-IDE Studio for MCS 51, Standard Edition.

Gambar

Gambar 1.  Skema Memanggil-Menjawab pada Protokol Modbus RTU
Gambar 2.  Bingkai Prosedur Data pada Protokol Modbus RTU
Gambar 3.  Skema Blok Diagram Alat Remote I/O 16 kanal DI Modbus RTU
Gambar 5.  Diagram Alir Program Remote I/O 16 kanal DI Modbus RTU Mulai
+4

Referensi

Dokumen terkait