Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки до виконання розрахункової р...doc
Скачиваний:
2
Добавлен:
14.08.2019
Размер:
329.22 Кб
Скачать

2. Формалізація завдання автомата.

Автомати зазвичай створюють для керування роботою різних технічних об’єктів: виконуючих механізмів, приводів, електронних пристроїв і аж до цілих ЦОМ включно. В цій ролі автомати називають програмними датчиками, генераторами керуючих сигналів, пристроями управління.. Керуючу дію на об’єкт мають виходи автомату . На входи автомату поступають команди оператора (або іншого автомату), сигнали, що описують оточуючі обставини, сигнали про ситуації, що виникають в об’єкті якими керуємо. Автомат проєктується під конкретний об’єкт з його конкретним алгоритмом управління, і складність проектування автомату – саме в його нестандартності. Завдання на автомат спочатку робиться в словесній формі закону управління, зазвичай перший варіант завдання виявляється дуже неповним, що допускає навіть неоднозначне трактування. Тому спочатку завдання потрібно формалізувати. В процесі подальшої роботи, завдання уточнюється, виправляється. Щоб з цим справитись, розробник або сам повинен добре знати умови роботи об’єкту, або мати на етапі формалізації тісний контакт з замовником. Проблеми узгодження завдання в повній мірі викладені в [ 2]. Щоб проілюструвати характер виникаючих питань при синтезі автомата, процедуру синтеза розглянемо на прикладі простого об’єкту з добре зрозумілим алгоритмом і умовами роботи [1].

Завдання. Спроектувати схему кодового замка Au дверей кімнати. Електромагніт Е повинен відкривати двері після почергового натискання двох з десяти кнопок, а саме 1 і 3. В загальному випадку обидві цифри мають відрізнятися. У вихідне положення об”єкт повертається одиничним рівнем сигналу , що подається з контакту Кд при відкриванні дверей. Це і є первинне, словесне, інтуїтивно зрозуміле завдання, яке сприймається як достатньо повне при формулюванні опису роботи автомата. Автомат дуже простий, і його схему можна було б побудувати на інтуїтивному рівні без будь-якої методики. Це корисно спробувати зробити, а пізніше порівняти затрати часу, схему, а особливо – кількість помилок і недоробок з результатом роботи за рекомендованою методикою. Буде добре видно, на яких етапах методика допомагає інтуїції навіть у випадку дуже простого завдання.

Пристрій, який проектуємо, не може бути комбінаційноюм схемою. Це повинен бути автомат, поскільки на один і той самий вхідний сигнал, наприклад на натискання кнопки 3, схема повинна реагувати по-різному: як на неправильний сигнал, якщо це перше натискання, як на правильний, якщо перед цим була натиснута кнопка 1 і ніяк не реагувати після того, як соленоїд вже спрацював, а двері ще не відкриті. Процес формалізації завдання доцільно розбити на підзадачі, етапи.

Рис.2. Структура автоматичного відкривання дверей на кодовий сигнал кнопок

1-й етап формалізації – формування списку вхідних сигналів та вихідних , які будуть використовуватися при розробці схеми. В даному випадку, формально на вхід діє сигнал відкритих дверей Д та 10 кнопок. Але можна стверджувати, що автомат буде реагувати лише на п’ять вхідних ситуацій: сигнал натиснення правильної першої цифри П1 (цифра 1), сигнал правильної другої цифри П2 (цифра 3), сигнал неправильної першої цифри Н1 (будь-яка цифра крім 1, де 3 також неправильна), сигнал неправильної другої цифри Н2 (будь-яка цифра крім 3, де 1 також неправильна) і сигнал иідкритих дверей . Для спрощення подальшої роботи раціонально буде весь набір ситуацій , що фактично діють на автомат, сформувати завчасно на допоміжних логічних схемах, як показано на рис. 3.

Рис.3. Формування вхідних сигналів автомата. Живлення схеми Ео, обмежувач Об, генератор

одиночного імпульсу.

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

