4.Modbus Master TCP

Sama seperti pada pembuatan Modbus Master RTU, pembuatan Modbus Master TCP ini juga dapat dibuat dengan bantuan NI OPC Server. Hanya saja, untuk menambah pengalaman, maka di sini, sebagai ganti NI OPC Server, kita akan menggunakan KEPServerEX. 

Rekan-rekan dapat mengunduh software KEPServerEX di link ini untuk versi demo: Download the KEPServerEX demo | PTC, atau bisa juga di link ini untuk versi full: 

Untuk yang versi demo, sama seperti runtime NI OPC Server, runtime KEPServerEX ini juga harus di-restart setiap 2 jam sekali. Cara merestart runtime-nya juga sama, yaitu dengan men-Stop Runtime Service, yang dimunculkan dengan meng-klik kanan icon KEPServerEX Administration di pojok kanan bawah Taskbar, dan kemudian men-Start Runtime Service-nya kembali.

Jadi, baik NI OPC Server maupun KEPServerEX, keduanya adalah software OPC. Apa itu OPC? Mengutip dari Wikipedia, OPC merupakan singkatan dari Open Platform Communications, yaitu sebuah standar industri otomasi untuk interoperabilitas. Interoperabilitas adalah kemampuan dari dua atau lebih sistem atau komponen untuk berbagi pakai data atau informasi. 

OPC pertama kali dikembangkan di tahun 1996, yang mula-mula merupakan singkatan dari OLE for Process Control. OPC ini digunakan untuk mengatur komunikasi data secara riil antara berbagai perangkat kontrol dari pabrikan yang berbeda. Karena dalam perkembangannya, OPC tidak hanya digunakan pada bidang “Process Control” tetapi juga di banyak aplikasi, di tahun 2011, OPC Foundation mengubah nama OPC dari OLE for Process Control menjadi Open Platform CommunicationsPerubahan nama tersebut juga mencerminkan teknologi yang digunakan, yang sudah mengintegrasikan berbagai aplikasi seperti .NET Framework, XML, SNMP, ODBC, Web Services, dll.

OPC menggunakan teknologi Client-Server. OPC Server berlaku sebagai penyedia data, sedangkan OPC Client berlaku sebagai pengguna data. Seperti diketahui, setiap vendor perangkat otomasi memiliki protokol dan driver perangkatnya sendiri. Sehingga penggabungan perangkat dari vendor yang berbeda menjadi sulit karena begitu beragamnya protokol dan driver. Dengan adanya OPC membuat penggabungan perangkat dari vendor-vendor yang berbeda tersebut menjadi mudah. Setiap vendor akan memasukkan driver dan protokolnya di OPC Server, sehingga OPC Server dapat terhubung dengan semua perangkat yang berbeda-beda tersebut. Pengguna kemudian hanya perlu mengakses data atau perangkat yang diperlukan menggunakan OPC Client. Lebih jauh, teknologi OPC memungkinkan penggabungan banyak perangkat.

Gambar berikut menunjukkan manfaat penggunaan OPC: 

