<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/</id><updated>2022-08-11T14:51:01.892000Z</updated><subtitle>Recent posts to Open Dialog in PLC</subtitle><entry><title>Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/?limit=25#e839" rel="alternate"/><published>2022-08-11T14:51:01.892000Z</published><updated>2022-08-11T14:51:01.892000Z</updated><author><name>masmith1553</name><uri>https://forge.codesys.com/u/masmith1553/</uri></author><id>https://forge.codesys.com0d8c2fa6ee213c6928bf01bc1a0efaf78706c1ba</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you for the responses, I was able get it working. &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/?limit=25#e67c/00d8" rel="alternate"/><published>2022-08-11T14:00:08.119000Z</published><updated>2022-08-11T14:00:08.119000Z</updated><author><name>surikan</name><uri>https://forge.codesys.com/u/surikan/</uri></author><id>https://forge.codesys.com890f84548abefd36ad039c6a7d0afe750c325eb1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I suspected that would be one reason for it, yet the provided example on forge does not include this.&lt;/p&gt;
&lt;p&gt;In my experience if you do the reset after  opening the dialog you still end up with having open twice after power cycle/ download/ online change, hence I suggested to do before&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/?limit=50#e67c" rel="alternate"/><published>2022-08-11T12:23:24.888000Z</published><updated>2022-08-11T12:23:24.888000Z</updated><author><name>tvm</name><uri>https://forge.codesys.com/u/tvm/</uri></author><id>https://forge.codesys.comb69b568d344ce0e419e9e51be5756bded144e5c0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It's because the fbOpenMessageDialog function block is looking for a rising edge on the xExecute input.&lt;/p&gt;
&lt;p&gt;This section:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;IF xOpenMessageDialog THEN&lt;/span&gt;
&lt;span class="err"&gt;    xOpenMessageDialog := FALSE;&lt;/span&gt;
&lt;span class="err"&gt;    fbOpenMessageDialog.xExecute := FALSE;&lt;/span&gt;
&lt;span class="err"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;doesn't actually run the function block, it just sets the xExecute input to false.  But fbOpenMessageDialog doesn't actually run again until you change GVL_Visual.autoSeqNumber on line 1. But when it does run, it doesn't see a rising edge, because xExecute is TRUE, the same as it was the last time it ran.  The function block hasn't actually seen the FALSE state of xExecute.&lt;/p&gt;
&lt;p&gt;As surikan said above, you need to reset the input so it sees the rising edge on the next cycle.  You could do it here &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;IF xOpenMessageDialog THEN&lt;/span&gt;
&lt;span class="err"&gt;    xOpenMessageDialog := FALSE;&lt;/span&gt;
&lt;span class="err"&gt;    //fbOpenMessageDialog.xExecute := FALSE;&lt;/span&gt;
&lt;span class="err"&gt;    fbOpenMessageDialog(sDialogName := 'd01_MessageBox', xExecute:= FALSE);  &lt;/span&gt;
&lt;span class="err"&gt;   //this resets the input to false and runs the function block, so it sees the false state&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This might explain the behaviour a bit better&lt;br/&gt;
&lt;a href="https://help.codesys.com/webapp/behaviour_model;product=LibDevSummary;version=3.5.17.0" rel="nofollow"&gt;https://help.codesys.com/webapp/behaviour_model;product=LibDevSummary;version=3.5.17.0&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/?limit=25#d0e3" rel="alternate"/><published>2022-08-11T10:26:54.496000Z</published><updated>2022-08-11T10:26:54.496000Z</updated><author><name>surikan</name><uri>https://forge.codesys.com/u/surikan/</uri></author><id>https://forge.codesys.com8d28f474bef14f85cb5b61872aba25bc1071ba7c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I found myself that I have to run the FB first with xExecute:= false, then run it again with Execute:= True and it works every time.&lt;/p&gt;
&lt;p&gt;So in your scenario just try to stick this above your case statement or just after  :&lt;br/&gt;
fbOpenMessageDialog(sDialogName := 'd01_MessageBox', xExecute:= false);&lt;/p&gt;
&lt;p&gt;Maybe somebody else could tell us why it is like this. &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Open Dialog in PLC</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/f361572ce6/?limit=25#43ef" rel="alternate"/><published>2022-08-09T19:15:59.522000Z</published><updated>2022-08-09T19:15:59.522000Z</updated><author><name>masmith1553</name><uri>https://forge.codesys.com/u/masmith1553/</uri></author><id>https://forge.codesys.com9c4fb47917ee6ee7295bbc8a7f1f9d14e5332ce3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am trying to use the fbOpenDialogExtended block from Visu Utils. My code works only a third of the time and I am not sure why...&lt;/p&gt;
&lt;p&gt;FUNCTION_BLOCK FB_SeqChgMsgBx&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
    xOpenMessageDialog              :       BOOL;&lt;br/&gt;
    xStartTimer                     :       BOOL;&lt;br/&gt;
    fbOpenMessageDialog             :       VU.FbOpenDialogExtended;&lt;br/&gt;
    MessageInfo                     :       d01_MessageBox_VISU_STRUCT;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;seqChgTemp&lt;/span&gt;                      &lt;span class="o"&gt;:&lt;/span&gt;       &lt;span class="n"&gt;INT&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;TON_0&lt;/span&gt;                           &lt;span class="o"&gt;:&lt;/span&gt;       &lt;span class="n"&gt;TON&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tonET&lt;/span&gt;                           &lt;span class="o"&gt;:&lt;/span&gt;       &lt;span class="n"&gt;TIME&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;IF GVL_Visual.autoSeqNumber &amp;lt;&amp;gt; seqChgTemp THEN&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;CASE&lt;/span&gt; &lt;span class="n"&gt;GVL_Visual&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;autoSeqNumber&lt;/span&gt; &lt;span class="k"&gt;OF&lt;/span&gt;
    &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sMessageTxt&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Sequence has been changed to Manual'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sBitmapID&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'icons8-info-50'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sTitle&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Auto Sequence Change'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xOpenMessageDialog&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xStartTimer&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sMessageTxt&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Sequence has been changed to Auto Sequence 1 which includes door movement'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sBitmapID&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'icons8-info-50'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sTitle&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Auto Sequence Change'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xOpenMessageDialog&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xStartTimer&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sMessageTxt&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Sequence has been changed to Auto Sequence 2 which is compaction only'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sBitmapID&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'icons8-info-50'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;MessageInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sTitle&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Auto Sequence Change'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xOpenMessageDialog&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;xStartTimer&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="n"&gt;END_CASE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;fbOpenMessageDialog(sDialogName := 'd01_MessageBox', xModal := TRUE, pTopLeftPosition := 0, itfClientFilter := VU.Globals.AllClients, xExecute := xOpenMessageDialog, pbyDialogInterfaceData := ADR(MessageInfo), udiDialogInterfaceDataSize := SIZEOF(MessageInfo));&lt;br/&gt;
    seqChgTemp := GVL_Visual.autoSeqNumber;&lt;br/&gt;
    IF xOpenMessageDialog THEN&lt;br/&gt;
        xOpenMessageDialog := FALSE;&lt;br/&gt;
        fbOpenMessageDialog.xExecute := FALSE;&lt;br/&gt;
    END_IF&lt;br/&gt;
END_IF&lt;br/&gt;
TON_0(IN:=xStartTimer AND NOT GVL_J1939.rgtJoystk_Btn8_0, PT:=T#30S);&lt;br/&gt;
tonET := TON_0.ET;&lt;br/&gt;
IF TON_0.Q THEN&lt;br/&gt;
    GVL_Visual.closePopup := TRUE;&lt;br/&gt;
    fbCloseDialog(itfClientFilter := VU.Globals.AllClients, xExecute := xCloseMessageDialog, sDialogName := 'd01_MessageBox');&lt;br/&gt;
    IF xCloseMessageDialog THEN&lt;br/&gt;
        xCloseMessageDialog := FALSE;&lt;br/&gt;
        fbCloseDialog.xExecute := FALSE;&lt;br/&gt;
    END_IF&lt;br/&gt;
    xStartTimer := FALSE;&lt;br/&gt;
END_IF&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>