2-й етап формалізації – визначення потрібної кількості станів автомата. В даному випадку рішення очевидне: три положення. - початкове положення, положення очікування першого правильного сигналу; - перший правильний сигнал отримано, очікування другого; - отримано обидва правильні сигнали, виробляється одиничний рівень вихідного сигналу , що подається на підсилювач, до вихода якого під”єднаний соленоїд. Соленоїд втягує якір і повертає двері. Якщо б відкриваюча послідовність складалася з трьох натиснень кнопок, то додалвся б ще один стан.

Можна, якщо цього потребують умови роботи замка, ввести ще й положення – тривога, в яке автомат переходить у випадку набору невірної послідовності, при цьому передається сигнал куди потрібно (можливо у інший автомат). До речі, як автомат повинен поступати у випадку зробленого неправильного набору ?. Це перше питання, відповіді на яке не має в початковому формулюванні завдання, але яке виникає при проектуванні і потребує узгодження з замовником. Припустимо, відповідь така: при неправильному наборі схема переходить в початковий стан. При проектуванні складних автоматів число можливих положень ми бачимо далеко не відразу, а тільки в процесі вивчення завдання, в міру глибшого розуміння завдання.

3-й етап формалізації – побудова спрощеного графа або таблиці автомату (синтез абстрактного автомату). В прикладі з замком краще починати з графа, оскільки при числі положень в межах 10-15 граф є нагляднішим від таблиці. В графовому вигляді функціонування автомату стани автомата відображаються вершинами графа, а можливі переходи автомату з одного стану в інший – направленими дугами (ребрами) графа. Напрям переходів позначаються стрілками. Дуги позначені вхідними сигналами - умовами, при яких ці переходи виконуються, рис. 4. Вихідні сигнали, якщо вони зв’язані тільки з певним станом, зображені всередині вузла стану, що утворює цей сигнал. Якщо крім стану вихідний сигнал залежить ще й від вхідних сигналів, то він зображається вихідною з відповідного стану стрілкою (дугою), яка позначена вхідним сигналом.

В даному прикладі розумно буде вважати, що вихідний сигнал однозначно зв’язаний з станом автомату , тобто , тоді коли автомат знаходиться в положенні незалежно від діючих при цьому вхідних сигналів. Граф на рис. 4 є символічним відображенням словесного опису автомата. Поки на вхід не надійде сигнал П1, автомат знаходиться в початковому положенні . Сигнал П1 переводить його в положення , звідки він при надходженні невірного сигналу Н2 повернеться в , а при надходженні другого правильного сигналу П2 перейде в стан , що дозволяє відкрити замок. Сигнал Д , що виникає при відкриванні дверей, переводить автомат в стан , та підготовлює його до наступного циклу роботи. Ніякі інші сигнали не виводять автомат з стану , припустимо що так попросив замовник. В принципі можна задати й інші умови.

Рис.4. Граф переходів автомата – перша версія

Для строгої вказівки на той факт, що, не дивлячись на надходження деяких сигналів, автомат все ж не переходить до іншого положення, на графі переходів біля цих станів малюють петлі, позначені відповідними сигналами. Такі петлі Н1, Д показані біля вершини . Для строгого малюнку графа потрібно було б іще одну петлю П1 біля вершини і трьох петель – П1, П2 і Н2 – біля вершини (або хоча б двох – П2 та Н2, оскільки сигнал П1 входить до складу Н2). Петлі сильно загромоджують рисунок, і їх часто, не зображають, маючи на увазі те, що при надходженні будь-якого сигналу, крім тих, якими позначені стрілки переходу з даного стану, автомат свого положення не змінить. Пізніше буде показано, що замовчування існування петель оправдано і з позиції побудови логічної схеми.

Поряд з графовим, використовують табличний опис автомату. Загальноприйнята форма якого приведена в табл. 1. Рядки таблиці відображають вхідні сигнали, стовбці – стани. На перетині стрічки і стовпця записується новий стан, в який автомат перейде з стану даного стовпця, під дією вхідного сигналу, до стану даної стрічки. В останній стрічці записані ті вихідні сигнали, які однозначно зв’язані з станами автомата. Якщо вихідний сигнал зв’язаний ще й з вхідним, то він зображається на відповідному перетині і відділяється від нового положення косою рискою.

