Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КІТК-лаб-ч1-20-04-2015.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.12 Mб
Скачать

2. Арифметичні та логічні операції в LabView

Мета роботи: надбання вмінь програмування арифметичних та логічних операцій в середовищі LabVIEW.

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

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

Математичні операції в середовищі LabVIEW вибираються відповідними пунктами меню палітри Functions (Функції), такими як Structures (структури), Numeric (арифметичні), Boolean (Булеві), String (рядкові) і т. д.

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

Рис. 2.1 – Арифметичні операції

Досить часто в математичних формулах використовуються числові константи (довільні або загальновживані). Для введення довільної константи необхідно вибрати Functions\Numeric\Numeric_Constant, величину константи змінюють в текстовому режимі. Загальноприйняті константи (π – число Пі, Na – число Авогадро, е – основа натурального логарифму тощо) вибираються у тому ж пункті меню Functions\Numeric\Additional_Numeric_Constant.

Приклад 1. Реалізувати арифметичну операцію A = (B + C)/5, введення і виведення інформації у цифровій формі.

У вікні лицьової панелі відбираємо і розміщуємо два елементи цифрового вводу Control\Numeric\Digital_Control та присвоюємо їм імена B і C, один елемент цифрового виводу Control\Numeric\Digital_Indicator із ім’ям A. Переходимо у вікно діаграми і, відкоригувавши взаємне розташування елементів управління, доповнимо схему наступними елементами:

1) константа (дорівнює 5): Functions\Numeric\Constants і вводимо «5» із клавіатури;

2) оператори додавання і ділення: Functions\Numeric\Add і Functions\Numeric\Divide відповідно.

Переходимо в режим встановлення зв'язків і в необхідному порядку сполучаємо між собою елементи схеми.

Front Panel Block Diagram

Рис.2.2 – Приклад реалізації арифметичної операції

У іконки оператора ділення три термінали: верхній кут [x] (ділене), нижній кут [y] (дільник), правий кут [x/y] (частка) (див. рис. 2.3). При виконанні з'єднання курсор необхідно наводити на "гаряче" поле, що відповідає тій змінній, з якою треба встановити зв'язок. При цьому обране "гаряче" поле підсвічується і показується його назва.

а) б)

Рис.2.3 – Термінали арифметичної операції ділення:

а) термінали; б) «гарячі» поля, що відповідають терміналам

Зверніть увагу на різні кольори, якими позначені лінії зв’язку та елементи. Елементи вводу-виводу мають помаранчевий колір і блоки мають вигляд прямокутника із написом [DBL], що відповідає типу змінної подвійної точності із плаваючою точкою (Double-precision floating-point numbers). Константа, за замовчуванням, має тип довге ціле число (Long integer numbers) довжиною 32 біти. Типи змінних можна змінювати за допомогою меню, що викликається правою кнопкою миші, пункт Representation (рис. 2.4). Типи змінних, що використовуються у LabVIEW дивись у Додатку 1. Для конвертації числових типів змінних використовують блоки Functions\Numeric\Conversion.

Рис.2.4 – Вибір типу змінної

ЛОГІЧНІ ОПЕРАЦІЇ

If you ask electronics engineer

"To be or not to be ?" ,

his answer will be "One!"

Для логічних операцій елементами вводу будуть перемикачі, тумблери та кнопки, а елементами виводу – індикаторні лампи. Ці елементи розташовані в меню Controls\Boolean. Блоки логічних операцій можна знайти в меню Functions\Boolean. Булева алгебра використовує два стану змінних: True (Вірно) та False (Хибно), або у бінарному представленні відповідно 1 та 0. Функціональні блоки булевої алгебри та зв’язки між ними в системі LabVIEW зображують зеленим кольором (рис.2.4).

Рис.2.4 – Логічні операції

Приклад. Розробити програму, у якій із використанням логічних операторів реалізується така функція: сигнальна лампа HL загориться тільки якщо дві кнопки SB1 та SB2 увімкнені.

