mengatur IO outseal menggunakan blynk
Alat alat yang dibutuhkan
1. plc nv5
2. modul esp8266
3. usb to ttl ftdi (buat ngeprogram modul esp8266)
Ladder remote IO outseal
outseal difungsikan sebagai modbus slave, baudrate 57600, id 1.
untuk output dikontrol sama b1-b.8 (alamat bit 128 sampai / dengan bit 135).
untuk monitoring s1-s8 memakai b.9-b.16 (alamat modbus 136 s/d 143).
program arduino
library yang dipakai
#include <ESP8266WiFi.h>#include <SimpleModbusMaster.h>
#include <BlynkSimpleEsp8266.h>
sesuaikan ssid, password dengan wifi yang dipakai
sesuaikan auth token blynk, didapat dari, pembuatan project di app blynk
Function code
function code yang dipakai yaitu read coll dan write coil, kita setting , untuk perintah modbusnya
setting untuk write coil
modbus_construct(&packets[PACKET2], 1, FORCE_SINGLE_COIL, 129, 1, 1);
modbus_construct(&packets[PACKET3], 1, FORCE_SINGLE_COIL, 130, 1, 2);
modbus_construct(&packets[PACKET4], 1, FORCE_SINGLE_COIL, 131, 1, 3);
modbus_construct(&packets[PACKET5], 1, FORCE_SINGLE_COIL, 132, 1, 4);
modbus_construct(&packets[PACKET6], 1, FORCE_SINGLE_COIL, 133, 1, 5);
modbus_construct(&packets[PACKET7], 1, FORCE_SINGLE_COIL, 134, 1, 6);
modbus_construct(&packets[PACKET8], 1, FORCE_SINGLE_COIL, 135, 1, 7);
modbus_construct(&packets[PACKET9], 1, READ_COIL_STATUS, 136, 1, 8);
modbus_construct(&packets[PACKET10], 1, READ_COIL_STATUS, 137, 1, 9);
modbus_construct(&packets[PACKET11], 1, READ_COIL_STATUS, 138, 1, 10);
modbus_construct(&packets[PACKET12], 1, READ_COIL_STATUS, 139, 1, 11);
modbus_construct(&packets[PACKET13], 1, READ_COIL_STATUS, 140, 1, 12);
modbus_construct(&packets[PACKET14], 1, READ_COIL_STATUS, 141, 1, 13);
modbus_construct(&packets[PACKET15], 1, READ_COIL_STATUS, 142, 1, 14);
modbus_construct(&packets[PACKET16], 1, READ_COIL_STATUS, 143, 1, 15);
baca virtual data (write coils)
perintah write coil dari blynk. baca virtual data kemudian update register modbusnya.
untuk ON diisi 0xff00 dan untuk off diisi 0x0000
BLYNK_WRITE(V2)
{
value = param.asInt(); // Get value as integer
if (value == 0)regs[0] = 0;
else regs[0] = 0xff00;
}
tulis virtual data (read coils)
perintah baca s1-s8, baca modbus read coil kemudian kirim ke blynk memkai virtual data
void send_data_inputoutseal()
{
if (regs[8] == 0)Blynk.virtualWrite(V10, 0); //suhu virtual 5
else Blynk.virtualWrite(V10, 255); //suhu virtual 5
Komentar
Posting Komentar