Pemrograman-Berorientasi Objek untuk PLC dan Logika Diagram Tangga

Aug 24, 2026 Tinggalkan pesan

Di bidang otomasi industri, logika tangga tetap menjadi salah satu bahasa pemrograman yang paling umum digunakan; namun, untuk objek kontrol yang lebih kompleks, pemrograman-berorientasi objek tentu saja merupakan pendekatan yang sangat efisien. Mari kita bahas dulu pemrograman berorientasi objek-:


Pemrograman-berorientasi objek adalah paradigma pemrograman tingkat lanjut dalam bahasa komputer-tingkat tinggi. Filosofi desain ini juga dapat diterapkan pada program PLC dalam sistem kendali industri. Meskipun kita tidak dapat mengimplementasikan banyak fitur unggulan-pemrograman berorientasi objek-seperti "warisan"-dan bahasa PLC bahkan mungkin tidak memiliki karakteristik bahasa pemrograman-berorientasi objek, konsep dasar pemrograman berorientasi objek-adalah kelas dan instance kelas (yaitu objek). Kita hanya perlu memanfaatkan konsep-konsep ini. Dalam pemrograman komputer, kita perlu mengabstraksi dan menggeneralisasi entitas tertentu untuk mendefinisikan kelas. Namun, dalam sistem kendali industri, objek kendali seperti motor dan katup merupakan kategori kendali yang didefinisikan dengan jelas; kita dapat mendefinisikan kelas untuk mereka secara langsung tanpa memerlukan abstraksi. Bagian berikut akan menggunakan bahasa pemrograman Step7 dari Siemens dan bahasa pemrograman Unity dari Schneider untuk menjelaskan pemrograman berorientasi objek untuk PLC.


I. Metode Implementasi


Pemrograman berorientasi objek-di Langkah7 diimplementasikan menggunakan blok fungsi (FB). Ketika topik ini muncul, orang sering memikirkan pemrograman modular yang diusulkan oleh Siemens. Memang benar, ini adalah konsep yang sama, namun istilah seperti "modularisasi", "blok data latar belakang", dan "latar belakang ganda" yang diperkenalkan oleh Siemens tidak selalu memungkinkan pengguna untuk memahami dengan jelas dan menerapkan filosofi desain yang luar biasa ini.


Namun, jika Anda mendekatinya dari perspektif pemrograman-berorientasi objek, Anda bisa mendapatkan pemahaman yang lebih baik tentang pola desain ini. Sebuah "blok FB" dianggap sebagai "kelas"; itu dapat dilihat sebagai pengelompokan kode untuk objek kontrol serupa. Misalnya, untuk penggerak frekuensi-variabel MM440, Anda dapat menulis blok FB bernama "MtrMM440." Dalam pemrograman berorientasi objek-, ini disebut "kelas". Bila Anda perlu memprogram kontrol untuk motor tertentu, Anda dapat menetapkan blok DB latar belakang padanya-dalam pemrograman berorientasi objek-, ini disebut implementasi kelas (yaitu, membuat turunan kelas: sebuah objek). Saat Anda perlu mengontrol beberapa motor, Anda dapat menetapkan DB latar belakang yang berbeda ke blok FB ini, yang setara dengan membuat beberapa instance kelas.


Step7 menampilkan jenis blok program lain: blok FC. Pemrograman yang terutama menggunakan blok FC disebut sebagai pemrograman terstruktur dalam sistem Siemens, yang dapat dianalogikan dengan pemrograman prosedural dalam pemrograman komputer-yaitu, pemrograman yang murni berbasis fungsi-.


Pemrograman dengan perangkat lunak Unity Schneider memberikan pemahaman yang lebih baik tentang pemrograman{0}}berorientasi objek. Definisi DFB-nya mencakup parameter input/output, variabel privat/publik, dan implementasi kode-yang merupakan elemen dasar "kelas" dalam pemrograman berorientasi objek-komputer. Membuat instance kelas (objek) semudah membuat variabel "Boolean" biasa; Anda hanya perlu mendefinisikan variabel "kelas" ini di "Blok Fungsi".


Step7 dan Unity mendukung pendekatan pemrograman prosedural dan-berorientasi objek; perbedaan antara kedua pendekatan ini mirip dengan perbedaan antara pemrograman dalam C dan C++ dalam bahasa komputer tingkat tinggi-.


