OMRON PCM1A Programmable Logic Controller (PLC)
Oleh : Rohendi, M.I.Kom
( Instruksi Dasar Pemrograman dengan Ladder Diagram )
Teknik Elektro STT DR. KHEZ. MuFaqien Purwakarta
Instruksi MOVE – MOV(21)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi MOVE -‐ MOV(21) digunakan untuk meng-‐copy nilai dari Source ke DesLnaLon. Source dapat berupa konstanta (#), ataupun data yang ada di alamat tertentu dalam register IR, SR, AR, DM, HR, TC, dan LR. Sedangkan DesJnaJon adalah alamat register IR, SR, AR, DM, HR, LR. Jika kondisi eksekusi MOV(21) ON, maka data di Source (Sumber) akan di-‐copy ke DesLnaLon (Tujuan).
PerhaLan!
Instruksi MOV(21) Jdak dapat digunakan untuk mengubah nilai PV (Process Value) pada Timer/Counter.
Instruksi MOV(21) Jdak dapat digunakan untuk mengubah nilai DM6144 sampai DM6655.
Ketika kondisi Input 000.00 ON, maka konstanta #0100 akan di-copy ke DM0000, dan selanjutnya nilai dalam DM0000 akan di-copy ke HR05. Ketika kondisi Input 000.00 ON, maka konstanta #0100 akan di-copy ke DM0000, dan selanjutnya nilai dalam DM0000 akan di-copy ke HR05.
KeJka kondisi Input 000.00 ON, maka konstanta #0100 akan di-‐copy ke DM0000, dan selanjutnya nilai dalam DM0000 akan di-‐copy ke HR05.
Instruksi INCREMENT – INC(38)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi ini berfungsi untuk menambah satu nilai pada operand berJpe word. Operand dalam hal ini bisa salah satu dari register IR, SR, AR, DM, HR, dan LR.
Jika kondisi eksekusi instruksi INC(38) terpenuhi, maka nilai operand akan ditambah satu tanpa mempengaruhi bit flag Carry (CY).
Instruksi ini termasuk salah satu instruksi yang dapat didiferensiasi. Jika INC(38) Jdak didiferensiasi, maka selama kondisi eksekusi terpenuhi, nilai operand akan bertambah satu seJap siklusnya. Jika dibutuhkan untuk memicu instruksi INC(38) sekali saja selama kondisi eksekusi terpenuhi, maka gunakan instruksi INC(38) yang didiferensiasi atau dengan menggabungkan instruksi INC(38) dengan instruksi DIFU(13) dan DIFD(14) .
Instruksi DECREMENT – DEC(39)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi ini berfungsi untuk mengurangi satu nilai pada operand berJpe word. Operand dalam hal ini bisa salah satu dari register IR, SR, AR, DM, HR, dan LR. Jika kondisi eksekusi instruksi DEC(39) terpenuhi, maka nilai operand akan dikurangi satu tanpa mempengaruhi bit flag Carry (CY). Instruksi ini termasuk salah satu instruksi yang dapat didiferensiasi. Jika DEC(38) Jdak didiferensiasi , maka selama kondis i eksekusinya terpenuhi, nilai operand akan bertambah satu seJap siklusnya. Jika dibutuhkan untuk memicu instruksi DEC(39) sekali saja selama kondisi eksekusi terpenuhi, maka gunakan instruksi DEC(38) yang didiferensiasi atau dengan menggabungkan instruksi DEC(38) dengan instruksi DIFU(13) atau DIFD(14).
Instruksi COMPARE – CMP(20)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi CMP(20) berfungsi membandingkan dua buah operand berJpe word. KeJka kondisi eksekusi instruksi ini terpenuhi, maka CMP(20) akan membandingkan nilai operand1 dengan nilai operand2. Hasil perbandingan tersebut disimpan dalam bit flag EQ (EQuals), LE (LEss-‐than), dan GR (GReater-‐than) yang menyatakan operand1 = operand2, operand1 < operand2, dan operand1 > operand2.
Perlu diperhaLkan !
Jika membandingkan nilai PV (Process Value) pada Timer atau Counter, maka perlu diingat bahwa nilai PV pada Timer dan Counter adalah bilangan BCD. Jadi nilai pembandingnya sebaiknya juga BCD agar Jdak bingung. Sebaiknya langsung memproses hasil perbandingan instruksi CMP(20) sebelum instruksi lain dijalankan karena mungkin saja bit flag EQ, LE, dan GR mengalami perubahan nilai.
Instruksi Compare
v Rung 1. KeJka pertama kali dihidupkan, nilai DM0100 akan direset menjadi 0000 dengan menggunakan instruksi MOV(21) yang dieksekusi oleh bit flag First_Scan (SR253.15).
v Rung 2. Jika Input 000.00 ON, maka instruksi @INC(38) akan menaikkan nilai DM0100 sebesar 1. Adanya tambahan karakter ‘@’ di depan menunjukkan bahwa instruksi ini didiferensiasi.
v Rung 3. Secara konJnyu, program membandingkan nilai DM0100 dengan 5. Jika nilainya kurang dari 5, maka Output 010.01 akan ON. Jika nilainya samadengan 5, maka Output 010.00 akan ON. Dan jika nilainya lebih dari 5, maka Output 010.02 akan ON.
Instruksi BINARY-‐TO-‐BCD – BCD(24)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi BCD(24) berfungsi untuk mengkonve r s i b i l angan b i na r y ( h e x a d e c i m a l ) m e n j a d i B C D ekuivalennya. Nilai bilangan yang dikonversi Jdak boleh melebihi 270F hexa karena hasil konversinya akan melebihi angka 9999. Jika hal ini terjadi maka instruksi BCD(24) tersebut Jdak akan dieksekusi. Instruksi ini membutuhkan dua operand yakni Source dan DesLnaLon. Source adalah alamat memori bilangan binary yang akan dikonversi dan DesJnaJon adalah alamat memori bilangan BCD hasil konversi. Source dan DesJnaJon bisa saja salah satu dari IR, SR, AR, DM, HR, atau LR. Source dan DesJnaJon Jdak dapat diisi konstanta.
Instruksi SET dan RSET
Instruksi SET dan RESET mirip sekali dengan instruksi OUTPUT dan OUTPUT NOT. Instruksi SET dan RESET mengubah kondisi bit operand-‐nya keJka kondisi eksekus inya ON. KeJka kond i s i eksekusinya OFF, kondisi bit operand-‐nya Jdak akan terpengaruh. Berbeda dengan instruksi OUTPUT dan OUTPUT NOT yang akan mempengaruhi kondisi bit operand-‐nya, baik keJka kondisi eksekusinya ON maupun OFF.
Instruksi JMP
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi Jump – JMP(04) selalu berpasangan dengan instruksi Jump End – JME(05). JMP digunakan untuk melewaJ bagian program tertentu dalam program, yakni bagian program yang terletak di antara instruksi JMP(04) dan JME(05). Kita sebut saja bagian program tersebut sebagai jump secLon.
Jika kondisi eksekusi JMP(04) ON, maka program akan berjalan ‘lurus’ seperJ jika Jdak ada instruksi JMP(04). Dengan kata lain, instruksi-‐instruksi dalam jump secJon akan dieksekusi. Tapi jika kondisi eksekusi JMP(04) OFF, maka eksekusi program akan melompat menuju instruksi tepat di bawah instruksi JME(05), tanpa mengubah nilai status apapun yang ada di dalam jump secLon.
Animasi disamping ini merupakan aplikasi instruksi MC (Master Control) dan MCR (Master Control Reset) dimana program yang ada diantara MC dan MCR (0001 & 0500) akan bekerja saat input 0000 akJf (ON)
Instruksi DifferenLate Up – DIFU(13) dan DifferenLate Down – DIFD(14) digunakan untuk mengubah kondisi bit operand menjadi ON selama 1 siklus saja. KeJka dieksekusi, DIFU(13) akan membandingkan kondisi eksekusi sekarang dengan kondisi eksekusi sebelumnya. Jika kondisi eksekusi sebelumnya adalah OFF dan kondisi eksekusi sekarang adalah ON, maka DIFU(13) akan mengakJlan bit operand menjadi ON selama 1 siklus saja. Kebalikan dari instruksi DIFU(13) yang mengakJlan bit operand selama 1 siklus keJka kondisi eksekusi berubah dari OFF ke ON, maka instruksi DIFD(14) akan mengakJlan bit operand selama 1 siklus keJka kondisi eksekusi berubah dari ON ke OFF. Contoh berikut akan menjelaskan prinsip kerja dari DIFU(13) dan DIFD(14).
Instruksi DIFU dan DIFD
Animasi disamping ini merupakan aplikasi instruksi DIPU dan DIPD yang digunakan untuk menyalakan lampu (0500) dengan Single Push Bu5on (0000) .
Instruksi KEEP
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
I n s t r u k s i i n i d i g u n a k a n u n t u k mempertahankan kondisi bit operand berdasarkan dua kondisi eksekusi, yakni Set dan Reset. Oleh sebab itu, instruksi KEEP ini terhubung ke dua baris instruksi pengkondisi eksekusi. Jika kondisi eksekusi instruksi pada baris pertama ON (Set), maka kondisi bit operand instruksi KEEP akan ON. Dan jika kondisi eksekusi instruksi pada baris kedua ON (Reset), maka kondisi bit operand instruksi KEEP akan OFF. Jadi instruksi KEEP ini seperJ instruksi SET dan RSET yang dijadikan satu paket.
Kondisi bit operand yang digunakan instruksi KEEP Jdak d i reset da lam instruks i INTERLOCK. Contoh program berikut akan menjelaskan fungsi KEEP dan penggunaannya dalam program.
Instruksi END dan NOP
Instruksi ini umumnya digunakan sebagai penutup program. Instruksi-‐instruksi yang terletak di bawah instruksi END(01) Jdak akan dieksekusi oleh PLC. Instruksi END(01) dapat diletakkan dimana saja di dalam program. Karenanya, instruksi ini dapat digunakan untuk men-‐debug program. Dengan menyelipkan instruksi END(01) pada baris tertentu di dalam program, maka berarJ kita membatasi eksekusi program sampai baris tersebut. Setelah yakin bahwa program berjalan benar hingga baris tersebut, kita dapat menghapus instruksi END(01) tersebut dan memindahkannya ke bagian lain. Jika dalam sebuah program PLC belum terdapat instruksi END(01), maka program Jdak akan dieksekusi dan pesan kesalahan akan ditampilkan. Instruksi END(01) mereset flag ER, CY, GR, EQ dan LE.
Instruksi NOP(00) Instruksi ini Jdak diperlukan dalam pemrograman dan Jdak ada simbol ladder khusus untuk instruksi ini. KeJka instruksi ini ditemukan dalam program, maka PLC Jdak melakukan apapun dan program akan melanjutkan eksekusi ke instruksi selanjutnya. KeJka memori PLC dihapus, maka semua alamat akan berisi NOP(00).
Selamat UAS