SimulinkRealTime.etherCAT.filterNotifications

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

Синтаксис

SimulinkRealTime.etherCAT.filterNotifications()
SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, suppress)
filtered_values = SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, suppress)
[filtered_values suppressed_values] = SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, suppress)

Описание

пример

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

пример

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

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

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

пример

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

пример

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

Примеры

свернуть все

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

SimulinkRealTime.etherCAT.filterNotifications
SimulinkRealTime.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

Распечатайте уведомления, которые появляются во время нормального функционирования.

В этом примере выходными сигналами блока EtherCAT Get Notifications является в индексах сигнала 1:21. Передайте в пустом векторе suppress. Уведомления подвержены изменениям.

tlog = tg.TimeLog;
olog = tg.OutputLog(:, 1:21);
SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, [])
 Time        Notification
0.039000 (     3) Scanbus Finished
0.054000 (     1) State Change
0.085000 (     1) State Change
0.281000 (     4) Distributed clocks initialized
3.280000 (     9) DCM inSync
3.491000 (     5) DC Slave Synchronization deviation received
3.494000 (     1) State Change
3.500000 (     1) State Change
         ( 65569) All slave devices are in operational state

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

В этом примере выходными сигналами блока EtherCAT Get Notifications является в индексах сигнала 1:21. Уведомления подвержены изменениям.

tlog = tg.TimeLog;
olog = tg.OutputLog(:, 1:21);
SimulinkRealTime.etherCAT.filterNotifications( tlog, olog, [1]);
 Time        Notification
0.039000 (     3) Scanbus Finished
0.281000 (     4) Distributed clocks initialized
3.280000 (     9) DCM inSync
3.491000 (     5) DC Slave Synchronization deviation received
         ( 65569) All slave devices are in operational state

1: 4 times [0.054000 : 3.500000]
State Change

Возвратитесь как вектор уведомления, которые появляются во время нормального функционирования.

В этом примере выходными сигналами блока EtherCAT Get Notifications является в индексах сигнала 1–21. Передайте в пустом векторе suppress.

tlog = tg.TimeLog;
olog = tg.OutputLog(:, 1:21);
filtered_values = ...
    SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, [])
filtered)values = 
  1×7 struct array with fields:
    time
    code
    notifystring

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

В этом примере выходными сигналами блока EtherCAT Get Notifications является в индексах сигнала 1:21.

tlog = tg.TimeLog;
olog = tg.OutputLog(:, 1:21);
[filtered_values suppressed_values] = ...
    SimulinkRealTime.etherCAT.filterNotifications(tlog, olog, [1])
filtered_values = 
  1×3 struct array with fields:
    time
    code
    notifystring

suppressed_values = 
  struct with fields:

      val: 1
    first: 0.013000000000000
     last: 1.216500000000000
    count: 4

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

свернуть все

Считайте tg.TimeLog из целевого компьютера.

Пример: tg.TimeLog

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

Считайте tg.OutputLog из целевого компьютера.

Пример: tg.OutputLog

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

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

Пример: 65546

Пример: []

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

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

свернуть все

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

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

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

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

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

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

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

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

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

Советы

  • Чтобы получить уведомления, в Командном окне, читают tg.OutputLog и tg.TimeLog от целевого компьютера.

  • Определите который столбцы tg.OutputLog передать в SimulinkRealTime.etherCAT.filterNotifications.

    • Если вы соединили блок EtherCAT Get Notifications с первым блоком Outport, 21 сигнал уведомления появляется в столбцах 1:21 матрицы tg.OutputLog.

    • Чтобы определить, какие столбцы tg.OutputLog прибывают из блока EtherCAT Get Notifications, установите tg.ShowSignals на 'on'. От получившейся информации определите соответствующие столбцы.

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

  • Блок EtherCAT Get Notifications может быстро увеличить размер выходного журнала. В панели Simulink Real-Time Options, если значение Signal logging data buffer size in doubles является слишком маленьким, журнал переносит и перезаписывает самые старые данные, которые могут содержать важную диагностическую информацию.

Введенный в R2017a