Добрый день.
Связка 323+МДВВ

МДВВ - подключены кнопки на входы, лампочки на выходы.

Нажатие кнопки --> включение лампочки запрограммировал следующим образом:

PROGRAM PLC_PRG
VAR
MDVV_IN WORD (*считываем значение нажатой кнопки с МДВВ*)
PLC_OUT_1_TMP INT (*временная переменная*)
PLC_OUT_1 BOOL (*выход МДВВ*)
END_VAR

IF MDVV_IN=1 (*определяем какая кнопка нажата*)
THEN PLC_OUT_1_TMP:=(PLC_OUT_1_TMP+1); (*фиксируем нажатие в переменную*)
ELSE (*кнопку отпустили*)
IF PLC_OUT_1_TMP>0 THEN (*если нажимали - то делаем следующее*)
PLC_OUT_1:=INT_TO_BOOL((BOOL_TO_INT(PLC_OUT_1)+1)M OD 2); (выход МДВВ переключаем в следующее состояние вкл/выкл*)
PLC_OUT_1_TMP:=0; (*обнуляем нажатие кнопки*)
END_IF
END_IF

И такие условия для каждой из 12 кнопок.

Необходимо так же фиксировать двойное нажатие кнопки,
а так же длинное нажатие, причем в случае длинного нажатия должен заработать диммер, то есть некая переменная, назовем ее DIMMER_1 должна увеличиваться пока кнопку держут нажатой.

Прошу помощи в реализации.