DATA COMPARISON & BCD CALCULATION INSTRUCTIONS

LAPORAN EKSPERIMEN PROGRAMMABLE LOGIC CONTROLLER

PROGRAM STUDI S1 ELKTRONIKA DAN INSTRUMENTASI

UNIVERSITAS GADJAH MADA

Disusun Oleh:

Nama : Fandri Dulhadh
NIM : 16/398402/PA/17363

Tujuan Eksperimen :

  1. Dapat memahami penggunaan instruksi compare.
  2. Dapat memahami penggunaan instruksi BCD seperti ADD, SUB, INC, dan DEC.

Dasar Teori :

Instruksi compare (CMP) digunakan untuk membandingkan dua buah data baik konstanta atau data yang ada pada suatu channel. Hasil komparasi apakah lebih besar, lebih kecil, atau sama dengan dilihat dari bit flag “>”, “<” atau “=” yang telah disediakan.

Instruksi BCD ADD atau ADD (030) digunakan untuk menjumlahkan 2 buah data secara langsung atau data yang ada pada suatu channel dengan suatu data yang telah ditentukan melalui program, dan data hasil penjumlahan akan ditampilkan di channel hasil.

Jika dalam penjumlahan terjadi carry maka carry yang terjadi akan mempengaruhi operasi aritmatika yang lain. Untuk menghilangkan efek carry tersebut direkomendasikan untuk menyertakan instruksi CLEAR CARRY atau CLC (041) di setiap instruksi aritmatika yang digunakan.

Instruksi BCD SUB atau SUB (031) digunakan untuk operasi pengurangan. Operasi bisa dilakukan diantara konstanta nilai tertentu ataupun data yang ada pada suatu channel. Yang harus diperhatikan operasi ini tidak komutatif (harus diperhatikan mana data yang dijadikan pengurang, mana yang dikurangi).

Jika dalam pengurangan terjadi carry (hasil pengurangan kurang dari nol), maka carry yang terjadi akan dapat dihilangkan efeknya dengan menyertakan instruksi CLEAR CARRY atau CLC (041) di setiap instruksi aritmatika yang digunakan.

Instruksi INCREMENT BCD atau INC(038) digunakan untuk menambah 1 nilai yang ada pada suatu word untuk setiap siklus eksekusi instruksi. Untuk mengetahui proses pertambahan dalam instruksi ini dapat digunakan input diferensiasi.

Instruksi DECREMENT BCD atau DEC (039) digunakan untuk mengurangi 1 nilai yang ada pada suatu word untuk setiap siklus eksekusi instruksi. Untuk mengetahui proses pengurangan dalam instruksi ini dapat digunakan input diferensiasi.

Ladder Diagram :

  1. Kontrol tempat parkir mobil

2. Kontrol operasi filling/draining

Hasil dan Pembahasan :

  1. Kontrol tempat parkir mobil

Dalam eksperimen ini diuji coba atau disimulasi menggunakan CX Programmer kontrol tempat parkir. Tempat parkir ini hanya memuat maksimum 10 mobil. Setiap ada mobil masuk, PLC secara otomatis menambah satu melalui sensor S1. Begitu juga mobil keluar akan secara otomatis mengurangi satu melalui sensor S2. Ketika terdaftar ada 10 mobil, maka tanda “CAR PARK FULL” akan menyala, mempertandakan bahwa tempat parkir telah penuh.

Dari kasus tersebut sudah dijelaskan bahwa PLC akan menghitung secara otomatis setiap mobil yang masuk. Mengacu pada keterangan ini dapat digunakan perintah DIFU dengan alamat W100.00 karena sensor masuk dengan alamat 0.00 bekerja dari posisi LOW ke HIGH setiap ada mobil masuk. Kemudian perintah DIFU ini akan menjadi inputan untuk mengaktifkan perintah BCD Increment. BCD Increment digunakan untuk menghitung jumlah mobil yang masuk karena BCD Increment akan menambah 1 nilai setiap kali perintah ini dieksekusi. Hasil penambahan ini dimasukkan dalam register H0. Dari kasus tersebut juga dijelaskan bahwa mobil keluar juga akan secara otomatis mengurangi satu melalui sensor S2. Dari pernyataan ini dapat digunakan perintah DIFD dengan alamat W100.01 karena mengidentifikasi mobil keluar artinya seluruh badannya sudah harus di luar, dengan begitu pemicunya harus dapat menghitung dari posisi HIGH saat mobil masih dideteksi sensor keluar ke LOW saat mobil sudah benar-benar di luar. Kemudian perintah DIFD ini akan menjadi inputan untuk mengaktifkan perintah BCD Decrement. BCD Decrement ini juga digunakan untuk menghitung jumlah mobil pada tempat parkir karena BCD Decrement akan mengurangi 1 nilai setiap kali perintah ini dieksekusi. Hasil pengurangan ini juga dimasukkan dalam register H0. Berikutnya nilai pada register H0 di compare atau dibandingkan dengan 10 karena maksimal tempat parkir menampung mobil adalah 10. Jika jumlah mobil di parkiran sama dengan 10 maka lampu tanda penuh akan menyala. Jika jumlah mobil di parkiran besar dari 10 maka lampu tanda penuh juga akan menyala. Selain itu lampu tidak akan menyala, sehingga hanya ada 2 kondisi yang menyebabkan lampu menyala seperti pada diagram ladder.

2. Kontrol operasi filling/draining

Dalam eksperimen ini diuji coba atau disimulasi menggunakan CX Programmer control operasi filling. Jika tombol Isi ditekan, maka air mengalir ke dalam tangki. Jika tombol Buang ditekan, maka air akan mengalir keluar tangka. Level air ditunjukkan pada indicator digital (CH100). Jika level air air melebihi level batas atas, maka LED Upper Alarm akan ON, dan jika level air kurang dari level batas bawah, maka LED Lower Alarm akan ON. Hal ini dilakukan secara otomatis dan ketika pengisian sudah dilakukan sebanyak 3 kali maka sistem akan berhenti.

Mengacu pada kasus tersebut maka digunkan instruksi Keep dengan alamat W100.00 untuk memulai dengan inputan tombol start yang di OR kan dengan LS bawah dan  di AND kan dengan workbit inputan mati W100.01 (inputan hasil komparasi). Inputan start digunakan saat pertama sistem dijalankan dan LS Bawah saat sistem sudah berjalan dan dikendalikan secara otomatis. Sistem ketika pertama kali mendapat power juga akan langsung mengaktifkan lampu hijau. Instruksi Keep dengan alamat W100.00 dapat dihentikan latchingnya apabila tombol stop aktif dan LS bawah tidak aktif (mendeteksi air), LS atas aktif dan LS bawah tidak aktif (mendeteksi air), dan workbit inputan mati W100.01 aktif dan LS Bawah tidak aktif (mendeteksi air). Intinya ketiga inputan latching yang di OR kan itu tidak berpengaruh untuk memberhentikan Keep Nyala selama LS Bawah masih aktif atau tidak mendeteksi air. Instruksi Keep Nyala ini akan mengaktifkan valve atas dengan alamat 100.01 dan mixer dengan alamat 100.03.

Kemudian untuk mengaktifkan input valve bawah juga digunakan instruksi Keep dengan inputan LS atas. Untuk memberhentikan Latching dari valve bawah digunakan LS bawah supaya tangki tidak terlalu kosong. Instruksi Keep valve bawah ini akan mengaktifkan valve bawah dengan alamat 100.02.

Selama LS bawah berubah dari LOW ke HIGH atau dari tidak mendeteksi air ke mendeteksi air maka dia akan memicu instruksi DIFU dengan alamat W100.03 untuk mentrigger instruksi BCD Increment dengan alamat register H0. Instruksi BCD ini digunakan untuk menghitung berapa kali valve atas melakukan pengisian. Kemudian digunakan instruksi compare nilai register sekarang dengan nilai 3. Apabila nilai register sama dengan 3 maka lampu merah akan menyala dan lampu hijau akan mati dan juga akan mematikan inputan latching Keep Nyala. Selain dari itu tidak berpengaruh.

Kesimpulan :

  1. Instruksi BCD sangat membantu dalam proses perhitungan matematika sistem karena dapat menghitung, menjumlah dan mengurangi nilai sistem.
  2. Instruksi compare sangat membantu untuk logika matematika dari sistem karena dapat membandingkan nilai sistem dengan nilai yang lain, bisa “sama dengan”, “besar dari”, dan “kurang dari”.

Daftar Pustaka :

https://elisa.ugm.ac.id/community/show/mii2865-eksp-programmable-logic-controller-a2-bakhtiar-alldino-ardi-s-ssi-mcs/#!/section/63713/1569765539

https://www.mosfet-automation.com/tutorial-6-increment-decrement-counter/

https://telinks.wordpress.com/2008/11/27/instruksi-compare-cmp20/

Leave a Reply

Your email address will not be published.