Apakah ada PLC yang tersedia secara komersial yang dapat menyusun / mengunduh program melalui API?

9

Tim saya telah memutuskan untuk menggunakan PLC untuk mengendalikan proses industri yang membutuhkan IO sederhana dan real-time untuk perangkat eksternal dengan pemrosesan minimal. Namun, kami mengharapkan output yang tepat yang diperlukan bervariasi antara berjalan (pada kenyataannya, menjalankan tertentu jarang akan diulang), dan operator tidak akan memiliki pengalaman pemrograman PLC / perangkat lunak.

Meskipun saya tidak dapat mengungkapkan produk yang sebenarnya, analogi terbaiknya adalah bahwa kami merancang pembuat smoothie industri, dengan PLC mengendalikan secara tepat pembukaan dan penutupan katup yang berbeda secara real-time. Operator akan menggunakan perangkat lunak kami untuk merancang urutan tambahan tambahan dari reagen yang berbeda dan menghidupkan / mematikan alat berat yang relevan (misalnya, mixer industri).

Inilah tantangannya: pendekatan kami saat ini adalah menulis compiler kami sendiri yang menerjemahkan instruksi yang diberikan operator (buka katup A untuk 10 ms, buka katup B selama 20 ms) ke dalam logika tangga dan kode mesin PLC. Kami kemudian akan langsung mengunduh program self-compile kami ke PLC melalui serial. Semua ini perlu diotomatisasi sehingga operator hanya perlu mengklik tombol setelah membuat urutan langkah-langkahnya.

Namun, terlepas dari penelitian saya, saya belum menemukan satu vendor PLC yang keduanya 1) memiliki kompiler dengan API atau menerbitkan informasi yang cukup tentang kode mesin PLC mereka untuk memungkinkan seseorang untuk menulis kompiler, 2) mendukung pengunduhan langsung program ke PLC tanpa menggunakan perangkat lunak pemrograman vendor (CX-programmer, Atmel studio, dll.).

Saya dituntun untuk percaya bahwa kita mungkin mengambil pendekatan yang salah, atau setidaknya tidak tahu produk apa yang harus dicari. I / o cukup sederhana untuk tidak membenarkan pembuatan papan kita sendiri, tetapi fungsi yang kita cari, yaitu interaksi PLC dengan perangkat lunak PC tingkat tinggi, tampaknya tidak tersedia.

Idealnya, kami ingin mengunduh seluruh program ke PLC sekaligus dan tidak mengirim instruksi satu per satu. Eksekusi semua instruksi pada PLC (atau perangkat apa pun yang akhirnya kita gunakan) harus real time.

Adakah PLC yang tersedia secara komersial yang mendukung kompilasi dan pengunduhan kode mesin, sehingga seluruh proses dapat diotomatisasi oleh program yang lebih besar? Apakah ada cara lain untuk mengunduh program waktu-nyata ke PLC yang ditulis oleh perangkat lunak PC yang ditulis dalam bahasa tingkat tinggi?

Dragonsheep
sumber
Bagaimana dengan menggunakan OS dan biarkan pengguna mengedit kode program Anda melalui GUI kustom dan kompilasi, misalnya dengan GCC dan kemudian unduh program yang dikompilasi ke "PLC" Anda.
Eggi
Bisakah Anda menyarankan bahan atau tutorial yang memperkenalkan pemrograman dan prinsip RTOS? Saya paling akrab dengan pengembangan tertanam non-RT dan logika tangga tradisional, jadi sementara saya sangat tertarik dengan solusi ini, saya tidak yakin harus mulai dari mana dengan ini.
Dragonsheep
@ Apa itu API? Jika itu "antarmuka program aplikasi", lalu bagaimana Anda mengkompilasi / mengunduh melalui itu?
Dmitry Grigoryev
1
@ Archonsheep Lebih baik abaikan ide ini. Ada terlalu banyak aspek yang bukan bukti industri seperti kata Henry Cun. 1: Bagaimana Anda mengubah kode sebelum kompilasi? Letakkan di suatu tempat di teks yang jelas? 2: mendukung selama beberapa dekade dengan OS
Eggi

Jawaban:

11

Anda dapat menggunakan PLC untuk hal ini. Kecuali, Anda tidak ingin mengubah kode PLC untuk setiap "resep smoothie".
Anda harus menulis aplikasi PLC yang membaca resep dari sumber apa pun, seperti kartu sd, penyimpanan jaringan, penyimpanan internal atau bahkan kode QR jika Anda merasa senang.

Seringkali PLC sudah memiliki fitur untuk ini , di mana resep adalah serangkaian parameter yang dapat Anda muat (dan edit dengan HMI).

IO waktu-nyata ke perangkat eksternal dengan pemrosesan minimal

Apa pun yang Anda pilih untuk digunakan, jangan ciptakan PLC Anda sendiri . Mungkin tidak sepadan dengan waktu. Dan jangan berpikir perangkat lunak atau modul tambahan itu mahal, Anda tidak dapat menulisnya untuk harga itu.

