<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/</id><updated>2020-02-28T07:44:45.746000Z</updated><subtitle>Recent posts to Zahlenwert &lt;256 in 1 Byte wandeln</subtitle><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#4139" rel="alternate"/><published>2020-02-28T07:44:45.746000Z</published><updated>2020-02-28T07:44:45.746000Z</updated><author><name>hugo</name><uri>https://forge.codesys.com/u/hugo/</uri></author><id>https://forge.codesys.com68679588a4ea28afddd44618de0bf7ec6f1bb872</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hallo in der oscat lib rev 1.4 zum download unter  w &lt;a class="" href="http://www.oscat.de" rel="nofollow"&gt;www.oscat.de&lt;/a&gt; w &lt;/p&gt;
&lt;p&gt;findest du den baustein char() der wandelt einen bytewert in das entsprechende asccii zeichen&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#2095" rel="alternate"/><published>2020-02-28T07:44:43.366000Z</published><updated>2020-02-28T07:44:43.366000Z</updated><author><name>boling</name><uri>https://forge.codesys.com/u/boling/</uri></author><id>https://forge.codesys.comd4be3666cc813140cda8ef132decc01fb5df9eab</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Es ist tatsächlich so, dass der Befehl ASCIIBYTE_TO_STRING im Simulationsmodus nicht geht, auf der Steuerung  (750-841) hingegen schon.&lt;/p&gt;
&lt;p&gt;Die Lösung bringt mir mit 15 Byte als String nun 8 Temperaturmesswerte, die Zeit und den Status der Anlage im Journal. So kann ich alle Minuten diese Werte abspeichern und brauche nur wenig Speicher.&lt;/p&gt;
&lt;p&gt;Besten Dank fürs mitdenken und die Tips!&lt;/p&gt;
&lt;p&gt;en guete Rutsch ins 2007.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#d03f" rel="alternate"/><published>2020-02-28T07:44:40.945000Z</published><updated>2020-02-28T07:44:40.945000Z</updated><author><name>boling</name><uri>https://forge.codesys.com/u/boling/</uri></author><id>https://forge.codesys.com51637f56447ee068b03c4704e8752d73358867b7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Denkes.&lt;/p&gt;
&lt;p&gt;usint_to_string macht nicht das richtige. Ergibt lediglich die höchste Ziffer als String. Der Befehle ASCIIBYTE_TO_STRING ist in der Standardlib enthalten. Hatte bisher auch funktioniert. Bin mir nun aber nicht sicher, ob das nur im Simulationsmodus nicht geht?!? Ich werde das demnächst an der Anlage selbst testen können und melde mich dann wieder.&lt;/p&gt;
&lt;p&gt;Schöne Festtage allerseits.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#8a88" rel="alternate"/><published>2020-02-28T07:44:34.262000Z</published><updated>2020-02-28T07:44:34.262000Z</updated><author><name>Denkes</name><uri>https://forge.codesys.com/u/denkes/</uri></author><id>https://forge.codesys.come9653fcef691ddff7233b5b42f3ecad03ce9c12d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo boling&lt;/p&gt;
&lt;p&gt;nach deinem Progrämmchen steht in ergebnis kein ASCII-Zeichen sondern deine Zahl im Format USINT  &lt;/p&gt;
&lt;p&gt;Diese kannst du problemlos in einen String wandeln mit der Konvertierung BYTE_TO_STRING&lt;/p&gt;
&lt;p&gt;Eine Konvertierung ASCIIBYTE_TO_STRING gibt es meines Wissens in CoDeSys nicht.&lt;/p&gt;
&lt;p&gt;Nochmals zusammenfassend:&lt;/p&gt;
&lt;p&gt;Über die Konvertierung INT_TO_BYTE wandelst du den Messwert. Da du genau weist, dass es sich um den Wertebereich 0..255 handelt, darfst du das auch machen, obwohl Informationen verloren gehen. Jetzt steht der Messwert als abrufbare Zahl (nicht Sting) im Byte und damit ist das Ziel erreicht.&lt;/p&gt;
&lt;p&gt;Einfacher und auch schneller erscheint mir aber die folgende Lösung mit dem an dein Beispiel angelehnten Progrämmelchen (mit Variablendeklaration) &lt;/p&gt;
&lt;p&gt;VAR&lt;/p&gt;
&lt;p&gt;counter: INT;   (&lt;em&gt; Reine Zählvariable &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;ergebn: USINT; (&lt;em&gt; als Speicher im Byte-Format &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;texas: STRING; (&lt;em&gt; Test, ob sich das Gespeicherte zurücklesen lässt &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;FOR counter:=0 TO 255 BY 1 DO (&lt;em&gt; alle Zahlen 0..255 werden getestet &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;ergebn:=INT_TO_USINT(counter); (&lt;em&gt; abspeichern des "Messwertes" im Byteformat &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;texas:= USINT_TO_STRING(ergebn) ; (&lt;em&gt; Test, ob sich die Zahl lesen und zum String umwandeln lässt &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;END_FOR (&lt;em&gt; Ergebnis: Kein Fehler, also alles i.O. &lt;/em&gt;)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#4c2d" rel="alternate"/><published>2020-02-28T07:44:31.972000Z</published><updated>2020-02-28T07:44:31.972000Z</updated><author><name>boling</name><uri>https://forge.codesys.com/u/boling/</uri></author><id>https://forge.codesys.com68cfc70c394ed4eaa4cae9d75174d72197a433d6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;ja, manchmal ist es tatsächlich zu einfach, der Tip INT_TO_Byte war richtig. Ist irgendwie auch logisch, nachher...&lt;/p&gt;
&lt;p&gt;Nun komme ich aber dennoch nicht weiter. Ich möchte das Byte in String umwandeln, weil ich regelmässig ein Dutzend Temperaturen abspeichern möchte und diese Werte als String mit Zeitstempel in ein File schreiben kann.&lt;/p&gt;
&lt;p&gt;Aber nun erhalte ich beim Umwandeln in string die Fehlermeldung: Zugriff auf unerlaubte Adresse. Hier das Testprogrämmchen im Simulationsmodus (die Variablen sind korrekt deklariert)&lt;/p&gt;
&lt;p&gt;FOR counter:=0 TO 255 BY 1 DO&lt;/p&gt;
&lt;p&gt;ergebn:=INT_TO_BYTE(counter);&lt;/p&gt;
&lt;p&gt;texas:= ASCIIBYTE_TO_STRING (ergebn) ;&lt;/p&gt;
&lt;p&gt;END_FOR&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#da07" rel="alternate"/><published>2020-02-28T07:44:25.489000Z</published><updated>2020-02-28T07:44:25.489000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com9786a73d23e88b8b0b0812db4f4888f275239631</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Wenn ich mal im 1.Post nachschaue, dann finde ich da&lt;/p&gt;
&lt;p&gt;Zitat: "Aus anderen Sprachen ist dieser Befehl z.B. Char ( Wert)"&lt;/p&gt;
&lt;p&gt;Das ist doch ein casting, oder etwa nicht ?&lt;/p&gt;
&lt;p&gt;Wir haben nur die einfachste Lösung übersehen.&lt;/p&gt;
&lt;p&gt;Einfach ist eben einfach zu einfach...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#2bc5" rel="alternate"/><published>2020-02-28T07:44:23.097000Z</published><updated>2020-02-28T07:44:23.097000Z</updated><author><name>Ralph Holz</name><uri>https://forge.codesys.com/u/ralph-holz/</uri></author><id>https://forge.codesys.com1f5f3bee36e61e915a33fcca6b92ca6b39277d83</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Jetzt verstehe ich irgendwie Bahnhof!&lt;/p&gt;
&lt;p&gt;Ich komme genau zu dem gleichen Ergebniss wie Erik! Alles andere macht ihmo keine Sinn. Ein im Speicher abgelegter String benötigt die definierte Länge (also bei Deklaration als STRING  80 Byte oder als STRING(1) 1 Byte) PLUS ein zusätzliches Byte als Separator. D.h. ein 1 Byte langer String braucht 2 Byte! Spart also nichts sondern kostet eher Platz.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#f6c9" rel="alternate"/><published>2020-02-28T07:44:16.670000Z</published><updated>2020-02-28T07:44:16.670000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com69f38b637d8201cf8a5b9230cc8d6999c44d9443</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Tja, so wie ich das verstehe wäre das ja nur ein casting.&lt;/p&gt;
&lt;p&gt;also ByteWert := INT_TO_BYTE(iWert) und fertig.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#fd73" rel="alternate"/><published>2020-02-28T07:44:14.374000Z</published><updated>2020-02-28T07:44:14.374000Z</updated><author><name>Ralph Holz</name><uri>https://forge.codesys.com/u/ralph-holz/</uri></author><id>https://forge.codesys.comdc9cf0f88ed64f6ee8aac2bebe2f7d54397b7b86</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Genau das wolte ich jetzt auch vorschlagen!&lt;/p&gt;
&lt;p&gt;Variablendeklartion:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;POINTER&lt;/span&gt; &lt;span class="n"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;POINTER&lt;/span&gt; &lt;span class="n"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Code:&lt;/p&gt;
&lt;p&gt;(&lt;em&gt;ASCII Character -&amp;gt; ASCII Code&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;x:= 'b'; (&lt;em&gt;Character&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;y:= ADR(x);&lt;/p&gt;
&lt;p&gt;z:= y^; (&lt;em&gt;Code&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;(&lt;em&gt;ASCII Code -&amp;gt; ASCII Character&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;a:= 98; (&lt;em&gt;Code&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;b:= ADR(a);&lt;/p&gt;
&lt;p&gt;c:= b^; (&lt;em&gt;Character&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Naja und das ganze Schreibt man dann natürlich als Funktion.&lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Ralph&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Zahlenwert &lt;256 in 1 Byte wandeln</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d30932ad89/?limit=25#06e4" rel="alternate"/><published>2020-02-28T07:44:07.991000Z</published><updated>2020-02-28T07:44:07.991000Z</updated><author><name>boling</name><uri>https://forge.codesys.com/u/boling/</uri></author><id>https://forge.codesys.com53cc5e45508c1de198081047aef1ed39aec778f7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Erik, &lt;/p&gt;
&lt;p&gt;gerade umgekehrt, ich habe den Binärwert und möchte den platzsparend als einzelnes Zeichen (hat ja 8Bit) verpacken.&lt;/p&gt;
&lt;p&gt;Also iWert ist gleich 64 -&amp;gt; in &lt;strong&gt;ein&lt;/strong&gt; Byte umwandeln. (= Zeichen A).&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Peter&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>