Kontrol Sekuensial FBD: Tutorial Pemrograman Mesin Keadaan

Seorang trainee pernah bertanya mengapa program mesin pengisiannya kadang-kadang melewatkan langkah dan mengisi botol sebelum botol diposisikan. Jawabannya bukan karena timer yang hilang — itu karena keadaan yang hilang. Programnya adalah tumpukan kondisi independen; mesin sekuensial yang sebenarnya adalah mesin keadaan, dan perbedaannya adalah perbedaan antara program yang bekerja di atas kertas dan program yang bekerja pada hari Senin.

Kontrol sekuensial ada di mana-mana dalam otomatisasi: jalur pengisian, meja putar, mesin stempel, ruang cat. Kesalahan klasik adalah menulis setiap output sebagai kondisi longgar — "ketika sensor A dan timer B, buka katup C" — dan kemudian melakukan debugging kombinasi yang mustahil pada pukul 2 pagi. Solusinya adalah berhenti berpikir dalam output dan mulai berpikir dalam keadaan.

Apa Itu Mesin Keadaan Sebenarnya

Mesin keadaan adalah sekumpulan langkah bernama dan aturan untuk berpindah di antara mereka. Mesin selalu berada dalam satu langkah: TUNGGU, POSISI, ISI, SEGEL, KELUARKAN. Setiap langkah memiliki tindakan masuk, kondisi keluar, dan pengaman. Botol hanya diisi dalam langkah ISI, dan langkah ISI hanya dapat diakses dari POSISI ketika sensor botol mengonfirmasi posisi. Ini terdengar seperti birokrasi; ini berperilaku seperti rekayasa.

Dalam FBD xLogicSoft, mesin keadaan dipetakan dengan jelas ke pola Register Shift klasik atau ke bendera F yang digunakan sebagai bit langkah. Polanya: satu bendera F per langkah, seperangkat kondisi transisi, dan blok transisi satu kali sehingga mesin maju tepat satu langkah per peristiwa. Karena langkah saat ini selalu terlihat — LCD menunjukkan bendera F mana yang aktif — operator dan teknisi pemeliharaan dapat melihat sekilas di mana mesin mengira dirinya berada. Fitur tunggal ini mengurangi waktu pemecahan masalah lebih dari manual diagnostik mana pun.

Membangunnya: Tiga Stasiun Pengisian

Ambil contoh sederhana tiga stasiun: sebuah botol tiba, diisi, dan ditutup. Langkah-langkahnya:

  • Langkah 0 IDLE: semua output mati. Transisi: sensor botol ada, tombol mulai.
  • Langkah 1 POSISI: konveyor berjalan sampai botol berhenti di kepala pengisian. Transisi: sensor posisi.
  • Langkah 2 ISI: katup isi terbuka untuk durasi waktu yang ditentukan atau sampai sensor level aktif. Transisi: timer selesai.
  • Langkah 3 PENUTUP: penutup turun dan menekan. Transisi: tekanan terkonfirmasi, timer selesai.
  • Langkah 4 EJECT: konveyor berjalan untuk memindahkan botol keluar. Transisi: sensor keluar bersih.

Setiap transisi menggunakan blok On-Delay atau Wiping Relay (satu kali) sehingga kemajuan terjadi tepat sekali. Pengaman pada setiap transisi adalah langkah itu sendiri — Langkah 2 tidak dapat dimulai kecuali mesin berada di Langkah 1, titik. Botol tidak dapat diisi lebih awal karena "lebih awal" tidak ada sebagai kondisi; itu tidak ada dalam tabel langkah, dan botol tidak diposisikan sampai mesin telah meninggalkan POSISI.

Berikan operator mode langkah manual sebelum Anda memberikan mereka hal lain. Input pemilih memungkinkan mesin maju satu langkah pada satu waktu melalui urutan, sehingga teknisi pengaturan dapat menggerakkan jalur melalui POSISI, ISI, dan PENUTUPAN secara individu sambil mengawasi aktuator. Mesin keadaan membuat ini sepele — memajukan satu langkah hanyalah memaksa transisi berikutnya — dan mengubah pengoperasian dari misteri menjadi daftar periksa. Mesin yang tidak dapat dilalui secara manual adalah mesin yang diperbaiki dengan obeng.

Uji Mode Kegagalan

Berikut adalah latihan yang mengungkap apakah Anda telah membangun mesin keadaan atau tumpukan kondisi: daftar keadaan darurat. Botol terjepit di bawah kepala pengisi? Mesin harus tetap di ISI, menghentikan pompa, dan memberi alarm — tidak berkeliaran ke KELUARKAN dan membuang produk di lantai. Sensor gagal dan melaporkan "botol ada" selamanya? Mesin harus menghentikan langkah POSISI dan memberi alarm, tidak mengisi botol tak terlihat yang sama sepanjang malam. Sensor gagal dengan cara lain, "tidak pernah ada"? Mesin menunggu dengan sabar — itu baik-baik saja, itu yang seharusnya dilakukan mesin.

Tulis watchdog ke dalam program: jika mesin berada di langkah non-IDLE mana pun lebih lama dari waktu maksimum langkah, jatuh ke keadaan FAULT, potong output, dan kedipkan alarm. Waktu maksimum adalah angka yang sudah Anda ketahui dari waktu siklus — Anda tidak menebak, Anda menegakkan fisika.

Tentukan apa yang terjadi setelah kesalahan sebelum kesalahan terjadi. Pilihan umum: mesin berhenti di tempatnya, operator membersihkan penyebabnya, menekan reset, dan urutan kembali ke IDLE — atau ke awal langkah yang terputus jika produk masih aman. Kembali ke IDLE lebih sederhana dan lebih aman untuk mesin kecil; melanjutkan di tengah siklus lebih cepat tetapi menuntut bahwa setiap keadaan output diketahui dan terbukti. Untuk mesin pengisian, IDLE adalah jawaban yang jujur — botol setengah terisi adalah limbah dalam kedua cara.

Mengapa FBD Mengalahkan Ladder untuk Ini

Satu kebiasaan debugging membayar dirinya sendiri segera: buat langkah saat ini terlihat di LCD depan sebagai angka biasa. Laporan pertama operator menjadi "terjebak di langkah 4," bukan "melakukan sesuatu yang aneh," dan langkah 4 langsung menunjuk pada kondisi transisinya. Di xLogicSoft, bit bendera ada di jendela monitor, sehingga sesi laptop menunjukkan gambar yang sama dengan yang ditunjukkan LCD. Menyesuaikan kata-kata operator dengan keadaan program mengurangi pencarian dua jam menjadi dua puluh menit setiap kali.

Logika tangga dapat mengekspresikan mesin keadaan, tetapi membutuhkan seratus anak tangga dan diagram yang tidak dibaca siapa pun. Dalam FBD, struktur langkah ada di depan Anda: Register Shift atau blok bendera menunjukkan langkah saat ini, blok transisi terlihat, dan urutan dibaca dari atas ke bawah. Lingkungan xLogicSoft mencakup sekitar tujuh puluh blok fungsi, dan mesin lima langkah dengan interlock cocok dengan nyaman dalam satu halaman program. Ketika mesin berubah — stasiun baru, sensor baru — Anda menambahkan langkah dan dua transisi alih-alih mengubah logika.

Mulailah dengan tabel langkah di kertas, kemudian bendera, kemudian transisi. Program akan membosankan dengan benar, dan membosankan dengan benar adalah pujian tertinggi yang dapat diperoleh program otomatisasi. Mesin tidak perlu cerdas; mereka perlu dapat diprediksi.