2.Modbus Master RTU

Setelah tampilan animasi LabVIEW selesai dibuat, langkah berikutnya adalah menghubungkan tampilan animasi di LabVIEW tersebut dengan hardware Arduino melalui Modbus. Mengapa menggunakan Modbus? Karena Modbus sudah menjadi protokol standar komunikasi di industri yang sampai sekarang masih banyak digunakan. Untuk membuat komunikasi Modbus di LabVIEW ini, salah satu cara yang paling mudah adalah dengan menggunakan bantuan NI OPC Server. Dalam contoh di sini, LabVIEW dibuat menjadi Modbus Master dan hardware Arduino dibuat menjadi Modbus Slave. 

Catatan: Sekalipun bisa dibuat sebaliknya, yaitu Arduino sebagai Modbus Master dan LabVIEW sebagai Modbus Slave, namun mengingat bahwa LabVIEW akan dibuat menjadi tampilan SCADA, maka LabVIEW harus menjadi Modbus Master. 

Pada bagian ke-2 ini, jenis Modbus yang akan dibuat dengan NI OPC Server adalah jenis Modbus RTU. Untuk pembuatan Modbus TCP dengan NI OPC Server akan dibahas di bagian ke-4. Berikut ini tahapan pembuatan Modbus Master RTU di LabVIEW dengan bantuan NI OPC Server:
  1. Penambahan Aktuator pada program LabVIEW.
  2. Pengaturan Channel, Device dan Tag Modbus di NI OPC Server.
  3. Penarikan Tag Modbus dari OPC Server ke program LabVIEW
Berikut ini langkah-langkah pembuatan di setiap tahapan di atas:


1. PENAMBAHAN AKTUATOR PADA PROGRAM LABVIEW

Program Tampilan Animasi LabVIEW yang telah dibuat di bagian pertama, hanya melibatkan penggunaan 8 buah input tombol. Kedelapan buah input tombol ini dapat dihubungkan dengan sensor-sensor atau tombol-tombol yang ada di hardware. Agar tampilan animasi di LabVIEW tidak hanya menampilkan kondisi alat input di hardware seperti sensor dan tombol, tetapi juga menampilkan dan sekaligus mengontrol alat output seperti aktuator motor konveyor, penggerak lengan robot, gripper pencekam dan pembuka katup tangki, maka perlu penambahan aktuator pada program tampilan animasi LabVIEW, yang direpresentasikan dalam bentuk indikator LED.

Berikut ini langkah-langkah penambahan aktuator pada program tampilan LabVIEW

1. Buka file program LabVIEW tampilan animasi yang lengkap, yang dapat juga rekan-rekan unduh di link ini: https://drive.google.com/file/d/1dqw3n7dy9eQCu6G0IzKKsd1izUF3LZCb/view?usp=sharing

2. Ada 8 buah aktuator yang akan ditambahkan, yaitu:
  1. Motor Konveyor 1 (disingkat MK1)
  2. Motor Gripper Pencekam (disingkat MGP)
  3. Motor Lengan Robot gerak ke atas (disingkat MRU)
  4. Motor Lengan Robot gerak ke bawah (disingkat MRD)
  5. Motor Lengan Robot gerak ke kiri (disingkat MRL)
  6. Motor Lengan Robot gerak ke kanan (disingkat MRR)
  7. Motor Konveyor 2 (disingkat MK2)
  8. Motor Katup Tangki (disingkat MKT)
3. Karena ada 8 buah aktuator, maka ambil 8 buah indikator Square LED dari Palet Controls, di kategori Boolean, dan tempatkan kedelapan objek Square LED tersebut di Front Panel, secara berdampingan di atas kotak 2D Picture.

4. Di Front Panel, gerakkan mouse melingkupi kedelapan objek LED tersebut, hingga semua objek Square LED tersebut terpilih, kemudian klik kanan hingga muncul menu pop-up, pilih Properties, dan atur nilai Height = 40 dan Width = 68 seperti gambar berikut.

Gambar 1. Pilih semua objek LED, klik kanan, pilih Properties, atur Height = 40 dan Width = 68

5.  Rapikan posisi kedelapan objek Square LED tersebut dengan tombol Align Objects di Toolbar dan kemudian pilih Bottom Edges untuk membuat rata bawah, dan gunakan Distribute Objects dan pilih Horizontal Compress untuk merapatkan objek secara horisontal.

6. Perhatikan di Block Diagram, ada 8 buah icon Boolean yang muncul karena penambahan 8 buah objek Square LED di Front Panel.

Gambar 2. Muncul 8 buah icon Boolean di Block Diagram

7. Agar program menjadi lebih ringkas, tambahkan sebuah Cluster di Front Panel. Cluster ini adalah Cluster kedua di program. Cluster yang pertama berisi 8 buah tombol, sedangkan Cluster yang kedua ini akan berisi 8 buah LED. Perlebar ukuran Cluster sehingga muat untuk diisi 8 buah Square LED. Kemudian pindahkan kedelapan LED tersebut ke dalam Cluster.

Gambar 3. Menempatkan kedelapan LED ke dalam sebuah Cluster di Front Panel

8. Setelah semua LED masuk ke dalam Cluster, hilangkan label semua LED tersebut dengan cara meng-klik kanan satu persatu LED, pilih Visible Items, hilangkan centang pada Label, dan beri centang pada Boolean Text. Agar tulisan Boolean Text berada di tengah, pilih Lock Text in Center. Buat semua LED dalam kondisi ON seperti gambar berikut.
 
Gambar 4. Menempatkan sebuah Cluster di Front Panel untuk diisi dengan 8 buah Square LED

9. Setelah itu, klik kanan pada Cluster, pilih AutoSizing, pilih Size to Fit. Terlihat Cluster membuat tampilan kedelapan LED menjadi lebih menyatu. Perhatikan juga di Block Diagram, 8 buah icon Square LED telah hilang, digantikan dengan sebuah icon Cluster2.

Gambar 5. Autosizing pada Cluster, icon Cluster 2 menggantikan 8 buah icon LED

9. Mulai dari LED pertama hingga LED kedelapan, secara berturut-turut, ganti tulisan ON dengan MK1, MGP, MRU, MRD, MRL, MRR, MK2, MKT (mengacu singkatan nama aktuator di langkah no. 2) seperti ditunjukkan pada gambar berikut:

Gambar 6. Mengubah nama di Boolean Text sesuai dengan singkatan nama kedelapan aktuator

Catatan: sebenarnya tidak hanya Cluster yang bisa membuat suatu kumpulan objek seperti ini, Array juga dapat membuat kumpulan objek, hanya masalahnya, Array membuat objek menjadi seragam, mengubah sifat asli objek yang menjadi anggotanya. Sedangkan Cluster mempertahankan sifat asli objek yang menjadi anggotanya. Hal ini dapat diketahui dari pengubahan nama pada Boolean Text. Untuk Cluster, pemberian nama yang berbeda-beda pada anggota dapat dilakukan, sedangkan pada Array, pemberian nama yang berbeda-beda pada anggota tidak dapat dilakukan. 

10. Di Block Diagram, tempatkan icon Cluster2 ini di dalam While Loop, tetapi di luar Case Structure. Kemudian tambahkan di setiap Case pada Case Structure, sebuah icon Bundle, dan hubungkan outputnya ke icon Cluster2 di luar Case Structure. Buat icon Bundle memiliki 8 buah input dengan menarik kotak iconnya ke bawah. Beri input-input tersebut dengan nilai False Constant atau True Constant, sesuai dengan kondisi aktuator di Case tersebut. Gambar berikut menunjukkan icon Bundle di Case Kondisi Awal. Karena di kondisi awal semua aktuator dalam kondisi mati, maka beri nilai False untuk kedelapan input Bundle.

Gambar 7. Mengubah nama di Boolean Text sesuai dengan singkatan nama kedelapan aktuator

11. Lebih jelasnya, Tabel berikut menunjukkan isi input Bundle untuk setiap Case dan keterangannya.

Tabel 1. Kondisi kedelapan Aktuator di setiap Case

