TCP Listen и интервал портов
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: TCP Listen и интервал портов
сделайте кэш данных с рс, или так нельзя по тех.заданию ?
я люблю свою работу.... Я приду сюда в субботу ...
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: TCP Listen и интервал портов
При создании соединения в функцию отдаете реф на семафор. Сам семафор как-бы бронирует процесс. ведь обмен по ком-порту все равно занимает определенное время и больше процессов, чем это по времени возможно, физически нельзя поддержать. Для вас оптимальным было-бы непосредственно перед обменом по порту блокировать светофор, а сразу после окончания обмена - разблокировать. Тогда будет гарантия, что другой процесс не сможет вмешаться в обмен, начав свое выполнение обмена непосредственно после освобождения светофора.
Лично у меня таким образом сделан был обмен по ТCP с ModBus устройствами (которые по спецификации допускают единственное соединение с отдельным хостом), а задач обмена - было несколько. И всё прекрасно без сбоев работает.
Лично у меня таким образом сделан был обмен по ТCP с ModBus устройствами (которые по спецификации допускают единственное соединение с отдельным хостом), а задач обмена - было несколько. И всё прекрасно без сбоев работает.
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
ммм... у меня тоже идет обмен с устройством работающим по Modbus то есть семафор будет работать между всеми работающими параллельно?Borjomy_1 писал(а):При создании соединения в функцию отдаете реф на семафор. Сам семафор как-бы бронирует процесс. ведь обмен по ком-порту все равно занимает определенное время и больше процессов, чем это по времени возможно, физически нельзя поддержать. Для вас оптимальным было-бы непосредственно перед обменом по порту блокировать светофор, а сразу после окончания обмена - разблокировать. Тогда будет гарантия, что другой процесс не сможет вмешаться в обмен, начав свое выполнение обмена непосредственно после освобождения светофора.
Лично у меня таким образом сделан был обмен по ТCP с ModBus устройствами (которые по спецификации допускают единственное соединение с отдельным хостом), а задач обмена - было несколько. И всё прекрасно без сбоев работает.
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: TCP Listen и интервал портов
Если отдается всем один реф, то будет работать между всеми в рамках одного проекта/исполняемого файла. Единственная тонкость: реф надо держать в отдельном VI (в котором он создается и хранится в шифт регистре, и по команде отдается), иначе сразу после создания он может быть уничтожен сборщиком мусора.
- Вложения
-
- VI примерно такого вида. В одном месте вызывается с параметром Инит, а в каждом отдельном потоке - с параметром Читать. При окончании работы - вызов с параметром Удалить
- хранение рефа.png (18.81 КБ) 4672 просмотра
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
Раз в данной теме мы уже говорили про асинхронный запуск и тому подобные вещи. Проблема в общем такая, была сделана главная менюшка для того чтобы запускать разные . Все замечательно работало до того момента пока не собрал в .exe!
Запуск по нажатию кнопок был реализован так(одинаково для всех):
из всех кнопок пока сделано три это "Настройки", "Вект.диагр", "Гармон.спектр". Они работают во время отладки но когда собираю exe работает только Настройки=(
Может кто сталкивался с такой проблемой? какие решения?
Запуск по нажатию кнопок был реализован так(одинаково для всех):
из всех кнопок пока сделано три это "Настройки", "Вект.диагр", "Гармон.спектр". Они работают во время отладки но когда собираю exe работает только Настройки=(
Может кто сталкивался с такой проблемой? какие решения?
-
- VIP
- Сообщения: 1327
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: TCP Listen и интервал портов
Все динамически вызываемые VI вы, надо полагать в exe положить не забыли? Скорей всего Open VI Reference ошибку выдаёт - проверьте, что там на выходе.
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
хм, несколько раз пересобрал и заработала кнопка "Гармон.спектр" полный бред, ничего не изменял=/
Смотрим ошибки:
Получилось вот что при нажатии кнопки "Вектр.диагр."
Смотрим ошибки:
Получилось вот что при нажатии кнопки "Вектр.диагр."
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: TCP Listen и интервал портов
Надо брать атрибут не Name, а Path.
Компилятор, кстати вполне справляется с выявлением таких случаев, специально не требуется указывать билдеру динамически вызываемую vi, если на нее дать референс.
Компилятор, кстати вполне справляется с выявлением таких случаев, специально не требуется указывать билдеру динамически вызываемую vi, если на нее дать референс.
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
Изменил на Path, код ошибки изменился на 15! это обозначает что поврежден?
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
Короче нашлась ошибка из за чего не хотело всплывать окно, ею оказалась если в настройках окна Windows Appearence галочка стоит на Defalt, то ошибка! если поставить на Dialog все срабатывает Аномалия прям, как это вообще связанно?=)
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: TCP Listen и интервал портов
Это вполне рабочий и проверенный вариант, правда я делал под LV2009. Позволяет запустить любой VI
- Di3el
- beginner
- Сообщения: 45
- Зарегистрирован: 18 дек 2012, 17:28
- Версия LabVIEW: 11
- Откуда: Российская Федерация
- Контактная информация:
Re: TCP Listen и интервал портов
Такой вопрос! пытаюсь отправить сообщение на сервер (сервер одной компании), все что будет приходить на порт 11810 будет переадресовываться на другой IP (промышленного модема). Но соединение не устанавливается так как на сервере нету слушателя, как быть? как отправить сообщение, а то как там примут и что сделают с сообщение меня не должно касаться?
Видно что на соединении висит и все
Видно что на соединении висит и все
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: TCP Listen и интервал портов
Di3el, С той стороны должен стоять серверное приложение, которое слушает этот порт 11810. Возможно фаервол на сервере вас не пускает, либо ваш.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 15 Ответы
- 4579 Просмотры
-
Последнее сообщение Kirya
-
- 38 Ответы
- 13221 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 5 Ответы
- 240 Просмотры
-
Последнее сообщение IvanLis