Вход

Просмотр полной версии : Retain переменные



Николай_бел
03.10.2016, 14:25
Здравствуйте, скажите пожалуйста, можно ли в каждом цикле программы перезаписывать retain переменные? Контроллер долго так проживет? Это постоянная перезапись в EEPROM или только при пропаже питающего напряжения? Спасибо

melky
03.10.2016, 14:45
У Овен вроде на всех устройствах перезапись в еепром после отключения питания.

Спорягин Кирилл
03.10.2016, 14:56
Можно пользоваться областью Modbus-slave как ретейн-переменными. Я пользуюсь - очень удобно.

Николай_бел
03.10.2016, 15:19
Можно пользоваться областью Modbus-slave как ретейн-переменными. Я пользуюсь - очень удобно.

Кирилл, эт как?

Спорягин Кирилл
03.10.2016, 15:34
Это стандартная функция от ОВЕН. Любая переменная из области Modbus Slave, сохраняется между перезапусками контроллера. Логика ОВЕНа следующая (как я понимаю): переменные области Modbus-slave создаются для обмена с верхним уровнем; с верхнего уровня пользователь вводит настройки системы (различные времена, коэффициенты и т.п.). Очевидно, что данные настройки должны сохраняться. ОВЕН автоматически сохраняет область Modbus-slave.

Николаев Андрей
03.10.2016, 16:18
А что за задача?
Зачем Вам перезаписывать переменные каждый цикл?
Переменные Retain записываются при пропадании питания. На то они и Retain. Это стандарт.

Scream
03.10.2016, 16:41
А что за задача?
Зачем Вам перезаписывать переменные каждый цикл?
Переменные Retain записываются при пропадании питания. На то они и Retain. Это стандарт.

Которые в подавляющем случае потом не восстанавливаются.
Я читал что можно поменять платы на плк 160 для решения этой проблемы. Это правда? Что для этого необходимо? Какие контроллеры?

melky
03.10.2016, 17:47
Николаев Андрей не все так просто, например у Carel эти переменные пишутся непосредственно во Flash и там как раз есть ограничение чтобы не писать каждый цикл.
У вас же они живут в оперативе и пишутся во флеш только при пропадании питания, или не пишутся, если сдохли АКБ.

Возможно отсюда и вопрос автора, для уточнения как с ними работать...

Спорягин Кирилл
04.10.2016, 09:21
Если говорить о ПЛК110 М02, то там нет батарейки и ретайн-переменные всегда пишутся во flash при пропадании питания.

melky
04.10.2016, 10:32
Спорягин Кирилл ну если правильно понимаю, то акб там заменен на ионистор (если ошибаюсь то поправят) и запись идет во flash именно по отключению питания, а в штатном режиме работы все так же, крутятся в озу

Спорягин Кирилл
04.10.2016, 10:38
Спорягин Кирилл ну если правильно понимаю, то акб там заменен на ионистор (если ошибаюсь то поправят) и запись идет во flash именно по отключению питания, а в штатном режиме работы все так же, крутятся в озу

Вроде бы я тоже самое написал (без деталей реализации).

SuP
26.11.2016, 19:32
Да почитайте уже документацию на контроллер, который используете. В ПЛК110-М02 применена память MRAM (https://ru.wikipedia.org/wiki/Магниторезистивная_оперативная_память), которой не требуется питание для хранения, а ресурс много-много выше, чем у flash-памяти. Полагаю, что retain-переменные просто напросто всегда живут только в этой памяти, поэтому никаких дополнительных телодвижений по их сохранению не требуется.

Филоненко Владислав
27.11.2016, 11:40
Retain, в т.ч. и в M02 сохраняются только при выключении питания (не резете тумблером).