11061

Создание и отладка программ на языке инструкций

Практическая работа

Информатика, кибернетика и программирование

Создание и отладка программ на языке инструкций: Методические указания для выполнения практической работы по дисциплине Интегрированные системы проектирования и управления / Воронеж. гос. технол. акад.; Сост. И.А. Хаустов. Воронеж 2011. 13 с. Указания разработаны в соотве...

Русский

2013-04-03

270 KB

14 чел.

Создание и отладка программ на языке инструкций: Методические указания для выполнения практической работы по дисциплине «Интегрированные системы проектирования и управления» / Воронеж. гос. технол. акад.; Сост. И.А. Хаустов. Воронеж, 2011.  13 с.

Указания разработаны в соответствии с требованиями ООП подготовки бакалавров по   направлениям 220700 – «Автоматизация технологических процессов и производств» и 220400 – «Управление в технических системах».Методические указания посвящены обучению  навыкам создания, подключения и отладке управляющих программ в среде SCADA TRACE MODE на языке инструкций, поддерживающего стандарт МЭК 1131.

Ил. . Библиогр.:  назв.

Составитель доцент И.А. ХАУСТОВ

Научный редактор  профессор, д.т.н. В.Ф. ЛЕБЕДЕВ

Рецензент профессор, д.т.н. Ю.А. ЧЕВЫЧЕЛОВ

Печатается по решению

редакционно-издательского совета

Воронежской государственной технологической академии

 Хаустов И.А.,  2009

Воронеж. гос. технол. акад., 2009

Оригинал-макет данного издания является собственностью Воронежской государственной технологической академии, его репродуцирование (воспроизведение) любым способом без согласия академии запрещается.

Цель работы

Получение навыков создания, редактирования, подключения и отладки программ на языке инструкций.

Постановка задачи

  1.  В редакторе базы каналов с помощью встроенного редактора создать программу, реализующую одну или несколько функций управления и обработки сигналов (функциональное назначение программы определяется преподавателем)
  2.  Провести трансляцию созданной программы с целью оформления в виде функционального блока.
  3.  Осуществить включение созданного функционального блока в соответствующе место FBD программы и  подключение программы к соответствующим каналам контроля и управления.
  4.  Оформить отчет.

Краткие теоретические сведения

         

. К основным понятиям языка Техно IL относятся:

 Переменные;

Константы;

Операнды;

Операции;

Функции;

Метки;

Операторы;

Комментарии.

Техно IL  использует следующие  типы переменных.

I - входные переменные;

Q - выходные переменные;

E - статические переменные;

W - статические глобальные переменные;

F - динамические переменные.

Их имена имеют следующую структуру: первый символ определяет тип переменной, далее без пробела следует ее номер

И системные переменные:

esult – аккумулятор (для одноадресных операций);

CMP - признак истинности.

Входные переменные (I)

Переменные данного типа являются входными аргументами IL-программы. В зависимости от типа программы назначение переменных этого типа несколько меняется.

В программах типа FB эти переменные являются входами создаваемого блока.

Количество создаваемых для блока входов определяется старшим номером переменной типа I. Например, если в программе используется переменная I5 и таких переменных с большими номерами нет, то блок будет иметь шесть функциональных входов. При этом переменная I5 будет получать значения с последнего функционального входа, а I0 – с первого.

В IL-программе типа FB можно использовать до 13 переменных типа I.  При этом их суммарное количество с выходными переменными (Q) не должно превышать 15.

В программе типа PRG входные переменные могут связываться с атрибутами каналов. Не связанные с каналами переменные типа I могут использоваться как свободные для хранения промежуточных результатов. Максимальное количество переменных этого типа равно 256.

Выходные переменные (Q)

Переменные данного типа являются выходными аргументами IL-программы. Их использование зависит от типа программы.

В программах типа FB эти переменные связываются с выходами блока. Количество выходов блока определяется старшим номером переменной данного типа как и для входных переменных. Максимальное количество выходных переменных в IL-программе типа FB равно 8 (максимальный номер – 7).

В IL-программах типа PRG переменные данного типа используются для формирования значений атрибутов каналов текущего узла. Не связанные с каналами выходные переменные могут использоваться как свободные. Максимальное количество этих переменных в программах типа PRG равно 256 (максимальный номер - 255).

Присвоение значений выходных переменных атрибутам каналов или выходам функциональных блоков осуществляется при завершении выполнения программы. Поэтому в процессе выполнения программы использовать в качестве вспомогательных переменных.

