TIA TIA Openness Kompatibilität

Stelzy

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

kennt jemand einen Link, wo aufgeführt ist, welche TIA Portal Version mit welcher TIA Openness Version kompatiblen ist?
Die Siemens Seiten sind voll mit allem Möglichen Mist, aber das finde ich leider nicht :-(
Mit dem Siemens Kompatibilitäts Tool komm ich auch nicht weiter...

Danke und viele Grüße,
Andy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Seit V14SP1 werden immer die älteren Openness .dlls immer mitgeliefert. D.h. wenn du V15 installierst, findest du eine V14SP1 .dll welche für V15 angepasst ist und eine V15 .dll welche neue Funktionalitäten mitbringt. (Das gleiche bei V15.1, da hast du dann drei .dlls).
Vorteil:
Du kannst deine V14SP1 Openness Applikation für V15 nutzen, ohne deinen Code anpassen zu müssen.

Achtung:
bei V15.1 gibt es eine Aunahme: Cross-Threading wurde hier abgeklemmt, d.h. es kann zu einer Inkompatibilität kommen, wenn deine Applikation Multithreading verwendet. Der Code ist weiterhin kompatibel.
 
Danke für die Antworten, hat mir sehr geholfen :)

Hallo nochmal,

habe noch folgendes Problem mit den Versionen:
Ich muss in meinem C# Projekt in jedem Fall eine Siemens.Engineering.dll referenzieren um damit arbeiten zu können. Im aktuellen Fall ist das die 15.1.0.0 API.
Jetzt möchte ich aber auf ein TIA Portal V15 zugreifen und in diesem Fall kommt die Meldung, dass keine offenen TIA Instanzen gefunden werden konnten.
Wenn ich im C# Projekt wieder die 15.0 API referenziere, geht es natürlich wieder.

Heißt im Umkehrschluss, ich kann mit einer 15.1 API niemals auf ein 15.0 Portal zugreifen. Somit bin ich niemals abwärts kompatibel, sondern kann immer nur exakt eine (die im C# Projekt referenzierte) Portal Version bedienen.
Wie habt ihr das gelöst, werde ja nicht der erste sein, der dieses Problem hat :)

Danke und viele Grüße,
Andy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe eine Auswahl wenn ich das Programm starte eingebaut. D.h. Ich kann sowohl die TIA als auch die Openness Version dynamisch wählen. also z.B. V15 mit Openness V14SP1 dll oder V15.1 mit V15 .dll, etc...
Das Ganze funktioniert über ein Assembly Resolving, den Pfad zur entsprechenden .dll lese ich aus der Registry. ist übrigens in der Openness Demo von Siemens genauso.
 
Ich habe eine Auswahl wenn ich das Programm starte eingebaut. D.h. Ich kann sowohl die TIA als auch die Openness Version dynamisch wählen. also z.B. V15 mit Openness V14SP1 dll oder V15.1 mit V15 .dll, etc...
Das Ganze funktioniert über ein Assembly Resolving, den Pfad zur entsprechenden .dll lese ich aus der Registry. ist übrigens in der Openness Demo von Siemens genauso.

Meine Idee ist es aus den TCI Daten die Version auszulesen(CommServer-ProgID="Tci.SimaticCommunicationServerV15") und mir dann den Pfad aus der Registry auszulesen und die DLL dynamisch zu laden.

Ok, aber ich seh schon, ne elegante Variante gibts hier nicht :)

Danke und viele Grüße,
Andy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo !

Ich arbeite ebenfalls an einem Projekt mit TIA Openness und habe mich aus diesem Grund hier angemeldet.
Das Laden der .DLL löse ich ebenfalls mit einem Resolver. Nach dem ich nun das erste mal die Assembly 15.1 genutzt habe ist mir dann leider
das Problem mit dem Multi-Threading in die Wege gekommen.

Darauf fand ich dann folgenes in der Dokumentation:
Thread-übergreifender Betrieb
Der Zugriff auf Openness-Objekte ist nicht inhärent threadsicher.
Wenn Sie Multithreading zur Verbesserung der Performance Ihrer Openness-Anwendung
einsetzen, wird die Erstellung der Instanz des TIA Portals mit MTA empfohlen.
Wenn TIA Portal innerhalb eines STA-Thread erstellt oder angehängt wird, sollte auf alle
Openness-Objekte in Zusammenhang mit dieser Instanz des TIA Portals aus demselben STAThread
zugegriffen werden; andernfalls wird eine Ausnahme ausgelöst.

Mein Programm (WPF) lagert zeitintensive Prozesse mittels des await aysnc pattern aus damit mir die GUI nicht einfriert --> bis jetzt:|:|
Mein TiaPortal Objekt wird teilweise im Haupt-Thread initialisiert und soll dann später in einem anderen Thread bearbeitet werden.
Hat jemand von euch vielleicht eine Idee wie ich dies nun anders lösen kann ? bzw. einen Tipp wie ich das mittels MTA machen kann?

Leider bin ich im ganzen Threading-Thema noch ganz am Anfang frage deshalb euch.

Beste Grüße und Dank im Vorraus !
 
Würde mich auch interessieren. Selbst die OpennessDemo von Siemens funktioniert nicht mehr mit V15.1. Beim Ex und Import werden dort Tasks verwendet, daher kommt es auch zu genannter Exception..
 
Achtung:
bei V15.1 gibt es eine Aunahme: Cross-Threading wurde hier abgeklemmt, d.h. es kann zu einer Inkompatibilität kommen, wenn deine Applikation Multithreading verwendet. Der Code ist weiterhin kompatibel.

Ja, ich nutzte MultiThreading. Was muss ich tun um TIA im MTA-Modus laufen zu lassen, damit es zu keiner Exception kommt?
 
Zurück
Oben