Untuk melanjutkan praktek berikut ini, disarankan terlebih dahulu membaca penjelasan mengenai Relay Modbus 4 channel disini dan persiapkan bahan-bahan nya yang masih sama. Kali ini akan saya jelaskan langkah menghubungkan Modul Relay Modbus-Rs485 ke node red, sehingga untuk pembaca yang belum mengenal node red dapat memulai perkenalannya dari tulisan saya sebelumnya disini.
Pada beberapa tulisan node-red sebelumnya saya hampir selalu menggunakan perangkat input / sensor modbus sehingga hanya terbatas pada function modbus 01, 03 dan 04 (read coil, input and read register) seperti pada praktek pembacaan pzem disini. Kali ini saya bahas alat sebagai output yg cocok untuk membahas function 05 (write single coil). Perhatikan perintah serial modbus rtu untuk menghidupkan relay 1 berikut ini ( asumsi id device = 01):
01 05 00 01 FF 00 DD FA
Kode diatas berupa Hexa jadi kalau dipisah-pisah berdasarkan standar modbus adalah seperti berikut:
01 = Alamat device id slave
05 = Perintah Kontrol Single Relay/ function 05
00 01 = 2 byte alamat relay 0x0001
FF 00 = 2 byte yang menyatakan logic TRUE
DD FA = Checksum / CRC 16 modbus
Sedangkan untuk melepas / open relay 3 kode modbus rtu nya seperti berikut ini :
01 05 00 03 00 00 3D CA
Kode diatas berupa Hexa jadi kalau dipisah-pisah berdasarkan standar modbus adalah seperti berikut:
01 = Alamat device id slave
05 = Perintah Kontrol Single Relay/ function 05
00 03 = 2 byte alamat relay 0x0001
00 00 = 2 byte yang menyatakan logic FALSE
3D CA = Checksum / CRC 16 modbus
Sedangkan pada node red flow, palete yg kita pilih adalah Modbus Write :
Penjelasan :
- Function yang dipilih 05 (Force Single Coil)
- Alamat dari relay (dimulai dari 0 untuk modul relay rs485 yg dipakai)
- Komunikasi yang dipakai, seting lanjutannya dibawah ini.
Jadi untuk meng-"CLOSE" dan "OPEN" relay sesuai address nya, maka cukup di inject nilai logika boolean True dan False ke Node Modbus Write.
Dari flow diatas maka ketika tombol inject ditekan akan mengirim logika true dan false langsung ke perangkat relay. Sesimpel itu kok ! Lalu bagaimana jika mengaktifkan dan mematikan semua relay? Kita akan gunakan perintah / function 15 (0F).
01 0F 00 00 00 08 01 FF BE D5
Kode diatas berupa Hexa jadi kalau dipisah-pisah berdasarkan standar modbus adalah seperti berikut:
01 = Alamat device id slave
0F = Perintah Kontrol Multiple Relay/ function 15
00 00 = 2 byte alamat awal relay start 0x0000
00 08 = 2 byte alamat terakhir relay 0x0008 (kenapa 8 ? karena modul yg paling banyak 8 relay)
01 = 1 byte yang akan ditulis ke relay
FF = 1 byte yang mewakili relay 8 s/d 0 sesuai bit nya, jadi bisa kombinasi bit
BE D5 = checksum
*) Keterangan FF berarti semua relay (8 buah ) mendapat logika 1 ( 1 1 1 1 1 1 1 1 ) alias nyala semua, jadi kalau 00 berarti mati semua relaynya
Pada flow node red kita akan gunakan function 15 dan kita inject berupa array / json yang berisi 8 buah logika true dan false. Contoh flownya bisa dilihat dibawah.
Sehingga akan sangat mudah merubah node inject menjadi node web ui berupa "switch" seperti pada gambar flow dibawah. Namun jika masih awam dengan web UI nya node red bisa membaca disini dan disini.
Outputnya menjadi lumayan menarik, bisa mengontrol modul relay modbus-rs485 melalui web browser.
0 komentar:
Posting Komentar