В метапрограммах можно связать переменные I и Q с атрибутами каналов. Для этого в тексте программы надо создать раздел описания связей. Он должен располагаться за словом PROGRAM, начинаться строкой VAR_IN_OUT и заканчиваться –  END_VAR. Между этими строками размещаются строки описания соответствия. Они имеют следующий формат:

<переменная> <имя канала> <атрибут>

Статические переменные (E)

Эти переменные используются при необходимости сохранять результаты вычислений между двумя вызовами программы.

В IL-программе типа FB максимальное число статических переменных равно 4 . Для программ типа PRG это количество составляет 256. Эти переменные являются общими для всех метапрограмм одного узла.

Значения статических переменных можно также контролировать и формировать в FBD-программах с помощью  функциональных блоков EREAD и WRTE.

Статические глобальные переменные (W)

В рамках узла операторской станции или глобального регистратора таких переменных можно использовать до 1024, в контроллере их может быть до 256.

Глобальные переменные можно использовать в любых IL- и FBD-программах. Их значения можно считывать в реальном времени из файлов, передавать по сети, запрашивать по OPC, а так же отображать и управлять ими с помощью форм отображения.

Для получения значений глобальных переменных в FBD-программах используются блоки WREAD и AREAD. Для формирования значений глобальных переменных предназначен блок WRTW из того же раздела. Считыванием значений этих переменных из файла управляет блок WFILE, а передачей по сети – NSND. Для настройки форм отображения на глобальную переменную надо в списке объектов указать объект W_Global, а в списке каналов выбрать нужную переменную.

В программе на TechnoIL невозможно обращение к глобальным переменным с индексом больше 255.

Обращение к переменным с индексами от 0 до 1023 возможно только в FBD программах через блоки WTRW, WREAD или AREAD.

Динамические переменные

Эти переменные не сохраняют свои значения между вызовами программы. Используются только как вспомогательные при организации вычислений. Количество динамических переменных не зависит от типа программы и составляет 255.  

Системные переменные

В языке Техно IL используются две системные переменные:

result -;CMP 

Первая из них используется при одноадресной записи операций. В этом случае она является вторым операндом и в нее записывается результат. Для явного вызова этой переменной используется идентификатор X. 

Переменная CMP формируется операциями сравнения и оператором TEST. Она может принимать значения истинно или ложно и используется операторами условного перехода.

Константы

Константы могут быть двух типов:

      целые числа в диапазоне от –127 до 127;

     любые другие числа.

Эти константы могут записываться в десятеричном и в шестнадцатеричном виде. Шестнадцатеричная константа начинается с .

Ограничений на число констант первого типа не накладывается. Максимальное число констант второго типа для программ типа FB равно 10, а для PRG – 40. Совпадающие по значению константы считаются за одну.

Операнды

Каждая инструкция программы содержит оператор и операнды. Оператор задает действие, которое надо выполнить с операндами. В качестве операндов в IL-программе могут использоваться все описанные выше переменные, кроме CMP, а также константы.

Значение операнда HEX-формата, задаваемого константой, не может быть больше 0xFF (255).

 Язык Техно IL позволяет выполнять с операндами арифметические и логические операции, а также операции сравнения. Почти все они имеют два обозначения: символьное и мнемоническое.

Синтаксис записи операций

В соответствии со стандартом в строке записывается сначала мнемоническое обозначение операции, затем через пробел – операнд.. Техно IL позволяет использовать два операнда и мнемоническое или символьное обозначение операции. Кроме того, обозначение операции может быть помещено между операндами.

 Внимание! При записи символа операции между операндами он должен быть отделен пробелами с двух сторон.

Например, операция сложения переменной Q1 с переменной I2 с записью результата в первую из них в соответствии со стандартом записывается следующим образом:

LD Q1

ADD  I2

ST  Q1

В Техно IL эта операция может быть записана так же, а может - существенно компактнее:

ADD  Q1  I2

или 

+  Q1  I2

или 

Q1  +  I2

В одной строке программы можно записать несколько операций. В этом случае их следует разделять символом “;”.

     Порядок выполнения

Создание, редактирование, трансляцию  и оформление в виде FBD блока программы на языке инструкций проиллюстрируем на контрольном примере.

КОНТРОЛЬНЫЙ ПРИМЕР:  Разработать функциональный блок позиционного регулирования, который учитывает величину гистерезиса и формирует управляющие  дискретные сигналы  (0 или 1) на 2-х функциональных выходах.

Шаг 1.  Составим спецификацию функционального блока.

Очевидно, что для разработки такого функциональный блок на языке инструкций,  требуется зарезервировать  3 функциональных входа и 2 выхода.

