Pengertian Sequential Function Chart (SFC)
Sequential Function Chart (SFC) adalah salah satu bahasa pemrograman yang digunakan pada Programmable Logic Controller (PLC) untuk mengembangkan program kontrol yang memiliki proses atau tahapan operasi secara berurutan.
SFC dirancang untuk menggambarkan alur proses atau sequence secara visual sehingga programmer dapat dengan mudah memahami posisi proses, aktivitas yang sedang dijalankan, serta kondisi yang diperlukan untuk berpindah ke proses berikutnya.
Berbeda dengan Ladder Diagram (LD) yang lebih banyak digunakan untuk membuat logika kontrol berbasis kontak dan coil, SFC lebih menitikberatkan pada urutan kejadian atau tahapan proses.
Secara sederhana, konsep SFC dapat dipahami melalui tiga pertanyaan:
STEP = Proses sedang berada di tahap apa?
ACTION = Apa yang dilakukan pada tahap tersebut?
TRANSITION = Kapan proses boleh berpindah ke tahap berikutnya?
SFC sangat sesuai digunakan pada mesin atau sistem industri yang mempunyai banyak tahapan operasi, seperti mesin packaging, conveyor, filling system, batch process, sistem CIP, dan berbagai aplikasi otomasi lainnya.
SFC dalam Pemrograman PLC
Sequential Function Chart merupakan salah satu pendekatan pemrograman yang termasuk dalam keluarga bahasa pemrograman PLC berdasarkan IEC 61131-3.
Dalam praktiknya, SFC dapat digunakan sebagai struktur utama untuk mengatur sequence, sementara logika yang terdapat pada setiap tahap dapat diimplementasikan menggunakan bahasa PLC lainnya, seperti:
- Ladder Diagram (LD)
- Structured Text (ST)
- Function Block Diagram (FBD)
Dengan pendekatan tersebut, SFC dapat berfungsi sebagai kerangka atau pengatur alur proses, sedangkan LD, ST, atau FBD digunakan untuk menangani logika detail.
Contohnya:
SFC
Sequence Control
│
┌────────┼────────┐
▼ ▼ ▼
STEP 1 STEP 2 STEP 3
│ │ │
▼ ▼ ▼
LD ST FBD
Pendekatan ini membuat program PLC lebih terstruktur, terutama ketika sebuah mesin mempunyai sequence yang cukup kompleks.
Konsep Dasar Sequential Function Chart
Terdapat beberapa elemen penting dalam SFC. Tiga konsep utama yang perlu dipahami adalah Step, Action, dan Transition.
1. Step
Step adalah tahapan atau kondisi tertentu dalam suatu proses.
Step menunjukkan posisi sistem saat ini.
Sebagai contoh, pada sistem pengisian tangki dapat dibuat beberapa step:
STEP 0
IDLE
↓
STEP 1
OPEN INLET VALVE
↓
STEP 2
FILL TANK
↓
STEP 3
CLOSE VALVE
↓
STEP 4
START PUMP
↓
STEP 5
PROCESS COMPLETE
Ketika PLC berada pada STEP 2, berarti sistem sedang berada pada tahap Fill Tank.
Dengan demikian, programmer dapat dengan mudah mengetahui proses mana yang sedang aktif.
2. Action
Action adalah aktivitas yang dilakukan ketika sebuah Step sedang aktif.
Misalnya pada Step OPEN INLET VALVE, action yang dijalankan adalah:
Valve_Inlet := TRUE;
Sedangkan pada Step START PUMP:
Pump := TRUE;
Action dapat digunakan untuk:
- Mengaktifkan output digital.
- Mematikan output.
- Menjalankan timer.
- Mengatur nilai variable.
- Menjalankan Function Block.
- Menjalankan logika tertentu.
- Mengaktifkan proses atau perangkat tertentu.
Contoh:
STEP: START PUMP
ACTION:
Pump := TRUE;
Selama Step tersebut aktif, action akan menjalankan fungsi yang telah ditentukan.
3. Transition
Transition adalah kondisi yang menentukan kapan PLC dapat berpindah dari satu Step ke Step berikutnya.
Sebagai contoh:
STEP
OPEN VALVE
│
▼
TRANSITION
Valve_Open_FB = TRUE
│
▼
STEP
START PUMP
Artinya, PLC akan berpindah dari OPEN VALVE ke START PUMP apabila feedback valve open sudah bernilai TRUE.
Transition dapat berupa berbagai kondisi logika, misalnya:
Start_PB = TRUE
atau:
Valve_Open_FB = TRUE
atau:
Tank_Level >= 80%
atau:
Pressure_OK AND Temperature_OK
atau:
Timer_Done = TRUE
Dengan demikian, Transition berfungsi sebagai syarat perpindahan antar-step.
Contoh SFC pada Sistem Pengisian Tangki
Untuk memahami konsep SFC, kita dapat menggunakan contoh sederhana berupa sistem pengisian tangki.
Misalnya proses yang diinginkan adalah:
- Sistem berada pada kondisi standby.
- Operator menekan tombol Start.
- Valve inlet dibuka.
- Setelah valve terbuka, proses pengisian dimulai.
- Ketika level mencapai 80%, valve ditutup.
- Setelah valve benar-benar tertutup, pompa dijalankan.
- Setelah proses selesai, sistem masuk ke kondisi Process Complete.
Sequence tersebut dapat digambarkan sebagai berikut:
┌─────────────────────┐
│ STEP 0 │
│ IDLE │
└──────────┬──────────┘
│
Start_PB
│
▼
┌─────────────────────┐
│ STEP 1 │
│ OPEN INLET VALVE │
│ │
│ Valve_Inlet = ON │
└──────────┬──────────┘
│
Valve_Open_FB
│
▼
┌─────────────────────┐
│ STEP 2 │
│ FILL TANK │
│ │
│ Valve_Inlet = ON │
└──────────┬──────────┘
│
Level >= 80%
│
▼
┌─────────────────────┐
│ STEP 3 │
│ CLOSE VALVE │
│ │
│ Valve_Inlet = OFF │
└──────────┬──────────┘
│
Valve_Close_FB
│
▼
┌─────────────────────┐
│ STEP 4 │
│ START PUMP │
│ │
│ Pump = ON │
└──────────┬──────────┘
│
Process_OK
│
▼
┌─────────────────────┐
│ STEP 5 │
│ PROCESS COMPLETE │
└─────────────────────┘
Dari contoh tersebut terlihat bahwa SFC membuat urutan proses menjadi lebih mudah dipahami.
Cara Kerja SFC pada PLC
Secara sederhana, prinsip kerja SFC adalah sebagai berikut.
1. PLC berada pada Initial Step
Ketika sistem mulai bekerja, PLC berada pada Initial Step, misalnya:
STEP 0 - IDLE
Pada tahap ini sistem belum menjalankan proses utama.
2. Transition diperiksa
PLC kemudian memeriksa kondisi Transition.
Misalnya:
Start_PB = TRUE
Jika kondisi tersebut terpenuhi, PLC berpindah ke Step berikutnya.
3. Step berikutnya menjadi aktif
Misalnya:
STEP 1 - OPEN VALVE
Step tersebut menjadi aktif.
4. Action dijalankan
Action pada Step tersebut dijalankan:
Valve_Inlet = TRUE
Valve kemudian diperintahkan untuk membuka.
5. Transition berikutnya diperiksa
PLC menunggu kondisi:
Valve_Open_FB = TRUE
Ketika feedback valve sudah menunjukkan posisi open, PLC berpindah ke Step berikutnya.
Proses tersebut berulang sampai sequence selesai.
Sequence Paralel pada SFC
Salah satu kemampuan penting SFC adalah menangani parallel sequence.
Dalam beberapa aplikasi industri, setelah satu proses selesai, dua atau lebih proses harus berjalan secara bersamaan.
Misalnya setelah proses filling selesai:
FILL COMPLETE
│
┌─────┴─────┐
│ │
▼ ▼
START PUMP OPEN VALVE
│ │
▼ ▼
PUMP READY VALVE OPEN
│ │
└─────┬─────┘
│
▼
STEP NEXT
Dengan sequence paralel, dua proses dapat berjalan secara bersamaan dan kemudian bergabung kembali ketika seluruh kondisi yang diperlukan sudah terpenuhi.
Fitur ini sangat bermanfaat untuk sistem yang memiliki beberapa aktuator atau proses yang bekerja secara simultan.
Branching dan Looping pada SFC
Selain sequence berurutan dan paralel, SFC juga dapat digunakan untuk membuat branching dan looping.
Branching
Branching digunakan ketika proses dapat mengambil jalur yang berbeda berdasarkan kondisi tertentu.
Contohnya:
STEP
│
▼
CHECK LEVEL
/ \
/ \
▼ ▼
LEVEL LOW LEVEL HIGH
│ │
▼ ▼
FILL TANK NEXT PROCESS
Dengan demikian, sequence dapat menyesuaikan kondisi proses.
Looping
Looping digunakan ketika proses tertentu harus dilakukan berulang kali.
Contohnya:
START
↓
PROCESS
↓
CHECK
↓
Not Complete
│
└──────────→ PROCESS
Complete
↓
END
Looping sering digunakan pada proses produksi yang membutuhkan pengulangan sampai kondisi tertentu terpenuhi.
Contoh SFC pada Aplikasi Industri
SFC banyak digunakan pada berbagai jenis aplikasi otomasi industri.
1. Packaging Machine
Sequence dapat berupa:
Detect Product
↓
Clamp
↓
Filling
↓
Sealing
↓
Cutting
↓
Release
↓
Complete
2. Conveyor System
Contoh sequence:
Start Conveyor
↓
Detect Product
↓
Stop Conveyor
↓
Process Product
↓
Start Conveyor
↓
Product Exit
3. Batch Process
Pada proses batch:
Charge Material
↓
Mixing
↓
Heating
↓
Temperature Hold
↓
Cooling
↓
Discharge
↓
Batch Complete
4. CIP System
SFC juga cocok untuk sistem Cleaning in Place (CIP):
Pre-Rinse
↓
Caustic Wash
↓
Intermediate Rinse
↓
Acid Wash
↓
Final Rinse
↓
CIP Complete
Aplikasi seperti ini biasanya mempunyai sequence yang panjang dan membutuhkan kondisi perpindahan yang jelas.
SFC vs Ladder Diagram
SFC dan Ladder Diagram sama-sama dapat digunakan untuk pemrograman PLC, tetapi memiliki karakteristik yang berbeda.
| Aspek | SFC | Ladder Diagram |
|---|---|---|
| Fokus | Urutan proses | Logika kontrol |
| Struktur | Step dan Transition | Contact dan Coil |
| Sequence panjang | Sangat cocok | Bisa menjadi kompleks |
| Visualisasi proses | Sangat baik | Lebih terbatas |
| Parallel sequence | Lebih mudah | Lebih kompleks |
| Logika ON/OFF sederhana | Bisa digunakan | Sangat cocok |
| Troubleshooting sequence | Relatif mudah | Dapat lebih kompleks |
| Aplikasi utama | Sequence control | Logic control |
Sebagai contoh, logika sederhana seperti:
Start AND NOT Stop → Motor ON
biasanya lebih mudah dibuat menggunakan Ladder Diagram.
Sedangkan sequence:
Open Valve
↓
Wait Feedback
↓
Start Pump
↓
Wait Pressure
↓
Stop Pump
lebih mudah divisualisasikan menggunakan SFC.
SFC Tidak Menggantikan Ladder Diagram
Penggunaan SFC tidak berarti Ladder Diagram menjadi tidak diperlukan.
Dalam proyek PLC, beberapa bahasa pemrograman dapat digunakan secara bersamaan.
Contohnya:
SFC
Sequence Control
│
┌───────┼───────┐
▼ ▼ ▼
STEP 1 STEP 2 STEP 3
│ │ │
▼ ▼ ▼
LD ST FBD
SFC dapat digunakan untuk mengatur sequence utama, sedangkan Ladder Diagram atau Structured Text digunakan untuk membuat detail logic pada masing-masing proses.
Pendekatan ini dapat membuat program lebih modular dan mudah dipelihara.
Kelebihan Sequential Function Chart
Beberapa kelebihan SFC dalam pemrograman PLC antara lain:
1. Mudah memahami urutan proses
Programmer dapat melihat sequence secara visual dari Step satu ke Step berikutnya.
2. Memudahkan troubleshooting
Ketika mesin berhenti, engineer dapat mengetahui Step mana yang sedang aktif.
Misalnya:
ACTIVE STEP = FILL TANK
Engineer kemudian dapat memeriksa Transition dari proses filling menuju proses berikutnya.
3. Cocok untuk proses kompleks
SFC dapat menangani:
- Sequence berurutan.
- Parallel sequence.
- Branching.
- Looping.
- Synchronization.
4. Program lebih terstruktur
Sequence panjang dapat dipecah menjadi beberapa Step sehingga program menjadi lebih mudah dipahami.
5. Memudahkan pengembangan sistem
Ketika sequence perlu ditambahkan atau diubah, struktur Step dan Transition dapat membantu programmer melakukan modifikasi secara lebih terorganisir.
Kekurangan SFC
Walaupun memiliki banyak kelebihan, SFC juga memiliki beberapa keterbatasan.
1. Tidak semua PLC memiliki implementasi yang sama
Dukungan dan fitur SFC dapat berbeda tergantung platform dan software PLC yang digunakan.
2. Kurang praktis untuk logic sederhana
Untuk logika sederhana seperti:
Sensor AND Permissive → Motor ON
Ladder Diagram biasanya lebih sederhana.
3. Membutuhkan pemahaman konsep State
Programmer harus memahami hubungan antara:
Step → Action → Transition → Step berikutnya.
4. Reset dan Initial Step harus dirancang dengan baik
Sequence perlu memiliki kondisi awal, kondisi akhir, serta mekanisme reset yang jelas agar sistem tidak masuk ke kondisi yang tidak diinginkan.
Tips Mendesain SFC untuk Aplikasi Industri
Dalam membuat SFC, beberapa hal berikut perlu diperhatikan.
1. Tentukan Initial Step
Pastikan sistem mempunyai kondisi awal yang jelas.
Contohnya:
STEP 0 - IDLE
2. Gunakan nama Step yang mudah dipahami
Hindari nama seperti:
STEP_001
STEP_002
STEP_003
Jika tidak ada dokumentasi tambahan.
Lebih baik menggunakan nama seperti:
OPEN_INLET_VALVE
FILL_TANK
CLOSE_INLET_VALVE
START_PUMP
PROCESS_COMPLETE
Nama yang jelas akan sangat membantu saat troubleshooting.
3. Gunakan feedback field device
Jangan hanya memberikan perintah:
Valve_Open = TRUE
tetapi gunakan feedback untuk memastikan bahwa valve benar-benar telah terbuka:
Valve_Open_FB = TRUE
4. Gunakan permissive dan interlock
Transition dapat dibuat dengan kondisi seperti:
Valve_Open_FB
AND
Permissive_OK
AND
No_Fault
Hal ini membantu memastikan bahwa perpindahan sequence hanya terjadi ketika kondisi yang diperlukan telah terpenuhi.
5. Tentukan kondisi fault
Sequence sebaiknya memiliki penanganan ketika suatu kondisi tidak tercapai.
Contohnya:
OPEN VALVE
↓
WAIT FEEDBACK
↓
Feedback tidak muncul
↓
TIMEOUT
↓
FAULT
Dengan demikian, sistem tidak terus menunggu tanpa batas ketika terjadi masalah pada field device.
SFC dan State Machine
Konsep SFC sangat erat kaitannya dengan State Machine.
Dalam State Machine, sistem memiliki beberapa state dan dapat berpindah dari satu state ke state lain berdasarkan kondisi tertentu.
Contohnya:
┌───────────┐
│ IDLE │
└─────┬─────┘
│ Start
▼
┌───────────┐
│ RUN │
└─────┬─────┘
│ Fault
▼
┌───────────┐
│ FAULT │
└─────┬─────┘
│ Reset
▼
IDLE
Karena itu, memahami konsep State, Transition, Action, Condition, dan Event akan sangat membantu ketika mempelajari SFC lebih lanjut.
Kesimpulan
Sequential Function Chart (SFC) merupakan pendekatan pemrograman PLC yang sangat cocok untuk sistem otomasi yang mempunyai banyak tahapan atau sequence.
Konsep dasarnya dapat diringkas menjadi tiga bagian:
STEP → Menunjukkan posisi atau tahapan proses.
ACTION → Aktivitas yang dijalankan ketika Step aktif.
TRANSITION → Kondisi yang menentukan perpindahan ke Step berikutnya.
Dengan struktur tersebut, SFC dapat membantu programmer membuat program PLC yang lebih terstruktur, mudah dibaca, mudah ditelusuri, dan lebih mudah ditroubleshooting.
SFC sangat relevan untuk aplikasi seperti packaging machine, conveyor, filling system, batch process, CIP, material handling, dan berbagai sistem otomasi industri yang membutuhkan pengendalian proses secara berurutan.
Bagi seorang automation engineer, memahami SFC juga merupakan langkah penting untuk memahami konsep sequence control dan state machine yang banyak digunakan dalam desain sistem kontrol industri.