PDA

Просмотр полной версии : RETAIN переменные в ПЛК 73



mrozhkov
07.07.2021, 03:10
Здравствуйте коллеги. Подскажите пожалуйста. Мне нужно, чтобы при пропадании питания, некоторые значения, некоторых переменных сохранялись. Для этого я, нужные мне переменные сделал RETAIN. Но при пропадании питания, эти переменные всёравно обнуляются. Есть библиотека для принудительного сохранения переменных RETAIN "RetainControlLib" Нужно ли её использовать или есть другие способы?

Филоненко Владислав
07.07.2021, 07:17
Без проекта не продиагностируешь, чтоу Вас происходит.
Обычно RETAIN сохраняются без дополнительных плясок с бубнами.

mrozhkov
09.07.2021, 04:19
Без проекта не продиагностируешь, чтоу Вас происходит.
Обычно RETAIN сохраняются без дополнительных плясок с бубнами.
Вот прикрепил проект, там есть переменные: "time_open1, time_open2, time_open3, time_open,4", они RETAIN, но при выключении питания контроллера, и повторном включении, данные в них пропадают. Что может быть не так?

Sergey666
09.07.2021, 08:47
Вот прикрепил проект, там есть переменные: "time_open1, time_open2, time_open3, time_open,4", они RETAIN, но при выключении питания контроллера, и повторном включении, данные в них пропадают. Что может быть не так?

Где они RETAIN???

Ретайн объявляется Var Retain

Читайте внимательно руководство по CoDeSys!!! RTFM

Cs-Cs
09.07.2021, 09:23
Я ПЛК73 ни разу не щупал, но посмотри на эти скриншоты:
55932 55933

mrozhkov
09.07.2021, 09:27
Где они RETAIN???

Ретайн объявляется Var Retain

Читайте внимательно руководство по CoDeSys!!! RTFM

Извиняюсь, скинул не тот проект. Добавил проект который нужно было, где переменные RETAIN

mrozhkov
09.07.2021, 09:28
Я ПЛК73 ни разу не щупал, но посмотри на эти скриншоты:
55932 55933

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

Sergey666
09.07.2021, 10:16
Извиняюсь, скинул не тот проект. Добавил проект который нужно было, где переменные RETAIN

Млииин! Ну а дальше что творицца? Счетчик counter1 своим выходом CV таки ее (time_open1) обнуляет! RTFM (Read The Fucking Manual)

mrozhkov
09.07.2021, 10:28
Млииин! Ну а дальше что творицца? Счетчик counter1 своим выходом CV таки ее (time_open1) обнуляет! RTFM (Read The Fucking Manual)

На выходе CV (счётчика), есть некое значение, которое посчитал счетчик, и это значение передается в переменную, которую я сделал RETAIN. А при пропадании питания, получается обнуляется сам счётчик и вместе с ним переменная. Тогда как можно сделать, чтобы счётчик не обнулялся?

Cs-Cs
09.07.2021, 10:37
Объявить счётчик как RETAIN? =)

В чём задумка проекта? Если не надо, чтобы счётчик сохранялся, то можно сделать какую-то булеву переменную, которая ставится в TRUE после запуска ПЛК и разрешает запись инфы в переменную RETAIN.

mrozhkov
09.07.2021, 10:38
Счётчик чтоль сделать RETAIN?

mrozhkov
09.07.2021, 10:40
Объявить счётчик как RETAIN? =)

В чём задумка проекта? Если не надо, чтобы счётчик сохранялся, то можно сделать какую-то булеву переменную, которая ставится в TRUE после запуска ПЛК и разрешает запись инфы в переменную RETAIN.

Да задумка проста, когда есть на входе ПЛК в течении 2 минут =1, то начинаются считаться минуты, прибавляются по 1 минуте. И накапливаются в этих переменных. Просто бывает так, что пропадает питание, а посчитанное хотелось бы сохранить вот и всё =)

Sergey666
09.07.2021, 10:53
Var

Tmr_1m :TON;

End_var

Var Retain
time_open1 : DINT;
End_var

(*--------------------------------------*)
Tmr_1m(In:=not Tmr_1m.Q, Pt:=t#1m);

if Tmr_1m.Q then
time_open1:=time_open1+1;
end_if;

Как на этом CFC даже думать не желаю. Вы с курсов Овен свалились, судя по CFC и именованиям переменных с маленькой буквы...

mrozhkov
09.07.2021, 11:07
Спасибо всем откликнувшимся. В вопросе разобрался.