Instruksi ini berfungsi untuk mengurangi satu nilai pada operand bertipe 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) tidak didiferensiasi, maka selama kondisi eksekusinya terpenuhi, nilai operand akan bertambah satu setiap 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).

Contoh Program

dec

Ketika PLC di-running, maka DM0100 akan diisi nilainya 1000 oleh instruksi MOV(21) yang kondisi eksekusinya diaktifkan sekali saja yakni pada siklus pertama. Hal ini dapat dilakukan dengan memanfaatkan First Cycle Flag dengan alamat SR 253.15.

Selanjutnya, jika Input 000.01 ON, maka nilai DM0100 akan berkurang satu dengan aman dan tenteram. Lain halnya dengan ketika Input 000.00 ON. Ketika hal itu terjadi, maka nilai DM0100 akan berkurang dengan sangat cepat. Hal ini disebabkan karena meskipun sekejap saja kita mengubah kondisi Input 000.00 dari OFF ke ON dan kemudian ke OFF lagi, PLC telah memprosesnya berulang-ulang karena siklus waktu PLC yang lebih cepat.

Selamat belajar!