Створюємо нову програму, на лицьовій панелі розташовуємо дві кнопки із індікаторною лампою Controls\Boolean\Push_Button – це будуть кнопки SB1 та SB2. У якості сигнальної лампи HL обираємо зображення круглої світлодіодної лампи Controls\Boolean\Round_LED (рис. 2.5).

Оскільки лампа HL має світитися тільки коли обидві кнопки SB1, SB2 натиснуті, обираємо логічну операцію І (And) Functions\Boolean\And.

Рис. 2.5 – Результат виконання прикладу

Використання структури FORMULA NODE

Для виконання складніших арифметичних або логічних операцій використовується структура Формула (Formula Node) з розділу Functions\Structure. Вона є прямокутним текстовим полем, призначеним для запису математичних та логічних операцій у синтаксисі аналогічному мовам високого рівня типу Паскаля. Список доступних для використання функцій і операцій можна отримати в довідковій системі. Дії у Formula Node проводяться над змінними, які необхідно позначити як вхідні і вихідні, привласнивши їм індивідуальні імена. Для цього в контекстному меню Formula Node (викликається правою кнопкою миші при розташуванні вказівника на рамці Formula Node) вибирають пункти Add Input (додати вхід), Add Output (додати вихід). Ці входи і виходи служитимуть терміналами приєднання зв'язків, для чого їх треба назвати відповідно до імен змінних, що використовуються у Formula Node (рис. 2.6).

Рис. 2.6 – Додавання вхідної змінної до формули

Приклад 2. Для реалізації виразу A = (B + C)/5 за допомогою Формули, необхідно вставити прямокутне поле Formula Node на діаграму, додавши йому довільний розмір. Помістити вказівник миші на прямокутник і, натиснувши праву клавішу миші, вибрати в контекстному меню Add Input (додати вхід). У поле, що з'явилося, вписати ім'я входу «В» (рис. 2.6). Аналогічно додати вхід «С». Потім, в контекстному меню вибрати Add Output (додати вихід) і назвати його «А». Всередині прямокутника Formula Node вписати арифметичний вираз «A = (B + C)/5;». Підключити за допомогою котушки до входів і виходів відповідні елементи управління і індикації.

Front Panel

Block Diagram

Рис. 2.7 – Приклад використання Formula Node

Зверніть увагу, що у Formula Node в якості десяткового роздільника використовується крапка, наприклад «10.58». Кожен арифметичний вираз має закінчуватися крапкою із комою «;».

Якщо потрібно виконати обчислення виразу лише із однією змінною, можна скористатися блоком Expression Node (Вираз). На рис. 2.8 показано приклад використання Expression Node для переведення колової (кутової) частоти (радіан за секунду) у період коливань (секунди). Оператори та функції для блоків Formula Node та Expression Node наведені у додатку 2.

Рис. 2.8 – Приклад використання Expression Node

Type Cast

Кожен тип даних зберігається в пам'яті компютера у вигляді характерної послідовності біт. При зміні типу даних послідовність бітів інтерпретується по-різному. Використання функції «Type Cast» (зміна типу) з палітри Functions\ Numeric\ Data Manipulation\ може змінити тип даних. Рис. 2.9 показує деякі приклади перетворення формату між рядками і числовими даними, а також між будь-якими даними і булевими даними.

Рис. 2.9 Приклади використання функції «Type Cast»

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

Функція «Type Cast» може бути корисна для роботи з Enums (переліками). Рис. 2.10 показує перетворення цілого числа в перелік. На рис. 2.10a показано невірну реалізацію цієї задачі, на рис. 2.10б правильна реалізація.

Enums мають тип даних U16 за замовчуванням, який може бути змінений на U8 і U32. На рис 2. 4a Enums з типом за замовчуванням U16 використовується із джерелом даних типу U32. Оскільки ці два типи даних не сумісні, «Type Cast» не обробляє байт як очікувано і для вхідного значення «2» на виході маємо «sine» замість бажанго «tangent».

Рис. 2.10 Використання «Type Cast» для перетворення Integer у Enumerated а) невірна; б) правильна реалізація

Щоб уникнути помилок такого типу, які важко діагностувати, корисно завжди робити перетворення прямо перед викликом «Type Cast», щоб це було показано на блок-схемі, оскільки стандартне представлення інших джерел даних можуть бути I32 (лічільник ітерацій у циклах), U32 (перетворення формату) тощо, і у потоку даних за колірним кодуванням явно не відрізнятися (рис. 2.10б). З міркувань сумісності варто не змінювати тип даних за замовчуванням Enum-змінних.

Завдання 1:

1.1 ВІ перетворює значення температури з градусів Цельсія в температуру за шкалою Кельвіна (К = °С + 273,15)

1.2 ВІ перетворює значення температури з градусів Цельсія в температуру за шкалою Реомюра (°R = 4/5°С)

1.3 ВІ перетворює значення температури за шкалою Кельвіна в градуси Цельсія (°С = К – 273,15)

1.4 ВІ перетворює значення температури за шкалою Реомюра в градуси Цельсія (° С = 5/4 °R)

1.5 ВІ перетворює значення температури за Фаренгейтом в градуси Цельсія (°F = 9/5 °С + 32)

1.6 ВІ перетворює значення температури за шкалою Реомюра в температуру за Фаренгейтом (°F = 9/4 °R + 32)

1.7 ВІ перетворює значення напруги і сили струму за законом Ома в опір (R = U / I)

1.8 ВІ перетворює значення температури за Кельвіном в температуру за шкалою Реомюра (° R = 4/5 ( К – 273,15))

1.9 ВІ перетворює за законом Ома значення напруги і опору в силу струму (I = U / R)

1.10 ВІ перетворює значення динамічної в'язкості μ в кінематичну ν в'язкість (ν = –μ / ρ)

1.11 ВІ перетворює значення напруги (мВ) і сили струму (мкА) в потужність (Вт) (P = I U)

1.12 ВІ перетворює значення напруги (В) і сили струму (А) в потужність (Вт) (P = I U)

1.13 ВІ перетворює значення маси (кг) і часу (с) у масову витратуа (кг / с) (G = m / t)

1.14 ВІ перетворює значення маси (кг) та обсягу (м3) в щільність (кг / м3) (ρ = m / V)

1.15 ВІ перетворює значення обсягу (м3) і часу (с) в об'ємну витрату (м3 / с) (G = V / t)

1.16. ВІ перетворює значення тиску з мм. рм. ст. у Паскалі (Па= 133.3*мм. рт. ст.)

1.17. ВІ перетворює значення тиску з атм у мм. рм. ст. (мм. рм. ст. = 759.9*атм)

1.18. ВІ перетворює значення тиску з кгс/см2 у мм. рм. ст. (мм. рм. ст.= кгс/см2 *735)

1.19. ВІ перетворює значення тиску з бар у Паскалі (Па= 105 бар)

1.20. ВІ перетворює значення тиску з бар у кгс/см2 (кгс/см2= 1.0197 бар)

1.21. ВІ перетворює значення тиску з мм. рм. ст. у мм. в. ст. (мм. в. ст.= 13.3 мм. рт. ст.)

1.22. ВІ перетворює значення тиску з мм. в. ст. у мм. рм. ст. (мм. рт. ст.= 0.075* мм. в. ст.)

1.23. ВІ перетворює значення об’єму з м3 у літри (л= 103* м3)

1.24. ВІ перетворює значення об’єму з галонів рідини (США) у літри (л = 3.79 галон(США))

1.25. ВІ перетворює значення об’єму з галонів рідини (Британський) у літри (л = 4.55 галон(Британський))

1.26. ВІ перетворює значення об’єму з барелів у літри (л= 159 барель)

1.27. ВІ перетворює значення об’єму пінтів у літри (л=0.568 пінт)

1.28. ВІ перетворює значення довжини з дюмів в метри (м=0.0254 дюймів)

1.29. ВІ перетворює значення довжини з миль в метри (м = 1609* миль)

1.30. ВІ перетворює значення довжини з миль (морських) в метри (м= 1852* миль (морських))

1.31. ВІ перетворює значення об’єму літрів у сантілітри (1 l = 100 cl)

Завдання 2. .Реалізувати наступні арифметичні вирази:

а) використовуючи арифметичні блоки (див. приклад 1);

