Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
Подозрительные ситуации в работе E20-10В одном из предыдущих сообщений речь шла о замеченных странностях в работе E20-10. Эти странности встречаются очень редко и по сути дела не оказывают существенного влияния Описание проблемы. Используется схема эксперимента, приведённая в статье в разделе "Примеры внедрения". Модуль LTR34 по одному каналу генерирует медленную синусоиду (амплитуда около 1 В, период около 30 секунд), Модуль E20-10 осуществляет сбор информации на частоте 10 МГц, управляющая таблица состоит из 4 элементов:
В представленном примере эксперимента всего было записано 68074037247 кадров. На первый взгляд можно предположить, что строчки, соответствующие значениям в первом столбце Но по непонятной причине все такие выбросы встречаются кратное 4 количество раз. Всё это наводит на мысль, что речь в данном случае идёт не о реальных результатах Возможно, такие артефакты встречаются и при других значениях, соответствующих элементу t2.Chn[1] PS. У нас имеются все исходные записи экспериментов. Можем предоставить их для анализа
|
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Здравствуйте, Алексей. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10[Аппаратная коррекция показаний АЦП была отключена (забыл об этом написать). Более детальный анализ данных выявил следующую ситуацию. 1. В достаточно редких случаях происходит повтор одних и тех же кадров 2. В абсолютно всех таких случаях не зафиксировано ни одного бита цифрового Ниже приводятся примеры. Обозначения: Пример 1. X=-2370. Это минимальное значение X во всей выборке, повторы образуют одну четвёрку.
Пример 2. X=-2321. Максимальное количество четвёрок повторов (19 штук).
|
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
Буквально отсчёты данных повторяются этих кадрах? |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Инженер пишет:
Да. Кадр, через 8192 кадра точно такой же кадр, ещё через 8192 - опять точно такой же, и ещё через 8192 - ещё опять точно такой же. Т. е. в разных четвёрках информация разная, а внутри одной четвёрки - точные повторы по 4 раза на расстоянии 8192 кадра друг от друга. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей, тогда это не "подозрительная ситуация", а явная проблема, которую нам нужно искать. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Инженер пишет:
Сейчас в связи с карантином у меня нет доступа на рабочее место. Соответственно, могу что-то делать с архивами. Напрашивается мысль проверить их на автокорреляцию со смещением 8129 кадра. Возможно, вы ещё что-нибудь посоветуете. Про тестовую последовательность вместо данных АЦП мне известно не было. Естественно, прошу объяснить, как эта возможность включается и используется. Попробую при первой возможности это применить (как только в лаборатории окажутся сотрудники - попрошу их включить E20-10). Большинство измерений выполнено с одним экземпляром E20-10. Этот тот экземпляр, который был получен с предыдущим заказом на доработку прошивки (добавление синхронных цифровых каналов). Это делалось специально, чтобы были сравнимые данные между разными экспериментами. Тестовые метрологические эксперименты в одинаковых условиях, но с разными экземплярами E20-10 также выполнялись и скорее всего эти записи сохранились. Но их поиск сейчас (в удалённом режиме работы) несколько затруднён. Как найдётся - я обязательно проверю наличие обсуждаемого выше эффекта на записях с других экземпляров E20-10. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей, желательно подтвердить, что эффект был и на другом экземляре E20-10 (не важно, с какой прошивкой), чтобы исключить специфическую неисправность одного экземпляра. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей, в любом случае, я попрошу наших программистов предоставить в том или ином виде пользователям нашу технологическую возможность включать в FPGA Е20-10 специальный режим подстановки: вместо данных преобразователя LTC2245 - счетчик по модулю счета, некратный степени 2. Это позволит в неизменных условиях пользователю протестировать весь аппаратно-программный интерфейс на непрерывность данных. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Инженер пишет:
А возможно ли в таком случае сделать возможность контроля целостности реальных данных? Сделать это можно, например, так. Выдавать реальные данные с АЦП, но параллельно вести нумерацию отсчётов АЦП. И по запросу по control pipe выдавать пару: какой-нибудь уже пронумерованный отсчёт АЦП и присвоенный ему номер. Тогда по результатам таких периодически выполняемых запросов можно будет находить в потоке данных эти пронумерованные отсчёты на данном расстоянии (с данной разностью номеров) и убеждаться, что нумерация не сбивается. [А если есть такая техническая возможность - лучше выдать несколько отсчётов АЦП подряд - например, десяток.] Вообще, при получении достаточно значимого научного результата у оппонентов всегда возникают возражения: что дело тут не в физике, а в некорректной обработке экспериментальных данных. Так было и в этом случае. Коллеги заметили незначительные шероховатости, расследование причин которых привело в итоге к обнаружению факта редкого удвоения (точнее, учетверения) информации в потоке данных. Поэтому добавление такой возможности нумерации отсчётов АЦП сделало бы E20-10 существенно более ценным для научных исследований. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей, спасибо за предложения. В любом случае, те или иные средства контроля целостности данных можно будет вводить в E20-10 рев.С - там для этого имеется свободный логический ресурс в FPGA. Конкретно Ваш способ контроля целостности данных зависим от значений отсчётов АЦП - в общем случае этот подход нельзя назвать корректным. Пожалуй, здесь возможен классический подход - вести в поток данных специальное слово CRC (например, для каждых 1024 отсчётов АЦП). Это слово CRC должно быть вне логики кадра данных от E20-10 (например, CRC должно аппаратно вставляться в поток после 1024-го отсчёта АЦП, и изыматься из потока для проверки целостности данных на уровне API). Увеличение максимального трафика передачи данных, скажем, на доли процента за счёт введения CRC не должно повлиять на устойчивость сбора данных. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Тогда ещё 2 предложения. 1. Сделать CRC доступным пользователю. Чтобы пользователь в процессе обработки данных мог самостоятельно пересчитать CRC и сравнить с полученным из E20-10. Это позволит исключить ошибки API и самого пользователя. (А также указать на наличие такого контроля в научной публикации, что сразу снимет вопросы при рецензировании.) 2. Вести сквозную нумерацию всех блоков расчёта CRC и передавать вместе с CRC его номер. Это позволит отследить ситуации пропажи блока целиком или же его появления несколько раз. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
Тогда уж CRC 2-го уровня нужно вводить (как циклическая сумма предыдущих CRC 1-го уровня). Это уж точно лучше счётчика блоков. Научному сообществу это больше понравится, наверное. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей, но с практической точки зрения, конечно, Вы правы - сквозная нумерация блоков лучше в ситуации потери (порчи) блока: итерационно можно обнаружить CRC следующего блока и по номеру блока понять, сколько блоков потерялось. Отредактировано Инженер (25.04.2020 09:03:13) |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Разрывы данных иногда встречались (достаточно редко - не более единиц раз в час). Мы их детектировали по установленному биту 14 при первом считывании данных цифрового канала в кадре. В документации указано, что это - признак разрыва и начала нового непрерывного участка данных. Алгоритм установки этого бита там подробно не описан, но экспериментально было выяснено, что он устанавливается при первом считывании данных цифрового канала в кадре (а при последующих считываниях данных цифровых каналов в этом же кадре - уже не устанавливается). Корреляций по времени между разрывами и появлением дубликатов данных на первый взгляд не видно, но обязательно проверим это более строго в ближайшее время. Кстати, причины разрыва данных тоже не до конца понятны. E20-10 был единственным устройством, подключённым к USB-контроллеру (USB 3.0). Производительности компьютера также должно было хватать с большим запасом. Вполне возможно, что "узким местом" в данном случае является не компьютер, а сам E20-10, по какой-то причине не успевающий передавать все собранные данные. Но так или иначе наличие разрывов само по себе, с явно обозначенным местом разрыва нас вполне устраивает - логика эксперимента от этого не страдает. Плохо, когда наблюдается "подмена" одних (ожидаемых) данных другими, зарегистрированными ранее. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Алексей. Программно факт переполнения буфера FIFO E20-10 Вы отслеживали? В любом случае, Вам программно дана (понятна) эта возможность при работе через LCOMP? Если Вас наличие разрывов устраивает, то, с точки зрения логики системы, которую Вы эксплуатируете, - это нештатный режим работы данной системы сбора данных (пока не внедрён механизм контроля целостности данных). Штатый режим - это когда 0 разрывов и 0 потерь на протяжении сеанса работы. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Инженер пишет:
Да, в lcomp такая возможность есть. Мы её тестировали - действительно, там признак переполнения появляется вскоре после того, как в потоке данных появляется кадр с установленным битом 14 в первом считывании в этом кадре данных цифрового канала. Но длительной записи с отслеживанием переполнения у нас нет. В реальных экспериментах это не использовалось, т. к. таким образом место переполнения определяется только приблизительно, а по биту 14 его можно было определить точно (по крайней мере, как нам тогда казалось). |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
Это фундаментальная ошибка. Ваши данные нельзя назвать валидными, к сожалению. Мне жалко Ваших сил и времени. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Если Вас наличие разрывов устраивает, то, с точки зрения логики системы, которую Вы эксплуатируете, - это нештатный режим работы данной системы сбора данных (пока не внедрён механизм контроля целостности данных). Штатый режим - это когда 0 разрывов и 0 потерь на протяжении сеанса работы. Необходимым условием условием для штатного режима работы является отсутствие переполнений FIFO буфера. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Понятно, что без разрывов было бы намного лучше. "Устраивает" - имеется ввиду, что эксперимент (достаточно сложный, дорогостоящий и длительный) планируется так, чтобы возникающие локальные по времени проблемы не сделали бы весь массив полученных данных бесполезным. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
... Простите, и для этого дорогостоящего эксперимента Вы не контролировали время возникновения переполнения FIFO, чтобы можно было бы сразу гарантированно очистить невалидные куски данных (с запасом на глубину FIFO и запасом на асинхронность получения признака переполнения)? |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
В связи с вышесказанным, это может объясняться тем, что поскольку переполнения буфера FIFO, скорее всего, возникали, то возникала аварийная ситуация ( https://www.lcard.ru/download/e20_10_users_guide.pdf п. 5.2.4 "аварийной" откачки данных). Это значит, система сбора данных эксплуатировалась в нештатном режиме. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Применяется параллельно несколько разных способов контроля на валидность промежуточных и окончательных данных. E20-10 - это не единственная измерительная система, участвующая в эксперименте. И возможные ошибки, связанные с E20-10 - не единственная причина возможной невалидности данных. Поэтому признак переполнение буфера и не использовался в качестве основного критерия качества данных. Также мы полагали, что бит 14 - признак начала непрерывного участка данных - несёт в себе ту же информацию, что и признак переполнения буфера, но только с более точной привязкой по времени. Сейчас, когда стало понятно, что это не обязательно так, при первой же возможности добавим протоколирование признака переполнения. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Кулыгин Алексей пишет:
Насколько я помню, этот бит был сделан для многократной внешней синхронизации старта сбора данных с заданным размером кадров, - только для того, чтобы в потоке видеть границы непрерывных участков, относящихся к разным моментам старта... В нештатном режиме работы (при переполнении FIFO) гарантировать непрерывность нельзя. |
|||
|
||||
|
Re: Подозрительные ситуации в работе E20-10Но в нашей ситуации поток данных явно оказывается "рваным" как раз по этим битам, хотя внешняя синхронизация не используется. Таким образом, например, можно предположить несанкционированное задействование программного кода FPGA, ответственного за механизмы внешней синхронизации? |
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск