CODESYS Bibliothek versionierung

Rici

Level-2
Beiträge
128
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo in die Runde,

ich möchte mit CODESYS eine Bibliothek erstellen mit unterschiedlichen Versionsständen.
So, dass man im CODESYS-Projekt die Version aussuchen kann welche man verwenden möchte.

Ich habe bestimmt schon 2h danach gegoogelt, finde jedoch nichts.

Danke schon mal für die Hilfe.
 
Sorry, das wichtigste vergessen.
CODESYS 3.5

Habe gestern noch weitergemacht.
Ich habe die Möglichkeit in der Bibliothek die Version zu vergeben. Diese kann ich auch im Projekt bzw. Bibliotheksverwalter sehen.
Aber eben nur die eine Version. Ich habe momentan keinen Ansatz wo/wie ich unterschiedliche Versionen parallel fahren kann.

Überhaupt habe ich noch kein Gefühl für Konzept Bibliothek: mehrere Rechner, verschiedene Versionen, tatsächliche Speicherorte.

Kennt jemand eine Quelle wo man sich über die Bibliothek schlau machen kann. Ich habe gefühlt alle YouTube Videos durch.
Gegoogelt habe ich nicht wirklich viel.

oliver.tonn danke für den Link aber aus der Hilfe werde ich leider nicht schlau.
 
Sorry, das wichtigste vergessen.
CODESYS 3.5

Habe gestern noch weitergemacht.
Ich habe die Möglichkeit in der Bibliothek die Version zu vergeben. Diese kann ich auch im Projekt bzw. Bibliotheksverwalter sehen.
Aber eben nur die eine Version. Ich habe momentan keinen Ansatz wo/wie ich unterschiedliche Versionen parallel fahren kann.

Überhaupt habe ich noch kein Gefühl für Konzept Bibliothek: mehrere Rechner, verschiedene Versionen, tatsächliche Speicherorte.

Kennt jemand eine Quelle wo man sich über die Bibliothek schlau machen kann. Ich habe gefühlt alle YouTube Videos durch.
Gegoogelt habe ich nicht wirklich viel.

oliver.tonn danke für den Link aber aus der Hilfe werde ich leider nicht schlau.
Ist aber eigentlich nicht so schwer. Du kannst über das Bibliotheksrepository mehrere Versionen einer Bibliothek installieren. Ich habe im Moment leider "nur" TwinCAT 3 verfügbar, aber in Codesys sollte es ähnlich sein, da TC 3 auf Codesys basiert.
Hier mal ein Beispiel, wie das aussieht:
Repository.png
Dann wählst Du im Bibliotheksverwalter Platzhalter/Placeholder aus.
Bibliotheksverwalter.png
Im nächsten Fenster dann einen Doppelklick auf die gewünschte Bibliothek und im sich dann öffnenden Fenster die gewünschte Version auswählen.
Platzhalter01.png
Platzhalter02.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Oliver.tonn!
Es hat geklappt!
Ich nutze übrigens den IEC-Editor von SEW aber der Unterschied zu CODESYS ist minimal.

Vielleicht bist du bzw. jemand anders so nett und kann mit bei den folgenden Fragen ebenfalls helfen.

Im Anhang ist eine Tabelle welche die Bibliothek so aufzeigt wie ich diese Verstehe.
Bei folgendem bin ich mir jedoch unsicher bzw. verstehe es nicht:

1- Kann man die Tabelle aus dem Anhang verstehen?
a- Ist diese soweit korrekt?
2- Die Version in der Bibliothek wird manuell und nur für die ganze Bibliothek erstellt. Richtig?
a- Versionieren einzelner Bausteine ist nicht möglich.Richtig?
3- Repository installiert die Bibliothek auf dem Rechner, was soll das heißen?
a- Wird hier das Format verändert, oder Speicherort verändert?
b- kann die Repository auf dem Server die Installation machen? So dass jeder Mitarbeiter beim öffnen des Projekts sich diesen Arbeitsschritt ersparen kann.
4- Wenn ein älterer Versionsstand noch mal bearbeitet weren soll, warum auch immer. Wo findet man diesen? In der Bibliothek ist der aktuell nicht. An anderer Stelle kann dieser nicht bearbeitet werden.
5- Es ist gewünscht zu jeder ausgelieferten Anlage das Projekt zu sichern. Würde hier das Projekt ausreichen? Oder müsste man noch die Bibliothek irgendwie sichern mit dem aktuellem Versionsstand.
6- Die Bibliothek wird das erste Mal in das Projekt quasi eingebunden. Danach greift das Projekt immer auf die Bibliothek und aktualisiert die aus der Bibliothek genutzten Bausteine. ist es möglich dies zu unterbinden?
a-Dies heißt für mich, sollte der in dem Projekt aus der Bibliothek genutzter Baustein in der Bibliothek verändert werden, so wäre das Projekt unterschiedlich zu der PLC. Richtig?
7. Ist es möglich mit der F1 Taste die Beschreibung des Bausteins so anzeigen zu lassen, wie diese in der Bibliotheksverwalteransicht dargestellt wird?

