Merdiven Mantık Programları için Kaynak Kontrolü İçin Gerçekçi / Faydalı Çözümler Var mı


17

Programlanabilir mantık denetleyicileri (PLC) için ladder logic (LL) programları için sürüm kontrolü neredeyse yok gibi görünüyor. LL'nin görsel bir dil olması ve ikili dosyalarda saklanma eğiliminde olması veya kaynak kodu kontrolünün süreç kontrol mühendisliği çevrelerinde "yakalanmaması" ya da belki de Google-Fu'mın bu gece zayıf olması olabilir.

Bu tür sistemler için sürüm kontrolü için gerçekçi ve kullanışlı çözümler biliyor musunuz?

Tanımlar:

  • gerçekçi = programlardaki değişiklikler kullanıcı tarafından izlenir ve tersine çevrilip birleştirilir
  • Faydalı = Sistem görsel LL tasarımcılarıyla bütünleşir, tek bir PLC üreticisinin LL'si ile sınırlı değildir ve gülünç miktarda paraya mal olmaz mı?

Not: İkili dosyaları izlemek için SVN veya Mercurial et al kullanan insanları duydum, ancak diff / merge özelliklerinin okunabilir farklılıklar göstereceğini düşünmüyorum.

EK:

İlk başta sadece Allen-Bradley PLC'leri desteklemek zorunda kaldık. Artık Siemens ve MicroLogix PLC'lerimiz de var. Hala uygulanabilir bir çözüm arıyor ...



Merhaba @Stevenalowe, bu konuda bir gelişme oldu mu?
Montag451

@EnmosProje: farkında olmadığım için değil, üzgünüm!
Steven A. Lowe

Yanıtlar:


13

Maalesef cevap kullandığınız PLC satıcısına bağlı olacaktır. Birçoğu kodlarını özel dosya biçimlerinde saklar, bu nedenle düzenli kaynak kontrolünü kullanmayı zorlaştırır.

Allen-Bradley kullanıyorsanız Rockwell, FactoryTalk AssetCenter'ı sunar . Ben fiyat değil, ama muhtemelen pahalı. Yine de kaynak kontrolünden daha fazlasını yapar.

Beckhoff TwinCAT PLC dosyalarıyla düzenli (Mercurial) kaynak kontrolü kullandım. Bu iyi çalışıyor gibi görünüyor, ama hiç kimseyle birleşmek zorunda kalmadım. Bu yıl içinde çıkacak olan yeni TwinCAT (3) sürümünün Visual Studio 2010 üzerine inşa edilmesi gerekiyor ve sürüm kontrolü entegrasyonu için çok daha iyi hazır tekliflere sahip olacağını varsayıyorum. Parmaklar geçti.

Düzenlemeye Başla

