Основи роботи з TCP/IP в LabVIEW для професійно-технічної освіти

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

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

Найбільшого поширення набули мережі з попередньою установкою з’єднання, в яких використовується стек протоколів TCP/IP, хоча в багатьох випадках успішно застосовуються прості протоколи мережевого обміну без установки з’єднання, наприклад UDP.

Ви можете використовувати LabVIEW для взаємодії з низькорівневими протоколами, це кращий шлях вивчення мережевих протоколів “з середини”. Застосовуйте функції TCP/IP, наприклад для зв’язку з будь-яким іншим комп’ютером, пристроєм або програмою, які також підтримують TCP/IP.

LabVIEW підтримує і TCP/IP, і UDP-протоколи, доступ до яких здійснюється через палітру Data Communication » Protocols. У LabVIEW також реалізовані високорівневі функції потокової передачі даних, їх ви знайдете в палітрі Data Communication » Network Streams.

TCP/IP (Протокол управління передачею даних / протокол Інтернету) є основним протоколом для роботи в мережі Інтернет та більшості внутрішніх мереж.

В даному випадку TCP – скорочення від Transmission Control Protocol (Протокол управління передачею даних), a IP – абревіатура для Internet Protocol (Протокол Інтернету). Протокол Інтернету розділяє ваші дані на керовані пакети, що звуться датаграмами, і вирішує, яким чином передати їх з А в В.

Проблема полягає в тому, що протокол Інтернету не є «ввічливим» і не буде співпрацювати з віддаленим комп’ютером, який може створити проблеми. І як у випадку з великим об’ємом пошти у поштовій службі, протокол Інтернету не гарантує доставку датаграм. Тому до протоколу Інтернету доданий протокол управління передачею, який забезпечує взаємодію з іншими комп’ютерами і гарантує доставку датаграм в установленому порядку (що більше схоже на приватного експрес-кур’єра).

TCP є протоколом зі встановленням з’єднанням. Це означає, що перед передачею даних ви повинні встановити зв’язок, використовуючи певний протокол. При підключенні до сайту слід задати його IP-адресу і порт із цією адресою. ІР-адресою є 32-бітове число, яке часто представляється у вигляді рядка з чотирьох чисел, розділених крапками, наприклад 128.25.0.112. Портом служить число в діапазоні від 0 до 65535. Одночасно ви можете мати багато активних з’єднань. Якщо ви вже знайомі з UNIX або використовували програми, що працюють з Інтернетом, сказане не буде новиною.

Віртуальні прилади LabVIEW

LabVIEW має набір віртуальних приладів, які знаходяться в підпалітрі TCP палітри Комунікація. Вони дозволяють виконувати операції, пов’язані з TCP, такі як відкриття зв’язку по заданій IP-адресі, перегляд поточних TCP-підключень, зчитування і запис даних і т.д. Вони легкі у використанні, за умови що ваша мережа налаштована правильно (Рис. 1).

Палітра TCP/IP

Рис. 1. Палітра TCP/IP

Хорошим початком роботи зі створення мережевого віртуального пристрою буде знайомство з прикладами, наявними в повній версії LabVIEW: Simple Data Client.vi і Simple Data Server.vi. Їх діаграми показані на Рис. 2 і 3.

Блок-діаграма Simple Data Client.vi

Рис. 2. Блок-діаграма Simple Data Client.vi

Блок-діаграма Simple Data Server.vi

Рис. 3. Блок-діаграма Simple Data Server.viТрохи познайомитися з програмою клієнт/сервер можна, вивчаючи ці діаграми. Процес створення віртуального приладу клієнта в основному складається з трьох етапів:

  • запит TCP-з’єднання. Ви можете встановити час очікування (timeout), щоб уникнути «зависання» програми, якщо сервер не відповідає;
  • зчитування (або запис) даних. Дані завжди передаються у вигляді рядка;
  • закриття ТСР-з’єднання.

Процес створення програми сервера також складається з трьох етапів:

  • очікування з’єднання;
  • запис (або зчитування) даних. Дані завжди передаються у вигляді рядка;
  • закриття ТСР-з’єднання.

Взаємодія з мережевим протоколом TCP/IP

Оскільки всі дані в мережі TCP/IP повинні передаватися у вигляді рядка, виникає необхідність в перетворенні ваших даних у строковий тип LabVIEW. Найлегшим способом для цього є використання функції Приведення типу (Type Cast). Переконайтеся лише в тому, що і клієнт, і сервер знають точно, який тип даних вони передають. Якщо, наприклад, сервер переводить числа підвищеної точності з плаваючою комою в рядок, а клієнт намагається перетворити рядок в число подвоєною точності, то результат буде неправильним.

Якщо вам потрібен загальний метод передачі даних, спробуйте скористатися змінним типом даних, перетвореним в рядок. В результаті ви будете точно знати, який тип даних перетворений (variant). Після зворотного перетворення ви можете проаналізувати variant засобами.

Управління розподіленою системою мережі

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

Вдодаток до усіх чудових особливостей середовища розробки LabVIEW варто згадати те, що вони прозоро працюють у мережі. Мережева прозорість вказує на можливість здійснювати операції з віртуальними приладами або середовищем розробки на віддаленому пристрої через локальну мережу або Інтернет таким же чином, як і на локальному клієнтському комп’ютері. В такому випадку необхідно організувати введення/виведення сигналів на віддаленому комп’ютері, в той час як комп’ютер на робочому місці буде аналізувати зібрану інформацію без необхідності розробки будь-яких спеціальних мережевих програм і опису складних функцій протоколу TCP/IP.

Так, на рис. 4 і 5 показано наскільки просто запустити на виконання програму на віддаленому комп’ютері. Дані функції вже реалізовані і входять в палітру Application Control.

Реалізація програми foo.vi на локальному комп'ютері

Рис. 4. Реалізація програми foo.vi на локальному комп’ютері

Запуск аналогічної програми foo.vi віддалено, через Інтернет, за адресою lv.app.com

Рис. 5. Запуск аналогічної програми foo.vi віддалено, через Інтернет, за адресою lv.app.com

Можливості сервера віртуальних приладів виконуються в середовищі LabVIEW шляхом виклику функцій блок-діаграми, подібних наведеним на малюнках вище. Однак сервер також надає доступ до власних функцій із зовнішніх додатків, будь це алгоритми Visual Basic або макроси, використовуючи клієнт автоматизації ActiveX і з віддаленої програми LabVIEW через протокол TCP/IP.

Архітектура взаємодії з сервером

Рис. 6. Архітектура взаємодії з сервером

Схема на рис. 6 ілюструє таку архітектуру. Як можна помітити, згідно цій діаграмі функції сервера віртуальних приладів доступні через функції на блок-діаграмі, зовнішні ActiveX програми або через віддалений віртуальний прилад з використанням протоколу TCP/IP.

 

Використовуйте сучасні рішення для професійно-технічних навчальних закладів:

LabVIEW – це провідне середовище розробки та платформа для виконання програм справжніх науковців та інженерів. Опановуйте серйозну професію з школи – вивчаючи конструювання і робототехніку з Lego ви зможете і в професії використовувати отримані знання.

До початку