<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/</id><updated>2020-02-28T01:07:25.019000Z</updated><subtitle>Recent posts to UDP Multicast empfangen - wie geht es wirklich?</subtitle><entry><title>UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/?limit=25#f9a5" rel="alternate"/><published>2020-02-28T01:07:25.019000Z</published><updated>2020-02-28T01:07:25.019000Z</updated><author><name>skynet</name><uri>https://forge.codesys.com/u/skynet/</uri></author><id>https://forge.codesys.com7dbc7b0ca0f91408fcd0511cd3ca5ec3436450e2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;ja...es hat geklappt. Wichtig war jedoch: der UDP Port muss im TouchTerminal aktiviert werden   &lt;/p&gt;
&lt;p&gt;Vielen Dank!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/?limit=25#ad83" rel="alternate"/><published>2020-02-28T01:07:20.013000Z</published><updated>2020-02-28T01:07:20.013000Z</updated><author><name>Chris.O</name><uri>https://forge.codesys.com/u/chris-o/</uri></author><id>https://forge.codesys.comf250592275991710ba339e05d89188632747592e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Und hats geklappt?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/?limit=25#7b18" rel="alternate"/><published>2020-02-28T01:07:18.160000Z</published><updated>2020-02-28T01:07:18.160000Z</updated><author><name>skynet</name><uri>https://forge.codesys.com/u/skynet/</uri></author><id>https://forge.codesys.com8ad021dbfe7524d2af6c9425923e4c69fa0fa625</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Danke Chris, ich veruche es einmal.&lt;/p&gt;
&lt;p&gt;Viele Grüße!&lt;br/&gt;
Nico&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/?limit=25#4db3" rel="alternate"/><published>2020-02-28T01:07:13.014000Z</published><updated>2020-02-28T01:07:13.014000Z</updated><author><name>Chris.O</name><uri>https://forge.codesys.com/u/chris-o/</uri></author><id>https://forge.codesys.com7c594601acf6bef0481f14cc0a07f19be3388d62</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;mit Multicast habe ich das noch nicht probiert... aber UDP auf eine bestimmte IP habe ich schon mal gemacht:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
   &lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;               //Connect to other system (only at first block)&lt;/span&gt;
   &lt;span class="nv"&gt;xSendData&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;               //Allow to send Data &lt;/span&gt;
   &lt;span class="nv"&gt;xReadData&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;               //Allow to read Data&lt;/span&gt;
   &lt;span class="nv"&gt;tSendIntervall&lt;/span&gt;:&lt;span class="nv"&gt;TIME&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="sc"&gt;#100&lt;/span&gt;&lt;span class="nv"&gt;MS&lt;/span&gt;&lt;span class="c1"&gt;;    // send intervall: standard is 200ms interval&lt;/span&gt;
   &lt;span class="nv"&gt;udiStartAddr&lt;/span&gt;:&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;            // Start address of Sync-List to Slave&lt;/span&gt;
   &lt;span class="nv"&gt;udiEndAddr&lt;/span&gt;:&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;            // End address of Sync-List to Slave&lt;/span&gt;
   &lt;span class="nv"&gt;sOtherIPAdr&lt;/span&gt;:&lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="c1"&gt;;            //IP-address of other System&lt;/span&gt;
   &lt;span class="nv"&gt;sOwnIPAdr&lt;/span&gt;:&lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="c1"&gt;;            //IP-address of own System&lt;/span&gt;
   &lt;span class="nv"&gt;uiport&lt;/span&gt;: &lt;span class="nv"&gt;UINT&lt;/span&gt;&lt;span class="c1"&gt;;                //port number for comunication&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_OUTPUT&lt;/span&gt;
   &lt;span class="nv"&gt;xConnectionDone&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;         // Output = TRUE if Connection is established&lt;/span&gt;
   &lt;span class="nv"&gt;xConnectionBusy&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;         // Output = TRUE if there it try to establish the Connection&lt;/span&gt;
   &lt;span class="nv"&gt;xConnectionError&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;         // Output = TRUE if there is a connection error&lt;/span&gt;
   &lt;span class="nv"&gt;xSendDone&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;               // Output = TRUE if data were send&lt;/span&gt;
   &lt;span class="nv"&gt;xSendBusy&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;               // Output = TRUE if data exchange is in progress&lt;/span&gt;
   &lt;span class="nv"&gt;xSendError&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;            // Output = TRUE if data exchange failed&lt;/span&gt;
   &lt;span class="nv"&gt;eSendError&lt;/span&gt;:&lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;ERROR&lt;/span&gt;&lt;span class="c1"&gt;;         // Defined Errors of Struct in NBS.ERROR&lt;/span&gt;
   &lt;span class="nv"&gt;xReceiveBusy&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;            // Receive currently active&lt;/span&gt;
   &lt;span class="nv"&gt;xReceiveError&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;            // Receive error&lt;/span&gt;
   &lt;span class="nv"&gt;eReceiveError&lt;/span&gt;:&lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;ERROR&lt;/span&gt;&lt;span class="c1"&gt;;      // Defined Errors of Struct in NBS.ERROR&lt;/span&gt;
   &lt;span class="nv"&gt;xReceiveReady&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;            // When data was read successfully&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;myUDP_Peer&lt;/span&gt;:&lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Peer&lt;/span&gt;&lt;span class="c1"&gt;;       //to connect to other System&lt;/span&gt;
   &lt;span class="nv"&gt;myUDP_Receive&lt;/span&gt;:&lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Receive&lt;/span&gt;&lt;span class="c1"&gt;;    // to receive data from other System&lt;/span&gt;
   &lt;span class="nv"&gt;myUDP_Send&lt;/span&gt;:&lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Send&lt;/span&gt;&lt;span class="c1"&gt;;       //to send data to other System&lt;/span&gt;
   &lt;span class="nv"&gt;other_ip_Addr&lt;/span&gt;: &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;IP_ADDR&lt;/span&gt;&lt;span class="c1"&gt;;    // to set IP-Address of other System&lt;/span&gt;
   &lt;span class="nv"&gt;own_ip_Addr&lt;/span&gt;: &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;IP_ADDR&lt;/span&gt;&lt;span class="c1"&gt;;       // to set IP-Address of own System&lt;/span&gt;
   &lt;span class="nv"&gt;myBlink&lt;/span&gt;:&lt;span class="nv"&gt;BLINK&lt;/span&gt;&lt;span class="c1"&gt;;                //to define send-interval&lt;/span&gt;
   &lt;span class="nv"&gt;tTimeIntervall&lt;/span&gt;:&lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="c1"&gt;;         //Time interval to send data&lt;/span&gt;
   &lt;span class="nv"&gt;peerHandle&lt;/span&gt;: &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;HANDLE&lt;/span&gt;&lt;span class="c1"&gt;;    // to identify other System&lt;/span&gt;
   &lt;span class="nv"&gt;xEnableReceive&lt;/span&gt;:&lt;span class="nv"&gt;BOOL&lt;/span&gt;   &lt;span class="c1"&gt;;         // Enable to receive Data&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c"&gt;(*--------------------*)&lt;/span&gt;
