DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca...

34
DAFTAR PUSTAKA. [1] HTTP://www. NEMA. Org [2] HTTP://www.plcs.net [3] OMRON. Programmable Controllers Operation Manual, OMRON Electronics Pte.Ltd. 2002. [4] Frank D Petruzella, Programmable Logic Controller, McGraw Hill .USA. 1998. [5] ATMEL. Datasheet AT89S52. [6] Moh. Ibnu Malik, ST. Belajar Mikrokontroler Atmel AT89S52.Gava Media Yogyakarta. 2003 [7] Pari Vallal Kannan, Micrprocessor Design Project Training. University of Texas. Dallas. 50

Transcript of DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca...

Page 1: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

DAFTAR PUSTAKA.

[1] HTTP://www. NEMA. Org

[2] HTTP://www.plcs.net

[3] OMRON. Programmable Controllers Operation Manual, OMRON Electronics

Pte.Ltd. 2002.

[4] Frank D Petruzella, Programmable Logic Controller, McGraw Hill .USA. 1998.

[5] ATMEL. Datasheet AT89S52.

[6] Moh. Ibnu Malik, ST. Belajar Mikrokontroler Atmel AT89S52.Gava Media

Yogyakarta. 2003

[7] Pari Vallal Kannan, Micrprocessor Design Project Training. University of

Texas. Dallas.

50

Page 2: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

DAFTAR PUBLIKASI

1. Gun Gun Gumilar, Asep Suhendi, dan Khairurrijal. “Rancang Bangun

Programmable Logic Controller (PLC) Minimum Berbasis Mikrokontoler

ATMEL AT89S52”. Asosiasi Akademisi Perguruan Tinggi Seluruh Indonesia

(ASASI) (Ciawi, Bogor, 9-11 Agustus 2007).

2. Gun Gun Gumilar dan Khairurrijal. “Super Programmable Logic Controller

T100MD-888+”. Seminar Instrumentasi Berbasis Fisika (SIBF) (Bandung, 31

Agustus 2006).

3. Yanuar Syapaat, Suryadi, Heri Permadi, Gun Gun Gumilar, dan Khairurrijal.

”Aplikasi Mikrokontroler MCS-51 dalam Percobaan Bandul untuk Penentuan

Nilai Gravitasi Bumi”. Seminar Nasional Teknologi dan Rekayasa Industri

(SNTRI07). Applied Tech. 07 Vol. 1 (serpong, April 2007).

51

Page 3: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LAMPIRAN PUBLIKASI

52

Page 4: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

RANCANG BANGUN PROGRAMMABLE LOGIC CONTROLLER (PLC) MINIMUM

BERBASIS MIKROKONTOLER ATMEL AT89S52

Gun Gun Gumilar1, Asep Suhendi, dan Khairurrijal2

K.K. Fisika Material Elektronik, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung

Jalan Ganesa 10, Bandung 40132 E-mail : [email protected], [email protected]

Abstrak Programmable Logic Controller (PLC) merupakan suatu piranti yang dibuat sebagai pengganti kumpulan relay-relay mekanik yang digunakan dalam sistem kontrol. PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan status keluarannya. Sedangkan bentuk dan jumlah pengubahan yang terjadi pada keluaran PLC bergantung pada program yang diberikan oleh pengguna dalam bentuk diagram ladder yang disebut dengan program aplikasi kendali. Mikrokontroler Atmel AT89S52 telah dimanfaatkan dalam rancang bangun sebuah PLC minimum. Sistem operasi PLC minimum tersebut juga telah dibangun untuk memindai (scan) proses, yang dimulai dengan melakukan pembacaan modul-modul masukan, mengeksekusi program aplikasi kendali dan diakhiri dengan meng-update modul-modul keluarannya. Instruksi yang dapat dieksekusi oleh sistem operasi PLC minimum tersebut dapat berupa fungsi kombinasional, sekuensial, pewaktu, dan pencacah. Selain itu, PLC minimum tersebut dapat berkomunikasi dengan divais lain (komputer) melalui RS232 secara asinkron untuk melakukan download, upload dan monitor PLC.

Kata Kunci : Programmable Logic Controller (PLC), mikrokontroler AT89S52, sistem kontrol

I. Pendahuluan

Industrialisasi adalah sektor penting dalam kehidupan manusia. Hampir semua kebutuhan manusia tidak dapat lepas dari proses yang terjadi di industri. Salah satu cara untuk meningkatkan hasil produksi di industri-industri adalah dengan terus mengembangkan sistem pengendalian proses produksi tersebut. Seiring perkembangan yang terjadi di bidang elektronika melahirkan teknologi sistem pengendali Programmable Logic Controller (PLC) yang mampu melakukan pengendalian secara diskrit dan analog, memiliki kemudahan dalam pemrograman dan handal untuk digunakan sebagai basis sistem otomasi di industri-industri.

PLC (Programmable Logic Controller) atau kendali logika terprogram merupakan suatu piranti elektronik yang dirancang untuk dapat beroperasi secara digital dengan menggunakan memori sebagai media penyimpanan instruksi-instruksi internal untuk menjalankan fungsi-fungsi logika, seperti fungsi pencacah, fungsi urutan proses, fungsi waktu, fungsi aritmatika dan fungsi yang lainnya dengan cara memprogramnya. Program-program yang telah dibuat kemudian dimasukkan dalam PLC melalui programmer/monitor. Pembuatan program

dapat digunakan melalui komputer sehingga dapat mempercepat hasil pekerjaan. Fungsi lain pada PLC adalah dapat digunakan untuk memonitor jalannya proses pengendalian yang sedang berlangsung, sehingga dapat dengan mudah dikenali urutan kerja (work squence) proses pengendalian yang terjadi1.

II.Perancangan Sistem Minimum

PLC

2.1 Komponen Utama Penyusun Sistem Pada dasarnya bagian-bagian PLC

dapat dibagi menjadi 4 bagian utama yaitu central processing unit (CPU), modul input/output, power supply dan programming device seperti yang ditunjukkan pada gambar 1.

CPU adalah “otak” dari PLC yang berfungsi untuk mengeksekusi program yang ditanam oleh programming device, mengontrol komunikasi antar modul dan melakukan perubahan status I/O berdasarkan program yang ada di memori.

Power supply adalah komponen PLC yang berfungsi untuk memberikan arus listrik ke komponen PLC yang lain. Pada beberapa PLC arus listrik yang diberikan ke PLC dibedakan dengan arus listrik untuk divais eksternal.

53

Page 5: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Gambar 1 Bagian-bagian PLC

Modul input/output adalah interface

antara PLC dengan divais eksternal. Interface ini mengkonversi sinyal yang diterimanya dari divais eksternal menjadi sinyal logic yang dapat dimengerti oleh CPU.

Programming device adalah alat untuk membuat program yang nantinya akan ditanam ke memori program PLC. Programming device dapat berupa personal computer ataupun hand-held unit2. 2.2 Spesifikasi sistem minimum PLC

Sistem PLC ini dibuat dengan perangkat keras yang memiliki fasilitas minimun beserta perangkat lunak sistem operasi yang ditanamkan pada mikrokontroler sehingga memfungsikan mikrokontroler tersebut sebagai PLC. Selain itu juga dibuat program konversi dari diagram ladder menjadi suatu format data yang dapat dimengerti oleh sistem operasi tersebut. Pembuatan perangkat lunak diagram Ladder untuk memprogram PLC dibuat sendiri dengan menggunakan bahasa pemrograman Visual Basic 6. Diagram blok sistem PLC yang akan dibangun dapat dilihat pada gambar 2.

Spesifikasi sistem minimum PLC yang akan dibuat adalah : 1. PLC dapat diprogram dengan diagram

ladder. Program yang akan ditanamkan ke PLC tersebut selanjutya disebut dengan program aplikasi kontrol. Program aplikasi ini nantinya dapat di downloading ke PLC dan juga dapat di uploading dari PLC ke komputer melalui komunikasi serial RS232 secara asinkron UART (Universal Asynchronous Receiver /Transmitter).

2. Selama PLC diaktifkan atau dalam keadaan RUN komputer dapat mengakses data-data masukan atau keluaran dan variabel proses melalui komunikasi UART.

3. PLC ini terdiri dari 8 masukan digital, 8 keluaran digital, 1 saluran masukan analog, tampilan LCD dan 1 port komunikasi serial RS232.

Gambar 2 Rancangan sistem PLC

2.3 Rancang Bangun Perangkat Keras

Jenis mikrokontroler yang difungsikan sebagai PLC pada sistem ini adalah mikrokontroler Atmel AT89S52. Ada beberapa alasan yang mendasari penggunaan mikrokontroler ini diantaranya3: • Adanya downloadable flash memory 8 KB • Adanya satu timer tambahan. • Harganya yang tergolong murah • Mudah didapat dipasaran 2.3.1 Komunikasi Serial RS232

