TwinCAT 3.1.4026 veröffentlicht

Was interessant ist:
Ich muss jetzt TwinCAT mit Adminrechten starten, ansonsten werden die TwinCAT Module in der Shell nicht geladen.
 
@StructuredTrash, @Fx64: Bei mir ist die SUPS-Lib vorhanden. Müsste Teil des XAE Packages sein.
Auf PackageManager -Ebene abfragen : tcpkg list | findstr SUPS

Auf Dateiebene sichtbar:
1713774257649.png
@Glon: das Thema gibt es auch/schon 4024 mit der TcXae Shell. Das hat was mit Registry-Einträgen für die Shell zu tun. Konnte man recht einfach lösen, allerdings waren es 3 Schritte. Dafür gibt es auch ein Skript- allerdings denke ich dass man das für die veränderten Verzeichnisse in 4026 anpassen muss.
Was für eine Shell nutzt du?
 
@Guga
Ich benutze die Standard Shell die der Packetmanager installiert.
Basis meiner Installation ist eine nackte Windows 10 Prof VM (die nehme ich immer als Basis für neue Maschinen).
Das komische ist ja: Kopie von Windows 10 Prof VM erstellen, danach TwinCAT 4024.xx installieren und man kann damit arbeiten.
Bei der TwinCAT 4026.xx Version verhält es sich aber anders.

1713775926718.png


Die Tc2_SUPS ist bei mir auch nicht vorhanden. Den Pfad von dir (@Guga) ist bei mir auch nicht vorhanden.
 
Ich habe den Ordner PlcEngineering nicht.
Wie gesagt: alles ganz sauber frisch installiert (auf einen sauberen neuen Windows 10 System).

Das sind die Libs die mir in TwinCAT angeboten werden:

1713777056012.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss mich entschuldigen. Die Tc2_SUPS ist oder war im Testing feed vorhanden. Im aktuellen Stable Feed allerdings nicht.

Von der Systematik her: Ich habe zwar noch keinen CX plattgemacht und eine 4026 aufgespielt, von meinem Verständnis her ist aber die Funktion vom Target geliefert und der Baustein ist nur ein kleiner Wrapper mit ADS-Aufruf und somit nicht 4204/4026 abhängig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe 4026.5 gestern auch in einer VM installiert. Das hat soweit tiptop funktioniert. Danach habe ich unser altes 4024 Projekt in der 4026 XAE Shell geöffnet und alle entsprechenden Libs installiert. Nun bekomme ich folgende Fehler:
Fehler_4026.png

obwohl ich alle neuen Libs von 4026 installiert habe. So wie es aussieht, wurde da selbst in den Libs von Beckhoff nicht korrekt mit dem Qualifier gearbeitet. Denn als ich das Projekt zum ersten Mal übersetzt hatte, gab es diese Fehlermeldungen bereits in unserem Projektcode. Durch Hinzufügen eines Qualifiers vor dem "T_AmsNetId" konnten diese Fehler behoben werden. Aber diese von den Beckhoff Libs leider nicht.
 
Ich habe soeben auch festgestellt, dass der Compiler viel strenger geworden ist. Es kommt zum Bsp. bereits eine Warnung (C0508) bezüglich "Ambiguous use of name ..." wenn eine Input Variable gleich heisst, wie eine Methode desselben Funktionsbausteins. Das finde ich total übertrieben. Denn aus meiner Sicht ist die Verwendung da eindeutig, denn eine Methode muss bei deren Verwendung immer mit "()" versehen werden. Dies ist bei Variablen jedoch nicht erlaubt. Deshalb ist die Verwendung eindeutig.
 
@Pippen: Ich war neugierig. "T_AmsNetId" wird in sehr vielen Bibliotheken genutzt.
Ich habe gerade jeweils einen Baustein aus deinem Screenshot von der TC2_TCPIP Bibliothek und TC2_EtherCAT Bibliothek instanziiert und sehe keine Fehler.
Irritiert bin ich auch von manchen Bausteinnamen die mir nichts sagen. E.g. FB_EcMaster, FB_BufferedTextFileWriter.

Ich verstehe also aktuell nicht wieso du die Meldung / Probleme hast.
Kannst du mal die T_AmsNet-Variablen im Reiter System->Type System mal hier reinfügen. Nach meinem Verständnis mit dem o.g. Test referenzieren beide Bibliotheken auf Tc2_System.T_AmsNetID

1714650627085.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aaah, ich glaube ich bin gerade erleuchtet worden.
Ich komme auf die gleichen Meldungen wie @Pippen wenn ich selber eine Struktur von T_AmNetID generiere und diese über "Convert to Global Type" dann in der Typdefinition habe.
Wenn ich nun eine Variable in einer POU definiere ohne Namespace dann sehe ich die Meldung. Ist nicht ganz sinnfrei da es in dem Moment keine lokale Definition dafür aber 2 globale Definitionen gibt (also 2 Einträge im TypeSystem die einmal von TC2_System.TAmsNetID und einmal von Global.T_AmsNetID).
@Pippen: ist T_AmsNetID eventuell global definiert? Oder in der TC3_EcDiagLib?
1714652678192.png
 
@Guga
Das scheint tatsächlich damit zusammenzuhängen. Denn ich hatte auch selbst Tests gemacht mit einem leeren Projekt. Ich habe dann versucht, diese Typdefinition zu löschen. Trotzdem habe ich die Meldung noch. Evtl. gibt es diese Typdefinition auch in der TC3_EcDiagLib. Die ist nicht von uns. Da muss ich mal nachfragen.
Da es diese Typdefinition beim alten Projekt aber auch schon gegeben hat, kann man klar sagen, dass der Compiler in diesem Bereich strenger geworden ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Guga
Irgendwie kriege ich diese T_AmsNetId Typdefinition nicht mehr aus dem Typesystem raus. "Auto delete (if unused)" ist ausgegraut, da der "RefCount" nicht 0 ist. Wie löse ich dieses Problem?
 
Lösche mal die *.tmc-Datei und schließe und lade das Projekt.
Die Datentypen werden beim Laden des Projektes auch aus der TMC-Datei gelesen. Ich vermute, dass T_AmsNetId dort noch als Typ vorhanden ist.
 
Ich kenne keinen einfachen Weg außer tatsächlich über Projektänderungen RefCount=0 werden zu lassen.
Das mit dem löschen der *.tmc-Datei wird nicht funktionieren da der Compiler ja den Typ tatsächlich nutzt.
 
Zurück
Oben