Dalam penjelasan berikut, FB di Langkah 7 dan DFB di Unity akan disebut sebagai "kelas", sedangkan FB yang digabungkan dengan database latar belakang di Langkah 7 dan instance DFB di Unity akan disebut sebagai "objek".


II. -Arsitektur Pemrograman Berorientasi Objek


Pembahasan di atas mencakup rincian implementasi, namun filosofi pemrograman dibangun berdasarkan arsitektur program. Cukup menggunakan metode-berorientasi objek pada bagian kode tertentu tidak berarti keseluruhan program berorientasi objek-. Jenis pemrograman ini memerlukan pendekatan berdasarkan aspek-aspek berikut:


1. Desain sirkuit terstruktur.


Bagian ini berfokus terutama pada jalur produksi otomatis; untuk peralatan mesin yang berdiri sendiri, struktur yang disederhanakan dapat digunakan:


<1>Lapisan Lini Produksi Otomatis: Ini adalah tingkat tertinggi, menampilkan PLC utama yang mengontrol berbagai zona di bawahnya.


<2>Lapisan Proyek: Lapisan ini memiliki sistem distribusi daya independen tetapi tidak ada PLC; ini hanya terdiri dari modul terdistribusi yang dikendalikan oleh jalur produksi otomatis. Sesuai dengan namanya, ia memiliki tingkat kemandirian yang tinggi dan dapat dirancang serta diproduksi sebagai proyek terpisah. Jika jalur produksi otomatis berukuran relatif kecil, lapisan ini dapat dihilangkan.


<3>Tingkat Kelompok Fungsional: Berdasarkan kebutuhan proses, segmen peralatan yang menjalankan fungsi proses tertentu dikelompokkan ke dalam kelompok fungsional. Kelompok ini termasuk dalam Jenjang Teknik; ketika Tingkat Teknik dihilangkan, itu termasuk dalam Tingkat Lini Produksi Otomatis. Pemrograman-berorientasi objek tidak selalu memerlukan penggunaan struktur di atas, namun-struktur kelistrikan yang dirancang dengan baik akan lebih kondusif untuk pemrograman-berorientasi objek.


2. Semua logika objek kontrol diimplementasikan dalam "kelas"


Untuk mencapai hal tersebut, perlu dilakukan analisis informasi yang berkaitan dengan objek kendali. Misalnya, untuk motor, informasi relevan berikut harus dipertimbangkan:


Informasi Masukan:


<1>,Informasi perlindungan sirkuit, seperti pemutus sirkuit motor dan relai termal.


<2>,Informasi perlindungan fungsional, seperti sakelar batas untuk motor gerak, sakelar tekanan untuk kipas, dan sakelar level oli untuk pompa oli.


<3>Kondisi hidup dan mati: Meskipun perlindungan sirkuit dan perlindungan fungsional yang disebutkan di atas dapat menyebabkan motor berhenti berjalan, dan penyetelan ulang dapat memicu penyalaan ulang, kondisi yang dimaksud di sini berkaitan dengan kondisi hidup dan mati selama pengoperasian normal-seperti langkah-langkah dalam proses kontrol sekuensial.


<4>Mode kontrol: seperti manual dan otomatis.


<5>Reset kesalahan: Memulai ulang sistem melalui sinyal reset.


Informasi Keluaran:


<1>,Mengontrol output, seperti kontaktor utama yang mengendalikan motor.


<2>,Keluaran informasi status


<3>,Keluaran kesalahan


Informasi Penyimpanan Status:


Variabel perantara yang digunakan untuk implementasi kode, serta variabel status yang dapat dibaca oleh HMI. Integrasikan semua informasi di atas ke dalam satu kelas dan standarkan parameter kelas sebanyak mungkin. Namun, masih ada beberapa perbedaan dibandingkan-bahasa pemrograman tingkat tinggi. Untuk Langkah7, standar yang harus diikuti adalah: struktur program diimplementasikan menggunakan FC, dan pengendalian objek diimplementasikan menggunakan FB, seperti yang diilustrasikan oleh kerangka struktural berikut (yang struktur kelistrikannya didasarkan pada pengenalan di atas): Ini hanyalah arsitektur program PLC kasar; arsitektur yang baik harus lebih komprehensif dan ilmiah.


