Цитата Сообщение от Boris_K Посмотреть сообщение
Просто же! Как и писал kgsh82, сделайте переменную, в которую панель может записывать своё значение (r_panel), аналогично, переменную, в которую пишет скада (r_scada), и дополнительную переменную в ПЛК (r_plc), и пишете например так:

Код:
IF r_panel<>r_plc THEN
    r_plc:=r_panel;
    r_scada:=r_panel;
END_IF;
IF r_scada<>r_plc THEN
    r_plc:=r_scada;
    r_panel:=r_scada;
END_IF;
Тут даже не надо заводить переменные для значений от предыдущего цикла ПЛК.
В том то и дело, что данный код не работает как надо. То есть при
IF NOT strt_panel THEN
hh_day:=p_hh_day;
IF p_mm_day<>mm_day THEN
mm_day:=p_mm_day;
os_mm_day:=p_mm_day;
END_IF;
END_IF;

IF b_modemLine=3 THEN
comm2:=255;
IF is_mm_day<>mm_day THEN
mm_day:=is_mm_day;
p_mm_day:=is_mm_day;
END_IF;
os_mm_day:=mm_day;
ELSE comm2:=254;
END_IF;
уставка меняется только со скады, с панели поменять уже не получается.
p_mm_day - слэйв
os_mm_day, is_mm_day - мастер
mm_day - внутр. глоб. переменная

Похоже придется разбираться с CASE...