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

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

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

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

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

Откройте Данные моделирования Inspector.

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

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

  1. В Данные моделирования Inspector щелкните правой кнопкой мыши по 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 Get Notifications «».

[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

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

свернуть все

Используйте экспортированные данные временного журнала из данных сигнала, отображаемых в Данные моделирования Inspector. Смотрите раздел «Получение времени и журнала данных из EtherCAT Get Notifications Block».

Пример: timelog

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

Используйте экспортированные данные журнала данных из данных сигнала, отображаемых в Данные моделирования Inspector. Смотрите раздел «Получение времени и журнала данных из EtherCAT Get Notifications Block».

Пример: outputlog

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

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

Пример: 65546

Пример: []

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

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

свернуть все

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

  • time (double) - Временная метка кода уведомления

  • code (double) - Уведомить код

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

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

  • val (double) - Уведомить код

  • first (double) - Временная метка первого вхождения

  • last (double) - Временная метка последнего вхождения

  • count (double) - Количество найденных образцов

Совет

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

Введенный в R2020b