<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Properties und die C0410 Kompatibilitätswarnung</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4b04ae594a/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4b04ae594a/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/4b04ae594a/</id><updated>2020-02-27T14:03:58.869000Z</updated><subtitle>Recent posts to Properties und die C0410 Kompatibilitätswarnung</subtitle><entry><title>Properties und die C0410 Kompatibilitätswarnung</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4b04ae594a/?limit=25#ef47" rel="alternate"/><published>2020-02-27T14:03:58.869000Z</published><updated>2020-02-27T14:03:58.869000Z</updated><author><name>bbocksta</name><uri>https://forge.codesys.com/u/bbocksta/</uri></author><id>https://forge.codesys.com67fd1f342bbb795bdaa0c61cb47df65978cf18ce</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo an Alle,&lt;/p&gt;
&lt;p&gt;Mir stellt sich die Frage, was die Best Practice zu dem Thema Dot-Accessor und Properties von FBs ist.&lt;/p&gt;
&lt;p&gt;Ein Beispiel: &lt;br/&gt;
Ich habe einen Funktionsblock  mit der Boolschen Variablen &lt;/p&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;CONTROL&lt;/span&gt;
&lt;span class="n"&gt;VAR&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;_blocked&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;Um auf diese Variable von außerhalb des FB Scopes zugreifen zu können, hat der FB  eine&lt;br/&gt;
Property  mit dem Rückgabewert &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PROPERTY&lt;/span&gt; &lt;span class="n"&gt;bLocked&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;REFERENCE&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;GET:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;bLocked&lt;/span&gt; &lt;span class="k"&gt;REF&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;THIS&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_bLocked&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;SET:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;THIS&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_bLocked&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bLocked&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Versuche ich nun im Programm  diese Variable zu beschreiben, gibt es die Warnung C0410:Kompatibilitätswarnung &lt;br/&gt;
während des übersetzens. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PROGRAM&lt;/span&gt; &lt;span class="n"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="n"&gt;VAR&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;_Control&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;CONTROL&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;bTemp&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;span class="n"&gt;_Control&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bLocked&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bTemp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Vollständige Warnung:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
&lt;span&gt;[WARNUNG]&lt;/span&gt;       Minimalbeispiel_C0410: bLocked &lt;a class="" href="../Zeile%201"&gt;Device: SPS-Logik: Application: CONTROL&lt;/a&gt;: C0410:  KOMPATIBILITÄTSWARNUNG: Ein Schreibzugriff auf ein Property des Typs REFERENCE ruft für Versionen &amp;lt; 3.5.10.0 den SET-Accessor auf und schreibt die Referenz, ABER: für Versionen &amp;gt;= 3.5.10.0 ruft es den GET-Accessor auf und schreibt den Wert! Verwenden Sie den Operator REF=, wenn Sie die Referenz zuweisen wollen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gibt es da einen Weg drumherum? Wünschenswert wäre es ja, weiterhin über den Dot-Accessor auf die Variable zuzugreifen, die Warnung jedoch nicht zu bekommen. &lt;br/&gt;
Ist es ein gangbarer Weg, die Warnung einfach zu unterdrücken? &lt;br/&gt;
Angehängt habe ich auch nochmal das Minimalbeispiel, wie ich es hier beschrieben habe. &lt;/p&gt;
&lt;p&gt;Ich bin für jede Hilfe dankbar.&lt;/p&gt;
&lt;p&gt;Mit freundlichen Grüßen,&lt;br/&gt;
-Benjamin&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum.codesys.com//download/file.php?id=4991" rel="nofollow"&gt;Minimalbeispiel_C0410.project &lt;span&gt;&lt;span&gt;[120.48 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>