<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/431edb4606/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/431edb4606/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/431edb4606/</id><updated>2020-02-27T22:47:31.008000Z</updated><subtitle>Recent posts to Using function block outputs to select global variables</subtitle><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#5499" rel="alternate"/><published>2020-02-27T22:47:31.008000Z</published><updated>2020-02-27T22:47:31.008000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com8ec4dfacad86ca474f41e9f81b7757a2149c47fa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;to avoid all this selection i make a visualisation to check and to set vars.&lt;/p&gt;
&lt;p&gt;But yes this doubleclick system works for all instances, divide the screen in the global var list and your PLC_PRG doubleclick then you can see all different actions.&lt;br/&gt;
It is even possible to have all instances at the screen.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#69a0" rel="alternate"/><published>2020-02-27T22:47:29.339000Z</published><updated>2020-02-27T22:47:29.339000Z</updated><author><name>AusEngineer</name><uri>https://forge.codesys.com/u/ausengineer/</uri></author><id>https://forge.codesys.com6f775e894aa69b209e2de578195fa0c21c35e08d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Guys!&lt;/p&gt;
&lt;p&gt;Just wanted to post to say that I have figured out what I was doing wrong and it was very, very simple   This is my first time using CodeSys so I am unfamiliar with the software.&lt;/p&gt;
&lt;p&gt;The problem was the way in which I was trying to simulate the program, not the coding itself. In fact my original code works perfectly when the software is operated correctly. My mistake when simulating was because I was activating simulation mode, loggining in, but not running the simulation (F5). THEN when simulating the program and trying to look inside the FB to monitor the data flow, I was looking inside the function block itself by double clicking it in the POU tree and not the instance inside my main program &lt;br/&gt;
Working program is attached.&lt;/p&gt;
&lt;p&gt;To simualte correctly and see the FB work:&lt;br/&gt;
Online -&amp;gt; Simulation&lt;br/&gt;
Online -&amp;gt; Login&lt;br/&gt;
Online -&amp;gt; Run&lt;br/&gt;
POU tree -&amp;gt; double click PLC_PRG&lt;br/&gt;
Resource tree -&amp;gt; Open global variables&lt;br/&gt;
Global variables -&amp;gt; set MOTOR1_START &lt;br/&gt;
PLC_PRG -&amp;gt; Double click MOTOR_SELECT_FB block&lt;br/&gt;
Global variables -&amp;gt; set START1_READY (and any other variable associated with motor 1, i.e. CLOSE_RUN1)&lt;br/&gt;
PLC_PRG -&amp;gt; START_READY and CLOSE_RUN are now set&lt;/p&gt;
&lt;p&gt;(&lt;em&gt;to test with a second motor&lt;/em&gt;)&lt;br/&gt;
Global variables -&amp;gt; set all to false.&lt;br/&gt;
PLC_PRG -&amp;gt; START_READY and CLOSE_RUN are now reset to false&lt;br/&gt;
Global variables -&amp;gt; set MOTOR4_START&lt;br/&gt;
Global variables -&amp;gt; set START4_READY and CLOSE_RUN4&lt;br/&gt;
PLC_PRG -&amp;gt; START_READY and CLOSE_RUN are now set again.&lt;/p&gt;
&lt;p&gt;In this way once a MOTORx_START signal is recieved its associated physical I/O will be assigned to the local variables within PLC_PRG, meaning whichever one of the four motors is selected the logic required to operate a motor only needs to run once.&lt;/p&gt;
&lt;p&gt;Hopefully this can help some other n00b who comes across a similar problem!&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br/&gt;
-N&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum.codesys.com//download/file.php?id=347" rel="nofollow"&gt;Motor_sel_FB_working.pro &lt;span&gt;&lt;span&gt;[49.48 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#2f6f" rel="alternate"/><published>2020-02-27T22:47:27.690000Z</published><updated>2020-02-27T22:47:27.690000Z</updated><author><name>spfeif</name><uri>https://forge.codesys.com/u/spfeif/</uri></author><id>https://forge.codesys.comc83ec03710092a255bc8b8a7c8d55c01cb9dfc5b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Create a structure: This is not good programming practice as you noticed you copied the same data over and over but just added a 1 or 4 to the data. It should be rolled into a reusable class.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt; &lt;span class="nv"&gt;assumed&lt;/span&gt; &lt;span class="nv"&gt;they&lt;/span&gt; &lt;span class="nv"&gt;are&lt;/span&gt; &lt;span class="nv"&gt;boolean&lt;/span&gt; &lt;span class="nv"&gt;since&lt;/span&gt; &lt;span class="nv"&gt;there&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;no&lt;/span&gt; &lt;span class="nv"&gt;indication&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;variable&lt;/span&gt; &lt;span class="nv"&gt;type&lt;/span&gt;. &lt;span class="nv"&gt;This&lt;/span&gt; &lt;span class="nv"&gt;was&lt;/span&gt; &lt;span class="nv"&gt;very&lt;/span&gt; &lt;span class="nv"&gt;fat&lt;/span&gt; &lt;span class="nv"&gt;off&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;top&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;head&lt;/span&gt; &lt;span class="nv"&gt;since&lt;/span&gt; &lt;span class="nv"&gt;I&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;know&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;cirmumstances&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt;.
&lt;span class="nv"&gt;TYPE&lt;/span&gt; &lt;span class="nv"&gt;MOTOR_STATE&lt;/span&gt; :
&lt;span class="nv"&gt;STRUCT&lt;/span&gt;
   &lt;span class="nv"&gt;START_READY&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;START_OPEN&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;START_CLOSED&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;OPEN_START&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;CLOSE_START&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;xStart&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;END_STRUCT&lt;/span&gt;
