если это значение не поменялось, а в конфигураторе плк у вас настроено "by value change", тут приравнивай, не приравнивай посылка не будет отправлена => не нужны все эти if then else. подойдет простое do := new_value;
p.s. кстати очень интересный параметр "by value change" - отправляет посылку в устройство только по изменению значения. допустим у вас булева переменная отправляется в модуль дискретного вывода, имеет значение true и не меняется аж 30 сек. в модуле сетевой тайм-аут сколько должен быть, чтобы у вас релюшка в нем не выключилась? логично предположить, что больше 30 сек. а если обрыв связи и надо срочно отключить эту релюшку? модуль то переведет ее в безопасное состояние только через 31 сек.




