<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/</id><updated>2023-02-22T08:22:53.050000Z</updated><subtitle>Recent posts to How to save sensor values ​​to a file</subtitle><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#b282/2159" rel="alternate"/><published>2023-02-22T08:22:53.050000Z</published><updated>2023-02-22T08:22:53.050000Z</updated><author><name>dhanush</name><uri>https://forge.codesys.com/u/dhanush/</uri></author><id>https://forge.codesys.comac0264dcedfa02af604647494596b5d6a212522c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you. It worked :)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#b282" rel="alternate"/><published>2023-02-21T16:42:19.132000Z</published><updated>2023-02-21T16:42:19.132000Z</updated><author><name>ignat</name><uri>https://forge.codesys.com/u/ignat/</uri></author><id>https://forge.codesys.com34a8f3324cae529904c316acd9e33f2f996fa951</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, some library is missing.&lt;/p&gt;
&lt;p&gt;Should be this one:&lt;br/&gt;
- File Access&lt;/p&gt;
&lt;p&gt;You can manage it via &lt;br/&gt;
Libraries-&amp;gt;Add Library-&amp;gt;Advanced-&amp;gt; $use text search to fine a library$&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#1029/4342" rel="alternate"/><published>2023-02-13T08:13:06.709000Z</published><updated>2023-02-13T08:13:06.709000Z</updated><author><name>dhanush</name><uri>https://forge.codesys.com/u/dhanush/</uri></author><id>https://forge.codesys.com59301ae9f2c41984754186319391e2d3772c99a1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hey, I tried your code but I am getting errors like none of the CAA identifiers are not defined. I am attaching image for reference. I am bit a new to Codesys, it would very helpful for me if you can tell me where I am going wrong. Thank you&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#1029" rel="alternate"/><published>2020-02-27T15:34:08.966000Z</published><updated>2020-02-27T15:34:08.966000Z</updated><author><name>omeo</name><uri>https://forge.codesys.com/u/omeo/</uri></author><id>https://forge.codesys.com2de3ec8f1aa2cdd41ceb814eb9f9689c41be7327</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have a simple csv log program use &lt;strong&gt;caa.file&lt;/strong&gt; and &lt;strong&gt;systime &lt;/strong&gt;library.No additional license required.&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;PRG_DataToCSV&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;xStartRecord&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;xStopRecord&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;tDelayTime&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;#3&lt;/span&gt;&lt;span class="nv"&gt;S&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;sTemplateFileName&lt;/span&gt;:&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;FILENAME&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C:/Log/template.csv&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;//template csv head&lt;/span&gt;
   &lt;span class="k"&gt;fileOpen&lt;/span&gt;:&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;Open&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;fileClose&lt;/span&gt;:&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;Close&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;fileCopy&lt;/span&gt;:&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;Copy&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;fileWrite&lt;/span&gt;:&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;Write&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;iState&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;dtDateAndTime&lt;/span&gt;:&lt;span class="nv"&gt;DT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;dtDate&lt;/span&gt;:&lt;span class="nv"&gt;DATE&lt;/span&gt;&lt;span class="c1"&gt;;&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;sFileWriteName&lt;/span&gt;:&lt;span class="nv"&gt;File&lt;/span&gt;.&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;FILENAME&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;udiUtcTime&lt;/span&gt;:&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;udiResult&lt;/span&gt;:&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;udiUtcTimeLocal&lt;/span&gt;:&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;ton_Delay&lt;/span&gt;:&lt;span class="nv"&gt;TON&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="nv"&gt;File&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;arData&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;REAL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;iDataSize&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;10&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;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;sWriteStr&lt;/span&gt;:&lt;span class="nv"&gt;STRING&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;$n&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&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="nv"&gt;CASE&lt;/span&gt; &lt;span class="nv"&gt;iState&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;get&lt;/span&gt; &lt;span class="nv"&gt;act&lt;/span&gt; &lt;span class="nv"&gt;date&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;xStartRecord&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;udiUtcTime&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysTimeRtcGet&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiResult&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;udiResult&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysTimeRtcConvertUtcToLocal&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiUtcTime&lt;/span&gt;, &lt;span class="nv"&gt;udiUtcTimeLocal&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;dtDateAndTime&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;UDINT_TO_DT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiUtcTimeLocal&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;dtDate&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;DT_TO_DATE&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;dtDateAndTime&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;sFileWriteName&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="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C:/Log/&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;,&lt;span class="nv"&gt;RIGHT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DATE_TO_STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;dtDate&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;//&amp;lt;- need change&lt;/span&gt;
         &lt;span class="nv"&gt;sFileWriteName&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;sFileWriteName&lt;/span&gt;,&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.csv&lt;/span&gt;&lt;span class="s1"&gt;'&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;udiUtcTimeLocal&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&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;iState&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="nv"&gt;END_IF&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&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;open&lt;/span&gt; &lt;span class="nv"&gt;act&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;or&lt;/span&gt; &lt;span class="nv"&gt;create&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;
      &lt;span class="k"&gt;fileOpen&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;sFileName&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;sFileWriteName&lt;/span&gt;,&lt;span class="nv"&gt;xExclusive&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;,&lt;span class="nv"&gt;eFileMode&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;File&lt;/span&gt;.&lt;span class="nv"&gt;MODE&lt;/span&gt;.&lt;span class="nv"&gt;MAPPD&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="k"&gt;fileOpen&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;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="c1"&gt;;//have file&lt;/span&gt;
         &lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;FileOpen&lt;/span&gt;.&lt;span class="nv"&gt;hFile&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="k"&gt;fileOpen&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;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="k"&gt;fileOpen&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;iState&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;;//no file,create it&lt;/span&gt;
         &lt;span class="k"&gt;fileOpen&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;FALSE&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="mi"&gt;20&lt;/span&gt;:&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;create&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;
      &lt;span class="k"&gt;fileCopy&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;sFileNameDest&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;sFileWriteName&lt;/span&gt;,&lt;span class="nv"&gt;sFileNameSource&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;sTemplateFileName&lt;/span&gt;,&lt;span class="nv"&gt;xOverWrite&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&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="k"&gt;FileCopy&lt;/span&gt;.&lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="k"&gt;FileCopy&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;iState&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="k"&gt;fileCopy&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;FALSE&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="mi"&gt;50&lt;/span&gt;:&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;generate&lt;/span&gt; &lt;span class="nv"&gt;string&lt;/span&gt;
      &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;write&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt;
      &lt;span class="nv"&gt;arData&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;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&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;arData&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;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;2&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&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;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;3&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&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;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&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;arData&lt;/span&gt;[&lt;span class="mi"&gt;5&lt;/span&gt;]:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;5&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&lt;/span&gt;[&lt;span class="mi"&gt;6&lt;/span&gt;]:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;6&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&lt;/span&gt;[&lt;span class="mi"&gt;7&lt;/span&gt;]:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;7&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&lt;/span&gt;[&lt;span class="mi"&gt;8&lt;/span&gt;]:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;8&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&lt;/span&gt;[&lt;span class="mi"&gt;9&lt;/span&gt;]:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;9&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;arData&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;GVL&lt;/span&gt;.&lt;span class="nv"&gt;Data&lt;/span&gt;[&lt;span class="mi"&gt;10&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;act&lt;/span&gt; &lt;span class="nv"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;time&lt;/span&gt;
      &lt;span class="nv"&gt;udiUtcTime&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysTimeRtcGet&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiResult&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;udiResult&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysTimeRtcConvertUtcToLocal&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiUtcTime&lt;/span&gt;, &lt;span class="nv"&gt;udiUtcTimeLocal&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;dtDateAndTime&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;UDINT_TO_DT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;udiUtcTimeLocal&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;sWriteStr&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;sWriteStr&lt;/span&gt;,&lt;span class="nv"&gt;RIGHT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DT_TO_STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;dtDateAndTime&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;sWriteStr&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;sWriteStr&lt;/span&gt;,&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'&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;add&lt;/span&gt; &lt;span class="nv"&gt;string&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;iDataSize&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
         &lt;span class="nv"&gt;sWriteStr&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;sWriteStr&lt;/span&gt;,&lt;span class="nv"&gt;REAL_TO_STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DINT_TO_REAL&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TRUNC&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;arData&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;100&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;100&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;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;iDataSize&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
            &lt;span class="nv"&gt;sWriteStr&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;sWriteStr&lt;/span&gt;,&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;ELSIF&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;iDataSize&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
            &lt;span class="nv"&gt;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;60&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_FOR&lt;/span&gt;
   &lt;span class="mi"&gt;60&lt;/span&gt;:&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;write&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;
      &lt;span class="k"&gt;fileWrite&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;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;,&lt;span class="nv"&gt;pBuffer&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;sWriteStr&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;INT_TO_UDINT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LEN&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sWriteStr&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="k"&gt;fileWrite&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;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;sWriteStr&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;$n&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="k"&gt;fileWrite&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;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="k"&gt;fileWrite&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;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;32767&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="k"&gt;FileWrite&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;FALSE&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="mi"&gt;70&lt;/span&gt;:&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;write&lt;/span&gt; &lt;span class="nv"&gt;delay&lt;/span&gt;
      &lt;span class="nv"&gt;ton_Delay&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&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;PT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;tDelayTime&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;ton_Delay&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;ton_Delay&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;xStopRecord&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;ton_Delay&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;iState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&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;100&lt;/span&gt;:
      &lt;span class="k"&gt;FileClose&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;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hFile&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="k"&gt;FileClose&lt;/span&gt;.&lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="k"&gt;FileClose&lt;/span&gt;.&lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="k"&gt;FileClose&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;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;xStopRecord&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;xStartRecord&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;iState&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_IF&lt;/span&gt;
&lt;span class="nv"&gt;END_CASE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#be03" rel="alternate"/><published>2020-02-27T15:34:08.245000Z</published><updated>2020-02-27T15:34:08.245000Z</updated><author><name>dFx</name><uri>https://forge.codesys.com/u/dfx/</uri></author><id>https://forge.codesys.com78eaff4703ab3302d8f3bdd10480fdc303e27301</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;for built in function see &lt;a class="" href="https://help.codesys.com/webapp/idx-AC_DataLog-lib;product=AC_DataLog;version=3.5.14.0" rel="nofollow"&gt;https://help.codesys.com/webapp/idx-AC_ ... n=3.5.14.0&lt;/a&gt; &lt;br/&gt;
or for managing the file format by yourself see &lt;a class="" href="https://help.codesys.com/webapp/idx-CAA_FILE-lib;product=CAA_FILE;version=3.5.13.40" rel="nofollow"&gt;https://help.codesys.com/webapp/idx-CAA ... =3.5.13.40&lt;/a&gt; m &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to save sensor values ​​to a file</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/0fea316e6b/?limit=25#5a5d" rel="alternate"/><published>2020-02-27T15:34:06.224000Z</published><updated>2020-02-27T15:34:06.224000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com62ed83bcc8f49ffe6c05bb687bc6099d3b43dcc1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; kjsys1202@naver.com&lt;/p&gt;
&lt;p&gt;Using Raspberry Pi, I can receive sensor values ​​using SPI and Ethernet communication.&lt;/p&gt;
&lt;p&gt;But I want to save the received value as a file that can be opened in window instead of being stored in codesys (just like '.txt' or .excel').&lt;/p&gt;
&lt;p&gt;Is there a way to do it?&lt;/p&gt;
&lt;p&gt;Best regards&lt;br/&gt;
Han&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>