Wednesday, May 22, 2019

Integrasi vamp40 to scada



Assalamu'alaikum

puaks kali ini akan share bagaimana cara integrasi vamp40 to scada
yang pertama harus setting komunikasinya
adapun kabel setting vamp40 yang digunakan adalah
1. kabel usb to serial
2. serial to serial (PC female DB9 -------- vamp40 male DB9)
susunan kabel serial to serial:
PC ---------------vamp40
2-------------------3
3-------------------2
5-------------------5
6-------------------4 jumper 6



trus kabel yang digunakan untuk ke modem atau RTU

tx pin 2
rx pin 3
gnd pin 7 
sesuai gambar di atas.
port ini sangat berbeda dengan yang lainnya.


sekian share cara integrasi scada vamp40


wassalam
SIMOR

Tuesday, May 21, 2019

robustel R3000-L3P rs485






mencoba manfaatkan terminal RS485 yang terdapat di modem robustel R3000-L3P pada port DB9.

Thursday, May 16, 2019

login dan logout windows pakai Id Card

Assalamu'alaikum

beberapa hari ini banyak posting tentang arduino + rfid + ektp buat login pc. tapi kali saya memanfaatkan idcard tempat saya bekerja untuk login dan logout windows.

langsung saja, kumpulkan material yang digunakan:
1. arduino pro micro
2. rfid RC522
3. id card yang ada chipnya. bisa pkai ektp atau emoney
4. kabel jumper
5. resistor 10k = 3 buah

wiring seperti dibawah ini:
sumber: https://create.arduino.cc/projecthub/kksjunior/windows-pc-lock-unlock-using-rfid-5021a6

masukin library:
library

source code:
sketch arduino


jangan lupa ganti id card







Monday, May 13, 2019

modbus tcp esp8266

#include <ESP8266WiFi.h>
#include <ModbusTCPSlave.h>
#include <Ticker.h>
#include "EmonLib.h"                   // Include Emon Library
EnergyMonitor emon1;                   // Create an instance


//Settings IP Nodemcu
byte ip[]      = { 192, 168, 43, 187};
byte gateway[] = { 192, 168, 43, 1 };
byte subnet[]  = { 255, 255, 255, 0 };

ModbusTCPSlave Mb;
Ticker Stop;

const int ledPin =  4; 
const int inputPin =  12; 
//const int analogInPin = A0;


void monitoring() {
 double Irms = emon1.calcIrms(1480);

///Digital Inputs
Mb.MBHoldingRegister[0]=digitalRead(inputPin);

///Digital Outputs
digitalWrite(ledPin,Mb.MBHoldingRegister[1] );

////Analog Input
Mb.MBHoldingRegister[2] = Irms *100;//scaling 0.01
 
  }

void setup()
{
 emon1.current(0, 65.1); 
 pinMode(ledPin, OUTPUT);
 pinMode(inputPin, INPUT);
 Serial.begin(115200);
 Mb.begin("puaks.blogspot.com", "puakpipop", ip, gateway, subnet);
 delay(100);

}

void loop()
{
 
  Mb.Run();
 Stop.attach_ms(25,monitoring);
 
}

Monday, April 22, 2019

scaling arus gangguan micom p127 untuk SCADA

berikut data scalling arus gangguan pada micom p127

  RUMUS ARUS GANGGUAN MICOM
ratio
ct 800/5 = scaling x 1
ct 600/5 = scaling x 0.75
ct 400/5 = scaling x 0.5
ct 200/5 = scaling x 0.25

inol
zct 400/5 = scale 0.012
zct 200/5 = scale 0.006
zct 100/5 = scale 0.003
ZCT 50/5  = scale 0.0015

Saturday, March 23, 2019

part 2: membuat arduino memiliki protokol modbus TCP


assalamualaikum,
sobat arduino

lanjut share lagi.


bagaimana membuat arduino yang bisa komunikasi dengan software scada ataupun software yang memiliki protocol modbus TCP.?

siapkan alat dan bahan:
alat:
1. laptop/pc
2. software arduino IDE
3. software modscan

