WinCC Unified WinCC Unified: Wie Parametersatz ID und Name auslesen?

wayne5de

Level-2
Beiträge
256
Reaktionspunkte
47
Guten Morgen,
ich kämpfe gerade mit meinem ersten Unified Projekt (MTP1200).
Wie kann man die Parametersatz ID und den Namen auslesen?

In der Parametersatz-Anzeige kann man bei Änderung ein Skript aufrufen:
1719482932695.png

Leider habe ich noch kein Skript gefunden, was funktioniert.
Code:
export function Parametersatz_Anzeige_1_CurrentParameterSetID_OnPropertyChanged(item, value) {

let Parametersatz_Name = item.CurrentParameterSetID.value;
Tags(Parametersatz_Name).Write('');

//HMIRuntime.ParameterSetTypes.SysFct.GetParameterSetName(item.CurrentParameterSetTypeID,item.CurrentParameterSetID,1033,
//HMIRuntime.Tags.SysFct.CreateSetTagCommand("Parametersatz_Name"),
//HMIRuntime.Tags.SysFct.CreateSetTagCommand("Prozessstatus"));
//Tags('Parametersatz_Name').Write('');
//Tags('Parametersatz_ID').Write('');
}

Hat das schon mal jemand gemacht?

Danke und Grüße
 
Schau dir mal das große Feature-Demoprojekt von Siemens an. Da gibt es auch ein Bild zu Rezepturen/Parametern. Dort sind auch die ganzen Parametersatz-ID, Parametersatztyp, etc. exemplarisch alle auf Variablen und IO-Felder gelegt.
 
Von der Seite habe ich mir schon das "E-Car Automatisierungsbeispiel" angeschaut. Da habe ich aber nix passendes gefunden.

Dann versuche ich es mal jetzt mit dem Feature-Demoprojekt...

Danke!
 
Grüß euch!

wayne, vielleicht kannst du mir bitte verraten was genau in deinem Script steht um auf den Parametersatznamen zu kommen.. Ich bekomm das gerade irgendwie nicht hin. :cautious:

Wäre wirklich eine große Hilfe,
Danke!
 
"IST_Parametersatz_ID" ist eine interne WString-Variable im HMI.

1723103644000.png


Code:
export function Parametersatz_Anzeige_1_CurrentParameterSetID_OnPropertyChanged(item, value) {

let CurrentPSID = Tags("IST_Parametersatz_ID");
CurrentPSID.Write(value);

let tag1 = Tags("IST_Parametersatztyp_ID");
let tagValue1 = tag1.Read();
HMIRuntime.Trace("value of MyTag1: " + tagValue1);

let PSName, ProcessingStatus, CurrentLanguageID;
CurrentLanguageID = 1031;
//HMIRuntime.ParameterSetTypes.SysFct.GetParameterSetName(tagValue1,value,CurrentLanguageID,PSName,ProcessingStatus);
//PSName = ParameterSetTypes(HMIRuntime.Tags.SysFct.GetTagValue("Current_PS_ID")).GetName(0);
HMIRuntime.ParameterSetTypes.SysFct.GetParameterSetName(HMIRuntime.Tags.SysFct.GetTagValue("IST_Parametersatztyp_ID"), HMIRuntime.Tags.SysFct.GetTagValue("IST_Parametersatz_ID"), 1031, HMIRuntime.Tags.SysFct.CreateSetTagCommand("IST_Parametersatz_Name"), HMIRuntime.Tags.SysFct.CreateSetTagCommand("Prozessstatus"));
HMIRuntime.Trace("Trace Message PSName: "+PSName);
HMIRuntime.Trace("Trace Message ProcessingStatus: "+ProcessingStatus);
}
 
Ich greife das hier mal auf, da ich vor dem gleichen Problem stehe.

Das wie oben beschrieben habe ich so nicht nicht versucht.
Meine Frage ist, das "ID aktuelle Parametersatz" und "ID aktuelle Paramtersatztyp" sollen laut Siemens dem Monitoring dienen, was im Controll gerade ausgewählt ist.

Wenn ich da zwei interne Variablen dran schreibe, bekomme ich trotzdem nicht ausgelesen, welche IDs gerade aktiv sind.
Gibt es vielleicht noch einen Weg einfach nur die zwei IDs rauszubekommen, welche gerade ausgewählt sind?
 
...das Problem habe ich immer noch...

Hat vielleicht inzwischen jemand eine Idee?

Hallo,

dein Skript hat den Übergabeparameter "item". Dieser steht für das Objekt aus dem das Skript gerade ausgeführt wird, also in deinem Fall das Objekt Rezepturanzeige. Mit diesem Objekt item kannst du nun auf alle Eigenschaften zugreifen die du auch im Reiter Eigenschaften siehst.

Ich greife das hier mal auf, da ich vor dem gleichen Problem stehe.

Das wie oben beschrieben habe ich so nicht nicht versucht.
Meine Frage ist, das "ID aktuelle Parametersatz" und "ID aktuelle Paramtersatztyp" sollen laut Siemens dem Monitoring dienen, was im Controll gerade ausgewählt ist.

Wenn ich da zwei interne Variablen dran schreibe, bekomme ich trotzdem nicht ausgelesen, welche IDs gerade aktiv sind.
Gibt es vielleicht noch einen Weg einfach nur die zwei IDs rauszubekommen, welche gerade ausgewählt sind?

Geh im Reiter Eigenschaften mit Rechtsklick auf die Eigenschaft "aktuelle Parametersatz ID" und wähle [kopiere Eigenschaftsname], dann wieder ins Skript und item.<STRG+V>... so hast du direkten Zugriff auf den Eigenschaftswert, auch ohne interne Variable.

PS: auch die aktuelle Language-ID bekommst du vom Runtime-Objekt geliefert; damti vermeidet man Verwirrungen bei mehrsprachigen Projekten
;)

Mfg
 

Anhänge

  • Screenshot 2025-12-02 085750.png
    Screenshot 2025-12-02 085750.png
    49,8 KB · Aufrufe: 60
  • 71e18772-12a1-4b5d-a6f7-56d851171c95.PNG
    71e18772-12a1-4b5d-a6f7-56d851171c95.PNG
    134 KB · Aufrufe: 60
Zurück
Oben