<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/</id><updated>2020-02-27T14:27:41.193000Z</updated><subtitle>Recent posts to Objects architecture</subtitle><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#7e6a" rel="alternate"/><published>2020-02-27T14:27:41.193000Z</published><updated>2020-02-27T14:27:41.193000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.com01c3061c76f740a0f817d8884f91861ad443cf18</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;See for example how a cnc axe works.&lt;/p&gt;
&lt;p&gt;It has an fb which runs every cycle in background mking pid and path generator. It gives to the world as an output nqmed axisRef which has all the information about the axe. Status orders... There are some fb which has as a varinout an axisref. Via this axisref you can know the state of the axis and can give orders to him (mcmoveabsolute mc_error....).&lt;/p&gt;
&lt;p&gt;Alll dios and nios are hidden, but you can know all information of the axis via this fbs.&lt;/p&gt;
&lt;p&gt;You can have one fb connected to axis ref which gives to you all the information needed for hmi, another for error....&lt;/p&gt;
&lt;p&gt;It hides dios and nios&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#a7cd" rel="alternate"/><published>2020-02-27T14:27:39.913000Z</published><updated>2020-02-27T14:27:39.913000Z</updated><author><name>krakers</name><uri>https://forge.codesys.com/u/krakers/</uri></author><id>https://forge.codesys.com660f05d795f246e98e0e7f37f7c46758761bafbd</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The problem is more complicated, the signal valve_closed needs to go to several other subsystems/FB's, it can be for example interface FB for scada or maybe some other FB handling sum alarms etc, etc&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#be33" rel="alternate"/><published>2020-02-27T14:27:39.475000Z</published><updated>2020-02-27T14:27:39.475000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.comdbdbd87bc63bab58d206c5f674a48edb5f8a622a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;The question is why you have to use in any part of your program valb_closed. From my point of view you have to make an fb which contols all together the valb and the cillinder inputs.&lt;/p&gt;
&lt;p&gt;In some part of your program you do valb_set_open and wait since limit switch goes on, and every time you want to use the cillinder you have to actuate valb and see limit switch.&lt;/p&gt;
&lt;p&gt;Instead of that, why not make an fb with all cillinder functionalty and launch orders from the program to the cillinder fb (using blocks with execute flange input).&lt;/p&gt;
&lt;p&gt;In that case, the inouts are instantiated, normally, inside basic users.&lt;/p&gt;
&lt;p&gt;I see a control program as a tree. The root node could be an cfc with big machine parts. And normaly, the lasts nodes are inouts.&lt;/p&gt;
&lt;p&gt;You can use Codesys as a traditional plc program using contact logic, or use all his power.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#c040" rel="alternate"/><published>2020-02-27T14:27:39.051000Z</published><updated>2020-02-27T14:27:39.051000Z</updated><author><name>krakers</name><uri>https://forge.codesys.com/u/krakers/</uri></author><id>https://forge.codesys.combecf24ba600d559612e800a04c8e38c76ed82bc7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you Joseph for the link, I have read it now.&lt;/p&gt;
&lt;p&gt;I'm still not 100% sure about my core concern thouch: Should these "debounced objects" be defined in a Global Variable List or should it be a VAR in the "Main" PRG POU? I mean, they should probably be accesible throughout the program since each object may be used by different program parts?&lt;/p&gt;
&lt;p&gt;Maybe I'm on the wrong track here  &lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#d872" rel="alternate"/><published>2020-02-27T14:27:37.796000Z</published><updated>2020-02-27T14:27:37.796000Z</updated><author><name>josepmariarams</name><uri>https://forge.codesys.com/u/josepmariarams/</uri></author><id>https://forge.codesys.comef4b91d659b30029eee0928bea3e1b43c66736c7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;There are some topics talking about that. &lt;/p&gt;
&lt;p&gt;See  l &lt;a class="" href="https://forum.codesys.com/viewtopic.php?t=7917" rel="nofollow"&gt;viewtopic.php?t=7917&lt;/a&gt; l &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Objects architecture</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4f737ebca3/?limit=25#137d" rel="alternate"/><published>2020-02-27T14:27:37.359000Z</published><updated>2020-02-27T14:27:37.359000Z</updated><author><name>krakers</name><uri>https://forge.codesys.com/u/krakers/</uri></author><id>https://forge.codesys.comf497531ea38535441cc7bf0545fbe41aeaa772b2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi everyone. An "architecture" question about how to organize the program.&lt;/p&gt;
&lt;p&gt;After debouncing etc., the value of each input is assigned to individual "objects" that represent the function of the input ("valve x closed" etc) that are used further in the program. It can be hundreds of objects.&lt;/p&gt;
&lt;p&gt;Should these objects be defined in a Global Variable List or should it be a VAR in the "Main" PRG POU? I mean, they should probably be accesible throughout the program since each object may be used by different program parts?&lt;/p&gt;
&lt;p&gt;Every suggestion and input regarding how to structure the program architecture (also in general) is welcome!&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>