<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/</id><updated>2020-02-28T06:38:03.812000Z</updated><subtitle>Recent posts to problem mit pointer</subtitle><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#99d6" rel="alternate"/><published>2020-02-28T06:38:03.812000Z</published><updated>2020-02-28T06:38:03.812000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com02d0ea36f726c2732c494f6bdb06c7798060d0ea</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Mahlzeit&lt;/p&gt;
&lt;p&gt;Na also. Geht doch.&lt;/p&gt;
&lt;p&gt;Es gibt auch Steuerungen, bzw Compiler wo ein Bit auch noch ein Bit ist...&lt;/p&gt;
&lt;p&gt;Also 24 je Kiste &lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#1c18" rel="alternate"/><published>2020-02-28T06:38:01.598000Z</published><updated>2020-02-28T06:38:01.598000Z</updated><author><name>debug</name><uri>https://forge.codesys.com/u/debug/</uri></author><id>https://forge.codesys.com0b8e3354f6b3b77dd7bbe44445443169781c3c91</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ja, wir kommen dem Ziel schon näher. &lt;/p&gt;
&lt;p&gt;Ich verwende 8-Bit Klemmen. Mit der Lösung wird immer nur jedes 8. Bit meiner 200 Ausgänge angesprochen. Verständlich, da BOOL intern immer 8 Bit Speicherplatz belegt. &lt;/p&gt;
&lt;p&gt;Mit Byte oder Word geht das auch. Dann muss halt noch von Ausgang Nr. auf Word und Bit umgerechnet werden.&lt;/p&gt;
&lt;p&gt;An Wago 750-841 und 750-530 getestetes Beispiel liegt bei.&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum-de.codesys.com//download/file.php?id=469" rel="nofollow"&gt;Test_Lauflicht.pro &lt;span&gt;&lt;span&gt;[38.85 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#5fa3" rel="alternate"/><published>2020-02-28T06:37:59.359000Z</published><updated>2020-02-28T06:37:59.359000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com0519adacae7ec080eb24a9322312f842153a6a77</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Na ja, Tippfehler.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;bDigOut&lt;/span&gt; &lt;span class="nt"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nt"&gt;IB0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;    &lt;span class="nt"&gt;ARRAY&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;..200&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="nt"&gt;OF&lt;/span&gt; &lt;span class="nt"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;So gehts.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#8bd5" rel="alternate"/><published>2020-02-28T06:37:53.237000Z</published><updated>2020-02-28T06:37:53.237000Z</updated><author><name>debug</name><uri>https://forge.codesys.com/u/debug/</uri></author><id>https://forge.codesys.com9606228ae201fb5080c6ce6eb558d9f092a5fef6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Erik,&lt;/p&gt;
&lt;p&gt;Danke für Deine Hilfe. auf die Idee bin ich noch nicht gekommen.&lt;/p&gt;
&lt;p&gt;ABER ```&lt;/p&gt;
&lt;p&gt;DOut : ARRAY&lt;span&gt;[1..200]&lt;/span&gt; OF BOOL AT %QX1.0;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Wird abgewiesen mit:&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Erwarte ';' oder ':=' vor 'AT'&lt;/p&gt;
&lt;p&gt;&lt;code&gt;denn:&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Online Hilfe sagt:&lt;br/&gt;
DOut AT %QX1.0: BOOL;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Allerdings werden Arrays laut Doku definiert:&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DOut : ARRAY &lt;span&gt;[1..200]&lt;/span&gt; OF bool;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Umgekehrt mit:&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Out : ARRAY&lt;span&gt;[1..32]&lt;/span&gt; AT %QX1.0 OF BOOL;&lt;/p&gt;
&lt;p&gt;```heißt es dann Erwarte OF vor 'AT'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#e676" rel="alternate"/><published>2020-02-28T06:37:51.020000Z</published><updated>2020-02-28T06:37:51.020000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com185ddc16448f377fabd8c7491c9381cb677e66bf</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Mahlzeit&lt;/p&gt;
&lt;p&gt;Warum ist das mit 200 Ausgängen schwieriger als mit 10 ?&lt;/p&gt;
&lt;p&gt;DigOut: Array&lt;span&gt;[1..200]&lt;/span&gt; of BOOL ab Adresse QX...&lt;/p&gt;
&lt;p&gt;-&amp;gt; Index aus den Informationen aus der Schnittstelle in Index: INT;&lt;/p&gt;
&lt;p&gt;-&amp;gt; DigOut&lt;span&gt;[Index]&lt;/span&gt; := FALSE bzw TRUE&lt;/p&gt;
&lt;p&gt;-&amp;gt; fertig&lt;/p&gt;
&lt;p&gt;Oder seh ich das falsch ?&lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#9060" rel="alternate"/><published>2020-02-28T06:37:43.941000Z</published><updated>2020-02-28T06:37:43.941000Z</updated><author><name>debug</name><uri>https://forge.codesys.com/u/debug/</uri></author><id>https://forge.codesys.comc860db9cf7b457bf41222909bc78b39864d6bb2b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;ich muss das Thema nochmals vorkramen. &amp;gt;&lt;strong&gt;Erik Böhm hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Vielleicht sollte die letzte zeile einfach so aussehen:&lt;br/&gt;
geraet1 := geraet_status&lt;span&gt;[1]&lt;/span&gt;;&lt;br/&gt;
Ausserdem könntest du das ja auch gleich so machen:&lt;br/&gt;
A01     AT %QX0.0   : BOOL;&lt;br/&gt;
A02     AT %QX0.1   : BOOL;&lt;br/&gt;
A03     AT %QX0.2   : BOOL;&lt;br/&gt;
A01 :=  geraet_status&lt;span&gt;[1]&lt;/span&gt;;           A02 :=  geraet_status&lt;span&gt;[2]&lt;/span&gt;;           A03 :=  geraet_status&lt;span&gt;[3]&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;Ich habe ein ähnliches Problem. Über eine Schnittstelle bekomme ich die Nr. des Ausgangs, der gesetzt oder gelöscht werden soll. Bei den Eingänge wird der Status abgefragt.&lt;/p&gt;
&lt;p&gt;Bei 10 Ausgängen kein Problem. Bei mir sind es je 200 Eingänge und Ausgänge.&lt;/p&gt;
&lt;p&gt;Hat hier für jemand eine einfach Idee, damit ich direkt den 123. Ausgang ändern kann?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#5387" rel="alternate"/><published>2020-02-28T06:37:41.551000Z</published><updated>2020-02-28T06:37:41.551000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com190e2d0d5d18494163e03531706e9a0cd5d235f3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Bernhard Werner&lt;/p&gt;
&lt;p&gt;Hallo Janko,&lt;/p&gt;
&lt;p&gt;BITADR macht etwas ganz anderes als Sie erwarten:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Online Hilfe hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
BITADR liefert den Bitoffset innerhalb des Segments in einem DWORD. Beachten Sie, dass der Offset davon abhängt, ob die Option Byteadressierung in den Zielsystemeinstellungen aktiviert ist oder nicht. &lt;br/&gt;
VAR&lt;br/&gt;
 var1 AT %IX2.3:BOOL;&lt;br/&gt;
 bitoffset: DWORD;&lt;br/&gt;