Jeroen3
sumber
5

Saya akan berasumsi bahwa ini adalah tugas yang cukup sederhana untuk plc minimal, daripada sesuatu yang menggunakan PLC industri maju

Saya juga akan berasumsi bahwa ini berguna secara industri, yaitu, bahwa resep harus dapat diubah dalam waktu 10 tahun, oleh pelanggan. Juga kegunaannya harus bertahan Anda keluar dari bisnis atau pindah ke produk baru.

Banyak sistem akan memerlukan perangkat lunak khusus untuk mengunduh dan / atau mengompilasi, seperti yang Anda katakan. Dalam jangka panjang, pelanggan Anda akan menemukan bahwa Windows 11,12,13 tidak akan menjalankan perangkat lunak lagi. Untuk menghindari ini, Anda ingin program menjadi ascii, dikirim melalui port serial. Ini telah berlangsung sekitar 50 tahun sekarang, dan tidak menunjukkan tanda-tanda menghilang.

Keempat dapat "dikompilasi" pada target, sehingga pelanggan hanya perlu mengirim ascii ke sana dari terminal. Itu tidak akan pernah usang.

Bagian dari etos Keempat, adalah Anda menulis primitif khusus domain ("AddBanana", "Blend", "Pour") yang pelanggan Anda perlakukan sebagai bahasa khusus untuk produk tersebut. Sementara Forth dianggap misterius oleh orang-orang komputer, secara konseptual sangat mudah digunakan untuk pengguna akhir - ini akan menjadi program yang valid.

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

Sebagai contoh, Anda dapat menggunakan PLC berbasis Arduino kecil dan memuat FlashForth Ada banyak pilihan lain, misalnya MPEForth dan PLC berbasis ARM -cortex

Perangkat lunak Anda sekarang adalah editor apa pun, dan beberapa program untuk mengirim serial. Ada alat standar untuk ini, dan lama setelah Anda pergi, pelanggan dapat membuatnya bekerja dari awal, karena sangat sederhana.

Gagal dengan seluruh ide Anda, adalah bahwa pelanggan memprogram produk dan tentu saja dapat menyelesaikannya dengan melakukan hal yang salah - apa pun pendekatan yang Anda ambil.

Karena ini hanya file ascii, cukup mudah bagi Anda untuk membuat shell mewah untuk pelanggan, tetapi produk tersebut tetap berfungsi tanpa itu.

Henry Crun
sumber
Terima kasih balasannya! Sesuatu seperti Controllino yang Anda sarankan adalah persis apa yang kami cari! PLC minimalis di mana kami memiliki kendali langsung atas perangkat lunak dan dapat mengunduh program melalui serial. Ketika Anda mengatakan kami memiliki "banyak pilihan lain", seperti apa istilah pencarian yang relevan / produk apa yang Anda sarankan? Tim saya paling akrab dengan industri berat, jadi kami kehabisan ide setelah melalui katalog Siemens / Mitsubishi / Omron yang biasa dan tidak menemukan apa yang kami cari.
Dragonsheep
@Dragonsheep: Sebaiknya tunggu satu atau dua hari sebelum menerima jawaban. Ini mendorong orang lain untuk menulis dan Anda akan mendapatkan lebih banyak balasan dan sudut pandang yang berbeda.
Transistor
Jika ini merupakan pendekatan yang menarik bagi Anda, dan Anda adalah orang-orang yang membayar uang untuk alat, keahlian, dan dukungan, maka Anda mungkin ingin berbicara dengan Stephen Pelc di MPEForth. Dia melakukan hal semacam ini secara komersial. Di sisi lain, jika Anda adalah pembuat perangkat lunak bir gratis, maka cari modul berbasis Arduino atau plc's dan FlashForth.
Henry Crun
1
Saya juga setuju dengan jawaban @Transistor dan Jeroen: Jika yang Anda butuhkan adalah PLC industri, maka itulah yang Anda butuhkan. (dan modul acak Arduino plc tidak cukup kuat untuk menjadi pengontrol pabrik, lebih merupakan pengontrol kotak-jinak). Saya cenderung tidak setuju dengan "mendapatkan sesuatu dengan OS dan menggunakan solusi GCC" karena mungkin mengarah ke yang terburuk dari semua kemungkinan dunia.
Henry Crun
Ini memang aplikasi industri yang kami harap dapat dijual kepada klien. Kami berharap memiliki keandalan 20+ tahun yang ditunjukkan oleh vendor industri besar (Mitsubishi, dll.) Dengan produk mereka, jadi ada beberapa kekhawatiran dengan pergi ke salah satu vendor perangkat keras open-source yang lebih baru ini. Pada saat yang sama, perangkat lunak, sumber terbuka tampaknya memberi kita kendali yang kita cari. Stephen tampaknya orang yang baik untuk diajak bicara. Terima kasih atas petunjuknya.
Dragonsheep
2

