Home Лаборатория
Назад Оглавление Вперед

3. Разработка VI для функционирования в сети Internet

         При разработке лабораторных практикумов удаленного доступа на базе имитационных моделей и реального оборудования возникает проблема дистанционного управления лабораторным стендом и отображения пульта управления на экране обучающегося. Среда программирования LabVIEW предоставляет широкие возможности для создания программного обеспечения по управлению реальными объектами, в том числе с возможностью удаленного доступа через сеть Internet.
         Для представления виртуальных инструментов в браузере пользователя используется G Web Server, входящий в состав Internet Developers Toolkit. По-сле инсталляции данного пакета запуск веб сервера осуществляется из верхнего меню Project – Internet Toolkit – Start HTTP Server…При этом запускается виртуальный инструмент, осуществляющий поддержку http сервера на данной ма-шине (рис. 11). После этого к ней можно обращаться через ее IP или DNS адрес в адресной строке браузера. При отладке программного обеспечения к http серверу можно обращаться локально через localhost.



Рис. 11. HTTP сервер


        Сервер располагается в папке Program Files/National Instru-ments/LabVIEW/internet/. В папке home размещаются html страницы. Первоначально загружается файл index.htm, находящийся в папке home. Кроме того, в папке home находится папка cgi-bin, где размещаются виртуальные инструменты, осуществляющие CGI интерфейс.
        Для размещения изображения передней панели vi на html странице используется следующий тэг:

<P><IMG SRC="http://62.76.177.133/.snap?teplogen_otd.vi" ALIGN="BOTTOM" BORDER="1" USEMAP="#panel" ISMAP></P>

Возможно вместо параметра snap использовать параметр monitor для анимационных изображений, тогда после имени vi задаются параметры &refresh=1&lifespan=60 (обновление будет через 1 сек в течение 60 сек). Не все браузеры поддерживают данный режим.
         Отображение передней панели виртуального инструмента на машине клиента будет возможно только в том случае, если на сервере данный vi уже будет запущен. Для обеспечения возможности удаленного запуска через Internet браузер виртуального инструмента, обслуживающего лабораторную установку, а также последующего управления ею, необходима разработка vi, осуществляющего поддержку CGI интерфейса. Данный vi обязательно должен находиться внутри папки cgi-bin.
         Рассмотрим набор основных функций, используемых при разработке vi для cgi интерфейса и управления другими приложениями (рис. 12).



Рис. 12. Функции для CGI интерфейса и работы с другими приложениями


  1. CGI Reade Request (Internet–CGI–CGI) – ожидает запрос и при подключении использует env - окружение (Keyed Array). Cgi connection inf - используется для передачи информации о соединении.
  2. CGI Get Query Parameters (Internet–CGI)– возвращает параметры, пришедшие с cgi запросом (от окружения), которые в последующем и приходится разбирать по переменным.
  3. Keyed Array Index (Internet–CGI–Keyed Array)- возвращает значение элемента массива (array in) по ключу -(key) – имени переменной окружения (page -– страница которой передается дальнейшее управление, temp– увеличение/уменьшение температуры, control– запуск/закрытие виртуального инструмента). valid key - указывает, что данная переменная получена; value - содержит значение полученной переменной.
  4. CGI Write Reply (Internet–CGI–CGI)- пишет ответ на http соединение. В header его подается значение переменной page – страницы, на которую пере-дается управление в последующем.
  5. CGI Release (Internet–CGI–CGI)– информирует сервер, что обработка запроса закончена.
  6. Open VI Reference (Application Control - Open VI reference) - возвращает ссылку на VI указанный в vi path -- локальный путь к запускаемому vi.
  7. Invoke Node (Application Control) - вызов методов и действий с vi.
    • установка работы с виртуальным инструментом – контекстное меню, Select VI Server Class - Virtual Instruments
    • метод - контекстное меню - Methods -
      • Get Control Value - получение значения от указанного vi по соответствующей переменной (по Control Name). Переменная указывается четко по ее названию в запущенном vi (можно русское название). Соединяются между собой через reference и ошибки.
      • Set Control Value - установка (передача) значения установленной переменной.
      • Run VI - запускает vi, необходимо подать False, чтобы не ждал завершения выполнения программы.
      • Abort VI - останавливает работу запущенного vi.
  8. Unflatten From String / Flatten To String (Advanced - Data Manipulation) - конвертирует бинарную строку к приведенному типу, какой указывает пользователь (в вещественные, булевы и др.), или нечто (вещественные, булевы и др.) конвертирует в бинарную строку для передачи запущенному vi - через Set Control Value (Type Description - строка).
  9. Property Node (Application Control) - пишет или считывает информацию о свойствах vi.
      - открытие передней панели - контекстное меню-Property-Front Panel Window-Open (true - открыть, false - закрыть), затем контекстное меню-Change to Write. Соединяется через reference.
  10. Close Application or VI Reference (Application Control - Open VI reference) - закрывает открытые vi или соединения.



Рис. 13. Пример виртуального инструмента для CGI интерфейса.


         На рис. 13 изображен вариант виртуального инструмента, который позволяет осуществлять дистанционный запуск и управление виртуальным инструментом apparat_e.vi. В качестве входных параметров могут быть заданы:
  • название Internet страницы, которая в последующем будет загружена клиенту (блок 1) – параметр page;
  • команда на запуск двигателя (dvig), насоса (nasos), нагревателя (nagrev) или уменьшение/увеличение параметра регулирования (dec, inc именно данный вариант показан на рис. 13) (блок 2) – параметр temp;
  • открытие или закрытие vi на сервере (блок 3) – параметр control.
Ссылка на данный vi из запускаемой Internet страницы имеет вид:


<a href="http://localhost/cgi-
bin/apparat/apparat_cgi_e.vi?control=open&page=/apparat/apparat_map.htm">


Текст Internet страницы, на которой отображается передняя панель пульта управления vi apparat_e.vi может быть представлена в виде:

<HTML>
<HEAD>
       <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=win-1251">
       <META NAME="Author" Content="Internet Toolkit">
</HEAD>

<BODY> <p align="center"><font color="#800000" size="4"><strong>Опрос каналов и управление работой установки</strong></font></p>
<P><IMG SRC="http://localhost/.snap?apparat_e.vi" ALIGN="BOTTOM" BORDER="1" USEMAP="#panel" ISMAP></P>
<MAP Name="panel">
<AREA Shape="Rect" coords = "408,18,680,162"
   HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm">
<AREA Shape="Rect" coords = "408,182,680,326"
   HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm">
<AREA Shape="Rect" coords = "408,344,680,489"
   HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm">
<AREA Shape="Rect" coords = "280,453,386,483"
   HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?control=close&page=/index.htm">
<AREA Shape="Rect" coords = "58,408,80,441"
   HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm& temp=dvig">

<AREA Shape="Rect" coords = "196,408,218,441"
HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm& temp=nagrev">

<AREA Shape="Rect" coords = "328,408,350,441"
HREF="http://localhost/cgi-bin/apparat/apparat_cgi_e.vi?page=/apparat/apparat_map.htm& temp=nasos">

</MAP>

</BODY>
</HTML>

        В блоке MAP Name="panel" осуществляется картирование изображения передней панели vi, при помощи которого выделяются органы управления на пульте (кнопки, переключатели, регуляторы, экраны обновления и др.) Нажатие левой кнопки мыши на выделенные фрагменты рисунка вызывает передачу cgi файлу необходимых параметров, в соответствии с которыми он осуществляет определенные действия (открытие соответствующей Internet страницы, запуск двигателя, изменение величины параметра регулирования, открытие vi и др.)
Назад Оглавление Вперед