Я работаю с контроллером WAGO 750-842 в CoDeSys - не могу победить RETAIN - после выключения питания все переменные пропадают . Прошу помощи - может что-то не так далаю ?
Объявление переменных и часть программы, в которой с ними работаешь приведи.
Питание пропадает - входы обнуляются и temp также обнуляется. Можно избежать, используя функцию GET_STOP_VALUE(Reset) из библиотеки System.lib :
IF NOT GET_STOP_VALUE(1) THEN temp := ztp1; ztp2 := temp; END_IF;
Извиняюсь, это как так. Питание пропало входы обнулились а программа продолжает работать? Неверится однака. Работаю с аналогичным контроллером и все работает так как положено: при пропадании питания программа останавливается - происходит запись в retain но никак не наоборот.
Питание пропало - входы обнулились, контроллер отрабатывает послединий цикл программы.
Вероятно контроллер ДОРАБАТЫВАЕТ цикл, но тогда значение входов уже не имеет значения ибо оно было считано до начала цикла (хотя непонятно как контроллер работает без питания). К сожалению немогу сейчас проверить все в железе потому могу ошибаться.
Контроллер дорабатывает без питания это гипотеза конечно интересная. J
Retainпеременные хранятся в условно энергонезависимой памяти 16 kByte, условные потому как не зависит от внешнего питания, но тем не менее все же зависит, от батарейки которая рядом с чипом приклепана, видимо она разряжена и поэтому переменные сбрасываются. Во всяком случае, это более жизнеспособный вариант. Объявлены переменные правильно, я так же делаю. Надо запитать контроллер и дать ему пошуршать ночку может очухается.
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме