<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/</id><updated>2020-06-29T14:05:33.383000Z</updated><subtitle>Recent posts to Call physical address by variable</subtitle><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#90e0/d4ee/2b58" rel="alternate"/><published>2020-06-29T14:05:33.383000Z</published><updated>2020-06-29T14:05:33.383000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.comabfcfa0e507802b5dcc4f97a14cb95a97fbad398</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This code work for several %IB (example %IB0 to %IB10) to position0 in 1 instruction if I set index to 10 ?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#90e0/d4ee" rel="alternate"/><published>2020-06-29T12:06:37.867000Z</published><updated>2020-06-29T12:06:37.867000Z</updated><author><name>i-campbell</name><uri>https://forge.codesys.com/u/i-campbell/</uri></author><id>https://forge.codesys.com0fb6d3793778c8d4bdac106c9050b263b9d598da</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nc"&gt;PROGRAM&lt;/span&gt; &lt;span class="nf"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nf"&gt;VAR&lt;/span&gt;
    &lt;span class="nf"&gt;value&lt;/span&gt; &lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;BYTE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nf"&gt;position0&lt;/span&gt; &lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;POINTER&lt;/span&gt; &lt;span class="nf"&gt;TO&lt;/span&gt; &lt;span class="nf"&gt;BYTE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nf"&gt;index&lt;/span&gt; &lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;BYTE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nf"&gt;END_VAR&lt;/span&gt;
&lt;span class="nf"&gt;position0&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nc"&gt;ADR&lt;/span&gt;(&lt;span class="err"&gt;%&lt;/span&gt;&lt;span class="nc"&gt;IB0&lt;/span&gt;)&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nf"&gt;value&lt;/span&gt;  &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nv"&gt;position0&lt;/span&gt;[&lt;span class="nv"&gt;index&lt;/span&gt;]&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#667f" rel="alternate"/><published>2020-06-29T08:43:53.137000Z</published><updated>2020-06-29T08:43:53.137000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com50e81f611082cd38a5f6629a4dd813ea6eaeaa3c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Is it possible to create my own ethernet ip device ?  I have x same device, I/O are mapped on table, just number of ligne change. Could I create my special device with special parameter which defines number of line in the table, I could win a lot of time.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=250#2747/037c" rel="alternate"/><published>2020-06-16T10:41:39.871000Z</published><updated>2020-06-16T10:41:39.871000Z</updated><author><name>aliazzz</name><uri>https://forge.codesys.com/u/aliazzz/</uri></author><id>https://forge.codesys.comd6b9a0e7bd710f19d9028f11ae05bf2084ddef38</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;That is the standard/normal/vanilla way of coupling IO...&lt;/p&gt;
&lt;p&gt;In general there are 2 vanilla flavours (there are way more options but those aren't exactly vanilla anymore);&lt;br/&gt;
&lt;em&gt; Declare variables in your IO point and reference that variable in your POU (program, FB, Func, whatever)&lt;br/&gt;
&lt;/em&gt; Declare variables in your POU and couple them to an IO point.&lt;/p&gt;
&lt;p&gt;PS: I never use hardcoded IO adresses in my code (%I, %Q, %M etc) .&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#2747" rel="alternate"/><published>2020-06-16T10:00:14.070000Z</published><updated>2020-06-16T10:00:14.070000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com4d97cc92b93bd454f7537708f50b86c8d0f21b00</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;What do you think about this: &lt;a href="https://help.codesys.com/api-content/2/codesys/3.5.13.0/en/_cds_configuring_devices_mapping_ios/#mapping-a-device-input-to-a-function-block-instance" rel="nofollow"&gt;https://help.codesys.com/api-content/2/codesys/3.5.13.0/en/_cds_configuring_devices_mapping_ios/#mapping-a-device-input-to-a-function-block-instance&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#d849/268b" rel="alternate"/><published>2020-06-16T09:59:52.521000Z</published><updated>2020-06-16T09:59:52.521000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com71adc796218200e975c848570b5840b007af4866</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I think it's not I want to do....&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#c382/e43b" rel="alternate"/><published>2020-06-16T07:36:27.855000Z</published><updated>2020-06-16T07:36:27.855000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com3cbd6c103bc50bd9a8a52cea3573beac0bdb83b6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;wIndex doesn't work. For pValue := %IW8 : when wIndex = 0 I have the good result of %IW8 but if I put wIndex:=1; I haven't got value of %IW9. Result is 0.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=250#d849" rel="alternate"/><published>2020-06-15T18:56:31.652000Z</published><updated>2020-06-15T18:56:31.652000Z</updated><author><name>aliazzz</name><uri>https://forge.codesys.com/u/aliazzz/</uri></author><id>https://forge.codesys.com2ea11c69a4b27e69a9cdc0c851920ead3fd95a86</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Maybe you should check out this store example: &lt;a href="https://store.codesys.com/io-mapping-tool.html" rel="nofollow"&gt;https://store.codesys.com/io-mapping-tool.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It enables you to graphically map IO to an FB 'on the fly' or do it programmatically. &lt;br/&gt;
Plus this example is open-source, so if you want to know how it works or modify it for your own needs you can do that.&lt;/p&gt;
&lt;p&gt;Good luck&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#c382" rel="alternate"/><published>2020-06-15T16:31:26.252000Z</published><updated>2020-06-15T16:31:26.252000Z</updated><author><name>Comingback4u</name><uri>https://forge.codesys.com/u/comingback4u/</uri></author><id>https://forge.codesys.com595b1d6e720774823b778f9c7b9bcaf2d8c803c4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This should be enough to get you started and you can build off of this.&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;FUNCTION&lt;/span&gt; &lt;span class="nv"&gt;MyFunction&lt;/span&gt; : &lt;span class="nv"&gt;WORD&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
    &lt;span class="nv"&gt;pValue&lt;/span&gt; : &lt;span class="nv"&gt;POINTER&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="nv"&gt;WORD&lt;/span&gt;&lt;span class="c1"&gt;; //Pointer to start address. In your case it would be %IW0&lt;/span&gt;
    &lt;span class="nv"&gt;wIndex&lt;/span&gt; : &lt;span class="nv"&gt;WORD&lt;/span&gt;&lt;span class="c1"&gt;; //Index above start address to go to. 0 = %IW0, 1 = %IW1, 2 = %IW2.....&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;pValue&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;pValue&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wIndex&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;SIZEOF&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;WORD&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;; //Set pointer to desired index&lt;/span&gt;
&lt;span class="nv"&gt;MyFunction&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;pValue&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="c1"&gt;; //Get value from pointer and return&lt;/span&gt;
&lt;span class="o"&gt;******************************************************&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="k"&gt;Then&lt;/span&gt; &lt;span class="k"&gt;call&lt;/span&gt; &lt;span class="nl"&gt;it&lt;/span&gt; &lt;span class="nv"&gt;like&lt;/span&gt;:
&lt;span class="nv"&gt;PROGRAM&lt;/span&gt; &lt;span class="nv"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
    &lt;span class="nv"&gt;wIndex&lt;/span&gt; : &lt;span class="nv"&gt;WORD&lt;/span&gt;&lt;span class="c1"&gt;; //Index value to get. 0 = %IW0, 1 = %IW1, 2 = %IW2.....&lt;/span&gt;
    &lt;span class="nv"&gt;wReturnValue&lt;/span&gt; : &lt;span class="nv"&gt;WORD&lt;/span&gt;&lt;span class="c1"&gt;; //result from function call for test&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;wReturnValue&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;MyFunction&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pValue&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;IW0&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="nv"&gt;wIndex&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;wIndex&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Call physical address by variable</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/789d703922/?limit=25#1478" rel="alternate"/><published>2020-06-14T09:39:01.413000Z</published><updated>2020-06-14T09:39:01.413000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com616f37c8a00b8d2f126fc3a12666a0df6060a7d4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;iValue&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;511&lt;/span&gt;&lt;span class="c1"&gt;; //Value to be split or you could do wValue AT %IW1: WORD;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I want to define on input of FB the address %IW1. Is it possible ? And after, by code incremente adress to %IW2, %IW3, etc...&lt;/p&gt;
&lt;p&gt;The idea is create a function block with input the first address of %IW and the first address of %QW:&lt;/p&gt;
&lt;p&gt;FB for Slave ethernet ip 1:&lt;br/&gt;
First_Input := %IW1;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;.word_1;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;.word_2;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/3/"&gt;[3]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;.word_3;&lt;br/&gt;
....&lt;/p&gt;
&lt;p&gt;FB for Slave ethernet ip 2:&lt;br/&gt;
First_Input := %IW10;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_1;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_2;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/3/"&gt;[3]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_3;&lt;br/&gt;
....&lt;/p&gt;
&lt;p&gt;FB for Slave ethernet ip 10:&lt;br/&gt;
First_Input := %IW100;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/1/"&gt;[1]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_1;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_2;&lt;br/&gt;
First_Input&lt;a class="alink" href="/forge/talk-ru/3/"&gt;[3]&lt;/a&gt;:= DATA&lt;a class="alink" href="/forge/talk-ru/2/"&gt;[2]&lt;/a&gt;.word_3;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>