<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/</id><updated>2020-02-27T13:50:30.817000Z</updated><subtitle>Recent posts to File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</subtitle><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#43a8" rel="alternate"/><published>2020-02-27T13:50:30.817000Z</published><updated>2020-02-27T13:50:30.817000Z</updated><author><name>luigisvideos</name><uri>https://forge.codesys.com/u/luigisvideos/</uri></author><id>https://forge.codesys.comc38355a75d2158eb05d9a1ae75b88a401d01fbd3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you so much.&lt;/p&gt;
&lt;p&gt;I've solved the problem using your tip and enabling all the permissions of the folder; running Codesys and RTE as ADMIN can be helpful.&lt;/p&gt;
&lt;p&gt;Thanks again.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#6e3c" rel="alternate"/><published>2020-02-27T13:50:30.318000Z</published><updated>2020-02-27T13:50:30.318000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.combf22f8cb85cac692b2e1a959be490c4fc26e750f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Another thing. In some plcs you only can write on sdcard.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#d46a" rel="alternate"/><published>2020-02-27T13:50:30.115000Z</published><updated>2020-02-27T13:50:30.115000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.com1cee99ad90003f5bfe3d782f3c90528b779c17ab</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry, left tree devices&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#f5ed" rel="alternate"/><published>2020-02-27T13:50:29.943000Z</published><updated>2020-02-27T13:50:29.943000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.com7acd9fe8ec03b5ca601a10c02d9368fd59b0ec05</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;In right tree go to device (plc). Wher the communications settings be.&lt;/p&gt;
&lt;p&gt;Down to communications settings you can see files. &lt;/p&gt;
&lt;p&gt;In files right window refresh. You can see tree folders. Go to your files folder and use the path ad you can see in location.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#f0c7" rel="alternate"/><published>2020-02-27T13:50:29.762000Z</published><updated>2020-02-27T13:50:29.762000Z</updated><author><name>luigisvideos</name><uri>https://forge.codesys.com/u/luigisvideos/</uri></author><id>https://forge.codesys.coma633aa2516a7b1dc30254efad4cb0086ecc95479</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi!&lt;br/&gt;
First of all thanks very much.&lt;/p&gt;
&lt;p&gt;Secondly, I don't think my problem is about permissions; in fact I am using windows with everything in run as admin.  Maybe the second one you cited could be it.&lt;br/&gt;
So please, could you tell me more precisely what do you mean by files in the ide's plc?  I'd like to have some more indications on the effective steps to do in Codesys.&lt;/p&gt;
&lt;p&gt;Thanks, &lt;br/&gt;
Luigi Ferrara&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#83cf" rel="alternate"/><published>2020-02-27T13:50:29.616000Z</published><updated>2020-02-27T13:50:29.616000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.com7e50a38926cf0e06449db903f379a5f090f9017b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Reading seems correct.&lt;/p&gt;
&lt;p&gt;I had some similars troubles on raspberry. The problem was in files permisions.&lt;/p&gt;
&lt;p&gt;Another problem that I had was in C300 from Lenze with rte. The problem was in file path. Use the same file path as you can see in your ide in plc part you can see your plc files.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>File reading/writing works great in simulation mode, but not in soft-PLC (RTE) mode</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/069b225ef5/?limit=25#6edb" rel="alternate"/><published>2020-02-27T13:50:29.330000Z</published><updated>2020-02-27T13:50:29.330000Z</updated><author><name>luigisvideos</name><uri>https://forge.codesys.com/u/luigisvideos/</uri></author><id>https://forge.codesys.com6c4f6a1a23d8fa96491b15a792c616bebbdc72d1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi all.&lt;/p&gt;
&lt;p&gt;My MAIN_PROG code consists of an initialization part, in which some files are read from txt files and stored in arrays, and an operative part in which values are used.&lt;br/&gt;
It should run on the RTE module and should receive and send data through my CIFX card on a profiBUS. I've coded and tested it in simulation mode (card is installed at my university laboratory) a Function Block that reads a txt file in which there is a matrix; so if the file is in the form:&lt;/p&gt;
&lt;p&gt;1 2 3&lt;br/&gt;
4 5 6&lt;br/&gt;
7 8 9&lt;/p&gt;
&lt;p&gt;it produces a bidimensional array containing those values. The program is executed in a standard cyclic task and it is the only one executing.&lt;br/&gt;
Well, in simulation mode everything works; while passing to the real run on RTE, files never get read, so returned arrays are always zero. &lt;br/&gt;
By using a step by step debugging, I discovered that the instruction:&lt;/p&gt;
&lt;p&gt;FileHandle := SysFileOpen(szFile:= FileName, am:=SysFile.AM_READ, pResult:=pResult);&lt;/p&gt;
&lt;p&gt;always produces the result: RTS_INVALID_HANDLE, even if in simulation mode this doesn't happen.&lt;/p&gt;
&lt;p&gt;How can be this problem solved? Here is the code of the function block:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;FUNCTION_BLOCK&lt;/span&gt; &lt;span class="nv"&gt;MATRIX_READER&lt;/span&gt;
&lt;span class="nv"&gt;VAR_IN_OUT&lt;/span&gt;
   &lt;span class="nv"&gt;M&lt;/span&gt;: &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="o"&gt;*&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;INT&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;VAR&lt;/span&gt; &lt;span class="nv"&gt;CONSTANT&lt;/span&gt;
   &lt;span class="nv"&gt;MAX_BUFFER&lt;/span&gt; : &lt;span class="nv"&gt;__XWORD&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;1024&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;VAR_INPUT&lt;/span&gt;
   &lt;span class="nv"&gt;FileName&lt;/span&gt; : &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&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_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_OUTPUT&lt;/span&gt;
   &lt;span class="nv"&gt;nRows&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;nCols&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;ErrCode&lt;/span&gt; : &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;SYS_FILE_STATUS&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;SYS_FILE_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;FS_NO_FILE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;BytesRead&lt;/span&gt; : &lt;span class="nv"&gt;__XWORD&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;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="nv"&gt;MAX_BUFFER&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;pResult&lt;/span&gt; : &lt;span class="nv"&gt;POINTER&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;RTS_IEC_RESULT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;FileHandle&lt;/span&gt; : &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;RTS_IEC_HANDLE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;pFileData&lt;/span&gt; : &lt;span class="nv"&gt;POINTER&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="nv"&gt;BYTE&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;Data&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;actualValue&lt;/span&gt;:&lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;values&lt;/span&gt; : &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;..&lt;span class="mi"&gt;10&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;i&lt;/span&gt;: &lt;span class="nv"&gt;__XWORD&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;r_index&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;c_index&lt;/span&gt;:&lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;char&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;numEnd&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;accString&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;minus&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;false&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;rowEnd&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="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;i&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="nv"&gt;MAX_BUFFER&lt;/span&gt; &lt;span class="nv"&gt;BY&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&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;END_FOR&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;try&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;open&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;
