<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Struct Literal</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/04aa0d69aa/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/04aa0d69aa/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/04aa0d69aa/</id><updated>2025-04-07T14:46:50.366000Z</updated><subtitle>Recent posts to Struct Literal</subtitle><entry><title>Struct Literal</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/04aa0d69aa/?limit=25#6f05" rel="alternate"/><published>2025-04-07T14:46:50.366000Z</published><updated>2025-04-07T14:46:50.366000Z</updated><author><name>jampid</name><uri>https://forge.codesys.com/u/jampid/</uri></author><id>https://forge.codesys.coma7329abf7fe6194d5d5b3fb116c7800ff384b9b7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Bonjour Davidmic,&lt;br/&gt;
Il n'est pas possible d'associer une méthode à une fonction. Cela est possible sur les Blocs fonctions.&lt;/p&gt;
&lt;h4 id="en-utilisant-ta-dut-mystruct-je-cree-une-fonction-avec-en-entree-un-tableau-de-structure"&gt;En utilisant ta DUT MyStruct, je créé une fonction avec en entrée un tableau de structure :**&lt;/h4&gt;
&lt;p&gt;FUNCTION &lt;strong&gt;F_F3&lt;/strong&gt; : REAL&lt;br/&gt;
VAR_IN_OUT // bien définir un type IN_OUT&lt;br/&gt;
    IN_ptrINT: ARRAY&lt;span&gt;[*]&lt;/span&gt; OF MyStruct; // la taille sera définie ultérieurement/&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
    _di: DINT; // Index de parcours du tableau pour l'écriture dans les cases&lt;br/&gt;
ENDVAR&lt;br/&gt;
&lt;strong&gt;==============&lt;/strong&gt;&lt;br/&gt;
//Programme F_F3:&lt;br/&gt;
FOR _di := LOWER_BOUND(IN_ptrINT,1) TO UPPER_BOUND(IN_ptrINT,1)  DO&lt;br/&gt;
    IN_ptrINT&lt;span&gt;[_di]&lt;/span&gt;.som:=IN_ptrINT&lt;span&gt;[_di]&lt;/span&gt;.a + IN_ptrINT&lt;span&gt;[_di]&lt;/span&gt;.b;&lt;br/&gt;
END_FOR&lt;/p&gt;
&lt;h4 id="jutilise-ensuite-cette-fonction-dans-un-pou-programme"&gt;J'utilise ensuite cette fonction dans un POU Programme :&lt;/h4&gt;
&lt;p&gt;PROGRAM Test_F_Fx&lt;br/&gt;
VAR&lt;br/&gt;
_aiTAB9:ARRAY&lt;span&gt;[0..3]&lt;/span&gt; OF MyStruct := &lt;span&gt;[(a := 1, b := 1.2), (a := 2, b := 2.2), (a := 3, b := 3.3), (a := 4, b := 4.4)]&lt;/span&gt;;&lt;br/&gt;
END_VAR&lt;br/&gt;
** ==========**&lt;br/&gt;
F_F3(IN_ptrINT:=_aiTAB9 );&lt;/p&gt;
&lt;p&gt;Voilà l'idée pour avancer.&lt;br/&gt;
Une autre idée, est d'utiliser les pointeurs ou les références.&lt;br/&gt;
Bon développement!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Struct Literal</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/04aa0d69aa/?limit=25#337d" rel="alternate"/><published>2025-03-28T22:08:35.844000Z</published><updated>2025-03-28T22:08:35.844000Z</updated><author><name>davidmic</name><uri>https://forge.codesys.com/u/davidmic/</uri></author><id>https://forge.codesys.com9aa7ae6b22ddb0c32679073d38bd47ec940fe58e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi all&lt;/p&gt;
&lt;p&gt;I want to pass a struct into a function without declaring the struct in a VAR/END_VAR. Is this possible? I think this would be called a struct literal&lt;/p&gt;
&lt;p&gt;It would look something like this&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;someFB&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;structArgument&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;MyStruct#&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;otherArgument&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;With this struct declaration&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kr"&gt;TYPE&lt;/span&gt; &lt;span class="n"&gt;MyStruct&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="n"&gt;STRUCT&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;REAL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;END_STRUCT&lt;/span&gt;
&lt;span class="n"&gt;END_TYPE&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry></feed>