PDA

Просмотр полной версии : Статические переменные ST



Lema
25.08.2011, 19:06
Добрый день.
Возник вопрос, как объявить статическую переменную в функции, на языке ST?

capzap
25.08.2011, 19:53
может быть подойдет эта выдержка из руководства со страницы 136: "Константы обозначаются ключевым словом CONSTANT. Их можно объявлять локально и глобально"

Lema
25.08.2011, 22:49
Спасибо, за ответ, но мы друг друга немного не поняли.
Константа имеет постоянное значение.
Мне же нужна переменная, которая объявляется в функции(локально), при выходе из функции не теряет своего значения, доступна только вызванной функции, с постоянным адресом в оперативной памяти.
Как в СИ:
http://rtfm.adamant.net/programming/kernigan/node54.html

Есть ли тут такая возможность?

capzap
26.08.2011, 01:23
объявляется в функции(локально), при выходе из функции не теряет своего значения, доступна только вызванной функции, с постоянным адресом в оперативной памяти.


Либо повторюсь это будет константа, либо Вам нужно использовать функциональный блок, вместо функции. Там все что объявлено в разделе VAR ... VAR_END является статическими переменными

swerder
26.08.2011, 09:17
Lema, спросите лучше здесь (http://forum-ru.3s-software.com/index.php)

Lema
28.08.2011, 08:30
А КДС 2 или 3 ?

CoDeSys v2.


... нужно использовать функциональный блок, вместо функции. Там все что объявлено в разделе VAR ... VAR_END является статическими переменными

Вы правы, придётся использовать функциональные блоки.

Спасибо за ответы.

capzap
28.08.2011, 08:56
Ну не совсем я прав, объявления переменных идентичны что у функции что у блока

Если обратиться к первоисточнику:
CoDeSys_V23_RU.pdf
2.1 Компоненты проекта
страница 10-14 и
5.2 Редактор раздела объявлений
страница 134-137 Вы почерпнете больше информации

Николаев Андрей
29.08.2011, 08:01
Функция не запоминает состояние внутренних переменных.