<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/</id><updated>2020-02-27T13:47:36.691000Z</updated><subtitle>Recent posts to TCP/IP Client and connection handle issue</subtitle><entry><title>TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/?limit=25#34c9" rel="alternate"/><published>2020-02-27T13:47:36.691000Z</published><updated>2020-02-27T13:47:36.691000Z</updated><author><name>SkyRuwen</name><uri>https://forge.codesys.com/u/skyruwen/</uri></author><id>https://forge.codesys.com669577a0ac5148dfe47e5c7be21801e1f909b8f8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello Robinston,&lt;/p&gt;
&lt;p&gt;I tried your code (and I ran TCPServer always, as it was recommended, not only in the first run), but in my TCPWrite FB, I get "Invalid Handle", even if I try the other recommended issues, posted by TimvH.&lt;/p&gt;
&lt;p&gt;Did you only deleted the IF bfirst THEN-Loop - or did you some other changes in your code until it worked?&lt;/p&gt;
&lt;p&gt;Thanks in advance for your kind help.&lt;/p&gt;
&lt;p&gt;Best Regards&lt;br/&gt;
Ruwen&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/?limit=25#1df4" rel="alternate"/><published>2020-02-27T13:47:36.653000Z</published><updated>2020-02-27T13:47:36.653000Z</updated><author><name>jzhvymetal</name><uri>https://forge.codesys.com/u/jzhvymetal/</uri></author><id>https://forge.codesys.com0427e45ad2b2951e889ee071067197aac2376e58</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I would recommend using the OsCat Network Library it has been tested and validated.  You can use the IP_CONTROL FB's to implement you own TCP SERVER.&lt;/p&gt;
&lt;p&gt;You have to be signed in to download.  This has been updated for CoDeSys V3.&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://www.oscat.de/community/index.php/topic,1784.0.html" rel="nofollow"&gt;http://www.oscat.de/community/index.php ... 784.0.html&lt;/a&gt; m &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/?limit=25#5042" rel="alternate"/><published>2020-02-27T13:47:36.616000Z</published><updated>2020-02-27T13:47:36.616000Z</updated><author><name>Robiston</name><uri>https://forge.codesys.com/u/robiston/</uri></author><id>https://forge.codesys.com833cb07617b594aa096b0f906a225ec780323805</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hey TimvH,&lt;/p&gt;
&lt;p&gt;"Always call the TCPServer FB (not just the first scan) with xEnable TRUE" helped me out! &lt;/p&gt;
&lt;p&gt;Thank you for your help!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/?limit=25#bc93" rel="alternate"/><published>2020-02-27T13:47:36.570000Z</published><updated>2020-02-27T13:47:36.570000Z</updated><author><name>timvh</name><uri>https://forge.codesys.com/u/timvh/</uri></author><id>https://forge.codesys.coma22ac01e777d0c1ed5fc41fa188a8ba221b711e0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm not 100% sure, but here some things that might help:&lt;br/&gt;
- Always call the TCPServer FB (not just the first scan) with xEnable TRUE.&lt;br/&gt;
- Enable the TCPConnection when the TCPServer handle is not invalid or 0.&lt;br/&gt;
- Execute the TCPWrite FB when the TCPConnection is Active (not when it is done)&lt;br/&gt;
- An Execute input of the FB is a trigger to start it, therefore the data is only send once in your application. Replace the TRUE for a puls generator or something similar.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>TCP/IP Client and connection handle issue</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4709bc3aa0/?limit=25#ddce" rel="alternate"/><published>2020-02-27T13:47:36.345000Z</published><updated>2020-02-27T13:47:36.345000Z</updated><author><name>Robiston</name><uri>https://forge.codesys.com/u/robiston/</uri></author><id>https://forge.codesys.com657876974776b34d88cb6a9f050d3f1090921b6b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am currently working on a TCP/IP implementation in CoDeSys V3, whereas the IEC61131-3 program has to be the server. For whatever reason, it is not possible to receive any data from the point of view of TCP client, even though a working connection could be established. &lt;br/&gt;
I am using the NetBaseServices.&lt;/p&gt;
&lt;p&gt;Please refer to the following code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="nv"&gt;HEADER&lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;
&lt;span class="nv"&gt;PROGRAM&lt;/span&gt; &lt;span class="nv"&gt;TCP_Client&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt; 
   &lt;span class="nv"&gt;bFirst&lt;/span&gt;: &lt;span class="nv"&gt;BOOL&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;My_Data&lt;/span&gt;: &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="mi"&gt;4&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;BYTE&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; [&lt;span class="mi"&gt;0&lt;/span&gt;,&lt;span class="mi"&gt;1&lt;/span&gt;,&lt;span class="mi"&gt;2&lt;/span&gt;,&lt;span class="mi"&gt;3&lt;/span&gt;,&lt;span class="mi"&gt;4&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
 
   &lt;span class="nv"&gt;NBS_IP_Adress&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;; &lt;/span&gt;
   
   &lt;span class="nv"&gt;TCPClient&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;TCP_Client&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPClient_xDone&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;TCPClient_xBusy&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;TCPClient_eError&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;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPClient_xActive&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;TCPClient_hConn&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;;&lt;/span&gt;
   
   &lt;span class="nv"&gt;TCPServer&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;TCP_Server&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPServer_xDone&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;TCPServer_xBusy&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;TCPServer_eError&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;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPServer_xError&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;TCPServer_hServer&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;;&lt;/span&gt;
   
   &lt;span class="nv"&gt;TCPConnection&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;TCP_Connection&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPConnection_xDone&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;TCPConnection_eError&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;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPConnection_xActive&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;TCPWrite&lt;/span&gt; : &lt;span class="nv"&gt;NBS&lt;/span&gt;.&lt;span class="nv"&gt;TCP_Write&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPWrite_xDone&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;TCPWrite_xBusy&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;TCPWrite_eError&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;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPWrite_xError&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;END_VAR&lt;/span&gt; 
&lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="nv"&gt;PROGRAM&lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;bFirst&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; 
   &lt;span class="nv"&gt;bFirst&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   
   &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;CoDeSys&lt;/span&gt; &lt;span class="nv"&gt;Automation&lt;/span&gt; &lt;span class="nv"&gt;Alliance&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CAA&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;Interfaces&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;NetBaseServices&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;NBS&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; 
   &lt;span class="nv"&gt;NBS_IP_Adress&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;192.168.178.39&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;TCPServer&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;ipAddr&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;NBS_IP_Adress&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;61002&lt;/span&gt;,
      &lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPServer_xDone&lt;/span&gt;,
      &lt;span class="nv"&gt;xBusy&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPServer_xBusy&lt;/span&gt;,
      &lt;span class="nv"&gt;eError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPServer_eError&lt;/span&gt;,
      &lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPServer_xError&lt;/span&gt;,
   &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt; 
&lt;span class="nv"&gt;My_Data&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;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;0&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;; &lt;/span&gt;
&lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;1&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;; &lt;/span&gt;
&lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;2&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;2&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;; &lt;/span&gt;
&lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;3&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;3&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;; &lt;/span&gt;
&lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;4&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;My_Data&lt;/span&gt;[&lt;span class="mi"&gt;4&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;; &lt;/span&gt;
&lt;span class="nv"&gt;TCPConnection&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;hServer&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TCPServer&lt;/span&gt;.&lt;span class="nv"&gt;hServer&lt;/span&gt;,
   &lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPConnection_xDone&lt;/span&gt;,
   &lt;span class="nv"&gt;eError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPConnection_eError&lt;/span&gt;,
   &lt;span class="nv"&gt;xActive&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPConnection_xActive&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;TCPConnection&lt;/span&gt;.&lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;TCPWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;
      &lt;span class="nv"&gt;xExecute&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;hConnection&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TCPConnection&lt;/span&gt;.&lt;span class="nv"&gt;hConnection&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;My_Data&lt;/span&gt;&lt;span class="ss"&gt;)&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;My_Data&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,
      &lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPWrite_xDone&lt;/span&gt;,
      &lt;span class="nv"&gt;xBusy&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPWrite_xBusy&lt;/span&gt;,
      &lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPWrite_xError&lt;/span&gt;,
      &lt;span class="nv"&gt;eError&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;TCPWrite_eError&lt;/span&gt;
   &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   &lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Do you have an idea what is wrong with my implementation?&lt;br/&gt;
Thanks in advance for your kind support.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Robert&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>