bahan:
1. arduino uno
2. ethernet shield R3 (disini menggunakan yang R3 karena kalo konek ke router gak ruwet0
3. kabel ethernet straight
4. kabel data
5. library Modbus TCP

untuk set IP dan mac addres dilakukan di koding

langkah-langkah:
1. tancapkan arduino dengan ethernet shield
2. sambungkan kabel data dari arduino ke pc
3. sambungkan kabel ethernet dari ethernet shield ke laptop
4. upload koding dibawah ini:
#include <SPI.h>
#include <Ethernet.h>

#include "Mudbus.h"

Mudbus Mb;
//Function codes 1(read coils), 3(read registers), 5(write coil), 6(write register)
//signed int Mb.R[0 to 125] and bool Mb.C[0 to 128] MB_N_R MB_N_C
//Port 502 (defined in Mudbus.h) MB_PORT , kalo mau ganti port edit di library

void setup()
{
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };// jika membuat arduino banyak dalam 1 jaringan, mac addres silahkan di edit
  uint8_t ip[]      = { 192, 168, 1, 8 };// ip arduino jangan sama dengan Ip laptop/pc
  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(7, INPUT_PULLUP);
  pinMode(8, OUTPUT); 
}

void loop()
{
  Mb.Run();
  
  //Analog inputs 0-1023 = holding register addres mulai dari 40000-40002
  Mb.R[0] = analogRead(A0); //pin A0 to Mb.R[0]
  Mb.R[1] = analogRead(A1);
  Mb.R[2] = analogRead(A2);
  
  //Analog outputs 0-255 = holding register addres mulai dari 40006
  analogWrite(6, Mb.R[6]); //pin ~6 from Mb.R[6]

  //Digital inputs = coil status addres mulai dari 00007, kalo mau kontrol kasih ON
  Mb.C[7] = digitalRead(7); //pin 7 to Mb.C[7]

  //Digital outputs = coil status addres mulai dari 00008
  digitalWrite(8, Mb.C[8]); //pin 8 from Mb.C[8]
}

5. setelah selesai upload, cek koneksi dengan buka command promt, ketik: ping 192.168.1.8 (ip arduino di koding)

6. jalankan software modscan
connection -connect - connect using- remote tcp ip/server
masukkan ip arduino dan port standart modbus  502

7. cek sesuai addres IO

bila ada yang kurang jelas bisa kontak SIMOR 081555305255

selamat berkarya dengan arduino, semoga menjadi ladang rezeki.


salam,
SIMOR

Friday, March 22, 2019

apa itu Blynk? Modbus apa bisa di Blynk kan???


BLYNK adalah platform untuk aplikasi OS Mobile (iOS dan Android) yang bertujuan untuk kendali module Arduino, Raspberry Pi, ESP8266, WEMOS D1, dan module sejenisnya melalui Internet.
Aplikasi ini merupakan wadah kreatifitas untuk membuat antarmuka grafis untuk proyek yang akan diimplementasikan hanya dengan metode drag and drop widget.
Penggunaannya sangat mudah untuk mengatur semuanya dan dapat dikerjakan dalam waktu kurang dari 5 menit. Blynk tidak terikat pada papan atau module tertentu. Dari platform aplikasi inilah dapat mengontrol apapun dari jarak jauh, dimanapun kita berada dan waktu kapanpun. Dengan catatan terhubung dengan internet dengan koneksi yang stabil dan inilah yang dinamakan dengan sistem Internet of Things (IOT).

Bagaimana cara menggunakan BLYNK?

Pada kesempatan kali ini saya menggunakan platform dari aplikasi ANDROID, langkah-langkah awal penggunaannya yaitu :
  1. Download dan install aplikasi melalui “PlayStore
  2. Buka aplikasi, dan silahkan sign up new account atau login menggunakan “Facebook
  3. Buat new project, dan pilihlah salah satu module yang akan Anda gunakan maupun aksesoris module yang berfungsi sebagai sarana terhubung ke Internet.
  4. Setelah itu drag and drop rancangan proyek Anda
  5. Kemudian klik Blynk untuk mengirimkan Token Auth melalui email
  6. Dan terakhir cek inbox email Anda dan temukan Auth Token yang dimana ini akan digunakan untuk program yang di downloadkan ke module
Setelah pada smart phone selesai, beralih ke software ide arduino yang akan digunakan dalam memprogram serta mendownloadkan program ke module, langkah – langkahnya yaitu :
  1. Download file .zip rilis terbaru
  2. Unzip itu file tersebut yang didalam terdapat file library
  3. Peletakan Library pada OS
    1. Mac : (home directory)/Documents/Arduino/libraries
    2. PC (Windows) : My Documents -> Arduino -> libraries
    3. Linux : (home directory)/sketchbook/libraries


bagaimana koneksi blynk dengan peralatan yang mempunyai  protocol modbus??

SIMOR sudah mencoba dan mengimplementasikan. adapun yang sudah jadi korban SIMOR seperti :

  • power meter schneider PM2120, PM800
  • smart relay zelio
  • Plc LS  xbc dr32H
  • server scada survalent
  • dll





