Sekunden in Std. umrechnen (umwandlung in winCC flex?)

superkato

Level-1
Beiträge
220
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hab bekomme von einem DP Slave ein sekundenangabe (4byte/dword), diese speichere ich in DB23.DBD0 ab.

Ich würde diese sekunden Zahl gerne in Stunden umrechen und in den DB10.DBD6 (momentan als REAL) schreiben.

Mein OP77a unter flex08 greift auf den DB10 und würde dann ja die Sek. Zahl in Std. anzeigen.

oder gibts eine sehr einfache Möglichkeit unter flex das er automatisch diese Zahl in stunden umrechnet? ich glaub nicht ausser wenn es vorher als TIME definiert würde.

Für Hilfe wäre ich sehr dankbar!

lg
sk
 
Hallo,
wenn es nicht über die "lineare Skalierung" in Flex geht, was ich hier nicht glaube - was hält dich davon ab, es in der SPS umzurechnen (dort ist m.E. dafür sowieso der beste Platz) ?

Gruß
Larry
 
Ich wüsste jetzt nicht wie das geht :(

Option 1) Lineare Skalierung in WinCC Flexible

WinCC Flexibel variablenliste -> Eigenschaften der Variable -> Lineare Skalierung -> Einstellungen Wert SPS= 3600, Wert Panel=1


Option 2) Umrechnung in der SPS

Code:
L DB23.DBD0
L 3600.0
/R
T DB10.DBD6

Achte darauf das beide Variablen gleiches Format haben, entweder beide DINT oder halt REAL. Bei DINT dann natürlich /D verwenden
 
dem was eye schreibt ist eigentlich nichts hinzuzufügen.

nur... die anzeige der minuten und sekunden nach dem komma ist nicht schön. schöner ist wenn man sich das als echte minuten und sekunden ansehen kann.

Code:
FUNCTION FC 199 : VOID
TITLE =
AUTHOR : Lisch
VERSION : 1.1

VAR_INPUT
  In_Sekunden : DINT ; 
END_VAR
VAR_OUTPUT
  Stunden : INT ; 
  Minuten : BYTE ; 
  Sekunden : BYTE ; 
END_VAR
VAR_TEMP
  rest : DINT ; 
END_VAR
BEGIN
NETWORK
TITLE =

      L     #In_Sekunden; 
      L     L#3600; 
      /D    ; 
      T     #Stunden; 
      L     #In_Sekunden; 
      L     L#3600; 
      MOD   ; 
      T     #rest; 
      L     60; 
      /D    ; 
      T     #Minuten; 
      L     #Minuten; 
      L     L#60; 
      *D    ; 
      L     #rest; 
      TAK   ; 
      -D    ; 
      T     #Sekunden; 
      SET   ; 
      SAVE  ; 
END_FUNCTION
 
Zurück
Oben