Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
Re: Организация передачи данных из модуля E14-440В принципе размер запроса ReadData() может быть любым в заданных пределах. Но из соображений надежности сбора данных DataStep следует выбирать таким, чтобы полное время сбора этого запроса была 100-200-300-400 и более мс. Связано это с тем, что событие о завершении запроса с уровня ядра до пользовательского уровня (с помощью, например, функций типа WaitForSingleObject() или GetOverlappedResult()) может приходить с непредсказуемыми задержками, т.к. Windows не является средой реального времени. Так при частоте сбора 400кГц и DataStep=6144 время выполнения запроса равно ~15мс, что при определенной загруженности системы может привести с сбою приема данных. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Огромнейшее спасибо! Вы ответили на вопрос,который мучил меня с 2007 г. (тогда я писал первую версию своей программы под этот АЦП и не совсем понял принципа выбора величины DataStep). АЦП должен получать данные с прибора, а программа проверять при этом наличие полезного сигнала, длительность которого составляет примерно 100 мс. После этого сбор прекращается и АЦП останавливается. Запуск по уровню не устраивает, т.к. в этом случае теряется часть информации, а при низком пороге происходят ложные срабатывания во время установки прибора. Тогда я DataStep устанавливал так: DataStep = (32*(DWORD)(AdcRate/32)). При частоте 100 кГц (используется только 1 канал) DataStep = 96 значениям. Значит время получения этих данных 96*0.01 мс=0.96 мс (совсем не соответствует Вашим рекомендациям). Проблема была в том, что периодически в случайном порядке сигнал при измерении не регистрировался, причем чаще это происходило на Celeron 2000, на Pentium 4 3000 реже. Согласно Вашим объяснениям я прихожу к выводу, что виноваты именно задержки Windows. Думаю, что в этом случае нужно действительно увеличить величину DataStep, скажем, до 625*32=20000 значений (время заполнения 20000*0,01 мс = 200 мс), чтоб не ждать долго обработки данных.
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Кстати, думаю, неплохо было бы включить Ваши рекомендации и пояснения по выбору величины NumberOfWordsToPass в руководство программиста. Может быть это еще кому-то помогло. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-4401. По умолчанию AdcFifoLength равна 12288. Также про выбор величины AdcFifoLength полезно просмотреть следующие ссылки:
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-4401.Спасибо и ссылки действительно полезны.
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Хорошо. Внесу в руководство программиста соответствующие изменения... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Спасибо. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Но если Вам желательно читать небольшими порциями (чтобы чаще прогонялся цикл обработки данных, например, поиск нужного импульса), то еще можно попробовать ставить в очередь достаточно много (десятки) не очень больших буферов, т.е. сделать массив буферов и массив OVERLAPPEDов и читать не через ReadData, а через WINAPI ReadFile (хендл устройства берется из GetModuleHandle). Тогда они встанут в ядре системы в очередь, hEventы в OVERLAPPEDах будут прилетать в хронологическом порядке и по ним можно обрабатывать кусок и ставить его снова в конец очереди. Возрастут накладные расходы, но это некий возможный компромисс. Требует тестирования и, вероятно, возможности менять эти параметры в настройках программы. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Понятно. Можно попробовать.Тем более ReadFile мнезнаком, так как в старой библиотеке ReadData был, можно сказать, практически полной его копией. Я брал раньше буфер размером 4 DataStep того размера, о котором написано выше. В принципе программа работала, хотя периодически все-таки были взбрыки. Сейчас я размер DataStep изменил:
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Andreyonka, момент подсоединения сетевого питания ноутбука на ходу во время работы любого USB-устройства является критичным событием с точки зрения обеспечения электромагнитной собместимости (ЭМС). При этом, наименее критичен случай, когда входы-выходы E14-440 не подсоединены (37-контактые разъёмы E14-440 свободны), а соединение только по USB. Наиболее критичный случай - это когда подсоединённые источники сигналов E14-440 либо явно заземлены, либо имеют большую ёмкость относительно земли (например, когда длинные провода на входах-выходах E14-440). Критичность в том, что в момент подсоединения сетевого питания возникает пик тока по контуру: сеть питания - источник питания ноутбука - ноутбук - провод USB - USB-устройство - источники сигналов - земля. А интерфейс USB к таким сквозным токам неустойчив. Чтобы дать рекомендации по улучшению ЭМС в такой системе, нужно точно знать состав системы, как всё подсоединено и как всё заземлено... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Описание системы:
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Использовать внешнее питание было бы очень неплохо, так как заряда аккумулятора хватает максимум на 40 мин. Ноутбук старый, новый аккумулятор найти не можем, а работать часто приходится дольше часа. Приходится ждать пока аккумулятор подзарядится, чтоб продолжить измерения - в общем лишняя головная боль. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Andreyonka,
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-4404. Сообщите серийный номер E14-440. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-4401. Все подключил как Вы сказали (кабель USB мы всегда использовали Ваш). В домашних условиях все работает и с подключенным прибором и всеми разъемами даже без заземления. Проблемы проявляются, судя по всему, когда рядом находятся массивные металлоконструкции и, в подавляющем большинстве случаев, когда идет процесс установки прибора на измеряемую поверхность (первое время даже током било при подключенном (блоке питания) БП ноутбука). После этого было сделано заземление при работе от сети. Вчера был на обследовании металлоконструкций, при отключенном заземлении нарушается синхронизация работы потоков получения и анализа данных из АЦП, при попытке прервать сбор данных возникают ошибки невозможности прервать сбор данных. При подключении по схеме 2 (когда заземлено питание не только ноутбука, но и GND АЦП) сбои практически прекращаются. При простом подключении БП при подключенном АЦП и запущенном процессе измерения (прибор не установлен на металлоконструкцию) все работает нормально.
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Сейчас родилась мысль: может "землить" второй канал в разъеме прибора, чтоб не было наводок посредством экрана? Хотя в управляющей таблице используется только 1 канал с общей "землей". |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Дополнение к первому вопросу.
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Andreyonka, до схемы доберусь только в понедельник, а сейчас пока из общих соображений:
Мои комментарии по Вашим схемам - только в понедельник. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Спасибо за быстрые ответы. Прибор, в принципе, работает, так что днем раньше - днем позже не принципиально. Я сам только сегодня смог написать и отправить схему и фото на e-mail, хотя сообщения прочел практически сразу - просто зашиваюсь на работе, ни на что не хватает времени.
|
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Правильная разводка электрических цепей в здании - это когда отдельно проложены ТРИ независимых цепи: "земля", "ноль" и "фаза". Причём, "ноль" и "земля" должны быть соединены друг с другом только в одной точке, находящейся либо непосредственно на шине заземления здания (так делают в большинстве случаев), либо цепь заземления имеет отдельную шину, хорошо связанную с землёй под зданием и стенами. Когда сделано ИМЕННО ТАК, то большие силовые токи текут по контуру ноль-фаза, а малые выравнивающие токи текут по цепям заземления устройств. Когда же неправильно ноль и землю соединяют на стороне потребителя (прямо на розетках), то ЭТО ЗНАЧИТ: большие силовые токи пускают по цепям заземления устройств, вызывая огромные выравнивающие токи заземления при соединении более одного устройства друг с другом, вызывая проблемы ЭМС и не только... Пока не сделаете заземление по-человечески, от проблем разного рода не избавитесь. Ну, поменяйте электрика, для начала... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Спасибо за информацию. Но проблема заключается в том, что работы каждый раз проводятся в новом здании с проводкой неизвестно когда, как и кем сделанной. И, зачастую, менять можем только свой прибор и схему его подключения. Будем просить подключать розетку в распредщите или работать на аккумуляторе. |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Приспособить систему можно к любым условиям, даже при отсутствии заземления при плохой питающей сети, если поставить такую задачу, приняв соответствующие меры. Хочу только отметить, что не заземлённый компьютер, питающийся от сети + USB устройство, связанное с землёй явно неявно - это худший случай по ЭМС, который можно себе представить! Если Вы заранее знаете, что работаете в таких плохих условиях, то почему бы сразу не перейти на помехоустойчивый интерфейс Ethernet (LTR-EU-2-5 + LTR11+...), приблизившись к индустриальным нормам? Впрочем, рекомендации по применению E14-440 в подобных условиях я выдам в понедельник, а дальше Вам решать... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440"как всё-таки лучше?" - Вам решать. Если по критерию ЭМС, то Ethernet - это промышленный интерфейс, а USB - бытовой, предполагающий одну и ту же местную землю соединяемых устройств: например, принтер с компьютером соединить, при этом, принтер и компьютер воткнуты в одну группу розеток с соединёнными лепестками заземления... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Как правило, USB применяют для изолированных от земли устройств, как это обычно бывает в бытовых условиях. Кстати, у большинства бытовых USB- принтеров нет лепестка заземления на вилке, поскольку производители принтеров принимают меры по его хорошей изоляции от помех в сети сети (например сетевыми фильтрами). А источник питания ноутбука, с одной стороны, нормальное заземление ноутбука не обеспечивает, с другой стороны, хорошую изоляцию от помех сети тоже не обеспечивает. Пока к ноутбуку хорошо изолированные от помех в сети USB-устройства подсоединяют, всё сходит с рук. Как только USB-устройство приобретает связь (в т.ч. емкостную) с внешней землёй, то возникшие сквозные токи через USB приводят к сбоям. Меры по борьбе с этим явлением существуют. Но об этом - в понедельник... |
|||
|
||||
|
Re: Организация передачи данных из модуля E14-440Все понял. Спасибо. Жду понедельника. |
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск