Dalam bidang automasi perindustrian, logik tangga kekal sebagai salah satu bahasa pengaturcaraan yang paling biasa digunakan; walau bagaimanapun, untuk objek kawalan yang lebih kompleks, pengaturcaraan berorientasikan objek -sudah tentu merupakan pendekatan yang sangat cekap. Mari kita bincangkan dahulu pengaturcaraan berorientasikan objek-:
Pengaturcaraan berorientasikan objek- ialah paradigma pengaturcaraan lanjutan dalam-bahasa komputer peringkat tinggi. Falsafah reka bentuk ini juga boleh digunakan untuk program PLC dalam sistem kawalan industri. Walaupun kami tidak dapat melaksanakan banyak ciri terbaik bagi-pengaturcaraan berorientasikan objek-seperti "warisan"-dan bahasa PLC mungkin tidak mempunyai ciri-ciri bahasa pengaturcaraan berorientasikan objek-, konsep asas pengaturcaraan berorientasikan objek-adalah kelas dan kejadian kelas (iaitu, objek). Kita hanya perlu menggunakan konsep ini. Dalam pengaturcaraan komputer, kita perlu mengabstrak dan menyamaratakan entiti tertentu untuk menentukan kelas. Dalam sistem kawalan industri, walau bagaimanapun, objek kawalan seperti motor dan injap ditakrifkan dengan jelas kategori kawalan; kita boleh menentukan kelas untuk mereka secara langsung tanpa memerlukan abstraksi. Bahagian berikut akan menggunakan bahasa pengaturcaraan Step7 Siemens dan bahasa pengaturcaraan Schneider's Unity untuk menerangkan{16}}pengaturcaraan berorientasikan objek untuk PLC.
I. Kaedah Pelaksanaan
Pengaturcaraan berorientasikan objek-dalam Step7 dilaksanakan menggunakan blok fungsi (FB). Apabila topik ini muncul, orang sering memikirkan pendekatan pengaturcaraan modular yang dicadangkan oleh Siemens. Memang, ini adalah konsep yang sama, tetapi istilah seperti "pemodularan," "blok data latar belakang," dan "latar belakang berbilang" yang diperkenalkan oleh Siemens tidak selalu membenarkan pengguna memahami dengan jelas dan menggunakan falsafah reka bentuk yang sangat baik ini.
Walau bagaimanapun, jika anda mendekatinya dari perspektif pengaturcaraan berorientasikan objek-, anda boleh memperoleh pemahaman yang lebih baik tentang corak reka bentuk ini. "Blok FB" dianggap sebagai "kelas"; ia boleh dilihat sebagai kumpulan kod untuk objek kawalan yang serupa. Contohnya, untuk pemacu frekuensi-pembolehubah MM440, anda boleh menulis blok FB bernama "MtrMM440." Dalam pengaturcaraan berorientasikan objek-, ini dipanggil "kelas." Apabila anda perlu memprogramkan kawalan untuk motor tertentu, anda boleh menetapkan blok DB latar belakang kepadanya-dalam pengaturcaraan berorientasikan objek-, ini dipanggil pelaksanaan kelas (iaitu, mencipta contoh kelas: objek). Apabila anda perlu mengawal berbilang motor, anda boleh menetapkan DB latar belakang yang berbeza pada blok FB ini, yang bersamaan dengan mencipta berbilang kejadian kelas.
Step7 menampilkan satu lagi jenis blok program: blok FC. Pengaturcaraan terutamanya menggunakan blok FC dirujuk sebagai pengaturcaraan berstruktur dalam sistem Siemens, yang boleh dianalogikan dengan pengaturcaraan prosedural dalam pengaturcaraan komputer-iaitu, pengaturcaraan yang berasaskan fungsi semata-mata-.
Pengaturcaraan dengan perisian Unity Schneider memberikan pemahaman yang lebih baik tentang-pengaturcaraan berorientasikan objek. Takrifan DFBnya termasuk parameter input/output, pembolehubah peribadi/awam dan pelaksanaan kod-yang merupakan elemen asas "kelas" dalam pengaturcaraan berorientasikan objek komputer-yang tepat. Mencipta contoh kelas (objek) adalah semudah mencipta pembolehubah "Boolean" biasa; anda hanya perlu mentakrifkan pembolehubah "kelas" ini dalam "Blok Fungsi."
Kedua-dua Step7 dan Unity menyokong pendekatan pengaturcaraan berorientasikan prosedur dan{1}}objek. Perbezaan antara kedua-dua pendekatan ini adalah serupa dengan perbezaan antara pengaturcaraan dalam C dan C++ dalam-bahasa komputer peringkat tinggi.
Dalam penjelasan berikut, FB dalam Step7 dan DFB dalam Unity akan dirujuk sebagai "kelas", manakala gabungan FB dan DB latar belakang dalam Step7, serta contoh DFB dalam Unity, akan dirujuk sebagai "objek."
II. Seni Bina Pengaturcaraan Berorientasikan Objek{{1}
Perbincangan di atas merangkumi butiran pelaksanaan, tetapi falsafah pengaturcaraan dibina berdasarkan seni bina program. Hanya menggunakan kaedah berorientasikan objek-dalam bahagian tertentu kod tidak bermakna keseluruhan program berorientasikan-objek. Pengaturcaraan jenis ini memerlukan pendekatan berdasarkan aspek berikut:
1. Reka bentuk litar berstruktur.
Bahagian ini memberi tumpuan terutamanya pada barisan pengeluaran automatik; untuk alatan mesin kendiri, struktur yang dipermudahkan boleh digunakan:
<1>Lapisan Barisan Pengeluaran Automatik: Ini adalah tahap tertinggi, menampilkan PLC utama yang mengawal pelbagai zon di bawahnya.
<2>Lapisan Projek: Lapisan ini mempunyai sistem pengagihan kuasa bebas tetapi tiada PLC; ia hanya terdiri daripada modul teragih yang dikawal oleh barisan pengeluaran automatik. Seperti namanya, ia mempunyai tahap kebebasan yang tinggi dan boleh direka bentuk dan dihasilkan sebagai projek berasingan. Apabila barisan pengeluaran automatik agak kecil, lapisan ini mungkin ditinggalkan.
<3>, Tahap Kumpulan Berfungsi: Berdasarkan pembahagian proses, segmen peralatan yang melaksanakan fungsi proses tertentu dikumpulkan ke dalam kumpulan berfungsi. Kumpulan ini tergolong dalam Peringkat Kejuruteraan; apabila Tahap Kejuruteraan ditinggalkan, ia tergolong dalam Tahap Barisan Pengeluaran Automatik. Pengaturcaraan berorientasikan objek-tidak semestinya memerlukan penggunaan struktur di atas, tetapi struktur elektrik-yang direka dengan baik adalah lebih kondusif untuk pengaturcaraan berorientasikan objek-.
2. Semua logik untuk sebarang objek kawalan dilaksanakan dalam "kelas."
Untuk mencapai matlamat ini, adalah perlu untuk menganalisis maklumat yang berkaitan dengan objek kawalan. Sebagai contoh, untuk motor, maklumat berkaitan berikut mesti dipertimbangkan:
Maklumat Input:
<1>,Maklumat perlindungan litar, seperti pemutus litar motor dan geganti terma.
<2>,Maklumat perlindungan berfungsi, seperti suis had untuk motor gerakan, suis tekanan untuk kipas dan suis aras minyak untuk pam minyak.
<3>Keadaan mula dan berhenti: Walaupun perlindungan litar dan perlindungan fungsi yang dinyatakan di atas boleh menyebabkan motor berhenti berjalan dan penetapan semula boleh mencetuskan mula semula, syarat yang dirujuk di sini ialah untuk memulakan dan berhenti semasa operasi biasa-seperti langkah dalam proses kawalan berjujukan.
<4>Mod kawalan: seperti manual dan automatik.
<5>Set semula kesalahan: Memulakan semula sistem melalui isyarat set semula.
Maklumat Output:
<1>Kawalan output, seperti penyentuh utama yang mengawal motor.
<2>Output maklumat status
<3>Output kesalahan
Maklumat Storan Status:
Pembolehubah perantaraan yang digunakan untuk pelaksanaan kod, serta pembolehubah status yang boleh dibaca oleh HMI. Integrasikan semua maklumat di atas ke dalam satu kelas dan standardkan parameter kelas sebanyak mungkin. Walau bagaimanapun, masih terdapat beberapa perbezaan berbanding dengan-bahasa pengaturcaraan peringkat tinggi. Untuk Langkah7, standard yang perlu diikuti ialah: struktur program dilaksanakan menggunakan FC, dan kawalan objek dilaksanakan menggunakan FB, seperti yang digambarkan oleh rangka kerja struktur berikut (yang struktur elektriknya berdasarkan pengenalan di atas): Ini hanyalah seni bina program PLC yang kasar; seni bina yang baik haruslah lebih menyeluruh dan saintifik.
3. Rancang Struktur Data Dengan Berhati-hati
Menentukan struktur data adalah penting, dan anda harus berusaha untuk menyatukan struktur ini sebanyak mungkin tanpa perlu risau tentang ruang storan; memori PLC moden adalah mencukupi untuk menampung sejumlah besar data. Perlu diingat bahawa dalam Langkah7, anda harus mengelak daripada mentakrifkan-jenis yang ditentukan pengguna (UDT) di luar kelas apabila boleh; sebaliknya, tentukan mereka dalam kelas. Walaupun ini mungkin menghasilkan takrifan pendua bagi struktur yang sama merentas kelas yang berbeza, ia meningkatkan kebebasan kelas.
Dalam bahagian berikut, kami akan membandingkan kedua-dua pendekatan pengaturcaraan ini:
Kelebihan Pengaturcaraan Berorientasikan Objek-Berbanding dengan logik tangga, pengaturcaraan berorientasikan objek-menawarkan kelebihan berikut:
• Kod mudah alih dan mudah digunakan semula;
• Mudah untuk menggunakan fungsi matematik, gelung dan binaan lain;
• Pengaturcaraan berorientasikan objek-diajar dalam hampir setiap kursus pengaturcaraan komputer;
• Kod boleh dijalankan pada pelbagai platform perkakasan.
Untuk menguasai pengaturcaraan berorientasikan objek-, anda mesti terlebih dahulu memahami konsep objek dan cara menggunakannya. Setelah objek atau kelas ditulis, ia boleh digunakan semula dengan mudah melalui berbilang panggilan. Contohnya, cipta objek untuk mengawal motor, yang mengendalikan semua input, output dan kerosakan. Apabila diperlukan, berbilang motor boleh dikawal dengan menghidupkan objek kawalan tunggal ini beberapa kali. Ini dikenali sebagai-permintaan instantiasi. Apabila berbilang motor perlu dikawal, objek tunggal ini boleh digunakan berulang kali. Ia dipanggil apabila diperlukan, dan kejadian dibuat semasa ia digunakan.
Setiap contoh setiap motor mempunyai ciri-ciri tersendiri, seperti hentian motor, larian motor, kelajuan motor, dan beban motor. Kebanyakan kerja pengaturcaraan selesai apabila objek pertama kali dicipta. Ini adalah cara berfikir yang berbeza daripada logik tangga, dan ia lebih berkuasa kerana apabila objek dibina, ia mudah digunakan dan digunakan semula. Pengaturcaraan berorientasikan objek{3}}membuat lebih mudah untuk melaksanakan fungsi matematik yang kompleks, pengiraan gelung, tatasusunan dan subrutin bersarang. Hampir setiap kursus pengaturcaraan komputer-sama ada di sekolah menengah, kolej atau tutorial dalam talian-mengajarkan konsep ini. Kod yang dibuat adalah mudah alih dan boleh dijalankan pada pelbagai platform perkakasan.
"Logik tangga mengikut format gambar rajah tangga elektrik yang digunakan dalam sistem kawalan geganti, dan kebanyakan orang boleh mempelajari dan menguasainya dengan cepat."
Walau bagaimanapun, berbanding dengan logik tangga, pengaturcaraan berorientasikan objek-mempunyai kelemahan berikut:
• Kos yang lebih tinggi;
• Keluk pembelajaran yang lebih curam;
• Penyelesaian masalah bukanlah mudah untuk kakitangan penyelenggaraan;
• Penyusunan biasanya diperlukan sebelum memuat naik kod sumber ke pemproses.
Berbanding dengan logik tangga, pengaturcaraan berorientasikan objek-selalunya memerlukan lebih banyak memori dan kuasa pemprosesan yang lebih besar, mengakibatkan kos yang lebih tinggi. Mempelajari bahasa pengaturcaraan berorientasikan objek-mungkin mengambil masa yang lebih lama. Arahan bilik darjah mungkin diperlukan, dan menguasai konsep teras memerlukan masa, latihan, ujian dan aplikasi yang penting. Pengaturcara mesti kerap mengkaji pengaturcaraan berorientasikan objek-untuk menggunakan pengesan untuk menjejak kod atau nyahpepijat untuk nyahpepijat logik. Dengan jenis pengaturcaraan-tinggi ini, sukar untuk melaksanakan-keupayaan pemantauan dalam talian masa nyata.
Sebelum memuat turun kod sumber ke pengawal, ia mesti disusun. Biasanya, kod sumber tidak disimpan dalam memori pemproses. Ini bermakna penjagaan mesti diambil untuk membuat sandaran kod sumber, kerana kod yang disusun biasanya tidak boleh diedit. Dengan pengaturcaraan berorientasikan objek-, fail perpustakaan mesti dipautkan dengan sumber lain yang digunakan semasa proses penyusunan. Tanpa pemahaman tentang pautan dan sumber, ia akan menjadi sukar untuk menjalankan program.
Kelebihan Logik Tangga:
Logik tangga ialah kaedah pengekodan-mendokumentasikan sendiri-malah ada yang mempersoalkan sama ada ia layak sebagai bahasa pengaturcaraan. Ia mengikut format gambar rajah tangga yang digunakan dalam sistem kawalan geganti, dan kebanyakan orang boleh mempelajari dan menguasainya dengan cepat. Ia merupakan satu-satunya bahasa pengaturcaraan yang digunakan secara meluas dalam bidang automasi mesin selama beberapa dekad, dan ia akan kekal sebagai salah satu bahasa pengaturcaraan utama dalam industri automasi untuk masa hadapan yang boleh dijangka.
Dari masa ke masa, apabila orang dari pelbagai latar belakang dan bidang telah memasuki industri, pelbagai bahasa pengaturcaraan telah diperkenalkan ke dalam kit alat automasi industri. Ini termasuk pengaturcaraan blok fungsi, teks berstruktur, pengaturcaraan keadaan, dan carta fungsi berjujukan. Empat bahasa pengaturcaraan ini, bersama-sama dengan logik tangga, membentuk bahasa pengaturcaraan standard yang ditakrifkan oleh piawaian IEC 61131-3 Suruhanjaya Elektroteknik Antarabangsa (IEC).
Logik di sebalik IEC 61131 ialah jika setiap vendor mematuhi piawaian ini, maka-sekurang-kurangnya sedikit sebanyak-seseorang hanya perlu mempelajari lima bahasa pengaturcaraan ini untuk menukar antara platform yang ditawarkan oleh vendor berbeza dengan mudah. Walau bagaimanapun, ini tidak berlaku.
Perkara yang sama berlaku untuk logik tangga asas (seperti penggunaan sesentuh geganti dan gegelung); walau bagaimanapun, apabila pengaturcaraan, seseorang mesti mempelajari sintaks setiap vendor dan pengalaman pengguna, serta spesifik cara menggunakan platform pengaturcaraan mereka. Walaupun kekurangan penyeragaman, logik tangga menawarkan kelebihan berikut berbanding pengaturcaraan berorientasikan objek-:
• Ia amat sesuai-untuk kawalan mesin dan proses;
• Ia lebih mudah difahami kerana ia adalah pendokumentasian sendiri-;
• Ia memudahkan penyelesaian masalah sistem terkawal;
• Mudah untuk nyahpepijat;
• Kod sumber biasanya boleh disimpan dalam pemproses.
Logik tangga sangat sesuai-untuk kawalan mesin dan proses, terutamanya untuk sistem automasi dengan sejumlah besar input dan output diskret (I/O). Selama bertahun-tahun, logik tangga juga telah dipertingkatkan secara berterusan untuk mengendalikan I/O analog, menjadikannya lebih sesuai untuk pelbagai aplikasi kawalan proses.
Berbanding dengan aplikasi kawalan mesin, aplikasi proses biasanya mempunyai bahagian I/O analog yang lebih tinggi.
Oleh kerana logik tangga lebih mudah digunakan daripada pengaturcaraan berorientasikan objek-, ramai juruteknik dan jurutera mahir boleh mempelajarinya dengan cepat. Logiknya sangat sistematik dan teratur, dan sifat pendokumentasiannya sendiri-membuatnya lebih mudah untuk difahami dan dikuasai. Sebelum peranti diaktifkan, setiap baris kod mesti dinilai kepada benar. Jika terdapat lima motor untuk dikawal, sekurang-kurangnya lima baris kod diperlukan, yang sangat memudahkan proses.
"Kod sumber logik tangga dan deskriptor biasanya disimpan dalam pengawal, menghapuskan keperluan untuk mengakses kod sumber dan dengan itu menghapuskan kekecewaan pengaturcara yang sering dialami apabila cuba memahami atur cara yang disusun."
Untuk jurutera elektrik dan kakitangan penyelenggaraan, logik tangga adalah sangat intuitif. Walaupun logik tangga memerlukan pemikiran yang berbeza daripada pengaturcaraan berorientasikan objek-, ia boleh dikuasai dengan cepat melalui kajian dan memerlukan sedikit masa untuk memahami kod yang ditulis oleh orang lain. Ia adalah jelas apabila logik itu benar dan apabila ia salah. Malah mereka yang mempunyai pengalaman pengaturcaraan terhad boleh dengan mudah memahami konsep seperti keadaan hidup/mati, penjanaan gegelung, pembolehubah perbandingan dan fungsi matematik biasa.

