bbocksta - 2019-11-05

Hallo an Alle,

Mir stellt sich die Frage, was die Best Practice zu dem Thema Dot-Accessor und Properties von FBs ist.

Ein Beispiel:
Ich habe einen Funktionsblock mit der Boolschen Variablen

Function_Block CONTROL
VAR
   _blocked : BOOL;
END_VAR

Um auf diese Variable von außerhalb des FB Scopes zugreifen zu können, hat der FB eine
Property mit dem Rückgabewert

PROPERTY bLocked : REFERENCE TO BOOL

GET:

bLocked REF=THIS^._bLocked;

SET:

THIS^._bLocked := bLocked;

Versuche ich nun im Programm diese Variable zu beschreiben, gibt es die Warnung C0410:Kompatibilitätswarnung
während des übersetzens.

PROGRAM PLC_PRG
VAR
   _Control : CONTROL;
   bTemp : BOOL;
END_VAR
_Control.bLocked := bTemp;

Vollständige Warnung:

Zitat:
[WARNUNG] Minimalbeispiel_C0410: bLocked Device: SPS-Logik: Application: CONTROL: C0410: KOMPATIBILITÄTSWARNUNG: Ein Schreibzugriff auf ein Property des Typs REFERENCE ruft für Versionen < 3.5.10.0 den SET-Accessor auf und schreibt die Referenz, ABER: für Versionen >= 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.

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.
Ist es ein gangbarer Weg, die Warnung einfach zu unterdrücken?
Angehängt habe ich auch nochmal das Minimalbeispiel, wie ich es hier beschrieben habe.

Ich bin für jede Hilfe dankbar.

Mit freundlichen Grüßen,
-Benjamin

Minimalbeispiel_C0410.project [120.48 KiB]