Sabtu, 01 Desember 2018

report blynk with simor


ternyata blynk mempunyai fitur report dari hasil pembacaan yg realtime.
durasinya 1 menit.

INGIN menulis tapi gk tahu apa yang ditulis

kmarin saya oprek zelio konek to simor

sebelum konek to simor saya test pakai modscan, datanya gk mau kluar, message timeout.


saya coba modbus tester, akhirnya bisa reply data kluar.



coba kontrol, ambil data analog.. juga normal tanpa kendala

harus bikin logic dulu d FBD kalo modbus zelio itu




Selasa, 13 November 2018

membuat modbus serial/RTU RS485 yang sangat mudah dan simple



berikut langsung saja saya share koding modbus serial/RTU RS485, semoga bermanfaat.
 koding ini mohon tidak diperjual belikan.


/*
Author : Fuad Hasan (CEO SIMOR)
website : puaks.blogspot.com
*/


#include <ModbusRtu.h>
#define ID  1 //slave ID
#define TXEN  2 //pin tx enable RS485
#define PS 0 //port serial 0,1,2,3 (1-3 for mega 2560, uno 0 only)
Modbus slave(ID, PS, TXEN);
uint16_t au16data[9]; // jumlah address yang dibuat

/**
 saat uji protocol via modscan setting
 baudrate 9600
 parity none
 slave ID 1
 lengt 9
 address 1
 Holding register
 */
void setup() {
  io_setup(); // I/O settings
  slave.begin( 9600 ); // baudrate

}

