- •2. Разработайте подпрограмму анализа аварийных ситуаций робота-манипулятора с тремя степенями свободы (в реальном масштабе времени) для мк51.
- •4. Разработайте структурную схему усо автоматической системы управления роботом -манипулятором с 4-мя степенями свободы.
- •5. Реализуйте программный асинхронный ввод данных с индуктивного датчика малых линейных перемещений для омэвм мк51.
- •6. Разработайте функциональную схему, алгоритм и подпрограмму обмена данными локальной мпсу на базе омэвм мк51 с эвм высшего ранга.
- •7. Опишите составляющие погрешности управляющего воздействия для системы пропорционального управления двигателем постоянного тока.
- •8. Опишите составляющие погрешности управляющего воздействия частотного преобразователя системы пропорционального управления асинхронным двигателем переменного тока.
- •10. Охарактеризуйте набор команд омэвм.
- •11. Опишите существующие способы адресации эвм для системы управления верхнего ранга.
- •12. Какие архитектурные особенности увм позволяют строить системы управления различного назначения.
- •3. Микропрограммируемость.
- •4. Регулярность.
- •13. Реализуйте функциональный подход при разработке специализированной мпсу на конкретном примере (используйте техпроцесс, указанный в задании).
- •2. Цикл проектирования системы.
1. Разработайте подпрограмму ввода данных с АЦП (выберите принцип действия АЦП) для ОМЭВ МК51 (обмен по прерыванию). Покажите место данной подпрограммы в общей структуре программного обеспечения и ее взаимодействие с другими программными модулями.
∆Tmax
= 0.5ms
время
преобразования
Обмен по прерыванию.
Достоинства: сокращаются затраты машинного времени на обмен с медленно действующими ВУ, из-за отсутствия повторения цикла опроса.
Недостаток: требуются дополнительные аппаратные затраты необходим контроллер прерываний.
Можно выделить 5 основных этапов механизма прерывания:
1) Фиксация прерывания. Предполагается, что ЭВМ сигнал от внешнего устройства может принимать, а может не принимать. Фиксация нужна для того, чтобы не потерять информацию от ВУ. Существуют процессы, запрещающие их прерывание. Процесс запроса прерывания это программно-аппаратная функция.
2) Анализ прерывания. Так как в ЭВМ может существовать несколько устройств, требующих обмена с прерыванием, то может поступить несколько запросов прерывания одновременно. Поэтому каждому типу прерываний присваивается определенный приоритет.
3) Фиксация состояния процессора. Для фиксации состояния процессора необходимо зафиксировать состояния: Счетчика адреса, аккумулятора и указателя стека.
Для полного сохранения необходимо еще сохранить состояние регистров.
Эта операция выполняется аппаратным путем.
4) Выполнение программы обслуживающей прерывание. Для каждого уровня прерывания назначен некоторый адрес в адресной части памяти, который будет содержать адрес подпрограммы обработки прерывания. Этот адрес называется адрес-вектор.
5) Восстановление прерванного процесса. Необходимо восстановить состояние регистров, указателя стека, аккумулятора и счетчика адреса.
Программа обслуживания прерываний находится вне тела основной процедуры.
;Считывание информации с датчиков через мультиплексоры Считывание с каждого мультиплексора
;происходит в 2 этапа, т.к. входов 8, а выходов 4.
setb p2.3 ; устанавливаем на выходе порта p2.3 единицу.
;Т.е. включаем передачу первых 4 сигналов для мультиплексоров
mov c, 78h ; Присваиваем С значение 0
mov p2.0, c ; передает на выход p2.0 значение С. На входе р1 сформируется байт
; из значений сигналов 1,3,5,7,9,11,13,15
mov a, p1 ; передаем этот байт в Акк из порта р1
mov 20h, a ; записываем полученный байт в РПД с адресом 20h
mov p2.3, c ; передаем на выход p2.3 значение 0. На входе р1 сформируется
; байт из значений сигналов 2,4,6,8,10,12,14,16
mov a, p1 ; передаем байт в Акк из порта р1
mov 21h, a ; записываем полученный байт в РПД 21h
setb p2.0 ; Подаем на p2.0 единицу, выключаем первую группу мультиплексоров
mov p2.1, c ; Подаем на p2.1 ноль, включаем вторую группу мультиплексоров.
;На входе р1 сформируется байт из значений сигналов 18,20,22,24,26,28,30,32
mov a, p1 ; передаем байт в Акк из порта р1
mov 23h, a ; записываем полученный байт в РПД 22h
setb p2.3 ; передаем на выход p2.3 значение 1.На входе р1 сформируется байт
; байт из значений сигналов 17,19,21,23,25,27,29,31
mov a, p1 ; передаем байт в Акк из порта р1
mov 22h, a ; записываем полученный байт в РПД 22h
setb p2.1 ; Подаем на p2.1 единицу, выключаем вторую группу мультиплексоров
mov p2.2, c ; Подаем на p2.2 ноль, включаем мультиплексор DD5.На входе р1 сформируется
; байт из значений сигналов 33,35,36,38,0,0,0,0
mov a, p1 ; передаем байт в Акк из порта р1
mov p2.3, c ; передаем на выход p2.3 значение 0.На входе р1 сформируется
; байт из значений сигналов 0,0,0,0,34,0,37,0
add a, p1 ; сложим полученный байт в аккумуляторе с байтом на порту р1
; Получим байт из значений сигналов 33,35,36,38,34,0,37,0
mov 24h, a ; записываем полученный байт в РПД 24h
setb p2.2 ; Подаем на p2.1 единицу, выключаем вторую группу мультиплексоров
; считывание данных из последовательного порта.
setb p2.7 ; Подаем на p2.7 сбрасываем триггеры, начинаем считывание данных с ЧПУ токарного станка
mov a, sbuf ; из буфера последовательного порта в Акк
rrc a ;Cчитывание сигнала S1
mov 25h, a ;Запись сигнала S1-S7 в РПД 25h
setb p2.7 ; Подаем на p2.7 сбрасываем триггеры, начинаем считывание данных с ЧПУ
шлифовального станка
mov a, sbuf ; из буфера последовательного порта в Акк
rrc a ;Cчитывание сигнала S8
mov 2Fh, c ;Запись сигнала S8 в РПД
mov 26h, a ;Запись сигнала S9-S12 в РПД 26h
2. Разработайте подпрограмму анализа аварийных ситуаций робота-манипулятора с тремя степенями свободы (в реальном масштабе времени) для мк51.
На роботе-манипуляторе с тремя степенями свободы имеется три реверсивных двигателя. Управляющие воздействия для перемещения манипулятора формируются микроконтроллером. Для управления необходимо шесть управляющих воздействий – по два на каждую степень свободы.
Список переменных:
Количество импульсов
-Номер текущей операции
Для каждой операции предусмотрено свое время выполнения. Данные по времени на каждую операцию хранятся в таблице Номер операции – Время выполнения. Время выполнения текущей операции отсчитывается таймером. Авария робота возникает в случае, если превышено время отклика сигнала с текущего двигателя.
Подпрограмма обработки прерывания:
;выбор входной переменной для наблюдения
MOV TCON, #00000000b ;останов таймера
LCALL reset_timer ; перезагрузка таймера
MOV R6, #7Fh ;показатель декремента времени
JNB y8, nextvar1 ;условие зажатие руки
MOV R4, x1min ;выбор мин. времени такта
MOV R5, x1max ;выбор макс. времени такта
MOV R1, #21h ;адрес блока, в котором находится переменная
MOV R7, 21h ;временное запоминание состояния блока
MOV TCON, #00010000b ;пуск таймера
nextvar1:
JNB y2, nextvar2 ; условие движение в право
MOV R4, x2min ;выбор мин. времени такта
MOV R5, x2max ;выбор макс. времени такта
MOV R1, #24h ;адрес блока, в котором находится переменная
MOV R7, 24 ;временное запоминание состояния блока
MOV TCON, #00010000b ;пуск таймера
nextvar2:
RET
;Обработка прерывания от таймера
;срабатывает каждые 20 мс
time:
;Проверяем изменение информации с датчиков
;перемещение содержимого измененного блока (байта) в А
MOV A, @R1
XRL A, R7 ;сравнение с предыдущим значением
JZ next2 ;если блок не изменился, ничего не делаем
MOV A, R4
;если минимальное время такта еще не истекло - авария
JNZ crash_loop
;если минимальное время такта истекло -
;значит ИМ сработал в отведенном временном интервале
MOV TCON, #00000000b ;останов таймера
LJMP next3
next2:
DJNZ R6, next3 ;уменьшаем на единицу пок-ль декремента
;если показатель декремента = 0, то
;прошло 20 * 50 = 1000 мс = 1 с
LCALL reset_timer ;перезагрузка таймера
MOV R6, #7Fh ;показатель декремента времени
DJNZ R5, next4 ;уменьшаем на единицу макс. время
;если макс. время = 0, значит ИМ не сработал
LJMP crash_loop ;переход к остановке работы
next4:
MOV A, R4
JZ next3 ;если мин. время уже равно 0, пропускаем
DEC R4
LJMP next3
crash_loop:
LJMP crash_loop ;остановка работы, выполняется при аварии
next3:
RETI
3. Разработайте фрагмент функциональной, схемы МПСУ на базе ОЭВМ ввода данных с аналогового датчика, например с термопары, алгоритм процесса измерения температуры и подпрограмму коррекции случайной составляющей погрешности результатов измерения (допустимая погрешность - 0,2 %).