WinCC Unified EA Felder Zahlen Formatieren

Zuviel Werbung?
-> Hier kostenlos registrieren
Lässt sich das Ausgabeformat auf {###,#} stellen? Dann wäre die Kommaposition einstellbar.
Wenn ja, wie sieht die Ausgabe aus? Könnte man das auch als Ein/Ausgabe nutzen?
Hallo Peter

Leider Funktioniert das ganze nicht so wie gedacht hier ist das Format das ich eingestellt habe:
format.PNG
und hier das Resultat:
resultat.PNG
es hat zwar eine stelle weniger dafür wird kein Koma angezeigt und ich habe zwischen allen zahlen ein tausender Zeichen.
 
Lässt sich das Ausgabeformat auf {###,#} stellen? Dann wäre die Kommaposition einstellbar.
Wenn ja, wie sieht die Ausgabe aus? Könnte man das auch als Ein/Ausgabe nutzen?
Ja, das Format lässt sich so einstellen, aber ...
- das Komma in der (immer englischen) Formatangabe steht für das Tausendertrennzeichen und mit der Formatangabe {###,#} erstellt Unified einen Tausenderpunkt nach jeder einzelnen Ziffer 🤷‍♂️
- auch wenn man den Punkt als Dezimaltrennzeichen verwendet, verschiebt Unified die Ganzzahl immer so im Format, dass sie komplett vor dem Dezimaltrennzeichen steht (weil es eine Ganzzahl ist 🤦‍♂️).


Ich habe am Samstag sehr viele Möglichkeiten der Formatangaben weit über die Hilfebeispiele hinaus sowohl mit #, 0 als auch 9 an den verschiedenen Stellen probiert und leider hat bis dato keine davon zum eigentlichen Ziel geführt.
Auch Google hat mir keine andere Möglichkeit offenbart, als einen (internen) Gleitpunktwert zu generieren, was ich über obiges Script auf der rechten Seite bewerkstelligt habe.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
nur leider ist das ganze bei mir auf einer Faceplate und ich muss über eine Variablen-Schnittstelle auf den Wert zugreifen. Nur leider habe ich noch keinen Weg gefunden über ein Script auf eine dieser Schnittstellen zugreifen kann. Weiss das vielleicht grade jemand wie das gehen könnte?
Zuerst: ich habe leider keinerlei Erfahrungen mit Faceplates.

Wenn Du im Script mit der rechten Maustaste klickst, werden Dir vorgefertigte Snippets angeboten.
Beim normalen Bild auch zum Zugriff auf die "Tags":

1676477576388.png

Im Faceplate gibt es neben denm HMI-Runtime- und Logic-Baum noch einen speziellen Punkt für die Faceplate-Dinge.
Findest Du da nix zum Zugriff auf die Schnittstellenvariablen?

PS:
Das hier z.B. (ich hab' selbst leider kein Interface auf die Schnelle hinbekommen :cry: ):

1676478513253.png
 
Zuletzt bearbeitet:
Im Faceplate gibt es neben denm HMI-Runtime- und Logic-Baum noch einen speziellen Punkt für die Faceplate-Dinge.
Findest Du da nix zum Zugriff auf die Schnittstellenvariablen?

PS:
Das hier z.B. (ich hab' selbst leider kein Interface auf die Schnelle hinbekommen :cry: ):

Anhang anzeigen 67029
Hallo ja ich habe das mal versucht und bin mir ziemlich sicher das ich es richtig gemacht habe aber es funktioniert irgendwie trotzdem nicht, mache ich etwas falsch? Es scheint die Schnittstelle irgendwie nicht richtig zu finden. So sieht es ohne Code aus:soll.PNG
dann habe ich das hier probiert
codeNormal.PNG
dann war es plötzlich 0
in code.PNG
dann habe ich das Probiert
codeGeteilDurch10.PNG
und dann war es plötzlich NaN
incodeGeteiltDurch10.PNG
und die Schnittstelle ist richtig geschrieben habe den Namen Kopiert.
name.PNG
ich verstehe nicht mehr was ich falsch mache💀
 
Moin user 25434,

wenn ich nur Deinen letzten Post nehmen würde, würde ich denken, da liegt ein Offset von 100 auf dem Wert. Beim Übertragen in das Faceplate geht der offset verloren (0) und beim Teilen von 0/10 kommt NaN raus.
Aber es geht ja um die Darstellung von EINEM Wert. Da ist für mich i.M. noch nicht ganz fassbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn ich nur Deinen letzten Post nehmen würde, würde ich denken, da liegt ein Offset von 100 auf dem Wert. Beim Übertragen in das Faceplate geht der offset verloren (0) und beim Teilen von 0/10 kommt NaN raus.
Aber es geht ja um die Darstellung von EINEM Wert. Da ist für mich i.M. noch nicht ganz fassbar.
Hallo MFreiberger
Die Variabel die ich verwende ist ein Normaler DInt und hat eigentlich keinen offset drauf sie wird nur mit dem Istwert der Pumpe beschrieben. Dieser soll in Prozentzahlen angezeigt werden. Ich bekomme aber einen Wert zwischen 0 und 1000 da ich im alten Panel die letzte Zahl einfach hinters Komma rücken konnte. Also aus 755 wurde dann 75.5% und jetzt will ich das auch auf dem Unified machen aber das ganze geht nicht mehr nur mit dem Format. Also wollte ich es mit einem Script lösen aber dann passierte das was du ja oben schon gelesen hast.
 
ich habe noch was gefunden zu der Kommastelle bei Ganzzahlen:


im 2. Post wird eine Antwort auf einen SR beschrieben.


Meine Meinung dazu:
Für viele Werte in der SPS bieten sich Real Formate an, wo es dann mit der Ausgabe / Eingabe auf Unified keine Probleme geben dürfte.

Manchmal erhält die SPS (bzw. die SPS muss bereitstellen/senden) Dint-Werte, die z.B. in 1/10 oder 1/100 irgendeiner Einheit übertragen werden (wie bei user25434, oder z.B. Achs-Ist/-Sollpositionen). Solche Werte sollen dann natürlich auch angezeigt bzw. eingegeben werden, evtl. geht sonst auch Genauigkeit verloren. Dafür dann 2 Skripte je EA-Feld zu schreiben finde ich schon sehr umständlich. Da müsste Siemens noch nachbessern.
 
Ich habe noch gar keine Erfahrung mit Unified Panels.
Nur für die Ausgabe des Int-Wertes mit Dezimalpunkt müsste aber sowas gehen:

- eine Panel-interne Real-Variable anlegen
- bei der Int-Variable die Anbindung an die PLC-Variable, und bei Wertänderung ein Skript, was den Wert/10.0 in die Real-Variable kopiert

An das Faceplate beide Variablen übergeben.
Am Ausgabefeld im Faceplate
- die Real-Variable als Prozesswert des Ausgabefeldes für das Format ###.#
- die Int-Variable für irgendeine nicht störende Animation (z.B. bei 0 Vordergrundfarbe schwarz und bei <> 0 auch Vordergrundfarbe schwarz), damit die Int-Variable zyklisch aktualisiert wird und das Wertänderung-Skript triggert

PS:
Möglicherweise beschreibt der Siemens FAQ das gleiche Vorgehen?

PPS:
Mir fällt auf, daß die Division durch 10 in den hier gezeigten Skripten immer als Ganzzahl 10 angegeben wird. Würde es vielleicht helfen, wenn man in der Formel die Division durch Real 10.0 schreibt, also Wert/10.0 ?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmm ja mein Problem war das diese Variablenliste Teil des Firmenstandarts ist und ich eigentlich nichts daran ändern darf. Aber wenn kein Weg daran vorbei führt kann ich mal schauen ob ich da doch etwas ändern kann, da ich der erste bin der hier in der Firma mit Unified arbeitet. Ich versuche es mal so danke das Ihr euch Zeit genommen habt mir zu Helfen Danke!
 
Zurück
Oben