Jumat, 26 Juni 2015

Membuat Modul Dummy SCADA dengan HMI di Handphone Android

        Waktu yang kosong dikala kerja sangat membosankan, jika tidak digunakan oprek sesuatu yang berguna. apalagi bulan puasa gini, bawaannya pengen bobo aja................. zzzZZ
Di lapangan saya membutuhkan alat dummy scada yang mana bisa dikontrol atau monitoring via android ASUS Z5 (promosi... wkwkkwk).

        Kali ini akan saya jabarkan oprek arduino yang mau saya gunakan di lapangan. Saya membuat alat yang bisa digunakan :
1. untuk dummy SCADA, seperti monitoring kontrol dari master station, injek status ke master station.
2. untuk monitoring tegangan baterai rectifier saat pengujian ketahanan baterai.
3. untuk supply tegangan 110VDC

       Alat saya ini mempunyai fitur :
1. wifi (kenapa memilih ini??? karena jangkauannya bisa jauh. berbeda dengan bluetooth)
2. portable (bisa dibawa kemana-mana), kecuali supply tegangan 110 harus dicolokin ke 220VAC
3. ringan sekitar 2 ton kurang...... alias cuma + 2kg.
4. indikator tegangan baterai

       Material yang perlu disediakan, antara lain:
1. Arduino Mega
2. Ethernet Shield
3. Wifi Router TPlink
4. Switching 12V 2A
5. Baterai 12V 2A
6. Modul DI AI DO
7. Step down 12V to 5V
8. box 300 x 300

Langkah-langkah:
1. pasang arduino, ethernet shield, modul DI DO AI, switching, wifi router, step down



2. upload sket to arduino
#include <SPI.h>
#include <Ethernet.h>



void setup()
{
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 1, 88 };
  uint8_t gateway[] = { 192, 168, 1, 1 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);
  //Avoid pins 4,10,11,12,13 when using ethernet shield

  delay(5000);
  Serial.begin(9600);
 
  pinMode(22, INPUT);
  pinMode(24, INPUT);
  pinMode(26, INPUT);
  pinMode(28, INPUT);
  pinMode(30, INPUT);
  pinMode(32, INPUT);
  pinMode(34, INPUT);
  pinMode(36, INPUT);
  pinMode(38, INPUT);
  pinMode(40, INPUT);
  pinMode(42, INPUT);
  pinMode(44, INPUT);
  pinMode(46, INPUT);
  pinMode(48, INPUT);
  pinMode(50, INPUT);
 
  pinMode(23, OUTPUT);
  pinMode(25, OUTPUT);
  pinMode(27, OUTPUT);
  pinMode(29, OUTPUT);
  pinMode(31, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(35, OUTPUT);
  pinMode(37, OUTPUT);
  pinMode(39, OUTPUT);
  pinMode(41, OUTPUT);
  pinMode(43, OUTPUT);
  pinMode(45, OUTPUT);
  pinMode(47, OUTPUT);
  pinMode(49, OUTPUT);
  pinMode(51, OUTPUT);
 
 
}

