
- •Сибирский государственный аэрокосмический
- •© Сибирский государственный аэрокосмический университет имени академика м. Ф. Решетнева, 2005
- •Оглавление
- •2. Программирование лабораторных стендов на базе
- •Введение
- •1. Программирование и разработка систем автоматического управления на базе контроллеров рк5100
- •1.1. Основной состав программируемых контроллеров рк5100
- •Основные типы применяемых модулей озу (мозу), вставляемых в центральное гнездо модуля центрального процессора для ввода и отладки еще не отлаженной программы следующие (в скобках указан объем памяти):
- •Основные типы применяемых модулей пзу (мпзу), вставляемых в центральное гнездо модуля центрального процессора, для работы с отлаженной программой, следующие (в скобках указан объем памяти):
- •Примечание: в каркасах пк0-пк1, на месте 0 стоит модуль расширения
- •1.2. Виды систем исчисления контроллеров рк5100 Связь между десятичной d10, двоичной d2, восьмеричной d8 и шестнадцатеричной d16 системами исчисления показана в табл. 1.1.
- •Виды систем исчисления контроллеров рк5100
- •1.3. Структура памяти контроллеров рк5100
- •1.4. Система команд контроллеров рк5100
- •Список инструкций контроллера рк5100
- •Выходная инструкция «Переместить файл в модуль»:
- •[Унс{000…177}] (Номер сектора, если файл а не в 0 – странице),
- •Выходная инструкция. «Переместить из модуля в файл» :
- •Прс{0000…1777} (Нач. Адрес файла а из 0 – страницы),
- •Выходная инструкция. «Читать слово из файла»:
- •[Унс{000…177}] (Номер сектора, если файл а не в 0 – странице),
- •Выходная инструкция. «Записать слово в файл»:
- •Выходная инструкция. «Переместить файл»:
- •1.5. Пограммирование модулей ввода-вывода дискретных сигналов постоянного тока контроллера рк5100
- •1.6. Программирование модуля вывода непрерывных сигналов постоянного тока контроллера рк5100
- •1.7. Программирование модуля ввода непрерывных сигналов постоянного тока контроллера рк5100
- •1.8. Программирование модуля ввода импульсных сигналов контроллера рк5100
- •Формат регистра счетчиков каналов 1-2
- •Формат уставок
- •1.9. Основные положения по разработке дипломных и курсовых проектов на базе контроллеров рк5100
- •Листинг программы на ркс:
- •2. Программирование лабораторных стендов на базе контроллеров рк5100
- •2.1. Лабораторная работа по программированию стенда «управления конвейерной линией»
- •2.1.1. Теоретические основы программирования
- •2.2.2 Варианты лабораторных работ Вариант 1
- •Вариант2
- •Вариант3
- •Вариант4
- •Вариант5
- •Вариант6
- •Вариант7
- •Вариант8
- •Вариант9
- •Вариант10
- •Вариант11
- •Вариант12
- •Вариант13
- •Вариант14
- •Вариант15
- •Вариант16
- •Вариант17
- •Вариант18
- •Вариант19
- •Вариант20
- •Вариант21
- •2.1.3. Порядок выполнения лабораторной работы
- •2.2. Лабораторная работа по программированию стенда «управления температурой нагревателя»
- •2.2.1 Теоретические основы программирования
- •2.2.2 Варианты лабораторных работ
- •2.2.3. Порядок выполнения лабораторной работы
- •2.3. Лабораторная работа по программированию стенда «управления током нагрузки»
- •2.3.1 Теоретические основы программирования
- •2.3.2 Варианты лабораторных работ
- •2.3.3. Порядок выполнения лабораторной работы
- •Заключение
- •Библиографический список
- •Приложения Приложение 1 Структура памяти контроллера рк5100 для адресов 0000-0037
- •Приложение 2 Структура памяти контроллера рк5100 для адресов 0040-0077
- •Приложение 3 Структура памяти контроллера рк5100 для адресов 0100-0137
- •Приложение 4 Структура памяти контроллера рк5100 для адресов 0140-0337
- •Приложение 5 Структура памяти контроллера рк5100 для адресов 0400-10017
- •Приложение 6 Структура памяти контроллера рк5100 для адресов 10020-17777
- •Приложение 7 Структура памяти контроллера рк5100 для адресов 20000-77777
- •Приложение 8
- •Приложение 9
- •Приложение 10
- •Приложение 11
- •Приложение 12
- •Приложение 13
- •660014, Г. Красноярск, просп. Им. Газ. «Красноярский рабочий», 31.
Выходная инструкция «Переместить файл в модуль»:
ПФМ {000…377} (Асчф – адрес счетчика файла А),
[Унс{000…177}] (Номер сектора, если файл а не в 0 – странице),
ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы.),
ПРС MPYZ (Нач. адрес памяти модуля: М = 0…7 – место модуля.
NK = 0…3 – номер каркаса; P = X+2 NK;
XYZ = 000 … 177 – нач. адрес памяти модуля).
ПРК LLLL – длина файла А,
ПРК VVVV – число перемещаемых слов файла А за скан.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то файла А из таблицы данных перемещается в память модуля, после перемещения включается 16 бит слова, на котором запущен счетчик файла Асчф.
Выходная инструкция. «Переместить из модуля в файл» :
ПМФ {000…377} (Асчф – адрес счетчика файла А),
Прс{0000…1777} (Нач. Адрес файла а из 0 – страницы),
ПРС MPYZ (Нач. адрес памяти модуля: М = 0…7– место модуля).
NK = 0…3–номер каркаса; P = X + 2 NK;
XYZ = 000…177 – нач. адрес памяти модуля.)
ПРК LLLL – длина файла А,
ПРК VVVV – число перемещаемых слов файла А за скан.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то файл из модуля перемещается в файла А таблицы данных, после перемещения включается 16 бит слова, на котором запущен счетчик файла Асчф.
Выходная инструкция. «Читать слово из файла»:
ЧСФ {000…377} (Асчф – адрес счетчика файла А),
[Унс{000…177}] (Номер сектора, если файл а не в 0 – странице),
ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы),
ПРС{0000…1777} (АС – Адрес слова),
ПРК LLLL – длина файла А.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то файл А из таблицы данных перемещается в память по адресу слова АС и включается 16 бит слова, на котором запущен счетчик файла Асчф, после перемещения всего файла А длинной LLLL, начиная с адреса АС.
Выходная инструкция. «Записать слово в файл»:
ЗСФ {000…377} (Асчф – адрес счетчика файла А),
ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы),
ПРС{0000…1777} (АС – Адрес слова),
ПРК LLLL – длина файла А.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то из массива по адресу АС в файла А переноситься LLLL слов и включается 16 бит слова, на котором запущен счетчик файла Асчф, после перемещения LLLL слов.
Выходная инструкция. «Переместить файл»:
ПФФ {000…377} (Асчф – адрес счетчика ),
ПРС{0000…1777} (Нач. адрес файла А ),
ПРС{0000…1777} (Нач. адрес файла В ),
ПРК LLLL – длина L файла А,.
ПРК VVVV – скорость перемещения V.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то VVVV слов за один скан перемещается из файла А в файл В и включается 16 бит слова, на котором запущен счетчик , после перемещения LLLL слов файла А.
Выходная инструкция «Читать из регистра»:
ЧТР NKМР ЧТР{000…377} (NK = 0….3 – номер каркаса; М = 0…7–место модуля, модуля, P = 0…7 – номер регистра модуля).
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то содержимое регистра модуля переносится в аккумулятор.
Выходная инструкция «Записать в регистр»:
ЗПР NKМР ЗПР {000…377}. (NK = 0…3 – номер каркаса; М = 0…7–место модуля, P = 0…7 – номер регистра модуля).
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то содержимое аккумулятора переносится в регистр модуля.
Выходная инструкция «Сбросить слово»:
СБС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то содержимое слова по адресу (000…377) сбрасывается.
Выходная инструкция «Чтение слова»:
ЧТС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то содержимое слова по адресу (000…377) записывается в аккумулятор.
Выходная инструкция «Запись слова»:
ЗПС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то аккумулятор записывается в содержимое слова по адресу (000…377).
Выходная инструкция «Поразрядно умножить слово»:
ПУС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то аккумулятор логически умножается на содержимое слова по адресу (000…377), а результат записывается в аккумулятор.
Выходная инструкция «Поразрядно сравнить слово»:
ПСС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то аккумулятор суммируется по модулю 2 с инверсным содержимым слова по адресу (000…377), а результат записывается в аккумулятор.
Выходная инструкция «Записать байт младший»:
ЗБМ{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то младший байт аккумулятора записывается в младший байт слова по адресу (000…377).
Выходная инструкция «Записать байт старший»:
ЗБС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то младший байт аккумулятора записывается в старший байт слова по адресу (000…377).
Выходная инструкция «Читать байт младший»:
ЧБМ{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то младший байт слова по адресу (000…377) записывается в младший байт аккумулятора (в старший байт аккумулятора заносятся нули).
Выходная инструкция «Читать байт старший»:
ЧБС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то старший байт слова по адресу (000…377) записывается в младший байт аккумулятора (в старший байт аккумулятора заносятся нули).
Выходная инструкция «Обменять байтами»:
ПББ{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то старший байт слова по адресу (000…377) и младший байт слова по адресу (000…377) меняются местами.
Выходная инструкция «Сдвиг циклически влево к старшим битам»:
СЦС {000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то слово по адресу (000…377) сдвигается на один разряд влево к старшим битами, а 17 бит при сдвиге заносится в 0 разряд.
Выходная инструкция «Сдвиг циклически вправо к младшим битам»:
СЦМ {000….377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то слово по адресу (000…377) сдвигается на один разряд вправо к младшим битами, а 0 бит при сдвиге заносится в 17 разряд.
Выходная инструкция «Сложить арифметически слово»:
САС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то аккумулятор арифметически складывается с содержимым слова по адресу (000…377), а результат записывается в аккумулятор, если результат больше числа 4 095, то устанавливается 14 бит аккумулятора.
Выходная инструкция «Вычесть арифметически слово»:
ВАС{000…377}.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и = 1), то из аккумулятора арифметически вычитается содержимое слова по адресу (000…377), а результат записывается в аккумулятор, если результат меньше нуля, то устанавливается 14 бит аккумулятора.
Выходная инструкция «Счетчик циклов»:
СЧЦ{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777} / ПРК КККК.
Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (и =1), то в каждом скане содержимое по адресу счетчика (Асчф) увеличивается на единицу и при достижении уставки, заданной в ПРС…или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф.
Выходная инструкция «Счетчик на сложение»:
СЧС{000…377} (Асчф – адрес счетчика).
ПРС{0000…7777}/ПРК КККК.
Если предшествующий набор входных инструкций создает условия перехода из нулевого состояния в единичное, то содержимое по адресу счетчика (Асчф) увеличивается на единицу и при достижении уставки, заданной в ПРС…или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 15 счетчика включается, когда на входе счетчика условия цепи истинны, а 14 бит включается, когда число, накопленное по адресу счетчика Асчф, превысит значение 4095.
Выходная инструкция «Счетчик на вычитание»:
СЧВ{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Если предшествующий набор входных инструкций создает условия перехода из нулевого состояния в единичное, то содержимое по адресу счетчика (Асчф) уменьшается на единицу и если счетчик начинает работу, когда накопленное значение меньше уставки, заданной в ПРС… или в ПРК…, то 16 бит адреса счетчика (Асчф) устанавливается в единицу после достижения уставки, если наоборот, то 16 бит адреса счетчика (Асчф) устанавливается в единицу после обнуления счетчика, после чего устанавливается 14 бит и счетчик начинает считать с числа 4095. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны.
Выходная инструкция «Таймер с задержкой на включение десятичный »:
Д – дискрета 0,1с,
ТВД{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Выходная инструкция. «Таймер с задержкой на включение секундный »:
С – дискрета 1с.
ТВС{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Если предшествующий набор входных инструкций создает условия «истинности» на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны, 15 бит счетчика отражает дискрету счета. Если условия истинности на входе счетчика пропадут, то счетчик автоматически сбрасывается.
Выходная инструкция. «Таймер накапливающий десятичный »:
Д – дискрета 0,1с.
ТНД(000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК ККК.
Выходная инструкция. «Таймер накапливающий секундный »:
С – дискрета 1с.
ТНС{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Если предшествующий набор входных инструкций создает условия истинности на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету счета (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны, 15 бит счетчика отражает дискрету счета. Если условия истинности на входе счетчика пропадут, то счетчик не сбрасывается и сохраняет накопленное значение даже при потере питания, то есть, он измеряет суммарное время истинного состояния цепи.
Выходная инструкция. «Таймер с задержкой на отключение десятичный »:
Д – дискрета 0,1с.
ТОД{000…377} (Асчф – адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Выходная инструкция. «Таймер с задержкой на отключение секундный »:
С – дискрета 1с.
ТОС{000…377} (Асчф–адрес счетчика),
ПРС{0000…7777}/ПРК КККК.
Если предшествующий набор входных инструкций создает ложные условия на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету счета (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи ложны, 15 бит счетчика отражает дискрету счета. Если ложные условия на входе счетчика пропадут, то счетчик не сбрасывается и сохраняет накопленное значение даже при потере питания, то есть, он измеряет суммарное время ложного состояния цепи.