TYPE DUT :
STRUCT
x, y : DINT;
END_STRUCT
END_TYPE
FUNCTION_BLOCK POU
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
_dut : DUT;
END_VAR
PROPERTY Prop : REFERENCE TO DUT
Prop REF= _dut; // wichtig: REF= überschreibt eine Referenz := schreibt [U]auf[/U] die Referenz!
PROGRAM PLC_PRG
VAR
inst : POU;
END_VAR
inst.Prop.x := inst.Prop.x + 1;
IF Heute = Montag THEN
Prop REF= _dut1;
ELSE
Prop REF= _dut2;
END_IF
Also wird die get-Methode auch aufgerufen, wenn die Propertie auf der linken Seite des := steht? Ich dachte dann wirkt immer die Set-Methode. ???
Es ist schade, dass man sich nicht endlich einmal mit der neuen ST Spracherweiterung an aktuelle Entwicklungen in der Notation angepasst hat.
Was dem FB fehlt aus meiner Sicht, ist der Schritt zum echten Objekt mit Constructor und mit gettern/settern und Methoden. Wenn man dann noch von C# das Referenz Modell incl. Notation übernehmen würde, könnte man die Pointer abschaffen und hätte eine inhärent sichere und effektive Sprachimplementation gewonnen.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?