Sistem Elektrikal dan FSM Programmable Logic Controller (PLC)
A. Konsep Finite State Machine
Finite State Machine (FSM) adalah model matematis untuk perangkat lunak atau sistem yang memodelkan bagaimana sebuah sistem berubah dari satu keadaan ke keadaan lain berdasarkan serangkaian masukan. FSM terdiri dari sejumlah keadaan (state) yang saling berhubungan dan dapat berubah ke keadaan lain melalui transisi (transition) yang terjadi ketika diberikan suatu masukan.
FSM dapat digunakan dalam banyak aplikasi seperti dalam sistem kontrol, pengenalan pola, dan pengolahan bahasa alami. Implementasi FSM biasanya menggunakan algoritma atau kode pemrograman yang dapat memungkinkan sistem untuk beroperasi secara otomatis dan mandiri.
FSM dinyatakan oleh pasangan 5 tuple, yaitu M = (Q, ∑, δ, S, F)
Q = himpunan state/kedudukan
∑ = himpunan symbol input/masukan/abjad
δ = fungsi transisi
S = state awal/kedudukan awal (initial state)
F = himpunan state akhir
Pembagian FSM
Moore Machine
Ciri dari moore machine adalah aksi berada di luar state sementara output dari aksi berada di dalam state.
Mealy Machine
Ciri dari mealy machine adalah aksi dan output aksi berada di luar state.
B. Finite State Machine pada PLC
Finite State Machine (FSM) adalah metode pemrograman yang digunakan pada PLC untuk mengimplementasikan logika kontrol yang kompleks dan terstruktur. FSM adalah model matematis untuk memodelkan sistem yang terdiri dari kumpulan keadaan (state) dan transisi antara keadaan-keadaan tersebut.
Pada dasarnya, sistem FSM pada PLC terdiri dari tiga elemen utama yaitu:
1. States (keadaan): Keadaan adalah kondisi sistem yang ditentukan oleh nilai dari input dan output. State bisa diartikan sebagai keadaan atau situasi yang sedang terjadi pada suatu mesin atau sistem. Contohnya, dalam sebuah sistem otomasi pabrik, state bisa diartikan sebagai tahap produksi yang sedang berlangsung seperti idle, running, atau stopped.
2. Transitions (transisi): Transisi adalah perubahan keadaan dari satu state ke state lain yang dipicu oleh adanya input dari sensor atau perintah dari operator. Contohnya, transisi dari state idle ke state running akan terjadi jika sensor mendeteksi adanya bahan baku yang masuk ke mesin produksi.
3. Actions (aksi): Action adalah tindakan yang dilakukan pada saat transisi dari satu state ke state lain. Contohnya, saat mesin produksi berpindah dari state idle ke state running, action yang dilakukan adalah mengaktifkan motor dan membuka valve.
C. Penerapan Finite State Machine pada PLC
Misalnya kita ingin membuat kontrol sederhana untuk sebuah conveyor belt dengan empat keadaan (states) berbeda yaitu:
a. Idle (tidak bergerak)
b. Running (bergerak)
c. Stop (berhenti)
d. Emergency Stop (berhenti mendadak)
Tahapan pemrograman FSM menggunakan Ladder Diagram pada PLC:
1. Buat program LD yang terdiri dari beberapa rangkaian (rung), masing-masing rung akan merepresentasikan keadaan (state) dari conveyor belt.
2. Buat variabel boolean untuk masing-masing keadaan (state) dan inisialisasikan dengan nilai false. Misalnya:
∴ Idle = false
∴ Running = false
∴ Stop = false
∴ Emergency Stop = false
3. Implementasikan keadaan (state) pertama, yaitu keadaan Idle. Buat rangkaian (rung) yang akan menyalakan motor jika input start diaktifkan dan keadaan (state) Idle bernilai true. Jangan lupa untuk mengubah nilai dari variabel Idle menjadi true pada rung tersebut.
4. Implementasikan transisi dari state Idle ke state Running. Buat rangkaian (rung) yang akan mengubah nilai dari variabel Idle menjadi false dan Running menjadi true jika sensor yang menandakan adanya benda pada conveyor belt diaktifkan.
5. Implementasikan keadaan (state) Running. Buat rangkaian (rung) yang akan menjaga motor tetap berjalan selama variabel Running bernilai true dan input stop tidak diaktifkan.
6. Implementasikan transisi dari state Running ke state Stop. Buat rangkaian (rung) yang akan mengubah nilai dari variabel Running menjadi false dan Stop menjadi true jika input stop diaktifkan.
7. Implementasikan keadaan (state) Stop. Buat rangkaian (rung) yang akan menjaga motor tetap berhenti selama variabel Stop bernilai true dan input start tidak diaktifkan.
8. Implementasikan transisi dari state Stop ke state Emergency Stop. Buat rangkaian (rung) yang akan mengubah nilai dari variabel Stop dan Running menjadi false serta Emergency Stop menjadi true jika tombol Emergency Stop diaktifkan.
9. Implementasikan keadaan (state) Emergency Stop. Buat rangkaian (rung) yang akan mematikan motor selama variabel Emergency Stop bernilai true dan semua input start, stop, dan sensor conveyor belt tidak diaktifkan.
10. Terakhir, buat rangkaian (rung) yang akan mengembalikan keadaan (state) conveyor belt menjadi Idle jika tombol reset ditekan.