Так вы триггер и не вызываете. Сравните 18 строку (вызов ФБ с параметрами) и 28 (задание параметра ФБ без его вызова).
Вызов триггера заменит вам всю конструкцию IF THEN ELSE:
Код:
R_TRIG_M16D_CH_WR_COUNT14(CLK:=(M16D_cnt14 >= M16D_cnt14_val_rst));
Тут, правда, стоит подумать о ситуации, когда после срабатывания триггера запись в модуль не произошла (например, в тот момент он был отключен). Возможно, стоит действовать в стиле "если спустя 5 секунд после срабатывания триггера значение счетчика не изменилось, то сбрасываем триггер (и он сработает опять, т.к. условие срабатывания продолжает выполняться) для новой попытки записи".
И советую для Main_task поставить цикл 10 мс - по дефолту обмен привязывается к задаче с наименьшим циклом, 100 мс - не очень хорошее число.