Курс: Интерфейсы вычислительных систем

Внимание! Для выполнения Лаб.N2 во время дистанта, необходимо установить Pascal (Free Pascal).
Инструкция по скачиванию и установке Free Pascal и материалы по программированию на языке Pascal.

Для проверки работы программ к Лаб.N2 нужно в папку со своей программой положить файл модуля эмуляции работы CAMAC (только для Free Pascal): camac.pas (текстовый), camac.pas (сетевой с визуализацией), camac.pas (без CRT).
При работе модуля эмулятора при правильном программировании соответствующих модулей на экран будут выводиться результаты: для Модуля Двоично-десятичного счетчика Сч 6-2/10И (Preset Scaler - PS) - отображаемое на индикаторе значение, а для Модуля управления шаговым двигателем (МУШД) - будет отображаться на экране текущее положение шагового двигателя (в цикле или при непрерывном вращении должно наблюдаться движение).
При использовании эмулятора нужно учесть что в эмуляторе Модуль Двоично-десятичного Счетчика Сч 6-2/10И (Preset Scaler - PS) расположен в станции как на Рис.1 в Лаб.N1, а Модуль управления шаговым двигателем (МУШД) как на Рис.2 в Лаб.N2.

Задания к лабораторным работам по курсу Интерфейсы вычислительных систем.

       Для выполнения лабораторных работ и заданий необходимо посмотреть лекции, скачать и прочитать методические указания к лабораторным работам с модульной системой КАМАК (файл: Lab_asni_24_01_2014m.doc).

       Лаб.N1. Работа с модульной системой КАМАК в ручном режиме.

Crate CAMAC Manual Controller
Рис.1

Прочитать описание по модулям: Ручной контроллер (MD-140), Генератор слов на шины записи (232А) и Магистральный индикатор (типа 08I).

      1) Работа с модулем Двоично-десятичный счетчик Сч 6-2/10И (Preset Scaler - PS) в ручном режиме.
Прочитать описание, посмотреть характеристики и список команд модуля Счетчик Сч 6-2/10И. Разработать алгоритм для установки на индикаторе Счетчика числа 999999 и переполнения счетчика (добавлением в счетчик 1) в ручном режиме, с помощью Ручного контроллера (MD-140) и Генератора слов (232А). С помощью команд для данного модуля выяснить произошло ли переполнение счетчика.

      2) Работа с модулем Цифро-аналоговый преобразователь ЦАП (2ЦАП10 - DA) в ручном режиме.
Прочитать описание, посмотреть характеристики и список команд модуля ЦАП. Рассчитать код и разработать алгоритм для установки напряжения на соответствующем выходе ЦАП в ручном режиме, с помощью Ручного контроллера (MD-140) и Генератора слов (232А) (напряжение указывается преподавателем или отмечено на kompot.petrsu.ru).

      3) Работа с модулем Аналогово-цифровой преобразователь (АЦП-14 - ADC-14) в ручном режиме.
Прочитать описание, посмотреть характеристики и список команд модуля АЦП. Разработать алгоритм для регистрации напряжения поданного на вход АЦП с выхода ЦАП (которое установлено на нем в предыдущем задании 2, в ручном режиме, с помощью Ручного контроллера (MD-140) и Магистрального индикатора (типа 08I). В результате сравнить 3 напряжения: 1 - указанное напряжение в задании 2, 2 - напряжение измеренное вольтметром на выходе модуля ЦАП, 3 - напряжение зарегистрированное с помощью модуля АЦП.

       Лаб.N2. Работа с модульной системой КАМАК в программном режиме.

      1) Работа с модулем Двоично-десятичный счетчик Сч 6-2/10И (Preset Scaler - PS) в программном режиме.
Прочитать описание, посмотреть характеристики и список команд модуля Счетчик Сч 6-2/10И. Разработать алгоритм для установки на индикаторе Счетчика числа 999999 и переполнения счетчика (добавлением в счетчик 1) в программном режиме с компьютера, посредством программы (на языке Pascal или C++), с использованием библиотеки CAMAC (описание библиотеки на стр.49-50). С помощью команд для данного модуля выяснить произошло ли переполнение Счетчика.

      2) Работа с модулем Модуль управления шаговым двигателем (МУШД) в программном режиме.

Manual Dataway Controller CAMAC
Рис.2

Прочитать описание, посмотреть характеристики и список команд модуля МУШД. Разработать алгоритм управления вращением шагового двигателя, в прямом и обратном направлении в программном режиме с компьютера, посредством программы (на языке Pascal или C++), с использованием библиотеки CAMAC (описание библиотеки на стр.49-50). Для управления вращением двигателя выполнять команды с шагом 1 и периодом 1, сделать указанное количество шагов (дается преподавателем или указано на kompot.petrsu.ru) посредством повторения команды поворота в цикле, при этом каждый следующий шаг необходимо выполнять только после завершения предыдущего, т.е. после выставления модулем МУШД - L-запроса. Потом выполнить вращение с тем же количеством шагов в обратном направлении. Затем запустить двигатель в режиме непрерывного вращения.

      3) Изучение модуля "Синхронизатор-таймер С/Т-1" (стр.36 - ЗАДАНИЕ 7. Lab_asni_24_01_2014m.doc).
