WinCC Symbolisches E/A-Feld Einheit per VB-Script ändern?

sargan26

Level-2
Beiträge
102
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, bei einem symbolischen E/A-Feld kann ich unter "Gestaltung" eine Einheit eingeben. Ich würde gerne in einem VB-Script die Einheit umstellen, siehe Bilder.
TIA Portal 15.1
WinCC Advanced 15.1

feld einheit.jpg

script.jpg


 
Hallo,

zuerst einmal: Dein 1. Screenshot zeigt die Eigenschaften eines EA-Feldes, nicht die eines Symbolischen EA-Feldes.

Siehe dazu die TIA-Hilfe (;)), Stichwort "IOField":
Die Eigenschaft "Unit" steht nur in WinCC Professional lesend und schreibend zur Verfügung.


Gruß, Fred
 
Zuletzt bearbeitet:
Ich möchte gerne bei TIA V19 in einem Unifiedpanel, wie oben beschrieben, die Einheit eines E/A Feldes über Script ändern können.
Man kann ja hinter der Eigenschaft "Ausgabeformat" die Anzahl der Nachkommastellen angeben und dazu schreiben, wie die Einheit heißen soll. :
1731914094075.png
zusätzlich kann man auch bei Dynamisierung "Script" statt "Keine" auswählen.
Hier wüsste ich gerne, wie ich über einen String die Einheit hinter dem angezeigten Messwert ändern kann.

Hintergrund:
Es ist ein Faceplate das einen Messwert anzeigt. Wenn ich aber die Einheit (beispw. °C) fest vergebe, muss ich für jede mögliche Einheit ein neues Faceplate erstellen. Ich würde gerne eine String Variable an das Faceplate legen mit der ich die Einheit des angezeigten Messwertes festlegen kann.
Jemand eine Ahnung, wie das geht?

Folgendes Habe ich schon versucht:
1. Alles über script, sowohl Nachkommastellen, als auch die Einheit:
1731914335739.png
Ergebnis: Es wird zwar der Messwert mit einer Nachkommastelle angezeigt, aber der String wird nicht dahinter geschrieben.

2. Die Bezeichnung {F1} als statischen Wert vergeben und als value im Script lediglich den String übergeben.
Ergebnis blieb dasselbe wie oben.

3. Bei Dynamisierung kein Script gewählt, sondern eine Variable und da die Stringvariable ausgewählt.
Ergebnis blieb dasselbe wie oben.
 
ich habe es auch noch mal mit dem build in Concat versucht:
Code:
let str1 = '{F1}';
let str2 = '°C';
value = str1.concat(' ', str2);

und dem template literals mit backticks ``:
Code:
let name = '°C';
value = `{F1} ${name}`;

und mit dem += Befehl:
Code:
let str1 = '{F1}';
let str2 = '°C';
value = str1 += str2;

Ergebnis: In keinem String steht was drin. Also auch, wenn ich das als Text in einem Textfeld ausgebe.
I'm wheel less.

P.S.: {F1} funktioniert übrigens ohne String Concat Funktion o.ä. einwandfrei, der Messwert wird dann mit einer Nachkommastelle angezeigt.
 
Zuletzt bearbeitet:
in der Siemens Hilfe "SIMATIC WIN CC Unified Tipps und Tricks zur Skripterstellung"
steht übrigens, man könnte Strings mit "+" zusammen fügen.
Funktioniert aber leider nicht. Auch nicht bei einer einfachen Textausgabe.
Oder ich bin zu doof. Wie gesagt, sobald ich zwei Strings miteinander Verknüpfe:
value = 'String 1' + 'String 2';

steht nichts im Textfeld.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgenden Script in den Ausgabeformat eingebaut:

Javascript:
export function EA_Feld_1_OutputFormat_Trigger(item, triggerDataSet) {
    var value;
let iDecimals = Faceplate.Properties.iDecimals;
let strUnit = Tags("udtAIConfig.sConfiguration.strUnit").Read().toString();

value = '{F' + iDecimals + '} ' + strUnit;
    return value;
}

1738663753832.png
1738663775141.png

Der funktioniert einwandfrei bei mir auch in einem Faceplate. Zusätzlich habe ich noch eine Wert übergeben um die Nachkommastellen dynamisch zu gestalten. Ich glaube bei dir hat der Ausdruck .toString() gefehlt. In Sachen Java bin ich selber noch Anfänger aber solange man in Java der Variable nicht explizit sagt, dass sie ein String ist wird sie zum Object gemacht. Der Wert für das Ausgabeformat verlangt aber explizit einen String. Der eigentliche Ausgabewert ist bei mir in der Eigenschaft Prozesswert über die Variable verlinkt.


Ich hoffe ich konnte weiterhelfen :)

PS: Getestet auf eine Unified Panel (MTP1200) Aber der Script sollte theoretisch auch im WIN CC funktionieren.
 
Zuletzt bearbeitet:
Zurück
Oben