Time Wert in WinCC flexible als Kommazahl anzeigen

Muphin

Level-1
Beiträge
51
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,
ich hab im WinCC flexible ein EA-Feld das mir einen Time-Wert einer S7-300 Steuerung in Sekunden mit 2 Kommastellen ausgeben soll, also z.B. 2,58s.
Wenn jetzt im Datenbaustein der SPS ein Wert von z.B. T#1s steht, zeigt mein Bediengerät allerdings 10,00s an, also eine Zehnerstelle zu viel. Ändere ich die Anzeige ab auf eine Anzeige mit 3 Kommastellen funktioniert das ganze richtig, also ein Wert von T#1s erscheint als 1,000s.
Da ich aber nur 2 Kommastellen anzeigen bzw. zur Eingabe freigeben möchte kommt die Lösung einfach auf 3 Kommastellen umzuswitchen für mich nicht in Frage. Eine andere Möglichkeit wäre noch die Skalierung der Variablen zu aktivieren, also den Endwert der Steuerung auf 10 und den Endwert des Bediengerätes auf 1. So funktioniert das ganze ebenfalls, ich finde die Lösung allerdings etwas Fragwürdig, gerade auch in Bezug auf zukünftige Änderungen am Programm, die evtl nicht ich mache.
Kennt ihr da noch andere Möglichkeiten die Anzeige richtig zu stellen?

Grüße
Muphin
 
Ich verwende dieselbe Verfahren wie du.
Also Variabelskalierung plus Verschiebung von das Kommastelle.

Kenne leider keine andere mehr komfortable Verfahren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich verwende dieselbe Verfahren wie du.
Also Variabelskalierung plus Verschiebung von das Kommastelle.

Kenne leider keine andere mehr komfortable Verfahren.

*ACK*

Skalieren würde ich auch im Display.

gerade auch in Bezug auf zukünftige Änderungen am Programm, die evtl nicht ich mache.

Eventuell die Variable in der SPS und nicht im Display aufbereiten.

Display Eingabe 1,00 S (100ms) ---> SPS 1,00 * 10 = 1000ms)

Eine Kommentar dazu und gut.
 
...
Eventuell die Variable in der SPS und nicht im Display aufbereiten.
...
Ich würde das trotzdem eher per Skalierung im WinCC flex machen wie im SPS Programm. So muss man bei einer Änderung nur im WinCC flex etwas anpassen und nicht zusätzlich auch noch das Programm auf der SPS anfassen, in dem die Suche nach der richtigen Codezeile wohl schnell sehr aufwändig werden kann!

Grüße
 
... du mußt es selber wissen ...
Ich würde es hier aber auch so machen, wie von Verpolt vorgeschlagen. Und ... ich sehe auch nicht, dass du dann deswegen hinterher doppelte Anpassungen machen müßtest - so dann nämlich gerade nicht ...
Aber es ist ja dein Projekt ... :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine andere Möglichkeit wäre noch die Skalierung der Variablen zu aktivieren, also den Endwert der Steuerung auf 10 und den Endwert des Bediengerätes auf 1. So funktioniert das ganze ebenfalls, ich finde die Lösung allerdings etwas Fragwürdig, gerade auch in Bezug auf zukünftige Änderungen am Programm, die evtl nicht ich mache.

Eventuell die Variable in der SPS und nicht im Display aufbereiten.

Ich würde das trotzdem eher per Skalierung im WinCC flex machen wie im SPS Programm. So muss man bei einer Änderung nur im WinCC flex etwas anpassen und nicht zusätzlich auch noch das Programm auf der SPS anfassen, in dem die Suche nach der richtigen Codezeile wohl schnell sehr aufwändig werden kann!


Grüße

Was ist denn jetzt fragwürdig?
 
hhmmmm, interessant!
Ich dachte da z.B. an die Änderung der Kommastellenanzahl, wenn da das EA-Feld auf z.B. eine Kommastelle abgeändert wird wäre im einen Fall noch die Skalierung anzupassen und im anderen Fall noch im SPS Programm die Multiplikation.
Oder wie siehst du das?
 
Was ist denn jetzt fragwürdig?
Also ich finde es sehr sehr ungünstig wenn man in einem EA-Feld die anzeigeart einer Variablen abändert dann noch Anpassungen an der Variable vornehmen zu müssen. Das meinte ich mit Fragwürdig.
So wies aussieht geht es allerdings wohl nur über irgend so einen Umweg, da frägt sich dann eben was das kleinere Übel ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hhmmmm, interessant!
Ich dachte da z.B. an die Änderung der Kommastellenanzahl, wenn da das EA-Feld auf z.B. eine Kommastelle abgeändert wird wäre im einen Fall noch die Skalierung anzupassen und im anderen Fall noch im SPS Programm die Multiplikation.
Oder wie siehst du das?

display 1000 = SPS 1000
display 100,0 = SPS 1000
display 10,00 = SPS 1000
display 1,000 = SPS 1000
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ne, soll sie ja grad nich sein! Also die Anzeige von 1,00s und das sollten dann 1000ms sein!
Vielleicht hätte ich besser schreiben sollen
Display 1,00s *10 = SPS 1000
 
OK,

Einen Integer für die Zeit im Display anlegen.

eine S5-Time Variable in der SPS

Code:
L     "Display_integer"
ITB   
T     #S5time_sps

Dann klappts auch mit 1,00 S
 
Ja, das is wohl die einzigst verbleibende Möglichkeit um die Skalierung zu vermeiden!

Auch dieses mal wieder vielen Dank für die Hilfestellungen!

Grüße
Muphin
 
Zurück
Oben