- •Лабораторная работа №1
- •Справочные данные.
- •Задание на выполнение лабораторной работы.
- •Лабораторная работа №2
- •Справочные данные
- •Система ветвления
- •Арифметические операции
- •Лабораторная работа №3
- •Справочные данные
- •Лабораторная работа №4
- •Справочные данные Описание модуля интерфейса mdpif1-0 (midicontrol)
- •Аппаратное квитирование
- •Программное квитирование
- •Структура посылки
- •Возможные сообщения об ошибках
- •Ошибка кадровой синхронизации
- •Ошибка превышения темпа
- •Программные операции
- •Инициализация
- •Пример инициализации
- •Регистр состояния
- •Замечание: Для tty биты 5и 6 не определены. Регистр данных
- •Передача символа
- •Прием символа
- •Лабораторная работа №5
- •Справочные данные
- •Команды для работы с индексным регистром
- •Лабораторная работа №6
- •Справочные данные
Прием символа
Оценка бита 3 в регистре состояния определяет, получен ли символ. Если этот бит есть 1, то символ был получен. Биты 0..2 регистра состояния указывают, есть ли в принятой посылке ошибка (ошибки четности, превышения темпа или кадровой синхронизации). Если установлен один из указанных ошибочных битов, полученный символ содержит ошибку. Однако необходимо прочитать регистр данных в случае ошибки, поскольку это может помочь при определении природы возникновения ошибки.
LDAB STATUS регистр состояния
BITB # % 00001000 символ получен?
BEQ NO ветвление, если не получен
LDAA DATA регистр данных
BITB # % 00000111 ошибка передачи?
BNE FAIL переход на процедуру оценки ошибки передачи полученного символа
FAIL : процедура оценки ошибки передачи полученного символа
Задание на выполнение лабораторной работы
Соедините два ПЛК шлейфом асинхронного последовательного канала. Составьте две программы для осуществления односторонней передачи данных между ними. ПЛК - передатчик, получая данные через цифровые входы, упаковывает их в байты и пересылает их ПЛК - приемнику, который осуществляет распаковку полученной информации и передает ее на цифровые выходы. Обратите внимание на поддерживаемый интерфейс (RS 232 или TTY) и возможность аппаратного квитирования.
Содержание отчета
Цель работы.
Текст программы с комментариями.
Выводы по работе.
Лабораторная работа №5
Цель работы
Ознакомиться с редактором таблиц TAB. Изучить методы программирования с использованием индексного регистра.
Справочные данные
Таблицы данных. Редактор TAB
Таблицы данных — это записи данных, к которым может иметь доступ любая часть прикладной программы. Ввод данных производится с помощью удобного в работе редактора таблиц данных. В одной таблице (и даже в пределах одной строки таблицы) можно комбинировать различные форматы чисел: десятичный (специальная характеристика перед числом отсутствует); шестнадцатеричный ($); двоичный (%); ASCI-строка должна быть заключена в кавычки.
Между отдельными величинами необходимо ставить запятые.
Таблицы являются компонентами прикладной программы и хранятся в защищенном от сбоев электропитания ЗУ прикладной программы.
Вызов редактора TAB: [F5 TAB] <TNAME> [Enter].
С определением имени: |
На экран выводится существующая или вновь определенная таблица данных. |
Без определения имени: |
Вызывается последняя обработанная TAB или выдается сообщение об ошибке, если имя по умолчанию не определено. |
Команды для работы с индексным регистром
Х-16 битовый регистр, используется в качестве указателя на любую ячейку памяти.
LDX# |
MX |
Загрузить константу в Х, т.е. поместить указатель на определенной позиции в памяти. Иначе, загрузить Х адресом М. |
LDX |
(M:M+1)X |
Загрузить содержимое памяти в Х |
LDXL |
MX |
Загрузить в Х метку с адресом M |
STX |
X(M:M+1) |
Сохранить содержимое Х в памяти |
XGDX |
DX |
Обмен данными между аккумулятором D и индексным регистром Х |
ABX |
B+XX |
В Х записывается значение Х, увеличенное на величину В |
INX |
X+1X |
Увеличение Х на 1 |
DEX |
X-1X |
Уменьшение Х на 1 |
CPX# |
X-M |
Сравнение X с адресом ячейки памяти |
CPX |
X-(M:M+1) |
Сравнение X с содержимым ячейки памяти |
Доступ к данным возможен с использованием индексной адресации:
Например:
LDX# R 0150 установить индексный регистр на ячейку памяти R0150
LDAA X 000 загрузить содержимое R0150 в А
LDAA X 002 загрузить содержимое R0152 в А
Значения 000 и 002, стоящие после предварительного выбора адреса X, – это константы смещения, которые добавляются к индексному регистру перед выполнением команды. Максимальное смещение равно 255.
Применение индексного регистра дает большое преимущество при обработке расположенных последовательно адресных областей.
Вызов таблицы осуществляется как вызов процедуры:
Например:
JSR T NAME Инициализировать таблицу с именем NAME,
при этом Х будет указывать на первый элемент таблицы, а в аккумуляторе В будет храниться число элементов таблицы.
Если число элементов таблицы не превышает 240, то размером таблицы данных загружается аккумулятор В, в противном случае - аккумулятор D.
Команду ABX удобно использовать для выборочного считывания определенного символа из таблицы данных.
Например, необходимо прочитать 5-й символ из таблицы и записать его в R100:
JSR TEXT Индексный регистр установится на начало таблицы
(аккумулятор В будет загружен числом элементов таблицы)
LDAB # 004 Загрузка В константой 4
ABX Добавить В к Х и сохранить в Х
LDAA X 000 Загрузить в А 5-й элемент
STAA R 100 Сохранить символ в R100
Очень часто необходимо выполнять какие-либо действия по положительному или отрицательному фронту сигнала, в STL обнаружение фронта осуществляется следующим образом:
Обнаружение положительного фронта:
LDAA N I xxx Загрузить в аккумулятор сигнал
PRS F 010 Установить флаг 010, если младший бит А=1
EORA F 010 Если был фронт, то А=1
RST F 010 Сбросить флаг 010, если младший бит А=1
Обнаружение отрицательного фронта:
LDAA I xxx Загрузить в аккумулятор сигнал
PRS F 010 Установить флаг 010, если младший бит А=1
EORA F 010 Если был фронт, то А=1
RST F 010 Сбросить флаг 010, если младший бит А=1
Замечание. Если в программе необходимо обнаружить несколько фронтов, то для каждого необходимо использовать различный промежуточный флаг.
Задание на выполнение лабораторной работы
Создать в редакторе TAB таблицу, которая моделирует переходный процесс произвольно взятого объекта (взять примерно 30 точек). Каждому следующему элементу таблицы соответствует значение на выходе моделируемого объекта.
По оси Х отложено время, по другой оси – значение выхода объекта.
Создать программу, в которой моделируется объект, заданный в таблице. По положительному фронту, поступающему с модуля ввода дискретных сигналов, объект запускается, и выход объекта последовательно считывается из таблицы, записывается в каком-либо регистре и отображается в окне отладчика.
Содержание отчета
Цель работы.
Рисунок переходного процесса.
Таблица данных.
Объяснить принцип обнаружения фронтов.
Текст программы с комментариями.
Выводы по работе.