Untuk berkomunikasi dengan divais luar melalui komunikasi RS232, digunakan port 3.0 sebagai penerima data (RXD) dan port 3.1 sebagai pengirim data (TXD). Tegangan pada mikrokontroler untuk standar digitalnya adalah +5V dan 0V, standar ini bukan level TTL yang menjadi standar komunikasi serial RS232, maka Integreted Circuit (IC) Maxim 232 digunakan untuk mengubahnya menjadi level TTL RS232. Port serial pada mikrokontroler AT89S52 bersifat full duplex artinya pengiriman dan penerimaan data dapat dilakukan secara bersamaan. 2.3.2 Port Masukan Digital

Saluran masukan PLC pada sistem ini menggunakan port 0 pada mikrokontroler AT89S52. Karakteristik yang dimilikinya adalah input digital dengan tegangan masukan kurang dari 5VDC adalah logika 0 dan lebih dari 5VDC berlogika 1 (aktif high)

Pengalamatan port masukan mengunakan standar yang didapat pada buku Programmable Logic Controller karya Frank D. Petruzella, seperti dapat dilihat pada tabel 14.

Tabel 1 Pengalamatan port masukan

54

Page 6: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

2.3.3 Port keluaran digital Saluran keluaran digital PLC

menggunakan port 2 pada mikrokontroler AT89S52. Untuk mengatur keluaran yang diinginkan, pada port keluaran ini digunakan IC 74HC573 sebagai latch yang berfungsi untuk mengatur keluaran dari PLC. Pengaturan latch ini dilakukan melalui port 3.3 dari mikrokontroler, apabila dikirimkan sinyal high maka data dari port 2 akan masuk ke port keluaran, ketika dikirimkan sinyal low maka IC tersebut akan menyimpan data terakhir yang masuk ke port keluaran (latch).

Pengalamatan port keluaran dapat dilihat pada tabel 2. Karakteristik dari port keluaran adalah keluaran tegangan 5 VDC4

Tabel 2 Pengalamatan port keluaran

2.3.4 Tampilan LCD Pada PLC ini terdapat port yang

digunakan untuk menampilkan data melalui LCD, port yang digunakan adalah port 2 dari mikrokontroler, yang pengaturan penggunaannya diatur melalui port 3.7. Pada sistem tampilan LCD ini digunakan IC 74LS245 sebagai buffer yang mengatur arah data yang masuk ke LCD. Tampilan LCD ini bisa dipergunakan untuk menampilkan berbagai parameter yang sedang dioperasikan oleh PLC dengan cara memprogramnya, sehingga bisa diketahui berbagai variabel yang diinginkan.

2.4 Rancang Bangun Perangkat Lunak

Sistem operasi yang dibuat dan akan ditanam ke mikrokontroler AT89S52 ini berfungsi untuk mengatur cara kerja PLC atau dengan kata lain memfungsikan mikrokontroler AT89S52 sebagai PLC. Pemrograman sistem operasi ini akan ditulis dengan bahasa Assembler. Secara umum

algoritma sistem operasi yang akan dibuat dapat dilihat pada gambar 7. 2.4.1 Prosedur utama

Prosedur ini adalah prosedur yang dijalankan oleh mikrokontroler pertama kali, Prosedur ini dinamakan program utama yang akan menjalankan fungsi utama sistem operasi. Prosedur ini akan menjalankan satu persatu instruksi dari program aplikasi Berikut prosedur utama untuk masing-masing instruksinya5. o LOAD

Instruksi ini akan membaca data register I/O sesuai dengan parameternya dan menyimpannya dalam stack. Format data untuk instruksi ini adalah 00 diikuti dengan alamat I/O yang akan diakses, contoh 001001.

o LOADNOT Instruksi ini akan membaca data register I/O sesuai dengan parameternya, di-XOR dengan 1 dan menyimpannya dalam stack. Format data untuk instruksi ini adalah 01 diikuti dengan alamat I/O yang akan diakses, contoh 011002.

o AND Instruksi ini akan membaca isi stack dan di-AND-kan dengan data register I/O sesuai dengan parameternya kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 02 diikuti dengan alamat I/O yang akan diakses, contoh 021002.

o ANDNOT Instruksi ini akan membaca isi stack, isi stack ini di-AND-kan dengan hasil data register I/O di-XOR dengan 1, kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 03 diikuti dengan alamat I/O yang akan diakses, contoh 031002.

o OR Instruksi ini akan membaca isi stack dan di-OR-kan dengan data register I/O sesuai dengan parameternya kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 04 diikuti dengan alamat I/O yang akan diakses, contoh 041002

o ORNOT Instruksi ini akan membaca isi stack, isi stack ini di-OR-kan dengan hasil dari data register I/O di-XOR dengan 1, kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 05 diikuti dengan alamat I/O yang akan diakses, contoh 051002.

o ORLOAD Instruksi ini akan membaca data stack sebelumnya dan di-OR-kan dengan data stack sekarang kemudian disimpan kembali

55

Page 7: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

kedalam stack. Format data untuk instruksi ini adalah 06 tanpa parameter.

Gambar 7 Algoritma Power-ON Ready (POR) PLC

o ANDLOAD

Instruksi ini akan membaca data stack sebelumnya dan di-AND-kan dengan data stack sekarang kemudian disimpan kembali kedalam stack. Format data untuk instruksi ini adalah 07 tanpa parameter.

o ST Instruksi ini akan membaca data dari stack dan diberikan ke register output sesuai dengan parameternya. Format data untuk instruksi ini adalah 08 diikuti dengan alamat I/O yang akan diakses, contoh 081002.

o STNOT Instruksi ini akan membaca data dari stack dan di-XOR-kan dengan 1 kemudian diberikan ke register output sesuai dengan parameternya. Format data untuk instruksi ini adalah 09 diikuti dengan alamat I/O yang akan diakses, contoh 091002.

2.5 Cara Kerja Sistem

Untuk menjalankan sistem PLC ini, terlebih dahulu sistem harus terkoneksi dengan PC(Personal Computer) atau divais lain melalui komunikasi serial. Adapun langkah untuk memprogram PLC tersebut adalah sebagai berikut: o Downloading Program Aplikasi Kontrol

Langkah pertama adalah menanamkan program aplikasi kedalam PLC, yang dapat dijalankan saat PLC dalam mode standby. Komunikasi ini dilakukan dengan cara mengirim karakter ‘w’ (write) yang diikuiti dengan deretan instruksi-instruksi program aplikasi dan diakhiri dengan karakter ‘@’ sebagai tanda akhir dari program aplikasi. Deretan instruksi-instruksi yang dikirim akan disimpan didalam memori mikrokontroler.

o Uploading Program Aplikasi Kontrol Komunikasi ini untuk mendapatkan instruksi-instruksi pada program aplikasi yang ada di memori PLC, yang dapat dijalankan saat PLC dalam mode RUN. Komunikasi ini dilakukan dengan cara mengirim karakter ‘r’ (read) ke PLC, selanjutnya PLC akan mengirimkan semua instruksi yang tersimpan didalam memori sehingga user bisa mengetahui program yang ditanamkan didalam mikrokontroler.

o Pembacaan status I/O Komunikasi ini untuk memonitor status input atau output PLC, yang dapat dijalankan saat PLC pada mode RUN. Komunikasi ini dilakukan dengan cara mengirim karakter ‘m’ (monitor) ke PLC, sehingga bisa diketahui status input dan output pada program aplikasi yang sedang dijalankan.

III. Hasil dan Pembahasan

Berikut adalah gambar rancangan minimum PLC dengan fitur delapan buah input digital, delapan buah output digital dan tampilan LCD.

Gambar 8 PLC minimum

Pada Gambar 8 diperlihatkan salah

satu program ladder yang diaplikasikan pada sistem minimum PLC. Aplikasi tersebut merupakan aplikasi sederhana dengan dua masukan dan satu keluaran.

Gambar 9 aplikasi ladder diagram

56

Page 8: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Pada contoh aplikasi tersebut terlihat masukan yang digunakan adalah input 0 yang bersifat normally open dengan kode 1000, sedangkan masukan yang kedua menggunakan input 1 yang bersifat normally close dengan kode 1001. Kedua masukan ini dihubungkan dengan operator and. Hasil dari penggabungan kedua input ini dihubungkan dengan keluaran 0 dengan kode 0000.

Sebelum dikirimkan ke dalam PLC, program ladder tersebut dikonversi ke dalam format heksa terlebih dahulu. Dalam bentuk heksa, program ladder tersebut akan terlihat sebagai berikut