Спецификация входных и выходных переменных функционального блока

Идентификатор переменной

Тип

Вид представления

Назначение

I0

Вход

FLOAT

Контролируемая величина

I1

Вход

FLOAT

Эталонная величина

I2

Вход

FLOAT

Величина гистерезиса

Q0

Выход

HEX

Управляющий сигнал на уменьшение

Q1

Выход

HEX

Управляющий сигнал на увеличение

Шаг 2. Составим алгоритм работы программы.

Программа  должна контролировать рассогласование (I) значений двух первых входов (I=I0- I1) и устанавливать на двух выходах  0 или 1 в зависимости от результата сравнения (I) и  величины, установленной на третьем входе I2.

Если I > I2,   то Q0=1, Q1=0;

если I < - I2, то Q0=0, Q1=1;

если - I2 I I2, то Q0=0, Q1=0.

Шаг 3. Составим  программу на языке инструкций.

Чтобы создать программу на Техно IL, надо войти в окно редактирования базы каналов и выполнить команду Создать из меню Техно IL редактора базы каналов. При этом на экране появится следующий диалог.

Оставим тип заданным по умолчанию – FB (функциональный блок). Присвоим программе имя PR, а создаваемому функциональному блоку – PR. Далее введем в левом окне текст программы, как показано на рисунке.

Чтобы проверить синтаксис программы,  выполним команду Дамп из меню Правка. Результат проверки выводится в правом окне.

Если сообщений об ошибках нет, то программу можно подключать к системе. Но сначала ее надо транслировать. Это реализуется нажатием ЛК на кнопке Трансляция. Если трансляция прошла успешно, то в правом окне появится надпись ОК. Теперь для подключения программы надо нажать ЛК на кнопке Добавить.

После добавления в проект нового блока в директории ASM инструментальной системы сохраняются два файла с именем, образованным из дополнительного имени программы. Эти файлы имеют расширения il и icl. Первый из них содержит текст программы, а второй – код, полученный в результате трансляции.

Кроме того, в директорию INI инструментальной системы сохраняется файл с именем icl<n>.def, где <n> – номер добавленного блока: от 0 до 53. Этот файл имеет текстовый формат. В нем описываются имена входов и выходов блока. По умолчанию им присваиваются имена I<n> и Q<n>, где  <n> – номер по порядку. Эти имена можно изменить, но при этом надо учитывать, что название входа или выхода не должно содержать более 3 символов.

При выходе из редактора или загрузке в него нового проекта файлы программ из директории ASM и файлы icl<n>.def из директории INI копируются в соответствующие каталоги директории проекта. При следующей его загрузке они снова копируются в инструментальную систему. Если в ее директориях присутствуют файлы от предыдущего редактируемого проекта, то при совпадении имен и номеров они затираются.

Если в редактируемом проекте не использовались программируемые функциональные блоки, то для него будут доступны все блоки последнего редактируемого проекта.

Шаг  4. Подключение программы.

Перейдем в окно редактирования FBD-программ и в диалоге Меню FBD выбрать раздел Техно IL_1, то в нем будет присутствовать только что созданный блок.

 

При размещении функционального блока в поле создания и редактирования FBD программ блок будет выглядеть, как показано на рисунке.

Подключение FBD программы выполняется  обычным способом.

Требования к отчету.

Отчет о работе должен содержать

  1.  Название работы;
  2.  Цель;
  3.  Постановку задачи;
  4.  Спецификации входных и выходных переменных создаваемых функциональных блоков.
  5.  Алгоритмы функций, выполняемых функциональными блоками.
  6.  Тексты программ.


Библиографический список

Учебное издание

СОЗДАНИЕ И ОТЛАДКА ПРОГРАММ НА ЯЗЫКЕ

ФУНКЦИОНАЛЬНЫХ БЛОКОВ

Методические указания для выполнения лабораторной работы по дисциплине «Интегрированные системы проектирования и управления»

Для бакалавров направлений  220700, 220400

Составитель ХАУСТОВ Игорь Анатольевич

Компьютерный набор и верстка И.А. Хаустов

Подписано в печать

Формат 60х84 1/16. Бумага офсетная. Гарнитура Таймс. Ризография.

Усл. печ. л.  . Уч.-изд. л.     . Тираж 100 экз. Заказ

Воронежская государственная технологическая академия (ВГТА)

Участок оперативной полиграфии ВГТА

Адрес академии и участка оперативной полиграфии:

394000 Воронеж, пр. Революции, 19


Вход в программу

нициализация и вычисление промежуточных переменных

