<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to darfs ein bischen mehr sein bei REAL ?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/</id><updated>2020-02-28T10:33:03.252000Z</updated><subtitle>Recent posts to darfs ein bischen mehr sein bei REAL ?</subtitle><entry><title>darfs ein bischen mehr sein bei REAL ?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/?limit=25#3f2b" rel="alternate"/><published>2020-02-28T10:33:03.252000Z</published><updated>2020-02-28T10:33:03.252000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com430ac941b29a5628b2535763b6fb3ccc7eb94662</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Bernhard Werner&lt;/p&gt;
&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;um das mal klarzustellen: in CoDeSys werden REALs nie "per Hand" verarbeitet. Entweder bietet der Prozessor bereits spezielle Befehle für Real-Operationen, oder es werden Funktionen im LZS aufgerufen.&lt;/p&gt;
&lt;p&gt;Für Genauigkeit der REAL-Verarbeitung ist entweder der Prozessor oder die math.lib im LZS verantwortlich.&lt;/p&gt;
&lt;p&gt;Bernhard&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>darfs ein bischen mehr sein bei REAL ?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/?limit=25#d7e4" rel="alternate"/><published>2020-02-28T10:33:00.666000Z</published><updated>2020-02-28T10:33:00.666000Z</updated><author><name>Denkes</name><uri>https://forge.codesys.com/u/denkes/</uri></author><id>https://forge.codesys.com675b5e03c1e6a1efcebbdcc9f0c8eccecc2d98d3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;hier mal eine Kurzübersicht über Zahlenformate:&lt;/p&gt;
&lt;p&gt;Um eine Zahl darzustellen gibt es viele Formate. Alle stehen unter folgenden "Zwängen";&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;möglichst wenig Speicherplatz&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;möglichst genaue und schnelle Rechenoperationen&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;möglichst großer Zahlenbereich&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diese Forderungen widersprechen einander, so dass es eben viele Formate gibt. &lt;/p&gt;
&lt;p&gt;Zum Format Real:&lt;/p&gt;
&lt;p&gt;Hier reicht der Zahlenbereich von ca. +/-10^(- 38) bis +/-10^(+ 38). Die Zahlen sind auf 6 Stellen nach dem Komma genau. Dafür werden je Zahl 32 Bit benötigt und es wird bei der Darstellung einigermaßen herumgetrickst (z.B. Hiddenbit, Vorzeichenbit wird weggebeamt usw.). Die Wertigkeit des wertkleinsten Bit beträgt 2^(-23)=0,0000001192.&lt;/p&gt;
&lt;p&gt;D.h. aber: keine "absolute" Genauigkeit!&lt;/p&gt;
&lt;p&gt;Beim Format LReal werden je Zahl 64 Bit verwendet. Die Folge ist ein Zahlenbereich von ca. +/-10^(- 128) bis +/-10^(+ 128), bei einer Genauigkeit von 15 Stellen nach dem Komma, also auch nicht absolut genau.&lt;/p&gt;
&lt;p&gt;Normalerweise braucht sich der Anwender um solche Fragen nicht zu kümmern. Er sollte nur das "richtige" Format verwenden. Deshalb halte ich es auch für völlig unsinnig, z.B. die Zahl Pi mit zig Stellen nach dem Komma in einem Programm zu verwenden (oscat.lib). Spezielle Anwendungen, wie z.B. das Markscheidewesen im Bergbau benötigen hochgenaue Formate, weil die exakte Position in der Regel über Dreiecksberechnungen erfolgt und bei einem sinuswert mit 6 Stellen nach dem Komma z.B. ein Autotunnel irgendwo, aber nicht am geplanten Ort wieder das Tageslicht erreichen würde.&lt;/p&gt;
&lt;p&gt;Gruß Norbert&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>darfs ein bischen mehr sein bei REAL ?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/?limit=25#56eb" rel="alternate"/><published>2020-02-28T10:32:53.787000Z</published><updated>2020-02-28T10:32:53.787000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.combfa35b838f1bf7d308bd163bcfab3e995bc3befd</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi J Schohaus &lt;/p&gt;
&lt;p&gt;Das haben sehr viele "Von Neumann" - Rechner, und Programierumgebungen .&lt;/p&gt;
&lt;p&gt;Bei Finanz-Daten ...   wo dieses NICHT sein darf, gibt es dafür speziele &lt;/p&gt;
&lt;p&gt;"Geld"-Zahlenformate.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>darfs ein bischen mehr sein bei REAL ?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8d956acde2/?limit=25#e45b" rel="alternate"/><published>2020-02-28T10:32:51.193000Z</published><updated>2020-02-28T10:32:51.193000Z</updated><author><name>J Schohaus</name><uri>https://forge.codesys.com/u/j-schohaus/</uri></author><id>https://forge.codesys.com8f0507015c5a41af1c420bbf174b96c76e33a629</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Bei arbeiten mit Real und LREAL Zahlen sind mihr Ungenauigkeiten aufgefallen.&lt;/p&gt;
&lt;p&gt;Wenn man z.B. 134,11 - 126,91 Rechnet bekommen ich als Ergebnis 7.20000000000002. ( als LRela berechnet ! )&lt;/p&gt;
&lt;p&gt;Kann jemand das erklären ?&lt;/p&gt;
&lt;p&gt;mein Beispiel Prgogramm &lt;/p&gt;
&lt;p&gt;VAR&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;X1&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LREAL&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mf"&gt;134.11&lt;/span&gt; &lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;X2&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LREAL&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mf"&gt;126.91&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;lrTest&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LREAL&lt;/span&gt; &lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;lrTest := X1 - X2 ;&lt;/p&gt;
&lt;p&gt;mfG Jochen Schohaus&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>