<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Raspberry PI-FILE WRITE</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/715de7d2ae/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/715de7d2ae/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/715de7d2ae/</id><updated>2020-02-27T13:47:44.896000Z</updated><subtitle>Recent posts to Raspberry PI-FILE WRITE</subtitle><entry><title>Raspberry PI-FILE WRITE</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/715de7d2ae/?limit=25#0f48" rel="alternate"/><published>2020-02-27T13:47:44.896000Z</published><updated>2020-02-27T13:47:44.896000Z</updated><author><name>Comingback4u</name><uri>https://forge.codesys.com/u/comingback4u/</uri></author><id>https://forge.codesys.com969f6091c9c3f9e3904b195698e8cf0070b5b15a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;You have two options that I know of.&lt;br/&gt;
  1. Write an empty string to the file using the mwrite mode. This will overwrite and clear the files contents.&lt;br/&gt;
  2. Delete the file and create a new one.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Raspberry PI-FILE WRITE</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/715de7d2ae/?limit=25#6925" rel="alternate"/><published>2020-02-27T13:47:44.738000Z</published><updated>2020-02-27T13:47:44.738000Z</updated><author><name>burger</name><uri>https://forge.codesys.com/u/burger/</uri></author><id>https://forge.codesys.com78260055313425c33c59f07df8bf7191d7eaf72e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am trying to write to file, where I want to write my data to several lines  and not only one line, and my code is doing that now. &lt;/p&gt;
&lt;p&gt;Also I want to delete all the data from file on rising edge of the tag. Any Ideas how to do that?&lt;/p&gt;
&lt;p&gt;VAR&lt;br/&gt;
    (&lt;em&gt; Set xDemoStart to TRUE to start test &lt;/em&gt;)&lt;br/&gt;
    xDemoStart:     BOOL:=FALSE;&lt;br/&gt;
    uiDemoStatus:   UINT:=0;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;filestring&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;uuuHello this is a test&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;fileCR&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;$r$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;endline&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;$r&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;  
&lt;span class="nv"&gt;sFileName&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;location&lt;/span&gt; &lt;span class="nv"&gt;relative&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;CODESYS&lt;/span&gt; &lt;span class="nv"&gt;Runtime&lt;/span&gt; &lt;span class="nv"&gt;directory&lt;/span&gt; &lt;span class="nv"&gt;on&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;HMI&lt;/span&gt;
&lt;span class="nv"&gt;examples&lt;/span&gt;:
    &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;test.txt&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;                          &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;saved&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Flash\QtHMI\RTS&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; 
    &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;..&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;est.txt&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;                       &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;saved&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Flash\QtHMI&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; 
    &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;..\data&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;est.txt&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;                  &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;saved&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Flash\QtHMI\data&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; 
    &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;..\..\..\USBMemory&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;est.txt&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;       &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;saved&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;root&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;external&lt;/span&gt; &lt;span class="nv"&gt;USB&lt;/span&gt; &lt;span class="nv"&gt;memory&lt;/span&gt;
    &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;..\..\..\Storage Card&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;est.txt&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;    &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;saved&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;external&lt;/span&gt; &lt;span class="nv"&gt;SD&lt;/span&gt; &lt;span class="nv"&gt;Card&lt;/span&gt; &lt;span class="nv"&gt;memory&lt;/span&gt;
&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

&lt;span class="nv"&gt;filemode&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;2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nv"&gt;Mode&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;which&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;should&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;opened&lt;/span&gt;,
&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;MWRITE&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;Write&lt;/span&gt; &lt;span class="nv"&gt;access&lt;/span&gt;&lt;span class="c1"&gt;; File will be overwritten/created&lt;/span&gt;
&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;MREAD&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;Read&lt;/span&gt; &lt;span class="nv"&gt;access&lt;/span&gt;&lt;span class="c1"&gt;; File will be opened for reading only&lt;/span&gt;
&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;MRDWR&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;Read&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;access&lt;/span&gt;&lt;span class="c1"&gt;; File will be overwritten/created&lt;/span&gt;
&lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;MAPPD&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;: &lt;span class="nv"&gt;Write&lt;/span&gt; &lt;span class="nv"&gt;access&lt;/span&gt;&lt;span class="c1"&gt;; Data will be appended at the end of the file&lt;/span&gt;
&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

