By Kurnia · Published September 30, 2026 · Revised October 29, 2026 · Version 3 · 24 min read
Pemrograman PLC menurut IEC 61131-3
Program PLC yang ditulis dengan bahasa umum IEC 61131-3 lebih mudah dibaca, dipindahkan, dan diperbaiki daripada program yang terikat satu merek. Dibahas pemilihan bahasa LD, FBD, ST, dan SFC beserta status IL pada edisi 4 (2025), variabel dan tipe data, kontak, koil, set/reset, deteksi tepi, pewaktu TON/TOF/TP, pencacah CTU/CTD, struktur POU, dokumentasi, dan simulasi. Contoh kerja menyusun urutan cuci isi-cuci-buang-peras dalam tabel SFC, anak tangga LD, dan ST, lengkap dengan batas waktu yang menuju langkah gangguan dan hitungan waktu siklus. Kode ditulis generik tanpa sintaks merek; angka contoh adalah ilustrasi, dan fungsi keselamatan tetap perangkat keras.
This chapter is still in Indonesian. Its English edition will follow.
Sebuah laundry komersial menjalankan dua belas mesin cuci bergantian sepanjang hari; operator memilih program dan menekan start, dan PLC mengatur katup, waktu bilas, dan pembuangan. Ketika mesin lama diganti atau teknisi baru membawa perangkat lunak merek lain, program lama tidak bisa langsung dibuka, dan standar tidak mengubah hal itu karena berkas proyek terikat perangkat lunak pembuatnya. Standar pemrograman PLC memberi bahasa, tipe data, dan blok fungsi yang sama, sehingga logika yang ditulis hari ini dapat dibaca, ditulis ulang, dan diperbaiki teknisi lain tanpa menebak.
Batas pembahasan
Bab ini membahas penulisan, penyusunan, dan dokumentasi program PLC menurut IEC 61131-3 edisi terkini, dengan sintaks generik tanpa alamat khas merek. Perangkat keras PLC dan siklus scan ada di Bab 63, kontak NO/NC di Bab 2, logika kontak di Bab 51, penerapan pada motor dengan interlock perangkat keras di Bab 65, dan I/O analog, penskalaan, PID, HMI, serta komunikasi di Bab 66. Semua waktu dan nilai numerik bersifat ilustrasi kecuali dinyatakan lain. Kode komponen mengikuti IEC 81346-2, yaitu -K PLC, -Q kontaktor dan katup (seperti di Bab 62 tentang elemen kendali akhir), -S tombol, -B sensor, -M motor, -T pengubah frekuensi, dan -P lampu indikator, bernomor urut mulai 1.
Bahasa pemrograman: kapan memakai yang mana
IEC 61131-3 edisi 3 (2013) mendefinisikan dua bahasa teks, Instruction List (IL) dan Structured Text (ST), dua bahasa grafis, Ladder Diagram (LD) dan Function Block Diagram (FBD), serta Sequential Function Chart (SFC) untuk menyusun program. Abstrak resmi edisi 4 (2025) hanya menyebut ST, LD, FBD, dan SFC.
- LD menggambar logika sebagai rangkaian relai, cocok untuk logika diskret sederhana sampai menengah: kendali motor, interlock fungsional, dan urutan ON/OFF. Teknisi berlatar elektrik umumnya paling cepat memahaminya karena simbolnya mirip diagram tangga relai di Bab 51.
- FBD menghubungkan blok fungsi dengan sinyal, cocok untuk kendali kontinu (PID, tekanan, suhu) dengan banyak variabel analog.
- ST adalah bahasa teks tingkat tinggi mirip Pascal atau C (IF-THEN-ELSE, FOR, WHILE, CASE), efisien untuk perhitungan kompleks, manipulasi teks, dan algoritma yang sulit digambar.
- SFC menggambarkan urutan langkah dan transisi, paling wajar untuk proses bertahap seperti urutan cuci, dan menjadi "peta" program yang memudahkan komunikasi teknisi dengan pemilik usaha.
- IL, bahasa teks tingkat rendah mirip bahasa rakitan, dinyatakan usang (deprecated) pada edisi 2013 dan tidak lagi tercantum di abstrak edisi 2025; daftar fitur yang ditambah, dihapus, atau usang ada di Lampiran B edisi itu, yang isinya belum dicocokkan. Bab ini tidak memakai IL, dan program IL lama sebaiknya dimigrasi ke ST saat direvisi.
Semua bahasa diterjemahkan menjadi kode untuk CPU yang sama, dan perbedaan kinerjanya bergantung pada implementasi, sehingga bahasa dipilih menurut keterbacaan dan keahlian tim, bukan asumsi performa.
Variabel, tipe data, dan pengalamatan simbolik
Sebelum menggambar anak tangga (rung) LD atau menulis baris ST, pemrogram mendeklarasikan variabel. Variabel (variable) adalah nama untuk sepotong memori PLC; IEC 61131-3 mengharuskan setiap variabel dideklarasikan dengan nama, tipe data, dan, bila perlu, nilai awal. Kebiasaan lama menulis alamat memori fisik langsung, misalnya alamat langsung standar %IX0.0 atau %MW100. Pengalamatan simbolik (symbolic addressing) adalah cara menghubungkan setiap sinyal fisik, misalnya tombol -S1, sensor level -B1, atau katup -Q1, ke nama variabel dalam tabel konfigurasi. Kode menjadi lebih mudah dibaca dan dipindahkan, dan modul masukan yang diganti hanya mengubah tabel itu, bukan setiap kemunculan alamat di program.
| Tipe data | Ukuran | Rentang atau keterangan | Contoh penggunaan |
|---|---|---|---|
| BOOL | 1 bit | FALSE (0) atau TRUE (1) | Status tombol -S1, sinyal sensor -B1 |
| INT | 16 bit | −32.768 hingga 32.767 | Nilai pencacah, nomor langkah |
| DINT | 32 bit | −2.147.483.648 hingga 2.147.483.647 | Pencacah produksi jangka panjang |
| REAL | 32 bit | Bilangan titik-mengambang IEC 60559 (setara IEEE 754) | Hasil pengukuran suhu, tekanan |
| TIME | Bergantung implementasi | Durasi; ditulis T#10s, T#1m30s | Nilai setel pewaktu TON/TOF/TP |
| STRING | Bergantung panjang | Barisan karakter; panjang bawaan ditetapkan implementasi | Pesan HMI, kode produk |
Variabel lokal berlaku di dalam satu satuan program, sedangkan variabel global (VAR_GLOBAL) dideklarasikan pada konfigurasi, resource, atau program dan dipakai satuan program lain lewat VAR_EXTERNAL. Variabel global dipakai seperlunya, karena nilainya dapat berubah dari banyak tempat tanpa jejak yang jelas. Variabel RETAIN adalah variabel yang nilainya disimpan meskipun PLC kehilangan daya; gunakan untuk pencacah produksi atau data proses yang tidak boleh hilang.
Instruksi dasar: kontak, koil, set/reset, dan deteksi tepi
Ladder Diagram meminjam simbologi diagram relai: kontak adalah representasi masukan, yaitu kondisi yang dievaluasi, dan koil representasi keluaran, yaitu tindakan yang dieksekusi bila kondisi terpenuhi.
Kontak NO (normally open) | | bernilai TRUE bila variabelnya TRUE, misalnya tombol -S1 ditekan atau sensor -B1 mendeteksi objek. Kontak NC (normally closed) |/| bernilai TRUE bila variabelnya FALSE; ia kondisi logis, bukan kabel fisik NO atau NC. Tombol stop operasional diawatkan dengan kontak fisik NC supaya kabel putus terbaca sebagai perintah berhenti, sehingga masukannya TRUE dalam keadaan normal dan di program dibaca dengan kontak NO (Bab 63 dan Bab 65). Kontak NC di program dipakai untuk kondisi seperti "tidak ada gangguan".
Koil keluaran ( ) membuat variabel BOOL TRUE selama kondisi anak tangga TRUE dan FALSE begitu kondisi hilang. Standar tidak melarang koil yang sama muncul dua kali, tetapi praktik yang baik memakai satu koil per variabel, karena anak tangga terakhir yang dieksekusi menimpa yang pertama.
Set (S) dan Reset (R) mengingat kejadian sesaat: -S1 ditekan sesaat, Set mengunci perintah kontaktor -Q1 motor -M1 ke TRUE, dan stop -S2 mengembalikannya ke FALSE lewat Reset. Pastikan selalu ada jalur Reset yang dapat terpicu; tanpa Reset, variabel terkunci selamanya. Blok bistabil standar SR (set dominan) dan RS (reset dominan) memberi pilihan dominasi yang sama dengan penahan diri di Bab 51.
Deteksi tepi |P| dan |N|. Tepi naik (rising edge) adalah perubahan variabel dari FALSE ke TRUE; kontak tepi naik memberi pulsa satu siklus scan saat itu, dan kontak tepi turun memberi pulsa saat variabel berubah dari TRUE ke FALSE, misalnya memindahkan mesin ke langkah berikutnya setiap kali -S1 dilepas.
Di ST, perintah -Q1 dengan penahan diri, stop dominan, dan -S2 yang diawatkan NC ditulis eksplisit:
Untuk deteksi tepi di ST, standar menyediakan blok fungsi R_TRIG (tepi naik) dan F_TRIG (tepi turun) yang menyimpan nilai siklus sebelumnya; keluarannya Q TRUE selama satu pemanggilan setelah tepi pada masukan CLK.
Pewaktu dan pencacah standar
IEC 61131-3 mendefinisikan tiga pewaktu (TON, TOF, TP) dan tiga pencacah (CTU, CTD, CTUD) yang perilakunya ditetapkan tepat, sehingga tidak bergantung pada merek PLC. Pewaktu PLC menggantikan relai waktu tunda-nyala dan tunda-lepas dari Bab 48.
TON (tunda-nyala). Q menjadi TRUE setelah IN TRUE selama PT; bila IN jatuh sebelum PT tercapai, pewaktu direset. Nilai berjalan ET (elapsed time) naik dari 0 dan berhenti di PT. Contohnya, sinyal level dianggap tercapai setelah TRUE tanpa putus 2 s supaya riak air tidak memicu transisi.
TOF (tunda-lepas). Q menjadi TRUE segera saat IN TRUE dan tetap TRUE selama PT setelah IN jatuh, misalnya kipas pendingin yang tetap menyala 60 s setelah pemanas dimatikan. Seperti relai tunda-lepas biasa di Bab 48, TOF batal bila PLC kehilangan catu, sehingga pendinginan yang wajib tetap berjalan saat padam tidak diserahkan kepadanya.
TP (pulsa). Setiap tepi naik IN memberi pulsa TRUE selama tepat PT, dan tepi naik berikutnya selama pulsa aktif diabaikan, misalnya katup -Q1 dibuka tepat 3 s berapa pun lama -S1 ditekan.
CTU dan CTD. Pada CTU, nilai berjalan CV bertambah 1 setiap tepi naik CU, Q TRUE saat CV ≥ PV (nilai setel), dan R mereset CV ke 0. Pada CTD, masukan LD memuat CV dengan PV, CV berkurang 1 setiap tepi naik CD, dan Q TRUE saat CV ≤ 0. CTUD menggabungkan keduanya (keluaran QU dan QD), misalnya untuk keranjang linen yang masuk dan keluar.
TON di ST untuk langkah pengisian air dengan batas 45 s:
Struktur program: POU, blok fungsi, dan urutan langkah
POU (Program Organization Unit) adalah satuan yang dipakai IEC 61131-3 untuk mengorganisasi kode; rutin atau subrutin di perangkat lunak merek dipetakan ke salah satu dari tiga jenisnya. PROGRAM adalah POU utama yang dieksekusi task; ia mengakses variabel global dan variabel fisik serta memanggil blok fungsi dan fungsi. FUNCTION_BLOCK mempunyai memori internal yang tersimpan antarpemanggilan, dengan salinan sendiri untuk setiap instansi. TON, TOF, CTU, dan R_TRIG adalah contoh bawaannya, dan blok buatan sendiri seperti "Urutan Cuci" yang menyimpan langkah aktif dan status pewaktunya dapat dipakai beberapa mesin dengan instansi berbeda. FUNCTION tidak bermemori internal; bila tidak membaca variabel global, keluarannya hanya bergantung pada masukan saat itu, sehingga cocok untuk konversi satuan, pemeriksaan batas, dan skala analog, serta lebih mudah diuji dan aman dari efek samping tersembunyi.
Konfigurasi memuat resource, resource memuat task, task menjalankan instansi program, dan blok fungsi dapat memuat instansi blok fungsi lain, misalnya TON, serta memanggil fungsi. Urutan langkah mesin disusun dengan SFC atau dengan nomor langkah dan CASE di ST, seperti di Contoh 2. Urutan eksekusi POU diatur konfigurasi task; task periodik mengeksekusi POU-nya setiap selang tertentu, misalnya 10 ms. PLC bertabel citra membaca semua masukan ke citra masukan, mengeksekusi POU berurutan, lalu menyalin citra keluaran ke modul keluaran (Bab 63); pola baca-eksekusi-tulis ini lazim, tetapi tidak ditetapkan IEC 61131-3. Yang membuat koil ganda menyesatkan adalah eksekusi berurutan: nilai terakhir yang ditulis ke variabel yang sama dalam satu siklus yang menang, dan urutan itu mengikuti urutan penulisan program.
Dokumentasi, komentar, dan simulasi sebelum diunduh
Program yang baik dapat dibaca orang lain, termasuk pembuatnya enam bulan kemudian. IEC 61131-3 mendukung komentar di semua bahasa: kotak teks di LD dan FBD, serta (* ... *) atau // ... di ST. Setiap variabel harus diberi nama bermakna dan deskripsi singkat; awalan seperti x untuk BOOL, t untuk TIME, i untuk INT, dan r untuk REAL memberi tahu tipenya. Skema ini bukan bagian standar, tetapi konvensi yang banyak digunakan dan sebaiknya ditetapkan sebagai standar tim sejak awal proyek. Praktik yang dianjurkan: komentar menjelaskan mengapa, bukan hanya apa; kepala program memuat nomor revisi, tanggal, dan nama pengubah; setiap anak tangga diberi nomor dan keterangan; tabel I/O menghubungkan nama variabel ke kode IEC 81346-2; dan dokumentasi disimpan dalam format yang dapat dibuka tanpa perangkat lunak khusus (PDF, teks biasa).
Semua program baru harus diuji dalam mode simulasi di komputer sebelum diunduh ke PLC yang terhubung ke mesin; simulasi memperlihatkan respons keluaran terhadap masukan yang dipaksa tanpa risiko mekanis. Setelah simulasi berhasil, program diunduh ke PLC dan diuji tanpa beban, yaitu dengan aktuator dilepas atau beban dikurangi, untuk memverifikasi urutan dan waktu; kabel aktuator dilepas hanya setelah isolasi dan verifikasi bebas tegangan menurut Bab 2 · Keselamatan, dengan prosedur kerja aman di Bab 76. Baru setelah tahap tanpa beban berjalan benar, mesin dihubungkan penuh; rencana ujinya ada di Bab 74 tentang uji pra-energi dan komisioning.
Program baru yang langsung diunduh ke mesin berbeban penuh tanpa simulasi dan uji tanpa beban adalah penyebab umum kerusakan mekanis dan kecelakaan. Kunci pintu drum, tombol stop darurat, dan interlock pembalik arah putaran tetap harus berupa perangkat keras (Bab 49, Bab 65, dan Bab 70); program hanya memantau, bukan menggantikan fungsi keselamatan fisik.
Contoh kerja
Angka dalam contoh di bawah adalah angka latihan, kecuali disebut asalnya. Contoh 1 dan 2 menyusun urutan cuci isi-cuci-buang-peras untuk satu washer-extractor, dan Contoh 3 sampai 6 memakai data mesin yang sama kecuali disebut lain. Contoh ini sengaja disederhanakan untuk pembelajaran; mesin nyata memiliki lebih banyak kondisi keselamatan dan percabangan.
Contoh 1: tabel SFC dan batas waktu urutan cuci. Seperti di Bab 10 · Laundry tentang washer-extractor, satu motor drum -M1 memberi putaran cuci dan peras melalui pengubah frekuensi -T1 yang hanya menerima dua perintah diskret dari PLC (Bab 67); pola kanan-jeda-kiri tahap cuci adalah sub-urutan tersendiri (Bab 54). Masukan PLC -K1: START -S1 (NO), STOP -S2 (NC), level -B1, bak kosong -B2 (TRUE saat kosong, sehingga kabel putus terbaca "belum kosong"), salinan status kunci pintu -B3, dan sensor putaran -B4 (TRUE saat drum diam). Keluaran: katup air masuk -Q1, katup buang -Q2, perintah cuci dan peras ke -T1, lampu selesai -P1, dan lampu gangguan -P2. Stop darurat -S3 memutus di luar -K1 menurut Bab 49 tentang tombol dan stop darurat. Kolom transisi berisi syarat pindah langkah, dan batas waktu memindahkan urutan ke GANGGUAN, bukan ke tahap berikutnya, karena tahap berikutnya dengan air atau drum dalam keadaan salah justru berbahaya.
| Langkah | Nama | Aksi (keluaran aktif) | Transisi ke langkah berikut | Batas waktu |
|---|---|---|---|---|
| S0 | Siaga | Semua keluaran OFF | Tepi naik -S1 dan -S2 tidak ditekan | Tidak terbatas |
| S1 | Isi | -Q1 terbuka | -B1 aktif | 45 s, lalu GANGGUAN |
| S2 | Cuci | Perintah cuci ke -T1 | Waktu cuci 120 s habis | 120 s (waktu tetap) |
| S3 | Buang | -Q2 terbuka, perintah cuci OFF | -B2 kosong dan -B3 terkunci | 60 s, lalu GANGGUAN |
| S4 | Peras | Perintah peras ke -T1, -Q2 tetap terbuka | Waktu peras 90 s habis | 90 s (waktu tetap) |
| S5 | Henti | Perintah ke -T1 OFF, -Q2 tetap terbuka | -B4 drum diam | 90 s, lalu GANGGUAN |
| S6 | Selesai | -P1 menyala | 5 s, kembali ke S0 | 5 s |
| S99 | Gangguan | Semua keluaran OFF, -P2 menyala | Tombol STOP (reset manual) | Tidak terbatas |
S1 memakai batas waktu sebagai pengaman bila -B1 gagal mendeteksi level; tanpa itu -Q1 terus terbuka dan air meluap. Mutu cuci ditentukan durasi mekanis, sehingga S2 memakai waktu tetap. S3 hanya berpindah ke peras bila bak benar-benar kosong dan pintu terkunci, karena peras dengan air tersisa membebani motor dan mengguncang mesin. S4 membiarkan -Q2 terbuka agar air perasan terbuang, dan bila status kunci hilang di tengah peras, perintah peras padam dan urutan masuk ke GANGGUAN. S5 menunggu drum diam sebelum lampu selesai menyala, sedangkan pembukaan pintu tetap diatur kunci pintu, bukan oleh pewaktu program (Bab 10 · Laundry dan Bab 70).
Dengan volume sampai level cuci 38 L dan aliran katup 1,2 L/s, waktu isi normal
dengan volume air (L) dan aliran katup (L/s), dengan anggapan aliran tetap. Batas 45 s memberi rasio , sehingga aliran boleh turun sampai L/s sebelum gangguan palsu. Untuk S5, Bab 49 menghitung drum peras ilustrasinya meluncur sampai diam dalam 62,8 s tanpa pengereman; rasio membuat drum yang meluncur masih diam sebelum batas, sedangkan drum yang tidak melambat sama sekali memicu GANGGUAN. Diam dibaca dari -B4, karena frekuensi keluaran -T1 yang trip sudah nol walaupun drum masih meluncur. Siklus terpanjang tanpa gangguan adalah jumlah semua batas:
Dengan isi 31,7 s, buang 25 s, dan drum direm sampai diam dalam 7,4 s seperti ilustrasi kategori stop 1 di Bab 49, siklus normal menjadi s, sekitar 4 menit 39 s, tanpa waktu tunggu di S0.
Contoh 2: urutan cuci dengan bit langkah LD dan dengan ST. Di LD, setiap langkah Contoh 1 diwakili satu BOOL (xX0 sampai xX6 dan xX99). Bit xX0 dideklarasikan bernilai awal TRUE tanpa RETAIN, setara langkah awal SFC, sehingga setelah PLC hidup urutan selalu berada di Siaga. Setiap transisi adalah satu anak tangga yang men-set langkah berikutnya dan me-reset langkah sekarang, dan tonIsi adalah TON dengan IN = xX1 dan PT = T#45s pada anak tangga tersendiri. Sebagian anak tangganya:
Kontak NC xB1_Level pada anak tangga 3 membuat transisi ke GANGGUAN dan ke Cuci saling meniadakan. Anak tangga STOP ditempatkan paling akhir: kontak NC xS2_StopOK me-reset semua bit langkah dan men-set xX0, sehingga stop dominan karena ditulis terakhir (Bab 51). Di ST, pewaktu langkah tunggal mendapat IN FALSE selama satu siklus setiap kali nomor langkah berganti, sehingga ET selalu mulai dari nol, termasuk setelah STOP; keluaran dihitung dari nomor langkah di luar CASE, sehingga lompatan ke S0 atau GANGGUAN mematikan semuanya.
Tabel SFC, LD, dan ST memuat urutan yang sama, kecuali bahwa bit langkah LD dapat melewati dua transisi dalam satu siklus, sedangkan CASE hanya satu. Tidak satu pun menggantikan kunci pintu dan stop darurat perangkat keras.
Contoh 3: penyaring TON pada sensor level, laundry rumah sakit. Riak air membuat -B1 berkedip, sehingga transisi Isi ke Cuci diberi TON dengan PT 2 s. Selama 2 s itu -Q1 tetap terbuka pada aliran 1,2 L/s:
Kelebihan 6,3 % dari 38 L dapat diterima, dan waktu isi masih di bawah 45 s. PT 0,5 s hanya menambah 0,6 L, tetapi riak mungkin lolos. Nilai PT dipilih dari uji tanpa beban, lalu dicatat sebagai komentar anak tangga.
Contoh 4: TP dan CTU untuk pompa dosis, laundry hotel. Satu pulsa TP 3 s menjalankan pompa dosis berkapasitas 0,05 L/s, dan satu siklus memerlukan 0,6 L deterjen:
CTU mencacah tepi naik keluaran Q blok TP, bukan tombol atau perintah, karena tepi naik IN selama pulsa aktif diabaikan dan pencacahan perintah dapat lebih besar dari dosis yang benar-benar diberikan.
Contoh 5: tipe data pencacah linen, hotel. Pencacah lembar linen yang dicuci bertambah sekitar 2.500 per hari, sedangkan INT berbatas 32.767:
Setelah sekitar dua minggu nilainya melampaui rentang INT. Variabel dideklarasikan DINT, yang pada laju sama cukup untuk lebih dari dua ribu tahun, dan RETAIN supaya tidak hilang saat padam. Bit langkah dan perintah jalan tetap tanpa RETAIN.
Contoh 6: batas waktu buang, laundry rumah sakit. Buang normal 25 s untuk 38 L, dan batas S3 60 s:
Aliran buang boleh turun sekitar 58 % sebelum GANGGUAN. Bila GANGGUAN di S3 berulang, yang diperiksa adalah saluran dan katup buang -Q2, sensor -B2 (kabel putus terbaca belum kosong), dan status kunci -B3. Batas waktu tidak diperpanjang untuk menyembunyikan saluran yang tersumbat.
Kondisi berhenti
Program tidak diunduh ke mesin atau dijalankan, atau pengujian dihentikan dan keputusan lanjutannya diserahkan kepada penanggung jawab peralatan bersama teknisi berkompeten, bila:
- Kunci pintu drum, tombol stop darurat, atau interlock pembalik arah putaran hanya diwujudkan di program, padahal fungsi itu tetap harus berupa perangkat keras.
- Program baru akan diunduh ke PLC yang terhubung ke mesin sebelum diuji dalam mode simulasi, atau mesin akan dihubungkan penuh sebelum uji tanpa beban berjalan benar.
- Kabel aktuator akan dilepas untuk uji tanpa beban sebelum isolasi dan verifikasi bebas tegangan menurut Bab 2 · Keselamatan.
- Langkah yang menunggu sensor, seperti isi, buang, dan henti, tidak mempunyai batas waktu menuju GANGGUAN, atau batas waktu akan diperpanjang untuk menyembunyikan GANGGUAN berulang sebelum saluran, katup, dan sensornya diperiksa.
- Perintah jalan atau bit langkah dibuat RETAIN, atau program yang strukturnya diubah tidak mempunyai rutinitas inisialisasi saat PLC pertama kali masuk ke mode RUN, sehingga mesin dapat berjalan sendiri atau mulai dari tengah urutan saat suplai kembali.
- Dalam simulasi atau uji tanpa beban, STOP yang ditekan bersamaan dengan START tidak menang, atau START yang tertahan saat PLC hidup menjalankan urutan tanpa tekanan baru.
Salah tafsir yang sering terjadi
Guess what’s wrong first, then open the explanation.
Common misconception
Koil ganda tidak masalah asalkan di anak tangga berbeda.
Why is it wrong?
Anak tangga terakhir yang dieksekusi dalam satu siklus scan menentukan nilai variabel, sehingga koil yang sama di anak tangga pertama ditimpa. Gunakan Set/Reset atau pastikan hanya ada satu koil per variabel.
Common misconception
TON mulai menghitung saat program diunduh.
Why is it wrong?
TON hanya menghitung selama IN TRUE; selama IN FALSE, ET tetap 0 dan Q FALSE. Teknisi yang mengira pewaktu aktif sejak PLC menyala mendapat transisi tak terduga saat pertama menguji program.
Common misconception
Variabel RETAIN aman untuk semua nilai status.
Why is it wrong?
Bila struktur program diubah, misalnya urutan langkahnya, nilai tersimpan dari program lama dapat membuat mesin mulai dari tengah urutan setelah dinyalakan kembali. Perintah jalan yang di-set juga tidak dibuat RETAIN, karena mesin akan berjalan sendiri saat suplai kembali, berlawanan dengan penahan diri di Bab 51. Selalu pastikan ada rutinitas inisialisasi yang berjalan saat PLC pertama kali masuk ke mode RUN setelah pengunduhan program baru.
Common misconception
SFC dan LD tidak bisa digabung.
Why is it wrong?
SFC mengoordinasi urutan, sedangkan aksi di setiap langkahnya dapat ditulis dalam LD, FBD, atau ST, misalnya aksi langkah S2 urutan cuci sebagai anak tangga LD yang akrab bagi teknisi lapangan.
Common misconception
Program yang berjalan di simulator pasti berjalan di mesin.
Why is it wrong?
Simulasi tidak mereplikasi waktu nyata secara sempurna; pewaktu dan masukan cepat (tepi yang sangat singkat) dapat berperilaku berbeda di perangkat keras. Uji tanpa beban di perangkat keras tetap wajib setelah simulasi berhasil.
Hubungan dengan bab lain
Bab ini bersandar pada Bab 63 tentang perangkat keras PLC, Bab 2 tentang kontak NO/NC, Bab 51 tentang penahan diri dan stop dominan, Bab 48 tentang relai waktu, Bab 54 tentang pembalik drum, dan Bab 52 tentang dokumen dan komisioning mesin. Kelanjutannya ada di Bab 65 tentang kendali motor dengan masukan gagal-aman, Bab 66 tentang komunikasi dan PID, Bab 67 tentang perintah ke pengubah frekuensi, dan Bab 70 tentang kunci pintu dan tingkat kinerja.
Latihan dan pembahasan
Try to answer first, then open the worked solution.
Anak tangga 1: kontak NO
xS1seri dengan kontak NOxS2_StopOK(stop diawatkan NC), koilxQ1. Anak tangga 2: kontak NOxB1, koilxQ1. BilaxS1 = TRUE,xS2_StopOK = TRUE, danxB1 = FALSE, berapa nilai akhirxQ1setelah satu siklus scan, dan mengapa?See the worked solution
Nilai akhir
xQ1 = FALSE. Anak tangga 1 menghasilkan TRUE, tetapi anak tangga 2 juga menulis kexQ1dan, karenaxB1 = FALSE, menghasilkan FALSE yang tersimpan pada akhir siklus dan menimpa TRUE dari anak tangga 1.TOF dengan PT = T#60s mengendalikan kipas pendingin dari sinyal "pemanas aktif". Pemanas dimatikan pada detik ke-100 dan dinyalakan lagi pada detik ke-130. Apakah Q kipas pernah FALSE di antaranya? Jelaskan dengan diagram waktu sederhana.
See the worked solution
Tidak. TOF menjaga Q TRUE selama PT setelah IN turun, dan ketika pemanas menyala lagi baru s berlalu, kurang dari 60 s. Pada diagram waktunya IN turun di 100 dan naik di 130, ET naik dari 0 ke 30 s lalu kembali 0, dan Q datar TRUE.
Pada ST Contoh 2, kabel -B1 putus saat langkah S1, sehingga
xB1_Leveltetap FALSE; aliran 1,2 L/s dan volume sampai level cuci 38 L. (a) Telusuri langkah yang dicapai dan keadaan keluarannya. (b) Hitung air yang masuk dan kelebihannya. (c) Bila tekanan air turun sehingga aliran hanya 0,8 L/s dan sensor baik, apa yang terjadi, dan berapa batas waktu minimum dengan cadangan 25 %?See the worked solution
(a)
xB1_Leveltidak pernah TRUE, tetapi pewaktu langkah tetap berjalan karena TON adalah blok internal yang tidak bergantung pada modul masukan; pada ET ≥ 45 s,iStepmenjadi 99, -Q1 menutup, -P2 menyala, dan urutan tidak berlanjut ke Cuci sampai STOP ditekan. (b) Air masuk L, lebih L atau 42 % di atas level cuci; batas waktu membatasi kelebihan, bukan mencegahnya. Arah kegagalan ini tidak aman (kabel putus terbaca "belum penuh"), sehingga batas waktu wajib ada. (c) Waktu isi normal menjadi s, lebih dari 45 s, sehingga GANGGUAN palsu muncul walaupun sensor baik. Batas dengan cadangan 25 % adalah s, dibulatkan 60 s, dan kelebihan air saat sensor rusak naik menjadi L pada aliran normal.POU untuk rata-rata tiga nilai REAL sebaiknya FUNCTION atau FUNCTION_BLOCK? Beri alasan dari memori internal dan efek samping.
See the worked solution
Gunakan FUNCTION. Rata-rata tiga nilai REAL adalah perhitungan murni tanpa status antarpemanggilan, sehingga masukan yang sama selalu memberi hasil yang sama. Memori internal FUNCTION_BLOCK tidak diperlukan dan hanya menambah kerumitan.
R_TRIG pada
xS1_Startmen-setxRunning, dan F_TRIG padaxS2_StopOK(stop diawatkan NC) me-reset-nya. Operator menekan -S1 dan -S2 dalam satu siklus scan. Apa yang terjadi padaxRunning, apakah bergantung pada urutan anak tangga, dan bagaimana stop dibuat dominan?See the worked solution
Ya, karena kedua pemicu memberi pulsa TRUE di siklus yang sama. Bila Set dieksekusi sebelum Reset, nilai akhir
xRunningFALSE; bila urutannya terbalik, nilai akhirnya TRUE dan mesin berjalan walaupun stop sedang ditekan. Desain yang lebih baik memakai stop berbasis level, bukan tepi:xS2_StopOK = FALSEme-reset selama tombol ditekan atau kabel putus, ditulis sesudah Set atau memakai blok RS yang reset dominan, seperti stop dominan di Bab 51.Mesin laundry baru memiliki (a) urutan enam langkah, (b) kendali suhu air dari sensor analog, dan (c) interlock sederhana antardua mesin yang berbagi satu sumber air. Bahasa apa yang paling sesuai untuk masing-masing, dan mengapa?
See the worked solution
(a) SFC, karena urutan langkah adalah kasus utamanya dan diagramnya mudah diverifikasi teknisi maupun pemilik usaha. (b) FBD, karena kendali suhu analog adalah aliran nilai kontinu melalui blok skala, PID, dan batas. (c) LD, karena interlock antardua mesin adalah logika biner diskret yang paling mudah dibaca teknisi lapangan yang akrab dengan diagram relai. Interlock ini fungsional (pembagian air), bukan fungsi keselamatan.
Referensi
External sources
- IEC 61131-3:2025 (Ed. 4.0), Programmable controllers, Part 3: Programming languageswebstore.iec.ch
- IEC 81346-2:2019 (Ed. 2.0), Classification of objects and codes for classesiso.org
- IEC 61131-3:2013 (Ed. 3.0), Programmable controllers, Part 3: Programming languageswebstore.iec.ch
- Wikipedia, Instruction list (sekunder)en.wikipedia.org
Revision history
| Date | Version | Change |
|---|---|---|
| October 29, 2026 | 3 | Revised to the chapter standard |
| October 20, 2026 | 2 | Expanded in wave R10: worked examples, stop conditions, and cross-chapter references |
| September 30, 2026 | 1 | First published |
How to cite
Kurnia (2026). Pemrograman PLC menurut IEC 61131-3. ARSTEMA Academy. Revised October 29, 2026. arstema.com/academy/konsep/pemrograman-plc-menurut-iec-61131-3
Self-check · 3 questions
Check your understanding before moving on
Write your answer in your own words, then compare it with the worked solution from this chapter’s exercises. The system doesn’t judge open answers as right or wrong; you decide which parts you’ve understood.
Anak tangga 1: kontak NO xS1 seri dengan kontak NO xS2_StopOK (stop diawatkan NC), koil xQ1. Anak tangga 2: kontak NO xB1, koil xQ1. Bila xS1 = TRUE, xS2_StopOK = TRUE, dan xB1 = FALSE, berapa nilai akhir xQ1 setelah satu siklus scan, dan mengapa?
TOF dengan PT = T#60s mengendalikan kipas pendingin dari sinyal "pemanas aktif". Pemanas dimatikan pada detik ke-100 dan dinyalakan lagi pada detik ke-130. Apakah Q kipas pernah FALSE di antaranya? Jelaskan dengan diagram waktu sederhana.
Pada ST Contoh 2, kabel -B1 putus saat langkah S1, sehingga xB1_Level tetap FALSE; aliran 1,2 L/s dan volume sampai level cuci 38 L. (a) Telusuri langkah yang dicapai dan keadaan keluarannya. (b) Hitung air yang masuk dan kelebihannya. (c) Bila tekanan air turun sehingga aliran hanya 0,8 L/s dan sensor baik, apa yang terjadi, dan berapa batas waktu minimum dengan cadangan 25 %?
Nearby chapters
Reading order by shelf: Electrical & Control · Chapter 65.
Reading order by shelf: Electrical & Control · Chapter 63.