Czy istnieją realistyczne / przydatne rozwiązania dla kontroli źródła dla programów logiki drabinkowej


17

Kontrola wersji programów drabinkowych (LL) dla programowalnych sterowników logicznych (PLC) wydaje się praktycznie nie istnieć. Może to wynikać z tego, że LL jest językiem wizualnym i zwykle jest przechowywany w plikach binarnych, lub może być tak, ponieważ kontrola kodu źródłowego nie „złapała” się w kręgach inżynierii kontroli procesu - a może moja Google-Fu jest dziś słaba.

Czy znasz jakieś realistyczne i przydatne rozwiązania do kontroli wersji dla takich systemów?

Definicje:

  • realistyczne = zmiany w programach są śledzone przez użytkownika i podlegają wycofaniu i scaleniu
  • przydatne = system integruje się z projektantami wizualnymi LL, nie ogranicza się do LL jednego producenta PLC i nie kosztuje absurdalnej kwoty?

Uwaga: Słyszałem o ludziach używających SVN lub Mercurial i in. Do śledzenia plików binarnych, ale nie sądzę, aby możliwości różnic / scalania wyświetlałyby czytelne różnice.

UZUPEŁNIENIE:

Na początku musieliśmy wspierać tylko sterowniki PLC Allen-Bradley. Teraz mamy również sterowniki PLC Siemens i MicroLogix. Wciąż szukam realnego rozwiązania ...


1
To pytanie może być dla Ciebie istotne: stackoverflow.com/questions/4216619/plc-version-control
blueberryfields

Cześć @Stevenalowe, czy były jakieś zmiany w tym temacie?
Montag451,

@EnmosProje: nie jestem tego świadomy, przepraszam!
Steven A. Lowe,

Odpowiedzi:


13

Niestety odpowiedź zależy od dostawcy PLC, którego używasz. Większość z nich przechowuje kod w zastrzeżonych formatach plików, więc utrudnia korzystanie ze zwykłej kontroli źródła.

Rockwell oferuje FactoryTalk AssetCenter, jeśli korzystasz z Allen-Bradley. Nie wyceniłem go, ale prawdopodobnie jest drogi. Ale to coś więcej niż kontrola źródła.

Używałem regularnej kontroli źródła (Mercurial) z plikami PLC Beckhoff TwinCAT. To wydaje się działać dobrze, ale nigdy nie musiałem się z nikim łączyć. Ich nowa wersja TwinCAT (3), która pojawi się pod koniec tego roku, ma zostać zbudowana na Visual Studio 2010 i zakładam, że będzie miała znacznie lepsze gotowe produkty do integracji z kontrolą wersji. Skrzyżowane palce.

Rozpocznij edycję

