Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 9 of 9

Thread: Integer Wert (t in ms) in S5Time umwandeln?

  1. #1
    Anonymous Gast

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    könnt Ihr mir sagen wie Ich einen Wert (Zeit in ms) in eine S5time umwandeln kann?

    Grüsse Torsten
    Reply With Quote Reply With Quote Answered: Integer Wert (t in ms) in S5Time umwandeln?  

  2. "Habs gefunden

    Antwort:


    Voraussetzung ist, dass der gelieferte Wert die Zeit in Millisekunden beinhaltet. Dann kann die Umwandlung in zwei Schritten folgendermaßen vor sich gehen:

    1. Zuerst wandelt man den gegebenen Wert in das Format Doppelinteger und schreibt das Ergebnis in eine Variable vom Typ Time.
    Integerwerte werden mit dem Befehl "ITD" und Realwerte mit "RND" in das Format Doppelinteger gewandelt. 2. Durch die Nutzung des FC40 aus "Standard Library > IEC Function Blocks > FC40" (TIM_S5TI) wird das Format TIME in S5TIME gewandelt.

    Beispiel:
    In einer AWL-Quelle sieht die Programmierung für eine INT > S5 Time Umwandlung folgendermaßen aus:

    VAR_INPUT
    wert_i : INT ;
    END_VAR
    VAR_OUTPUT
    zeit_s5 : S5TIME ;
    END_VAR
    VAR_TEMP
    tmp_time : TIME ;
    END_VAR

    BEGIN
    NETWORK
    TITLE =
    L #wert_i;
    ITD ;
    T #tmp_time;
    NETWORK
    TITLE =
    CALL "TIM_S5TI" (
    IN := #tmp_time,
    RET_VAL := #zeit_s5);
    END_FUNCTION
    "


  3. #2
    Anonymous Gast

    Default

    Habs gefunden

    Antwort:


    Voraussetzung ist, dass der gelieferte Wert die Zeit in Millisekunden beinhaltet. Dann kann die Umwandlung in zwei Schritten folgendermaßen vor sich gehen:

    1. Zuerst wandelt man den gegebenen Wert in das Format Doppelinteger und schreibt das Ergebnis in eine Variable vom Typ Time.
    Integerwerte werden mit dem Befehl "ITD" und Realwerte mit "RND" in das Format Doppelinteger gewandelt. 2. Durch die Nutzung des FC40 aus "Standard Library > IEC Function Blocks > FC40" (TIM_S5TI) wird das Format TIME in S5TIME gewandelt.

    Beispiel:
    In einer AWL-Quelle sieht die Programmierung für eine INT > S5 Time Umwandlung folgendermaßen aus:

    VAR_INPUT
    wert_i : INT ;
    END_VAR
    VAR_OUTPUT
    zeit_s5 : S5TIME ;
    END_VAR
    VAR_TEMP
    tmp_time : TIME ;
    END_VAR

    BEGIN
    NETWORK
    TITLE =
    L #wert_i;
    ITD ;
    T #tmp_time;
    NETWORK
    TITLE =
    CALL "TIM_S5TI" (
    IN := #tmp_time,
    RET_VAL := #zeit_s5);
    END_FUNCTION

  4. #3
    Join Date
    16.06.2003
    Location
    88356 Ostrach
    Posts
    5,006
    Danke
    1,346
    Erhielt 1,168 Danke für 550 Beiträge

    Default

    es geht auch einfacher wenn man dem wert mit hexzahlen verodert.

    2000 entspricht 1sec
    1000 entspricht 100ms

    also einfach den integer mit dieser zahl verodern wobei der "1000er" wert für das parameter steht wie es früher in s5 an zeit vor dem punkt gegeben wurde. also quasi für den zeitfaktor.

    und dann den wert der dann im akku1 stel einfach bei der nächste zeit laden...

    muss nicht genau stimmen, kann grad nicht nachschaun, bin grad heim und nicht mehr ganz nüchtern...

  5. #4
    Join Date
    16.06.2003
    Location
    88356 Ostrach
    Posts
    5,006
    Danke
    1,346
    Erhielt 1,168 Danke für 550 Beiträge

    Default

    ich glaub das es es hex war sag noch bescheid...

  6. #5
    Join Date
    14.01.2004
    Location
    Hattorf
    Posts
    3,251
    Danke
    297
    Erhielt 312 Danke für 266 Beiträge

    Default

    hallo, die s5 time setzt sich so zusammen: 0-11 bit zeitwert in bcd codiert,
    also 0-999. bit 12+13 den zeitfaktor.bit 14+15 ohne bedeutung.
    also wenn man nach bcd codiert kann man ohne bit 12+13 zu setzen von 10ms-9990ms einstellen. der befehl lautet in awl itb.
    ich hoffe das hilft erstmal weiter.

  7. #6
    Join Date
    12.07.2005
    Location
    Bärlin
    Posts
    1,035
    Danke
    258
    Erhielt 170 Danke für 117 Beiträge

    Default

    Heißt das, daß ich mit Bit 12/13 den Faktor von "ms" auf "s", "min" oder "h" umstellen kann? Und wenn ja: 12 und 13 =1 bedeutet Stunde?
    Beispiel:

    Ich möchte einen Wert von 1-99 Stunden vom Bediener vorgeben lassen, der liegt in einem DB. Standardmäßig koppelt mir STEP7 den Wert als "ms" an den Zeibaustein, wenn ich den also vorher mit "001100000000000" verunde, hätte ich den entsprechenden Wert in Stunden?

    Gruß

    Holger

  8. #7
    Join Date
    27.10.2005
    Location
    Schwäbisch Gmünd
    Posts
    5,629
    Danke
    698
    Erhielt 996 Danke für 809 Beiträge

    Default

    Dort wird der Zeitfaktor eingestellt:
    00 = 10 ms
    01 = 100 ms
    10 = 1000 ms = 1 s
    11 = 10 s
    Daraus ergibt sich eine Zeit zwischen 10 ms bis 9990 s. Dies hat nichts mit Stunden, Minuten oder Sekunden direkt zu tun.
    Rainer Hönle
    DELTA LOGIC GmbH

    Die Kritik an anderen hat noch niemandem die eigene Leistung erspart (Noël Coward)

  9. #8
    Join Date
    12.07.2005
    Location
    Bärlin
    Posts
    1,035
    Danke
    258
    Erhielt 170 Danke für 117 Beiträge

    Default

    Ach ja richtig, 9990 s Maximum, da war doch was ...

    Da werd' ich wohl einen von den IEC-Timer nehmen, die werden im übrigen bei den SIEMENS-Kursen komplett links liegengelassen .

    Gruß

    Holger

  10. #9
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,817
    Danke
    748
    Erhielt 3,131 Danke für 2,234 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Im Forum gibt es eine FAQ und eine Suchfunktion!

    http://www.esatex.com/SPS-Forum/showthread.php?t=2942

    Diese sollte man zuerst bemühen. Wer weiß, wo die Informationen stehen sollte ruhig auch darauf hinweisen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Similar Threads

  1. Step 7 Integer in Double Integer umwandeln
    By Anger in forum Simatic
    Replies: 8
    Last Post: 05.02.2015, 08:08
  2. Step 7 Berechneten INT-Wert in S5Time umwandeln
    By blubbb in forum Simatic
    Replies: 15
    Last Post: 24.09.2013, 08:42
  3. Long Integer in Real Wert umwandeln
    By ThermoFisher in forum Simatic
    Replies: 7
    Last Post: 24.10.2011, 16:31
  4. S5TIME in INTEGER?
    By Felse in forum Simatic
    Replies: 17
    Last Post: 12.03.2009, 12:06
  5. Integer Wert in Hex umwandeln
    By tomatensaft in forum Simatic
    Replies: 9
    Last Post: 15.12.2006, 16:21

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •