Archive

Posts Tagged ‘PLC/ZELIO’

Instruksi INTERRUPT CONTROL – INT(89)

February 6, 2009 1 comment

int89Instruksi INT(89) berfungsi untuk mengontrol/mengarahkan interupsi dan melakukan satu dari tujuh fungsi yang dapat dipilih sesuai dengan nilai parameter C1. Instruksi INT(89) memiliki tiga buah operand yakni C1, 000, dan C2. C1 adalah konstanta dengan nilai 000 – 004, 100, dan 200. Berikut adalah fungsi instruksi INT(89) berdasarkan nilai operand C1:
1. Mask/Unmask Interrupt Inputs (C1 = 000)
2. Clear Interrupt Inputs (C1 = 001)
3. Read Current Mask Status of Interrupt Inputs (C1 = 002)
4. Restart Decrementing Counter and Unmask Interrupt (C1 = 003)
5. Restart Incrementing Counter and Unmask Interrupt (C1 = 004)
6. Mask All Interrupts (C1 = 100)
7. Unmask All Interrupts (C1 = 200)

1. Fungsi Mask/Unmask Interrupt Inputs
Fungsi ini digunakan untuk menghalangi atau mengijinkan interupsi dari kaki Input 000.03 – 000.06. Interupsi yang dihalangi (masked) akan dicatat  dan diabaikan oleh CPU. Interupsi yang diijinkan (unmasked) akan direspon dan program interupsinya akan dieksekusi.

Operand C2 (word) pada instruksi INT(89) digunakan untuk mengijinkan (unmasking) atau menghalangi (masking) masukan interupsi. Untuk mengijinkan masukan interupsi, maka bit yang bersesuaian harus direset. Dan sebaliknya, untuk menghalangi masukan interupsi, maka bit yang berseuaian harus diset. Bit ke-0 untuk Input 000.03, bit ke-1 untuk Input 000.04, bit ke-2 untuk Input 000.05, dan bit ke-3 untuk Input 000.06. Berikut adalah contoh penggunaan instruksi INT(89) untuk mengijinkan masukan interupsi 000.03 dan menghalangi masukan interupsi yang lainnya.

intfungsi1

Instruksi INT(89) akan dieksekusi pada siklus pertama program. C1 = 000 berarti menjalankan fungsi Mask/Unmask Interrupt Inputs. C2 = 000EH = 00000000 00001110B berarti mengijinkan masukan interupsi 000.03 dan menghalangi masukan interupsi yang lainnya.

Pada awal operasi, semua masukan interupsi berada dalam kondisi terhalangi. Oleh karena itu perlu dilakukan unmasking agar masukan interupsi dapat digunakan.

2. Fungsi Clear Interrupt Inputs
Fungsi ini digunakan untuk menghapus masukan interupsi. Karena CPU mencatat masukan interupsi meskipun dalam keadaan masked, maka program interupsi akan langsung dieksekusi seketika setelah masukan interupsinya di-unmasked, kecuali catatan interupsinya dihapus terlebih dahulu.

Penghapusan catatan interupsi ini perlu dilakukan jika kita ingin mengaktifkan interupsi ditengah-tengah jalannya program. Lain halnya jika unmasking dilakukan pada siklus pertama program, maka proses clearing ini tidak perlu dilakukan. Berikut adalah contoh penggunaan instruksi INT(89) untuk menghapus masukan interupsi sebelum interupsi di-unmasking.

intfungsi2

Ketika SENSOR berubah kondisi dari OFF menjadi ON, maka instruksi INT(89) pertama akan menghapus masukan interupsi dari semua kaki input (000.03 – 000.06). Selanjutnya, instruksi INT(89) berikutnya akan mengijinkan masukan interupsi Input 000.03 dan menghalangi masukan interupsi yang lainnya.

Maaf, sekian saja dulu. Fungsi-fungsi instruksi INT(89) yang lain, cara setup-nya, dan contoh programnya saya sambung lain waktu. Insya Allah…

Selamat belajar!

Artikel lain yang berhubungan: Fungsi-fungsi Interupsi CPM2A.

Fungsi-fungsi Interupsi CPM2A

February 5, 2009 2 comments

