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

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

Thema: Real -> Word

  1. #1
    Registriert seit
    11.06.2007
    Beiträge
    1
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Hab folgendes Problem:
    (Standard- CPU 315/2DP & Step7-Version K5.3.3.0)

    Ein Netzanalysator (als DP-Slave) liefert als Messwerte- über ProfibusDP- nur REAL- Zahlen. Insgesammt habe ich 175 solche Messwerte, die über einige SFC14 ("DPRD_DAT")- Aufrufe eingelesen und in einen Datrenbaustein geschoben werden müssen. Ziel ist ein bereits existierender Datenbaustein, in dem nicht mehr viel Platz und nur WORD- Variablen vorhanden sind. Der Datenbaustein überträgt sehr viele Daten an ein RS3- System, und sollte keinesfalls neu eingespielt werden. Ergo habe ich nicht die Möglichkeit, auf INT umzustellen.

    Also:
    Gibt es eine Möglichkeit, um REAL in WORD umzuwandeln?

    Hilfe!!!

    Cope.
    Zitieren Zitieren Real -> Word  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Ein möglicher Befehl wäre RND+.
    Der wandelt in eine Ganzzahl. Du musst dann nur aufpassen, dass du keinen Überlauf bekommst ...
    Falls du aber die REAL-Funktionalität erhalten willst, dann gibt es keine Möglichkeit ...

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Cope (11.06.2007)

  4. #3
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Wenn Deine REAL-Zahlen im INT-Bereich (–32 768 bis +32 767) liegt, sollte folgendes funktionieren:

    Code:
          L     DB10.DBD    0               // REAL-Zahl
          RND   
          T     MD   100                    // DINT-Zahl
          L     MW   102                    // INT-Zahl
          T     DB12.DBW    0
    Gruß Kai

  5. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    Cope (11.06.2007)

  6. #4
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    Wenn Deine REAL-Zahlen im INT-Bereich (–32 768 bis +32 767) liegt, sollte folgendes funktionieren:

    Code:
          L     DB10.DBD    0               // REAL-Zahl
          RND   
          T     MD   100                    // DINT-Zahl
    U M100.7
    = M102.7
          L     MW   102                    // INT-Zahl
          T     DB12.DBW    0
    Hallo, das Vorzeichenbit steht bei DINT im Bit15 !
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Vorzeichenbit ist verschwunden  

  7. Folgender Benutzer sagt Danke zu Werner54 für den nützlichen Beitrag:

    Cope (12.06.2007)

  8. #5
    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

    warum sollst du den db nicht neu einspielen können?

    sind darin parameter die ansonsten überschrieben werden?
    damit musst du auch rechnen wenn dir die cpu stirbt.

    deshalb bei backups immer die aktuellen db werte im projekt speichern.
    wenn vorher keine gepfuscht hat, dann sagt dein bausteinvergleich das im db nur einige werte verschieden sind.

    dann im projekt den online-partner offnen (nicht erreichbare teilnehmer!!!) der butto für den online partner ist weiter rechts.

    den db rechts anklicken, kopieren und im richtigen projekt einfügen und überschreiben.

    wenn vorher keiner gepfuscht hatte und die variablentypen gleich waren hast du im projekt einen db mit symbolik und den aktuellen werten aus der sps.


    aber auch wenn das nicht hinhaut, dann mach dir deinen wunsch db, wenn er fertig ist, dann kopier die daten mit einem profisorischen sfc20 hinein, lösche den alten und benenne den neuen um...
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  9. Folgender Benutzer sagt Danke zu Markus für den nützlichen Beitrag:

    Cope (12.06.2007)

  10. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hallo Werner,

    das Vorzeichenbit ist nicht verschwunden, mein Programmcode funktioniert auch ohne Deine Ergänzung.

    Code:
          L     DB10.DBD    0               // REAL-Zahl
          RND   
          T     MD   100                    // DINT-Zahl
          L     MW   102                    // INT-Zahl
          T     DB12.DBW    0
    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Kai (11.06.2007 um 17:40 Uhr)

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

    Cope (12.06.2007)

  12. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    ... das Vorzeichenbit ist nicht verschwunden, mein Programmcode funktioniert auch ohne Deine Ergänzung ...
    Genau, weil nämlich (vorausgesetzt der Wertebereich passt) immer alle "vorderen" Bits bei einer negativen Zahl gesetzt sind.

    Es hätte sogar auch funktioniert :
    L DB10.DBD 0 // REAL-Zahl
    RND
    L w#16#FFFF
    UW
    T DB12.DBW 0

  13. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Cope (12.06.2007)

  14. #8
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Es geht auch noch kürzer:

    Code:
          L     DB10.DBD    0               // Gleitpunktzahl (32 Bit)
          RND   
          T     DB12.DBW    0               // Ganzzahl (16 Bit)
    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

  15. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    Cope (12.06.2007)

  16. #9
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Oder in Typecast ST/SCL:

    Code:
    myINT := REAL_TO_INT(myReal);
    Auch hier ist es wichtig das der Wertebereich von myReal zwischen –32768 und +32767 liegt
    If you open your Mind too much, your Brain will fall out.

  17. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    Cope (12.06.2007)

  18. #10
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    das Problem mit dem Vorzeichen wird bei positivem Überlauf ernst.
    Dann ist 100,01% plötzlich negativ! Deswegen muß jeder Überlauf irgendwie abgefangen werden.
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren 32770  

  19. Folgender Benutzer sagt Danke zu Werner54 für den nützlichen Beitrag:

    Cope (12.06.2007)

Ähnliche Themen

  1. Word to Real
    Von Hepping im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 24.09.2011, 14:28
  2. Word to Real
    Von Gosi01 im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 23.05.2011, 13:47
  3. real in ein word wandeln
    Von Dip im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.08.2009, 11:35
  4. Umwandeln von Word in Real
    Von SPS_NEU im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.03.2009, 14:46
  5. Umwandlung Word in Real
    Von Eddie im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 14.11.2008, 17:52

Lesezeichen

Berechtigungen

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