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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 47

Thema: Wandlung Real zu Int

  1. #21
    Registriert seit
    06.06.2006
    Beiträge
    68
    Danke
    15
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @ Gerhard, zunächst erst mal vielen Dank für deine Hilfe!!!!!!

    Ich habe den Code 1:1 übernommen und im Moment wird das DBD0 gar nicht mehr übertragen und das nächsten Word (DBD4) kommt nach wie vor erst im übernächsten Word an.
    Außerdem übertrage ich eine "1" wird die Wertigkeit "16256" im INT empfangen.

    Gruß Gerhard


  2. #22
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    sofern der bereich -32768 ... 32767 eingehalten wird...
    Und wenn nicht, bringt mir das DTB und BTI auch nichts!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. #23
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Und wenn nicht, bringt mir das DTB und BTI auch nichts!
    doch, jetzt mal abgesehen davon, dass BTI nur -999..999 kann würde eine Zahl außerhalb des Wertebereiches den Aufruf von OB121 erwirken und somit eine Fehlerbehandlung gestatten...
    worauf ich hinaus wollte: bevor man den RND-Wert in ein INT quetscht sollte man vielleicht über eine bereichskonsistenzprüfung nachdenken...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. Folgende 3 Benutzer sagen Danke zu vierlagig für den nützlichen Beitrag:

    Gerhard K (07.03.2011),GerhardPtl (07.03.2011),Jochen Kühner (07.03.2011)

  5. #24
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    doch, jetzt mal abgesehen davon, dass BTI nur -999..999 kann würde eine Zahl außerhalb des Wertebereiches den Aufruf von OB121 erwirken und somit eine Fehlerbehandlung gestatten...
    worauf ich hinaus wollte: bevor man den RND-Wert in ein INT quetscht sollte man vielleicht über eine bereichskonsistenzprüfung nachdenken...
    Hatte Ich nicht gewusst, das dann ein OB aufgerufen wird (hat da auch nicht weiter drüber nachgedacht). Ich würde, wenn dies vorkommen kann, jedoch auch eine Bereichsprüfung direkt hier im Code als im OB 121 vorziehen!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  6. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    GerhardPtl (07.03.2011)

  7. #25
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    Code:
    L 0
    T #index2
    L 0
    T #index
    do: NOP 0
    L #index
    SLD 3
    LAR1 
     
    L #index2
    SLD 3
    LAR2
    
    AUF "Remote_MW"
    L DBD [AR1,P#0.0]
    RND 
    AUF "DB LDD2"
    T DBW [AR2,P#80.0]
    L 2
    L index2
    +I
    T index2
    L 4
    L #index
    +I 
    T #index
    L 32
    >I 
    SPB end
    SPA do
    end: NOP 0
    Mein Fehler!Beschreib den index2 auch außerhalb der Schleife mit dem Anfangswert. Wird ja immer überschrieben.
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

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

    GerhardPtl (07.03.2011)

  9. #26
    Registriert seit
    06.06.2006
    Beiträge
    68
    Danke
    15
    Erhielt 0 Danke für 0 Beiträge

    Standard

    VIELEN DANK AN ALLE FÜR EURE UNTERSTÜTZUNG!!!

    Habe mit kleinen kosmetischen Eingriffen alles in den Griff bekommen!


  10. #27
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Kann sein das ich mich irre, aber ich glaube das bei eine "einfachen" überlauf wir "OV" gesetzt, aber OB121 wird nicht ausgeführt.
    Ein test wird das abklären (wäre für mich auch interessant).

    Aber wer wird mit 0..999 zufrieden ?
    Problematisch ist das bei RND werden die DINT grenzen überwacht, aber nicht die INT Grenzen. Ist also nicht genügend das OV bit zu überwachen.
    Jesper M. Pedersen

  11. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    GerhardPtl (07.03.2011)

  12. #28
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Kann sein das ich mich irre, aber ich glaube das bei eine "einfachen" überlauf wir "OV" gesetzt, aber OB121 wird nicht ausgeführt.
    Ein test wird das abklären (wäre für mich auch interessant).
    jesper, was meint "einfacher überlauf"? bei welcher funktion?
    bei RND wäre der überlauf außerhalb des Bereiches −2.147.483.648 ... 2.147.483.647 und ja, da würde
    Liegt die Zahl außerhalb des zulässigen Bereichs, werden die Statusbits OV und OS auf "1" gesetzt.
    zutreffen ... damit biste aber noch nicht bei INT ...

    der OB121 wird bei der funktion BTI aufgerufen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  13. #29
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Ja, darin liegt das Problem.
    −2.147.483.648 ... 2.147.483.647 ist zu weit.
    0 ... 999 ist sicherlich zu eng.

    Bin gerade am testen um zu sehen ob man irgendwie OV auslösen kann, wenn ausserhalb von -32768 ... +32767.
    Jesper M. Pedersen

  14. #30
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von JesperMP Beitrag anzeigen
    Ja, darin liegt das Problem.
    −2.147.483.648 ... 2.147.483.647 ist zu weit.
    0 ... 999 ist sicherlich zu eng.

    Bin gerade am testen um zu sehen ob man irgendwie OV auslösen kann, wenn ausserhalb von -32768 ... +32767.
    wo du sowieso grad am testen bist:

    Code:
    *
          L      #zuIntZuWandelndeZahl
          L      0
          +I
    sollte IMHO OV setzen, wenn #zuIntZuWandelndeZahl außerhalb des Bereiches ist
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Wandlung 32Bit Real nach 16Bit Gleitkomma
    Von BadTaste im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.10.2017, 14:03
  2. DTR - Ganzzahl-Wandlung to real - AWL
    Von schneijo im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 26.08.2011, 16:19
  3. Wandlung Zahlenwerte
    Von Martin L. im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 10.04.2009, 20:05
  4. Wandlung von Real => INT
    Von Heinz im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.07.2005, 12:33
  5. Wandlung WSCAD -> Eplan
    Von PeterEF im Forum E-CAD
    Antworten: 12
    Letzter Beitrag: 25.01.2005, 22:06

Lesezeichen

Berechtigungen

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