Problem mit Rechenoperation

-ASDF-

Level-1
Beiträge
235
Reaktionspunkte
8
Sers Forum

Mein Problem:
Das Programm wird bis zu einem bestimmten Moment ausgeführt, doch dann werden die Rechenoperationen nicht mehr bearbeitet... Warum?
PLCSIM bleibt weiterhin auf RUN.

Hier das Prog:

 

Anhänge

  • 15312.jpg
    97,4 KB · Aufrufe: 3
Zuletzt bearbeitet von einem Moderator:
Sers Forum

Mein Problem:
Das Programm wird bis zu einem bestimmten Moment ausgeführt, doch dann werden die Rechenoperationen nicht mehr bearbeitet... Warum?
PLCSIM bleibt weiterhin auf RUN.

Hier das Prog:

Anhang anzeigen 15312

und welche operation wird jetzt nicht ausgeführt?

1720000 + 0,035 ?

= 1720000,035

in einer sinnvollen exponentialdarstellung? 1,720 * 10^6
 
Also ich hab angefangen bei 0.0 + 0.035 und das mit jedem Zyklus (0.035 + 0.035 + 0.035etc... naja das siehst du ja selber) aber jetzt fürht er nichts mehr aus also Akku 1 und 2 ändern sich nicht mehr.
 
Ja erklär mir mal bitte wann/warum es stoppt und wann/warum es dann "weiter" geht... Ich will es verstehen.
 
es stoppt nicht, es wird nur nicht dargestellt, weil es schlicht nicht darstellbar ist...
 
Hallo,
eine Real-Zahl wird immer zur einer Exponential-Darstellung mit einer Vorkommastelle und 6 Nachkommastellen umgebastelt. Solange du deine Zahl so darstellen kannst ist alles gut. Danach fängt er an die überzähligen Nachkommastellen zu ignorieren - bildlich gesprochen.

Gruß
Larry
 
Ja aber wenn ich das wie folgt programmier müsste der Wert doch trotzdem weiterhin von 0-100 und wieder 100-0 zählen... tut er aber nicht.

L #In
COS
L 5.000000e+001
*R
L 5.000000e+001
+R
RND
T #Out


und mit wert zwischen speichern gehts scheinbar auch nicht.
 
Es ist nicht möglich was du vorhast.

Ein 32-bit REAL besteht von ein Mantissa und ein Exponent.
Die Mantissa hat nur 7 Dezimalen:

-3.402 823E+38 to -1.175 495E-38 ... 0 ... +1.175 495E-38 to +3.402 823E+38
 
Dein grösser als oder gleich 3.402 823E+38 wird nicht funktionieren.
Grösser als 3.402 823E+38 gibts nicht.
Gleich 3.402 823E+38 wäre ein unwahrscheinlicher Zufall.
 
Ja da hast du Recht aber das ding ist das er nicht mal in die Nähe davon kommt sondern davor "nicht mehr weiter rechnet"
 
Ach ich hab einfach nur ein bisschen mit dieser "Kreisenden Zahl" (0-100-0) COS *50 +50 gespielt und da ist mir dies eben aufgefallen.

Da ich Azubi bin und es ja meine Pflicht ist was zu lernen wollte ich eben mal genauer nachschuen woran das liegt... aber leider bin ich von selber nicht auf die Lösung gekommen -> Forum
 
Aber viele dank ich habe das jetzt glaub ich verstanden

Also wenn die Zahl vor dem komma zu groß wird (6 Stellen) Rundet dieCPU und da nach dem komma dann ja was kleineres als ,5 steht und ich nur mit 0,035 addier rundet er wieder und wieder auf ,0 ab und die Zahl verädnert sich nicht.

Würde ich jetzt mit ,5 addieren würde die CPU weiter addieren.

Richtig so ?
 
Genau !

edit: Um 100% richtig zu sein:
Der Mantisa muss innerhalb von "+/-3.402 823" liegen können. Also, über 6 Dezimalen fängen die Probleme mit Rundungen an.
___________
 
Zuletzt bearbeitet:
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…