Быстрый анализ спорадических ошибок с помощью функции сегментированной памяти и архива
Решение от Rohde & Schwarz для длительного сбора данных при максимальном разрешении с помощью функции архивирования
Спорадические ошибки являются существенной помехой с точки зрения затрат временных ресурсов в процессе разработки новых продуктов. Отладка шин на основе протоколов является особо сложной и трудоемкой задачей, поскольку паузы между отдельными пакетами данных могут быть очень длинными. Так, например, датчик будет передавать значение по шине I2C только один раз в минуту. Память осциллографа, как правило, ограничивает длину записи анализируемых ошибок и их архивирование до несколько миллисекунд.
Используя в рамках данных работ осциллографы R&S серий RTB2000 и RTM3000, при оснащении опциями R&S RTB-K15 и RTM-K15 инженер-разработчик получает в арсенал глубокую, сегментированную память в сочетании с определенными настройками запуска, что позволяет решить указанную задачу посредством захвата соответствующих последовательностей без длинных пауз. В таблице 1 представлены осциллографы Rohde & Schwarz, которые подходят для работы в рамках указанной измерительной задачи.
Таблица 1
Осциллограф |
Сегментированная память |
R&S Scope Rider RTH |
50 млн отсчетов |
R&S RTB2000 |
320 млн отсчетов |
R&S RTM3000 |
400 млн отсчетов |
R&S RTA4000 |
1000 млн отсчетов |
* Сегментированная память входит в стандартную комплектацию осциллографов R&S RTA4000 и R&S Scope Rider RTH.
Однократный захват данных
Как правило, выборка длинных последовательностей данных происходит с помощью непрерывного однократного захвата. В таком случае, максимальная длина записи данных зависит от доступной памяти и выбранной частоты дискретизации. При максимальной длине записи всего в несколько миллисекунд захват зачастую ограничивается одним пакетом протоколов.
Ограничение захвата только активными элементами сигналов
Во время захвата сигнала в режиме сегментированной памяти доступная память делится на сегменты, каждый из которых содержит заданное количество отсчетов. Инженер может сам определять длину сегментов, исходя их максимальной длины пакета в сигнале. В момент запуска представляющие интерес сегменты сохраняются в памяти вместе с меткой времени запуска. Периоды времени без активности захвачены не будут.
Если требуется минимальное время простоя, используйте режим быстрой сегментации. При включении этого режима подавляется обновление отображения захваченных осциллограмм и их постобработка, а время простоя между двумя захватами сокращается до минимума. Захваченные данные анализируются позже.
Архивная и сегментированная память
Осциллографы R&S серий RTB2000 и RTM3000, оснащенные опциями R&S RTB-K15 и RTM-K15, предлагают функцию архивирования с сегментированной памятью 320/400 млн отсчетов на канал.
В осциллографах R&S RTA4000 и R&S Scope Rider RTH по умолчанию включена сегментированная память 1000 и 500 тыс. отсчетов млн отсчетов на канал. Это уникальный для данного класса приборов объем памяти, обеспечивающий покрытие аналоговых и цифровых каналов. Память можно разделить на несколько частей (см. таблицу 2). При включении режима быстрого сегментирования время простоя сокращается до 200 нс.
Таблица 2
|
R&S Scope Rider RTH |
R&S RTB2000 |
R&S RTM3000 |
R&S RTA4000 |
Минимальный размер сегмента |
2. 5 тыс. отсчетов |
10 тыс. отсчетов |
5 тыс. отсчетов |
5 тыс. отсчетов |
Максимальный размер сегмента |
500 тыс. отсчетов |
20 млн отсчетов |
80 млн отсчетов |
200 млн отсчетов |
Скорость сбора данных |
50 000 осциллограмм/с |
300 000 осциллограмм/с |
< 2 000 000 осциллограмм/с |
< 2 000 000 осциллограмм/с |
Минимальное время простоя |
– |
< 2,5 мкс |
< 200 нс |
< 200 нс |
При использовании режима архивирования все захваты можно проанализировать позднее.
Рисунок 1. Декодированный с помощью R&S RTM3000 сигнал I2C с аналоговыми осциллограммами.
Легкая конфигурация и быстрые результаты
Сигнал I²C на рисунке 1 показывает пакеты протоколов длиной примерно 100 мкс. Эти пакеты протоколов прерываются паузами между пакетами продолжительностью в одну минуту. При включении опции декодирования протоколов R&S RTx-K1 быстро видно, что сегмент длиной 10 тыс. отсчетов (с частотой дискретизации 83,3 млн отсчетов/с) достаточен для надежного декодирования и обнаружения типичной ошибки в сигнале.
Пользователь выбирает это значение, и опция автоматически высчитывает количество доступных сегментов.В указанном примере приведено примерно 35 000 сегментов, что соответствует максимальной длине записи 24 дней.
Предыдущие выборки доступны при нажатии кнопки функции архивирования, как во время захвата, так и после него. Стандартные испытания по маске и опции навигации, предоставляемые функцией архивирования, помогают инженерам быстро выявлять ошибки в сигнале и их причины. В рассматриваемом случае, сбой в тактовом сигнале системы за несколько пакетов до неисправного был ключом для обнаружения причины ошибки. Временная метка показывает, что ошибка происходила периодически (в утреннее время). Систематические испытания подтвердили, что недостаточное экранирование на линии привело к улавливанию ею импульса, возникающего при включении флуоресцентных ламп в лаборатории. Улучшение экранирования нивелировало проблему.
*При подготовке статьи были использованы следующие материалы:
- © Rohde & Schwarz; Быстрый анализ спорадических ошибок с помощью функции сегментированной памяти и архива (2021).
Ошибки – самодиагностика, чем смотреть. ELM327
5Likes-
14.04.2017, 09:13 #21
Сообщение от Tahirns
Ответить с цитированиемВ этом вся беда Carista. Она не правильно расшифровывает коды ошибок. То есть, с помощью неё можно на 100% проверять наличие ошибок. И кстати, правильно она расшифровывает только те, что касаются блока двигателя. Что касаемо остальных блоков – коды не правильные, и понять что это именно можно подключив васю или одис.
Мне на драйве подсказали что это “Спорадическая ошибка. Ничего страшного. Лечится обновлением прошивки рулевой. Если машина на гарантии, можно дилера озадачить”. Ошибку я эту на прошлом ТО видел. Сбросили и все, а она опять появилась… Мне это не нравится. Когда я процедуру вю увидел, сразу захотел что-то для чтения ошибок прикупить. Естественно самое простое это ELM. Не зря, не зря. Ведь на экране авто никаких ошибок нет. Дилер ошибку видел, но разбираться не стал. А теперь от меня не отвертится. -
-
14.04.2017, 09:14 #22
Сообщение от kmp2002
Мне на драйве подсказали что это “Спорадическая ошибка. Ничего страшного. Лечится обновлением прошивки рулевой. Если машина на гарантии, можно дилера озадачить”. Ошибку я эту на прошлом ТО видел. Сбросили и все, а она опять появилась… Мне это не нравится. Когда я процедуру вю увидел, сразу захотел что-то для чтения ошибок прикупить. Естественно самое простое это ELM. Не зря, не зря. Ведь на экране авто никаких ошибок нет. Дилер ошибку видел, но разбираться не стал. А теперь от меня не отвертится.
Действуй.
Ответить с цитированием1.8 DSG Style+WE2+PJ2 Цвет белый.
-
14.04.2017, 12:40 #23
Вам на драйве подсказали что кариста – хлам, а ошибка эта – несуществующая на самом деле. Уверен что вагкомом/одисом ее не будет видно.
Ответить с цитированием -
14.04.2017, 12:58 #24
Сообщение от sitetech
Ответить с цитированиемВам на драйве подсказали что кариста – хлам, а ошибка эта – несуществующая на самом деле. Уверен что вагкомом/одисом ее не будет видно.
Да, я все прочитал. Может и хлам, она одна читает все блоки, как я понимаю. Покупать ее я и не собирался. Из тех инструментов что у меня есть… есть только это. Валяется в бардачке. вагкомом/одис- пока не планирую покупать. Особо смысла не вижу. Дорого для того чтоб несколько раз ошибки глянуть. Заниматься серьезно этим не планирую. Потом нужный мне функционал активирую и больше и не нужен. Проще 1000рэ (или сколько там) дать спецу, который это проделает и не забивать себе голову лишним. -
24.05.2017, 15:49 #25
Съездил к дилерам. Ошибку и код подтвердили. Все совпало что у них что у меня в каристе. 1:1. Только еще добавилась ошибка по коробке. Но так как я своим адаптером и каристой не пользовался, возможно она позже появилась.
Ответить с цитированием -
24.05.2017, 16:38 #26
kmp2002 каристой платной пользуетесь и с какой версией елм. У меня с ней лажа версия елм 1,5 . Но это давненький кряк под андроид.
Ответить с цитированием -
25.05.2017, 07:50 #27
Сообщение от alexiv
Ответить с цитированиемkmp2002 каристой платной пользуетесь и с какой версией елм. У меня с ней лажа версия елм 1,5 . Но это давненький кряк под андроид.
Даже не знаю, у знакомого девайс с ней одалживал. Скрины себе закинул. елм 1,5.
Не все адаптеры, которые выдают v1.5 таковыми являются аналогично и про 2… версию. Много подделок.Но на васю еще не созрел…. А Торк – примитив. Накачал еще кучу всяких прог, для экспериментов. Но пока не пробовал. Надеюсь найти что-то типа каристы, но получше.
-
25.05.2017, 10:47 #28
а если брать васю для чтения ошибок, то надо тоже версию за 6 тыс покупать? а то там куча всяких разных видов их
Ответить с цитированием1.8 DSG, чешка, элеганс, 9й пакет, без старт-стопа.
-
25.05.2017, 11:16 #29
http://www. octavia-club.ru/f/komp-di…skogo-shnurka/ достаточно прочитать по диагонали.
Ответить с цитированием
asp.net — спорадическая ошибка: файл не был предварительно скомпилирован и не может быть запрошен. рабочий процесс. Это исправлено в .Net framework 4.8 (в настоящее время еще не выпущено). Мое решение состояло в том, чтобы просто проверить «разрешено обновлять предварительно скомпилированный сайт» и установить флажок «Не объединять».
Основная причина проблемы связана с нехваткой памяти в адресном пространстве рабочего процесса (w3wp.exe). В ASP.net, когда .Net Framework обнаруживает, что мы превысили определенный порог нехватки памяти, он попытается извлечь элементы из внутренних структур кэширования, чтобы освободить место. При такой обрезке кеша сборки, принадлежащие вашему приложению, удаляются из кеша памяти. Это вызывает делегат обратного вызова, который попытается отразить эти изменения в кеше памяти в кеше сборок на диске, а также попытается удалить сборку . dll, извлеченную из кеша в памяти. Однако рабочий процесс по-прежнему хранит ссылку на этот файл (открытый дескриптор), поэтому удаление не удается. Когда это происходит, .Net Framework создает файл .delete рядом со сборкой, чтобы пометить ее как устаревшую. Это предотвратит загрузку файла рабочим процессом обратно в кеш памяти и вызовет ошибку компиляции, которую вы видите.
Причиной всей этой обработки кэша является неправильная вставка в кэш памяти ASP.net динамических сборок, выпущенных в процессе предварительной компиляции с необновляемым пользовательским интерфейсом. В этом процессе компиляции имена динамических сборок не могут быть изменены, так как файлы ресурсов .compiled, которые указывают среде выполнения ASP.net, где находится скомпилированный ресурс (в каком двоичном файле), не изменяются, если вносятся изменения в сайт — в отличие от предварительной компиляции с обновляемым пользовательским интерфейсом, где разметка страниц может быть изменена, и это приводит к изменениям в скомпилированных файлах, а затем в именах динамических сборок, что предотвращает повторное использование старые имена.
Для сборок, полученных в результате предварительной компиляции приложения ASP.net с необновляемым пользовательским интерфейсом, стандартом было вставлять их в кэш памяти ASP.net в рабочем процессе со специальным атрибутом, указывающим на диспетчеру кеша, что эти записи нельзя удалить. Этот атрибут отсутствует в сборках выпуска .Net Framework 4.7.x и является причиной ошибки. Без него при обрезании кеша сборки могут быть удалены, а поскольку они все еще используются, их нельзя удалить из папки Temporary ASP.net Files (папка теневой копии). Таким образом, это приводит к созданию файлов .delete. Это не было проблемой в сборках .Net Framework до версии 4.7. Группа продуктов также подтвердила, что они решили эту проблему в предстоящем выпуске .Net Framework 4.8.
Есть несколько решений этой проблемы:
Удалите 4.7.x .Net Framework и переустановите 4.6.x Framework.
Ошибка кэширования присутствует только в сборках .Net Framework 4.7 и выше, поэтому возврат к версии 4. 6.x позволит продолжить работу, не сталкиваясь с проблемой. Они могут оставаться в дистрибутиве 4.6.x до тех пор, пока в конце этого года не будет выпущена .Net Framework 4.8. На данный момент у меня нет графика от группы продуктов для этого выпуска.
Увеличьте ограничения на перезапуск ОЗУ и личных байтов. (Не относится к веб-приложениям Azure)
Кэш обрезается в ASP.net, когда мы видим, что нехватка памяти внутри рабочего процесса слишком велика. Это нехватка памяти оценивается следующим образом: если в пуле приложений приложения в IIS не задано условие перезапуска, ASP.net будет считать, что порог составляет 60 % от общего объема ОЗУ, доступного для машины. Когда частные байты рабочего процесса превышают этот порог, внутренний кеш будет обрезан, а сборки будут выброшены, что приведет к появлению файлов .delete. Я советую вам работать с клиентом, чтобы увеличить оперативную память, доступную для его наиболее уязвимых серверов, если это возможно, а также установить перезапуск памяти на основе частных байтов в пуле приложений, на котором размещено затронутое приложение. Мы можем установить для этого ограничения повторного использования более высокое значение, чем ОЗУ, чтобы убедиться, что порог достаточно высок, чтобы рабочий процесс не смог его достичь.
Чтобы настроить перезапуск частных байтов в пуле приложений:
- Запустите консоль диспетчера IIS на затронутых серверах.
- Щелкните правой кнопкой мыши затронутый пул приложений и выберите «Переработка» в появившемся контекстном меню.
- В появившемся окне свойств повторного использования введите значение для текстового поля «Использование частной памяти (КБ)».
- Значение должно быть 1,2 * доступная оперативная память, выраженная в КБ. Это временное решение, которое следует отменить после выпуска и установки новой версии .Net Framework.
Установите предварительную версию .Net Framework 4.8
Вы можете попробовать установить предварительную версию .Net Framework 4.8, которая уже доступна для загрузки в Интернете. Однако это предварительная версия, и вы можете столкнуться с другими проблемами, которые не будут поддерживаться до тех пор, пока не будет выпущена платформа. Вы также можете установить частное исправление от Microsoft (свяжитесь со мной, если хотите, и я его попрошу), которое изменит неисправные сборки из .Net Framework 4.7.x, чтобы обеспечить правильную вставку сборок в кеш. . Однако это частное исправление не подписано и, следовательно, потребует от нас отключить проверку подписи сборки на сервере, что может подвергнуть клиента другим угрозам безопасности.
В параметрах прекомпиляции проекта установите флажки «Разрешить обновление предварительно скомпилированного сайта» и «Не объединять».
Ошибка затрагивает только необновляемые предварительно скомпилированные двоичные файлы, так что это позволяет избежать ошибки, но время запуска, очевидно, сильно пострадает. Для меня это решение было простым и отлично работало до тех пор, пока для веб-служб Azure не будет выпущена версия 4.8.
laravel – Как исправить спорадическую ошибку в приложении, использующем Vue Apollo?
Время от времени я получаю следующую ошибку:
vue. runtime.esm.js?2b0e:619 [Vue warn]: ошибка рендеринга: «TypeError: Не удается прочитать «книги» свойств неопределенного»
найдено в
—> в src/views/Home.vue в src/App.vue warn @ vue.runtime.esm.js?2b0e:619 logError @ vue.runtime.esm.js?2b0e:1884 globalHandleError @ vue.runtime.esm.js?2b0e:1879 handleError @ vue.runtime.esm.js?2b0e:1839 Vue._render @ vue.runtime.esm.js?2b0e:3544 updateComponent @ vue.runtime.esm.js?2b0e:4060 получить @ vue.runtime.esm.js?2b0e:4473 запустить @ vue.runtime.esm.js?2b0e:4548 flushSchedulerQueue @ vue.runtime.esm.js?2b0e:4304 (анонимно) @ vue.runtime.esm.js?2b0e:1980 флеш-обратных вызовов @ vue.runtime.esm.js?2b0e:1906 Promise.then (асинхронный) …
в приложении, использующем Vue Apollo.
Представление, содержащее ошибку, — это Home.vue, указанное ниже:
<дел> Загружается. ..Все Рекомендуемые {{категория.id}}. {{ категория.название }}