- •Введение.
- •1. Описание объекта управления.
- •2. Описание технологического процесса.
- •3. Описание микропроцессорного комплекта
- •4. Описание микросхемы к572пв4 (8-р. Ацп)
- •5 . Описание микросхемы кр1554ир22
- •6. Описание микросхемы кр580ир82
- •7. Параллельный порт ввода/вывода кр580вв55
- •8. Функциональная схема
- •Описание функциональной схемы су
- •9. Принципиальная схема мп су транспортным модулем участка
- •Описание принципиальной схемы
- •10. Алгоритм работы
- •Описание алгоритма работы программы управления.
- •11. Управляющая программа
- •12. Расчет надежности
- •Список литературы
10. Алгоритм работы
Описание алгоритма работы программы управления.
В начале работы программы система управления выполняет подпрограмму START. Здесь выполняется опрос концевых выключателей и датчика груза для того чтобы определить находится ли робокара в исходном положении, если нет, то в каком направлении двигаться для возвращения в одно из исходных положений. Далее система ожидает в зависимости от положения либо когда на робокару опустят груз, либо когда его снимут. Затем генерируется временная задержка, после которой начинается движение. Во время движения с помощью подпрограммы RUL робокара движется вдоль проложенного в полу магнитного провода, в это же время опрашиваются бесконтактные концевые выключатели для прекращения движения в случае прибытия робокары в конечную позицию. Далее программа выполняет новый цикл, который начинается с ожидания одного из событий, разрешающих движение. Этот цикл повторяется 100 раз, обеспечивая 50 ездок в каждом из направлений
11. Управляющая программа
KV1 - бесконтактный концевой выключатель 1;
KV2 - бесконтактный концевой выключатель 2;
DG - датчик груза;
ID1 - левый индукционный датчик;
ID2 - правый индукционный датчик;
P1 - сигнал движения вперед на привод ведущих колес;
P2 - сигнал движения назад на привод ведущих колес;
P3 - сигнал поворота колеса влево;
P4 - сигнал поворота колеса вправо;
Согласно технологическому процессу поворот стола робокары не требуется, поэтому концевые датчики стола и привод поворота стола не используются.
Адрес: |
Метки: |
Команда: |
Примечание: |
0001 |
alpha: |
CALL START |
Вызов п/п START |
0002 |
|
MOV ax,100 |
Поместить в Акк параметра цикла |
0003 |
|
MOV cx,ax |
Задаем параметр цикла в регистре cx |
0004 |
m1: |
IN ax,KV1 |
Опрос KV1 |
0005 |
|
CMP ax,1 |
Сравнение содержимого ax и 1 |
0006 |
|
JZ m2 |
Если KV1=1, то переход на m2 |
0007 |
|
JMP m5 |
Иначе переход на m5 |
0008 |
m2: |
IN ax,DG |
Опрос датчика груза |
0009 |
|
CMP ax,0 |
Сравнение содержимого ax и 0 |
0010 |
|
JNZ m2 |
Если DG<>0, то переход на m2 |
0011 |
|
CALL DELAY |
Вызов п/п DELAY |
0012 |
|
MOV ax, 1 |
Поместить управляющее воздействие 1 в Акк |
0013 |
|
OUT P1,ax |
Движение вперед |
0014 |
m3: |
CALL RUL |
Вызов п/п RUL |
0015 |
|
IN ax,KV2 |
Опрос KV2 |
0016 |
|
CMP ax,1 |
Сравнение содержимого ax и 1 |
0017 |
|
JZ m4 |
Если KV2=1, то переход на m4 |
0018 |
|
JMP m3 |
Иначе переход на m3 |
0019 |
m4: |
MOV ax,0 |
Поместить управляющее воздействие 0 в Акк |
0020 |
|
OUT P1,ax |
Останов привода |
0021 |
|
JMP m8 |
Переход на m8 |
0022 |
m5: |
IN ax,DG |
Опрос датчика груза |
0023 |
|
CMP ax,1 |
Сравнение содержимого ax и 1 |
0024 |
|
JNZ m5 |
Если DG<>0, то переход на m5 |
0025 |
|
CALL DELAY |
Вызов п/п DELAY |
0026 |
|
MOV ax, 1 |
Поместить управляющее воздействие 1 в Акк |
0027 |
|
OUT P2,ax |
Движение назад |
0028 |
m6: |
CALL RUL |
Вызов п/п RUL |
0029 |
|
IN ax,KV1 |
Опрос KV1 |
0030 |
|
CMP ax,1 |
Сравнение содержимого ax и 1 |
0031 |
|
JZ m7 |
Если KV1=1, то переход на m7 |
0032 |
|
JMP m6 |
Иначе переход на m6 |
0033 |
m7: |
MOV ax,0 |
Поместить управляющее воздействие 0 в Акк |
0034 |
|
OUT P2,ax |
Останов привода |
0035 |
m8: |
LOOP m1 |
Цикл по cx с переходом на m1 |
0036 |
|
HLT |
Завершение программы |
Подпрограмма START для приведение системы в исходное состояние |
|||
0037 |
START: |
IN ax,KV1 |
Опрос KV1 |
0038 |
|
CMP ax,0 |
Сравнение содержимого ax и 0 |
0039 |
|
JZ m9 |
Если KV1=1, то переход на m9 |
0040 |
|
JMP m13 |
Иначе переход на m13 |
0041 |
m9: |
IN ax,KV2 |
Опрос KV2 |
0042 |
|
CMP ax,0 |
Сравнение содержимого ax и 0 |
0043 |
|
JZ m10 |
Если KV2=1, то переход на m10 |
0044 |
|
JMP m13 |
Иначе переход на m13 |
0045 |
m10: |
IN ax,DG |
Опрос датчика груза |
0046 |
|
CMP ax,0 |
Сравнение содержимого ax и 0 |
0047 |
|
JZ m11 |
Если DG=0, то переход на m11 |
0048 |
|
MOV ax,1 |
Поместить управляющее воздействие 1 в Акк |
0049 |
|
OUT P1,ax |
Движение вперед |
0050 |
|
JMP m12 |
Переход на m12 |
0051 |
m11: |
MOV ax,1 |
Поместить управляющее воздействие 1 в Акк |
0052 |
|
OUT P2,ax |
Движение назад |
0053 |
m12: |
CALL RUL |
Вызов п/п RUL |
0054 |
|
IN ax,KV1 |
Опрос KV1 |
0055 |
|
MOV bx,ax |
Пеместить ax в bx |
0056 |
|
IN ax,KV2 |
Опрос KV2 |
0057 |
|
ADD ax,bx |
Сложить ax и bx |
0058 |
|
CMP ax,0 |
Сравнение содержимого ax и 0 |
0059 |
|
JZ m12 |
Если ax=0, то переход на m12 |
0060 |
|
MOV ax,0 |
Поместить управляющее воздействие 1 в Акк |
0061 |
|
OUT P1,ax |
Остановка при движении вперед |
0062 |
|
OUT P2,ax |
Остановка при движении назад |
0063 |
m13: |
RET |
Возврат в основную программу |
Подпрограмма DELAY для формирования задержки |
|||
0064 |
DELAY: |
MOV ax,cx |
Переслать параметр цикла в Акк |
0065 |
|
MOV dx,ax |
Переслать параметр цикла из Акк в регистр |
|
|
|
dx для временного хранения |
0066 |
|
MOV ax,1000 |
Поместить новый параметр цикла в Акк |
0067 |
|
MOV cx,ax |
Переместить параметр цикла в регистр cx |
0068 |
m14: |
NOP |
нет операции |
0069 |
|
LOOP m14 |
Цикл по cx с переходом на m14 |
0070 |
|
MOV ax,dx |
Переслать из dx в Акк прежний параметр цикла |
0071 |
|
MOV cx,ax |
Переслать прежний пораметр цикла в cx |
|
|
RET |
Возврат в основную программу |
Подпрограмма RUL для управления поворачивающимся колесом |
|||
0072 |
RUL: |
IN ax,ID1 |
Опрос левого индукционного датчика |
0073 |
|
MOV dx,ax |
Переслать из Акк в dx |
0074 |
|
IN ax,ID2 |
Опрос правого индукционного датчика |
0075 |
|
CMP ax,dx |
Сравнение ax и dx |
0076 |
|
JM m15 |
Если ax<dx, то перход на m15 |
0077 |
|
JP m16 |
Если ax>dx, то перход на m16 |
0078 |
|
JMP m17 |
Переход на m17 |
0079 |
m15: |
MOV ax,1 |
Поместить управляющее воздействие 1 в Акк |
0080 |
|
OUT P3,ax |
Поворот колеса влево |
0081 |
m16: |
MOV ax,1 |
Поместить управляющее воздействие 1 в Акк |
0082 |
|
OUT P4,ax |
Поворот колеса вправо |
0083 |
m17: |
RET |
Возврат в основную программу |