Gibt es realistische / nützliche Lösungen für die Quellcodeverwaltung in Kontaktplanprogrammen?

17

Die Versionskontrolle für Kontaktplanprogramme für speicherprogrammierbare Steuerungen (SPS) scheint praktisch nicht zu existieren. Dies kann daran liegen, dass LL eine visuelle Sprache ist und in der Regel in Binärdateien gespeichert wird, oder daran, dass sich die Quellcodeverwaltung in technischen Kreisen der Prozesssteuerung nicht durchgesetzt hat - oder dass mein Google-Fu heute Abend schwach ist.

Kennen Sie realistische und nützliche Lösungen für die Versionskontrolle solcher Systeme?

Definitionen:

  • realistisch = Änderungen an den Programmen werden vom Benutzer verfolgt und können rückgängig gemacht und zusammengeführt werden
  • nützlich = das System lässt sich in visuelle LL-Designer integrieren, ist nicht auf LL von einem einzelnen SPS-Hersteller beschränkt und kostet nicht lächerlich viel Geld?

Hinweis: Ich habe von Leuten gehört, die SVN oder Mercurial et al. Verwenden, um die Binärdateien zu verfolgen, aber ich glaube nicht, dass die Funktionen zum Vergleichen / Zusammenführen lesbare Unterschiede aufweisen würden.

NACHTRAG:

Zunächst mussten wir nur Allen-Bradley-SPSen unterstützen. Jetzt haben wir auch Siemens- und MicroLogix-Steuerungen. Immer noch auf der Suche nach einer tragfähigen Lösung ...

Steven A. Lowe
quelle
1
Diese Frage kann für Sie relevant sein: stackoverflow.com/questions/4216619/plc-version-control
blueberryfields
Hallo @Stevenalowe, gab es irgendwelche Entwicklungen zu diesem Thema?
Montag,
@EnmosProje: nicht das mir das bewusst ist, sorry!
Steven A. Lowe

Antworten:

13

Leider hängt die Antwort vom SPS-Hersteller ab, den Sie verwenden. Die meisten von ihnen speichern ihren Code in proprietären Dateiformaten, so dass es schwierig ist, die reguläre Quellcodeverwaltung zu verwenden.

Rockwell bietet FactoryTalk AssetCenter an, wenn Sie Allen-Bradley verwenden. Ich habe es nicht festgesetzt, aber es ist wahrscheinlich teuer. Es kann jedoch mehr als nur die Quellcodeverwaltung.

Ich habe die normale (Mercurial) Quellcodeverwaltung mit Beckhoff TwinCAT PLC-Dateien verwendet. Das scheint in Ordnung zu sein, aber ich musste mich nie mit jemandem zusammenschließen. Die neue Version von TwinCAT (3), die später in diesem Jahr herauskommt, soll auf Visual Studio 2010 aufbauen, und ich gehe davon aus, dass es viel bessere sofort einsatzbereite Angebote für die Versionskontrollintegration geben wird. Daumen drücken.

Starten Sie Bearbeiten

