43217

Створення ПЗ для віртуального лабораторного стенду засобами LabVIEW

Курсовая

Информатика, кибернетика и программирование

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

Украинкский

2013-11-04

147 KB

17 чел.

Форма Н-9.02

ЧЕРКАСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ БОГДАНА ХМЕЛЬНИЦЬКОГО

Навчально-науковий інститут фізики, математики та комп’ютерно-інформаційних систем

Кафедра автоматизації та комп’ютерно-інтегрованих технологій

Пояснювальна записка

до дипломного проекту (роботи)

ОКР бакалавр

на тему

Створення ПЗ для віртуального лабораторного стенду засобами LabVIEW

Виконав: студент 4 курсу, групи В

напряму підготовки 6.050202 – автоматизація та комп’ютерно-інтегровані технології

Кац Д.О.

Керівник   Луценко Г.В.

Рецензент  Осауленко І.А.

Черкаси – 2013 року


ЗМІСТ

[1] Форма № Н-9.02

[1.1] Пояснювальна записка


ВСТУП


РОЗДІЛ 1.

ОГЛЯД СЕРЕДОВИЩА РОЗРОБКИ LABVIEW

1.1. Загальний огляд програмного пакету LabVIEW 

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

Система LabVIEW включає в себе:

  •  ядро, що забезпечує можливість роботи програмних процесів, розділення апаратних ресурсів між процесами;
    •  компілятор графічної мови програмування „G”;
    •  інтегроване графічне середовище розробки, виконання та налаштування програм;
    •  набір бібліотек елементів програмування в LabVIEW, зокрема, бібліотеки графічних елементів інтерфейсу користувача, бібліотеки функцій та підпрограм, бібліотеки драйверів, бібліотеки програм для організації взаємодії з вимірювально-управляючими апаратничми засобами і т.д.;
    •  добре структуровану довідкову систему;
    •  об’ємний набір програм-прикладів з можливістю як тематичного, так і алфавітного пошуку.

LabVIEW має вбудовану підтримку всіх програмних інтерфейсів, що використовуються у наш час, зокрема Win32 DLL, COM, NET, DDE, мережевих протоколів на базі IP, Data Socket та ін. До складу LabVIEW входять бібліотеки управління різними апаратними засобами та інтерфейсами, такими як PCI, VME, PLC, VISA, системами технічного зору та ін. Програмні продукти створені з використанням LabVIEW можуть доповнюватися фрагментами, що розроблені на традиційних мовах програмування, наприклад, C++, Pascal, Basic, Fortran. I, навпаки, можна використовувати модулі, що розроблені в LabVIEW у проектах, які створені в інших системах програмування. Таким чином, LabVIEW дозволяє розробляти практично будь-які програми, що взаємодіють з іншими видами апаратних засобів, які підтримуються операційною системою комп'ютера.

Використовуючи технологію віртуальних пристроїв, розробник може перетворити стандартний персональний комп'ютер і набір довільного контрольно-вимірювального обладнання у багатофункціональний вимірювально-обчислювальний комплекс. Однією з переваг LabVIEW є те, що для розробника та користувача є доступними функціонально ідентичні системи програмування для різних операційних систем, таких як Microsoft Windows, Linux, MacOS.

Програмування в LabVIEW максимально наближене до поняття алгоритм. Після того, як розробник продумує алгоритм роботи своєї майбутньої програми, йому залишається лише нарисувати блок-схему цього алгоритму з використанням графічної мови програмування G. Тобто, автору не доводиться думати про комірки пам’яті, адреси, порти вводу-виведення, переривання та інші атрибути системного програмування. Дані будуть передаватися від блоку до блоку по „провідниках”, оброблятися, відображатися та зберігатися у відповідності з розробленим алгоритмом. Більше того, сам потік даних буде керувати ходом виконання вашої програми. Ядро LabVIEW може автоматично використовувати ефективні сучасні обчислювальні можливості, наприклад, такі як багатозадачність, багатопотоковість та ін.

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

1.2. Особливості роботи у режимі реального часу в LabVIEW

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

Розрізняють поняття жорсткого і м'якого реального часу:

  •  жорсткий реальний час — режим роботи системи, при якому порушення часових обмежень рівнозначно відмові системи і веде до неможливості вирішення поставленої задачі;
  •  м'який реальний час— режим роботи системи, при якому порушення часових обмежень призводять до зниження якості роботи системи.

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