void loop() {
  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
 * 13 - digital output
 * 10 - analog output PWM 0-255
 * 11 - analog output PWM 0-255


 */
void io_setup() {
  // define i/o
  //DIGITAL INPUT
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  //DIGITAL OUTPUT
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(13, OUTPUT);


  digitalWrite(7, LOW );
  digitalWrite(8, LOW );
  digitalWrite(9, LOW );
  digitalWrite(13, LOW );
 
  //ANALOG OUTPUT
  analogWrite(10, 0 );
  analogWrite(11, 0 );
}

/**
 *  Link between the Arduino pins and the Modbus array
 */
void io_poll() {
  // get digital inputs -> au16data[0] HOLDING REGISTER 40001 di modscan, display options BINARY
  bitWrite( au16data[0], 0, digitalRead( 3 ));
  bitWrite( au16data[0], 1, digitalRead( 4 ));
  bitWrite( au16data[0], 2, digitalRead( 5 ));
  bitWrite( au16data[0], 3, digitalRead( 6 ));

  // set digital outputs -> au16data[1] HOLDING REGISTER 40002 di modscan, display options BINARY
  digitalWrite( 7, bitRead( au16data[1], 0 ));
  digitalWrite( 8, bitRead( au16data[1], 1 ));
  digitalWrite( 9, bitRead( au16data[1], 2 ));
  digitalWrite( 13, bitRead( au16data[1], 3 ));
 
  // set analog outputs, HOLDING REGISTER 40003 dan 40004 di modscan, display options unsign desimal
  analogWrite( 10, au16data[2] );
  analogWrite( 11, au16data[3] );

  // read analog inputs, HOLDING REGISTER 40005 dan 40006 di modscan, display options unsign desimal
  au16data[4] = analogRead( 0 );
  au16data[5] = analogRead( 1 );

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



library bisa download dibawah ini:
modbus

IOT blynk PM2120 Schneider


Assalamu'alaikum

hari ini saya akan share tentang cara membuat monitoring online berbasis Internet Of Things, riset kali ini saya menggunakan power meter merk schneider PM2120 dapat pinjaman dari warga Bontang yang mempunyai pabrik pupuk kaltim. sebut saja Mr. W.

oprek ini berawal dari ide ketika gimana caranya membangun sistem monitoring tanpa memikirkan server master. akhirnya ketemu aplikasi Blynk yang bisa di download di play store. aplikasi ini Free tetapi hanya menyediakan cuma sedikit energy, kamu juga bisa nambah energy tersebut dengan membeli via playstore pakai pulsa atau kartu kredit.


langsung saja apa saja yang dibutuhkan:
1. arduino mega/uno ( yang dipakai riset kali ini mega , mumpung musim kampanye sapa tahu dapat komisi dari partai)
2. kabel LAN
3. Ethernet shield
4. Kabel data buat upload arduino IDE
5. Shield RS485 kalo gak ada pakai TTL to RS485  (cara penyambungan bisa d lihat di artikel saya sebelumnya)
6. PM2120 (boleh pinjam tetangga sebelah atau pak lurah terdekat)

langkah -langkah:
1. upload koding dibawah ini (koding dibawah hanya contoh pengambilan data tegangan):
{

  float VNR;
  unsigned long VNR1 = (unsigned long) regs[8]<<16| regs[9];
  VNR=*(float*)& VNR1;


  Blynk.virtualWrite(V0, VNR);
 }



koding riset ini hasil perkawinan example simplemodbusmaster dengan example blynk yang ethernet

2. sambungkan shield rs485 dengan PM2120,
3. pasang ethernet shield, dan shield RS485 di arduino mega.
4. sambungkan kabel lan to laptop (posisi laptop konek dengan wifi, share koneksi wifi di port LAN)




selamat berkreasi. apabila ada yang kurang jelas bisa bertanya pada grup modbus arduino atau WA saya (081555305255)



Wassalam
CEO SIMOR

Selasa, 30 Oktober 2018

cara mengambil data Arus micom p127 di arduino

share tentang cara mapping relay proteksi micom di arduino.

yang saya ambil contoh kali ini mengambil data arus R, S dan T.
 berikut contoh datasheet dari micom p127


disitu tertulis 30-31 di phasa A itu merupakan bilangan hexa, dirubah dahulu ke bilangan desimal = 48-49.

jadi :
phasa A 48-49
phasa B 50 -51
phasa C 52-53

lakukan polling di arduino :
modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 48, 6, 0);//


artinya di atas adalah arduino memanggil slave ID 1, function HOLDING REGISTER, start addres 48 , lenghtnya 6, start mapping di void loop arduino dimulai dari regs 0


sekian share kali ini semoga bermanfaat.


jangan lupa meninggalkan comment

bila ada yang kurang jelas silahkan menghubungi 081555305255


Rabu, 10 Oktober 2018

membuat line follower menggunakan nodemcu



langsung aja saya share dari hasil riset pertama kali membuat line follower yang mudah tanpa ribet.

awal mula riset membikin itu berawal dari saya membeli komponen shield motor nodemcu dan board nodemcu amica. kemudian saya belikan 2 buah roda + gearbox. lalu saya bikin kontrol via blynk sudah sukses,
'lanjjut kontrol via aplikasi hp sudah sukses....

akhirnya penasaran membuat line follower. kemudian saya membeli sensor line follower (sensor infrared).

berikut codingnya:

static const uint8_t pwm_A = 5 ;
static const uint8_t pwm_B = 4;
static const uint8_t dir_A = 0;
static const uint8_t dir_B = 2;
int motor_speed = 550;
int durasi = 10;

void setup() {
  // put your setup code here, to run once:
 pinMode(pwm_A, OUTPUT); // PMW A
 pinMode(pwm_B, OUTPUT); // PMW B
 pinMode(dir_A, OUTPUT); // DIR A
 pinMode(dir_B, OUTPUT); // DIR B
 pinMode (14, INPUT);
 pinMode (12, INPUT);
}

void loop() {
   
 int lsensor = digitalRead(14);
 int rsensor = digitalRead(12);

//MAJU
 if((lsensor == LOW)&&(rsensor == LOW)){
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, LOW);
  digitalWrite(dir_B, LOW);
 }
 //BELOK KANAN
 else if((lsensor == LOW)&&(rsensor == HIGH)){
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, HIGH);
  digitalWrite(dir_B, LOW);
  delay(durasi);
 }
 //BELOK KIRI
 else if((lsensor == HIGH)&&(rsensor == LOW)){
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, LOW);
  digitalWrite(dir_B, HIGH);
  delay(durasi);
 }
 //STOP
 else if((lsensor == HIGH)&&(rsensor == HIGH)){
   analogWrite(pwm_A, 0);
   analogWrite(pwm_B, 0);
 }
}