CPM2A menyediakan beberapa jenis pemrosesan interupsi, yakni:

  • Interrupt Inputs – Program interupsi akan dieksekusi ketika kondisi Input 000.03 – 000.06 berubah dari OFF menjadi ON. Nomor subrutin interupsi yang dialokasikan untuk Input 000.03 – 000.06 adalah 000 – 003.
  • Interval Timer Interrupts – Program interupsi interval timer akan dieksekusi berdasarkan interval waktu yang ditentukan dengan kepresisian 0,1 milidetik. Nomor subrutin interupsi yang dialokasikan adalah 000 – 049.
  • Count-up Interrupts Using Interrupt Inputs (Counter Mode) – Sinyal input yang masuk ke kaki Input 000.03 – 000.06 akan dihitung pada kecepatan tinggi dengan frekuensi 2 kHz, dan program utama akan dihentikan sementara untuk menjalankan program interupsi. Nomor subrutin interupsi yang dialokasikan untuk Input 000.03 – 000.06 adalah 000 – 0003.
  • Count-check Interrupts Using High-Speed Counter – Pulsa yang masuk ke kaki Input 000.00 – 000.02 akan dihitung pada kecepatan tnggi dengan frekuensi 20 kHz/5 kHz. Program interupsi dieksekusi ketika nilai PV High-Speed Counter telah mencapai nilai target SV atau telah sampai pada jangkauan nilai tertentu. Nomor subrutin interupsi yang dialokasikan untuk instruksi ini adalah 000 – 049.

isrProgram interupsi didefinisikan sebagai subrutin interupsi dalam program. Sebagaimana halnya subrutin biasa, subrutin interupsi juga didefinisikan dengan instruksi SBN(92) dan RET(93) seperti diilustrasikan oleh gambar di samping ini.

Adapun aturan-aturan yang harus diikuti dalam hal pendefinisian subrutin interupsi adalah sebagai berikut.

1. Interupsi baru dapat didefinisikan dalam subrutin interupsi.
2. Interupsi yang sudah ada dapat dihapus dalam subrutin interupsi.
3. Di dalam subrutin interupsi tidak boleh ada subrutin interupsi lain.
4. Di dalam subrutin interupsi tidak boleh ada subrutin biasa.
5. Di dalam subrutin biasa tidak boleh ada subrutin interupsi.

Prioritas Interupsi
Urutan prioritas interupsi diilustrasikan oleh gambar berikut ini. Interupsi dengan prioritas yang lebih tinggi akan didahulukan, artinya, program interupsinya akan diprioritaskan untuk dieksekusi terlebih dahulu.

Jika interupsi dengan prioritas yang sama terjadi bersamaan, maka program interupsi akan dijalankan secara berurutan dari nomor subrutin interupsinya.

Jika interupsi dengan prioritas yang lebih tinggi muncul ketika subrutin interupsi dengan prioritas yang lebih rendah sedang dieksekusi, maka program akan melompat dulu ke subrutin interupsi dengan prioritas yang lebih tinggi, dan setelah subrutinnya selesai dieksekusi, program akan kembali melanjutkan subrutin interupsi yang ditinggalkannya tadi.

intpriority

Selamat belajar!

Struktur Memori Area CPM1A dan CPM2A

January 16, 2009 1 comment

Kamis, 15 Januari 2009 kemarin, Mas Ari menanyakan apakah alamat untuk CPM1A sama dengan CPM2A. Nah, untuk menjawab pertanyaan tersebut, maka berikut adalah data mengenai struktur memori area untuk PLC OMRON CPM1A dan CPM2A.

CPM1A
IR AREA
+ Input: IR000 – IR009 word = IR00000 – IR00915 bit
+ Output: IR010 – IR019 word = IR01000 – IR01915 bit
+ Work Area: IR200 – IR231 word = IR20000 – 23115 bit

SR AREA
SR232 – SR255 word = SR23200 – SR25515 bit

TR AREA
TR0 – TR7

HR AREA
HR00 – HR19 word = HR0000 – HR1915 bit

AR AREA
AR00 – AR15 word = AR0000 – AR1515 bit

LR AREA
LR00 – LR15 word = LR0000 – LR1515 bit

TIMER/COUNTER AREA
TC000 – TC127

DM AREA
+ Read/Write: DM0000 – DM0999, DM1022 – DM1023
+ Error log: DM1000 – DM1021
+ Read-only: DM6144 – DM6599
+ PC Setup: DM6600 – DM6655

CPM2A
IR AREA

+ Input: IR000 – IR009 word = IR00000 – IR00915 bit
+ Output: IR010 – IR019 word = IR01000 – IR01915 bit
+ Work Area:

  • IR20 – IR49 word = IR02000 – IR04915 bit
  • IR200 – IR227 word = IR20000 – 22715 bit

SR AREA
SR228 – SR255 = SR22800 – SR25515 bit

TR AREA
TR0 – TR7

HR AREA
HR00 – HR19 = HR0000 – HR1915

AR AREA
AR00 – AR23 = AR0000 – AR2315

LR AREA
LR00 – LR15 = LR0000 – LR1515