&lt;span class="c"&gt;(*Data synchronisation*)&lt;/span&gt;
&lt;span class="c"&gt;(*--------------------*)&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;Get&lt;/span&gt; &lt;span class="n"&gt;IP&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;other&lt;/span&gt; &lt;span class="n"&gt;system&lt;/span&gt;
&lt;span class="n"&gt;other_ip_Addr&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sAddr&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;sOtherIPAdr&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;own_ip_Addr&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sAddr&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;sOwnIPAdr&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;Connect&lt;/span&gt; &lt;span class="n"&gt;via&lt;/span&gt; &lt;span class="n"&gt;UDP&lt;/span&gt;
&lt;span class="n"&gt;myUDP_Peer&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xEnable&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;xEnable&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;ipAddr&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;own_ip_Addr&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;uiPort&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;uiport&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xDone&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xConnectionDone&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xBusy&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xConnectionBusy&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xError&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xConnectionError&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt; &lt;span class="n"&gt;peerHandle&lt;/span&gt;
&lt;span class="n"&gt;peerHandle&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;myUDP_Peer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;IF&lt;/span&gt; &lt;span class="n"&gt;xEnable&lt;/span&gt; &lt;span class="n"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;xConnectionBusy&lt;/span&gt; &lt;span class="n"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;xSendData&lt;/span&gt; &lt;span class="n"&gt;THEN&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;UDP&lt;/span&gt; &lt;span class="n"&gt;send&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;Send&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Input&lt;/span&gt; &lt;span class="k"&gt;have&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;devided&lt;/span&gt; &lt;span class="n"&gt;because&lt;/span&gt; &lt;span class="n"&gt;Low&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Time&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;High&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;intervall&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;tTimeIntervall&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;tSendIntervall&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;myBLink&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Enable&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TimeLow&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;tTimeIntervall&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TimeHigh&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;tTimeIntervall&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;myUDP_Send&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xExecute&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;myBLink&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OUT&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiTimeOut&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;peerHandle&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;ipAddr&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;other_ip_Addr&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;uiPort&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;uiport&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;szSize&lt;/span&gt;&lt;span class="o"&gt;:=(&lt;/span&gt;&lt;span class="n"&gt;udiEndAddr&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;udiStartAddr&lt;/span&gt;&lt;span class="c"&gt;(*+SIZEOF(udiEnd)*)&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt; &lt;span class="o"&gt;//+&lt;/span&gt;&lt;span class="n"&gt;SIZEOF&lt;/span&gt; &lt;span class="n"&gt;ist&lt;/span&gt; &lt;span class="n"&gt;auskommentiert&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt; &lt;span class="n"&gt;sonst&lt;/span&gt; &lt;span class="n"&gt;mehr&lt;/span&gt; &lt;span class="n"&gt;mitgeschickt&lt;/span&gt; &lt;span class="n"&gt;wird&lt;/span&gt; &lt;span class="n"&gt;als&lt;/span&gt; &lt;span class="n"&gt;gewollt&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;so&lt;/span&gt; &lt;span class="n"&gt;wird&lt;/span&gt; &lt;span class="n"&gt;lediglich&lt;/span&gt; &lt;span class="n"&gt;das&lt;/span&gt; &lt;span class="s2"&gt;"End-Bool"&lt;/span&gt; &lt;span class="n"&gt;nicht&lt;/span&gt; &lt;span class="n"&gt;mitgeschickt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;pData&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;udiStartAddr&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xDone&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xSendDone&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xBusy&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xSendBusy&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xError&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xSendError&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;eError&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;eSendError&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;END_IF&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;
&lt;span class="n"&gt;IF&lt;/span&gt; &lt;span class="n"&gt;xEnable&lt;/span&gt; &lt;span class="n"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;xConnectionBusy&lt;/span&gt; &lt;span class="n"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;xReadData&lt;/span&gt; &lt;span class="n"&gt;THEN&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;UDP&lt;/span&gt; &lt;span class="n"&gt;receive&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;Bei&lt;/span&gt; &lt;span class="n"&gt;fehler&lt;/span&gt; &lt;span class="n"&gt;neu&lt;/span&gt; &lt;span class="n"&gt;starten&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;IF&lt;/span&gt; &lt;span class="n"&gt;xReceiveError&lt;/span&gt; &lt;span class="n"&gt;THEN&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xEnableReceive&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;FALSE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;ELSE&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xEnableReceive&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;END_IF&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;myUDP_Receive&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xEnable&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;xEnableReceive&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;peerHandle&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;szSize&lt;/span&gt;&lt;span class="o"&gt;:=(&lt;/span&gt;&lt;span class="n"&gt;udiEndAddr&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;udiStartAddr&lt;/span&gt;&lt;span class="c"&gt;(*+SIZEOF(udiEnd)*)&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;pData&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;udiStartAddr&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xBusy&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;xReceiveBusy&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;xReceiveError&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;eError&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;eReceiveError&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;xReady&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;xReceiveReady&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Kannst ja mal versuchen, ob du damit weiter kommst.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>UDP Multicast empfangen - wie geht es wirklich?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4c947d8071/?limit=25#46f7" rel="alternate"/><published>2020-02-28T01:07:11.158000Z</published><updated>2020-02-28T01:07:11.158000Z</updated><author><name>skynet</name><uri>https://forge.codesys.com/u/skynet/</uri></author><id>https://forge.codesys.com353ca12bbc93600ad8bb64099174337378c9c7fc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;ich habe im Netz und hier im Forum nach einem Tipp oder einem Codebeispiel für den Empfang von UDP-Multicast-Datagrammen gesucht. Viele Links führen leider mittlerweile ins Leere. &lt;/p&gt;
&lt;p&gt;An einem Beispiel habe ich versucht, einen Empfang zu prüfen, aber ich denke, dass die Initialisierung von&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;UDPPeer&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;xEnable&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;xEnable&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;uiPort&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;uiPort&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;ipAddr&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;IPAddress&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;Peer&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;falsch ist. Hier gibt es ja auch den Parameter ipMulticast, aber ich habe alle Varinaten versucht, damit scheitert schon die Initialisierung ich bekomme kein handle (hPeer).&lt;/p&gt;
&lt;p&gt;Hat jemand eine Idee oder Vorschlag für mich?&lt;/p&gt;
&lt;p&gt;Vielen Dank im Voraus!&lt;br/&gt;
Nico&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;PROGRAM&lt;/span&gt; &lt;span class="nv"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
  &lt;span class="nv"&gt;eState&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
 
  &lt;span class="nv"&gt;IPAddress&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;IP_ADDR&lt;/span&gt;&lt;span class="c1"&gt;; (* IP Address *)&lt;/span&gt;
  &lt;span class="nv"&gt;uiPort&lt;/span&gt; : &lt;span class="nv"&gt;UINT&lt;/span&gt;&lt;span class="c1"&gt;; (* Port No. *)&lt;/span&gt;
  &lt;span class="nv"&gt;sReceived&lt;/span&gt; : &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="c1"&gt;; (* Holds the received message *)&lt;/span&gt;
  &lt;span class="nv"&gt;ctRecAnswers&lt;/span&gt; : &lt;span class="nv"&gt;CL2&lt;/span&gt;.&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;COUNT&lt;/span&gt;&lt;span class="c1"&gt;; (* No. of received messages *)&lt;/span&gt;
 
  &lt;span class="nv"&gt;UDPPeer&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Peer&lt;/span&gt;&lt;span class="c1"&gt;; (* FB UDP Peer *)&lt;/span&gt;
  &lt;span class="nv"&gt;XUDPPeer&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Peer&lt;/span&gt;&lt;span class="c1"&gt;; (* FB UDP Peer *)&lt;/span&gt;
  &lt;span class="nv"&gt;UDPSend&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Send&lt;/span&gt;&lt;span class="c1"&gt;; (* FB UDP Send *)&lt;/span&gt;
  &lt;span class="nv"&gt;UDPReceive&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;UDP_Receive&lt;/span&gt;&lt;span class="c1"&gt;; (* FB UDP Receive *)&lt;/span&gt;
 
  &lt;span class="nv"&gt;Peer&lt;/span&gt; : &lt;span class="nv"&gt;CL2&lt;/span&gt;.&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;HANDLE&lt;/span&gt;&lt;span class="c1"&gt;; (* Handle to the peer connection *)&lt;/span&gt;
 
  &lt;span class="nv"&gt;xEnable&lt;/span&gt; : &lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
 
  &lt;span class="nv"&gt;udpData&lt;/span&gt; :&lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;UDPPeer&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;xEnable&lt;/span&gt;, &lt;span class="nv"&gt;uiPort&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;uiPort&lt;/span&gt;, &lt;span class="nv"&gt;ipAddr&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;IPAddress&lt;/span&gt; ,&lt;span class="nv"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;Peer&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;CASE&lt;/span&gt; &lt;span class="nv"&gt;eState&lt;/span&gt; &lt;span class="nv"&gt;OF&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Init&lt;/span&gt;
&lt;span class="nv"&gt;IPAddress&lt;/span&gt;.&lt;span class="nv"&gt;sAddr&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;239.12.255.254&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;                // IP Adress where Codesys application is running&lt;/span&gt;
&lt;span class="nv"&gt;uiPort&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9522&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;eSTATE&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="mi"&gt;10&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Start&lt;/span&gt; &lt;span class="nv"&gt;listening&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;UDPPeer&lt;/span&gt;.&lt;span class="nv"&gt;xActive&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
  &lt;span class="nv"&gt;UDPReceive&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;, &lt;span class="nv"&gt;hPeer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Peer&lt;/span&gt;, &lt;span class="nv"&gt;szSize&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SIZEOF&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="nv"&gt;pData&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;UDPReceive&lt;/span&gt;.&lt;span class="nv"&gt;xReady&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
    &lt;span class="nv"&gt;udpData&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="c1"&gt;; // Data from UDP-stream&lt;/span&gt;
    &lt;span class="nv"&gt;ctRecAnswers&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ctRecAnswers&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;; // Number of UDP calls&lt;/span&gt;
  &lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;UDPReceive&lt;/span&gt;.&lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
    &lt;span class="nv"&gt;eState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="k"&gt;ELSE&lt;/span&gt;
  &lt;span class="nv"&gt;eState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="mi"&gt;20&lt;/span&gt;:
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Error&lt;/span&gt;
&lt;span class="nv"&gt;END_CASE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry></feed>