Wie man sieht fehlt mir noch das große ganze.
 

Anhänge

  • Global.PNG
    Global.PNG
    12,1 KB · Aufrufe: 16
Zuletzt bearbeitet:
Ich verwende CS3.5 ein bisschen, also nicht wirklich ein Profi

versuche mal grob ein paar deiner Aussagen zu kommentieren:
1 und 2 schauen korrekt aus
2a Bausteine kann man nur wie beim alten CS 2.3 versionieren , also eigens Versionsnummer in den Namen rein.
alte Versionen der Bibliothek müssen auch so mit Dateinamen abgespeichert werden um alten Stand zu sichern , das Wiedereinbinden ist dann aber mit viel manueller Arbeit verbunden
Warum willst du alte Versionen verändern ? das würde dann ja Versionierung stören ..
5 zum absichern der installierten Bibliotheken mit dem Projekt : Projektarchiv speichern
6 Nein die Bibliothek wird eben ins CS eingebunden und hängt damit in deinem CS3.5 nicht im Projekt, fürs Projekt wird sie im Bibliotheksverwalter fürs Projekt auch eingebunden (Repository CS => System , Verwalter => Projekt)
Vor allem , dass alte Versionen im nachhinein verändert werden sollen ... ins Buch das beim Verlag gedruckt wurde schreibt man auch nix mehr rein, wenn dann gibts ne neue Auflage. Also wird bei deinem Wunsch keine Bibliothek mehr benutzt sondern projektgebunden Bausteine
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
1- Kann man die Tabelle aus dem Anhang verstehen?
a- Ist diese soweit korrekt?
Nein
in der Bibliotheksrepository werden beide Versionen gehalten.
in den Bibliotheksmanager wird dann eine von beiden geladen und kann im Projekt benutzt werden. Sollen beide geladen werden muss der Namensraum unterschiedlich definiert werden.
2- Die Version in der Bibliothek wird manuell und nur für die ganze Bibliothek erstellt. Richtig?
a- Versionieren einzelner Bausteine ist nicht möglich.Richtig?
Richtig.
3- Repository installiert die Bibliothek auf dem Rechner, was soll das heißen?
Eine neue Bibliothek wird unter einem neuen Verzeichnis installiert.
Zum Server kann ich nichts sagen.
4- Wenn ein älterer Versionsstand noch mal bearbeitet weren soll, warum auch immer. Wo findet man diesen? In der Bibliothek ist der aktuell nicht. An anderer Stelle kann dieser nicht bearbeitet werden.
Normalerweise wird eine Bibliothek ja als kompilierte Version verteilt. Hier ist eine Bearbeitung nicht möglich. Nur der Quellenbesitzer kann Änderungen machen.
5- Es ist gewünscht zu jeder ausgelieferten Anlage das Projekt zu sichern. Würde hier das Projekt ausreichen? Oder müsste man noch die Bibliothek irgendwie sichern mit dem aktuellem Versionsstand.
Die Bibliothek muss mitgesichert werden.
6- Die Bibliothek wird das erste Mal in das Projekt quasi eingebunden. Danach greift das Projekt immer auf die Bibliothek und aktualisiert die aus der Bibliothek genutzten Bausteine. ist es möglich dies zu unterbinden?
a-Dies heißt für mich, sollte der in dem Projekt aus der Bibliothek genutzter Baustein in der Bibliothek verändert werden, so wäre das Projekt unterschiedlich zu der PLC. Richtig?
Welche Version einer Bibliothek verwendet werden soll kann man im Projekt einstellen. Die Gefahr dabei ist, wenn Codesys das Projekt läd und es wird festgestellt das es mehrere Versionen einer Bibliothek gibt, kann man mit einem einzigen Click alle auf Neueste setzen. Man muss also wissen was man tut.
7. Ist es möglich mit der F1 Taste die Beschreibung des Bausteins so anzeigen zu lassen, wie diese in der Bibliotheksverwalteransicht dargestellt wird?
Es lassen sich Bausteinbeschreibungen in der Bibliothek mit ablegen. Über F1 kommst du ja in die Hilfe und nicht in die Bibliotheken.
 
