Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Особенности присвоения значений переменным
При присвоении значения переменной типа TYPE1 переменной типа TYPE2 нужно учитывать следующее: присвоение корректно только в том случае, если тип TYPE2 заключает в себе все числа типа TYPE1: VAR a: REAL:= -1564.343; END_VAR VAR b: USINT:= 50; END_VAR a = b; //корректная операция b = a; //некорректная операция присвоение корректно, если один из типов – BOOL, а другой – любой численный. Логическое значение TRUE соответствует единице, FALSE – нулю; нуль соответствует FALSE, любое ненулевое значение, в том числе отрицательное, соответствует TRUE: VAR a: BOOL; END_VAR VAR b: SINT:= -50; END_VAR a = b; //a = TRUE, корректная операция b = a; //b = 1, корректная операция
Оператор return Оператор if-then-else Оператор case Оператор while Оператор repeat Оператор for Операторы break и exit Оператор continue Операторы определения переменных Оператор индексирования элементов массива Оператор goto Определены следующие операторы, образующие предложения Техно ST: Return if Case While Repeat For Break Exit Continue операторы определения переменных; оператор индексирования элементов массива; Goto Оператор return Определены 2 варианта задания данного оператора: return {выражение} Действие: выход из функции Техно ST. Значением функции является значение {выражения}; Return Действие: выход из функции-блока Техно ST. Пример RETURN (2 + ARG_000 ** 2); Оператор if-then-else Данный оператор начинается с ключевого слова if и заканчивается ключевым словом end_if. Определены 3 варианта задания данного оператора: Вариант 1 if {выражение} then {последовательность предложений} end_if Действие: если {выражение} истинно, выполняется {последовательность предложений}, иначе никаких действий не производится. Вариант 2 if {выражение} then {последовательность предложений1} else {последовательность предложений2} end_if Действие: если {выражение1} истинно, выполняется {последовательность предложений1}, иначе выполняется {последовательность предложений2}. Вариант 3 if {выражение1} then {последовательность предложений1} elsif {выражение2} then {последовательность предложений2} … elsif {выражениеN} then {последовательность предложенийN} else {последовательность предложений} end_if Действие: выполняется первая по порядку {последовательность предложений}, для которой соответствующее {выражение} истинно. Если все {выражения} ложны, выполняется {последовательность предложений}, следующая за ключевым словом else.
Количество блоков " elsif {выражение} then {последовательность предложений}" не ограничено. Пример В результате выполнения следующего кода переменной VAR_000 присваивается значение 200. Выполняется только одно, первое по порядку действие, для которого условие истинно, поэтому действие, следующее за конструкцией ELSIF...THEN, выполнено не будет, несмотря на то, что условие VAR_002 < 1 истинно: VAR VAR_000: INT; END_VAR VAR VAR_002: REAL:= 0.5; END_VAR IF VAR_002 < 2 THEN VAR_000 = 200; ELSIF VAR_002 < 1 THEN VAR_000 = 500; ELSE VAR_000 = 300; END_IF; Оператор case Определены 2 варианта задания данного оператора. Вариант 1 case {выражение} of {список значений}: {последовательность предложений} ... {список значений}: {последовательность предложений} end_case Вариант 2 case {выражение} of {список значений}: {последовательность предложений} ... {список значений}: {последовательность предложений} else {последовательность предложений} end_case Список значений представляет собой набор целых чисел или набор диапазонов целых чисел, разделенных запятой. Диапазон задается в виде {нижняя граница}.. {верхняя граница} Действие: если результат вычисления {выражения} принадлежит множествам, заданным {списками значений}, выполняется соответствующая {последовательность предложений}. Если результат вычисления {выражения} не принадлежит ни одному из заданных множеств, выполняется {последовательность предложений}, следующая за ключевым словом else. Пример В результате выполнения следующего кода VAR_001=500: VAR VAR_000: INT; END_VAR VAR VAR_001: INT; END_VAR CASE VAR_000 + 4 OF 0.. 2: VAR_001 = 200; 3, 4, 5: VAR_001 = 500; END_CASE; Оператор while Синтаксис: while {выражение} do {последовательность предложений} end_while Действие: пока {выражение} истинно, выполняется {последовательность предложений}. Пример После выполнения следующего кода VAR_001=16: VAR VAR_000: INT:= 10; END_VAR VAR VAR_001: INT; END_VAR WHILE VAR_000 > 2 DO VAR_000 = VAR_000 - 1; VAR_001 = VAR_001 + 2; END_WHILE; Оператор repeat Синтаксис: repeat {последовательность предложений} until {выражение} end_repeat
Действие: пока {выражение} истинно, выполняется {последовательность предложений}. Если {выражение} ложно, {последовательность предложений} выполняется 1 раз. Пример После выполнения следующего кода VAR_001=20: VAR VAR_000: INT:=10; END_VAR VAR VAR_001: INT; END_VAR REPEAT VAR_001 = VAR_001 + 2; VAR_000 = VAR_000 + 1; UNTIL VAR_000 < 20 END_REPEAT; Оператор for Синтаксис: for {инициализация переменной цикла} to {выражение1} by {выражение2} do {последовательность предложений} end_for Инициализация переменной цикла имеет вид: {имя переменной}:={выражение} Действие: пока значение переменной цикла меньше или равно значению {выражения1} выполняется {последовательность предложений}. По завершении каждого цикла к переменной цикла прибавляется значение {выражения2}; если оно не задано, прибавляется 1. С помощью оператора for нельзя построить цикл с убывающим счетчиком. Для создания таких циклов нужно использовать операторы while и repeat. Пример После выполнения следующего кода VAR_001=22: VAR VAR_000: INT:=10; END_VAR VAR VAR_001: INT; END_VAR FOR VAR_000 = 10 TO 20 DO VAR_001 = VAR_001 + 2; END_FOR; Операторы break и exit Операторы break и exit эквивалентны. Синтаксис: Break Exit Действие: выход за пределы цикла. В случае вложенных циклов выход осуществляется только из текущего цикла и не затрагивает внешние. Оператор continue Синтаксис: Continue Действие: переход в конец цикла, т.е. выражения, следующие за оператором continue до конца цикла, не выполняются. Операторы определения переменных Операторы определения переменных могут быть заданы вручную (кроме операторов определения глобальных переменных) или с помощью табличного редактора. В языке ST определены следующие операторы данного типа: Var {определение переменной} ... {определение переменной} end_var
var_global {определение переменной} ... {определение переменной} end_var
var_arg {определение переменной} ... {определение переменной} end_var
var_input {определение переменной} ... {определение переменной} end_var
var_output {определение переменной} ... {определение переменной} end_var
var_inout {определение переменной} ... {определение переменной} end_var После ключевого слова end_var точка с запятой не ставится. Действие: определяет новую переменную. При использовании совместно с constant задает константу. Оператор var... end_var используется для создания локальных переменных и структур; может использоваться в основной программе или ее компоненте (функции). Оператор var_global... end_var используется для создания глобальных переменных; может использоваться вне основной программы и ее компонентов (функций). Оператор var_arg(var_input)... end_var используется для определения аргументов (основной программы или ее функций), передаваемых по значению. Определение аргумента с помощью этого оператора равнозначно заданию аргумента типа вход в табличном редакторе. Оператор var_output(var_inout)... end_var используется для определения аргументов (основной программы или ее функций), передаваемых по ссылке. Определение аргумента с помощью оператора var_output...end_var равнозначно заданию в табличном редакторе аргумента типа выход, а определение аргумента с помощью оператора var_inout...end_var равнозначно заданию аргумента типа вход/выход. Создание аргументов вручную с помощью указанных операторов может использоваться только в отладочных программах – для таких аргументов нельзя задать привязку. Аргументы рабочей программы следует создавать с помощью табличного редактора.
Выражение {определение переменной} имеет вид: {имя переменной}: {тип переменной}; {имя переменной}: {тип переменной}:={выражение}; {имя переменной}: array [] of {тип переменной}; {имя переменной}: array [{размерности массива}] of {тип переменной}; {имя переменной}: array [{размерности массива}] of {тип переменной}:={начальные значения}; Выражения {размерности массива} задаются в виде диапазонов изменения индексов массива, разделенных запятой. Диапазон изменения индексов массива имеет вид {нижняя граница}.. {верхняя граница} или {размер массива} обозначающий диапазон от 0 до {размер массива}-1. В случае, если размерность массива не указана, он считается пустым и ожидается его инициализация в ходе выполнения программы. Выражения {начальные значения} имеют вид списка начальных значений элементов массива, разделенных запятой. Каждое начальное значение имеет вид выражения, вычисление которого дает реальное начальное значение, или конструкции {целочисленная константа} ({выражение}) где {целочисленная константа} задает количество элементов, которым присваивается это значение. При присвоении начальных значений элементам массива первым изменяется последний индекс массива. Область действия имени переменной определяется по следующим правилам: глобальные переменные действуют в рамках программы и сохраняют свое значение между вызовами программы. В частности, глобальными являются переменные FBD- и LD-блоков; локальные переменные и аргументы действуют в рамках объекта (программы, функции, структуры), в котором определены. При привязке переменной по имени она ищется в следующем порядке: локальные, аргументы функции, переменные-члены структуры, глобальные.
|
||||||||
Последнее изменение этой страницы: 2016-08-10; просмотров: 251; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.186.92 (0.045 с.) |