Я хочу разрешить проблемы настройки протокола времени точности (PTP) блока IEEE 1588
.
Чтобы диагностировать вашу модель, сначала ознакомьте себя со стандартом PTP, и затем со специализированными требованиями реализации Simulink® Real-Time™. Для получения дополнительной информации см. Протокол Времени Точности и Предпосылки PTP, Ограничения и Неподдерживаемые Функции.
Чтобы идентифицировать модель PTP или проблемы настройки, проверяйте на эти проблемы.
Сконфигурируйте все узлы PTP в сети с тем же Delay measurement mechanism. Если вы конфигурируете ведомый узел с различным, сходящим с главного узла, ведомый узел вводит состояние FAULTY
Сконфигурируйте все узлы PTP в сети с тем же Timescale или значением Arbitrary timescale epoch. Если вы конфигурируете основные и ведомые узлы с отличающимися масштабами времени, представление времени в формате времени суток отличается для этих двух узлов.
Сконфигурируйте все узлы в сетях PTP с тем же Announce interval и Announce receipt timeout. Отличающиеся значения этих параметров в сети PTP могут привести к непредсказуемому поведению.
Избегайте использования наследованного шага расчета везде в вашей модели. Наследованный шаг расчета происходит в вашей модели, когда вы устанавливаете следующие настройки:
Fixed step size → auto
в диалоговом окне Configuration Parameters
Sample time → -1
во всех блоках вашей модели.
Шаг расчета, который вычисляет Simulink, может быть больше, чем интервалы передачи сообщения PTP, приводящие к неприменимой модели.
Подсистемы настройки PTP включают блоки Configuration для связанного транспортного протокола. Если вы используете отдельную карту Ethernet для передачи данных, включаете отдельный блок конфигурации сети. Присвойте его Device ID, отличающийся от того уже в использовании блоком Configuration PTP. Несколько блоков конфигурации сети с тем же Device ID вызывают ошибку сборки.
Блок PTP Over Ethernet создает сообщения PTP с набором Ether type к hex2dec('88F7')
. Использовать ту же карту Ethernet для PTP что касается передачи данных:
В блоке Create Ethernet Packet, набор Ether type к ненулевому значению, которое отличается от hex2dec('88F7')
(например, hex2dec(‘0010’)
.
В блоке Ethernet Rx, набор Filter criteria к Specify types to match
. Установите Receive these types на значение, которое вы устанавливаете в блоке Create Ethernet Packet (например, [hex2dec('0010')]
).
Если вы включаете больше чем один ведомый узел в сеть, конфигурируете главный узел, чтобы использовать стандартный многоадресный адрес PTP для передачи сообщений. Главный узел должен передать то же сообщение синхронизации ко всем ведомым устройствам.
Используя блок IEEE 1588 Sync Execution, чтобы сделать измерения через несколько целевых компьютеров на том же шаге симуляции может привести к перегрузке ЦП. Кроме того, контроллер часов прерывания ядра может сократить некоторые временные шаги до 10% образцового основного шага расчета.
Если вы получаете перегрузки ЦП, рассматриваете уменьшение значения параметра Proportional gain блока IEEE 1588 Sync Execution или увеличения шага расчета вашего приложения реального времени.
Если вы используете блок IEEE 1588 Sync Execution в своей модели, конфигурирование распределенных часов EtherCAT® в основном режиме сдвига в той же модели производит ошибку сборки. Включать IEEE® 1588 синхронизировало выполнение, и EtherCAT распределил часы в той же модели, используйте режим сдвига шины EtherCAT.
Точность синхронизации зависит от значения Sync interval. Чем меньший значение, тем более точный синхронизация. Если вашей модели не удается встретить вашей необходимой точности синхронизации, попытайтесь уменьшить значение Sync interval.
Можно использовать блок IEEE 1588 Sync Execution, чтобы синхронизировать две модели PTP с отличающимися основными шагами расчета. Их выполнение синхронно во время PTP, равное наименьшему общему кратному этих двух уровней.
Когда ведомый узел введет состояние FAULTY
, ищите одно из этих условий:
Ведомый узел сконфигурирован с различным Delay measurement mechanism, сходящим с установки главного узла.
Ведомая установка шага расчета модели узла больше, чем установка Sync interval главного узла.
Ведомая установка Announce interval узла короче, чем установка Announce interval главного узла.
Ведомое устройство не получает ответ от ведущего устройства, чтобы задержать сообщения запроса, отправленные ведомым устройством. Это поведение происходит, например, если ведомый узел сконфигурирован, чтобы использовать механизм измерения задержки, устанавливающий отличающийся от установки главного узла.
Если главному узлу не удается считать необходимую метку времени из карты Ethernet из-за конкуренции для регистра метки времени, передача может перестать работать. После того, как главному узлу не удается пять раз подряд передать Follow_Up
, Delay_Resp
, Pdelay_Resp
или сообщение Pdelay_Resp_Follow_Up
к его ведомым узлам, это вводит состояние FAULTY
. Попробуйте эти опции:
Сократите количество ведомых узлов в сети.
Сократите шаг расчета для подсистемы, которая представляет главный узел. Циклы главного узла через ведомое устройство обмениваются сообщениями быстрее и читают регистр метки времени чаще.
Увеличьте Min delay or pdelay request interval ведомых узлов. Ведомые узлы генерируют сообщения менее часто.
Соедините одноранговые прозрачные часы PTP между основными и ведомыми узлами. Установите Delay measurement mechanism на Peer-delay
для всех узлов. Одноранговые прозрачные часы PTP имеют отдельный регистр метки времени для каждого порта, беря загрузку от главного узла.
Для получения дополнительной информации смотрите Станд. IEEE 1588-2008 Пунктов 10.
IEEE 1588 Настройте время | IEEE 1588 Создайте сообщение | IEEE 1588 Ethernet | IEEE 1588 Сообщение процесса | IEEE 1588 Считайте параметр | IEEE 1588 UDP в реальном времени | IEEE 1588 Setup | IEEE 1588 Синхронизирующая ошибка | IEEE 1588 Синхронизирующее выполнение | IEEE 1588 Синхронизирующее состояние