Eine Bibliothek wird ja durch 4 Ziffern versioniert.
Bei uns hat sich folgender Standard entwickelt.
Bibliothek a.b.c.d
d - es wurden "Schönheitsfehler" geändert - keine Funktionale Änderung
c - es wurden Fehler beseitigt - evtl. Änderungen in der Funktion
b - es wurden Bausteine hinzugefügt - Abwärtskompatibilität ist aber vorhanden
a - es wurden Bausteine und / oder Abhängigkeiten verändert. - evtl. keine Abwärtskompatibilität
 
Danke idtell, Danke holgermaik,

ich setze mich damit jetzt auseinander und so langsam wird es klar.
Danke auch, dass hier nicht unbedingt ja und nein kamen sondern mehr, bzw. wie ihr es handhabt.

folgendes noch

4- Wenn ein älterer Versionsstand noch mal bearbeitet werden soll, warum auch immer. Wo findet man diesen? In der Bibliothek ist der aktuell nicht. An anderer Stelle kann dieser nicht bearbeitet werden.

Gedankengang: man ist an einer alten Anlage welche mit einer alten Version ausgeliefert worden ist. Nun möchte der Kunde hier eine Sonderfunktion haben. Halt nur an dieser Anlage. Also nimmt man sich aus der Bibliothek diese alte Version. Importiert den Baustein ins Projekt und verändert diese. Dazu muss die alte Version natürlich irgendwo vorhanden sein.

„Nur der Quellenbesitzer kann Änderungen machen.“ holgermaik


Es existieren also alle Versionen in der Bibliothek? Und man kann eine beliebige öffnen?

In meiner Test-Bibliothek hatte ich unter "Projektinformationen" die Version Verstellt. Im Bibliotheksverwalter kann ich daraufhin nun eine Version aussuchen. In der Bibliothek selbs sehe ich aber nur noch den geänderten Code. Wie kommt man an den alten ran?



6-
"Welche Version einer Bibliothek verwendet werden soll kann man im Projekt einstellen. Die Gefahr dabei ist, wenn Codesys das Projekt läd und es wird festgestellt das es mehrere Versionen einer Bibliothek gibt, kann man mit einem einzigen Click alle auf Neueste setzen. Man muss also wissen was man tut." holgermaik

Im Bibliotheksverwalter kann man einstellen wie die Version gehandhabt wird "Exakte Version" "Immer neueste Version"
Ist diese Einstellung an das Projekt gebunden oder an den Engeneering-PC ?
BZW. kommt die Abfrauge auch wenn die EInstellung auf "Exakte Version" steht?


8- Beim extrahieren von einem Projektarchiv, wird das Projekt, sowie die darin befindlichen Bibliotheken geöffnet. Was würde passieren wenn in Codesys sich eine Bibliothek mit dem gleichem Namen und Version befindet. In der Codesys Bibliothek aber ein geänderter Code ist. (also eigentlich Pfusch).
Wie verhält sich hier das CODESYS?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
4- Wenn ein älterer Versionsstand noch mal bearbeitet werden soll, warum auch immer. Wo findet man diesen? In der Bibliothek ist der aktuell nicht. An anderer Stelle kann dieser nicht bearbeitet werden.

C:\ProgramData\CODESYS\Managed Libraries ist der Speicherort wo man eventuell die .lib findet , die ist aber dann nicht mehr bearbeitbar. Also kann nur die von dir ursprünglich erstellte xydeinelib.lib in deinem Libverzeichnis\deinelib\xydeinelib.lib bearbeitet und aktualisiert werden. Sofern du davon nicht deine eigenes Versionierungstool (z.B. git) hast kommts du an alte Versionen(z.B. gelöschte POUs) meines Wissens nicht mehr dran.
Nun möchte der Kunde hier eine Sonderfunktion haben. Halt nur an dieser Anlage. Also nimmt man sich aus der Bibliothek diese alte Version. Importiert den Baustein ins Projekt und verändert diese. Dazu muss die alte Version natürlich irgendwo vorhanden sein.

wenn das mal vorhanden ist (eigenes Versionierungswerkzeug) kann man den Baustein neu einfügen ... auf Baustelle an der lib basteln finde ich aber nicht so toll, dort rühre ich nur Bausteine im Projekt an. Wenn z.B. meine Transporterkennung nicht richtig funktioniert wird daraus ein Baustein im Projekt Transporterkennung_Kundex(danach kann man immer noch im Büro entscheiden eine 2. allgemeingültige in die lib zu machen).
 
