TIA TIA V15 Openness Namespace fehlt

Shatex

Level-1
Beiträge
31
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

versuche mich gerade an TIA Openness. Im Openness Handbuch, Seite 223 Beispiel "Programmcode: Mit der Methode GetPlugLocations auf die Steckorte zugreifen"

IHardwareObject hardwareObject = ...;
IList<PlugLocation> result = hardwareObject.GetPlugLocations();
foreach (PlugLocation item in result)
{
Console.WriteLine("{0} - {1}", item.PositionNumber, item.Label);
}

Siemens .dll sind als Verweis hinzugefügt.
Die rot markierten Stellen kennt mein Visual Studio nicht, mir fehlt scheinbar eine using Einbindung? Habe die von Siemens empfohlenen Namespaces eingebunden (PDF Seite 40). Welchen Namespace brauche ich für PlugLocation?

Mir werden die Namespaces (PDF Seite 40):

using Siemens.Engineering.CAx;
using Siemens.Engineering.HW.Extension;

als nicht vorhanden angezeigt (Fehler). Liegt es vielleicht daran?

Grüße und vielen Dank!
 

Anhänge

  • TIA Openness Handbuch.pdf
    6,4 MB · Aufrufe: 18
using Siemens.Engineering.HW.Extensions;

Nutzt du Visual Studio? Je nach Version sollte dir VS das using automatisch ermitteln.
Welche TIA / Openness Version nutzt du?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey, danke für deine Antwort!

Ich nutze Visual Studio 2017 Prof mit TIA Openness V15 .

Assembly:

Code:
AppDomain.CurrentDomain.AssemblyResolve += MyResolver;

private static Assembly MyResolver(object sender, ResolveEventArgs args)
        {
            int index = args.Name.IndexOf(',');
            if (index == -1)
            {
                return null;
            }
            string name = args.Name.Substring(0, index);

            RegistryKey filePathReg = Registry.LocalMachine.OpenSubKey(
                "SOFTWARE\\Siemens\\Automation\\Openness\\15.0\\PublicAPI\\15.0.0.0");

            if (filePathReg == null)
                return null;

            object oRegKeyValue = filePathReg.GetValue(name);
            if (oRegKeyValue != null)
            {
                string filePath = oRegKeyValue.ToString();

                string path = filePath;
                string fullPath = Path.GetFullPath(path);
                if (File.Exists(fullPath))
                {
                    return Assembly.LoadFrom(fullPath);
                }
            }

            return null;
        }


Grüße
 

Anhänge

  • using2.JPG
    using2.JPG
    67 KB · Aufrufe: 27
  • using1.JPG
    using1.JPG
    21,6 KB · Aufrufe: 17
Zuletzt bearbeitet:
Hallo,

habs eben auch rausgefunden. Danke!

Habe mit dem Manual "Automatisierung von Projekten mit Skripten" für V14 Upd 1 gearbeitet :ROFLMAO: ...mittlerweile gibt es aber auch eines für V15. Trotz alledem steht es immernoch falsch im Handbuch, habe aber durch Zufall eben den Verweis gefunden

Änderungen an TIA Portal Openness API-Typen

TIA Portal Openness API-Typ Neuer TIA Portal Openness API-Typ
Siemens.Engineering.HW.IExtension Siemens.Engineering.HW.Extensions


Funktioniert jetzt ! Aber
using Siemens.Engineering.CAx;
bleibt fehlerhaft.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachtrag:

using Siemens.Engineering.CAx (falsch) -> using Siemens.Engineering.Cax; (richtig);)

Tipp vom Support: richtige Syntax eingeben (z.B. "CaxProvider", wird dann als "fehlerhaft" angezeigt, rechtsklick darauf ->Glühbirne -> Visual Studio selbst nach dem using suchen lassen, funktioniert wunderbar !
 
Zurück
Oben