<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/</id><updated>2020-06-23T06:41:36.475000Z</updated><subtitle>Recent posts to How to use struct elements via index?</subtitle><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=250#d7b1" rel="alternate"/><published>2020-06-23T06:41:36.475000Z</published><updated>2020-06-23T06:41:36.475000Z</updated><author><name>aliazzz</name><uri>https://forge.codesys.com/u/aliazzz/</uri></author><id>https://forge.codesys.com3f9c7320833f0f17a96b0ae7f2b08e0426476920</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If you have cracked your problem, would you mind posting/sharing it here?&lt;br/&gt;
Thanks&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=25#fcab/79dc" rel="alternate"/><published>2020-06-23T05:08:38.642000Z</published><updated>2020-06-23T05:08:38.642000Z</updated><author><name>stade</name><uri>https://forge.codesys.com/u/stade/</uri></author><id>https://forge.codesys.coma16f37d6957ac58310ee35be6844bd9b70564e46</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It looks like every DataExchangeN in your code means different DataExchange.&lt;br/&gt;
I have only 1 DataExchange and hundreds of variables with different datatype in this DataExchange.&lt;/p&gt;
&lt;p&gt;So what I want is likely&lt;/p&gt;
&lt;p&gt;Collection&lt;span&gt;[0]&lt;/span&gt; point to DataRead.Data1,&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt; point to DataRead.Data2,&lt;br/&gt;
..&lt;br/&gt;
Collection&lt;span&gt;[N]&lt;/span&gt; point to DataRead.DataN+1.&lt;/p&gt;
&lt;p&gt;I will try if pointer can do this, thanks.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=250#fcab" rel="alternate"/><published>2020-06-22T09:16:43.432000Z</published><updated>2020-06-22T09:16:43.432000Z</updated><author><name>aliazzz</name><uri>https://forge.codesys.com/u/aliazzz/</uri></author><id>https://forge.codesys.comb3c5fe2947fde457d99db8af436196b95087e63c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Sorry for my bad statement and thanks for your answer.&lt;/em&gt; =&amp;gt; okay I guess?&lt;/p&gt;
&lt;p&gt;You are (from what I understand) trying to describe an array of pointers to your elements instances but i have difficulties in understandiong your writing, so I could misinterpret it.&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; pointers are dangerous when not initialised correct  &lt;/em&gt;)&lt;br/&gt;
Collection : ARRAY &lt;span&gt;[0..31]&lt;/span&gt; OF POINTER TO DataExchange;&lt;br/&gt;
(* I am not sure on this ^ statement! it could also be a pointer to DWORD as adresses are mostly DWORDS)&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; Always initialise the array of pointers in the beginning of your code and continously before you use them. This might be tedious but then again it helps you from crashes and whatnot! &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; INIT Pseudo code, must be run at start of every cycle(!) in order to survive&lt;br/&gt;
"online change" &lt;/em&gt;)&lt;br/&gt;
Collection&lt;span&gt;[0]&lt;/span&gt; := ADR(DataExchange00)&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt; := ADR(DataExchange01)&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt; := ADR(DataExchange03)&lt;br/&gt;
..&lt;br/&gt;
..&lt;br/&gt;
Collection&lt;span&gt;[N]&lt;/span&gt; := ADR(DataExchangeN)&lt;br/&gt;
Collection&lt;span&gt;[N+1]&lt;/span&gt; := ADR(DataExchangeN+1)&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; Writing Usage Example Pseudo &lt;/em&gt;)&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;^.Data1 := .. ;&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;^.Data2 := .. ;&lt;br/&gt;
Collection&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;^.Data3 := .. ;&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; reading Usage Pseudo&lt;/em&gt;)&lt;br/&gt;
.. := Collection&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;^.Data1;&lt;br/&gt;
.. := Collection&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;^.Data2;&lt;br/&gt;
.. := Collection&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;^.Data3;&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=25#2aa7/c05d" rel="alternate"/><published>2020-06-22T08:34:10.943000Z</published><updated>2020-06-22T08:34:10.943000Z</updated><author><name>stade</name><uri>https://forge.codesys.com/u/stade/</uri></author><id>https://forge.codesys.com5ca91c4eb40b8dc16ba6cfef829fa774838651a9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi aliazzz.&lt;/p&gt;
&lt;p&gt;Actually I have hundreds of elements with different datatype in the struct DataExchange, which means there are Data1 .. Data1000(or more).&lt;br/&gt;
The names of element are illustrative, actually they are irregular. &lt;br/&gt;
I have only 1 DataExchange named DataRead, and I want to use index as parameter to call the element I need.&lt;br/&gt;
For example, when I want to call Data50, I may use index 50 to call this element, instead of using DataRead.Data50.&lt;br/&gt;
But I have no idea how to implement it. &lt;/p&gt;
&lt;p&gt;Sorry for my bad statement and thanks for your answer.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=250#2aa7" rel="alternate"/><published>2020-06-22T06:16:50.418000Z</published><updated>2020-06-22T06:16:50.418000Z</updated><author><name>aliazzz</name><uri>https://forge.codesys.com/u/aliazzz/</uri></author><id>https://forge.codesys.com937c8ad82463791ccd71c347f2e5670c7bb68ef6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Try this out;&lt;/p&gt;
&lt;p&gt;Declaration&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Exchange&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ARRAY&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="n"&gt;OF&lt;/span&gt; &lt;span class="n"&gt;DataExchange&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Usage&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&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;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data2&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data3&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;..&lt;/span&gt;
&lt;span class="p"&gt;..&lt;/span&gt;
&lt;span class="n"&gt;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data2&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Exchange&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;Data3&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Offcourse 0..31 and a,b,c,x,y,z are illustrative.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Aliazzz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use struct elements via index?</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/bc7af6b23d/?limit=25#a92a" rel="alternate"/><published>2020-06-22T03:19:06.984000Z</published><updated>2020-06-22T03:19:06.984000Z</updated><author><name>stade</name><uri>https://forge.codesys.com/u/stade/</uri></author><id>https://forge.codesys.com2f2ff33cdad914b657677763d4bcc7c3c13fe92c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, I have a struct with elements in different datatype, for example:&lt;/p&gt;
&lt;p&gt;TYPE DataExchange :&lt;br/&gt;
    STRUCT&lt;br/&gt;
        Data1 : INT;&lt;br/&gt;
        Data2 : WORD;&lt;br/&gt;
        Data3 : DWORD;&lt;br/&gt;
    END_STRUCT&lt;br/&gt;
END_TYPE&lt;/p&gt;
&lt;p&gt;VAR&lt;br/&gt;
    DataRead : DataExchange;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;Is there any way to use the elements in the struct via index?&lt;br/&gt;
It means using &lt;br/&gt;
DataRead&lt;span&gt;[0]&lt;/span&gt; := 0 instead of DataRead.Data1 := 0, &lt;br/&gt;
DataRead&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt; := 0 instead of DateRead.Data2 := 0, etc.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>