Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
синхронизация измерений в LTRработал с H2000, было все просто - с точностью до кванта времени системы знал время прихода данных от разных каналов. С LTR так не получается, особенно при работе разноскоростных плат например 11-й и 27-й. 43-й платы в системе нет, меток времени от нее, соответственно тоже нет... Сама система, естественно, работает синхронно - но при чтении данных в разных потоках от разных h-плат возникает рассогласование времени прихода данных.
что надо получить: (пример при частоте опроса ltr11 в 4-ре раза быстрей ltr27)
|
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий. 2. Учесть вышеуказанную систематическую ошибку можно либо по метке от модуля LTR43(LTR42,LTR41), |
|||
|
||||
|
Re: синхронизация измерений в LTRзадачка такая:
еще такой момент - в документации упоминается негарантированная многопоточность LTR dll , а во всех потоках вызывается функция чтения данных из одной и той же длл. пока у меня всего 2 потока (экспериментирую всего на 2-х платах), вроде как все работает (с некой времянной нестабильностью потоков относительно друг друга), а что можно ожидать дальше? а нельзя сделать доработку фирмваре "старого" крейта для получения времянных меток? или просто читать через юсб поток данных с фифо крейта, самому разбирая его по платам, имея при этом гарантированную ошибку по одновременности? |
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий.
"еще такой момент - в документации упоминается негарантированная многопоточность LTR dll..
"...вроде как все работает (с некой времянной нестабильностью потоков относительно друг друга), а что можно ожидать дальше?"
"...а нельзя сделать доработку фирмваре "старого" крейта для получения времянных меток?"
"...или просто читать через юсб поток данных с фифо крейта, самому разбирая его по платам, имея при этом гарантированную ошибку по одновременности?"
|
|||
|
||||
|
Re: синхронизация измерений в LTR"еще такой момент - в документации упоминается негарантированная многопоточность LTR dll..
ltrapi.pdf (стр7 пункт 3 3-й абзац)
в каждом потоке вызывается функция LTR_Recv, и меня это несколько беспокоит, исходя из прочитанного. разделять доступ по времени сложно, так как скорости обмена по потокам отличаются на порядки. может я зря волнуюсь?
"...вроде как все работает (с некой времянной нестабильностью потоков относительно друг друга), а что можно ожидать дальше?"
читаю данные с двух плат - h11 и h27 одна на 2000Гц, другая на 10Гц - размер буфера минимальный LTR_Recv, для каждого потока считаю микросекунды со старта (по отсчетам ацп) и получаю "гонки" по времени прихода данных в 50-100мс между потоками. |
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий_А
|
|||
|
||||
|
Re: синхронизация измерений в LTRНасчет низкоуровнего программирования без LTR сервера - все возможно, только сложно, так как придется разбираться еще и с низкоуровневыми интерфейсами модулей. |
|||
|
||||
|
Re: синхронизация измерений в LTRесть просьба (может и несовсем корректно сформированная): реализовать в ltrapi функцию "одновременно запустить все модули" наверное не только мне будет полезно. насколько я понял из документации, это на уровне ПО лтр-сервера совсем не сложно, в отличии от ПО клиента. |
|||
|
||||
|
Re: синхронизация измерений в LTRПосмотрю, алгоритмы запуска модулей отличаются, если это возможно сделаю. |
|||
|
||||
|
Re: синхронизация измерений в LTRв общем я начал делать - потом посмотрел, например в LTR11 модуле при старте
Для этого надо переделывать все модули. |
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий. Функция "одновременно запустить все модули" для LTR-сервера оказывается слишком накладной по требуемым ресурсам (кроме того, это кардинально не решило бы проблему). Решено её не реализовывать. Если хотите решить вопрос, используйте штатный принцип синхронизации LTR-крейта -- это изначально идеологически продуманный принцип. |
|||
|
||||
|
Re: синхронизация измерений в LTRну значит не судьба... еще возможно бестолковый вопрос:
вызываем подобную LTR_Recv функцию, и получаем (без таймаута) буфер и число принятых от крейта 32бит слов (если 0, то значит ничего не пришло, иначе разбираем поток). привязка по времени получится по самому быстрому каналу. Пример формата данных (из ltr27api.pdf)
DDDDDDDD DDDDDDDD 0000MMMM 11P0SSSS
|
|||
|
||||
|
Re: синхронизация измерений в LTRВообще, Вы совершенно правильно понимаете, что поток групповых данных из крейта LTR (от LTR-модулей) не имеет относительных временных сдвижек между данными от разных модулей (с точностью до 1-2 мкс, если учесть индивидуальную для каждого модуля систематическую составляющую задержки выдачи данных в интерфейс), и если Вы самостоятельно программно будете поток разбирать, то это решит проблему относительной синхронизации потоков от разных модулей. Так можно поступать при работе без LTR-сервера (но это сложный путь).
|
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий_А
|
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий. Тогда, Вам остаётся разгребать поток данных от LTR-модулей в их чистых форматах и относительную синхронизацию Вы получите. |
|||
|
||||
|
Re: синхронизация измерений в LTRпример использования параллельно с модулем ltr11
LTR_Init(&module);
|
|||
|
||||
|
Re: синхронизация измерений в LTRСпасибо за внимание к проблеме! в ltrapi.pdf из <<ltr_sw.zip 7,333,144 07.05.08 Крейтовая система LTR. Руководство программиста.>> к сожелению, LTR_GetCrateRawData не упоминается (а в библиотеке ltrapi действительно присутствует, жаль раньше не разглядел). может есть обновленный вариант документации? насколько видно из примера, LTR_GetCrateRawData сходна с LTR_Recv, и хотелось бы получить разъяснения по таким моментам:
на мой взгляд, самый логичный вариант - это при задании timeout=0 в качестве результата получать количество валидных слов в буфере (максимум - размер буфера, минимум - ноль, то есть ничего пока не пришло). P.S. жаль, что USB-система не может работать точным системным таймером, как hi8 в H2000 |
|||
|
||||
|
Re: синхронизация измерений в LTR"жаль, что USB-система не может работать точным системным таймером, как hi8 в H2000 USB- и тем более Ethernet-система принципиально должна иметь более глубокую буферизацию по сравнению с PCI, поэтому и идеология синхронизации в LTR совсем другая... |
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий_А
|
|||
|
||||
|
Re: синхронизация измерений в LTRСпасибо за документацию! очень важный момент (в описании LTR_GetCrateRawData ):
в описании LTR_Recv "не более" не фигурирует... |
|||
|
||||
|
Re: синхронизация измерений в LTRВасилий_А
|
|||
|
||||
|
Re: синхронизация измерений в LTRРАБОТАЮ БЕЗ SERVER НИКАКИХ ПРОБЛЕМ НЕТ .ПОЛУЧАЮ ВЕСЬ ПОТОК В ПОРЯДКЕ ОПРОСА КОНТРОЛЕРОМ КРЕЙТА ЭТО НЕ НЕСЛОЖНО ,ЕСЛИ КРЕЙТОВ НЕСКОЛЬКО СИНХРОНИЗИРУЮ СИСТЕМОЙ ЕДИНОГО ВРЕМЕНИ С ТОЧНОСТЬЮ ДО МИЛЛИСЕКУНДЫ, ЧЕРЕЗ 43 МОДУЛЬ |
|||
|
||||
|
Re: синхронизация измерений в LTRПРАВДА КОНТРОЛЕР К СОЖЕЛЕНИЮ ПЕРИОДИЧЕСКИ ДАЕТ ЗАДЕРЖКИ ДО 15 МСЕК. ЧЕМ ОН ЗАНЯТ НЕ ПОЙМУ . |
|||
|
||||
|
Re: синхронизация измерений в LTRSergey2. Если желаете разобраться, напишите подробнее, о какой именно задержке идёт речь и как Вы её контролируете. Укажите также состав оборудования полностью и на какие скорости сбора данных настроены LTR-модули. |
|||
|
||||
|
Re: синхронизация измерений в LTRSERGEY2
|
Страницы 1
Тема закрыта