PDA

Просмотр полной версии : Еще раз о retain



albor
13.03.2009, 08:30
Уважаемые господа, есть ли способ занесения retain-переменных в EEPROM, не выключая питания, а то что-то после двух лет эксплуатации у меня перестали сохранятся значения? Файл retain.dat не формируется.
На батарейке порядка 4 вольт. Прош v1.31.4

Малышев Олег
13.03.2009, 09:07
К сожалению в прошивке 1.31.4 были ошибки связанные с файловой системой. Потому прошейтесь с форматированием на последнюю прошивку

albor
13.03.2009, 09:18
Давно хотел спросить, под форматированием понимается Reset(original)?

Филоненко Владислав
13.03.2009, 10:33
Под форматированием подразумевается галочка Format в программе прошивки.

Малышев Олег
13.03.2009, 10:34
При перепрошивке взятой отсюда http://www.owen.ru/device/88206764
надо поставить галочку форматировать память

Филоненко Владислав
13.03.2009, 10:37
2 года отработал. замечательно.
Т.к. это, скорее всего тестовый прибор, розданный фирмой для бета-тестирования, то в нем есть некоторые схемотехнические и программные особенности.
Поэтому я не рекомендую для него использовать современные прошивки, а использовать ту же 1.31.4. Только переформатируйте Flash. Это можно сделать с помощью гипертерминала. Сообщите тип ПЛК и я вышлю Вам прошивку.

albor
13.03.2009, 11:03
Вообще-то на ноутбуке поставил тагет V2.02-3 и обновил CodeSys на v2.3.8.1 с тех пор и есть еще один объект с прош v2.03(не знаю точно). Мне бы хотелось привести все к одному. ПЛК150UM.

Филоненко Владислав
13.03.2009, 12:35
Прибор тестовый или коммерческий?

albor
13.03.2009, 12:44
как это? у нас без лицензионного ограничения

Филоненко Владислав
13.03.2009, 15:10
Сформулирую иначе...
Вы его купили или получили в ходе акции по тестированию?

albor
13.03.2009, 15:14
купили, Владислав. Вам может распечатку PLCInfo, у меня сейчас нет. Вообще, покупали контроллер.

Филоненко Владислав
13.03.2009, 15:47
Тогда 2.07.2

albor
13.03.2009, 16:13
Как все-таки насчет принудительной записи в EEPROM без выключения питания? Такой возможности нет, как я понял.

Филоненко Владислав
14.03.2009, 15:18
Для начала нет EEPROM в ПЛК.
И какой смысл в принудительной записи?

albor
16.03.2009, 18:03
Смысл вот в чем, перепрошил ПЛК150 на v2.03.
Результат: что-то изменилось в измерениях температуры (у нас 100П и NI1000) замучился подбирать смещения.
Сохранения retain-переменных как не было, так и нет. А мне нужно, чтобы коэффициенты регуляторов после перезагрузки не сбрасывались в ноль.
Кстати, системное время после выключения питания тоже сбрасывается.
Что присоветуете? На аккумуляторе порядка 4 вольт.

Филоненко Владислав
17.03.2009, 09:02
1. Рекомендую откалибровать ПЛК и все проблемы со смещениями исчезнут.
2. После выключения питания они и будут сохранятся. Причём тут перезагрузка?
3. А если нажать резет и удерживая его выключить питание? Время сохранится или сбросится? Если сохранится - аккумулятор недозаряжен.

Филоненко Владислав
17.03.2009, 09:14
1. Рекомендую откалибровать ПЛК и все проблемы со смещениями исчезнут.
2. После выключения питания они и будут сохранятся. Причём тут перезагрузка?
3. А если нажать резет и удерживая его выключить питание? Время сохранится или сбросится? Если сохранится - аккумулятор недозаряжен.

Дмитрий Артюховский
17.03.2009, 09:55
Сохраняйте свои переменные в файле, который сами и формируйте. Считывайте его по необходимости. Вот вам и принудительное сохранение, независящее от ретаин и всего остального.

albor
17.03.2009, 15:04
При удержании кнопки Сброс и выключении питания время не сохраняется.

semmi
07.05.2010, 11:12
сохраняйте свои переменные в файле, который сами и формируйте. считывайте его по необходимости. вот вам и принудительное сохранение, независящее от ретаин и всего остального.

ну и как вы это собираетесь реализовать практически?

AlexP
08.05.2010, 20:33
реализуется очень просто. создаем структуру, содержащую все переменные, которые нужно сохранить. по команде оператора, например "сохранить настройки", инициализируем и заполняем значениями переменных буферный объект типа ранее созданной нами структуры. открываем файл, записываем в него буфер, закрываем файл.
при команде "восстановить настройки" читаем и восстанавливаем данные в обратной последовательности, т.е. читаем из файла структуру-буфер, а потом присваиваем нашим переменным значения элементов буфера.
самый примитивный вариант, имхо.