Прощу помощи в решении следующей задачи.
Возможно возникновение трёх событий bEvent0, bEvent1, bEvent2 и bEvent3 (могут возникнуть как одновременно, так и нет), которые нужно записать в журнал событий панели оператора (панель НЕ Овен). Т.к. записать одновременно эти события нельзя, по фронту возникновения события присваиваю соответствующей переменной bEvent0W, bEvent1W, bEvent2W или bEvent3W значение "TRUE". Как только появилось событие для записи, то устанавливаю флаг записи _Samp_His_Buf_.0 на 10 секунд в "единицу" и записываю в журнал событий соответствующее значение переменной _byEventToLog_, в это время включаю ФБ TON TONSampHisBuf(IN:= _Samp_His_Buf_.0, PT:=t#10s , Q=> , ET=> TimeTONSampHisBuf) и по условию TONSampHisBuf.Q=TRUE сбрасываю флаг записи _Samp_His_Buf_.0. Но почему-то программа успевает зайти в условие сброса не один раз, а столько, сколько одновременно событий возникло (что и показывает счётчик byTONCount), из-за этого в журнал событий записывается только одно из событий. Если я правильно понял логику работы ФБ TON, то при сбросе входа IN в 0, выход Q тоже сбрасывается в 0.

Код:
RTRIGEvent0(CLK:= bEvent0, Q=>);
IF RTRIGEvent0.Q THEN
bEvent0W:= TRUE;
END_IF;
RTRIGEvent1(CLK:= bEvent1, Q=>);
IF RTRIGEvent1.Q THEN
bEvent1W:= TRUE;
END_IF;
RTRIGEvent2(CLK:= bEvent2, Q=>);
IF RTRIGEvent2.Q THEN
bEvent2W:= TRUE;
END_IF;
RTRIGEvent3(CLK:= bEvent3, Q=>);
IF RTRIGEvent3.Q THEN
bEvent3W:= TRUE;
END_IF;

IF bEvent0W  AND NOT _Samp_His_Buf_.0 THEN
_byEventToLog_:=0;
_Samp_His_Buf_.0:= TRUE;
bEvent0W:= FALSE;
END_IF;

IF bEvent1W AND NOT _Samp_His_Buf_.0 THEN
_byEventToLog_:=1;
_Samp_His_Buf_.0:= TRUE;
bEvent1W:= FALSE;
END_IF;

IF bEvent2W AND NOT _Samp_His_Buf_.0 THEN
_byEventToLog_:=2;
_Samp_His_Buf_.0:= TRUE;
bEvent2W:= FALSE;
END_IF;

IF bEvent3W AND NOT _Samp_His_Buf_.0 THEN
_byEventToLog_:=3;
_Samp_His_Buf_.0:= TRUE;
bEvent3W:= FALSE;
END_IF;

TONSampHisBuf(IN:= _Samp_His_Buf_.0, PT:=t#10s , Q=> , ET=> TimeTONSampHisBuf);
IF TONSampHisBuf.Q THEN
byTONCount:=byTONCount+1;
_Samp_His_Buf_.0:=FALSE;
END_IF;