Adakah Solusi Realistis / Berguna untuk Kontrol Sumber untuk Program Logika Tangga


17

Kontrol versi untuk program ladder logic (LL) untuk programmable logic controllers (PLCs) tampaknya hampir tidak ada. Mungkin karena LL adalah bahasa visual dan cenderung disimpan dalam file biner, atau mungkin karena kontrol kode sumber belum "menarik" dalam lingkaran rekayasa kontrol proses - atau mungkin Google-Fu saya lemah malam ini.

Apakah Anda tahu ada solusi realistis dan berguna untuk kontrol versi untuk sistem seperti itu?

Definisi:

  • realistis = perubahan pada program dilacak oleh pengguna dan tunduk pada pembalikan dan penggabungan
  • berguna = sistem terintegrasi dengan perancang LL visual, tidak terbatas pada LL dari satu produsen PLC, dan tidak memerlukan biaya jumlah uang yang konyol?

Catatan: Saya pernah mendengar orang menggunakan SVN atau Mercurial et al untuk melacak file biner, tapi saya tidak berpikir kemampuan diff / merge akan menampilkan perbedaan yang bisa dibaca.

TAMBAHAN:

Awalnya kami hanya harus mendukung PLC Allen-Bradley. Sekarang kami juga memiliki PLC Siemens dan MicroLogix. Masih mencari solusi yang layak ...


1
Pertanyaan ini mungkin relevan untuk Anda: stackoverflow.com/questions/4216619/plc-version-control
blueberryfields

Halo @Stevenalowe, apakah ada perkembangan pada subjek ini?
Montag451

@EnmosProje: bukannya saya sadar, maaf!
Steven A. Lowe

Jawaban:


13

Sayangnya jawabannya akan tergantung pada vendor PLC yang Anda gunakan. Sebagian besar dari mereka menyimpan kode mereka dalam format file berpemilik, sehingga membuatnya sulit untuk menggunakan kontrol sumber reguler.

Rockwell menawarkan FactoryTalk AssetCenter jika Anda menggunakan Allen-Bradley. Saya belum memberi harga, tapi kemungkinan mahal. Itu lebih dari kontrol sumber.

Saya telah menggunakan kontrol sumber (Mercurial) biasa dengan file Beckhoff TwinCAT PLC. Tampaknya berhasil, tetapi saya tidak pernah harus bergabung dengan siapa pun. Versi baru mereka dari TwinCAT (3) yang keluar akhir tahun ini seharusnya dibangun di Visual Studio 2010, dan saya berasumsi akan memiliki penawaran out-of-the-box yang jauh lebih baik untuk integrasi kontrol versi. Semoga saja.

Mulai Edit