&lt;span class="nv"&gt;END_TYPE&lt;/span&gt;
&lt;span class="nv"&gt;Use&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt; &lt;span class="nv"&gt;FUNCTION&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;structure&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="nv"&gt;motor&lt;/span&gt;.
&lt;span class="nv"&gt;FUNCTION&lt;/span&gt; &lt;span class="nv"&gt;MOTOR&lt;/span&gt; : &lt;span class="nv"&gt;MOTOR_STATE&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
   &lt;span class="nv"&gt;i_xSTART_READY&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;i_xSTART_OPEN&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;i_xSTART_CLOSED&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;i_xOPEN_START&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;i_xCLOSE_START&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;i_xStart&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;xStart&lt;/span&gt;      :&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;i_xStart&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;CLOSE_START&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;i_xCLOSE_START&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;OPEN_START&lt;/span&gt;  :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;i_xOPEN_START&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;START_CLOSED&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;i_xSTART_CLOSED&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;START_OPEN&lt;/span&gt;   :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;i_xSTART_OPEN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;MOTOR&lt;/span&gt;.&lt;span class="nv"&gt;START_READY&lt;/span&gt;  :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;i_xSTART_READY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;Then&lt;/span&gt; &lt;span class="nv"&gt;select&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;motor&lt;/span&gt; &lt;span class="nv"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt; &lt;span class="nv"&gt;block&lt;/span&gt;:
&lt;span class="nv"&gt;FUNCTION&lt;/span&gt; &lt;span class="nv"&gt;MOTOR_SELECT&lt;/span&gt; : &lt;span class="nv"&gt;MOTOR_STATE&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
    &lt;span class="nv"&gt;atMotorState&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;4&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;MOTOR_STATE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&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;END_VAR&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="mi"&gt;4&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;atMotorState&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;].&lt;span class="nv"&gt;xStart&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="k"&gt;THEN&lt;/span&gt;
       &lt;span class="nv"&gt;MOTOR_SELECT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;atMotorState&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
       &lt;span class="k"&gt;EXIT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;ELSE&lt;/span&gt;
       &lt;span class="nv"&gt;MOTOR_SELECT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;atMotorState&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]
   &lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="nv"&gt;END_FOR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Just create a MOTOR class and select which class to use.&lt;/p&gt;