&lt;span class="nv"&gt;FileHandle&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileOpen&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;szFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FileName&lt;/span&gt;, &lt;span class="nv"&gt;am&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;AM_READ&lt;/span&gt;, &lt;span class="nv"&gt;pResult&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;pResult&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;verify&lt;/span&gt; &lt;span class="nv"&gt;found&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;FileHandle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;RTS_INVALID_HANDLE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;no&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;found&lt;/span&gt;
   &lt;span class="nv"&gt;ErrCode&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;SYS_FILE_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;FS_NO_FILE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ELSE&lt;/span&gt;
   &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;try&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;read&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;out&lt;/span&gt;
   
   &lt;span class="nv"&gt;BytesRead&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FileHandle&lt;/span&gt;, &lt;span class="nv"&gt;pbyBuffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;pFileData&lt;/span&gt;, &lt;span class="nv"&gt;ulSize&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;MAX_BUFFER&lt;/span&gt;, &lt;span class="nv"&gt;pResult&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;pResult&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   
   &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;check&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;actually&lt;/span&gt; &lt;span class="nv"&gt;read&lt;/span&gt; &lt;span class="nv"&gt;any&lt;/span&gt; &lt;span class="nv"&gt;bytes&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;BytesRead&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="nv"&gt;ErrCode&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;SYS_FILE_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;FS_OK&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;ELSE&lt;/span&gt;
      &lt;span class="nv"&gt;ErrCode&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFile&lt;/span&gt;.&lt;span class="nv"&gt;SYS_FILE_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;FS_NO_FILE&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;END_IF&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;!!!!&lt;/span&gt;
&lt;span class="nv"&gt;SysFileClose&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FileHandle&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;r_index&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;c_index&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;accString&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;minus&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="nv"&gt;i&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="k"&gt;WHILE&lt;/span&gt; &lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="nv"&gt;BytesRead&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;numEnd&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;BYTE_TO_INT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="nv"&gt;minus&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;i&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;i&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;END_IF&lt;/span&gt;
   &lt;span class="nv"&gt;numEnd&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;new&lt;/span&gt; &lt;span class="nv"&gt;line&lt;/span&gt; &lt;span class="nv"&gt;or&lt;/span&gt; &lt;span class="nv"&gt;space&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;BYTE_TO_INT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="nv"&gt;BYTE_TO_INT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;accString&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;M&lt;/span&gt;[&lt;span class="nv"&gt;r_index&lt;/span&gt;,&lt;span class="nv"&gt;c_index&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;STRING_TO_INT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;accString&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;minus&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
            &lt;span class="nv"&gt;M&lt;/span&gt;[&lt;span class="nv"&gt;r_index&lt;/span&gt;,&lt;span class="nv"&gt;c_index&lt;/span&gt;] :&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="nv"&gt;M&lt;/span&gt;[&lt;span class="nv"&gt;r_index&lt;/span&gt;,&lt;span class="nv"&gt;c_index&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;minus&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="nv"&gt;numEnd&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;accString&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;c_index&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;c_index&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;END_IF&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;BYTE_TO_INT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;r_index&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;r_index&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;rowEnd&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;nCols&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;c_index&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;c_index&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;END_IF&lt;/span&gt;
   &lt;span class="k"&gt;ELSE&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;accString&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;CONCAT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;accString&lt;/span&gt;,&lt;span class="nv"&gt;WORD_AS_STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;],&lt;span class="mi"&gt;0&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;END_IF&lt;/span&gt;      
   &lt;span class="nv"&gt;i&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;i&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="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nv"&gt;BytesRead&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;r_index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; 
         &lt;span class="nv"&gt;nRows&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="k"&gt;ELSE&lt;/span&gt;
         &lt;span class="nv"&gt;nRows&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;r_index&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;END_IF&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;nRows&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;nCols&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;c_index&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;END_IF&lt;/span&gt;   
      &lt;span class="k"&gt;RETURN&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;END_WHILE&lt;/span&gt;
   
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Please, since i'm relatively new to Codesys, try to answer in a complete manner. Examples are rare to find and documentation is not sufficient.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br/&gt;
Luigi Ferrara.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>