TCP read не считывает данные

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

TCP read не считывает данные

Сообщение Denis29 »

Добрый день! Имеется двухколесная тележка, с двумя моторами соответственно и своей платой управления, на которую по usb кабелю через локальный TCP сокет подаются простые команды управления (движение вперед, назад, повороты и т.д.). Также имеются датчики одометрии, и при попытке снять эти данные, при помощи подачи соответствующей команды, данные в Labview не считываются. При этом данные одометрии принимаются в консоли сокета, минуя каким-то образом Labview. Прикрепляю код, в данном случае все параметры у функции TCP read стоят по умолчанию, но при попытке задания их вручную, данные все равно не принимаются и возникает error 56 - мол истекло время ожидания функции.
Подскажите пожалуйста, в чем может быть причина.

Заранее спасибо!
TCP read.jpg
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5463
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: TCP read не считывает данные

Сообщение IvanLis »

Начните с изучения стандартных примеров TCP приемник/передатчик.
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: TCP read не считывает данные

Сообщение Super Star »

меня смущает что вы запрос сами себе посылаете
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: TCP read не считывает данные

Сообщение Oleg B. »

1.Установите правильный адрес и порт.
2. Отключите антивирус (web access protection)
veni, vidi, phallomorphi
Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

Re: TCP read не считывает данные

Сообщение Denis29 »

