Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabVIEW_KP.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
22.1 Mб
Скачать

1.3 Організація доступу до значень попередніх ітерацій циклу

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

  • Shift Register (регістр зсуву);

  • Feedback Node (вузол зворотного зв’язку).

1.3.1 Регістр зсуву (Shift Register)

Регістри зсуву використовуються при роботі з циклами для передачі значень від поточної ітерації циклу до наступної ітерації. Регістр зсуву виглядає як пара терміналів, розташованих безпосередньо один проти одного на протилежних вертикальних сторонах границі циклу. Правий термінал містить стрілку «вгору» і зберігає дані, що до нього надходять, по завершенню поточної ітерації. LabVIEW передає дані з цього регістра в наступну ітерацію циклу. Регістр зсуву створюється натисканням правої кнопки миші на ліву або праву границю циклу та вибором з контекстного меню пункту Add Shift Register.

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

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

Приклад 3:

Регістр зсуву.

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

Рисунок 8 – Використання регістру зсуву

Рисунок 9 – Запуск ВП в режимі налагодження

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]