Chciałem tylko dodać, że korzystałem teraz z nowego produktu TwinCAT 3 i używam Mercurial (TortoiseHg i dodatek VisualHg dla Visual Studio). Działa całkiem dobrze. Przede wszystkim VisualHg sprawia, że ​​czuje się bardzo zintegrowany z IDE Visual Studio 2010, którego używa TwinCAT 3. Jednak kod źródłowy programów TwinCAT 3 jest zwykle przechowywany w plikach XML. Jest to znaczna poprawa w stosunku do zastrzeżonych formatów binarnych innych dostawców, których użyłem, ale nadal nie łączy się dobrze. Niektóre pliki nie mają żadnych podziałów wiersza w pliku XML (napisałem o tym Beckhoffowi), co oznacza, że ​​system kontroli źródła linia po linii nie robi wiele. Ponadto, ponieważ jest to XML, kolejność węzłów w pliku XML wydaje się zmieniać losowo, nawet jeśli nie wprowadzasz żadnych zmian. Również, Myślę, że czasami generuje nowe identyfikatory dla niektórych węzłów, gdy nie musi, co powoduje zbędne zmiany, które Hg odbiera. To skutecznie uniemożliwia dokonywanie zmian w programie TwinCAT 3 przez 2 programistów jednocześnie, a następnie scalanie zmian. Jest to niefortunne niedopatrzenie ze strony programistów TwinCAT 3, którzy niewątpliwie regularnie używają kontroli źródła w swojej pracy i nie dostrzegli dla nas, dla programistów o małej automatyzacji, korzyści z dostępu do podobnie potężnych narzędzi. :( którzy bez wątpienia używają kontroli źródła regularnie we własnej pracy, i nie dostrzegli dla nas programistów małej automatyzacji korzyści z dostępu do podobnie potężnych narzędzi. :( którzy bez wątpienia używają kontroli źródła regularnie we własnej pracy, i nie dostrzegli dla nas programistów małej automatyzacji korzyści z dostępu do podobnie potężnych narzędzi. :(

Zakończ edycję

Rozpocznij edycję # 2

Chciałbym zwrócić uwagę, że TwinCAT 3.1 ma teraz formaty plików, które lepiej nadają się do kontroli źródła, szczególnie strukturalne pliki tekstowe. W rzeczywistości produkt jest teraz zbudowany, aby wspierać integrację z Team Foundation Server.

Zakończ edycję # 2

Inną alternatywą jest to, że większość programów PLC można eksportować do plików tekstowych. Na przykład RSLogix 5000 eksportuje swoje projekty do pliku L5K, który jest tylko tekstem. Wcześniej uruchamiałem skrypty przeciwko tym plikom - są one dość łatwe do przeanalizowania. Działałyby dobrze z kontrolą źródła. Oczywiście oznacza to eksport za każdym razem, co jest do kitu.

Jeśli zdecydujesz się na jakąkolwiek standardową kontrolę wersji, wysoce sugeruję rozproszony VCS, taki jak Git lub Mercurial, ponieważ w przypadku sterowników PLC połowę czasu jesteś na miejscu i nie możesz połączyć się z serwerem domowym, więc możliwość wykonywania lokalnych zatwierdzeń to prawdziwy bonus.

Inną rzeczą, którą musisz zdać sobie sprawę, jest to, że niektóre środowiska programistyczne PLC, takie jak RSLogix, zawierają już narzędzie do różnicowania, dzięki czemu możesz uruchamiać różnice względem dwóch wersji swoich projektów. W połączeniu z codziennym zapisywaniem nowego pliku z dzisiejszą datą wydaje się, że większość sklepów z automatyką radzi sobie z tym.


Czy kiedykolwiek korzystałeś z Autosave? wingtipllc.com/products/autosave-plc-version-control/...
blueberryfields

@blueberryfields: tak, korzystałem z funkcji automatycznego zapisywania w większości programów, które ją obsługują, i tak, kilka razy zapisałem mój tyłek. Jednak użycie go jako kontroli wersji nie jest dobrym pomysłem. Kontrola wersji powinna mieć więcej niż tylko znacznik czasu, powinna zawierać autora i opis zmian. Powinno być również możliwe wykonanie 3-kierunkowego scalenia między wersją nadrzędną a dwoma widelcami.
Scott Whitlock,

Projekty TwinCAT firmy Beckhoff można również eksportować i importować do / z plików tekstowych. W ten sposób poddajemy je kontroli wersji. Działa dobrze dla projektów napisanych w ST. Nie próbowałem jednak z takimi językami graficznymi jak LL.
stmax

@stmax - Właśnie zredagowałem odpowiedź, aby zapewnić moje najnowsze doświadczenia z nią. Jak powiedziałem, działa, ale nie tak dobrze, jak mogłoby.
Scott Whitlock,

Zaakceptowałem to jako „odpowiedź”, ponieważ wydaje się, że eksport do plików tekstowych i użycie SCC jest jedynym realnym rozwiązaniem dla wielu dostawców PLC.
Steven A. Lowe

4

Jeśli możesz, spójrz na B&R Automation.

Pełne ujawnienie ... Pracuję dla partnera handlowego B&R Automation.

Nowoczesne projekty B&R Automation działają bardzo dobrze z oprogramowaniem do wersjonowania. Obecnie używam GIT (który nie jest zintegrowany), chociaż w oprogramowaniu powinna istnieć integracja ze SVN. Całe źródło HMI jest zapisywane jako XML, a wszystkie źródła języka PLC (w tym drabina) są zapisywane tekstowo zamiast binarnie (głównie XML). Jeśli musisz wykonać ręczne scalanie, musisz w pewnym stopniu „rozgryźć” XML, ale nie było to dla mnie trudne. A automatyczne scalanie zwykle czyni to i tak niepotrzebnym.


3

Właśnie widziałem to pytanie, a tak naprawdę istnieje rozwiązanie w puszce - z GE-IP wszystkich miejsc. Sprawdź Proficy Change Management. Ten produkt wykonuje kontrolę wersji z punktu widzenia systemów sterowania PLC, a nie czystą kontrolę wersji plików z punktu widzenia - działa jak warstwa osadzona na VCS (przerażające jest to, że pierwotnie ten VCS był Visual SourceSafe) i zajmuje się zarządzaniem prawami, raportowaniem i kasą / odprawą.

Chociaż produkt pochodzi z GE-IP, został zaprojektowany do obsługi różnych systemów PLC i HMI po wyjęciu z pudełka.

Pełne ujawnienie, użyłem do pracy w firmie sprzedającej i instalującej PCM (ale było to 7 lat temu). Więc jeśli zapytasz mnie, jak to było wtedy, prawdopodobnie powiem ci, gdzie wszystko poszło nie tak!


1

Choć to brzmi przerażająco, w jednym przypadku skorzystałem z funkcji „Drukuj do PDF” oprogramowania logiki drabinkowej (w tym przypadku był to CScape Hornera), a następnie darmowego programu do graficznego różnicowania plików PDF (np. DiffPDF ), aby porównać zmiany, ponieważ kod źródłowy był dostępny tylko w zastrzeżonym formacie binarnym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.