12. Dengan pemberian nilai input Bundle ke icon Cluster mengikuti tabel di atas, kondisi aktuator dapat diatur sesuai dengan tampilan animasi. Hanya saja, ada beberapa hal berikut ini yang harus diperbaiki:
  1. Di Case K1 berjalan, ketika konveyor berhenti, ternyata LED MK1 masih menyala.
  2. Di Case LR turun di K1, ketika Lengan Robot telah berhenti turun, ternyata LED MRD masih menyala.
  3. Di Case LR angkat Wadah, ketika Lengan Robot telah berhenti naik, ternyata LED MRU masih menyala.
  4. Di Case LR geser Wadah, ketika Lengan Robot telah berhenti bergeser, ternyata LED MRR masih menyala.
  5. Di Case LR turun di K2, ketika Lengan Robot telah berhenti turun, ternyata LED MRD masih menyala.
  6. Di Case K2 berjalan, Lengan Robot harus naik dulu baru konveyor K2 berjalan, maka seharusnya LED MRU menyala dulu dan padam ketika Lengan Robot telah berhenti naik, baru LED MK2 menyala ketika konveyor K2 berjalan, dan padam ketika konveyor K2 berhenti.
  7. Di Case Katup terbuka, ketika tangki sudah menutup, ternyata LED MKT masih menyala.
13. Untuk itu, berikut ini perbaikan program di atas, yang dibuat dengan mengganti input True Constant dengan garis data dari input Select atau Case Structure yang bersesuaian, yang menjalankan animasi aktuator tersebut pada tampilan.

Tabel 2. Perbaikan kondisi kedelapan Aktuator di setiap Case

14. Lebih jelasnya, rekan-rekan dapat mengunduh file program LabVIEW untuk penambahan LED Aktuator di link berikut ini: 


2. PENGATURAN CHANNEL, DEVICE & TAG MODBUS DI NI OPC SERVER

Untuk membuat komunikasi Modbus secara mudah tanpa perlu memprogram dapat dilakukan dengan bantuan OPC Server. OPC Server menyediakan banyak sekali protokol komunikasi, termasuk protokol Modbus, yang penggunaannya hanya dengan cara memilih sesuai keperluan. Dalam contoh di sini, akan ditunjukkan langkah-langkah pengaturan parameter pada NI OPC Server untuk penerapan Modbus RTU. Berikut ini langkah-langkahnya:

1. Mula-mula instal software tambahan LabVIEW (add-on) dengan nama file 2015DSC.exe, di mana di dalamnya ada NI OPC Server. Rekan-rekan dapat mengunduh file tersebut di link inihttps://drive.google.com/file/d/1iDz9CgHmhQCdcyF9wzzwRf1qHdHTRRaE/view?usp=sharing

2. Setelah add-on DSC (Datalogging and Supervisory Control) terinstal, berikutnya, instal juga software driver untuk komunikasi serial dengan nama file visa530full.exe, yang dapat diunduh di link ini: https://drive.google.com/file/d/148xhujLDYSf5huBYJdJ3LJK51Ji3SAuZ/view?usp=sharing

3. Setelah software add-on dan software driver terinstal, berikutnya buka NI OPC Server dengan meng-klik 2 kali pada OPC Servers Configuration, yang ada di folder National Instruments, di Start Menu.

Gambar 8. Buka OPC Servers Configuration

4. Setelah NI OPC Server terbuka, pilih menu File, pilih New. 

Gambar 9. Setelah OPC Servers Configuration, pilih File, pilih New

5. Pada kotak pertanyaan yang muncul, pilih Yes, Update.

Gambar 10. Pilih Yes, Update

6. Berikutnya, klik pada tulisan Click to add a channel. Muncul kotak dialog New Channel. Biarkan namanya tetap Channel1, klik Next.

Gambar 11. Klik pada tulisan Click to add a channel, kemudian tekan tombol Next

7. Di halaman Device Driver, pilih Modbus RTU Serial, kemudian klik Next. 

Gambar 12. Pilih Device Driver Modbus RTU Serial, klik Next

8. Klik Next terus hingga selesai, maka akan muncul tulisan Channel1 di kolom kiri.

Gambar 13. Klik Next hingga selesai, hingga muncul tulisan Channel1

9. Berikutnya, klik pada tulisan Click to add a device, maka akan muncul kotak dialog New Device. Biarkan namanya tetap Device1, klik Next.