Selasa, 25 September 2018

membuat mobil remote kontrol dari handphone via wifi

langsung saja, kali ini saya akan share artikel cara membuat mobil remote kontrolvia wifi dengan hp android

pertama siapkan dahulu materialnya:
  • mobil" an anak yang gk kepakai
  • nodemcu
  • shield motor nodemcu
  • powerbank
  • motor gearbox + roda


aplikasi: wifi rc car esp8266


langkah pertama:
1. upload sketch ke nodemcu:


#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char *ssid = "mobil thomas"; // SSID Name
const char *password = "12345678"; // SSID Password : Between 8 and 32 carateres

IPAddress ip(192, 168, 4, 1); // IP Address
IPAddress netmask(255, 255, 255, 0); // Netmask
const int port = 80; // Port
ESP8266WebServer server(port);

// Motors pins
static const uint8_t pwm_A = 5 ;
static const uint8_t pwm_B = 4;
static const uint8_t dir_A = 0;
static const uint8_t dir_B = 2;
static const uint8_t LAMPU = 13;

// Motor speed = [0-1024]
int motor_speed = 1024;


void stop_motors() {
  analogWrite(pwm_A, 0);
  analogWrite(pwm_B, 0);
}

void backward() {
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, LOW);
  digitalWrite(dir_B, HIGH);
}

void forward() {
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, HIGH);
  digitalWrite(dir_B, LOW);
}

void turn_left() {
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, HIGH);
  digitalWrite(dir_B, HIGH);
}

void turn_right() {
  analogWrite(pwm_A, motor_speed);
  analogWrite(pwm_B, motor_speed);
  digitalWrite(dir_A, LOW);
  digitalWrite(dir_B, LOW);
}

void handleRoot() {
  if (server.hasArg("State")) {
    String command = server.arg("State");
    if (command.equals("F")) {
      forward();
      server.send(200, "text / plain", "Forward");
    }
    else  if (command.equals("B")) {
      backward();
      server.send(200, "text / plain", "Backward");
    }
    else  if (command.equals("L")) {
      turn_left();
      server.send(200, "text / plain", "Turn Left");
    }
    else  if (command.equals("R")) {
      turn_right();
      server.send(200, "text / plain", "Turn Right");
    }
    else  if (command.equals("S")) {
      stop_motors();
      server.send(200, "text / plain", "Stop");
    }
     else  if (command.equals("ON")) {
      digitalWrite(LAMPU, HIGH);
      server.send(200, "text / plain", "Switch on the light");
    }
      else  if (command.equals("OFF")) {
      digitalWrite(LAMPU, LOW);
      server.send(200, "text / plain", "Switch off the light");
    }
  }
}


void setup() {
  WiFi.mode(WIFI_AP); //Only Access point
  WiFi.softAPConfig(ip, ip, netmask);
  WiFi.softAP(ssid, password);

  // Declaration of motors
  pinMode(pwm_A, OUTPUT); // PMW A
  pinMode(pwm_B, OUTPUT); // PMW B
  pinMode(dir_A, OUTPUT); // DIR A
  pinMode(dir_B, OUTPUT); // DIR B
  pinMode(LAMPU, OUTPUT); // LAMPU

  // Start Server
  server.on("/", HTTP_GET, handleRoot);
  server.begin();






 }

void loop() {
  server.handleClient();
}




setelah selesai upload

2. rangkai motor ke shield motor dan tancapkan nodemcu ke shield motor

3. tancapkan kabel powerbank ke nodemcu

4. jalan kan aplikasi

5. konek wifi HP ke wifi nodemcu

readyyyy GOOOOOOOOOOOOOOOOO


Rabu, 12 September 2018

upgrade car thomas from pull back to IOT

