- •Оглавление
- •Лекция № 1 Введение в проблемы построения автоматизированных систем.
- •Основные вопросы курса:
- •1.1. Функциональные компоненты, необходимые для построения автоматизированного комплекса.
- •1.2. Особенности проектирования и основные требования к автоматизированным системам для научных исследований (асни).
- •1.3. Принципы построения автоматизированных систем.
- •Лекция №2 Средства управления объектами автоматизации.
- •2.1. Архитектурные возможности эвм.
- •Центральный процессор
- •Основные регистры процессора эвм семейства Macintosh.
- •Основные регистры процессора эвм семейства ibm pc.
- •2.2. Основная память.
- •Форматы представления чисел в озу.
- •2.3. Каналы ввода-вывода информации.
- •Общая структура магистрали эвм
- •Передача информации по системной магистрали
- •Вывод данных Ввод данных
- •Лекция №3 Принципы организации обмена данными между эвм и внешними устройствами.
- •3.1 Режимы обмена данными
- •3.2 Безусловная передача данных.
- •Лекция №4 Техническая реализация усо в эвм семейства ibm и методика управления обменом.
- •Карта регистров усо
- •4.1. Программные средства реализации безусловного обмена данными в среде BorlandPascal
- •4.2. Обмен данными между эвм и ву по готовности ву
- •4.2.1. Функциональная схема интерфейса ввода данных в эвм по готовности ву.
- •Техническая реализация интерфейса в ас на основе эвм семейства ibmpc
- •Лекция №5 Технические характеристики ацп, усилитель, мультиплексор.
- •5.1 Программная модель интерфейса
- •5.2 Алгоритм одноканальных измерений входного сигнала
- •5.3. Методика управления и оценки состояния внешних устройств
- •5.4. Проверка, установка, сброс отдельных разрядов регистра ву
- •Лекция №6 Обмен данными между эвм и внешними устройствами с прерыванием текущей программы.
- •6.1 Принцип организации обмена данными
- •6.2 Алгоритм обслуживания ву с прерыванием.
- •1. Опрос ву.
- •3. Комбинированный способ идентификации ву.
- •6.3 Блок-схема алгоритма обслуживания ву с прерыванием.
- •6.4 Механизм приоритетов. Вложенные прерывания.
- •6.5 Принципы построения интерфейса обмена данных с прерыванием программы.
- •6.6 Техническая реализация интерфейса обмена данными с прерыванием программы.
- •1. Приоритетная цепочка:
- •2. Реализация многоуровневых вп в эвм семейства ibm.
- •Технические характеристики бис Intel 8259a.
- •6.7 Программируемые режимы обслуживания ву.
- •6.8 Схема включения пкп к системной шине ву.
- •6.9 Аппаратные прерывания в порядке их приоритетов и назначения.
- •6.12 Схема каскадирования контроллеров прерывания.
- •Методика программирования контроллера прерываний.
- •6.13 Программирование пкп в процессе обслуживания ву и работы системы.
- •6.14 Методика программирования обмена данными с прерыванием программы.
- •6.15 Реализация методики обмена данными с прерыванием программы между в эвм в автоматизированных системах на основе эвм семейства ibm pc в средеBorland Pascal. Установка вп.
- •6.16 Техническая реализация обмена данными с прерыванием программы.
- •6.17 Категории прерываний эвм семейства ibmpc.
- •Основные черты программных прерываний.
- •Краткий обзор функций bios.
- •Лекция №7. Программируемые интервальные таймеры-счетчики (пит).
- •7.1 Схема включения пит к автоматизированной системе (ас).
- •Карта программно доступных регистров пит
- •7.2 Состав и назначение регистров каналов.
- •7.3 Формат регистров таймера.
- •7.3 Режимы работы таймера.
- •1 Группа.
- •2 Группа.
- •3 Группа.
- •7.4 Методика программирования таймера.
- •1. Инициализация пит.
- •2. Чтение текущего содержимого ce.
- •7.5 Синхронизация операций реального времени. Системный таймер эвм семейства ibmpcIntel8254.
- •7.6 Реализация методики программирования таймера в среде BorlandPascal.
- •7.7 Пит Intel 8253 на интерфейсной плате l-154.
- •7.8 Многоканальное измерение сигналов.
- •Лекция №8 Автоматизированные системы на основе стандартных магистрально-модульных интерфейсов.
- •Лекция №9 Интерфейс камак (camac).
- •9.1 Конструктивная совместимость элементов системы.
- •9.2 Магистраль крейта камак.
- •9.3 Пространственно-временные диаграммы на магистрали крейта.
- •9.4 Виды и назначение адресных операций на магистрали крейта.
- •Операции интерфейса камак
- •Лекция №10 Технические средства на основе интерфейса камак. Модули интерфейса камак.
- •10.1 Схемы формирования статусных сигналов.
- •10.2 Управляющие модули камак.
- •Управляющая часть кк.
- •10.3 Программная модель кк типа ккп3 для эвм семейства ibmpc.
- •10.4 Методика управления контроллером крейта и модулями камак.
- •10.5 Методика построения программного обеспечения в ас на основе унифицированных магистрально-модульных интерфейсных систем.
- •Лекция №11 Разработка интерфейсно-ориентированной библиотеки процедур для управления крейтом камак.
- •Лекция №12 Методика контроля состояния модулей в интерфейсе камак.
- •Лекция№13 Компоненты ас на основе интерфейса камак.
- •13.1 Разработка схемы прибора генератора с заданными амплитудно-частотными характеристиками.
- •13.2 Измерение временных параметров импульсных сигналов.
- •13.3 Схема соединения модулей.
- •Программная реализация алгоритма измерения частоты fвх или периода Tвх.
- •Программная реализация алгоритма измерения длительности одиночного импульса.
- •13.4 Реализация прерываний от модуля камак в автоматизированных системах.
- •Лекция №14 Обмен данными между эвм и ву в режиме пдп.
- •14.1 Алгоритм обмена в режиме пдп.
- •14.2 Программная модель интерфейса ву и кпдп (минимальная конфигурация).
- •Программная модель кпдп.
- •Методика запуска обмена данными по каналу пдп.
- •14.3 Реализация пдп в эвм на основе единого магистрального канала.
- •14.4 Реализация пдп в эвм на основе изолированного магистрального канала.
- •14.5 Назначение каналов контроллера пдп и адреса регистров страниц.
- •Лекция №15 Функциональный состав и программная модель кпдп.
- •15.1 Блок управления.
- •15.2 Каналы контроллера пдп.
- •15.3 Каскадирование контроллеров пдп.
- •Лекция №16 Методика программирования контроллера пдп.
- •Лекция№17 Реализация пдп в ас на основе камак.
- •17.1 Алгоритм выполнения кк операции пдп.
10.5 Методика построения программного обеспечения в ас на основе унифицированных магистрально-модульных интерфейсных систем.
Программное обеспечение (ПО) разделяется на категории:
1. ПО для управления объектом, сбора данных в реальном времени.
2. Средства обработки, преставления, документирования информации, уровни:
Аппаратно-ориентированное ПОдолжно содержать набор управления контроллером или адаптером.
Должно обеспечить прием и передачу данных по магистрали интерфейса в соответствии с протоколом обмена данными интерфейсной системы, также должно обеспечить установку в “1” или сброс в “0” данных линий управления интерфейсом, чтение статусных линий магистрали интерфейса.
Адаптеры:
С преимущественно программной реализацией функции управления;
С преимущественно аппаратной реализацией функции управления.
Интерфейсно-ориентированное ПОдолжно содержать набор процедур, обеспечивающих управление любым элементом системы. Основным вопросом является определение состава процедур, обеспечивающих все возможности интерфейса.
От разработчика требуется знание интерфейса системы. Международная электротехническая компания IECвыработала рекомендации для интерфейса КАМАКIEC-713.
Приборно-ориентированное ПОдолжно содержать набор процедур для управления определенными типами интерфейсных приборов.
Интегрированная среда разработчика.
Позволяет построить систему, программу управления сбора данных и разработать графический интерфейс пользователя.
Пример: LabVIEW, LabWindows CVI, LookOut, BridgeVIEW.
Лекция №11 Разработка интерфейсно-ориентированной библиотеки процедур для управления крейтом камак.
Библиотека разрабатывается в соответствии со стандартом IEC-713.
UnitKKP3;
Interface
{Инициализация КК}
ProcedureCCInit(c:integer); {c– номер крейта в диапазоне 1-4}
{Безадресные операции в крейте}
ProcedureCCCZ(c:integer); {ОперацияZ}
Procedure CCCC (c: integer); {Операция C}
Procedure CCCI (c: integer, I: boolean); {Установка (true) / Сброс (false) сигнала запрет I на магистрали}
{Адресные операции на магистрали}
Function CFSA (F, c, N, A: integer, var D: longint, var Q:integer): Boolean; {F(k), k=0÷31 – можно выполнить любую адресную операцию; c(i), i=1÷4; N(j), j=1÷23; A(m), m=0÷15; Q – 0/1, статусный сигнал; D – 24-разрядные данные; CFSA=true, если модуль возвратил X, иначе false}
Function CSSA (F, c, N, A: integer, var D:word, var Q:integer): Boolean; {Такая же функция, как и CFSA, но для 16-разрядных операций}
ProcedureCTGL(c:integer,varL:integer); {Чтение регистра состояния, возвращение вL}
FunctionHex(Date:longint); {Возвращает значениеDateв шестнадцатеричный формат}
Implementation
Const BA=$240; {Базовый адрес КК}
ConstK=? {Здесь нужно указать задержку на время выполнения операции на магистрали крейта}
{Аппаратно-ориентированное ПО}
ProcedureCAMACcikl; {Запрещает КАМАК-цикл в выбранном крейте и организует задержку ≈1 мкс}
Var i: integer;
Begin
Port[BA+7]:=$FF;
For i=0 to K do; End;
Procedure crate(i: integer); {Выбор крейта}
Begin
Dec(c);
Port[BA+$F]:=(c and 3) shl 4; End;
{Вспомогательные процедуры}
Function Hex (Date: longint): string;
Const H: array [0..15] of char = ‘0 1 2 3 4 5 6 7 8 9 A B C D E F’
var D:longint;
Begin
D:=Date;
Hex:=’$’ + H[(D shr 20) and $F] + H[(D shr 16) and $F] + H[(D shr 12) and $F] + H[(D shr 8) and $F] + H[(D shr 4) and $F] + H[D and $F]; {Переменную D сдвигаем на 20 разрядов, оставляем 4 старших}
Function CFSA(F, c, N, A: integer; var D:longint; var Q:integer): boolean;
Var WP: array [0..3] of byte absolute D;
{Переменные расположатся
D | |||
Wp[3] |
Wp[2] |
Wp[1] |
Wp[0] |
|
0 |
1 |
2 |
|
9 |
Ah |
Bh |
}
Begin
Crate(c);
Port[BA+3]:=A;Port[BA+7]:=F;Port[BA+5]:=N; {Можно выполнять в произвольном порядке}
If F in [16..23] then
Begin
Port[BA+2]:=Wp[2]; Port[BA+1]:=Wp[1]; Port[BA]:=Wp[0];
End;
{Запускаем КАМАК-цикл}
CAMACcikl;
Q:=Port[BA+$8] and 1;
CFSA:=(Port[BA+8] and 2)<>0;
If F in [0..7] then
Begin
Wp[0]:=port[BA+$B]; Wp[1]:=port[BA+$A]; Wp[2]:=port[BA+9]; Wp[3]:=0;
End;
Function CSSA(F, c, N, A: integer; var D:word; var Q:integer): boolean;
Var WP: array [0..3] of byte absolute D;
Begin
Crate(c);
Port[BA+3]:=A; Port[BA+7]:=F; Port[BA+5]:=N;
If F in [16..23] then
Begin
Port[BA+2]:=Wp[2]; Port[BA+1]:=Wp[1]; Port[BA]:=Wp[0];
End;
CAMACcikl;
Q:=Port[BA+$8] and 1;
CFSA:=(Port[BA+8] and 2)<>0;
If F in [0..7] then
Begin
Wp[0]:=port[BA+$B]; Wp[1]:=port[BA+$A]; Wp[2]:=port[BA+9]; Wp[3]:=0;
End;
Procedure CTGL(c: integer, var L: integer);
Begin
Crate(c);
L:=port[BA+8];
If (L and $80)=0 then L:=2 shr 2 else L:=0;
End;
End.