void loop()
{
  Mb.Run();
 
  //Analog inputs 0-1023
  Mb.R[0] = (analogRead(A0)*1.0); //pin A0 to Mb.R[0]
  Mb.R[1] = analogRead(A1);
  Mb.R[2] = analogRead(A2);
  Mb.R[3] = analogRead(A3);
  Mb.R[4] = analogRead(A4);
  Mb.R[5] = analogRead(A5);
  Mb.R[6] = analogRead(A6);
  Mb.R[7] = analogRead(A7);
  Mb.R[8] = analogRead(A8);
  Mb.R[9] = analogRead(A9);
  Mb.R[10] = analogRead(A10);
  Mb.R[11] = analogRead(A11);
  Mb.R[12] = analogRead(A12);
  Mb.R[13] = analogRead(A13);
  Mb.R[14] = analogRead(A14);

  //Analog outputs 0-255
 // analogWrite(6, Mb.R[6]); //pin ~6 from Mb.R[6]

  //Digital inputs
  Mb.C[0] = digitalRead(22); //pin 7 to Mb.C[7]
  Mb.C[1] = digitalRead(24); //pin 7 to Mb.C[7]
  Mb.C[2] = digitalRead(26); //pin 7 to Mb.C[7]
  Mb.C[3] = digitalRead(28); //pin 7 to Mb.C[7]
  Mb.C[4] = digitalRead(30); //pin 7 to Mb.C[7]
  Mb.C[5] = digitalRead(32); //pin 7 to Mb.C[7]
  Mb.C[6] = digitalRead(34); //pin 7 to Mb.C[7]
  Mb.C[7] = digitalRead(36); //pin 7 to Mb.C[7]
  Mb.C[8] = digitalRead(38); //pin 7 to Mb.C[7]
  Mb.C[9] = digitalRead(40); //pin 7 to Mb.C[7]
  Mb.C[10] = digitalRead(42); //pin 7 to Mb.C[7]
  Mb.C[11] = digitalRead(44); //pin 7 to Mb.C[7]
  Mb.C[12] = digitalRead(46); //pin 7 to Mb.C[7]
  Mb.C[13] = digitalRead(48); //pin 7 to Mb.C[7]
  Mb.C[14] = digitalRead(50); //pin 7 to Mb.C[7]

  //Digital outputs
  digitalWrite(23, Mb.C[20]); //pin 8 from Mb.C[8]
  digitalWrite(25, Mb.C[21]); //pin 8 from Mb.C[8]
  digitalWrite(27, Mb.C[22]); //pin 8 from Mb.C[8]
  digitalWrite(29, Mb.C[23]); //pin 8 from Mb.C[8]
  digitalWrite(31, Mb.C[24]); //pin 8 from Mb.C[8]
  digitalWrite(33, Mb.C[25]); //pin 8 from Mb.C[8]
  digitalWrite(35, Mb.C[26]); //pin 8 from Mb.C[8]
  digitalWrite(37, Mb.C[27]); //pin 8 from Mb.C[8]
  digitalWrite(39, Mb.C[28]); //pin 8 from Mb.C[8]
  digitalWrite(41, Mb.C[29]); //pin 8 from Mb.C[8]
  digitalWrite(43, Mb.C[30]); //pin 8 from Mb.C[8]
  digitalWrite(45, Mb.C[31]); //pin 8 from Mb.C[8]
  digitalWrite(47, Mb.C[32]); //pin 8 from Mb.C[8]
  digitalWrite(49, Mb.C[33]); //pin 8 from Mb.C[8]
  digitalWrite(51, Mb.C[34]); //pin 8 from Mb.C[8]
 
}


3. Masukkan kedalam box





4. Wiring semua komponen material



5. Jadilah alat uji portable



alat ini kami uji dengan relay Micom P127 dan ION 6200

 

Pengujian baterai ( maaf tadi saat pengujian lupa di screenshoot, insyaalloh nanti jika ada waktu luang akan saya upload lagi)


tampilan HMI alat dummy


 aplikasi android yang digunakan untuk HMI ini namanya MORENO. diplaystore belum ada. karena belum dipasarkan secara bebas.

alat ini bisa diaplikasikan, antara lain:
1. Home automation
2. kontrol pintu gerbang via HP.
3. start engine mobil dari jarak jauh.
4. dll...................masih banyakkkkkkkk





Sabtu, 24 Mei 2014

update rtu arduino protokol modbus

RTU ARDUINO DENGAN PROTOKOL MODBUS RTU


rtu ini bisa diaplikasikan sebagai monitoring dan kontrol dari HMI SCADA
analog input sebagai monitoring dari berbagai sensor seperti sensor arus, tegangan, LM35


Senin, 24 Maret 2014

Software Mini Scada with VB.net

