
- •Isbn 5-230-06778-7 Кубанский государственный технологический университет
- •Оглавление
- •Предисловие
- •Введение
- •Глава 1
- •Классификация и виды счпу
- •Глава 2
- •2.1 Задачи управления на уровне станка, гибкого производственного модуля, гибкой производственной системы
- •2.1.1 Геометрическая задача чпу
- •2.1.2 Логическая задача чпу
- •2.1.3 Технологическая задача чпу
- •2.1.4 Терминальная задача чпу
- •2.2 Технические средства управления в автоматизированном производстве
- •Глава 3
- •3.1 Устройства ввода программ
- •3.2 Системы чпу на основе мп
- •3.3. Перспективы развития и применения микропроцессорных систем управления
- •Глава 4
- •4.1 Системы счисления, архитектура и принцип действия микропроцессоров и микроЭвм
- •Принцип действия микроэвм
- •4.2 Система программирования микропроцессора серии кр580
- •4.2.1 Способы адресации
- •4.2.2 Система команд
- •(А) (Данные)
- •4.2.3 Составление программ
- •4.3 Архитектура, система программирования микроЭвм «Электроника-60»
- •4.3.1 Алфавит языка Ассемблера, данные, адресное пространство
- •4.3.2 Система команд
- •4.3.3 Способы адресации
- •4.4 Система автоматизированной подготовки управляющих программ сап-см4
- •4.4.1 Структура и элементы программы
- •4.4.2 Раздел данных
- •4.4.3 Раздел процедур
- •Глава 5
- •5.1 Программируемые контроллеры
- •5.2 Программирование контроллеров
- •5.2.1 Азбука алгоритмизации прикладных программ
- •5.2.2 Основное правило записи программ применительно к мпк 580
- •5.2.3 Процедуры и подпрограммы
- •5.2.4 Основы формализованного подхода к разработке прикладных программ мп-контроллеров
- •5.2.5 Типовые процедуры ввода. Данных
- •5.2.6 Типовые процедуры вывода данных
- •5.2.7 Масштабирование
- •5.2.8 Программная реализация функций времени
- •5.2.9 Измерение временного интервала
- •5.2.10 Ввод символов с клавиатуры. Опрос группы упорядоченных двоичных датчиков
- •5.2.11 Процедура ввода цифры с клавиатуры. Опрос матрицы двоичных датчиков
- •5.2.12 Определение веса нажатой клавиши
- •Заключение
- •Приложение а
- •1 Микропроцессорные чпу металлорежущих станков фирмы fanuc
- •2 Мпс управления промышленным роботом
- •3 Мпс позиционно-контурного управления промышленными роботами
- •4 Счпу для управления по трем координатам
- •5.Система группового числового программного управления
- •6.Программируемый контроллер для плоскошлифовальных станков
- •Приложение б
- •1 Курсовой проект
- •1.1 Задание на курсовой проект
- •1.2 Объем и содержание курсового проекта
- •1.3 Методические указания к выполнению курсового проекта
- •1.4 Формализация и преобразование связей между логическими переменными
- •1.5 Общая характеристика микроЭвм
- •1.6 Общая характеристика микропроцессора
- •1.7 Технология изготовления микропроцессоров
- •1.8 Программная реализация систем цикловой электроавтоматики
- •1.9 Анализ объекта управления и построение модели циклического процесса
- •1.10 Методические указания к выполнению курсового проекта на примере автоматизированного комплекса
- •1.11 Пример разработки алгоритма работы ртк
- •1.12 Словесное описание алгоритма работы автоматизированного комплекса в автоматическом режиме
- •1.13 Описание аварийной ситуации автоматизированного комплекса
- •1.14 Методические указания по установлению соответствия датчиков и приводов адресам контролера
- •1.15 Разработка сети Петри
- •1.16 Краткие сведения о сети Петри
- •1.17 Представление алгоритма работы автоматизированного
- •1.18 Декомпозиция системы и построение сложной сети Петри
- •1.19 Язык программирования контроллера № s – 915
- •1.20 Составление управляющей программы
- •В ключение автоматического режима
- •П роверка исходного состояния ртк
- •П ереключение электромагнитов приводов Проверка срабатывания выходных переходов позиции р
- •Заключение
- •Глоссарии
- •Задание принял студент____________ _____________________________
- •Список литературы:
- •350072 Г. Краснодар, ул. Московская, 2
4.3.3 Способы адресации
Под адресацией понимается обращение к памяти (регистрам РОН, ОЗУ или ПЗУ) для произведения над их содержимым (операндами) каких-либо операций. Адресация производится с помощью команд, в которых кодируются как вид операции, так и способ обращения к операндам.
Различают четыре основных способа адресации: непосредственную, регистровую, прямую и косвенную. При непосредственной адресации адрес ячейки, в которой находится операнд, содержится в самой команде. Команда состоит из двух машинных слов.
В мнемокоде команда с непосредственной адресацией имеет конструкцию КО # К, RM (где КО - код операции, # - символ, означающий «номер», «число»; К - регистр памяти с операндом, указываемый во втором слове команды; R - регистр РОН; М - номер R), восьмеричном коде записывается как КО 27 D К, где 27 - восьмеричный код непосредственной адресации.
Пример.
MOV # 425, RO или 012700 000425. Команда в мнемокоде читается как «передать» (MOV) содержимое регистра ОЗУ или ПЗУ номер д25 в регистр RO, или в восьмеричном коде для первого машинного слова: 01 - код операции MOV (табл. 9), 27 - код непосредственной адресации первого операнда (S), 00 - код регистра 0; для второго машинного слова: 000425 - восьмеричный код регистра памяти номер 425, в котором записан операнд.
Регистровая адресация используется только для операций между регистрами РОН.
Команда с регистровой адресацией имеет конструкцию КЛ RM, RM, где операнд-источник S и операнд-приемник D строятся одинаково в виде RM, или в кодах КО: ОМ ОМ.
Пример.
СМР R5, RQ или 02 0500, т.е. сравнить содержимое регистров общего назначения R5 и RO (02 - код операции СМР из табл. 9, 05 и 00 - адреса РОН R5 и R0).
Рисунок 30 – Структурная схема CAP привода станка с ЧПУ
Команда занимает одно машинное слово.
Рисунок 31 – Алгоритм расчета CAP
Рассмотрим программу расчета управляющего воздействия системы автоматического регулирования (CAP) приводом одной из координат станка с ЧПУ (рис. 30). Он производится по формуле
,
где
П - заданное перемещение координат станка;
U - фактическое перемещение;
ДОС - датчик обратной связи.
Алгоритм расчета приведен на рисунке 31.
Распределение памяти:
П - ячейка номер 400;
U - ячейка номер 401;
U - РОН R0.
Счетчик команд организует с ячейки ОЗУ номер 500, т.е. начальное значение СК=500. В левой части программы (табл. 11) приведено мнемоническое описание команд, в правой - в восьмеричных кодах. В первой и второй командах (блоки 2 и 3 алгоритма) производится подача содержимого ячеек ОЗУ номеров 400 и 401 (т.е. П и U) в регистры РОН RO и R1. Команды используют непосредственную адресацию.
Программа представлена в табл. 11.
Таблица 11 – Команды адресации
Метки |
КО |
Операнды |
PC |
Команда |
|
1 слово |
2 слово |
||||
МО |
MOV |
#400, RO |
500 |
012700 |
000400 |
|
MOV |
#401, R1 |
504 |
012701 |
000401 |
|
SUB |
R1, R0 |
508 |
160100 |
|
|
BNE |
МО |
510 |
000722 |
(т.е. Е=-6) |
|
HALT |
|
512 |
000000 |
|
Третья команда SUB и блок 4 определяют разность П-U с записью результата в RO. Команда использует регистровую адресацию.
Четвертая команда BNE - условный переход, если результат (содержимое RO) не равен 0. Если условие выполнено, программа переходит на начало, к метке МО, т.е. на шесть слов назад (в кодах команды BNE: 001000-000006=000772). Величина перехода определяется как сумма машинных слов от кода команды перехода (включая его) по начальное слово команды, к которой производится переход, или по формуле Рснач=Рскон+2байтаЕ), где РСнач и РСкон - начальное и конечное содержимое PC, т.е. 500=510+2Е, откуда Е=12 байт или шесть слов.
Если условие не выполнено (1=0), выполняется следующая команда HALT - останов, конец программы. Счетчик команд PC получает приращение в два байта, если команда занимает одно машинное слово, и в четыре байта - если два машинных слова.
Прямая адресация используется, если все данные (операнды) расположены в ячейках памяти. Ассемблер микроЭВМ «Электроника-60» располагает развитой системой способов прямой, а также косвенной адресации. Способы отличаются как объемом используемой памяти, так и скоростью обмена данными. Прямая адресация в Ассемблере реализуется пятью способами: абсолютной, относительной, автоинкрементной, автодекрементной и индексной адресациями.
При абсолютной прямой адресации команда имеет вид:
КО @#К, @#К, где К - номера ячеек в памяти, или в кодах:
1-е слово 2-е слово 3-е слово
КО 37 37 , К К
где 37 - код абсолютной адресации.
Пример.
1-е слово 2-е слово 3-е слово
MOV @ # 676, @ # 672 или 013737 000676 000672
т.е. переслать операнд ячейки ОЗУ номер 676 в ячейку номер 672, или в кодах: первое слово - КО = 01, S = 37, D = 37 (т.е. адресация абсолютная), второе слово - 000676 - номер абсолютного адреса первого операнда, третье слово - 000672 номер абсолютного адреса второго операнда. Таким образом, команда занимает в памяти ЭВМ три машинных слова.
Составим программу (табл.12) суммирования импульсов, поступающих от датчика перемещения стола фрезерного станка с ЧПУ по какой-либо координате. Переход каждого импульса соответствует перемещению стола на один элементарный шаг (дискрету). При этом используем абсолютную адресацию. Алгоритм приведен на рисунке 32.
Рисунок 32. Алгоритм расчета перемещения стола станка с ЧПУ
Распределение памяти:
№ 500=П - заданное перемещение стола станка;
№ 501=AL - ячейка памяти, в которую поступают от датчика импульсы перемещения;
№ 502=L
- текущее перемещение стола,
,
начальное значение ячейки
- 0;
№ 503=0 - служебная ячейка, в которую записывается ноль;
№ 400=РС - начальный адрес.
В первой и второй командах (блок 2 алгоритма) сравнивается состояние ячейки 501 с нулем ячейки 503. Если импульс перемещения пришел, программа переходит к третьей команде, если нет - опять проверяет поступление импульса от датчика. По третьей команде импульсы складываются и накапливаются в ячейке 502 (блок 3), по четвертой (блок 4) - их сумма L сравнивается с конечным значением перемещения П, если ПL (команда 5), счет продолжается (возврат к метке Ml), если нет - останов.
Таблица 12
Метки |
КО |
Операнды |
PC |
Команда |
||
1-е слово |
2-е слово |
3-е слово |
||||
Ml: |
СМР |
@#501, @#503 |
400 |
023737 |
000501 |
000503 |
|
BEQ |
Ml |
406 |
001375 |
(т.е. E=-38) |
|
|
ADD |
@#501, @#502 |
408 |
063737 |
000501 |
000502 |
|
СМР |
@#500, @#502 |
414 |
023737 |
000500 |
000502 |
|
BGT |
Ml |
420 |
002765 |
(т.е. Е=-1110 = -138) |
|
|
HALT |
|
422 |
000000 |
|
|
В команде 5 величина Е должна вычисляться в восьмеричной системе счисления, так как необходимо вернуться на 11 слов назад к метке Ml, а в восьмеричной системе 1110=138, тогда для кода команды BGT (исходный код 003000) получим 0030008 - 0000138 = 002765.
Относительная адресация названа так потому, что в ней вместо абсолютных адресов используются их приращения относительно значения PC, т.е. адрес операнда формируется сложением значения PC и приращения адреса. Команда с относительной адресацией имеет вид
КО К, К, где К - обозначения операндов (в кодах - приращения их адресов или в кодах)
1-е слово 2-е слово 3-е слово
КО 67 67 К К
Приращения указываются в команде на месте второго и третьего слов (S и D), причем для определения их значений необходимо учесть, что после считывания очередного слова команды содержимое PC автоматически увеличивается на 2 (указывает, какое слово считывается следующим).
Пример.
Первые три команды программы (рис. 32) в относительной адресации запишутся как (табл. 13):
Таблица 13
Метки |
|
Операнды |
|
Команда |
||
1-е слово |
2-е слово |
3-е слово |
||||
Ml: |
CMP |
L, Ф |
400 |
026767 |
000097 |
000097 |
|
BEQ |
Ml |
406 |
001375 |
|
|
|
ADD |
L, L |
408 |
636767 |
000089 |
000088 |
Первая команда сформирована следующим образом:
- в 1-м слове 026767 код 02 означает операцию сравнения (см. табл. 10), коды 67 на позициях операндов S и D указывают на относительную адресацию в команде;
- 2-е слово (операнд S), т.е. приращение, рассчитывается по правилу: текущее значение РС==400 после считывания первого слова PC станет равным 402, после считывания приращения операнда AL значение PC будет равным 404. Так как операнд L записан по адресу 501, то величина приращения должна быть 501 - 404 = 97, т.е. 2-е слово имеет вид 000097;
- 3-е слово (операнд D) формируется аналогично: значение PC после его считывания составит 406, следовательно, приращение равно 503 - 406 = 97.
Для третьей команды получим: приращение L = 501 - 412 = 89, приращение L = 502 - 414 = 88.
Относительная адресация облегчает написание мнемокодовой части программы, так как в ней используются обозначения переменных, а не их адреса, но усложняет написание кодовой части.
Команда с автоинкрементной адресацией имеет вид:
КО (RM)+, или в кодах: КО 2М.
После считывания операнда (RM)+ содержимое регистра R с номером М (т.е. RM) автоматически наращивается на 1 при операциях с байтами и на 2 при операциях со словами.
Пример.
MOV (R5)+, R1 или в кодах: 012501, т.е. выбрать адрес операнда из R5, затем содержимое R1 увеличивается на 2, или в кодах: 01 = КО MOV, 25 = 2М, 01 + R1.
Команда с автодекрементной адресацией имеет вид КО - (RM), Или в кодах: КО 4М, при ее выполнении сначала уменьшается содержимое РОН RM (на 1 при операциях с байтами и на 2 при операциях go словами), а затем считывается операнд.
Пример.
СМР R5, - (R1) или 020541, т.е. сравнить содержимое РОН R5 содержимым РОН R1 после его уменьшения на 2 байта.
Команды с автоинкрементной и автодекрементной адресациями используются при обработке массивов, организации стековой памяти счетчиков циклов.
Команда с индексной адресацией имеет вид:
КО К (RM), S или в кодах: К06МК, применяется для обработки массивов, при этом содержимое RM является индексом, т.е. изменяемой частью адреса, константа К - базовым адресом, исполнительный адрес равен сумме содержимого R1 и константы К. S является операндом-источником. Индексная адресация удобна при обращении к массивам и таблицам. Они объединяют функции ряда команд с командами INC (прибавление 1) и DEC (вычитание 1), повышая тем самым быстродействие работы программы и уменьшая объем занимаемой ею памяти. Вместе с командами INC и DEC в циклических программах часто применяется команда SOB (счет циклов в РОН), которая должна быть последней в программе. Если число циклов РОН равно 0, счет прекращается, если нет - происходит возврат к началу цикла (не более чем на 63 слова назад).
Косвенная адресация характерна тем, что в команде указывается не операнд или адрес памяти с операндом, а код регистра, в который помещен адрес операнда. Косвенную адресацию можно разделить на косвенно-регистровую, косвенно-автоинкрементную, косвенно-автодекрементную, косвенно-индексную и косвенно-относительную.
Косвенно-регистровая адресация в командах записывается как:
КО @ RM или КО (RM), в кодах: КО 1М.
Пример.
MOV @ Rl, @RO или 011110
СМР (RO), (R1) или 021011
Таблица 14 – Адресация в командах
Метки |
КО |
Операнды |
PC |
Команда |
|
1-е слово. |
2-е слово |
||||
|
MOV |
#540, RO |
400 |
012700 |
000540 |
|
MOV |
#538, Rl |
404 |
012701 |
000539 |
|
MOV |
#40, R2 |
408 |
012702 |
000040 |
|
BR |
МО |
412 |
000402 |
|
М2: |
СМР |
@RO, -(Rl) |
414 |
021041 |
|
|
BGT |
Ml |
416 |
003001 |
|
М0: |
MOV |
@R1, @R2 |
418 |
011110 |
|
Ml: |
SOB |
R2, M2 |
420 |
077204 |
|
|
HALT |
|
422 |
000000 |
|
Рисунок 33 – Алгоритм поиска наибольшего элемента массива
Рассмотрим программу (табл. 14) поиска наибольшего элемента массива с использованием автодекрементной, косвенно-регистровой адресации и команды SOB. Алгоритм показан на рисунке 33. Распределение памяти:
Массив А (40) занимает ячейки с номера 500 по номер 539;
540 - ячейка памяти результата;
RO - РОН результата;
R1 = 539 - адрес ячейки последнего элемента массива А (40);
R2 = 40 - размерность массива (количество элементов);
PC = 400 - начальное значение PC.
В программе Команда 7 написана с косвенно-регистровой адресацией, команда 5 сочетает косвенно-регистровую и автодекрементную адресации. В ней сравниваются значения ячеек текущего массива с адресом, меньшим на 2 байта.