3. Rencanakan Struktur Data dengan Hati-hati


Mendefinisikan struktur data sangatlah penting, dan Anda harus berusaha untuk menyatukan struktur ini sebanyak mungkin tanpa mengkhawatirkan ruang penyimpanan; memori PLC modern cukup untuk menampung data dalam jumlah besar. Perlu dicatat bahwa pada Langkah7, Anda harus menghindari mendefinisikan tipe-yang ditentukan pengguna (UDT) di luar kelas bila memungkinkan; sebagai gantinya, definisikan mereka di dalam kelas. Meskipun hal ini dapat mengakibatkan duplikat definisi struktur yang sama di kelas yang berbeda, hal ini meningkatkan independensi kelas.


Pada bagian berikut, kita akan membandingkan kedua pendekatan pemrograman ini:


Keuntungan Pemrograman-Berorientasi Objek Dibandingkan dengan logika tangga, pemrograman-berorientasi objek menawarkan keuntungan sebagai berikut:


• Portabilitas kode dan kemudahan penggunaan kembali;

• Kemudahan dalam menggunakan fungsi matematika, loop, dan konstruksi lainnya;

• Pemrograman{0}}berorientasi objek diajarkan di hampir setiap kursus pemrograman komputer;

• Kode dapat dijalankan pada berbagai platform perangkat keras.


Untuk menguasai pemrograman{0}}berorientasi objek, Anda harus terlebih dahulu memahami konsep objek dan cara menggunakannya. Setelah sebuah objek atau kelas ditulis, objek atau kelas tersebut dapat dengan mudah digunakan kembali melalui beberapa panggilan. Misalnya, buat objek untuk mengontrol motor, yang menangani semua input, output, dan kesalahan. Bila diperlukan, beberapa motor dapat dikontrol dengan membuat instance objek kontrol tunggal ini beberapa kali. Hal ini dikenal sebagai-instansiasi sesuai permintaan. Ketika beberapa motor perlu dikendalikan, objek tunggal ini dapat digunakan berulang kali. Ini dipanggil ketika dibutuhkan, dan instance dibuat saat digunakan.


Setiap kejadian setiap motor mempunyai karakteristiknya masing-masing, seperti motor berhenti, motor berjalan, kecepatan motor, dan beban berlebih motor. Sebagian besar pekerjaan pemrograman selesai saat objek pertama kali dibuat. Ini adalah cara berpikir yang berbeda dari logika tangga, dan ini lebih kuat karena setelah sebuah objek dibuat, maka objek tersebut mudah untuk digunakan dan digunakan kembali. Pemrograman berorientasi objek-mempermudah pelaksanaan fungsi matematika yang kompleks, perhitungan loop, array, dan subrutin bertingkat. Hampir setiap kursus pemrograman komputer-baik di sekolah menengah, perguruan tinggi, atau tutorial online-mengajarkan konsep ini. Kode yang dibuat bersifat portabel dan dapat dijalankan di berbagai platform perangkat keras.


"Logika tangga mengikuti format diagram tangga listrik yang digunakan dalam sistem kendali relai, dan kebanyakan orang dapat dengan cepat mempelajari dan menguasainya."


Namun, dibandingkan logika tangga, pemrograman-berorientasi objek memiliki kelemahan sebagai berikut:


• Biaya lebih tinggi;

• Kurva pembelajaran yang lebih curam;

• Pemecahan masalah tidak mudah bagi personel pemeliharaan;

• Kompilasi biasanya diperlukan sebelum mengupload kode sumber ke prosesor.


Dibandingkan dengan logika tangga, pemrograman-berorientasi objek sering kali memerlukan lebih banyak memori dan daya pemrosesan lebih besar, sehingga mengakibatkan biaya lebih tinggi. Mempelajari bahasa pemrograman-berorientasi objek mungkin memerlukan waktu lebih lama. Pengajaran di kelas mungkin diperlukan, dan menguasai konsep inti memerlukan banyak waktu, latihan, pengujian, dan penerapan. Pemrogram harus sering mempelajari pemrograman berorientasi objek-untuk menggunakan pelacak untuk melacak kode atau debugger untuk men-debug logika. Dengan jenis pemrograman-tingkat tinggi seperti ini, mungkin sulit untuk menerapkan kemampuan pemantauan online-waktu nyata.


Sebelum kode sumber dapat diunduh ke pengontrol, kode tersebut harus dikompilasi. Biasanya, kode sumber tidak disimpan dalam memori prosesor. Ini berarti kehati-hatian harus diberikan saat membuat cadangan kode sumber, karena kode yang dikompilasi biasanya tidak dapat diedit. Dengan pemrograman berorientasi objek-, file perpustakaan harus dihubungkan dengan sumber daya lain yang digunakan selama proses kompilasi. Tanpa pemahaman mengenai linking dan sumber daya, maka program akan sulit berjalan.


Keuntungan Logika Tangga:


Logika tangga adalah-metode pengkodean yang sederhana dan terdokumentasi sendiri-bahkan ada yang mempertanyakan apakah metode tersebut memenuhi syarat sebagai bahasa pemrograman. Ini mengikuti format diagram tangga listrik yang digunakan dalam sistem kendali relai, dan kebanyakan orang dapat dengan cepat mempelajari dan menguasainya. Ini telah menjadi satu-satunya bahasa pemrograman yang banyak digunakan di bidang otomasi mesin selama beberapa dekade, dan akan tetap menjadi salah satu bahasa pemrograman utama dalam industri otomasi di masa mendatang.


Seiring waktu, ketika orang-orang dari berbagai latar belakang dan bidang memasuki industri ini, berbagai bahasa pemrograman telah diperkenalkan ke dalam perangkat otomasi industri. Ini termasuk pemrograman blok fungsi, teks terstruktur, pemrograman status, dan bagan fungsi berurutan. Keempat bahasa pemrograman ini, bersama dengan logika tangga, merupakan bahasa pemrograman standar yang ditentukan oleh standar International Electrotechnical Commission (IEC) IEC 61131-3.


Logika di balik IEC 61131 adalah jika setiap vendor mematuhi standar ini, maka-setidaknya sampai batas tertentu-seseorang hanya perlu mempelajari lima bahasa pemrograman ini untuk dengan mudah beralih antar platform yang ditawarkan oleh vendor berbeda. Namun, hal ini tidak terjadi.

 

Logika tangga dasar (seperti penggunaan kontak relai dan kumparan) bekerja dengan cara yang sama; namun, ketika memprogram, seseorang harus mempelajari sintaksis dan pengalaman pengguna masing-masing vendor, serta secara spesifik cara menggunakan platform pemrograman. Meskipun kurangnya standarisasi, logika tangga menawarkan keunggulan berikut dibandingkan pemrograman-berorientasi objek:


• Sangat-cocok untuk kontrol mesin dan proses;

• Lebih mudah dipahami karena pada dasarnya-mendokumentasikan diri sendiri;

• Ini memfasilitasi pemecahan masalah pada sistem yang dikendalikan;

• Mudah untuk di-debug;

• Kode sumber biasanya dapat disimpan dalam prosesor.


Logika tangga sangat-cocok untuk kontrol mesin dan proses, khususnya untuk sistem otomasi dengan sejumlah besar input dan output diskrit (I/O). Selama bertahun-tahun, logika tangga juga terus ditingkatkan untuk menangani I/O analog, sehingga lebih cocok untuk berbagai aplikasi kontrol proses.


Dibandingkan dengan aplikasi kontrol mesin, aplikasi proses seringkali memiliki proporsi I/O analog yang lebih tinggi.


Karena logika tangga lebih mudah digunakan dibandingkan pemrograman-berorientasi objek, banyak teknisi dan insinyur terampil yang dapat mempelajarinya dengan cepat. Logikanya sangat sistematis dan terorganisir, dan sifatnya-mendokumentasikan dirinya sendiri membuatnya lebih mudah untuk dipahami dan dikuasai. Setiap baris kode harus bernilai benar sebelum perangkat dapat diaktifkan. Jika ada lima motor yang harus dikendalikan, setidaknya diperlukan lima baris kode, yang sangat menyederhanakan prosesnya.


"Kode sumber dan deskriptor logika tangga biasanya disimpan di pengontrol, sehingga menghilangkan kebutuhan untuk mengakses kode sumber-sehingga menghilangkan rasa frustrasi yang sering dialami pemrogram saat mencoba memahami program yang dikompilasi."

 