Звичайні користувацькі операційні системи, зокрема і MS Windows, не є спеціалізованими операційними системами реального часу (ОСРЧ), тому створення повноцінних систем реального часу на їх основі незручне, а часто просто неможливе. Всі недоліки MS Windows повною мірою відображаються на системах, реалізованих в середовищі LabVIEW, і крім того, LabVIEW накладає свої обмеження на можливість створення систем реального часу. Істотним недоліком LabVIEW є принципова неможливість обробки зовнішніх переривань. Це означає, що єдина можливість прив'язки до часу в LabVIEW – це циклічне опитування  стану якого-небудь зовнішнього пристрою, що володіє відомими динамічними характеристиками, наприклад: годин реального часу, системного таймера лічильника процесорних тактів, підсистеми синхронізації послідовних портів, таймерів звукової плати і т.д.

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


Рис. 1.1. Стандартні віртуальні прилади для роботи з часом

"Будильник" повертає кількість мілісекунд, накопичених з моменту старту Windows. "Наручний годинник" завжди робить затримку на цілу кількість мілісекунд. "Метроном" теж затримує поточний процес, але, на відміну від “годинника”, починає відлік не з початку мілісекунди, а з поточного моменту часу, і закінчує його тоді, коли системний годинник перевищить зазначений інтервал, у результаті чого перша мілісекунда звичайно рахується не повністю, а остання виявляється "зайвою".

Багаті можливості організації додатків реального часу надає вбудований програмований системний таймер ПЕОМ. (рис. 1.2)

Рис. 1.2. Віртуальні прилади для роботи з 2-м каналом таймера

Можливий також доступ до 0-го каналу таймера. Але цей канал зазвичай використовується Windows для організації багатозадачності і тому не може бути довільно перепрограмований. Можливо тільки зчитування накопиченої з моменту старту ОС кількості тактових імпульсів таймера, що надходять з частотою 1.19 МГц. Це здійснюється шляхом звернення до стандартної функції API32 QueryPerformanceCounter(), реалізованої в WINMM.DLL.

Ще один віртуальний прилад (рис. 1.3), що використовує вузли "Timer Init", "Timer Read" і "Timer Status", може служити ілюстрацією методів програмування таймера.

Рис. 1.3. Приклад програмування системного таймера

На рис. 1.3. приведено декремент значення таймерного лічильника і "перекидання" сигналу OUT (йому відповідає старший біт в байті стану каналу).

Системний таймер може бути використаний для організації тимчасових затримок з тривалістю 1 мс і менше. У регістр довідкової константи завантажується значення коефіцієнта перерахунку, що відповідаэ необхідній затримці. Відомо, що кожні Т0.84 мкс. з лічильника віднімається число 2. Отже, для того, щоб значення лічильника обнулилося за час T мкс, необхідно попередньо завантажити коефіцієнт перерахунку K=(T/ΔT)*2. Далі необхідно в циклі сканувати значення лічильника до тих пір, поки не відбудеться його перезавантаження.

Рис. 1.4. Затримка на малі інтервали часу

Теоретично, мінімальна величина затримки становить 0.84 мкс., максимальна 27 мс (а якщо дещо ускладнити метод і враховувати значення сигналу OUT, то 55 мс). У результаті численних експериментів на різних, навіть найшвидких машинах, було з'ясовано, що реальна роздільна здатність становить приблизно 3-5 мкс.

Наявна також можливість точного вимірювання малих інтервалів часу (наприклад, тривалості виконання вузла "millisecond multiple"). (рис. 1.5)

Рис. 1.5. Вимірювання часу спрацьовування “Метронома”

Теоретично, роздільна здатність методу складає 0.84 мкс. Реально – знову-ж-таки 3-5 мкс.

На будь-які програми, які працюють в середовищі Windows, величезний вплив чинить режим поділу часу між різними процесами, що конкурують за системні ресурси. Відомі два способи розподілу процесорного часу між процесами:

  •  кооперативний (cooperative);
  •  витісняючий (preemptive).

При "кооперативному" способі організації багатозадачності процеси самі передають управління один одному в ті моменти часу, в які вважатимуть за потрібне (можливо, що тільки після свого завершення). При "витісняючому" способі кожному процесу виділяється певний часовий інтервал ("квант часу", timeslice), після закінчення якого робота процесу примусово переривається, і управління передається якомусь іншому (а можливо, і тому ж самому) процесу (рис. 1.6). Порядок передачі управління процесів залежить від "пріоритет" процесу, - цілого числа, що визначає його привілеї в системі. У сучасних ОС реалізована, зазвичай витісняюча багатозадачність.

Рис. 1.6. Передача управління між процесами при витісняючій багатозадачності, заснованій на перериваннях від таймера