Jangan main-main dengan Arduino, dll., Untuk aplikasi industri. PLC dirancang dengan keandalan, ketahanan, standar, dan dukungan jangka panjang. Perusahaan tempat saya bekerja menjalankan setidaknya satu Texas Instruments PLC sejak 1987 dan beberapa lainnya dari awal 1990-an. Suku cadang masih tersedia dari sumber industri di eBay, dll.

Gunakan PLC dan HMI industri dengan daya yang cukup untuk melakukan apa yang Anda butuhkan. Saya baru saja menyelesaikan pekerjaan mixer di mana kami ingin fleksibilitas resep dengan langkah-langkah otomatis dan manual. Urutan dikontrol dengan melangkah melalui array yang diprogram melalui HMI.

  • Nomor langkah. misalnya '5'.
  • Deskripsi. mis. 'Menimbang pisang secara otomatis', 'Ceri muat manual', 'Kikis turun'.
  • Kecepatan campuran (RPM). misalnya '25'.
  • Campur waktu. mis. '120'.
  • Diperlukan pengikisan di akhir langkah? (Y / T) misalnya 'Y'.
  • Dibutuhkan panas? (Y / T) misalnya 'N'.
  • Temperatur (° C). misal '0'.

Kami merancang sistem dengan serangkaian dua puluh langkah yang cukup untuk masa mendatang tetapi dapat dengan mudah diperluas, jika diperlukan. Semua pengaturan memiliki nilai minimum dan maksimum yang ditetapkan dalam aplikasi HMI.

Ini membuat sistem sangat fleksibel dan dapat diedit. Kami memiliki sistem yang kuat dengan PLC dan HMI yang akrab dan didukung oleh salah satu dari sejumlah besar perusahaan.

Transistor
sumber
Terima kasih balasannya. Aplikasi khusus yang kami miliki adalah untuk biokimia otomatis, sehingga dengan ratusan reagen dan ratusan langkah yang mungkin terlibat dalam proses yang kami otomatisasi, menurut pendapat saya saat ini bahwa segala jenis pemrograman perangkat HMI akan sangat rumit.
Dragonsheep
1

Anda belum menentukan anggaran untuk perangkat keras dan perangkat lunak pengembangan atau untuk biaya per unit perangkat keras yang digunakan, tetapi jika Anda mampu membelinya, kebutuhan Anda tentu dapat dipenuhi menggunakan perangkat keras National Instruments CompactRIO dan perangkat lunak LabVIEW Real-Time .

Pengontrol CompactRIO adalah pengontrol tertanam tingkat industri yang kokoh, andal, berkinerja tinggi, dengan sertifikasi standar industri.

Tersedia beragam modul I / O yang terhubung ke sasis pengontrol, atau jika desain Anda diperbaiki dan Anda ingin mengurangi biaya per unit, pengontrol dan I / O tersedia sebagai papan tunggal untuk Anda integrasikan dengan perangkat keras Anda . Anda akan menulis perangkat lunak di LabVIEW Real-Time untuk dijalankan pada pengontrol dan melakukan kontrol proses, dan ini juga dapat melayani UI berbasis web untuk mengedit langkah-langkah proses atau dapat berkomunikasi dengan program UI, ditulis dalam LabVIEW atau bahasa lain , berjalan pada PC host. Saya memiliki pengalaman terbatas dengan PLC tetapi saya pikir itu adil untuk mengatakan solusi ini akan menjadi urutan yang lebih kuat dan fleksibel, walaupun mungkin dengan biaya yang lebih tinggi.

Perhatikan bahwa meskipun pengontrol cRIO dilengkapi dengan FPGA onboard, Anda tidak perlu membeli modul LabVIEW FPGA kecuali Anda benar-benar perlu menulis kode FPGA; kedengarannya seolah-olah Waktu Nyata harus baik untuk kebutuhan Anda.

tidak otomatis
sumber
0

Saran saya lihat LabVIEW. Saya pikir itu akan memenuhi kebutuhan yang tercantum dalam posting Anda. Hindari menulis kompiler Anda. Itu jauh lebih banyak pekerjaan daripada yang harus Anda lakukan. Mereka banyak PLC komersial yang sesuai dengan tagihan. Saya pikir NI adalah salah satu yang paling mudah untuk dikerjakan. Sedangkan untuk mengunduh program pengguna, Anda perlu membuat aplikasi untuk mencapai itu.

http://www.ni.com/en-us/shop/labview.html

NI memiliki berbagai modul termasuk AtoD, output digital, output analog, antarmuka CAN, dll. Perangkat lunak ini sangat berguna untuk membuat antarmuka pengguna yang terlihat bagus. Kelemahannya adalah itu tidak murah. Jika juga sangat berbeda dengan pemrograman berbasis teks. Diperlukan pelatihan.

pengguna125718
sumber