Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
|
LTR11Использовал пример для управлением LTR11 в среде LabView, следующая проблема. Создаю exe, ПК на котором создавался exe все работает, идет сбор данных и т. д., а если перенести на другой ПК предварительно установив туда LabVIEW_Runtime_Engine_2011 и ltr server, приложение запускается, ltr server подключается без проблем, но крейта программа не видит, подсоединяется все через ethernet. Думал проблема в антивирусах и т. д., но lgraph видит крейт , в чем может быть проблема? |
|||
|
||||
|
|
Re: LTR11Несколько вопросов, чтобы прояснить ситуацию: 1. ltrdll из http://www.lcard.ru/download/ltr_binary.zip на новом ПК Вы устанавили? ltrModulesNet.dll тоже перенесли на новый ПК? 2. Что за ОС на другом ПК? 3. Никакие исключительные ситуации (сообщения об ошибках) при запуске Вашей программы не возникают? 4. Под не видит крейт подразумевается что LTR11_Open возвращает ошибку? Или Вы в своей программе получаете список серийных номеров крейта и он пустой? |
|||
|
||||
|
|
Re: LTR111.Когда создается ехе, ltrModulesNet.dll автоматически переносится в папку data
|
|||
|
||||
|
|
Re: LTR11А Если в LTR-Server/'е поставить самый выский уровень отладки (Настройки -> Уровень журнала -> (7) Отладочные 3), то при запуске Вашей программы (когда LTR11_Open возвращает ошибку) в журнале сервера новые записи появляются? |
|||
|
||||
|
|
Re: LTR11не появляются |
|||
|
||||
|
|
Re: LTR11Странно. Значит до сервера дело не доходит. Тогда просьба еще раз проверить:
Сейчас проверил с 2012 LavView, при установленном вышеперичисленном все заработало на XP без самой среды. И еще - точно LTR11_Open возвращает error_open_chanel, а не это значение просто было выставлено на индикаторе при создании exe и так и осталось значением по-умолчанию? |
|||
|
||||
|
|
Re: LTR11LTR11_Open действительно, был в значение по умолчанию и значение не менялось, отсутствовал фаил 11api.dll, заработало, но как то странно, некоторые модули в процессе отваливаются, пишут что переполнен буффер |
|||
|
||||
|
|
Re: LTR11А можно поподробнее - кто и где пишет, что переполнен буфер? Как часто это происходит? С одними и теми же модулями? Вы работаете с несколькими модулями LTR11 параллельно?
|
|||
|
||||
|
|
Re: LTR11ltrserver
Еще на lgraph было замечено, если достаточно долгая запись идет, то иногда в процессе записи отваливаютлись модули, обычно это происходило, если вдруг начал работать антивирус или просто винда задумывалась, а иногда и просто так, модули отваливаются разные, но чаще слот №3, переставляли местами, одна и так же история . Работаем с 5 модулями одновременно, задействовано по 4 канала в каждом. Fd=100кГц на канал.
|
|||
|
||||
|
|
Re: LTR11Fd=100кГц на канал - то есть частота сбора данных для АЦП - 400кГЦ (максимальная скорость LTR11), или 100кГц это и имеется в виду частота АЦП? На новом ПК lgraph2 работает так же как на предыдущем или с еще меньшим количеством модулей? И с меньшим числом модулей Ваша программа работает нормально на новом ПК? У Вас одна программа LabView работает сразу с 8-ю модулями, правильно? Если да, то как сделан цикл сбора данных? Если сделан общий цикл на все модули, то лучше на каждый модуль для сбора делать отдельный независимый цикл. |
|||
|
||||
|
|
Re: LTR111. Частота АЦП, 4 канала по 100кГц
|
|||
|
||||
|
|
Re: LTR11Максим, при такой нагрузке просто физически не должно хватать скорости интерфейса:
Во-вторых, есть смысл посмотреть, что происходит на компьютере: сколько процентов CPU кушает ltrserver и сколько Ваше приложение (по task manager). При большом потоке данных производительность компьютера тоже играет роль. Думается, что экстремальные потоки данных можно попробовать обрабатывать, подключая несколько крейтов по отдельным интерфейсам (не в один 100-Мбитный сегмент ethernet) к очень быстрой и многоядерной машине. Или соединить две машины гигабитным интерфейсом - на одной ltrserver, на другой приложение (??). |
|||
|
||||
|
|
Re: LTR11Кушает приблизительно: приложение 20-25% и ltr сервер 10-15% при записи с 6 модулей, завтра проверю, действительно ли работают 8 модулей.
|
|||
|
||||
|
|
Re: LTR11Вроде бы если передается в кодах АЦП,то 2 байта/отсчет ?? в чем смысл передедавать коды АЦП в process data в формате dbl, там же нет функции перевода в вольты? |
|||
|
||||
|
|
Re: LTR11В LTR формат - 4 байта на отсчёт для модуля LTR11.
|
|||
|
||||
|
|
Re: LTR11Почему не рекомендуется общий цикл, я сейчас сказать не могу, тут нужен специалист по labview, а его сейчас нет. Вообще labview - штука сложная и тяжелая (я смотрю, нагрузка от приложения в 2 раза больше, чем от ltrserver, а сервер - нельзя сказать, что очень легкое приложение...) Кстати, сколько процессорных ядер на машине? Сам ltrserver весьма многопоточный, и каждый модуль имеет свои буферы и свои потоки чтения/записи. Клиентское приложение соединяется через TCP сокеты по сути с разными потоками в ltrserver. Сокетный ввод/вывод должен буферизироваться ОС, и по идее должно быть возможно как параллельное, так и последовательное чтение данных. Видимо, в одном случае накладные расходы оказываются меньше (во время ожидания одного потока второй может обмениваться данными??) А написание программы на C/C++ не рассматривается совсем? Нагрузка очень уж большая. Я бы на Вашем месте попробовал сделать тест и сравнить производительность. |
|||
|
||||
|
|
Re: LTR11Если у Вас общий цикл (если я правильно понимаю как у Вас сделано), то по сути Ваши потоки сбора с каждого модуля зависят друг от друга, и если, условно говоря, прием блока данных с одного модуля выполнится раньше, а с другого задержится (например из-за загрузки процессора), то поток сбора с первого модуля будет его ожидать, то есть при задержке одного потока его будут ожидать все остальные. При небольших потоках это не критично, но в Вашем случае, отдельный цикл для каждого модуля может дать выигрыш. Не факт, конечно, что на много, но это уже можно понять только экспериментально. По крайней один пример клиента, которому подобное действие помогло, был. |
|||
|
||||
|
|
Re: LTR11При одном цикле нагрузка на процессор сокращается проверял и легче добится синхронизации, чем городить сложные структуры. При разных циклах добиться синхронизации сложнее и нагрузка на процессор возрастает.
|
|||
|
||||
|
|
Re: LTR11Тут есть еще пути для экспериментов: например, выключить запись на диск и посмотреть, что это дает в плане производительности. Синхронизацию старта можно делать аппаратную, кстати. По стартовой метке. |
|||
|
||||
|
|
Re: LTR11При выключенной записи 7-10% загружает labview, просто vi без exe файла, много сжирает многопоточная запись. По стартовой метке можно реализовать в labview? |
|||
|
||||
|
|
Re: LTR11Можно поэкспериментировать с Timing VIs, что бы по мах разгрузить процессор,но принципе, текущая загрузка процессора не столь критична, параллельно никакие приложения не включаются |
|||
|
||||
|
|
Re: LTR11Я к тому, что если при выключенной записи на диск данные собираются стабильно и без ошибок, ничего не отваливается, то тогда есть смысл начать с оптимизации работы с диском.
|
|||
Страницы 1
Тема закрыта
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск