Этот пример показывает целевой компьютер сбора данных, что передачи добавили метку времени к данным к второму целевому компьютеру, который анализирует данные.
Необходимые продукты: Simulink®, Simulink Real-Time™
Другие требования:
Один компьютер разработчика Windows® с картой Ethernet.
Два целевых компьютера Speedgoat.
По крайней мере одна карта Intel® 82574 Ethernet на каждом целевом компьютере
Одна карта Ethernet на каждом целевом компьютере, выделенном связи между разработкой и целевыми компьютерами.
Один переключатель Ethernet.
Четыре перекрестных кабеля Ethernet.
Приложения реального времени используют блоки Протокола Времени Точности, чтобы синхронизировать карту Ethernet Intel 82574 часы PTP и часы ядра для каждого компьютера. Можно регистрировать метки времени PTP от обоих компьютеров и использовать их, чтобы сопоставить передаваемые данные со справочными данными.
Ваши целевые машины Speedgoat включают по крайней мере две установленные карты Ethernet, один из них карта Ethernet Intel 82574. Используйте карту Ethernet Intel 82574 для сети PTP. Используйте другой, чтобы соединить эти два целевых компьютера через переключатель Ethernet к компьютеру разработчика. Сеть выглядит так фигура.
Чтобы сконфигурировать сеть и ваши модели для этого примера, соберите следующую информацию для каждого целевого компьютера:
Идентификаторы
Карта PTP: Имя устройства, номера шины PCI и номера слота, Мак адрес, который вы присваиваете карте PTP, которая передает non-PTP данные
Карта COM: Имя устройства, номера шины PCI и номера слота, индекс Ethernet карты
Можно найти встроенный Мак адрес карты PTP из источника, такого как перечень материалов или метка на оборудовании. Можно найти имя устройства и номера шины PCI и номера слота при помощи SimulinkRealTime.target.getPCIInfo. Можно найти индекс Ethernet коммуникационной карты при помощи SimulinkRealTime.getTargetSettings.
TargetPC1
Идентификатор — TargetPC1
Карта PTP
Имя устройства — Intel 82574L
Шина PCI — 5
Слот PCI — 0
Мак адрес — [EEPROM}
Карта COM
Имя устройства — Intel 82579LM
Индекс Ethernet — 0
Шина PCI — 0
Слот PCI — 25
Мак адрес — N/A
TargetPC2
Идентификатор — TargetPC2
Карта PTP
Имя устройства — Intel 82574L
Шина PCI — 0
Слот PCI — 52
Мак адрес — 68:05:CA:31:B9:EF
Карта COM
Имя устройства — Intel 82541GI_LF
Индекс Ethernet — 0
Шина PCI — 16
Слот PCI — 4
Мак адрес — N/A
Соедините кабель Ethernet между картой PTP в TargetPC1
и картой PTP в TargetPC2
. Эта связь создает сеть PTP. Чтобы сконфигурировать блоки Ethernet IEEE 1588 в этих двух приложениях реального времени, у вас должны быть шина PCI и слот PCI этих карт.
Соедините кабель Ethernet от карты Коммуникации в TargetPC1
к переключателю Ethernet.
Соедините кабель Ethernet от карты Коммуникации в TargetPC2
к переключателю.
Соедините кабель Ethernet от переключателя до компьютера разработчика. Эти связи завершают коммуникационную сеть между компьютером разработчика и целевыми компьютерами.
Запустите эти два целевых компьютера. Используйте slrtexplr, чтобы соединиться с ними. Если вы не можете установить связь с целевым компьютером, проверьте индекс Ethernet, присвоенный коммуникационному порту.
В этом примере система содержит два приложения реального времени, работающие на отдельных целевых компьютерах. Приложение сбора данных передает PTP и non-PTP данные к приложению анализа данных. Чтобы сконфигурировать приложение сбора данных, у вас должен быть Мак адрес карты PTP, которая установлена в целевом компьютере анализа данных. Приложение анализа данных передает только данные PTP к приложению сбора данных. Чтобы сконфигурировать приложение анализа данных, можно использовать Мак адрес, сохраненный в EEPROM карты PTP в целевом компьютере сбора данных.
Сконфигурируйте приложение сбора данных
Чтобы сконфигурировать это приложение, сначала выполните шаги в, Конфигурируют Оборудование. Соберите шину PCI, слот PCI и роль карт Ethernet, установленных в целевых компьютерах.
Приложением сбора данных является ex_ptp_sync_src
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_ptp_sync_src')))
). Это работает на TargetPC1
. Сконфигурировать приложение:
Установите параметры конфигурации
Открытый ex_ptp_sync_src
.
В диалоговом окне Configuration Parameters откройте панель Решателя.
Проверьте, что Типом является Fixed-step
.
Проверьте, что размер Фиксированного шага (основной шаг расчета) установлен в явное значение а не в auto
(лучшая практика). Используйте тот же шаг расчета в качестве в приложении анализа данных.
Проверьте, что Позволяют задачам выполниться одновременно на цели, установлен.
Возьмите значения по умолчанию для других настроек.
Откройте панель Опций Simulink Real-Time.
Проверьте, что Сборка для целевого компьютера по умолчанию очищена.
Проверьте, что Указывают, что именем целевого компьютера является TargetPC1
.
Проверьте, что Режимом выполнения является Real-Time
.
Возьмите значения по умолчанию для других настроек.
Сконфигурируйте блоки PTP
Откройте блок IEEE 1588 Ethernet
Откройте Общую панель.
От информации для карты PTP TargetPC1
введите значения 5
и 0
для шины PCI и слота PCI.
Проверьте, что значение Шага расчета Ethernet IEEE 1588 является кратным размеру Фиксированного шага (основной шаг расчета) значение.
Проверьте, что Шаг расчета имеет то же значение как в модели анализа данных.
Откройте Сетевую панель параметров.
От информации для карты PTP TargetPC1
, в Исходном поле Мак адреса, выбирают EEPROM
.
Проверьте, что Целевым Мак адресом является Standard PTP multicast
.
Откройте панель параметров Часов.
Проверьте, что Масштабом времени (эпоха) является PTP (1970-01-01)
.
Проверьте, что механизмом измерения Задержки является Request-response
.
Установите Ведомое устройство только флажок. Эта установка препятствует тому, чтобы программное обеспечение делало этот узел основным узлом часов PTP.
Откройте панель Временных интервалов.
Проверьте, что Объявляют об интервале (второй), Синхронизирующий (второй) интервал, и задержка Min или (второй) интервал запроса pdelay является по крайней мере три раза значением Шага расчета.
Проверьте, что интервалы являются интегральными множителями Шага расчета.
Проверьте, что интервалы имеют те же настройки как в модели анализа данных.
В остающихся блоках PTP верхнего уровня проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Откройте Подсистему PTP Clock-Data. Для каждого блока в подсистеме проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Сконфигурируйте блоки передачи данных
От информации для карты PTP TargetPC2
, в диалоговом окне блока Create Ethernet Packet, Целевом MAC набора к macaddr('68:05:CA:31:B9:EF')
.
Установите EtherType (используйте 0 для длины) к hex2dec('0010')
. Используя этот тип отличает специфичные для данных сообщения от PTP-специфичных сообщений, которые используют ту же карту Ethernet.
В блоке Ethernet Tx проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Сохраните обновленную модель в своей рабочей папке. Вы не можете создать и запустить приложение реального времени в папке в качестве примера.
Чтобы сконфигурировать это приложение, сначала выполните шаги в, Конфигурируют Оборудование. Соберите шину PCI, слот PCI и роль карт Ethernet, которые установлены в целевых компьютерах. Чтобы сконфигурировать карту PTP в целевом компьютере анализа данных, используйте Мак адрес, который вы задали в блоке Create Ethernet Packet приложения сбора данных.
Приложением анализа данных является ex_ptp_sync_sink
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_ptp_sync_sink')))
). Это работает на TargetPC2
. Сконфигурировать приложение:
Установите параметры конфигурации
Открытый ex_ptp_sync_sink
.
В диалоговом окне Configuration Parameters откройте панель Решателя.
Проверьте, что Типом является Fixed-step
.
Проверьте, что размер Фиксированного шага (основной шаг расчета) установлен в явное значение (лучшая практика) а не в auto
. Используйте тот же шаг расчета в качестве в приложении сбора данных.
Проверьте, что Позволяют задачам выполниться одновременно на цели, установлен.
Возьмите значения по умолчанию для других настроек.
Откройте панель Опций Simulink Real-Time.
Проверьте, что Сборка для целевого компьютера по умолчанию очищена.
Проверьте, что Указывают, что именем целевого компьютера является TargetPC2
.
Проверьте, что Режимом выполнения является Real-Time
.
Возьмите значения по умолчанию для других настроек.
Сконфигурируйте блоки PTP
Откройте блок IEEE 1588 Ethernet.
Откройте Общую панель.
От информации для карты PTP TargetPC2
введите значения 52
и 0
для шины PCI и слота PCI.
Проверьте, что значение Шага расчета Ethernet IEEE 1588 является кратным размеру Фиксированного шага (основной шаг расчета) значение.
Проверьте, что Шаг расчета имеет то же значение как в блоке IEEE 1588 Ethernet сбора данных.
Откройте Сетевую панель параметров.
В Исходном поле Мак адреса выберите Specify
.
От информации для карты PTP TargetPC2
, в Задавать исходном текстовом поле Мак адреса, вводят macaddr ('68:05:CA:31:B9:EF'). Можно ввести произвольный Мак адрес в это поле, если это уникально в сети PTP.
Проверьте, что Целевым Мак адресом является Standard PTP multicast
.
Откройте панель параметров Часов.
Проверьте, что Масштабом времени (эпоха) является PTP (1970-01-01)
.
Проверьте, что механизмом измерения Задержки является Request-response
.
Проверьте, что Ведомое устройство только очищено. Эта установка позволяет программному обеспечению делать этот узел основным узлом часов PTP.
Откройте панель Временных интервалов.
Проверьте, что Объявляют об интервале (второй), Синхронизирующий (второй) интервал, и задержка Min или (второй) интервал запроса pdelay является по крайней мере три раза значением Шага расчета.
Проверьте, что интервалы являются интегральными множителями Шага расчета.
Проверьте, что интервалы имеют те же настройки как в модели сбора данных.
В остающихся блоках PTP верхнего уровня проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Откройте Подсистему PTP Clock-Data. Для каждого блока в подсистеме проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Сконфигурируйте блоки передачи данных
Откройте подсистему PTP данных часов
Откройте блок Ethernet Rx.
Откройте панель Rx и проверьте что соответствия значения Шага расчета это в блоке IEEE 1588 Ethernet.
Откройте панель Фильтра.
Проверьте, что критериями Фильтра является Specify types to match
.
Verifty, которые Получают эти типы (вектор типов 0-65535) является [hex2dec('0010')]
.
Сохраните обновленную модель в своей рабочей папке. Вы не можете создать и запустить приложение реального времени в папке в качестве примера.
В этом примере, сборках приложения сбора данных и загружается на TargetPC1
. Сборки приложения анализа данных и загружаются на TargetPC2
. Чтобы запустить эти приложения, сначала выполните шаги в, Конфигурируют Приложения реального времени. MATLAB® и Simulink Real-Time Explorer должны запускаться в вашей рабочей папке.
Создайте, загрузите и запустите приложения:
Запустите TargetPC1
и TargetPC2
.
В Целевой панели Проводника соединитесь с TargetPC1
и TargetPC2
.
В вашей рабочей папке откройте ex_ptp_sync_src
и ex_ptp_sync_sink
.
Создайте и загрузите ex_ptp_sync_src
на TargetPC1
.
Создайте и загрузите ex_ptp_sync_sink
на TargetPC2
.
В панели Приложений Проводника, для TargetPC1/ex_ptp_sync_src
и TargetPC2/ex_ptp_sync_sink
, изменяют свойство Stop Time на Inf
.
В панели Приложений Проводника запустите ex_ptp_sync_src
и ex_ptp_sync_sink
.
Для обоих приложений данные о форме волны начинают передавать потоком в целевых осциллографах, маркировал Data
. Однако метки времени, отображенные как Time
сигнала, не первоначально допустимы. Эти два приложения проходят следующую последовательность значений State
и Sync Status
:
1. Инициализация:
ex_ptp_sync_src State → 4
(СЛУШАНИЕ)
ex_ptp_sync_src Sync Status → 0
(не синхронизируемый)
ex_ptp_sync_sink State → 4
(СЛУШАНИЕ)
ex_ptp_sync_sink Sync Status → 0
(не синхронизируемый)
2. Основное выделение и синхронизация
ex_ptp_sync_sink State → 6
(ВЕДУЩЕЕ УСТРОЙСТВО)
ex_ptp_sync_sink Sync Status → 1
(синхронизируется)
3. Ведомое выделение и синхронизация
ex_ptp_sync_src State → 9
(ВЕДОМОЕ УСТРОЙСТВО)
ex_ptp_sync_src Sync Status → 1
(синхронизируется)
Для узла сбора данных (ведомый узел), конечное состояние выглядит так фигура.
Для узла анализа данных (главный узел), конечное состояние выглядит так фигура.
В данном примере датчик и ссылочные блоки Синусоиды установлены в ту же частоту и амплитуду, но запускаются в произвольные моменты времени. Различие во время начала вызывает разность фаз между синусоидами. Разность фаз появляется на осциллографе Delta
как форма волны, которая обосновывается к постоянной амплитуде.
Разность фаз является постоянной, потому что блоки Выполнения Синхронизации IEEE 1588 синхронизируются, ядро отмечает время прихода на работу эти два целевых компьютера. Если вы не включаете эти блоки, часы ядра этих двух целевых компьютеров расходятся. В результате форма волны Delta
показывает частоту удара.
С блоком IEEE 1588 Sync Execution можно сделать измерения через несколько целевых компьютеров на синхронизируемом временном шаге. Однако контроллер часов прерывания ядра может сократить некоторые временные шаги до 10% основного шага расчета, приводящего к перегрузке ЦП.
IEEE 1588 Синхронизирующее выполнение | IEEE 1588 Ethernet | IEEE 1588 Считайте параметр | IEEE 1588 Синхронизирующее состояние | open_system (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_ptp_data_sink'))) | open_system (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_ptp_data_src'))) | open_system (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_ptp_sync_sink'))) | open_system (docpath (fullfile (docroot, 'тулбокс', 'xpc', 'examples', 'ex_ptp_sync_src')))