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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Berechneten INT-Wert in S5Time umwandeln

  1. #1
    Registriert seit
    14.05.2013
    Beiträge
    19
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    stehe vor folgenden Problem. Ich berechne eine Zeit in ms , im Format INT und möchte diesen Wert dann in eine S5Time umwandeln. Das ganze auf der Programmiersprache SCL.

    Zurzeit nutze ich den Systembaustein FC40(unten TIM_S5TI) von Siemens den ich eingebunden habe.

    Dann sieht das so aus:

    // Umwandlung und Zuweisung Zeit
    "Zeit1 := TIM_S5TI(IN := DINT_TO_TIME (INT_TO_DINT(Zeit_Ergebniss)));"

    nur leider schneidet die Umwandlung die "einer"-Stelle ab. Hat jemand eine andere Idee oder kennt ein Trick um den "einer Bereich" mit zu übergeben?

    Lieben Gruß
    blubbb
    Zitieren Zitieren Berechneten INT-Wert in S5Time umwandeln  

  2. #2
    blubbb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2013
    Beiträge
    19
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Doppelpost - gelöscht
    Geändert von blubbb (21.09.2013 um 15:49 Uhr) Grund: Doppelpost

  3. #3
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Du solltest in deinem ursprünglichem Post weitermachen
    und dieses Doppelposting vermeiden !

    Aber dennoch: die Suchfunktion oben rechts hier auf
    dieser Seite wird dir sicher einige Lösungsmöglichkeiten
    auch für SCL aufzeigen können.

    Zur Umwandlung von INT zu S5Time kann ich dir leider
    nur diesen Hinweis (kein SCL) geben.
    kind regards
    SoftMachine

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von blubbb Beitrag anzeigen
    Nur leider schneidet die Umwandlung bzw der FC40 Baustein die "Einer"-Stell ab und ignoriert diese.

    Kann mir jemand helfen, hat einer eine Idee oder einen Tricke wie ich diese "Einer"-Stelle mit übergeben bekomme?
    Ich vermute mal, dass das Abschneiden/Ignorieren der Einer-Stelle (was auch immer Du damit genau meinst) mit dem speziellen S5Time-Format zusammen hängt.
    Das Format wird ja in Softmaschines 2. Link sehr gut erklärt, um das nach zu vollziehen.

    Daher besteht wohl die Lösung Deines Problems darin, von der Verwendung der S5-Timer auf die IEC-Timer TON, TOF usw. zu wechseln.
    Außerdem ersparst Du Dir damit die umständliche Umwandlung der Timervorgaben und eine Multiinstanzierung der Bausteine wird ebenfalls einfacher.

  5. #5
    Registriert seit
    13.03.2007
    Ort
    Nürnberg
    Beiträge
    562
    Danke
    56
    Erhielt 51 Danke für 46 Beiträge

    Standard

    INT-Wert in S5Time

    die S5Time hat 3 Stellen. Beispiele:

    a) L S5T#123ms -> in KH 0123
    b) L S5T#2S34ms -> in KH 1234 = 234ms * 10
    c) L S5T#34S5ms -> in KH 2345 = 234ms * 100

    kann sein dass ich mich jetzt um eine 10er Stelle täusche.

    korrekt ist aber dass die rechten 3 Stellen immer BCD sind.

    L #Zeit // in msa
    L 10
    /I
    ITB
    T #myS5Time

    #Zeit in ms für Werte von 000 bis 999 ergibt den S5Timerwert

    steht aber auch in der Hilfe, und im bergerbuch.
    Kabelsalat ist Gesund
    (vom CCC abgekupfert)

    Prognosen sind schwierig,
    besonders wenn sie die Zukunft betreffen.
    (Ursprung nicht wirklich bekannt)



  6. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Senator42 Beitrag anzeigen
    b) L S5T#2S34ms -> in KH 1234 = 234ms * 10
    2 Sekunden und 34 Millisekunden sind aber nicht 234ms * 10, sondern 203,4ms * 10 und genau das wird auch das Problem sein.
    Wenn bei seinem INT Werte >1000ms eingegeben werden, geht die letzte Stelle auf Grund der nötigen Multiplikation verloren.
    Also, um bei dem Beispiel zu bleiben, aus 2034ms werden dann 203 * 10ms.
    Deshalb "korrigiert" S7 übrigens auch die Eingabe S5T#2S34MS auf S5T#2S30MS.

  7. #7
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Hallo zusammen!

    Ich denke mal, der FC 40 macht das schon richtig.

    Der FC 40 wandelt das Format TIME mit Abrundung
    in das Format S5TIME.
    Das Format S5TIME kann jedoch nicht unter 10 ms
    auflösen und korrigiert dies natürlich.

    Der TE sollte also seine Berechnung des INT-Wertes
    entsprechend anpassen oder die Rundung (also seine
    fehlenden Einer-Stellen) so hinnehmen.


    Noch zur Info für die andere Richtung:

    Ist die zu wandelnde Zeit am IN-Parameter
    grösser als die grösste im S5TIME-Format
    darstellbare Zeit, gibt der FC 40 als Ergebnis
    den Wert S5TIME#999.3 heraus.

    Also darf der IN-Parameter des FC 40 nicht grösser
    als TIME#02:46:30.000 sein.

    Gruss
    Geändert von SoftMachine (20.09.2013 um 23:28 Uhr) Grund: Grammatik (kommt manchmal vor)
    kind regards
    SoftMachine

  8. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    blubbb (23.09.2013)

  9. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    Ich denke mal, der FC 40 macht das schon richtig.
    Natürlich macht der FC das richtig, deshalb möchte ich vom "warum" noch mal auf die eigentliche Frage nach der möglichen Lösung des Problems zurück kommen:
    Zitat Zitat von hucki Beitrag anzeigen
    Daher besteht wohl die Lösung Deines Problems darin, von der Verwendung der S5-Timer auf die IEC-Timer TON, TOF usw. zu wechseln.
    Außerdem ersparst Du Dir damit die umständliche Umwandlung der Timervorgaben und eine Multiinstanzierung der Bausteine wird ebenfalls einfacher.

  10. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    blubbb (23.09.2013)

  11. #9
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Hi hucki !

    Da hast du sicher recht, obwohl der TE das Ergebnis
    im Format S5TIME wünscht.

    Entweder er lebt nun mit der genannten 10ms-Auflösung
    oder schwenkt auf IEC um.

    Gruss
    kind regards
    SoftMachine

  12. #10
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von SoftMachine Beitrag anzeigen
    Entweder er lebt nun mit der genannten 10ms-Auflösung
    oder schwenkt auf IEC um.



Ähnliche Themen

  1. word in s5time umwandeln?
    Von nognogradio im Forum HMI
    Antworten: 7
    Letzter Beitrag: 20.04.2012, 13:04
  2. REAL Wert in unsigned INT umwandeln
    Von caret im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.07.2008, 18:44
  3. Umwandlung INT in S5Time (S7)
    Von Thomas12 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 23.03.2007, 15:02
  4. Integer Wert (t in ms) in S5Time umwandeln?
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.07.2006, 09:00
  5. REAL-Wert in INT umwandeln zur Analogausgabe
    Von Anonymous im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 02.06.2005, 11:38

Stichworte

Lesezeichen

Berechtigungen

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