n="justify"> необхідно вказати його назву і натиснути дану клавішу.
8. Vtek_x (m/c), Vtek_y (m/c) - показує проходять точки, для досягнення заданої точки.
9. X, Y - показує координати заданого положення.
4. Проектування на основі обчислювальної технології
. 1 Вибір апаратної архітектури
Для створення керуючої програми СРВ необхідно перетворити модель задач-станів в код керуючого комп'ютера. Перший крок у цьому напрямку - визначити скільки керуючих обчислювальних пристроїв буде в СРВ і скласти перелік завдань для кожного з них. Виходячи зі складності проектованої системи було прийнято рішення використовувати в якості обчислювального пристрою - персональний комп'ютер на базі процесора х86, на якому реалізуються всі завдання управління. Зв'язок з керованим об'єктом здійснюється по паралельному порту.
. 2 Вибір базового ПЗ та інструментальних засобів
В якості базового ПЗ використовується ОСРВ QNX 6.2.1. Ця ОСРВ побудована за принципами високонадійній архітектури на основі мікроядра і чітко детермінованого механізму обміну повідомленнями, у тому числі для взаємодії процесів по мережі.
До складу QNX входить також графічна оболонка Photon microGUI для побудови вбудованих додатків з графічним інтерфейсом користувача.
Інструментальні засоби, що входять до складу пакету QNX Momentics, включають: редактор, відладчик (у тому числі для віддаленої налагодження), засоби побудови вбудованих систем, різні аналізатори, засоби розробки інтерфейсу користувача, засоби управління версіями, компілятори з різних мов високого рівня.
При розробці і налагодженню основного процесу СРВ використовувалися:
- редактор WorkSpace для створення вихідних текстів програми;
- компілятор gcc версії 2.95.2;
- відладчик gdb.
Інтерфейс оператора розроблявся в інтегрованому середовищі Photon Application Builder на основі візуальних компонентів GUI Photon.
. 3 Вибір моделі процесів-потоків
Усі завдання СРВ повинні виконуватися паралельно. Так як завдання основного процесу виконуються псевдопараллельно (тобто на одному і тому ж процесорі), то для організації їх паралельного виконання був застосований метод послідовного спільного диспетчера/1 /. Такий метод організації простий і універсальний.
Усі завдання виконуються спільно в одному потоці і в циклі послідовно отримують процесор на певний інтервал часу, який визначає програміст при написанні коду програм. Так як наші найскладніші завдання мають структуру станів, цей метод стає зручним для використання в нашому процесі. Кожна задача в поточному циклі знаходиться тільки в одному стані, і виконуватися буде тільки та частина коду, що відповідає даному стану.
Однак необхідно подбати про те, щоб в задачах послідовного диспетчера не було блокувань (головним чином, в переміжних). Крім того, така організація виконання завдань завантажує процесор на 100%, що ускладнює процес швидкого взаємодії з графічним інтерфейсом, виконуючий на тому ж процесорі.
Як вже говорилося раніше, ми прийшли до рішення поділу нашої програми на два виконуваних паралельно потоку.
Завдання інтерфейсу оператора реалізується у вигляді головного потоку. У другому потоці реалізується головний цикл програми MainCicle, який являє собою послідовний диспетчер, в ньому послідовно викликаються завдання, визначені нами раніше.
Крім двох головних існують додаткові короткочасні потоки, які створюються обработчиками подій натискань керуючих кнопок. Справа в тому, що кожен обробник направляє відповідні команди в чергу повідомлень для основного процесу, і при переповненні черги повідомлень потік з функцією надсилання блокується до моменту звільнення достатнього місця в черзі. Тому щоб уникнути зависання інтерфейсу (головного потоку) дані функції викликаються в додаткових потоках.
Графічна схема обраної моделі процесів-потоків представлена ??на малюнку 4.1.
Малюнок 4.1 - Обрана модель процесів-потоків
На малюнку показані два потоки: Interface і MainCicle. У головному потоці виконується збереження введених оператором даних, надається оператору можливість задавати настроювальні дані: У другому потоці представлений послідовний диспетчер, який реалізує псевдопараллельное виконання наших завдань.
Потоки обмінюються такими даними: потік Interface передає настроювальні дані (settings), координати цільової точки (Хс, Yc) та команди к...