Програми з галуженням у LabVIEW


Навіть програміст-початківець чудово розуміє наскільки вузька сфера застосування у лінійних програм. Скажемо відверто: без галуження та умовних переходів у програмуванні нікуди. У LabVIEW існує декілька інструментів для організації перевірки певної умови та реакції на неї. Найбільш простим із них є використання операторів порівняння, які повертають значенні “Істина” (True) у разі виконання певної умови. Розміщені ці оператори у вкладці “Comparison”, яка, в свою чергу, знаходиться у палітрі “Arith/Compare”.

 

Оператори для порівняння у LabVIEW

Оператори для порівняння у LabVIEW

У цій же вкладці знаходиться також інструмент “Select”, який повертає на виході одну із двох вхідних величин у залежності від того, яка логічна величина подається на керуючий вхід. Якщо на вході значення “Істина”, то на вихід потрапляє величина із верхнього терміналу, інакше – із нижнього.Тут же знаходиться і експрес-інструмент “Comparison” (із жовтими кубиками на піктограмі). Експрес-інструмент це така функція, поведінку якої можна налаштувати відповідно до вимог. В даному випадку можна самому задати яку функцію порівняння виконуватиме інструмент (порівняння двох чисел, порівняння числа з константою, тощо).

Та можливостей операторів порівняння для написання складних програм, вочевидь, не достатньо. Тут на допомогу нам прийде “Case Strucrure”, розміщена в палітрі “Exec Ctrl”, яка дозволяє виконувати цілі частини програми в залежності від певної умови.

 

Оператори галуження у LabVIEW

Оператор галуження "Case" у LabVIEW

Оператор “Case” є структурою, тобто всередині нього можна розміщувати інші оператори. На рисунку видно, що за замовчуванням пропонуються два можливих стани структури, причому в певний момент часу виконується тільки один із них. Який саме? Це залежить від значення на керуючому терміналі (його позначено знаком запитання).

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

 

Налаштування структури "Case"

Налаштування структури "Case"

  • Add Case Before – додає стан після поточного.
  • Add Case After – додає стан перед поточним.
  • Duplicate Case – дублює поточний стан (і весь його вміст).
  • Delete This Case  – видаляє поточний стан.
  • Remove Empty Cases – видаляє пусті (невикористані) стани.

Особливої уваги заслуговує лише опція “Make This The Default Case” – зробити цей стан станом за замовчуванням. Вона потрібна для того, щоб повідомити LabVIEW як діяти в тому випадку, коли на керуючий термінал надійде значення, не передбачене структурою “Case” (варто зауважити, що в даному випадку назва стану і є тим самим значенням, тобто для виконання додавання програмою на рисунку вище у полі “Дія” користувач повинен набрати слово “Додавання”). Якщо Ви додаєте чи видаляєте стани, то переконайтеся, що зробили один із них станом за замовчуванням, інакше програма не працюватиме (досить поширена помилка серед студентів).

Ну і нарешті зверніть увагу ще на таку штуку: при перетинання провідниками з даними границі структури “Case” у місці перетину утворюється “тунель” – такий кольоровий квадратик. Колір квадратика залежить від типу даних (синій для цілих чисел, оранжевий – для дійсних, рожевий – для тексту та зелений для логічних величин), а от якщо у якомусь із станів структури немає під’єднання до вихідного тунелю, то такий тунель буде з білим “отвором” всередині (як на рисунку нижній тунель). У цьому випадку програма теж не працюватиме, тож переконайтеся, що вихід підключено у всіх станах. Входів це правило не стосується, у випадку відсутності потреби в них цілком можна зробити отак:

LabVIEW-Case-Structure-Usage

Результат завжди рівний нулю

От наче і все про програми з галуженням у LabVIEW. Тим, кого зацікавила тема (а ще моїм студентам) рекомендую підписатися на новини за допомогою мереж “вКонтакті” або “ФейсБук” (відповідні віджети у сайдбарі). Ну і не забувайте, що у нас є ще й RSS 🙂

 

Почитайте ще оце:

Залиште коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *