<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Rezepturverwaltung Anweisung um Variablen auszulassen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/</id><updated>2022-11-21T08:27:08.545000Z</updated><subtitle>Recent posts to Rezepturverwaltung Anweisung um Variablen auszulassen</subtitle><entry><title>Rezepturverwaltung Anweisung um Variablen auszulassen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/?limit=25#ff7b" rel="alternate"/><published>2022-11-21T08:27:08.545000Z</published><updated>2022-11-21T08:27:08.545000Z</updated><author><name>ignat</name><uri>https://forge.codesys.com/u/ignat/</uri></author><id>https://forge.codesys.com2ea323dee32e1893dde5bcfc3e3061c8e5bd2e2f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I did it quit the same - load on startup but during operation only logged-in user can edit/manage it. I have a page like 'Recipe'  where operator can select recipe - and values are loaded by recipe name changing.&lt;/p&gt;
&lt;p&gt;And Administrator can edit recipes - and during editing all other menu are blocked, so you are not able to leave the page without saving.&lt;/p&gt;
&lt;p&gt;You approach is nice too, I would just check the task configuration. If the task doesn't load the plc too much - then it's ok. &lt;/p&gt;
&lt;p&gt;Some events like for VisuElems would be great, agree&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Rezepturverwaltung Anweisung um Variablen auszulassen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/?limit=25#958e" rel="alternate"/><published>2022-11-20T21:39:50.466000Z</published><updated>2022-11-20T21:39:50.466000Z</updated><author><name>paho</name><uri>https://forge.codesys.com/u/paho/</uri></author><id>https://forge.codesys.comdef0e94d02c64edae6a7b33c1689f527b04bc146</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hey ignat,&lt;br/&gt;
thank you - that was a good one. You gave my brain a little kick with the STRUCT. Instead of writing the configuration variables of my function blocks directly in the VAR_INPUT, i've created a DUT for every FB with just the configuration variables declared.&lt;br/&gt;
With the recipe manager i just had to insert the DUT (lets say the name of FB is "machine" and the configuration is "config" =&amp;gt; PLC_PRG.machine.config) and everything was good :)&lt;/p&gt;
&lt;p&gt;With RecipeManCommands i can read and save the recipes. I just did that with a separate IEC-Task with low priority, saving the whole recipe every second and load that at startup.&lt;/p&gt;
&lt;p&gt;Could that be a problem? Because i don't know an easy way to check if an update is required... just iterating over all objects and check if the old value &amp;lt;&amp;gt; new value... something like an event would be great on value change :)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Rezepturverwaltung Anweisung um Variablen auszulassen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/?limit=25#facc" rel="alternate"/><published>2022-11-18T10:02:16.750000Z</published><updated>2022-11-18T10:02:16.750000Z</updated><author><name>ignat</name><uri>https://forge.codesys.com/u/ignat/</uri></author><id>https://forge.codesys.com66f3e90d1e51b5977569d1d68fb8b4a22aa6803f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;as far as I know there is no automatic binding to Recipe Manager.&lt;/p&gt;
&lt;p&gt;Ein paar ideas how to 'optimize' it, maybe it will be helpful:&lt;/p&gt;
&lt;p&gt;depends on how many FB you have and how many instances of Fb you have, but:&lt;/p&gt;
&lt;p&gt;1) I would make some UDT for transfer to RezeptVerwaltung like&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;TYPE DUT_RM_VALUESET_MY_NEW_FB_1 :&lt;/span&gt;
&lt;span class="err"&gt;STRUCT&lt;/span&gt;
&lt;span class="err"&gt;    rVal1 :REAL;&lt;/span&gt;
&lt;span class="err"&gt;    rVal2 :REAL;&lt;/span&gt;
&lt;span class="err"&gt;    ...&lt;/span&gt;
&lt;span class="err"&gt;    rVal100 :REAL&lt;/span&gt;
&lt;span class="err"&gt;END_STRUCT&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;2) and link them to specific instances of function blocks&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;FUNCTION_BLOCK&lt;/span&gt; &lt;span class="n"&gt;myNewFb_1&lt;/span&gt;

&lt;span class="n"&gt;VAR_IN_OUT&lt;/span&gt;
    &lt;span class="n"&gt;ValuesSet_RM&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;DUT_RM_VALUESET_MY_NEW_FB_1&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;3) when i collect all such a data in one GVL. e.g. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;//GVL_RecipeValues&lt;/span&gt;
&lt;span class="err"&gt;VAR_GLOBAL&lt;/span&gt;
&lt;span class="err"&gt;    ValuesSet_RM_1 :ARRAY [0..NUM_OF_FB_1_INSTANCES]&lt;/span&gt;
&lt;span class="err"&gt;    ValuesSet_RM_2 :ARRAY [0..NUM_OF_FB_2_INSTANCES]&lt;/span&gt;
&lt;span class="err"&gt;END_VAR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;4) and now if you need to update RECIPE DEFINITION you can just start to enter name in the first row of GVL and it puts all the variables from this list incl. structured variables.&lt;/p&gt;
&lt;p&gt;You can test it with GVL. I bet you have GVL in your project. Just try to put all values from GVL and it put them all there:&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Rezepturverwaltung Anweisung um Variablen auszulassen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/b034848746/?limit=25#ef25" rel="alternate"/><published>2022-10-26T15:34:03.213000Z</published><updated>2022-10-26T15:34:03.213000Z</updated><author><name>paho</name><uri>https://forge.codesys.com/u/paho/</uri></author><id>https://forge.codesys.com91de0b979bea136f9d07baa53af28039f9e9ba91</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;aktuell arbeite ich mit Codesys 3.5 SP18 und zum ersten mal mit der Rezepturverwaltung. Speichern funktioniert, laden funktioniert. Jetzt habe ich aber umfangreichere Funktionsblöcke, welche Ein/Ausgänge, Einstellwerte und auch interne Werte (für Regler usw.) besitzen. Es sollen nur die Einstellwerte in das Rezept gespeichert werden. Aber für jeden Funktionsblock von dem es mehrfach Instanzen gibt händisch jede notwendige Variable hinzufügen ist sehr mühsam (vor allem, wenn sich die Blöcke ändern oder eventuell neue dazu kommen).&lt;/p&gt;
&lt;p&gt;Ist es möglich, gleich bei der Variablendeklarierung des Funktionsblocks Codesys zu sagen, hier soll die Rezepturverwaltung Variablen hinzufügen können bzw. genau umgekehrt? Oder eventuell überhaupt eine ganz andere Methode?&lt;/p&gt;
&lt;p&gt;Danke schon mal im Voraus!&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>