PDA

Просмотр полной версии : Retein переменные и функциональный блок



depeche2004
27.08.2025, 18:09
При объявлении внутри ФБ retain переменной, весь ФБ сохраняется в энергонезависимой памяти.
Вопрос. Как правильно и с наименьшими затратами для ПЛК сохранить переменные из ФБ и после перезагрузки в ФБ?
Можно ли для этого использовать в ФБ VAR_IN_OUT переменные?

kondor3000
27.08.2025, 18:34
Проще объявить глобальные Retain переменные, тогда их можно использовать в любом ФБ и программе,
даже не заводя их на входы и выходы ФБ.

depeche2004
27.08.2025, 19:12
Проще объявить глобальные Retain переменные, тогда их можно использовать в любом ФБ и программе,
даже не заводя их на входы и выходы ФБ.

А как они будут работать с несколькими экземплярами ФБ? Получается переменные будут одинаковые у разных экземпляров, а это не подходит.

Cs-Cs
27.08.2025, 19:45
А почему сразу весь FB нельзя? Памяти не хватит?
Если хватит - пусть весь и будет RETAIN?

Валенок
27.08.2025, 19:56
...
Можно ли для этого использовать в ФБ VAR_IN_OUT переменные?
Да. Это наиболее оптимально при необходимости частичного хранения в ретайне

depeche2004
27.08.2025, 20:11
А почему сразу весь FB нельзя? Памяти не хватит?
Если хватит - пусть весь и будет RETAIN?

Памяти хватит наверное, но хочу понять, как правильнее и оптимальнее.
Например если в ФБ ПИД с автонастройкой и экземпляров этого блока штук 10...

Валенок
27.08.2025, 20:21
как правильнее и оптимальнее.
Без контекста - ответа на это нет и не может быть

mozgichok
28.08.2025, 06:57
Как будут вводится исходные данные в плк? К чему плк будет подключён?

capzap
28.08.2025, 07:33
Памяти хватит наверное, но хочу понять, как правильнее и оптимальнее.
Например если в ФБ ПИД с автонастройкой и экземпляров этого блока штук 10...

не думайте, что в ретайне будет хранится исходный код ФБ, сохраняется только переменные в области объявлений

Валенок
28.08.2025, 08:39
При хранении всего фб в ретайне могут возникнуть заморочки с внутренними таймерами, указателями, автоматами и иными контекстно-историческими состояниями и т. п. Заморочки всегда решаемые, но сначала самому себе создать заморочку, а после её преодолевать - такое себе.
Заморочки могут и не возникнуть, но для этого нужно как минимум знать исходные хотелки и текущий способ их реализации. Предлагать сохранять весь фб в ретайне не зная его назначение и содержимое это вроде объявления на дверях поликлиники - "с чем бы/к кому бы не пришли, выпейте анальгину и идите домой".