<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/</id><updated>2020-02-27T13:48:41.899000Z</updated><subtitle>Recent posts to Trying to learn OOP, overkill?</subtitle><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#9e8f" rel="alternate"/><published>2020-02-27T13:48:41.899000Z</published><updated>2020-02-27T13:48:41.899000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com47d09bfb5a9dfc789bd6d81935979c10ab4270c9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; AntonZ&lt;/p&gt;
&lt;p&gt;If you want to use persistance anyway without making everything inside the function block persistent:&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#a727" rel="alternate"/><published>2020-02-27T13:48:41.781000Z</published><updated>2020-02-27T13:48:41.781000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com2ee2a5531cd4df084bf00d3966e10a9a545716fa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;You should define your variables inside the FB as persistent retain, not the FB itself.  I only mentioned that for compiler reasons, the whole FB will use retain space...&lt;/p&gt;
&lt;p&gt;Program&lt;/p&gt;
&lt;p&gt;Var&lt;br/&gt;
  Light1, Light2 : MyLightControl;&lt;br/&gt;
End var&lt;/p&gt;
&lt;p&gt;If Sunrise then&lt;br/&gt;
    Light1.TurnOff();&lt;br/&gt;
    Light2.TurnOff();&lt;br/&gt;
End if&lt;br/&gt;
....&lt;/p&gt;
&lt;p&gt;If Light1.Service() then&lt;br/&gt;
   ....&lt;/p&gt;
&lt;p&gt;Function block MyLightControl&lt;br/&gt;
Var&lt;br/&gt;
   Temp : bool;&lt;br/&gt;
   //other vars that don’t need memory&lt;br/&gt;
End var&lt;/p&gt;
&lt;p&gt;Var persistent retain&lt;br/&gt;
   LightIsOn : bool;&lt;br/&gt;
   HoursOn : DWORD;&lt;br/&gt;
End var&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#62c3" rel="alternate"/><published>2020-02-27T13:48:41.690000Z</published><updated>2020-02-27T13:48:41.690000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.come77d076d407103b1c10058e57248f61fd734277f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm using Wagos PFC200 PLC.&lt;/p&gt;
&lt;p&gt;I tried declaring my function-blocks as persistent retain in declaration;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;VAR&lt;/span&gt; &lt;span class="n"&gt;PERSISTENT&lt;/span&gt; &lt;span class="n"&gt;RETAIN&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;sb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;aft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fwd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;towFwd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;towAft&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;fbNaviLight&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;p&gt;But then I get a warning:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
    C0244: No VAR_PERSISTENT-list is part of the application to enter instance path for variable naviLightManager.sb&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What's causing this.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#e266" rel="alternate"/><published>2020-02-27T13:48:41.606000Z</published><updated>2020-02-27T13:48:41.606000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com03c6f81a6c9171ed6fde6b40a8ec9e205bc422df</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;If you want persistence, be a bit careful.  If you define a variable inside of your FB as persistent, the whole FB will go into persistence memory. If your FBs are large or you have a lot of FBs or you have a very small amount of persistent memory, you will have a problem.  In that case, create a method you call to pass an external persistent variable’s address to a local pointer or use REFERENCE TO (my recommendation). Instead of a method you can also use FB_INIT and force a reference link on instantiation.  But I would start the simple way and let your whole FB go into persistence and worry about running out of memory if it actually happens. &lt;/p&gt;
&lt;p&gt;Also be aware that some hardware platforms do not support persistence (Rasp Pi for example).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#9a7e" rel="alternate"/><published>2020-02-27T13:48:41.537000Z</published><updated>2020-02-27T13:48:41.537000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com3b197771660d6377d7a8e46168588d3523ca09b3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks, I'll check those out.&lt;/p&gt;
&lt;p&gt;What would be the best way to make lights and presets persisten/retain when working with OOP?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#3550" rel="alternate"/><published>2020-02-27T13:48:41.447000Z</published><updated>2020-02-27T13:48:41.447000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com211d2351ad902958fd59bc53eb18b4d7d808ef69</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;CoDeSys gave a good example similar to your question.  See these two CoDeSys store links:&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://store.codesys.com/object-oriented-programming.html?___store=en&amp;amp;___from_store=default" rel="nofollow"&gt;https://store.codesys.com/object-orient ... re=default&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://store.codesys.com/object-oriented-programming-extended.html?___store=en" rel="nofollow"&gt;https://store.codesys.com/object-orient ... __store=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OOP has many merits, but to some in the Automation world, the name and concept is dismissed.  I have found that you can use many OOP concepts very nicely in CoDeSys.  The ironic part, is the people that dismiss OOP are already using it when they use a function block!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#13fd" rel="alternate"/><published>2020-02-27T13:48:41.366000Z</published><updated>2020-02-27T13:48:41.366000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com382dce752fc4fdc47ada6d719dc770e21e36b6fb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;dFx hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
To me there is no better case to use OOP. Every system is acting in a same way ...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Do you mean OOP is waste of time?&lt;/p&gt;
&lt;p&gt;Also how do I take care of input and outputs in relations to this? As in where do I define them and where do I enable them?&lt;/p&gt;
&lt;p&gt;What about methods and properties? When to use either of them.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#49e5" rel="alternate"/><published>2020-02-27T13:48:41.237000Z</published><updated>2020-02-27T13:48:41.237000Z</updated><author><name>dFx</name><uri>https://forge.codesys.com/u/dfx/</uri></author><id>https://forge.codesys.com67f361706cfc4f92289ea1ca651db975fdf736fa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;To me there is no better case to use OOP. Every system is acting in a same way ...&lt;/p&gt;
&lt;p&gt;I would use it this way :&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;D&lt;/span&gt;é&lt;span class="nv"&gt;clarations&lt;/span&gt;
&lt;span class="nv"&gt;naviLights&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;numOfLights&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;fbNaviLight&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Code&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Inputs&lt;/span&gt;
&lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;].&lt;span class="nv"&gt;LigthAsk&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;IX0&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;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;2&lt;/span&gt;].&lt;span class="nv"&gt;LigthAsk&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;IX0&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;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;3&lt;/span&gt;].&lt;span class="nv"&gt;LigthAsk&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;IX0&lt;/span&gt;.&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Call&lt;/span&gt; &lt;span class="nl"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;every&lt;/span&gt; &lt;span class="nv"&gt;FB&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;numOfLights&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
      &lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;]&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DisableAll&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;disableAll&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_FOR&lt;/span&gt;
&lt;span class="nv"&gt;DisableAll&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="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Outputs&lt;/span&gt;
&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;QX0&lt;/span&gt;.&lt;span class="mi"&gt;0&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;].&lt;span class="nv"&gt;LigthOut&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;QX0&lt;/span&gt;.&lt;span class="mi"&gt;1&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;2&lt;/span&gt;].&lt;span class="nv"&gt;LigthOut&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;QX0&lt;/span&gt;.&lt;span class="mi"&gt;2&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="mi"&gt;3&lt;/span&gt;].&lt;span class="nv"&gt;LigthOut&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;FB code&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;DisableAll&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="nv"&gt;LigthOut&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="k"&gt;ELSE&lt;/span&gt;
   &lt;span class="nv"&gt;LigthOut&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;LigthAsk&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;Your FB will have the duty to manage a ligth, and how it is light up. &lt;br/&gt;
This ensure consistency along your program. &lt;br/&gt;
But as I/Os are independant, it is generally managed via FB I/Os, in a manner that you must affect it one by one.&lt;/p&gt;
&lt;p&gt;you may also declare your I/Os directly as naviLights&lt;span&gt;[i]&lt;/span&gt;.LigthAsk and naviLights&lt;span&gt;[i]&lt;/span&gt;.LigthOut &lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
dFx&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#017b" rel="alternate"/><published>2020-02-27T13:48:41.118000Z</published><updated>2020-02-27T13:48:41.118000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com900f9c4a57cf0f7e7479c20d3e62a33bc069c848</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ok som more questions theyn.&lt;/p&gt;
&lt;p&gt;Let's say I've initiated a couple of navigation lights in a "light manager";&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;VAR&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;sb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;aft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fwd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;towFwd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;towAft&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;fbNaviLight&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;p&gt;What's the best way of turning them on from a preset? Similary disabling them all?&lt;/p&gt;
&lt;p&gt;I tried declaring them in an array then looping the array and that works, but it seems a bit cumbersome having to declare a light twice? And also the need of updating numOfLights.&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;numOfLights&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;6&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;sb&lt;/span&gt;, &lt;span class="nv"&gt;port&lt;/span&gt;, &lt;span class="nv"&gt;aft&lt;/span&gt;, &lt;span class="nv"&gt;fwd&lt;/span&gt;, &lt;span class="nv"&gt;towFwd&lt;/span&gt;, &lt;span class="nv"&gt;towAft&lt;/span&gt; : &lt;span class="nv"&gt;fbNaviLight&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;naviLights&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;numOfLights&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;iNaviLight&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; [&lt;span class="nv"&gt;sb&lt;/span&gt;, &lt;span class="nv"&gt;port&lt;/span&gt;, &lt;span class="nv"&gt;aft&lt;/span&gt;, &lt;span class="nv"&gt;fwd&lt;/span&gt;, &lt;span class="nv"&gt;towFwd&lt;/span&gt;, &lt;span class="nv"&gt;towAft&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;disableAll&lt;/span&gt; &lt;span class="k"&gt;THEN&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;numOfLights&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
      &lt;span class="nv"&gt;naviLights&lt;/span&gt;[&lt;span class="nv"&gt;i&lt;/span&gt;].&lt;span class="nv"&gt;setLight&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&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_FOR&lt;/span&gt;
   &lt;span class="nv"&gt;disableAll&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>Trying to learn OOP, overkill?</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/3aae213610/?limit=25#685a" rel="alternate"/><published>2020-02-27T13:48:41.043000Z</published><updated>2020-02-27T13:48:41.043000Z</updated><author><name>somlioy</name><uri>https://forge.codesys.com/u/somlioy/</uri></author><id>https://forge.codesys.com90953d0beab7e115e15a217c717162a039325309</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thought I'd try using OOP with a system I'm making, more specific control of navigation lights for ships.&lt;br/&gt;
Every lit the same way, has feedback wether current is running when enabled (to check for open circuit), a set of customizeable presets (different combinations).&lt;/p&gt;
&lt;p&gt;Is it overkill to use oop for such simple system or is it "ideal"? In that case could anyone point me in the right direction for how to divide each required component?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>