Meiner Meinung nach sollte eine Bibliothek nicht Quelloffen verbreitet werden. Das führt dazu das jeder Änderungen darin vornehmen kann und das Chaos ist perfekt.
Wenn du für ein ganz bestimmtes Projekt (und nur da) eine Erweiterung brauchst nimmst du den Baustein aus der Bibliothek und erzeugst dir eine Ableitung. Die kannst du dann nach Herzenslust erweitern.
Es existieren also alle Versionen in der Bibliothek? Und man kann eine beliebige öffnen?
Nein.
Es existiert nur die letzte Version in der Bibliothek.
Normalerweise wird eine Bibliothek erstellt und veröffentlicht. Anschließend ein Backup und nicht mehr anfassen.
Für eine Erweiterung nimmst du das Backup, machst deine Änderung, Versionsnummer anpassen -> veröffentlichen -> Backup. usw.
Ist diese Einstellung an das Projekt gebunden oder an den Engeneering-PC ?
ist eine Projekteinstellung
Was würde passieren wenn in Codesys sich eine Bibliothek mit dem gleichem Namen und Version befindet. In der Codesys Bibliothek aber ein geänderter Code ist. (also eigentlich Pfusch).
Wie verhält sich hier das CODESYS?
Codesys fragt dich ob die Bibliothek ersetzt werden soll.

Mal ein Beispiel
Ein Addierer mit 2 Eingängen - Name Add_2 in der Bibliothek
jetzt brauchst du einen Addierer mit 3 Eingängen
Frage - brauche ich in nur dieses eine mal oder öfter?
einmalig -> dann eine Ableitung von Add_2 machen und einen weiteren Eingang hinzufügen im Projekt.
öfters -> einen neuen Baustein in der Bibliothek erstellen Add_3. Ziffer b hochzählen und veröffentlichen -> Backup
 
Das führt dazu das jeder Änderungen darin vornehmen
Bibliotheken sollen ja allgemeingültige Sachen festlegen und benutzbar machen. Zu festlegen gehört eben das nicht jeder dran rumstopselt nur weil er mal testweise einen Tag bei euch in der Firma arbeitet und alles besser weiß.
Dazu zählen auch Kunden die einen Ablauf unbedingt anders als bewährt durchführen wollen.
 
sry, zum archivieren und wiedereinbinden : natürlich bin ich mir bewusst, dass sowas eher als Notlösung gesehen werden muss , aber als 2. Teil eines Projektbackups und letzte Möglichkeit, nicht alles neuzumachen ... danach gehts ans Wiederherstellen der aktuelleren Bibliotheken und Zurückeinrichten deines CS3.5 aber man steht halt nie komplett mit leeren Händen da. Egal wiesehr man bei diesem alten Projekt eventuell geschlampt hat. Abhilfe: natürlich nicht schlampen ... aber ich höre halt auch, hie und da ( im Eifer des Gefechts ) nicht auf mich 😔. Ich denke/hoffe ich bin nicht der einzige Sünder
 
Da das Hauptproblem die Änderung auf Baustelle ist , vielleicht hilft dir sowas anzuschauen (das erlaube ich mir auf Baustelle ).

Code:
FUNCTION_BLOCK Kundex_FB EXTENDS Namelib.namefb
VAR_INPUT
    Aktiv:BOOL;
END_VAR
VAR_OUTPUT
    Varnegiert:BOOL;
END_VAR
VAR
END_VAR
Code:
SUPER^();
IF SUPER^.changed THEN (*irgendein Triggersignal des originalbausteins*)
    IF aktiv THEN
        Varnegiert := NOT SUPER^.changed_up;(*irgendein signal des originals verändert auslesen*)
    ELSE
        Varnegiert := false;
    END_IF
END_IF

oder mit This^ lokal drüberschreiben
 
Zuletzt bearbeitet:
Danke an alle,
hat mir sehr geholfen. Hatte mich jetzt auch mit den Platzhaltern auseinandergesetzt.
Ich denke ich habe es soweit verstanden.

@Roland Wagner
Ich hatte die Hilfe mir natürlich als erstes angeguckt, wurde jedoch nicht schau daraus. Wenn ich mir diese jetzt durchlese, finde ich die gut. Aber wenn man noch kein Gefühl für das ganze hat, ist es am einfachsten mit gezielten Fragen. So geht es mir jedenfalls.

MfG
Rici
 
Zurück
Oben