PDA

Просмотр полной версии : Разница между VAR и VAR_TEMP?



Frants
11.03.2022, 13:25
Доброе время суток всем!
В чём разница между переменными, объявленными в областях VAR и VAR_TEMP?
Могут ли переменные VAR использоваться для счёта с накоплением?

Frants
11.03.2022, 14:01
Благодарю вас, Вы очень любезны.
Приходится переходить с одной среды программирования на другую, и сейчас чувствую себя как рыба, выброшенная на берег.
К примеру, когда всю жизнь "локальные" и "временные" переменные это синонимы, то увидеть что в данной среде между этими понятиями есть разница - это взрыв вселенной!

Читаю документ "Руководство пользователя по программированию ПЛК в CoDeSys 2.3", весьма скромный документ.
Если Вы порекомендуете более подробное описание системы программирования, буду рад.
Справка так же не утруждает себя важными подробностями и деталями. Как и "первые шаги".

В документации написано, что VAR_TEMP инициализируются при каждом вызове блока.
Что же происходит с VAR? Время, область жизни у них какие? И зачем они, если есть VAR_TEMP?

Евгений Кислов
11.03.2022, 14:23
Что же происходит с VAR? Время, область жизни у них какие? И зачем они, если есть VAR_TEMP?

VAR сохраняют свои значения между вызовами ФБ/программы.
VAR_TEMP инициализируются начальным значением при каждом вызове.

Если мы говорим про функцию - то в ней VAR_TEMP объявить просто не получится (компилятор выдаст ошибку), так как ее переменные области VAR сами по себе являются временными.


Я вам рекомендую не создавать отдельную тему по каждому новому вопросу, а просто задавать их здесь:
https://owen.ru/forum/showthread.php?t=20069&page=383

melky
11.03.2022, 14:24
VAR никуда не пропадают, под них резервируется память, если это FB. Например VAR блока можно вытащить наружу и использовать другими блоками...
Ну при сбросе питания они будут инициированы начальными значениями.

Frants
11.03.2022, 14:35
Спасибо! Хоть что-то. То чего не хватает в этих руководствах и шагах.
Ясно. Вас понял. Благодарю за помощь!