slrealtime.EtherCAT.filterNotifications

Отобразите уведомления EtherCAT в человекочитаемом формате

Описание

пример

slrealtime.EtherCAT.filterNotifications() распечатывает допустимые значения уведомления и их текстовые описания.

пример

slrealtime.EtherCAT.filterNotifications(tlog, olog, suppress) извлечения из olog значения уведомления от блока EtherCAT Get Notifications, и от tlog, времена, в которые произошли эти значения.

Если suppress вектор непуст, функция удаляет из выходного списка значения уведомления, которые появляются в векторе. Для каждого уведомления, перечисленного в suppress вектор, функция распечатывает общее количество случаев, и время передвигаются, по которому они произошли.

Когда вы отладите проблемы EtherCAT®, используйте эту функцию. Вы, должно быть, усовершенствовали знание о функциональности EtherCAT.

пример

filtered_values = slrealtime.EtherCAT.filterNotifications(tlog, olog, suppress) возвращает вектор структуры, содержащий отфильтрованные значения.

пример

[filtered_values suppressed_values] = slrealtime.EtherCAT.filterNotifications(tlog, olog, suppress) возвращает вектор структуры, содержащий отфильтрованные значения и структуру, содержащую сводные данные подавленных значений.

Примеры

свернуть все

Распечатайте допустимые значения уведомления и их текстовые описания

slrealtime.EtherCAT.filterNotifications
slrealtime.EtherCAT.filterNotifications
(     1): State changed
(     2): Cable connected
(     3): Scanbus finished
(     4): Distributed clocks initialized
(     5): DC slave synchronization deviation received
(     8): DCL initialized
(     9): DCM inSync
(    21): Successful slave state transition.
(   100): Queue raw command response notification
( 65537): Cyclic command: Working count error
( 65538): Master init command: Working count error
( 65539): Slave init command: Working count error
( 65540): EOE mbox receive: Working count error (deprecated)
( 65541): COE mbox receive: Working count error (deprecated)
( 65542): FOE mbox receive: Working count error (deprecated)
( 65543): EOE mbox send: Working count error
( 65544): COE mbox send: Working count error
( 65545): FOE mbox send: Working count error
( 65546): Frame response error: No response
( 65547): Slave init command: No response
( 65548): Master init command: No response
( 65550): Timeout when waiting for mailbox init command response
( 65551): Cyclic command: Not all slaves in op state
( 65552): Ethernet link (cable) not connected
( 65554): Redundancy: Line break detected
( 65555): Cyclic command: A slave is in error state
( 65556): Slave error status change
( 65557): Station address lost (or slave missing) - FPRD to ...
          AL_STATUS failed 
( 65558): SOE mbox receive: Working count error (deprecated)
( 65559): SOE mbox send: Working count error
( 65560): SOE mbox write responded with an error
( 65561): COE mbox SDO abort
( 65562): Client registration dropped, possibly call to ...
          ecatConfigureMaster by other thread (RAS)
