Програми для ручного керування крейтом CAMAC

ЛАБОРАТОРНА РОБОТА №1

ВИВЧЕННЯ РОБОТИ СИСТЕМИ CAMAC

ПІД КЕРУВАННЯМ РУЧНОГО КОНТРОЛЕРА.

Мета роботи: ознайомитись з ручним контролером крейту типу 140 та з роботою крейту САМАС під його керуванням.

Обладнання: крейт САМАС, ручний контролер крейту типу 140.

1.Загальний опис MDS-140.

Ручний контролер крейту типу 140 призначений для іспиту та контролю правильності дії функціональних блоків CAMAC, приєднаних до магістралі крейту. Він також може використовуватись для запуску та перевірки роботи цифрових систем CAMAC. Він забезпечує генерування на магістраль одиничної командиCAMAC, а також сигналів безадресних операцій, що встановлюються маніпуляторами, розташованими на передній панелі блоку.

Генерування команд може здійснюватися в одному з трьох режимів роботи:

RUN CONTINOUS - безперервне генерування,

SINGLE TRANSFER - генерування одного циклу,

SINGLE STEP - крокове генерування циклу.

Блок забезпечує прийняття сигналів з магістралі, які складають відповідь або запит керованого блока, що сигналізуються оптичними індикаторами.

2.Основнi технічні дані

2.1.1.Сигнали магістралі

Команди САМАС

Блок забезпечує ручне встановлення команд, які складаються з таких сигналів:

- номера поста ( адреси ) N,

- внутрішньої адреси (субадреси) А,

- коду функції F.

 

Сигнали стану

Ручний контролер крейту сигналізує стан шини Q. Якщо Q=L, загоряється електролюмінесцентний діод на передній панелі. Стан шини Х перевіряється на протязі стробуючогоімпульсу S1 (загоряння сигналізатора, який позначено Х) і запам’ятовується в блоці. Для XS1=0 робота блока припиняється після закінчення даного циклу команд, про що сигналізується світлодіодом “STOP”. Перемикачем Х OFF можна відключити шину Х магістралі від блока, подаючи одночасно на запам’ятовуючу сигнал Х схему сигнал, що відповідає стану X=1. Блок сигналізує оптично (світлодіодом L) логічну суму сигналів запита LAM (стан лінії L1-L18).

Сигнали загального керування

Блок забезпечує генерування сигналів загального керування, що встановлюються за допомогою клавіш, які розташовані на передній панелі. Це слідуючі сигнали: скид С, заборона I, скид на нуль Z.

 

Манiпулятори

1-18N - забезпечує вибір номерів постів блоків, по яким команди адресуються під час циклу на магістралі.

X OFF - забезпечує від’єднання контролера від шини Х магістралі і постійну подачу Х (ПРИЙМАННЯ КОМАНДИ)стану “I” в середині блока.

EXT OSC - забезпечує керування блоком з зовнішнього генератора, який приєднаний до розніму EXT OSC.

SUB ADDRESS A 1,2,4,8- забезпечує вибір внутрішньої адреси (субадреси) виконавчого блока.

FUNCTION 1,2,4,8,16- забезпечує вибір коду функції, яку повинен виконати адресований блок.

С - забезпечує генерування сигналу скиду на магістраль. Він визначає стан шини С СКИД магістралі. Якщо встановлено стан “I”, то вибрана команда NAF не генерується на магістраль.

Z – забезпечує генерування сигналу СКИД НА НУЛЬ на шині Z ЗАБОРОНА магістралі. Якщо встановлено стан “I”, то вибрані команди NAF та С блокуються.

SINGLE STEP - дозволяє генерувати вибрану команду САМАС крок за кроком, причому крок забезпечується кожен раз шляхом натискання клавіші EXEC.

SINGLE TRANSFER - дозволяє генерувати одну вибрану команду САМАС шляхом натискання клавіші EXEC.

RUN - дозволяє генерувати вибрану команду САМАС на магістраль в безперервному режимі.

CLEAR - дозволяє зупинити генерування команди САМАС i встановити блок в вихідне положення.

2.1.3. Оптичні індикатори

RUN - сигналізує стан генерування блоком команди САМАС, або стан вихідного положення.

В - сигналізує появу сигналу ЗАЙНЯТО на магістралі.

NAF - сигналізує, що сигнали номера посту блоків N, внутрішньої адреси (субадреси) А і коду функції F знаходяться на магістралі.

S1 - сигналізує імпульс стробу S1 на магістралі.

S2 - сигналізує імпульс стробу S2 на магістралі.

С - сигналізує наявність сигналу скидання на магістралі.

Z - сигналізує появу сигналу СКИДАННЯ НА НУЛЬ на магістралі.

I - сигналізує появу сигналу ЗАБОРОНА на магістралі.

X - сигналізує наявність сигналу НАДХОДЖЕННЯ КОМАНДИ під час S1.Сигналізація утримується до моменту переходу схеми в вихідний стан.

Q - сигналізує наявність сигналу ВIДПОВIДЬ.

L - сигналізує логічну суму сигналів ЗАПИТУ блоків на магістралі.

STOP - сигналізує припинення генерування наступного циклу САМАС у випадку відсутності сигналу Х (НАДХОДЖЕННЯ КОМАНДИ) під час S1.

2.1.4.Зовнiшнi розніми

TRIGGER OUT - генерує позитивний сигнал на початку команди САМАС, призначений для синхронізаціїї.

EXT OSC - дозволяє керувати блоком з зовнішнього генератора позитивними імпульсами.

EXT TRIGGER - дозволяє запускати цикл САМАС з зовнішнього генератора сигналом з рівнем TTL з метою забезпечення різної тривалості повторення циклу САМАС.

 

Хід роботи

1. Встановити в крейт на станцію 25 ручний контролер типу 140 i на любі станції індикатор магістралі ФК440, генератор 730В та ручний генератор слова ФК446.

2. Набрати на панелі РК140 адресу одного з модулів, адресу субмодуля та команду, що може виконуватись для цього модуля, наприклад, команду читання F1 для ручного генератора слова.

3. Перевести РК140 в режим покрокового генерування команди САМАС, натиснувши спочатку клавішу CLEAR, а потім STEP.

4. Натискаючи клавішу EXEC, спостерігати на індикаторах контролера та на індикаторі магістралі появу сигналів NAF, B, Q, X, S1, S2, а також зміст набраного на модулі ФК446 слова. Повторити цикл САМАС кілька разів, змінюючи набране слово.

5. Повторити дії п.4 при різних положеннях перемикача MEMORY ON/OFF індикатора магістралі. Пояснити відмінності, що спостерігаються.

6. Повторити дії п.4, набравши замість команди F1 команду F16. Пояснити відмінності, що спостерігаються.

7. Повторити дії п.4, набравши в якості команд спочатку С, потім I, потім Z. Спостерігаючи за індикаторами модулів ФК440, ФК446 та 730В, уяснити зміст перелічених загальних керуючих безадресних команд. Визначити момент виконання команд по відношенню до стробімпульсів.

8. Результати роботи оформити у вигляді звіту.

Контрольні запитання

1. Що уявляє собою магістраль САМАС?

2. Як проводиться адресація модулів?

3.Чому виставлену на магістраль команду F(і) виконує тільки один адресований модуль?

4. Як звернутися до модуля не маючи в крейтi контролера?

5. Для чого призначено ручний контролер крейту?

6. В яких випадках зручно використовувати режими Single Step, Single Transfer, Run?

 

 

ЛАБОРАТОРНА РОБОТА№2

ВИВЧЕННЯ РОБОТИ СИСТЕМИ САМАС-ПЕОМ

ПIД КЕРУВАННЯМ ПРОГРАМИ

“РУЧНИЙ КОНТРОЛЕР”

 

Мета роботи: ознайомитись з контролером крейту мікрокомп’ютерним та з роботою крейту САМАС під керуванням програм – імітаторів ручного контролеру.

Обладнання: крейт САМАС, контролер крейту мікрокомп’ютерний, IBM-сумісна ПЕОМ .

 