меня смущает что вы запрос сами себе посылаете
Запрос я посылаю в локальный сокет, через него команда уже поступает на устройство, которое выдает ответ в консоль сокета, но до labview ответ не доходит. Получается, встает вопрос - можно ли как-то считать эти данные из консоли или нет...
1.Установите правильный адрес и порт.
2. Отключите антивирус (web access protection)
Адрес и порт установлены правильно, отключать антивирус пробовал, не помогает...((
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: TCP read не считывает данные

Сообщение Vitekkz88 »

параметры у функции TCP read стоят по умолчанию, но при попытке задания их вручную, данные все равно не принимаются и возникает error 56 - мол истекло время ожидания функции.
Параметры чтения задавайте вручную. Для начала читайте в режиме Immediate, количество байт ставьте заведомо больше,чем ожидаете(килобайт поставьте,например).
Далее,на каком этапе происходить ошибка?У Вас соединение устанавливается?Или Вам ошибку возвращает блок открытия сеанса TCP/IP соединения?Вы поставили кластер ошибки в конец,назвали номер ошибки, но кто является источником?
В каком виде вы принимаете данные?Это streem либо у Вас предусмотрен обмен по принципу "Запрос - Ответ"с подтверждениями?
Запрос я посылаю в локальный сокет, через него команда уже поступает на устройство, которое выдает ответ в консоль сокета, но до labview ответ не доходит.
Запрос вы посылаете из LabVIEW?
Вложения
TCP.png
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

Re: TCP read не считывает данные

Сообщение Denis29 »

Далее,на каком этапе происходить ошибка?У Вас соединение устанавливается?Или Вам ошибку возвращает блок открытия сеанса TCP/IP соединения?Вы поставили кластер ошибки в конец,назвали номер ошибки, но кто является источником?
Ошибка происходит на этапе чтения, т.е. на TCP read. Да, соединение устанавливается нормально.
В каком виде вы принимаете данные?Это streem либо у Вас предусмотрен обмен по принципу "Запрос - Ответ"с подтверждениями?
По принципу "запрос-ответ". при подаче ping'а тоже пока нет ответа.
Запрос вы посылаете из LabVIEW?
Да. labview является клиентом, а тележка сервером.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: TCP read не считывает данные

Сообщение Vitekkz88 »

Запрос я посылаю в локальный сокет, через него команда уже поступает на устройство, которое выдает ответ в консоль сокета, но до labview ответ не доходит. Получается, встает вопрос - можно ли как-то считать эти данные из консоли или нет...
Проверяйте реализацию локального сокета. Вы его на Си писали?
Отправили команду из LabVIEW локальному сокету. Сокет эту команду получил и отправил тележке. Тележка приняла команду и отправила ответ сокету. Сокет её получил ответ, но не отправил этот ответ в LabVIEW. Так?
Попробуйте отладиться без тележки. Отсылайте команду в сокет с помощью LabVIEW.Сокет должен принять и отослать ответ в LabVIEW. Можете потренироваться на Echo-команде. Потом парочку протокольных команд попробуйте.
Предусмотрите что-то типа BadCommand - это на случай когда отправлена пустая строка или неизвестная команда,например.
Напишите отладочную программу для своего сокета. Всё по тому же принципу - запрос/ответ.
Так же обратите внимание на порядок байт,которые отправляются из LabVIEW и принимаются сокетом(тем более если работа на разных машинах).Litle-endian или big-endian. И в обратную сторону.Должно быть строгое соответствие.
Передача данных по TCP/IP в LabVIEW работает. Сопряжение с Си-шными серверами и сокетами тоже работает.
Вложения
Client-Server.png
Simple Client.vi
(9.4 КБ) 149 скачиваний
Simple Server.vi
(8.27 КБ) 140 скачиваний
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
anda55
assistant
assistant
Сообщения: 149
Зарегистрирован: 19 янв 2012, 10:15
Версия LabVIEW: 2010-2012
Откуда: Киев
Контактная информация:

Re: TCP read не считывает данные

Сообщение anda55 »

у ТСР Read есть вход сколько байт надо прочитать.
И Если число байт не сходится с количеством байт которые надо принять - будут проблемы.
Лучше открыть HELP по ТСР Read и там есть отличные примеры.
Взять эти примеры и использовать для своей задачи.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: TCP read не считывает данные

Сообщение Vitekkz88 »

у ТСР Read есть вход сколько байт надо прочитать.
И Если число байт не сходится с количеством байт которые надо принять - будут проблемы.
Лучше открыть HELP по ТСР Read и там есть отличные примеры.
Взять эти примеры и использовать для своей задачи.
Вы бы сами для начала HELP почитали,а еще лучше о TCP/IP-протоколе, а еще лучше ветку сообщений с самого начала.
у ТСР Read есть вход сколько байт надо прочитать.
И Если число байт не сходится с количеством байт которые надо принять - будут проблемы.
Похоже что,проблемы были у Вас.А безпроблемные варианты выглядят очень просто:
1.Передача размера отправленного сообщения,затем само сообщение.
2.Проработать протокол и определить,какое максимальное кол-во байт необходимо будет принимать. Используя режим Imediate и архитектуру "запрос-ответ" проблем не будет НИКАКИХ. Либо вставлять символ окончания пакета и выполнить ТСР Read в другом режим(в каком?это Вам домашнее задание.)
Бу-бу-бу :crazy:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
anda55
assistant
assistant
Сообщения: 149
Зарегистрирован: 19 янв 2012, 10:15
Версия LabVIEW: 2010-2012
Откуда: Киев
Контактная информация:

Re: TCP read не считывает данные

Сообщение anda55 »

Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

Re: TCP read не считывает данные

Сообщение Denis29 »

Проверяйте реализацию локального сокета. Вы его на Си писали?
Отправили команду из LabVIEW локальному сокету. Сокет эту команду получил и отправил тележке. Тележка приняла команду и отправила ответ сокету. Сокет её получил ответ, но не отправил этот ответ в LabVIEW. Так?
Да, все именно так.
Сокет был написан не мной, и на языке Lua. Думаю в этом и проблема, видимо по умолчанию у Labview нет сопряжения с такими сокетами. Буду разбираться с сокетом, спасибо!
Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

Re: TCP read не считывает данные

Сообщение Denis29 »

anda55 писал(а):Denis29
Почитайтеhttp://labviewportal.eu/viewtopic.php?f=22&t=5583
Спасибо, это уже читал)
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: TCP read не считывает данные

Сообщение Vitekkz88 »

Сокет был написан не мной, и на языке Lua. Думаю в этом и проблема, видимо по умолчанию у Labview нет сопряжения с такими сокетами.
Вам предстоит эпичное разбирательство с Lua,шерстить его коды и добавить пару строчек для выполнения роли "транзита" между тележкой и LabVIEW.
А на каком языке поднят сокет или сервер или клиент - это не принципиально. Интерфейс взаимодействия остаётся одним и тем же. Пишите о результатах!
Успехов :wink:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Denis29
beginner
beginner
Сообщения: 10
Зарегистрирован: 20 фев 2014, 11:11
Версия LabVIEW: 13, 14
Контактная информация:

Re: TCP read не считывает данные

Сообщение Denis29 »

В общем решили не использовать tcp сокет, а передавать данные напрямую в HEXe через виртуальный com-порт, при помощи протокола VISA. Пока все получается, спасибо всем за помощь!)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»