Вход

Просмотр полной версии : ПР225 не сохраняет энергонезависимые переменные после отключения питания



Vadik2881
21.01.2026, 11:52
Ребята привет ещё раз. Любая энергонезависимая переменная, маркер активирован, значение по умолчанию 0.
Но установленное значение после отключение питания снова сбрасывается в 0. Как его сохранить?

Dimensy
21.01.2026, 12:16
Так, может, переменная не сбрасывается в 0, а перезаписывается нулем при загрузке?

Vadik2881
21.01.2026, 13:41
Да, Вы правы оказались, но как тогда быть...
Нужно сохранять значение переменной. Её я запомнил оператором sel, так как move в owen logic нет.

Александр Пинэко-Скворцов
22.01.2026, 16:58
Да, Вы правы оказались, но как тогда быть...
Нужно сохранять значение переменной. Её я запомнил оператором sel, так как move в owen logic нет.

Попробуйте следующим образом: var - энергонезависимая, new и set записываются откуда угодно.
87630

Vadik2881
25.01.2026, 09:04
Да, именно так, в другой теме подсказали уже, спасибо. Однако нюанс.
Странно, что это мало кого интересует и не решён вопрос с оператором move в owen logic. Почему-то никому не нужно запоминать данные...

FPavel
25.01.2026, 09:45
Да, именно так, в другой теме подсказали уже, спасибо. Однако нюанс.
Странно, что это мало кого интересует и не решён вопрос с оператором move в owen logic. Почему-то никому не нужно запоминать данные...
Не буду говорить за всех, только собственное мнение.
Довелось работать с разными ПЛК/ПР с различными диалектами одних и тех же языков. Пришёл к выводу, что принять возможный в данном случае способ решения гораздо эффективнее, чем писать гневные письма.
Оператор move отлично заменяется конструкцией sel. Значит выполню работу с ним, а если в новейших версиях появится move - перейду на него, а не появится - и так знаю решение.

Кроме того, OwenLogic позволяет создавать собственные макросы, ФБ и функции на FBD и ST. Можно сделать собственный move на ST для обычных переменных
Наверное, так можно

var_input
in: real;
en: bool;
end_var

var_output
out: real;
end_var

var
store: real;
end_var

if en then
store := in;
end_if

out := store;

Для энергонезависимых будет чуть сложнее из-за того, что в ST нет возможности работать с такими переменными. Но тоже возможно.

Т.е. для простых переменных реализация move абсолютно идентична sel. А для энергонезависимых - на ST даже сложнее.

kondor3000
25.01.2026, 10:42
Да, именно так, в другой теме подсказали уже, спасибо. Однако нюанс.
Странно, что это мало кого интересует и не решён вопрос с оператором move в owen logic. Почему-то никому не нужно запоминать данные...

Sel заменяет MOVE, почти во всех вариантах.
Если нет, можно написать на ST что угодно, тут пример изменения 3 переменных из разных мест, сохранения, инициализации и восстановления исходного значения (уставки) https://owen.ru/forum/showthread.php?t=37060&p=475240&viewfull=1#post475240

Dimensy
25.01.2026, 12:23
Я больше скажу, в менеджере компонентов уже лет 10 как есть макрос fSave
87666

Vadik2881
26.01.2026, 10:15
Я больше скажу, в менеджере компонентов уже лет 10 как есть макрос fSave
87666

Да, только он не энергонезависимый и толку никакого...
В общем, решение с sel и связь выхода с входом через переменную, а не линию - в принципе работает, хоть и выглядит не особо)

kondor3000
26.01.2026, 10:36
Чтобы не было больше вопросов MOVE на fSEL 87689
4 варианта с сохранением и без, с инициализацией