&lt;span class="nv"&gt;filename&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;/home/pi/DataLogger/INTHISA_KUZMA11.csv&lt;/span&gt;&lt;span class="s1"&gt;'&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;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;filesize1&lt;/span&gt;:      &lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;SIZE&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;filesize2&lt;/span&gt;:      &lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;SIZE&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;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;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="k"&gt;fileread&lt;/span&gt;:       &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;Read&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="nv"&gt;filestringwrite&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;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;CASE uiDemoStatus OF&lt;br/&gt;
0:  (&lt;em&gt; Start demo &lt;/em&gt;)&lt;br/&gt;
    IF xDemoStart THEN&lt;br/&gt;
        uiDemoStatus:=1;&lt;br/&gt;
    END_IF&lt;br/&gt;
    fileopen(xExecute:=FALSE);&lt;br/&gt;
    filewrite(xExecute:=FALSE);&lt;br/&gt;
    fileread(xExecute:=FALSE);&lt;br/&gt;
    fileclose(xExecute:=FALSE);&lt;/p&gt;
&lt;p&gt;1: (&lt;em&gt; create a new file &lt;/em&gt;)&lt;br/&gt;
    fileopen.sFileName:=filename;                      &lt;br/&gt;
    fileopen.eFileMode:= filemode;               &lt;br/&gt;
    fileopen.xExclusive:=TRUE;&lt;br/&gt;
    fileopen(xExecute:=TRUE);&lt;br/&gt;
    IF fileopen.xDone THEN&lt;br/&gt;
        hFile:=fileopen.hFile;&lt;br/&gt;
        uiDemoStatus:=uiDemoStatus+1;&lt;br/&gt;
    END_IF&lt;br/&gt;
    IF fileopen.xError THEN&lt;br/&gt;
        (&lt;em&gt; error handling&lt;/em&gt;)&lt;br/&gt;
        ;&lt;br/&gt;
    END_IF&lt;/p&gt;
&lt;p&gt;2:  (&lt;em&gt; write text in the file &lt;/em&gt;)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;filestringwrite&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;filestring&lt;/span&gt;,&lt;span class="nv"&gt;fileCR&lt;/span&gt;&lt;span class="ss"&gt;)&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;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&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;filewrite&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;filestringwrite&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;filesize1&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;filestringwrite&lt;/span&gt;&lt;span class="ss"&gt;)&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;szSize&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;filesize1&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;udiTimeOut&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="c1"&gt;;                     (* 100ms Timeout *)&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="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;uiDemoStatus&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;uiDemoStatus&lt;/span&gt;&lt;span class="o"&gt;+&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;END_IF&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;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
    &lt;span class="nv"&gt;uiDemoStatus&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="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;3:  (&lt;em&gt; read file&lt;/em&gt;)&lt;br/&gt;
    fileread.hFile:=hFile;&lt;br/&gt;
    fileread.udiTimeOut:=100000;                      (&lt;em&gt; 100ms Timeout &lt;/em&gt;)&lt;br/&gt;
    fileread.pBuffer:=ADR(FileString);&lt;br/&gt;
    fileread.szBuffer:=255;&lt;br/&gt;
    fileread(xExecute:=TRUE);&lt;br/&gt;
    IF fileread.xDone THEN&lt;br/&gt;
        filesize2:=fileread.szSize;&lt;br/&gt;
        IF filesize2 = filesize1 THEN&lt;br/&gt;
            uiDemoStatus:=uiDemoStatus+1;&lt;br/&gt;
        ELSE&lt;br/&gt;
            uiDemoStatus:=uiDemoStatus+1;&lt;br/&gt;
            ;&lt;br/&gt;
        END_IF&lt;br/&gt;
    END_IF&lt;br/&gt;
    IF fileread.xError THEN&lt;br/&gt;
       uiDemoStatus:=uiDemoStatus+2;&lt;br/&gt;
       ;&lt;br/&gt;
    END_IF&lt;/p&gt;
&lt;p&gt;4:  (&lt;em&gt; close file&lt;/em&gt;)&lt;br/&gt;
    fileclose.hFile:=hFile;&lt;br/&gt;
    fileclose(xExecute:=TRUE);&lt;br/&gt;
    IF fileclose.xDone THEN&lt;br/&gt;
        uiDemoStatus:=uiDemoStatus+1;&lt;br/&gt;
    END_IF&lt;br/&gt;
    IF fileclose.xError THEN&lt;br/&gt;
        (&lt;em&gt; error handling&lt;/em&gt;)&lt;br/&gt;
        ;&lt;br/&gt;
    END_IF&lt;/p&gt;
&lt;p&gt;5: (&lt;em&gt; end of example &lt;/em&gt;)&lt;br/&gt;
    xDemoStart:=FALSE;&lt;br/&gt;
    uiDemoStatus:=0;            &lt;/p&gt;
&lt;p&gt;END_CASE&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>