Да. Вот кусок реального кода.
Код:
PROGRAM SaveSP
VAR
T: POINTER TO PARAMETER_DESCRIPTOR;
P: POINTER TO BYTE;
HaveCmd: R_TRIG;
FlashReady: TON;
END_VAR
VAR_INPUT
TempSP: REAL;
DoSave:BOOL;
END_VAR
HaveCmd(CLK:= DoSave);
IF HaveCmd.Q THEN
T:= READ_BY_HASH(16#07A1, 0);
P:= ADR(TempSP);
T^.value[0]:= P^; P:= P+1;
T^.value[1]:= P^; P:= P+1;
T^.value[2]:= P^; P:= P+1;
T^.value[3]:= P^;
END_IF
FlashReady (IN:= (T<>0), PT:= T#3ms);
IF FlashReady.Q THEN
SAVE_PARAMETER(T);
T:= 0;
END_IF
По сути, делается програмная имитация изменения переменной по протоколу ОВЕН. 16#07A1 - Хеш значение переменной из меню.