BAB VI PEMBUATAN PROGRAM APLIKASI PLC PENDAHULUAN Pada bagian ini akan dibahas contoh-contoh aplikasi kontrol dengan menggunakan salah satu jenis PLC yaitu PLC Omron. Hal ini dilakukan supaya pembahasan lebih terfokus, dan mengingat bahwa program antara PLC yang satu dengan yang lain hampir sama. Pada bagian ini akan dibahas struktur memori PLC Omron, serta perancangan dan pembuatan program aplikasi PLC. Setelah mempelajari bagian ini, mahasiswa diharapkan dapat membuat program aplikasi dengan fungsi/instruksi dasar dan menengah.
6.1 STRUKTUR MEMORI PLC OMRON Pengenalan terhadap struktur memori suatu PLC sangat diperlukan, agar supaya dapat menggunakannya dengan tepat susuai dengan fungsinya masing-masing. Pada PLC Omron CPM1, terdapat beberapa memori yang memiliki fungsi-fungsi khusus. Masing-masing lokasi memori memiliki ukuran 16-bit atau 1 word, beberapa word membentuk daerah atau region dan masing-masing region inilah yang memiliki fungsifungsi khusus. Tidak seperti mikrokontroler, yang hanya mendefenisikan sebagian dari fungsifungsi memorinya, pada PLC, semua bagian memori didefenisikan fungsinya secara khusus. Selain itu, dalam PLC semua lokasi memori dapat dialamati per-bit, atau dengan kata lain dapat diakses per-bit atau bit addressable. addressable. Tabel 6.1 memperlihatkan Data Area PLC Omron CPM1. Daerah IR
Bagian memori ini digunakan untuk mmenyimpan status keluaran dan masukan PLC. Beberapa bit berhubungan langsung dengan terminal masukan (input) dan keluaran (output). Daerah memori IR terbagi atas tiga macam area, yaitu area masukan (input area), area), area keluaran (output ( output area), area), dan area kerja (work ( work area). area). Untuk mengakses memori ini, cukup dengan menuliskan angkanya saja, 000 untuk masukan, 010 untuk keluaran, dan 200 untuk memori kerja. Tabel 6.2 memperlihatkan terminal unit CPU yang digunakan untuk input/output eksternal dari beberapa model PLC CPM1. 100
Tabel 6.1. Data Area PLC Omron CPM1
Tabel 6.2. IR Area PLC CPM1 yang dihunbungkan dengan terminal unit CPU
Daerah SR
Daerah SR merupakan bagian khusus dari lokasi memori yang digunakan sebagai bit-bit kontrol dan status ( flag ), ), paling sering digunakan untuk pencacah dan interupsi. Misalnya, SR253.13 (atau 253.13 saja) adalah Always ON Flag atau Flag atau nilainya selalu ON selama PLC dihidupkan, sedangkan SR253.14 (atau 253.14 saja) adalah 101
Always OFF Flag atau nilainya selalu OFF selama PLC dihidupkan. SR255.04 (atau 255.04 saja) digunakan sebagai Flag CARRY (CY). CARRY (CY). SR255.05, SR255.06, dan SR255.07 masing-masing digunakan untuk menyimpan status Lebih Besar Dari (Greater Than), Sama Dengan (Equals). Dan Lebih Kecil Dari (Less Than) hasil dari fungsi perbandingan CMP. Daerah TR
Saat pindah ke sub-program selama eksekusi program maka semua data yang terkait hingga batasan RETURN sub-program akan disimpan dalam daerah TR ini. Untuk PLC CPM1A (juga CPM2A) hanya memiliki 8 bit, yaitu TR0 sa mpai TR7. Daerah HR
Bit-bit pada daerah HR ini digunakan untuk menyimpan data dan tidak akan hilang walaupun PLC sudah tidak mendapat catu daya atau PLC sudah dimatikan, karena menggunakan baterai. Untuk PLC CPM1A (juga CPM2A), daerah ini terdiri dari 20 word (HR00 sampai HR19) atau 320 bit (HR00.00 sampai HR19.15). Bit-bit HR ini dapat digunakan bebas di dalam program sebagaimana bit-bit kerja ( work bits). bits). Daerah AR
Ini merupakan daerah lain yang juga digunakan untuk menyimpan bit-bit kontrol dan status, seperti status PLC, kesalahan, waktu sistem dan lain sejenisnya. Dan seperti daerah HR, daerah AR juga dilengkapi dengan baterai, sehingga data-data kontrol maupun status tetap akan tersimpan walaupun PLC sudah dimatikan. Untuk PLC CPM1A, daerah ini terdiri dari 16 word (AR00 sampai AR15) atau 256 bit (AR00.00 sampai AR15.15). Misalnya, AR08 bit 00 sampai 03 digunakan untuk menyimpan kode kesalahan Port RS232, dengan ketentuan tiap bit: 00 – Normal, 01 – Kesalahan Paritas, 02 – Kesalahan Frame, 03 – Kesalahan Overrun. Daerah LR
Digunakan sebagai pertukaran data saat dilakukan koneksi atau hubungan dengan PLC yang lain. Untuk PLC CPM1A dan CPM2A, daerah ini terdiri atas 16 word (LR00 sampai LR15) atau 256 bit (LR00.00 sampai LR15.15).
102
Daerah Pewaktu/Pencacah (Timer/Counter ) – T/C Area
Daerah ini digunakan untuk menyimpan nilai-nilai pewaktu atau pencacah. Untuk PLC CPM1A terdapat 128 lokasi (TC000 sampai TC127), sedangkan pada PLC CPM2A terdapat 226 lokasi (TC000 sampai TC225). Daerah DM
Berisikan data-data yang terkait dengan pengaturan komunikasi dengan komputer dan data pada saat ada kesalahan.
6.2 INSTRUKSI-INSTRUKSI PADA PLC OMRON 1. Instruksi-instruksi Tangga ( Ladder Instructions)
Instruksi-instuksi tangga adalah instruksi-instruksi yang terkait dengan kondisikondisi di dalam diagram tangga. Instruksi-instruksi tangga, baik yang independen maupun yang kombinasi atau gabungan dengan blok instruksi, akan membentuk kondisi eksekusi. Gambar 6.1 memperlihatkan kode mnemonik, diagram tangga, dan area data operan dari instruksi-instruksi tangga.
Gambar 6.1.
Kode mnemonik, diagram tangga, dan area data operan dari instruksiinstruksi tangga.
103
a. LOAD (LD) dan LOAD NOT (LD NOT)
Kondisi pertama yang mengawali sembarang blok logika di dalam diagram tangga berkaitan dengan instruksi LOAD (LD) atau LOAD NOT (LD NOT). Contoh instruksi ini ditunjukkan pada gambar 6.2.
Gambar 6.2. Contoh instruksi LD dan LD NOT b. AND dan AND NOT
Jika terdapat dua atau lebih kondisi yang dihubungkan seri pada garis instruksi yang sama maka kondisi pertama menggunakan instruksi LD atau LD NOT, dan sisanya menggunakan instruksi AND atau AND NOT. Gambar 6.3 menunjukkan suatu penggalan diagram tangga yang mengandung tiga kondisi yang dihubungkan secara seri pada garis instruksi yang sama dan berkaitan dengan instruksi LD, AND NOT, dan AND. Masing-masing instruksi tersebut membutuhkan satu baris kode mnemonik.
Gambar 6.3. Contoh penggunaan instruksi AND dan AND NOT c. OR dan OR NOT
Jika dua atau lebih kondisi yang dihubungkan paralel, artinya dalam garis instruksi yang berbeda kemudian bergabung lagi dalam satu garis instruksi yang sama maka kondisi pertama terkait dengan instruksi LD dan LD NOT dan sisanya berkaitan dengan instruksi OR dan OR NOT. Gambar 6.4 menunjukkan tiga buah instruksi yang 104
berkaitan dengan instruksi LD NOT, OR NOT, dan OR. Masing-masing instruksi tersebut membutuhkan satu baris kode mnemonik.
Gambar 6.4. Contoh penggunaan instruksi OR dan OR NO T d. Kombinasi instruksi AND dan OR
Jika instruksi AND dan OR digabung atau dikombinasikan dalam suatu rangkaian tangga yang kompleks maka bisa dipandang satu persatu, artinya bisa dilihat masing-masing hasil gabungan dua kondisi menggunakan instruksi AND atau OR secara sendiri-sendiri kemudian menggabungkannya menjadi satu kondisi menggunakan instruksi AND atau OR yang terakhir. Gambar 6.5 menunjukkan contoh diagram tangga yang mengimplentasikan cara seperti tersebut di atas.
Gambar 6.5. Contoh penggabungan instruksi AND dan OR 105
2. Instruksi-instruksi Blok Logika
Instruksi-instuksi blok logika tidak berhubungan dengan suatu kondisi tertentu pada diagram tangga, melainkan untuk menyatakan hubungan antar blok-blok logik, misalnya instruksi AND LD akan meng-AND-logik-kan kondisi eksekusi yang dihasilkan oleh dua blok logik, demikian juga dengan OR LD untuk meng-OR-logikkan kondisi eksekusi yang dihasilkan dua blok logik. a. AND LOAD (AND LD)
Gambar VI-6 menunjukkan contoh penggunaan blok logik AND LD y ang terdiri atas dua blok logik, yang akan menghasilkan kondisi ON jika blok logik kiri dalam kondisi ON (salah satu dari IR000.00 atau IR000.01 yang ON) dan blok logik kanan juga dalam keadaan ON (IR000.02 dalam kondisi ON atau IR000.03 dalam kondisi OFF).
Gambar 6.6. Contoh penggunaan instruksi blok logika AND LD b. OR LOAD (OR LD)
Instruksi ini digunakan untuk meng-OR-logik-kan dua blok logika. Gambar 6.7 menunjukkan contoh penggunaan blok logik OR LD yang terdiri atas dua blok logik. Kondisi eksekusi ON akan dihasilkan jika blok logik atas atau blok logik bawah dalam kondisi ON. Artinya, IR000.00 dan kondisi ON dan IR000.01 dalam kondisi OFF atau IR000.02 dan IR000.03 dalam kondisi ON).
106
Gambar 6.7. Contoh penggunaan instruksi blok logika OR LD Untuk membuat kode mnemonik diagram tangga yang kompleks, caranya dengan cara membagi membagi diagram tersebut ke dalam blok-blok logik yang besar, kemudian membagi lagi blok yang besar tersebut menjadi blok-blok logik yang lebih kecil, demikian seterusnya hingga tidak perlu lagi dibuat blok yang lebih kecil lagi. Blok-blok ini kemudian masing-masing dikodekan, mulai dari yang kecil, dan digabungkan satu per satu hingga membentuk diagram tangga yang asli. Instruksi blok logik AND LD dan OR LD hanya digunakan untuk menggabungkan dua blok logik saja (blok logik yang digabungkan berupa hasil penggabungan sebelumnya, atau hanya
sebuah kondisi tunggal). Gambar 6.8 memperlihatkan suatu contoh diagram tangga yang kompleks, yang dapat dibagi dua blok besar (blok A dan B). Blok A dapat dibagi lagi menjadi dua blok yang lebih kecil (blok A1 dan A2), dan blok B dibagi menjadi dua blok yang lebih kecil, yaitu blok B1 dan B2. Kemudian blok-blok logik yang kecil ini ditulis terlebih dahulu, diawali dengan menuliskan blok A1 (alamat 00000 dan 00001) dan blok A2 (alamat 00002 dan 00003), kemudian digabung menggunakan instruksi blok logik OR LD (alamat 00004). Selanjutnya blok B1 dituliskan (alamat 00005 dan 00006) dilanjutkan dengan blok B2 (alamat 00007 dan 00008) dan digabung dengan instruksi blok logik OR LD (alamat 00009). Hasilnya berupa blok A dan blok B yang kemudian juga digabung menggunakan blok logik AND LD (alamat 00010).
107
Gambar 6.8. Contoh diagram tangga yang kompleks 3. Instruksi Kontrol Bit
Terdapat tujuh instruksi dasar yang dapat digunakan untuk mengontrol status bit secara individual, yaitu OUTPUT, OUTPUT NOT, SET, RESET, DIFFERENTIATE UP (DIFU), DIFFERENTIATE DOWN (DIFD), dan KEEP. Semua instruksi ini dituliskan di sisi paling kanan diagram tangga dan membutuhkan sebuah alamat bit sebagai operan. Selain instruksi-instruksi ini digunakan untuk membuat bit-bit keluaran ON atau OFF dalam area IR (ke piranti eksternal), mereka juga digunakan untuk mengontrol bit-bit lainnya. a. Instruksi OUTPUT (OUT) dan OUTPUT NOT (OUT NOT)
Instruksi ini digunakan untuk mengontrol operan yang berkaitan dengan kondisi eksekusi (apakah ON atau OFF). Dengan menggunakan instruksi OUT, maka bit operan akan menjadi ON jika kondisi eksekusinya juga ON, sedangkan OUT NOT akan menyebabkan bit operan menjadi ON jika kondisi eksekusinya OFF. Gambar 6.9 memperlihatkan simbol tangga dan area data operan dari instruksi OUT dan OUT NOT, sedangkan Gambar 6.10 memperlihatkan contoh implementasi kedua instruksi tersebut. 108
Gambar 6.9. Simbol tangga dan area data operan instruksi OUT dan OUT NOT
Gambar 6.10. Contoh penggunaan instruksi OUT dan OUT NOT b. SET dan RESET
Instruksi SET dan RESET hampir sama dengan instruksi OUTPUT dan OUTPUT NOT, hanya saja instruksi SET dan RESET ini mengubah kondisi status bit operan saat kondisi eksekusinya ON. Kedua instruksi ini tidak akan mengubah kondisi status bit jika kondisi eksekusinya OFF. Instruksi SET akan meng-ON-kan bit operan saat kondisi eksekusinya ON, tetapi tidak seperti instruksi OUT, SET tidak akan mengOFF-kan bit operan walaupun kondisi eksekusinya sudah menjadi OFF (setelah ON). Sedangkan instruksi RESET akan meng-OFF-kan bit operan saat kondisi eksekusinya ON, tetapi tidak seperti instruksi OUT NOT, RESET tidak akan meng-ON-kan bit operan walaupun kondisi eksekusinya sudah OFF (setelah ON). Gambar 6.11 memperlihatkan simbol tangga dan area data operan dari instruksi SET dan RESET, sedangkan Gambar 6.12 memperlihatkan contoh penggunaan kedua instruksi tersebut di atas. Pada diagram tangga tersebut, IR200.00 akan ON jika kondisi IR001.00 ON dan akan terus ON tidak tergantung kondisi IR001.00 selanjutnya, hingga kondisi IR001.01 menjadi ON sehingga me-RESET IR200.00 (menjadi OFF).
Gambar 6.11. Simbol tangga dan area data operan instruksi SET dan RESET 109
Gambar 6.12. Contoh penggunaan instruksi SET dan RESET c. DIFFERENTIATE UP (DIFU) dan DIFFERENTIATE DOWN (DIFD)
Instruksi DIFU dan DIFD digunakan untuk meng-ON-kan bit operan hanya satu siklus saja, atau dengan kata lain hanya sesaat saja. Instruksi DIFU digunakan untuk meng-ON-kan bit operan sesaat saja (hanya satu silus) saat terjadi transisi kondisi eksekusi dari OFF ke ON. Sedangkan instruksi DIFD digunakan untuk tujuan yang sama dengan DIFU, tetapi pada saat terjadi transisi kondisi eksekusi dari ON ke OFF (kebalikan transisinya DIFU). Gambar 6.13 memperlihatkan simbol tangga dan area data operan dari instruksi DIFU dan DIFD, sedangkan Gambar 6.14 memperlihatkan diagram tangga sederhana yang menggunakan instruksi DIFU dan DIFD. Pada diagram tangga tersebut, IR200.01 akan ON untuk satu siklus (sesaat), jika terjadi transisi perubahan kondisi eksekusi pada IR000.00 dari OFF menjadi ON. Saat DIFU(13) 200.01 dikerjakan lagi untuk siklus berikutnya, IR200.01 tetap akan OFF (tidak tergantung lagi pada status IR000.00). IR200.02 akan ON untuk satu siklus saja jika terjadi transisi perubahan kondisi eksekusi pada IR000.01 dari ON menjadi OFF. Saat DIFD(14)200.02 dikerjakan lagi untuk siklus berikutnya, IR200.02 akan tetap OFF (tidak tergantung lagi status IR000.01).
Gambar 6.13. Simbol tangga dan area data operan dari instruksi DIFU dan DIFD
Gambar 6.14. Contoh penggunaan instruksi DIFU dan DIFD 110
d. Instruksi KEEP
Instruksi KEEP digunakan untuk menyimpan status suatu bit operan berbasis pada dua kondisi eksekusi. Untuk keperluan ini, instruksi KEEP dihubungkan ke dua garis instruksi. Garis instruksi pertama digunakan untuk meng-ON-kan bit operan, sedangkan garis instruksi kedua digunakan untuk meng-OFF-kan bit operan, hal tersebut akan terjadi jika kondisi eksekusi pada garis instruksi yang terkait ON. Bit operan instruksi KEEP akan dijaga ON atau OFF-nya walaupun ada di dalam bagian diagram yang mengandung INTERLOCK. Gambar 6.15 memperlihatkan simbol tangga dan area data operan dari instruksi KEEP, sedangkan Gambar 6.16 memperlihatkan contoh diagram tangga yang menggunakan instruksi KEEP. HR00.00 akan ON saat IR000.02 dalam kondisi ON dan IR000.03 dalam kondisi OFF, HR00.00 akan tetap ON hingga IR000.04 atau IR000.05 dalam kondisi ON. Karena instruksi ini memerlukan lebih dari satu garis instruksi maka garis-garis instruksi dikodekan terlebih dahulu (alamat 00000 sampai 00003) sebelum menuliskan instruksi KEEP-nya (alamat 00004).
Gambar 6.15. Simbol tangga dan area data operan dari instruksi KEEP
Gambar 6.16. Contoh penggunaan instruksi KEEP(11)
Dalam merancang suatu program diagram tangga, untuk membuat program lebih efektif, ada dua hal yang perlu diperhatikan dan dapat dimanfaatkan, yaitu: ¾
Bit-bit Penyimpan ( Self-maintained )
Walaupun instruksi KEEP dapat digunakan untuk membuat bit-bit yang bisa menahan sendiri, kadangkala dibutuhkan membuat bit-bit yang bisa menahan sendiri 111
dengan cara yang lain, sehingga bit-bit tersebut bisa di-OFF-kan pada bagian program yang mengandung INTERLOCK. Untuk membuat bit-bit tersebut, bit operan suatu instruksi OUT dibuat sebagai suatu kondisi untuk OUT yang sama dalam suatu bentuk penggabungan OR, sehingga bit operan OUT akan tetap ON atau OFF hingga muncul perubahan kondisi pada bit-bit yang lain. Sebagai contoh, kita bisa mengubah diagram tangga pada Gambar 6.16 (yang menggunakan instruksi KEEP) dengan menghilangkan instruksi KEEP tersebut dan meletakkan bit operan OUT ke suatu garis instruksi tersendiri yang kemudian digabung dengan OR. Hasilnya ditunjukkan pada Gambar 6.17.
Gambar 6.17. Contoh diagram tangga yang menggunakan bit penyimpan ¾
Bit-bit Kerja (Work Bits) atau Relai Internal
Dalam pemrograman diagram tangga, mengkombinasikan kondisi-kondisi untuk secara langsung menghasilkan kondisi eksekusi seringkali sulit dilakukan. Kesulitan ini dapat ditangani dengan cara menggunakan beberapa bit untuk memicu instruksi lain secara tidak langsung. Bit-bit I/O dan bit-bit terdedikasi lainnya tidak dapat digunakan sebagai bit-bit kerja. Semua bit-bit yang ada di dalam area IR yang tidak dialokasikan untuk I/O dan bebarapa bit yang tidak digunakan dalam area AR, dapat digunakan sebagai bit-bit kerja. Bit-bit kerja biasanya sering digunakan bersama-sama dengan instruksi-instruksi OUT, OUT NOT, DIFU, DIFD, dan KEEP. Bit kerja pertama kali langsung digunakan oleh instruksi-instruksi tersebut sebagai bit operan sehingga kemudian bisa digunakan sebagai kondisi yang akan menentukan instruksi-instruksi lainnya. Bit-bit kerja dapat digunakan untuk menyederhanakan diagram tangga pada saat suatu kombinasi kondisi perlu diulang-ulang di beberapa bagian dalam diagram tangga yang bersangkutan.
112
4. Instruksi END
Instruksi END merupakan instruksi terakhir yang harus dituliskan atau digambarkan dalam diagram tangga. CPU pada PLC akan mengerjakan semua instruksi dalam program dari awal (baris pertama) sampai ditemui instruksi END yang pertama, sebelum kembali lagi mengerjakan instruksi dalam program dari awal (artinya instruksiinstruksi yang ada di bawah instruksi END akan diabaikan). Instruksi END tidak memerlukan operan dan tidak boleh diawali dengan suatu kondisi seperti pada instruksi lainnya. Suatu diagram tangga atau program PLC harus diakhiri dengan instruksi END, jika tidak maka program tidak dijalankan sama sekali. Angka yang dituliskan pada instruksi END pada kode mnemonik merupakan kode fungsinya. Gambar 6.18 memperlihatkan contoh penggunaan instruksi END.
Gambar 6.18. Contoh penggunaan instruksi END
5. Instruksi TIMER dan COUNTER a. Instruksi TIMER (TIM)
Instruksi TIM dapat digunakan sebagai timer (pewaktu) ON-delay pada rangkaian relai. Gambar 6.19 memperlihatkan simbol tangga dan area data operan dari instruksi TIM. Instruksi TIM membutuhkan angka timer (N), dan nilai set (SV) antara 0000 sampai 9999 (artinya 000,0 sampai 999,9 detik).
Gambar 6.19. Simbol tangga dan area data operan dari instruksi TIMER (TIM) 113
Instruksi untuk Timer Kecepatan Tinggi ( High speed Timer ) adalah TIMH. TIMH membutuhkan angka timer (N), dan nilai set (SV) antara 0000 sampai 9999 (artinya 00,00 sampai 99,99 detik). Gambar 6.20 memperlihatkan simbol tangga dan area data operan dari instruksi TIMH.
Gambar 6.20. Simbol tangga dan area data operan dari instruksi TIMH b. Instruksi COUNTER (CNT)
CNT yang digunakan di sini adalah counter penurunan yang diset awal. Penurunan satu hitungan setiap kali saat sebuah sinyal berubah dari OFF ke ON. Counter harus diprogram dengan input hitung, input reset, angka counter, dan nilai set (SV) Nilai set ini adalah 0000 smpai 9999. Gambar 6.21 memperlihatkan simbol tangga dan area data operan dari instruksi CNT.
Gambar 6.21. Simbol tangga dan area data operan dari instruksi COUNTER (CNT) Instruksi untuk Reversible Counter adalah CNTR. CNTR(12) adalah reversible, up/down circular counter , sehingga bisa dipakai untuk menghitung antara nol dan SV [set value] tergantung dari dua masukan, apakah increment pada input (II) atau decrement pada input (DI). Nilai saat itu (PV) akan naik satu jika input II mendapat masukan ON kemudian OFF, dan akan turun satu jika input DI mendapat masukan ON kemudian OFF. Jika keduanya mendapatkan masukan bersama maka nilai saat itu tidak berubah.. Jika nilai saat itu 0000 dan mendapat masukan turun maka nilai saat itu akan 114
berubah ke nilai set value SV dan Completion Flag akan ON, jika nilai saat itu melebihi SV maka PV akan menjadi 0000. CNTR(12) akan reset [nilai saat itu menjadi nol] jika input reset R berubah dari OFF ke ON.
PV tidak akan naik/turun selama R ON
kemudian akan menghitung lagi jika R OFF. nilai PV untuk CNTR(12) tidak akan reset pada saat program interlock atau oleh karena gangguan supply. Gambar 6.22 memperlihatkan simbol tangga dan area data operan dari instruksi CNTR.
Gambar 6.22. Simbol tangga dan area data operan dari instruksi CNTR 6. Instruksi SHIFT REGISTER (SFT(10))
Instruksi SFT akan menggeser 1 bit dari suatu 16 data bit pada kanal yang ditentukan. Meskipun instruksi ini menggeser data dalam kanal-kanal, terdapat kanal start dan kanal end yang harus dispesifikasikan sebagai data. Jika input reset diaktifkan, 16 bit tersebut semuanya akan direset secara bersamaan. Apabila Holding Relay Area digunakan, data tersebut akan ditahan sewaktu terjadi gangguan daya. Gambar 6.23 memperlihatkan simbol tangga dan area data operan dari instruksi SFT.
Gambar 6.23. Simbol tangga dan area data operan dari instruksi SFT. 7. Instruksi Pemindahan Data: MOVE (MOV(21))
Instruksi MOV berfungsi untuk mengkopi isi dari S ( source word ) ke D (destination word ). Gambar 6.24 memperlihatkan simbol tangga dan area data operan dari instruksi MOV.
115
Gambar 6.24. Simbol tangga dan area data operan dari instruksi MOV 8. Instruksi Perbandingan: COMPARE (CMP(20))
Instruksi CMP berfungsi untuk membandingkan Cp1 dan Cp2 dan hasilnya disimpan di flag GT (Great Than), EQ ( Equals), dan LT ( Less Than) pada SR area. Gambar 6.25 memperlihatkan simbol tangga dan area data operan dari instruksi CMP.
Gambar 6.25. Simbol tangga dan area data operan dari instruksi CMP.
9. Instruksi Perhitungan BCD a. Set Carry – STC(40)
Instruksi STC(40) menyebabkan
ON pada CY (SR 25504). Gambar 6.26
memperlihatkan simbol tangga dari instruksi STC.
Gambar 6.26. Simbol tangga dari instruksi STC b. Clear Carry – CLC(41)
Instruksi CLC(41) menyebabkan OFF pada CY (SR 25504). Gambar 6.27 memperlihatkan simbol tangga dari instruksi CLC.
Gambar 6.27. Simbol tangga dari instruksi CLC 116
c. BCD ADD – ADD(30)
Instruksi ADD(30) menjumlahkan isi Au, Ad dan CY dan hasilnya disimpan di R. CY diset jika hasilnya lebih dari 9999. Gambar 6.28 memperlihatkan simbol tangga dan area data operan dari instruksi ADD.
Gambar 6.28. Simbol tangga dan area data operan dari instruksi ADD d. BCD SUBTRACT – SUB(31)
Instruksi SUB(31) mengurangi isi dari Su dan CY dari Mi dan hasilnya ditempatkan di R. Jika hasilnya negatif maka CY di set dan komplemen 10 dari hasil sebenarnya disimpan di R.
Untuk merubah komplemen 10 ke hasil sebenarnya
kurangkan isi R dengan nol. Gambar 6.29 memperlihatkan simbol tangga dan area data operan dari instruksi SUB.
Gambar 6.29. Simbol tangga dan area data operan dari instruksi SUB 10. Instruksi Increment/Decrement a. BCD Increment – INC(38)
Instruksi INC bertujuan menaikkan satu isi dari Wd, tanpa berakibat pada Carry (CY). Gambar 6.30 memperlihatkan simbol tangga dan area data operan dari instruksi INC. 117
Gambar 6.30. Simbol tangga dan area data operan dari instruksi SUB. b. BCD Decrement – DEC(39)
Instruksi DEC bertujuan menurunkan satu isi Wd, tanpa berakibat pada CY. DEC(39) cara kerjanya sama dengan INC(38) tetapi pada DEC(39) turunkan satu. Gambar 6.31 memperlihatkan simbol tangga dan area data operan dari instruksi DEC.
Gambar 6.31. Simbol tangga dan area data operan dari instruksi DEC
6.3 CONTOH-CONTOH APLIKASI PLC Setelah kita mengetahui struktur memori dan instruksi-instruksi dari PLC yang akan digunakan maka langkah selanjutnya adalah merancang program aplikasi dan mengoperasikannya/menyimulasikannya. Prosedurnya dapat digambarkan dalam bentuk diagram alir, seperti pada Gambar 6.32.
1. Pengontrolan Putaran Motor dalam Dua Arah Putaran
Deskripsi Sistem: Sistem di-ON dan di-OFF dengan 4 push button (PB). Jika PB 1 ditekan maka motor berputar ke kanan (clock-wise/cw) ditandai dengan bekerjanya kontaktor 1 (K1) dan akan tetap berputar meskipun PB 1 dilepas. Motor akan OFF jika PB 2 ditekan. Jika motor dalam keadaan OFF dan PB 3 ditekan maka motor akan berputar ke kiri ( counter clock-wise/ccw) ditandai dengan bekerjanya kontaktor 2 (K2), dan akan tetap berputar meskipun PB 3 dilepas. Motor akan OFF jika PB 4 ditekan. Kontaktor K1 dan K2 tidak boleh bekerja bersamaan. Diagram rangkaian sistem relai (wired logic), diperlihatkan pada Gambar 6.33.
118
Start
Deskripsi Kontrol
Merencanakan alamat I/O Penulisan Program ke Diagram Tangga
Pemrograman
Simulasi Program
Program Benar?
Tidak
Koreksi Kembali
Ya I/O disambung dengan Peralatan Luar
Uji Kerja
Bekerja Benar?
Tidak
Koreksi Sambungan
Ya Simpan Program
Kontrol Siap Kerja
END
Gambar 6.32. Diagram alir perancangan program aplikasi, dan pengoperasian PLC
119
Gambar 6.33.
Rangkaian Kontrol dan Daya Pengoperasian Motor dalam Dua Arah Putaran sistem Wired Logic.
Tabel pengalamatan dari peralatan input-output (I/O) diperlihatkan pada Tabel 6.3, dan diagram tangga (ladder diagram) dari rangkaian kontrol untuk sistem kontrol dengan dua arah putaran dapat dibuat seperti pada Gambar 6.34 dan kode mnemonik ( statement list /STL) diperlihatkan pada Tabel 6.4. Jika peralatan I/O tersebut dihubungkan dengan PLC maka rangkaian pengawatannya seperti diperlihatkan pada Gambar 6.35. Tabel 6.3. Pengalamatan peralatan I/O sistem contoh No. 1 Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00
Push button 1 (PB1)
010.00
Kontaktor K1
000.01
Push button 2 (PB2)
010.01
Kontaktor K2
000.02
Push button 3 (PB3)
000.03
Push button 4 (PB4)
120
Gambar 6.34. Ladder diagram pengontrolan motor dengan dua arah putaran Tabel 6.4. Program dalam bentuk kode nemonik
2. Tundaan ON dan OFF (ON and OFF Delay)
Deskripsi Sistem: PLC Omron memiliki pewaktu (timer) ON-delay. Tetapi dengan modifikasi program dapat diperoleh pewaktu yang OFF-delay. Aplikasi berikut memperlihatkan suatu sistem dengan dua output (OFF-delay dan ON-delay) yang penundaan waktunya 5 detik. Diagram pewaktuannya seperti pada Gambar 6.36, dan tabel pengalamatan I/Onya seperti pada Tabel 6.4. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.37. 121
Gambar 6.35. Rangkaian pengawatan peralatan I/O dengan PLC untuk pengontrolan motor dalam dua arah putaran. Tabel 6.4. Pengalamatan peralatan I/O pada sistem contoh No. 2. Input Pengalamatan
Output Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Tombol Start (PB1) 010.00 (10.00) OFF-delay
000.01 (0.01)
Tombol Stop (PB2)
010.01 (10.01)
ON-delay
Gambar 6.36. Diagram pewaktuan sistem OFF-delay dan ON-delay 122
(a)
(b) Gambar 6.37. Program ON/OFF-delay dengan PLC OMRON (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list )
3. Penggunaan Pewaktu (Timer ) dan Pencacah (Counter )
Deskripsi Sistem: Timer pada PLC Omron hanya dapat melakukan pewaktuan hingga 999,9 detik saja. Bagaimana kalau dibutuhkan pewaktuan > 999,9 detik? Dalam hal ini digunakan gabungan antara pewaktu dan pencacah. Misalnya untuk waktu 1 jam (3600 detik), dapat dilakukan dengan pewaktu 36 detik sebanyak 100 kali, atau 360 detik sebanyak 10 kali.
123
Tabel pengalamatan I/O-nya seperti pada Tabel 6.5. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.38. Tabel 6.5. Pengalamatan peralatan I/O pada sistem contoh No. 3. Input Pengalamatan 000.00 (0.00)
Output Peralatan
Pengalamatan
Peralatan
Tombol Start (PB1) 010.00 (10.00) Alat/Lampu
(a)
(b) Gambar 6.38. Program dengan pewaktuan yang lebih besar dari 999,9 det. (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list )
124
4. Penggunaan Fungsi Geser ( Shift ) SFT(10)
Deskripsi Sistem: PLC Omron CPM1 memiliki sebuah fungsi geser (SFT(10)) yang dapat digunakan untuk menggeser bit-bit dalam area memori PLC yang bersangkutan. Supaya hasil pergeseran bit (pada IR200) dapat diamati pada keluaran maka masing-masing posisi bit dihubungkan ke bit keluaran (10.00 sampai 10.03 untuk 4 keluaran). Tabel pengalamatan I/O-nya seperti pada Tabel 6.6. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.39. Tabel 6.6. Pengalamatan peralatan I/O pada sistem contoh No. 4. Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Saklar Data
010.00 (10.00)
Status bit 200.00
000.01 (0.01)
Saklar Clock
010.01 (10.01)
Status bit 200.01
000.02 (0.02)
Saklar Reset
010.02 (10.02)
Status bit 200.02
010.03 (10.03)
Status bit 200.03
(a)
125
(b) Gambar 6.39. Program penggunaan shift register (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list ) Sistem di atas dapat diaplikasi pada sebuah sistem yang melibatkan dua silinder yang diaktifkan oleh dua solenoid ganda (seperti pada Gambar 6.40). Rangkaian aktivasi sekuensial Z1, Y1, Z2, Y2 (sebagai output 10.00, 10.01, 10.02, 10.03) ditentukan oleh sensor/limit switc S1, S2, S3, dan S4 (sebagai input clock ). 1.0
S1
2.0
S2
S3
S4
1.02 1.01
2.02 2.01
1.1
4(A)
2.1
2(B)
14(Z)
12(Y)
Y1
Z1
3(S)
5(R)
1(P)
4(A)
2(B)
14(Z)
12(Y)
Y2
Z2
3(S)
5(R)
1(P)
Gambar 6.40. Sistem dua silinder yang diaktifkan melalui solenoid ganda 126
5. Penggunaan Fungsi Timer pada Aplikasi Pengaturan Lampu Lalu Lintas
Deskripsi Sistem: Salah satu aplikasi dari Timer adalah pengaturan lampu lalu lintas, yang terdiri dari 3 lampu yang menyala secara bergantian. Untuk memudahkan dalam simulasi, dimisalkan bahwa ketiga lampu tersebut menyala secara bergantian selama 5 detik. Tabel pengalamatan I/O-nya seperti pada Tabel 6.7. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.41. Tabel 6.7. Pengalamatan peralatan I/O pada sistem pengaturan lampu lalu-lintas Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Push Button Start/ON
010.00 (10.00)
Lampu 1
000.01 (0.01)
Push Button Stop/OFF
010.01 (10.01)
Lampu 2
010.02 (10.02)
Lampu 3
(a)
127
(b) Gambar 6.41. Program pengaturan lampu lalu lintas (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list )
6. Penggunaan Fungsi CNT pada Aplikasi Pengepakan Apel ke dalam Box
Deskripsi Sistem: PLC dapat digunakan untuk mengontrol proses pengepakan apel ke dalam boks (seperti pada Gambar 6.42a). Aplikasi semacam ini digolongkan pada aplikasi pengepakan ( packing application), dan kasusnya bermacam-macam. Pada contoh aplikasi ini, ketentuannya adalah sebagai berikut: -
Saat tombol START diaktifkan (ON) maka konveyor pembawa boks akan jalan ON).
-
Jika sensor boks ( Sen_box ) mendeteksi keberadaan boks maka konveyor pembawa boks akan berhenti dan konveyor pembawa apel mulai dijalankan. 128
-
Sensor apel (Sen_Apel ) akan menghitung hingga 10 buah apel, kemudian menghentikan konveyor pembawa apel (pencacah/counter apel akan direset) dan proses dijalankan dari awal lagi, demikian seterusnya hingga tombol STOP dipencet. Diagram pewaktuannya ditunjukkan pada Gambar 6.42b.
Tabel pengalamatan I/O-nya seperti pada Tabel 6.8. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.43.
(a)
(b) Gambar 6.42.
(a). Sistem pengepakan apel ke boks (b). Diagram pewaktuan 129
Tabel 6.8. Pengalamatn peralatan I/O pada s istem pengepakan apel Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Tombol START
010.00 (10.00)
Konveyor Apel
000.01 (0.01)
Tombol STOP
010.01 (10.01)
Konveyor Box
000.02 (0.02)
Sensor Apel
000.03 (0.03)
Sensor Box
(a)
(b) Gambar 6.43. Program pengepakan apel ke dalam boks (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi (statement lis t)
130
7. Aplikasi Sortir Produk
Deskripsi Sistem: Pada aplikasi ini, sistem dilengkapi oleh suatu sensor yang dapat mendeteksi produk yang rusak, sehingga dapat dibuang dari bagian pembawa barang atau konveyor barang. Produk yang rusak tersebut akan dibuang dari konveyor pada saat berada pada posisi kelima setelah terdeteksi pada posisi pertama (seperti dipelihatkan pada Gambar 6.44). Tabel pengalamatan I/O-nya seperti pada Tabel 6.9. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.45. Tabel 6.9. Pengalamatan peralatan I/O pada sistem sortir produk Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.02 (0.02)
Sensor Produk Rusak
010.00 (10.00)
000.03 (0.03)
Pulsa DETAK
Mekanis Pembuang
000.04 (0.04)
RESET Register
Gambar 6.44. Sistem sortir produk
Pada sistem ini, fungsi shif register SFT(10) dan area data HR00 dapat digunakan. Pada posisi 4 dari 0, produk rusak harus dibuang dengan membuka pintu buang (melalui mekanisme pembuangan). 131
Jika ada produk rusak terdeteksi maka sensor produk rusak memberikan data 1 pada HR00 bit pertama (HR00.00), dan pada saat bersamaan muncul pulsa Detak 000.03. Dengan adanya funsi geser SFT(10) maka pada detak kelima atau pada saat data 1 mencapai bit kelima (HR00.04) akan mengakibatkan pintu buang 010.00 menjadi ON atau membuka. Demikian seterusnya.
(a)
(b) Gambar 6.45. Program sistem sortir barang (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list ) 8. Aplikasi Kontrol Pintu Gudang
Deskripsi Sistem: Gambar 6.46 memperlihatkan sebuah sistem kontrol pintu gerbang dengan menggunakan PLC. Sebuah sensor ultrasonik digunakan untuk mendeteksi keberadaan truk yang mendekat ke pintu gudang, sehingga pintu gudang mulai dibuka. Selanjutnya sebuah sensor foto (fotosensor) digunakan untu mendeteksi keberadaan truk di pintu gudang. Dengan adanya sensor-sensor tersebut, ditambah dengan saklar atas dan bawah (yang akan digunakan untuk menghentikan motor pembuka/penutup pintu) maka sistem pengontrolan pintu gudang tersebut akan bekerja secara otomatis. 132
Gambar 6.46. Sistem pengontrolan pintu gudang Tabel pengalamatan I/O-nya seperti pada Tabel 6.10. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.47. Tabel 6.10. Pengalamatan peralatan I/O pada siste m pengontrolan pintu gudang Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Sensor Ultrasonik (S1)
Penaik Pintu
000.01 (0.01)
Sensor Fotosensor (S2)
010.00 (10.00)
000.02 (0.02)
Saklar Batas Atas (S3)
Penurun Pintu
000.03 (0.03)
Saklar Batas Bawah (S4)
010.01 (10.01)
(K1)
(K2)
(a) 133
(b) Gambar 6.47. Program sistem pengontrolan pintu gudang (a). Ladder diagram (b). Kode mnemonik, atau daftar instruksi ( statement list ) 9. Aplikasi Kontrol Parkir Mobil
Deskripsi Sistem: Misalnya suatu tempat parkir yang dapat memuat 5 mobil. Sistem terdiri dari 2 sensor (sensor untuk mendeteksi mobil masuk dan keluar). Suatu sinyal akan dihasilkan jika tempat parkir tersebut penuh. Setiap kali ada mobil masuk ke tempat parkir maka jumlah mobil akan bertambah satu, demikian juga setiap ada mobil keluar dari tempat parkir maka jumlah mobil akan berkurang satu. Hal ini akan dilakukan secara otomatis.
Gambar 6.48. Sistem pengontrolan tempat parkir
134
Jika jumlah mobil di tempat sudah mencapai 5 mobil (sesuai kapasitas tempat parkir tersebut) maka akan ditampilkan indikator, bahwa ”PARKIR PENUH” ( car park full ), sehingga mobil berikutnya yang akan parkir diharapkan tidak masuk lagi untuk parkir, atau pemilik mobil yang bersangkutan mengetahui bahwa tempat parkir sudah penuh, sehingga bisa mencari tempat parkir lainnya. Tabel pengalamatan I/O-nya seperti pada Tabel 6.11. Diagram tangga dan kode mnemoniknya diperlihatkan pada Gambar 6.49. Tabel VI-11. Pengalamatan peralatan I/O pada sis tem pengontrolan tempat parkir Input
Output
Pengalamatan
Peralatan
Pengalamatan
Peralatan
000.00 (0.00)
Sensor 1 (S1)
010.00 (10.00)
Tanda
000.01 (0.01)
Sensor 2 (S2)
PARKIR PENUH
(a)
135
(b) Gambar 6.49. Program sistem pengontrolan tempat parkir (a). Kode mnemonik, atau daftar instruksi ( statement list ) (b). Ladder diagram 136
Setiap kendaraan masuk, PLC akan menambah satu melalui sensor S1. Demikian juga, setiap kendaraan keluar dikurangi satu melalui sensor S2. Hasil penambahan dan pengurangan disimpan pada HR00 (sebagai data 1). Data 1 dibandingkan dengan data 2 (kapasitas tempat parkir) dengan menggunakan fungsi CMP(20), yang hasilnya disimpan di flag GT, EQ dan LT pada SR area (255.05, 255.06, dan 255.07). Yang digunakan dalam program ini adalah Greater Than (GT) Flag, dan Equals (EQ) Flag.
6.4 SOAL-SOAL LATIHAN Petunjuk : Dalam perancangan dan pembuatan program dengan PLC dengan sistematis, ikuti prosedur seperti pada Gambar VI-37. 1. Rancanglah sebuah program
ladder diagram untuk tiap-tiap sistem yang
melaksanakan aktivitas-aktivitas seperti di bawah ini: a. Mengaktifkan sebuah pompa ketika ketinggian air di dalam tangki naik di atas 1,2 m, dan mematikannya ketika ketinggian air turun di bawah 1,0 m. b. Mengaktifkan sebuah pompa, dan 100 detik kemudian menyalakan sebuah pemanas, lalu 30 detik setelahnya akan mengaktifkan motor pemutar. 2. Rancanglah sebuah program ladder diagram untuk mengontrol sebuah mesin cuci, dengan deskripsi sistem sebagai berikut. Pada saat sistem di-ON, sebuah pompa akan menyala selama 100 detik. Setelah pompa tersebut OFF, sebuah pemanas akan nyala selama 50 detik. Selanjutnya, pemanas dimatikan, dan pompa lainnya dinyalakan untuk mengosongkan air dari dalam tabung cuci. 3. Rancanglah sebuah program ladder diagram untuk mengontrol sebuah silinder pergerakan-dua-arah (double-acting cylinder) yang dikontrol oleh sebuah katup solenoid, yaitu sebuah silinder dengan piston yang dapat bergerak ke dua arah yang berlawanan, di mana solenoid mengatur kedua posisi piston dengan menggerakkan ke kanan dan menahannya selama 2 detik, dan kemudian mengembalikannya ke kiri. 4. Diketahui sistem kontrol konveyor pengisi cairan pada botol seperti pada Gambar L6-1. 137