&lt;p&gt;FYI I am guessing and did this in like 2 minutes so it is very sloppy.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#5b8d" rel="alternate"/><published>2020-02-27T22:47:23.290000Z</published><updated>2020-02-27T22:47:23.290000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com8ebf2189c9702962fbb2557fd80594077964c8ce</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;as there is not an easy way to make it with if then i made a function block containing your ST code.&lt;br/&gt;
It is possible to make it with SEL too but it is more lines&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum.codesys.com//download/file.php?id=332" rel="nofollow"&gt;20120517 motor.pro &lt;span&gt;&lt;span&gt;[28.77 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#34a0" rel="alternate"/><published>2020-02-27T22:47:21.667000Z</published><updated>2020-02-27T22:47:21.667000Z</updated><author><name>AusEngineer</name><uri>https://forge.codesys.com/u/ausengineer/</uri></author><id>https://forge.codesys.com1735324e90d8d2ea85bdff2794e84004d729c850</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Shooter,&lt;/p&gt;
&lt;p&gt;Thanks for your response. I tried using the FB SEL which is good except in my actual program I need to be able to assign a local variable one of 4 global variables based on the input, and SEL only allows me to choose one of 2. Is there another FB I can use? or is there some way to modify SEL to allow me to select from more than two inputs?&lt;/p&gt;
&lt;p&gt;Also I'm not sure how to use CASE or WHILE in FBD.. All the 3S documentation I can find only explains it in ST. When I put a box in my program and call it CASE or WHILE it will only let me assign outputs. Could you please explain how to use these instructions in FBD?&lt;/p&gt;
&lt;p&gt;Here is some of the actual code I was trying to use in my FUNCTION_BLOCK.&lt;br/&gt;
To begin the application one of four inputs is activated. Based on which input goes high I want to deal with a specific set of global variables.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;MOTOR1_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;START_READY&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START1_READY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_OPEN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START1_OPEN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_CLOSED&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START1_CLOSED&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;OPEN_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;OPEN_START1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;CLOSE_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CLOSE_START1&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;MOTOR2_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;START_READY&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START2_READY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_OPEN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START2_OPEN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_CLOSED&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START2_CLOSED&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;OPEN_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;OPEN_START2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;CLOSE_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CLOSE_START2&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;MOTOR3_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;START_READY&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START3_READY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_OPEN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START3_OPEN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_CLOSED&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START3_CLOSED&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;OPEN_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;OPEN_START3&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;CLOSE_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CLOSE_START3&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;MOTOR4_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;START_READY&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START4_READY&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_OPEN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START4_OPEN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;START_CLOSED&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;START4_CLOSED&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;OPEN_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;OPEN_START4&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;CLOSE_START&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CLOSE_START4&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;Thankyou.&lt;/p&gt;
&lt;p&gt;-AusEngineer&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#b7ad" rel="alternate"/><published>2020-02-27T22:47:17.263000Z</published><updated>2020-02-27T22:47:17.263000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.comd2f4a3f907a311c7a64bb5a3f504fb62f9442ef4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;you are mixing types of variables.&lt;/p&gt;
&lt;p&gt;you can use the FB SEL from standard.lib&lt;br/&gt;
or the CASE also standard&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using function block outputs to select global variables</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/431edb4606/?limit=25#4d34" rel="alternate"/><published>2020-02-27T22:47:15.654000Z</published><updated>2020-02-27T22:47:15.654000Z</updated><author><name>AusEngineer</name><uri>https://forge.codesys.com/u/ausengineer/</uri></author><id>https://forge.codesys.com916e7788f27dad398d5ee161a8deabc73bbd7e7c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi guys,&lt;br/&gt;
This is a similar problem to the one found here:&lt;br/&gt;
&lt;a class="" href="http://forum-en.3s-software.com/viewtopic.php?t=1544" rel="nofollow"&gt;http://forum-en.3s-software.com/viewtopic.php?t=1544&lt;/a&gt;&lt;br/&gt;
However I can't get the pointer solution to work for me. The only requirement for this project is that the main program be coded using FBD.&lt;br/&gt;
A small sample of the code used in my function block is as follows: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;FUNCTION_BLOCK&lt;/span&gt; &lt;span class="nv"&gt;Var_Select&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
&lt;span class="nv"&gt;Local_Input1&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;Local_Input2&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_OUTPUT&lt;/span&gt;
&lt;span class="nv"&gt;Local_Output1&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;Local_Output2&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;Local_Input1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
&lt;span class="nv"&gt;Local_Output1&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;Global_Var1&lt;/span&gt;&lt;span class="c1"&gt;; (*just want it to take the address of Global_Var1*)&lt;/span&gt;
&lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;Local_Input2&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
&lt;span class="nv"&gt;Local_Output2&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;Global_Var2&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;Then I try to implement in FBD as shown in the image "CodeSys Problem1" attached.&lt;br/&gt;
BUT when I simulate I get unknown values as shown in attached image "CodeSys Problem 2".&lt;/p&gt;
&lt;p&gt;I want/expect the following to happen: &lt;br/&gt;
- Set Global_Var3 high&lt;br/&gt;
- Local_Input1 goes high and in turn assigns Local_Output1 to Global_Var1&lt;br/&gt;
- Global_Var1 passes its value to program variable Local_Var1&lt;br/&gt;
- I can then use Local_Var1 throughout my program and it will have the value of Global_Var1&lt;/p&gt;
&lt;p&gt;Can I even pass different variables across the inputs and outputs of my FB??&lt;br/&gt;
Is there some other way I can do this? Blank canvas for this project just need to use FBD language. &lt;/p&gt;
&lt;p&gt;Thanks in advance for your help. Need to overcome this 'variable selection' hurdle because the rest of my program becomes relatively simple with it. &lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: Codesys problem2.png" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=325"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: Codesys problem1.png" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=324"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>