Lompat ke konten

Cari di ARSTEMA

Ketik nama bab, istilah, gejala, atau alat.

    Kembali ke atlas
    Kelistrikan & Kendali · Bab 64Terapan

    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.

    27 menit

    Bagian yang sedang dibaca: Pembuka bab

    Bayangkan sebuah laundry komersial dengan dua belas mesin cuci yang beroperasi bergantian sepanjang hari. Operator pagi hari memilih program dan menekan start; katup, waktu bilas, dan pembuangan diatur oleh program di dalam PLC. Ketika mesin lama diganti atau teknisi baru datang membawa laptop dengan 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.

    Yang diuraikan di sini adalah sisi perangkat lunak dari sistem kendali PLC, yaitu cara menulis, menyusun, dan mendokumentasikan program sesuai standar IEC 61131-3 edisi terkini. Berbeda dengan bab relai pintar dan PLC yang membahas perangkat keras, yaitu catu daya, modul masukan/keluaran, siklus scan, dan pemasangan fisik, bab ini fokus pada logika yang berjalan di dalam prosesor. Prasyaratnya kontak NO/NC dan sinyal diskret dari Bab 2 serta pola logika kontak dari bab logika kendali dasar.

    Batas pembahasan

    Bab ini menggunakan sintaks generik sesuai IEC 61131-3 dan tidak membahas sintaks alamat spesifik merek apa pun. Semua waktu dan nilai numerik bersifat ilustrasi kecuali dinyatakan lain. Kode komponen mengikuti IEC 81346-2: -K untuk PLC, -Q untuk kontaktor dan katup, -S untuk tombol, -B untuk sensor, -M untuk motor, -T untuk pengubah frekuensi, dan -P untuk lampu indikator. Nomor urut dimulai dari 1. Penerapan pada motor dengan interlock perangkat keras dibahas pada bab kendali motor dengan PLC, sedangkan I/O analog, penskalaan, PID, HMI, dan komunikasi dibahas pada bab PLC lanjutan.

    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. Setiap bahasa melayani jenis masalah yang berbeda, dan pemrogram memilih yang paling sesuai.

    1. Ladder Diagram (LD). Bahasa grafis berbasis gambar rangkaian relai. Paling cocok untuk logika diskret sederhana hingga menengah: kendali motor, interlock fungsional, dan urutan ON/OFF. Teknisi berlatar elektrik umumnya paling cepat memahami LD karena simbol kontak dan koil mirip dengan diagram tangga relai konvensional yang dibahas pada bab logika kendali dasar.
    2. Function Block Diagram (FBD). Bahasa grafis berbasis blok fungsi yang dihubungkan dengan sinyal. Cocok untuk kendali kontinu (PID, regulasi tekanan, pengendalian suhu) dan sistem yang melibatkan banyak variabel analog.
    3. Structured Text (ST). Bahasa teks tingkat tinggi mirip Pascal atau C, dengan struktur IF-THEN-ELSE, FOR, WHILE, dan CASE. Paling efisien untuk perhitungan matematis kompleks, manipulasi teks, dan algoritma yang sulit diekspresikan secara grafis.
    4. Sequential Function Chart (SFC). Bahasa grafis berbasis diagram keadaan yang menggambarkan urutan langkah dan transisi. Paling natural untuk proses yang memiliki tahap berurutan yang jelas, seperti urutan cuci, siklus pengisian, atau proses produksi bertahap. SFC menjadi "peta" program yang memudahkan komunikasi antara teknisi dan pemilik usaha.
    5. Instruction List (IL). Bahasa teks tingkat rendah mirip bahasa rakitan. IL sudah dinyatakan usang (deprecated) pada edisi 2013 menurut sumber sekunder, dan tidak lagi tercantum dalam daftar bahasa di abstrak edisi 2025. Daftar lengkap fitur yang ditambah, dihapus, atau dinyatakan usang ada di Lampiran B edisi 2025, yang teksnya tidak dibaca editor. Bab ini tidak menggunakan IL; program lama berformat IL sebaiknya dimigrasi ke ST saat program itu direvisi.

    Pilihan bahasa tidak menentukan kemampuan PLC. Perangkat pemrograman menerjemahkan semua bahasa menjadi kode yang dijalankan CPU yang sama, dan perbedaan kinerjanya bergantung pada implementasi. Pilih bahasa berdasarkan keterbacaan dan keahlian tim, bukan berdasarkan asumsi performa.

    Variabel, tipe data, dan pengalamatan simbolik

    Sebelum menggambar satu anak tangga (rung) LD atau menulis satu baris ST, pemrogram harus mendeklarasikan variabel. Variabel adalah nama yang diberikan kepada sepotong memori di dalam PLC. IEC 61131-3 mengharuskan setiap variabel dideklarasikan dengan nama, tipe data, dan, bila perlu, nilai awal. Pendekatan ini berbeda dari kebiasaan lama yang langsung menulis alamat memori fisik, misalnya dalam bentuk alamat langsung standar %IX0.0 atau %MW100; dengan variabel bernama, kode menjadi lebih mudah dibaca dan dipindahkan ke platform lain.

    Pengalamatan simbolik berarti setiap sinyal fisik, misalnya tombol -S1, sensor level -B1, atau katup -Q1, dihubungkan ke nama variabel dalam tabel konfigurasi, bukan dikodekan langsung di dalam logika program. Akibatnya, jika modul masukan diganti dan alamat fisiknya berubah, pemrogram hanya perlu memperbarui tabel konfigurasi, bukan mencari-cari dan mengubah setiap kemunculan alamat lama di seluruh program.

    Tipe dataUkuranRentang atau keteranganContoh penggunaan
    BOOL1 bitFALSE (0) atau TRUE (1)Status tombol -S1, sinyal sensor -B1
    INT16 bit−32.768 hingga 32.767Nilai pencacah, nomor langkah
    DINT32 bit−2.147.483.648 hingga 2.147.483.647Pencacah produksi jangka panjang
    REAL32 bitBilangan titik-mengambang IEC 60559 (setara IEEE 754)Hasil pengukuran suhu, tekanan
    TIMEBergantung implementasiDurasi; ditulis T#10s, T#1m30sNilai setel pewaktu TON/TOF/TP
    STRINGBergantung panjangBarisan karakter; panjang bawaan ditetapkan implementasiPesan HMI, kode produk

    Cakupan variabel menentukan di mana variabel dapat dibaca dan ditulis. Variabel lokal hanya berlaku di dalam satu POU, sedangkan variabel global (VAR_GLOBAL) dideklarasikan pada konfigurasi, resource, atau program dan dipakai POU lain melalui deklarasi VAR_EXTERNAL. Gunakan variabel global seperlunya saja; terlalu banyak variabel global membuat program sulit ditelusuri karena nilai dapat berubah dari berbagai tempat tanpa jejak yang jelas. Variabel RETAIN adalah variabel yang nilainya disimpan meskipun PLC kehilangan daya; gunakan untuk menyimpan pencacah produksi atau data proses yang tidak boleh hilang.

    Instruksi dasar: kontak, koil, set/reset, dan deteksi tepi

    Ladder Diagram meminjam simbologi dari diagram relai konvensional. Kontak adalah representasi masukan, yaitu kondisi yang dievaluasi, sedangkan koil adalah representasi keluaran, yaitu tindakan yang dieksekusi bila kondisi terpenuhi.

    Kontak NO (normally open), simbol | |. Bernilai TRUE bila variabel yang dirujuk bernilai TRUE. Digunakan untuk membaca tombol -S1 yang kontaknya terbuka saat tidak ditekan, sensor -B1 yang aktif saat objek terdeteksi, atau hasil perhitungan logis.

    Kontak NC (normally closed), simbol |/|. Bernilai TRUE bila variabel yang dirujuk bernilai FALSE. Kontak NC di LD adalah 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 bernilai TRUE dalam keadaan normal dan di program dibaca dengan kontak NO. Kontak NC di program dipakai untuk kondisi seperti "tidak ada gangguan".

    Koil keluaran, simbol ( ). Menetapkan variabel BOOL ke TRUE selama kondisi anak tangga bernilai TRUE, dan ke FALSE begitu kondisi tidak terpenuhi. Standar tidak melarang koil yang sama muncul dua kali, tetapi praktik yang baik memakai satu koil per variabel: pada penggunaan ganda, hasilnya ditentukan anak tangga terakhir yang dieksekusi, dan anak tangga pertama tampak bekerja padahal ditimpa.

    Set (S) dan Reset (R). Set mengunci variabel ke TRUE dan mempertahankannya meskipun kondisi yang mengaktifkan Set kemudian hilang. Reset mengembalikan variabel ke FALSE. Pasangan S/R berguna untuk mengingat kejadian sesaat: tombol -S1 ditekan sesaat, Set mengunci perintah kontaktor -Q1 motor -M1; tombol stop -S2 ditekan, Reset mematikan. 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 pada bab logika kendali dasar.

    Deteksi tepi naik |P| dan tepi turun |N|. Kontak tepi naik (rising edge) menghasilkan pulsa satu siklus scan saat variabel berubah dari FALSE ke TRUE. Kontak tepi turun menghasilkan pulsa saat variabel berubah dari TRUE ke FALSE. Keduanya digunakan untuk mendeteksi momen perubahan, bukan kondisi statis: misalnya, setiap kali tombol -S1 dilepas (tepi turun) mesin berpindah ke langkah berikutnya.

    Dalam ST, instruksi yang sama ditulis secara eksplisit. Sebagai ilustrasi, perintah kontaktor -Q1 dengan penahan diri, stop dominan, dan tombol stop -S2 yang diawatkan NC ditulis sebagai:

    Deteksi tepi dalam ST memerlukan variabel bantu untuk menyimpan nilai siklus sebelumnya. Blok fungsi R_TRIG (tepi naik) dan F_TRIG (tepi turun) disediakan oleh standar untuk tujuan ini; keluarannya Q bernilai TRUE selama satu pemanggilan setelah tepi pada masukan CLK.

    Pewaktu dan pencacah standar

    Pewaktu dan pencacah adalah dua jenis blok fungsi yang paling sering digunakan dalam program kendali industri ringan. IEC 61131-3 mendefinisikan tiga pewaktu standar (TON, TOF, TP) dan tiga pencacah standar (CTU, CTD, CTUD) yang perilakunya telah ditetapkan secara tepat sehingga tidak bergantung pada merek PLC. Pewaktu PLC menggantikan relai waktu tunda-nyala dan tunda-lepas dari bab relai waktu.

    TON (pewaktu tunda-nyala). Keluaran Q menjadi TRUE setelah masukan IN telah TRUE selama durasi PT. Jika IN menjadi FALSE sebelum PT tercapai, pewaktu direset. Nilai berjalan ET (elapsed time) menghitung dari 0 menuju PT dan berhenti di PT. Contoh penggunaan: sinyal level baru dianggap tercapai setelah TRUE tanpa putus selama 2 s, supaya riak air tidak memicu transisi.

    TOF (pewaktu tunda-lepas). Keluaran Q menjadi TRUE segera saat IN menjadi TRUE, lalu tetap TRUE selama PT setelah IN menjadi FALSE. ET menghitung dari 0 saat IN jatuh ke FALSE. Contoh penggunaan: kipas pendingin tetap menyala selama 60 detik setelah pemanas dimatikan. Seperti relai tunda-lepas biasa, TOF batal bila PLC kehilangan catu, sehingga pendinginan yang wajib tetap berjalan saat padam tidak diserahkan kepadanya.

    TP (pewaktu pulsa). Menghasilkan pulsa TRUE dengan durasi tepat PT setiap kali IN mengalami tepi naik. Selama pulsa aktif, tepi naik berikutnya pada IN diabaikan. Contoh penggunaan: mengaktifkan katup -Q1 selama tepat 3 detik terlepas dari berapa lama tombol -S1 ditekan.

    CTU (pencacah naik). Nilai berjalan CV bertambah 1 setiap tepi naik pada masukan CU. Keluaran Q menjadi TRUE saat CV ≥ PV (nilai setel). Masukan R mereset CV ke 0.

    CTD (pencacah turun). Masukan LD memuat CV dengan PV; setelah itu CV berkurang 1 setiap tepi naik pada masukan CD. Keluaran Q menjadi TRUE saat CV ≤ 0. Kombinasi keduanya dalam blok CTUD (keluaran QU dan QD) memungkinkan pencacah naik-turun, misalnya penghitung keranjang linen yang masuk dan keluar.

    Contoh deklarasi dan penggunaan TON dalam ST untuk langkah pengisian air dengan batas 45 detik (ilustrasi):

    Struktur program: POU, blok fungsi, dan urutan langkah

    IEC 61131-3 mengorganisasi kode program ke dalam satuan yang disebut Program Organization Unit (POU). Perangkat lunak merek sering menyebut bagian program sebagai rutin atau subrutin; dalam istilah standar, bagian itu dipetakan ke salah satu jenis POU. Ada tiga jenis POU dasar: PROGRAM, FUNCTION_BLOCK, dan FUNCTION.

    PROGRAM. POU utama yang dieksekusi oleh task dalam konfigurasi PLC. Program memiliki akses ke variabel global dan variabel fisik (masukan/keluaran). Program dapat memanggil blok fungsi dan fungsi di dalamnya.

    FUNCTION_BLOCK. POU yang memiliki memori internal (status tersimpan antarpemanggilan). Setiap instansi blok fungsi mendapatkan salinan memori sendiri. Contoh bawaan standar: TON, TOF, CTU, R_TRIG. Pemrogram dapat membuat blok fungsi sendiri, misalnya blok "Urutan Cuci" yang menyimpan langkah aktif dan status pewaktu secara mandiri, sehingga bisa dipakai untuk beberapa mesin sekaligus hanya dengan membuat instansi berbeda.

    FUNCTION. POU tanpa memori internal; bila tidak membaca variabel global, setiap pemanggilan menghasilkan keluaran yang hanya bergantung pada masukan saat itu. Cocok untuk perhitungan murni: konversi satuan, pemeriksaan batas, perhitungan skala analog. Karena tidak menyimpan status, fungsi lebih mudah diuji dan lebih aman dari efek samping tersembunyi.

    Hierarkinya bertingkat: konfigurasi memuat satu atau beberapa resource, resource memuat task, task menjalankan instansi program, program memanggil blok fungsi dan fungsi, dan blok fungsi dapat memuat instansi blok fungsi lain, misalnya TON, serta memanggil fungsi. Urutan langkah mesin disusun dengan SFC atau dengan variabel nomor langkah dan CASE di ST; keduanya dipakai pada contoh kerja. Urutan eksekusi POU diatur oleh konfigurasi task. Task periodik mengeksekusi POU yang terdaftar setiap selang waktu tertentu, misalnya setiap 10 milidetik (ilustrasi). Pada PLC yang bekerja dengan tabel citra, PLC membaca semua masukan fisik ke dalam citra masukan, mengeksekusi POU secara berurutan, lalu menyalin citra keluaran ke modul keluaran fisik, seperti diuraikan bab relai pintar dan PLC. Pola baca-eksekusi-tulis ini lazim, tetapi tidak ditetapkan oleh IEC 61131-3; yang membuat koil ganda menyesatkan adalah eksekusi berurutan: nilai terakhir yang ditulis ke variabel yang sama dalam satu siklus adalah yang menang, dan urutan itu bergantung pada urutan penulisan program.

    Dokumentasi, komentar, dan simulasi sebelum diunduh

    Program PLC yang baik adalah program yang dapat dibaca oleh orang lain, termasuk diri sendiri enam bulan kemudian. IEC 61131-3 mendukung komentar di semua bahasa: dalam LD dan FBD, komentar ditulis dalam kotak teks yang melekat pada anak tangga atau blok; dalam ST, komentar ditulis dengan tanda (* ... *) untuk blok komentar atau // ... untuk komentar satu baris.

    Setiap variabel harus diberi nama yang bermakna dan deskripsi singkat dalam tabel deklarasi. Penamaan yang konsisten, misalnya awalan x untuk BOOL, t untuk TIME, i untuk INT, dan r untuk REAL, memungkinkan pembaca mengetahui tipe variabel hanya dari namanya tanpa harus membuka tabel deklarasi. Skema penamaan ini bukan bagian dari standar, tetapi konvensi yang banyak digunakan dan sebaiknya ditetapkan sebagai standar tim sejak awal proyek. Praktik dokumentasi yang dianjurkan:

    • Tulis komentar yang menjelaskan mengapa, bukan hanya apa yang dilakukan kode.
    • Sertakan nomor revisi, tanggal perubahan, dan nama pengubah di blok komentar kepala program.
    • Beri label setiap anak tangga LD dengan nomor dan keterangan singkat.
    • Hubungkan nama variabel ke kode komponen IEC 81346-2 dalam tabel I/O.
    • Simpan dokumentasi 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 memungkinkan pemrogram memaksa nilai masukan secara manual dan mengamati respons keluaran 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; prosedur kerja amannya dibahas pada bab kerja aman. Baru setelah tahap tanpa beban berjalan benar, mesin dihubungkan penuh. Rencana uji lengkap dibahas pada bab 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; program hanya memantau, bukan menggantikan fungsi keselamatan fisik.

    Contoh kerja: urutan cuci sederhana dalam SFC dan LD

    Bagian ini menyajikan contoh program kendali urutan cuci empat tahap untuk satu washer-extractor: isi air, cuci (putar), buang, dan peras. Contoh ini sengaja disederhanakan untuk tujuan pembelajaran; mesin nyata memiliki lebih banyak kondisi keselamatan dan percabangan. Sesuai bab washer-extractor pada rak Laundry, satu motor drum -M1 memberi putaran cuci dan putaran peras melalui pengubah frekuensi -T1; PLC hanya memberi dua perintah diskret ke -T1, yang dibahas pada bab VFD. Pola kanan-jeda-kiri selama tahap cuci dijalankan sub-urutan tersendiri yang logikanya ada di bab rangkaian kendali lanjutan.

    Komponen yang digunakan: PLC -K1; masukan tombol START -S1 (NO), tombol STOP -S2 (NC), sensor level cuci -B1, sensor bak kosong -B2 (TRUE saat kosong, sehingga kabel putus terbaca "belum kosong"), status kunci pintu -B3 (salinan dari kunci pintu), dan sensor putaran drum -B4 (TRUE saat drum diam); keluaran katup air masuk -Q1, katup buang -Q2, perintah cuci dan perintah peras ke -T1, lampu selesai -P1, dan lampu gangguan -P2. Stop darurat -S3 memutus di luar -K1 menurut bab tombol dan stop darurat.

    Langkah 1: tabel SFC. Setiap baris adalah satu langkah SFC dengan aksinya; kolom transisi adalah syarat yang memindahkan token ke langkah berikutnya. Batas waktu tidak memindahkan urutan ke tahap berikutnya, tetapi ke langkah GANGGUAN, karena tahap berikutnya dengan air atau drum dalam keadaan salah justru berbahaya.

    LangkahNamaAksi (keluaran aktif)Transisi ke langkah berikutBatas waktu (ilustrasi)
    S0SiagaSemua keluaran OFFTepi naik -S1 dan -S2 tidak ditekanTidak terbatas
    S1Isi-Q1 terbuka-B1 aktif45 s, lalu GANGGUAN
    S2CuciPerintah cuci ke -T1Waktu cuci 120 s habis120 s (waktu tetap)
    S3Buang-Q2 terbuka, perintah cuci OFF-B2 kosong dan -B3 terkunci60 s, lalu GANGGUAN
    S4PerasPerintah peras ke -T1, -Q2 tetap terbukaWaktu peras 90 s habis90 s (waktu tetap)
    S5HentiPerintah ke -T1 OFF, -Q2 tetap terbuka-B4 drum diam90 s, lalu GANGGUAN
    S6Selesai-P1 menyala5 s, kembali ke S05 s
    S99GangguanSemua keluaran OFF, -P2 menyalaTombol STOP (reset manual)Tidak terbatas

    Alasan per langkah: S1 menggunakan batas waktu sebagai pengaman apabila sensor -B1 gagal mendeteksi level; tanpa batas waktu, katup -Q1 akan terus terbuka dan air meluap. S2 menggunakan waktu tetap karena kualitas pencucian ditentukan oleh durasi mekanis, bukan oleh sensor. S3 mematikan perintah cuci dan membuka -Q2, lalu hanya berpindah ke peras bila bak benar-benar kosong dan pintu terkunci, karena peras dengan air tersisa membebani motor dan mengguncang mesin. S4 mempertahankan -Q2 terbuka selama peras agar air yang diperas langsung terbuang; 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.

    Langkah 2: periksa batas waktu isi. Dengan volume sampai level cuci 38 L dan aliran katup 1,2 L/s (ilustrasi), waktu isi normal

    tisi=VQ=38 L1,2 L/s=31,7 st_\text{isi} = \frac{V}{Q} = \frac{38\ \text{L}}{1{,}2\ \text{L/s}} = 31{,}7\ \text{s}

    dengan VV volume air sampai level cuci (L) dan QQ aliran katup (L/s), dengan anggapan aliran tetap selama pengisian. Batas 45 s memberi rasio 45/31,7=1,4245/31{,}7 = 1{,}42; tekanan air boleh turun sampai aliran 38/45=0,8438/45 = 0{,}84 L/s sebelum muncul gangguan palsu.

    Langkah 3: periksa batas waktu henti. Bab tombol dan stop darurat menghitung drum peras ilustrasinya meluncur sampai diam dalam 62,8 s tanpa pengereman. Batas 90 s pada S5 memberi rasio 90/62,8=1,4390/62{,}8 = 1{,}43, sehingga drum yang meluncur tanpa pengereman masih selesai sebelum batas, sedangkan drum yang tidak melambat sama sekali memicu GANGGUAN. Diam dibaca dari sensor -B4, karena frekuensi keluaran -T1 yang trip sudah nol walaupun drum masih meluncur.

    Langkah 4: waktu siklus. Waktu siklus terpanjang tanpa memicu gangguan adalah jumlah semua batas:

    tmaks=45+120+60+90+90+5=410 s=6 menit 50 st_\text{maks} = 45 + 120 + 60 + 90 + 90 + 5 = 410\ \text{s} = 6\ \text{menit}\ 50\ \text{s}

    Dengan isi 31,7 s, buang 25 s (ilustrasi), dan drum direm pengubah frekuensi sampai diam dalam 7,4 s seperti ilustrasi kategori stop 1 di bab tombol dan stop darurat, siklus normal menjadi 31,7+120+25+90+7,4+5=279,131{,}7 + 120 + 25 + 90 + 7{,}4 + 5 = 279{,}1 s, sekitar 4 menit 39 s, tidak termasuk waktu tunggu di S0.

    Langkah 5: LD dengan bit langkah. Dalam LD, setiap langkah diwakili satu variabel BOOL (xX0 sampai xX6 dan xX99). Bit xX0 dideklarasikan dengan nilai awal TRUE dan 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. Instansi tonIsi adalah TON dengan IN = xX1 dan PT = T#45s yang digambar pada anak tangga tersendiri. Cuplikan anak tangga:

    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.

    Langkah 6: ST yang setara. Pewaktu langkah tunggal diberi 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 otomatis mematikan semuanya.

    Tafsir. Ketiga bentuk memuat urutan yang sama, kecuali bahwa anak tangga bit langkah dapat melewati dua transisi dalam satu siklus, sedangkan CASE hanya satu. Tidak satu pun menggantikan kunci pintu dan stop darurat perangkat keras.

    Contoh kerja lapangan

    Contoh di bawah memakai rumus dan aturan bab ini; angka yang bukan dari sumber ditandai angka latihan, dan hitungannya dicatat di peta sumber pengembangan. Data mesin sama dengan contoh kerja di atas kecuali disebut lain.

    Contoh 1: 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:

    Vtambah=1,2×2=2,4 L,tisi=31,7+2=33,7 sV_\text{tambah} = 1{,}2 \times 2 = 2{,}4\ \text{L}, \qquad t_\text{isi} = 31{,}7 + 2 = 33{,}7\ \text{s}

    Kelebihan 6,3 % dari 38 L dapat diterima dan waktu isi masih di bawah batas 45 s. PT 0,5 s (angka latihan) hanya menambah 0,6 L, tetapi riak mungkin lolos. Nilai PT dipilih dari uji tanpa beban, lalu dicatat sebagai komentar anak tangga.

    Contoh 2: 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 (angka latihan):

    Vpulsa=0,05×3=0,15 L,PV=0,60,15=4V_\text{pulsa} = 0{,}05 \times 3 = 0{,}15\ \text{L}, \qquad PV = \frac{0{,}6}{0{,}15} = 4

    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 3: tipe data pencacah linen, hotel. Pencacah lembar linen yang dicuci bertambah sekitar 2.500 per hari (angka latihan). Variabel INT berbatas 32.767:

    32 7672 500≈13,1 hari\frac{32\,767}{2\,500} \approx 13{,}1\ \text{hari}

    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 4: batas waktu buang, laundry rumah sakit. Buang normal 25 s untuk 38 L (ilustrasi bab), dan batas S3 60 s:

    Qnormal=3825=1,52 L/s,Qmin=3860=0,63 L/sQ_\text{normal} = \frac{38}{25} = 1{,}52\ \text{L/s}, \qquad Q_\text{min} = \frac{38}{60} = 0{,}63\ \text{L/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.

    Salah tafsir yang sering terjadi

    "Koil ganda tidak masalah asalkan di anak tangga berbeda." Ini salah. Jika variabel yang sama digunakan sebagai koil keluaran di dua anak tangga berbeda, nilai yang berlaku adalah hasil anak tangga terakhir yang dieksekusi dalam satu siklus scan. Anak tangga pertama secara efektif ditimpa. Gunakan Set/Reset atau pastikan hanya ada satu koil per variabel.

    "TON mulai menghitung saat program diunduh." TON hanya mulai menghitung saat masukan IN menjadi TRUE. Jika IN FALSE, ET tetap 0 dan Q tetap FALSE. Sebagian teknisi mengira pewaktu aktif sejak PLC menyala, sehingga mereka mendapat transisi yang tidak terduga saat pertama kali menguji program.

    "Variabel RETAIN aman untuk semua nilai status." Variabel RETAIN berguna, tetapi jika program diubah strukturnya (misalnya urutan langkah berubah), nilai yang tersimpan dari program lama dapat menyebabkan mesin memulai 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 pada bab logika kendali dasar. Selalu pastikan ada rutinitas inisialisasi yang berjalan saat PLC pertama kali masuk ke mode RUN setelah pengunduhan program baru.

    "SFC dan LD tidak bisa digabung." Sebaliknya, SFC adalah bahasa koordinasi urutan, sedangkan aksi di dalam setiap langkah SFC dapat ditulis dalam LD, FBD, atau ST. Kombinasi ini umum: SFC mengelola urutan cuci, sementara aksi di dalam langkah S2 memakai anak tangga LD yang sudah akrab bagi teknisi lapangan.

    "Program yang berjalan di simulator pasti berjalan di mesin." Simulasi tidak mereplikasi waktu nyata secara sempurna. Pewaktu dan perilaku masukan cepat (tepi yang sangat singkat) mungkin berbeda antara simulasi dan perangkat keras. Uji tanpa beban di perangkat keras tetap wajib setelah simulasi berhasil.

    Hubungan dengan bab lain

    Perangkat keras dan siklus scan ada di bab relai pintar dan PLC, kontak NO/NC di Bab 2, pola penahan diri dan stop dominan di bab logika kendali dasar, relai waktu di babnya, pembalik drum di bab rangkaian kendali lanjutan, serta dokumen dan komisioning mesin di Bab 52. Penerapan pada motor dengan masukan gagal-aman dibahas pada bab kendali motor dengan PLC, komunikasi dan PID pada bab PLC lanjutan, perintah ke pengubah frekuensi pada bab VFD, dan kunci pintu serta tingkat kinerja fungsi keselamatan pada bab keselamatan fungsional mesin.

    Latihan dan pembahasan

    1. (Penelusuran, koil ganda) Anak tangga 1: kontak NO xS1 seri dengan kontak NO xS2_StopOK (tombol stop diawatkan NC), koil keluaran xQ1. Anak tangga 2: kontak NO xB1, koil keluaran xQ1. Pada saat yang sama xS1 = TRUE, xS2_StopOK = TRUE, dan xB1 = FALSE. Apa nilai akhir xQ1 setelah satu siklus scan? Jelaskan alasannya.
    2. (Tafsir, TOF) Sebuah kipas pendingin dikendalikan oleh TOF dengan PT = T#60s. Masukan IN dihubungkan ke sinyal "pemanas aktif". Jika pemanas dimatikan pada detik ke-100 dan dinyalakan kembali pada detik ke-130, apakah Q kipas pernah menjadi FALSE di antara dua kejadian itu? Gambarkan diagram waktu sederhana untuk menjelaskan jawaban Anda.
    3. (Hitung dan penelusuran) Pada ST contoh kerja, kabel sensor -B1 putus saat langkah S1, sehingga xB1_Level tetap FALSE. Aliran katup 1,2 L/s dan volume sampai level cuci 38 L. (a) Telusuri langkah yang dicapai program dan keadaan keluarannya. (b) Hitung air yang masuk dan kelebihannya terhadap level cuci. (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 %?
    4. (Tafsir, FUNCTION dan FUNCTION_BLOCK) Seorang teknisi ingin membuat POU untuk menghitung rata-rata dari tiga nilai REAL. Teknisi tersebut berdebat apakah harus menggunakan FUNCTION atau FUNCTION_BLOCK. Berikan rekomendasi yang tepat beserta alasan teknis berdasarkan konsep memori internal dan efek samping.
    5. (Penelusuran, Set/Reset dan deteksi tepi) Program memakai R_TRIG pada xS1_Start untuk men-set xRunning, dan F_TRIG pada xS2_StopOK (tombol stop diawatkan NC) untuk me-reset xRunning. Operator menekan -S1 dan -S2 dalam satu siklus scan yang sama. Apa yang terjadi pada xRunning? Apakah jawaban bergantung pada urutan anak tangga dalam program, dan bagaimana stop dibuat dominan?
    6. (Tafsir, pemilihan bahasa) Sebuah mesin laundry komersial baru akan diprogram. Mesin memiliki: (a) urutan enam langkah berurutan, (b) kendali suhu air berbasis pembacaan sensor analog, dan (c) logika interlock sederhana antardua mesin yang berbagi satu sumber air. Rekomendasikan bahasa pemrograman yang paling sesuai untuk masing-masing bagian (a), (b), dan (c), serta jelaskan alasannya.

    Kunci jawaban beralasan

    1. Nilai akhir xQ1 = FALSE. Anak tangga 1 menghasilkan TRUE (xS1 = TRUE dan xS2_StopOK = TRUE), tetapi anak tangga 2 juga menulis ke koil xQ1. Karena xB1 = FALSE, anak tangga 2 menghasilkan FALSE dan nilai FALSE itulah yang tersimpan pada akhir siklus, menimpa TRUE dari anak tangga 1.
    2. Tidak, Q kipas tidak pernah menjadi FALSE. TOF menjaga Q tetap TRUE selama PT setelah IN turun. Pemanas dimatikan pada detik ke-100; TOF mulai menghitung. Pemanas dinyalakan kembali pada detik ke-130, yang berarti baru 130−100=30130 - 100 = 30 s berlalu sejak IN turun. Karena PT = 60 s belum tercapai, Q belum sempat menjadi FALSE. Ketika IN naik lagi pada detik ke-130, ET direset ke 0 dan Q tetap TRUE. Diagram waktunya: IN turun di 100 dan naik di 130; ET naik dari 0 ke 30 s lalu kembali 0; Q datar TRUE.
    3. (a) xB1_Level tidak pernah TRUE, tetapi pewaktu langkah tetap berjalan karena TON adalah blok internal dan tidak bergantung pada modul masukan. Pada ET ≥ 45 s, iStep menjadi 99: -Q1 menutup, -P2 menyala, dan urutan tidak berlanjut ke Cuci sampai STOP ditekan. (b) Air masuk 1,2×45=541{,}2 \times 45 = 54 L, lebih 54−38=1654 - 38 = 16 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 38/0,8=47,538/0{,}8 = 47{,}5 s, lebih dari 45 s, sehingga muncul GANGGUAN palsu walaupun sensor baik. Batas dengan cadangan 25 %: 1,25×47,5=59,41{,}25 \times 47{,}5 = 59{,}4 s, dibulatkan 60 s, dengan konsekuensi kelebihan air saat sensor rusak naik menjadi 1,2×60−38=341{,}2 \times 60 - 38 = 34 L pada aliran normal.
    4. Gunakan FUNCTION. Perhitungan rata-rata tiga nilai REAL adalah operasi murni matematis yang tidak memerlukan penyimpanan status antarpemanggilan; setiap kali dipanggil dengan tiga nilai yang sama, hasilnya selalu sama. FUNCTION_BLOCK memiliki memori internal yang persisten, yang tidak diperlukan di sini dan justru menambah kompleksitas tanpa manfaat.
    5. Ya, jawabannya bergantung pada urutan anak tangga. Kedua pemicu menghasilkan pulsa TRUE di siklus yang sama. Jika anak tangga Set dieksekusi sebelum Reset, xRunning di-set lalu di-reset, sehingga nilai akhirnya FALSE; jika urutannya terbalik, nilai akhirnya TRUE dan mesin berjalan walaupun stop sedang ditekan. Desain yang lebih baik memakai stop berbasis level, bukan tepi: xS2_StopOK = FALSE me-reset selama tombol ditekan atau kabel putus, ditulis sesudah Set atau memakai blok RS yang reset dominan, seperti stop dominan pada bab logika kendali dasar.
    6. (a) SFC: enam langkah berurutan adalah kasus penggunaan utama SFC; diagram langkah dan transisi merepresentasikan urutan proses dan mudah diverifikasi oleh teknisi maupun pemilik usaha. (b) FBD: kendali suhu berbasis analog melibatkan aliran nilai kontinu melalui beberapa blok perhitungan (skala, PID, batas); FBD memvisualisasikan aliran sinyal ini secara alami. (c) LD: logika interlock sederhana antara dua mesin adalah logika biner diskret, dan LD paling mudah dibaca untuk kasus ini oleh teknisi lapangan yang sudah akrab dengan diagram relai. Interlock ini fungsional (pembagian air), bukan fungsi keselamatan.

    Referensi

    Sumber luar

    • IEC 61131-3:2025 (Ed. 4.0), Programmable controllers, Part 3: Programming languageswebstore.iec.ch
    • IEC 61131-3:2013 (Ed. 3.0), Programmable controllers, Part 3: Programming languageswebstore.iec.ch
    • PLCopen, Status IEC 61131-3 standard (sekunder)plcopen.org
    • Wikipedia, Instruction list (sekunder)en.wikipedia.org
    • IEC 81346-2:2019 (Ed. 2.0), Classification of objects and codes for classesiso.org

    Bab terkait

    Uji diri · 3 soal

    Cek pemahaman sebelum berpindah bab

    Tulis jawaban dengan kata-kata Anda sendiri, lalu bandingkan dengan pembahasan dari latihan asli bab ini. Sistem tidak menebak benar-salah jawaban terbuka; Anda yang menilai bagian mana yang sudah dipahami.

    0/3dinilai
    1

    (Penelusuran, koil ganda) Anak tangga 1: kontak NO xS1 seri dengan kontak NO xS2_StopOK (tombol stop diawatkan NC), koil keluaran xQ1. Anak tangga 2: kontak NO xB1, koil keluaran xQ1. Pada saat yang sama xS1 = TRUE, xS2_StopOK = TRUE, dan xB1 = FALSE. Apa nilai akhir xQ1 setelah satu siklus scan? Jelaskan alasannya.

    2

    (Tafsir, TOF) Sebuah kipas pendingin dikendalikan oleh TOF dengan PT = T#60s. Masukan IN dihubungkan ke sinyal "pemanas aktif". Jika pemanas dimatikan pada detik ke-100 dan dinyalakan kembali pada detik ke-130, apakah Q kipas pernah menjadi FALSE di antara dua kejadian itu? Gambarkan diagram waktu sederhana untuk menjelaskan jawaban Anda.

    3

    (Hitung dan penelusuran) Pada ST contoh kerja, kabel sensor -B1 putus saat langkah S1, sehingga xB1_Level tetap FALSE. Aliran katup 1,2 L/s dan volume sampai level cuci 38 L. (a) Telusuri langkah yang dicapai program dan keadaan keluarannya. (b) Hitung air yang masuk dan kelebihannya terhadap level cuci. (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 %?

    Progres penilaian mandiri0%

    Bab terdekat

    BerikutnyaKendali motor dengan PLC: interlock perangkat keras dan masukan gagal-aman

    Urutan baca menurut rak: Kelistrikan & Kendali · Bab 65.

    SebelumnyaRelai pintar dan PLC: arsitektur, siklus scan, dan pengawatan I/O

    Urutan baca menurut rak: Kelistrikan & Kendali · Bab 63.

    Satu disiplinTegangan, arus, resistansi, dan daya

    Bab lain dalam Teknik Elektro dan Elektronika.