mencoba mengembangkan software Modbus TCP dengan VB.net dari blog pak hadi.... hadiscada.blogspot.com
menjadi sebuah HMI mini scada, yang realtime......
monitoring pengukuran, status, dan pengendalian jarak jauh

berikut contoh tampilannya:



software di atas saya simulasikan dengan RTU ARADUINO protokol Modbus TCP yang mempunyai 3 Digital output, 4 Digital Input, dan 6 Analog Input


Selasa, 18 Maret 2014

KALIBRASI TRANDUSER SIEMENS 7KG6000-8AA/MM

kali ini saya akan share cara merubah output tranduser siemens seperti pada gambar di atas,Tranduser ini diubah dari tegangan menjadi menjadi arus.  
Langkah-langkah:
1. Ubah 6 jumperan yang warna abu-abu seperti gambar dibawah dari pin 2,3 jadi 1,2 atau di arahkan ke atas


pasang kabel data ke tranduser dan tancapkan k PC
pasang power tranduser 48VDC


 jalankan program simeas
cek port comm
ubah settingan dari tegangan 0-5V ke arus 4-20mA





setelah sukses di upload settingan k tranduser, maka arus output tranduser akan terukur 4mA


Uji komunikasi RTU TCP with Modscan32

sebelum melakukan pengujian,
siapkan dulu alat dan bahannya,
alat:
  1. RTU TCP arduino 
  2. kabel RJ45 straigh 
  3. adaptor 12V 
bahan:
software Modscan32

Langkah-langkah:
1. Tancapkan kabel RJ45 ke RTU dan PC
2. Setting IP PC, misalkan IP RTU 192.168.1.87, maka IP PC 192.168.1.2 atau lainnya selain 87 untuk angka belakangnya
3. Run aplikasi ModScan32


4. Pilih Connection -> Connect

5. Isikan IP RTU, kemudian OK
6.Gambar dibawah ini mengindikasikan RTU sudah koneksi dengan PC dan sudah polling


7. Isikan addres dan pilih MODBUS Point Type sesuai dengan addres yang disetting di RTU


klik modscan32 untuk ke tahap selanjutnya

Senin, 17 Maret 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



klik RS485 untuk melanjutkan ke tahap berikutnya

Sabtu, 08 Februari 2014

Membuat SCADA MINI

membuat scada membutuhkan biaya besar, Bagaimana agar biayanya kecil???
buat SCADA mini....

apa yang bisa dilakukan dari scada???
1. Telecontrol
yaitu kita bisa melakukan control suatu peralatan dari pc/laptop dari jarak jauh.... misal kita kontrol ON/OFF lampu di rumah dari kantor (tergantung komunikasi)
2. Telestatus/telesignal
yaitu kita bisa mengetahui kondisi suatu peralatan, apakah posisi OFF atau ON dari jarak jauh...
3.Telemetering
yaitu kita bisa mengukur metering suatu peralatan dari jarah jauh.. contoh pengukuran tegangan, arus, dan lain lain

komponen membuat scada mini, antara lain:
  1. PC / Laptop
  2. Software HMI
  3. komunikasi (kabel LAN, wifi)
  4. RTU
  5. alat yang dimonitoring/dicontrol

biasanya yang mahal di sisi software HMI (Human Machine Interface), cari yang versi trial. atau Free agar tidak mengeluarkan sepeser pun...
contoh: software Winlog Lite  (klik saja untuk downloadnya)

untuk komunikasi bisa menggunakan kabel LAN dengan biaya 10rb an (laptop to rtu)... atau biar keren sedikit menggunakan wifi router (laptop koneksi ke wifi, rtu ke wifi router menggunakan kabel LAN) biaya lumayan mahal ... beli wifi routernya sekitar 250rb an

RTU bisa membuat sendiri, menggunakan RTU arduino

untuk konfigurasi: 

cara blok value di Node red

 ambil node filter dan edit seperti di bawah ini