Это если данные на тэг передаются непосредственно с контрола. Если эти данные передаются с контрола на тэг через какю-либо программу, то кроме того что Вы написали, нужно сделать следующее (по данным наконец-то ответившей техподдержки MS4D):
Заголовок ST:
VAR_INPUT RETAIN
SourceTag: LREAL := 0;
END_VAR
VAR_OUTPUT
EnO: BOOL := True;
TargetTag: SYSTEM_LREAL_PARAM := (Value := 0, SourceTime := DT#0001-01-01-00:00, StatusCode := 16#80320000);
END_VAR
VAR
Initialised: BOOL := False;
LastTagValue: LREAL := 0;
END_VAR
Код:
IF NOT Initialised THEN
LastTagValue := SourceTag;
Initialised := True;
END_IF;
IF LastTagValue <> SourceTag THEN
TargetTag.StatusCode := 0;
END_IF;
TargetTag.Value := SourceTag;
LastTagValue := SourceTag;