Передача аналоговых данных по сети UDP
Измените программы клиента и сервера, дополнив их элементами управления и индикации для передачи аналоговых данных.
· Добавьте элементы Dial, Gauge и Waveform на сервер и клиент.
· Для преобразования «строка» - «число» и наоборот используйте элементы «Number To Exponential String» и «Fract/Exp String To Number»
· Для дополнительного мониторинга полученных/принятых данных создайте элементы типа «строка» и «число»
· Запустите программу - сервер. Введите номера портов. Запустите программу – клиент. Введите номера портов. Вращайте ручку элемента Dial, наблюдайте реакцию индикаторов на стороне клиента.
Запустите на исполнение демонстрационную программу «udp_write_real.exe», а затем «udp_read.exe», не забудьте нажать кнопку старта. Введите для сервера адрес порта, на котором открыт сервер - 61556 и адрес порта, в который будут передаваться данные – 61557. Окно «remote address» можно не заполнять или ввести IP адрес локального компьютера (например, 172.20.180.155 или localhost). Элементом управления на сервере служит кнопка «DIO Line p1_1», которая управляет линией 1 порта 1 цифрового вывода. Эта линия должна быть соединена с каналом 0 аналогового входа. Тогда нажимая кнопку, на аналоговом входе 0 будет появляться / исчезать напряжение около 5 В. Инструмент «Waveform Graph» на сервер и аналогичный на клиенте отобразят это на своей шкале.
Закройте программу «udp_read.exe» на локальном компьютере и откройте ее на другом компьютер. В окно сервера «remote address» нужно ввести IP адрес компьютера, где запущен клиент, например 172.20.180.154. Введите номера портов, как в предыдущих случаях. Для удобства наблюдения работы обоих программ можно воспользоваться сервисом Windows XP «Подключение к удаленному рабочему столу». Оцените скорость передачи данных по сети UDP. Создайте аналогичные программы сервера и клиента сами.
Сервер. Для реального управления контроллером NI PCI 6221 замените элемент Dial в программе–сервер на DAQ Assistant с аналоговым входом. Щелкните по виртуальному инструменту DAQ Assist и задайте его свойства:
· Выберите канал(ы) аналогового ввода (0-15)
· Проведите тестирование работы канала
· Посмотрите схему соединения
Соедините выход «Data» инструмента DAQ Assist с входом «Data In» инструмента «UDP Write» через элемент «Number To Exponential String» или «Format Into String». Добавьте графический и числовой индикаторы. Создайте еще один DAQ Assistant, но с цифровым выходом, выбрав «Digital Output». У входа данных DAQ Assistant щелкните правой клавишей мыши и создайте элемент управления. Запустите и протестируйте программу.
Клиент. Если не было сделано ранее, в программе-клиенте создайте графический индикатор «Waveform Graph», имеющий вид осциллографа, и соедините его с элементом «Gauge».
· Запустите программу-сервер.
· Введите номера портов.
· Введите адрес клиента, например 172.20.180.155 или Fk219-04 (можно localhost для своего локального компьютера).
· Запустите программу – клиент.
· Введите номер порта сервера.
· Подайте напряжение на соответствующий вход напряжение. Это можно сделать активирую линию цифрового выхода, как в демонстрационной программе.
· Наблюдайте на стороне клиента изменение аналогового сигнала. Оцените время задержки передачи информации.
· Проверьте работу пары клиент-сервер на своем локальном компьютере и дух разных компьютерах
· Сохраните все написанные вами программы в вашей папке и на съемном носителе.
Дополнительные задания повышенной сложности
1. Замените на сервере элемент, управляющий цифровым выходом на элемент управления аналоговым выходом. Соедините физически этот канал выхода (0 или 1) с используемым аналоговым входом. Подавайте на этот выход сигнал, наблюдайте в программе – клиенте изменение напряжения
2. Создайте программу-клиент, управляющую работой программой-сервером. Для этого в программе-клиента нужно создать блок на основе элемента UDP Write, передающий командую строку серверу. С другой стороны, в программе-клиенте необходим блок, получающий командную строку от клиента. Небходимо помнить, что номер локального порта на принимающей стороне должен сопадать с номером порта, через который передающая сторона «пишет» даные. Т.о. В программе будет 3 порта (со строкой ввода)
· для чтения данных у элемента UDP Open, соединненого с UDP Read
· для пердачи данных у элемента UDP Write
· локальный порт у элемента UDP Open, соединненого с UDP Write