<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/</id><updated>2020-02-27T13:55:41.995000Z</updated><subtitle>Recent posts to Looping through methods/fbs</subtitle><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#142e" rel="alternate"/><published>2020-02-27T13:55:41.995000Z</published><updated>2020-02-27T13:55:41.995000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.come778de743ad59a50ce8acbaacedce99c2d3ecebc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Any more tips?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#b407" rel="alternate"/><published>2020-02-27T13:55:41.342000Z</published><updated>2020-02-27T13:55:41.342000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com2ae727ab2729887d401312c668f83f7ef2f9c0df</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Each FB has a variable to start a sequence (action), if any of the FBs has say "BREAKER_STATUS.CLOSED" active (from first post), then the others should not be able to activate the closing sequence.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#d89c" rel="alternate"/><published>2020-02-27T13:55:41.130000Z</published><updated>2020-02-27T13:55:41.130000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comc8d81fea2e26e820b64364b002048ca1a013b869</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Viacheslav Mezentsev&lt;/p&gt;
&lt;p&gt;There is a library with synchronization elements:  with &lt;strong&gt;BOLT&lt;/strong&gt; and &lt;strong&gt;SEMA&lt;/strong&gt;. To use them you need to know more precisely what you want.&lt;/p&gt;
&lt;p&gt;Interlocking - what does this mean in your opinion? How should this work? Other fbs must wait or do nothing or return error state?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#db12" rel="alternate"/><published>2020-02-27T13:55:40.921000Z</published><updated>2020-02-27T13:55:40.921000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.comfd1fea5cd9e2f631d982e042fe89500833941c20</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hmm. Ok. Not sure how to do that.&lt;/p&gt;
&lt;p&gt;Reason behind the looping is to monitor the state of a variable in FB_A (aswell as FB_B which extends FB_A). Normally I'd do this as proposed by you in a earlier post, but this dosent work when I also need to include both FB_B and FB_A.&lt;/p&gt;
&lt;p&gt;Reasons behind shared variable is because I want a interlock between declared instances. Say FB_A has a method for controlling something external (relay for example) and if any of FB_A (aswell as FB_B which extends FB_A) has this output active none of the others shouldnt be able to actuate the external output.&lt;/p&gt;
&lt;p&gt;Maybe you have a better solution to this?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#93a8" rel="alternate"/><published>2020-02-27T13:55:40.629000Z</published><updated>2020-02-27T13:55:40.629000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.come5226a7e482a54fd491f534c66fe81d863d38053</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Viacheslav Mezentsev&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
How can I loop through all of the declared instances of both FB_B and FB_A to do something thats declared in FB_A?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="" href="https://help.codesys.com/webapp/_cds_method_fb_init_fb_reinit;product=codesys;version=3.5.11.0" rel="nofollow"&gt;Online help&lt;/a&gt;.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;METHOD&lt;/span&gt; &lt;span class="n"&gt;FB_Init&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;VAR_INPUT&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bInitRetains&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&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;the&lt;/span&gt; &lt;span class="n"&gt;Retain&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;variables&lt;/span&gt; &lt;span class="k"&gt;are&lt;/span&gt; &lt;span class="n"&gt;initialized&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;reset&lt;/span&gt; &lt;span class="n"&gt;warm&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="k"&gt;reset&lt;/span&gt; &lt;span class="n"&gt;cold&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;bInCopyCode&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;TRUE&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;instance&lt;/span&gt; &lt;span class="n"&gt;will&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;copied&lt;/span&gt; &lt;span class="k"&gt;to&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="k"&gt;copy&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;afterward&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;online&lt;/span&gt; &lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;END_VAR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Is it possible to have a variable shared between declared instances, not beeing in a GVL?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is possible, but why you need this? (you can use var_stat... end_var in FB_A)&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;FB_A&lt;/span&gt;
&lt;span class="nv"&gt;var_input&lt;/span&gt;
    &lt;span class="nv"&gt;value&lt;/span&gt;: &lt;span class="nv"&gt;int&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;end_var&lt;/span&gt;
&lt;span class="nv"&gt;var_stat&lt;/span&gt;
    &lt;span class="nv"&gt;m_index&lt;/span&gt;: &lt;span class="nv"&gt;int&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;m_instances&lt;/span&gt;: &lt;span class="nv"&gt;array&lt;/span&gt; [ &lt;span class="mi"&gt;0&lt;/span&gt; .. &lt;span class="mi"&gt;1000&lt;/span&gt; ] &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;pointer&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;FB_A&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;end_var&lt;/span&gt;
