Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Параметры и переменные компонента



При объявлении POU вы можете встретить следующие заго­ловки:

Формальные входные параметры VAR_INPUT Передаются POU по значению путем копирования. При вызове блока такой переменной можно присвоить значение другой пере­менной (совместимого типа), константы или выражения. Любые изменения такой переменной внутри POU никак не отображаются на данные вызывающего компонента. Применяется в любых POU. Могут иметь значения по умолчанию. Отражаются в графи­ческом представлении с левой стороны компонента.

Формальные выходные параметры VAR_OUTPUT Отражают результаты работы компонента. Передаются из POU по значению путем копирования. Чтение значения выходов обыч­но имеет смысл после выполнения блока. Вне компонента параметры VAR_OUTPUT доступны только по чтению. Не использу­ются в функциях, поскольку функция имеет только одно возвра­щаемое значение. Могут иметь начальные значения. Отражаются в графическом представлении справа.

Параметр типа VAR_IN_OUT

Этот параметр одновременно является входом и выходом. Пе­редача переменной экземпляру блока выполняется по ссылке. Это означает, что внешняя переменная как бы сама работает внутри блока на правах внутренней переменной. В компонент передается только адрес ее расположения в памяти данных. Для переменной VAR_IN_OUT нельзя:

• использовать ее в функциях;

• присваивать начальное значение;

• обращаться как к элементу структуры данных, через точку;

• присваивать константу, как актуальный параметр.

Присваивание внешней переменной для VAR_IN_OUT можно производить только при вызове блока.

Важнейшим свойством VAR__IN_OUT является отсутствие ко­пирования внешних данных. Параметры VAR_INPUT и VAR__OUTPUT могут оперировать с массивами и структурами, но всякий раз при обращении к компоненту будет происходить пол­ное копирование данных. Это может отнимать много времени. Присваивание одного массива другому для VAR_IN_OUT означа­ет фактически переключение компонента с одного массива на другой. Локальная копия данных в этом случае не создается.

Как и глобальные переменные, параметры VAR_IN_OUT на­рушают идеологию независимости компонентов. Правильный компонент не должен иметь возможности испортить чужую память. Поэтому применять их нужно очень аккуратно и только в случаях, когда это действительно необходимо.

Локальные переменные VAR

VAR доступны только внутри компонента, вне компонента к ним доступа нет. Могут иметь начальные значения. Для функций локальные переменные размещаются в динамической памяти (обычно в сте­ке). По окончании работы функции память освобождается и может использоваться в других функциях. В программах и экземплярах функциональных блоков переменные VAR сохраняют свои значе­ния между вызовами программ и экземпляров. В графическом представлении компонента локальные переменные не отражаются.

15.11.2011





Дата публикования: 2015-04-10; Прочитано: 588 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...