001000021001080000@. 00 merupakan format heksa yang akan me-load (normally open) masukan dengan alamat 1000, kemudian 02 merupakan representasi dari logika and antara masukan sebelumnya (1000) dengan masukan berikutnya (1001). Hasil operasi kedua masukan akan menjadi keluaran untuk alamat 0000, 08 merupakan kode yang diartikan sebagai keluaran dari PLC. Tabel 3 hasil uji ladder logika and sistem minimum

PLC IN0 IN1 OUT0

0 0 0 0 1 0 1 0 1 1 1 0

Pada uji logika tersebut nilai dari IN0

dan IN1 diubah-ubah, perubahan keempat input ini menyebabkan perubahan OUT0, perubahan tersebut dapat dilihat pada Tabel 3 diatas.

IV. Kesimpulan dan Saran

Berdasarkan hasil rancang bangun dan ujicoba sistem minimum PLC yang diimplementasikan, terdapat beberapa hal yang dapat disimpulkan, antara lain: a. Untuk mengimplementasikan PLC tidak

diperlukan perangkat-perangkat yang mahal, semua perangkat atau komponen yang diperlukan mudah didapat di pasar.

b. Sistem operasi PLC yang dibuat telah mengakomodasi fungsi-fungsi AND, OR, dan XOR..

c. PLC yang diimplementasikan tidak memiliki port input dan output serta register yang banyak walaupun sebenarnya masih terdapat port-port pararel yang tidak digunakan pada mikrokontroler AT89S52. Hal ini dikarenakan keterbatasan kapasitas flash memory.

d. Tidak adanya proteksi terhadap pengiriman instruksi tidak dikenal menyebabkan crash pada PLC jika mengirimkan karakter selain instruksi lewat hyperterminal.

V. Daftar Pustaka

[1] HTTP://www.NEMA.Org [2] HTTP://www.plcs.net [3] Moh. Ibnu Malik, ST. Belajar

Mikrokontroler Atmel AT89S52.Gava Media Yogyakarta. 2003

[4] Frank D Petruzella, Programmable Logic Controller, McGraw Hill .USA. 1998

[5] OMRON. Programmable Controllers Operation Manual, OMRON Electronics Pte.Ltd. 2002

[6] ATMEL. Datasheet AT89S52 [7] Dallas Semiconductor. Datasheet

Maxim [8] Pari Vallal Kannan, Micrprocessor

Design Project Training. University of Texas. Dallas

57

Page 9: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Super Programmable Logic Controller T100MD-888+

Gun Gun Gumilar1) dan Khairurrijal2)

Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung

Jalan Ganesa 10, Bandung 40132 1) E-mail: [email protected]

2) E-mail: [email protected] Abstrak – Salah satu jenis peralatan kontrol otomatis yang saat ini banyak digunakan adalah PLC (Programmable Logic Controller). Dengan adanya PLC maka segala proses kontrol yang semula dirasa cukup rumit dapat tertangani dengan lebih baik secara otomatis. Aplikasi PLC sendiri saat ini tidak hanya terbatas pada dunia industri saja, tetapi juga sudah merambah ke berbagai bidang yang lain seperti kesehatan, pertanian bahkan sampai pada peralatan kebutuhan sehari-hari. Jenis PLC yang dibahas pada essai ini adalah Super PLC tipe T100MD-888+ yang diproduksi oleh Triangle Research Inc. Pemaparan mengenai Super PLC ini mencakup karakteristik, sistem I/O, cara kerja, bahasa yang dipergunakan sampai beberapa aplikasi sederhana. Kata Kunci: Programmable Logic Controller (PLC), Super PLC.

1. PENDAHULUAN

PLC (Programmable Logic Controller) atau kendali logika terprogram merupakan suatu piranti elektronik yang dirancang untuk dapat beroperasi secara digital dengan menggunakan memori sebagai media penyimpanan instruksi-instruksi internal untuk menjalankan fungsi-fungsi logika, seperti fungsi pencacah, fungsi urutan proses, fungsi waktu, fungsi aritmatika dan fungsi yang lainnya dengan cara memprogramnya. Program-program yang telah dibuat kemudian dimasukkan dalam PLC melalui programmer/monitor. Pembuatan program dapat digunakan melalui komputer sehingga dapat mempercepat hasil pekerjaan. Fungsi lain pada PLC adalah dapat digunakan untuk memonitor jalannya proses pengendalian yang sedang berlangsung, sehingga dapat dengan mudah dikenali urutan kerja (work squence) proses pengendalian yang terjadi Salah satu jenis PLC yang tergolong sebagai keluaran terbaru adalah Super PLC jenis T100MD-888+. PLC jenis ini dikeluarkan oleh

Triangle Research International, Inc. Berikut dipaparkan tentang Super PLC T100MD-888+.

2. SUPER PLC T100MD-888+ 2.1. Komponen Utama Penyusun SUPER

PLC T100MD-888+ Dalam Super PLC T100MD-888+ terdapat 4 (empat) komponen utama sebagai penyusun sistem keseluruhan, yaitu : 1. Central Prossesing Unit (CPU), merupakan

otak dari Super PLC yang terdiri dari 3 bagian : a. Mikroprosesor, merupakan otak dari Super

PLC yang difungsikan untuk operasi matematika dan operasi logika.

b. Memori, merupakan daerah CPU yang digunakan untuk melakukan proses penyimpanan dan pengiriman data pada Super PLC.

c. Catu daya, berfungsi untuk mengubah sumber masukan tegangan bolak-balik menjadi tegangan searah.

2. Programmer/Monitor 3. Input/Output modules 4. Rak dan chasis Hubungan bagian utama dari Super PLC tersebut dapat dilihat pada Gambar 1 berikut ini

Gambar 1. Skematik Super PLC T100MD-888+

58

Page 10: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

2.2. Karakteristik Salah satu jenis PLC yang tergolong sebagai keluaran terbaru adalah Super PLC jenis T100MD-888+. PLC jenis ini memiliki beberapa karakteristik sebagai berikut [2] :

1. 8 saluran input analog 10 bit. 2. 2 saluran output analog 8 bit. 3. 2 saluran Programmable Motion

Controllers untuk mengatur gerak motor stepper hingga 20.000 pulsa per detik.

4. 2 saluran output PWM (Pulse Width Modulated).

5. 2 saluran HSC (High Speed Counters) 32 bit yang bisa menghitung hingga mencapai 10.000 Hz.

6. 4 saluran input untuk interrupt 7. 2 saluran pengukuran pulsa masukan

untuk mengukur frekuensi dan lebar pulsa dari pulsa yang datang hingga 10.000 Hz.

8. Real time clock/calendar untuk memprogram aksi ON/OFF yang telah dijadwalkan.

9. Program memori EEPROM 16 bit (6016 karakter), yang bisa diperbesar hingga 8190 karakter dengan menggunakan IC-M2018P.

10. EEPROM yang bisa diprogram sebanyak 1700 karakter untuk data pengguna, bisa diperbesar hingga 7750 karakter dengan IC-M2018P.

11. Terdapat 16 sambungan komputasi PID yang menjadikan PLC jenis ini dapat secara langsung memberikan kontrol PID secara digital untuk proses otomatisasi.

12. Sambungan port RS232 untuk koneksi dengan PC guna pemrograman atau pemantauan.

13. Sambungan port RS485 untuk networking atau koneksi dengan piranti lain di luar PLC seperti layar LCD dan RS485 berdasarkan I/O cards analog.

14. Memiliki protokol standar industri, baik port serial RS232 maupun RS485 yang secara berkesinambungan mendukung komunikasi beberapa protokol, seperti : i) Native ASCII based Host Link

Commands ii) MODBUS RTU iii) MODBUS ASCII iv) OMRON C20H Host Link Commands.

15. Watch-Dog Timer (WDT) yang akan me-reset PLC jika CPU tidak berfungsi karena kesalahan hardware atau software. Sistem reset oleh WDT dapat ditentukan oleh perintah STATUS (1).

Gambar keseluruhan dari PLC T100MD-888+ adalah sebagai berikut

Gambar 2, T100MD-888+ dan modul LCD [3]

2.3. Sistem I/O (Masukan dan Keluaran)

2.3.1. Masukan dan Keluaran Khusus Empat saluran pertama dari delapan saluran masukan ON/OFF T100MD dapat dikonfigurasikan sebagai “special inputs” seperti Counter dengan kecepatan tinggi, interrupt dan pengukuran pulsa (Pulse Measurement). Sedangkan pada pada saluran keluaran, beberapa salurannya dapat dikonfiguraikan sebagai PWM dan pengontrol pulsa keluaran untuk stepper. Jika saluran I/O khusus ini tidak digunakan maka saluran-saluran tersebut dapat digunakan sebagai saluran ON/OFF biasa pada Diagram Ladder. Jika dua atau lebih fungsi khusus menggunakan saluran I/O yang sama maka hanya satu yang akan bekerja pada satu waktu. Kedudukan dari I/O khusus ini dapat dilihat pada tabel berikut :