&lt;span class="o"&gt;-----------------------&lt;/span&gt;
&lt;span class="nv"&gt;method&lt;/span&gt; &lt;span class="nv"&gt;public&lt;/span&gt; &lt;span class="nv"&gt;FB_Init&lt;/span&gt; : &lt;span class="nv"&gt;bool&lt;/span&gt;
&lt;span class="nv"&gt;var_input&lt;/span&gt;
    &lt;span class="nv"&gt;bInitRetains&lt;/span&gt; : &lt;span class="nv"&gt;bool&lt;/span&gt;&lt;span class="c1"&gt;; // initializing of retain-variable&lt;/span&gt;
    &lt;span class="nv"&gt;bInCopyCode&lt;/span&gt; : &lt;span class="nv"&gt;bool&lt;/span&gt;&lt;span class="c1"&gt;; // instance is copied to copy-code&lt;/span&gt;
&lt;span class="nv"&gt;end_var&lt;/span&gt;
&lt;span class="nv"&gt;m_instances&lt;/span&gt;[ &lt;span class="nv"&gt;m_index&lt;/span&gt; ] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;m_index&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;m_index&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;-----------------------&lt;/span&gt;
&lt;span class="nv"&gt;method&lt;/span&gt; &lt;span class="nv"&gt;GetInstAt&lt;/span&gt; : &lt;span class="nv"&gt;pointer&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;FB_A&lt;/span&gt;
&lt;span class="nv"&gt;var_input&lt;/span&gt;
    &lt;span class="nv"&gt;index&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="nv"&gt;GetInstAt&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;m_instances&lt;/span&gt;[ &lt;span class="nv"&gt;index&lt;/span&gt; ]&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;-----------------------&lt;/span&gt;
&lt;span class="nv"&gt;function_block&lt;/span&gt; &lt;span class="nv"&gt;FB_B&lt;/span&gt; &lt;span class="nv"&gt;extends&lt;/span&gt; &lt;span class="nv"&gt;FB_A&lt;/span&gt;
&lt;span class="o"&gt;-----------------------&lt;/span&gt;
&lt;span class="nv"&gt;program&lt;/span&gt; &lt;span class="nv"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nv"&gt;var&lt;/span&gt;
    &lt;span class="nv"&gt;bFirstCycle&lt;/span&gt;: &lt;span class="nv"&gt;bool&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;true&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;f1&lt;/span&gt;: &lt;span class="nv"&gt;FB_A&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;f2&lt;/span&gt;, &lt;span class="nv"&gt;f3&lt;/span&gt;, &lt;span class="nv"&gt;f4&lt;/span&gt;: &lt;span class="nv"&gt;FB_B&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;p&lt;/span&gt;: &lt;span class="nv"&gt;pointer&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;FB_A&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;if&lt;/span&gt; &lt;span class="nv"&gt;bFirstCycle&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    &lt;span class="nv"&gt;f1&lt;/span&gt;.&lt;span class="nv"&gt;value&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;f2&lt;/span&gt;.&lt;span class="nv"&gt;value&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;f3&lt;/span&gt;.&lt;span class="nv"&gt;value&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;p&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;f1&lt;/span&gt;.&lt;span class="nv"&gt;GetInstAt&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="c1"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;p&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;p&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;value&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="c1"&gt;; end_if // Check f4.value online&lt;/span&gt;
    &lt;span class="nv"&gt;bFirstCycle&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;false&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;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#c295" rel="alternate"/><published>2020-02-27T13:55:40.008000Z</published><updated>2020-02-27T13:55:40.008000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com11d2fe501ed8e20d6ea96fc89beaade938fa7f03</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;New but similar question.&lt;/p&gt;
