По поводу п.1 в PLCConfiguration можно добавить подмодуль Триггер. Он связывается с каким либо входом настраивается фронт срабатывания (передний, задний, или что необходимо в нашем случае оба фронта) и все дальше обявляем переменную по адресу выхода триггера и контролируем ее если 1 то произошло переключение, если 0 то нет. мне кажется так логичнее, да и код уменьшается. При использовании триггеров из standart.lib тоже самое только придется R и F триггеры придется включать параллельно для фиксирования обоих фронтов, а в конфигураторе все удобно и просто (в очередной раз спасибо программерам ОВЕН за заботу).


Удачи.