Таблиця 1

Входи

Стани автомата

П1

П2

Н2

Д

Вихід

Якщо в таблиці заповнені всі клітинки, то говорять, що автомат визначений повністю. В завданні на невизначений автомат в деяких клітинках можуть стояти хрестики – символи довільності. В процесі побудови логічної схеми розробник довизначає таблицю виходячи з міркувань якості схеми – аналогічно довизначенню таблиці логічної функції [1].

Граф і таблиця – два взаємно еквівалентних способи формальної побудови поведінки автомата. Кожен із них задає реакцію автомата, що проектується на кожен вхідний сигнал однозначно, без небезпеки різного трактування. Щоб граф був строго еквівалентним до таблиці, на ньому потрібно вказувати явно всі петлі.

Описаний процес побудови графа або таблиці називають етапом абстрактного синтезу автомата або етапом синтезу абстрактного автомата. Абстрактний автомат – це ще не пристрій і навіть не схема. Це лише математична модель, алгоритм функціонування деякого перетворювача кодових послідовностей. Якщо входи в табл. 1 (або на графі) ототожнити з буквами деякого вхідного алфавіту, а виходи – з буквами вихідного алфавіту (в випадку замка вихідний алфавіт складається тільки з двох букв: і ПРОБІЛ), то абстрактний автомат – це закон перетворення ланцюжків букв (тобто слів) вхідного алфавіту в ланцюжки букв (слова) вихідного алфавіту. Приблизно таке формулювання задачі і послужило в свій час початковим поштовхом до створення теорії автоматів. Створення абстрактного автомату – це перший відчутний результат на шляху побудови схеми автомату. Подальші кроки розробки автомату, приблизно до рівня отримання його функціональної схеми, прийнято називати етапом структурного синтезу.

4-й етап формалізації – побудова повного графа (повної таблиці) автомата. Формальний опис абстрактного автомата, отриманий на попередньому етапі, виявляється недостатньо повним для того, щоб безпосередньо за ним можна було проводити синтез логічної схеми. Потрібно ще розглянути і формалізувати наступні не враховані абстрактною моделлю моменти: питання про невикористовувані або заборонені стани автомата, його початковий стан після увімкнення живлення, можливість збігу вхідних сигналів у часі і ін.

Невикористовувані (заборонені) стани. Про вибір кодів регістру для представлення станів автомату мова буде йти пізніше, а поки нехай відомо, що три робочих станів автомата зберігаються в двохзарядному тригерному регістрі. При цьому четверта з можливих комбінацій станів тригерів не використовується і в ланцюжку переходів автомата участі не бере, і про неї, здається, можна б булоб і не говорити. Але якщо через дію завади в регістрі помилково виникне це четверте положення, автомат в ньому “зависне”, і ніякі зовнішні сигнали вже не зможуть повернути його в робочий режим. Говориться, що в графі переходів існує ізольована вершина, аварийний стан . В грамотно спроектованій схемі ізольованих вершин або циклів з декількох таких вершин не повинно бути. Від невикористовуваних вершин потрібно зробити “стоки” до робочого циклу графа, і це повинно бути відображено на самому графі.

На повному графі рис.5 вже показани аварийний стан у виді вершини . Якщо цей стан виникне, то перше відкривання дверей, переведе автомат у початковий стан , або при натисненні правильної кнопки 1 переведе автомат в . Тому зроблений складний перехід – сигналом

Рис. 5. Повний граф переходів автомата

Початковий стан автомата. При вімкненні живлення , регістри пам”яті , а тим самим і автомат в цілому, може приняти довільний стан. Тому на графі від кождої вершини повинні бути переходи до початкової вершини – сигнал скиду. В прикладі з кодовим замком, сигналом скиду зручно використати сигнал двері . Виходячи з конкретного завдання, доцільно зробити перехід з аврійного стану в перший стан при натисренні правильної першої кнопки. Останній варіант графа автомата показзаний на рис.5.