Розглянемо вплив витісняючої багатозадачності на роботу додатків LabVIEW. Модифікуємо віртуальний прилад, зображений на рис. 1.5, таким чином, щоб він багаторазово вимірював "порожнє місце" (тобто накладні витрати на організацію циклу вимірювань). (рис. 1.7)

Рис. 1.7. Вимірювач "порожнього місця"

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

Час виконання "порожнього" циклу може розглядатися як випадкова величина, причому якісний характер її поведінки однаковий на різних комп'ютерах і в різних версіях операційних систем. Узагальнена густина розподілу цієї випадкової величини має вигляд, зображений на рис. 1.8.

Рис. 1.8. Узагальнений розподіл часу виконання циклу

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

T = a + b + g

Випадкова величина a розподілена за скороченим (на інтервалі від 0 до декількох десятків мікросекунд, залежно від швидкодії комп'ютера) експоненціальним законом і відповідає часу, який витрачається на виконання циклу системою “процесор-пам'ять”. Сюди включається час виконання команд (з урахуванням конвеєризації) і нерегулярні затримки, пов'язані з перемиканням банків пам'яті; з кешуванням команд і даних; з регенерацією динамічної пам'яті і т.п. Мінімізувати цей час можна, вибравши більш швидкодіючий комп'ютер.

Випадкова величина b у загальному випадку багатомодульна і розподілена на інтервалі від декількох десятків мікросекунд до 1 мс (в окремих випадках – до десятків мс). Свій внесок у ці затримки вносять обробники переривань від численних зовнішніх пристроїв: від HDD, відеоадаптера, від мережевої карти, від таймера і т.д. Сюди ж входять затримки, отримані в результаті переключення на задачі, які в результаті "відмовляються" повністю використовувати свій квант часу. Мінімізувати цей час можна, видаливши з комп'ютера певні пристрої, відключивши в BIOS Setup опції енергозбереження тощо, та повністю позбутися цих затримок неможливо.

До цього ж класу затримок можна віднести затримки, пов'язані із зверненнями до диску під час перемикання сторінок пам'яті. Ці затримки проявляються при роботі з великими масивами даних, розташованими в пам'яті, що витісняється, і мають порядок кілька десятків мілісекунд.

Випадкова величина g розподілена порівняно вузьким піком, який розташовується на часовій осі в межах від декількох десятків до декількох сотень мілісекунд (залежнос від версії ОС і від кількості конкуруючих процесів). Їй відповідають ситуації, коли квант часу поточного процесу закінчується, і управління отримує якийсь інший процес (процеси), які також використовують свій квант до кінця. Мінімізувати цей час можна, видаливши з пам'яті всі “сторонні” процеси і підвищивши пріоритет поточного процесу ( рис. 1.9).

Рис. 1.9. Зміна відносного пріоритету віртуального приладу LabVIEW

Якщо бути точним, більшість фонових процесів не допрацьовують свій квант до кінця, наприклад, марно очікуючи користувальницького введення. Ці затримки лежать в області b і саме їх вище названо "перериваннями від таймера".

Спільне збільшення базового пріоритету "процесу" та відносного пріоритету "потоку" дозволяє віртуальному приладу повністю захоплювати процесор, але по завершенні роботи віртуального приладу можлива нестійка робота ОС. Ще один ефект збільшення пріоритету полягає в тому, що регулярні часові затримки від апаратних переривань (випадкова складова b зникають з області <1 мс і збираються разом в області g, помітно зрушуючи її в бік збільшення тривалості затримок. На трасі тимчасових інтервалів це виглядає так: протягом багатьох сотень тисяч і мільйонів циклів затримки стабільно малі, а потім слідує одиночний, та дуже великий (десяті частки секунди) викид. Імовірно, обидва ефекти (нестійкість роботи і зміна якісної картини розподілу затримок) пов'язані з двоступінчастим алгоритмом обслуговування апартних переривань у Windows: при приході сигналу переривання операційна система на короткий термін отримує управління і додає запит на обробку в чергу необроблених переривань. Власне обробка викон-ується пізніше, при перегляді черги "робочим" потоком. Якщо "заморозити" цей потік своїм екстремально-пріоритетним потоком, то:

  1.  операційна система періодично намагається "розгребти" накопичилися переривання, не дивлячись на наявність высокоприоритетных потоків;
  2.  після звільнення процесора высокоприоритетными потоками операційна система займається деякий час виключно обробкою переривань, хоча, можливо, пристрої вимагали швидкої реакції на свої запити, а запізніла спроба обробити їх призводить лише до дезорганізації системи. Коротше кажучи, пріоритет time critical для Windows чужорідний і повинен застосовуватися обережно, на коротких часових відрізках.


 

А также другие работы, которые могут Вас заинтересовать

32607. Особенности организации учёта и исчисления себестоимости продукции основных видов промышленных производств 52 KB
  Для первичных документов по учету сырья и выхода готовой продукции предусмотрен отчёт о переработке продукции форма № 180АПК. В первом разделе отчёта учитывается количество израсходованного сырья во втором количество полученной продукции. Схема учета затрат на производство и выхода продукции животноводства представлена на рисунке 6. По дебету счета собираются затраты а по кредиту учитывается выход продукции в течении года по плановой себестоимости с доведением в конце года или месяца до фактической в зависимости от вида производств.
32609. Докладно описати вантажні станції, розташовані на під’їзних коліях, виділивши: 1) умови розміщення станцій; 2) характеристика портових станцій і станцій паромних переправ; 3) характеристика перевантажувальних станцій 146 KB
  Докладно описати вантажні станції розташовані на підїзних коліях виділивши: 1 умови розміщення станцій; 2 характеристика портових станцій і станцій паромних переправ; 3 характеристика перевантажувальних станцій. 1 В пунктах стикування залізниць різної колії залізничних доріг з іншими видами транспорту і на п к підприємств споруджуються спеціальні вантажні станції. На основній станції виконується передача вагонів від УЗ на п к розформування поїздів і підбір вагонів по окремим пунктам подавання вагонів на вантажні станції або...