Ich wollte nur hinzufügen, dass ich jetzt das neue TwinCAT 3-Produkt verwendet habe und Mercurial (TortoiseHg und das VisualHg-Add-In für Visual Studio) verwende. Es funktioniert ziemlich gut. Zunächst fühlt sich VisualHg sehr gut in die von TwinCAT 3 verwendete Visual Studio 2010-IDE integriert an. Der Quellcode für TwinCAT 3-Programme wird jedoch in der Regel in XML-Dateien gespeichert. Dies ist eine enorme Verbesserung gegenüber den proprietären Binärformaten anderer Hersteller, die ich verwendet habe, aber sie lassen sich immer noch nicht gut zusammenführen. Einige der Dateien haben keine Zeilenumbrüche im XML (ich habe Beckhoff darüber geschrieben), was bedeutet, dass ein zeilenweises Quellcodeverwaltungssystem nicht viel bewirkt. Da es sich um XML handelt, scheint sich die Reihenfolge der Knoten in der XML-Datei auch dann zufällig zu ändern, wenn Sie keine Änderungen vornehmen. Ebenfalls, Ich denke, es generiert manchmal neue IDs für einige Knoten, wenn dies nicht erforderlich ist, was zu überflüssigen Änderungen führt, die Hg aufnimmt. Dies macht es effektiv unmöglich, Änderungen an einem TwinCAT 3-Programm von 2 Programmierern gleichzeitig vorzunehmen und die Änderungen dann zusammenzuführen. Es ist ein bedauerliches Versehen der TwinCAT 3-Entwickler, die die Quellcodeverwaltung zweifellos regelmäßig in ihrer eigenen Arbeit einsetzen und nicht den Vorteil sahen, dass wir Programmierer mit geringer Automatisierung auf ähnlich leistungsfähige Tools zugreifen können. :( die die Quellcodeverwaltung zweifellos regelmäßig in ihrer eigenen Arbeit einsetzen und nicht den Vorteil für uns Programmierer mit geringer Automatisierung sahen, Zugang zu ähnlich leistungsfähigen Tools zu haben. :( die die Quellcodeverwaltung zweifellos regelmäßig in ihrer eigenen Arbeit einsetzen und nicht den Vorteil für uns Programmierer mit geringer Automatisierung sahen, Zugang zu ähnlich leistungsfähigen Tools zu haben. :(

Bearbeiten beenden

Starten Sie Edit # 2

Ich möchte darauf hinweisen, dass TwinCAT 3.1 nun über Dateiformate verfügt, die besser für die Quellcodeverwaltung geeignet sind, insbesondere die strukturierten Textsprachendateien. Tatsächlich ist das Produkt jetzt so konzipiert, dass es die Integration in Team Foundation Server unterstützt, glaube ich.

Bearbeiten # 2 beenden

Die andere Alternative ist, dass die meisten SPS-Programme in Textdateien exportiert werden können. Beispielsweise exportiert RSLogix 5000 seine Projekte in eine L5K-Datei, die nur aus Text besteht. Ich habe bereits Skripte für diese Dateien ausgeführt - sie sind relativ einfach zu analysieren. Sie würden gut mit der Quellcodeverwaltung funktionieren. Das bedeutet natürlich, jedes Mal zu exportieren, was scheiße ist.

Wenn Sie mit einer Standard-Versionskontrolle arbeiten, empfehle ich dringend ein verteiltes VCS wie Git oder Mercurial, da Sie bei SPSen die Hälfte der Zeit vor Ort sind und keine Verbindung zu Ihrem Heimserver herstellen können, sodass Sie lokale Festschreibungen vornehmen können ist ein echter Bonus.

Außerdem müssen Sie feststellen, dass einige SPS-Programmierumgebungen wie RSLogix bereits ein Diff-Tool enthalten, mit dem Sie Diffs für zwei Versionen Ihrer Projekte ausführen können. In Verbindung mit dem täglichen Speichern einer neuen Datei mit dem heutigen Datum scheinen die meisten Automatisierungsgeschäfte damit auszukommen.

Scott Whitlock
quelle
Haben Sie jemals Autosave verwendet? wingtipllc.com/products/autosave-plc-version-control/...
blueberryfields
@blueberryfields: Ja, ich habe die Autosave-Funktion bei den meisten Programmen verwendet, die sie unterstützen, und ja, sie hat meinen Hintern ein paar Mal gerettet. Es ist jedoch keine gute Idee, es als Versionskontrolle zu verwenden. Die Versionskontrolle sollte mehr als nur einen Zeitstempel, einen Autor und eine Beschreibung der Änderungen enthalten. Es sollte auch möglich sein, eine 3-Wege-Zusammenführung zwischen einer übergeordneten Version und zwei Gabeln durchzuführen.
Scott Whitlock
Die TwinCAT-Projekte von Beckhoff können auch in / aus Textdateien exportiert und importiert werden. So stellen wir sie unter Versionskontrolle. Funktioniert gut für Projekte in ST. Habe es aber nicht mit Grafiksprachen wie LL versucht.
stmax
@stmax - Ich habe gerade die Antwort bearbeitet, um meine neuesten Erfahrungen damit zu machen. Wie gesagt, es funktioniert einfach nicht so gut wie es könnte.
Scott Whitlock
Ich akzeptierte dies als "die Antwort", da es den Anschein hat, dass das Exportieren in Textdateien und die Verwendung von SCC die einzige praktikable Lösung für mehrere SPS-Anbieter ist.
Steven A. Lowe
4

Wenn Sie können, schauen Sie sich B & R Automation an.

Vollständige Offenlegung ... Ich arbeite für einen Vertriebspartner von B & R Automation.

Moderne B & R Automation Projekte funktionieren sehr gut mit Versionssoftware. Ich verwende derzeit GIT (das nicht integriert ist), obwohl es eine Integration mit SVN in der Software geben soll. Die gesamte HMI-Quelle wird als XML gespeichert, und alle ihre SPS-Sprachquellen (einschließlich Kontaktplan) werden textbasiert anstatt binär (meistens auch XML) gespeichert. Wenn Sie manuelle Zusammenführungen durchführen müssen, müssen Sie das XML bis zu einem gewissen Grad "herausfinden", aber ich fand es nicht so schwierig. Und die automatische Zusammenführung macht dies normalerweise sowieso unnötig.

Paul
quelle
3

Ich habe diese Frage gerade erst gesehen und es gibt tatsächlich eine Dosenlösung - ausgerechnet von GE-IP. Auschecken Proficy Change Management. Dieses Produkt führt die Versionskontrolle aus Sicht eines SPS-Steuerungssystems durch und nicht aus Sicht einer reinen Versionskontrolle von Dateien. Es fungiert als Ebene auf einem VCS (der beängstigende Teil ist, dass dieses VCS ursprünglich Visual SourceSafe war). und kümmert sich um Rechteverwaltung, Berichterstellung und Check-out / Check-in.

Obwohl das Produkt von GE-IP stammt, ist es für die sofortige Unterstützung einer Vielzahl von SPS- und HMI-Systemen ausgelegt.

Vollständige Offenlegung, ich arbeitete für eine Firma, die PCM verkaufte und installierte (aber das war vor 7 Jahren). Wenn Sie mich also fragen, wie es damals war, werde ich Ihnen wahrscheinlich sagen, wo alles schief gelaufen ist!

Peter M
quelle
1

So schrecklich das auch klingt, in einem Fall habe ich die Funktion "Print to PDF" der Kontaktplan-Software (in diesem Fall Horner's CScape) und dann ein kostenloses grafisches PDF-Differenzierungsprogramm (z. B. DiffPDF ) verwendet, um Änderungen zu vergleichen, weil Der Quellcode war nur in einem proprietären, binären Format verfügbar.

iX3
quelle