Лабораторная работа 31 / ЛР3
.2.docЗадание на выполнение лабораторной работы
Создать программу, реализующую управление системой налива, нагрева и слива жидкости в резервуаре. В системе происходит управление впускным, выпускным клапанами и нагревателем. При срабатывании датчика нижнего уровня жидкости происходит включение нагревателя. При уровне жидкости ниже уставки нагрев отсутствует. При этом если выходной клапан открыт, то входной закрыт и наоборот. При отсутствии жидкости загорается индикатор. При достижении верхнего уровня впускной клапан закрывается, загорается индикатор.
Разработать блок-схему алгоритма управления системой.
Оформить процесс прибавления/убавления жидкости и процесс управления отдельными процедурами.
В подпрограмме инициализации выполнить необходимые присвоения и обнуления.
Схема установки представлена на рисунке 1:
Рис. 1. Схема установки нагрева воды.
BODY NOP Начало тела программы
JSR INIT Загрузка инициализации
JSR PECH Загрузка ПП печи
LDAA I 020 проверка состояния «насос ВКЛ/ВЫКЛ»
SK1 и если ВЫКЛ (0)
JMP EXIT выход; ИНАЧЕ
LDAA I 021 проверка направления перекачки(0-вниз,1-вверх)
SK1 если слив (0)
JMP ELSE переход к ELSE; ИНАЧЕ
JSR NAL запустить ПП налива
JMP EXIT выход
ELSE JSR SLIV запуск ПП слива
EXIT END
INIT LDAA TD64
BEQ CON
LDD # 2000 запись верхнего уровня
STD R 2003
LDD #250 запись уставки
STD R 2001
LDD # 270 запись текущего уровня; 270 – случайное число!
STD R 2005
CON RTS
PECH NOP ПП печи
LDD R 2005 Считать текущее состояние
SUBD R 2001 вычесть из текущего уставку
BCS ELSP если ниже уставки – переход на ELSP
SET O 030 индикатор печи ВКЛ
JMP ENDP в конец
ELSP CLR O 030 индикатор печи ВЫКЛ
ENDP RTS
SLIV NOP ПП слива
LDD 2005 считали текущий уровень
BEQ ELSS если он нулевой => ELSS
CLR O 031 ИНАЧЕ: индикатор верха ВЫКЛ
SUBD #1 декремент текущего уровня
STD R 2005 запись
JMP ENDS выход
ELSS SET O 032 индикатор нуля ВКЛ
ENDS RTS
NAL NOP ПП налива
LDD R 2005 читаем текущий уровень
SUBD R 2003 сравниваем с максимумом
BEQ ELSN если он достигнут => ELSN
CLR O 032 ИНАЧЕ: индикатор нуля ВЫКЛ
LDD R 2005 читаем текущий уровень снова
ADDD #1 инкремент
STD R 2005 запись
JMP ENDN выход
ELSN SET O 031 индикатор максимума ВКЛ
ENDN RTS конец!!!
Список используемой памяти и проч.:
R 2001 – R 2002 - уставка
R 2003 – R 2004 - верхний уровень
R 2005 – R 2006 - текущий уровень
I 020 – насос вкл/выкл
I 021 - направление вверх/вниз
O 030 - нагреватель
O 031 – верхний уровень достигнут!
O 032 – нижний уровень достигнут!