<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to ansprechen von Inputs wiederholend mit offset</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/</id><updated>2020-02-28T09:00:40.300000Z</updated><subtitle>Recent posts to ansprechen von Inputs wiederholend mit offset</subtitle><entry><title>ansprechen von Inputs wiederholend mit offset</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/?limit=25#e9c5" rel="alternate"/><published>2020-02-28T09:00:40.300000Z</published><updated>2020-02-28T09:00:40.300000Z</updated><author><name>micha1983</name><uri>https://forge.codesys.com/u/micha1983/</uri></author><id>https://forge.codesys.comb32452952eee3b211fd24866db05939560ef5396</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Vielen Dank. &lt;/p&gt;
&lt;p&gt;Das mit dem SHR ist echt eine pratikable gute Lösung. &lt;br/&gt;
Vielen Dank. &lt;/p&gt;
&lt;p&gt;Gruß Michael&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ansprechen von Inputs wiederholend mit offset</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/?limit=25#d8bf" rel="alternate"/><published>2020-02-28T09:00:37.845000Z</published><updated>2020-02-28T09:00:37.845000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.come65d4d8d3ace9b014cbfa5beb79fd4b305ba6a59</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; ebt'ler&lt;/p&gt;
&lt;p&gt;Wie wäre es mit:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;input_1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BYTE_TO_BOOL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SHR&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;IB0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;offset&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;00000001&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;input_2&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BYTE_TO_BOOL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SHR&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;IB0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;offset&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;00000001&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Bei offset := 0 bekommt input_1 Bit 0 von IB0 (IX0.0) und input_2 bekommt Bit 1 von IB0 (IX0.1).&lt;br/&gt;
Bei offset := 1 bekommt input_1 Bit 2 von IB0 (IX0.2) und input_2 bekommt Bit 3 von IB0 (IX0.3).&lt;br/&gt;
usw.&lt;/p&gt;
&lt;p&gt;Hier noch eine Möglichkeit Funktionen mit Bool_Eingängen gleich byteweise aufzurufen:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&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;in_byte_1&lt;/span&gt; : &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;in_byte_2&lt;/span&gt; : &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;out_byte_1&lt;/span&gt; : &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;i&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;__________________________________________&lt;/span&gt;
&lt;span class="nv"&gt;out_byte_1&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&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;i&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
&lt;span class="nv"&gt;out_byte_1&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;out_byte_1&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="nv"&gt;SHL&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BOOL_TO_BYTE&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;test_funktion&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BYTE_TO_BOOL&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;SHR&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;in_byte_1&lt;/span&gt;,&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="sc"&gt;#00000001&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="nv"&gt;BYTE_TO_BOOL&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;SHR&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;in_byte_2&lt;/span&gt;,&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="sc"&gt;#00000001&lt;/span&gt;&lt;span class="ss"&gt;)))&lt;/span&gt;,&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;; &lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;test_funktion&lt;/span&gt; &lt;span class="nv"&gt;besitzt&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;Bool&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Inputs&lt;/span&gt; &lt;span class="nv"&gt;und&lt;/span&gt; &lt;span class="nv"&gt;hat&lt;/span&gt; &lt;span class="nv"&gt;als&lt;/span&gt; &lt;span class="nv"&gt;R&lt;/span&gt;ü&lt;span class="nv"&gt;ckgabewert&lt;/span&gt; &lt;span class="nv"&gt;auch&lt;/span&gt; &lt;span class="nv"&gt;Bool&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;END_FOR&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Kannst du damit was anfangen? Wenn nicht melde dich nochmal &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ansprechen von Inputs wiederholend mit offset</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/a1c99c74d2/?limit=25#cd02" rel="alternate"/><published>2020-02-28T09:00:31.159000Z</published><updated>2020-02-28T09:00:31.159000Z</updated><author><name>micha1983</name><uri>https://forge.codesys.com/u/micha1983/</uri></author><id>https://forge.codesys.comef352e8e398185e52868fadf508e7154d61c8282</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo liebes Forum,&lt;/p&gt;
&lt;p&gt;ich habe einen FC, dieser verwendet immer wieder die gleiche reihenfolge von digitalen Inputs.&lt;br/&gt;
Also z.B.&lt;/p&gt;
&lt;p&gt;Beim ersten Aufruf muss der FC INPUTS %IX0.0 und %IX0.1 abfragen&lt;/p&gt;
&lt;p&gt;beim zweiten Aufruf, muss er %IX0.2 und %IX0.3 beim dritten 0.4 und 0.5 abfragen.&lt;/p&gt;
&lt;p&gt;Jetzt möchte ich diesen Baustein nur einmal programmieren und duch die interne Nummer des Aufrufs also 1, 2,3, usw.&lt;br/&gt;
soll der Offset für die Bitadresse bestimmt werden.&lt;/p&gt;
&lt;p&gt;Ich dachte ich mache das mit Pointern allerdings funktionieren die nicht mit Bitadressen.&lt;/p&gt;
&lt;p&gt;Wie löst ihr solche Sachen in Regel?&lt;/p&gt;
&lt;p&gt;Wäre nett wenn mir da jemand helfen kann.&lt;/p&gt;
&lt;p&gt;Vielen Dank schonmal!&lt;/p&gt;
&lt;p&gt;Gruß Michael&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>