Після вімкнення живлення Ео, RC-ланка запускає запускає одновібратор Об, імпульс якого

через елемент АБО формує сигнал двері Д і встановлює автомат в початковий стан .

Співпадіння вхідних сигналі в часі. В загальному автомат приймає комбінацію сигналів. Він на певний код реагує певним чином. У випадку двох вхідних сигналів від кнопок за допомогою дешифратора можна перетворити у абстрактних сигнали, які будуть появлятися по одному. Для опису автомата необхідна таблиця переходів у 32 стрічки і стільки ж дуг у графа. Відповідно буде ускладнений синтез схеми і сама схема автомата. Але в пристроях автоматики його робота часто визначається окремим, з вищим пріоритетом, сигналом без зв”зку з іншими сигналами. Врахування цього факту дозволяє спростити таблицю станів, граф переходів і схему самого автомата. При цьому необхідно розглядати сигнали які створюють кофліктні ситуації, тобто які при своєму співпадінні викликають в графі переходів ситуації невизначенності або генерування.

В даній задачі в стані Z0 конфліктують дві пари сигралів: П1 з Д і П1 з Н1. При одночасній появі будьякої пари, сигнал П1 буде старатися перевести в стан Z1 , а Д або Н1 – автомат залишити в Z0. По змісту роботи замка сигналам Д і Н1 необхідно надати вищий пріоритет чим П1. Тобто, дозволити перехід в Z1 по сигналу П1 лише при умові, що двері закриті ( ) і крім правильної кнопки не натиснута ніякої інша кнопка, а тим більше відразу усі ( ). Для цього переходу , який на рис.4 був позначений безумовним сигналом П1, на уточненому графі рис.5 позначається . Для формалізації задачі вимагалося знання умов роботи об”єкта.

При розгляді вершин Z0 i Z1 конфліктуючою парою є сигнали П1 і Н2. При натисненні кнопки 1 (рис.4 ), один з них викликає , другий - . При натисненні 1 буде проходити режим генерації. Щоб стан був стійким, сигналу П1 в цьому стані необхідно надати більший пріоритет чим Н2. Для цьго дуга позначується , і тоді вернутися в стан Z0, від неправильного натиснення кнопки, автомат зможе лише після відпущення кнопки 1. В стані Z1 сигнали Д і не конфліктують.

В неповному графі (рис.4 ) перехід виконується за умовою П2. Але при натисненні кнопки П2 переходити в Zp можна, не відпускаючи попередньо кнопки П1. Натиснена кнопка П1 не дає автомату скинутися , перейти навіть при одночасному натиснені будьякої неправильної кнопки. Істотним є знання першої цифри. Після її натиснення зловмисник, не відпускаючи першої кнопки, натискує доленою одночасно всі інші. Неправильна кнопка замка не скине, а скоріше його відкриє. Щоб друга цифра була важливою як і перша, в графі на рис.5 перехід робиться за мовою , тобто перехід в ZP при натисненні П2 здійсниться, тільки коли П1 відпущена і взагалі не буде натиснена інша кнопка крім П2.

В стані Z1 конфлікт виникає між нгатисненням кнопки П2 (сигнал ) і сигналом Д. Конфлікт ліквідується, якщо одному з сигнгалів, наприклад Д, надати більший пріоритет. Це показано в умові переходу : .

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

Табл. 2

N п\п

Аргументи

Функції

Стан в даний момент

Входи автомата

Наступний

стан

Вихід

П1

Н1

П2

Н2

Д

1

Z0

1

0

x

x

0

Z1

0

2

Z1

x

x

x

x

1

Z0

0

3

Z1

0

x

x

1

x

Z0

0

4

Z1

x

x

1

0

0

ZP

0

5

ZP

x

x

x

x

1

Z0

1

6

Za

x

x

x

x

1

Z0

0

7

Za

1

0

x

x

0

Z1

0

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