- •Лабораторная работа №1
- •Справочные данные.
- •Задание на выполнение лабораторной работы.
- •Лабораторная работа №2
- •Справочные данные
- •Система ветвления
- •Арифметические операции
- •Лабораторная работа №3
- •Справочные данные
- •Лабораторная работа №4
- •Справочные данные Описание модуля интерфейса mdpif1-0 (midicontrol)
- •Аппаратное квитирование
- •Программное квитирование
- •Структура посылки
- •Возможные сообщения об ошибках
- •Ошибка кадровой синхронизации
- •Ошибка превышения темпа
- •Программные операции
- •Инициализация
- •Пример инициализации
- •Регистр состояния
- •Замечание: Для tty биты 5и 6 не определены. Регистр данных
- •Передача символа
- •Прием символа
- •Лабораторная работа №5
- •Справочные данные
- •Команды для работы с индексным регистром
- •Лабораторная работа №6
- •Справочные данные
Лабораторная работа №3
Цель работы.
Ознакомиться с организацией подпрограмм в STL.
Справочные данные
В STL, как и в других языках программирования широко применяются подпрограммы. Оформляются подпрограммы следующим образом:
NAME …. Дается уникальное имя не более 4-х символов
….
RTS Возврат из подпрограммы.
Вызываются подпрограммы из тела программы так:
JSR NAME
Общая структура программы:
JSR INIT Вызов подпрограммы инициализации
(выполняется один раз, в первом программном цикле)
JSR PP1 Вызов подпрограммы PP1
JSR PP2 Вызов подпрограммы PP2
...
END
____________________________________________________________
INIT LDAA R 0899 (TD 64)
BEQ CON
...
CON RTS
____________________________________________________________
PP1 ...
RTS
____________________________________________________________
PP2 ...
RTS
Подпрограмма инициализации, флаг первого сканирования
Подпрограмма инициализации - это такая подпрограмма, которая исполняется только один раз - в первом программном цикле после сброса (после включения ПЛК). Достигнуть того, чтобы подпрограмма исполнялась однократно, можно несколькими способами. Стандартный способ заключается в использовании системного флага первого сканирования, который автоматически устанавливается операционной системой в 1 для первого программного цикла, а затем сбрасывается в 0 при последующих исполнениях. В качестве первого скана можно использовать R 0899 или TD64.
Другой, нестандартный способ, заключается в использовании одного из сбрасываемых регистров R 0000 - R 0019 (или флажков F 000 - F 499), который необходимо установить в отличное от 0 значение в подпрограмме инициализации и контролировать его значение в ее начале.
Некоторые полезные команды
SK0 |
|
Пропустить следующую инструкцию, если результат предыдущей операции 0 | |
SK1 |
|
Пропустить следующую инструкцию, если результат предыдущей операции не 0 | |
Команды условного сброса и установки (только для O, S, F) | |||
PRS |
1Þ(M), if a0=1 |
Записать 1 в ячейку памяти, если младший бит аккумулятора А равен 1 | |
RST |
0Þ(M), if a0=1 |
Записать 0 в ячейку памяти, если младший бит аккумулятора А равен 1 | |
Команды безусловного сброса и установки | |||
CLR |
0Þ(M) |
Записать 0 в ячейку памяти | |
CLRA |
0ÞA |
Записать 0 в аккумулятор А | |
CLRB |
0ÞB |
Записать 0 в аккумулятор В | |
SET |
1Þ(M) |
Записать 1 в ячейку памяти | |
CLC |
0ÞC |
Записать 0 во флаг переноса C | |
SEC |
1ÞC |
Записать 1 во флаг переноса С |
Все эти команды удобно использовать, например, с однобитовыми адресами, (дискретные входы/выходы и флажки).
Например.
JSR INIT Выполнить п/п инициализации
LDAA I 040 Загрузить вход 040
SK1 и не выполнять подпрограмму POD1
JSR POD1 в случае активного состояния
входа.
LDAA F 010 Загрузить флаг 010
SK0 Выполнить подпрограмму, если
JSR POD2 флаг равен 1
…
END
INIT …
RTS
POD1 RST O 050 Установить выход 050
…
RTS
POD2 CLR F 010 Сбросить флаг 010
…
RTS
Задания на выполнение лабораторной работы
по выбору:
1. Создать программу, реализующую управление системой налива, нагрева и слива жидкости в резервуаре. В системе происходит управление впускным, выпускным клапанами и нагревателем. При срабатывании датчика нижнего уровня жидкости происходит включение нагревателя. При срабатывании датчика температуры нагрев выключается. Слив происходит при достижении верхнего уровня, впускной клапан при этом закрывается.
2. Создать программу, реализующую управление системой налива, нагрева и слива жидкости в резервуаре. В системе присутствуют впускной и выпускной клапаны. При уровне жидкости ниже уставки нагрев отсутствует. При этом если выходной клапан открыт, то входной закрыт и наоборот. При отсутствии жидкости загорается индикатор. При достижении верхнего уровня впускной клапан закрывается.
Разработать блок-схему алгоритма управления системой.
Оформить процесс прибавления/убавления жидкости и процесс управления отдельными процедурами.
R2000, R2001 - текущий уровень.
Значения уставок принять:
R2002 – уставка для включения нагревателя. (=250)
R2003, R2004 – верхний уровень.(=2000).
В подпрограмме инициализации выполнить необходимые присвоения и обнуления.
Содержание отчета
Цель работы.
Таблица зависимости значений выходных сигналов от входных.
Блок-схема алгоритма управления.
Текст программы с комментариями.
Выводы.