oprek kali ini tentang sebuah mobil pull back atau bahasa jowonya TARIK MUNDUR.
ada mainan anak saya yang sudah rusak.
saya mencoba untuk meng upgrade menjadi mobil yang KECE dan KEKINIAN bisa dikendalikan dari manapun berada.

langsung aja bahan yang dibutuhkan antara lain:
  • nodemcu
  • motor + roda
  • shield motor
  • powerbank
  • kabel 

software :
  • arduino IDE
  • blynk (instal di handphone)
rangkai seperti gambar dibawah ini:



desain HMI di aplikasi blink :



upload sketch dibawah ini:
#define BLYNK_PRINT Serial
#include  <ESP8266WiFi.h>
#include  <BlynkSimpleEsp8266.h>

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

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "yourwifi";
char pass[] = "yourpassswordwifi";

int PWMA=5;//Right side
int PWMB=4;//Left side
int DA=0;//Right reverse
int DB=2;//Left reverse

void setup(){
 // Debug console
 Serial.begin(9600);
 Blynk.begin(auth, ssid, pass);
 pinMode(PWMA, OUTPUT);
 pinMode(PWMB, OUTPUT);
 pinMode(DA, OUTPUT);
 pinMode(DB, OUTPUT);
}

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

// Handling Joystick data
BLYNK_WRITE(V1){
int x = param[0].asInt();
int y = param[1].asInt(); 
if(x==-1 && y==0){        //Left Turn
     digitalWrite(PWMA, 450);
     digitalWrite(DA, HIGH);
   
     digitalWrite(PWMB, 450);
     digitalWrite(DB, LOW);
}else if(x==0 && y==-1){        //Backward    
     digitalWrite(PWMA, HIGH);
     digitalWrite(DA, HIGH);
    
     digitalWrite(PWMB, HIGH);
     digitalWrite(DB, HIGH);
}else if(x==0 && y==0){        //Stay
     digitalWrite(PWMA, LOW);
     digitalWrite(DA, LOW);
    
     digitalWrite(PWMB, LOW);
     digitalWrite(DB, LOW);
}else if(x==0 && y==1){        //Forward
     digitalWrite(PWMA, HIGH);
     digitalWrite(DA, LOW);
   
     digitalWrite(PWMB, HIGH);
     digitalWrite(DB, LOW);
}else if(x==1 && y==0){        //Right turn
     digitalWrite(PWMA, 450);
     digitalWrite(DA, LOW);
    
     digitalWrite(PWMB, 450);
     digitalWrite(DB, HIGH);
}
}

Jumat, 31 Agustus 2018

Wiring simor wemos


mySCADA for android (mymobile) with wemos d1 mini



cara menggunakan MySCADA versi android:
instal aplikasi myscada di Hp  (download di playstore)
instal software myDesigner
 run mydesaigner -> new project-> buat HMI -> project -> project -> download to device
run myscada di HP -> klik pojok atas -> pilihproject -> klik add


saat download project dari pc to hp posisi layar hp seperti di bawah ini




bila belum jelas bisa kontak : 081555305255

Rabu, 29 Agustus 2018

SIMOR WEMOS kontrol lampu

alat yang dibutuhkan:
  • wemos d1 mini
  • modul relay
  • supply 220 to 5v
  • switch hotel
library yang dibutuhkan:
modbusTCPslave

taruh library di folder libraries

sketch:

#include <ESP8266WiFi.h>
#include <ModbusTCPSlave.h>
#include <Ticker.h>

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

ModbusTCPSlave Mb;
Ticker Stop;


const int ledPin =  5; //D1



void monitoring() {


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


  }

void setup()
{
 pinMode(ledPin, OUTPUT);

 digitalWrite(ledPin, LOW);
 Serial.begin(115200);
 Mb.begin("SIMOR", "SIMOR2017", ip, gateway, subnet);
 delay(100);

}

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

setelah sukses upload,

instal aplikasi iPLC d hp android anda.


masukkan ip wemos tadi
masukkan addres kontrol (2) holding register, bit 0


