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 чужорідний і повинен застосовуватися обережно, на коротких часових відрізках.


 

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

48813. Внутренний водопровод и канализация жилого дома 210 KB
  Водопровод Описание системы и схемы внутреннего водопровода Гидравлический расчет водопроводной сети Определение расчетных расходов Определение диаметров труб и потерь напора Подбор счетчика количества воды Определение требуемого напора Канализация Системы внутренних водопроводов по конструктивному выполнению следует принимать тупиковыми если допускается перерыв в подаче воды; кольцевыми с закольцованными вводами при необходимости обеспечить непрерывную подачу воды кольцевые сети должны быть...
48814. ВОЛОКОННО-ОПТИЧЕСКАЯ ЛИНИЯ СВЯЗИ ТОМСК-СТРЕЖЕВОЙ 9.81 MB
  3 где постоянные коэффициенты соответствующие фиксированной доступности и заданным потерям; обычно потери задаются 5 поэтому ; коэффициент тяготения; Эрл удельная средняя нагрузка создаваемая одним абонентом количество абонентов обслуживаемых оконечными станциями АМТС соответственно в пунктах А и Б. На затухание света в ОВ влияют такие факторы: потери на поглощении; потери на рассеянии; кабельные дополнительные потери. Потери на поглощении и...
48815. Розрахунок радіоприймача 218 KB
  Величезне значення для розвиту радіотехніки мало створення електронних ламп. У 1883р. Томас Едісон виявив, що скляна колба вакуумної лампочки розжарювання темніє із- за того, що розпиляло матеріалу нитки. Згодом було встановлено, що причиною даного «ефекту Едісона»
48817. Горячее водоснабжение жилого микрорайона 634.5 KB
  Определение температуры воды в подающей трубе теплосети в точке излома повышенного графика. Максимальный секундный расход воды на расчетном участке сети л с при гидравлическом расчете теплопроводов системы горячего водоснабжения определяется по формуле 1 где секундный расход горячей воды водоразборным прибором с наибольшим расходом л с принимаемый в соответствии...
48820. Датчики в курсовом проектировании 349.5 KB
  Подробную информацию о датчиках легко найти в Интернете по их названиям Датчики температуры с выходным сигналом в виде напряжения Марка Диапазон измеряемых температур C Напряжение питания V Чувствительность мВ C Диапазон выходных напряжений В Потр. Схема подключения датчика к усилителю с возможным условным обозначением датчика предлагается ниже. Подключение датчика к внешней цепи Если входное сопротивление усилителя не будет велико десятки килоом то сопротивление R1 необходимо включить в состав входного сопротивления. Возможное...