Здравствуйте!
После перезапуска ПЛК200 Persistent-переменные обнуляются. Похожая тема:
https://owen.ru/forum/showthread.php?t=38128
но там решение не приведено.
Вложение 71791
Вид для печати
Здравствуйте!
После перезапуска ПЛК200 Persistent-переменные обнуляются. Похожая тема:
https://owen.ru/forum/showthread.php?t=38128
но там решение не приведено.
Вложение 71791
Проблема была с "проблемной" SD-картой - из-за нее почти мгновенно забивался системный лог ("mmc0: skipping voltage switch") и сервис CODESYS не мог вычитать из него адрес сегмента MRAM-памяти.
Бывает иногда такое. Со 150 ПЛК200 с полностью одинаковыми прошивками, настройками и программами на нескольких периодически обнуляется Persistent.
Техподдержка говорит, что это может быть из-за проблем с напряжением.
Но после замены проблемных ПЛК на другие проблема исчезает :confused:
добрый день.
столкнулся с такой же проблемой, не видит SD-карту, хотя бук читает ее без проблем, в системном логе ("mmc0: skipping voltage switch") и не сохраняются ретайн переменные после перезагрузки по питанию.
вылечил полным сбросом контроллера до заводских настроек и извлечении SD-карты.
Извиняюсь за глупый вопрос. А что, для Persistent переменных обязательно нужна SD карта?
Нет.
Для работы с энергонезависимой памятью контроллер должен знать некоторые характеристики микросхемы.
При запуске контроллера драйвер микросхемы выводит их в лог, а наш сервис считывает их оттуда и записывает в конфиг-файл CODESYS.
Если по каким-то причинам лог сразу после запуска забивается и начинает перезаписываться (например - из-за сообщений о проблемах с SD-картой; может и по другим причинам) -
то наш сервис не может их считать и работать с MRAM не получится.
Здравствуйте.
Как сделать, чтобы можно было обновлять версию своей программы, а они сохраняли значения?
Создал retain переменные, как обычно, а они обнуляются при перезагрузке ПЛК200-01
Наткнулся на эту тему и перенес их в созданный блок persist переменных. Все равно обнуляются!
сд-карт и флешек не воткнуто никаких
Переменные привязаны к модбас-слейву, но если мастера из сети удалить, то все равно обнуляются.
UPD. сбрасываются только привязанные в модбас-слейву. вне зависимости от подключенного мастера
Подскажите, куда копать дальше?
переменная создана в перзисте и привязана к модбас-регистру. никаких записей в нее больше нет
затираются даже переменные, которые в проекте не используются
Вложение 89029
Ну у меня всё через код, как предлагал вам kondor3000, я при запуске ПЛК принудительно в слэйв область пишу данные из персистент, и только потом основная программа работает. При чем в персистент пишу уже только если данные в областях различны.
Ок. Скорее всего, помогло бы это:
https://owen.ru/forum/showthread.php...l=1#post434909
Но, думаю, важнее, что вы нашли подходящее вам решение.
хочется сделать нормально, а не гонять туда-сюда копии таблиц регистров
обновил версию. пробовал создавать переменные в соотнесении в компоненте, все равно обнуляются, если не копировать при загрузке
пробовал присваивать созданные в persistent и после очередного перезапуска заработало.
Спасибо!