б) використовуючи структуру Structure\Formula Node (див. приклад 2. Зверніть увагу на написання функцій в Formula Node (див. Додаток 2).

2.1

2.2

2.3

2.4

2.5 a =

2.6 a =

2.7

2.8

2.9

2.10

2.11

2.12

2.13

2.14

2.15

2.16

2.17

2.18

2.19

2.20

2.21

2.22

2.23

2.24

2.25

2.26

2.27

2.28

2.29

2.30

Завдання 3. Реалізувати наступні логічні функції (A і В – входи, С – вихід). Як джерела введення (A, B) двійкової інформації необхідно використовувати перемикачі з розділу Controls Boolean. Індикацію (C) здійснити лампою з того ж розділу меню.

3.1

A

B

C

0

0

0

0

1

1

1

0

1

1

1

0

3.2

A

B

C

0

0

1

0

1

0

1

0

1

1

1

1

3.3

A

B

C

0

0

0

0

1

0

1

0

0

1

1

1

3.4

A

B

C

0

0

1

0

1

1

1

0

1

1

1

0

3.5

A

B

C

0

0

1

0

1

1

1

0

0

1

1

1

3.6

A

B

C

0

0

1

0

1

0

1

0

0

1

1

1

3.7

A

B

C

1

0

0

0

1

0

0

0

1

1

1

0

3.8

A

B

C

1

0

1

0

1

1

1

1

1

0

0

0

3.9

A

B

C

1

0

0

0

1

1

0

0

0

1

1

1

3.10

A

B

C

0

1

1

1

1

0

1

0

1

0

1

1

3.11

A

B

C

0

1

0

0

0

1

1

0

0

1

1

1

3.12

A

B

C

1

1

1

0

1

0

1

0

1

0

0

1

3.13

A

B

C

1

0

0

0

1

0

0

0

1

1

1

0

3.14

A

B

C

0

0

1

1

0

0

1

1

1

0

1

0

3.15

A

B

C

1

0

1

0

1

0

0

0

0

1

1

1

3.16

A

B

C

1

1

0

0

1

1

1

0

1

0

0

0

3.17

A

B

C

0

1

1

0

0

0

1

0

1

1

1

1

3.18

A

B

C

0

0

1

1

1

0

1

0

0

0

1

1

3.19

A

B

C

0

1

1

0

0

1

1

0

1

1

1

0

3.20

A

B

C

1

0

1

1

1

1

0

1

0

0

0

1

3.21

A

B

C

1

1

0

0

1

1

1

0

0

0

0

1

3.22

A

B

C

1

0

1

0

1

0

0

0

1

1

1

1

3.23

A

B

C

0

1

0

1

0

1

0

0

0

1

1

0

3.24

A

B

C

1

0

1

0

0

1

0

1

0

1

1

0

3.25

A

B

C

1

0

1

0

1

0

0

0

1

1

1

1

3.26

A

B

C

1

1

0

0

0

1

0

1

0

1

0

1

3.27

A

B

C

1

1

1

1

0

1

0

1

1

0

0

0

3.28

A

B

C

0

0

0

1

1

0

0

1

1

1

0

1

3.29

A

B

C

0

1

1

1

1

0

1

0

1

0

0

0

3.30

A

B

C

1

1

1

1

0

0

0

1

1

0

0

1

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

1. З яких основних компонентів складається Ваш ВП?

2. Які вузли на блок-діаграмі ВП Ви знаєте?

3. Як відображаються термінали даних і які функції вони виконують?

4. Які типи даних Ви знаєте?

5. Як з'єднуються об'єкти?

6. З яких підпалітр складається палітра Controls (Елементів)?

7. З яких підпалітр складається палітра Functions (Функцій)?

8. Як здійснюється запуск розробленого ВП?

9. Назвіть призначення кнопок на блок-діаграмі.

10. Назвіть призначення кнопок на лицьовій панелі.

11. Що таке елемент управління і елемент відображення?

12. Назвіть основні типи даних.

13. Як ввести число в елемент управління?

14. Для чого призначений формульний блок Formula Node? Як створити термінал на кордоні блоку Formula Node?