TIA Typisierung Schnittstelle zwischenzeitlich geändert

Wunk

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich komme mit dieser Typisierung im TIA Portal einfach nicht klar. Mein Problem:

-Ich erstelle eine FC mit Anwenderdatentyp (UDT) in der Schnittstelle.
-Die FC lege ich in der Projektbibliothek als Typ ab, der UDT wird gleich mit typisiert und erhält seine Versionsnummer.
-In einer anderen Steuerung im Projekt möchte ich die gleiche FC benutzen, dazu ziehe ich den Typen aus der Projektbibliothek.
-Die FC lässt sich nicht übersetzen, weil sich "die Schnittstelle des Datentyps zwischenzeitlich geändert hat".

Was hat sich denn bitte geändert? Ich benutze die selbe Version der FC mit der selben Version des UDT, die in der ersten Steuerung problemlos funktioniert. In der zweiten Steuerung würde die `selbe Schnittstelle plötzlich nicht mehr passen?
Ohne Typanbindung wäre das ja kein Problem, einmal kurz "Schnittstelle aktualisieren" und alles funktioniert wieder ohne dass ich das Programm anpassen muss. Da die FC aber am Typ hängt, müsste ich diesen erst auf "in Bearbeitung" setzen dass ich das machen darf, und den völlig unveränderten Baustein dann wieder mit einer neuen Versionsnummer freigeben.
Ich will doch nicht mehrere Versionsstände des gleichen FC Bausteins in meiner Projektbibliothek haben. Ich möchte genau einen, und wenn ich mal ne Änderung habe diese über den Typen auf alle Instanzen drüberbügeln können. Dachte genau das wäre einer der Zwecke wofür es die Typisierung überhaupt gibt.
Mit Bildbausteinen hatte ich schon das gleiche Problem, die selben UDTs mit der selben Versionsnummer passen plötzlich nicht mehr zusammen. Ich hab mir nicht anders zu helfen gewusst als die Verbindung zum Typ aufzuheben dass es zumindest mal funktioniert. Aber eine Lösung ist das ja nun nicht :(

Kann mir irgendjemand erklären was ich hier falsch mache oder wie ich das Problem umgehen kann?
 
Ich habe die FC als Typ in die Projektbibliothek gezogen und die zugehörigen UDTs wurden mitgenommen. Wenn ich den FC-Typen nun in der zweiten Steuerung in die Programmbausteine ziehe, wie können dann UDTs, egal ob der "äußere" oder die darin enthaltenen, plötzlich unterschiedlich sein?
Es gibt von jedem der UDTs genau eine Version in der Projektbibliothek. Wenn ich die FC in die andere Station ziehe, können doch nur diese UDT Versionen mitgenommen werden, die beim Typisieren mit abgelegt wurden und in der ersten Steuerung immer noch OK sind. In der zweiten sind sie plötzlich rot hinterlegt und nicht mehr gültig.

Vor zwei Jahren oder so habe ich genau wegen diesem Umstand nach ner Weile frustriert aufgegeben, Typen zu verwenden und nur noch Kopiervorlagen genutzt. Nun fiel mir das Projekt eines Kollegen, der nicht mehr da ist, auf die Füße das etliches an Typen enthält (wobei hier an vielen Stellen bereits mehrere Versionen von FB, FC, UDT, Bildbausteintypen noch da sind, ich kann nicht sagen wie sauber hier vorgearbeitet wurde).

Ich habe gerade nochmal versucht was passiert wenn ich alle relevanten Bausteine von den Typen trenne, die Typen lösche, den größeren aufrufenden FB als Typ in die Projektbibliothek ziehe, eine neue Dummy CPU anlege und den FB-Typen (der die FC und UDTs mitgenommen hat, jeweils nur eine Version vorhanden) in die Programmbausteine der neuen CPU ziehe: dort wieder alles rot, alles "zwischenzeitlich geändert". Bin ich wirklich so dumm?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Verwendung von globalen Bibliotheken gibt es eigentlich nur einen Fehler den man machen kann. Und der entsteht, in dem man versionierte Typen bei Änderungen, welche ja in einem Projekt gemacht werden, nicht unverzüglich in der globalen Bibliothek nachpflegt. Bzw. wenn man versionierte Bibliotheksbausteine verschiedener Versionsstände quer Beet von Projekt zu Projekt kopiert, ungeachtet der aktuellen "Basis-Version" in der globalen Bibliothek. Dadurch können in verschiedenen Projekten verschiedene Versionen mit der selben Versionsnummern entstehen. Es muss zwangsläufig zu Kollisionen führen, wenn eine Version auf getrennten Wegen weiterentwickelt wird, und sich später irgend wo wieder begegnet. Das kennen wir ja alle aus den wahren Abenteuern mit Marty McFly und Doc Brown :LOL:.

Das Bereinigen macht jetzt etwas Mühe. Du müsstest zunächst alle aktuelle Versionen ausfindig machen, in ein Projekt aufnehmen und so lange alle Verwendungsstellen überprüfen und aktualisieren, bis alles konsistent ist, also bis nur noch jeweils eine Version jeden Typs verwendet wird. In der Bibliotheksansicht/Bibliotheksverwaltung findest du auch die Verwendungsstellen in den Bausteinen, die nur in der Bibliothek vorhanden sind. Wenn das geschafft ist, alle Typen in die globale Bibliothek übertragen und fortan bei neuen Projekten nur noch mit diesen Typen arbeiten! Alle zukünftigen Änderungen wieder dort ablegen.
 
Brauche ich denn zwangsläufig eine globale Bibliothek, wenn ich die Bausteine nur in einem Projekt, und darin in mehreren CPUs nutze?
Wie gesagt, in der ersten Steuerung ist alles konsistent, es gibt nur noch eine Version jedes Typs. Es gibt also nur "aktuelle Versionen" wie ich das verstehe. Trotzdem passiert das was ich oben beschrieben habe, wenn ich eine FC wieder in die Projektbibliothek ziehe, dann ohne irgendwas zu machen in eine neue CPU.
 
Brauche ich denn zwangsläufig eine globale Bibliothek, wenn ich die Bausteine nur in einem Projekt, und darin in mehreren CPUs nutze?..
Nein, dann brauchst du erst einmal keine globale Bibliothek.

Hast du das Programm in der neuen Steuerung 1x komplett übersetzt?
Hast du es mal in der Projektbibliothek mit "Typen aktualisieren > Projekt" probiert?
Ansonsten vielleicht mal testweise eine weitere Steuerung anlegen, und das selbe mit dieser testen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, hatte ich schon versucht.

Ich habe jetzt mal durch die Bank alle Typen auf Bearbeiten gesetzt, Software komplett übersetzt (keine Fehler erkannt) und dann zuerst alle UDTs unter einer neuen Versionsnummer freigegeben, dann dasselbe mit den Programm- und Bildbausteinen.
Auf den ersten Blick scheint das geholfen zu haben, für mehr hab ich heute keinen Nerv mehr.

Wenn ich das richtig verstehe könnte das die Konstellation gewesen sein die mir ins Bein schoss?
-Durch vermutlich wildes Hin- und herkopieren war irgendwann in der Projektbibliothek eine andere Version eines UDTs mit der gleichen Versionsnummer wie der Stand im aktiven Projekt.
-Die Versionen der UDT-Typen im Projekt selbst waren konsistent.
-Der Typ im Projekt hing an dem in der Projektbibliothek, bei "gehe zum Typen" wurde die vermeintlich richtige Typversion in der Projektbibliothek angezeigt weil die Versionsnummer übereinstimmte.
-Ich habe eine FC aus dem Projekt in die Projektbibliothek gezogen, TIA sieht "Diese FC nutzt Dummy_UDT v1.2.3, die Version ist schon in der Projektbibliothek also brauch ich sie nicht mitkopieren".
-Ich ziehe den FC Typen nun in eine andere Steuerung, TIA nimmt die Projektbibliothek-v1.2.3 des UDTs mit dazu, der nun aber nicht mehr zur Schnittstelle der FC passt weil es nicht wirklich die Version ist die ich aus der ersten Steuerung übernommen zu haben glaubte.
 
Zurück
Oben