Selasa, 07 Agustus 2018

simor for substation Gunung sari






monitoring beban dengan sensor arus non invasive

#include <SPI.h>
#include <Ethernet.h>

#include "Mudbus.h"

#include "EmonLib.h"                   // Include Emon Library
EnergyMonitor emon1;                   // Create an instance
EnergyMonitor emon2;
EnergyMonitor emon3;


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

void setup()
{
  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 0, 10 };
  uint8_t gateway[] = { 192, 168, 0, 254 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);
  //Avoid pins 4,10,11,12,13 when using ethernet shield
  emon1.current(0, 70);            
  emon2.current(1, 68);
  emon3.current(2, 68);
  delay(3000);
  Serial.begin(9600);
 
}

void loop()
{
  Mb.Run();
  double IrmsR = emon1.calcIrms(1480);  // Calculate Irms only
  double IrmsS = emon2.calcIrms(1480);
  double IrmsT = emon3.calcIrms(1480);
  int IR;
  int IRt;
  IR = IrmsR *80;
  if(IR<18){
    IRt = IR * 0;
  }
  else {
    IRt = IR * 1;
  }
 
  int IS;
  int ISt;
  IS = IrmsS *80;
   if(IS<18){
    ISt = IS * 0;
  }
  else {
    ISt = IS * 1;
  }
 
  int IT;
  int ITt;
  IT = IrmsT *80;
 
  if(IT<18){
    ITt = IT * 0;
  }
  else {
    ITt = IT * 1;
  }

  Mb.R[0] = IRt;
  Mb.R[1] = ISt;
  Mb.R[2] = ITt;
  Mb.R[3] = 87;
  Mb.R[4] = 7818;
 


}


Jumat, 03 Agustus 2018

membuat nodemcu sebagai AP

share artikel kali ini tentang koneksi modbus nodemcu, kondisi sebelumnya nodemcu modbus hanya sebagai slave aja koneksinya.
kali ini nodemcunya sebagai Acces point,

jadi ketika ingin koneksi dengan alat yang mau di monitor maupun di kontrol d modbusnya harus koneksi ke wifi dulu

kali ini bisa  konek langsung k alat tersebut
syaratnya:
segmen ip di nodemcu ketika sebagai AP 192.168.1.1
maka di nodemcunya harus sama 192.168,1,1

Kamis, 12 Juli 2018

membuat access point (AP) dari nodemcu



nodemcu ternyata bisa dijadiin acces point (AP). dengan fitur ini bisa membuat jaringan wifi peralatan murah meriah.

langsung aja.

yang diperlukan antara lain:
1. nodemcu
2. kabel data
3. software arduino IDE

syaratnya succes : bikin password minimal 8 angka/huruf

langkah-langkah:
1. sambung nodemcu ke PC/laptop dengan kabel data
2. upload sketch dibawah ini:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* configurasi AP */

const char *ssid = "Test AP Modbus";
const char *password = "kududitiru";

IPAddress ip(192, 168, 1, 1);
IPAddress netmask(255, 255, 255, 0);

ESP8266WebServer server(80);


void handleRoot() {
    server.send(200, "text/html", "<h1>welcome Puaks technology..... </h1>");
}

void setup() {
    delay(1000);
    Serial.begin(115200);
    WiFi.softAP(ssid, password);
        WiFi.softAPConfig(ip, ip, netmask);
    server.on("/", handleRoot);
    server.begin();
    Serial.println("HTTP server started");
}

void loop() {
    server.handleClient();
}



3. sambungkan laptop anda ke wifi nodemcu sesuai nama yang di sketch yg d upload tadi.


Kamis, 24 Mei 2018

cara menyetting modul ADAM 4055

untuk merubah setting modul adam 4055
1. pasang power supply dan kabel data rs485
2. jumper terminal init ke terminal (b) GND

Senin, 21 Mei 2018

read current, voltage, real power and frequency PM710 with SIMOR (Arduino uno, ethernet shield, and rs485 shield)