I > I2

Q0=1,QI1=0

I <- I2

Q0=0, Q1=1

Q0=0, Q1=0

Выход из программы


 

А также другие работы, которые могут Вас заинтересовать

36713. СОЗДАНИЕ БАЗЫ ДАННЫХ «СТАВРОПОЛЬСКИЙ КРАЙ» И ОСНОВЫ РАБОТЫ В НЕЙ 223 KB
  Задание № 2 Сформируйте структуру таблицы АДМИНИСТРАТИВНЫЕ РАЙОНЫ для хранения в ней справочных сведений о районах Ставропольского края. Структура таблицы АДМИНИСТРАТИВНЫЕ РАЙОНЫ Признак ключа Имя поля Тип поля Размер поля Ключ Код района Текстовое 3 Название района Текстовое 20 Плотность населения Числовое С плавающей точкой Число населенных пунктов Числовое Длинное целое Площадь территории Числовое Длинное целое Численность населения Числовое С плавающей точкой Технология работы В окне базы данных перейдите к объектам ТАБЛИЦЫ. Таблица...
36714. Исследование схем усилителей в программной среде PSpice 190 KB
  Усилитель собран на биполярном транзисторе, который нагружен на двухконтурный полосовой LC-фильтр. Этот фильтр настроен на частоту 36 МГц и имеет характеристическое сопротивление 100 Ом. Фильтр состоит из двух параллельных контуров
36715. Имитационное моделирование случайных событий 117.5 KB
  В каждой задаче в соответствии с вариантом построить имитационную компьютерную модель имитирующую предлагаемое событие или события. С помощью имитационной модели оценить вероятность данного события событий и рассчитать необходимое количество экспериментов. Рассчитать аналитически вероятность предлагаемого события событий и сравнить с расчетами полученными методами имитационного моделирования. Постройте модель имитации данного события.
36716. РАЗРАБОТКА СХЕМЫ И СОЗДАНИЕ СТРУКТУРЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ 193.5 KB
  Задание № 3 Использую возможности фильтрации данных постройте следующие фильтры для выборки данных в соответствии с приведенными критериями. С помощью Расширенного фильтра из таблицы Административные районы выбрать те районы в которых численность населения превышает 50 тыс. Удалить фильтр. В меню Записи выберите команду Фильтр Расширенный фильтр.
36717. Гидрологический режим реки Амазонки и ее устьевой области 1.61 MB
  Географическое положение бассейна реки (географическая зона, высотный пояс, удаленность от океанов, государственная принадлежность, координаты центра и крайних точек, основные морфометрические характеристики (площадь, длина, ширина бассейна, длина реки), основные притоки – карта-схема бассейна)
36718. Моделирование случайных величин 176 KB
  Три стрелка стреляют каждый по своей мишени делая независимо друг от друга по одному выстрелу. Рассматриваются три случайные величины: число попаданий первого стрелка; число попаданий второго стрелка; число попаданий третьего стрелка; Пусть случайная величина. Три стрелка стреляют каждый по своей мишени делая независимо друг от друга по одному выстрелу. Рассматриваются три случайные величины: число попаданий первого стрелка; число попаданий второго стрелка; число попаданий третьего стрелка; Пусть случайная величина.
36719. РАБОТА С ЗАПРОСАМИ В РЕЛЯЦИОННОЙ БАЗЕ ДАННЫХ СТАВРОПОЛЬСКИЙ КРАЙ 243.5 KB
  Лабораторная работа № 3 Лабораторная работа № 3 РАБОТА С ЗАПРОСАМИ В РЕЛЯЦИОННОЙ БАЗЕ ДАННЫХ СТАВРОПОЛЬСКИЙ КРАЙ Задание № 1 Создайте запрос на основе таблиц Административные районы и Административные центры выбирающий все районы центры которых являются городами. Технология работы Создайте запрос на основе связанных таблиц. Для этого в окне базы данных выберите объект 3апросы Создание запроса в режиме конструктора; В окне Добавление таблицы выделите в списке таблицу Административные районы и щелкните на кнопке Добавить; В...
36720. Заходи по розширенню долі аптечної мережі «Бажаємо здоров’я» на фармацевтичному ринку України 434 KB
  Кожна компанія зацікавлена тривалий час зберігати свій ринок і бути прибутковою. Для цього потрібне постійне вивчення ринку, розробка заходів по підвищенню конкурентоспроможності і збільшенню частки ринку. Збільшення частки ринку включає різноманітні заходи, сюди входять ребрендинг, комплекс просування, розширення існуючої мережі.