Step 7 Problem beim Umwandeln von Time nach S5Time (FC40)

FrankTheTank

Level-1
Beiträge
41
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Allerseits!

Ich bin neu in der S7 Welt und als "Hochsprachler" (C++, Matlab, etc.) tu ich mir noch etwas schwer mit AWL und Co.

Ich möchte gerne einen REAL Wert (Zeitangabe in Sekunden) in S5Time Umwandeln, um damit einen Timer zu starten. Durch Recherche hier im Forum und im Internet bin ich bisher soweit gekommen:

Code:
 L     2.000000e+000              // Zeit in Sekunden (Real)
 L     1.000000e+003              //
 *R                        // Umwandlung Sekunden in Millisekunden
 RND                         // Umwandlung Real in DInt
 T     #TmaxTime                   // Speichern als Time

CALL  "TIM_S5TI"
       IN     :=#TmaxTime
       RET_VAL:=#TmaxS5Time
      NOP   0

Das Problem ist nun, dass als Ausgang von FC40 nicht (wie gewünscht) 2 Sekunden als TmaxS5Time herauskommt, sondern 20 Millisekunden. Woran kann das liegen? Wenn ich den Baustein beobachte und als die Darstellung auf Dezimal stelle, so hat TmaxTime den Wert 2000. Als Millisekunden wären das genau die 2 Sekunden, die ich möchte.

Mit freundlichen Grüßen,
FrankTheTank
 
Wird gemacht (siehe Anhang). Seltsamerweise sind es jetzt plötzlich 30ms! Sehr komisch. Vielleicht hab ich doch einen gröberen Schnitzer drin.
 

Anhänge

  • FC40irgendwasstimmtnicht.jpg
    FC40irgendwasstimmtnicht.jpg
    61,2 KB · Aufrufe: 52
Wo hast Du den FC40 TIM_S5TI her?
Vielleicht hilft es, wenn Du ihn aus dem Projekt löschst und erneut aus der Bibliothek "IEC Function Blocks" einfügst und in die CPU lädst.
Mit welcher CPU arbeitest Du?

Harald
 
Zurück
Oben