PDA

Просмотр полной версии : Бета-тест нового функционала в ПЛК110 [М02]



Филоненко Владислав
13.11.2018, 10:21
Добрый день, товарищи!
Фирма Овен подготовила новый функционал на ПЛК110-М02 - альтернативный алгоритм работы с Retain. И приглашает Вас принять участие в beta-тестировании.
Встречайте, версия 1.0.3!

Основные изменения:
1. Обычно, retain записывается по событию выключения питания. Однако иногда программы становятся такими большими, а тестировать их совсем не хочется...
И В САМЫЙ ОТВЕТСТВЕННЫЙ МОМЕНТ ПЛК перезагружается по Watchdog... Естественно, Retain не сохраняются.

Для таких ОСОБЫХ случаев, мы разработали альтернативный режим записи retain циклически, по таймеру.
А для повышения надёжности теперь есть 2 копии retain и выбирается самая свежая и корректная.

Но, как Вы понимаете, бесплатный сыр бывает только в мышеловке - запись Retain не происходит мгновенно и jitter цикла ПЛК сильно увеличивается в момент записи. Поэтому в таком режиме мы крайне не рекомендуем использовать цикл ПЛК меньше 10 мс.
Период записи можно менять в диапазоне от 1 до 1000 секунд.
Для изменения режима retain воспользуйтесь командами PLCBrowser. Хелп по командам PLCBrowser традиционно по команде "?"

2. Для уверенных в своем коде, но осторожных программистов мы добавили функцию принудительной записи retain по команде пользователя из программы. Для этого используется библиотека RetainControlLib.lib. Библиотека работает только в "обычном" режиме retain, по выключению питания. При этом, в момент принудительной записи выполнение программы приостанавливается на несколько десятков мс, т.е. использовать её надо с осторожностью.

Также есть некоторый правки обнаруженных пользователями ошибок.

P.S. Ждём от Вас обратной связи и надеемся, что Вы не станете использовать beta-версию в серьёзных проектах!
P.P.S. Основной причиной срабатывания watchdog уже традиционно становится многодесятикратное превышение времени исполнения программы над установленным временем цикла. Здравый смысл и модуль Statistic помогут избежать таких ситуаций.

AlexZ60
30.04.2020, 13:08
Попробовал на контроллере 110-30 M v2:
Функция SaveNow() всегда возвращает FALSE!
Хотя Retain сохраняются.

A.Simonov
30.04.2020, 13:35
Попробовал на контроллере 110-30 M v2:
Функция SaveNow() всегда возвращает FALSE!
Хотя Retain сохраняются.

Добрый день.

Спасибо за обратную связь.
О проблеме известно, в будущем обязательно поправим.