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

Ergebnis 1 bis 6 von 6

Thema: Wie kommt dieses Ergebnis zustande?

  1. #1
    Registriert seit
    09.12.2011
    Beiträge
    52
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich lasse in einem Programm das hier ausrechnen:

    mul1.PNG

    Mit dem Ergebnis bin ich soweit auch zufrieden.
    Dann habe ich diese Struktur kopiert und neu eingefügt und bekomme mit anderen Ausgangswerten nun dieses Ergebnis:

    mul2.PNG

    Erwartet hätte ich eigentlich 33600 als Ergebnis.
    Was mache ich falsch? Wieso kommt bei Punkt 22 131*256 als Ergebnis -32000 heraus?

    Wenn das Ergebnis mal passt, will ich das Ganze noch mit Bitshift hinbekommen. Sollte doch auch kein Drama sein... Gnnn
    (Mir ist klar, dass diese Struktur unnötige Schritte enthält. Das ist ja auch erstmal nur damit ich es grundlegend kapiere.)


    Grüße,

    Tom
    Geändert von Booner (11.04.2016 um 18:18 Uhr)
    Zitieren Zitieren Wie kommt dieses Ergebnis zustande?  

  2. #2
    Booner ist offline Benutzer
    Themenstarter
    Registriert seit
    09.12.2011
    Beiträge
    52
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hei,

    so funktioniert es nun:

    mul3.PNG

    Aber warum genau?


    Grüße,

    Tom

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Das Problem ist, das du da ziemlich wild die verschiedensten Datentypen mischst ... wegen solchen Sachen sind schon 100te Millionen teuere Weltraumraketen vom Himmel gefallen.
    https://en.wikipedia.org/wiki/Cluster_%28spacecraft%29

    Von oben nach Unten:
    SINT * SINT = SINT
    SINT * INT = INT
    SINT * DINT = DINT
    SINT * DINT = DINT
    wobei der "kleinste" Datentyp jeweils implizit zum höchsten der in der Rechnung vorkommt konvertiert wird.

    Bei "131 * 256" käme nun rechnerisch also 33536 raus, welches den Wertebereich von INT von -32768 ... 32767 verletzt, wodurch es beim IN dann folglich zum Überlauf kommt.

    In deinem Beispiel vom 2ten Beitrag findet nun also eine implizite Konvertierung von USINT -> LREAL statt.

    Mfg
    Manuel
    Geändert von MSB (11.04.2016 um 19:22 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Booner ist offline Benutzer
    Themenstarter
    Registriert seit
    09.12.2011
    Beiträge
    52
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hei,

    ahja! Vielen Dank für diese Aufklärung.
    D.h. Codesys sucht sich für eine Zahl den kleinstmöglichen Datentyp.
    Da muss ich dann wohl deutlich genauer darauf achten. Kann ja ziemlich in die Hose gehen sowas...


    Grüße,

    Tom

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Schon mal gut, daß Du Dein Programm wenigstens kritisch testest und daß Dir aufgefallen ist, daß das Ergebnis nicht stimmen kann.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    PN DP hat Recht - auch wenn du somit nie zu einem "richtigen" Programmierer wirst,.... einschalten, auf 100% Leistung drehen und Kaffepause machen. Was danach noch nicht kaputt ist war richtig programmiert

Ähnliche Themen

  1. Eaton Steuerung wie kommt Analogwert zustande?
    Von FabianHamburg im Forum Sonstige Steuerungen
    Antworten: 7
    Letzter Beitrag: 23.03.2013, 15:44
  2. Wie kommt man an eine günstige Dauerlizens für Step7
    Von Schmidt-Dasing im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.07.2012, 09:13
  3. Wie heisst dieses Bauteil ?
    Von ToBo im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 11.11.2010, 07:47
  4. Wie kommt die Bild Nr an die SPS
    Von MikeJ im Forum HMI
    Antworten: 5
    Letzter Beitrag: 30.04.2010, 06:34
  5. UDP Verbindung kommt nicht zustande
    Von quant81 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 26.07.2007, 16:02

Lesezeichen

Berechtigungen

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