S5t# einlesen

Dustin

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich habe folgendes Problem.
Ich habe in einem FC einen Taktgenerator.
Für den Zeitwert habe ich oben einen S5Time Datentyp deklariert > #Tim <.
Nun habe ich im OB 1 ein Merkerwort < MW7 > das mir die Zeit von dem Taktgenerator im FC angeben soll.
zb: Hat das Wort den Wert 5, so soll der Taktgenerator auf 5 Sekunden eingestellt werden. Also < S5T#5S >
Wenn ich im OB das MW7 auf #Tim lege, dann funktioniert das nicht. :???:
Weiss jemand von euch wie ich diesen Wert in den Taktgenerator bekomme ?
MfG
 
Hallo!

Du kannst deinen Wert im MW7 in millisekunden wandeln. Das entspricht dann dem Datentype time. Jetzt könntest du gleich eine IEC Zeit verwenden oder den Datentype time mit der FC 40 TIM_S5TI (zu finden in der Bibliothek-> stdlibs -> iec) in eine S5Time wandeln.

godi
 
Hallo!

Du kannst deinen Wert im MW7 in millisekunden wandeln. Das entspricht dann dem Datentype time. Jetzt könntest du gleich eine IEC Zeit verwenden oder den Datentype time mit der FC 40 TIM_S5TI (zu finden in der Bibliothek-> stdlibs -> iec) in eine S5Time wandeln.

godi

Hallo,
warum in einen MW die Zeit nicht in Word speichern?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
warum in einen MW die Zeit nicht in Word speichern?

Was meinst du damit genau?

@Dustin

Code:
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
 
VAR_TEMP
  Wert_Time : TIME ; 
  Wert_S5Time : S5TIME ; 
END_VAR
BEGIN
NETWORK
TITLE =Sekunden in S5T wandeln
      L     MW     7; 
      L     1000; 
      *D    ; 
      T     #Wert_Time; 
      CALL FC    40 (
           IN                       := #Wert_Time,
           RET_VAL                  := #Wert_S5Time);
      U     E      0.0; 
      L     #Wert_S5Time; 
      SE    T      1; 
END_FUNCTION
 
wie wärs ganz einfach mit

L MW7 // Zeit in sek
ITB // BCD wandeln
L W#16#2000 // Zeitraster sek setzen
OW // und schon haben wir S5#T Format
SE T1
 
Zurück
Oben