Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
При объявлении 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!