<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Bit Addressing in integers</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/2711e7717f/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/2711e7717f/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/2711e7717f/</id><updated>2020-02-27T22:05:43.760000Z</updated><subtitle>Recent posts to Bit Addressing in integers</subtitle><entry><title>Bit Addressing in integers</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/2711e7717f/?limit=25#a698" rel="alternate"/><published>2020-02-27T22:05:43.760000Z</published><updated>2020-02-27T22:05:43.760000Z</updated><author><name>spfeif</name><uri>https://forge.codesys.com/u/spfeif/</uri></author><id>https://forge.codesys.com06ecc5b7a6b6aa6807ceb9ace7cbb716e99e0fc2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;To add you can also use constants as bit modifiers but you also have to select in the OPTIONS-BUILD-REPLACE CONSTANTS. So you can do the following:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;constant&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;OPTION1&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;word&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="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;OPTION2&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;ON&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="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;OFF&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="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;False&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;end_var&lt;/span&gt;
&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;OPTION1&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;ON&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;OPTION2&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;OFF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Bit Addressing in integers</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/2711e7717f/?limit=25#270f" rel="alternate"/><published>2020-02-27T22:05:39.495000Z</published><updated>2020-02-27T22:05:39.495000Z</updated><author><name>swtroelofs</name><uri>https://forge.codesys.com/u/swtroelofs/</uri></author><id>https://forge.codesys.com46b509e0d5b5b66d1bb38aa546947307c21a105e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks for your reply. You put me on the right track. A library I'm already using (util.lib) also has a function PUTBIT. The program works now.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Bit Addressing in integers</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/2711e7717f/?limit=25#03ff" rel="alternate"/><published>2020-02-27T22:05:37.938000Z</published><updated>2020-02-27T22:05:37.938000Z</updated><author><name>Rolf-Geisler</name><uri>https://forge.codesys.com/u/rolf-geisler/</uri></author><id>https://forge.codesys.com247656477b03d22cfb3bcde046ae5e9bf18c18cb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I only could suggest to use a function, which gets the bit number as an input.&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://www.geisler-controls.de" rel="nofollow"&gt;http://www.geisler-controls.de&lt;/a&gt; I've published the library BinUtils. Use the function PutBit_W out of it :&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;iTest&lt;/span&gt; : &lt;span class="nv"&gt;int&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;wTest&lt;/span&gt; : &lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;iTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="nv"&gt;wTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;PutBit_W&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wTest&lt;/span&gt;, &lt;span class="nv"&gt;iTest&lt;/span&gt;, &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; (* to set the bit iTest *)&lt;/span&gt;
   &lt;span class="nv"&gt;wTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;PutBit_W&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wTest&lt;/span&gt;, &lt;span class="nv"&gt;iTest&lt;/span&gt;, &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; (* to clear the bit iTest *)&lt;/span&gt;
&lt;span class="nv"&gt;END_FOR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This will work.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Bit Addressing in integers</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/2711e7717f/?limit=25#52aa" rel="alternate"/><published>2020-02-27T22:05:33.535000Z</published><updated>2020-02-27T22:05:33.535000Z</updated><author><name>swtroelofs</name><uri>https://forge.codesys.com/u/swtroelofs/</uri></author><id>https://forge.codesys.comede36976f4f31aab2bd7aa1a8f336d3f23fbc61d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I've got a question about bit addressing in Codesys 2.3.9.18:&lt;/p&gt;
&lt;p&gt;I would like to use the following code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;iTest&lt;/span&gt; : &lt;span class="nv"&gt;int&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;wTest&lt;/span&gt; : &lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;iTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="nv"&gt;wTest&lt;/span&gt;.&lt;span class="nv"&gt;iTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_FOR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This returns the error:&lt;br/&gt;
Integer number or symbolic constant expected&lt;/p&gt;
&lt;p&gt;The following example does work:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;iTest&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
   &lt;span class="nv"&gt;wTest&lt;/span&gt;.&lt;span class="mi"&gt;1&lt;/span&gt;   :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_FOR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Is it possible to use something like 'wTest.iTest'?&lt;/p&gt;
&lt;p&gt;(and yes, it is possible to use an ARRAY OF BOOL to store a large collection of booleans, but this uses a lot more memory)&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>