
ПЛК100 + LabVIEW + джойстик v2.0
У своїй минулій статті я описував можливість управління ПЛК джойстиком і обіцяв додати невелику зміну, зв'язавши ПЛК і LabVIEW не через послідовний порт, а через Ethernet (благо, комунікаційні можливості ПЛК100 це дозволяють) і за допомогою OPC-сервера - в даному випадку це Codesys OPC Server. (До речі, аналогічним чином з LabVIEW можна пов'язати будь-який інший контролер - через OPC-сервер, який працює з конкретним контролером). У цій статті я, власне, і збираюся описати, як все це робиться.
Суть така: LabVIEW обробляє натискання кнопок джойстика; у разі натискання конкретної кнопки - змінної (всі змінні булеви) OPC-сервера, що відповідає цій кнопці, присвоюється значення TRUE; контролер читає значення змінних OPC-сервера і реагує на їх зміни відповідно до залитої в нього програми.
Частина Codesys
Оголошуємо вісім бульових глобальних змінних: у моєму випадку це x, y, a, b - для чотирьох кнопок і up, down, right, left - для хрестика.
Програма складається з функціональних блоків і виглядає так:
«Вміст» функціональних блоків можна знайти тут.
Потім необхідно налаштувати символьний файл - файл, що містить опис даних, з якими працює OPC-сервер. Для цього заходимо в Options, вибираємо там Symbol configuration, ставимо галочку на Dump symbol entries, у вікні Set object attributes вибираємо необхідні змінні.
Налаштування Codesys OPC Server я пропускаю: у Мережі вистачає інформації на цю тему. Додам тільки, що при налаштуванні з'єднання потрібно вибрати Ethernet-з'єднання. Втім, ПЛК100 можна підключити і за допомогою кабелю програмування, але це загрожує відчутною затримкою. Також варто згадати, що частоту оновлення сервера (Update Rate) я збільшив до 1500 мілісекунд: при малому значенні сервер іноді пропускає короткочасні натискання кнопок.
Частина LabVIEW
Насамперед знадобиться NI LabVIEW DSC Module (пробну версію можна завантажити на офіційному сайті). Цей додаток надає можливість працювати з даними OPC-сервера в LabVIEW.
Створюємо новий VI, додаємо на Frontal Panel 8 індикаторів.
«Пишемо »/малюємо таку ось програму:
Якщо цікавлять подробиці з приводу програми - див. тут.
Далі необхідно прив'язати OPC-змінні до індикаторів, що відповідають конкретним кнопкам джойстику. Для цього відкриваємо властивості індикатора, переходимо на вкладку Data Binding; у Data Binding Selection вибираємо DataSocket; в Access Type ставимо Write Only, оскільки нам потрібно записувати значення в змінні; у Path вибираємо DSTP Server.
У вікні, що з'явився, знаходимо потрібний нам OPC-сервер і вибираємо відповідну змінну.
Виконуємо цю маніпуляцію з кожним індикатором, після чого розуміємо, що все готово - можна підключати джойстик і знімати відео. А ось і воно, до речі.
Результатами я залишився цілком задоволений: зв'язок стабільний, пропусків натискань не спостерігалося. Але, судячи з моргання індикаторів на Front Panel, LabVIEW якось неохоче реагувала на натискання кнопок. Мені здається, що на більш потужному комп'ютері цього б не спостерігалося.