Sunday, March 16, 2014

tutorial membuat RTU Arduino protokol Modbus RTU (RS485)

 RTU sudah dijelaskan artinya pada blog sebelumnya.
kali ini saya akan share tentang tutorial membuatnya, komunikasi data serial RS485.
kenapa saya menggunakan RS485???
karena modul-modul di pasaran sekarang menggunakan itu. contoh modul yang ada di tempat kerja saya, yang menggunakan RS485, antara lain:
  1. ION6200
  2. Micom P127
  3. ADAM 4055
  4. PM710

Kelebihan RS485  dibandingkan RS232:
  • Bisa menghubungkan 1  master dengan 32 slave.
  • Kecepatan data bisa sampai 1 mbps
  • Maksimal panjang kabel data 1200 meter.
  • menggunakan metoda master-slave
Secara hardware maupun pemrograman Rs485  sangatlah simple tapi sangat bermanfaat buat pengontrolan.

Bahan-bahan yang perlu di sediakan untuk membuat RTU :

Material Hardware:
  1. Arduino Uno
  2. Kabel data Arduino
  3. IC MAX485
  4. konverter RS232 to RS485 (ujicoba ke PC)




Material Software:
  1. Software Arduino versi 0023
  2. Library ModbusSlave (maaf belum bisa upload ke internet, bisa dicari di google)
langkah-langkah pembuatan:
1. Masukkan library yang sudah anda cari di goolge ke dalam folder library software arduino

2. Buat sketch pada software arduino

#include <ModbusSlave.h>

ModbusSlave mbs;

enum { 
                MB_40000,        //A0     
        MB_40001,        //A1       
        MB_40002,        //A2
        MB_40003,        //A3
        MB_40004,        //A4
        MB_40005,        //A5
        MB_40006,        //PWM  PIN_3
        MB_40007,        //PWM  PIN_4
        MB_40008,        //PWM  PIN_5              
        MB_40009,        //PWM  PIN_6                
        MB_40010,        //PWM  PIN_7               
        MB_40011,        //PWM  PIN_8
        MB_40012,      //Pino 9 do arduino  1= liga Led 0 desliga led.              
        MB_40013,      //Pino 10 do arduino  1= liga Led 0 desliga led.
        MB_40014,      //Pino 11 do arduino  1= liga Led 0 desliga led.
        MB_40015,      //Pino 12 do arduino  1= liga Led 0 desliga led.
        MB_40016,     //Pino 13 do arduino  1= liga Led 0 desliga led.
        // Aqui você pode criar mais registradores  porém o elipse  demo fica limitado em 20 tags.  Lembrete os registradores e tags são na verdade variaveis.
        MB_REGS         /* total number of holding registers on slave */
};


int regs[MB_REGS];
int ledPin = 13;

unsigned long wdog = 0;         /* watchdog */
unsigned long tprev = 0;         /* previous time*/

void setup()
{
       

  const unsigned char SLAVE = 1;      /* slaveId */
  const long BAUD = 9600;             /* baud rate */
  const char PARITY = 'n';             /* n=none; e=even; o=odd */
  const char TXENPIN = 2;              /* output driver enable pin */

 
  mbs.configure(SLAVE, BAUD, PARITY, TXENPIN);

  mbs.update(regs, MB_REGS);
  pinMode(ledPin, OUTPUT);
  pinMode(3, INPUT);
 }


void loop()
{
       if(mbs.update(regs, MB_REGS))
                wdog = millis();
        if ((millis() - wdog) > 1500); 

   
 //   ANALOG INPUT
   regs[MB_40000] = analogRead(A0);   
 //   DIGITAL INPUT
   regs[MB_40006] = digitalRead(3);     
//   DIGITAL OUTPUT  
    digitalWrite(13, regs[MB_40016]);   
   
        
  }

  
3. Compile
4. tancapkan kabel data ke PC dan Arduino
5. Cek arduino di com brp???
6. setelah terdeteksi upload sket ke arduino
7.rangkai arduino sperti gambar di bawah ini
8. Cek hasil rakitan arduino dengan software Modscan / atau software untuk membaca protokol modbus

library cek disini

bila kurang jelas silahkan tinggalkan pesan atau contact ke 081555305255


12 comments:

  1. Wah tertarik juga pak dengan tutorialnya bapak, mampir juga yah pak ke website saya Jual Arduino

    ReplyDelete
  2. selalu merah pak... mungkin library yang bapak maksud berbeda dengan yg saya download.. bisa perjelas downloadnya dimana ?

    ReplyDelete
  3. saya librarynya cari d google pak.... cari aja modbus slave arduino

    ReplyDelete
  4. tolong di share dong link library nya.!!

    ReplyDelete
  5. untuk pembacaan seperti arus,teganga, frekuensi dll bagaimana ya caranya

    ReplyDelete
  6. library sudah saya share.. silahkan dibaca lagi...

    thanks sudah berkunjung


    untuk pembacaan arus dan tegangan menggunakan tranduser atau sensor

    ReplyDelete
  7. Mas Fuad....mantap deh.... alhamdulillah berhasil hehe

    ReplyDelete
  8. pak maaf mau nanya, saya kan diperintahkan untuk membuat konfigurasi untuk komunikasi RTU IP based dengan modem supaya terkoneksikan ke master station. yang harus saya lakukan apa saja ya pak ?

    ReplyDelete
  9. modem apa ini?
    IP RTU harux dpt langganan IP statis/fix

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. This comment has been removed by the author.

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete

simor for substation Gunung sari

monitoring beban dengan sensor arus non invasive #include <SPI.h> #include <Ethernet.h> #include "Mudbus.h" #...