&lt;p&gt;Assume two FBs where FB_B extends FB_A.&lt;/p&gt;
&lt;p&gt;Lets say I have declared some instances of FB_B and a few of FB_A.&lt;/p&gt;
&lt;p&gt;How can I loop through all of the declared instances of both FB_B and FB_A to do something thats declared in FB_A?&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Question 2:&lt;br/&gt;
Is it possible to have a variable shared between declared instances, not beeing in a GVL?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#98af" rel="alternate"/><published>2020-02-27T13:55:39.803000Z</published><updated>2020-02-27T13:55:39.803000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.comf201d75a7161320e8c380fa32faad038145d5de6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Brilliant, thanks!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#59d3" rel="alternate"/><published>2020-02-27T13:55:39.551000Z</published><updated>2020-02-27T13:55:39.551000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comc879ce101a0f040e690578d111c142582083a167</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Viacheslav Mezentsev&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;program&lt;/span&gt; &lt;span class="nv"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nv"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;constant&lt;/span&gt;    
    &lt;span class="nv"&gt;numOfGensets&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="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;byte&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;gen1&lt;/span&gt;, &lt;span class="nv"&gt;gen2&lt;/span&gt;: &lt;span class="nv"&gt;ton&lt;/span&gt;&lt;span class="c1"&gt;; &lt;/span&gt;
    &lt;span class="nv"&gt;gensets&lt;/span&gt;: &lt;span class="nv"&gt;array&lt;/span&gt; [ &lt;span class="mi"&gt;1&lt;/span&gt; .. &lt;span class="nv"&gt;numOfGensets&lt;/span&gt; ] &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;pointer&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;ton&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;gen1&lt;/span&gt; &lt;span class="ss"&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;gen2&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt; ]&lt;span class="c1"&gt;;   &lt;/span&gt;
&lt;span class="nv"&gt;end_var&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="o"&gt;------------------&lt;/span&gt;
&lt;span class="nv"&gt;gen1&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;pt&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="sc"&gt;#10&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;gen2&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;pt&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="sc"&gt;#20&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Loop&lt;/span&gt; &lt;span class="nv"&gt;through&lt;/span&gt; &lt;span class="nv"&gt;all&lt;/span&gt; &lt;span class="nv"&gt;initiated&lt;/span&gt; &lt;span class="nv"&gt;gensets&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="nv"&gt;numOfGensets&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;gensets&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;pt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="sc"&gt;#10&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;gensets&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;pt&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="sc"&gt;#55&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="c1"&gt;; end_if&lt;/span&gt;
   
&lt;span class="nv"&gt;end_for&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Looping through methods/fbs</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/c97347a125/?limit=25#3ad9" rel="alternate"/><published>2020-02-27T13:55:39.304000Z</published><updated>2020-02-27T13:55:39.304000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com08506034552e87bce3f340caf6a560f5a30928a6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;I have initiated a function block several times and want to loop through to check for a variable.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;VAR&lt;/span&gt; &lt;span class="nv"&gt;CONSTANT&lt;/span&gt;
   &lt;span class="nv"&gt;numOfGensets&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="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;gen1&lt;/span&gt;, &lt;span class="nv"&gt;gen2&lt;/span&gt;      : &lt;span class="nv"&gt;fbGenset&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;gensets&lt;/span&gt;         : &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;..&lt;span class="nv"&gt;numOfGensets&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;fbGenset&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; [&lt;span class="nv"&gt;gen1&lt;/span&gt;, &lt;span class="nv"&gt;gen2&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
.... &lt;span class="nv"&gt;Main&lt;/span&gt; &lt;span class="nv"&gt;prog&lt;/span&gt;....
&lt;span class="nv"&gt;gen1&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;gen2&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Loop&lt;/span&gt; &lt;span class="nv"&gt;through&lt;/span&gt; &lt;span class="nv"&gt;all&lt;/span&gt; &lt;span class="nv"&gt;initiated&lt;/span&gt; &lt;span class="nv"&gt;gensets&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="nv"&gt;numOfGensets&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;gensets&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;].&lt;span class="nv"&gt;breakerStatus&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;BREAKER_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;TRIPPED&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="nv"&gt;tripped&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&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;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;METHOD&lt;/span&gt; &lt;span class="nv"&gt;breakerStatus&lt;/span&gt; : &lt;span class="nv"&gt;BREAKER_STATUS&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Check&lt;/span&gt; &lt;span class="nv"&gt;status&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;circuit&lt;/span&gt; &lt;span class="nv"&gt;breaker&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;generator&lt;/span&gt; &lt;span class="nv"&gt;breaker&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;closed&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;breakerStatus&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;BREAKER_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;CLOSED&lt;/span&gt;&lt;span class="c1"&gt;; // Closed&lt;/span&gt;
&lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt; &lt;span class="nv"&gt;closed&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;breakerStatus&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;BREAKER_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;OPEN&lt;/span&gt;&lt;span class="c1"&gt;; // Open&lt;/span&gt;
&lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;tripped&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;breakerStatus&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;BREAKER_STATUS&lt;/span&gt;.&lt;span class="nv"&gt;TRIPPED&lt;/span&gt;&lt;span class="c1"&gt;; // Tripped&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This dosent work as desired as gen1 and gen2 isnt updated cyclically in the array.&lt;br/&gt;
How should this be done the proper way without having to update the array every scan?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>