используйте RTY.
Цилкл ПЛК поставьте 1мс. В Вашей программе этого будет достаточно.
Управление МДВВ по маске. Чтение к примеру раз в 20-100мс, запись по изменению.
Регенерацию выходов надо делать не по "изменению", а в каждом цикле. Это элементарные азы при программировании ПЛК.