( 65563): Redundancy: Line is repaired
( 65564): FOE mbox abort
( 65565): Invalid mail box data received
( 65566): PDI watchdog expired on slave, thrown by IST
( 65567): Slave not supported (if redundancy is activated and ...
          slave doesn't fully support autoclose
( 65568): Slave in unexpected state
( 65569): All slave devices are in operational state
( 65570): VOE mbox send: Working count error
( 65571): EEPROM checksum error detected
( 65572): Crossed lines detected
( 65573): Junction redundancy change
(196610): ScanBus mismatch
(196611): ScanBus mismatch. A duplicate HC group was detected
(262146): HC enhance detect all groups done
(262147): HC probe all groups done
(262148): HC topology change done
(262149): Slave disappears
(262150): Slave appears

Экспортируйте хронологический журнал и журнал данных для симуляции, запущенной от Инспектора Данных моделирования. Примените slrealtime.EtherCAT.filterNotification команда к данным логов.

В этом примере выход блока EtherCAT Get Notifications соединяется с блоком File Log. После симуляции запускает остановки, Simulink Real-Time загружает данные логов файла на Инспектора Данных моделирования. Можно использовать slrealtime.EtherCAT.filterNotification команда на данных логов.

В вашей модели соедините выход подключений блока EtherCAT Get Notifications к блоку File Log.

Создайте модель, и затем загрузите и запустите приложение реального времени.

Откройте инспектора данных моделирования.

В то время как приложение реального времени запускается, Инспектор Данных моделирования перечисляет любые сигналы, которые отмечены для логгирования, например, как Run 1:<modelname>@TargetPC1. Когда выполнение модели останавливается, Инспектор Данных моделирования перемещения, которые запускаются в архив. Затем Simulink Real-Time загружает данные сигнала от блока File Log до Инспектора Данных моделирования. Эти данные появляются, например, как Run 2:<modelname>@TargetPC1[FileLog][Current].

Чтобы применяться используют slrealtime.EtherCAT.filterNotification команда на данных логов, экспортируйте целый набор данных как один набор данных к рабочему пространству MATLAB. Эти шаги создают 1x1 набор данных, который содержит переменные уведомления.

  1. В Инспекторе Данных моделирования щелкните правой кнопкой по Run 2: строка.

  2. Выберите Export Data …. Это открывает диалоговое окно.

  3. Для Export: выберите Selected runs and signals.

  4. Для To: выберите Base workspace и обеспечьте имя переменной для экспорта, такого как notifications.

Получить timelog и datalog использование:

timelog = notifications{1}.Values.Time;
datalog = notifications{1}.Values.Data;

Чтобы распечатать уведомления от нормального функционирования, запустите filterNotifications команда с этими данными:

slrealtime.EtherCAT.filterNotifications(timelog, datalog, [])
 Time      Code     Description
0.040000 (     3) Scanbus finished
0.045000 (     1) State changed
1.199000 (     4) Distributed clocks initialized
1.202000 (     1) State changed
4.198000 (     9) DCM inSync
4.200000 (     5) DC slave synchronization deviation received
4.350000 (     1) State changed
4.357000 (     1) State changed

Отфильтруйте и возвратите уведомления, которые появляются во время нормального функционирования. Отфильтруйте уведомление ( 1) State Change.

Существуют случаи, в которых фильтрация сообщения или подавление полезны. В определенных ошибочных ситуациях можно видеть много уведомлений об одной конкретной ситуации, которая может скрыть другие значительные уведомления. Эта ситуация могла быть большим количеством рабочих ошибок количества или структурировать ошибки ответа, например, которые скрывают другие уведомления, что вы, возможно, должны идентифицировать, как восстановиться с ситуации.

Для получения информации о создании timelog и datalog переменные, смотрите, Добираются, Журнал Времени и Данных от EtherCAT Получают Блок Уведомлений.

[filtered_values suppressed_values] = ...
    slrealtime.EtherCAT.filterNotifications(timelog, datalog, [1])
 Time      Code     Description
0.040000 (     3) Scanbus finished
1.199000 (     4) Distributed clocks initialized
4.198000 (     9) DCM inSync
4.200000 (     5) DC slave synchronization deviation received

Suppressed notifications:

      1: 4 times [0.045000 : 4.357000]
State changed

Входные параметры

свернуть все

Используйте экспортированные данные о хронологическом журнале из данных сигнала, отображенных в Инспекторе Данных моделирования. Смотрите Добираются, Журнал Времени и Данных от EtherCAT Получают Блок Уведомлений.

Пример: timelog

Типы данных: double

Используйте экспортируемые данные логов данных от данных сигнала, отображенных в Инспекторе Данных моделирования. Смотрите Добираются, Журнал Времени и Данных от EtherCAT Получают Блок Уведомлений.

Пример: outputlog

Типы данных: double

Для каждого кода функция сообщает, что общее количество случаев и время передвигается, по которому они произошли. Если вы не хотите подавлять коды уведомления, передайте в пустом векторе ([]).

Пример: 65546

Пример: []

Типы данных: double

Выходные аргументы

свернуть все

Каждый элемент filtered_values структура, содержащая:

  • time (дважды) — Метка времени уведомляют код

  • code (дважды) — Уведомляют код

  • notifystring (вектор символов) — Текстовое описание

Каждый элемент suppressed_values является структурой, содержащей:

  • val (дважды) — Уведомляют код

  • first (дважды) — Метка времени первого вхождения

  • last (дважды) — Метка времени последнего вхождения

  • count (дважды) — Количество экземпляров найдено

Советы

  • Условия распространенной ошибки, такие как отключенный кабель Ethernet, могут вызвать тысячи нежелательных уведомлений, которые скрывают полезные уведомления. Чтобы отфильтровать нежелательные уведомления, используйте suppress вектор.

Смотрите также

Введенный в R2020b