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:
- ION6200
- Micom P127
- ADAM 4055
- 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:
- Arduino Uno
- Kabel data Arduino
- IC MAX485
- konverter RS232 to RS485 (ujicoba ke PC)
Material Software:
- Software Arduino versi 0023
- 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
klik RS485 untuk melanjutkan ke tahap berikutnya