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

Ergebnis 1 bis 9 von 9

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

  1. #1
    Anonymous Gast

    Standard


    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
    Zitieren Zitieren Gelöst: 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

    Standard

    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
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    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
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

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

  6. #5
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    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
    Registriert seit
    12.07.2005
    Ort
    Bärlin
    Beiträge
    956
    Danke
    238
    Erhielt 154 Danke für 108 Beiträge

    Standard

    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
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    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

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  9. #8
    Registriert seit
    12.07.2005
    Ort
    Bärlin
    Beiträge
    956
    Danke
    238
    Erhielt 154 Danke für 108 Beiträge

    Standard

    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
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    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

Ähnliche Themen

  1. Long Integer in Real Wert umwandeln
    Von ThermoFisher im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.10.2011, 16:31
  2. Char umwandeln in Integer
    Von viperserver im Forum Simatic
    Antworten: 47
    Letzter Beitrag: 07.03.2011, 15:23
  3. Integer in S5Time wandeln
    Von Nethacks im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.08.2009, 09:46
  4. S5TIME in INTEGER?
    Von Felse im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 12.03.2009, 12:06
  5. Integer Wert in Hex umwandeln
    Von tomatensaft im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 15.12.2006, 16:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •