Основи роботи з 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).

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

Рис. 2. Блок-діаграма Simple Data Client.vi
Рис. 3. Блок-діаграма Simple Data Server.viТрохи познайомитися з програмою клієнт/сервер можна, вивчаючи ці діаграми. Процес створення віртуального приладу клієнта в основному складається з трьох етапів:
- запит TCP-з’єднання. Ви можете встановити час очікування (timeout), щоб уникнути «зависання» програми, якщо сервер не відповідає;
- зчитування (або запис) даних. Дані завжди передаються у вигляді рядка;
- закриття ТСР-з’єднання.
Процес створення програми сервера також складається з трьох етапів:
- очікування з’єднання;
- запис (або зчитування) даних. Дані завжди передаються у вигляді рядка;
- закриття ТСР-з’єднання.
Взаємодія з мережевим протоколом TCP/IP
Оскільки всі дані в мережі TCP/IP повинні передаватися у вигляді рядка, виникає необхідність в перетворенні ваших даних у строковий тип LabVIEW. Найлегшим способом для цього є використання функції Приведення типу (Type Cast). Переконайтеся лише в тому, що і клієнт, і сервер знають точно, який тип даних вони передають. Якщо, наприклад, сервер переводить числа підвищеної точності з плаваючою комою в рядок, а клієнт намагається перетворити рядок в число подвоєною точності, то результат буде неправильним.
Якщо вам потрібен загальний метод передачі даних, спробуйте скористатися змінним типом даних, перетвореним в рядок. В результаті ви будете точно знати, який тип даних перетворений (variant). Після зворотного перетворення ви можете проаналізувати variant засобами.
Управління розподіленою системою мережі
Мережеві додатки дуже зручні в тих випадках, коли потрібно написати програму для управління великою розподіленою системою.
Вдодаток до усіх чудових особливостей середовища розробки LabVIEW варто згадати те, що вони прозоро працюють у мережі. Мережева прозорість вказує на можливість здійснювати операції з віртуальними приладами або середовищем розробки на віддаленому пристрої через локальну мережу або Інтернет таким же чином, як і на локальному клієнтському комп’ютері. В такому випадку необхідно організувати введення/виведення сигналів на віддаленому комп’ютері, в той час як комп’ютер на робочому місці буде аналізувати зібрану інформацію без необхідності розробки будь-яких спеціальних мережевих програм і опису складних функцій протоколу TCP/IP.
Так, на рис. 4 і 5 показано наскільки просто запустити на виконання програму на віддаленому комп’ютері. Дані функції вже реалізовані і входять в палітру Application Control.

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

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

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