exponenta event banner

slrealtime. EtherCAT.filterNotifications

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

Описание

пример

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

пример

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

Если suppress vector является непустым, функция удаляет из выходного списка значения уведомлений, которые появляются в векторе. Для каждого уведомления, указанного в 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. Выберите «Экспорт данных».... Откроется диалоговое окно.

  3. В поле «Экспорт:» выберите «Выбранные участки и сигналы».

  4. Для параметра «Кому» выберите «Базовое рабочее пространство» и укажите имя переменной для экспорта, например 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 (double) - Временная метка кода уведомления

  • code (double) - код уведомления

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

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

  • val (double) - код уведомления

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

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

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

Совет

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

Представлен в R2020b