2.3.1.1. Masukan Khusus Masukan khusus pada Super PLC T100MD-888+ dapat dilihat pada Tabel 1 berikut ini

Tabel 1. Masukan Khusus

Sebuah pin yang dipergunakan sebagai suatu masukan khusus tertentu tidak bisa dipergunakan sebagai masukan khusus yang lain pada saat yang bersamaan, misalnya pin 3 tidak bisa digunakan sebagai Counter kecepatan tinggi dan pada

59

Page 11: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

saat sama berfungsi sebagai pin pengukur pulsa. 2.3.1.2. Keluaran Khusus Keluaran khusus pada Super PLC T100MD-888+ dapat dilihat pada Tabel 2 berikut ini

Tabel 2 Keluaran Khusus

2.3.2. Sistem I/O Analog dan Digital 2.3.2.1. Sistem I/O Analog Super PLC T100MD-888+ memiliki delapan buah saluran I/O analog. Kedelapan saluran I/O analog tersebut menggunakan konektor DB15 yang terletak pada sudut kiri pada Super PLC T100MD888+. Super PLC ini memerlukan masukan tegangan referensi analog +5V dan ground analog pada bagian female DB15 seperti terlihat pada Gambar 3.

Signal Pin # A/D #1 8 A/D #2 7 A/D #3 6 A/D #4 5 A/D #5 4 A/D #6 3

A/D #7 OR D/A #1 2 A/D #8 OR D/A #2 1 Analog Ref. AVcc 13-15

Analog ground AVss 9-11

Gambar 3 saluran I/O analog

2.3.2.2. Sistem I/O Digital Pada saluran I/O digital, terdapat delapan buah saluran masukan dan delapan buah saluran keluaran. Pada tiap saluran masukan dan saluran keluaran terdapat LED yang akan menyala apabila I/O dipergunakan. Nyala LED ini akan sesuai dengan posisi pin yang dipergunakan sebagai saluran I/O. Untuk Input digital, LED yang dipergunakan berwarna hijau sedagkan untuk Output digital LED yang dipergunakan berwarna merah. [4]

2.4. Perangkat Lunak Perangkat lunak merupakan bagian paling penting dari T100MD-888+ karena perangkat

lunaklah yang akan mengatur kerja dari PLC ini, tanpa adanya perangkat lunak yang didownload ke PLC, maka PLC ini tidak akan berkerja. Jenis perangkat lunak yang dipergunakan adalah bahasa pemrograman Ladder dan Tbasic. Perangkat lunak yang digunakan untuk memprogram PLC jenis ini adalah perangkat lunak Internet Trilogi Versi 5.3 yang dikeluarkan oleh Triangle Research International, Inc. Seperti diberikan dalam Gambar 4.

Gambar 4. Tampilan Perangkat Lunak Internet

Trilogi Versi 5.3

Pada PLC jenis ini, diberikan fasilitas untuk melakukan download program ataupun monitoring terhadap kinerja sistem dengan menggunakan sistem jaringan, sehingga ketika pengguna ingin memasukan program atau melihat keberjalanan sistem, tidak perlu dilakukan dengan datang ke lokasi dimana PLC berada, tetapi cukup mengkoneksikannya dengan jaringan internet sehingga ia dapat memprogram atau memantau sistem di manapun ia berada. Penggambaran untuk diagam ladder dikenal simbol-simbol yang hampir sama dengan relay-relay mekanik, yaitu : a. Saklar Normally Open (NO) b. Saklar Normally Close (NC) c. Keluaran

60

Page 12: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Pada sistem digital dikenal beberapa tipe dasar gerbang logika. Gerbang merupakan suatu rangkaian dengan satu atau beberapa masukan yang akan menghasilkan satu buah keluaran bila diberi masukan. Gerbang logika yang dapat diimplementasikan dengan diagram Ladder adalah a. Gerbang AND b. Gerbang OR c. Gerbang NAND (Not AND) d. Gerbang NOR (Not OR) e. Gerbang XOR (Exclusive OR) f. Gerbang XNOR(Exclusive NOR) Beberapa gerbang tersebut juga dapat digabungkan dalam suatu rangkaian hingga diperoleh keluaran yang diinginkan. 2.5 Cara Operasi Langkah untuk membuat suatu aplikasi pada Super PLC T100MD-888+ ini adalah sebagai berikut : a. Pertama tentukan terlebih dahulu jenis

aplikasi yang akan digunakan b. Setelah itu, buat pemrogramannya dengan

menggunakan diagram Ladder c. Penggunaan diagram Ladder ini cukup

mudah karena pengguna hanya cukup memasukkan simbol-simbol yang melambangkan suatu masukan atau keluaran tertentu.

d. Setelah program selesai dibuat, maka langkah selanjutnya adalah men-download program tersebut ke PLC.

e. Apabila pada aplikasi yang dibuat mempergunakan lebih dari satu PLC, maka pen-download-annya pun akan berbeda untuk tiap PLC. Tetapi dapat dilakukan melalui satu komputer saja asal komputer tersebut terhubung dengan semua PLC yang dipakai.

f. Langkah selanjutnya adalah mengkonfigurasikan hardwarenya sesuai dengan program yang dibuat.

g. Untuk pengontrollan alat, bisa dilakukan melalui hardware langsung ataupun bisa menggunakan software.

3. HASIL DAN PEMBAHASAN

Pada Gambar 5 diperlihatkan salah satu program ladder yang diaplikasikan pada Super PLC. Aplikasi tersebut merupakan aplikasi sederhana untuk menyalakan LED secara bergantian yang seolah-olah LED tersebut berjalan. Pada diagram tersebut, apabila user menekan saklar start, maka diagram ladder pada baris yang pertama akan terhubung, akibatnya relay

run akan ter-energis. Karena saklar start dan run merupakan gerbang OR, maka meskipun saklar start di lepas, sistem akan terus berjalan hingga saklar stop di tekan. Relay run terhubung dengan timer Clk0,5s, yang artinya timer ini akan meloloskan sinyal setiap 0,5 detik sekali. Hasil keluaran dari timer ini akan dibaca sebagai detak oleh keluaran Seq1, yang kemudian Seq1 akan meneruskan sinyalnya menuju setiap keluaran sesuai dengan detak yang diberikan, dalam hal ini dari detak 1 sampai 4 detak setelah itu akan berulang lagi. Untuk keluarann yang berupa LED, maka akan terlihat nyala LED yang berjalan secara bolak-balik hingga saklar stop ditekan. LED tersebut akan menyala secara bergantian mulai dari LED no 1 dan 8 kemudian diikuti oleh LED no 2 dan 7 dan seterusnya dengan selang waktu 0,5 detik. Proses ini akan berlangsung terus hingga tombol stop di tekan. Pada diagram ladder tersebut juga dilengkapi dengan tombol manual, sehingga pengguna dapat mengaktifkan sistem secara manual. Ketika tombol manual diaktifkan, maka detak yang dihasilkan oleh timer Clk0,5s akan tertahan. Untuk memberikan detak pada keluaran Seq1, dilakukan dengan menekan tombol Step.

Gambar 5.Diagram Ladder Aplikasi Nyala LED

61

Page 13: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Selain contoh di atas, Super PLC T100MD-888+ juga dapat diaplikasikan sebagai pencacah (Counter) dan pada berbagai fungsi pewaktu seperti : a. On-Delay (penunda on) b. Off-delay (penunda off) c. Limited on time (pembatas waktu on) d. Repeat Cycling (Siklus pengulangan) e. Sistem dengan penekanan tombol jenis

pushbutton. f. Dan lain-lain

4. RINGKASAN PLC (Programmable Logic Controller) merupakan sebuah alat kontrol yang dipergunakan sebagai alat kontrol otomatis, sehingga dapat meningkatkan jumlah hasil produksi secara efektif dan efisien. Saat ini penggunaan PLC tidak hanya terbatas pada dunia industri saja tetapi juga sudah diaplikasikan pada alat-alat kedokteran, alat-alat rumah tangga, dll. Salah satu jenis PLC yang merupakan seri keluaran terbaru adalah super PLC, beberapa kelebihan Super PLC T100MD-888+ ini adalah : • Fleksibel (keluwesan) • Deteksi dan koreksi kesalahan lebih

mudah • Harga relatif murah • Pengamatan visual (visual observation) • Kecepatan operasi (speed of operation) • Implementasi proyek lebih singkat • Lebih sederhana dan mudah dalam • penggunaannya, memodifikasi lebih

mudah tanpa tambahan biaya. • Dokumentasi mudah.

Di samping kelebihan tersebut, Super PLC tersebut kurang cocok untuk proses seperti pada lingkungan panas dan vibrasi yang tinggi.

DAFTAR PUSTAKA [1] M. Budiyanto dan A. Wijaya, “Pengenalan

Dasar-dasar PLC (Programmable Logic Controller) Disertai Contoh Aplikasinya”, Gava Media, Yogyakarta, 2003

[2] Anonim, “User Manual Super Programmable Controllers”, Triangle Research International, Inc., USA, 2003.

[3] http://scmstore.com/english/PLC/ SCMT100/MD888/info.htm

[4] www.flexibleautomation.co.nz/triplc/ mdseries.htm

62

Page 14: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Aplikasi Mikrokontroler MCS-51 dalam Percobaan Bandul untuk Penentuan Nilai Gravitasi Bumi

Yanuar Syapaat, Suryadi, Heri Permadi, Gun Gun Gumilar, dan Khairurrijal*)

Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung

Jalan Ganesha 10, Bandung, Indonesia, 40132 *E-mail: [email protected]

Abstrak

Mikrokontroler dapat dianalogikan dengan komputer berukuran kecil atau biasa disebut minikomputer. Layaknya sebuah komputer yang memiliki posesor, memori, port input untuk mouse, port output untuk printer, layar dll. mikrokontroler juga mempunyai fitur yang sama tetapi berukuran sangat kecil bila dibandingkan komputer. Mikrokontroler AT89S52 merupakan salah satu jenis dari mikrokoktroler MCS-51 yang mempunyai 8 Kbyte sistem flash memori sehingga kemampuan baca tulis program bisa mencapai 1000 kali, 32 pin I/O dan dengan kelebihan lain, mikrokontroler ini dapat digunakan dalam berbagai fungsi. Dan pada percobaan kali ini, mikrokontroler ini digunakan untuk menghitung nilai gravitasi dari percobaan bandul. Sensor inframerah digunakan sebagai pendeteksi gerak bandul dan sinyal sensor tersebut dimasukan kedalam mikrokontrole. Sinyal yang masuk diidentifikasi sebagai interupsi pada mikrokontroler yang di program untuk mengenali bahwa waktu antara dua sinyal dari sensor sebagai perioda bandul. Perumusan matematis percobaan bandul menyatakan adanya hubungan antara besar perioda, panjang tali dan nilai gravitasi, oleh karena itu nilai gravitasi dapat dihitung kemudian. Pengolahan data mempergunakan ms excel yang mengolah data hasil akusisi dari hyperteminal. Percobaan ini diharapkan dapat menunjukkan bahwa pengamatan fenomena fisika bukanlah sesuatu hal yang sangat sulit. Oleh karena itu pembuatan alat-alat ini sangat cocok untuk lab fisika di sekolah-sekolah ataupun perguruan tinggi dan akan sangat membantu pembelajaran fisika. Katakunci : Mikrokontroler, AT89S52, Program, bandul, Gravitasi

I. PENDAHULUAN

Sampai saat ini fisika masih dianggap suatu hal yang sulit baik secara teori maupun secara praktek, fisika dianggap sekumpulan rumus yang tidak dapat diaplikasikan dalam kehidupan sehari-hari, percobaan-percobaanya dianggap sesuatu hal yang sulit dilakukan dan dengan biaya yang mahal. fisika dengan peralatan yang kita dimiliki apa adanya, percobaan fisika dapat divariasikan agar terlihat lebih mudah. Contohnya pada penentuan nilai percepatan gravitasi bumi dengan percoban bandul. Osilasi bandul

digantungkan pada ketinggian tertentu kemudian diamati periodanya. Dari osilasi kemudian didapatkan perioda, yang digunakan dalam perhitungan untuk mendapatkan nilai percepatan gravitasi bumi.

Dengan adanya mikrokontroler maka

fenomena fisika dapat diotomatisasi termasuk percobaan penentuan nilai gravitasi bumi. Osilasi bandul di deteksi oleh sensor dan kemudian datanya dikirim ke mikrokontroler yang diprogram untuk menghitung periode dari osilasi bandul tersebut. Mikrokontroler yang dipergunakan

63

Page 15: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

merupakan keluarga MCS-51 yaitu mikrokontroler AT89S52 yang diproduksi oleh Atmel, mikrokontroler ini mempunyai beberapa kelebihan diantaranya harganya yang relatif murah. II. TEORI PENENTUAN NILAI

GRAVITASI MENGGUNAKAN METODA PERCOBAN BANDUL

Dalam fisika (mekanika), besaran

percepatan gravitasi g dapat ditentukan dengan berbagai metode, diantaranya osilasi bandul, pegas, dan osilasi zat cair dalam pipa. Pada bandul yang berosilasi, diperoleh periode osilasi T sebagai fungsi panjang tali l . Fungsi ini dapat dinyatakan dalam persamaan :1)

Pers.1.Perioda

Bandul

Gbr.1. Ilustrasi Percobaan

Dari persamaan diatas apabila

panjang tali, dan peridoe osilasi bandul diketahui maka dapat dihitung nilai percepatan gravitasi bumi sehingga persamaanya dapat diubah menjadi :

g = 4π2l/T2

Pers.2. Percepatan Gravitasi Bumi

dimana :

g = percepatan gravitasi bumi (meter/detik2) l = panjang tali (meter) T = peroioda osilasi bandul Π = konstanta 3,14

III. PEMROGRAMAN PADA

MIKROKONTROLER

l

a c

Gbr.2.Perida Bandul b

Perioda atau waktu getar (T) adalah

selang waktu yang diperlukan untuk melakukan satu getaran lengkap(satuan detik)3), atau dengan kata lain waktu yang diperlukan oleh bandul (Gbr.2.) untuk menempuh perjalanan dari b ke c kemudian ke b lagi, atau dari b ke a kemudian ke b lagi. Pergerakan bandul ini dideteksi oleh sensor infrared-phodioda.

Gbr.3.Sensor Infrared-Photodioda

Transmitter memancarkan

gelombang inframerah yang selalu diterima oleh receiver photodioda yang

64

Page 16: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

diletakkan di antara pergerakan bandul, tetapi apabila bandul melintas diantara sensor ini maka sinyal dari infrared terpotong sehingga menyebabkan perubahan kondisi pada photodioda. Perubahan inilah yang dideteksi oleh mikrokontroler.

Sensor ditempatkan di antar lintasan b, satu periode bandul berarti sensor menangkap sinyal pada titik b sebanyak dua kali, dan pada mikrokontroler di definisikan satu kali sensor menangkap sinyal sebagai satu interupt yang berarti dua kali intrupt adalah satu periode bandul tersebut.

Sehingga diagram alirnya dapat

digambarkan sebagai berikut :

Gbr.4. Diagram Alir Program

Dapat dilihat di atas bahwa perioda

didefinisikan sebagai waktu antara terjadinya dua kali interupt. Pada

percobaan yang dilakukan Adanya interupt ini di tandai oleh nyalanya LED yang di pasang pada board mikrokontroler. IV. AKUSISI DATA 4.1 Pengambilan data dengan

Hyperterminal

Data dari mikrokontroler yang bernilai perioda dari bandul, kemudian dikirimkan ke computer melalui komunikasi serial RS232, dan pada computer data ditampilkan pada aplikasi hyperterminal yang sebelumnya telah di setting agar dapat menerima data dari komunikasi serial sehingga penggambilan data dapat dilihat seperti gambar di bawah ini.

Gbr.5. Akusisi Data Dengan Hyperterminal

Data dari hyperterminal berupa perioda osilasi badul kemudian di pindahkan ke note pad atau langsung ke Ms Excel yang kemudian diolah sesuai tujuan yaitu menghitung nilai dari percepatan gravitasi. 4.2 Pengolahan Data

65

Page 17: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Data yang didapat adalah perioda osilasi bandul data tersebut bernilai milidetik sehingga diubah dahulu menjadi detik, dan berdasarkan persamaan . maka perhitungan nilai gravitasi dapat dicari. Seperti disajikan pada table 1.

TABEL I

PENGOLAHAN DATA DENGAN MS EXCEL

Hasil Perhitungan Nilai Gravitasi

t(ms) t(s) t^2 Nilai Gravitasi

1935 1.935 3.74423 10.42779641

1935 1.935 3.74423 10.42779641

1937 1.937 3.75197 10.40627361

1935 1.935 3.74423 10.42779641

1934 1.934 3.74036 10.43858285

1937 1.937 3.75197 10.40627361

1935 1.935 3.74423 10.42779641

1941 1.941 3.76748 10.36342745

1935 1.935 3.74423 10.42779641

1935 1.935 3.74423 10.42779641

1936 1.936 3.7481 10.41702667

1936 1.936 3.7481 10.41702667

1936 1.936 3.7481 10.41702667

1927 1.927 3.71333 10.51455877

1934 1.934 3.74036 10.43858285

1936 1.936 3.7481 10.41702667

1934 1.934 3.74036 10.43858285

1930 1.93 3.7249 10.48189643

1936 1.936 3.7481 10.41702667

1936 1.936 3.7481 10.41702667

1840 1.84 3.3856 11.53237713

1952 1.952 3.8103 10.24695562

1911 1.911 3.65192 10.69136381

Perhitungan sederhana ini dilakukan

pada aplikasi Ms Excel dengan formulasi sesuai persamaan di atas.

V. DISKUSI Mikrokontroler diprogram agar dapat mengamati nilai dari periode osilasi bandul sebaik mungkin, dalam program telah di perkirakan bahwa eror yang terjadi hanyalan satu milidetik, tetapi pada kenyataanya nilai yang di dapat berbeda dengan referensi. Hasil nilai rata-rata nilai percepatan gravitasi yang diperoleh adalah 10,47 m/s2 berbeda dengan referensi yaitu sebesar 9,8 m/s2.

Banyak faktor yang mempengaruhi

dari keakuratan data yang diperoleh, mulai dari faktor lingkungan sampai faktor pada alat itu sendiri. Faktor lingkungan yang mempengaruhi diantaranya kemiringan dari lantai, getaran-getaran yang terjadi ketika percobaan dan sebagainya. Keakuratan data juga dipengaruhi oleh alat dan cara percobaan, misalkan ayunan bandul yang tidak sempurna sehingga simpangan yang terjadi tidak selurus yang diinginkan, selain itu besarnya bandul yang digunakan, sensor mendeteksi bandul ketika bandul tersebut melewati sensor, apabila sisi bandul tersebut cukup besar maka sensor akan langsung mendeteksinya dan ketika badul tersebut kembali maka sisi sebaliknya sensor akan mendeteksi sehingga pendeteksian bandul tidak tepat di tengah-tengah pusat massa.

Tetapi penggunaan mikrokontroler

ini merupakan suatu bukti bahwa fenomena fisika dapat kita variasikan dengan kemampuan kita yang lain sehingga dapat dilakukan lebih mudah.

66

Page 18: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

VI. KESIMPULAN

Mikrokontroler AT89S52 yang merupakan mikrokontroler keluarga ATMEL dapat diaplikasikan dalam berbagai bidang, salah satunya dalam fenomena fisika penentuan nilai percepatan gravitasi dengan percobaan bandul. Mikrokontoler menerima sinyal dari sensor yang di program agar dapat mendeteksi setiap perioda bandul setiap dua kali pengiriman sinyal dari sensor. Data kemudian diolah dengan Ms Excel sehingga didapatkan nilai dari percepatan gravitasi, dan dari percobaan ini didapat nilai percepatan gravitasi sebesar +- 10,4 m/s2. tentu saja nilai yang di dapat memiliki perbedaan dengan nilai referensi yaitu sebesar 9,8 m/s2 dikarenakan berbagai faktor yaitu, delay dari pemrograman, pantulan sinar sendor dari bandul, keadaan lingkungan dan berbagai faktor lainnya. Tetapi pada intinya percobaan ini menjadi menarik karena ternyata fenomena fisika dapat di otomatisasi sehingga memudahkan kita dalam melakukan pengamatannya.

VII. REFERENSI [1] Khairurrijal, M. Miftahul Munir, Asep Suhendi, Hendrayana Thaha, Suryadi ”DIKTAT MIKROKONTROLER MCS-51”, 2007. [2] Eko Afgianto, ”Belajar mikrokontroller AT89C51/52/55, Teori dan Aplikasi” Andi, Yoyakarta, 2005. [3] Data Sheet mikrokontroller AT89C51/52/55 [4]http://www.saburchill.com/physics/practicals/006.html

67

Page 19: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LAMPIRAN PROGRAM

68

Page 20: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Sistem Operasi PLC Minimum

ORG 00H ACALL INIT CLR P3.7 SETB P3.3 MOV P2,#00000000B START: JNB RI,START MOV P2,#00000000B ACALL TERIMA MOV R0,#30H MOV R1,#20H CJNE A,#'w',BACA ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;Sub Rutin Penyimpanan Data (Upload) SIMPAN: CLR A ACALL TERIMA MOV @R0,A INC R0 CJNE A,#'@',SIMPAN SJMP START ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BACA: CJNE A,#'r',MONITOR BACA2: CLR A MOV A,@R0 INC R0 ;~~~~~~~~~~~~~~~~~~~~~~~ ACALL KIRIM ;~~~~~~~~~~~~~~~~~~~~~~~ CJNE A,#'@',BACA2 SJMP START ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;Sub Rutin Aktivasi PLC MONITOR: CJNE A,#'m',START CLR A MONITOR1: MOV R0,#30H MOV R1,#20H CLR A CLR C MONITOR2: MOV R2,#2H MOV R3,#3H CJNE A,#'@',MONITOR3 JB RI,START SJMP MONITOR1 MONITOR3: CLR A MOV A,@R0 CJNE A,#'@',LANJUT JB RI,START SJMP MONITOR1

69

Page 21: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LANJUT: INC R0 DJNZ R2,MONITOR3 ACALL AKSI SJMP MONITOR2 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;Sub Rutin Hubungan Antar Elemen AKSI: LOAD: CJNE A,#'0',LOAD_NOT ACALL PILIH_PORT CLR A RLC A MOV @R1,A ;INC R1 RET LOAD_NOT: CJNE A,#'1',AND_ ACALL PILIH_PORT CLR A CPL C RLC A MOV @R1,A ;INC R1 RET AND_: CJNE A,#'2',AND_NOT ACALL PILIH_PORT ;DEC R1 CLR A RLC A ANL A,@R1 MOV @R1,A RET AND_NOT: CJNE A,#'3',OR_ ACALL PILIH_PORT ;DEC R1 CLR A CPL C RLC A ANL A,@R1 MOV @R1,A RET OR_: CJNE A,#'4',OR_NOT ACALL PILIH_PORT ;DEC R1 CLR A RLC A ORL A,@R1 MOV @R1,A RET OR_NOT: CJNE A,#'5',ST ACALL PILIH_PORT ;DEC R1

70

Page 22: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

CLR A CPL C RLC A ORL A,@R1 MOV @R1,A RET ST: CJNE A,#'8',ST_NOT CLR A ;MOV A.@R1 ;RRC A ACALL TERUS_OUT RET ST_NOT: CJNE A,#'9',ULANG_AKSI CLR A MOV A,@R1 RRC A CPL C RLC A MOV @R1,A ACALL TERUS_OUT RET ULANG_AKSI: RET ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;Sub Rutin Pemilihan Port Masukan PILIH_PORT: CLR A MOV A,@R0 CJNE A,#'@',TERUS_IN RET TERUS_IN: CJNE A,#'1',PORT_OUT_TERUS INC R0 PORT_IN: CLR A MOV A,@R0 INC R0 DJNZ R3,PORT_IN PORT_IN0: CJNE A,#'0',PORT_IN1 MOV C,P0.0 RET ;~~~~~~~~~~~~~~~~~~~~~~~~~ PORT_OUT_TERUS: LJMP PORT_OUT ;~~~~~~~~~~~~~~~~~~~~~~~~~ PORT_IN1: CJNE A,#'1',PORT_IN2 MOV C,P0.1 RET PORT_IN2: CJNE A,#'2',PORT_IN3 MOV C,P0.2 RET

71

Page 23: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

PORT_IN3: CJNE A,#'3',PORT_IN4 MOV C,P0.3 RET PORT_IN4: CJNE A,#'4',PORT_IN5 MOV C,P0.4 RET PORT_IN5: CJNE A,#'5',PORT_IN6 MOV C,P0.5 RET PORT_IN6: CJNE A,#'6',PORT_IN7 MOV C,P0.6 RET PORT_IN7: MOV C,P0.7 RET ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;Sub Rutin Pemilihan Port Keluaran PORT_OUT: INC R0 TERUS_OUT: CLR A MOV A,@R0 INC R0 CJNE A,#'@',TERUS_OUT0 RET TERUS_OUT0: CJNE A,#'0',TERUS_OUT1_LANJUT TERUS_OUT2: CLR A MOV A,@R0 INC R0 DJNZ R3,TERUS_OUT2 PORT_OUT0: CJNE A,#'0',PORT_OUT1 MOV A,@R1 RRC A MOV P2.0,C RET ;~~~~~~~~~~~~~~~~~~~~~~~~ TERUS_OUT1_LANJUT: LJMP TERUS_OUT1 ;~~~~~~~~~~~~~~~~~~~~~~~~ PORT_OUT1: CJNE A,#'1',PORT_OUT2 MOV A,@R1 RRC A MOV P2.1,C RET PORT_OUT2:

