|
В начало
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ.
Создание
программы на языке IL
ЗАДАНИЕ Создать программу на языке IL согласно условиям задания 1. РЕШЕНИЕ Используем команду VAR…END_VAR для объявления функциональных блоков и блоков DFB. Объявляем
переменные и их начальные значения в редакторе переменных. Создаем логику
программы.
Рис. 1. Окно редактора переменных Рис. 2 ОТВЕТЫ
НА КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Охарактеризуйте язык списка инструкций IL. Текстовый
язык IL (Instruction List) относится к ассемблероподобным языкам, т. е. к языкам низкого (машинного)
уровня, что существенно облегчает, например, вызов функциональных блоков и
функций «условно» или «безусловно», выполнение назначений и условных или
безусловных переходов внутри секции. Язык IL, позволяет создавать
высокоэффективные и оптимизированные функции. Его можно рекомендовать для
написания наиболее критических мест в программе. Ассемблероподобные языки использовались для программирования
компьютеров в 50-е годы прошлого века и все еще предлагаются
некоторыми изготовителями ПЛК, особенно программистами, поддерживающими микроРС. Программу можно написать с помощью любого
текстового редактора. При вводе
ключевых слов, разделителей и комментариев в редакторе предусмотрена
непосредственная по буквам проверка. При обнаружении ключевого слова, разделителя
или комментария они идентифицируются через цветовое затенение. При введении несанкционированных
ключевых слов (назначений или операторов) они будут также идентифицироваться
через цветовое затенение. Согласно
стандарту IEC 61131-3
ключевые слова должны быть введены в символах верхнего регистра. Пробелы и
метки табуляции не влияют на синтаксис, они могут использоваться везде. Генерация
объектного кода вместе с проверкой синтаксиса будет выполняться, когда секция
закрыта. Любые найденные ошибки затем отображаются в окне сообщений. Однако
проверка синтаксиса может также осуществляться во время создания программы или
блока DFB командой Project → Analyze Section. 2. В чем назначение модификаторов в языке IL? Модификаторы влияют на
выполнение предшествующего оператора. 3. Назовите три способа для вызова
функциональных блоков в языке IL. Чтобы
найти имена доступных функциональных блоков и блоков DFB,
нужно обратиться к библиотекам блоков. Существуют три способа для вызова
функционального блока и блока DFB: ·
оператором с CAL и списком входных параметров; ·
оператором CAL и загрузкой или сохранением входных параметров; ·
с помощью входных
операторов. Если функциональный блок не имеет входов или входы не будут
параметрированы, функциональный блок должен все равно
вызываться прежде, чем его выходы могут использоваться. Каждый экземпляр FB/DFB может вызываться только один раз. 4. Для чего служат модификаторы в языке IL? Модификатор N используется, чтобы
инвертировать побитно значение операнда. Модификатор N может применяться только
к операндам типа данных ANY_BIT. Модификатор С
используется, чтобы выполнить соответствующую команду, если значение аккумулятора
равно 1 (TRUE).
Модификатор С может применяться только к операндам
типа данных BOOL. Если
модификатор С объединен с модификатором N, соответствующая команда выполняется,
только если значение аккумулятора равно булеву 0 (FALSE). Модификатор ( (левая круглая скобка)
используется, чтобы задержать оценку операнда до появления оператора (правая
круглая скобка). Число операций правой круглой скобки должно быть равным числу
модификаторов левой круглой скобки. Круглые скобки могут быть вложенными. 5. Что такое оператор в языке IL? Оператор
является символом для арифметической или логической операции, которая будет
выполнена, или для вызова функции. Операторы
являются обобщенными, т. е. они автоматически корректируются к типу данных
операнда. 6. С помощью какой
команды производят прямое объявление адресов в языке IL? Объявление прямых адресов. В этом объявлении каждому используемому прямому адресу,
который имеет тип данных, отличающийся от заданного по умолчанию типа данных,
назначается тип данных по выбору. Пример объявление прямых адресов приведен на рис. 3. Рис.3. Объявление прямых адресов |
|||