Zwei Variablen verrechnen...

Magni

Level-2
Beiträge
313
Reaktionspunkte
17
Ich möchte einen Variablenwert als Prozentwert ausgeben, zB. um einen prozentuale Öffnung eines Ventils anzugeben. Dabei habe ich mir gedacht, dass es doch mit einem Script am einfachsten wäre.

SmartTags("Analog.Stellwert_Prozent") = 100 / 27648 * SmartTags("Analog.Ausgabe_Stellwert")


Aber es funzt nicht.. habe auch interne Variablen verwendet. Ohne Erfolg.
Wer kann helfen? Danke im vorraus...
 
Klar.. habe ich glatt vergessen. Ich benutze WinCC flexible und das Bediengerät ist ein MP370. Gruß aus Lübeck
 
Dann lass mal 'SmartTags' weg und schreib einfach deine Gleichung mit den WinCCflex-Variablen in das Skript.

Analog.Stellwert_Prozent = 100 / 27648 * Analog.Ausgabe_Stellwert

Gruß foxy64
 
Aber in dem Fall sind es doch externe Variablen... kann ich es überhaupt mit dem Runtime Simulator testen?
 
Dafür gibts ja den Simulator. Wenn du den startest kannst du in der Tabelle, die neben deinem simulierten Startbild mit aufgeblendet wird, Variablen setzen. Das geht auch mit externen.

Gruß foxy64
 
Dafür gibts ja den Simulator. Wenn du den startest kannst du in der Tabelle, die neben deinem simulierten Startbild mit aufgeblendet wird, Variablen setzen. Das geht auch mit externen.

Gruß foxy64

Bin ja blöd... muss das Script natürlich auch aufrufen. Aber wie kann ich das so aufrufen, dass es auch solange die Seite aufgebaut ist, ausgeführt ist?
 
Aaahhh habs gefunden... kann ja bei Wertänderung der Variable aufrufen.... hey.. bin ich gut.. learning by doing
 
Das geht meines Wissens nicht. Aber ich sehe folgende Möglichkeiten:
1. Die ganze Rechnerei in der SPS veranstalten.
ODER
2. Für die Variable, die das Rechenergebnis anzeigen soll, die lineare Skalierung verwenden (Variable-Eigenschaften-Lineare Skalierung).
ODER
3. Einen Takt basteln und jedesmal bei Änderung das Skript aufrufen.


Gruß foxy64
 
Also in der Runtime Simulation geht es.... Werde es nächste Woche vor Ort testen...
 
Ich möchte einen Variablenwert als Prozentwert ausgeben ...

SmartTags("Analog.Stellwert_Prozent") = 100 / 27648 * SmartTags("Analog.Ausgabe_Stellwert")

Bis du dir wegen deiner Formel sicher ...?
Nach meiner Meinung müßte die so heissen :
Code:
SmartTags("Analog.Stellwert_Prozent") = SmartTags("Analog.Ausgabe_Stellwert") * 100 / 27648
... jedenfalls dann, wenn der Prozentwert von "Analog.Ausgabe_Stellwert" gebildet werden soll ...

Gruß
LL
 
...
wie schon von argv_user gesagt ...
Ich habe mal unterstellt, dass du den Variablentyp INT (oder DINT) verwendest hast. Dann ergäbe der erste Teil deiner Berechnung (100 / 27640 ) in der Integer-Division als Ergebnis bereits "0". Das kannst du dann multiplizieren mit was du willst ... Das Ergebnis bleibt "0". Was anderes wäre es, wenn du mit REAL-Zahlen arbeitest. Konnte ich mir jetzt aber nicht vorstellen ...

Gruß
LL
 
Zuletzt bearbeitet:
Mhh.. aber es funktioniert doch, obwohl ich Euerer Argumentation folgen kann...




oder habe ich es doch nicht verstanden?
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…