Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2020-04-01 | 563 |
5.00
из
|
Заказать работу |
|
|
6.5.1.1 Общие положения
Переменные предоставляют средства идентификации объектов данных, содержание которых может изменяться. Например, данные, связанные с входами, выходами или памятью программируемого контроллера.
В отличие от литералов, которые являются внешним представлением данных, переменные могут изменять свое значение с течением времени.
6.5.1.2 Объявление
Переменные объявляются внутри одной из секций переменных.
Переменные можно объявлять, используя:
- элементарный тип данных; или
- предварительно определенный пользователем тип; или
- тип указателя; или
- прямо определенный пользователем тип.
Возможны следующие виды переменной:
- одноэлементная переменная, то есть переменная, тип которой либо:
- элементарный тип данных; или
- определенное пользователем перечисление или тип-диапазон; или
- определенный пользователем тип, происхождение которого, определяемое рекурсивно, прослеживается до элементарного типа, типа перечисления или типа-диапазона;
- многоэлементная переменная, то есть переменная, которая представляет массив ARRAY или структуру STRUCT;
- указатель, то есть переменную, которая ссылается на другую переменную или экземпляр функционального блока.
Объявление переменной состоит из следующих элементов:
- списка имен объявляемых переменных;
- символа двоеточия;
- типа данных с необязательной инициализации, специфичной для различных видов переменных.
Пример -
TYPE
myType: ARRAY [1..9] OF INT; // предварительно определенный пользователем тип
END_TYPE
VAR
myVar1, myVar1a: INT; | // две переменные, используя элементарный тип | |||||
myVar2: myType; | // используя предварительно определенный пользователем тип
| |||||
myVar3: ARRAY [1..8] OF REAL; | // используя прямо определенный пользователем тип |
END_VAR
6.5.1.3 Инициализация переменных
Неявным начальным значением переменной (переменных) являются:
1 Неявное начальное значение (значения) лежащих в основе элементарных типов данных, как определено в таблице 10.
2 NULL, если переменная является указателем.
3 Определенное пользователем значение (значения) назначенного типа данных.
Это значение факультативно может быть определено использованием оператора присваивания в определении типа TYPE, как показано в таблице 11.
4 Пользователем значение (значения) переменной.
Это значение факультативно может быть определено использованием оператора присваивания в объявлении переменной VAR (см. таблицу 14).
Определенное пользователем значение может быть литералом (например, -123, 1.55, ) или константным выражением (например, 12*24).
Начальные значения не могут задаваться в объявлениях VAR_EXTERNAL.
Начальные значения могут также определяться с использованием определяемого экземпляром свойства инициализации, предоставляемого конструкцией VAR_CONFIG...END_VAR. Определяемые экземпляром начальные значения всегда замещают специфические для типа начальные значения.
Таблица 13 - Определение переменных
Номер | Описание | Пример | Объяснение | |
1 | Переменная элементарного типа данных | VAR | Распределяет бит памяти логической переменной MYBIT Распределяет память для хранения строки с максимальной длиной 10 символов | |
MYBIT: BOOL; OKAY: STRING[10]; VALVE_POS AT %QW28: INT; | ||||
END_VAR | ||||
2 | Переменная с определенным пользователем типом данных | VAR | Описание переменных с пользовательским типом данных | |
myVAR: myType; END_VAR | ||||
3 | Массив | VAR | ||
BITS: ARRAY[0..7] OF BOOL; TBT: ARRAY [1..2, 1..3] OF INT; OUTA AT %QW6: ARRAY[0..9] OF INT; | ||||
END_VAR | ||||
4 | Указатель | VAR | Определение переменной, являющейся указателем |
Таблица 14 - Инициализация переменных
|
Номер | Описание | Пример | Объяснение | ||
1 | Инициализация переменной с элементарным типом данных | VAR | Распределяет бит памяти логической переменной MYBIT с начальным значением от 1. Распределяет память для хранения строки с максимальной длиной десяти символов После инициализации строка имеет длину 2 и содержит двухбайтовую последовательность символов (десятичные 79 и 75, соответственно), в порядке, подходящем для печати символьной строки | ||
MYBIT: BOOL:= 1; | |||||
END_VAR | |||||
2 | Инициализация переменной с определенным пользователем типом данных | TYPE | Объявление определенного пользователем типа с инициализацией и без инициализации Описание с предварительной инициализацией переменной с определенным пользователем типом данных | ||
myType:... | |||||
END_TYPE | |||||
myVAR: myType:= …// инициализация | |||||
END_VAR | |||||
3 | Массив | VAR | Распределяет 8 битов памяти для хранения начальных значений BITS[0]:= 1, BITS[1]:= 1,..., BITS[6]:= 0, BITS[7]:= 0. Распределяет целый массив TBT размером 2*3 с начальными значениями TBT[1,1]:= 9, TBT[1,2]:= 8, TBT[1,3]:= 10, TBT[2,1]:= 10, TBT[2,2]:= 10, TBT[2,3]:= 6. | ||
BITS: ARRAY[0..7] OF BOOL | |||||
:=[1,1,0,0,0,1,0,0]; | |||||
TBT: ARRAY [1..2, 1..3] OF INT | |||||
:= [9,8,3(10),6]; | |||||
OUTARY AT %QW6: ARRAY[0..9] OF | |||||
END_VAR | |||||
4 | Объявление и инициализация констант | VAR CONSTANT | Константа Символическая константа PI | ||
PI: REAL:= 3.141592; | |||||
END_VAR | |||||
5 | Инициализация с использованием константных выражений | VAR | Использует константное выражение | ||
PIx2: REAL:= 2.0 * 3.1416; | |||||
END_VAR | |||||
6 | Инициализация указателя | VAR | Инициализирует переменную-указатель myRefInt ссылкой на переменную myINT. | ||
myRefInt: REF_TO INT | |||||
:= REF(myINT); | |||||
END_VAR |
Секции переменных
6.5.2.1 Общие положения
Каждая декларация программного компонента (POU), то есть функционального блока, функции или программы и, дополнительно, метода, начинается частями от нуля или более объявлений, которые определяют имена, типы (и, если необходимо, физическое или логическое расположение и инициализацию) переменных, используемых в организационной единице.
Часть деклараций программного компонента POU может содержать различные секции VAR, в зависимости от вида программного компонента POU.
|
Переменные могут объявляться в различных текстовых конструкциях VAR... END_VAR, включающих квалификаторы, такие как RETAIN или PUBLIC, при необходимости. Квалификаторы секций переменных кратко приведены на рисунке 7.
Рисунок 7 - Ключевые слова объявлений переменных (сводка)
Ключевое слово | Использование переменной |
Секции VAR: зависящие от типа программного компонента POU (функция, функциональный блок, программа) или метода | |
VAR | Внутренние по отношению к объекту (функция, функциональный и т.д.). |
VAR_INPUT | Предоставленные извне, не модифицируются внутри объекта. |
VAR_OUTPUT | Предоставляемых объектом для внешних объектов. |
VAR_IN_OUT | Предоставляются внешними объектами, могут модифицироваться внутри объекта, предоставляться для внешнего объекта. |
VAR_EXTERNAL | Предоставляемые конфигурацией через VAR_GLOBAL. |
VAR_GLOBAL | Объявление глобальной переменной. |
VAR_ACCESS | Объявление пути доступа. |
VAR_TEMP | Временное хранилище для переменных в функциональных блоках, методах и программах. |
VAR_CONFIG | Специфическая для экземпляра инициализация и назначение расположения. |
(END_VAR) | Заканчивает описанные выше секции VAR. |
Рисунок 7 - Ключевые слова объявлений переменных (сводка), лист 1
Квалификаторы: могут следовать за описанными выше ключевыми словами | |
RETAIN | Сохраняемые переменные. |
NON_RETAIN | Несохраняемые переменные. |
PROTECTED | Доступ только изнутри собственного объекта и его производных объектов (неявно). |
PUBLIC | Разрешен доступ из всех объектов. |
PRIVATE | Доступ только из собственно объекта. |
INTERNAL | Доступ только внутри одного пространства имен. |
CONSTANT | Константа (неизменяемая переменная). |
Примечание - Использование данных ключевых слов является свойством программного компонента и элемента конфигурации, в котором они используются.
Экземпляры функциональных блоков не объявляются в секциях переменных с квалификатором CONSTANT.
Рисунок 7, лист 2
- VAR
Переменные, объявленные в секции VAR... END_VAR сохраняются от одного вызова программы или экземпляра функционального блока до другого.
В пределах функций, переменные, объявленные в этой секции, не сохраняются между вызовами функций.
|
- VAR_TEMP
В пределах программных компонент, переменные могут объявляться только секции VAR_TEMP... END_VAR.
Для функций и методов ключевые слова VAR и VAR_TEMP эквивалентны.
Данные переменные распределяются и инициализируются специфическими для типа неявными значениями, и не сохраняются между вызовами.
- VAR_INPUT, VAR_OUTPUT и VAR_IN_OUT
Переменные, объявленные в данных секциях, являются формальными параметрами функций, типов функциональных блоков и методов.
- VAR_GLOBAL и VAR_EXTERNAL
Переменные, объявленные в секции VAR_GLOBAL, могут использоваться в других программных компонентах, если они повторно объявлены там в секции VAR_EXTERNAL.
На рисунке 8 показано использование ключевых слов VAR_GLOBAL, VAR_EXTERNAL и CONSTANT.
Рисунок 8 - Использование VAR_GLOBAL, VAR_EXTERNAL и CONSTANT (правила)
Объявление в элементе, содержащем переменную |
|
|
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!