Задача. Есть три кнопки. Заведены на 2 входа In1 и In2. Если активен IN1 То значит нажата кнопка 1. Если In2 то кнопка 2. Если одновременно нажаты то кнопка 3.
Проблемы: Если зажать 1ю и 2ю кнопки(такое возможно в процессе работы) - активируется третья.

Написал такую вот функцию, решив что никто не сможет нажать две кнопки одновременно с разницей во времени в 1мс:

key:=0;
(*запускаем два таймера на передние фронты сигналов с кнопок*)
t1(in:=in1,pt:=t#1ms);
t2(in:=in2,pt:=t#1ms);
IF t1.Q AND t2.Q THEN(*только если оба фронта пришли с разницей не более 1мс считаем, что нажата 3я кнопка*)
key:=3;
ELSE
IF in1 THEN
key:=1;
ELSE
IF in2 THEN key:=2; END_IF;
END_IF;
END_IF;
t1(in:=FALSE);
t2(in:=FALSE);

В эмуляции работает не так как задумано. Это эмуляция работает так и на реальном устройстве будет нормально или у меня в корне неправильная реализация?
То есть я запускаю программу в режиме эмуляции, "зажигаю" два входа и у меня включается 1й и 3 например. Или 2й и 3й.