Gambar 14. Klik pada tulisan Click to add a device, kemudian klik Next

10. Klik Next terus hingga selesai, maka akan muncul tulisan Device1 di bawah Channel1.

Gambar 15. Klik Next hingga selesai, hingga muncul tulisan Device1

11. Berikutnya klik pada tulisan Click to add a static tag, di kolom yang kanan, maka akan muncul jendela Tag Properties.

Gambar 16. Klik pada tulisan Click to and a static tag, maka muncul jendela Tag Properties

12. Di jendela Tag Properties ini, data yang akan dikirim/diterima, didefinisikan dalam bentuk nama dan alamat memori yang digunakan. Di protokol Modbus, memori dikategorikan menjadi 4 tipe, yaitu tipe Coil, Input Diskrit, Input Register dan Holding Register. Tabel berikut ini menjelaskan penggunaan masing-masing tipe memori dan alokasi alamatnya:

Tabel 3. Tipe dan alokasi memori pada protokol Modbus

13. Agar sesuai dengan program tampilan di LabVIEW, maka diinginkan ada 17 buah Tag atau variabel yang akan dikomunikasikan antara software LabVIEW (Modbus Master) dengan hardware Arduino (Modbus Slave). Tabel berikut menunjukkan nama dan alamat memori yang digunakan:

Tabel 4. Tag atau variabel untuk program tampilan LabVIEW 

14. Masukkan nama dan alamat pada Tabel di atas di isian Tag Properties satu persatu. Tekan tombol Check Address (bergambar centang) untuk memastikan alamat yang diisi sudah benar. Atur Data type = Boolean untuk alamat dengan angka awal 0, sedangkan untuk alamat dengan angka awal 4, atur Data type = Word.

Gambar 17. Memasukkan nama dan alamat setiap Tag sesuai Tabel

15. Setelah semua nama dan alamat di Tabel di atas diisikan ke jendela Tag Properties, maka di kolom kanan dari NI OPC Server akan muncul 17 buah Tag seperti gambar berikut.

Gambar 18. Kolom kanan di NI OPC Server telah berisi data 17 buah Tag

16. Berikutnya, untuk mengetahui kualitas koneksi Modbus yang dibuat oleh NI OPC Server ini, tekan tombol Quick Client, yaitu tombol di Toolbar yang bertuliskan QC. Setelah jendela Quick Client terbuka, klik pada Channel1.Device1, maka kualitas koneksi dapat terlihat di kolom kanan. 

Gambar 19. Kualitas koneksi pada Channel1.Device1 = Bad

17. Terlihat pada gambar di atas, kualitas koneksi Channel1.Device1 = Bad. Komunikasi hanya bisa berjalan apabila kualitas koneksi = Good. Ada 3 kemungkinan penyebab koneksi Bad, yaitu:
  1. Kemungkinan pertama adalah waktu runtime sudah habis. Karena software Demo, maka waktu runtime ini dibatasi hanya 2 jam. Rekan-rekan dapat melihat sisa waktu runtime di bagian atas, dengan tulisan Demo Expires: sisa waktu runtime. Apabila sisa waktu runtime = 0, maka waktu runtime harus direset agar mulai kembali dari awal. Di langkah berikutnya akan dijelaskan cara mereset runtime ini.
  2. Kemungkinan kedua adalah belum adanya port COM yang tersedia. Untuk menghubungkan 2 buah software yang berkomunikasi melalui port serial, dibutuhkan pasangan COM. Dengan pasangan COM ini, port COM yang pertama digunakan untuk software pertama, sedangkan port COM yang kedua digunakan untuk software kedua. Untuk membuat pasangan COM ini, ada banyak software tersedia di internet, salah satunya adalah com0com. Di langkah berikutnya akan dijelaskan cara membuat pasangan COM dengan com0com dan cara pemakaiannya.
  3. Kemungkinan ketiga adalah Modbus Slave belum ada. Agar komunikasi dengan protokol Modbus dapat berjalan, diperlukan minimal 2 alat terhubung, alat pertama sebagai Modbus Master, alat kedua sebagai Modbus Slave. Di sini, NI OPC Server digunakan sebagai Modbus Master, sedangkan Modbus Slave belum tersedia, yang harusnya adalah hardware Arduino. Untungnya, sekalipun hardware Arduino tidak ada, Modbus Slave dapat dibuat dengan software simulator. Di langkah berikutnya akan dijelaskan bagaimana membuat Modbus Slave ini dengan software simulator.