Untuk insinyur kelistrikan dan personel pemeliharaan, logika tangga sangat intuitif. Meskipun logika tangga memerlukan cara berpikir yang berbeda dibandingkan pemrograman-berorientasi objek, logika ini dapat dikuasai dengan cepat melalui beberapa pembelajaran, dan memerlukan waktu lebih sedikit untuk memahami kode yang ditulis oleh orang lain. Sangat jelas kapan suatu pernyataan logika benar dan kapan salah. Bahkan mereka yang memiliki pengalaman pemrograman terbatas dapat dengan mudah memahami konsep-konsep seperti on/off, energi koil, variabel perbandingan, dan fungsi matematika umum.

81e77660-9f31-11ed-bfe3-dac502259ad0.jpg

 

Sederhana dan mudah digunakan, menyederhanakan pemecahan masalah dan debugging. Saat memantau logikanya, mudah untuk memahami kondisi pengoperasian saat ini. Tidak diperlukan gelar perangkat lunak atau keterampilan pemrograman tingkat lanjut. Dengan logika tangga, personel pemeliharaan dan teknik dapat dengan mudah melacak proses dan memahami apa yang terjadi. Logika tangga dapat dianggap sebagai tabel kebenaran: jika logika di sebelah kiri benar, logika di sebelah kanan diaktifkan.


Kode sumber dan deskriptor logika tangga biasanya disimpan di pengontrol. Hal ini menghilangkan rasa frustrasi yang sering dialami pemrogram ketika mencoba memahami kode yang dikompilasi tanpa akses ke kode sumber-masalah yang juga umum terjadi dalam pemrograman-berorientasi objek.


Namun, dibandingkan dengan pemrograman-berorientasi objek, logika tangga juga memiliki kelemahan berikut:


• Pemrogram komputer dan profesional TI tidak terbiasa dengan logika tangga;

• Sulit untuk menjalankan fungsi matematika, pemrosesan teks, dan pemrosesan data;

• Hal ini bergantung pada waktu pemindaian;

• Dibutuhkan perangkat keras khusus untuk menjalankannya, seperti pengontrol logika yang dapat diprogram (PLC).


Logika tangga adalah bahasa simbolik yang tidak dikenal oleh pemrogram komputer dan profesional TI, karena mereka tidak mempelajarinya di sekolah. Menangani fungsi matematika, string teks, dan data dalam logika tangga bisa jadi sulit, terutama karena logika tangga pada awalnya tidak dirancang untuk menangani fungsi-fungsi ini.


Logika tangga juga bergantung pada waktu pemindaian. Program yang lebih besar memerlukan lebih banyak waktu untuk memindai dan memproses logikanya. Saat menjalankan logika tangga, sistem membaca masukan, memindai logika, memperbarui tabel data dan keluaran, melakukan komunikasi, dan kemudian mengulangi siklus tersebut. Fitur seperti interupsi dan teknik pemrograman lainnya dapat diimplementasikan untuk memastikan eksekusi logika tertentu lebih cepat.


Meskipun PLC berbasis perangkat lunak-yang dikonfigurasi dengan logika tangga dapat berjalan di PC, perangkat keras (seperti PLC) biasanya harus kompatibel dengan perangkat lunak pemrograman, dan yang terbaik adalah membeli keduanya dari vendor yang sama. Hal ini memastikan kompatibilitas, namun tidak terlalu nyaman jika Anda ingin berpindah vendor.

Selain membandingkan kelebihan dan kekurangan logika tangga dan pemrograman-berorientasi objek, pengguna juga harus mengevaluasi bagaimana bahasa pemrograman ini akan digunakan di lingkungan tempat bahasa tersebut akan diterapkan. Jika pabrik atau fasilitas telah melakukan standarisasi logika tangga, tidak disarankan untuk menggantinya dengan pemrograman berorientasi objek, meskipun pemrograman berorientasi objek lebih cocok untuk aplikasi tersebut. Seiring dengan terus berkembangnya penggunaan pemrograman berorientasi objek, hal ini diperkirakan akan sejalan dengan logika tangga selama beberapa dekade mendatang. Seorang profesional-otomatisasi yang berpikiran maju sebaiknya-menguasai kedua bahasa tersebut.

Kirim permintaan

whatsapp

Telepon

Email

Permintaan