Hi,
irgendwie lässt mir das ganze keine Ruhe. Floatingpoint ist gut, ich hab auch Funktionen für die S7 geschrieben, damit kannst Du dann auch mit größeren Zahlen rechnen IEEE 754 "double" und die entstand nicht am Tisch gegenüber
, sondern an meinen.
Die Frage ist nur was bringt dir das ob das Ding jetzt 0.0e+000 oder 1.0e-038 anzeigt?
Gruss Daniel
Was bringt es:
Beispiel: PID Regler, dort soll auf eine Regeldifferenz von 0 geregelt werden, fehlt der Zahlenbereich um die 0 herum, kann der Regler etwas unruhig werden.
Aus dem Grund hat SIEMENS in ihrem FB41 ein spezielles Konstrukt drin um genau diese "Ungenauigkeit" der 300er zu kompensieren.
Ist es notwendig:
Für manche Anwendung ja, aus dem Grund ja auch die REAL2-Bausteine in der OSCAT LIB...
Bezüglich Benchmark (und darum ging es eigentlich):
Wenn man mit einem Benchmark in diesen Bereich hineinkommt,
muss ein System mit denormalisierten Zahlen wirklich etwas tun während ein System ohne denormalisierten Zahlen einfach aufhören kann...
@Helmut:
Es gibt ja noch viel mehr Unterschiede zwischen 318/400 und den anderen 300ern:
Die Akkus sind der offensichtliche
Die fehlenden 3 Statusbits der 300er
Die falsche Abarbeitung von Sprungbefehlen in Verknüpfungsketten hinein bei der 300er
Anderes Handling von S7-Timer und Counter Befehlen bezüglich BCD Wandlungsfehlern