18. Kemungkinan pertama penyebab koneksi yang buruk adalah waktu runtime yang sudah habis, seperti ditunjukkan pada gambar berikut. 

Gambar 20. Waktu runtime sudah habis, perlu direset agar mulai lagi dari awal

19. Untuk mereset waktu runtime, buka OPC Servers Administration, yang ada di folder National Instruments, di Start Menu. Klik 2 kali OPC Servers Administration, maka akan muncul icon OPC Server Administration di pojok kanan bawah Taskbar seperti berikut. 

Gambar 21. Membuka OPC Servers Administration

20. Klik kanan icon OPC Server Administration tersebut, maka akan muncul pilihan menu, pilih Stop Runtime Service.

Gambar 22. Klik kanan icon OPC Server Administration, pilih Stop Runtime Service

21. Setelah memilih Stop Runtime Service, muncul jendela peringatan putusnya koneksi. Pilih Yes.

Gambar 23. Pilih Yes untuk memutus koneksi

22. Setelah itu, klik kanan kembali icon OPC Server Administration, kemudian pilih Start Runtime Service untuk menjalankan kembali runtime.

Gambar 24. Pilih Start Runtime Service untuk menjalankan runtime kembali

23. Muncul jendela pertanyaan untuk mengkoneksikan kembali. Pilih Yes.

Gambar 25. Pilih Yes untuk mengkoneksikan kembali

24. Muncul jendela update runtime, pilih Yes. 

Gambar 26. Pilih Yes untuk mengupdate waktu runtime

25. Muncul jendela pertanyaan Save. Pilih Yes, beri nama bebas. Kemudian tekan kembali tombol Quick Client. Maka di jendela Quick Client, penghitungan waktu runtime akan dimulai kembali dari awal.

Gambar 27. Waktu runtime mulai dijalankan kembali dari awal, berakhir 2 jam lagi

26. Berikutnya, kemungkinan kedua penyebab koneksi yang buruk adalah belum adanya pasangan port COM yang tersedia. Untuk mengetahui port COM yang tersedia, buka Device Manager, dan dari daftar yang muncul, buka kategori Ports (COM & LPT). Device Manager ini dapat dibuka dengan meng-klik kanan tombol Start Menu, pilih Device Manager. Berikut ini contoh pasangan port COM yang sudah dibuat dengan software com0com.

Gambar 28. Pasangan port COM di Device Manager

27. Software com0com ini gratis. Rekan-rekan dapat mendownload software com0com di link berikut ini: https://sourceforge.net/projects/com0com/files/latest/download

28. Instal software com0com tersebut. Kemudian buka com0com. Di jendela Setup, di bagian atas, terdapat 2 kotak isian port COM. Isi dengan tulisan COM diikuti angka. Perhatikan warna tulisannya. Apabila tulisannya berwarna merah, berarti port itu sudah digunakan. Ubah angkanya ke angka yang lebih besar, hingga tulisannya menjadi biru. Begitu pula untuk isian di kotak kedua, yang menjadi pasangan port. Sebaiknya buat pasangan port COM tersebut memiliki angka yang berdekatan, seperti contoh berikut, yaitu COM14 dengan COM15. Setelah semua tulisan berwarna biru, beri tanda centang pada kedua kotak use Ports class, kemudian tekan tombol Apply di bagian bawah.

Gambar 29. Isi kedua kotak dengan pasangan port COM yang diinginkan, pastikan tulisannya berwarna biru, beri centang pada kedua kotak use Ports class, kemudian tekan tombol Apply

29. Buka kembali Device Manager, dan perhatikan di kategori Ports (COM & LPT), terlihat muncul pasangan port COM baru.

Gambar 30. Terlihat pasangan port COM yang baru di kategori Ports (COM & LPT)

30. Berikutnya, kemungkinan ketiga penyebab koneksi yang buruk adalah belum adanya Modbus Slave. Karena pembuatan Modbus Slave dengan Arduino akan dibahas di bagian ke-3, maka di sini akan digunakan software simulator Modbus Slave. Rekan-rekan dapat mendownlaod simulator Modbus Slave ini di link ini: https://plc247.com/download-modbus-slave-v7-3-1-full-version/

31. Instal software Modbus Slave tersebut. Setelah selesai, buka software tersebut (jangan lupa memasukkan key agar software dapat dijalankan terus, lebih jelas baca Key_install.txt). Secara default, di jendela Modbus Slave, akan muncul sebuah kotak berbentuk tabel 2 kolom. Kolom pertama kosong, sedangkan kolom kedua berisi nilai 0. Perhatikan tulisan di atasnya, ID = 1, F = 03. Apa arti tulisan tersebut? Agar lebih jelas, buka Slave Definition, di menu Setup. Terlihat pada jendela Slave Definition, Slave ID = 1, dan Function = 03 Holding Register. Dari sini diketahui bahwa tabel 2 kolom tersebut merupakan kotak yang berisi data pada memori di Holding Register, yang alamatnya dimulai dari 40001 (lihat tulisan PLC address). Nilai di alamat 40001 ini akan dapat dibaca dan juga diubah oleh Tag keadaan, yang ada di alamat 400001 di OPC Server (catatan: alamat modbus bisa ditulis dalam format 5 digit atau 6 digit).

Gambar 31. Slave Defintion mengatur nomor ID Slave, tipe memori, alamat dan jumlah memori

32. Agar simulator Modbus Slave ini dapat bekerja, lakukan koneksi dengan membuka menu Connection. Pilih Connection = Serial Port, dan Serial Settings = COM14 (isi dengan pasangan port COM yang pertama). Biarkan seting yang lain tetap sama, klik OK.

Gambar 32. Untuk menjalankan Modbus Slave RTU, buat koneksi dengan Connection = Serial Port

33. Penambahan Aktuator pada program tampilan animasi LabVIEW.

Gambar 33. Di NI OPC Server, klik 2 kali pada tulisan Channel1 hingga muncul Channel Properties, kemudian atur COM ID = 15 (isi dengan pasangan Port COM yang kedua)

34. Tekan tombol Quick Client, dan perhatikan kualitas koneksi Channel1.Device1, terlihat pada Tag keadaan (alamat 400001) kualitas koneksinya adalah Good.

Gambar 34. Terlihat kualitas koneksi Tag Keadaan = Good, karena Modbus Slave 40001 dijalankan

35. Untuk membuat kualitas koneksi semua Tag di NI OPC Server bernilai Good, munculkan tabel 2 kolom untuk memori Coil di simulator Modbus Slave. Caranya adalah dengan memilih menu File, pilih New. Pada tabel 2 kolom yang muncul, buka menu Setup, pilih Slave Definition. Atur Slave ID = 1, Function = 01 Coil Status (0x), dan ubah Quantity dari 10 menjadi 16 (mengapa 16? karena ada 16 buah Tag yang memiliki alamat dari 000001 hingga 000016). 

Gambar 35. Mengatur tabel 2 kolom yang baru dengan memori Coil dari alamat 00001 - 00016

36. Tekan kembali tombol Quick Client, dan perhatikan kualitas koneksi semua Tag sekarang telah menjadi Good. Untuk memudahkan penjelasan, isi kolom pertama yang kosong di kedua tabel di simulator Modbus Slave dengan nama Tag seperti gambar berikut.

Gambar 36. Ketika tabel memori Coil (ID = 1 F = 01) dengan 16 buah data ditambahkan di simulator Modbus Slave, maka terlihat kualitas koneksi semua Tag di NI OPC Server menjadi Good

37. Untuk menunjukkan komunikasi antara Modbus Master (NI OPC Server) dengan Modbus Slave, lakukan pengubahan nilai data di kedua tabel memori Modbus Slave, dan perhatikan bahwa nilai Tag di NI OPC Server juga berubah mengikuti nilai pada tabel memori Modbus Slave.

Gambar 37. Pengubahan nilai di Modbus Slave membuat nilai Tag di NI OPC Server juga berubah