72

Page 24: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

CJNE A,#'2',PORT_OUT3 MOV A,@R1 RRC A MOV P2.2,C RET PORT_OUT3: CJNE A,#'3',PORT_OUT4 MOV A,@R1 RRC A MOV P2.3,C RET PORT_OUT4: CJNE A,#'4',PORT_OUT5 MOV A,@R1 RRC A MOV P2.4,C RET PORT_OUT5: CJNE A,#'5',PORT_OUT6 MOV A,@R1 RRC A MOV P2.5,C RET PORT_OUT6: CJNE A,#'6',PORT_OUT7 MOV A,@R1 RRC A MOV P2.6,C RET PORT_OUT7: MOV A,@R1 RRC A MOV P2.7,C RET TERUS_OUT1: LJMP AKSI ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; Sub Rutin Komunikasi Serial INIT: MOV SCON,#50H MOV A,PCON SETB ACC.7 MOV PCON,A MOV TMOD,#20H MOV TH1,#0FDH SETB TR1 RET TERIMA: JNB RI,$ ;cek masukan CLR RI ;Ri di nolkan supaya bisa menerima karakter baru MOV A,SBUF ;pindahkan karakter ke akumulator RET KIRIM: MOV SBUF,A JNB TI,$

73

Page 25: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

CLR TI RET END

74

Page 26: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Ladder Programming Private Sub CmdConvert_Click() For i = 0 To 48 n = 2 * i m = 2 * i + 1 If LD1(n).Tag <> "normal" Then If LD1(n).Tag = "input1" Then LD1(n).Tag = "normal" If txtTanda.Text = "0" Then txtTanda.Text = "1" TxtConvert.Text = TxtConvert.Text & "00" & NmKomp1(n).Text ElseIf txtTanda.Text = "1" Then TxtConvert.Text = TxtConvert.Text & "02" & NmKomp1(n).Text End If ElseIf LD1(n).Tag = "input2" Then LD1(n).Tag = "normal" If txtTanda.Text = "0" Then txtTanda.Text = "1" TxtConvert.Text = TxtConvert.Text & "01" & NmKomp1(n).Text ElseIf txtTanda.Text = "1" Then TxtConvert.Text = TxtConvert.Text & "03" & NmKomp1(n).Text End If ElseIf LD1(n).Tag = "output1" Then LD1(n).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "08" & NmKomp1(n).Text txtTanda.Text = "0" ElseIf LD1(n).Tag = "output2" Then LD1(n).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "09" & NmKomp1(n).Text txtTanda.Text = "0" End If End If If LD1(n + 1).Tag = "normal2_1" Then If LD1(n + 2).Tag = "input1" Then LD1(n + 2).Tag = "normal" If txtTanda.Text = "0" Then txtTanda.Text = "1" TxtConvert.Text = TxtConvert.Text & "00" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "input1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "04" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "input2" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "05" & NmKomp1(n + 16).Text End If ElseIf txtTanda.Text = "1" Then TxtConvert.Text = TxtConvert.Text & "02" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "input1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "04" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "input2" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "05" & NmKomp1(n + 16).Text End If End If ElseIf LD1(n + 2).Tag = "input2" Then LD1(n + 2).Tag = "normal" If txtTanda.Text = "0" Then txtTanda.Text = "1" TxtConvert.Text = TxtConvert.Text & "01" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "input1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "04" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "input2" Then

75

Page 27: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "05" & NmKomp1(n + 16).Text End If ElseIf txtTanda.Text = "1" Then TxtConvert.Text = TxtConvert.Text & "03" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "input1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "04" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "input2" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "05" & NmKomp1(n + 16).Text End If End If ElseIf LD1(n + 2).Tag = "output1" Then LD1(n + 2).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "08" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "output1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "08" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "output2" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "09" & NmKomp1(n + 16).Text End If ElseIf LD1(n + 2).Tag = "output2" Then LD1(n + 2).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "09" & NmKomp1(n + 2).Text If LD1(n + 16).Tag = "output1" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "08" & NmKomp1(n + 16).Text ElseIf LD1(n + 16).Tag = "output2" Then LD1(n + 16).Tag = "normal" TxtConvert.Text = TxtConvert.Text & "09" & NmKomp1(n + 16).Text End If End If End If Next i End Sub Private Sub CmdKomponen0_Click() For i = 0 To 48 n = 2 * i If n <> 12 And n <> 26 And n <> 40 And n <> 54 And n <> 68 And n <> 82 And n <> 96 Then If LD1(n).Tag = "fokus" Then If n > 0 Then If LD1(n - 1).Tag <> "normal2_2" Then Load FrmInput FrmInput.Show 1 NmKomp1(n).Text = TxtIn.Text LD1(n).Tag = "input1" LD1(n).Picture = LoadPicture(".\Ladder\NO.jpg") If LD1(n + 1).Tag = "normal2_2" Then LD1(n + 2).Tag = "fokus" LD1(n + 2).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor2_1.Enabled = False CmdKonektor0.Enabled = True If (n + 1) = 12 Or (n + 1) = 26 Or (n + 1) = 40 Or (n + 1) = 54 Or (n + 1) = 68 Or (n + 1) = 82 Or (n + 1) = 96 Then CmdKomponen2.Enabled = True CmdKomponen3.Enabled = True End If Else LD1(n + 1).Tag = "fokus"

76

