PDA

Просмотр полной версии : RETAIN, PERSISTANT-переменные



Джоник
01.10.2024, 05:17
Здравствуйте коллеги!

Подскажите, что не так делаю.
Объявил в блоке persistant-переменных переменные, а они не сохраняются после перезагрузки и отключения питания от контроллера.

Евгений Кислов
01.10.2024, 06:13
Здравствуйте коллеги!

Подскажите, что не так делаю.
Объявил в блоке persistant-переменных переменные, а они не сохраняются после перезагрузки и отключения питания от контроллера.

Добрый день.
Persistent-переменные нужно объявлять в рамках специального списка:

78998

Джоник
01.10.2024, 07:56
78999

Все так и сделал.

Евгений Кислов
01.10.2024, 08:17
78999

Все так и сделал.

Свяжитесь со мной по телеграм, пожалуйста (ссылка в подписи).

Евгений Кислов
01.10.2024, 11:00
Посмотрели удаленно на проблему.
На стороне контроллера - RETAIN и PERSISTENT корректно сохраняется после перезагрузки.
Проблема в том, что в коде программы значения энергонезависимых переменных циклически перезаписываются значениями, полученными на основе обработки энергозависимых переменных.
Обсудили возможные варианты изменения программы - в частности, привязки энергонезависимых переменных к компоненту Modbus TCP Slave Device (это позволило бы избежать циклического присваивания):
https://owen.ru/forum/showthread.php?t=28167&p=434909&viewfull=1#post434909

ВладОвен
06.11.2024, 17:20
Привет.
А что делать, если выскакивает ошибка с persistant-переменными?


Недостаточно перманентной памяти: Переменная 'arrAll', 3120 байт (Наибольший непрерывный промежуток памяти 1944). Редактирование списка перманентных переменных может привести к фрагментации памяти. Выполните команду "Объявления, переупорядочить список и очистить промежутки", чтобы упорядочить списки перманентных переменных.

Как ее обойти?
На странице с persistant-переменными у меня неактивен пункт контекстного меню "Упорядочить списки перманентных переменных".
79877

Евгений Кислов
06.11.2024, 17:26
Привет.
А что делать, если выскакивает ошибка с persistant-переменными?



Как ее обойти?
На странице с persistant-переменными у меня неактивен пункт контекстного меню "Упорядочить списки перманентных переменных".
79877

Добрый день.
Какое устройство вы используете и какой у него заявленный объем RETAIN-памяти?

ВладОвен
06.11.2024, 17:30
Это СПК110М01.
Retain (MRAM) 64 КБайт.

Евгений Кислов
06.11.2024, 18:39
Это СПК110М01.
Retain (MRAM) 64 КБайт.

Выложите, пожалуйста, проект, в котором появляется данное сообщение.