38. Begitu juga sebaliknya, pengubahan nilai Tag di NI OPC Server, juga akan membuat perubahan nilai data di tabel memori Modbus Slave. Untuk mengubah nilai Tag di NI OPC Server caranya adalah dengan meng-klik kanan Tag, pilih Synchronous Write atau Asynchronous Write. Pada jendela yang muncul, isi kolom Write Value dengan nilai tertentu, kemudian klik OK atau Apply.

Gambar 38. Pengubahan nilai Tag di NI OPC Server juga mengubah nilai di memori Modbus Slave

39. Apabila menemui kesulitan, rekan-rekan dapat mengunduh file NI OPC Server dan file Modbus Slave di link berikut ini: 


3. PENARIKAN TAG DARI OPC SERVER KE PROGRAM LABVIEW

Setelah protokol komunikasi Modbus RTU antara NI OPC Server sebagai Modbus Master dengan simulator Modbus Slave dapat berjalan, langkah berikutnya adalah membuat semua Tag yang ada di NI OPC Server menjadi variabel pada program LabVIEW. Dengan cara ini, akan membuat LabVIEW menjadi Modbus Master.

Berikut ini langkah-langkah penambahan variabel dari Tag NI OPC Server:

1. Kembali ke program LabVIEW, buka menu File, pilih New. Pada jendela New, pilih Empty Project.

Gambar 39. Di LabVIEW, buat New atau Empty Project

2. Apabila program LabVIEW yang dibuat sebelumnya belum ditutup, maka akan muncul pertanyaan apakah program LabVIEW tersebut akan ditambahkan pada project? Pilih Add (pastikan program yang ditambahkan adalah hanya program tampilan animasi LabVIEW seperti gambar berikut).

Gambar 40. Muncul pertanyaan apakah akan menambahkan program LabVIEW yang sedang terbuka ke project yang baru? Pilih tambahkan (Add)

3. Maka akan muncul kotak project (Untitled Project) yang mirip seperti File Explorer Window, yaitu berbentuk folder Project, yang berisi My Computer, dengan isi di dalamnya terdiri dari file program LabVIEW, diikuti Dependencies di baris kedua (berisi file-file pendukung), dan diakhiri Build Specifications. Build Specifications ini digunakan untuk membuat program menjadi aplikasi, sehingga dapat didistribusikan dan dijalankan di komputer yang lain. 

4. Klik kanan pada My Computer di kotak Project, pilih New, pilih I/O Server.

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

5. Muncul jendela Create New I/O Server, pilih OPC Client, klik Continue.

Gambar 42. Pilih OPC Client di jendela Create New I/O Server

6. Muncul jendela Configure OPC Client I/O Server, pilih National Instruments.NIOPCServers.V5. Kemudian klik OK.

Gambar 43. Pilih National Instruments.NIOPCServers.V5

7. Maka di kotak Project, di bawah file program LabVIEW, muncul folder Untitled Library 1, dengan isi di dalamnya objek OPC1. Klik kanan objek OPC1 tersebut, dan pilih Create Bound Variables.

Gambar 44. Membuka OPC Servers Administration

8. Muncul jendela Create Bound Variables. Di kolom kiri, buka isi Project hingga menemukan Tag yang ada di Channel1 Device1. Pilih semua Tag, dari A1 - A8, S1 - S8 dan Keadaan, dan kemudian pindahkan ke kolom kanan (Added variables) dengan menekan tombol Add. Klik OK.

Gambar 45. Menarik Tag dari NI OPC Server untuk menjadi variabel di program LabVIEW

9. Ketika penambahan variabel berhasil, akan muncul jendela Multiple Variable Editor yang menampilkan nama setiap variabel beserta dengan tipe dan akses datanya.

Gambar 46. Ketika penambahan variabel dari Tag OPC berhasil, muncul Multiple Variable Editor

10. Berikutnya tempatkan kotak Project dan program LabVIEW (Block Diagram) secara berdampingan.

Gambar 47. Membuat kotak Project dan Block Diagram LabVIEW berdampingan

11. Tarik atau "drag" variable S1 - S8 dari kotak Project ke Block Diagram seperti gambar berikut:

Gambar 48. Drag variable S1 - S8 dari kotak Project ke Block Diagram

12. Susun icon variable S1 - S8 dari atas ke bawah, dan tempatkan di dalam While Loop, di kiri Case Structure. Tambahkan icon Bundle, buat inputnya sebanyak 8 buah, dan kemudian satu persatu, hubungkan kaki input Bundle tersebut dengan kaki output variable S1 - S8. Berikutnya, sisipkan gerbang OR antara Cluster dengan icon Unbundle. Kemudian hubungkan output icon Bundle ke input gerbang OR seperti gambar berikut. Maksud dari program ini adalah, pemicuan peralihan dari satu keadaan ke keadaan berikutnya dapat dilakukan dengan menekan tombol di Front Panel ATAU dari pengubahan data variable Modbus Slave.

Gambar 49. Membuat variabel Tag S1 - S8 bisa menjadi pemicu peralihan, yang berfungsi sama seperti tombol S1 - S8 di Front Panel, yang dibuat dengan fungsi OR

13. Berikutnya, tarik atau drag variable Tag A1 - A8 dari kotak Project ke Block Diagram, dan tempatkan di kanan Case Structure, di dalam While Loop.

Gambar 50. Tarik atau drag variable Tag A1 - A8 dari kotak Project ke Block Diagram

14. Susun variable Tag A1 - A8 dari atas ke bawah, kemudian buat semua Access Mode-nya dari Read menjadi Write, dengan cara meng-klik kanan satu persatu, pilih Access Mode, pilih Write. 

Gambar 51. Buat Access Mode variable Tag A1 - A8 dari Read menjadi Write

15. Diinginkan agar nilai variabel Tag A1 - A8 mengikuti kondisi kedelapan LED Aktuator. Untuk itu tambahkan icon Unbundle, hubungkan inputnya dengan input Cluster 2, dan hubungkan kedelapan outputnya, satu persatu ke variable Tag A1 - A8 seperti gambar berikut.

Gambar 52. Hubungkan input Cluster 2 ke variable Tag A1 - A8 dengan bantuan icon Unbundle 

16. Berikutnya, diinginkan variable Tag Keadaan memiliki nilai yang sama seperti nilai icon Tahap. Untuk itu tarik variable Tag Keadaan ke Block Diagram. Buat Access Mode-nya dari Read menjadi Write. Kemudian hubungkan input icon Tahap ke input variable Tag Keadaan, seperti gambar berikut.

Gambar 53. Buat variable Tag Keadaan bernilai sama seperti icon Tahap, untuk itu hubungkan input icon Tahap ke input variable Tag Keadaan (ubah dulu Access Mode Tag Keadaan menjadi Write)

17. Setelah semua variable Tag S1 - S8, A1 - A8, dan variable Tag Keadaan dimasukkan ke dalam program LabVIEW, langkah berikutnya adalah jalankan program LabVIEW dengan menekan tombol Run. Karena melibatkan library OPC, akan muncul jendela Deployment Progress.

Gambar 54. Menjalankan program LabVIEW, muncul jendela Deployment Progress

18. Ketika Deployment berhasil, maka program tampilan LabVIEW akan dapat dijalankan dari Modbus Slave, yaitu dengan mengubah nilai S1 - S8 dari 0 menjadi 1, dan setiap kali LED Aktuator menyala, nilai variable A1 - A8 di Modbus Slave juga berubah nilainya dari 0 ke 1, begitu pula dengan variable Keadaan, nilainya mengikuti nilai di kotak indikator Tahap, seperti terlihat pada gambar berikut.

Gambar 55. Program Tampilan LabVIEW terhubung dengan Modbus Slave

19. Apabila rekan-rekan menemui kesulitan, rekan-rekan dapat mengunduh file program LabVIEW yang terakhir ini di link ini: 

20. Agar lebih jelas, rekan-rekan dapat melihat video pembuatan Modbus Master RTU dengan LabVIEW berikut ini:

Video Pembuatan Modbus Master RTU dengan LabVIEW dan NI OPC Server

21. Sampai di sini, pembuatan Modbus Master RTU dengan program LabVIEW selesai. Di bagian ke-3 akan dijelaskan pembuatan Modbus Slave dengan Arduino. Berikutnya, silahkan klik Tab 3. Pembuatan Modbus Slave RTU.

No comments:

Post a Comment