<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Access to disk_sys</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/d4062916c6/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/d4062916c6/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/d4062916c6/</id><updated>2020-02-27T21:03:40.123000Z</updated><subtitle>Recent posts to Access to disk_sys</subtitle><entry><title>Access to disk_sys</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/d4062916c6/?limit=25#bfb6" rel="alternate"/><published>2020-02-27T21:03:40.123000Z</published><updated>2020-02-27T21:03:40.123000Z</updated><author><name>paulo</name><uri>https://forge.codesys.com/u/paulo/</uri></author><id>https://forge.codesys.comc5e7dc757499db1a236d03fae50cf2af37392a6f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ok, I found the problem. Even the SysLibAsync commands takes up to 15 ms and set a watchdog for task with 10ms cicles.  So a good idea to manipulate files are always use a second task.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to disk_sys</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/d4062916c6/?limit=25#e32f" rel="alternate"/><published>2020-02-27T21:03:36.152000Z</published><updated>2020-02-27T21:03:36.152000Z</updated><author><name>paulo</name><uri>https://forge.codesys.com/u/paulo/</uri></author><id>https://forge.codesys.com66d2b080b75c1933b6f586fe83a59522bb89bce5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ok, I see, but I thought that SysLibFileAsync should execute that asynchronously and avoid watchdog timeouts.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to disk_sys</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/d4062916c6/?limit=25#3cbf" rel="alternate"/><published>2020-02-27T21:03:34.678000Z</published><updated>2020-02-27T21:03:34.678000Z</updated><author><name>singleton</name><uri>https://forge.codesys.com/u/singleton/</uri></author><id>https://forge.codesys.com1bff787ca320c2aa9c5dd7dd876424978215fdd0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
try to execute read/write operations in a separate low priority task with enough cycletime.&lt;br/&gt;
SysFileOpen can take up to 100ms and SysFileWrite can take several 100ms.&lt;/p&gt;
&lt;p&gt;That should be the source of your watchdog &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to disk_sys</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/d4062916c6/?limit=25#6f77" rel="alternate"/><published>2020-02-27T21:03:33.240000Z</published><updated>2020-02-27T21:03:33.240000Z</updated><author><name>paulo</name><uri>https://forge.codesys.com/u/paulo/</uri></author><id>https://forge.codesys.comb16c8dfcbf421cf20ddddbac4f67f5b6ef7765a0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Helo,&lt;/p&gt;
&lt;p&gt;I'm trying to access files from internal memory  (create, open and write), but even using SysLibAsync I still getting watchdog timout when try to execute de open command. &lt;/p&gt;
&lt;p&gt;The code that I wrote for tests are below. Any idea of what I can do to avoid that watchdog exception?&lt;/p&gt;
&lt;p&gt;SYSFILE_OPEN : SysFileOpenAsync;&lt;br/&gt;
SYSFILE_CLOSE : SysFileCloseAsync;&lt;br/&gt;
SYSFILE_WRITE : SysFileWriteAsync;&lt;br/&gt;
BUFFER : STRING := 'test';&lt;br/&gt;
FILE : DWORD := 0;&lt;br/&gt;
WRITEN : DWORD;&lt;br/&gt;
ERROR : BOOL;&lt;br/&gt;
ERRORID : WORD;&lt;br/&gt;
ESTADO : INT := 0;&lt;br/&gt;
PRONTO : BOOL;&lt;/p&gt;
&lt;p&gt;CASE ESTADO OF&lt;br/&gt;
    0: (&lt;em&gt;Abrindo o arquivo&lt;/em&gt;)&lt;br/&gt;
        SYSFILE_OPEN(stFileName := '\My Documents\teste.txt', stMode := 'a', bEnable := TRUE, hFile =&amp;gt; FILE, bError=&amp;gt; ERROR, wErrorID =&amp;gt; ERRORID, bDone =&amp;gt; PRONTO);&lt;br/&gt;
        IF PRONTO THEN&lt;br/&gt;
            ESTADO := 1;&lt;br/&gt;
        END_IF&lt;br/&gt;
    1: (&lt;em&gt;Escrevendo no arquivo&lt;/em&gt;)&lt;br/&gt;
        SYSFILE_WRITE(hFile := FILE, pBuffer := ADR(BUFFER ), dwSize:= SIZEOF(BUFFER ), bError=&amp;gt; ERROR, wErrorID =&amp;gt; ERRORID, dwWrite =&amp;gt; WRITEN, bEnable := TRUE, bDone =&amp;gt; PRONTO);&lt;br/&gt;
        IF PRONTO THEN&lt;br/&gt;
            ESTADO := 2;&lt;br/&gt;
        END_IF&lt;br/&gt;
    2: (&lt;em&gt;Fechando o arquivo&lt;/em&gt;)&lt;br/&gt;
        SYSFILE_CLOSE(hFile := FILE, bEnable := TRUE, bDone =&amp;gt; PRONTO);&lt;br/&gt;
        IF PRONTO THEN&lt;br/&gt;
            SYSFILE_OPEN(bEnable := FALSE);&lt;br/&gt;
            SYSFILE_WRITE(bEnable := FALSE);&lt;br/&gt;
            SYSFILE_CLOSE(bEnable := FALSE);&lt;br/&gt;
            ESTADO := 0;&lt;br/&gt;
        END_IF&lt;br/&gt;
    ELSE&lt;br/&gt;
        ESTADO := 0;&lt;br/&gt;
END_CASE&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>