Sadece yeni TwinCAT 3 ürününü kullandığımı ve Mercurial (TortoiseHg ve Visual Studio için VisualHg eklentisi) kullandığımı eklemek istedim. Oldukça iyi çalışıyor. Her şeyden önce VisualHg, TwinCAT 3'ün kullandığı Visual Studio 2010 IDE ile çok entegre hissettiriyor. Ancak, TwinCAT 3 programlarının kaynak kodu genellikle XML dosyalarında saklanır. Bu, kullandığım diğer satıcının tescilli ikili biçimlerine göre büyük bir gelişme, ancak yine de iyi bir şekilde birleşmiyor. Bazı dosyaların XML'de herhangi bir satır sonu yok (bu konuda Beckhoff'a yazdım), bu da satır satır kaynak kontrol sisteminin fazla bir şey yapmadığı anlamına geliyor. Ayrıca, XML olduğu için, XML dosyasındaki düğümlerin sıralaması, herhangi bir değişiklik yapmasanız bile rastgele değişiyor gibi görünüyor. Ayrıca, Bazı düğümler için bazen gerekli olmadığında yeni kimlikler oluşturduğunu düşünüyorum, bu da Hg'nin aldığı gereksiz değişiklikleri yapar. Bu, aynı anda 2 programcı tarafından bir TwinCAT 3 programında değişiklik yapmayı ve ardından değişiklikleri birleştirmeyi imkansız hale getirir. Şüphesiz kaynak işlerini düzenli olarak kendi işlerinde kullanan TwinCAT 3 geliştiricileri tarafından talihsiz bir gözetim ve düşük otomasyon programcılarının benzer güçlü araçlara erişebilmesinin avantajını görmedik. :( hiç şüphesiz kendi çalışmalarında kaynak kontrolünü düzenli olarak kullanan ve düşük otomasyon programcılarının benzer güçlü araçlara erişebilmesinin avantajını görmeyen :( hiç şüphesiz kendi çalışmalarında kaynak kontrolünü düzenli olarak kullanan ve düşük otomasyon programcılarının benzer güçlü araçlara erişebilmesinin avantajını görmeyen :(

Düzenlemeyi Sonlandır

Düzenlemeyi Başlat # 2

TwinCAT 3.1'in artık kaynak kontrolüne, özellikle de yapılandırılmış metin dili dosyalarına daha uygun dosya formatlarına sahip olduğunu belirtmek isterim. Aslında, ürünün artık Team Foundation Server ile entegrasyonu destekleyecek şekilde üretildiğine inanıyorum.

Düzenlemeyi Sonlandır # 2

Diğer alternatif, çoğu PLC programının metin dosyalarına aktarılabilmesidir. Örneğin RSLogix 5000, projelerini sadece metin olan bir L5K dosyasına aktarır. Daha önce bu dosyalara yönelik komut dosyaları çalıştırdım - ayrıştırılması oldukça kolaydır. Kaynak kontrolü ile iyi çalışırlardı. Tabii ki bu her zaman ihracat anlamına geliyor, bu berbat.

Herhangi bir standart sürüm kontrolü ile giderseniz, Git veya Mercurial gibi dağıtılmış bir VCS öneririm, çünkü PLC'lerde, yerinde olduğunuz ve ev sunucunuza bağlanamadığınız sürenin yarısı, böylece yerel taahhütleri yerine getirme yeteneği gerçek bir bonus.

Fark etmeniz gereken diğer bir şey, RSLogix gibi bazı PLC programlama ortamlarının zaten bir fark aracı içermesidir, böylece projelerinizin iki sürümüne karşı diffs'ler çalıştırabilirsiniz. Bu, her gün bugünün tarihi ile yeni bir dosya kaydetmeyle birlikte, çoğu otomasyon mağazasının uğraştığı şeydir.



@blueberryfields: evet Bunu destekleyen çoğu yazılımda otomatik kaydetme özelliğini kullandım ve evet, popomu birkaç kez kurtardı. Ancak, sürüm kontrolü olarak kullanmak iyi bir fikir değildir. Sürüm kontrolü yalnızca bir zaman damgasından daha fazlasına sahip olmalı, yazarın ve değişikliklerin bir açıklamasına sahip olmalıdır. Üst versiyon ile iki çatal arasında 3 yönlü birleştirme yapmak da mümkün olmalıdır.
Scott Whitlock

Beckhoff'un TwinCAT projeleri de metin dosyalarına aktarılabilir ve metin dosyalarına aktarılabilir. Onları bu şekilde sürüm kontrolü altına alıyoruz. ST'de yazılmış projeler için iyi çalışır. LL gibi grafik dillerini denemedim.
stmax

@stmax - Bu konuyla ilgili en son deneyimimi sunmak için yanıtı düzenledim. Dediğim gibi çalışıyor, olabildiğince iyi değil.
Scott Whitlock

Bunu 'cevap' olarak kabul ettim çünkü metin dosyalarına dışa aktarma ve SCC kullanmanın birden fazla PLC satıcısı için tek geçerli çözüm olduğu anlaşılıyor.
Steven A. Lowe

4

Mümkünse, B&R Automation'a bakın.

Tam Açıklama ... B&R Automation satış ortağı için çalışıyorum.

Modern B&R Automation projeleri, sürüm oluşturma yazılımı ile çok iyi çalışır. Şu anda GIT kullanıyorum (entegre değil), ancak yazılımda SVN ile entegrasyon olması gerekiyor. Tüm HMI kaynağı XML olarak kaydedilir ve tüm PLC dil kaynakları (merdiven dahil) ikili yerine (çoğunlukla XML de) metin olarak kaydedilir. Manuel birleştirme yapmak zorundaysanız o zaman XML bir ölçüde "anlamak" zorunda, ama ben bu kadar zor bulamadım. Ve otomatik birleştirme genellikle bunu gereksiz kılar.


3

Sadece bu soruyu gördüm ve aslında tüm yerlerin GE-IP'sinden konserve bir çözüm var. Kontrol edin Proficy Change Management. Bu ürün, dosyaların bakış açısından saf bir sürüm kontrolü yerine PLC kontrol sistemleri açısından sürüm kontrolü yapar - bir VCS'nin üstünde oturan bir katman olarak çalışır (korkunç kısım aslında bu VCS'nin Visual SourceSafe olduğu) ve hak yönetimi, raporlama ve ödeme / iade işlemlerini yönetir.

Ürün GE-IP'deyken, kutudan çıkan çeşitli PLC ve HMI sistemlerini desteklemek üzere tasarlanmıştır.

Tam açıklama, PCM satan ve yükleyen bir şirkette çalıştım (7 yıl önceydi). Bana bunun nasıl bir şey olduğunu sorarsanız, muhtemelen her şeyin nerede yanlış gittiğini söyleyeceğim!


1

Bu kadar korkutucu, bir durumda merdiven mantığı yazılımının "PDF'ye Yazdır" özelliğini (bu durumda Horner'ın CScape'iydi) ve daha sonra değişiklikleri karşılaştırmak için ücretsiz bir grafik PDF fark programı (örn. DiffPDF ) kullandım. kaynak kodu yalnızca tescilli, ikili biçimde mevcuttu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.