Ia mudah dan mudah digunakan, memperkemas penyelesaian masalah dan penyahpepijatan. Apabila memantau logik, mudah untuk memahami keadaan operasi semasa. Tiada ijazah perisian atau kemahiran pengaturcaraan lanjutan diperlukan. Dengan logik tangga, kakitangan penyelenggaraan dan kejuruteraan boleh menjejaki proses dengan mudah dan memahami apa yang berlaku. Logik tangga boleh dianggap sebagai jadual kebenaran: jika logik di sebelah kiri adalah benar, logik di sebelah kanan diaktifkan.
Kod sumber dan deskriptor logik tangga biasanya disimpan dalam pengawal. Ini menghapuskan kekecewaan yang sering dialami oleh pengaturcara apabila cuba memahami kod terkumpul tanpa akses kepada kod sumber-masalah yang juga biasa dalam pengaturcaraan berorientasikan objek-.
Walau bagaimanapun, berbanding pengaturcaraan berorientasikan objek-, logik tangga juga mempunyai kelemahan berikut:
• Pengaturcara komputer dan profesional IT tidak biasa dengan logik tangga;
• Sukar untuk melaksanakan fungsi matematik, pemprosesan teks dan pemprosesan data;
• Ia bergantung pada masa imbasan;
• Ia memerlukan perkakasan khusus untuk dilaksanakan, seperti pengawal logik boleh atur cara (PLC).
Logik tangga ialah bahasa simbolik yang tidak dikenali oleh pengaturcara komputer dan profesional IT, kerana mereka tidak mempelajarinya di sekolah. Mengendalikan fungsi matematik, rentetan teks dan data dalam logik tangga boleh menjadi sukar, terutamanya kerana logik tangga pada asalnya tidak direka untuk mengendalikan fungsi ini.
Logik tangga juga bergantung pada masa imbasan. Program yang lebih besar memerlukan lebih banyak masa untuk mengimbas dan memproses logik. Apabila melaksanakan logik tangga, sistem membaca input, mengimbas logik, mengemas kini jadual dan output data, melakukan komunikasi, dan kemudian mengulangi kitaran. Ciri-ciri seperti gangguan dan teknik pengaturcaraan lain boleh dilaksanakan untuk memastikan pelaksanaan logik tertentu dengan lebih pantas.
Walaupun PLC berasaskan perisian-yang dikonfigurasikan dengan logik tangga boleh dijalankan pada PC, perkakasan (seperti PLC) biasanya perlu serasi dengan perisian pengaturcaraan dan sebaiknya membeli kedua-duanya daripada vendor yang sama. Ini memastikan keserasian, tetapi ia tidak begitu mudah jika anda ingin menukar vendor.
Selain membandingkan kebaikan dan keburukan logik tangga dan pengaturcaraan berorientasikan objek-, pengguna juga harus menilai cara bahasa pengaturcaraan ini akan digunakan dalam persekitaran di mana ia akan digunakan. Jika kilang atau kemudahan telah pun menyeragamkan pada logik tangga, menggantikannya dengan pengaturcaraan berorientasikan objek-tidak digalakkan, walaupun jika yang terakhir lebih sesuai untuk aplikasi. Memandangkan penggunaan pengaturcaraan berorientasikan objek-terus berkembang, ia dijangka wujud bersama logik tangga untuk beberapa dekad yang akan datang. Seorang-profesional automasi yang berfikiran ke hadapan akan dinasihatkan supaya-menguasai kedua-dua bahasa.