TIMER/COUNTER AREA
TC000 – TC255

DM AREA
+ Read/Write: DM0000 – DM1999, DM2022 – DM2047
+ Error log: DM2000 – DM2021
+ Read-only: DM6144 – DM6599
+ PC Setup: DM6600 – DM6655

Kalau dilihat data di atas, maka sebagian besar alamat memori CPM1A dan CPM2A adalah sama. Hanya terdapat sedikit perbedaan seperti jumlah Timer/Counter – CPM1A memiliki 127 Timer/Counter, sedangkan CPM2A dua kali lipatnya. DM juga demikian, CPM2A kapasitasnya dua kali lipat dibanding dengan CPM1A.

Data selengkapnya dapat merujuk pada datasheet yang dapat di-download di CPM2A dan SYSWIN 3.4 Download Links.

Semoga bermanfaat dan selamat belajar!

Aplikasi PLC – Solusi ON-OFF Satu Tombol

December 23, 2008 31 comments

Perhatikan diagram ladder berikut ini.

selfmaintainKetika Tombol START ditekan, maka MOTOR akan ON. MOTOR akan tetap ON meskipun Tombol START dilepas. Untuk mematikan MOTOR, maka ditekan Tombol STOP. Rangkaian tersebut disebut Rangkaian ON-OFF dengan Self-Maintaining Output.

Selanjutnya, perhatikan diagram ladder berikut.

1btnonoff

Ketika Tombol ON-OFF ditekan, maka instruksi DIFU(13) akan membangkitkan pulsa HIGH sesaat (1 siklus) pada alamat IR200.00. Jika MOTOR dalam kondisi OFF, maka pulsa PULSE akan mengeset instruksi KEEP(11) dan menghidupkan MOTOR pada Output 010.00. Sebaliknya, jika MOTOR dalam kondisi ON, maka pulsa PULSE akan mereset instruksi KEEP(11) dan mematikan MOTOR.

Dengan mengkombinasikan instruksi DIFU(13) dan KEEP(11) dapat disusun diagram untuk Solusi ON-OFF Satu Tombol.

Selamat belajar!

Aplikasi PLC – Mesin Pengering Sederhana

December 20, 2008 1 comment

Anggap saja ini mesin pengering cucian yang punya pilihan untuk mengeringkan cucian selama 1 menit, 2 menit, dan 3 menit yang dapat dipilih menggunakan tombol kuning, merah, dan biru. Teknik pengeringan adalah dengan cara memutar cucian dalam tabung berlubang-lubang dengan kecepatan tinggi selama 1, 2, atau 3 menit.

pengering1

Skenario

  1. Jika Tombol 1_Menit ditekan, maka Motor akan berputar selama 1 menit, dan kemudian OFF.
  2. Jika Tombol 2_Menit ditekan, maka Motor akan berputar selama 2 menit, dan kemudian OFF.
  3. Jika Tombol 3_Menit ditekan, maka Motor akan berputar selama 3 menit, dan kemudian OFF.

Diagram laddernya adalah sebagai berikut.

pengering2

Rung 1. Jika Tombol 1_Menit ditekan, maka SV (Setting Value) Timer TIM001 akan diisi dengan nilai 600 hex (60 detik). Kenapa gak pake MOV(21) aja? Karena tidak bisa, instruksi MOV(21) tidak dapat mengakses memori area TC. Oleh karena itu digunakan instruksi BSET(71). Lihat Instruksi BSET(71).

pengering3

Rung 2. Jika Tombol 2_Menit yang ditekan, maka SV TIM001 akan diisi dengan 1200 hex (120 detik).

pengering4

Rung 3. Jika Tombol 3_Menit yang ditekan, maka SV TIM001 akan diisi dengan 1800 hex (180 detik).

pengering5

Rung 4. Jika Tombol 1_Menit ditekan ATAU Tombol 2_Menit ditekan ATAU Tombol 3_Menit ditekan, maka bit flag RUN yang ada di alamat IR200.00 akan diset oleh instruksi KEEP(11). Bit flag RUN akan direset oleh Completion-Flag dari TIM001.

pengering62

Rung 5. Selama bit flag RUN berada dalam kondisi ON, maka TIM001 akan menghitung dan MOTOR akan berputar. Sementara itu, LAMPU indikator akan berkedip-kedip dengan frekuensi 1 detik. Setelah SV samadengan nol, maka Completion-Flag TIM001 akan ON. Pada siklus berikutnya, bit flag RUN akan direset sehingga MOTOR dan LAMPU akan OFF.

Dan jangan lupa memberi END(01) di akhir program.

Selamat belajar!

Follow

Get every new post delivered to your Inbox.

Join 170 other followers