# Time Wert in WinCC flexible als Kommazahl anzeigen



## Muphin (5 Januar 2011)

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


----------



## JesperMP (5 Januar 2011)

Ich verwende dieselbe Verfahren wie du.
Also Variabelskalierung plus Verschiebung von das Kommastelle.

Kenne leider keine andere mehr komfortable Verfahren.


----------



## Verpolt (5 Januar 2011)

JesperMP schrieb:


> 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.


----------



## Muphin (5 Januar 2011)

Verpolt schrieb:


> ...
> 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


----------



## Larry Laffer (5 Januar 2011)

... 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 ...


----------



## Verpolt (5 Januar 2011)

Muphin schrieb:


> 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.





Muphin schrieb:


> 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?


----------



## Muphin (5 Januar 2011)

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?


----------



## Muphin (5 Januar 2011)

Verpolt schrieb:


> 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.


----------



## Verpolt (5 Januar 2011)

Muphin schrieb:


> 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


----------



## Muphin (5 Januar 2011)

Display 1,00 = SPS 1000 / 10


----------



## Verpolt (5 Januar 2011)

Muphin schrieb:


> Display 1,00 = SPS 1000 / 10



Display 1,00 = SPS 100 

Deine Zeit ist dann 100ms

Skalierung im Display hat nix mit dem Komma zu tun.

Skalierung in der SPS hat nix mit dem Komma zu tun.

Skalierung kannst dir ja raussuchen, wo und wie


----------



## Muphin (5 Januar 2011)

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


----------



## Verpolt (5 Januar 2011)

OK,

Einen Integer für die Zeit im Display anlegen.

eine S5-Time Variable in der SPS


```
L     "Display_integer"
ITB   
T     #S5time_sps
```

Dann klappts auch mit 1,00 S


----------



## Muphin (10 Januar 2011)

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


----------