dengan Blynk ini sangat membantu sekali untuk membuat sistem monitoring peratalan-peralatan yang ada dilapangan dari jarak jauh. tanpa menggunakan ip publik. investasinya pun nggak mahal. server sudah pakai servercloud blynk, tinggal beli energy saja.

blynk adalah solusi untuk meng-IoT-kan yang cepat, praktis, dan efisien.



*sumber:https://www.nyebarilmu.com/mengenal-aplikasi-blynk-untuk-fungsi-iot/

Thursday, March 21, 2019

mengambil data Temperatur dan kelembapan DHT11 via Modbus dengan arduino yang cepat dan simple



lanjutan dari artikel sebelumnya tentang cara membuat arduino Modbus RTU kali ini saya akan berbagi lagi bagaimana mengambil data sensor tempetratur dan kelembapan dari sensor DHT11 via Modbus dengan arduino.

langsung aja
download library dibawah ini
DHT

masukan ke folder library

tulis sketch dibawah ini:

#include <ModbusRtu.h>
#define ID   1 //slave ID modbus RTU
#include "DHT.h"
#define DHTPIN 21  //pin 21 arduino mega
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);


Modbus slave(ID, 0, 0); // this is slave ID and RS-232 or USB-FTDI
// jumlah register addres modbus RTU
uint16_t au16data[11];
int8_t state = 0;

void setup() {
  io_setup(); // I/O settings
  dht.begin();
  // start communication
  slave.begin( 19200 );

}


void loop() {

   state = slave.poll( au16data, 11 );
   io_poll();

}


void io_setup() {
  // define i/o

}

/**
 *  Link between the Arduino pins and the Modbus array
 */
void io_poll() {

  //read DHT11
   float h = dht.readHumidity();
   float t = dht.readTemperature();

  au16data[0] = h;
  au16data[1] = t;


  // diagnose communication
  au16data[8] = slave.getInCnt();
  au16data[9] = slave.getOutCnt();
  au16data[10] = slave.getErrCnt();
}

rakit hardware seperti gambar dibawah:



upload ke arduino


jalankan modscan

cek via modscan

addres 1 dan 2 itu adalah datanya
1 itu kelembapan
2 itu temperature


selamat berkarya dengan Modbus.


bila ada yang kurang jelas bisa hubungi via WA SIMOR (081555305255)

Tuesday, March 5, 2019

membuat arduino memiliki protocol modbus RTU yang simpel, praktis dan efisien




assalamu'alaikum
Modbuser


sudah lama gak update artikel, puaks akan mencoba meluangkan waktu sebentar untuk menuliskan tentang cara membuat arduino memiliki protocol modbus RTU yang simpel, praktis dan efisien.
hanya butuh waktu 1menit.

adapun yang dibutuhkan :
1. board arduino uno (terserah mau pakai arduino apa)
2. kabel data
3. pc/laptop (kalo gak punya pinjam di warnet terdekat)

software:

library modbus

langsung aja kita menuju tahap 
1. colokin kabel data to arduino dan PC
2. masukkan library C:\Program Files (x86)\Arduino\libraries
3. run software arduino IDE
4. ketik sketch dibwah ini:
#include <ModbusRtu.h>
#define ID   1 //slave ID modbus RTU

Modbus slave(ID, 0, 0); // this is slave ID and RS-232 or USB-FTDI
// jumlah register addres modbus RTU
uint16_t au16data[9];
int8_t state = 0;

void setup() {
  io_setup(); // I/O settings

  // start communication
  slave.begin( 19200 );
 
}


