<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to onlineapp login &amp; reset_origin</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/e2b15a88fd/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/e2b15a88fd/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/e2b15a88fd/</id><updated>2020-02-27T15:00:28.813000Z</updated><subtitle>Recent posts to onlineapp login &amp; reset_origin</subtitle><entry><title>onlineapp login &amp; reset_origin</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/e2b15a88fd/?limit=25#dd9d" rel="alternate"/><published>2020-02-27T15:00:28.813000Z</published><updated>2020-02-27T15:00:28.813000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comfcf00a4ee51d67ae06f852816c71f783d11a20d0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; M.Schaber&lt;/p&gt;
&lt;p&gt;Hi, etamgul,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;etamgul hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Recently I had connection issues as some of them are resulted by a previous aborted flash (application load).&lt;br/&gt;
For some reason around 1/20 of the cases the upload during login results a bad flash sector,&lt;br/&gt;
causing an exception at device side and it locks out the comm-cycle.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This looks like a serious problem on the hardware or runtime side. I think you should contact your vendor, to diagnose and solve the problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;etamgul hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
As a workaround I tried to erase the previous application (it might help) using the reset_origin()&lt;br/&gt;
but it didnt do anything.&lt;br/&gt;
1) is this function/method working properly?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This funciton should to the same as the "reset origin" Command available in for the user in the CODESYS menus.&lt;/p&gt;
&lt;p&gt;If the user command works, but the script command does not work, please file a bug report via support department.&lt;/p&gt;
&lt;p&gt;On the other hand, when the user command also does not work, the problem is probably on the runtime side (maybe due to the corrupted flash).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;etamgul hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Reading the API reference I stumbled into this piece of description:&lt;br/&gt;
OnlineChangeOption Enumeration&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;Never&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;never&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;performed&lt;/span&gt;. &lt;span class="nv"&gt;In&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;full&lt;/span&gt; &lt;span class="nv"&gt;download&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;forced&lt;/span&gt;.  
&lt;span class="nv"&gt;Try&lt;/span&gt;     &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;tried&lt;/span&gt;. &lt;span class="k"&gt;If&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;possible&lt;/span&gt;, &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;full&lt;/span&gt; &lt;span class="nv"&gt;download&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;performed&lt;/span&gt;.  
&lt;span class="nv"&gt;Force&lt;/span&gt;  &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;forced&lt;/span&gt;. &lt;span class="k"&gt;If&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;possible&lt;/span&gt;, &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;action&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;terminated&lt;/span&gt; &lt;span class="nv"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;no&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;While login has the following interface:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;OnlineChangeOption&lt;/span&gt; &lt;span class="n"&gt;change_option&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;delete_foreign_apps&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;2) what does onlinechange mean in this context? How is it possible to never perform online change while reflashing the application?&lt;/p&gt;
&lt;p&gt;That's explained in the docu you cited yourself above:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Never&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;shall&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;never&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;performed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="ow"&gt;In&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;that&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;case&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;full&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;download&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;forced&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;/b&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;To restate it: If OnlineChangeOption.Never is used, a full download of the application is performed, instead of attempting an online change.&lt;/p&gt;
&lt;p&gt;An online change means that only the differences to the currently running application are downloaded to the PLC, and the changes are applied while the application keeps running. In contrast, a full download stops the running application, removes it, and installs the new application in "stopped" state.&lt;/p&gt;
&lt;p&gt;Whether an online change is possible depends on some preconditions - for example, the compiler needs the reference context of the code which is currently running on the PLC, and the changes must be "normal" code changes - operations like a "Clean", or change of compiler version, or similar operations prevent online changes.&lt;/p&gt;
&lt;p&gt;If the compiler can assert that the code is exactly the same, a simple login is performed. If there are code changes, the compiler will calculate the changeset (which may include some copying and relocation of memory, e. g. if the size of a struct or FB did change), which will then be sent to the PLC and applied on the fly to the running application during the login.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;etamgul hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
3) what it that delete_foreign_apps for when I have the 'Never' option?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The "Never" option will just always perform a full download and not even attempt an online change, so why should it not be possible to delete the foreign applications?&lt;/p&gt;
&lt;p&gt;HTH,&lt;br/&gt;
Markus&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>onlineapp login &amp; reset_origin</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/e2b15a88fd/?limit=25#4336" rel="alternate"/><published>2020-02-27T15:00:27.128000Z</published><updated>2020-02-27T15:00:27.128000Z</updated><author><name>etamgul</name><uri>https://forge.codesys.com/u/etamgul/</uri></author><id>https://forge.codesys.comd14193dcdf029a54ad207d91d22e222c09368589</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Recently I had connection issues as some of them are resulted by a previous aborted flash (application load).&lt;br/&gt;
For some reason around 1/20 of the cases the upload during login results a bad flash sector,&lt;br/&gt;
causing an exception at device side and it locks out the comm-cycle.&lt;/p&gt;
&lt;p&gt;As a workaround I tried to erase the previous application (it might help) using the reset_origin()&lt;br/&gt;
but it didnt do anything.&lt;/p&gt;
&lt;p&gt;1) is this function/method working properly?&lt;/p&gt;
&lt;p&gt;Reading the API reference I stumbled into this piece of description:&lt;br/&gt;
OnlineChangeOption Enumeration&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;Never&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;never&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;performed&lt;/span&gt;. &lt;span class="nv"&gt;In&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;full&lt;/span&gt; &lt;span class="nv"&gt;download&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;forced&lt;/span&gt;.  
&lt;span class="nv"&gt;Try&lt;/span&gt;     &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;tried&lt;/span&gt;. &lt;span class="k"&gt;If&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;possible&lt;/span&gt;, &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;full&lt;/span&gt; &lt;span class="nv"&gt;download&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;performed&lt;/span&gt;.  
&lt;span class="nv"&gt;Force&lt;/span&gt;  &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;Online&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt; &lt;span class="nv"&gt;shall&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;forced&lt;/span&gt;. &lt;span class="k"&gt;If&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;possible&lt;/span&gt;, &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;action&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;terminated&lt;/span&gt; &lt;span class="nv"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;no&lt;/span&gt; &lt;span class="nv"&gt;change&lt;/span&gt;. 
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;While login has the following interface:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;OnlineChangeOption&lt;/span&gt; &lt;span class="n"&gt;change_option&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;delete_foreign_apps&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;2) what does onlinechange mean in this context? How is it possible to never perform online change while reflashing the application?&lt;br/&gt;
    example:&lt;br/&gt;
    change_option = Never&lt;br/&gt;
    for me it means do not change anything, but according to the description actually it forced an application reflash.&lt;br/&gt;
3) what it that delete_foreign_apps for when I have the 'Never' option?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>