КОНТРОЛЕР КРЕЙТА МIКРОКОМП`ЮТЕРНИЙ

Призначення

Контролер крейту мікрокомп`ютерний (ККМ) призначений для зв`язку експериментального обладнання з персональною ЕОМ типу IBM PC/XT/AT для створення автоматизованих робочих місць.

ККМ використовується в системах автоматизації збирання та обробки інформаціїї, виконаних в стандарті САМАС.

 

2. Технічні характеристики

ККМ може функціювати як в якості основного, так і в якості додаткового контролера. ККМ може забезпечувати керування крейтом САМАС, що вміщує до 23 змінних модулів. ККМ має паралельний інтерфейс, котрий можна узгодити з іншими 8-ми або 16-ти розрядними мікропроцесорами. ККМ має режим прямого доступу до пам’яті та має швидкість обміну даних по цьому каналу до 700 кб/с. Забезпечення доступу до модулів САМАС з боку ЕОМ відбувається як звернення до п’ятнадцяти восьмирозрядних регістрів ККМ в діапазоні незайнятих адрес ПЕОМ.

Регістри 0,..., 6 доступні тільки для запису. Вони призначені для збереження даних, адрес, субадрес модулів САМАС, виконуваних функцій, керуючих сигналів. Регістри 8..., С тільки читаються. Ці регістри використовуються для збереження зчитаних даних, результатів X та Q останньої операції, біжучого стану LAM -сигналів і статусу ККМ.

Звернення до регістру 7 викликає цикл САМАС.

3.Будова та принцип дії

На лицевій панелі ККМ розташовано рознім для підключення до інтерфейсної карти, перемикач ON/OF, перемикач DISPLAY CLEAR/DATA WAY CLEAR, рознім “REQEST”, “GRANT IN”, “GRANT OUT” та світлодіоди.

Ряд світлодіодів L16…L1 індикують двоїчний код найбільш пріоритетної станції CAMAC, яка виробляє сигнал LAM. Індикація може змінюватися в любий момент часу згідно зі зміною LAM сигналів.

Станція 1 має найвищій пріоритет.

Світлодіод “В” – сигнал, що виробляється під час виконання останньої операції на магістралі САМАС.

Світлодіод “АСС” – індикує, що контролер перемкнуто в режим додаткового контролера.

Ряд світлодіодів №16…№1 – індикують двоїчний код номера станциї, до якої відбувалось останнє звернення.

Світлодіод “D” – спалахує на 0.5 сек при виконанні циклу CAMAC, а при частоті виконання циклів більш ніж 2 Гц - горить безперервно.

На задній панелі розташовано рознім додаткової магістралі, який призначено для зв’язку основного та додаткових ККМ в складі одного крейту.

 

Програми для ручного керування крейтом CAMAC

Програми MCC (Manual Crate-Controller) та RMC (Resident Manual Controller) призначені для керування CAMAC-обладнанням в ручному режимі при налагоджуванні обладнання та вiдлагодженнiпрограмного забезпечення.

Програми дозволяють задавати та виконувати окремі команди з відображенням результатів виконання (даних та статусної інформаціїї), а також організувати цикли мінімальної тривалості з окремих команд для роботи з осцилографом при пошуку несправностей в обладнанні.

Програми оформлені аналогічно з використанням системи меню, призначення розділів меню зрозуміло з їх назв.

Програма МСС має два меню, одне з яких призначено для роботи з модулями САМАС на рівні САМАС-команд, друге меню забезпечує можливість звернення до окремих регістрів крейт-контролера.

Програма RMC після завантаження стає резидентною i може бути активована натисканням сполучення клавіш Ctrl+Right Shift+C, що зручно при вiдлагодженнi програм , які працюють з САМАС-обладнанням. Вигрузити програму RMC можна натиснувши клавіші Ctrl+Right Shift+U. Програма RMC має тільки меню для роботи з модулями САМАС.

 

Хід роботи

1.Встановити в крейт на станцію 25 контролер крейта мікрокомп’ютерний, з’єднати його з ПЕОМ.

2.Встановити в крейт ЦАП ФК70, індикатор магістралі ФК440 та ручний генератор слова ФК446. Наявність інших модулів в крейті не критична. 3.Запустити програму MCCRUS. EXE.

4.Користуючись меню роботи з модулями САМАС, набрати номер станції, на якій установлено модуль ФК446, та команду F0 або F2(читання слова, що генерується ФК446).

5.Запустити команду на виконання одноразово (пункт Т меню) або циклічно (пункт О меню), спостерігати на дисплеї в нижньому рядку вікна значення прочитаного за командою результату R, а також значення X, Q, L. Порівняти значення, що спостерігають, з показами індикатора магістралі, а також з набраним на ФК446 словом.

6.Спостерiгати значення R при циклічному виконанні команди, змінюючи значення набраного на ФК446 слова.

7. Вибрати пункт R меню, перейти в меню роботи з регістрами. Порівняти значення старшого, середнього та молодшого байтів (пункти 3, 2, 1 меню) зі значенням результату R в попередньому меню.

8. Проглянути по черзі вміст регістрів О - С контролера (пункт С меню).

9. Використовуючи пункти H, M, L меню, ввести значення старшого, середнього та молодшого байтів слова, яке може бути записане в відповідні регістри функціональних модулів.

10. Вибрати пункт меню U, повернутися в меню роботи з модулями. Прочитати в рядку W значення слова, порівняти його зі змістом рядків H, M, L меню роботи з регістрами.

11. Набрати команду F16, спробувати виконати запис слова в модуль F446. Зчитати значення R, X, Q, пояснити отриманий результат.

12. Повторити дії п. 11, попередньо переадресуватикоманду модулю ФК-7О. Пояснити отриманий результат.

13. Вийти з програми MCCRUS.EXE (пункт Q).

14. Запустити програму RMCRUS.EXE та повторити завдання (за виключенням роботи з регістрами).

15. Результати роботи оформити у вигляді звіту.

 

Контрольні запитання

1. Для чого призначені програми MCCRUS.EXE та RMCRUS.EXE ?

Їх можливості?

2. В чому відмінність цих програм?

3. Як, використовуючи MCCRUS.EXE та RMCRUS.EXE , визначити, які модулі вимагають обслуговування?

4. Як записати в регістр модуля число 75?

5. Що означають данні $1С2А, що зчитані з шини R?

 

ЛАБОРАТОРНА РОБОТА №3

ВИВЧЕННЯ РОБОТИ СИСТЕМИ САМАС - ПЕОМ ПIД КЕРУВАННЯМ НАЙПРОСТIШИХПРОГРАМ КОРИСТУВАЧА

Мета роботи: ознайомитись з роботою крейту САМАС під керуванням найпростіших програм та навчитись самостійно їх складать.

Обладнання: крейт САМАС з функціональними модулями, контролер крейту мікрокомп’ютерний, IBM-сумісна ПЕОМ з відповідним програмним забезпеченням.

Бібліотека BROCAMAC процедур та функцій для роботи з крейт - контролером PC - САМАС мовою Turbo Pascal

Бібліотека вміщує набір універсальних процедур та функцій, достатній для програмування більшості прикладних задач, які використовують звернення до обладнання САМАС через крейт - контролер РС - САМАС.

Процедури та функціїї, які занесені до бібліотеки, написані на асемблері. Як прототип використовується пакет процедур фірми DSP Technology Corporation.

Процедури та функціїї оптимізовано по швидкості виконання порівняно з прототипом, доповнено вбудованим режимом трасування та можливістю зміни базовоїї адреси без перекомпіляціїї.

Бібліотека оформлена у вигляді модуля з ім’ям BROCAMAC. Для її використання необхідно на початку програми внести ім’я цього модуля в список модулів, що використовуються, після ключового слова USES.

 

Опис процедур та функцій

При описі процедур та функцій використовуються слідуючи позначення:

А - субадреса САМАС;

В - базовий номер порту крейт-контролера;

С - номер активного крейта;

D - дані САМАС;

F - функціїї САМАС;

N - номер станції CАМАC.

 

Процедура CamBase

Дія: Змінює базовий номер порту крейт-контролера.

Декларація: CamBase(B:byte);

Примітки:

Базовий номер порту крейт-контролера за умовчанням- $3А, що відповідаєє діапазону адрес $3AO...$3AF в адресному просторі вводу-виводу IBM PC. Вибрана базова адреса не повинна бути зайнята іншими пристроями IBM PC, і повинна бути однозначна відповідність між адресою, яка задається в цій процедурі, та встановленою на адресних перемикачах інтерфейсної карти контролера.

Наприклад:

CamBase($10); {Встановити для регістрів контролера}

{діапазон адрес $100...$10F}

 

Процедура CamCrate

Дія: Змінює номер активного крейта.

Декларація: CamCrate(C:byte);

Примітки:

До одної інтерфейсної карти може бути підключено до 4 крейтів. Звернення буде проводитись до активного в даний момент крейта. За умовчанням, якщо даною процедурою не вибрано друге значення, - активний крейт1. Значення параметра С повинно бути в діапазоні 1...4.

Наприклад:

CamCrate(3); {Встановити активним крейт 3}.

Процедура Cam

Дія: Виконує на магістралі САМАС команду керування.

Декларація: Cam(N, A, F: byte);

Примітки:

Хоча процедура призначена для виконання команд керування (F8:11, дані не використовуються), її можна використовувати і для виконання команд запису або читання, але при цьому записуються дані, які збереглися в регістрах контролера від попередньої операції, а дані, що зчитуються, ігноруються.

Наприклад:

var

SubAddr,Func:byte;

сonst

ADC=16;

begin

For SubAddr: =0 to 15 do For Func : =0 to 32 do

begin

Write(’Субадрес ’, SubAddr:2,’. функція’, Func);

Cam(ADC , SubAddr , Func);

If CamX then Writeln( ’. X=1 ’)

else Writeln( ’ . X=0 ’)

end;

end.

В цьому прикладі для модуля ADC, що встановлено в крейті на станції з номером 16, скануються всі субадреси та функціїї та перевіряється значення відгуку Х.

 

Процедура Cam0

Дія: Виконує на магістралі САМАС команду запису САМАС з 16-розрядними даними.

Декларація: Cam0(N,A,F:byte; D:word);

Наприклад:

Cam0(1,0,16,$FFFF);

Записує за командою F(16) всі одиниці в 16-розрядний регістр з субадресою 0 в модулі, що встановлений на станцiї 1.

Процедура Cam024

Дія: Виконує на магістралі САМАС команду запису з 24-розрядними даними.

Декларація: Cam024(N,A,F:byte; D:LongInt);

Примітки:

Старший байт 32-розрядних даних не використовується.

 

Наприклад:

Cam024(1,0,16,$FFFFFF);

Записує за командою F(16) всі одиниці в 16-розрядний регістр з субадресою 0 в модулі, що встановлений на станції 1.

 

Процедура CamCI

Дія: Записує байт в порт керування контролера.

Декларація: CamCI(I:byte);

Примітки:

Значення окремих бітів порту керування:

¦ x ¦ AX4 ¦ AX3 ¦ AX2 ¦ AX1 ¦ I ¦ C ¦ Z ¦

Значення, що найчастіше вживаються: I, C, Z оголошені в модулі BROCAMAC, більш докладніше призначення бітів порту керування описано в документації на крейт-контролер.

Наприклад:

СamCI(C+Z);

Викликає виконання операцій С та Z на магістралі САМАС.

 

Функція CamI

Дія: Виконує на магістралі САМАС операції читання 16-розрядних даних.

Декларація: CamI(N,A,F: byte):word;

Тип результату: 16-розрядне слово (word),

Примітки:

Якщо регістр модуля САМАС 24-розрядний, то старший байт буде втрачено.

Наприклад:

var

Data:word;

begin

Data:=CamI(1,0,0);

end.

Зчитує за командою F(0) дані з 16-розрядного регістру з субадресою 0 модуля, який встановлено на станції 1, та присвоює зчитане значення змінній Data.

Функція CamI24

Дія Виконує на магістралі САМАС операції читання 24-розрядних даних.

Декларація: CamI24(N,A,F:byte):LongInt;

Тип результату: 32-розрядне довге ціле (long integer).

Примітки:

Старшому байту 32-розрядного довгого цілого надається значення 0.

Наприклад:

var

Data:LongInt;

begin

Data:=CamI24(1,0,0);

end.

Зчитує за командою А(0) дані з 24-розрядного регістру з субадресою 0 модуля, який встановлено на станції 1, та надає зчитане значення змінній Data.

 

Функція CamL

Дія: Виконує читання регістру запитів крейт-контролера.

Декларація: CamL:byte;

Тип результату: Байт з наступними значеннями окремих бітів.

¦ х ¦ х ¦ ~L ¦ L16 ¦ L8 ¦ L4 ¦ L2 ¦ L1¦

¦ _____________________

¦ ¦

¦ ¦двоїчний код номера станції, яка

¦ ¦ генерує найбільш пріоритетний запит

¦ —————————

¦ інвертоване значення логічного АБО всіх запитів

——————————————————————

Примітки: Станція 1 має найвищий пріоритет, ~L=0, якщо в крейті є встановлений хоча б один запит. Біти 6...7 - не використовуються.

Наприклад:

If (CamL and $20)=0 then (виконати будь-що);

Виконати деякі дії, якщо в крейті є запит.

 

Функція CamQ

Дія: Повертає значення Q попередньої операції.

Декларація: CamQ;Boolean;

Тип результату: Логічний (Boolean).

Наприклад:

const ADC:byte=1; {АЦП встановлено на станції 1}

begin

Cam(ADC,0,25); {Запустити перетворення}

{Цикл очікування готовності АЦП}

Repeat

Cam(ADC,0,27); {Перевірка стану}

until CamQ; {Перевірка Q}

{Зчитати результат перетворення}

(...)

end.

 

Функція CamX

Дія: Повертає значення Х попередньої операції.

Декларація: CamX:Boolean;

Тип результату: Логічний (Boolean).

Наприклад:

Див. Саm.

 

Процедура CamStep

Дія: Встановити режим трасування по САМАС-командам.

Декларація: CamStep;

Примітки:

Після виконання цієї процедури всі наступні звернення до модуля САМАС будуть викликати призупинення виконання програм до натискання клавіші з відображенням на моніторі операції та її результату.

 

Наприклад:

Begin (Будь-які операції)

CamStep; (встановити режим трасування)

(операції САМАС та інші)

CamNStep; {відмінити режим трасування}

(Будь-які операції)

end.

 

Процедура СamNStep

Дія: Відмінити режим трасування по САМАС-командам.

Декларація: CamNStep;

Наприклад:

Див. CamStep;

Хід роботи

1. Вивчити опис бібліотеки BROCAMAC.

2. Встановити в крейт з мікрокомп’ютерним контролером будь-який функціональний модуль (АЦП, ЦАП).

3. Ввести в ПЕОМ програму сканування функцій та субадрес модуля з перевіркою значення відгуку Х (процедура Cam бібліотеки) мовою Turbo Pascal.

4. Запустити програму, отримати таблицю значень відгуку Х для різних субадрес та функцій. Занести її в зошит, проаналізувати результат.

5. Скласти самостійно програму, яка читає дані з будь-якого модуля (наприклад, ручного генератора слова) і результат виводить на дисплей.

6. Запустити складену програму, домогтися її правильної роботи.

7. Результати роботи оформити у вигляді звіту.

 

Контрольні завдання

1. Скласти програму перевірки L-запитів на обслуговування всіх модулів крейту з виводом на екран результатів.

2. Скласти програму-таймер, яка використовує генератор імпульсів (що видає L-запит при переповненні), і яка через 10 сек виводить на екран поточне значення часу. Оцінити похибку такого таймера за 1 год.

 

ЛАБОРАТОРНА РОБОТА №4