void loop() {
  
   state = slave.poll( au16data, 9 );

 
    io_poll();

/**
 * pin maping:
 * 2 - digital input
 * 3 - digital input
 * 4 - digital input
 * 5 - digital input
 * 6 - digital output
 * 7 - digital output
 * 8 - digital output
 * 9 - digital output
 * 10 - analog output
 * 11 - analog output
 * 14 - analog input
 * 15 - analog input
 *
 * pin 13 is reserved to show a successful query
 */
void io_setup() {
  // define i/o
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  digitalWrite(6, LOW );
  digitalWrite(7, LOW );
  digitalWrite(8, LOW );
  digitalWrite(9, LOW );
  analogWrite(10, 0 );
  analogWrite(11, 0 );
}

/**
 *  Link between the Arduino pins and the Modbus array
 */
void io_poll() {
  // get digital inputs -> au16data[0]
  bitWrite( au16data[0], 0, digitalRead( 2 ));
  bitWrite( au16data[0], 1, digitalRead( 3 ));
  bitWrite( au16data[0], 2, digitalRead( 4 ));
  bitWrite( au16data[0], 3, digitalRead( 5 ));

  // set digital outputs -> au16data[1]
  digitalWrite( 6, bitRead( au16data[1], 0 ));
  digitalWrite( 7, bitRead( au16data[1], 1 ));
  digitalWrite( 8, bitRead( au16data[1], 2 ));
  digitalWrite( 9, bitRead( au16data[1], 3 ));

  // set analog outputs
  analogWrite( 10, au16data[2] );
  analogWrite( 11, au16data[3] );

  // read analog inputs
  au16data[4] = analogRead( 0 );
  au16data[5] = analogRead( 1 );

  // diagnose communication
  au16data[6] = slave.getInCnt();
  au16data[7] = slave.getOutCnt();
  au16data[8] = slave.getErrCnt();
}

5. run software modscan: untuk mengecek apakah arduino sudah ada protocol modbusnya

dikoding tadi addresnya dibikin 9. maka di modscan untuk lenghtnya gak boleh lebih dari 9.
dan juga perhatikan modbus point type; itu ikut holding register. jika lenghtnya di isi 10 apa yang terjadi?



device ID juga samakan dengan koding, isi angka 1. jika di isi angka 2 apa yang terjadi???




experiment ini di sponsori oleh SIMOR sebagai medianya:



selamat berinovasi dengan modbus.

wassalam


fuad hasan
(SIMOR)

Tuesday, January 29, 2019

cara membuat tampilan RTC di aplikasi Blynk tanpa hardware tambahan


assalamualaikum,

morning sobat, pagi ini saya akan share cara membuat tampilan waktu di blynk tanpa tambahan komponen di hardware. cukup syncron dengan server blynk.

langsung aja.
1. buka example -  blynk - widget - rtc
/*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest

  Blynk is a platform with iOS and Android apps to control
  Arduino, Raspberry Pi and the likes over the Internet.
  You can easily build graphic interfaces for all your
  projects by simply dragging and dropping widgets.

    Downloads, docs, tutorials: http://www.blynk.cc
    Sketch generator:           http://examples.blynk.cc
    Blynk community:            http://community.blynk.cc
    Follow us:                  http://www.fb.com/blynkapp
                                http://twitter.com/blynk_app

  Blynk library is licensed under MIT license
  This example code is in public domain.

 *************************************************************

  Blynk can provide your device with time data, like an RTC.
  Please note that the accuracy of this method is up to several seconds.

  App project setup:
    RTC widget (no pin required)
    Value Display widget on V1
    Value Display widget on V2

  WARNING :
  For this example you'll need Time keeping library:
    https://github.com/PaulStoffregen/Time

  This code is based on an example from the Time library:
    https://github.com/PaulStoffregen/Time/blob/master/examples/TimeSerial/TimeSerial.ino
 *************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <TimeLib.h>
#include <WidgetRTC.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";

BlynkTimer timer;

WidgetRTC rtc;

// Digital clock display of the time
void clockDisplay()
{
  // You can call hour(), minute(), ... at any time
  // Please see Time library examples for details

  String currentTime = String(hour()) + ":" + minute() + ":" + second();
  String currentDate = String(day()) + " " + month() + " " + year();
  Serial.print("Current time: ");
  Serial.print(currentTime);
  Serial.print(" ");
  Serial.print(currentDate);
  Serial.println();

  // Send time to the App
  Blynk.virtualWrite(V1, currentTime);
  // Send date to the App
  Blynk.virtualWrite(V2, currentDate);
}

BLYNK_CONNECTED() {
  // Synchronize time on connection
  rtc.begin();
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth);

  // Other Time library functions can be used, like:
  //   timeStatus(), setSyncInterval(interval)...
  // Read more: http://www.pjrc.com/teensy/td_libs_Time.html

  setSyncInterval(10 * 60); // Sync interval in seconds (10 minutes)

  // Display digital clock every 10 seconds
  timer.setInterval(10000L, clockDisplay);
}

void loop()
{
  Blynk.run();
  timer.run();
}


2. upload to arduino
3. buka aplikasi blynk di smartphone
4. open project
5. add widget rtc


6. add widget value 2x, set V1 sebagai time dan V2 sebagai date
7. setting widget
8. play your project blynk



wassalam

SIMOR

Thursday, January 24, 2019

SIMOR 2 PROTOCOL


SIMOR dapat mengeluarkan 2 protocol , yaitu:
1. protocol modbus tcp
2. protocol mqtt

2 protocol ini jalan bersamaan. jadi bisa monitoring dari HMI scada dan smartphone.

Integrasi vamp40 to scada

Assalamu'alaikum puaks kali ini akan share bagaimana cara integrasi vamp40 to scada yang pertama harus setting komunikasiny...