pm710 adalah power meter digital yang memiliki protocol modbus rtu dengan port komunikasi RS485. PM ini memiliki 2 type data yaitu float dan integer.

ditempat kerja saya yang sekarang banyak sekali power meter jenis ini. yang mana gatewaynya sering mengalami hang. sehingga data yang tampil di HMI master station tidak update.

akhirnya saya menggunakan sebuah mikrokontroller yang supper canggih yaitu Arduino Uno sebagai gatewaynya dari PM tersebut. pertama kali saya trial ini di kantor dengan PM spare 3 jam oprek tidak ada hasil. akhirnya saya nyerah, saya masukin ke dalam tas kerja dan saya bawa pulang.

sampai di rumah masih penasaran kenapa kok nggak mau di baca, padahal pakai usb to rs485 normal tanpa masalah. langkah pertama:
1. coba mengganti shield rs485, tapi masih belum ada hasil sampai ganti 5x kalo nggak salah
2. ganti mikrokontroller arduino. alhamdulillah ada hasil.
coba tanya" di grup WA modbus arduino arduino yang saya pakai ada kesalahan cetak arduino mega black clone salah serial. tapi saya nggak mau ambil pusing. arduinonya saya lelang dengan harga 2rb.
karena shield rs485 hanya cocok di port serial 0.

hari telah tiba senin tanggal 21 mei 2018. saya mencoba untuk memasang di GI Krian dengan membaca beberapa parameter seperti:
1. tegangan
2. daya
3. arus
4. frekwensi
dengan total 10 power meter.

pada saat mencoba implementasi, ada kesulitan yaitu mengecek ID, baudrate, parity. karena tampilan angkanya kurang sempurna (cek gambar di atas). tapi alhamdulillah ada 1 PM yang angkanya yang agak sempurna dan sudah diketahui ID, parity dan baudratenya.

setelah itu cek arus per masing" feeder. kemudian kabel rs485 yang di panel gateway saya lepas. saya cek satu persatu IDnya. alhamdulillah sudah ketemu semua.
dan sekarang sudah bisa dipantau dari master station 10 power meter tersebut.

register addres pm710

library modbus master

manual modbus master

selamat berinovasi


Jumat, 18 Mei 2018

simor mini


modul simor mini ini adalah modul buat belajar RTU dalam sistem SCADA, modul ini support arduino mega 2560/UNO, dan ethernet shield.

modul ini  memiliki:
2 Digital Output (Dry Contact)
2 Digital Input (5-24V)
2 Analog Input (0-5V)
2 Analog Output (pwm 0-255)
1 Port rs485
2 Port I2C

modul ini bisa buat belajar protocol modbus slave maupun master.

dengan sebagai modbus master, bisa melakukan read/write modul modbus slave seperti:
1. Power meter (contoh yang sudah teruji: PM800, PM5110
2. Relay Proteksi (contoh yang sudah di uji: micom p127, vamp40)
3. PLC



RESET VIA MILLIS



int led = 9;

void setup() {  
  pinMode(led, OUTPUT);   
  Serial.begin(9600);//initialize the serial port

}
void(* resetFunc) (void) = 0;

void loop() {
  static uint32_t prevTime;
  uint32_t curTime = millis();

  if ( curTime - prevTime >= 1*60*1000UL )
  {
    prevTime = curTime;
    resetFunc();
  }
  }

Rabu, 09 Mei 2018

cara test rtu menggunakan ASE2000

pertama select protocol dulu
File-> selec protocol


terus properties -> protocol spesific



pilih di exchange list read multiple register buat lihat data di holding register (modbus)



pilih view -> point value untuk melihat nilai dari analog input atau digital input
tekan simulate master
pilih view -> digital control untuk control (modbus - coil status)
saat coba control.. pilih send once bukan simulate master


pilih view -> digital control untuk control (modbus - coil status)

signal gsm sim800l

Value RSSI dBm Condition 2 -109 Marginal 3 -107 Marginal 4 -105 Marginal 5 -103 Marginal 6 -101 Marginal 7 -99 Marginal 8 -97 Marginal 9 -95...