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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 23 von 23

Thema: Dumme Frage zu Zykluszeit

  1. #21
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen lieben Dank für die Hilfe. Ich arbeite mit V 3.5. Ich werde morgen mal die Lösungen ausprobieren, mal sehen wie weit ich komme.

  2. #22
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Für alles ab Codesys 2.x ist das was du geschrieben hast falsch.
    OK, habe dieses Beispiel nicht selber ausprobiert sorry. Es ging mir eher darum auf zu zeigen, was beim Rechnen intern passieren (kann)...

    Aber hier ein Beispiel wo es eben nicht klappt, und dass sind dann die richtig miesen Fehler zum suchen: (TwinCAT 2.11)
    Code:
    rResultat := 1/10;   -> Resultat in der REAL-Variable 'rResultat' ist 0.0
    rResultat := 1/10.0  -> Resultat in der REAL-Varibale 'rResultat' ist 0.1
    Ich persönlich finde, es gehört zum guten Stil eines Programmieres, die Typen immer selber zu casten...
    -> Dann überlegt Mann/Frau sich nämlich, was genau passiert!

  3. #23
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von gloeru Beitrag anzeigen
    OK, habe dieses Beispiel nicht selber ausprobiert sorry. Es ging mir eher darum auf zu zeigen, was beim Rechnen intern passieren (kann)...

    Aber hier ein Beispiel wo es eben nicht klappt, und dass sind dann die richtig miesen Fehler zum suchen: (TwinCAT 2.11)
    Code:
    rResultat := 1/10;   -> Resultat in der REAL-Variable 'rResultat' ist 0.0
    rResultat := 1/10.0  -> Resultat in der REAL-Varibale 'rResultat' ist 0.1
    Ich persönlich finde, es gehört zum guten Stil eines Programmieres, die Typen immer selber zu casten...
    -> Dann überlegt Mann/Frau sich nämlich, was genau passiert!
    Was überrascht dich denn an dem Ergebnis?
    1 ist eine Ganzzahlkonstante, und 10 ebenfalls. D.h. die Division wird auch auf Ganzzahlen durchgeführt.
    Danach erfolgt die Zuweisung auf eine Gleitkommazahl, und genau an diesem Punkt passen die Datentypen nicht mehr zusammen. Dass das Ergebnis automatisch in den anderen Datentyp konvertiert wird ist eine Codesys-Entscheidung, die IEC Norm sieht das überhaupt nicht vor. Ohne diese Konvertierung wäre ein "rResultat := 1;" schon ein Fehler, wenn rResultat vom Datentyp REAL ist.

    Guter Stil sind keine sinnlosen Typcasts, sondern gleich die passenden Literale zu verwenden. In deinem zweiten Beispiel: 1.0 / 10.0

Ähnliche Themen

  1. Mal ne dumme Frage
    Von roman06 im Forum Stammtisch
    Antworten: 30
    Letzter Beitrag: 07.02.2015, 02:33
  2. Dumme Frage UND-Verknüpfung
    Von student2010 im Forum Programmierstrategien
    Antworten: 26
    Letzter Beitrag: 01.02.2011, 11:56
  3. Dumme Frage zu USB - MPI Adapter
    Von Killereintopf im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 28.12.2006, 13:33
  4. Dumme Frage zu Timern.
    Von Tigerkroete im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 31.08.2006, 09:26
  5. Dumme Frage
    Von Anonymous im Forum Simatic
    Antworten: 52
    Letzter Beitrag: 28.09.2005, 23:18

Lesezeichen

Berechtigungen

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