Page 28: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = False CmdKonektor1.Visible = True CmdKonektor2_1.Enabled = True CmdKonektor1.Enabled = True End If End If If LD1(n - 1).Tag = "normal1" Then CmdKonektor5.Enabled = True CmdKonektor2_1.Enabled = False CmdKonektor0.Enabled = False CmdKonektor1.Enabled = False End If ElseIf n = 0 Then Load FrmInput FrmInput.Show 1 NmKomp1(n).Text = TxtIn.Text LD1(n).Tag = "input1" LD1(n).Picture = LoadPicture(".\Ladder\NO.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor1.Visible = True CmdKonektor0.Visible = False CmdKonektor2_1.Enabled = True CmdKonektor1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If End If CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False Next i End Sub Private Sub CmdKomponen1_Click() For i = 0 To 48 n = 2 * i If n <> 12 And n <> 26 And n <> 40 And n <> 54 And n <> 68 And n <> 82 And n <> 96 Then If LD1(n).Tag = "fokus" Then If n > 0 Then If LD1(n - 1).Tag <> "normal2_2" Then Load FrmInput FrmInput.Show 1 NmKomp1(n).Text = TxtIn.Text LD1(n).Tag = "input2" LD1(n).Picture = LoadPicture(".\Ladder\NC.jpg") If LD1(n + 1).Tag = "normal2_2" Then LD1(n + 2).Tag = "fokus" LD1(n + 2).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor2_1.Enabled = False CmdKonektor0.Enabled = True If (n + 1) = 12 Or (n + 1) = 26 Or (n + 1) = 40 Or (n + 1) = 54 Or (n + 1) = 68 Or (n + 1) = 82 Or (n + 1) = 96 Then CmdKomponen2.Enabled = True CmdKomponen3.Enabled = True End If Else LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = False CmdKonektor1.Visible = True

77

Page 29: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

CmdKonektor2_1.Enabled = True CmdKonektor1.Enabled = True End If End If If LD1(n - 1).Tag = "normal1" Then CmdKonektor5.Enabled = True CmdKonektor2_1.Enabled = False CmdKonektor0.Enabled = False CmdKonektor1.Enabled = False End If ElseIf n = 0 Then Load FrmInput FrmInput.Show 1 NmKomp1(n).Text = TxtIn.Text LD1(n).Tag = "input2" LD1(n).Picture = LoadPicture(".\Ladder\NC.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor1.Visible = True CmdKonektor0.Visible = False CmdKonektor1.Enabled = True CmdKonektor2_1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If End If CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False Next i End Sub Private Sub CmdKomponen2_Click() For i = 0 To 6 n = 14 * (i + 1) - 2 If LD1(n).Tag = "fokus" Then Load FrmOutput FrmOutput.Show 1 NmKomp1(n).Text = TxtOut.Text LD1(n).Tag = "output1" LD1(n).Picture = LoadPicture(".\Ladder\Out1.jpg") If n < 82 Then p = n + 15 m = n + 2 For j = 0 To 11 m = m + 1 If LD1(m).Tag <> "" Then Exit For Next j End If If LD1(n - 1).Tag = "normal1" Then LD1(n - 14).Tag = "fokus" LD1(n - 14).Picture = LoadPicture(".\Ladder\focus.jpg") ElseIf LD1(m).Tag <> "" And n < 82 Then If LD1(p).Tag <> "end" Then LD1(n + 15).Tag = "normal" LD1(n + 16).Tag = "fokus" LD1(n + 16).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor0.Enabled = True CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If

78

Page 30: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

ElseIf LD1(n + 1).Tag = "normal" And LD1(m).Tag = "" Then LD1(n + 2).Tag = "fokus" LD1(n + 2).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor0.Enabled = True CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If Next i End Sub Private Sub CmdKomponen3_Click() For i = 0 To 6 n = 14 * (i + 1) - 2 If LD1(n).Tag = "fokus" Then Load FrmOutput FrmOutput.Show 1 NmKomp1(n).Text = TxtOut.Text LD1(n).Tag = "output2" LD1(n).Picture = LoadPicture(".\Ladder\Out2.jpg") If n < 82 Then p = n + 15 m = n + 2 For j = 0 To 11 If m < 97 Then m = m + 1 If LD1(m).Tag <> "" Then Exit For End If Next j End If If LD1(n - 1).Tag = "normal1" Then LD1(n - 14).Tag = "fokus" LD1(n - 14).Picture = LoadPicture(".\Ladder\focus.jpg") ElseIf LD1(m).Tag <> "" And n < 82 Then If LD1(p).Tag <> "end" Then LD1(n + 15).Tag = "normal" LD1(n + 16).Tag = "fokus" LD1(n + 16).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor0.Enabled = True CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If ElseIf LD1(n + 1).Tag = "normal" And LD1(m).Tag = "" Then LD1(n + 2).Tag = "fokus" LD1(n + 2).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor0.Visible = True CmdKonektor1.Visible = False CmdKonektor0.Enabled = True CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If Next i End Sub

79

Page 31: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

Private Sub CmdKonektor0_Click() For i = 0 To 47 n = 2 * i If LD1(n).Tag = "fokus" Then If n <> 12 And n <> 26 And n <> 40 And n <> 54 And n <> 68 And n <> 82 And n <> 96 Then LD1(n).Tag = "normal" LD1(n).Picture = LoadPicture(".\Ladder\Con1.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") End If If n = 12 Or n = 26 Or n = 40 Or n = 54 Or n = 68 Or n = 82 Or n = 96 Then CmdKonektor0.Enabled = False CmdKonektor1.Enabled = False Else CmdKonektor1.Enabled = True End If End If Next i CmdKonektor0.Visible = False CmdKonektor1.Visible = True CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False CmdKonektor2_1.Enabled = True End Sub Private Sub CmdKonektor1_Click() For i = 0 To 47 n = 2 * i + 1 If LD1(n).Tag = "fokus" Then If n <> 13 And n <> 27 And n <> 41 And n <> 55 And n <> 69 And n <> 83 And n <> 97 Then LD1(n).Tag = "normal" LD1(n).Picture = LoadPicture(".\Ladder\Con1.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") ElseIf n = 13 Or n = 27 Or n = 41 Or n = 55 Or n = 69 Or n = 83 Or n = 97 Then LD1(n).Tag = "normal" LD1(n).Picture = LoadPicture(".\Ladder\blank.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") End If If n = 11 Or n = 25 Or n = 39 Or n = 53 Or n = 67 Or n = 81 Or n = 95 Then CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False CmdKomponen2.Enabled = True CmdKomponen3.Enabled = True CmdKonektor0.Enabled = False Else CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False CmdKonektor0.Enabled = True End If End If CmdKonektor2_1.Enabled = False CmdKonektor1.Visible = False CmdKonektor0.Visible = True CmdKonektor1.Enabled = False Next i End Sub Private Sub CmdKonektor2_1_Click() For i = 0 To 40

80

Page 32: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

n = 2 * i + 1 If LD1(n).Tag = "fokus" Then LD1(n).Picture = LoadPicture(".\Ladder\Or.jpg") If LD2(n).Tag = "normal" Then LD1(n).Tag = "normal2_2" LD1(n - 1).Tag = "fokus" LD1(n - 1).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor3.Enabled = False CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False Else LD1(n).Tag = "normal2_1" LD2(n).Tag = "fokus" LD2(n).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor3.Enabled = True CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If Next i CmdKonektor1.Visible = False CmdKonektor0.Visible = True CmdKonektor0.Enabled = False CmdKonektor1.Enabled = False CmdKonektor2_1.Enabled = False End Sub Private Sub CmdKonektor3_Click() For i = 0 To 40 n = 2 * i + 1 If LD2(n).Tag = "fokus" Then If LD1(n).Tag = "normal2_2" Or LD1(n).Tag = "normal2_1" Then LD2(n).Tag = "normal" LD2(n).Picture = LoadPicture(".\Ladder\Con2.jpg") LD1(n + 14).Tag = "fokus" LD1(n + 14).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor4.Enabled = True Else LD2(n).Tag = "normal" LD2(n).Picture = LoadPicture(".\Ladder\Con2.jpg") LD1(n).Tag = "fokus" LD1(n).Picture = LoadPicture(".\Ladder\focus.jpg") CmdKonektor2_1.Enabled = True End If CmdKonektor3.Enabled = False End If Next i End Sub Private Sub CmdKonektor4_Click() For i = 0 To 47 n = 2 * i + 1 If LD1(n).Tag = "fokus" Then If n > 14 Then If LD2(n - 14).Tag = "normal" Then LD1(n).Tag = "normal1" LD1(n).Picture = LoadPicture(".\Ladder\Con3.jpg") LD1(n + 1).Tag = "fokus" LD1(n + 1).Picture = LoadPicture(".\Ladder\focus.jpg") End If End If

81

Page 33: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

If n = 11 Or n = 25 Or n = 39 Or n = 53 Or n = 67 Or n = 81 Or n = 95 Then CmdKomponen0.Enabled = False CmdKomponen1.Enabled = False CmdKomponen2.Enabled = True CmdKomponen3.Enabled = True Else CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False End If End If Next i CmdKonektor1.Visible = False CmdKonektor0.Visible = True CmdKonektor4.Enabled = False End Sub Private Sub CmdKonektor5_Click() For i = 0 To 47 n = 2 * i + 1 If LD1(n).Tag = "fokus" Then If n > 14 Then If LD1(n - 2).Tag = "normal1" Then LD1(n).Tag = "normal1" LD1(n).Picture = LoadPicture(".\Ladder\Con4.jpg") LD2(n - 14).Tag = "fokus" LD2(n - 14).Picture = LoadPicture(".\Ladder\focus.jpg") End If End If End If Next i CmdKonektor1.Visible = False CmdKonektor0.Visible = True CmdKonektor5.Enabled = False CmdKonektor3.Enabled = True End Sub Private Sub CmdMonitor_Click() MSComm1.Output = "m" End Sub Private Sub CmdUpload_Click() MSComm1.Output = "w" & TxtConvert.Text & "@" End Sub Private Sub CmdClear_Click() For i = 0 To 97 LD1(i).Picture = LoadPicture(".\Ladder\blank.jpg") LD1(i).Tag = "" Next i For j = 0 To 48 m = 2 * j NmKomp1(m).Text = "" If m < 82 Then LD2(m + 1).Picture = LoadPicture(".\Ladder\blank.jpg") LD2(m + 1).Tag = "" End If Next j For k = 0 To 5 n = 14 * k + 13 LD1(n).Tag = "normal" Next k CmdKonektor0.Visible = True CmdKonektor1.Visible = False

82

Page 34: DAFTAR PUSTAKA.digilib.itb.ac.id/files/disk1/548/jbptitbpp-gdl...PLC bekerja dengan cara membaca status (kondisi) yang dialami oleh masukannya, untuk kemudian digunakan dalam pengubahan

LD1(0).Picture = LoadPicture(".\Ladder\focus.jpg") LD1(0).Tag = "fokus" CmdKomponen0.Enabled = True CmdKomponen1.Enabled = True CmdKonektor0.Enabled = True CmdKonektor1.Enabled = False CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False CmdKonektor2_1.Enabled = False CmdKonektor3.Enabled = False CmdKonektor4.Enabled = False CmdKonektor5.Enabled = False txtTanda.Text = "0" TxtConvert.Text = "" End Sub Private Sub Form_Load() With MSComm1 If .PortOpen = True Then .PortOpen = False .CommPort = 1 .Settings = "19200, N, 8, 1" .DTREnable = True .RTSEnable = True .RThreshold = 1 .SThreshold = 0 .InputLen = 0 .PortOpen = True End With CmdKonektor0.Visible = True CmdKonektor1.Visible = False LD1(0).Picture = LoadPicture(".\Ladder\focus.jpg") LD1(0).Tag = "fokus" CmdKomponen2.Enabled = False CmdKomponen3.Enabled = False CmdKonektor2_1.Enabled = False CmdKonektor3.Enabled = False CmdKonektor4.Enabled = False CmdKonektor5.Enabled = False End Sub

83