END_VAR&lt;br/&gt;
Beispiel in ST:&lt;br/&gt;
bitoffset:=BITADR(var1); (&lt;em&gt; Ergebnis bei Byteadressierung=TRUE: 19, bei Byteadressierung=FALSE: 35 &lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wenn wir mal beim obigen Beispiel bleiben: bitoffset ist mitnichten ein POINTER auf das Bit, sondern eben der Bitoffset im Eingangsabbild. Da DWORD leider voll kompatibel zu POINTER ist, kann man das einfach auch einem POINTER zuweisen. Dort steht aber dann als "Adresse" auch 19 (2&lt;em&gt;8 + 3) oder 35 (2&lt;/em&gt;16 + 3) drin. Wenn man diesen Pointer derefenziert, kracht es natürlich.&lt;/p&gt;
&lt;p&gt;Das Problem ist, dass es so etwas wie einen Bitpointer einfach nicht gibt.&lt;/p&gt;
&lt;p&gt;Wenn Sie sich das BITADR in einer Struktur merken, gemeinsam mit der &lt;/p&gt;
&lt;p&gt;ADR(%QB0) dann kann man sich aus diesen zwei Information mit ein bisschen Mühe und Bitshifterei den Wert des Bits ermitteln&lt;/p&gt;
&lt;p&gt;Bernhard Werner&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#94c2" rel="alternate"/><published>2020-02-28T06:37:35.334000Z</published><updated>2020-02-28T06:37:35.334000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com07abc28a095638f512720159459ac1fef223b6d5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Kann sein, dass wir aneinander vorbeireden...&lt;/p&gt;
&lt;p&gt;Schick mir doch mal ne Mail, dann bekommst du meine Telefonnummer zurück...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#f0a7" rel="alternate"/><published>2020-02-28T06:37:33.142000Z</published><updated>2020-02-28T06:37:33.142000Z</updated><author><name>Janko12301</name><uri>https://forge.codesys.com/u/janko12301/</uri></author><id>https://forge.codesys.com2fd293315245e132baef31dffee0b49fb234646b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;leider kommt anscheind nicht richtig rüber was ich will.&lt;/p&gt;
&lt;p&gt;Ich lasse doch natürlich die Array index variablen hochzählen.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>problem mit pointer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/2411857c60/?limit=25#4e76" rel="alternate"/><published>2020-02-28T06:37:26.875000Z</published><updated>2020-02-28T06:37:26.875000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com90bf7fdb26c718ed79cc1c6cec72e1477ba06bc8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Das mit dem String usw.. geht nicht.&lt;/p&gt;
&lt;p&gt;Aber eine ArrayVariable kannst du doch auch hochzählen.&lt;/p&gt;
&lt;p&gt;Siehe voriges Beispiel.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>