Saya hanya ingin menambahkan bahwa saya sekarang menggunakan produk TwinCAT 3 yang baru, dan saya menggunakan Mercurial (TortoiseHg dan add-in VisualHg untuk Visual Studio). Ini bekerja dengan cukup baik. Pertama-tama VisualHg membuatnya terasa sangat terintegrasi ke dalam Visual Studio 2010 IDE yang menggunakan TwinCAT 3. Namun, kode sumber untuk program TwinCAT 3 umumnya disimpan dalam file XML. Ini adalah peningkatan besar dibandingkan format biner milik vendor lain yang telah saya gunakan, tetapi masih belum tergabung dengan baik. Beberapa file tidak memiliki jeda baris dalam XML (saya sudah menulis kepada Beckhoff tentang ini) yang berarti sistem kontrol sumber garis-demi-garis tidak banyak membantu. Juga, karena ini XML, pemesanan node dalam file XML tampaknya berubah secara acak, bahkan ketika Anda tidak membuat perubahan apa pun. Juga, Saya pikir kadang-kadang menghasilkan ID baru untuk beberapa node ketika tidak harus, yang membuat untuk perubahan berlebihan yang diambil Hg. Ini secara efektif membuat tidak mungkin untuk membuat perubahan pada program TwinCAT 3 oleh 2 programmer pada saat yang bersamaan, dan kemudian menggabungkan perubahan. Ini adalah pengawasan yang disayangkan oleh para pengembang TwinCAT 3, yang tidak diragukan lagi menggunakan kontrol sumber secara teratur dalam pekerjaan mereka sendiri, dan tidak melihat keuntungan bagi kami para pemrogram otomasi rendah untuk memiliki akses ke alat yang sama kuatnya. :( yang tidak diragukan lagi menggunakan kontrol sumber secara teratur dalam pekerjaan mereka sendiri, dan tidak melihat keuntungan bagi kami programmer otomasi rendah untuk memiliki akses ke alat yang sama kuatnya. :( yang tidak diragukan lagi menggunakan kontrol sumber secara teratur dalam pekerjaan mereka sendiri, dan tidak melihat keuntungan bagi kami programmer otomasi rendah untuk memiliki akses ke alat yang sama kuatnya. :(

Akhiri Edit

Mulai Edit # 2

Saya ingin menunjukkan bahwa TwinCAT 3.1 sekarang memiliki format file yang lebih cocok untuk kontrol sumber, terutama file bahasa teks terstruktur. Bahkan, produk ini sekarang dibangun untuk mendukung integrasi ke Server Team Foundation, saya percaya.

Akhiri Edit # 2

Alternatif lain adalah sebagian besar program PLC dapat diekspor ke file teks. RSLogix 5000, misalnya, mengekspor proyeknya ke file L5K, yang hanya berupa teks. Saya telah menjalankan skrip terhadap file-file itu sebelumnya - mereka cukup mudah diurai. Mereka akan bekerja dengan baik dengan kontrol sumber. Tentu saja itu berarti mengekspor setiap waktu, yang menyebalkan.

Jika Anda menggunakan kontrol versi standar, saya sangat menyarankan VCS terdistribusi, seperti Git atau Mercurial, karena dengan PLC, separuh waktu Anda berada di lokasi dan tidak dapat terhubung ke server rumah Anda, jadi kemampuan untuk melakukan komitmen lokal adalah bonus nyata.

Hal lain yang harus Anda sadari adalah bahwa beberapa lingkungan pemrograman PLC, seperti RSLogix, sudah menyertakan alat diff, sehingga Anda dapat menjalankan diff terhadap dua versi proyek Anda. Ini, dikombinasikan dengan menyimpan file baru dengan tanggal hari ini setiap hari, adalah hal yang tampaknya dimiliki oleh sebagian besar toko otomasi.



@blueberryfields: ya saya telah menggunakan fitur autosave pada sebagian besar perangkat lunak yang mendukungnya, dan ya, ini telah menyelamatkan pantat saya beberapa kali. Namun, menggunakannya sebagai kontrol versi bukan ide yang baik. Kontrol versi harus memiliki lebih dari sekedar stempel waktu, itu harus memiliki penulis dan deskripsi perubahan. Seharusnya juga dimungkinkan untuk melakukan penggabungan 3 arah antara versi induk dan dua garpu.
Scott Whitlock

Proyek TwinCAT Beckhoff dapat diekspor dan diimpor ke / dari file teks juga. Begitulah cara kami menempatkan mereka di bawah kontrol versi. Bekerja dengan baik untuk proyek yang ditulis dalam ST. Belum mencoba dengan bahasa grafis seperti LL.
stmax

@stmax - Saya baru saja mengedit jawaban untuk memberikan pengalaman terbaru saya dengannya. Seperti yang saya katakan, itu berfungsi, tidak sebaik yang bisa dilakukan.
Scott Whitlock

Saya menerima ini sebagai 'jawaban' karena tampaknya mengekspor ke file teks dan menggunakan SCC adalah satu-satunya solusi yang layak untuk beberapa vendor PLC.
Steven A. Lowe

4

Jika Anda bisa, lihat Otomasi B&R.

Pengungkapan Penuh ... Saya bekerja untuk mitra penjualan Otomasi B&R.

Proyek Otomatisasi B&R modern berfungsi sangat baik dengan perangkat lunak versi. Saat ini saya menggunakan GIT (yang tidak terintegrasi), meskipun seharusnya ada integrasi dengan SVN dalam perangkat lunak. Semua sumber HMI disimpan sebagai XML, dan semua sumber bahasa PLC mereka (termasuk tangga) disimpan berdasarkan teks alih-alih biner (sebagian besar juga XML). Jika Anda harus melakukan penggabungan manual maka Anda harus "mengetahui" XML sampai batas tertentu, tetapi saya tidak merasa sulit. Dan penggabungan otomatis biasanya membuat itu tidak perlu.


3

Saya baru saja melihat pertanyaan ini, dan sebenarnya ada solusi kalengan - dari GE-IP dari semua tempat. Lihat Proficy Change Management. Produk ini melakukan kontrol versi dari sudut pandang sistem kontrol PLC, alih-alih kontrol versi murni dari sudut pandang file - ini berfungsi sebagai lapisan yang duduk di atas VCS (bagian yang menakutkan adalah bahwa awalnya VCS ini adalah Visual SourceSafe) dan menangani manajemen hak, pelaporan, dan checkout / lapor masuk.

Sementara produk dari GE-IP, ia dirancang untuk mendukung berbagai sistem PLC dan HMI di luar kotak.

Pengungkapan penuh, saya digunakan untuk bekerja di perusahaan yang menjual dan menginstal PCM (tapi itu 7 tahun yang lalu). Jadi, jika Anda bertanya kepada saya seperti apa rasanya saat itu maka saya akan memberi tahu Anda di mana semuanya salah!


1

Betapa mengerikan kedengarannya, dalam satu kasus saya akhirnya menggunakan fitur "Cetak ke PDF" dari perangkat lunak logika tangga (dalam hal ini adalah CSC Horner) dan kemudian program pembeda PDF grafis gratis (mis. DiffPDF ) untuk membandingkan perubahan karena kode sumber hanya tersedia dalam format biner yang eksklusif.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.