32610. Основні норми проектування плану і поздовжнього профілю дільничних станцій 311.5 KB
  Розміщення колій на горизонтальному майданчику полегшує умови рушення поїздів в обох напрямках знижує небезпеку уходу вагонів від товчка при маневрах або під впливом вітру. Станція окремі парки і витяжні колії повинні розташовуватися в плані на прямих дільницях що поліпшує умови видимості під час руху поїзда і маневрової роботи рушенні поїздів з місця. Головні колії на підходах до станції слід проектувати на прямих або кривих можливо більшого радіусу що створює умови для забезпечення безпечності і плавності руху поїздів....
32612. Докладно описати такі питання: – призначення і класифікація сортувальних станцій; – класифікація сортувальних станцій; – основні операції, що виконуються на сортувальних станціях; - основні пристрої, які проектуються на сортувальних станціях 841 KB
  Сортировочные станции СС предназначены главным образом для массовой сортировки вагонов по назначениям плана формирования и организации новых составов сквозных участковых сборных вывозных передаточных и других поездов. Основные операции которые выполняются на СС: операции по формированиюрасформированию поездов передаче вагонов на подъездные пути предприятий промышленного транспорта и приему вагонов с подъездных путей подборке группировке вагонов передач на грузовые станции узла и поездов на портовые и паромные станции а...
32613. Докладно описати такі питання: визначення вантажної станції; класифікація вантажних станцій; основні операц 304.5 KB
  Для ГММ расчетная высота горки по условию докатывания вагонов расчетной весовой категории плохого или очень плохого бегуна до расчетной точки трудного по сопротивлению пути сортировочного парка в зимних неблагоприятных условиях при встречном ветре определяется по формуле: где h0энергетическая высота соответствующая расчетной скорости роспуска состава V0 кДж кН. ; где g ускорение свободного падения 98 м с2; γкоэффициент учитывающий инерцию вращения вращающихся масс бегуна. ; где n число осей бегуна 4; q вес бегуна Потерянная...
32614. Вариант 1 Схема двусторонней сортировочной станции с последовательным расположением основных парков и с об. 613.5 KB
  Вариант 1 Схема двусторонней сортировочной станции с последовательным расположением основных парков и с объемлющим расположением главных путей для пропуска пассажирских поездов рисунок 1. Вариант 2 Комбинированная схема двусторонней сортировочной станции с объемлющим расположением главных путей для пропуска пассажирских поездов рисунок 2. Вариант 3 Схема двусторонней сортировочной станции с параллельным расположением парков и с боковым расположением главных путей для пропуска пассажирских поездов рисунок 3. Вариант 1 Схема двусторонней...
32615. Докладно описати такі питання: призначення та класифікація дільничних станцій; основні операції що викону. 407 KB
  На УС выполняются следующие операции: посадка и высадка пассажиров; прием хранение и выдача багажа почты и грузов пассажирской скорости; технические операции с пассажирскими поездами; технические операции с грузовыми поездами; прием хранение и выдача грузов подача уборка вагонов на грузовой двор и др. погрузочноразгрузочные пункты; погрузкавыгрузка грузов взвешивание грузов вагонов и проверка габаритности у мест погрузки а в необходимых случаях сортировка и перегрузка грузов; подача неисправных вагонов к месту...