Gambar 1. Manfaat penggunaan OPC (Sumber: https://theautomization.com/opc-ua-vs-da/)

Sebelum menggunakan OPC, setiap pembuatan aplikasi SCADA harus memasukkan semua program dan driver dari berbagai perusahaan yang berbeda untuk dapat terhubung dengan produk alat/perangkat dari perusahaan-perusahaan tersebut. Dengan adanya OPC, pembuatan aplikasi SCADA menjadi sederhana, yaitu hanya membuat agar HMI (tampilan SCADA) dapat terhubung dengan OPC, sedangkan komunikasinya dengan perangkat yang berbeda-beda tersebut ditangani oleh OPC. 

Agar sesuai dengan judul di bagian ke-4 ini, maka berikut ini langkah-langkah pembuatan Modbus Master TCP dengan bantuan OPC Server KEPServerEX:
1. Setelah KEPServerEX terinstal, buka KEPServerEX Configuration, yang ada di folder Kepware, di Start Menu.

2. Pada jendela KEPServerEX, pilih File, pilih New, akan muncul pertanyaan "The operation will cause ...", pilih Yes, Update untuk mengosongkan isi Project.

3. Untuk menyederhanakan tampilan, buka menu View, hilangkan semua centang kecuali pada pilihan Status Bar, Toolbar dan Connectivity.

Gambar 1. Di menu View, hilangkan semua centang kecuali di Status Bar, Toolbar, & Connectivity

4. Klik pada Click to add a channel untuk menambahkan Channel. Di jendela Add Channel Wizard, pilih tipe Channel = Modbus TCP/IP Ethernet. Klik Next.

Gambar 2. Pilih protokol atau tipe Channel = Modbus TCP/IP Ethernet

5. Klik Next hingga selesai, maka muncul Channel1 di bawah Connectivity. Kemudian tambahkan Device dengan meng-klik pada Click to add a Device.

Gambar 3. Setelah Channel, tambahkan Device dengan meng-klik Click to add a device

6. Biarkan namanya tetap Device1, klik Next, hingga di isian ID, isi dengan alamat Modbus Slave TCP atau Modbus Server. Untuk sementara, kita menggunakan komputer lokal sebagai Modbus Server. Di bagian ke-5 nanti, kita akan menggunakan NodeMCU ESP8266 sebagai Modbus Server. Karena menggunakan komputer lokal, maka ganti alamat IP <255.255.255.255>,0 dengan alamat IP localhost, yaitu 127.0.0.1. Klik Next.

Gambar 4. Isi ID dengan alamat Modbus Server, untuk sementara gunakan localhost: 127.0.0.1

7. Klik Next hingga selesai. Setelah muncul Device1 di bawah Channel1, berikutnya klik pada Click to add a static tag. Muncul jendela Property Editor, buat Tag dengan mengisi Name = S1, dan Address = 000001. Klik OK.

Gambar 5. Di Property Editor Tag, isi Name = S1 dan Address = 000001

8. Berikutnya copy Tag S1 tersebut dan perbanyak hingga menjadi 17 buah, dan ganti nama dan alamatnya menjadi seperti gambar berikut:

Gambar 6. Perbanyak Tag hingga menjadi 17 Tag, yaitu Tag S1 - S8 (000001 - 000008), Tag A1 - A8 (000009 - 000016) dan Tag Keadaan (400001)

9. Setelah Modbus Server berhasil dibuat, maka langkah berikutnya adalah melakukan komunikasi dengan Modbus Master TCP atau Modbus Client. Gunakan software Modbus Poll sebagai simulator Modbus Client. Unduh software Modbus Poll ini di link ini: https://plc247.com/download-modbus-poll-v9-5-full-version/

10. Setelah diunduh, instal dan masukkan Key_Install agar program Modbus Poll ini dapat dijalankan terus. Buka software Modbus Poll ini, secara default akan muncul sebuah tabel 2 kolom yang berisi angka 0 di kolom kedua. Tabel ini merupakan tabel data pada memori, yang tipenya ditentukan oleh nilai F. Untuk nilai F = 1 berarti tipe memori Coil, untuk nilai F = 2 berarti tipe memori Input Diskrit, untuk nilai F = 3 berarti tipe memori Holding Register, dan untuk nilai F = 4 berarti tipe memori Input Register. Munculkan 2 buah tabel seperti berikut (pilih File, pilih New untuk memunculkan tabel yang baru), dengan nilai F = 3 untuk tabel pertama dan F = 1 untuk tabel kedua.

Gambar 7. Munculkan 2 buah tabel memori di Modbus Poll, dengan nilai F = 3 dan F = 1

11. Untuk membuat nilai F pada tabel pertama bernilai 3, klik pada tabel pertama, kemudian pilih menu Setup, pilih Read/Write Definition, biarkan nilai ID = 1, atur nilai Function = 03 Read Holding Registers (4x).

Gambar 8. Mengatur nilai F = 03 Read Holding Registers (4x) 

12. Untuk membuat nilai F pada tabel kedua bernilai 1, klik pada tabel kedua, kemudian pilih menu Setup, pilih Read/Write Definition, biarkan nilai ID = 1, pilih nilai Function = 01 Read Coils (0x). Karena jumlah Tag atau data pada memori Coils yang perlu dibaca/ditulis adalah sebanyak 16 buah, maka ganti nilai Quantity dari 10 menjadi 16.

Gambar 9. Mengatur nilai F = 01 Read Coils (0x) dan jumlah data Tag = 16

13. Setelah pengaturan tipe memori, berikutnya lakukan koneksi dengan memilih menu Connection, pilih Connect, dan kemudian pada kolom Connection, pilih Modbus TCP/IP, dan isikan alamat IP Modbus Server = 127.0.0.1. Klik OK.

Gambar 10. Lakukan koneksi dengan mengatur Connection di Modbus TCP/IP dan isi alamat IP dengan alamat IP Modbus Server. Klik OK

14. Berikutnya, untuk mengetahui kualitas koneksi, klik tombol Quick Client di KEPServerEx, dan buka Channel1.Device1 di jendela Quick Client, pastikan kualitas koneksi dari ke-17 buah Tag bernilai Good.

15. Apabila kualitas koneksi sudah bernilai Good, ubah nilai data Tag di tabel memori Modbus Poll, dan perhatikan nilai Tag tersebut di jendela Quick Client, seharusnya setiap kali dilakukan pengubahan data di Modbus Poll, data di Modbus Server juga ikut berubah, begitu pula sebaliknya, seperti terlihat pada gambar berikut. Untuk memperjelas, di kolom pertama tabel di Modbus Poll, tulis nama-nama Tag sesuai dengan alamatnya.

Gambar 11. Apabila koneksi berhasil, maka setiap kali dilakukan pengubahan data di Modbus Poll, data Tag di Modbus Server (Quick Client) juga ikut berubah, begitu pula sebaliknya

16. Berikutnya, diinginkan agar data Tag di Modbus Server di KEPServerEX tersebut dijadikan variabel pada program Tampilan di LabVIEW. Untuk itu buka program Tampilan LabVIEW yang sudah diberi tambahan LED Aktuator, namun belum diberi variabel Tag Modbus. Rekan-rekan dapat mengunduh program LabVIEW tersebut di link ini:
 
17. Setelah diunduh, buka program LabVIEW tersebut. Kemudian buka menu File, pilih New, pilih Empty atau Blank Project untuk membuat kotak Project.

Gambar 12. Di program LabVIEW, pilih menu File, pilih New, pilih Empty Project

18. Muncul pertanyaan apakah akan menambahkan program LabVIEW yang sedang terbuka ke dalam Project, pilih Add.

Gambar 13. Pilih Add untuk menambahkan program LabVIEW ke dalam Project

19. Maka muncul kotak Project. Agar gambar tampilan program LabVIEW dapat dimunculkan saat program dijalankan, tambahkan file gambar Tampilan.png ke kotak Project dengan meng-klik kanan My Computer, pilih Add, pilih File, lalu arahkan pencarian ke file Tampilan.png di dalam folder Aktuator1 (file Aktuator1 ini diunduh di langkah no. 13).  

Gambar 14. Menambahkan file Tampilan.png ke kotak Project

20. Sama seperti NI OPC Server, penambahan variabel dari Tag KEPServerEX dilakukan dengan meng-klik kanan My Computer, pilih New, pilih I/O Server.

Gambar 15. Klik kanan My Computer, pilih New, pilih I/O Server

21. Pada jendela Create New I/O Server, pilih OPC Client. Klik Continue.

Gambar 16. Pilih OPC Client, klik Continue

22. Pada jendela Configure OPC Client I/O Server, pilih Kepware KEPServerEX.V6. Klik OK.

Gambar 17. Pilih Kepware.KEPServerEX.V6, klik OK

23. Maka muncul library dengan objek OPC1 di kotak Project. Klik kanan objek OPC1 ini, pilih Create Bound Variables.

Gambar 18. Klik kanan OPC1, pilih Create Bound Variables

24. Muncul jendela Create Bound Variables. Buka Project, buka My Computer, buka library, buka OPC1, buka Channel1, buka Device1. Pilih semua Tag yang sudah dibuat di Device1, tekan tombol Add untuk menambahkan Tag tersebut ke dalam variabel di kotak Project LabVIEW.

Gambar 19. Memilih semua Tag di Channel1, Device1, dan menambahkan ke Added Variables

25. Klik OK, maka semua variabel yang ditambahkan muncul di Tabel Multiple Variable Editor, beserta dengan tipe data dan akses datanya. 

Gambar 20. Semua variabel yang ditambahkan muncul di Multiple Variable Editor

26. Setelah semua variable yang ditambahkan muncul di kotak Project, di dalam folder Library, masukkan variable tersebut ke dalam program LabVIEW, dengan cara menarik (drag) variabel tersebut dari kotak Project ke Block Diagram. Gambar berikut menunjukkan penempatan variabel Tag S1 - S8 yang di-OR-kan dengan Cluster Tombol. Sebelum di-OR-kan, kedelapan variabel tersebut disatukan dengan fungsi Bundle. Tarik kotak Bundle ke bawah agar bisa memunculkan 8 buah kaki input. Hubungkan satu per satu output variabel S1 - S8 ke kaki input Bundle secara berurut.

Gambar 21. Penempatan variabel Tag S1 - S8, di-Bundle kemudian di-OR-kan dengan Cluster

27. Setelah variabel S1 - S8, berikutnya variabel A1 - A8, tempatkan di samping Cluster2, buat agar semua variabel ini memiliki Access Mode = Write. Kemudian ambil icon Unbundle dari Palet Functions, pada kategori Programming, Cluster. Hubungkan input Unbundle ke input Cluster2. Secara otomatis akan muncul 8 buah kaki output Unbundle. Hubungkan kaki output Unbundle satu persatu secara berurut ke variabel A1 - A8.  

Gambar 22. Menghubungkan input Cluster2 ke variabel A1 - A8 dengan bantuan Unbundle

28. Berikutnya, untuk variabel Tag Keadaan, tempatkan di samping icon indikator Tahap. Buat Access Mode variabel Keadaan dari Read menjadi Write. Kemudian hubungkan kaki input variabel Keadaan dengan input icon indicator Tahap.

Gambar 23. Menghubungkan input indikator Tahap ke input variabel Tag Keadaan

29. Berikut program LabVIEW secara lengkap untuk penambahan variabel Tag S1 - S8, A1 - A8 dan variabel Tag Keadaan dari OPC KEPServerEX.

Gambar 24. Program LabVIEW setelah diberi tambahan variabel S1 - S8, A1 - A8 dan Tag Keadaan

30. Buka OPC KEPServerEX. Tekan tombol Quick Client, pastikan koneksi ke Channel1.Device1 dengan server localhost bernilai Good. Apabila bernilai Good, buka program Modbus Poll. Munculkan 2 tabel dengan F=03 dengan jumlah data 1 buah, dan F=01 dengan jumlah data 16 buah. Berikutnya jalankan program LabVIEW yang sudah diberi tambahan variabel Tag S1 - S8, A1 - A8 dan Keadaan.

Gambar 25. Jalankan Quick Client KEPServerEX, program Modbus Poll dan program LabVIEW

31. Ubah nilai variabel S1 di Modbus Poll dari 0 menjadi 1 dan perhatikan nilai Tag di OPC Quick Client, dan juga tampilan di program LabVIEW, harusnya motor Konveyor K1 bekerja membawa Wadah sampai ke bawah Lengan Robot. Kembalikan nilai variabel S1 menjadi 0. Lanjutkan dengan mengubah nilai variabel S2 dari 0 menjadi 1, kembalikan ke 0 lagi, dan seterusnya hingga S8, seharusnya proses pemindahan dan pengisian Wadah pada tampilan LabVIEW dapat berjalan, begitu pula nilai di variabel A1 - A8 seharusnya mengikuti kondisi kedelapan LED Aktuator, dan nilai di variabel Keadaan mengikuti nilai pada indikator Tahap.

Gambar 26. Tampilan LabVIEW dapat berjalan mengikuti perubahan nilai S1 - S8 di Modbus Poll

32. Rekan-rekan dapat mengunduh file program LabVIEW, seting nilai Modbus Poll dan OPC KEPServerEX di link ini:

33. Agar lebih jelas mengenai pembuatan Modbus Master TCP dengan OPC KEPServerEX, berikut ini videonya:

Video pembuatan Modbus Master TCP dengan KEPServerEX

34. Sampai di sini pembuatan Modbus Master TCP atau Modbus Client selesai. Mungkin rekan-rekan bingung mengapa dituliskan pembuatan Modbus Master TCP, bukankah yang dibuat adalah Modbus Server atau Modbus Slave TCP. Memang betul sekali, yang dibuat di OPC KEPServerEX sebenarnya adalah Modbus Server, bukan Modbus Client. Hal ini dikarenakan kita belum memiliki Modbus Server yang riil, kita masih menggunakan Modbus Server yang dibangkitkan secara lokal. Ketika nanti di bagian ke-5, kita membuat Modbus Server yang riil dengan NodeMCU, maka Modbus Server tersebut akan memiliki alamat IP yang bisa diisikan di halaman ID Device1 OPC KEPServerEX. Dengan mengisikan alamat IP tersebut, maka secara otomatis OPC KEPServerEX telah berubah menjadi Modbus Master TCP atau Modbus Client. 

Hal yang menarik di Modbus TCP, yang mana tidak dimiliki oleh Modbus RTU adalah sifat paralel, di mana dimungkinkan untuk mengakses Modbus Server secara bersama-sama, oleh banyak Modbus Master, atau dengan kata lain bisa Multi-Master, tidak hanya Multi-Slave. Di Modbus RTU, hanya diperbolehkan satu Master yang mengirimkan request (mengakses data di Slave) pada satu waktu, sebaliknya dengan Modbus TCP, semua Master bisa mengakses secara bersama-sama sebuah Server atau Slave. Jadi ketika nanti sudah ada Modbus Server NodeMCU, maka baik OPC KEPServerEx dan juga Modbus Poll akan dapat membaca dan mengontrol secara bersama Modbus Server NodeMCU tersebut. 

Oya, satu lagi catatan, seperti yang telah dituliskan di awal, pembuatan Modbus Master TCP dengan OPC KEPServerEX ini juga dapat dibuat dengan NI OPC Server, dengan langkah-langkah yang sama. Demikian rekan-rekan, semoga bermanfaat, dan terimakasih.

No comments:

Post a Comment