TIA TIA Openness - Hardwaregenerierung von HMI-Panel und weiteren Geräten

LOTUSKEK

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich beschäftige mich aktuell mit der Programmierung von TIA Openness. Basierend auf dem Beispielprojekt "StartOpenness" habe ich
mein Programm programmiert. Dabei kann man in dem Programm einen Namen einer CPU mit zugehöriger Artikelnummer und Version eingeben
und einem TIA Projekt hinzufügen (wird als Gerät in der Netzwerk- und Topologiesicht eingefügt). Das klappt soweit auch ganz gut. Allerdings
würde ich das Selbe auch gerne mit beispielsweise einem HMI-Panel von Siemens machen, oder in der Gerätesicht beispielsweise DI/DA-Baugruppen
der SPS hinzufügen. Bisher habe ich das allerdings nicht hinbekommen. Speziell bei einem HMI-Panel habe ich, genau wie bei einer CPU, Artikelnummer,
Version usw. angegeben, allerdings wird das Panel nicht gefunden. Oder es kommt zu einer Exception.

Muss man dafür eine andere Programmierung wählen als für die CPUs? Ich habe mich bereits durch das Openness Handbuch gelesen, allerdings
habe ich dazu nichts ausführlicheres gefunden. In dem Hadwarekatalog müsste das HMI Panel ja enthalten sein, daher vermute ich, dass die Programmierung
fehlerhaft ist.

Mein aktueller Programmcode für die Hardwareerstellung:

HardwareGenerierung 1.PNGHardwareGenerierung 2.jpg

Kann mir da jemand weiterhelfen?:confused:

Ich arbeite aktuell mit Visual Studio 2019 und TIA Portal V16, sowie TIA Openness V16.


Vielen Dank für eure Antworten

MFG Lotuskek
 
Zuletzt bearbeitet:
Hi
Im TIA V16 kann man unter Einstellungen sowas wie "Openness kompletter Name anzeigen" ankreuzen. (Heisst sicher gaaanz anderst)
Danach kannst du auf die Geräteansicht im TIA Portal gehen und das gewünschte Ding in der Bibliothek anwählen. Dann siehst du nicht nur zwei sondern 3 Informationsfenster (siehe Bild).
Hab jetzt gerade kein V16 zur Hand, aber in der Openness Doku zur V16 ist dies sogar mit einem Panel als Beispiel drin. HW_Eigenschaft.jpg

Edit:
Seite 232 --> Typkennungen im TIA Portal anzeigen
Nochmals Edit:
Geht auch bei TIA V15.1 -->
Code:
Aktivieren Sie unter "Optionen > Einstellungen > Hardware-Konfiguration > Anzeige der
Typkennung" die Einstellung "Anzeige der Typkennung für Geräte und Module".
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
vielen Dank für die Antwort. Ich habe das im TIA Portal entsprechend angepasst. Danach wurde auch beispielsweise
ein Switch erkannt, der vorher nicht erkannt wurde. Allerdings geht es weiterhin nicht, das ich ein HMI-Panel hinzufüge.
Ich erhalte, wenn ich es hinzufügen möchte in folgender Zeile den Fehler :

"Siemens.Engineering.EngineeringTargetInvocationException: "Error when calling method 'CreateWithItem' of type
'Siemens.Engineering.HW.DeviceComposition'.

The name could not be set at device."

HardwareGenerierung 2.jpg

Ich vermute fast, dass man HMI Panel nicht über TIA Openness hinzufügen kann.

MFG Lotuskek
 
Hmm doch eigentlich sollte es, in der Doku wird ja sogar mit einem HMI das Beispiel gemacht. Hast du beide DLL's verknüpft?
 
Ja deswegen habe ich mich ja auch gewundert. Und ich habe auch beide DLL's verknüpft.
(Siemens.Engineering.dll und Siemens.Engineering.Hmi.dll)
 
Stimmt, die bekommen das irgendwie hin :D.

Man könnte es sicher auch noch auf anderem Wege machen. Zum einen kann man sicherlich von einzelnen
Geräten eine AML (CAX)- Datei erzeugen lassen und diese dann jeweils einlesen. Da müssten es auch gehen,
bis auf einige Außnahmen, die HMI-Panel in TIA zu erzeugen (siehe unten).

Außerdem scheint es noch eine Art Mastercopy
zu geben, wo man (so wie ich das Verstanden habe) gewisse Geräte in TIA definieren kann, welche mann dan in
andere Projekte hineinkopiert. Ob das wirklich so funktioniert weiß ich allerdings nicht.

Sonst ist mir keine weitere Create-Methode bekannt. Deshalb wollte ich ja wissen, ob es da vielleicht noch eine andere
Möglichkeit gibt. Ich werde es sonst wahrscheinlich über die AML Dateien machen, das klappt in meinem aktuelle Projekt
auch schon ganz gut. :)

Nicht unterstützt von CAx wird das Exportieren und Importieren folgender Geräte und Antriebe:
● 6AV2 104-0XXXX-XXXX
● 6AV2 155-0XXXX-XXXX
● 6ES7 XXX-XXXXX-XXXX
● 6ES7 370-0AA01-0AA0
● 6ES7 451-3AL00-0AE0
● 6GK5 414-3FC00-2AA2
● 6GK5 414-3FC10-2AA2
● 6GK5 495-8BA00-8AA2
● 6GK5 496-4MA00-8AA2
● 6GK5 602-0BA00-2AA3
● 6GK5 602-0BA10-2AA3
● 6GK5 612-0BA00-2AA3
● 6GK5 612-0BA10-2AA3
● 6GK5 613-0BA00-2AA3
● 6GK5 623-0BA10-2AA3
● 6GK5 627-2BA10-2AA3
● System: Device.Scalance/S627
● System:IPIProxy.Device
● System:IPIProxy.Rack
 
Ich denke Mastercopy ist in beziehung mit Bibliotheken gemeint. Wenn du bei Siemens eine eigene Bibliothek erstellt, dann ist der Ordner "Kopiervorlagen" in der Bibliothek gemeint. Dann müsstest du ein HMI zuerst in die Bibliothek hinein tun und dann diese jeweilis ins Projekt kopieren.
 
Bezüglich der Mastercopy: gut zu wissen, da habe ich das wohl etwas falsch verstanden.

Bezüglich der Device Creat Methode:

In dem Handbuch gibt es zwei Möglichkeiten so ein Gerät zu erstellen:

Nur ein Gerät erstellen:

Code:
DeviceComposition devices = ...;
Device deviceOnly = devices.Create("System:Device.S7300", "S7300Device");
Device gsdDeviceOnly = devices.Create("GSD:SIEM8139.GSD/D", "GSD Device");

Oder ein Gerät mit Typkennung zu erstellen:

Code:
DeviceComposition devices = ...;
Device device = devices.CreateWithItem("OrderNumber:6ES7 510-1DJ01-0AB0/V2.0", "PLC_1",
"NewDevice");
Device gsdDevice = devices.CreateWithItem("GSD:SIEM8139.GSD/M/4 ", "GSD Module",
"NewGsdDevice");

Das Problem ist, wenn man die obere Variante macht, wird zwar ein Gerät mit entsprechendem Namen erstellt, allerdings ist dabei nichts hinterlegt. Man gibt in diesem Fall ja auch keine OrderNumber an, deshalb ist das in TIA dann nur ein weißer Kasten.

Bei der anderen Variante müsste das ja eigentlich anders sein, allerdings funktioniert diese nicht in meinem Programm. Vermutlich liegt das Problem in der Definition des Devices:
Code:
DeviceComposition devices = ...;

ich habe dort aktuelle die Definition:
Code:
DeviceComposition devices = Myproject.Devices;

Ich vermute dass das nicht richtig ist. Ich weiß aber auch nicht genau was ich für das ... einsetzen muss.
 
Nun zur Lösung :cool:

Code:
[h=2][B]If you create a device by using the  method CreateWithItem and an error occurs on execute („The name could  not be set at device.“ or „Invalid 'Name' parameter with "…" value“),  then use „null“ for parameters „name“ and „deviceName“.[/B][/h]Example: var device = project.Devices.CreateWithItem("OrderNumber:6AV2 124-0QC02-0AX1/16.0.0.0", null, null);

Hier zu finden: https://support.industry.siemens.com/cs/document/109251656/tips-for-tia-portal-openness?dti=0&lc=en-WW


 
Zurück
Oben