Написать программу выполняющую отсчет времени (задержку) 200 мс, по выставлению этим модулем L-запроса.

      4) Изучение модуля "Регистр Запросов 305" (Input Register 305). Модуль предназначен для приема информации от внешних устройств. Если подается сигнал - логическая 1 - на один из его 24 входов, т.е., если этот вход соединяется с корпусом, то в соответствующий разряд входного регистра записывается "1".
      Прочитав затем число, записанное в регистре, можно узнать, на какие именно контакты поступил сигнал, т.е. какие именно внешние устройства сработали (например, какие концевые выключатели замкнулись).
      На передней панели модуля "Регистр Запросов 305" находится 2 разъема с 37 контактами (REG 1 и REG 2) - они пронумерованы. Контакты 1-24 соответствуют разрядам входного регистра. Контакт 37 - "земля". Остальные свободны.
Модуль управляется командами:
A(0)F(0) - чтение состояния регистра 0 соответствующего сигналам на разъеме REG 1.
A(1)F(0) - чтение состояния регистра 1 соответствующего сигналам на разъеме REG 2.

       Лаб.N3. Элементы спектроскопического эксперимента. Работа с модулями, изученными в Лаб.N2.
Этапы эксперимента:
1.выйти на 0 позицию;
   - на спектроскопической установке переместиться до замыкания концевика Синей области (по шкале спектрометра Справа (Right End), сам концевик находится Слева);
   - отойти от Синего концевика (по шкале спектрометра Справа (Right End), сам концевик находится Слева) до размыкания;
2.выйти на начало диапазона регистрации (на шаг 8000 шагового двигателя), в сторону Красной области (по шкале спектрометра Влево, сам концевик со стороны Красной области находится Справа);
3.произвести измерения от шага 8000 до 13000 (для этого с помощью Счетчика необходимо подсчитать количество импульсов (на каждом шаге) за время 200 мс, приходящих с выхода Output (по импульсу вниз) с модуля Single Channel Analyzer 1202). Для отсчета времени использовать модуль: Синхронизатор-таймер С/Т-1.
4.Результаты измерений необходимо записать в файл. Для сопоставления шага с реальными длинами волн использовать файл: G600_2XP.TXT (в файле шаги от 0 до 19325).

       Лаб.N4. Работа с модулем Двоично-десятичный счетчик Сч 6-2/10И (Preset Scaler - PS) в программном режиме через порты.
Прочитать описание к Лабораторной работе 5. ИЗУЧЕНИЕ КОНТРОЛЛЕРА КРЕЙТА КАМАК на стр.45-47 (только до заданий к лабораторным работам). Посмотреть лекции. Посмотреть характеристики и список команд модуля. Разработать алгоритм для установки на индикаторе счетчика числа 999999 и переполнения счетчика (добавлением в счетчик 1) в программном режиме с компьютера, посредством программы (на языке Pascal или C++), через порты (без использования библиотеки CAMAC). С помощью команд для данного модуля выяснить произошло ли переполнение счетчика. Все порты 8-ми битные. Для обращения к портам использовать команду: Port[PortNumber] (где PortNumber - номер порта), команда работает на чтение и на запись, таким образом можно читать и записывать данные в порт. Базовым адресом крейта считать 64.

       Лаб.N5. Программирование LPT-порта (Lab_N5_LPT.doc).
Для обращения к порту использовать команду: Port[PortNumber] (где PortNumber - номер порта), команда работает на чтение и на запись, таким образом можно читать и записывать данные в порт.

       Лаб.N6. Работа с модульной системой PXI (Lab_N6_PXI.doc). Порядок выполнения Лабораторной работы с модульной системой PXI описан в файле: Lab_N6_PXI_Sequence.docx.

       Лаб.N7. Программирование UART на Arduino (Lab_N7_UART.doc).

       Требования к отчетам.
      По каждой работе необходимо подготовить и распечатать (или написать от руки) отчет (на период дистанционного обучения, возможно, отчеты будут приниматься дистанционно, либо потребуется их отправлять на проверку на почту e-mail). В отчете должны быть:
- титульный лист, с указанием названия Лабораторной работы и списка исполнителей;
- приведено задание к Лабораторной работе и вариант работы;
- представлены все используемые модули, оборудование, приборы и материалы в конкретной Лабораторной работе, приведено их описание, характеристики и команды;
- приведено описание/алгоритм работы с модулями, оборудованием и т.д., приведено описание используемых команд, адресация и порядок действий при работе (например в Ручном режиме или алгоритм работы программы при управлении в Программном режиме (а также текст самой программы);
- приведена реакция модулей/оборудования на выполнение команд, показания контрольных приборов и действия оборудования, которым они управляют;
- приведены описание работы с программой (порядок действий) и результаты работы программы (что выводит на экран);
- приведены все необходимые расчеты и результаты;
- в конце отчета проанализировать результаты и сделать выводы по лабораторной работе.

      Внимание! В предоставляемых отчетах не должно быть НИКАКОЙ информации скопированной откуда либо, никакие части из методички или других источников (даже технические характеристики). Можете писать, своими словами, все необходимые для лабораторной работы характеристики, набивать ручками и не все подряд, а только то, что считаете нужным, также описывайте все действия, которые конкретно вы делали при выполнении лабораторной работы, но одинаковых отчетов быть не должно ни при каких условиях (ни полностью, ни каких-то совпадающих частей).
      Это же касается алгоритмов и программ они тоже должны отличаться и при этом конечно же работать.
      Также, в отчетах не должно быть описания модулей или команд, которые в вашей работе не использовались.