<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/47e5569076/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/47e5569076/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/47e5569076/</id><updated>2020-02-27T23:02:57.775000Z</updated><subtitle>Recent posts to Access to BIT variable via IN_OUT from a FB</subtitle><entry><title>Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/47e5569076/?limit=25#b6af" rel="alternate"/><published>2020-02-27T23:02:57.775000Z</published><updated>2020-02-27T23:02:57.775000Z</updated><author><name>JohanH</name><uri>https://forge.codesys.com/u/johanh/</uri></author><id>https://forge.codesys.com86877ebb3f4143790be20991a35d4e9d34b03ca5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I believe that the IN_OUT is part of 61131 so at least that kind of POINTER must be part as well.&lt;br/&gt;
Not so sure that reserve 8 BIT for a BOOL variable like Codesys does is according to 61131 however.&lt;/p&gt;
&lt;p&gt;The reason for using IN_OUT, is to inside the FB access an variable declared outside the FB. &lt;br/&gt;
There are several occasions when this is useful. &lt;br/&gt;
I.e. Modbus communication often uses the "M" area as this is by default is mapped to the Modbus interface (ABB, Wago..). To pass this value to a FB as an INPUT is waste of memory as this will create an instance variable that will be an duplicate of the variable already used in "M" area. Instead using an IN_OUT will create a pointer to the original variable in "M" area and no "duplicate".  Also when working with "retain" variables its better to declared them on the outside and use IN_OUT. If at least one of the function block variables is a retain variable, the total instance is stored in the retain area. Meaning that the retain memory part will be filled up fast.&lt;br/&gt;
I guess this all depends on the programmer and how he wants to structure the program. &lt;/p&gt;
&lt;p&gt;Any how. My question remains. Is there any way to point out a BOOL variable from a FB (IN_OUT) when its declared with BIT??&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/47e5569076/?limit=25#9916" rel="alternate"/><published>2020-02-27T23:02:56.150000Z</published><updated>2020-02-27T23:02:56.150000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.comb7e55eb0e4040dfabeb9dd04a1ba7cea72b9d691</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;yes possible with pointers, however i hate them.&lt;br/&gt;
please stick with the 61131&lt;/p&gt;
&lt;p&gt;so you have an input somewhere that is called trip, why not use another one called realtrip and manipulate that one, as it is bad practice to use an input as output.&lt;br/&gt;
i never understood IN_OUT.&lt;/p&gt;
&lt;p&gt;or give us the program (in export format please) and will have a look at it.&lt;br/&gt;
is it necesarry to have them persistent and remain? as this is slow and has limits on times to use (flash writing)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/47e5569076/?limit=25#596b" rel="alternate"/><published>2020-02-27T23:02:51.626000Z</published><updated>2020-02-27T23:02:51.626000Z</updated><author><name>JohanH</name><uri>https://forge.codesys.com/u/johanh/</uri></author><id>https://forge.codesys.com7eb1b89958f2cd8b32c3dfbbfa5243b5f9507e09</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;br/&gt;
Thanks for your prompt reply. Problem is that I want it to be a Pointer to the variable on the outside of the FB (in this case "M1_trip"). If I make it an ordinary INPUT that will not be the case. Instead a instance variable is created ( fb1.tripped). But an IN_OUT it will point directly to "M1_TRIP" Meaning that FB will read/write directly to "M1_TRIP" and not the instance variable.&lt;/p&gt;
&lt;p&gt;In my case I want to read the status of "tripped" inside the FB and depending on other conditions sometimes set it to FALSE. &lt;/p&gt;
&lt;p&gt;What you mean by use the lower. Could you please explain more?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
and you should use the lower as you use a BOOL but the address is a BYTE.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Best Regards&lt;br/&gt;
Johan&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/47e5569076/?limit=25#e38f" rel="alternate"/><published>2020-02-27T23:02:49.964000Z</published><updated>2020-02-27T23:02:49.964000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com2b9c3b9d4d4f4190fb7f02cdd1292f0177bddceb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;change the tripped var from in_out to INPUT.&lt;br/&gt;
and you should use the lower as you use a BOOL but the address is a BYTE.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Access to BIT variable via IN_OUT from a FB</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/47e5569076/?limit=25#674c" rel="alternate"/><published>2020-02-27T23:02:45.366000Z</published><updated>2020-02-27T23:02:45.366000Z</updated><author><name>JohanH</name><uri>https://forge.codesys.com/u/johanh/</uri></author><id>https://forge.codesys.com50924e233dca9bee90cddbdda48821cbff53f2ce</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Is there any way to access a bool variable as an IN_OUT to a FB when it is declared as a BIT rather than a BYTE that is "standard" in Codesys?  &lt;/p&gt;
&lt;p&gt;This will work:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;VAR_GLOBAL&lt;/span&gt; &lt;span class="n"&gt;RETAIN&lt;/span&gt; &lt;span class="n"&gt;PERSISTENT&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;Motor&lt;/span&gt; &lt;span class="n"&gt;breaker&lt;/span&gt; &lt;span class="n"&gt;trip&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M1_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MB10&lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M2_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MB11&lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M3_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MB12&lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M4_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MB13&lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M5_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MB14&lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&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;This will not work:&lt;br/&gt;
(Error message 4060: VAR_IN_OUT parameter 'TRIPPED' of 'FB1' need to be variable with write access as input)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;VAR_GLOBAL&lt;/span&gt; &lt;span class="n"&gt;RETAIN&lt;/span&gt; &lt;span class="n"&gt;PERSISTENT&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;Motor&lt;/span&gt; &lt;span class="n"&gt;breaker&lt;/span&gt; &lt;span class="n"&gt;trip&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M1_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MX10&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M2_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MX10&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M3_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MX10&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M4_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MX10&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;M5_TRIP&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;MX10&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&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;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;fb1&lt;/span&gt;
&lt;span class="n"&gt;VAR_IN_OUT&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Tripped&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;Here&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;I&lt;/span&gt; &lt;span class="n"&gt;would&lt;/span&gt; &lt;span class="k"&gt;like&lt;/span&gt; &lt;span class="k"&gt;to&lt;/span&gt; &lt;span class="k"&gt;access&lt;/span&gt; &lt;span class="n"&gt;M1_TRIP&lt;/span&gt;&lt;span class="o"&gt;*&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;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;fb1&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;Tripped&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;M1_TRIP&lt;/span&gt; &lt;span class="o"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Regards&lt;br/&gt;
Johan&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>