<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Nullterminierung in STRING finden - Wie?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/dd85ae82ba/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/dd85ae82ba/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/dd85ae82ba/</id><updated>2020-02-28T09:08:41.008000Z</updated><subtitle>Recent posts to Nullterminierung in STRING finden - Wie?</subtitle><entry><title>Nullterminierung in STRING finden - Wie?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/dd85ae82ba/?limit=25#7c9e" rel="alternate"/><published>2020-02-28T09:08:41.008000Z</published><updated>2020-02-28T09:08:41.008000Z</updated><author><name>Martin Wunsch</name><uri>https://forge.codesys.com/u/martin-wunsch/</uri></author><id>https://forge.codesys.com9270b28bbcfc3bf7eb4da656560525f93afd211c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Wenn der Emfangsbaustein keinen Status "Nullterminierung" kennt oder keinen Wert "Anzahl der Daten im Paket" liefert, woraus man erkennen kann, "nur 80 von maximal 120 Bytes im Paket = Ende", hat man zwei Möglichkeiten:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Man definiert sich ein eindeutiges Zeichen, was als letztes Zeichen übertragen wird. Wird dieses Zeichen erkannt =&amp;gt; alles übertragen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Man ermittelt beim Sender die String-Länge und schickt diese dem String voran. Der Emfänger liest zuerst die Stringlänge aus und ruft den Emfangsbaustein dann so oft auf, bis die alle Zeichen des Strings empfangen wurden.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;M.Wunsch&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Nullterminierung in STRING finden - Wie?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/dd85ae82ba/?limit=25#9e11" rel="alternate"/><published>2020-02-28T09:08:34.301000Z</published><updated>2020-02-28T09:08:34.301000Z</updated><author><name>c.reps</name><uri>https://forge.codesys.com/u/c-reps/</uri></author><id>https://forge.codesys.com82bd76316fc592e18ca23ae68273876948a78186</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Gemeinschaft,&lt;/p&gt;
&lt;p&gt;ich kommuniziere mit einem Beckhoff-Identsystem per TCP/IP (Bibliothek TcpIp.lib). Die Verbindung steht, ich kann auch Daten zum BIS schicken, doch leider weiß ich nicht, wann ich alles empfangen habe. In der TwinCAT Hilfe steht:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Daten können in einem TCP/IP-Netzwerk fragmentiert (in mehreren Paketen) empfangen oder verschickt werden. Es ist also möglich, dass nicht alle Daten auf einmal mit einem Aufruf der Instanz von FB_SocketReceive empfangen werden können. Aus diesem Grund muss die Instanz zyklisch (pollend) in der SPS-Task aufgerufen werden, so lange bis alle benötigten Daten empfangen wurden. &lt;br/&gt;
...&lt;br/&gt;
Bei einem einfachen Protokoll in dem z.B. ein Nullterminierter String von einem Remote-Server empfangen werden soll, muss der Funktionsbaustein FB_SocketReceive z.B. so oft aufgerufen werden, bis in den empfangenen Daten die Nullterminierung erkannt wurde.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wie kann ich einen STRING überprüfen, ob darin eine Nullterminierung vorkommt?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>